<?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>CGSmartImage</name>
	<version>1.16</version>
  <mincmsversion>1.11.9</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgc2ltcGxlIHdheSB0byBwcm9jZXNzLCBhbmQgZGlzcGxheSBpbWFnZXMgb24geW91ciB3ZWIgcGFnZS4gIEl0IGFsbG93cyBzaW1wbGUgaW1hZ2UgcHJvY2Vzc2luZywgYW5kIHdhdGVybWFya2luZy4gIFRoaXMgbW9kdWxlIG1ha2VzIGRpc3BsYXlpbmcgcHJvY2Vzc2VkIGltYWdlcyBvbiB5b3VyIHdlYnNpdGUgdHJpdmlhbC4gIEl0IGFsc28gcHJvdmlkZXMgZmVhdHVyZXMgdG8gaW1wcm92ZSB0aGUgcGVyZm9ybWFuY2UgcmF0aW5nIG9mIHlvdXIgd2Vic2l0ZSwgbWFraW5nIHlvdXIgd2Vic2l0ZSBwb3dlcmZ1bCBhbmQgZmFzdCBhdCB0aGUgc2FtZSB0aW1lLjwvcD4KPGgzPkZlYXR1cmVzPC9oMz4KPHVsPgo8bGk+UG93ZXJmdWwsIGJ1dCBzaW1wbGUgdG8gdXNlIGltYWdlIGZpbHRlcmluZyBhbmQgcHJvY2Vzc2luZy4gRmlsdGVyaW5nIGluY2x1ZGVzOgogIDx1bD4KICAgIDxsaT5CbHVyPC9saT4KICAgIDxsaT5CcmlnaHRuZXNzPC9saT4KICAgIDxsaT5Db2xvcml6ZTwvbGk+CiAgICA8bGk+Q29udHJhc3Q8L2xpPgogICAgPGxpPkNyb3A8L2xpPgogICAgPGxpPjxzdHJvbmc+Q3JvcCBUbyBGaXQ8L3N0cm9uZz48L2xpPgogICAgPGxpPjxzdHJvbmc+UmVzaXplIFRvIEZpdDwvc3Ryb25nPjwvbGk+CiAgICA8bGk+RWRnZSBEZXRlY3Rpb248L2xpPgogICAgPGxpPlNoYXJwZW48L2xpPgogICAgPGxpPkVtYm9zczwvbGk+CiAgICA8bGk+R3JheXNjYWxlPC9saT4KICAgIDxsaT5NZWFuIFJlbW92YWw8L2xpPgogICAgPGxpPk5lZ2F0ZTwvbGk+CiAgICA8bGk+UGl4ZWxhdGU8L2xpPgogICAgPGxpPlJlZmxlY3Rpb248L2xpPgogICAgPGxpPlJlc2l6ZTwvbGk+CiAgICA8bGk+Um91bmRlZCBDb3JuZXJzPC9saT4KICAgIDxsaT5Sb3RhdGU8L2xpPgogICAgPGxpPlNlbGljdGl2ZSBCbHVyPC9saT4KICAgIDxsaT5TbW9vdGg8L2xpPgogICAgPGxpPldhdGVybWFyazwvbGk+CiAgPC91bD4KPC9saT48YnIvPgo8bGk+U21hcnQgZGV0ZWN0aW9uIG9mIGltYWdlcy4gIFNwZWNpZnkgYWJzb2x1dGUgVVJMUywgYWJzb2x1dGUgcGF0aHMsIG9yIGZpbGVzIHJlbGF0aXZlIHRvIHlvdXIgcm9vdCBpbnN0YWxsYXRpb24uPC9saT4KPGxpPkF1dG9tYXRpYyBkb3dubG9hZGluZywgY2FjaGluZywgcHJvY2Vzc2luZywgYW5kIHJlLWNhY2hpbmcgb2YgaW1hZ2VzIGZyb20gcmVtb3RlIHdlYnNpdGVzLjwvbGk+CjxsaT5TbWFydCBhdXRvbWF0aWMgcmVzaXppbmcgKGF1dG9tYXRpY2FsbHkgcmVzaXplIHRvIGRlc2lyZWQgd2lkdGggYW5kIGhlaWdodCBiZWZvcmUgc2VydmluZyB0aGUgaW1hZ2UuLi4gcmVzaXppbmcgdG8gd2lkdGggQU5EIGhlaWdodCBkb2VzIGEgY3JvcCB0byBmaXQuIDxlbT4oanVzdCBzcGVjaWZ5IGEgd2lkdGgsIGFuZC9vciBoZWlnaHQgcGFyYW1ldGVyIHRvIHRoZSBDR1NtYXJ0SW1hZ2UgdGFnLik8L2VtPjwvbGk+CjxsaT5BdXRvbWF0aWNhbGx5IHJlYWRzIGltYWdlIEVYSUYgaW5mb3JtYXRpb24gYW5kIGNvcnJlY3RzIHRoZSBvcmllbnRhdGlvbi48L2xpPgo8bGk+SW1hZ2UgY2hhbmdlIGRldGVjdGlvbiwgaWYgdGhlIG1hc3RlciBpbWFnZSBpcyBjaGFuZ2VkIHNjYWxlZCBpbWFnZXMgd2lsbCBiZSByZWdlbmVyYXRlZC4gKHNlZSB0aGUgbm90aW1lY2hlY2sgcGFyYW1ldGVyIHRvIGRpc2FibGUgdGhpcyBiZWhhdmlvcikuPC9saT4KPGxpPlNtYXJ0IGF0dHJpYnV0ZSBnZW5lcmF0aW9uIGZvciBpbWFnZXMuPC9saT4KPGxpPlByb2Nlc3NlZCBpbWFnZXMgYXJlIGNhY2hlZCBvbiB0aGUgc2VydmVyIGZvciBmYXN0ZXIgc2VydmluZy48L2xJPgo8bGk+VGhlIGFiaWxpdHkgdG8gdXNlIGEgc2VwYXJhdGUgVVJMIChDRE4pIGZvciBzZXJ2aW5nIGltYWdlczwvbGk+CjxsaT5JbWFnZSBwcm9jZXNzZXMgY2FuIGJlIGNvbWJpbmVkLCBhbmQgYXJlIGV4ZWN1dGVkIGluIG9yZGVyLjwvbGk+CjxsaT5Qcm92aWRlcyB0aGUgYWJpbGl0eSB0byBlbWJlZCBpbWFnZXMgZGlyZWN0bHkgaW50byB0aGUgY29udGVudCBvZiB0aGUgd2ViIHBhZ2UgdG8gbWluaW1pemUgc3BhY2UuPC9saT4KPGxpPlByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIGxpbWl0IGVtYmVkZGluZyBpbWFnZXMgc21hcnRseSwgb25seSB0byBicm93c2VycyB0aGF0IGFyZSBjYXBhYmxlIG9mIHVuZGVyc3RhbmRpbmcgdGhlbS48L2xpPgo8bGk+Q29tYmluZSBjb21tb25seSB1c2VkIGFyZ3VtZW50cyBpbnRvIG5hbWVkIGFsaWFzZXMuPC9saT4KPGxpPkFsc28gd29ya3Mgd2l0aGluIHN0eWxlc2hlZXRzIHZpYSB0aGUge2Ntc19zdHlsZXNoZWV0fSB0YWcuPC9saT4KPGxpPlRoZSBhYmlsaXR5IHRvIGF1dG9tYXRpY2FsbHkgcHJvY2VzcyBpbWFnZXMgaW5zaWRlIGEgYmxvY2sgb2YgaHRtbCBjb2RlIHVzaW5nIHRoZSB7Y2dzaV9jb252ZXJ0fSBibG9jayB0YWcuPC9saT4KPGxpPlRoZSBhYmlsaXR5IHRvIGV4dHJhY3QgaW1hZ2VzIGZyb20gYSBibG9jayBvZiBodG1sIGNvZGUuPC9saT4KPGxpPk1vcmUuLi48L2xpPgo8L3VsPgo8aDM+V2h5IHNob3VsZCBJIHVzZSBpdD88L2gzPgo8cD5UaGVyZSBhcmUgZm91ciB2ZXJ5IGltcG9ydGFudCByZWFzb25zIHRvIHVzZSB0aGlzIHBsdWdpbjo8L3A+Cjx1bD4KICA8bGk+UGVyZm9ybWFuY2U6ICBVc2luZyBpbWFnZSBlbWJlZGRpbmcgKGV2ZW4gaWYgbm8gb3RoZXIgZnVuY3Rpb25zIGFyZSB1c2VkKSByZXN1bHRzIGluIGZld2VyIHJlcXVlc3RzLiAgTW9zdCBicm93c2VycyBvbmx5IHBlcmZvcm0gdHdvIHRvIGZvdXIgc2ltdWx0YW5lb3VzIHJlcXVlc3RzIHRvIHRoZSBzYW1lIGRvbWFpbiBhdCB0aGUgc2FtZSB0aW1lLiAgRm9yIHdlYiBwYWdlcyB3aXRoIGxvdHMgb2YgaW1hZ2VzIHRoaXMgY2FuIHNlcmlvdXNseSBzbG93IGRvd24geW91ciBzaXRlLjwvbGk+CiAgPGxpPlBlcmZvcm1hbmNlOiAgRXZlbiBpZiBub3QgdXNpbmcgZW1iZWRkaW5nLCBzZW5kaW5nIGxhcmdlIGltYWdlcyB0byB5b3VyIHZpc2l0b3JzLCBhbmQgYXNraW5nIHRoZWlyIGJyb3dzZXIgdG8gc2NhbGUgdGhlIGltYWdlIGlzIHZlcnkgdmVyeSBzbG93LjwvbGk+CiAgPGxpPlNlY3VyaXR5OiAgQ0dTbWFydEltYWdlIGNhY2hlcyBpdHMgaW1hZ2VzIGluIGEgc2VwYXJhdGUgZGlyZWN0b3J5LCB0aGVyZWJ5IGhpZGluZyB0aGUgb3JpZ2luYWwgKHBlcmhhcHMgY29weXJpZ2h0ZWQpIGltYWdlcyBmcm9tIHlvdXIgdXNlcnMuICBJZiBlbWJlZGRpbmcgaXMgdXNlZCB0aGV5IGNhbnQgZXZlbiBmaW5kIHRoZSBjYWNoZWQgbG9jYXRpb24pPC9saT4KICA8bGk+U2ltcGxpY2l0eTogIFRoZSBmaWx0ZXJpbmcgY2FwYWJpbGl0aWVzIG9mIENHU21hcnRJbWFnZSBhbGxvdyB5b3UgdG8gYXV0b21hdGljYWxseSBwcm9jZXNzIGltYWdlcyBmb3IgY29uc2lzdGVudCBhbmQgc2VjdXJlIGRpc3BsYXksIHdpdGhvdXQgc2l0ZSBlZGl0b3JzIGhhdmluZyB0byBwbGF5IHdpdGggdGhlbS4gIFRoZXkgY2FuIHVwbG9hZCBsYXJnZXIgaW1hZ2VzLCBhbmQgeW91ciBzaXRlIHdpbGwganVzdCBoYW5kbGUgdGhlbSBwcm9wZXJseS48L2xpPgo8L3VsPgo8aDM+SW1hZ2UgRW1iZWRkaW5nPC9oMz4KICA8cD5JbWFnZSBlbWJlZGRpbmcgZW5jb2RlcyB0aGUgaW1hZ2UgaW50byBhIGRhdGEgdXJpIHdoaWNoIGlzIGVtYmVkZGVkIGRpcmVjdGx5IGluIHRoZSBwYWdlIChvciBzdHlsZXNoZWV0KSBjb250ZW50LiAgVGhpcyByZWR1Y2VzIHJlcXVlc3RzIHRoYXQgdGhlIGJyb3dzZXIgbXVzdCBtYWtlIHRvIHJlY2VpdmUgaW1hZ2VzIGZyb20geW91ciBzaXRlLiAgSG93ZXZlciBpdCBkb2VzIGluY3JlYXNlIHRoZSBzaXplIG9mIHRoZSBIVE1MIHBhZ2UuICBPbiBpbWFnZSBoZWF2eSBwYWdlcyB5b3Ugc2hvdWxkZCBtaXggdGhlIHVzZSBvZiBlbWJlZGRlZCBpbWFnZXMuPC9wPgo8aDM+SG93IGRvIEkgdXNlIGl0PzwvaDM+CjxwPlRoZSBzaW1wbGVzdCB3YXkgdG8gdXNlIHRoaXMgbW9kdWxlIGlzIHRvIHVzZSBpdCBpbiB0aGUgc2FtZSBwbGFjZSB5b3Ugd291bGQgdGhlIHtpbWFnZX0gdGFnLiAgSS5lOiBTb21ldGhpbmcgbGlrZSA8Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Q0dTbWFydEltYWdlIHNyYz0ndXBsb2Fkcy9pbWFnZXMvcGljdHVyZS5qcGcnfTwvY29kZT4uICBUaGlzIHdpbGwgZ2VuZXJhdGUgdGhlIGltYWdlIHRhZyBmb3IgeW91IHdpdGggbm8gcHJvY2Vzc2luZy4gIEFuZCBpZiBwb3NzaWJsZSwgZW1iZWQgdGhlIGltYWdlIGRpcmVjdGx5IGludG8geW91ciBodG1sIG91dHB1dC48L3A+CjxwPk9mdGVuIHBlb3BsZSB3YW50IHRvIGRpc3BsYXkgYSB3YXRlcm1hcmsgb24gdGhlIGltYWdlcyB0aGF0IHRoZXkgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQgdG8gcHJldmVudCBpbWFnZSB0aGVmdC4gIFRoZSBDR0V4dGVuc2lvbnMgbW9kdWxlIHByb3ZpZGVzIHNldHRpbmdzIGZvciB5b3UgdG8gY29uZmlndXJlIHdhdGVybWFya2luZyBhbmQgeW91IGNhbiBlbmFibGUgdGhhdCB3aXRoIGFueSBpbWFnZSB3aXRoIGEgdGFnIGxpa2UgdGhpczogPGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e0NHU21hcnRJbWFnZSBzcmM9J3VwbG9hZHMvaW1hZ2VzL3BpY3R1cmUuanBnJyBmaWx0ZXJfd2F0ZXJtYXJrPTF9PC9jb2RlPi4gIFRoaXMgd2lsbCByZWFkIHRoZSBpbWFnZSwgYXBwbHkgdGhlIHdhdGVybWFyayBhY2NvcmRpbmcgdG8gdGhlIHNldHRpbmdzIGluIENHRXh0ZW5zaW9ucywgY2FjaGUgdGhlIGFsdGVyZWQgaW1hZ2UsIGFuZCB0aGVuIGVtYmVkIGl0IGludG8geW91ciBvdXRwdXQuPC9wPgo8cD5BbHNvLCBQaWN0dXJlcyB0YWtlbiBieSBtb2Rlcm4gZGlnaXRhbCBjYW1lcmFzIGFyZSBvZnRlbiB0b28gbGFyZ2UgZm9yIHVzZSBvbiBhIHdlYnNpdGUsIHRoZXJlZm9yZSB0aGV5IG5lZWQgdG8gYmUgc2NhbGVkIGJlZm9yZSBkaXNwbGF5ZWQgb24geW91ciBwYWdlLiAgVGhpcyBjYW4gYmUgZG9uZSBxdWl0ZSBlYXNpbHkgd2l0aCBhIHRhZyBsaWtlOiA8Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Q0dTbWFydEltYWdlIHNyYz0ndXBsb2Fkcy9pbWFnZXMvcGljdHVyZS5qcGcnIGZpbHRlcl93YXRlcm1hcms9MSBmaWx0ZXJfcmVzaXplPSd3LDM1MCd9PC9jb2RlPi4gIEFzIHlvdSBtYXkgdGhpbmssIHRoZSB3YXRlcm1hcmsgd2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBpbWFnZSBiZWZvcmUgaXQgaXMgcmVzaXplZCB0byBhIG1heGltdW0gd2lkdGggb2YgMzAwIHBpeGVscyAocmV0YWluaW5nIGFzcGVjdCByYXRpbykuICBUaGVuIHRoZSBhZGp1c3RlZCBpbWFnZSB3aWxsIGJlIGNhY2hlZCwgYW5kIGlmIHRoZSBicm93c2VyIGFsbG93ZXMgdGhlIGltYWdlIHdpbGwgYmUgZW1iZWRkZWQgaW50byB0aGUgSFRNTCBvdXRwdXQuICBJZiBlbWJlZGRpbmcgaXMgbm90IHBvc3NpYmxlLCB0aGUgaW1nIHRhZyB3aWxsIGNvbnRhaW4gdGhlIFVSTCB0byB0aGUgY2FjaGVkIGltYWdlLjwvcD4KPHA+RnJvbSBoZXJlIHlvdSBjYW4gY29tYmluZSB0aGUgb3B0aW9ucyBiZWxvdyB0byBwZXJmb3JtIGFsb3Qgb2YgZGlmZmVyZW50IGVmZmVjdHMgdG8geW91ciBpbWFnZXMsIGJ1aWxkIHNpbXBsZSBnYWxsZXJpZXMsIGFuZCBpbXByb3ZlIHlvdXIgc2l0ZSBwZXJmb3JtYW5jZSBhdCB0aGUgc2FtZSB0aW1lLiAgRW5qb3khPC9wPgo8aDM+QXV0b21hdGljIGltYWdlIHJlc2l6aW5nPC9oMz4KICA8cD5JZiB5b3Ugc3BlY2lmeSBhIHdpZHRoLCBhbmQvb3IgYSBoZWlnaHQgcGFyYW1ldGVyLCBhbmQgZG8gbm90IHNwZWNpZnkgdGhlICZxdW90O25vYXV0b3NjYWxlJnF1b3Q7IHBhcmFtZXRlciwgdGhlIG1vZHVsZSB3aWxsIGFuYWx5emUgdGhlIGZpbHRlcnMgeW91IGhhdmUgYWxyZWFkeSBzcGVjaWZpZWQsIGFuZCBpZiB0aGVyZSBpcyBubyByZXNpemUgZmlsdGVyIGFscmVhZHkgc3BlY2lmaWVkIGF1dG9tYXRpY2FsbHkgYWRkIGEgZmlsdGVyIHRvIHJlc2l6ZSBvciBjcm9wdG9maXQgdGhlIGltYWdlIG9uIG91dHB1dC4gIFRoaXMgaXMgdXNlZnVsIHRvIGRvIGF1dG9tYXRpYyB0aHVtYm5haWxpbmcgb24gdGhlIHNlcnZlciwgYW5kIG5vdCByZXF1aXJlIHRoZSBicm93c2VyIHRvIHJlc2l6ZSB0aGUgaW1hZ2UuPC9wPgogIDxwPkNHU21hcnRJbWFnZSB3aWxsIG5vcm1hbGx5IGF1dG9tYXRpY2FsbHkgZmlsbCB0aGUgd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIG9mIHRoZSBnZW5lcmF0ZWQgaW1nIHRhZyB3aXRoIHRoZSBzaXplIG9mIHRoZSBpbWFnZSBnZW5lcmF0ZWQgZnJvbSB0aGUgbGFzdCBmaWx0ZXIuICB0aGUgbm9hdXRvIHBhcmFtZXRlciBjYW4gcHJldmVudCB0aGlzLjwvcD4KICA8cD48c3Ryb25nIHN0eWxlPSJjb2xvcjogYmx1ZTsiPlRpcDo8L3N0cm9uZz4gSXQgaXMgbm9ybWFsbHkgY291bnRlci1wcm9kdWN0aXZlIHRvIHNwZWNpZnkgYm90aCBhIHJlc2l6ZS9jcm9wIGZpbHRlciwgQU5EIGEgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZSB1bmxlc3MgeW91IHdhbnQgdG8gYWJzb2x1dGVseSBjb250cm9sIHRoZSB2YWx1ZXMgb2YgdGhlIHdpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvbiB0aGUgaW1nIHRhZy4gIEluIHdoaWNoIGNhc2UgeW91IHNob3VsZCB1c2UgdGhlIG5vYXV0byBwYXJhbWV0ZXIgaW4gdGhlIGNhbGwgdG8gQ0dTbWFydEltYWdlLjwvcD4KIDxoMz5BIFNpbXBsZSBHYWxsZXJ5PC9oMz4KPHA+VGhlIGNvZGUgYmVsb3cgdXNlcyB0aGUge0NHU21hcnRJbWFnZX0gbW9kdWxlLCBmYW5jeWJveCwgYW5kIGEgYml0IG9mIHNtYXJ0eSBtYWdpYyB0byBnZW5lcmF0ZSBhIHNpbXBsZSBsaWdodGJveCBzdHlsZSBhbGJvbSBmcm9tIGEgc3ViZGlyZWN0b3J5IG9uIHlvdXIgd2Vic2l0ZSwgd2hpbGUgcHJvY2Vzc2luZyB0aGUgaW1hZ2VzIGZvciB3ZWIgc3RhbmRhcmRzLCBhbmQgY3JlYXRpbmcgdGh1bWJuYWlscy48L3A+CjxwcmUgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNkZGQ7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyI+PGNvZGU+PHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4gMTo8L3NwYW4+ICZsdDtzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiZndDt7bGl0ZXJhbH0KPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4gMjo8L3NwYW4+IGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4gMzo8L3NwYW4+ICBqUXVlcnkoJ2EuZmFuY3lib3gnKS5mYW5jeWJveCgpOwo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiA0Ojwvc3Bhbj4gfSk7CjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDU6PC9zcGFuPiB7L2xpdGVyYWx9Jmx0Oy9zY3JpcHQmZ3Q7CjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDY6PC9zcGFuPiB7YXNzaWduIHZhcj0nZmlsZXMnIHZhbHVlPSd1cGxvYWRzL2FsYnVtLyouanBnJ3xnbG9ifQo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiA3Ojwvc3Bhbj4ge2lmIGNvdW50KCRmaWxlcyl9CjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDg6PC9zcGFuPiAmbHQ7ZGl2IHN0eWxlPSJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxNTBweDsgb3ZlcmZsb3c6IGF1dG87IiZndDsKPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4gOTo8L3NwYW4+IHtmb3JlYWNoIGZyb209JGZpbGVzIGl0ZW09J2ZpbGUnfQo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPjEwOjwvc3Bhbj4gICZsdDthIHJlbD0nc2ltcGxlX2FsYnVtJyBjbGFzcz0iZmFuY3lib3giIGhyZWY9IjxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntDR1NtYXJ0SW1hZ2Ugc3JjPSRmaWxlIGZpbHRlcl9yb3RhdGU9OTAgZmlsdGVyX3dhdGVybWFyaz0xIGZpbHRlcl9yZXNpemU9J2gsNTAwJyBub3RhZz0xIG5vZW1iZWQ9MX08L3NwYW4+IiZndDsKPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4xMTo8L3NwYW4+ICA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Q0dTbWFydEltYWdlIHNyYz0kZmlsZSBmaWx0ZXJfcm90YXRlPTkwIGZpbHRlcl9ncmF5c2NhbGU9MSBmaWx0ZXJfd2F0ZXJtYXJrPTEgZmlsdGVyX3Jlc2l6ZT0naCwxNTAnfTwvc3Bhbj4KPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4xMjo8L3NwYW4+ICAmbHQ7L2EmZ3Q7CjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+MTM6PC9zcGFuPiB7L2ZvcmVhY2h9CjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+MTQ6PC9zcGFuPiAmbHQ7L2RpdiZndDsKPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4xNTo8L3NwYW4+IHsvaWZ9CjwvY29kZT48L3ByZT48YnIvPgo8cD5MZXRzIHRhbGsgYWJvdXQgdGhpcy48L3A+CjxwPkxpbmVzIDEgdGhyb3VnaCA1IHV0aWxpemUgalF1ZXJ5IHRvIGNhbGwgZmFuY3lib3ggb24gYW55IGxpbmtzIHRoYXQgaGF2ZSB0aGUgJnF1b3Q7ZmFuY3lib3gmcXVvdDsgY2xhc3MuICBUaGUgZmFuY3lib3ggalF1ZXJ5IHBsdWdpbiBpcyBpbmNsdWRlZCB3aXRoIHRoZSBKUXVlcnlUb29scyBtb2R1bGUuPC9wPgo8cD5MaW5lIDYgdXNlcyBhIGJ1aWx0IGluIHBocCBmdW5jdGlvbiBjYWxsZWQgZ2xvYiwgYW5kIHNvbWUgc21hcnR5IG1hZ2ljIHRvIGZpbmQgYWxsIG9mIHRoZSBKUEcgZmlsZXMgaW4gdGhlIHVwbG9hZHMvYWxidW0gZGlyZWN0b3J5IGJlbG93IG91ciBpbnN0YWxsYXRpb24gcm9vdC48L3A+CjxwPkxpbmUgNyBpcyBhIHRlc3QgdG8gc2VlIGlmIGFueSBmaWxlcyB3ZXJlIGFjdHVhbGx5IGZvdW5kIGluIHRoZSBhc3NpZ24gbGluZSBzdGF0ZWQgYWJvdmUuICBUaGlzIGlmIHN0YXRlbWVudCBpcyBjbG9zZWQgb24gbGluZSAxNS48L3A+CjxwPkxpbmUgOCBvcGVucyB1cCBhIGRpdiB0byBjb250YWluIG91ciBhbGJ1bS4gIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBleGFtcGxlIHRoZSBzdHlsZXMgd2VyZSBpbmNsdWRlZCBpbmxpbmUsIGhvd2V2ZXIgYSBjbGFzcyB0aGF0IHdhcyBkZWZpbmVkIGluIHRoZSBzdHlsZXNoZWV0IHNob3VsZCBiZSB1c2VkIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzLiAgVGhlIGNsb3NpbmcgdGFnIGZvciB0aGlzIGRpdiBpcyBvbiBsaW5lIDE0LCBqdXN0IGJlZm9yZSB0aGUgPGNvZGU+ey9pZn08L2NvZGU+LjwvcD4KPHA+TGluZSA5IGJlZ2lucyBhIGxvb3AgdGhyb3VnaCBhbGwgb2YgdGhlIGZpbGVzIHRoYXQgd2UgZm91bmQgaW4gdGhlIGRpcmVjdG9yeS4gIFRoaXMgbG9vcCBpcyBjbG9zZWQgb24gbGluZSAxMy48L3A+PGJyLz4KPHA+TGluZXMgMTAgYW5kIDExIGFyZSB0aGUgcmVhbCBtYWdpYy4gIEhlcmUgd2UgY3JlYXRlIGEgbGluayB3aXRoIGNsYXNzICZxdW90O2ZhbmN5Ym94JnF1b3Q7IGFuZCBhZGRzIHRoZSA8Y29kZT5yZWw8L2NvZGU+IGF0dHJpYnV0ZSBzbyB0aGF0IGZhbmN5Ym94IGtub3dzIHRoYXQgYWxsIG9mIHRoZXNlIGltYWdlcyBzaG91bGQgYmUgZ3JvdXBlZCB0b2dldGhlciBhcyBvbmUgYWxidW0gYW5kIGFsbG93IGNsaWNraW5nIGJldHdlZW4gdGhlIGltYWdlcy4gIFRoZW4gY29tZXMgdGhlIHBhcnQgd2hlcmUgd2UgZGVmaW5lIG91ciBpbWFnZXMuCjxwPldlIHN1cHBseSB0aGUgJGZpbGUgdmFyaWFibGUgdG8gdGhlIHNyYyBhcmd1bWVudCBvZiB0aGUgPGNvZGU+e0NHU21hcnRJbWFnZX08L2NvZGU+IHRhZyBzbyB0aGF0IGl0IHdpbGwgZ2V0IHRoZSBuYW1lIG9mIGVhY2ggbWF0Y2hlZCBqcGVnIGFzIHRoZSBsb29wIGlzIGV4ZWN1dGVkLjwvcD4KPHA+VGhlIGltYWdlcyBJIHdhcyB0ZXN0aW5nIHdpdGggd2VyZSB1cGxvYWRlZCBmcm9tIG15IGlwb2QsIGFuZCBhbGwgc2VlbWVkIHRvIGJlIHJvdGF0ZWQgOTAgZGVncmVlcyBjb3VudGVyIGNsb2NrZWlzLiAgU28gdGhlIGZpcnN0IGZpbHRlciBJIGFkZGVkIHdhcyB0byByb3RhdGUgdGhlIGltYWdlIDkwIGRlZ3JlZXMgY2xvY2t3aXNlIHZpYSB0aGUgPGNvZGU+ZmlsdGVyX3JvdGF0ZT05MDwvY29kZT4gYXJndW1lbnQuIFRoZSBpbWFnZXMgdGhlbiBuZWVkZWQgdG8gaGF2ZSB0aGUgd2F0ZXJtYXJrIG9uIHRoZW0gPGVtPih0aGlzIGlzIGp1c3QgZm9yIGV4YW1wbGUgcHVycG9zZXMsIEkgZG9udCB0aGluayBhbnlib2R5IHdvdWxkIHJlYWxseSBzdGVhbCB0aGUgYmx1cnJ5IHBpY3R1cmVzIGZyb20gbXkgaXBvZCBmb3IgY29tbWVyY2lhbCBwdXJwb3Nlcyk8L2VtPiwgc28gSSBhZGRlZCB0aGUgPGNvZGU+ZmlsdGVyX3dhdGVybWFyaz0xPC9jb2RlPiBwYXJhbWV0ZXIuICBBbmQgZmluYWxseSwgYmVjYXVzZSBldmVuIHRoZSBpcG9kIHRvdWNoIGNhbiB0YWtlIHBpY3R1cmVzIHRoYXQgYXJlIHRvbyBiaWcgdG8gZGlzcGxheSBvbiB0aGUgc2NyZWVuIEkgd2FudGVkIHRvIHJlc2l6ZSB0aGVtIHRvIGEgbWF4aW11bSBoZWlnaHQgb2YgNTAwIHBpeGVscy4gIFRoaXMgd2FzIGFjY29tcGxpc2hlZCB2aWEgdGhlIDxjb2RlPmZpbHRlcl9yZXNpemU9aCw1MDA8L2NvZGU+IGFyZ3VtZW50LiAgV2UgYWRkIHRoZSA8Y29kZT5ub2VtYmVkPTE8L2NvZGU+IGFyZ3VtZW50IGJlY2F1c2UgZmFuY3lib3ggZG9lcyBub3QgdW5kZXJzdGFuZCBob3cgdG8gZGlzcGxheSBlbWJlZGRlZCBpbWFnZXMgaW4gaXRzIHBvcHVwIHdpbmRvdy4gIFRoaXMgZGVmaW5lZCB0aGUgaW1hZ2UgdGhhdCB3ZSB3ZXJlIGdvaW5nIHRvIGxpbmsgdG8uPC9wPgo8cD5OZXh0IHdlIG5lZWRlZCB0byBkZWZpbmUgdGhlIHRodW1ibmFpbCBpbWFnZSB0aGF0IHdlIGFyZSBnb2luZyB0byB1c2UgaW4gdGhlIGdhbGxlcnkuICBUaGlzIGNhbGwgdG8gPGNvZGU+e0NHU21hcnRJbWFnZX08L2NvZGU+IGlzIGFsbW9zdCBpZGVudGljYWwgdG8gdGhlIGZpcnN0IGNhbGwsIGV4Y2VwdCB0aGF0IHdlIHVzZSBhIGRpZmZlcmVudCBoZWlnaHQgdmFsdWUgKDE1MCBwaXhlbHMpIGZvciB0aGUgdGh1bWJuYWlsLCBhbmQgZm9yIGtpY2tzIEkgY29udmVydGVkIHRoZSB0aHVtYm5haWwgdG8gZ3JheXNjYWxlIDxzdHJvbmc+YmVmb3JlPC9zdHJvbmc+IGFwcGx5aW5nIHRoZSB3YXRlcm1hcmsuICBJIGFsc28gcmVtb3ZlZCB0aGUgbm9lbWJlZD0xIGFyZ3VtZW50IHNvIHRoYXQgdGhlIHN5c3RlbSBjb3VsZCBlbWJlZCB0aGUgaW1hZ2UgaW4gdGhlIEhUTUwgb3V0cHV0IGlmIHRoZSBicm93c2VyIHN1cHBvcnRlZCBpdC4gIFRoZSBzY3JlZW4gY2FwdHVyZSBiZWxvdyBzaG93cyB0aGUgZWZmZWN0LjwvcD4KPGltZyBzcmM9ImRhdGE6aW1hZ2UvanBlZztiYXNlNjQsLzlqLzRBQVFTa1pKUmdBQkFRRUFZQUJnQUFELzJ3QkRBQWdHQmdjR0JRZ0hCd2NKQ1FnS0RCUU5EQXNMREJrU0V3OFVIUm9mSGgwYUhCd2dKQzRuSUNJc0l4d2NLRGNwTERBeE5EUTBIeWM1UFRneVBDNHpOREwvMndCREFRa0pDUXdMREJnTkRSZ3lJUndoTWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qTC93QUFSQ0FDaEFmQURBU0lBQWhFQkF4RUIvOFFBSEFBQUFRUURBUUFBQUFBQUFBQUFBQUFBQUFRRkJnY0JBZ01JLzhRQVVCQUFBZ0VEQWdNRUJ3UUdCd1FJQlFVQUFRSURBQVFSQlNFR0VqRVRRVkZoQnhRaWNZR1JzU015b2RFVk0wSlNrc0VXSlRSaWNuUHdKRldDNFJjMlExTldnNkx4SmpWRVk3SmtrN1BDMHYvRUFCZ0JBUUVCQVFFQUFBQUFBQUFBQUFBQUFBQUJBZ01FLzhRQUl4RUJBUUFDQWdNQUFnSURBQUFBQUFBQUFBRUNFU0V4QXhKQkV5SWpRbEZoa2YvYUFBd0RBUUFDRVFNUkFEOEF0Zlc5VnViSzcwK3hza2c5WnZwR1ZaTGduczBDakp5QnVUNEN0THZWTG5UTEZZOVF2Tk1pMUdaK1dESWNSdU1nZE56bmY2VjA0aGswWDFhS0RXd3ZZeU1lUm1Wc0t3NytaZnVuenFKM01sMUp3dElIa3VKck5OV2dXeW11QWUwZUxtSFhPNUdlaE5CTkxyWE5Lc1pIanV0UXQ0WFJ3aks3NElZak9NZTRnMXRIcldseTN3c285UXRudVdHUkVzZ0pPMmR2aFRGRkRISnhMeGd6eHF4N0dOUVdYTzNaSGI4QlRYREVxY0o4RnVzWVZ4ZVFISVhCMzVzL09nbGI4UzZKSE8wTW1xV3FTcTVqWldmQkREWWcrRmM1OVN1RTR0c2RPUms5V25zNVptOW5KTEtSakI4S2k5cnFlbVcybjhTV2QyQkpjVDMxd0VnRVJacGM3QURBOGZsU3F6aXVOTDFuaGM2aHpvdzA1N1ZwQ0NRSlNSaFNlNDBFbW0xM1NiYTk5VG0xRzJqdU1nZG0wZ0JCUGNmQSsrbkNxNHNrZ2owZTUwYlZ0UWUxdVpKWFdlM05pSGVRczJ6cTJNdG5JT2U2ckJ0b1JaMlVVRFNzNnd4aERJL1VoUmpKK1ZBMlhldkphOFMyV2tsY2lkQ1hrL2NZL2NIeDVXL0NqOUpYUDlMcE5OeW5xeTZmNndCeTc4L1BqcjRZN3Fpeng2dnErbWFscVZycDBiQzduRnpienRjY3Jvc1I5Z0JNYjlEMzc4MU9WcnFNVjF4ZFphaXdaSWRRMG9KRXhVNE1uTVNVejNFWU5BczRiNHB0ZFIweXpXK3Y3VWFsTUd6RUNGSlBNUUJqeHdCdFQ3SGVXMDF4Y1c4Y3lOTmI0N1pCMVRJeU0vQ3E3dDdpenVmUjdEbzBjYlNhcy82cUVRdHpxNWZLdm5Hd3h2bk5QZHZmdzZMeE5yYTZnN3E5ekhBMEdJMmJ0aUkrVTh1QnVjOTFCSVAwN3BRdG83azZoYmlHVkdkSExZREtwd3hIdUpBcm1lSk5FV0tLUTZyYUJKU1FoN1FiL2w4YWgyZ1JoMjRNRWlCZ0k3dHNNTTRJSklOTEJieGZvM2pyN0ZQMTBtUFlIZEhrZmp2UVRrSEl5RGtHaWtPaWtuUWRPSnpuMVdMT2Y4QXBkUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRlJsdURyZmw1Rm1Fa1lVS29tVmlRQVA3cktQd3FUVVZaZEpac3dhTndwYmFQZmV1TGNTeVNCWkVST2lJcmxTUUFjbjlnZFNhZjZLS2lpanJSUlFGRkh3b3g1VUNEUzlMVFN4ZGlPVjVQV2JsN2x1WUFjcGJHUU1kMjFMNk1lVkdENFVCaytORkdENEdqQjhEUUZGR0Q0R3M0UGdhREdUUm1zNFBnYXhnK0JvQ2lpajRVQlJSOEtQaFFGRkdQS2pIbFFGRkdENEdqQjhEUUZGR0Q0R2pCOERRRkZad2ZBMWpCOERRRkZGRkFVVVVVQlJSUlFGRkZGQVVVWVBnYVBoUUZGRkdDVGpHOUFVVm5rYjkxdmxSeXQrNjN5b01VVm5sYjkxdmxSZytCK1ZCaWlqQjhLenl0KzZmbFFZb3JKVWpxQ1BlS0FySG9wUHdvTVVWbmxiOTF2bFFWWWRWSStGQmlpczRQZ2ZsUUFUMEJQdUZCaWlzOGpmdU44alJ5UDhBdU44cURGRlpLc09xa2U4VWNqZnVOOHFERkZaNUcvY2I1VWNqL3VOOGpRWW9yUEkzN3JmS2psYjkxdmxRWW9yUEszN3ArVkFCUFFFKzRVR0tLenl0KzYzeXJGQVVVVVVEYnFURVN4NEpHeDZlK2tYTzM3emZPbG1xZnJZLzhKK3ROK2Q4VUc1a1lrKzAzenJIT3gvYWI1MXBuZXRTYURjeVBuN3pmTTF6WjN4c3pmTTBaTmMzb01tUi93Qjl2NGpYTXlQL0FONC96TllKclVuem9NTkpKKyszOFJyaThrbS8yai94R3QySnBPMjFCaHA1Zis4ZitJMTM0UjFBNmtZN2oyaDlzeVlMRTdDa0x0djF4WEhnZWRvV2dqeHpDUytrUWtkQjFOQk03eDJGM0o3UndDTnMrVmNDN2Q3SDUxMXZ2N1pKOFBwU1ZqNDBHNWRzZmZiNTBkby9lemZPdE01ckdmSHJRYkYyL2ViNTFvWkh6OTl2bWF4ekFISFN1Yk1EMzBHV2tjZnR0L0VhME1yL0FMNy9BTVJyUm0zclFuRkJzWlpNZ2M3ZnhHdVR6U0Q5dC80alFXM3JpNW9OWG1rQTJsZitJMDZjTXlNK3F5Z3U3QVFucVNmMmhUTEtkczA2OEtIT3JULzVQWC9pRkE0TkkyVDdSNm52ckhhc1AybStkSTN1VkR2bnhJcm1idFIzaWdjUk0zVG1iNTFudFcvZmI1MDBIVVkxSkhPdVI0bXViNnFtTm5YK0lVRDBaM0RZTEhHT3Vhd2J2bDZzZm5VTjFEaXExc2NtYWRWeDNjMU00OUllbHpTZG42eUFmTnFDZjNlc3JicVR6a251cVAzbkZGd1NRa2hIdXFOWFhFbHM4cVptVHMzMkQ4Mnc5OUk1TlJzWkVrY1gwYWhja3NQTHo4YUNRVyt1NnJxbHpMYTZkSUpab3dESnpQeXJHUE0rUGwxcDFnL1NmTk90NXEwa1RRNExkaUFGSG1jNXFzTFRpNmJoSkI2dEg2Mjl5ck9zemV5RC9lL0dtSFV1SmVJYnE2YVNTUzVSZ1FTZTdJNkhwUVh4eFJxVjdvY1ZyY1djc3pxVVZtU1lobGtCeHZ0dm1sM0ZGeTdlanZVWjFMSS9acVJna0ZmYlRiTmVmaHhWeE5xTjNIYzNkOWUzMHcyN05sMktnNUhkajhLdDV0UnZOVTlDbXEzVjdEMk53U1F5azV4aDAvR2dxbWE4dWhxOHlpOXVWUmxCR0pteHQ4YWM5T3ZiaU8vUXRlM1BJUmc4MHJIYy9HbUo1UStwMjVZYzNQRVJ2MUdLY1ltQ1R4dHlIUGZnWnpRTGRldXJ2OUpXMGtkNWNzblo0L1hNTndUNEdyRDBLR2E2dHJLZHBwc1BHckgyejRlK3EwMVFubGd3Q0FHSXF6dUNwdTA0ZXRYTytFNUNlYk80UC9PZ2w4enhpR09GcENDNTVWRys1eG5yOEtyN2l5MmtpMC9VcFV2cnFQN0Y4eGlUQUpXUlFNRHJqR2M3OWNWTjdtem51UmJzc1RrSk1zZ0lIVWpPS1lPTDlOZHJhZU5ZcGhQTGJ5b2lJbzl0aHlsVjNCUGVlbUtCcjlEZHhKSmZhcmJ6eVN5RXdDUlM3bHNkeEc1ODZldUk3Q3d1dE9udW5FZ3ZZTGRsaWxFN3JnRGZvRGp4NmltRDBWVzkzWTZ6ckVNa2IyODZXV01TajdqYzNlS2JOVnQrSkZ0bmU1MTd0b1NwTHhwYmdBand6M1VEWHBkbGRhdnFNS0c0dUpJNG9KSkdnYTRkTzFiS3FNa0hvTTVwOHMzL0FLTm00anU3cTVnZ2VSV1FjN1N0SjdJSlVFOXdPZmNNWjhhamVnYXVOSzErMEZ4SWtjRXNVcVNPN1lDNDVXQno4S2MrT0xSTG8yZXEyYzRsdCtUc25NVzR4elpEZWVjNCtWQnBxWEZrcGRoYnp5eFlKNUZXUnVZZkhwMThxZS9TVmQzSTlISENjeXpUUnl5TXBjcktRVDlqM2tIZW9CeVc0a2hjTzZCVHpNcnNEeU40NXg1RDNWT3ZTU0RKNk5PRDhra2twa25yK3BvS3B1YjYrVlZZWHQwTjkvdDMvT3U5dHFWN2xWTjdja2Y1Ny9uU2ZVRVQxSXlJMlNrbksrRDBOYlIyRjR1blI2aTF2SjZtOG5ack1SN0pZZFJueG9IMjExYlU3UU85dHFWMUU3cVZibGxKeXA3dHpUZGMzOTZja1h0MXpaSFNkdC94b2lsSFlEZnAxcEhka05idG5CM0hYdW9GMXJkYWdDNlMzTjJ1M1JwbjIvR3NUWGw0dUN0N2MrWDI3Zm5TZlFWU1c1WlpXazdJSnpQeUFGZ01qcG5yVzk4cUxJNWg1K3k1anlsOFp4NTRvTzl0cU4ramh4ZTNJS25LbnRXMlBkMzFLUmRTWHNTWDBOeE9nZmFXTlpYNVk1UjFVYjlEOTRlOGp1cUZwSUF1TnMrZFBYRCtwUjJGOGUzYVFXY3c1WmtYdzdtSG1wM3gzamJ2b0piYVQzTURSU3RjVEVnL3RTc2ZQeHFWZW1hM3VINFNzYnkxbWxSdTFSV2FOeXZWV0k2ZWRkN1BoeURWRWlUblZaY1lZajl2d09mZGlzOGN6VDNHZzIvRHJXcnRjQ05KdTFaaCt5U3VBUEVqdm9LYTRVOWZIRjJqYzk1Y2xQWG9ReXRPeHlPY2RSbXZVeDZtcVE0VzRXZ2gxcXdsdVVuV2VPNFIxVm1DNElZSGNZL25WMzBCUlJSUU5XcmZyWXY4Sit0TjJhY2RXL1d4ZjRUOWFiR29NazcxcnpZckRIRytEVEZ4SnhISG9Ob3Nra0x1SHlBeTR3TVVENHppdVprcXBYOUs5N0hKL1o3UngwM0xDbE5oNlc0VElWMUd6Q29UczBCSkkrQm9MTkxkOWFNeHgwMnFQYWZ4bG91b1JLNlhxS3pmc05ubUh3cGIrbk5Oei9iSS9rZnlvSEVuYXVEMFEzVVYxRUpZSkJJaEpBSTI2VmlRMENWenZrK05MT0EySHF5c2VrbDNLVWI5NFo2anlwajExK1RUanV3VnBFVnNISHNsZ0NLa3ZES0JKcmVOUmhWa09CNGJVRDNxRzE1SjhQcFNVbWxWL3dEMnlUNGZTa2hvTlFhNVRUaUNKNUNDUWd6Z2RUWFR2NlZGT05kVEZwcGd0UktZM3VUeWxobk9QRGJ4b0dEV1BTUlBiM1VpMmxxQkd1MzIzWFBmMHBGSDZWSlN5bVN5ajVNKzFnNzRxS1gxdkQyVE1IK1lKTk1raW9pZmZHZmVhQzdkTjQzMG5VNVk0bzNaSkh6a1BzRjI4YWtDeUxJb1pHREE5Q0RYbStHNEViNUVwVStJcXp1QmVKUk5ielIzMTZBc1NoWTFPZm5RV0VhNU9heWtpU0lyb1FWWUFnanZyVitsQW5rTzFMdURIZVhpTytMT2VSSUFpcC94REpwQkowcFp3Ui8xajFMYmZzeC8rUW9FTTl5M2F2diswZnJYQXp1M2ZUaFBhcUpYL3dBUjd2T3VZdG96MXo4cUNCYSs1L1M4cDcrVmZwVVkxaldVMCtFcXBCbVlZVWVGVFRpQzJSZFlsQUhSRjd2S3FnMTZacE5UbXljNFlnZVZBaW51NVo1R2VTUWxqMXJnSkNEMTNwVlk2WlBmdjdJS29PckduKzM0YnQwQTdUTEh6b0krbDBWWEJZOGdPU3RTZlRlSzJzYlUyNWdXYTFBNWxWa0I1VDQwb1RodXhkZDQrdmhXMDNDVFcxbExOYlB6RURtS040ZUZaeXk5WGJ3K0w4bVYzeEREZlR5YW5jK3NGRVJUOTFSc0FPK24yMGprRTBiWEhLMEl4ektpNEpIaG51cUx4eXlKY01IWGx3U0NuY0ttZHVCSXFNQ01FQ3RPVjR2QjMxS2ZScDlNU0xTOU1tdGJ6SUx5eXo5b3BYdkhMVXYwZEpuOUNHc0pJVVp6TzRIS3ZLTWMwZFFSVXd3cWYyUTVmUXByQkgvZnNmOEExeDBSVjgybjhpVzBqU3hRaEhHV2Q5c0hHTnhtbEN1T2JsNXdXVW5KNWVsS05UVHR0RGxueGdSY3JiZVJ4dlNPRWMvM1FjQUtUZ2JETzlBdG5pZ2xqTDNJa1pZL2JRSTJNdDVudUZTclN0WTFDMzRhZ3NyQmt0bWVjekNTUk1xdURqQkozT2RzWTI2MXJvME9uYVRiUjZqcU1DWERTWTdPMUs4d09QMmlPOCsvYXBOeFhiYVhybHZwNXRkU2d0Sm9NUnNnUXFGWE9jQUFiWThLQ1RhUk5mWEhBS2FoZXhPTlFlMzl1TU5sY2c0eWc3Z1J2U1RqRFNVMU9RYWZFcFNOY1o1Q1FGQlU5UU80Ny9oV3FjWTZUbzl0RHBjVjNCSXFRQkZEQnRnUElDbXZXT0pyUzc3U1MxdlNIbFRKZUZDck5nYlpQZGpmNTBEYjZPckNiUytJTHBHRWZhUEU2R0RtdzRRT0NHSTZZUHozNlVsMXlXZTdubHRvTlBta2Nkb2dWY0RiZjZiVXE0SG5zOUp2bnY3KytpVDFpSm9peEpMaDJ3Y0hieEZPU1RpOW11b05PalZpeGZMSnU4b3pnbkp4dDNZSGthQ3ZYczdiUzljZ1ZyVTNWK0VQTklQMU1BS0E0d1I3VGVmUWVkUzJHd1RWYk45SkVVMGMxNFdqN2NyN0lCSUlPZXVBUEtuV3k0WDFMVkxqdGdxUXhNbkwyam5id0l4MzlLZStJTkcvUkhEZDllMjExS3R4QmJzNmRraW9lWURiQkc0K3RCSHJiME0yNnhxcjZwS2M5U0k4OS9jUG5TRDB2NmRIcGZCdkQrbTI1WXhXMXgyS0Z1cEN4RUROTWNON2ZSY3M4dXA2ak03TDBudlpHQStHYWQvU2d4bDlIM0REc1N4YVJTU1NTVDlsNDlhQ0IyZC9wYitpeS8waTRkVTFPQ2NNaUg3ejVjRUZmaGtmQ21LSFRZNUxLSjFKVm1VSHlweTFLT0g5RHZ5QWh5WXljNXgxcnRwOXVUWVFuRzNMM0R6b0dYMWU2alFyZ092aUswdVVCczhHVDdWajdVWlVncmp2ejBOV0duRFVjMmpOY0t3RWdPZmVLaCtwcmJ2WnVCTW5NcWN3d080SGZlZzU4TVJ3NXY4QXRXQy83TWVUUGVlWmEyMWFJSlppUlYyTDQ2MXcwTzRoRVZ5R201SGJDOU83L1FwYnE2d0xvaU4ydk0vYmJrSDJjWVBkanI4YUJ2bk5wY05iZW93U3h1VVdOMGFUdERKSm5xdXd3UExmMzBPV3R5VmxVcXdPR0JHQ3BIaUtJakJDdHN5Uzhrb1lTbGxHK091eFBRK0ZPRWtQNlV0WlBWK1NabU9aSk1iOHg4Yzc0eDFOQlpubzUxdTNpdEliRzR1SWtlTWg0T1k0T0NTU3VmeEh2TlN2amZVN0szdGJMVlpBWGdCTUpDWTVzbkJIWHUyYW9idzdjYUZiV2Rxc2VpeVhWemdMSk5PVlNOaU8vT2M0SHUzd0tsRVdyV3VzdmQyTnhwTm84Y1o1b3c2Q1FFNDIzUHZPTnZIcFFNV2k4YzZMTnJGbFpMYVhZa2ttU05DUW1BeElBenY1MWE5UnZUWWRBVHM0NHRMczRybUp0aWJaQVNlYkFLbkhqaXBKUUZGRkZBMDZ2K3RpSGR5bjYwMW40MDZheCt0aS93QUordE5aNlVHam5CcXJPTFk3aldaYnVkRmtraWoyUmM3SU5oK1BXclFseHlObndxTmFoREhGb1YwMGFjb2VQSitZb0tQdTlObGpjRmxJOGFRdkFRMk1HcGxmaFJNUmpyVFBQR3ZNZGhtZ2FMZDViYVpKRVlvNDZFVlprRVFHbnhTOW9PWWdiWnlmblVFYTM3UXF3WFpUdWU0VkxOSm5hYXdSUzJlejluR1RpcGUrSFhIMW1OdVN3T0hNL29aUDh4L3JUaTQ4NmJ1SEIvVXlmNDIrdE9MZ0VIYjhhcmtaZGZYbTBxVURZQmxPZmN3cVVjTjQ5WWh6blBhL3lxTmErQitocm55WFB5cVI4Tk1QVzRRUmpENUhudFFQZC9qMXVYUFhiNlVrYWxkLy9iSlBoOUtSbWc1bnI1VkRlTW9vM0VibGN1cnJ2OERVeVlWWC9IRjNKYUs2a0FreUt3YndISzIxQkZOUVJUR0FSNVZIN3Ezak80WHBXYmpXcFhjeHRJbU9uVEZJNTlRSUlEWTM2ZVlvTlRicVZJVmNrMDg2SEI2bmRsUkpublRkZkEwelFYaDV4SUZ3bzZIUGZUaFlUeXlhcERnRWc3ZGVnclAxMS9XWVhjNXE3N0wrd1czK1V2MEZkR3JTeUg5WDIzK1V2MEZkV3JUa1RQNVVyNEwyNG4xSWQzWUtmeEZKWkFBQ0tYY0lRc25FMTdKajJYdGhnLzhBRUtCM3ZyRHRPYVdKZHgxVWQvblRNMFhLY2QvaFVsczd1QzlqYVMzY01BeFUrSU5NZWtvdDNkWG5hbk9QdStXU2FDdWVNYmdXbDFlem5iczRWSStWVkJaV2o2dnFiQWtoYzg4amZIK2RXNTZTbzFSdFRSdDJFQzQ5K0JWZThNUUZMT2FZRExPK0FmSWY2TkE3SkhGYnhpS0pRcXIweFFYeU5xeTNLbzNPOWN5NEIyb2Y2TGJabjdSTWJiamZ3cDdqbmt1VlZaUXZValBYSnFPUHE2NmRBVW1oUGlweUNDZkVWenN1SkFKRUxBaEFlcEZZbjdYbDZNOStQSDFsNzdhY1RhRjZ2SWJ1SlBaYysxaXRkS2NwR0kyT2VYZFRVNFNPMzF6UnlnYlpsNitCcUxYdWkzV25YTWxvNjluZFJ0eUZUNDdZUGhpdHZPVURacy9PckMwa2Mvb2MxVVk1c3pQdC93QVVkUUU4S2NYMjJHdUxiVHlXd0FvMUNIbU9TQU51YnpGV05CcGQ5cGZvaDFXMXZvVml1RElYNUJJc2d3V2o3MUpIY2FDQ1E4aGltdDVFVTl0SGdnQU52allINjBodGxaSlpiZFlnb2RWRFpJUFR3eDd1dEtZb3BTUXZaODJSaGVYYkZLTGZURGFwSlBPd1IyVEVTblB0TjNaOGdONkJYRTZyYUxEZFNpT09NODhiT2NlempKQTl3MytIalM1YnEyOVpuNVdIM3ljK05SMlNQMWhta3V1V2QyVXBuOTFjWXdNOU9wNlZHcDcyK3NMeWRZSFY0Z3g1ZWNrSEZCS05YZTJhYVdRWkRCQStWN3huY2ZLbnFHZEpJVWFJaGs1ZDVDTmgvd0ErdFFxd21OMWNvYm84NVpHQkM5Q1FRY1ZLa3ZSeWhValBnaUtOZ0tIWlYyWkZpeG05bFJNQ0dDNUxlMk56OEtlZUhOWFdEWEpDcUt3RUxjdVR0MUZSSzUxR1VvVWtiQjhBZW5pSzdhQkwydXE0UHNqc3pqYk9lbTFTYjI2NStza2s3WFZvMm9QZkE4aUtxcU5nb3dCVGhxMWdkUzBpYXo5bk1xOHBMWngrRk5YQy9JdG5rWUNnNHljQ24yVzdpakFCZGM5MjlWeVZqY2VpN1ZaSlM2MzFyZ25jSG1KSHV5S1IrbGl5ZXg0TDRmc25ZTTBFM1pzdzZFaU9yTXU5VWFCNFlJaXNseE94V05lNFk2c2ZJVlgzcGtEZjBkMHJ0TU93dW01aUJqSjdNOTFCVTk0eGZUbURZeHlyMDhqVWk0WHNsdXRPak9kbGNqclVZWkpKcmN4UlJ1N0ViS296MzFMK0YzRm5wQjdac0VTT01BRmgzZDQyb0phNWhnMC9rWUFLVjVCc092S2FxYlY0NGt0Wmw3VW93aGJLakh0RTRxejdpMW11dE1Od3ZNc0NGWkdkbElBVURjL2pWY2F2YnBCRmNyTEtxeXNyRGxEKzdHMUFoNFN0b3BrdnpKR3JGSXdWeU9oMzZVcDE3bU9scWdmbVR0VlBJRUczWEp6MVBmU2Zoa3pKWTZvWU9UdERFdkx6Ymp2cExQTnFDTVRkUEc4YTdzc2E5UE9peWI0ampKcGd1b3BKb3JodWFNS0VSays4TWZoVWg0ZXRyUzJzcDVKaVZ5Vk9Ya3dXMjZGUjFId3ByMC9VYlo1WlVTVEhOak9Uc2NmdStYU2s2TEtsN2NyTE1BV1lFTUIxSGw5S2syMzVQWGlZbis3MUZYaU1Oc3l3RmM0a0E1V3dUNWRSMTJwSGFhcmMycVJTaSttM0xLRlNVNWpKd0NWMzJQVGVra2FKRUhhWExCenkvZjNBSHU3cVN0YU1KL3N5QUdHTS9tYXJtbXZEV3NYTXZFR25ReVhidUd2b2x5ekU1SE52OE1uNW12UVo2MTVmNFdDcnhYb0tBdm4xdUU0Sis5N1kzOTFlb0QxTkFVVVVVRFRySDYyTC9DZnJUVVRUcnJINjJML0NmclRVd3hRSXRSV1dTeG1XRWtTRWJZR1NmS3E3NGsxUzhHa3loWTM1T3p3REdkaHYzMVpyRFB4cUFjUzJ5dHB0N2x5aWhTY2ZIcFFWYWwxYzNKZkxNZVhHU2FReVhrcGtJR2VicGlucTBDUjJzN2tBSzJWWEl3V0hqVFZIQ3IzWmJmc3djbGdNNytGUzNUV0dGenltTUtMZTVtaWhDbFhWbkdkK2hIalVpNGFTVDFPUjJQc0Z1VmMvalVkNTFra1pnTmlkczl3cWJXRnVMV3lpaEdkaHY3K3BwUDhBTFhrdk9wZUluWERuL3dBbVQvTWY2MDRQbWtIRGcvcVpQOHgvclRpNDhxcm1RWGx1bDFieVFTWjVKRjVUanJTamc3MXVIV093dTVWZFF5OWs0R09iWTdlK3NTWUF5ZWdyaHdhYnE5MTZHK21DcEEyOFVZYlBLTjhIM21nbWQrTTNrbncrbEl6dlMyKy90a253K2xJbW9PYmIvT29UeDlEejIxc3d3Q1g1U0QzakJxYkVWRWVPbzg2WmJ5ZnV6WVB1d2FDcEZ0Z05Vd1FydVBhNkRBSGlhYmRVUVBlTVVHUVRnQWQxUGZadkcwN3JIekVrZ3RtbXN4R04ybmx5Y2JEdnpVdDA2ZVBEM3kxOGNZd1VIWVpLcVB2QTcvS243aDYxNXA1Yms5RVhrWDMwd1I1Njc1WW1wWnc5aGRPWWtqZHp0U001NWJxMnJFZjFmYmY1U2ZRVjBhdWRrZjZ2dHVuNnBmb0s2dFZaSjMvR25iaFRINlVtR1Juc2ZIKzhLYTNIZlNyaFlIK2xzdXdQK3hISC93QzR0QXkyMXpOWTNra2tEbFR6dDM3SGVwRHc2NjhsdzU2dXlqNm1vcWs4VThrand5cEl2T3dKUTUzeWRxbEdncUZ0RmtCM01oeVBJRC9uUVZwNlVVN1RVcnlNZDhhL0gyYXIyMHZHdHRJaVNJZTB6TjA5OVdWeDJxemNTelJuN3BpWDZWQWJuVFBVMTVZOGxRU1ZCOHhRTkRYOXpITDlvMmFtT2lhV2RTczNuS2txcTlQTTlLaGlXVXQxZXJIdWN0akhjQlZ0YUVJclBUakFNRG0yT0t6bGZrZWp3WVMzMno2aXBid3lDNWRYTHNxc2NjMVNQaHFTMG1qZTNuVG41d1J5OHZsMXA5MS9obTB1aDJzV0VsOFFkalVkdGJLNDA2Yms1Y01mMmxOV1RUamxsdTdTRGh2T24zMGxzSFpvVG5DdDNWTnZTUHB4aDRndGJyMlJEcUZxRlo4ZmRlTURIekJxSTZMYVlZdTQrME81SnEyK045T0Y1WTZRZVVFUnVRMmU1U2d5Zndxc3ZQbHRiU3J4SFBieU14SWtUY25wbGhWbzhDR052UXZxSmx5RTlha0o1bTV1K1B2cURhYkUxeHhrNWtQTVFVQkk3OEhZL0dwendEQzAzb1kxQ05Ua3RkeUFFanpqb0doN3FJakZ0YkVIKy9rZmdLajJxUGRQZTlvMHpjeWtNQ3hPUERwK0ZTZGRLbjVqN2NZSFFuUDBwQnFXZ1hGeXJMRUVZNDN6Smdudi9sUUliQ2RKUVZmbERqZkJOTXVxV0tTcmR5U0ZSeVMrd1AyanY5UEduV1hTTlJzRTlZa1dJRlIxRWd5UGNPK21xU1VTUTNBbUxOTDI0eTVPNUpQU2dUY3kybllBRXZsdVZTT281dS84SzJna21VZHAyczJGeDdTdjBOSnJreUs1U0tQTXZNQWk0NkdsY3hSVVNGRG5sUE1kdkdzMi9IYng0Y1hPOGFLa2xhWlE3a2xpTWJtbmpoc0VhcTJCMVFrL01VeFcyZXlWUjU3MUl1R1VINlNZOUFJeWM1NjdpdE9WdTd0WWR2cTNxa0lHU0ZVN0tQNTF0SHhIYnRBVk52STh4UDMrMTIzOHNVeHpuMlNDUmp2enZTTlc1RVhPU091d3hSRDdlNm5OYzNWcmMyOGlwYzJ6OXBFWFBzRTk0YkcrRFNuMGdhbGF4OFBhTGZhcFlyY3E4M004S1B0a3B2aHFqc1hNeFZzNEhuMXB5OUpha2NHYUN1ZGhJQWM5L3dCblFRTFY5VDBpOFJqWTJVMXVrZ09BaEFaUjcvOEFsdlMvaG1mazRaV0lOK3N1WmxCSFRaWXpVWFdQSkF3UUQzKzZwSHAxcmN3Mk5yYnl5UVdxTExJNnVGNW1PVlhKS25ZakE4cUM0WUxlTzU0V1NOeU1QWll4NCt6bXFHMWFMdDNhU2FhTlVLTVU4U1RqcDViVlBiYVc1bHRwWVJNOGl4V3ZNanVNa1p5RDVia2VIU29ISnA4aktUSjJhc1FOODdrMENYUVl6YjIyb2RsbHlpY3I3YkU3OVBERkpacmVkclJwcGtOdWpqYVU1Yk9Oc1lHNXArMHF3RnJIREdyYy9yakJXSUhRY3JISy9HdEw3VDU3aVgrMENRZ1lITjAyMitsWnQ1MDdZWSt1UHY4QThSaTBqamdaNG9vbVljeHpJNEJadmNlNEh3RlRQaC9oR1BpcGJpZEx0clV3RlV3MGVlYkl6WEhUOURqQlo3aWJtYm0yRVorcHBUZE5jNmR5SllUM0VVVHVUSXlURlNkdGh0ODYwNG41ZlE0dHhHenZyQlNNZEFJVDhlK3VUZWpXMXQ5U3RJQlBMTTEweGlEbFRoUUJubVlkTTVJNzZqN2F6cURqc3pxVjRjZU03NCt0ZDdXOXZZQVp2WGJsV3g5L3RXeVBkNGQ5Qk1yTDBhcHBHdGFmZVIzU1RTUjNFYkhDbFJ5ZzV4akpxMHFvTFNOV3ZwdUo5TEVsN2RTSzE3Q0NwbVp0dVlkZCtsWDZldEFVVVVVRFRxNCsyaS93bjYwMXQxTk9tci9yb3Y4QUNmclRQUExIQ3BaemphZ0RzRFVLNHVoeFlhaXZRTkhsY2Y2OGExNHE0OFhTVUVObkdqM0w5T1luQ2p4ODZiZldkUTFiZzV0VHZwQXpUaHlnVlFvVlFRUHFDYUNFWEZ1N1d5b3pLTWdkTnNVMFhDUENCRUdYQndUZ1lJNjdWS0hic2JkcEdIdGdaVEkvMW1veEp6R1YzYnF4eldlN3c3eitQRGM3ck1lQXk1T0FTS25TWE1MN0pLcmY4VlFET1dBN3EwMUpHVXhTZ2UwUnlrMXB3WHh3MjRPaXB2OEE5bzMxcHpZN253cXJ1Q2I2OGswZFVqbWIySElPL2p2VTFpMUM1UUR0dmFYb2NqY1VEdXc1dHEwNENjRkxFZUFJL0VpdElaa201WFE3Vng5SHMzTWJOYzdDV1Jma3hvSnRmSC9iWlBlUHBTUTB2dUlETGV5bmNLQ04vZ0thOVNuRnFqY3RBa3Z0U3RyQ0o1SjVNS2lsbXg0Q3F4MW5qZHVJNUVzTFMwN0tJTVpESTdaYmxBSTZkM1d0K090VVlXSmhEZTFPZVhQbDMxSHVHclZUYVh1b01EelJzc1NqdU9RU2ZqN05CMkVaZFhYR2ZkVEJxTWhhNE1TaFZSR0lBVVlCcVVUc2xwRklRRDJwUEx5a2RCNCs3enFOejVubEpVRTQ4cXozWGZMK1BDWXp1a0dRcTdWMkU4OGRuSVlwV1FydjdKclQxYVI1TWNwSDg2ZC8wUzBWbzZ2OTVrTEg1VnB3Ty9DM0dPcG1XTzBtbmFVY25zY3g2WUhTcDliNjFJd0hhcHRqdXFuT0gzRnRyZG16N0FTQlc5eDJxNG9MUkpHWkI5NWVublFPRWR3azR5aHpUdHd0L3dCWldidTlWUDhBL0l0UXVHZDRKbUdjRld3UlV4NFBsRTJ0TTRQL0FOTWU3Kyt0QkNORTArVFM3SjRKZVh0TzJrWnVYelkxT2RLeEhwOERkNVZpZm5VUHY3NUxSM1psSnpOeTRIaVRpcFpaY3k2ZEgva0Riem9LOTRya0VuRTh6WjZJbjBxTlg0eWRxZk9JMnp4RGMrNWZwVFRLbk5JbTJja0RIalRwWk4zUnZ0bWgwK0tTYVFOMnJkR0E2RHdydFo2MWNyYXU5cXF0SVNBc2JIbDJvMVdaSTR4QXFnanFGOEtZNGc4VjByYzJCMTY5S3hqemR2UjVzcmhKNHBla3Z2OEFWNTU5TnRwdXdhS1FPVmxUUGRpdGJCMXZndk1QYkJybEJkelhGdWUxWkpBdXdBcmFHYUMyWlowWGtrRHFDbWV1OWJlWkliZUxzbUhrS3RmaXFLNmZSSW10UUdaUUFSbnhBSDg2cTcyVEdzbWVvN3F1S2U1N0RTbm01QTZ4UWgrWHZKQUZCU3ljTTNXbGNmR3pXT1M0bGhzb0hta1JkaXg1bVB5R0I4S2RlQjdsdEo5Q3VwWElERm83cVJoeTVVN21NZnpxUjN1cDNWM3FNbHpGUE5BSHg3RWNod01ERlo0aWVXNDlGK3JtVnk3bkF5MytOS0N0aHIrb2M3TXNpdXVUZ3VtZSt1MFhFMm9HVlZLUUZTUnpmWjR6K05NZk9XNWNaQjVSblBqV3drQVlBamNBOVBHZ2t0eVd1WTVPWnN1VmJBeDAycUVTWmplNmluV1hMRWhDaTVLc0RrWjkxVExMTkdXMnh5ZytPRDRWSFprN2JVSmpKbmtFaExFRHpwYnJ0Y2NmYTZjd0hrVDFoeEhrY3AzWHFmSHlPMUoxczQyWUE3SHhwWEtVZVFKRUNVUVlCOGE1ZUlPYzFtVDY2K1cvMW5UZUtCSTF4elp3Y21uN2gxay9TVGI0K3hiNmltT053VU8yTWVGT21nNS9TTExqT1lpZW5tSzA0cFBkOXBjUWN0dXNiTmtmckhJMjcrNnRBSkFQYjVTT21PdWE1dTdJL0xzQWU3TzYxbFpYVlVBd1JudzNGQjNpNW84QkkwOHlSbjRVdTlJNERjRmNQNWJDODRKUC9sMDN3dUNnSEw3Wk9jSCtWT25wSlVEZ3pRNHhITEl4ZkNwR2haaWV6OFB6b0t0Z1FOSU03ajltbmEzbTdGd0ZCZHM1QmJ1SjJPMUlMVzExQ1dSbU9sM01Lb01ublhmYnZwWEdTMHB4N0lEYnNlZ29IWFNwNTVyNmZubHlSQ01CanRqSjZDbTRHS0tNSG01MkMrMjdIR1BkV25ONnZlbVdLUnVRUXVwSjc5dHFqOXRxRE1xbTRVY29HeHljWnFXNmpXR0h0bG8vVFhYcWNVTWNNbVNoeUdJM0dOdHZLbXg3dVIzMmNrOWRqdFNXUzdlNVBhSEF5QnNLeEd4eW9PTmozZjYzcVNhN2I4dVc3cWRSS2RMVm5oQkpKeWRxbG1sOE5RYTlZM0lsbmFJcTZnRlFEM1pxSFdOOUhCQUZJeTNqNFZOT0dicWNXVjFMSmJ1c0hhSmx6c3VjYmIxcHliUStpMktLVVRtOWVXTW5jTkZnSDhhWGFqd2pwMHRuNnZFMXJieU1NQnNNVDMrZEtkRW5YWGRjdmJTZVE5bGJvclJXL05nTURubVkrUGQ3cWtGdnBFTnRLeE1rOXd6dGtMSTJRdnVIUVVGZTZUd09sdHJsbmNEVTJab0xsR0tDM0k1dVZnY1p6MDg2dDN2cExiUGh3aVJCRk9kOFlQdXBWUUZGRkZBM2FvQUFya2JoU0tnZXMzYmhpdk43cW11dXpDR05jNXh5TWZsVUExd05IcGsxeWNleEhuZng1YzBGUThRWFJ1ZFp1WFU3S2VWZmhWcTNWaWxwd3BIcDhZVlRIYVlDSHVJT1Q4U0RWVjZOWkhWOWZ0TFVnbnQ1UnplUXprL2hWdjZ1dnJkc1ovYVdMdEZMY3ZYQlVBL0gyYUxMcTdWbHExdzZmWXI5eEI3SkZNelFNOFlZWURIeE5XZnFIQkZ2Y01URlBLaFhPYzR3ZndwSmFlajB2TXJUVHNrWEx1VklKSGwwcVNhWFBPNTNhQmFicEp1WnZiKzZOMklyT3ZXYXJwa2NxQUREbjVkS3RTeDRTc0FoRVVzNFFJejgyVnkyUGhUUHFIQ1VFM0RYT3NzeEpTVTRPTVpCOTFWbEd2UnhKbWE4dGlmdlJjNkR6QjMvQUFxeExtSVRhUExjUkQybzhGc2VYZlZSY1BYTDZWcmxsTWpFQlpnRzl4T0RWeHN5Mk42SFVadExrOGtxbm9wYmJQdTNvR20wdW1oZFpBVGdrWkFwWndUT0xEWHJMVHBjOXBKY1NPaEEyWld5UmorZE10d2h0TDZXMXlmczVPVWU3Yjg2Y05DN1NiakRoMlJkMWh1bVZoNEJrUDVVRnMzc3F4TG52Ni9oVVcxaGpOSnlBWkRJclo5N0VENlU5NjY3TENXVDd5L3pGTWNNeGxrYVZSa0JWeG5vUFoyejdpU2FDbk9Pbi9yV0syQnoyYTVQaHY4QSsxUFBEMW9nNEx0MWNBTk5mZHFjL3RBS3kxRitKWkRlY1RYZlo1Yk1uWm9EMTIyL0dyVnRORXRwN1RTN1U4OGNFTGxQWXhuYmJ3OHpVczIxamw2M2FEejgxL0FHY0RtWEtBanZ4VEsybTNDc1FFeWZFVll5OEsyeVh0OWJMTk1HakpkZW5jZHgwOEtWYWJ3blkzRngybnJFNWlaZWJHUjdPM3VwSnFKbGxjcnVxL3RkTlcyWVNTZ0dRZEZHK1BmU200UWlhWmNkSWZxYW10dndoYVN1WmpOT1VsbEVjZUNPZzZucFd5Y0oyVStyWHlHYTU1VWp4K3o0KzZxaW5iKzJOaHFSQUdDT1Z4OGdhdHpUTHN6YVJZNnJGMWFNQ1FmaFZlY2FRaVBWVmtqQjVBZ1FFOStOdjVWSk9CTlFFdWhUV3JrbnNXeGs5QURRUEd0S2tkNHMwV09TZEF3OS9mVWg5SGt2YWF0Y2VIWWJmeGlvanFNMllGaVp2YWdrSkgrRS93RHRVbjlIRFoxcWNmOEE2WFAvQUsxb0luckJMM3F4Z0FnTzBqK0k5ckEvSE5XRXpDSkpGNWwrNHZLdVJuR0tyNjQ1WmRUdURrRTl1c1hUd2JKK3RUN1VZWTBFOHJJcGRDUWo0M0FvS3ExdVV2cmR3eFBnTnZkWEFYTnNscTVManRVUE5qSUIrRkl0ZG1ZWEY5TXBZRkYySzljOTFRRzh1bmFjZTBTeW5kczlhNTVjMzFqMWVHWHhZL2wrcExlR2FTNkpVa2s3NThLUWVyU3ZLQVpUa21sdW4zSXVyZEpmMml1Rzk5RTBUQnczTmpldWttbm10dDVwNnNORkRLTXlTOHpZNk5qRmE2anA3MmVwV2tRa1owYkdTeHp2bW5IU1dic3djODN4NlU0WFZrWkpVdUR2eTdnR2lGa0U0V0pVSjZESFNyZHVwczZKT0JubE52Mys2cVd0M0xTRUVZT2ZoVnpUV01tcGFKZVdTU3RFOHRxVVdWZXFrcjErbEJHRVFNZVlIYWxXdXJ6ZWpUVlZHTWsvL3dCMHFoMzR1NG8wVy9hM3U3bVRtak9Dc2d5cHg3NnR2VE5jbTRrOUMycDNza2FSeUNSb3lFNkhsWk4veG9LNW55SUkrVG92TnpNVzZBSG9LNHh5ckl3WURCQjJKcDRzYlJaNGdTQXlrbklZZU9LY1k5R3QySUxSS0FOeHNCUWNiV1R0WUl6M2N1TVUxemxvcEp4a2N6eUhwMUkvbFVxaTArR1BvdUJqcGpha3N2RGx0TlBKT1paZ1hKWWdFWStsU3piZUdmcHRGaGtESTJIY0syR0NCdHZVbFhocTJ6Z3lUS2V1NUg0YlZuK2pscGcvYXo0OTQvS3F3aStNRW5idzZVNmFEN1YrdzVpQjJiZEJud3AwSERscGpQYnpuSGRrYmZoWFczMG1Dd21Na2NrakVqQkRFWUhUd0hqZ1VHNTVBNDVlWWQrY1ovMS83MW9YeXBJVXEyKzNVNC8xdjhhNkVGaUFEN1BlQ0RucjFyV1FNR0hzNXlNNXg4ZitWQjBpY3huQ0hkamd1UnpmNkhXcGh4SElUd2xvemptVUVMa0VmM08rb2NoVWZabFNNNUcyd1A4QXJOUzdpWi8vQUlTMFFnazh3SHg5aWdpcXV5dUdEa01PaEI2ZTZtKy9zQk1wa2hBRWd5U2dHRmYzZUIrdEtReDlvNUcyT3RiNTV3VkJPNDYwRU12SnBZT3pFdk1tWDVHVHZBSU5NazBuTENrQSs2QUNTRG5OVC9VZEpnMU9NSko3RWliQ1ZSdjdqNVZGSnVHNUxlUXh1ekhCMlpSc3c4UnRVczI2WTUrc3NuMDJ4SDdNWStsS0lsUE5uTzlPMXR3L0gyYTh6eWMzZnVNQ2xRMEszQS9XeStlTVZYTXh2S3lwaFRUM29kOU90dE1obmtLRjF5aFk0TzNoWEdiU2JaR1JXbWxITjVqTktiV3lpdDFJV1NUbGZjbHQrZzhxQnppdUMwNk1Ya2ptQjltV0orVjF6NEVWWU9qNjNyU3drejIwV29SRDdyUm5zcGNZR0J5L2RQZnZrR3E2dDNDTUNRTi9MOEtuT2czYjgyOG1Bd0lVdCt4dDNlN05CS2RONGcwL1VKQ3JxYlM1UmdoaHUxS09HUFFMblppZkltbnFtaTNsak53U3l4U0ZuR01ZUFR2OSs0cDNvQ2lpaWdqWEU2czB5Z2s4alc1WEhuempQNEUxQmVQNTBzdUdURW4zcFRnRGZxZXArVzFUN1g1Z3VvV3NMcUFqeHNRNTdqbnArRlZoNlU1R1MyMDZCbTlwbUxFZUF3Y0Q4YUNPK2o2eE1tdWV0bllRbFVIanpNY2ZUTldldHNIMGEvalBWR1Z2aGsxRnZSNVlOSHA5dEl3L1h6dFAwNkJSeWo4UWFuMFVJUHJjSUdlMWpQekZBeExQMnRyYnUrZVNaZXhjajlseHR6RDhLY1hqTnZ3K2tTak1ramhGUHZwcXMxRTJuM2xzeDlxTTlvbjh4VHZwaDlmdDdRbmN3N043eDMwR1VqOVd0cnRBUVJEYmlQSUh6L0dteWY3SGhLTngxZG1Iek5QVjBPVFROUmt3UnpEcWZlS2FOVmp4d25BRS9Za3ljVUZHYW5DMXJxVnhHZHNPU04vSGNmV3JTanZUZTZIYU56RDdXQmVWejNQanA4eHQ1MUF1TDdVeFhzTnlCdE1tQ2ZOYVVjUDM1T2l2QXpZQ1NIbGJQVHYrdEJJSHV2V3IyR1p2dk9NeWU5ZGo5S2ZlRGdUeExZdHVWN2JieTJOUS9UbTlZdXBDMndRRnZpZXYwcWM4RkFIV2JZNDI3WUVmSTBGZzZuZ3h6Zzc3QWdlSkcvOEFLbzdiNE9rdTRUN01vV1lqYm1HT254NmU0VXU0aDFTTzJrblFFY3lqSHh3RFRQYVhndXVGTDRod0k0dzRiR050czQ4c0Q2MEZQOFB4bTk0dnRwSlBiQW1NemU0WlA1VmRWbmI5bllXaEkzQjdUNG1xejlHdGlMblViMlk0eWtLeGovak8rUGxWdlhFWWpVQURBQTI4cUJrMUZ2VStKVW02SktNbnpEVnRZTjZwZVhsb01lMTl6M1ZuaUdNdmEyMXlBZWRjS2E0TS9OTmFYaUEvZEFlZ2ZJTFlSbXpoL2NHY0R1cEJZWmU4MU5oM2hnUGhUNWJsWlpvNVY3OTgweTZaR1JlM2FIdmxiOGFDcStMYmNTYWRLK0R6eFNCcy9HbVRnL1VQVmRRbnQyWWNrMGU0OHgwcVo2NWJDVVgxdmdEbURkZkxKcXROTWZzTlhqQjIzS21nbVY1ZE04enhnKzJRRkI4ODdWWVBvMkIvVHR6emRmVmdQL1d0VmJMSUUxSzNMSGJtQjYxYVhvMGZ0T0lMdHU0d0QvOEFOYUNLYVF5WFd0MnVSdFBmRmlQSExZK2dGVG5Xcmd4YVpLeDY0Sk5WN3dQZE5mYS9idEtBQ3MwMkFQN3BiQi9DcFZ4UGRuOUR1MmNjeUUwRk9hOWY4dHRLQUR6czNLQ1BQLzJxR2tsam52TlREVUxlSzh0b3d4VlR6OHpudklHYVFMRFoyNDVZSUFXL2ZmY21wSkkzbG5jcEpmamxwVEczc1dsTGNwNXNnSHZwY2JneUVBbnBUZmZNaVJjb1VjM2ZTelRyZnQ5T1M0UkE1NWlyRHd4VllPT21hbTFyTVY1dG02MU1sMU5Yc2huOTNCSGZVQkVQMm81b2dQaFVzMFZyVXFpdmJJU1RqbWJ3b0Z0bzIvTVRrSHBWNTZmZHhRV0RUU043S3JuZjNiMVU2UG82d3FvdG9SeWpmcjdScmhyUEdNMzZQOVVnZkJZWU9PNGVGQkhPSTF0ZFVtdVdrUU1yU3N5bndHU2FtZkJWZzB2b1AxVzB0K2RqNnpNUmpyc1VZL1Nxd3Y3MWxqeGtrbXJqOUZBNS9SamNxeDJlN21CSjh3Z29JcHBFSEpwc2R4TXZLMGpmWkxrKzBwM3pUc3BBT3c3aGp6Tk1xU3Vtb2l6a2xhVklDVlFFN0FLZTZuOEtyQm14aGV1ZTdGQmo3b3hnazFoWmN2eVlKQUhVR3N5Uk1FTFp3Y1o1U0s1NE9Ec2MrWS9uUWQrZHVpSGI1MWdEMmNZUHhHOWNVZkEyUFg0VjBWaXd6Z3NlL0JvQW5HUVR5NHpnL3dBcXdUaEJ2bkk2bnI4cUNmY01iY3RhQWdFNXhuQjYwR2c1TTh6QWdZLzBQbFhNb1NmdmdIYnIxOGZ5K1ZkT1gybEFHV3lkNjU4dzZrSDNZb012Q2M4eWpHTWZENFZMdUlGWWNJNkdHUFB5cXZOdDk3N09vaHo5eGJicjRWS2VKNzRXWEMvRG5NL0trekNNaGgxK3ovQ2dpdU9iUE5qSGNNZGEwL2F4eTh1ZWc4YTd6UVk1bkJDZ2ZQRkorVlNWSTN4MzBHVmxIM054a2VGZFNBOFpqa0JkU2NqeFh6RkNCTTRPQ0Ixd2R6V0hBZFIzWngzMENDZTNrdHhrTVhqSjJmb1BjZkNrclNrSExObmFuamxKVTVYS3NOODlDS1JYZW5oVWFhM3oyZjdTNHlWd04vaFFKQmNjbktNQUh1ckRPblViNHBPTXRzcHdNNXovQUs4cTJEY3ZUSFRPU2VvSGhRTHJPMmtua1FRKzBUallINFZNdEkweTRpZ0xTenJHQ1FDcmJuSCtqVVFzcHV5UWdBNXgxejAzNi9oVHNOVGw3UHM0cGVWUmxjRTlUdFFXRmFXaUpOYnMwNkgyZzdFSVJrZ2dmenFRVlZPaGF4ZC9wTFRvZWRpaGtVRTU4V1dyV29DaWlpZ2gzRnQ0TGZYOUlSc0ZTR0lCOFNjZnpxdHZTd1cvUzlnR09jd00yTS8zcXUrNjB1eHZiaUc0dXJXT2FhRDlVN2pkUGRTTFVPRk5CMWFWSk5RMG0ydVhSZVZXa0JKQXpuSFdnaW5CK21tMDBXMFJ3Y3hXNnI3cyswZnhhbmxYRVZ6R2NiWndha1VkamF4SUVqZ1JWQUFBQThOaFdEcDltVGsyNkUwRmRsVFk2MnlIWlhPRDdqUy9TdjhBWTcyV0k1NUdKSVB2cVlUYU5wdHhJSkpyS0ozSFJpRG10aHBWZ0dEQzBpeU8vQm9HUFZJLzZrdlA3dy9uVFhjS0g0Wm1JWE9BR0ZUVjdPMmtpTVR3b3lIcXA2R3VRMHF3RnViY1drZllrWUtZT0tEejF4ZGJ0TnBJbDNQWk9BQU80WTNxTzhPeXIvdE51eCs4T1llZmpYcG1iaEhoNjRpYUtiUjdWNDIrOHBCd2Z4cEpGNlBlRUlINTR1SHJGR3hqSVZ2em9LRzAyWm83dTRRbnJ0dlZpOEc1R3RXQUF5RExrbjRHcHd2QXZDcXVYWFFiTU1Ua25sYjg2Y0xYUWRLc3BVa3RyQ0dKME9WWlFjajhhQ3RlTTdrcnhSZlFLMkEzSmxmRThvb1VUV2ZDK3JRY283SnJDVjJiL3dDNlFSOUtzZTY0YzBhOXZHdkxuVGJlVzRZZ21SZ2NrZ1lIZjVDdDMwSFNwTGVXQnJDRXhTcnl5SVFjTVBBNzBGV2VpVzBQcXQ5ZHN2MlprVlEzanlnLy93Q2hWZ1MvYWxoVHBwMmhhVnBOczF2cDloRGJRczNPVWpCQUo4ZXZrS1UrcFcyYzlnbWFDTFR4Q2Eya3Rtem5KSzAwYWFDeVNXN2RVT3dxZm13dEdmbU51aGJ4cmttazZmSEkwaVdrU3UzVWdIZWdhTk5tNVVDTWNZMkZKTFJPVFhMbGNkUnpWSmwwKzBRNVczUUhydFFOUHRCT1poYnAycEdDM2ZpZ3FIWENZdFZ1QXdPNVlWVkdyUXRaYXRJTUVlMkdGZXFyamh6UnJxUXlUNmJieU8zVm1CeWZ4cEJjOEE4SlhrbmFYSEQ5bEkvVExLZnpvUFBGNU1YdTdabEJQTVA1VmF2b21tVjladVZMQXlDM0dSNGUydFRSZUJPRlZaR1hRYklHUDdwNVR0K05MZE00YzBiUnJ1UzcwM1RZTFc0bFhsZVNNRUZobk9PdmlBYUR6OTZQYmk0WGkyVkNWN09GTGwrbTQzUDUwOWNkYTlEYVd4dFkyVnBpQ0dVZnM5S3QyejRLNGEwKzRlNHRORnRJWm5CRE9pbkpCNjkvZlhLNTRCNFR2SldrdWRBc3BYWTVMTUdKSitkQjVaZVJ6R01uZHF3dVV5eEhRWitOZW92K2pqZzMvd0FOMkg4TGZuUWZSendhUVFlSExEQjYreTM1MEhrcVZubGJjZStwUnc0T3owNERsUHRaUDQxNksvNk0rQ2YvQUF6cC93REMzNTBwaDRDNFR0MENSYUJaSW82QUszNTBIbnFTMzlyT0RXVWtsakdGR0s5RG5nbmhnOWREcy80VCtkWS9vTnd2L3VLei9oUDUwSG5zM0VpamRqU04zWSsxazU4NjlIbmdUaFZ1dWcyUi93Q0Z2enJVOEE4Sm5ydy9aZnd0K2RCNWN1bmFXYytXMVhuNk5tTnY2SjdoeU4xdkhPLytLT3BaL3dCSFBCMmMvd0JITEQrRnZ6cDNzOUMwdXcwMXRPdExDR0d6Wml6UW9EeWtuRy9YeUh5b0tVMUZSYWNZWEt2L0FOcEtXQkEydzNoVDFFM01veDBYWVo2YkhIOHFzcTQ0VzBLNm43ZWZTcmFTWEFIT3dPY1p6NDEwVGg3UjQxNVYwNkFMNFlQam54b0t6bFl5QW5CMkgrczF3TGRYWld6NG5Za2VZcTAyNGQwWnV1bXdINEg4NngvUnpSczUvUnNHY1k2SDg2Q3FsWnprNU9EMzQ3dkFWM0xsYzhydGtleURqYjMxWjM5RzlGLzNiQjhqK2RCNGIwVTlkTnQrbU9oL09ncTVtSFE1SjIyejhxMkpDN2dFbnpxMER3NW94SUowMjN5Tjg0UDUxZ2NPYU1CZ2FiQmozSDg2Q3IyQXhuQnlmRHBXa250NTdnUnVmQ3JUSERlaWdBRFRiZkE2Ykg4NkR3M29wT1RwdHY4QUkvblFWTmxpU0MyY0hPTWVGT3ZwSEJIQVhEUnp1cnFjL3dEbDFZWjRhMFFuSjB5M3o3aitkZGI3UXRLMUt6aHM3MndobnQ0ZjFVYmc0VGJHMi9oUVV6cGVwSFZMTmVZWWxqeHpBRHFPbEtFR0g4ajRWYWR0d2Z3N1pzV3R0SHRZaTJ4S2c3L2pYWCtqR2g0eCtpN2ZIdVA1MEZVNTVHS2dNVDFJSGRXNEpLaGduVHB0ak5Xbi9SalEvd0RkZHY4QUkvblczOUc5Ry8zYmIvSS9uUVZlb1ZQYWIybEdCZy82NlZpTXl4b1drSURCaVZaRDFYUHM5ZnhxMHY2T2FOL3UyMytSL09zSGh6UmoxMDIzK1IvT2dxVzUwdExsVExiQkk1V3p6UmpvM21EM2U2bVl4TWpublJnVlB0QnRpTVZlbjlIZEgyL3EyMzI4aitkYVM4TWFITy9QTHBkczdZeGtnNSt0QlNxS3BBQkJJNkRCN2pYUm5aK1htQkdDRDQrTlhIL1JQaC8vQUhSYS93QUovT2c4SjZBZXVrV3Z5UDUwRlY2Tk16NjVwaWd0bjFtTUh3KytLdTA5YWFJZUY5Q2dtam1pMHUzU1NOZzZNQWNnam9ldE85QVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRZi8vWiIgYWx0PSJZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBlbWJlZGRlZCBpbWFnZXMsIHNvcnJ5Ii8+CjxoMz5SZXNwb25zaXZlIEltYWdlczo8L2gzPgo8cD5DR1NtYXJ0SW1hZ2UgaXMgY2FwYWJsZSBvZiBhdXRvbWF0aWNhbGx5IHNjYWxpbmcgaW1hZ2VzIGRvd24gdG8gYSBzaXplIHRoYXQgaXMgc3VpdGFibGUgZm9yIG1vYmlsZSBkZXZpY2VzLiAgVGhpcyBib29zdHMgcGVyZm9ybWFuY2UgYnkgbWluaW1pemluZyB0aGUgaW1hZ2Ugc2l6ZSBmb3IgbW9iaWxlIGRldmljZXMsIGFuZCB0aGVyZWZvcmUgaW1wcm92ZXMgcGVyZm9ybWFuY2UgYW5kIHRoZSBnZW5lcmFsIHVzZXIgZXhwZXJpZW5hY2UuICBVbmxlc3MgZGlzYWJsZWQsIHRoZSBtb2R1bGUgd2lsbCBsb29rIGluIGl0cyBkYXRhYmFzZSBmb3IgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG1heGltdW0gcmVzb2x1dGlvbiBvZiB0aGUgcmVxdWVzdGluZyBkZXZpY2UuICBJZiB0aGF0IGluZm9ybWF0aW9uIGNhbm5vdCBiZSBmb3VuZCBhIHJlbW90ZSB3ZWIgc2VydmljZSB3aWxsIGJlIHF1ZXJpZWQgZm9yIHRoZSByZXNvbHV0aW9uIGluZm9ybWF0aW9uLiAgIElmIHN1aXRhYmxlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCB0aGVuIHRoZSBtYXhfd2lkdGggYW5kIG1heF9oZWlnaHQgcGFyYW1ldGVycyB3aWxsIGJlIGFkanVzdGVkIHRvIHJlc2NhbGUgdGhlIGltYWdlLjwvcD4KPHA+VGhlIGRldGVjdGlvbiBvZiBhIG1vYmlsZSBkZXZpY2UsIGFuZCBlbmFibGluZyByZXNwb25zaXZlIGJlaGF2aW9yIHdpbGwgb3ZlcnJpZGUgdGhlIG5vYXV0b3NjYWxlIHBhcmFtZXRlci4gIFRoZSByZXNwb25zaXZlIGJlaGF2aW9yIGNhbiBiZSBkaXNhYmxlZCBlaXRoZXIgaW4gdGhlIG1vZHVsZXMgYWRtaW4gcGFuZWwsIG9yIHZpYSB0aGUgbm9yZXNwb25zaXZlIHBhcmFtZXRlci48L3A+CjxoMz5NYXhpbXVtIGltYWdlIHNpemU8L2gzPgo8cD5JbiBhZGRpdGlvbiB0byBhdXRvbWF0aWMgcmVzaXppbmcgb2YgdGhlIGltYWdlIGZvciB0aGUgZGV2aWNlLCB0aGUgbWF4X3dpZHRoIGFuZC9vciBtYXhfaGVpZ2h0IHBhcmFtZXRlcnMgY2FuIGJlIHNwZWNpZmllZCB0byBpbmRpY2F0ZSBhbiBhYnNvbHV0ZSBtYXhpbXVtIHNpemUgZm9yIHRoZSBvdXRwdXQgaW1hZ2UuICBUaGlzIHdpbGwgb3ZlcnJpZGUgdGhlIHdpZHRoIGFuZCBoZWlnaHQgcGFyYW1ldGVyIHdoZW4gc2NhbGluZyB0aGUgaW1hZ2UuPC9wPgo8aDM+U3R5bGVzaGVldHM6PC9oMz4KPHA+VGhpcyBtb2R1bGUgYWxzbyB3b3JrcyB3aXRoaW4gc3R5bGVzaGVldHMsIGlmIHVzaW5nIHRoZSB7Y21zX3N0eWxlc2hlZXR9IHRhZyBpbiB5b3VyIHBhZ2UgdGVtcGxhdGUuICBCZWNhdXNlIHRoZSBzbWFydHkgc3ludGF4IGlzIHNsaWdodGx5IGRpZmZlcmVudCBpbnNpZGUgdGhlIHtjbXNfc3R5bGVzaGVldH0gdGFnIHlvdSB1dGlsaXplIHRoZSBtb2R1bGUgdXNpbmcgdGhlIFtbIGFuZCBdXSBkZWxpbWl0ZXJzLiAgaS5lOiA8Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij5kaXYuaGVhZGVyIHsgYmFja2dyb3VuZDogdXJsKFtbQ0dTbWFydEltYWdlIHNyYz0ndXBsb2Fkcy9waWN0dXJlLmpwZycgbm90YWc9MV1dKTsgfTwvY29kZT48L3A+CjxwPkJlY2F1c2Ugc3R5bGVzaGVldHMgYXJlIGdlbmVyYXRlZCBvbiBtb2RpZmljYXRpb24gYW5kIHN0b3JlZCBpbiB0aGUgZmlsZXN5c3RlbSB0aGVyZSBpcyBubyB3YXkgdG8gZGV0ZXJtaW5lIGR1cmluZyB0aGUgcmVxdWVzdCB3aGljaCBicm93c2VyIGlzIHJlcXVlc3RpbmcgdGhlIHN0eWxlc2hlZXQsIHRoZXJlZm9yZSBlbWJlZGRpbmcgd2lsbCBiZSBkb25lIHN0cmljdGx5IGJhc2VkIHVwb24gdGhlIHByZXNlbnNlIG9mIHRoZSBub2VtYmVkIHBhcmFtZXRlci4gIElmIHlvdSBoYXZlIGNob3NlbiB0byBlbWJlZCBpbWFnZXMgZGlyZWN0bHkgaW50byB5b3VyIHN0eWxlc2hlZXRzLCBZb3UgbWF5IG5lZWQgdG8gYWRkIGFkZGl0aW9uYWwgc3R5bGVzaGVldCBzdXBwb3J0IGZvciB0aGUgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBlbWJlZGRlZCBpbWFnZXMuICBpLmU6ICBJRTYuPC9wPgo8aDM+QXV0b21hdGljIFByb2Nlc3Npbmc6PC9oMz4KPHA+VGhpcyBtb2R1bGUgaW5jbHVkZXMgYSBzbWFydHkgYmxvY2sgdGFnIGNhbGxlZCA8Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dzaV9jb252ZXJ0fTwvY29kZT4gdGhhdCBjYW4gc3Vycm91bmQgYSBibG9jayBvZiBodG1sLCBvciBvdGhlciBzbWFydHkgdGFncyB0byBhbGxvdyBhdXRvbWF0aWMgaW1hZ2UgcHJvY2Vzc2luZy4gIFRoaXMgdGFnIGNhbiBiZSB1c2VkIGxpa2U6IChmb3IgZXhhbXBsZSk6PC9wPgo8cHJlPjxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntjZ3NpX2NvbnZlcnR9e2NvbnRlbnR9ey9jZ3NpX2NvbnZlcnR9PC9jb2RlPjwvcHJlPgo8cD5UaGlzIHdpbGwgYWxsb3cgeW91ciB1c2VycyB0byBpbmNsdWRlIGltYWdlcyBpbnRvIHBhZ2VzIHVzaW5nIHRoZSBub3JtYWwgd3lzaXd5ZyB0b29scywgYW5kIHRvIGhhdmUgdGhlbSBhdXRvbWF0aWNhbGx5IHByb2Nlc3NlZCBhbmQgZW1iZWRkZWQgaW50byB0aGUgcGFnZSB1c2luZyB0aGUgbWFnaWMgb2Yge0NHU21hcnRJbWFnZX0uIGkuZTogU2VlIHRoZSBmb2xsb3dpbmcgY29kZTo8L3A+CjxwcmU+PGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e2Nnc2lfY29udmVydCBmaWx0ZXJfZ3JheXNjYWxlPTEgZmlsdGVyX3dhdGVybWFyaz0xfXtjb250ZW50fXsvY2dzaV9jb252ZXJ0fTwvY29kZT48L3ByZT4KPHA+VGhlIGFib3ZlIGNvZGUgd2lsbCBjYXB0dXJlIGFsbCBpbWFnZSB0YWdzLCBhbmQgY29udmVydCB0aGVtIHRvIGdyYXlzY2FsZSBhbmQgdGhlbiBhcHBseSB0aGUgd2F0ZXJtYXJrIChhY2NvcmRpbmcgdG8gdGhlIHNldHRpbmdzIGluIHRoZSBDR0V4dGVuc2lvbnMgbW9kdWxlKS4gIEFsbCBvZiB0aGUgcGFyZXRlcnMgYXZhaWxhYmxlIHRvIHRoZSA8Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Q0dTbWFydEltYWdlfTwvY29kZT4gdGFnIGFyZSBhdmFpbGFibGUgdG8gdGhpcyB0YWcgKGZvciBpbWFnZSBzY2FsaW5nIGV0Yy4pLiAgQWRkaXRpb25hbGx5LCB0d28gbmV3IHBhcmFtZXRlcnMgaGF2ZSBiZWVuIGludHJvZHVjZWQ6IDxzdHJvbmc+bWF4X3dpZHRoPC9zdHJvbmc+IGFuZCA8c3Ryb25nPm1heF9oZWlnaHQ8L3N0cm9uZz4gd2hpY2ggY2FuIGJlIHVzZWQgdG8gc2V0IGEgbWF4aW11bSBzaXplIGZvciBpbWFnZXMuLjwvcD4KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDNlbTsiPjxzdHJvbmcgc3R5bGU9ImNvbG9yOiByZWQ7Ij5Ob3RlOjwvc3Ryb25nPgo8cD5UaGlzIHRhZyBwYXJzZXMgdGhlIEhUTUwgY29udGVudCBiZXR3ZWVuIHRoZSBzdGFydCBhbmQgZW5kIHRhZ3MgdG8gZmluZCB0aGUgPGltZz4gdGFncy4gIEl0IHRoZW4gd2lsbCBvdXRwdXQgc3ludGFjdGljYWxseSB2YWxpZCBIVE1MIGZvciB0aGUgc3Vic2V0IG9mIGNvZGUgaXQgd2FzIHByb3ZpZGVkLiAgVGhlcmVmb3JlIGl0IGlzIGltcG9ydGFudCB0aGF0IHRoZSBzbmlwcGV0IG9mIEhUTUwgcGFzc2VkIHRvIHRoaXMgdGFnIGJlIGludGFjdCBhbmQgYXMgY2xvc2UgdG8gdmFsaWQgYXMgcG9zc2libGUuICA8c3Ryb25nPlVzZSB3aXRoIGNhdXRpb24uPC9zdHJvbmc+CjwvZGl2Pgo8aDM+QWR2YW5jZWQgVXRpbGl0aWVzOjwvaDM+Cjx1bD4KICAgPGxpPjxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntjZ3NpX2dldGltYWdlc308L2NvZGU+CiAgICAgPHA+QSBwbHVnaW4gdG8gZXh0cmFjdCBpbWFnZXMgZnJvbSBhIGJsb2NrIG9mIEhUTUwgY29kZSBmb3IgZnVydGhlciBwcm9jZXNzaW5nIG91dHNpZGUgb2YgQ0dTSS48L3A+CiAgICAgPHA+PHN0cm9uZz5Bcmd1bWVudHM6PC9zdHJvbmc+CiAgICAgICA8dWw+CiAgICAgICAgIDxsaT5pbWFnZXNvbmx5OiB0aGUgY29udGVudCByZXR1cm5lZCB3aWxsIGNvbnRhaW4gb25seSAmbHQ7aW1nJmd0OyB0YWdzLiAgQWxsIG90aGVyIHRhZ3Mgd2lsbCBiZSByZW1vdmVkLiAgTm90IGFwcGxpY2FibGUgaWYgdGhlIG5vY29udGVudCBwYXJhbWV0ZXIgaXMgc3BlY2lmaWVkLjwvbGk+CiAgICAgICAgIDxsaT5ub2NvbnRlbnQ6IGRvIG5vdCBvdXRwdXQgYW55IGNvbnRlbnQgd2hhdHNvZXZlci48L2xpPgogICAgICAgICA8bGk+YXNzaWduOiBjcmVhdGUgYW4gYXJyYXkgcmVwcmVzZWludGluZyBhbGwgb2YgdGhlIGF2YWlsYWJsZSBpbmZvcm1hdGlvbiBmb3IgdGhlIGZvdW5kICZsdDtpbWcmZ3Q7IHRhZ3MgYW5kIGFzc2lnbiBpdCB0byB0aGUgbmFtZWQgc21hcnR5IHZhcmlhYmxlLjwvbGk+CiAgICAgICA8L3VsPgogICAgIDwvcD4KICAgICA8cD48c3Ryb25nPlVzYWdlOjwvc3Ryb25nPgogICAgICAgPHVsPgogICAgICAgICA8bGk+UmVtb3ZlIGFsbCBidXQgdGhlIGltYWdlIHRhZ3MgaW4gdGhlIGVuY2xvc2VkIEhUTUw6PGJyLz4KICAgICAgICAgICA8cHJlPjxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntjZ3NpX2dldGltYWdlcyBpbWFnZXNvbmx5PTF9e2NvbnRlbnR9ey9jZ3NpX2dldGltYWdlc308L2NvZGU+PC9wcmU+CiAgICAgICAgIDwvbGk+CiAgICAgICAgIDxsaT5SZXR1cm4gYSBsaXN0IG9mIHRoZSBpbWFnZSB0YWdzIGluIHRoZSBlbmNsb3NlZCBIVE1MIGNvbnRlbnQsIGJ1dCBsZWF2ZSB0aGUgY29udGVudCB1bnRvdWNoZWQ6PGJyLz4KICAgICAgICAgICA8cHJlPjxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntjZ3NpX2dldGltYWdlcyBhc3NpZ249J2ltYWdlaW5mbyd9e2NvbnRlbnR9ey9jZ3NpX2dldGltYWdlc308L2NvZGU+PC9wcmU+CiAgICAgICAgIDwvbGk+CiAgICAgICAgIDxsaT5SZXR1cm4gYSBsaXN0IG9mIHRoZSBpbWFnZSB0YWdzIGluIHRoZSBlbmNsb3NlZCBIVE1MIGNvbnRlbnQsIGFuZCBkbyBub3Qgb3V0cHV0IGFueSBvZiB0aGUgb3JpZ2luYWwgY29udGVudDo8YnIvPgogICAgICAgICAgIDxwcmU+PGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e2Nnc2lfZ2V0aW1hZ2VzIGFzc2lnbj0naW1hZ2VpbmZvJyBub2NvbnRlbnQ9MX17Y29udGVudH17L2Nnc2lfZ2V0aW1hZ2VzfTwvY29kZT48L3ByZT4KICAgICAgICAgPC9saT4KICAgICAgIDwvdWw+CiAgICAgPC9wPgogIDwvbGk+CjwvdWw+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCBvciBidXkgY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2UgdmlzaXQgY2FsZ3V5J3MKbW9kdWxlIGhvbWVwYWdlIGF0IDxhIGhyZWY9Imh0dHA6Ly9jYWxndXkxMDAwLmNvbSI+Y2FsZ3V5MTAwMC5jb208L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4KPGxpPlRoZSBhdXRob3IsIGNhbGd1eTEwMDAsIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseS48L2xpPgo8L3VsPgo8aDM+UmVxdWlyZW1lbnRzPC9oMz4KPHA+PHN0cm9uZz5XYXJuaW5nOjwvc3Ryb25nPiBUaGlzIG1vZHVsZSBpcyBoZWF2aWx5IGRlcGVuZGFudCB1cG9uIHNlcnZlciByZXNvdXJjZXMuICBQZXJmb3JtaW5nIGZpbHRlcmluZywgb3IgcmVzaXppbmcgb2YgZXh0cmVtZWx5IGxhcmdlIGltYWdlcywgb3IgbXVsdGlwbGUgaW1hZ2VzIGF0IG9uZSB0aW1lIG1heSBleGNlZWQgdGhlIG1lbW9yeSBhdmFpbGFiaWxpdHkgb2YgeW91ciB3ZWJzZXJ2ZXIgPGVtPihwYXJ0aWN1bGFybHkgb24gc2hhcmVkIGhvc3RzKTwvZW0+LiAgV2hpbGUgaW1hZ2VzIGFyZSBiZWluZyBpbml0aWFsbHkgdHJhbnNmb3JtZWQsIHBhZ2UgbG9hZCB0aW1lIG1heSBiZSBpbmNyZWFzZWQuPC9wPgo8cD48c3Ryb25nIHN0eWxlPSJjb2xvcjogYmx1ZTsiPlRpcDo8L3N0cm9uZz4gd2hlbiBkZWFsaW5nIHdpdGggbGFyZ2UgaW1hZ2VzIGl0IGlzIGltcG9ydGFudCB0byB0cnkgdG8gcmVkdWNlIHRoZWlyIHNpemUgYXMgZWFybHkgYXMgcG9zc2libGUgaW4gdGhlIGZpbHRlcmluZyBwcm9jZXNzIHRvIG1pbmltaXplIHJlc291cmNlIHJlcXVpcmVtZW50cy48L3A+CjxwPlRoaXMgbW9kdWxlIG1ha2VzIGV2dGVuc2l2ZSB1c2Ugb2YgdGhlIEdEIEltYWdlIHByb2Nlc3NpbmcgbGlicmFyeSB0byBkbyBpbWFnZSBtYW5pcHVsYXRpb24uICBBZGRpdGlvbmFsbHksIHRoZSB7Y2dzaV9jb252ZXJ0fSBwbHVnaW4gbWFrZXMgZXh0ZW5zaXZlIHVzZSBvZiB0aGUgc2ltcGxleG1sIGFuZCBYTUxEb20gY2xhc3NlcyBidWlsdCBpbiB0byBwaHAuICBUaGVyZSBtYXkgYmUgb3RoZXIgYWRkaXRpb25hbCByZXF1aXJlbWVudHMuICBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBlcnJvcnMgeW91IHNob3VsZCBlbnN1cmUgdGhhdCBlcnJvciByZXBvcnRpbmcgaXMgZW5hYmxlZCwgYW5kIHRoYXQgeW91IGhhdmUgYW5hbHl6ZWQgeW91ciBlcnJvciBsb2dzLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAwOCwgUm9iZXJ0IENhbXBiZWwgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPiZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+CjxwPkhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAphcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwpNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4Kc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLApidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgpNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCmFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCk9yIHJlYWQgaXQgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5vbmxpbmU8L2E+PC9wPjxoMz5EZXBlbmRlbmNpZXM8L2gzPjx1bD48bGk+Q0dFeHRlbnNpb25zID0mZ3Q7IDEuMzguNDwvbGk+PC91bD48aDM+UGFyYW1ldGVyczwvaDM+PHVsPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGxhbmc9ImVuX1VTIiAtIFBhcmFtZXRlciBpcyB1c2VkIHRvIHNwZWNpZnkgd2hhdCBsYW5ndWFnZSB0byB1c2UgZm9yIGRpc3BsYXkgb24gdGhlIGZyb250ZW5kLiBOb3QgYWxsIG1vZHVsZXMgc3VwcG9ydCBvciBuZWVkIHRoaXMuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzaWxlbnQ9IiIgLSBTaWxlbnRseSBpZ25vcmUgZXJyb3JzPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBhbGlhcz0iIiAtIFRoZSBDR1NtYXJ0SW1hZ2UgYWRtaW4gcGFuZWwgYWxsb3dzIGNyZWF0aW5nIG51bWVyb3VzIGNvbW1hbmQgYWxpYXMgdG8gY29tYmluZSBhIGZyZXF1ZW50bHkgdXNlZCBwYXR0ZXJuIG9mIGFyZ3VtZW50cyBpbnRvIG9uZSBuYW1lLiAgVG8gdXNlIHRoZXNlIGFsaWFzZXMgdXNlIGFuIGFyZ3VtZW50IG9mIHRoZSBmb3JtIGFsaWFzIyM9YWxpYXNfbmFtZSBpLmU6ICBhbGlhczE9Zm9vIGFsaWFzMj1mb28uPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub2F1dG9zY2FsZT0iIiAtIElmIHdpZHRoIGFuZCBoZWlnaHQgcGFyYW1ldGVycyBhcmUgc3BlY2lmaWVkLCB0aGlzIHBhcmFtZXRlciB3aWxsIGRpc2FibGUgYXV0b21hdGljIHNjYWxpbmcgb2YgdGhlIGltYWdlLiAgVGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBkaXNhYmxlZCBmb3IgbW9iaWxlIGJyb3dzZXJzPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub2JjYWNoZT0iIiAtIERvIG5vdCBhbGxvdyB0aGUgcmVzaXplZCBpbWFnZSB0byBjYWNoZSBpbiB0aGUgYnJvd3NlciAodXNlZnVsIGZvciBkZXZlbG9wbWVudCBwdXJwb3NlcykgdGhpcyBhZGRzIGEgdW5pcXVlIG51bWJlciBhcyBhIHBhcmFtZXRlciB0byB0aGUgaW1hZ2Ugd2hpY2ggd2lsbCBmb3JjZSB0aGUgYnJvd3NlciBub3QgdG8gY2FjaGUgdGhlIGltYWdlLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbm9lbWJlZD0iIiAtIEZvcmNlIHRoZSBpbWFnZSB0byBub3QgZW1iZWQuICBSZWdhcmRsZXNzIG9mIHNldHRpbmdzIGluIHRoZSBhZG1pbiBwYW5lbCwgdGhlIFVSTCBhbmQgdGFnIGdlbmVyYXRlZCB3aWxsIGJlIHRvIGEgZmlsZSBvbiB0aGUgc2VydmVyLiAgTm8gZW1iZWRkaW5nIHdpbGwgYmUgcGVyZm9ybWVkPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub2F1dG89IiIgLSBEbyBub3QgYXV0b21hdGljYWxseSBjYWxjdWxhdGUgcGFyYW1ldGVycyBmb3IgdGhlIGltZyB0YWcuICBUaGlzIG1heSBjYXVzZSB5b3VyIHNpdGUgdG8gZmFpbCB2YWxpZGF0aW9uIGlmIHNvbWUgcmVxdWlyZWQgcGFyYW1ldGVycyAod2lkdGgsaGVpZ2h0LGFsdCkgYXJlIG5vdCBzcGVjaWZpZWQuICBBZGRpdGlvbmFsbHksIGlmIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMgYXJlIHNwZWNpZmllZCwgdGhpcyBwYXJhbWV0ZXIgd2lsbCBlbnN1cmUgdGhhdCB0aGV5IHdpbGwgbm90IGJlIG92ZXJyaWRkZW4gYnkgdGhlIGFjdHVhbCBzaXplIG9mIHRoZSBwcm9jZXNzZWQgaW1hZ2UuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub3JvdGF0ZT0iIiAtIERvIG5vdCBhdHRlbXB0IHRvIHJlYWQgZXhpZiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBmaWxlIGFuZCBjb3JyZWN0IGltYWdlIHJvdGF0aW9uPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub3RhZz0iIiAtIERvIG5vdCBvdXRwdXQgYW4gaW1nIHRhZywgb25seSB0aGUgdXJsIHRvIHRoZSBjYWNoZWQgaW1hZ2UuICBUaGlzIGhhcyBubyBlZmZlY3Qgd2hlbiBDR1NtYXJ0SW1hZ2UgaXMgdXNlZCBmcm9tIHdpdGhpbiBhIHN0eWxlc2hlZXQuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub3Jlc3BvbnNpdmU9IiIgLSBEbyBub3QgcGVyZm9ybSByZXNwb25zaXZlIGltYWdlIHJlc2l6aW5nPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub2JyZWFrcG9pbnRzPSIiIC0gPHN0cm9uZz5FeHBlcmltZW50YWw6PC9zdHJvbmc+IEZvciByZXNwb25zaXZlIGltYWdlIGhhbmRsaW5nLCBkaXNhYmxlIGJyZWFrcG9pbnRzIGFuZCBmb3JjZSByZWd1bGFyIHJlc2l6ZSBoYW5kbGluZyBmb3IgaW1hZ2VzIG9uIG1vYmlsZSBicm93c2Vycy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vcmVtb3RlPSIiIC0gRG8gbm90IGFsbG93IHJldHJpZXZpbmcgc291cmNlcyBmcm9tIHJlbW90ZSBVUkxTPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmb3JjZV90eXBlPSIiIC0gKHN0cmluZykgRm9yY2UgdGhlIG91dHB1dCBpbWFnZSB0byBiZSBzYXZlZCBpbiB0aGUgc3BlY2lmaWVkIGltYWdlIHR5cGUsIGluZGVwZW5kZW50IG9mIHRoZSBzb3VyY2UgaW1hZ2UsIGZpbHRlcnMsIGFuZCBwYXJhbWV0ZXJzLiAgVmFsaWQgdmFsdWVzIGFyZToganBlZyxwbmcsZ2lmLiBOb3RlOiBEdWUgdG8gdGhlIGNhcGFiaWxpdGllcyBvZiBzb21lIGltYWdlIGZvcm1hdHMsIHN1cnByaXNpbmcgZWZmZWN0cyBjYW4gb2NjdXIuICBQYXJ0aWN1bGFybHksIGZvcmNpbmcgYSB0cmFuc3BhcmVudCBQTkcgdG8gc2F2ZSBpbiBKUEVHIGZvcm1hdCB3aWxsIHJlc3VsdCBpbiBhbGwgdHJhbnNwYXJlbmN5IGJlaW5nIGxvc3QuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmb3JjZV9leHQ9IiIgLSAoaW50ZWdlcikgRW5hYmxlIChvciBkaXNhYmxlZCkgdGhlIGZvcmNpbmcgb2YgYWxsIGdlbmVyYXRlZCBpbWFnZSBmaWxlcyB0byBoYXZlIGZpbGUgZXh0ZW5zaW9ucy4gIERlcGVuZGluZyB1cG9uIHRoZSBzb3VyY2UgaW1hZ2UsIGFuZCB0aGUgZmlsdGVycyBhbmQgcGFyYW1ldGVycyB1c2VkLCB0aGUgZ2VuZXJhdGVkIGV4dGVuc2lvbiBtYXkgbm90IGFjY3VyYXRlbHkgcmVwcmVzZW50IHRoZSBhY3R1YWwgY29udGVudHMgb2YgdGhlIGZpbGU8L2xpPjxsaT5zcmM9IiIgLSBTcGVjaWZ5IHRoZSBzb3VyY2UgZm9yIHRoZSBpbWFnZSBwcm9jZXNzaW5nIChpZiBhbnkpIG9yIHRoZSBnZW5lcmF0ZWQgaW1nIHRhZy4gIE5vdGUsIHRoaXMgcGFyYW1ldGVyIGlzIGZsZXhpYmxlLCBhbmQgdGhlIG1vZHVsZSB3aWxsIGF0dGVtcHQgbWFueSBtZXRob2RzIHRvIGZpbmQgdGhlIHNvdXJjZSBpbWFnZSBmaWxlIG9uIHRoZSB3ZWIgc2VydmVyIGFzIGZvbGxvd3M6Cjx1bD4KICA8bGk+Rmlyc3QgbG9vayB0byBzZWUgaWYgdGhlIHNwZWNpZmllZCBzcmMgdmFsdWUgZXhpc3RzIGFzIGEgZmlsZSBvbiB0aGUgZmlsZXN5c3RlbSA8c3Ryb25nPkJlbG93IHRoZSBDTVNNUyByb290IFVSTDwvc3Ryb25nPjwvbGk+CiAgPGxpPk5leHQsIGNoZWNrIGlmIHRoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yIHRoZSBzcmMgcGFyYW1ldGVyIGlzIGEgVVJMIGFuZCBiZWdpbnMgd2l0aCB0aGUgdXBsb2Fkc191cmwgKGFzIHNwZWNpZmllZCBpbiB0aGUgY29uZmlnLnBocCk8L2xpPgogIDxsaT5OZXh0LCBjaGVjayBpZiB0aGUgdmFsdWUgc3BlY2lmaWVkIGZvciB0aGUgc3JjIHBhcmFtZXRlciBpcyBhIFVSTCBhbmQgYmVnaW5zIHdpdGggdGhlIHJvb3RfdXJsIChhcyBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZy5waHApPC9saT4KICA8bGk+TmV4dCwgY2hlY2sgaWYgdGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgdGhlIHNyYyBwYXJhbWV0ZXIgaXMgYSBVUkwgYW5kIGJlZ2lucyB3aXRoIHRoZSBzc2xfdXJsIChhcyBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZy5waHApPC9saT4KPC91bD4KSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBzcGxpdCB0aGUgc3JjIHBhcmFtZXRlciBpbnRvIG11bHRpcGxlIGFyZ3VtZW50cywgd2hpY2ggaXMgdXNlZnVsIGZvciBleGFtcGxlIHdoZW4gdGhlIHBhdGggdG8gdGhlIGZpbGUsIGFuZCB0aGUgZmlsZW5hbWUgYXJlIHN0b3JlZCBpbiBzZXBhcmF0ZSBzbWFydHkgdmFyaWFibGVzLiAgIFlvdSBjYW4gc3BlY2lmeSB0aGUgc3JjIGFzIHNyYzE9XCR0aGVfcGF0aCBzcmMyPVwkdGhlX2ZpbGVuYW1lLiAgVGhlIHN5c3RlbSB3aWxsIGF1dG9tYXRpY2FsbHkgYWRkIGEgLyBpbiBiZXR3ZWVuIGVhY2ggYXJndW1lbnQuICBUaGVyZSBpcyBubyBsaW1pdCB0byB0aGUgbnVtYmVyIG9mIHNyYyBwYXJhbWV0ZXJzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gb3ZlcndyaXRlPSIiIC0gRGlzYWJsZSBhbGwgY2FjaGluZyBhbmQgZm9yY2UgcmUtY2FsY3VsYXRpb24gb2YgYWxsIGZpbHRlcnM8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGlkPSIiIC0gVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIGFsbG93cyBzcGVjaWZ5aW5nIGFuIGlkIGF0dHJpYnV0ZSB0byBpbmNsdWRlIG9uIHRoZSB0YWcuICBpLmU6IGlkPSJzb21ldGFnIjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gY2xhc3M9IiIgLSBVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgYWxsb3dzIHNwZWNpZnlpbmcgb25lIG9yIG1vcmUgY2xhc3NlcyB0byBpbmNsdWRlIG9uIHRoZSB0YWcuICBpLmU6IGNsYXNzPSJmYW5jeWJveCB0aHVtYm5haWwiPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzdHlsZT0iIiAtIFVzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBhbGxvd3Mgc3BlY2lmeWluZyBhbHRlcm5hdGUgc3R5bGVzIGZvciB0aGUgdGFnLiAgaS5lOiBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgYmxhY2s7IjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gdGl0bGU9IiIgLSBTcGVjaWZ5IGFuIG9wdGlvbmFsIHRpdGxlIGF0dHJpYnV0ZSBmb3IgdGhlIGltZyB0YWcuICBpLmU6IHRpdGxlPSJUaGlzIGlzIHRoZSB0b29sdGlwIjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gYWx0PSIiIC0gVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIHNwZWNpZnkgdGhlIHZhbHVlIGZvciB0aGUgYWx0IGF0dHJpYnV0ZS4gIE5vdGUsIGlmIHRoaXMgaXMgbm90IHNwZWNpZmllZCBhIHZhbHVlIHdpbGwgYmUgYXV0b21hdGljYWxseSBjYWxjdWxhdGVkIGZvciB0aGlzIGF0dHJpYnV0ZSBzbyB0aGF0IG1vc3QgZ2VuZXJhdGVkIGltZyB0YWdzIHdpbGwgdmFsaWRhdGUuICBZb3UgY2FuIG92ZXJyaWRlIHRoaXMgYXV0byBjYWxjdWxhdGlvbiB3aXRoIHRoZSAmcXVvdDtub2F1dG8mcXVvdDsgcGFyYW1ldGVyPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBuYW1lPSIiIC0gVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIHNwZWNpZnkgdGhlIHZhbHVlIGZvciB0aGUgbmFtZSBhdHRyaWJ1dGUuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBoZWlnaHQ9IiIgLSBVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSBoZWlnaHQgYXR0cmlidXRlLiAgTm90ZSwgaWYgdGhpcyBpcyBub3Qgc3BlY2lmaWVkIGEgdmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoaXMgYXR0cmlidXRlIHNvIHRoYXQgbW9zdCBnZW5lcmF0ZWQgaW1nIHRhZ3Mgd2lsbCB2YWxpZGF0ZS4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBhdXRvIGNhbGN1bGF0aW9uIHdpdGggdGhlICZxdW90O25vYXV0byZxdW90OyBwYXJhbWV0ZXIuICBUaGlzIHBhcmFtZXRlciB3aWxsIGFsc28gYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAmcXVvdDt3aWR0aCZxdW90OyBwYXJhbWV0ZXIgdG8gcGVyZm9ybSBhIGZpbmFsIHJlc2l6aW5nIG9yIGNyb3B0b2ZpdCBmaWx0ZXIgKHVubGVzcyB0aGUgJnF1b3Q7bm9hdXRvc2NhbGUmcXVvdDsgcGFyYW1ldGVyIGlzIGFsc28gc3VwcGxpZWQpPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiB3aWR0aD0iIiAtIFVzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBzcGVjaWZ5IHRoZSB2YWx1ZSBmb3IgdGhlIHdpZHRoIGF0dHJpYnV0ZS4gICBOb3RlLCBpZiB0aGlzIGlzIG5vdCBzcGVjaWZpZWQgYSB2YWx1ZSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY2FsY3VsYXRlZCBmb3IgdGhpcyBhdHRyaWJ1dGUgc28gdGhhdCBtb3N0IGdlbmVyYXRlZCBpbWcgdGFncyB3aWxsIHZhbGlkYXRlLiAgWW91IGNhbiBvdmVycmlkZSB0aGlzIGF1dG8gY2FsY3VsYXRpb24gd2l0aCB0aGUgJnF1b3Q7bm9hdXRvJnF1b3Q7IHBhcmFtZXRlci4gIFRoaXMgcGFyYW1ldGVyIHdpbGwgYWxzbyBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlICZxdW90O2hlaWdodCZxdW90OyBwYXJhbWV0ZXIgdG8gcGVyZm9ybSBhIGZpbmFsIHJlc2l6aW5nIG9yIGNyb3B0b2ZpdCBmaWx0ZXIgKHVubGVzcyB0aGUgJnF1b3Q7bm9hdXRvc2NhbGUmcXVvdDsgcGFyYW1ldGVyIGlzIGFsc28gc3VwcGxpZWQpPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBxdWFsaXR5PSI3NSIgLSBTcGVjaWZ5IHRoZSBxdWFsaXR5IG9mIHRoZSBvdXRwdXQgaW1hZ2UuICBBIHZhbHVlIGJldHdlZW4gMCBhbmQgMTAwLiAgVGhlIGRlZmF1bHQgdmFsdWUgaWYgbm90IHNwZWNpZmllZCBpcyA3NS48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHJlbD0iNzUiIC0gVXNlZCB3aGVuIGJ1aWxkaW5nIGFuIGltYWdlIHRhZyBhbGxvd3Mgc3BlY2lmeWluZyBhbiBvcHRpb25hbCByZWwgYXR0cmlidXRlICh0eXBpY2FsbHkgdXNlZCB3aXRoIGphdmFzY3JpcHQgdHlwZSBhbGJ1bXMpLiBpLmU6IHJlbD0iYWxidW0iPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBtYXhfd2lkdGg9IiIgLSBUaGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG1heGltdW0gd2lkdGggZm9yIHRoZSBjb252ZXJ0ZWQgaW1hZ2VzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbWF4X2hlaWdodD0iIiAtIFRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbWF4aW11bSBoZWlnaHQgZm9yIHRoZSBjb252ZXJ0ZWQgaW1hZ2VzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX2JsdXI9IiIgLSAoYW55dGhpbmcpIFNwZWNpZnkgYW55IHZhbHVlIGZvciB0aGlzIHBhcmFtZXRlciB0byBhZGQgYSBibHVyIGZpbHRlciB0byB0aGUgaW1hZ2U8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9icmlnaHRuZXNzPSIiIC0gKGludGVnZXIpIEluY3Jhc2UgdGhlIGJyaWdodG5lc3Mgb2YgdGhlIHByb2Nlc3NlZCBpbWFnZSBieSB0aGUgaW50ZWdlciB2YWx1ZSBzcGVjaWZpZWQ8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9jb2xvcml6ZT0iIiAtIChyLGcsYlssYWxwaGFdKSAtIExpa2UgZmlsdGVyX2dyYXlzY2FsZSBob3dldmVyIHlvdSBjYW4gc3BlY2lmeSB0aGUgY29sb3IgYW5kIGFscGhhIHZhbHVlPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfY29udHJhc3Q9IiIgLSAoaW50ZWdlcikgQ2hhbmdlIHRoZSBjb250cmFzdCBvZiB0aGUgaW1hZ2UgYnkgdGhlIGludGVnZXIgdmFsdWUgc3BlY2lmaWVkPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfY3JvcD0iIiAtIChwZXJjZW50WyxoX2FsaWduLHZfYWxpZ25dKSAtIFBlcmZvcm0gY3JvcHBpbmcgb24gdGhlIGltYWdlIHNwZWNpZmllZC4gQ3JvcCBwYXJhbWVldGVycyBhcmUgc3BlY2lmaWVkIGFzIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgcGFyYW1ldGVycy4gIFRoZSBmaXJzdCAocmVxdWlyZWQpIHZhbHVlIGlzIGFuIGludGVnZXIgcGVyY2VudGFnZSBvZiB0aGUgb3JpZ2luYWwgaW1hZ2Ugc2l6ZS4gIFRoZSBvcHRpb25hbCBzZWNvbmQgYW5kIHRoaXJkIHBhcmFtZXRlcnMgYXJlIG9uZSBvZiBsLGMsciAobGVmdCxjZW50ZXIscmlnaHQpIGFuZCB0LGMsYiAodG9wLGNlbnRlcixib3R0b20pIHNwZWNpZnlpbmcgd2hlcmUgdGhlIGxvY2F0aW9uIHdpdGhpbiB0aGUgc291cmNlIGltYWdlIHRvIGNyb3AgZnJvbS4gIGkuZTogY3JvcD0zMyxiLHIgdG8gZ3JhYiBhIGNyb3Agb2YgMzMlIGZyb20gdGhlIGJvdHRvbSByaWdodCBvZiB0aGUgc291cmNlIGltYWdlLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX2Nyb3Ayc2l6ZT0iIiAtICh3aWR0aCxoZWlnaHRbLGxvY2F0aW9uXSkgLSBQZXJmb3JtIGEgY3JvcCBvbiB0aGUgaW1hZ2Ugc3BlY2lmaWVkLiAgVGhpcyBmaWx0ZXIgd2lsbCBjb3B5IHRoZSBwb3J0aW9uIG9mIHRoZSBzb3VyY2UgaW1hZ2Ugc3BlY2lmaWVkIGludG8gdGhlIGRlc3RpbmF0aW9uIGltYWdlLiAgVGhlIHdpZHRoIGFuZCBoZWlnaHQgcGFyYW1ldGVycyBjYW4gYmUgbm8gbGFyZ2VyIHRoYW4gdGhlIHNpemUgb2YgdGhlIHNvdXJjZSBpbWFnZSAoYW5kIHdpbGwgYmUgdHJpbW1lZCBhcyBzdWNoLiAgTmVnYXRpdmUgdmFsdWVzIGFyZSBub3QgcGVybWl0dGVkLiAgVmFsaWQgbG9jYXRpb25zIGFyZTogbCx0Yyx0cixjbCxjLGNyLGJsLGJjLGJyIGZvciB0aGUgOSByZWxhdGl2ZSBwb3NpdGlvbnMgd2l0aGluIHRoZSBpbWFnZS48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9jcm9wdG9maXQ9IiIgLSAod2lkdGgsaGVpZ2h0Wyxsb2NhdGlvblssdXBzY2FsZV1dKSAtIFBlcmZvcm0gYSBjcm9wdG9maXQgb24gdGhlIGltYWdlIHNwZWNpZmllZC4gVGhpcyBhdHRlbXB0cyB0byByZXNjYWxlIHRoZSBpbWFnZSB0byB0aGUgZGVzdGluYXRpb24gc2l6ZSB3aGlsZSByZXRhaW5pbmcgYXNwZWN0IHJhdGlvLCB0aGVuIGZvY3VzIG9uIHRoZSBzZWxlY3RlZCBhcmVhIG9mIHRoZSByZXNpemVkIGltYWdlLiAgQ3JvcCB0byBmaXQgcGFyYW1ldGVycyBhcmUgc3BlY2lmaWVkIGFzIHRoZSBkZXNpcmVkIHdpZHRoIGFuZCBoZWlnaHQgZm9yIHRoZSBkZXN0aW5hdGlvbiBpbWFnZSBhbG9uZyB3aXRoIGFuIChvcHRpb25hbCkgbG9jYXRpb24gY29kZSwgYW5kIHVwc2NhbGUgZmxhZy4gIHZhbGlkIGxvY2F0aW9uIGNvZGVzIGFyZSB0bCx0Yyx0cixjbCxjLGNyLGJsLGIsYnIgZm9yIHRoZSA5IHJlbGF0aXZlIHBvc2l0aW9ucyB3aXRoaW4gdGhlIGltYWdlLiAgSWYgYSBsb2NhdGlvbiBpcyBub3Qgc3BlY2lmaWVkIGEgcHJlZmVyZW5jZSB3aWxsIGJlIHVzZWQuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAmcXVvdDtjJnF1b3Q7IHRvIGNyb3AtdG8tZml0IGZyb20gdGhlIGNlbnRlciBvZiB0aGUgc291cmNlIGltYWdlLiAgQnkgZGVmYXVsdCB1cHNjYWxpbmcgaXMgZGlzYWJsZWQgb24gdGhpcyBmaWx0ZXIuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfZWRnZWRldGVjdD0iIiAtIChhbnl0aGluZykgSGlsaWdodCB0aGUgZWRnZXMgaW4gdGhlIGltYWdlPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfZW1ib3NzPSIiIC0gKGFueXRoaW5nKSBFbWJvc3MgdGhlIGltYWdlPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfZmxpcD0iIiAtIChtb2RlKSAtIFBlcmZvcm0gYSBmbGlwIG9uIHRoZSBzcGVjaWZpZWQgaW1hZ2UuICBTcGVjaWZ5IDAgZm9yIGhvcml6b250YWwsIDEgZm9yIHZlcnRpY2FsLCBhbmQgMiBmb3IgZmxpcCBpbiBib3RoIGRpcmVjdGlvbnMuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfZ3JheXNjYWxlPSIiIC0gKGFueXRoaW5nKSBDb252ZXJ0IHRoZSBpbWFnZSB0byBncmF5c2NhbGU8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9tZWFucmVtb3ZhbD0iIiAtIChhbnl0aGluZykgQXR0ZW1wdCB0byBhY2hpZXZlIGEgJnF1b3Q7c2tldGNoeSZxdW90OyBlZmZlY3Q8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9uZWdhdGU9IiIgLSAoYW55dGhpbmcpIE5lZ2F0ZSB0aGUgaW1hZ2U8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9waXhlbGF0ZT0iIiAtIChzaXplWyxhZHZhbmNlZF0pIFBpeGVsYXRlIHRoZSBpbWFnZSwgc3BlY2lmeSBhbiBpbnRlZ2VyIHNpemUgYW5kIGFuIG9wdGlvbmFsIGJvb2xlYW4gKGRlZmF1bHQgaXMgZmFsc2UpIHRvIGVuYWJsZSBhZHZhbmNlZCBwaXhlbGF0aW9uPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfcmVmbGVjdD0iIiAtIChbcmVmbGVjdGlvbl9oZWlnaHRbLHJlZmxlY3Rpb25fb3BhY2l0eVssZGl2aWRlcl9oZWlnaHRdXV0pLCBDcmVhdGVzIHJlZmxlY3Rpb24gb2YgaW1hZ2UsIGN1cnJlbnRseSB3b3JraW5nIG9ubHkgd2l0aCBqcGcsanBlZyBpbWFnZXMgYWdhaW5zdCB3aGl0ZSBiYWNrZ3JvdW5kLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX3Jlc2l6ZT0iIiAtIHR5cGUsbnVtYmVyWyxudW1iZXJbLHVwc2NhbGVdXSAtIFBlcmZvcm0gYSByZXNpemUgb2YgdGhlIHNvdXJjZSBpbWFnZS4gIEJ5IGRlZmF1bHQsIHRoZSByZXNpemUgZmlsdGVyIGFsbG93cyB1cHNjYWxpbmcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOgo8dWw+CiAgPGxpPnAsbnVtYmVyIC0gUGVyZm9ybSBhIHNpbXBsZSByZXNjYWxlIHRvIGEgY2VydGFpbiBwZXJjZW50YWdlLiAgaS5lOiAgcmVzaXplPXAsNTAgdG8gcmVzaXplIHRvIDUwJSBvZiB0aGUgb3JpZ2luYWwgc2l6ZS48L2xpPgogIDxsaT5wLG51bWJlciwwIC0gUGVyZm9ybSBhIHNpbXBsZSByZXNjYWxlIHRvIGEgY2VydGFpbiBwZXJjZW50YWdlLiAgaS5lOiAgcmVzaXplPXAsNTAgdG8gcmVzaXplIHRvIDUwJSBvZiB0aGUgb3JpZ2luYWwgc2l6ZS4gRG8gbm90IGFsbG93IHVwc2NhbGluZzwvbGk+CiAgPGxpPncsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCB3aWR0aCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPXcsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIHdpZHRoIG9mIDgwIHBpeGVscy48L2xpPgogIDxsaT53LG51bWJlciwwIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCB3aWR0aCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPXcsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIHdpZHRoIG9mIDgwIHBpeGVscy4gRG8gbm90IGFsbG93IHVwc2NhbGluZzwvbGk+CiAgPGxpPmgsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCBoZWlnaHQgKHdoaWxlIHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiBpLmU6IHJlc2l6ZT1oLDgwIHRvIGNyZWF0ZSBhIHRodW1ibmFpbCB3aXRoIGEgbWF4aW11bSBoZWlnaHQgb2YgODAgcGl4ZWxzLjwvbGk+CiAgPGxpPmgsbnVtYmVyLDAgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgc3BlY2lmaWVkIGhlaWdodCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPWgsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIGhlaWdodCBvZiA4MCBwaXhlbHMuIERvIG5vdCBhbGxvdyB1cHNjYWxpbmc8L2xpPgogIDxsaT5lLG51bWJlciAtIFBlcmZvcm0gYSByZXNpemUgcmVzaXppbmcgdGhlIGxhcmdlc3QgZWRnZSB0byB0aGUgc3BlY2lmaWVkIHZhbHVlICh3aGlsZSByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gaS5lOiByZXNpemU9ZSwxMDAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdob3MgbGFyZ2VzdCBlZGdlIGlzIDEwMCBwaXhlbHMuPC9saT4KICA8bGk+ZSxudW1iZXIsMCAtIFBlcmZvcm0gYSByZXNpemUgcmVzaXppbmcgdGhlIGxhcmdlc3QgZWRnZSB0byB0aGUgc3BlY2lmaWVkIHZhbHVlICh3aGlsZSByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gaS5lOiByZXNpemU9ZSwxMDAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdob3MgbGFyZ2VzdCBlZGdlIGlzIDEwMCBwaXhlbHMuICBEbyBub3QgYWxsb3cgdXBzY2FsaW5nLjwvbGk+CiAgPGxpPmMseCx5IC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIGN1c3RvbSBzaXplICh3aXRob3V0IHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgaS5lOiBmaWx0ZXJfcmVzaXplPWMsNTAsNzUgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHRoYXQgaXMgNTB4NzUgcGl4ZWxzLjwvbGk+LgogIDxsaT5jLHgseSwwIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIGN1c3RvbSBzaXplICh3aXRob3V0IHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgaS5lOiBmaWx0ZXJfcmVzaXplPWMsNTAsNzUgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHRoYXQgaXMgNTB4NzUgcGl4ZWxzLiBEbyBub3QgYWxsb3cgdXBzY2FsaW5nLjwvbGk+Lgo8L3VsPjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX3Jlc2l6ZXRvZml0PSIiIC0gKHdpZHRoLGhlaWdodFssY29sb3JbLGFscGhhXV0pIC0gUGVyZm9ybSBhIHJlc2l6ZSBvbiB0aGUgaW1hZ2Ugc3BlY2lmaWVkLiBUaGlzIGF0dGVtcHRzIHRvIHJlc2NhbGUgdGhlIGltYWdlIHRvIHRoZSBkZXN0aW5hdGlvbiBzaXplIHdoaWxlIHJlYXRpbmluZyBhc3BlY3QgcmF0aW8sIHRoZSBpbWFnZSBpcyBjZW50ZXJlZCBpbiB0aGUgYm94IHNwZWNpZmllZCAoZWl0aGVyIGhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5IGRlcGVuZGluZyB1cG9uIGFzcGVjdCByYXRpbyBhbmQgdGhlIGRlc3RpbmF0aW9uIHNpemUsIGFuZCB0aGUgaW1hZ2UgaXMgc3Vycm91bmRlZCBieSB0aGUgc3VwcGxpZWQgY29sb3IuICBDb2xvcnMgY2FuIGJlIHNwZWNpZmllZCBieSBuYW1lIChzZWUgdGhlIFgxMSBjb2xvciBuYW1lcyksIG9yIGJ5ICNubm5ubm4gaGV4YWRlY2ltYWwgZm9ybWF0LCBvciBhcyByZ2IgdmFsdWVzIHNlcGFyYXRlZCBieSBhIDogaS5lOiAgZmlsdGVyX2Nyb3B0b2ZpdD02MDAsNDAwLCNmZjAwMDAuICBUaGUgc3BlY2lhbCBjb2xvciB2YWx1ZSAmcXVvdDt0cmFuc3BhcmVudCZxdW90OyBjYW4gYmUgc3BlY2lmaWVkIHRvIGZvcmNlIHRoZSBiYWNrZ3JvdW5kIHRvIGJlIHRyYW5zcGFyZW50IChmb3IgaW1hZ2UgdHlwZXMgdGhhdCBzdXBwb3J0IGl0KS4gICBBbiBhbHBoYSB2YWx1ZSBtYXkgYmUgc3BlY2lmaWVkIGJldHdlZW4gMCBhbmQgMTI3IHRvIHNwZWNpZnkgZGlmZmVyZW50IGRlZ3JlZXMgb2YgdHJhbnNsdWNlbmN5IGZvciB0aGUgYmFja2dyb3VuZC4gICBBdCBubyB0aW1lIHdpbGwgdGhpcyBwbHVnaW4gcGVyZm9ybSBhbnkgdXBzY2FsaW5nLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX3JvdGF0ZT0iIiAtIChhbmdsZSkgU3BlY2lmeSB0aGUgaW50ZWdlciBhbmdsZSAoY291bnRlciBjbG9ja3dpc2UpIHRvIHJvdGF0ZSB0aGUgaW1hZ2UsIFRoZSBpbWFnZSBpcyByb3RhdGVkIGFib3V0IGl0cyBjZW50ZXIuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfcm91bmRlZGNvcm5lcnM9IiIgLSAocmFkaXVzWyxjb2xvcl0pIFNwZWNpZnkgYW4gaW50ZWdlciByYWRpdXMgKGluIHBpeGVscykgZm9yIHJvdW5kaW5nIHRoZSBjb3JuZXJzLiAgT3B0aW9uYWxseSBzcGVjaWZ5IGEgY29sb3IgZm9yIHRoZSByb3VuZGVkIGNvcm5lcnMuICBUaGUgc3BlY2lhbCB2YWx1ZSBpZiAmcXVvdDt0cmFuc3BhcmVudCZxdW90OyBmb3IgdGhlIGNvbG9yIHdpbGwgZm9yY2UgdGhlIGltYWdlIHRvIGJlIGNvbnZlcnRlZCB0byBhIHBuZyBhbmQgYSB0cmFuc3BhcmVudCBjb2xvciB1c2VkLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX3NoYXJwZW49IiIgLSAoaW50ZWdlcikgU3BlY2lmeSBhbiBhZGp1c3RtZW50IChiZXR3ZWVuIC0xMCBhbmQgMTApIHRvIHRoZSBzaGFycGVuIGZpbHRlci4gIExvd2VyIHZhbHVlcyB3aWxsIGxpZ2h0ZW4gdGhlIHNoYXJwZW5pbmcgZWZmZWN0LiAgSGlnaGVyIHZhbHVlcyBpbmNyZWFzZSBpdC4gIE5vdGU6IHNoYXJwZW5pbmcgbWF5IGhhdmUgYWR2ZXJzZSBlZmZlY3RzIG9uIHNvbWUgaW1hZ2VzLCBhbmQgc2hvdWxkIHVzdWFsbHkgYmUgc3BlY2lmaWVkIGFzIHRoZSBsYXN0IGZpbHRlciwgdW5sZXNzIHRoZSBmaWx0ZXIgbWF5IGFkZCBib3JkZXJzIHRvdGhlIGltYWdlLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX3RyYW5zcGFyZW50PSIiIC0gKGNvbG9yWyxhbHBoYV0pIENvbnZlcnRzIGEganBlZyBpbWFnZSB0byB0cmFuc3BhcmVudCBQTkcgYnkgY29udmVydGluZyBhbGwgb2YgdGhlIHBpeGVscyBvZiB0aGUgc3BlY2lmaWVkIGNvbG9yIHRvIHRoZSB0cmFuc3BhcmVudCBjb2xvci4gIE9wdGlvbmFsbHksIGFuIGFscGhhIHZhbHVlIGJldHdlZW4gMCBhbmQgMTI3IGNhbiBiZSBzcGVjaWZpZWQgdG8gaW5kaWNhdGUgc29tZSBhbHBoYSBsZXZlbCBibGVuZGluZzwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX3VudHJhbnNwYXJlbnQ9IiIgLSAoY29sb3JbLHBlcmNlbnRdKSBDb252ZXJ0cyBhIHRyYW5zcGFyZW50IHBuZyBpbWFnZSB0byBhIGpwZWcgaW1hZ2UgYnkgY29weWluZyBhIHRyYW5zcGFyZW50L2FscGhhIGJsZW5kZWQgcG5nIG92ZXJ0b3Agb2YgYW4gaW1hZ2Ugb2YgdGhlIGFwcHJvcHJpYXRlIGNvbG9yLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX3dhdGVybWFyaz0iIiAtIChhbnl0aGluZyksIFNwZWNpZnkgdGhhdCB0aGUgd2F0ZXJtYXJrIChhcyBzcGVjaWZpZWQgaW4gdGhlIENHRXh0ZW5zaW9ucyBhZG1pbiBwYW5lbCkgc2hvdWxkIGJlIGFwcGxpZWQgdG8gdGhlIGltYWdlPC9saT48L3VsPg==]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGdtYWlsLmNvbSZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAxLjE2PGJyIC8+PGJyIC8+Q2hhbmdlIEhpc3Rvcnk6PGJyIC8+PHVsPgogIDxsaT5WZXJzaW9uIDEuMCAtIEluaXRpYWwgUmVsZWFzZTwvbGk+CiAgPGxpPlZlcnNpb24gMS4wLjEgLSBCdWcgZml4ZXMuPC9saT4KICA8bGk+VmVyc2lvbiAxLjAuMiAtIEJ1ZyBmaXhlcy48L2xpPgogIDxsaT5WZXJzaW9uIDEuMC4zIC0gQnVnIGZpeGVzLjwvbGk+CiAgPGxpPlZlcnNpb24gMS4xIC0gTWFyY2ggMjAxMQogICAgPHVsPgogICAgICA8bGk+QWRkcyB0aGUgY3JvcHRvZml0IGZpbHRlci48L2xpPgogICAgICA8bGk+QWRkcyBhdXRvbWF0aWMgaW1hZ2UgcmVzaXppbmcuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAxLjEuMSAtIE1hcmNoIDIwMTEKICAgIDx1bD4KICAgICAgPGxpPkZpeGVzIHRvIGNyb3B0b2ZpdC48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuMS4xIC0gTWF5IDIwMTEKICAgIDx1bD4KICAgICAgPGxpPkZpeGVzIHRvIEdJRiBpbWFnZSBoYW5kbGluZy48L2xpPgogICAgICA8bGk+QWRkIGEgYml0IG1vcmUgaW50ZWxsaWdlbmNlIGludG8gaW1hZ2Ugc3JjIGhhbmRsaW5nLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMS4xLjIgLSBNYXkgMjAxMQogICAgPHVsPgogICAgICA8bGk+TWFueSBtaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAxLjIgLSBNYXkgMjAxMQogICAgPHVsPgogICAgICA8bGk+QWRkcyByb3VuZGVkIGltYWdlIGNvcm5lciBzdXBwb3J0Li4uIHdpdGggdHJhbnNwYXJlbmN5LjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMS4yLjEgLSBNYXkgMjAxMQogICAgPHVsPgogICAgPGxpPkZpeGVzIHByb2JsZW1zIHdpdGggSUU3IGFuZCBlbWJlZGRpbmcgKElFNyB3b250IGVtYmVkLCBhcyBtdWNoIGFzIEkgdHJ5IHRvIG1ha2UgaXQpLjwvbGk+CiAgICA8bGk+UmVxdWlyZXMgbmV3IHZlcnNpb24gb2YgQ0dFeHRlbnNpb25zIHRoYXQgZG9lcyBjcnVkZSBoYWNrIGZvciBtaW1lIHR5cGUgZGV0ZWN0aW9uIG9uIHdpbmRvemUgc2VydmVycy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4KICA8L2xpPlZlcnNpb24gMS4zIC0gTWF5IDIwMTEKICA8bGk+CiAgICA8dWw+CiAgICA8bGk+QWRkcyBzdXBwb3J0IGZvciBqcGVnIGF1dG8tcm90YXRpb24gdmlhIEVYSUYuPC9saT4KICAgIDxsaT5BZGRzIGEgZmxpcCBmaWx0ZXIuPC9saT4KICAgIDxsaT5BZGRzIGNvbW1hbmQgYWxpYXNlcy48L2xpPgogICAgPGxpPkFkZHMgc3VwcG9ydCBmb3IgbXVsdGlwbGUgc3JjIyMgYXJndW1lbnRzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPC9saT5WZXJzaW9uIDEuMy4xIC0gTWF5IDIwMTEKICA8bGk+CiAgICA8dWw+CiAgICA8bGk+U3VwcmVzcyBhIHdhcm5pbmcuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8L2xpPlZlcnNpb24gMS40IC0gSnVseSAyMDExCiAgPGxpPgogICAgPHVsPgogICAgPGxpPkFkZHMgdGhlIHtjZ3NpX2NvbnZlcnR9IHRhZy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDwvbGk+VmVyc2lvbiAxLjQuMSAtIEp1bHkgMjAxMQogIDxsaT4KICAgIDx1bD4KICAgIDxsaT5BZGRyZXNzIGFuIGlzc3VlIHdpdGggdGhlIENNU19TVFlMRVNIRUVUIGdsb2JhbCBvY2Nhc3Npb25hbGx5IGJlaW5nIHNldCwgd2hpY2ggcmVzdWx0cyBpbiB0aGUgbm90YWcgc3R1ZmYgbWVzc2luZyB1cC48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDwvbGk+VmVyc2lvbiAxLjQuMiAtIEp1bHkgMjAxMQogIDxsaT4KICAgIDx1bD4KICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAxLjUgLSBBdWd1c3QgMjAxMQogICAgPHVsPgogICAgPGxpPk1pbm9yIEJ1ZyBGaXhlcy48L2xpPgogICAgPGxpPkZpeGVzIGlzc3VlcyB3aXRoIGNnc2lfY29udmVydC48L2xpPgogICAgPGxpPkFkZHMgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHRpdGxlLCByZWwsIGFuZCBpZCBwYXJhbWV0ZXJzLjwvbGk+CiAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBkb3dubG9hZCBpbWFnZXMgZnJvbSBhIHJlbW90ZSBzaXRlLCBjYWNoZSB0aGVtLi4gYW5kIHByb2Nlc3MgdGhlbS48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuNS4xIC0gU2VwdGVtYmVyLCAyMDExCiAgICA8dWw+CiAgICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAxLjYgLSBPY3RvYmVyLCAyMDExCiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIHNwZWNpZnkgYSBjcm9wLXRvLWZpdCBsb2NhdGlvbiBvdGhlciB0aGFuIGNlbnRlci48L2xpPgogICAgICA8bGk+QWRkcyBhIHByZWZlcmVuY2UgZm9yIHRoZSBkZWZhdWx0IGNyb3AtdG8tZml0IGxvY2F0aW9uLCBidXQgY2hhbmdpbmcgdGhpcyB3aWxsIG5vdCBnZW5lcmF0ZSBuZXcgaW1hZ2VzLi4uIHlvdSB3aWxsIG5lZWQgdG8gY2xlYXIgeW91ciBnZW5lcmF0ZWQgaW1hZ2UgZmlsZXMuPC9saT4KICAgICAgPGxpPmNyb3AtdG8tZml0IGZpbHRlciBub3cgY2hlY2tzIGZvciBwb3NzaWJsZSB1cHNjYWxpbmcgYW5kIHdpbGwgbm90IGFsbG93IGl0LjwvbGk+CiAgICAgIDxsaT5yZW5hbWUgdGhlIG5vY2FjaGUgcGFyYW1ldGVyIHRvIG5vYmNhY2hlIHRvIHJlbW92ZSBjb25mbGljdCB3aXRoIENHRXh0ZW5zaW9ucy48L2xpPgogICAgICA8bGk+Rml4ZXMgYSBidWcgd2l0aCBtdWx0aXBsZSBjbGFzcyBuYW1lcyBzcGVjaWZpZWQgaW4gYWxpYXNlcy48L2xpPgogICAgICA8bGk+Rml4ZXMgYSBidWcgaW4gdGhlIHJlc2l6ZSBmaWx0ZXIuPC9saT4KICAgICAgPGxpPkZpeGVzIGEgYnVnIHdoZXJlIGlmIG5vdGhpbmcgaGFwcGVuZWQgaW4gYW4gaW1hZ2UgZmlsdGVyIChkdWUgdG8gY29uc3RyYWludHMpIHRoZSBzeXN0ZW0gd291bGQgbm90IHNhZmUgdGhlIGZpbGUuPC9saT4KICAgICAgPGxpPkFkZHMgYSByZXNpemV0b2ZpdCBmaWx0ZXIuPC9saT4KICAgICAgPGxpPkdlbmVyYXRlZCBmaWxlcyBubyBsb25nZXIgaGF2ZSBhbiBleHRlbnNpb24gdG8gcHJldmVudCBpbmNvbnNpc3RlbmNpZXMgaW4gZmlsZSB0eXBlcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuNi4xIC0gTm92ZW1iZXIsIDIwMTEKICAgIDx1bD4KICAgICAgPGxpPk1pbm9yIGZpeGVzIHRvIGNnc2lfY29udmVydC48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuNyAtIEZlYnJ1YXJ5LCAyMDEyCiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGNoZWNrIHRoZSB0aW1lIG9mIHRoZSBzb3VyY2UgaW1hZ2UgdG8gYWlkZSBpbiBkZWNpZGluZyBpZiB0aGUgY2FjaGVkIGltYWdlIG5lZWRzIHRvIGJlIGdlbmVyYXRlZC9yZS1nZW5lcmF0ZWQuPC9saT4KICAgICAgPGxpPkZpeGVzIHRvIHRoZSByZXNpemUgZmlsdGVyLjwvbGk+CiAgICAgIDxsaT5SZXNhbXBsZSBpbnN0YWQgb2YgcmVzaXplIGJ5IGRlZmF1bHQgaW4gdGhlIHJlc2l6ZSBmaWx0ZXIuPC9saT4KICAgICAgPGxpPkNyZWF0ZSBhbiBpbmRleC5odG1sIGZpbGUgaW4gdGhlIGltYWdlIGRpcmVjdG9yeSB0byBwcmV2ZW50IGJyb3dzaW5nLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMS44LjEgLSBGZWJydWFyeSwgMjAxMgogICAgPHVsPgogICAgICA8bGk+QWRkcyB0aGUgc2lsZW50IHBhcmFtIHRvIGhpZGUgZXJyb3JzLjwvbGk+CiAgICAgIDxsaT5BZGRzIHJlc2l6ZSB0byBsYXJnZXN0IGVkZ2UgdG8gZmlsdGVyX3Jlc2l6ZS48L2xpPgogICAgICA8bGk+UmVtb3ZlcyBsYXp5bG9hZGluZyBzbyB0aGF0IHtjZ3NpX2NvbnZlclR9IHdpbGwgd29yay48L2xpPgogICAgICA8bGk+c29tZSBtaW5vciBmaXhlcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogPGxpPlZlcnNpb24gMS44LjQgLSBNYXksIDIwMTIKICAgIDx1bD4KICAgICAgPGxpPkZpeGVzIHRvIGNnc2lfY29udmVydC48L2xpPgogICAgICA8bGk+UmVtb3ZlcyB0aGUgY29sb3IgcGFyYW1ldGVyIGZyb20gZmlsdGVyX3JvdGF0ZS48L2xpPgogICAgICA8bGk+Rml4ZXMgd2FybmluZ3MuPC9saT4KICAgICAgPGxpPkNvZGUgY2xlYW51cC48L2xpPgogICAgPC91bD4KIDwvbGk+CiA8bGk+VmVyc2lvbiAxLjkgLSBNYXkgMjAxMgogICA8dWw+CiAgICAgPGxpPkFkZHMgcmVzcG9uc2l2ZSBpbWFnZSBjYXBhYmlsaXRpZXMgd2l0aCB3ZWIgc2VydmljZSBiYXNlZCBtb2JpbGUgZGV2aWNlIGRldGVjdGlvbi48L2xpPgogICAgIDxsaT5JbXByb3ZlcyBwYXRoIGRldGVjdGlvbi48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT5WZXJzaW9uIDEuMTAgLSBKYW4gMjAxMwogICA8dWw+CiAgICAgIDxsaT5BZGRzIHJlZmxlY3Rpb24gZmlsdGVyICh0aGFua3MgdG8gVGFwaW8pLi4uIG5vdGUgb25seSB3b3JrcyB3ZWxsIHdpdGgganBlZyBpbWFnZXM8L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT5WZXJzaW9uIDEuMTEgLSBKdWx5IDIwMTMKICAgPHVsPgogICAgICA8bGk+TWlub3IgZG9jdW1lbnRhdGlvbiBmaXguICBGaWxlcyBwcm92aWRlZCB2aWEgdGhlIHNyYyBhcmd1bWVudCBtdXN0IGJlIGJlbG93IHRoZSBDTVNNUyByb290IFVSTC48L2xpPgogICAgICA8bGk+QWRkcyBhIHNpbXBsZSBzaGFycGVuIGZpbHRlci48L2xpPgogICAgICA8bGk+QWRkcyBzaW1wbGUgbWVtb3J5IGxpbWl0IGNoZWNraW5nICh3aWxsIHdvcmsgZm9yIGhvc3RzIHdoZXJlIHdlIGNhbiBpbmlfZ2V0IHRoZSBtZW1vcnkgbGltaXQuPC9saT4KICAgICAgPGxpPk51bWVyb3VzIGltcHJvdmVtZW50cyB0byB0aGUgcmVzaXpldG9GaXQgZmlsdGVyLjwvbGk+CiAgICAgIDxsaT5GaXhlcyBjYWNoZWQgZmlsZW5hbWVzIHRvIGJlIGVudGlyZWx5IGVuY29kZWQuPC9saT4KICAgICAgPGxpPkZpeGVzIGFsdCB2YWx1ZSBmb3IgaW1hZ2UgdGFncy48L2xpPgogICAgICA8bGk+Tm93IHVzZXMgYSBzaW5nbGUgbGFzdCBmaWx0ZXIuLi4gbm90IG11bHRpcGxlLjwvbGk+CiAgICAgIDxsaT5SYXRpb25hbGl6ZSBiZWhhdmlvciBiZXR3ZWVuIG1heF93aWR0aC9tYXhfaGVpZ2h0IGFuZCB3aWR0aC9oZWlnaHQuCiAgICAgICAgPHA+Tm93LCBpZiBtYXhfd2lkdGgvbWF4X2hlaWdodCBpcyBzcGVjaWZpZWQgdmlhIHRoZSBwYXJhbWV0ZXIsIG9yIGJ5IGRldmljZSBkZXRlY3Rpb24sIEFORCB0aGUgaGVpZ2h0L3dpZHRoIHBhcmFtZXRlcnMgYXJlIHNwZWNpZmllZCwgdGhlIHNtYWxsZXIgb2YgdGhlc2UgdHdvIHBhaXJzIG9mIHZhbHVlcyB3aWxsIGJlIHVzZWQsIGFuZCBhIHNpbmdsZSBmaWx0ZXIgYXBwbGllZC4gIFRoZSBub2F1dG8gcGFyYW1ldGVyIGNhbiBzdGlsbCBiZSB1c2VkIHRvIGVuc3VyZSB0aGF0IHRoZSBpbWcgdGFnIChpZiBnZW5lcmF0ZWQpIGhhcyB0aGUgc3BlY2lmaWVkIHdpdGggYW5kIGhlaWdodCBwYXJhbWV0ZXJzLjwvcD4KICAgICAgPC9saT4KICAgICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT5WZXJzaW9uIDEuMTIgLSBBdWd1c3QgMjAxMwogICA8dWw+CiAgICAgPGxpPkdldCByaWQgb2YgZmlsZW5hbWUgZXh0ZW5zaW9ucyBjb21wbGV0ZWx5LjwvbGk+CiAgICAgPGxpPk5vdyB1c2UgZXhjZXB0aW9ucyBhbG90IG1vcmUgdGhhbiBlcnJvciBzdGF0dXMgKGFsbG93cyBjbGVhbmluZyB1cCBjb2RlKS48L2xpPgogICAgIDxsaT5BZGRzIHRoZSBmaWx0ZXJfIyNfbmFtZSBzeW50YXggd2hpY2ggYWxsb3dzIGNhbGxpbmcgdGhlIHNhbWUgZmlsdGVyIG11bHRpcGxlIHRpbWVzLjwvbGk+CiAgICAgPGxpPkFkZHMgYSBzaW1wbGUgdHJhbnNwYXJlbmN5IGZpbHRlci48L2xpPgogICAgIDxsaT5BZGRzIGEgc2ltcGxlIHVudHJhbnNwYXJlbnQgZmlsdGVyLjwvbGk+CiAgICAgPGxpPlJld3JpdGVzIHRoZSByb3VuZGVkIGNvcm5lcnMgZmlsdGVyLjwvbGk+CiAgICAgPGxpPlJld3JpdGVzIHRoZSByZXNpemUgdG8gZml0IGZpbHRlciAoYWdhaW4pLjwvbGk+CiAgICAgPGxpPlJld3JpdGVzIHRoZSByb3RhdGUgZmlsdGVyLjwvbGk+CiAgICAgPGxpPkZpeGVzIHByb2JsZW1zIHdpdGggZW1wdHkgY2FjaGUgcGF0aDwvbGk+CiAgICAgPGxpPmFsdCBhdHRyaWJ1dGUgaXMgbm93IGFsbG93ZWQgdG8gYmUgZW1wdHkuPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+VmVyc2lvbiAxLjEzIC0gT2N0b2JlciAyMDEzCiAgIDx1bD4KICAgIDxsaT5BZGRzIGEgcHJlZmVyZW5jZSBmb3IgbWVtb3J5IGNoZWNraW5nLjwvbGk+CiAgICA8bGk+Q2hhbmdlIHRvIHRoZSBtZW1vcnkgbmVlZGVkIGNhbGN1bGF0aW9uLjwvbGk+CiAgICA8bGk+QnVnIGZpeGVzLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPlZlcnNpb24gMS4xNCAtIE9jdG9iZXIgMjAxMwogICA8dWw+CiAgICA8bGk+QWRkcyBhIHByZWZlcmVuY2UgZm9yIGV4dGVuc2lvbiBoYW5kbGluZy48L2xpPgogICAgPGxpPkFkZHMgdGhlIGZvcmNlX2V4dCBhbmQgZm9yY2VfdHlwZSBwYXJhbWV0ZXJzLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPlZlcnNpb24gMS4xNSAtIERlY2VtYmVyIDIwMTMKICAgPHVsPgogICAgPGxpPkFkZHMgY3JvcDJzaXplIGZpbHRlci48L2xpPgogICAgPGxpPk1pbm9yIGZpeGVzIHRvIGNyb3B0b2ZpdCBmaWx0ZXIuPC9saT4KICAgIDxsaT5NaW5vciBmaXhlcyB0byByZXNpemUgZmlsdGVyIHdydCB0cmFuc3BhcmVudCBQTkcgaW1hZ2VzPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+VmVyc2lvbiAxLjE2IC0gTWFyY2ggMjAxNAogICA8dWw+CiAgICAgPGxpPkFkZHMge2Nnc2lfZ2V0aW1hZ2VzfSBwbHVnaW4uPC9saT4KICAgICA8bGk+Q2xlYW51cCB0ZW1wb3JhcnkgcmVzb3VyY2VzLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgo8L3VsPgo8YnIgLz4=]]></about>
	<description><![CDATA[A smart image tag generation module for CMSMS]]></description>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.38.4</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.admin_embedding_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwokdGhpcy0+U2V0Q3VycmVudFRhYignZW1iZWRkaW5nJyk7CgokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZW1iZWRfbW9kZScsdHJpbSgkcGFyYW1zWydlbWJlZF9tb2RlJ10pKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2VtYmVkX3NpemVsaW1pdCcsKGludCkkcGFyYW1zWydlbWJlZF9zaXplbGltaXQnXSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdlbWJlZF90eXBlcycsdHJpbSgkcGFyYW1zWydlbWJlZF90eXBlcyddKSk7CgokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_general_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2dlbmVyYWwnKTsKJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwoKdHJ5IHsKICBpZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkgewogICAgLy8gdmFsaWRhdGUgdGhlIGNhY2hlIHBhdGguCiAgICAkY2FjaGVfcGF0aCA9IHRyaW0oJHBhcmFtc1snY2FjaGVfcGF0aCddKTsKICAgIGlmKCAhJGNhY2hlX3BhdGggKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9jYWNoZXBhdGhfaW52YWxpZCcpKTsKICAgICR0cDEgPSAkY2FjaGVfcGF0aDsKICAgIGlmKCAhaXNfZGlyKCR0cDEpICkgJHRwMSA9ICRjb25maWdbJ3Jvb3RfcGF0aCddLicvJy4kdHAxOwogICAgJHAxID0gcmVhbHBhdGgoJHRwMSk7CiAgICAkcDIgPSByZWFscGF0aCgkY29uZmlnWydyb290X3BhdGgnXSk7CiAgICBpZiggJHAxID09ICRwMiB8fCAhc3RhcnRzd2l0aCgkcDEsJHAyKSApIHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2NhY2hlcGF0aF9pbnZhbGlkJykpOwoKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjcm9wdG9maXRfZGVmYXVsdF9sb2MnLHRyaW0oJHBhcmFtc1snY3JvcHRvZml0X2RlZmF1bHRfbG9jJ10pKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjYWNoZV9hZ2UnLChpbnQpJHBhcmFtc1snY2FjaGVfYWdlJ10pOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2NhY2hlX3BhdGgnLCRjYWNoZV9wYXRoKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbWFnZV91cmxfcHJlZml4Jyx0cmltKCRwYXJhbXNbJ2ltYWdlX3VybF9wcmVmaXgnXSkpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3NpbGVudCcsKGludCkkcGFyYW1zWydzaWxlbnQnXSk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1hZ2VfdXJsX2hhc2NhY2hlZGlyJywoaXNzZXQoJHBhcmFtc1snaW1hZ2VfdXJsX2hhc2NhY2hlZGlyJ10pKT8oaW50KSRwYXJhbXNbJ2ltYWdlX3VybF9oYXNjYWNoZWRpciddOjApOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2NoZWNrbWVtb3J5JywoaW50KSRwYXJhbXNbJ2NoZWNrbWVtb3J5J10pOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ZvcmNlX2V4dGVuc2lvbicsKGludCkkcGFyYW1zWydmb3JjZV9leHRlbnNpb24nXSk7CiAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX3ByZWZzdXBkYXRlZCcpKTsKICB9CiAgZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snY2xlYXJfbm93J10pICkgewogICAgLy8gY2xlYXIgYWxsIGZpbGVzIGZyb20gY2FjaGUgZGlyIG9sZGVyIHRoYW4gTiBkYXlzCiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnY2FjaGVfYWdlJywoaW50KSRwYXJhbXNbJ2NhY2hlX2FnZSddKTsKICAgICRuX3JlbW92ZWQgPSAkdGhpcy0+Y2xlYXJfY2FjaGVkX2ZpbGVzKCk7CiAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX2NhY2hlY2xlYW5lZCcsJG5fcmVtb3ZlZCkpOwogICAgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwkbl9yZW1vdmVkLicgZmlsZXMgY2xlYW5lZCBmcm9tIGNhY2hlIGRpcmVjdG9yeScpOwogIH0KICBlbHNlIGlmKCBpc3NldCgkcGFyYW1zWydjbGVhcl9hbGwnXSkgKSB7CiAgICAvLyBqdXN0IG51a2UgdGhlIGNhY2hlIGRpcmVjdG9yeSBjb21wbGV0ZWx5LgogICAgJGNhY2hlX3BhdGggPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY2FjaGVfcGF0aCcsIGNtc19qb2luX3BhdGgoJ3VwbG9hZHMnLCAnXycuJHRoaXMtPkdldE5hbWUoKSkpOwogICAgJGRpciA9ICRjYWNoZV9wYXRoOwogICAgaWYoICFzdGFydHN3aXRoKCRkaXIsJy8nKSApICRkaXIgPSAkY29uZmlnWydyb290X3BhdGgnXS4nLycuJGNhY2hlX3BhdGg7CiAgICAkcDEgPSByZWFscGF0aCgkZGlyKTsKICAgICRwMiA9IHJlYWxwYXRoKCRjb25maWdbJ3Jvb3RfcGF0aCddKTsKICAgIGlmKCAhc3RhcnRzd2l0aCgkcDEsJHAyKSB8fCAkcDEgPT0gJHAyICkgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfY2FjaGVwYXRoX2ludmFsaWQnKSk7CiAgICBjZ2VfZGlyOjpyZWN1cnNpdmVfcm1kaXIoJGRpcik7CiAgICBta2RpcigkZGlyKTsKICAgIEB0b3VjaCgkZGlyLicvaW5kZXguaHRtbCcpOwogICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19jYWNoZXJlbW92ZWQnKSk7CiAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdBbGwgY2FjaGVkIGZpbGVzIHJlbW92ZWQnKTsKICB9Cn0KY2F0Y2goIEV4Y2VwdGlvbiAkZSApIHsKICAkdGhpcy0+U2V0RXJyb3IoJGUtPmdldE1lc3NhZ2UoKSk7Cn0KCiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_responsive_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwokdGhpcy0+U2V0Q3VycmVudFRhYigncmVzcG9uc2l2ZScpOwoKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Jlc3BvbnNpdmUnLChpbnQpJHBhcmFtc1sncmVzcG9uc2l2ZSddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Jlc3BvbnNpdmVfYnJlYWtwb2ludHMnLHRyaW0oJHBhcmFtc1sncmVzcG9uc2l2ZV9icmVha3BvaW50cyddKSk7CgokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_savealiases.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2FsaWFzZXMnKTsKCiRhbGlhc2VzID0gYXJyYXkoKTsKJGVycm9yID0gZmFsc2U7CmZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRwYXJhbXNbJ2FsaWFzX25hbWUnXSk7ICRpKysgKQogIHsKICAgICRuYW1lID0gdHJpbSgkcGFyYW1zWydhbGlhc19uYW1lJ11bJGldKTsKICAgICRvcHRpb25zID0gdHJpbSgkcGFyYW1zWydhbGlhc19vcHRpb25zJ11bJGldKTsKCiAgICBpZiggJG5hbWUgPT0gJycgJiYgJG9wdGlvbnMgPT0gJycgKSBjb250aW51ZTsKICAgIGlmKCAkb3B0aW9ucyA9PSAnJyApCiAgICAgIHsKCSR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfYWxpYXNfbm9vcHRpb25zX2F0cm93JywkaSsxKSk7CgkkZXJyb3IgPSB0cnVlOwoJY29udGludWU7CiAgICAgIH0KICAgIGlmKCAhJG5hbWUgKQogICAgICB7CgkkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2FsaWFzX25vbmFtZV9hdHJvdycsJGkrMSkpOwoJJGVycm9yID0gdHJ1ZTsKCWNvbnRpbnVlOwogICAgICB9CiAgICBpZiggaXNzZXQoJGFsaWFzZXNbJG5hbWVdKSApCiAgICAgIHsKCSR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfYWxpYXNfZHVwbGljYXRlbmFtZV9hdHJvdycsJGkrMSkpOwoJJGVycm9yID0gdHJ1ZTsKCWNvbnRpbnVlOwogICAgICB9CgogICAgJGFsaWFzZXNbJG5hbWVdID0gYXJyYXkoJ25hbWUnPT4kbmFtZSwnb3B0aW9ucyc9PiRvcHRpb25zKTsKICB9CgppZiggJGVycm9yICkKICB7CiAgICAkX1NFU1NJT05bJHRoaXMtPkdldE5hbWUoKS4nX2FsaWFzX25hbWVzJ10gPSAkcGFyYW1zWydhbGlhc19uYW1lJ107CiAgICAkX1NFU1NJT05bJHRoaXMtPkdldE5hbWUoKS4nX2FsaWFzX29wdGlvbnMnXSA9ICRwYXJhbXNbJ2FsaWFzX29wdGlvbnMnXTsKICB9CmVsc2UKICB7CiAgICB1bnNldCgkX1NFU1NJT05bJHRoaXMtPkdldE5hbWUoKS4nX2FsaWFzX25hbWVzJ10pOwogICAgdW5zZXQoJF9TRVNTSU9OWyR0aGlzLT5HZXROYW1lKCkuJ19hbGlhc19vcHRpb25zJ10pOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FsaWFzZXMnLHNlcmlhbGl6ZSgkYWxpYXNlcykpOwogICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19hbGlhc2VzX3VwZGF0ZWQnKSk7CiAgfQokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgcmV0dXJuOwoKJG91dHAgPSBjZ3NpX3V0aWxzOjpwcm9jZXNzX2ltYWdlKCRwYXJhbXMpOwokc2lsZW50ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NpbGVudCcsMCk7CmlmKCBpc3NldCgkcGFyYW1zWydzaWxlbnQnXSkgKSAkc2lsZW50ID0gKGludCkkcGFyYW1zWydzaWxlbnQnXTsKCmlmKCBpc3NldCgkb3V0cFsnZXJyb3InXSkgJiYgJG91dHBbJ2Vycm9yJ10gIT0gJycgKSB7CiAgaWYoICEkc2lsZW50ICkgdHJpZ2dlcl9lcnJvcigkb3V0cFsnZXJyb3InXSk7CiAgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwkb3V0cFsnZXJyb3InXSk7CiAgcmV0dXJuOwp9CgppZiggaXNzZXQoJG91dHBbJ291dHB1dCddKSApIGVjaG8gJG91dHBbJ291dHB1dCddOwoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwoKZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignYWxpYXNlcycsJHRoaXMtPkxhbmcoJ2FsaWFzZXMnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigncmVzcG9uc2l2ZScsJHRoaXMtPkxhbmcoJ3Jlc3BvbnNpdmUnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignZW1iZWRkaW5nJywkdGhpcy0+TGFuZygnZW1iZWRkaW5nJykpOwovL2VjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigncmVzaXppbmcnLCR0aGlzLT5MYW5nKCdyZXNpemluZycpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdnZW5lcmFsJywkdGhpcy0+TGFuZygnZ2VuZXJhbCcpKTsKZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CgplY2hvICR0aGlzLT5TdGFydFRhYignYWxpYXNlcycsJHBhcmFtcyk7CmluY2x1ZGUoX19ESVJfXy4nL2Z1bmN0aW9uLmFkbWluX2FsaWFzZXNfdGFiLnBocCcpOwplY2hvICR0aGlzLT5FbmRUYWIoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdyZXNwb25zaXZlJywkcGFyYW1zKTsKaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fcmVzcG9uc2l2ZV90YWIucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2VtYmVkZGluZycsJHBhcmFtcyk7CmluY2x1ZGUoX19ESVJfXy4nL2Z1bmN0aW9uLmFkbWluX2VtYmVkZGluZ190YWIucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKLy8gZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3Jlc2l6aW5nJywkdGhpcy0+TGFuZygncmVzaXppbmcnKSk7Ci8vIGluY2x1ZGUoX19ESVJfXy4nL2Z1bmN0aW9uLmFkbWluX3Jlc2l6aW5nX3RhYi5waHAnKTsKLy8gZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYignZ2VuZXJhbCcsJHBhcmFtcyk7CmluY2x1ZGUoX19ESVJfXy4nL2Z1bmN0aW9uLmFkbWluX2dlbmVyYWxfdGFiLnBocCcpOwplY2hvICR0aGlzLT5FbmRUYWIoKTsKCmVjaG8gJHRoaXMtPkVuZFRhYkNvbnRlbnQoKTsKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/CGSmartImage.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIENHU21hcnRJbWFnZSBleHRlbmRzIENHRXh0ZW5zaW9ucwp7CiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkKICB7CiAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCk7CiAgICAkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsgLy8gdGhpcyBpcyBoZXJlIHNvIHRoZSBtb2R1bGUgY2FuIGJlIHVzZWQgZnJvbSB0aGUgYWRtaW4uCiAgfQoKICBmdW5jdGlvbiBMYXp5TG9hZEFkbWluKCkgeyByZXR1cm4gRkFMU0U7IH0KICBmdW5jdGlvbiBMYXp5TG9hZEZyb250ZW5kKCkgeyByZXR1cm4gRkFMU0U7IH0KICBmdW5jdGlvbiBHZXROYW1lKCkgeyByZXR1cm4gZ2V0X2NsYXNzKCR0aGlzKTsgfQogIGZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsgIH0KICBmdW5jdGlvbiBHZXRWZXJzaW9uKCkgeyByZXR1cm4gJzEuMTYnOyB9CiAgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKSB7IHJldHVybiAnMS4xMS45JzsgfQogIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpIHsgcmV0dXJuIGFycmF5KCdDR0V4dGVuc2lvbnMnPT4nMS4zOC40Jyk7ICAgfQogIGZ1bmN0aW9uIEdldEF1dGhvcigpIHsgcmV0dXJuICdjYWxndXkxMDAwJzsgfQogIGZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkgeyByZXR1cm4gJ2NhbGd1eTEwMDBAZ21haWwuY29tJzsgfQogIGZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkgeyByZXR1cm4gVFJVRTsgfQogIGZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpIHsgcmV0dXJuICdleHRlbnNpb25zJzsgfQogIGZ1bmN0aW9uIEhhbmRsZXNFdmVudHMgKCkgeyByZXR1cm4gRkFMU0U7IH0KICBmdW5jdGlvbiBIYXNBZG1pbigpIHsgcmV0dXJuIFRSVUU7IH0KICBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKSB7IHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpOyB9CiAgZnVuY3Rpb24gQWxsb3dBdXRvSW5zdGFsbCgpIHsgcmV0dXJuIEZBTFNFOyB9CiAgZnVuY3Rpb24gQWxsb3dBdXRvVXBncmFkZSgpIHsgcmV0dXJuIEZBTFNFOyB9CiAgZnVuY3Rpb24gR2V0SGVscCgpIHsgcmV0dXJuIGZpbGVfZ2V0X2NvbnRlbnRzKF9fRElSX18uJy9oZWxwLmluYycpOyB9CiAgZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdtb2RkZXNjcmlwdGlvbicpOyB9CiAgZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkgeyByZXR1cm4gQGZpbGVfZ2V0X2NvbnRlbnRzKF9fRElSX18uJy9jaGFuZ2Vsb2cuaW5jJyk7IH0KICBmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKSB7IHJldHVybiAkdGhpcy0+TGFuZygncG9zdGluc3RhbGwnKTsgfQogIGZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsgfQoKICBwdWJsaWMgZnVuY3Rpb24gSW5pdGlhbGl6ZUZyb250ZW5kKCkKICB7CiAgICBwYXJlbnQ6OlNldFBhcmFtZXRlcnMoKTsKICAgICR0aGlzLT5SZXN0cmljdFVua25vd25QYXJhbXMoKTsKCiAgICAvLyBvcGVyYXRpb25hbCBwYXJhbXMgKHdoYXQgdG8gZG8sIHdpdGggd2hhdC4uLikKCiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9hdXRvc2NhbGUnLENMRUFOX0lOVCk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9iY2FjaGUnLENMRUFOX0lOVCk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9lbWJlZCcsQ0xFQU5fSU5UKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdub2F1dG8nLENMRUFOX0lOVCk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9yb3RhdGUnLENMRUFOX0lOVCk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm90YWcnLENMRUFOX0lOVCk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9yZXNwb25zaXZlJyxDTEVBTl9JTlQpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ25vcmVtb3RlJyxDTEVBTl9JTlQpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NyYycsQ0xFQU5fU1RSSU5HKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdvdmVyd3JpdGUnLENMRUFOX0lOVCk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZm9yY2VfZXh0JyxDTEVBTl9JTlQpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2ZvcmNlX3R5cGUnLENMRUFOX1NUUklORyk7CgogICAgLy8gcGFyYW1zIGZvciB0aGUgb3V0cHV0IHRhZyAoaWYgb3V0cHV0dGluZyBhbiBpbWcgdGFnKQogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2lkJyxDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NsYXNzJyxDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3N0eWxlJyxDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3RpdGxlJyxDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2FsdCcsQ0xFQU5fU1RSSU5HKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCduYW1lJyxDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2hlaWdodCcsQ0xFQU5fSU5UKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCd3aWR0aCcsQ0xFQU5fSU5UKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdtYXhfaGVpZ2h0JyxDTEVBTl9JTlQpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ21heF93aWR0aCcsQ0xFQU5fSU5UKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdxdWFsaXR5JyxDTEVBTl9JTlQpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3JlbCcsQ0xFQU5fU1RSSU5HKTsKCiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZShDTEVBTl9SRUdFWFAuJy9zcmNcZCovJyxDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoQ0xFQU5fUkVHRVhQLicvYWxpYXNcZCovJyxDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoQ0xFQU5fUkVHRVhQLicvZmlsdGVyX1x3Ki8nLENMRUFOX1NUUklORyk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc2lsZW50JyxDTEVBTl9JTlQpOwoKICAgIC8vIG1vcmUgc21hcnR5IHBsdWdpbnMKICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsKICAgICRzbWFydHktPnJlZ2lzdGVyX2Jsb2NrKCdjZ3NpX2NvbnZlcnQnLGFycmF5KCdjZ3NpX3V0aWxzJywnY2dzaV9jb252ZXJ0JykpOwogICAgJHNtYXJ0eS0+cmVnaXN0ZXJfYmxvY2soJ2Nnc2lfZ2V0aW1hZ2VzJyxhcnJheSgnY2dzaV9leHRlbmRlZCcsJ2Nnc2lfZ2V0aW1hZ2VzJykpOwogIH0KCiAgZnVuY3Rpb24gSW5pdGlhbGl6ZUFkbWluKCkKICB7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzaWxlbnQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9zaWxlbnQnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdhbGlhcycsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2FsaWFzJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbm9hdXRvc2NhbGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9ub2F1dG9zY2FsZScpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ25vYmNhY2hlJywnJywkdGhpcy0+TGFuZygncGFyYW1fbm9iY2FjaGUnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdub2VtYmVkJywnJywkdGhpcy0+TGFuZygncGFyYW1fbm9lbWJlZCcpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ25vYXV0bycsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX25vYXV0bycpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ25vcm90YXRlJywnJywkdGhpcy0+TGFuZygncGFyYW1fbm9yb3RhdGUnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdub3RhZycsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX25vdGFnJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbm9yZXNwb25zaXZlJywnJywkdGhpcy0+TGFuZygncGFyYW1fbm9yZXNwb25zaXZlJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbm9icmVha3BvaW50cycsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX25vYnJlYWtwb2ludHMnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdub3JlbW90ZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX25vcmVtb3RlJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZm9yY2VfdHlwZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZvcmNldHlwZScpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZvcmNlX2V4dCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZvcmNlZXh0JykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc3JjJywnJywkdGhpcy0+TGFuZygncGFyYW1fc3JjJyksZmFsc2UpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignb3ZlcndyaXRlJywnJywkdGhpcy0+TGFuZygncGFyYW1fb3ZlcndyaXRlJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignaWQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9pZCcpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2NsYXNzJywnJywkdGhpcy0+TGFuZygncGFyYW1fY2xhc3MnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzdHlsZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX3N0eWxlJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigndGl0bGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV90aXRsZScpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2FsdCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2FsdCcpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ25hbWUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9uYW1lJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignaGVpZ2h0JywnJywkdGhpcy0+TGFuZygncGFyYW1faGVpZ2h0JykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignd2lkdGgnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV93aWR0aCcpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3F1YWxpdHknLCc3NScsJHRoaXMtPkxhbmcoJ3BhcmFtX3F1YWxpdHknKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdyZWwnLCc3NScsJHRoaXMtPkxhbmcoJ3BhcmFtX3JlbCcpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ21heF93aWR0aCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX21heF93aWR0aCcpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ21heF9oZWlnaHQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9tYXhfaGVpZ2h0JykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmlsdGVyX2JsdXInLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWx0ZXJfYmx1cicpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZpbHRlcl9icmlnaHRuZXNzJywnJywkdGhpcy0+TGFuZygncGFyYW1fZmlsdGVyX2JyaWdodG5lc3MnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfY29sb3JpemUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWx0ZXJfY29sb3JpemUnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfY29udHJhc3QnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWx0ZXJfY29udHJhc3QnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfY3JvcCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZpbHRlcl9jcm9wJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmlsdGVyX2Nyb3Ayc2l6ZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZpbHRlcl9jcm9wMnNpemUnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfY3JvcHRvZml0JywnJywkdGhpcy0+TGFuZygncGFyYW1fZmlsdGVyX2Nyb3B0b2ZpdCcpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZpbHRlcl9lZGdlZGV0ZWN0JywnJywkdGhpcy0+TGFuZygncGFyYW1fZmlsdGVyX2VkZ2VkZXRlY3QnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfZW1ib3NzJywnJywkdGhpcy0+TGFuZygncGFyYW1fZmlsdGVyX2VtYm9zcycpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZpbHRlcl9mbGlwJywnJywkdGhpcy0+TGFuZygncGFyYW1fZmlsdGVyX2ZsaXAnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfZ3JheXNjYWxlJywnJywkdGhpcy0+TGFuZygncGFyYW1fZmlsdGVyX2dyYXlzY2FsZScpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZpbHRlcl9tZWFucmVtb3ZhbCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZpbHRlcl9tZWFucmVtb3ZhbCcpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZpbHRlcl9uZWdhdGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWx0ZXJfbmVnYXRlJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmlsdGVyX3BpeGVsYXRlJywnJywkdGhpcy0+TGFuZygncGFyYW1fZmlsdGVyX3BpeGVsYXRlJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmlsdGVyX3JlZmxlY3QnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWx0ZXJfcmVmbGVjdCcpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZpbHRlcl9yZXNpemUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWx0ZXJfcmVzaXplJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmlsdGVyX3Jlc2l6ZXRvZml0JywnJywkdGhpcy0+TGFuZygncGFyYW1fZmlsdGVyX3Jlc2l6ZXRvZml0JykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmlsdGVyX3JvdGF0ZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZpbHRlcl9yb3RhdGUnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfcm91bmRlZGNvcm5lcnMnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWx0ZXJfcm91bmRlZGNvcm5lcnMnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfc2hhcnBlbicsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZpbHRlcl9zaGFycGVuJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmlsdGVyX3RyYW5zcGFyZW50JywnJywkdGhpcy0+TGFuZygncGFyYW1fZmlsdGVyX3RyYW5zcGFyZW50JykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmlsdGVyX3VudHJhbnNwYXJlbnQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWx0ZXJfdW50cmFuc3BhcmVudCcpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZpbHRlcl93YXRlcm1hcmsnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWx0ZXJfd2F0ZXJtYXJrJykpOwogIH0KCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIGNhbl9zbWFydF9lbWJlZCgkc3JjKQogIHsKICAgIGdsb2JhbCAkQ01TX0FETUlOX1BBR0U7CiAgICBnbG9iYWwgJENNU19TVFlMRVNIRUVUOwoKICAgICRpbWFnc2l6ZSA9IGZpbGVzaXplKCRzcmMpOwoKICAgICRicm93c2VyID0gY2dlX3V0aWxzOjpnZXRfYnJvd3NlcigpOwogICAgc3dpdGNoKCAkYnJvd3Nlci0+Z2V0QnJvd3NlcigpICkgewogICAgY2FzZSBCcm93c2VyOjpCUk9XU0VSX0lFOgogICAgICAkdmVyID0gJGJyb3dzZXItPmdldFZlcnNpb24oKTsKICAgICAgaWYoICR2ZXIgPD0gNyApIHJldHVybiBGQUxTRTsKICAgICAgaWYoICRDTVNfU1RZTEVTSEVFVCAmJiAkdmVyIDwgOCApIHJldHVybiBGQUxTRTsKICAgICAgaWYoICR2ZXIgPT0gOCAmJiAkaW1hZ3NpemUgPj0gMzIqMTAyNCApIHJldHVybiBGQUxTRTsKICAgICAgcmV0dXJuIFRSVUU7CgogICAgZGVmYXVsdDoKICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gY2FuX2VtYmVkKCRzcmMpCiAgewogICAgaWYoICFpc19yZWFkYWJsZSgkc3JjKSApIHJldHVybiBGQUxTRTsKCiAgICAkZV9tb2RlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2VtYmVkX21vZGUnKTsKICAgICRlX3NpemVsaW1pdCA9IChpbnQpJHRoaXMtPkdldFByZWZlcmVuY2UoJ2VtYmVkX3NpemUnKTsKICAgICRlX3R5cGVzID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2VtYmVkX3R5cGVzJyk7CgogICAgc3dpdGNoKCAkZV9tb2RlICkgewogICAgY2FzZSAnc21hcnQnOgogICAgICByZXR1cm4gJHRoaXMtPmNhbl9zbWFydF9lbWJlZCgkc3JjKTsKCiAgICBjYXNlICdzbWFydF9saW1pdGVkJzoKICAgICAgaWYoICRlX3NpemVsaW1pdCA8PSAwIHx8ICRlX3NpemVsaW1pdCA+IDEwMDAwICkgcmV0dXJuIEZBTFNFOwogICAgICAkZV9zaXplbGltaXQgKj0gMTAyNDsKICAgICAgJHRtcCA9IGZpbGVzaXplKCRzcmMpOwogICAgICBpZiggJHRtcCA+ICRlX3NpemVsaW1pdCApIHJldHVybiBGQUxTRTsKICAgICAgcmV0dXJuICR0aGlzLT5jYW5fc21hcnRfZW1iZWQoJHNyYyk7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ3NpemVsaW1pdCc6CiAgICAgIC8vIGNoZWNrIHRoZSBsaW1pdC4KICAgICAgaWYoICRlX3NpemVsaW1pdCA8PSAwIHx8ICRlX3NpemVsaW1pdCA+IDEwMDAwICkgcmV0dXJuIEZBTFNFOwogICAgICAkZV9zaXplbGltaXQgKj0gMTAyNDsKCiAgICAgIC8vIGdldCB0aGUgZmlsZXNpemUKICAgICAgJHRtcCA9IGZpbGVzaXplKCRzcmMpOwogICAgICBpZiggJHRtcCA+ICRlX3NpemVsaW1pdCApIHJldHVybiBGQUxTRTsKICAgICAgcmV0dXJuIFRSVUU7CgogICAgY2FzZSAndHlwZSc6CiAgICAgIGlmKCAhJGVfdHlwZXMgKSByZXR1cm4gRkFMU0U7CiAgICAgICR0eXBlcyA9IGV4cGxvZGUoJywnLCRlX3R5cGVzKTsKICAgICAgJGV4dCA9IHN0cnJjaHIoJGZpbGVbJ25hbWUnXSwnLicpOwogICAgICBpZiggISRleHQgKSByZXR1cm4gRkFMU0U7CiAgICAgIGZvcmVhY2goICR0eXBlcyBhcyAkdHlwZSApIHsKCWlmKCAnLicuc3RydG9sb3dlcigkdHlwZSkgPT0gc3RydG9sb3dlcigkZXh0ZW5zaW9uKSApIHJldHVybiBUUlVFOwogICAgICB9CiAgICAgIHJldHVybiBGQUxTRTsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnbm9uZSc6CiAgICBkZWZhdWx0OgogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gY2xlYXJfY2FjaGVkX2ZpbGVzKCkKICB7CiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAkY2FjaGVfcGF0aCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjYWNoZV9wYXRoJywgY21zX2pvaW5fcGF0aCgndXBsb2FkcycsICdfJy4kdGhpcy0+R2V0TmFtZSgpKSk7CiAgICAkdHAxID0gJGNhY2hlX3BhdGg7CiAgICBpZiggIWlzX2RpcigkdHAxKSApICR0cDEgPSAkY29uZmlnWydyb290X3BhdGgnXS4nLycuJHRwMTsKICAgICRwMSA9IHJlYWxwYXRoKCR0cDEpOwogICAgJHAyID0gcmVhbHBhdGgoJGNvbmZpZ1sncm9vdF9wYXRoJ10pOwogICAgaWYoICRwMSA9PSAkcDIgfHwgIXN0YXJ0c3dpdGgoJHAxLCRwMikgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9jYWNoZXBhdGhfaW52YWxpZCcpKTsKICAgICRkaXIgPSAkdHAxOwoKICAgICRhZ2VfZGF5cyA9IChpbnQpJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NhY2hlX2FnZScpOwogICAgaWYoICRhZ2VfZGF5cyA8PSAwICkgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZF9hZ2UnKSk7CgogICAgJHRoZWRhdGUgPSB0aW1lKCkgLSAkYWdlX2RheXMgKiAyNCAqIDYwICogNjA7CiAgICAkbl9yZW1vdmVkID0gMDsKICAgIGlmKCAkZGggPSBvcGVuZGlyKCRkaXIpICkgewogICAgICB3aGlsZSggKCRmaWxlID0gcmVhZGRpcigkZGgpKSAhPT0gZmFsc2UgKSB7CglpZiggc3RhcnRzd2l0aCgkZmlsZSwnLicpICkgY29udGludWU7IC8vIGlnbm9yZSBoaWRkZW4gZmlsZXMuCgkkZm4gPSBjbXNfam9pbl9wYXRoKCRkaXIsJGZpbGUpOwoJaWYoIGZpbGVtdGltZSgkZm4pIDwgJHRoZWRhdGUgJiYgaXNfZmlsZSgkZm4pICkgewoJICBAdW5saW5rKCRmbik7CgkgICRuX3JlbW92ZWQrKzsKCX0KICAgICAgfQogICAgICBjbG9zZWRpcigkZGgpOwogICAgfQogICAgcmV0dXJuICRuX3JlbW92ZWQ7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gSGFzQ2FwYWJpbGl0eSgkY2FwYWJpbGl0eSwgJHBhcmFtcyA9IGFycmF5KCkpCiAgewogICAgaWYoICRjYXBhYmlsaXR5ID09ICd0YXNrcycgKSByZXR1cm4gVFJVRTsKICAgIHJldHVybiBGQUxTRTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfdGFza3MoKQogIHsKICAgIHJldHVybiBuZXcgQ0dTbWFydEltYWdlX0NsZWFyQ2FjaGVUYXNrKCk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NhY2hlZF9pbWFnZV91cmwoJGZpbGVuYW1lKQogIHsKICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAgICRwcmVmaXggPSB0cmltKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbWFnZV91cmxfcHJlZml4JykpOwogICAgaWYoICEkcHJlZml4ICkgJHByZWZpeCA9ICRjb25maWdbJ3Jvb3RfdXJsJ107CiAgICAkaGFzY2FjaGVkaXIgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VfdXJsX2hhc2NhY2hlZGlyJyk7CgogICAgJHVybCA9ICRwcmVmaXg7CiAgICBpZiggIWVuZHN3aXRoKCR1cmwsJy8nKSApICR1cmwgLj0gJy8nOwogICAgaWYoICEkaGFzY2FjaGVkaXIgKSB7CiAgICAgICRjYWNoZV91cmwgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY2FjaGVfcGF0aCcsIGNtc19qb2luX3BhdGgoJ3VwbG9hZHMnLCAnXycuJHRoaXMtPkdldE5hbWUoKSkpOwogICAgICAkY2FjaGVfdXJsID0gc3RyX3JlcGxhY2UoRElSRUNUT1JZX1NFUEFSQVRPUiwgJy8nLCAkY2FjaGVfdXJsKTsgLy8gPC0gRW5zdXJlIGNvcnJlY3Qgc2xhc2hlcyBmb3IgVVJMCiAgICAgICR1cmwgLj0gJGNhY2hlX3VybDsKICAgIH0KICAgIGlmKCAhZW5kc3dpdGgoJHVybCwnLycpICkgJHVybCAuPSAnLyc7CiAgICAkdXJsIC49ICRmaWxlbmFtZTsKICAgIHJldHVybiAkdXJsOwogIH0KCn0gLy8gZW5kIG9mIGNsYXNzCgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgogIDxsaT5WZXJzaW9uIDEuMCAtIEluaXRpYWwgUmVsZWFzZTwvbGk+CiAgPGxpPlZlcnNpb24gMS4wLjEgLSBCdWcgZml4ZXMuPC9saT4KICA8bGk+VmVyc2lvbiAxLjAuMiAtIEJ1ZyBmaXhlcy48L2xpPgogIDxsaT5WZXJzaW9uIDEuMC4zIC0gQnVnIGZpeGVzLjwvbGk+CiAgPGxpPlZlcnNpb24gMS4xIC0gTWFyY2ggMjAxMQogICAgPHVsPgogICAgICA8bGk+QWRkcyB0aGUgY3JvcHRvZml0IGZpbHRlci48L2xpPgogICAgICA8bGk+QWRkcyBhdXRvbWF0aWMgaW1hZ2UgcmVzaXppbmcuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAxLjEuMSAtIE1hcmNoIDIwMTEKICAgIDx1bD4KICAgICAgPGxpPkZpeGVzIHRvIGNyb3B0b2ZpdC48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuMS4xIC0gTWF5IDIwMTEKICAgIDx1bD4KICAgICAgPGxpPkZpeGVzIHRvIEdJRiBpbWFnZSBoYW5kbGluZy48L2xpPgogICAgICA8bGk+QWRkIGEgYml0IG1vcmUgaW50ZWxsaWdlbmNlIGludG8gaW1hZ2Ugc3JjIGhhbmRsaW5nLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMS4xLjIgLSBNYXkgMjAxMQogICAgPHVsPgogICAgICA8bGk+TWFueSBtaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAxLjIgLSBNYXkgMjAxMQogICAgPHVsPgogICAgICA8bGk+QWRkcyByb3VuZGVkIGltYWdlIGNvcm5lciBzdXBwb3J0Li4uIHdpdGggdHJhbnNwYXJlbmN5LjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMS4yLjEgLSBNYXkgMjAxMQogICAgPHVsPgogICAgPGxpPkZpeGVzIHByb2JsZW1zIHdpdGggSUU3IGFuZCBlbWJlZGRpbmcgKElFNyB3b250IGVtYmVkLCBhcyBtdWNoIGFzIEkgdHJ5IHRvIG1ha2UgaXQpLjwvbGk+CiAgICA8bGk+UmVxdWlyZXMgbmV3IHZlcnNpb24gb2YgQ0dFeHRlbnNpb25zIHRoYXQgZG9lcyBjcnVkZSBoYWNrIGZvciBtaW1lIHR5cGUgZGV0ZWN0aW9uIG9uIHdpbmRvemUgc2VydmVycy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT4KICA8L2xpPlZlcnNpb24gMS4zIC0gTWF5IDIwMTEKICA8bGk+CiAgICA8dWw+CiAgICA8bGk+QWRkcyBzdXBwb3J0IGZvciBqcGVnIGF1dG8tcm90YXRpb24gdmlhIEVYSUYuPC9saT4KICAgIDxsaT5BZGRzIGEgZmxpcCBmaWx0ZXIuPC9saT4KICAgIDxsaT5BZGRzIGNvbW1hbmQgYWxpYXNlcy48L2xpPgogICAgPGxpPkFkZHMgc3VwcG9ydCBmb3IgbXVsdGlwbGUgc3JjIyMgYXJndW1lbnRzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPC9saT5WZXJzaW9uIDEuMy4xIC0gTWF5IDIwMTEKICA8bGk+CiAgICA8dWw+CiAgICA8bGk+U3VwcmVzcyBhIHdhcm5pbmcuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8L2xpPlZlcnNpb24gMS40IC0gSnVseSAyMDExCiAgPGxpPgogICAgPHVsPgogICAgPGxpPkFkZHMgdGhlIHtjZ3NpX2NvbnZlcnR9IHRhZy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDwvbGk+VmVyc2lvbiAxLjQuMSAtIEp1bHkgMjAxMQogIDxsaT4KICAgIDx1bD4KICAgIDxsaT5BZGRyZXNzIGFuIGlzc3VlIHdpdGggdGhlIENNU19TVFlMRVNIRUVUIGdsb2JhbCBvY2Nhc3Npb25hbGx5IGJlaW5nIHNldCwgd2hpY2ggcmVzdWx0cyBpbiB0aGUgbm90YWcgc3R1ZmYgbWVzc2luZyB1cC48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDwvbGk+VmVyc2lvbiAxLjQuMiAtIEp1bHkgMjAxMQogIDxsaT4KICAgIDx1bD4KICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAxLjUgLSBBdWd1c3QgMjAxMQogICAgPHVsPgogICAgPGxpPk1pbm9yIEJ1ZyBGaXhlcy48L2xpPgogICAgPGxpPkZpeGVzIGlzc3VlcyB3aXRoIGNnc2lfY29udmVydC48L2xpPgogICAgPGxpPkFkZHMgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHRpdGxlLCByZWwsIGFuZCBpZCBwYXJhbWV0ZXJzLjwvbGk+CiAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBkb3dubG9hZCBpbWFnZXMgZnJvbSBhIHJlbW90ZSBzaXRlLCBjYWNoZSB0aGVtLi4gYW5kIHByb2Nlc3MgdGhlbS48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuNS4xIC0gU2VwdGVtYmVyLCAyMDExCiAgICA8dWw+CiAgICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAxLjYgLSBPY3RvYmVyLCAyMDExCiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIHNwZWNpZnkgYSBjcm9wLXRvLWZpdCBsb2NhdGlvbiBvdGhlciB0aGFuIGNlbnRlci48L2xpPgogICAgICA8bGk+QWRkcyBhIHByZWZlcmVuY2UgZm9yIHRoZSBkZWZhdWx0IGNyb3AtdG8tZml0IGxvY2F0aW9uLCBidXQgY2hhbmdpbmcgdGhpcyB3aWxsIG5vdCBnZW5lcmF0ZSBuZXcgaW1hZ2VzLi4uIHlvdSB3aWxsIG5lZWQgdG8gY2xlYXIgeW91ciBnZW5lcmF0ZWQgaW1hZ2UgZmlsZXMuPC9saT4KICAgICAgPGxpPmNyb3AtdG8tZml0IGZpbHRlciBub3cgY2hlY2tzIGZvciBwb3NzaWJsZSB1cHNjYWxpbmcgYW5kIHdpbGwgbm90IGFsbG93IGl0LjwvbGk+CiAgICAgIDxsaT5yZW5hbWUgdGhlIG5vY2FjaGUgcGFyYW1ldGVyIHRvIG5vYmNhY2hlIHRvIHJlbW92ZSBjb25mbGljdCB3aXRoIENHRXh0ZW5zaW9ucy48L2xpPgogICAgICA8bGk+Rml4ZXMgYSBidWcgd2l0aCBtdWx0aXBsZSBjbGFzcyBuYW1lcyBzcGVjaWZpZWQgaW4gYWxpYXNlcy48L2xpPgogICAgICA8bGk+Rml4ZXMgYSBidWcgaW4gdGhlIHJlc2l6ZSBmaWx0ZXIuPC9saT4KICAgICAgPGxpPkZpeGVzIGEgYnVnIHdoZXJlIGlmIG5vdGhpbmcgaGFwcGVuZWQgaW4gYW4gaW1hZ2UgZmlsdGVyIChkdWUgdG8gY29uc3RyYWludHMpIHRoZSBzeXN0ZW0gd291bGQgbm90IHNhZmUgdGhlIGZpbGUuPC9saT4KICAgICAgPGxpPkFkZHMgYSByZXNpemV0b2ZpdCBmaWx0ZXIuPC9saT4KICAgICAgPGxpPkdlbmVyYXRlZCBmaWxlcyBubyBsb25nZXIgaGF2ZSBhbiBleHRlbnNpb24gdG8gcHJldmVudCBpbmNvbnNpc3RlbmNpZXMgaW4gZmlsZSB0eXBlcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuNi4xIC0gTm92ZW1iZXIsIDIwMTEKICAgIDx1bD4KICAgICAgPGxpPk1pbm9yIGZpeGVzIHRvIGNnc2lfY29udmVydC48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuNyAtIEZlYnJ1YXJ5LCAyMDEyCiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGNoZWNrIHRoZSB0aW1lIG9mIHRoZSBzb3VyY2UgaW1hZ2UgdG8gYWlkZSBpbiBkZWNpZGluZyBpZiB0aGUgY2FjaGVkIGltYWdlIG5lZWRzIHRvIGJlIGdlbmVyYXRlZC9yZS1nZW5lcmF0ZWQuPC9saT4KICAgICAgPGxpPkZpeGVzIHRvIHRoZSByZXNpemUgZmlsdGVyLjwvbGk+CiAgICAgIDxsaT5SZXNhbXBsZSBpbnN0YWQgb2YgcmVzaXplIGJ5IGRlZmF1bHQgaW4gdGhlIHJlc2l6ZSBmaWx0ZXIuPC9saT4KICAgICAgPGxpPkNyZWF0ZSBhbiBpbmRleC5odG1sIGZpbGUgaW4gdGhlIGltYWdlIGRpcmVjdG9yeSB0byBwcmV2ZW50IGJyb3dzaW5nLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMS44LjEgLSBGZWJydWFyeSwgMjAxMgogICAgPHVsPgogICAgICA8bGk+QWRkcyB0aGUgc2lsZW50IHBhcmFtIHRvIGhpZGUgZXJyb3JzLjwvbGk+CiAgICAgIDxsaT5BZGRzIHJlc2l6ZSB0byBsYXJnZXN0IGVkZ2UgdG8gZmlsdGVyX3Jlc2l6ZS48L2xpPgogICAgICA8bGk+UmVtb3ZlcyBsYXp5bG9hZGluZyBzbyB0aGF0IHtjZ3NpX2NvbnZlclR9IHdpbGwgd29yay48L2xpPgogICAgICA8bGk+c29tZSBtaW5vciBmaXhlcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogPGxpPlZlcnNpb24gMS44LjQgLSBNYXksIDIwMTIKICAgIDx1bD4KICAgICAgPGxpPkZpeGVzIHRvIGNnc2lfY29udmVydC48L2xpPgogICAgICA8bGk+UmVtb3ZlcyB0aGUgY29sb3IgcGFyYW1ldGVyIGZyb20gZmlsdGVyX3JvdGF0ZS48L2xpPgogICAgICA8bGk+Rml4ZXMgd2FybmluZ3MuPC9saT4KICAgICAgPGxpPkNvZGUgY2xlYW51cC48L2xpPgogICAgPC91bD4KIDwvbGk+CiA8bGk+VmVyc2lvbiAxLjkgLSBNYXkgMjAxMgogICA8dWw+CiAgICAgPGxpPkFkZHMgcmVzcG9uc2l2ZSBpbWFnZSBjYXBhYmlsaXRpZXMgd2l0aCB3ZWIgc2VydmljZSBiYXNlZCBtb2JpbGUgZGV2aWNlIGRldGVjdGlvbi48L2xpPgogICAgIDxsaT5JbXByb3ZlcyBwYXRoIGRldGVjdGlvbi48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT5WZXJzaW9uIDEuMTAgLSBKYW4gMjAxMwogICA8dWw+CiAgICAgIDxsaT5BZGRzIHJlZmxlY3Rpb24gZmlsdGVyICh0aGFua3MgdG8gVGFwaW8pLi4uIG5vdGUgb25seSB3b3JrcyB3ZWxsIHdpdGgganBlZyBpbWFnZXM8L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT5WZXJzaW9uIDEuMTEgLSBKdWx5IDIwMTMKICAgPHVsPgogICAgICA8bGk+TWlub3IgZG9jdW1lbnRhdGlvbiBmaXguICBGaWxlcyBwcm92aWRlZCB2aWEgdGhlIHNyYyBhcmd1bWVudCBtdXN0IGJlIGJlbG93IHRoZSBDTVNNUyByb290IFVSTC48L2xpPgogICAgICA8bGk+QWRkcyBhIHNpbXBsZSBzaGFycGVuIGZpbHRlci48L2xpPgogICAgICA8bGk+QWRkcyBzaW1wbGUgbWVtb3J5IGxpbWl0IGNoZWNraW5nICh3aWxsIHdvcmsgZm9yIGhvc3RzIHdoZXJlIHdlIGNhbiBpbmlfZ2V0IHRoZSBtZW1vcnkgbGltaXQuPC9saT4KICAgICAgPGxpPk51bWVyb3VzIGltcHJvdmVtZW50cyB0byB0aGUgcmVzaXpldG9GaXQgZmlsdGVyLjwvbGk+CiAgICAgIDxsaT5GaXhlcyBjYWNoZWQgZmlsZW5hbWVzIHRvIGJlIGVudGlyZWx5IGVuY29kZWQuPC9saT4KICAgICAgPGxpPkZpeGVzIGFsdCB2YWx1ZSBmb3IgaW1hZ2UgdGFncy48L2xpPgogICAgICA8bGk+Tm93IHVzZXMgYSBzaW5nbGUgbGFzdCBmaWx0ZXIuLi4gbm90IG11bHRpcGxlLjwvbGk+CiAgICAgIDxsaT5SYXRpb25hbGl6ZSBiZWhhdmlvciBiZXR3ZWVuIG1heF93aWR0aC9tYXhfaGVpZ2h0IGFuZCB3aWR0aC9oZWlnaHQuCiAgICAgICAgPHA+Tm93LCBpZiBtYXhfd2lkdGgvbWF4X2hlaWdodCBpcyBzcGVjaWZpZWQgdmlhIHRoZSBwYXJhbWV0ZXIsIG9yIGJ5IGRldmljZSBkZXRlY3Rpb24sIEFORCB0aGUgaGVpZ2h0L3dpZHRoIHBhcmFtZXRlcnMgYXJlIHNwZWNpZmllZCwgdGhlIHNtYWxsZXIgb2YgdGhlc2UgdHdvIHBhaXJzIG9mIHZhbHVlcyB3aWxsIGJlIHVzZWQsIGFuZCBhIHNpbmdsZSBmaWx0ZXIgYXBwbGllZC4gIFRoZSBub2F1dG8gcGFyYW1ldGVyIGNhbiBzdGlsbCBiZSB1c2VkIHRvIGVuc3VyZSB0aGF0IHRoZSBpbWcgdGFnIChpZiBnZW5lcmF0ZWQpIGhhcyB0aGUgc3BlY2lmaWVkIHdpdGggYW5kIGhlaWdodCBwYXJhbWV0ZXJzLjwvcD4KICAgICAgPC9saT4KICAgICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT5WZXJzaW9uIDEuMTIgLSBBdWd1c3QgMjAxMwogICA8dWw+CiAgICAgPGxpPkdldCByaWQgb2YgZmlsZW5hbWUgZXh0ZW5zaW9ucyBjb21wbGV0ZWx5LjwvbGk+CiAgICAgPGxpPk5vdyB1c2UgZXhjZXB0aW9ucyBhbG90IG1vcmUgdGhhbiBlcnJvciBzdGF0dXMgKGFsbG93cyBjbGVhbmluZyB1cCBjb2RlKS48L2xpPgogICAgIDxsaT5BZGRzIHRoZSBmaWx0ZXJfIyNfbmFtZSBzeW50YXggd2hpY2ggYWxsb3dzIGNhbGxpbmcgdGhlIHNhbWUgZmlsdGVyIG11bHRpcGxlIHRpbWVzLjwvbGk+CiAgICAgPGxpPkFkZHMgYSBzaW1wbGUgdHJhbnNwYXJlbmN5IGZpbHRlci48L2xpPgogICAgIDxsaT5BZGRzIGEgc2ltcGxlIHVudHJhbnNwYXJlbnQgZmlsdGVyLjwvbGk+CiAgICAgPGxpPlJld3JpdGVzIHRoZSByb3VuZGVkIGNvcm5lcnMgZmlsdGVyLjwvbGk+CiAgICAgPGxpPlJld3JpdGVzIHRoZSByZXNpemUgdG8gZml0IGZpbHRlciAoYWdhaW4pLjwvbGk+CiAgICAgPGxpPlJld3JpdGVzIHRoZSByb3RhdGUgZmlsdGVyLjwvbGk+CiAgICAgPGxpPkZpeGVzIHByb2JsZW1zIHdpdGggZW1wdHkgY2FjaGUgcGF0aDwvbGk+CiAgICAgPGxpPmFsdCBhdHRyaWJ1dGUgaXMgbm93IGFsbG93ZWQgdG8gYmUgZW1wdHkuPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+VmVyc2lvbiAxLjEzIC0gT2N0b2JlciAyMDEzCiAgIDx1bD4KICAgIDxsaT5BZGRzIGEgcHJlZmVyZW5jZSBmb3IgbWVtb3J5IGNoZWNraW5nLjwvbGk+CiAgICA8bGk+Q2hhbmdlIHRvIHRoZSBtZW1vcnkgbmVlZGVkIGNhbGN1bGF0aW9uLjwvbGk+CiAgICA8bGk+QnVnIGZpeGVzLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPlZlcnNpb24gMS4xNCAtIE9jdG9iZXIgMjAxMwogICA8dWw+CiAgICA8bGk+QWRkcyBhIHByZWZlcmVuY2UgZm9yIGV4dGVuc2lvbiBoYW5kbGluZy48L2xpPgogICAgPGxpPkFkZHMgdGhlIGZvcmNlX2V4dCBhbmQgZm9yY2VfdHlwZSBwYXJhbWV0ZXJzLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPlZlcnNpb24gMS4xNSAtIERlY2VtYmVyIDIwMTMKICAgPHVsPgogICAgPGxpPkFkZHMgY3JvcDJzaXplIGZpbHRlci48L2xpPgogICAgPGxpPk1pbm9yIGZpeGVzIHRvIGNyb3B0b2ZpdCBmaWx0ZXIuPC9saT4KICAgIDxsaT5NaW5vciBmaXhlcyB0byByZXNpemUgZmlsdGVyIHdydCB0cmFuc3BhcmVudCBQTkcgaW1hZ2VzPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+VmVyc2lvbiAxLjE2IC0gTWFyY2ggMjAxNAogICA8dWw+CiAgICAgPGxpPkFkZHMge2Nnc2lfZ2V0aW1hZ2VzfSBwbHVnaW4uPC9saT4KICAgICA8bGk+Q2xlYW51cCB0ZW1wb3JhcnkgcmVzb3VyY2VzLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgo8L3VsPgo=]]></data>
	</file>
	<file>
	  <filename>/docs/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/docs/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMywgMjkgSnVuZSAyMDA3CgogQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiA8aHR0cDovL2ZzZi5vcmcvPgogRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCiBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVhbWJsZQoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgYSBmcmVlLCBjb3B5bGVmdCBsaWNlbnNlIGZvcgpzb2Z0d2FyZSBhbmQgb3RoZXIga2luZHMgb2Ygd29ya3MuCgogIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhbmQgb3RoZXIgcHJhY3RpY2FsIHdvcmtzIGFyZSBkZXNpZ25lZAp0byB0YWtlIGF3YXkgeW91ciBmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgdGhlIHdvcmtzLiAgQnkgY29udHJhc3QsCnRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBpbnRlbmRlZCB0byBndWFyYW50ZWUgeW91ciBmcmVlZG9tIHRvCnNoYXJlIGFuZCBjaGFuZ2UgYWxsIHZlcnNpb25zIG9mIGEgcHJvZ3JhbS0tdG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgZnJlZQpzb2Z0d2FyZSBmb3IgYWxsIGl0cyB1c2Vycy4gIFdlLCB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB1c2UgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3N0IG9mIG91ciBzb2Z0d2FyZTsgaXQgYXBwbGllcyBhbHNvIHRvCmFueSBvdGhlciB3b3JrIHJlbGVhc2VkIHRoaXMgd2F5IGJ5IGl0cyBhdXRob3JzLiAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoZW0gaWYgeW91IHdpc2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQgaWYgeW91CndhbnQgaXQsIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQgaW4gbmV3CmZyZWUgcHJvZ3JhbXMsIGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdzLgoKICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIHByZXZlbnQgb3RoZXJzIGZyb20gZGVueWluZyB5b3UKdGhlc2UgcmlnaHRzIG9yIGFza2luZyB5b3UgdG8gc3VycmVuZGVyIHRoZSByaWdodHMuICBUaGVyZWZvcmUsIHlvdSBoYXZlCmNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZgp5b3UgbW9kaWZ5IGl0OiByZXNwb25zaWJpbGl0aWVzIHRvIHJlc3BlY3QgdGhlIGZyZWVkb20gb2Ygb3RoZXJzLgoKICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyCmdyYXRpcyBvciBmb3IgYSBmZWUsIHlvdSBtdXN0IHBhc3Mgb24gdG8gdGhlIHJlY2lwaWVudHMgdGhlIHNhbWUKZnJlZWRvbXMgdGhhdCB5b3UgcmVjZWl2ZWQuICBZb3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGV5LCB0b28sIHJlY2VpdmUKb3IgY2FuIGdldCB0aGUgc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkKa25vdyB0aGVpciByaWdodHMuCgogIERldmVsb3BlcnMgdGhhdCB1c2UgdGhlIEdOVSBHUEwgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIHR3byBzdGVwczoKKDEpIGFzc2VydCBjb3B5cmlnaHQgb24gdGhlIHNvZnR3YXJlLCBhbmQgKDIpIG9mZmVyIHlvdSB0aGlzIExpY2Vuc2UKZ2l2aW5nIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSBpdC4KCiAgRm9yIHRoZSBkZXZlbG9wZXJzJyBhbmQgYXV0aG9ycycgcHJvdGVjdGlvbiwgdGhlIEdQTCBjbGVhcmx5IGV4cGxhaW5zCnRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZSBzb2Z0d2FyZS4gIEZvciBib3RoIHVzZXJzJyBhbmQKYXV0aG9ycycgc2FrZSwgdGhlIEdQTCByZXF1aXJlcyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIGJlIG1hcmtlZCBhcwpjaGFuZ2VkLCBzbyB0aGF0IHRoZWlyIHByb2JsZW1zIHdpbGwgbm90IGJlIGF0dHJpYnV0ZWQgZXJyb25lb3VzbHkgdG8KYXV0aG9ycyBvZiBwcmV2aW91cyB2ZXJzaW9ucy4KCiAgU29tZSBkZXZpY2VzIGFyZSBkZXNpZ25lZCB0byBkZW55IHVzZXJzIGFjY2VzcyB0byBpbnN0YWxsIG9yIHJ1bgptb2RpZmllZCB2ZXJzaW9ucyBvZiB0aGUgc29mdHdhcmUgaW5zaWRlIHRoZW0sIGFsdGhvdWdoIHRoZSBtYW51ZmFjdHVyZXIKY2FuIGRvIHNvLiAgVGhpcyBpcyBmdW5kYW1lbnRhbGx5IGluY29tcGF0aWJsZSB3aXRoIHRoZSBhaW0gb2YKcHJvdGVjdGluZyB1c2VycycgZnJlZWRvbSB0byBjaGFuZ2UgdGhlIHNvZnR3YXJlLiAgVGhlIHN5c3RlbWF0aWMKcGF0dGVybiBvZiBzdWNoIGFidXNlIG9jY3VycyBpbiB0aGUgYXJlYSBvZiBwcm9kdWN0cyBmb3IgaW5kaXZpZHVhbHMgdG8KdXNlLCB3aGljaCBpcyBwcmVjaXNlbHkgd2hlcmUgaXQgaXMgbW9zdCB1bmFjY2VwdGFibGUuICBUaGVyZWZvcmUsIHdlCmhhdmUgZGVzaWduZWQgdGhpcyB2ZXJzaW9uIG9mIHRoZSBHUEwgdG8gcHJvaGliaXQgdGhlIHByYWN0aWNlIGZvciB0aG9zZQpwcm9kdWN0cy4gIElmIHN1Y2ggcHJvYmxlbXMgYXJpc2Ugc3Vic3RhbnRpYWxseSBpbiBvdGhlciBkb21haW5zLCB3ZQpzdGFuZCByZWFkeSB0byBleHRlbmQgdGhpcyBwcm92aXNpb24gdG8gdGhvc2UgZG9tYWlucyBpbiBmdXR1cmUgdmVyc2lvbnMKb2YgdGhlIEdQTCwgYXMgbmVlZGVkIHRvIHByb3RlY3QgdGhlIGZyZWVkb20gb2YgdXNlcnMuCgogIEZpbmFsbHksIGV2ZXJ5IHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlIHBhdGVudHMuClN0YXRlcyBzaG91bGQgbm90IGFsbG93IHBhdGVudHMgdG8gcmVzdHJpY3QgZGV2ZWxvcG1lbnQgYW5kIHVzZSBvZgpzb2Z0d2FyZSBvbiBnZW5lcmFsLXB1cnBvc2UgY29tcHV0ZXJzLCBidXQgaW4gdGhvc2UgdGhhdCBkbywgd2Ugd2lzaCB0bwphdm9pZCB0aGUgc3BlY2lhbCBkYW5nZXIgdGhhdCBwYXRlbnRzIGFwcGxpZWQgdG8gYSBmcmVlIHByb2dyYW0gY291bGQKbWFrZSBpdCBlZmZlY3RpdmVseSBwcm9wcmlldGFyeS4gIFRvIHByZXZlbnQgdGhpcywgdGhlIEdQTCBhc3N1cmVzIHRoYXQKcGF0ZW50cyBjYW5ub3QgYmUgdXNlZCB0byByZW5kZXIgdGhlIHByb2dyYW0gbm9uLWZyZWUuCgogIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kCm1vZGlmaWNhdGlvbiBmb2xsb3cuCgogICAgICAgICAgICAgICAgICAgICAgIFRFUk1TIEFORCBDT05ESVRJT05TCgogIDAuIERlZmluaXRpb25zLgoKICAiVGhpcyBMaWNlbnNlIiByZWZlcnMgdG8gdmVyc2lvbiAzIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KCiAgIkNvcHlyaWdodCIgYWxzbyBtZWFucyBjb3B5cmlnaHQtbGlrZSBsYXdzIHRoYXQgYXBwbHkgdG8gb3RoZXIga2luZHMgb2YKd29ya3MsIHN1Y2ggYXMgc2VtaWNvbmR1Y3RvciBtYXNrcy4KCiAgIlRoZSBQcm9ncmFtIiByZWZlcnMgdG8gYW55IGNvcHlyaWdodGFibGUgd29yayBsaWNlbnNlZCB1bmRlciB0aGlzCkxpY2Vuc2UuICBFYWNoIGxpY2Vuc2VlIGlzIGFkZHJlc3NlZCBhcyAieW91Ii4gICJMaWNlbnNlZXMiIGFuZAoicmVjaXBpZW50cyIgbWF5IGJlIGluZGl2aWR1YWxzIG9yIG9yZ2FuaXphdGlvbnMuCgogIFRvICJtb2RpZnkiIGEgd29yayBtZWFucyB0byBjb3B5IGZyb20gb3IgYWRhcHQgYWxsIG9yIHBhcnQgb2YgdGhlIHdvcmsKaW4gYSBmYXNoaW9uIHJlcXVpcmluZyBjb3B5cmlnaHQgcGVybWlzc2lvbiwgb3RoZXIgdGhhbiB0aGUgbWFraW5nIG9mIGFuCmV4YWN0IGNvcHkuICBUaGUgcmVzdWx0aW5nIHdvcmsgaXMgY2FsbGVkIGEgIm1vZGlmaWVkIHZlcnNpb24iIG9mIHRoZQplYXJsaWVyIHdvcmsgb3IgYSB3b3JrICJiYXNlZCBvbiIgdGhlIGVhcmxpZXIgd29yay4KCiAgQSAiY292ZXJlZCB3b3JrIiBtZWFucyBlaXRoZXIgdGhlIHVubW9kaWZpZWQgUHJvZ3JhbSBvciBhIHdvcmsgYmFzZWQKb24gdGhlIFByb2dyYW0uCgogIFRvICJwcm9wYWdhdGUiIGEgd29yayBtZWFucyB0byBkbyBhbnl0aGluZyB3aXRoIGl0IHRoYXQsIHdpdGhvdXQKcGVybWlzc2lvbiwgd291bGQgbWFrZSB5b3UgZGlyZWN0bHkgb3Igc2Vjb25kYXJpbHkgbGlhYmxlIGZvcgppbmZyaW5nZW1lbnQgdW5kZXIgYXBwbGljYWJsZSBjb3B5cmlnaHQgbGF3LCBleGNlcHQgZXhlY3V0aW5nIGl0IG9uIGEKY29tcHV0ZXIgb3IgbW9kaWZ5aW5nIGEgcHJpdmF0ZSBjb3B5LiAgUHJvcGFnYXRpb24gaW5jbHVkZXMgY29weWluZywKZGlzdHJpYnV0aW9uICh3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uKSwgbWFraW5nIGF2YWlsYWJsZSB0byB0aGUKcHVibGljLCBhbmQgaW4gc29tZSBjb3VudHJpZXMgb3RoZXIgYWN0aXZpdGllcyBhcyB3ZWxsLgoKICBUbyAiY29udmV5IiBhIHdvcmsgbWVhbnMgYW55IGtpbmQgb2YgcHJvcGFnYXRpb24gdGhhdCBlbmFibGVzIG90aGVyCnBhcnRpZXMgdG8gbWFrZSBvciByZWNlaXZlIGNvcGllcy4gIE1lcmUgaW50ZXJhY3Rpb24gd2l0aCBhIHVzZXIgdGhyb3VnaAphIGNvbXB1dGVyIG5ldHdvcmssIHdpdGggbm8gdHJhbnNmZXIgb2YgYSBjb3B5LCBpcyBub3QgY29udmV5aW5nLgoKICBBbiBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZSBkaXNwbGF5cyAiQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcyIKdG8gdGhlIGV4dGVudCB0aGF0IGl0IGluY2x1ZGVzIGEgY29udmVuaWVudCBhbmQgcHJvbWluZW50bHkgdmlzaWJsZQpmZWF0dXJlIHRoYXQgKDEpIGRpc3BsYXlzIGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UsIGFuZCAoMikKdGVsbHMgdGhlIHVzZXIgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhlIHdvcmsgKGV4Y2VwdCB0byB0aGUKZXh0ZW50IHRoYXQgd2FycmFudGllcyBhcmUgcHJvdmlkZWQpLCB0aGF0IGxpY2Vuc2VlcyBtYXkgY29udmV5IHRoZQp3b3JrIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIGhvdyB0byB2aWV3IGEgY29weSBvZiB0aGlzIExpY2Vuc2UuICBJZgp0aGUgaW50ZXJmYWNlIHByZXNlbnRzIGEgbGlzdCBvZiB1c2VyIGNvbW1hbmRzIG9yIG9wdGlvbnMsIHN1Y2ggYXMgYQptZW51LCBhIHByb21pbmVudCBpdGVtIGluIHRoZSBsaXN0IG1lZXRzIHRoaXMgY3JpdGVyaW9uLgoKICAxLiBTb3VyY2UgQ29kZS4KCiAgVGhlICJzb3VyY2UgY29kZSIgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsKZm9yIG1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgIk9iamVjdCBjb2RlIiBtZWFucyBhbnkgbm9uLXNvdXJjZQpmb3JtIG9mIGEgd29yay4KCiAgQSAiU3RhbmRhcmQgSW50ZXJmYWNlIiBtZWFucyBhbiBpbnRlcmZhY2UgdGhhdCBlaXRoZXIgaXMgYW4gb2ZmaWNpYWwKc3RhbmRhcmQgZGVmaW5lZCBieSBhIHJlY29nbml6ZWQgc3RhbmRhcmRzIGJvZHksIG9yLCBpbiB0aGUgY2FzZSBvZgppbnRlcmZhY2VzIHNwZWNpZmllZCBmb3IgYSBwYXJ0aWN1bGFyIHByb2dyYW1taW5nIGxhbmd1YWdlLCBvbmUgdGhhdAppcyB3aWRlbHkgdXNlZCBhbW9uZyBkZXZlbG9wZXJzIHdvcmtpbmcgaW4gdGhhdCBsYW5ndWFnZS4KCiAgVGhlICJTeXN0ZW0gTGlicmFyaWVzIiBvZiBhbiBleGVjdXRhYmxlIHdvcmsgaW5jbHVkZSBhbnl0aGluZywgb3RoZXIKdGhhbiB0aGUgd29yayBhcyBhIHdob2xlLCB0aGF0IChhKSBpcyBpbmNsdWRlZCBpbiB0aGUgbm9ybWFsIGZvcm0gb2YKcGFja2FnaW5nIGEgTWFqb3IgQ29tcG9uZW50LCBidXQgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhhdCBNYWpvcgpDb21wb25lbnQsIGFuZCAoYikgc2VydmVzIG9ubHkgdG8gZW5hYmxlIHVzZSBvZiB0aGUgd29yayB3aXRoIHRoYXQKTWFqb3IgQ29tcG9uZW50LCBvciB0byBpbXBsZW1lbnQgYSBTdGFuZGFyZCBJbnRlcmZhY2UgZm9yIHdoaWNoIGFuCmltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluIHNvdXJjZSBjb2RlIGZvcm0uICBBCiJNYWpvciBDb21wb25lbnQiLCBpbiB0aGlzIGNvbnRleHQsIG1lYW5zIGEgbWFqb3IgZXNzZW50aWFsIGNvbXBvbmVudAooa2VybmVsLCB3aW5kb3cgc3lzdGVtLCBhbmQgc28gb24pIG9mIHRoZSBzcGVjaWZpYyBvcGVyYXRpbmcgc3lzdGVtCihpZiBhbnkpIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHdvcmsgcnVucywgb3IgYSBjb21waWxlciB1c2VkIHRvCnByb2R1Y2UgdGhlIHdvcmssIG9yIGFuIG9iamVjdCBjb2RlIGludGVycHJldGVyIHVzZWQgdG8gcnVuIGl0LgoKICBUaGUgIkNvcnJlc3BvbmRpbmcgU291cmNlIiBmb3IgYSB3b3JrIGluIG9iamVjdCBjb2RlIGZvcm0gbWVhbnMgYWxsCnRoZSBzb3VyY2UgY29kZSBuZWVkZWQgdG8gZ2VuZXJhdGUsIGluc3RhbGwsIGFuZCAoZm9yIGFuIGV4ZWN1dGFibGUKd29yaykgcnVuIHRoZSBvYmplY3QgY29kZSBhbmQgdG8gbW9kaWZ5IHRoZSB3b3JrLCBpbmNsdWRpbmcgc2NyaXB0cyB0bwpjb250cm9sIHRob3NlIGFjdGl2aXRpZXMuICBIb3dldmVyLCBpdCBkb2VzIG5vdCBpbmNsdWRlIHRoZSB3b3JrJ3MKU3lzdGVtIExpYnJhcmllcywgb3IgZ2VuZXJhbC1wdXJwb3NlIHRvb2xzIG9yIGdlbmVyYWxseSBhdmFpbGFibGUgZnJlZQpwcm9ncmFtcyB3aGljaCBhcmUgdXNlZCB1bm1vZGlmaWVkIGluIHBlcmZvcm1pbmcgdGhvc2UgYWN0aXZpdGllcyBidXQKd2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRoZSB3b3JrLiAgRm9yIGV4YW1wbGUsIENvcnJlc3BvbmRpbmcgU291cmNlCmluY2x1ZGVzIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBzb3VyY2UgZmlsZXMgZm9yCnRoZSB3b3JrLCBhbmQgdGhlIHNvdXJjZSBjb2RlIGZvciBzaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljYWxseQpsaW5rZWQgc3VicHJvZ3JhbXMgdGhhdCB0aGUgd29yayBpcyBzcGVjaWZpY2FsbHkgZGVzaWduZWQgdG8gcmVxdWlyZSwKc3VjaCBhcyBieSBpbnRpbWF0ZSBkYXRhIGNvbW11bmljYXRpb24gb3IgY29udHJvbCBmbG93IGJldHdlZW4gdGhvc2UKc3VicHJvZ3JhbXMgYW5kIG90aGVyIHBhcnRzIG9mIHRoZSB3b3JrLgoKICBUaGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgbmVlZCBub3QgaW5jbHVkZSBhbnl0aGluZyB0aGF0IHVzZXJzCmNhbiByZWdlbmVyYXRlIGF1dG9tYXRpY2FsbHkgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgQ29ycmVzcG9uZGluZwpTb3VyY2UuCgogIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYSB3b3JrIGluIHNvdXJjZSBjb2RlIGZvcm0gaXMgdGhhdApzYW1lIHdvcmsuCgogIDIuIEJhc2ljIFBlcm1pc3Npb25zLgoKICBBbGwgcmlnaHRzIGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlIGFyZSBncmFudGVkIGZvciB0aGUgdGVybSBvZgpjb3B5cmlnaHQgb24gdGhlIFByb2dyYW0sIGFuZCBhcmUgaXJyZXZvY2FibGUgcHJvdmlkZWQgdGhlIHN0YXRlZApjb25kaXRpb25zIGFyZSBtZXQuICBUaGlzIExpY2Vuc2UgZXhwbGljaXRseSBhZmZpcm1zIHlvdXIgdW5saW1pdGVkCnBlcm1pc3Npb24gdG8gcnVuIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0uICBUaGUgb3V0cHV0IGZyb20gcnVubmluZyBhCmNvdmVyZWQgd29yayBpcyBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZSBvbmx5IGlmIHRoZSBvdXRwdXQsIGdpdmVuIGl0cwpjb250ZW50LCBjb25zdGl0dXRlcyBhIGNvdmVyZWQgd29yay4gIFRoaXMgTGljZW5zZSBhY2tub3dsZWRnZXMgeW91cgpyaWdodHMgb2YgZmFpciB1c2Ugb3Igb3RoZXIgZXF1aXZhbGVudCwgYXMgcHJvdmlkZWQgYnkgY29weXJpZ2h0IGxhdy4KCiAgWW91IG1heSBtYWtlLCBydW4gYW5kIHByb3BhZ2F0ZSBjb3ZlcmVkIHdvcmtzIHRoYXQgeW91IGRvIG5vdApjb252ZXksIHdpdGhvdXQgY29uZGl0aW9ucyBzbyBsb25nIGFzIHlvdXIgbGljZW5zZSBvdGhlcndpc2UgcmVtYWlucwppbiBmb3JjZS4gIFlvdSBtYXkgY29udmV5IGNvdmVyZWQgd29ya3MgdG8gb3RoZXJzIGZvciB0aGUgc29sZSBwdXJwb3NlCm9mIGhhdmluZyB0aGVtIG1ha2UgbW9kaWZpY2F0aW9ucyBleGNsdXNpdmVseSBmb3IgeW91LCBvciBwcm92aWRlIHlvdQp3aXRoIGZhY2lsaXRpZXMgZm9yIHJ1bm5pbmcgdGhvc2Ugd29ya3MsIHByb3ZpZGVkIHRoYXQgeW91IGNvbXBseSB3aXRoCnRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UgaW4gY29udmV5aW5nIGFsbCBtYXRlcmlhbCBmb3Igd2hpY2ggeW91IGRvCm5vdCBjb250cm9sIGNvcHlyaWdodC4gIFRob3NlIHRodXMgbWFraW5nIG9yIHJ1bm5pbmcgdGhlIGNvdmVyZWQgd29ya3MKZm9yIHlvdSBtdXN0IGRvIHNvIGV4Y2x1c2l2ZWx5IG9uIHlvdXIgYmVoYWxmLCB1bmRlciB5b3VyIGRpcmVjdGlvbgphbmQgY29udHJvbCwgb24gdGVybXMgdGhhdCBwcm9oaWJpdCB0aGVtIGZyb20gbWFraW5nIGFueSBjb3BpZXMgb2YKeW91ciBjb3B5cmlnaHRlZCBtYXRlcmlhbCBvdXRzaWRlIHRoZWlyIHJlbGF0aW9uc2hpcCB3aXRoIHlvdS4KCiAgQ29udmV5aW5nIHVuZGVyIGFueSBvdGhlciBjaXJjdW1zdGFuY2VzIGlzIHBlcm1pdHRlZCBzb2xlbHkgdW5kZXIKdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGJlbG93LiAgU3VibGljZW5zaW5nIGlzIG5vdCBhbGxvd2VkOyBzZWN0aW9uIDEwCm1ha2VzIGl0IHVubmVjZXNzYXJ5LgoKICAzLiBQcm90ZWN0aW5nIFVzZXJzJyBMZWdhbCBSaWdodHMgRnJvbSBBbnRpLUNpcmN1bXZlbnRpb24gTGF3LgoKICBObyBjb3ZlcmVkIHdvcmsgc2hhbGwgYmUgZGVlbWVkIHBhcnQgb2YgYW4gZWZmZWN0aXZlIHRlY2hub2xvZ2ljYWwKbWVhc3VyZSB1bmRlciBhbnkgYXBwbGljYWJsZSBsYXcgZnVsZmlsbGluZyBvYmxpZ2F0aW9ucyB1bmRlciBhcnRpY2xlCjExIG9mIHRoZSBXSVBPIGNvcHlyaWdodCB0cmVhdHkgYWRvcHRlZCBvbiAyMCBEZWNlbWJlciAxOTk2LCBvcgpzaW1pbGFyIGxhd3MgcHJvaGliaXRpbmcgb3IgcmVzdHJpY3RpbmcgY2lyY3VtdmVudGlvbiBvZiBzdWNoCm1lYXN1cmVzLgoKICBXaGVuIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIHlvdSB3YWl2ZSBhbnkgbGVnYWwgcG93ZXIgdG8gZm9yYmlkCmNpcmN1bXZlbnRpb24gb2YgdGVjaG5vbG9naWNhbCBtZWFzdXJlcyB0byB0aGUgZXh0ZW50IHN1Y2ggY2lyY3VtdmVudGlvbgppcyBlZmZlY3RlZCBieSBleGVyY2lzaW5nIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2Ugd2l0aCByZXNwZWN0IHRvCnRoZSBjb3ZlcmVkIHdvcmssIGFuZCB5b3UgZGlzY2xhaW0gYW55IGludGVudGlvbiB0byBsaW1pdCBvcGVyYXRpb24gb3IKbW9kaWZpY2F0aW9uIG9mIHRoZSB3b3JrIGFzIGEgbWVhbnMgb2YgZW5mb3JjaW5nLCBhZ2FpbnN0IHRoZSB3b3JrJ3MKdXNlcnMsIHlvdXIgb3IgdGhpcmQgcGFydGllcycgbGVnYWwgcmlnaHRzIHRvIGZvcmJpZCBjaXJjdW12ZW50aW9uIG9mCnRlY2hub2xvZ2ljYWwgbWVhc3VyZXMuCgogIDQuIENvbnZleWluZyBWZXJiYXRpbSBDb3BpZXMuCgogIFlvdSBtYXkgY29udmV5IHZlcmJhdGltIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSdzIHNvdXJjZSBjb2RlIGFzIHlvdQpyZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdSBjb25zcGljdW91c2x5IGFuZAphcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2U7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIHN0YXRpbmcgdGhhdCB0aGlzIExpY2Vuc2UgYW5kIGFueQpub24tcGVybWlzc2l2ZSB0ZXJtcyBhZGRlZCBpbiBhY2NvcmQgd2l0aCBzZWN0aW9uIDcgYXBwbHkgdG8gdGhlIGNvZGU7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIG9mIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsgYW5kIGdpdmUgYWxsCnJlY2lwaWVudHMgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBQcm9ncmFtLgoKICBZb3UgbWF5IGNoYXJnZSBhbnkgcHJpY2Ugb3Igbm8gcHJpY2UgZm9yIGVhY2ggY29weSB0aGF0IHlvdSBjb252ZXksCmFuZCB5b3UgbWF5IG9mZmVyIHN1cHBvcnQgb3Igd2FycmFudHkgcHJvdGVjdGlvbiBmb3IgYSBmZWUuCgogIDUuIENvbnZleWluZyBNb2RpZmllZCBTb3VyY2UgVmVyc2lvbnMuCgogIFlvdSBtYXkgY29udmV5IGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSwgb3IgdGhlIG1vZGlmaWNhdGlvbnMgdG8KcHJvZHVjZSBpdCBmcm9tIHRoZSBQcm9ncmFtLCBpbiB0aGUgZm9ybSBvZiBzb3VyY2UgY29kZSB1bmRlciB0aGUKdGVybXMgb2Ygc2VjdGlvbiA0LCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgeW91IG1vZGlmaWVkCiAgICBpdCwgYW5kIGdpdmluZyBhIHJlbGV2YW50IGRhdGUuCgogICAgYikgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgaXQgaXMKICAgIHJlbGVhc2VkIHVuZGVyIHRoaXMgTGljZW5zZSBhbmQgYW55IGNvbmRpdGlvbnMgYWRkZWQgdW5kZXIgc2VjdGlvbgogICAgNy4gIFRoaXMgcmVxdWlyZW1lbnQgbW9kaWZpZXMgdGhlIHJlcXVpcmVtZW50IGluIHNlY3Rpb24gNCB0bwogICAgImtlZXAgaW50YWN0IGFsbCBub3RpY2VzIi4KCiAgICBjKSBZb3UgbXVzdCBsaWNlbnNlIHRoZSBlbnRpcmUgd29yaywgYXMgYSB3aG9sZSwgdW5kZXIgdGhpcwogICAgTGljZW5zZSB0byBhbnlvbmUgd2hvIGNvbWVzIGludG8gcG9zc2Vzc2lvbiBvZiBhIGNvcHkuICBUaGlzCiAgICBMaWNlbnNlIHdpbGwgdGhlcmVmb3JlIGFwcGx5LCBhbG9uZyB3aXRoIGFueSBhcHBsaWNhYmxlIHNlY3Rpb24gNwogICAgYWRkaXRpb25hbCB0ZXJtcywgdG8gdGhlIHdob2xlIG9mIHRoZSB3b3JrLCBhbmQgYWxsIGl0cyBwYXJ0cywKICAgIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZXkgYXJlIHBhY2thZ2VkLiAgVGhpcyBMaWNlbnNlIGdpdmVzIG5vCiAgICBwZXJtaXNzaW9uIHRvIGxpY2Vuc2UgdGhlIHdvcmsgaW4gYW55IG90aGVyIHdheSwgYnV0IGl0IGRvZXMgbm90CiAgICBpbnZhbGlkYXRlIHN1Y2ggcGVybWlzc2lvbiBpZiB5b3UgaGF2ZSBzZXBhcmF0ZWx5IHJlY2VpdmVkIGl0LgoKICAgIGQpIElmIHRoZSB3b3JrIGhhcyBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZXMsIGVhY2ggbXVzdCBkaXNwbGF5CiAgICBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzOyBob3dldmVyLCBpZiB0aGUgUHJvZ3JhbSBoYXMgaW50ZXJhY3RpdmUKICAgIGludGVyZmFjZXMgdGhhdCBkbyBub3QgZGlzcGxheSBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzLCB5b3VyCiAgICB3b3JrIG5lZWQgbm90IG1ha2UgdGhlbSBkbyBzby4KCiAgQSBjb21waWxhdGlvbiBvZiBhIGNvdmVyZWQgd29yayB3aXRoIG90aGVyIHNlcGFyYXRlIGFuZCBpbmRlcGVuZGVudAp3b3Jrcywgd2hpY2ggYXJlIG5vdCBieSB0aGVpciBuYXR1cmUgZXh0ZW5zaW9ucyBvZiB0aGUgY292ZXJlZCB3b3JrLAphbmQgd2hpY2ggYXJlIG5vdCBjb21iaW5lZCB3aXRoIGl0IHN1Y2ggYXMgdG8gZm9ybSBhIGxhcmdlciBwcm9ncmFtLAppbiBvciBvbiBhIHZvbHVtZSBvZiBhIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMgY2FsbGVkIGFuCiJhZ2dyZWdhdGUiIGlmIHRoZSBjb21waWxhdGlvbiBhbmQgaXRzIHJlc3VsdGluZyBjb3B5cmlnaHQgYXJlIG5vdAp1c2VkIHRvIGxpbWl0IHRoZSBhY2Nlc3Mgb3IgbGVnYWwgcmlnaHRzIG9mIHRoZSBjb21waWxhdGlvbidzIHVzZXJzCmJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtzIHBlcm1pdC4gIEluY2x1c2lvbiBvZiBhIGNvdmVyZWQgd29yawppbiBhbiBhZ2dyZWdhdGUgZG9lcyBub3QgY2F1c2UgdGhpcyBMaWNlbnNlIHRvIGFwcGx5IHRvIHRoZSBvdGhlcgpwYXJ0cyBvZiB0aGUgYWdncmVnYXRlLgoKICA2LiBDb252ZXlpbmcgTm9uLVNvdXJjZSBGb3Jtcy4KCiAgWW91IG1heSBjb252ZXkgYSBjb3ZlcmVkIHdvcmsgaW4gb2JqZWN0IGNvZGUgZm9ybSB1bmRlciB0aGUgdGVybXMKb2Ygc2VjdGlvbnMgNCBhbmQgNSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBjb252ZXkgdGhlCm1hY2hpbmUtcmVhZGFibGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwKaW4gb25lIG9mIHRoZXNlIHdheXM6CgogICAgYSkgQ29udmV5IHRoZSBvYmplY3QgY29kZSBpbiwgb3IgZW1ib2RpZWQgaW4sIGEgcGh5c2ljYWwgcHJvZHVjdAogICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGZpeGVkIG9uIGEgZHVyYWJsZSBwaHlzaWNhbCBtZWRpdW0KICAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLgoKICAgIGIpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsIHByb2R1Y3QKICAgIChpbmNsdWRpbmcgYSBwaHlzaWNhbCBkaXN0cmlidXRpb24gbWVkaXVtKSwgYWNjb21wYW5pZWQgYnkgYQogICAgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJzIGFuZCB2YWxpZCBmb3IgYXMKICAgIGxvbmcgYXMgeW91IG9mZmVyIHNwYXJlIHBhcnRzIG9yIGN1c3RvbWVyIHN1cHBvcnQgZm9yIHRoYXQgcHJvZHVjdAogICAgbW9kZWwsIHRvIGdpdmUgYW55b25lIHdobyBwb3NzZXNzZXMgdGhlIG9iamVjdCBjb2RlIGVpdGhlciAoMSkgYQogICAgY29weSBvZiB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgZm9yIGFsbCB0aGUgc29mdHdhcmUgaW4gdGhlCiAgICBwcm9kdWN0IHRoYXQgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UsIG9uIGEgZHVyYWJsZSBwaHlzaWNhbAogICAgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLCBmb3IgYSBwcmljZSBubwogICAgbW9yZSB0aGFuIHlvdXIgcmVhc29uYWJsZSBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWluZyB0aGlzCiAgICBjb252ZXlpbmcgb2Ygc291cmNlLCBvciAoMikgYWNjZXNzIHRvIGNvcHkgdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmcm9tIGEgbmV0d29yayBzZXJ2ZXIgYXQgbm8gY2hhcmdlLgoKICAgIGMpIENvbnZleSBpbmRpdmlkdWFsIGNvcGllcyBvZiB0aGUgb2JqZWN0IGNvZGUgd2l0aCBhIGNvcHkgb2YgdGhlCiAgICB3cml0dGVuIG9mZmVyIHRvIHByb3ZpZGUgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhpcwogICAgYWx0ZXJuYXRpdmUgaXMgYWxsb3dlZCBvbmx5IG9jY2FzaW9uYWxseSBhbmQgbm9uY29tbWVyY2lhbGx5LCBhbmQKICAgIG9ubHkgaWYgeW91IHJlY2VpdmVkIHRoZSBvYmplY3QgY29kZSB3aXRoIHN1Y2ggYW4gb2ZmZXIsIGluIGFjY29yZAogICAgd2l0aCBzdWJzZWN0aW9uIDZiLgoKICAgIGQpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIGZyb20gYSBkZXNpZ25hdGVkCiAgICBwbGFjZSAoZ3JhdGlzIG9yIGZvciBhIGNoYXJnZSksIGFuZCBvZmZlciBlcXVpdmFsZW50IGFjY2VzcyB0byB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGluIHRoZSBzYW1lIHdheSB0aHJvdWdoIHRoZSBzYW1lIHBsYWNlIGF0IG5vCiAgICBmdXJ0aGVyIGNoYXJnZS4gIFlvdSBuZWVkIG5vdCByZXF1aXJlIHJlY2lwaWVudHMgdG8gY29weSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLiAgSWYgdGhlIHBsYWNlIHRvCiAgICBjb3B5IHRoZSBvYmplY3QgY29kZSBpcyBhIG5ldHdvcmsgc2VydmVyLCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UKICAgIG1heSBiZSBvbiBhIGRpZmZlcmVudCBzZXJ2ZXIgKG9wZXJhdGVkIGJ5IHlvdSBvciBhIHRoaXJkIHBhcnR5KQogICAgdGhhdCBzdXBwb3J0cyBlcXVpdmFsZW50IGNvcHlpbmcgZmFjaWxpdGllcywgcHJvdmlkZWQgeW91IG1haW50YWluCiAgICBjbGVhciBkaXJlY3Rpb25zIG5leHQgdG8gdGhlIG9iamVjdCBjb2RlIHNheWluZyB3aGVyZSB0byBmaW5kIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBSZWdhcmRsZXNzIG9mIHdoYXQgc2VydmVyIGhvc3RzIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UsIHlvdSByZW1haW4gb2JsaWdhdGVkIHRvIGVuc3VyZSB0aGF0IGl0IGlzCiAgICBhdmFpbGFibGUgZm9yIGFzIGxvbmcgYXMgbmVlZGVkIHRvIHNhdGlzZnkgdGhlc2UgcmVxdWlyZW1lbnRzLgoKICAgIGUpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgdXNpbmcgcGVlci10by1wZWVyIHRyYW5zbWlzc2lvbiwgcHJvdmlkZWQKICAgIHlvdSBpbmZvcm0gb3RoZXIgcGVlcnMgd2hlcmUgdGhlIG9iamVjdCBjb2RlIGFuZCBDb3JyZXNwb25kaW5nCiAgICBTb3VyY2Ugb2YgdGhlIHdvcmsgYXJlIGJlaW5nIG9mZmVyZWQgdG8gdGhlIGdlbmVyYWwgcHVibGljIGF0IG5vCiAgICBjaGFyZ2UgdW5kZXIgc3Vic2VjdGlvbiA2ZC4KCiAgQSBzZXBhcmFibGUgcG9ydGlvbiBvZiB0aGUgb2JqZWN0IGNvZGUsIHdob3NlIHNvdXJjZSBjb2RlIGlzIGV4Y2x1ZGVkCmZyb20gdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIGFzIGEgU3lzdGVtIExpYnJhcnksIG5lZWQgbm90IGJlCmluY2x1ZGVkIGluIGNvbnZleWluZyB0aGUgb2JqZWN0IGNvZGUgd29yay4KCiAgQSAiVXNlciBQcm9kdWN0IiBpcyBlaXRoZXIgKDEpIGEgImNvbnN1bWVyIHByb2R1Y3QiLCB3aGljaCBtZWFucyBhbnkKdGFuZ2libGUgcGVyc29uYWwgcHJvcGVydHkgd2hpY2ggaXMgbm9ybWFsbHkgdXNlZCBmb3IgcGVyc29uYWwsIGZhbWlseSwKb3IgaG91c2Vob2xkIHB1cnBvc2VzLCBvciAoMikgYW55dGhpbmcgZGVzaWduZWQgb3Igc29sZCBmb3IgaW5jb3Jwb3JhdGlvbgppbnRvIGEgZHdlbGxpbmcuICBJbiBkZXRlcm1pbmluZyB3aGV0aGVyIGEgcHJvZHVjdCBpcyBhIGNvbnN1bWVyIHByb2R1Y3QsCmRvdWJ0ZnVsIGNhc2VzIHNoYWxsIGJlIHJlc29sdmVkIGluIGZhdm9yIG9mIGNvdmVyYWdlLiAgRm9yIGEgcGFydGljdWxhcgpwcm9kdWN0IHJlY2VpdmVkIGJ5IGEgcGFydGljdWxhciB1c2VyLCAibm9ybWFsbHkgdXNlZCIgcmVmZXJzIHRvIGEKdHlwaWNhbCBvciBjb21tb24gdXNlIG9mIHRoYXQgY2xhc3Mgb2YgcHJvZHVjdCwgcmVnYXJkbGVzcyBvZiB0aGUgc3RhdHVzCm9mIHRoZSBwYXJ0aWN1bGFyIHVzZXIgb3Igb2YgdGhlIHdheSBpbiB3aGljaCB0aGUgcGFydGljdWxhciB1c2VyCmFjdHVhbGx5IHVzZXMsIG9yIGV4cGVjdHMgb3IgaXMgZXhwZWN0ZWQgdG8gdXNlLCB0aGUgcHJvZHVjdC4gIEEgcHJvZHVjdAppcyBhIGNvbnN1bWVyIHByb2R1Y3QgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBwcm9kdWN0IGhhcyBzdWJzdGFudGlhbApjb21tZXJjaWFsLCBpbmR1c3RyaWFsIG9yIG5vbi1jb25zdW1lciB1c2VzLCB1bmxlc3Mgc3VjaCB1c2VzIHJlcHJlc2VudAp0aGUgb25seSBzaWduaWZpY2FudCBtb2RlIG9mIHVzZSBvZiB0aGUgcHJvZHVjdC4KCiAgIkluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiIgZm9yIGEgVXNlciBQcm9kdWN0IG1lYW5zIGFueSBtZXRob2RzLApwcm9jZWR1cmVzLCBhdXRob3JpemF0aW9uIGtleXMsIG9yIG90aGVyIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIGluc3RhbGwKYW5kIGV4ZWN1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgYSBjb3ZlcmVkIHdvcmsgaW4gdGhhdCBVc2VyIFByb2R1Y3QgZnJvbQphIG1vZGlmaWVkIHZlcnNpb24gb2YgaXRzIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhlIGluZm9ybWF0aW9uIG11c3QKc3VmZmljZSB0byBlbnN1cmUgdGhhdCB0aGUgY29udGludWVkIGZ1bmN0aW9uaW5nIG9mIHRoZSBtb2RpZmllZCBvYmplY3QKY29kZSBpcyBpbiBubyBjYXNlIHByZXZlbnRlZCBvciBpbnRlcmZlcmVkIHdpdGggc29sZWx5IGJlY2F1c2UKbW9kaWZpY2F0aW9uIGhhcyBiZWVuIG1hZGUuCgogIElmIHlvdSBjb252ZXkgYW4gb2JqZWN0IGNvZGUgd29yayB1bmRlciB0aGlzIHNlY3Rpb24gaW4sIG9yIHdpdGgsIG9yCnNwZWNpZmljYWxseSBmb3IgdXNlIGluLCBhIFVzZXIgUHJvZHVjdCwgYW5kIHRoZSBjb252ZXlpbmcgb2NjdXJzIGFzCnBhcnQgb2YgYSB0cmFuc2FjdGlvbiBpbiB3aGljaCB0aGUgcmlnaHQgb2YgcG9zc2Vzc2lvbiBhbmQgdXNlIG9mIHRoZQpVc2VyIFByb2R1Y3QgaXMgdHJhbnNmZXJyZWQgdG8gdGhlIHJlY2lwaWVudCBpbiBwZXJwZXR1aXR5IG9yIGZvciBhCmZpeGVkIHRlcm0gKHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFyYWN0ZXJpemVkKSwgdGhlCkNvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkIHVuZGVyIHRoaXMgc2VjdGlvbiBtdXN0IGJlIGFjY29tcGFuaWVkCmJ5IHRoZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24uICBCdXQgdGhpcyByZXF1aXJlbWVudCBkb2VzIG5vdCBhcHBseQppZiBuZWl0aGVyIHlvdSBub3IgYW55IHRoaXJkIHBhcnR5IHJldGFpbnMgdGhlIGFiaWxpdHkgdG8gaW5zdGFsbAptb2RpZmllZCBvYmplY3QgY29kZSBvbiB0aGUgVXNlciBQcm9kdWN0IChmb3IgZXhhbXBsZSwgdGhlIHdvcmsgaGFzCmJlZW4gaW5zdGFsbGVkIGluIFJPTSkuCgogIFRoZSByZXF1aXJlbWVudCB0byBwcm92aWRlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiBkb2VzIG5vdCBpbmNsdWRlIGEKcmVxdWlyZW1lbnQgdG8gY29udGludWUgdG8gcHJvdmlkZSBzdXBwb3J0IHNlcnZpY2UsIHdhcnJhbnR5LCBvciB1cGRhdGVzCmZvciBhIHdvcmsgdGhhdCBoYXMgYmVlbiBtb2RpZmllZCBvciBpbnN0YWxsZWQgYnkgdGhlIHJlY2lwaWVudCwgb3IgZm9yCnRoZSBVc2VyIFByb2R1Y3QgaW4gd2hpY2ggaXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgaW5zdGFsbGVkLiAgQWNjZXNzIHRvIGEKbmV0d29yayBtYXkgYmUgZGVuaWVkIHdoZW4gdGhlIG1vZGlmaWNhdGlvbiBpdHNlbGYgbWF0ZXJpYWxseSBhbmQKYWR2ZXJzZWx5IGFmZmVjdHMgdGhlIG9wZXJhdGlvbiBvZiB0aGUgbmV0d29yayBvciB2aW9sYXRlcyB0aGUgcnVsZXMgYW5kCnByb3RvY29scyBmb3IgY29tbXVuaWNhdGlvbiBhY3Jvc3MgdGhlIG5ldHdvcmsuCgogIENvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkLCBhbmQgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uIHByb3ZpZGVkLAppbiBhY2NvcmQgd2l0aCB0aGlzIHNlY3Rpb24gbXVzdCBiZSBpbiBhIGZvcm1hdCB0aGF0IGlzIHB1YmxpY2x5CmRvY3VtZW50ZWQgKGFuZCB3aXRoIGFuIGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluCnNvdXJjZSBjb2RlIGZvcm0pLCBhbmQgbXVzdCByZXF1aXJlIG5vIHNwZWNpYWwgcGFzc3dvcmQgb3Iga2V5IGZvcgp1bnBhY2tpbmcsIHJlYWRpbmcgb3IgY29weWluZy4KCiAgNy4gQWRkaXRpb25hbCBUZXJtcy4KCiAgIkFkZGl0aW9uYWwgcGVybWlzc2lvbnMiIGFyZSB0ZXJtcyB0aGF0IHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMKTGljZW5zZSBieSBtYWtpbmcgZXhjZXB0aW9ucyBmcm9tIG9uZSBvciBtb3JlIG9mIGl0cyBjb25kaXRpb25zLgpBZGRpdGlvbmFsIHBlcm1pc3Npb25zIHRoYXQgYXJlIGFwcGxpY2FibGUgdG8gdGhlIGVudGlyZSBQcm9ncmFtIHNoYWxsCmJlIHRyZWF0ZWQgYXMgdGhvdWdoIHRoZXkgd2VyZSBpbmNsdWRlZCBpbiB0aGlzIExpY2Vuc2UsIHRvIHRoZSBleHRlbnQKdGhhdCB0aGV5IGFyZSB2YWxpZCB1bmRlciBhcHBsaWNhYmxlIGxhdy4gIElmIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMKYXBwbHkgb25seSB0byBwYXJ0IG9mIHRoZSBQcm9ncmFtLCB0aGF0IHBhcnQgbWF5IGJlIHVzZWQgc2VwYXJhdGVseQp1bmRlciB0aG9zZSBwZXJtaXNzaW9ucywgYnV0IHRoZSBlbnRpcmUgUHJvZ3JhbSByZW1haW5zIGdvdmVybmVkIGJ5CnRoaXMgTGljZW5zZSB3aXRob3V0IHJlZ2FyZCB0byB0aGUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucy4KCiAgV2hlbiB5b3UgY29udmV5IGEgY29weSBvZiBhIGNvdmVyZWQgd29yaywgeW91IG1heSBhdCB5b3VyIG9wdGlvbgpyZW1vdmUgYW55IGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgZnJvbSB0aGF0IGNvcHksIG9yIGZyb20gYW55IHBhcnQgb2YKaXQuICAoQWRkaXRpb25hbCBwZXJtaXNzaW9ucyBtYXkgYmUgd3JpdHRlbiB0byByZXF1aXJlIHRoZWlyIG93bgpyZW1vdmFsIGluIGNlcnRhaW4gY2FzZXMgd2hlbiB5b3UgbW9kaWZ5IHRoZSB3b3JrLikgIFlvdSBtYXkgcGxhY2UKYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBvbiBtYXRlcmlhbCwgYWRkZWQgYnkgeW91IHRvIGEgY292ZXJlZCB3b3JrLApmb3Igd2hpY2ggeW91IGhhdmUgb3IgY2FuIGdpdmUgYXBwcm9wcmlhdGUgY29weXJpZ2h0IHBlcm1pc3Npb24uCgogIE5vdHdpdGhzdGFuZGluZyBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgTGljZW5zZSwgZm9yIG1hdGVyaWFsIHlvdQphZGQgdG8gYSBjb3ZlcmVkIHdvcmssIHlvdSBtYXkgKGlmIGF1dGhvcml6ZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXJzIG9mCnRoYXQgbWF0ZXJpYWwpIHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSB3aXRoIHRlcm1zOgoKICAgIGEpIERpc2NsYWltaW5nIHdhcnJhbnR5IG9yIGxpbWl0aW5nIGxpYWJpbGl0eSBkaWZmZXJlbnRseSBmcm9tIHRoZQogICAgdGVybXMgb2Ygc2VjdGlvbnMgMTUgYW5kIDE2IG9mIHRoaXMgTGljZW5zZTsgb3IKCiAgICBiKSBSZXF1aXJpbmcgcHJlc2VydmF0aW9uIG9mIHNwZWNpZmllZCByZWFzb25hYmxlIGxlZ2FsIG5vdGljZXMgb3IKICAgIGF1dGhvciBhdHRyaWJ1dGlvbnMgaW4gdGhhdCBtYXRlcmlhbCBvciBpbiB0aGUgQXBwcm9wcmlhdGUgTGVnYWwKICAgIE5vdGljZXMgZGlzcGxheWVkIGJ5IHdvcmtzIGNvbnRhaW5pbmcgaXQ7IG9yCgogICAgYykgUHJvaGliaXRpbmcgbWlzcmVwcmVzZW50YXRpb24gb2YgdGhlIG9yaWdpbiBvZiB0aGF0IG1hdGVyaWFsLCBvcgogICAgcmVxdWlyaW5nIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMgb2Ygc3VjaCBtYXRlcmlhbCBiZSBtYXJrZWQgaW4KICAgIHJlYXNvbmFibGUgd2F5cyBhcyBkaWZmZXJlbnQgZnJvbSB0aGUgb3JpZ2luYWwgdmVyc2lvbjsgb3IKCiAgICBkKSBMaW1pdGluZyB0aGUgdXNlIGZvciBwdWJsaWNpdHkgcHVycG9zZXMgb2YgbmFtZXMgb2YgbGljZW5zb3JzIG9yCiAgICBhdXRob3JzIG9mIHRoZSBtYXRlcmlhbDsgb3IKCiAgICBlKSBEZWNsaW5pbmcgdG8gZ3JhbnQgcmlnaHRzIHVuZGVyIHRyYWRlbWFyayBsYXcgZm9yIHVzZSBvZiBzb21lCiAgICB0cmFkZSBuYW1lcywgdHJhZGVtYXJrcywgb3Igc2VydmljZSBtYXJrczsgb3IKCiAgICBmKSBSZXF1aXJpbmcgaW5kZW1uaWZpY2F0aW9uIG9mIGxpY2Vuc29ycyBhbmQgYXV0aG9ycyBvZiB0aGF0CiAgICBtYXRlcmlhbCBieSBhbnlvbmUgd2hvIGNvbnZleXMgdGhlIG1hdGVyaWFsIChvciBtb2RpZmllZCB2ZXJzaW9ucyBvZgogICAgaXQpIHdpdGggY29udHJhY3R1YWwgYXNzdW1wdGlvbnMgb2YgbGlhYmlsaXR5IHRvIHRoZSByZWNpcGllbnQsIGZvcgogICAgYW55IGxpYWJpbGl0eSB0aGF0IHRoZXNlIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIGRpcmVjdGx5IGltcG9zZSBvbgogICAgdGhvc2UgbGljZW5zb3JzIGFuZCBhdXRob3JzLgoKICBBbGwgb3RoZXIgbm9uLXBlcm1pc3NpdmUgYWRkaXRpb25hbCB0ZXJtcyBhcmUgY29uc2lkZXJlZCAiZnVydGhlcgpyZXN0cmljdGlvbnMiIHdpdGhpbiB0aGUgbWVhbmluZyBvZiBzZWN0aW9uIDEwLiAgSWYgdGhlIFByb2dyYW0gYXMgeW91CnJlY2VpdmVkIGl0LCBvciBhbnkgcGFydCBvZiBpdCwgY29udGFpbnMgYSBub3RpY2Ugc3RhdGluZyB0aGF0IGl0IGlzCmdvdmVybmVkIGJ5IHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIGEgdGVybSB0aGF0IGlzIGEgZnVydGhlcgpyZXN0cmljdGlvbiwgeW91IG1heSByZW1vdmUgdGhhdCB0ZXJtLiAgSWYgYSBsaWNlbnNlIGRvY3VtZW50IGNvbnRhaW5zCmEgZnVydGhlciByZXN0cmljdGlvbiBidXQgcGVybWl0cyByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcgdW5kZXIgdGhpcwpMaWNlbnNlLCB5b3UgbWF5IGFkZCB0byBhIGNvdmVyZWQgd29yayBtYXRlcmlhbCBnb3Zlcm5lZCBieSB0aGUgdGVybXMKb2YgdGhhdCBsaWNlbnNlIGRvY3VtZW50LCBwcm92aWRlZCB0aGF0IHRoZSBmdXJ0aGVyIHJlc3RyaWN0aW9uIGRvZXMKbm90IHN1cnZpdmUgc3VjaCByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcuCgogIElmIHlvdSBhZGQgdGVybXMgdG8gYSBjb3ZlcmVkIHdvcmsgaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uLCB5b3UKbXVzdCBwbGFjZSwgaW4gdGhlIHJlbGV2YW50IHNvdXJjZSBmaWxlcywgYSBzdGF0ZW1lbnQgb2YgdGhlCmFkZGl0aW9uYWwgdGVybXMgdGhhdCBhcHBseSB0byB0aG9zZSBmaWxlcywgb3IgYSBub3RpY2UgaW5kaWNhdGluZwp3aGVyZSB0byBmaW5kIHRoZSBhcHBsaWNhYmxlIHRlcm1zLgoKICBBZGRpdGlvbmFsIHRlcm1zLCBwZXJtaXNzaXZlIG9yIG5vbi1wZXJtaXNzaXZlLCBtYXkgYmUgc3RhdGVkIGluIHRoZQpmb3JtIG9mIGEgc2VwYXJhdGVseSB3cml0dGVuIGxpY2Vuc2UsIG9yIHN0YXRlZCBhcyBleGNlcHRpb25zOwp0aGUgYWJvdmUgcmVxdWlyZW1lbnRzIGFwcGx5IGVpdGhlciB3YXkuCgogIDguIFRlcm1pbmF0aW9uLgoKICBZb3UgbWF5IG5vdCBwcm9wYWdhdGUgb3IgbW9kaWZ5IGEgY292ZXJlZCB3b3JrIGV4Y2VwdCBhcyBleHByZXNzbHkKcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQgb3RoZXJ3aXNlIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgaXQgaXMgdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIKdGhpcyBMaWNlbnNlIChpbmNsdWRpbmcgYW55IHBhdGVudCBsaWNlbnNlcyBncmFudGVkIHVuZGVyIHRoZSB0aGlyZApwYXJhZ3JhcGggb2Ygc2VjdGlvbiAxMSkuCgogIEhvd2V2ZXIsIGlmIHlvdSBjZWFzZSBhbGwgdmlvbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgdGhlbiB5b3VyCmxpY2Vuc2UgZnJvbSBhIHBhcnRpY3VsYXIgY29weXJpZ2h0IGhvbGRlciBpcyByZWluc3RhdGVkIChhKQpwcm92aXNpb25hbGx5LCB1bmxlc3MgYW5kIHVudGlsIHRoZSBjb3B5cmlnaHQgaG9sZGVyIGV4cGxpY2l0bHkgYW5kCmZpbmFsbHkgdGVybWluYXRlcyB5b3VyIGxpY2Vuc2UsIGFuZCAoYikgcGVybWFuZW50bHksIGlmIHRoZSBjb3B5cmlnaHQKaG9sZGVyIGZhaWxzIHRvIG5vdGlmeSB5b3Ugb2YgdGhlIHZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMKcHJpb3IgdG8gNjAgZGF5cyBhZnRlciB0aGUgY2Vzc2F0aW9uLgoKICBNb3Jlb3ZlciwgeW91ciBsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMKcmVpbnN0YXRlZCBwZXJtYW5lbnRseSBpZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3RpZmllcyB5b3Ugb2YgdGhlCnZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMsIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgeW91IGhhdmUKcmVjZWl2ZWQgbm90aWNlIG9mIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UgKGZvciBhbnkgd29yaykgZnJvbSB0aGF0CmNvcHlyaWdodCBob2xkZXIsIGFuZCB5b3UgY3VyZSB0aGUgdmlvbGF0aW9uIHByaW9yIHRvIDMwIGRheXMgYWZ0ZXIKeW91ciByZWNlaXB0IG9mIHRoZSBub3RpY2UuCgogIFRlcm1pbmF0aW9uIG9mIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgc2VjdGlvbiBkb2VzIG5vdCB0ZXJtaW5hdGUgdGhlCmxpY2Vuc2VzIG9mIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzIG9yIHJpZ2h0cyBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2UuICBJZiB5b3VyIHJpZ2h0cyBoYXZlIGJlZW4gdGVybWluYXRlZCBhbmQgbm90IHBlcm1hbmVudGx5CnJlaW5zdGF0ZWQsIHlvdSBkbyBub3QgcXVhbGlmeSB0byByZWNlaXZlIG5ldyBsaWNlbnNlcyBmb3IgdGhlIHNhbWUKbWF0ZXJpYWwgdW5kZXIgc2VjdGlvbiAxMC4KCiAgOS4gQWNjZXB0YW5jZSBOb3QgUmVxdWlyZWQgZm9yIEhhdmluZyBDb3BpZXMuCgogIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UgaW4gb3JkZXIgdG8gcmVjZWl2ZSBvcgpydW4gYSBjb3B5IG9mIHRoZSBQcm9ncmFtLiAgQW5jaWxsYXJ5IHByb3BhZ2F0aW9uIG9mIGEgY292ZXJlZCB3b3JrCm9jY3VycmluZyBzb2xlbHkgYXMgYSBjb25zZXF1ZW5jZSBvZiB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uCnRvIHJlY2VpdmUgYSBjb3B5IGxpa2V3aXNlIGRvZXMgbm90IHJlcXVpcmUgYWNjZXB0YW5jZS4gIEhvd2V2ZXIsCm5vdGhpbmcgb3RoZXIgdGhhbiB0aGlzIExpY2Vuc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgYW55IGNvdmVyZWQgd29yay4gIFRoZXNlIGFjdGlvbnMgaW5mcmluZ2UgY29weXJpZ2h0IGlmIHlvdSBkbwpub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkgbW9kaWZ5aW5nIG9yIHByb3BhZ2F0aW5nIGEKY292ZXJlZCB3b3JrLCB5b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzby4KCiAgMTAuIEF1dG9tYXRpYyBMaWNlbnNpbmcgb2YgRG93bnN0cmVhbSBSZWNpcGllbnRzLgoKICBFYWNoIHRpbWUgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5CnJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZSBvcmlnaW5hbCBsaWNlbnNvcnMsIHRvIHJ1biwgbW9kaWZ5IGFuZApwcm9wYWdhdGUgdGhhdCB3b3JrLCBzdWJqZWN0IHRvIHRoaXMgTGljZW5zZS4gIFlvdSBhcmUgbm90IHJlc3BvbnNpYmxlCmZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHdpdGggdGhpcyBMaWNlbnNlLgoKICBBbiAiZW50aXR5IHRyYW5zYWN0aW9uIiBpcyBhIHRyYW5zYWN0aW9uIHRyYW5zZmVycmluZyBjb250cm9sIG9mIGFuCm9yZ2FuaXphdGlvbiwgb3Igc3Vic3RhbnRpYWxseSBhbGwgYXNzZXRzIG9mIG9uZSwgb3Igc3ViZGl2aWRpbmcgYW4Kb3JnYW5pemF0aW9uLCBvciBtZXJnaW5nIG9yZ2FuaXphdGlvbnMuICBJZiBwcm9wYWdhdGlvbiBvZiBhIGNvdmVyZWQKd29yayByZXN1bHRzIGZyb20gYW4gZW50aXR5IHRyYW5zYWN0aW9uLCBlYWNoIHBhcnR5IHRvIHRoYXQKdHJhbnNhY3Rpb24gd2hvIHJlY2VpdmVzIGEgY29weSBvZiB0aGUgd29yayBhbHNvIHJlY2VpdmVzIHdoYXRldmVyCmxpY2Vuc2VzIHRvIHRoZSB3b3JrIHRoZSBwYXJ0eSdzIHByZWRlY2Vzc29yIGluIGludGVyZXN0IGhhZCBvciBjb3VsZApnaXZlIHVuZGVyIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGgsIHBsdXMgYSByaWdodCB0byBwb3NzZXNzaW9uIG9mIHRoZQpDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBmcm9tIHRoZSBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCwgaWYKdGhlIHByZWRlY2Vzc29yIGhhcyBpdCBvciBjYW4gZ2V0IGl0IHdpdGggcmVhc29uYWJsZSBlZmZvcnRzLgoKICBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIgcmVzdHJpY3Rpb25zIG9uIHRoZSBleGVyY2lzZSBvZiB0aGUKcmlnaHRzIGdyYW50ZWQgb3IgYWZmaXJtZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgRm9yIGV4YW1wbGUsIHlvdSBtYXkKbm90IGltcG9zZSBhIGxpY2Vuc2UgZmVlLCByb3lhbHR5LCBvciBvdGhlciBjaGFyZ2UgZm9yIGV4ZXJjaXNlIG9mCnJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIHlvdSBtYXkgbm90IGluaXRpYXRlIGxpdGlnYXRpb24KKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQKYW55IHBhdGVudCBjbGFpbSBpcyBpbmZyaW5nZWQgYnkgbWFraW5nLCB1c2luZywgc2VsbGluZywgb2ZmZXJpbmcgZm9yCnNhbGUsIG9yIGltcG9ydGluZyB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbiBvZiBpdC4KCiAgMTEuIFBhdGVudHMuCgogIEEgImNvbnRyaWJ1dG9yIiBpcyBhIGNvcHlyaWdodCBob2xkZXIgd2hvIGF1dGhvcml6ZXMgdXNlIHVuZGVyIHRoaXMKTGljZW5zZSBvZiB0aGUgUHJvZ3JhbSBvciBhIHdvcmsgb24gd2hpY2ggdGhlIFByb2dyYW0gaXMgYmFzZWQuICBUaGUKd29yayB0aHVzIGxpY2Vuc2VkIGlzIGNhbGxlZCB0aGUgY29udHJpYnV0b3IncyAiY29udHJpYnV0b3IgdmVyc2lvbiIuCgogIEEgY29udHJpYnV0b3IncyAiZXNzZW50aWFsIHBhdGVudCBjbGFpbXMiIGFyZSBhbGwgcGF0ZW50IGNsYWltcwpvd25lZCBvciBjb250cm9sbGVkIGJ5IHRoZSBjb250cmlidXRvciwgd2hldGhlciBhbHJlYWR5IGFjcXVpcmVkIG9yCmhlcmVhZnRlciBhY3F1aXJlZCwgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgYnkgc29tZSBtYW5uZXIsIHBlcm1pdHRlZApieSB0aGlzIExpY2Vuc2UsIG9mIG1ha2luZywgdXNpbmcsIG9yIHNlbGxpbmcgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24sCmJ1dCBkbyBub3QgaW5jbHVkZSBjbGFpbXMgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgb25seSBhcyBhCmNvbnNlcXVlbmNlIG9mIGZ1cnRoZXIgbW9kaWZpY2F0aW9uIG9mIHRoZSBjb250cmlidXRvciB2ZXJzaW9uLiAgRm9yCnB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgImNvbnRyb2wiIGluY2x1ZGVzIHRoZSByaWdodCB0byBncmFudApwYXRlbnQgc3VibGljZW5zZXMgaW4gYSBtYW5uZXIgY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YKdGhpcyBMaWNlbnNlLgoKICBFYWNoIGNvbnRyaWJ1dG9yIGdyYW50cyB5b3UgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZQpwYXRlbnQgbGljZW5zZSB1bmRlciB0aGUgY29udHJpYnV0b3IncyBlc3NlbnRpYWwgcGF0ZW50IGNsYWltcywgdG8KbWFrZSwgdXNlLCBzZWxsLCBvZmZlciBmb3Igc2FsZSwgaW1wb3J0IGFuZCBvdGhlcndpc2UgcnVuLCBtb2RpZnkgYW5kCnByb3BhZ2F0ZSB0aGUgY29udGVudHMgb2YgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24uCgogIEluIHRoZSBmb2xsb3dpbmcgdGhyZWUgcGFyYWdyYXBocywgYSAicGF0ZW50IGxpY2Vuc2UiIGlzIGFueSBleHByZXNzCmFncmVlbWVudCBvciBjb21taXRtZW50LCBob3dldmVyIGRlbm9taW5hdGVkLCBub3QgdG8gZW5mb3JjZSBhIHBhdGVudAooc3VjaCBhcyBhbiBleHByZXNzIHBlcm1pc3Npb24gdG8gcHJhY3RpY2UgYSBwYXRlbnQgb3IgY292ZW5hbnQgbm90IHRvCnN1ZSBmb3IgcGF0ZW50IGluZnJpbmdlbWVudCkuICBUbyAiZ3JhbnQiIHN1Y2ggYSBwYXRlbnQgbGljZW5zZSB0byBhCnBhcnR5IG1lYW5zIHRvIG1ha2Ugc3VjaCBhbiBhZ3JlZW1lbnQgb3IgY29tbWl0bWVudCBub3QgdG8gZW5mb3JjZSBhCnBhdGVudCBhZ2FpbnN0IHRoZSBwYXJ0eS4KCiAgSWYgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywga25vd2luZ2x5IHJlbHlpbmcgb24gYSBwYXRlbnQgbGljZW5zZSwKYW5kIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBpcyBub3QgYXZhaWxhYmxlIGZvciBhbnlvbmUKdG8gY29weSwgZnJlZSBvZiBjaGFyZ2UgYW5kIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UsIHRocm91Z2ggYQpwdWJsaWNseSBhdmFpbGFibGUgbmV0d29yayBzZXJ2ZXIgb3Igb3RoZXIgcmVhZGlseSBhY2Nlc3NpYmxlIG1lYW5zLAp0aGVuIHlvdSBtdXN0IGVpdGhlciAoMSkgY2F1c2UgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIHRvIGJlIHNvCmF2YWlsYWJsZSwgb3IgKDIpIGFycmFuZ2UgdG8gZGVwcml2ZSB5b3Vyc2VsZiBvZiB0aGUgYmVuZWZpdCBvZiB0aGUKcGF0ZW50IGxpY2Vuc2UgZm9yIHRoaXMgcGFydGljdWxhciB3b3JrLCBvciAoMykgYXJyYW5nZSwgaW4gYSBtYW5uZXIKY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBMaWNlbnNlLCB0byBleHRlbmQgdGhlIHBhdGVudApsaWNlbnNlIHRvIGRvd25zdHJlYW0gcmVjaXBpZW50cy4gICJLbm93aW5nbHkgcmVseWluZyIgbWVhbnMgeW91IGhhdmUKYWN0dWFsIGtub3dsZWRnZSB0aGF0LCBidXQgZm9yIHRoZSBwYXRlbnQgbGljZW5zZSwgeW91ciBjb252ZXlpbmcgdGhlCmNvdmVyZWQgd29yayBpbiBhIGNvdW50cnksIG9yIHlvdXIgcmVjaXBpZW50J3MgdXNlIG9mIHRoZSBjb3ZlcmVkIHdvcmsKaW4gYSBjb3VudHJ5LCB3b3VsZCBpbmZyaW5nZSBvbmUgb3IgbW9yZSBpZGVudGlmaWFibGUgcGF0ZW50cyBpbiB0aGF0CmNvdW50cnkgdGhhdCB5b3UgaGF2ZSByZWFzb24gdG8gYmVsaWV2ZSBhcmUgdmFsaWQuCgogIElmLCBwdXJzdWFudCB0byBvciBpbiBjb25uZWN0aW9uIHdpdGggYSBzaW5nbGUgdHJhbnNhY3Rpb24gb3IKYXJyYW5nZW1lbnQsIHlvdSBjb252ZXksIG9yIHByb3BhZ2F0ZSBieSBwcm9jdXJpbmcgY29udmV5YW5jZSBvZiwgYQpjb3ZlcmVkIHdvcmssIGFuZCBncmFudCBhIHBhdGVudCBsaWNlbnNlIHRvIHNvbWUgb2YgdGhlIHBhcnRpZXMKcmVjZWl2aW5nIHRoZSBjb3ZlcmVkIHdvcmsgYXV0aG9yaXppbmcgdGhlbSB0byB1c2UsIHByb3BhZ2F0ZSwgbW9kaWZ5Cm9yIGNvbnZleSBhIHNwZWNpZmljIGNvcHkgb2YgdGhlIGNvdmVyZWQgd29yaywgdGhlbiB0aGUgcGF0ZW50IGxpY2Vuc2UKeW91IGdyYW50IGlzIGF1dG9tYXRpY2FsbHkgZXh0ZW5kZWQgdG8gYWxsIHJlY2lwaWVudHMgb2YgdGhlIGNvdmVyZWQKd29yayBhbmQgd29ya3MgYmFzZWQgb24gaXQuCgogIEEgcGF0ZW50IGxpY2Vuc2UgaXMgImRpc2NyaW1pbmF0b3J5IiBpZiBpdCBkb2VzIG5vdCBpbmNsdWRlIHdpdGhpbgp0aGUgc2NvcGUgb2YgaXRzIGNvdmVyYWdlLCBwcm9oaWJpdHMgdGhlIGV4ZXJjaXNlIG9mLCBvciBpcwpjb25kaXRpb25lZCBvbiB0aGUgbm9uLWV4ZXJjaXNlIG9mIG9uZSBvciBtb3JlIG9mIHRoZSByaWdodHMgdGhhdCBhcmUKc3BlY2lmaWNhbGx5IGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgWW91IG1heSBub3QgY29udmV5IGEgY292ZXJlZAp3b3JrIGlmIHlvdSBhcmUgYSBwYXJ0eSB0byBhbiBhcnJhbmdlbWVudCB3aXRoIGEgdGhpcmQgcGFydHkgdGhhdCBpcwppbiB0aGUgYnVzaW5lc3Mgb2YgZGlzdHJpYnV0aW5nIHNvZnR3YXJlLCB1bmRlciB3aGljaCB5b3UgbWFrZSBwYXltZW50CnRvIHRoZSB0aGlyZCBwYXJ0eSBiYXNlZCBvbiB0aGUgZXh0ZW50IG9mIHlvdXIgYWN0aXZpdHkgb2YgY29udmV5aW5nCnRoZSB3b3JrLCBhbmQgdW5kZXIgd2hpY2ggdGhlIHRoaXJkIHBhcnR5IGdyYW50cywgdG8gYW55IG9mIHRoZQpwYXJ0aWVzIHdobyB3b3VsZCByZWNlaXZlIHRoZSBjb3ZlcmVkIHdvcmsgZnJvbSB5b3UsIGEgZGlzY3JpbWluYXRvcnkKcGF0ZW50IGxpY2Vuc2UgKGEpIGluIGNvbm5lY3Rpb24gd2l0aCBjb3BpZXMgb2YgdGhlIGNvdmVyZWQgd29yawpjb252ZXllZCBieSB5b3UgKG9yIGNvcGllcyBtYWRlIGZyb20gdGhvc2UgY29waWVzKSwgb3IgKGIpIHByaW1hcmlseQpmb3IgYW5kIGluIGNvbm5lY3Rpb24gd2l0aCBzcGVjaWZpYyBwcm9kdWN0cyBvciBjb21waWxhdGlvbnMgdGhhdApjb250YWluIHRoZSBjb3ZlcmVkIHdvcmssIHVubGVzcyB5b3UgZW50ZXJlZCBpbnRvIHRoYXQgYXJyYW5nZW1lbnQsCm9yIHRoYXQgcGF0ZW50IGxpY2Vuc2Ugd2FzIGdyYW50ZWQsIHByaW9yIHRvIDI4IE1hcmNoIDIwMDcuCgogIE5vdGhpbmcgaW4gdGhpcyBMaWNlbnNlIHNoYWxsIGJlIGNvbnN0cnVlZCBhcyBleGNsdWRpbmcgb3IgbGltaXRpbmcKYW55IGltcGxpZWQgbGljZW5zZSBvciBvdGhlciBkZWZlbnNlcyB0byBpbmZyaW5nZW1lbnQgdGhhdCBtYXkKb3RoZXJ3aXNlIGJlIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYXBwbGljYWJsZSBwYXRlbnQgbGF3LgoKICAxMi4gTm8gU3VycmVuZGVyIG9mIE90aGVycycgRnJlZWRvbS4KCiAgSWYgY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcgpvdGhlcndpc2UpIHRoYXQgY29udHJhZGljdCB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIHRoZXkgZG8gbm90CmV4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90IGNvbnZleSBhCmNvdmVyZWQgd29yayBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcwpMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91IG1heQpub3QgY29udmV5IGl0IGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiB5b3UgYWdyZWUgdG8gdGVybXMgdGhhdCBvYmxpZ2F0ZSB5b3UKdG8gY29sbGVjdCBhIHJveWFsdHkgZm9yIGZ1cnRoZXIgY29udmV5aW5nIGZyb20gdGhvc2UgdG8gd2hvbSB5b3UgY29udmV5CnRoZSBQcm9ncmFtLCB0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCB0aG9zZSB0ZXJtcyBhbmQgdGhpcwpMaWNlbnNlIHdvdWxkIGJlIHRvIHJlZnJhaW4gZW50aXJlbHkgZnJvbSBjb252ZXlpbmcgdGhlIFByb2dyYW0uCgogIDEzLiBVc2Ugd2l0aCB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgoKICBOb3R3aXRoc3RhbmRpbmcgYW55IG90aGVyIHByb3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UsIHlvdSBoYXZlCnBlcm1pc3Npb24gdG8gbGluayBvciBjb21iaW5lIGFueSBjb3ZlcmVkIHdvcmsgd2l0aCBhIHdvcmsgbGljZW5zZWQKdW5kZXIgdmVyc2lvbiAzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW50byBhIHNpbmdsZQpjb21iaW5lZCB3b3JrLCBhbmQgdG8gY29udmV5IHRoZSByZXN1bHRpbmcgd29yay4gIFRoZSB0ZXJtcyBvZiB0aGlzCkxpY2Vuc2Ugd2lsbCBjb250aW51ZSB0byBhcHBseSB0byB0aGUgcGFydCB3aGljaCBpcyB0aGUgY292ZXJlZCB3b3JrLApidXQgdGhlIHNwZWNpYWwgcmVxdWlyZW1lbnRzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCnNlY3Rpb24gMTMsIGNvbmNlcm5pbmcgaW50ZXJhY3Rpb24gdGhyb3VnaCBhIG5ldHdvcmsgd2lsbCBhcHBseSB0byB0aGUKY29tYmluYXRpb24gYXMgc3VjaC4KCiAgMTQuIFJldmlzZWQgVmVyc2lvbnMgb2YgdGhpcyBMaWNlbnNlLgoKICBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucyBvZgp0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCiAgRWFjaCB2ZXJzaW9uIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuICBJZiB0aGUKUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIGNlcnRhaW4gbnVtYmVyZWQgdmVyc2lvbiBvZiB0aGUgR05VIEdlbmVyYWwKUHVibGljIExpY2Vuc2UgIm9yIGFueSBsYXRlciB2ZXJzaW9uIiBhcHBsaWVzIHRvIGl0LCB5b3UgaGF2ZSB0aGUKb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZWl0aGVyIG9mIHRoYXQgbnVtYmVyZWQKdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4gIElmIHRoZSBQcm9ncmFtIGRvZXMgbm90IHNwZWNpZnkgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkCmJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCgogIElmIHRoZSBQcm9ncmFtIHNwZWNpZmllcyB0aGF0IGEgcHJveHkgY2FuIGRlY2lkZSB3aGljaCBmdXR1cmUKdmVyc2lvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGNhbiBiZSB1c2VkLCB0aGF0IHByb3h5J3MKcHVibGljIHN0YXRlbWVudCBvZiBhY2NlcHRhbmNlIG9mIGEgdmVyc2lvbiBwZXJtYW5lbnRseSBhdXRob3JpemVzIHlvdQp0byBjaG9vc2UgdGhhdCB2ZXJzaW9uIGZvciB0aGUgUHJvZ3JhbS4KCiAgTGF0ZXIgbGljZW5zZSB2ZXJzaW9ucyBtYXkgZ2l2ZSB5b3UgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQKcGVybWlzc2lvbnMuICBIb3dldmVyLCBubyBhZGRpdGlvbmFsIG9ibGlnYXRpb25zIGFyZSBpbXBvc2VkIG9uIGFueQphdXRob3Igb3IgY29weXJpZ2h0IGhvbGRlciBhcyBhIHJlc3VsdCBvZiB5b3VyIGNob29zaW5nIHRvIGZvbGxvdyBhCmxhdGVyIHZlcnNpb24uCgogIDE1LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LgoKICBUSEVSRSBJUyBOTyBXQVJSQU5UWSBGT1IgVEhFIFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZCkFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4gT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQKSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUyBQUk9WSURFIFRIRSBQUk9HUkFNICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWQpPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1NFRCBPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUgUFJPR1JBTQpJUyBXSVRIIFlPVS4gIFNIT1VMRCBUSEUgUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YKQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLgoKICAxNi4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuCgogIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1PRElGSUVTIEFORC9PUiBDT05WRVlTClRIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywgSU5DTFVESU5HIEFOWQpHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBPRiBUSEUKVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRgpEQVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZIFlPVSBPUiBUSElSRApQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSIFBST0dSQU1TKSwKRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgpTVUNIIERBTUFHRVMuCgogIDE3LiBJbnRlcnByZXRhdGlvbiBvZiBTZWN0aW9ucyAxNSBhbmQgMTYuCgogIElmIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5IGFuZCBsaW1pdGF0aW9uIG9mIGxpYWJpbGl0eSBwcm92aWRlZAphYm92ZSBjYW5ub3QgYmUgZ2l2ZW4gbG9jYWwgbGVnYWwgZWZmZWN0IGFjY29yZGluZyB0byB0aGVpciB0ZXJtcywKcmV2aWV3aW5nIGNvdXJ0cyBzaGFsbCBhcHBseSBsb2NhbCBsYXcgdGhhdCBtb3N0IGNsb3NlbHkgYXBwcm94aW1hdGVzCmFuIGFic29sdXRlIHdhaXZlciBvZiBhbGwgY2l2aWwgbGlhYmlsaXR5IGluIGNvbm5lY3Rpb24gd2l0aCB0aGUKUHJvZ3JhbSwgdW5sZXNzIGEgd2FycmFudHkgb3IgYXNzdW1wdGlvbiBvZiBsaWFiaWxpdHkgYWNjb21wYW5pZXMgYQpjb3B5IG9mIHRoZSBQcm9ncmFtIGluIHJldHVybiBmb3IgYSBmZWUuCgogICAgICAgICAgICAgICAgICAgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKCiAgICAgICAgICAgIEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9ncmFtcwoKICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdyZWF0ZXN0CnBvc3NpYmxlIHVzZSB0byB0aGUgcHVibGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlzIGlzIHRvIG1ha2UgaXQKZnJlZSBzb2Z0d2FyZSB3aGljaCBldmVyeW9uZSBjYW4gcmVkaXN0cmlidXRlIGFuZCBjaGFuZ2UgdW5kZXIgdGhlc2UgdGVybXMuCgogIFRvIGRvIHNvLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBwcm9ncmFtLiAgSXQgaXMgc2FmZXN0CnRvIGF0dGFjaCB0aGVtIHRvIHRoZSBzdGFydCBvZiBlYWNoIHNvdXJjZSBmaWxlIHRvIG1vc3QgZWZmZWN0aXZlbHkKc3RhdGUgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAp0aGUgImNvcHlyaWdodCIgbGluZSBhbmQgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4KCiAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgogICAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgogICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKQWxzbyBhZGQgaW5mb3JtYXRpb24gb24gaG93IHRvIGNvbnRhY3QgeW91IGJ5IGVsZWN0cm9uaWMgYW5kIHBhcGVyIG1haWwuCgogIElmIHRoZSBwcm9ncmFtIGRvZXMgdGVybWluYWwgaW50ZXJhY3Rpb24sIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQKbm90aWNlIGxpa2UgdGhpcyB3aGVuIGl0IHN0YXJ0cyBpbiBhbiBpbnRlcmFjdGl2ZSBtb2RlOgoKICAgIDxwcm9ncmFtPiAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KICAgIFRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFk7IGZvciBkZXRhaWxzIHR5cGUgYHNob3cgdycuCiAgICBUaGlzIGlzIGZyZWUgc29mdHdhcmUsIGFuZCB5b3UgYXJlIHdlbGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0CiAgICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9yIGRldGFpbHMuCgpUaGUgaHlwb3RoZXRpY2FsIGNvbW1hbmRzIGBzaG93IHcnIGFuZCBgc2hvdyBjJyBzaG91bGQgc2hvdyB0aGUgYXBwcm9wcmlhdGUKcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHlvdXIgcHJvZ3JhbSdzIGNvbW1hbmRzCm1pZ2h0IGJlIGRpZmZlcmVudDsgZm9yIGEgR1VJIGludGVyZmFjZSwgeW91IHdvdWxkIHVzZSBhbiAiYWJvdXQgYm94Ii4KCiAgWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHNjaG9vbCwKaWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIHByb2dyYW0sIGlmIG5lY2Vzc2FyeS4KRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcywgYW5kIGhvdyB0byBhcHBseSBhbmQgZm9sbG93IHRoZSBHTlUgR1BMLCBzZWUKPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtCmludG8gcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdQptYXkgY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGgKdGhlIGxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLiAgQnV0IGZpcnN0LCBwbGVhc2UgcmVhZAo8aHR0cDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvd2h5LW5vdC1sZ3BsLmh0bWw+Lgo=]]></data>
	</file>
	<file>
	  <filename>/function.admin_aliases_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwoKLy8KLy8gYnVpbGQgdGhlIGZvcm0KLy8KJGFsaWFzZXMgPSBhcnJheSgpOwppZiggaXNzZXQoJF9TRVNTSU9OWyR0aGlzLT5HZXROYW1lKCkuJ19hbGlhc19uYW1lcyddKSApCiAgewogICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJF9TRVNTSU9OWyR0aGlzLT5HZXROYW1lKCkuJ19hbGlhc19uYW1lcyddKTsgJGkrKyApCiAgICAgIHsKCSRuYW1lID0gJF9TRVNTSU9OWyR0aGlzLT5HZXROYW1lKCkuJ19hbGlhc19uYW1lcyddWyRpXTsKCSRvcHRzID0gJF9TRVNTSU9OWyR0aGlzLT5HZXROYW1lKCkuJ19hbGlhc19vcHRpb25zJ11bJGldOwoJJGFsaWFzZXNbXSA9IGFycmF5KCduYW1lJz0+JG5hbWUsJ29wdGlvbnMnPT4kb3B0cyk7CiAgICAgIH0KICAgIHVuc2V0KCRfU0VTU0lPTlskdGhpcy0+R2V0TmFtZSgpLidfYWxpYXNfbmFtZXMnXSk7CiAgICB1bnNldCgkX1NFU1NJT05bJHRoaXMtPkdldE5hbWUoKS4nX2FsaWFzX29wdGlvbnMnXSk7CiAgfQplbHNlCiAgewogICAgJHRtcCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGlhc2VzJyk7CiAgICBpZiggJHRtcCApCiAgICAgIHsKCSRhbGlhc2VzID0gdW5zZXJpYWxpemUoJHRtcCk7CiAgICAgIH0KICB9CiRzbWFydHktPmFzc2lnbignYWxpYXNlcycsJGFsaWFzZXMpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fc2F2ZWFsaWFzZXMnLCRyZXR1cm5pZCkpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9hbGlhc2VzX3RhYi50cGwnKTsKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_embedding_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwoKJGVtYmVkX21vZGVzID0gYXJyYXkoKTsKJGVtYmVkX21vZGVzWydub25lJ10gPSAkdGhpcy0+TGFuZygnbm9uZScpOwokZW1iZWRfbW9kZXNbJ3NtYXJ0J10gPSAkdGhpcy0+TGFuZygnc21hcnQnKTsKJGVtYmVkX21vZGVzWydzaXplbGltaXQnXSA9ICR0aGlzLT5MYW5nKCdwcm9tcHRfZW1iZWRfc2l6ZWxpbWl0Jyk7CiRlbWJlZF9tb2Rlc1snc21hcnRfbGltaXRlZCddID0gJHRoaXMtPkxhbmcoJ3Byb21wdF9lbWJlZF9zbWFydGxpbWl0ZWQnKTsKJGVtYmVkX21vZGVzWyd0eXBlJ10gPSAkdGhpcy0+TGFuZygncHJvbXB0X2VtYmVkX3R5cGUnKTsKJHNtYXJ0eS0+YXNzaWduKCdlbWJlZF9tb2RlcycsJGVtYmVkX21vZGVzKTsKJHNtYXJ0eS0+YXNzaWduKCdlbWJlZF9tb2RlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZW1iZWRfbW9kZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbWJlZF9zaXplbGltaXQnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdlbWJlZF9zaXplbGltaXQnKSk7CiRzbWFydHktPmFzc2lnbignZW1iZWRfdHlwZXMnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdlbWJlZF90eXBlcycpKTsKCiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU1RhcnQoJGlkLCdhZG1pbl9lbWJlZGRpbmdfdGFiJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX2VtYmVkZGluZ190YWIudHBsJyk7CiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_general_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwoKCiR0bXAgPSBhcnJheSgpOwokdG1wWyd0bCddID0gJHRoaXMtPkxhbmcoJ3Byb21wdF9sb2NfdG9wbGVmdCcpOwokdG1wWyd0YyddID0gJHRoaXMtPkxhbmcoJ3Byb21wdF9sb2NfdG9wY2VudGVyJyk7CiR0bXBbJ3RyJ10gPSAkdGhpcy0+TGFuZygncHJvbXB0X2xvY190b3ByaWdodCcpOwokdG1wWydjbCddID0gJHRoaXMtPkxhbmcoJ3Byb21wdF9sb2NfY2VudGVybGVmdCcpOwokdG1wWydjJ10gPSAkdGhpcy0+TGFuZygncHJvbXB0X2xvY19jZW50ZXInKTsKJHRtcFsnY3InXSA9ICR0aGlzLT5MYW5nKCdwcm9tcHRfbG9jX2NlbnRlcnJpZ2h0Jyk7CiR0bXBbJ2JsJ10gPSAkdGhpcy0+TGFuZygncHJvbXB0X2xvY19ib3R0b21sZWZ0Jyk7CiR0bXBbJ2JjJ10gPSAkdGhpcy0+TGFuZygncHJvbXB0X2xvY19ib3R0b21jZW50ZXInKTsKJHRtcFsnYnInXSA9ICR0aGlzLT5MYW5nKCdwcm9tcHRfbG9jX2JvdHRvbXJpZ2h0Jyk7CiRzbWFydHktPmFzc2lnbignY3JvcHRvZml0X2xvY3MnLCR0bXApOwokc21hcnR5LT5hc3NpZ24oJ2NhY2hlX2FnZScsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NhY2hlX2FnZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYWNoZV9wYXRoJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY2FjaGVfcGF0aCcsIGNtc19qb2luX3BhdGgoJ3VwbG9hZHMnLCAnXycuJHRoaXMtPkdldE5hbWUoKSkpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbWFnZV91cmxfcHJlZml4JywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VfdXJsX3ByZWZpeCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdjcm9wdG9maXRfZGVmYXVsdF9sb2MnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjcm9wdG9maXRfZGVmYXVsdF9sb2MnLCdjJykpOwokc21hcnR5LT5hc3NpZ24oJ2ltYWdlX3VybF9oYXNjYWNoZWRpcicsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltYWdlX3VybF9oYXNjYWNoZWRpcicpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX2dlbmVyYWxfdGFiJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokc21hcnR5LT5hc3NpZ24oJ3NpbGVudCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NpbGVudCcsMCkpOwokc21hcnR5LT5hc3NpZ24oJ2NoZWNrbWVtb3J5JywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY2hlY2ttZW1vcnknLDEpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3JjZV9leHRlbnNpb24nLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmb3JjZV9leHRlbnNpb24nLDApKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fZ2VuZXJhbF90YWIudHBsJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_resizing_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwoKZWNobyBfX0ZJTEVfXzsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_responsive_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwoKJHNtYXJ0eS0+YXNzaWduKCdyZXNwb25zaXZlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmVzcG9uc2l2ZScsMSkpOwokc21hcnR5LT5hc3NpZ24oJ3Jlc3BvbnNpdmVfYnJlYWtwb2ludHMnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZXNwb25zaXZlX2JyZWFrcG9pbnRzJykpOwoKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX3Jlc3BvbnNpdmVfdGFiJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX3Jlc3BvbnNpdmVfdGFiLnRwbCcpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/help.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgc2ltcGxlIHdheSB0byBwcm9jZXNzLCBhbmQgZGlzcGxheSBpbWFnZXMgb24geW91ciB3ZWIgcGFnZS4gIEl0IGFsbG93cyBzaW1wbGUgaW1hZ2UgcHJvY2Vzc2luZywgYW5kIHdhdGVybWFya2luZy4gIFRoaXMgbW9kdWxlIG1ha2VzIGRpc3BsYXlpbmcgcHJvY2Vzc2VkIGltYWdlcyBvbiB5b3VyIHdlYnNpdGUgdHJpdmlhbC4gIEl0IGFsc28gcHJvdmlkZXMgZmVhdHVyZXMgdG8gaW1wcm92ZSB0aGUgcGVyZm9ybWFuY2UgcmF0aW5nIG9mIHlvdXIgd2Vic2l0ZSwgbWFraW5nIHlvdXIgd2Vic2l0ZSBwb3dlcmZ1bCBhbmQgZmFzdCBhdCB0aGUgc2FtZSB0aW1lLjwvcD4KPGgzPkZlYXR1cmVzPC9oMz4KPHVsPgo8bGk+UG93ZXJmdWwsIGJ1dCBzaW1wbGUgdG8gdXNlIGltYWdlIGZpbHRlcmluZyBhbmQgcHJvY2Vzc2luZy4gRmlsdGVyaW5nIGluY2x1ZGVzOgogIDx1bD4KICAgIDxsaT5CbHVyPC9saT4KICAgIDxsaT5CcmlnaHRuZXNzPC9saT4KICAgIDxsaT5Db2xvcml6ZTwvbGk+CiAgICA8bGk+Q29udHJhc3Q8L2xpPgogICAgPGxpPkNyb3A8L2xpPgogICAgPGxpPjxzdHJvbmc+Q3JvcCBUbyBGaXQ8L3N0cm9uZz48L2xpPgogICAgPGxpPjxzdHJvbmc+UmVzaXplIFRvIEZpdDwvc3Ryb25nPjwvbGk+CiAgICA8bGk+RWRnZSBEZXRlY3Rpb248L2xpPgogICAgPGxpPlNoYXJwZW48L2xpPgogICAgPGxpPkVtYm9zczwvbGk+CiAgICA8bGk+R3JheXNjYWxlPC9saT4KICAgIDxsaT5NZWFuIFJlbW92YWw8L2xpPgogICAgPGxpPk5lZ2F0ZTwvbGk+CiAgICA8bGk+UGl4ZWxhdGU8L2xpPgogICAgPGxpPlJlZmxlY3Rpb248L2xpPgogICAgPGxpPlJlc2l6ZTwvbGk+CiAgICA8bGk+Um91bmRlZCBDb3JuZXJzPC9saT4KICAgIDxsaT5Sb3RhdGU8L2xpPgogICAgPGxpPlNlbGljdGl2ZSBCbHVyPC9saT4KICAgIDxsaT5TbW9vdGg8L2xpPgogICAgPGxpPldhdGVybWFyazwvbGk+CiAgPC91bD4KPC9saT48YnIvPgo8bGk+U21hcnQgZGV0ZWN0aW9uIG9mIGltYWdlcy4gIFNwZWNpZnkgYWJzb2x1dGUgVVJMUywgYWJzb2x1dGUgcGF0aHMsIG9yIGZpbGVzIHJlbGF0aXZlIHRvIHlvdXIgcm9vdCBpbnN0YWxsYXRpb24uPC9saT4KPGxpPkF1dG9tYXRpYyBkb3dubG9hZGluZywgY2FjaGluZywgcHJvY2Vzc2luZywgYW5kIHJlLWNhY2hpbmcgb2YgaW1hZ2VzIGZyb20gcmVtb3RlIHdlYnNpdGVzLjwvbGk+CjxsaT5TbWFydCBhdXRvbWF0aWMgcmVzaXppbmcgKGF1dG9tYXRpY2FsbHkgcmVzaXplIHRvIGRlc2lyZWQgd2lkdGggYW5kIGhlaWdodCBiZWZvcmUgc2VydmluZyB0aGUgaW1hZ2UuLi4gcmVzaXppbmcgdG8gd2lkdGggQU5EIGhlaWdodCBkb2VzIGEgY3JvcCB0byBmaXQuIDxlbT4oanVzdCBzcGVjaWZ5IGEgd2lkdGgsIGFuZC9vciBoZWlnaHQgcGFyYW1ldGVyIHRvIHRoZSBDR1NtYXJ0SW1hZ2UgdGFnLik8L2VtPjwvbGk+CjxsaT5BdXRvbWF0aWNhbGx5IHJlYWRzIGltYWdlIEVYSUYgaW5mb3JtYXRpb24gYW5kIGNvcnJlY3RzIHRoZSBvcmllbnRhdGlvbi48L2xpPgo8bGk+SW1hZ2UgY2hhbmdlIGRldGVjdGlvbiwgaWYgdGhlIG1hc3RlciBpbWFnZSBpcyBjaGFuZ2VkIHNjYWxlZCBpbWFnZXMgd2lsbCBiZSByZWdlbmVyYXRlZC4gKHNlZSB0aGUgbm90aW1lY2hlY2sgcGFyYW1ldGVyIHRvIGRpc2FibGUgdGhpcyBiZWhhdmlvcikuPC9saT4KPGxpPlNtYXJ0IGF0dHJpYnV0ZSBnZW5lcmF0aW9uIGZvciBpbWFnZXMuPC9saT4KPGxpPlByb2Nlc3NlZCBpbWFnZXMgYXJlIGNhY2hlZCBvbiB0aGUgc2VydmVyIGZvciBmYXN0ZXIgc2VydmluZy48L2xJPgo8bGk+VGhlIGFiaWxpdHkgdG8gdXNlIGEgc2VwYXJhdGUgVVJMIChDRE4pIGZvciBzZXJ2aW5nIGltYWdlczwvbGk+CjxsaT5JbWFnZSBwcm9jZXNzZXMgY2FuIGJlIGNvbWJpbmVkLCBhbmQgYXJlIGV4ZWN1dGVkIGluIG9yZGVyLjwvbGk+CjxsaT5Qcm92aWRlcyB0aGUgYWJpbGl0eSB0byBlbWJlZCBpbWFnZXMgZGlyZWN0bHkgaW50byB0aGUgY29udGVudCBvZiB0aGUgd2ViIHBhZ2UgdG8gbWluaW1pemUgc3BhY2UuPC9saT4KPGxpPlByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIGxpbWl0IGVtYmVkZGluZyBpbWFnZXMgc21hcnRseSwgb25seSB0byBicm93c2VycyB0aGF0IGFyZSBjYXBhYmxlIG9mIHVuZGVyc3RhbmRpbmcgdGhlbS48L2xpPgo8bGk+Q29tYmluZSBjb21tb25seSB1c2VkIGFyZ3VtZW50cyBpbnRvIG5hbWVkIGFsaWFzZXMuPC9saT4KPGxpPkFsc28gd29ya3Mgd2l0aGluIHN0eWxlc2hlZXRzIHZpYSB0aGUge2Ntc19zdHlsZXNoZWV0fSB0YWcuPC9saT4KPGxpPlRoZSBhYmlsaXR5IHRvIGF1dG9tYXRpY2FsbHkgcHJvY2VzcyBpbWFnZXMgaW5zaWRlIGEgYmxvY2sgb2YgaHRtbCBjb2RlIHVzaW5nIHRoZSB7Y2dzaV9jb252ZXJ0fSBibG9jayB0YWcuPC9saT4KPGxpPlRoZSBhYmlsaXR5IHRvIGV4dHJhY3QgaW1hZ2VzIGZyb20gYSBibG9jayBvZiBodG1sIGNvZGUuPC9saT4KPGxpPk1vcmUuLi48L2xpPgo8L3VsPgo8aDM+V2h5IHNob3VsZCBJIHVzZSBpdD88L2gzPgo8cD5UaGVyZSBhcmUgZm91ciB2ZXJ5IGltcG9ydGFudCByZWFzb25zIHRvIHVzZSB0aGlzIHBsdWdpbjo8L3A+Cjx1bD4KICA8bGk+UGVyZm9ybWFuY2U6ICBVc2luZyBpbWFnZSBlbWJlZGRpbmcgKGV2ZW4gaWYgbm8gb3RoZXIgZnVuY3Rpb25zIGFyZSB1c2VkKSByZXN1bHRzIGluIGZld2VyIHJlcXVlc3RzLiAgTW9zdCBicm93c2VycyBvbmx5IHBlcmZvcm0gdHdvIHRvIGZvdXIgc2ltdWx0YW5lb3VzIHJlcXVlc3RzIHRvIHRoZSBzYW1lIGRvbWFpbiBhdCB0aGUgc2FtZSB0aW1lLiAgRm9yIHdlYiBwYWdlcyB3aXRoIGxvdHMgb2YgaW1hZ2VzIHRoaXMgY2FuIHNlcmlvdXNseSBzbG93IGRvd24geW91ciBzaXRlLjwvbGk+CiAgPGxpPlBlcmZvcm1hbmNlOiAgRXZlbiBpZiBub3QgdXNpbmcgZW1iZWRkaW5nLCBzZW5kaW5nIGxhcmdlIGltYWdlcyB0byB5b3VyIHZpc2l0b3JzLCBhbmQgYXNraW5nIHRoZWlyIGJyb3dzZXIgdG8gc2NhbGUgdGhlIGltYWdlIGlzIHZlcnkgdmVyeSBzbG93LjwvbGk+CiAgPGxpPlNlY3VyaXR5OiAgQ0dTbWFydEltYWdlIGNhY2hlcyBpdHMgaW1hZ2VzIGluIGEgc2VwYXJhdGUgZGlyZWN0b3J5LCB0aGVyZWJ5IGhpZGluZyB0aGUgb3JpZ2luYWwgKHBlcmhhcHMgY29weXJpZ2h0ZWQpIGltYWdlcyBmcm9tIHlvdXIgdXNlcnMuICBJZiBlbWJlZGRpbmcgaXMgdXNlZCB0aGV5IGNhbnQgZXZlbiBmaW5kIHRoZSBjYWNoZWQgbG9jYXRpb24pPC9saT4KICA8bGk+U2ltcGxpY2l0eTogIFRoZSBmaWx0ZXJpbmcgY2FwYWJpbGl0aWVzIG9mIENHU21hcnRJbWFnZSBhbGxvdyB5b3UgdG8gYXV0b21hdGljYWxseSBwcm9jZXNzIGltYWdlcyBmb3IgY29uc2lzdGVudCBhbmQgc2VjdXJlIGRpc3BsYXksIHdpdGhvdXQgc2l0ZSBlZGl0b3JzIGhhdmluZyB0byBwbGF5IHdpdGggdGhlbS4gIFRoZXkgY2FuIHVwbG9hZCBsYXJnZXIgaW1hZ2VzLCBhbmQgeW91ciBzaXRlIHdpbGwganVzdCBoYW5kbGUgdGhlbSBwcm9wZXJseS48L2xpPgo8L3VsPgo8aDM+SW1hZ2UgRW1iZWRkaW5nPC9oMz4KICA8cD5JbWFnZSBlbWJlZGRpbmcgZW5jb2RlcyB0aGUgaW1hZ2UgaW50byBhIGRhdGEgdXJpIHdoaWNoIGlzIGVtYmVkZGVkIGRpcmVjdGx5IGluIHRoZSBwYWdlIChvciBzdHlsZXNoZWV0KSBjb250ZW50LiAgVGhpcyByZWR1Y2VzIHJlcXVlc3RzIHRoYXQgdGhlIGJyb3dzZXIgbXVzdCBtYWtlIHRvIHJlY2VpdmUgaW1hZ2VzIGZyb20geW91ciBzaXRlLiAgSG93ZXZlciBpdCBkb2VzIGluY3JlYXNlIHRoZSBzaXplIG9mIHRoZSBIVE1MIHBhZ2UuICBPbiBpbWFnZSBoZWF2eSBwYWdlcyB5b3Ugc2hvdWxkZCBtaXggdGhlIHVzZSBvZiBlbWJlZGRlZCBpbWFnZXMuPC9wPgo8aDM+SG93IGRvIEkgdXNlIGl0PzwvaDM+CjxwPlRoZSBzaW1wbGVzdCB3YXkgdG8gdXNlIHRoaXMgbW9kdWxlIGlzIHRvIHVzZSBpdCBpbiB0aGUgc2FtZSBwbGFjZSB5b3Ugd291bGQgdGhlIHtpbWFnZX0gdGFnLiAgSS5lOiBTb21ldGhpbmcgbGlrZSA8Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Q0dTbWFydEltYWdlIHNyYz0ndXBsb2Fkcy9pbWFnZXMvcGljdHVyZS5qcGcnfTwvY29kZT4uICBUaGlzIHdpbGwgZ2VuZXJhdGUgdGhlIGltYWdlIHRhZyBmb3IgeW91IHdpdGggbm8gcHJvY2Vzc2luZy4gIEFuZCBpZiBwb3NzaWJsZSwgZW1iZWQgdGhlIGltYWdlIGRpcmVjdGx5IGludG8geW91ciBodG1sIG91dHB1dC48L3A+CjxwPk9mdGVuIHBlb3BsZSB3YW50IHRvIGRpc3BsYXkgYSB3YXRlcm1hcmsgb24gdGhlIGltYWdlcyB0aGF0IHRoZXkgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQgdG8gcHJldmVudCBpbWFnZSB0aGVmdC4gIFRoZSBDR0V4dGVuc2lvbnMgbW9kdWxlIHByb3ZpZGVzIHNldHRpbmdzIGZvciB5b3UgdG8gY29uZmlndXJlIHdhdGVybWFya2luZyBhbmQgeW91IGNhbiBlbmFibGUgdGhhdCB3aXRoIGFueSBpbWFnZSB3aXRoIGEgdGFnIGxpa2UgdGhpczogPGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e0NHU21hcnRJbWFnZSBzcmM9J3VwbG9hZHMvaW1hZ2VzL3BpY3R1cmUuanBnJyBmaWx0ZXJfd2F0ZXJtYXJrPTF9PC9jb2RlPi4gIFRoaXMgd2lsbCByZWFkIHRoZSBpbWFnZSwgYXBwbHkgdGhlIHdhdGVybWFyayBhY2NvcmRpbmcgdG8gdGhlIHNldHRpbmdzIGluIENHRXh0ZW5zaW9ucywgY2FjaGUgdGhlIGFsdGVyZWQgaW1hZ2UsIGFuZCB0aGVuIGVtYmVkIGl0IGludG8geW91ciBvdXRwdXQuPC9wPgo8cD5BbHNvLCBQaWN0dXJlcyB0YWtlbiBieSBtb2Rlcm4gZGlnaXRhbCBjYW1lcmFzIGFyZSBvZnRlbiB0b28gbGFyZ2UgZm9yIHVzZSBvbiBhIHdlYnNpdGUsIHRoZXJlZm9yZSB0aGV5IG5lZWQgdG8gYmUgc2NhbGVkIGJlZm9yZSBkaXNwbGF5ZWQgb24geW91ciBwYWdlLiAgVGhpcyBjYW4gYmUgZG9uZSBxdWl0ZSBlYXNpbHkgd2l0aCBhIHRhZyBsaWtlOiA8Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Q0dTbWFydEltYWdlIHNyYz0ndXBsb2Fkcy9pbWFnZXMvcGljdHVyZS5qcGcnIGZpbHRlcl93YXRlcm1hcms9MSBmaWx0ZXJfcmVzaXplPSd3LDM1MCd9PC9jb2RlPi4gIEFzIHlvdSBtYXkgdGhpbmssIHRoZSB3YXRlcm1hcmsgd2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBpbWFnZSBiZWZvcmUgaXQgaXMgcmVzaXplZCB0byBhIG1heGltdW0gd2lkdGggb2YgMzAwIHBpeGVscyAocmV0YWluaW5nIGFzcGVjdCByYXRpbykuICBUaGVuIHRoZSBhZGp1c3RlZCBpbWFnZSB3aWxsIGJlIGNhY2hlZCwgYW5kIGlmIHRoZSBicm93c2VyIGFsbG93ZXMgdGhlIGltYWdlIHdpbGwgYmUgZW1iZWRkZWQgaW50byB0aGUgSFRNTCBvdXRwdXQuICBJZiBlbWJlZGRpbmcgaXMgbm90IHBvc3NpYmxlLCB0aGUgaW1nIHRhZyB3aWxsIGNvbnRhaW4gdGhlIFVSTCB0byB0aGUgY2FjaGVkIGltYWdlLjwvcD4KPHA+RnJvbSBoZXJlIHlvdSBjYW4gY29tYmluZSB0aGUgb3B0aW9ucyBiZWxvdyB0byBwZXJmb3JtIGFsb3Qgb2YgZGlmZmVyZW50IGVmZmVjdHMgdG8geW91ciBpbWFnZXMsIGJ1aWxkIHNpbXBsZSBnYWxsZXJpZXMsIGFuZCBpbXByb3ZlIHlvdXIgc2l0ZSBwZXJmb3JtYW5jZSBhdCB0aGUgc2FtZSB0aW1lLiAgRW5qb3khPC9wPgo8aDM+QXV0b21hdGljIGltYWdlIHJlc2l6aW5nPC9oMz4KICA8cD5JZiB5b3Ugc3BlY2lmeSBhIHdpZHRoLCBhbmQvb3IgYSBoZWlnaHQgcGFyYW1ldGVyLCBhbmQgZG8gbm90IHNwZWNpZnkgdGhlICZxdW90O25vYXV0b3NjYWxlJnF1b3Q7IHBhcmFtZXRlciwgdGhlIG1vZHVsZSB3aWxsIGFuYWx5emUgdGhlIGZpbHRlcnMgeW91IGhhdmUgYWxyZWFkeSBzcGVjaWZpZWQsIGFuZCBpZiB0aGVyZSBpcyBubyByZXNpemUgZmlsdGVyIGFscmVhZHkgc3BlY2lmaWVkIGF1dG9tYXRpY2FsbHkgYWRkIGEgZmlsdGVyIHRvIHJlc2l6ZSBvciBjcm9wdG9maXQgdGhlIGltYWdlIG9uIG91dHB1dC4gIFRoaXMgaXMgdXNlZnVsIHRvIGRvIGF1dG9tYXRpYyB0aHVtYm5haWxpbmcgb24gdGhlIHNlcnZlciwgYW5kIG5vdCByZXF1aXJlIHRoZSBicm93c2VyIHRvIHJlc2l6ZSB0aGUgaW1hZ2UuPC9wPgogIDxwPkNHU21hcnRJbWFnZSB3aWxsIG5vcm1hbGx5IGF1dG9tYXRpY2FsbHkgZmlsbCB0aGUgd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIG9mIHRoZSBnZW5lcmF0ZWQgaW1nIHRhZyB3aXRoIHRoZSBzaXplIG9mIHRoZSBpbWFnZSBnZW5lcmF0ZWQgZnJvbSB0aGUgbGFzdCBmaWx0ZXIuICB0aGUgbm9hdXRvIHBhcmFtZXRlciBjYW4gcHJldmVudCB0aGlzLjwvcD4KICA8cD48c3Ryb25nIHN0eWxlPSJjb2xvcjogYmx1ZTsiPlRpcDo8L3N0cm9uZz4gSXQgaXMgbm9ybWFsbHkgY291bnRlci1wcm9kdWN0aXZlIHRvIHNwZWNpZnkgYm90aCBhIHJlc2l6ZS9jcm9wIGZpbHRlciwgQU5EIGEgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZSB1bmxlc3MgeW91IHdhbnQgdG8gYWJzb2x1dGVseSBjb250cm9sIHRoZSB2YWx1ZXMgb2YgdGhlIHdpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvbiB0aGUgaW1nIHRhZy4gIEluIHdoaWNoIGNhc2UgeW91IHNob3VsZCB1c2UgdGhlIG5vYXV0byBwYXJhbWV0ZXIgaW4gdGhlIGNhbGwgdG8gQ0dTbWFydEltYWdlLjwvcD4KIDxoMz5BIFNpbXBsZSBHYWxsZXJ5PC9oMz4KPHA+VGhlIGNvZGUgYmVsb3cgdXNlcyB0aGUge0NHU21hcnRJbWFnZX0gbW9kdWxlLCBmYW5jeWJveCwgYW5kIGEgYml0IG9mIHNtYXJ0eSBtYWdpYyB0byBnZW5lcmF0ZSBhIHNpbXBsZSBsaWdodGJveCBzdHlsZSBhbGJvbSBmcm9tIGEgc3ViZGlyZWN0b3J5IG9uIHlvdXIgd2Vic2l0ZSwgd2hpbGUgcHJvY2Vzc2luZyB0aGUgaW1hZ2VzIGZvciB3ZWIgc3RhbmRhcmRzLCBhbmQgY3JlYXRpbmcgdGh1bWJuYWlscy48L3A+CjxwcmUgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNkZGQ7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyI+PGNvZGU+PHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4gMTo8L3NwYW4+ICZsdDtzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiZndDt7bGl0ZXJhbH0KPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4gMjo8L3NwYW4+IGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4gMzo8L3NwYW4+ICBqUXVlcnkoJ2EuZmFuY3lib3gnKS5mYW5jeWJveCgpOwo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiA0Ojwvc3Bhbj4gfSk7CjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDU6PC9zcGFuPiB7L2xpdGVyYWx9Jmx0Oy9zY3JpcHQmZ3Q7CjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDY6PC9zcGFuPiB7YXNzaWduIHZhcj0nZmlsZXMnIHZhbHVlPSd1cGxvYWRzL2FsYnVtLyouanBnJ3xnbG9ifQo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiA3Ojwvc3Bhbj4ge2lmIGNvdW50KCRmaWxlcyl9CjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDg6PC9zcGFuPiAmbHQ7ZGl2IHN0eWxlPSJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxNTBweDsgb3ZlcmZsb3c6IGF1dG87IiZndDsKPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4gOTo8L3NwYW4+IHtmb3JlYWNoIGZyb209JGZpbGVzIGl0ZW09J2ZpbGUnfQo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPjEwOjwvc3Bhbj4gICZsdDthIHJlbD0nc2ltcGxlX2FsYnVtJyBjbGFzcz0iZmFuY3lib3giIGhyZWY9IjxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntDR1NtYXJ0SW1hZ2Ugc3JjPSRmaWxlIGZpbHRlcl9yb3RhdGU9OTAgZmlsdGVyX3dhdGVybWFyaz0xIGZpbHRlcl9yZXNpemU9J2gsNTAwJyBub3RhZz0xIG5vZW1iZWQ9MX08L3NwYW4+IiZndDsKPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4xMTo8L3NwYW4+ICA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Q0dTbWFydEltYWdlIHNyYz0kZmlsZSBmaWx0ZXJfcm90YXRlPTkwIGZpbHRlcl9ncmF5c2NhbGU9MSBmaWx0ZXJfd2F0ZXJtYXJrPTEgZmlsdGVyX3Jlc2l6ZT0naCwxNTAnfTwvc3Bhbj4KPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4xMjo8L3NwYW4+ICAmbHQ7L2EmZ3Q7CjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+MTM6PC9zcGFuPiB7L2ZvcmVhY2h9CjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+MTQ6PC9zcGFuPiAmbHQ7L2RpdiZndDsKPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4xNTo8L3NwYW4+IHsvaWZ9CjwvY29kZT48L3ByZT48YnIvPgo8cD5MZXRzIHRhbGsgYWJvdXQgdGhpcy48L3A+CjxwPkxpbmVzIDEgdGhyb3VnaCA1IHV0aWxpemUgalF1ZXJ5IHRvIGNhbGwgZmFuY3lib3ggb24gYW55IGxpbmtzIHRoYXQgaGF2ZSB0aGUgJnF1b3Q7ZmFuY3lib3gmcXVvdDsgY2xhc3MuICBUaGUgZmFuY3lib3ggalF1ZXJ5IHBsdWdpbiBpcyBpbmNsdWRlZCB3aXRoIHRoZSBKUXVlcnlUb29scyBtb2R1bGUuPC9wPgo8cD5MaW5lIDYgdXNlcyBhIGJ1aWx0IGluIHBocCBmdW5jdGlvbiBjYWxsZWQgZ2xvYiwgYW5kIHNvbWUgc21hcnR5IG1hZ2ljIHRvIGZpbmQgYWxsIG9mIHRoZSBKUEcgZmlsZXMgaW4gdGhlIHVwbG9hZHMvYWxidW0gZGlyZWN0b3J5IGJlbG93IG91ciBpbnN0YWxsYXRpb24gcm9vdC48L3A+CjxwPkxpbmUgNyBpcyBhIHRlc3QgdG8gc2VlIGlmIGFueSBmaWxlcyB3ZXJlIGFjdHVhbGx5IGZvdW5kIGluIHRoZSBhc3NpZ24gbGluZSBzdGF0ZWQgYWJvdmUuICBUaGlzIGlmIHN0YXRlbWVudCBpcyBjbG9zZWQgb24gbGluZSAxNS48L3A+CjxwPkxpbmUgOCBvcGVucyB1cCBhIGRpdiB0byBjb250YWluIG91ciBhbGJ1bS4gIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBleGFtcGxlIHRoZSBzdHlsZXMgd2VyZSBpbmNsdWRlZCBpbmxpbmUsIGhvd2V2ZXIgYSBjbGFzcyB0aGF0IHdhcyBkZWZpbmVkIGluIHRoZSBzdHlsZXNoZWV0IHNob3VsZCBiZSB1c2VkIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzLiAgVGhlIGNsb3NpbmcgdGFnIGZvciB0aGlzIGRpdiBpcyBvbiBsaW5lIDE0LCBqdXN0IGJlZm9yZSB0aGUgPGNvZGU+ey9pZn08L2NvZGU+LjwvcD4KPHA+TGluZSA5IGJlZ2lucyBhIGxvb3AgdGhyb3VnaCBhbGwgb2YgdGhlIGZpbGVzIHRoYXQgd2UgZm91bmQgaW4gdGhlIGRpcmVjdG9yeS4gIFRoaXMgbG9vcCBpcyBjbG9zZWQgb24gbGluZSAxMy48L3A+PGJyLz4KPHA+TGluZXMgMTAgYW5kIDExIGFyZSB0aGUgcmVhbCBtYWdpYy4gIEhlcmUgd2UgY3JlYXRlIGEgbGluayB3aXRoIGNsYXNzICZxdW90O2ZhbmN5Ym94JnF1b3Q7IGFuZCBhZGRzIHRoZSA8Y29kZT5yZWw8L2NvZGU+IGF0dHJpYnV0ZSBzbyB0aGF0IGZhbmN5Ym94IGtub3dzIHRoYXQgYWxsIG9mIHRoZXNlIGltYWdlcyBzaG91bGQgYmUgZ3JvdXBlZCB0b2dldGhlciBhcyBvbmUgYWxidW0gYW5kIGFsbG93IGNsaWNraW5nIGJldHdlZW4gdGhlIGltYWdlcy4gIFRoZW4gY29tZXMgdGhlIHBhcnQgd2hlcmUgd2UgZGVmaW5lIG91ciBpbWFnZXMuCjxwPldlIHN1cHBseSB0aGUgJGZpbGUgdmFyaWFibGUgdG8gdGhlIHNyYyBhcmd1bWVudCBvZiB0aGUgPGNvZGU+e0NHU21hcnRJbWFnZX08L2NvZGU+IHRhZyBzbyB0aGF0IGl0IHdpbGwgZ2V0IHRoZSBuYW1lIG9mIGVhY2ggbWF0Y2hlZCBqcGVnIGFzIHRoZSBsb29wIGlzIGV4ZWN1dGVkLjwvcD4KPHA+VGhlIGltYWdlcyBJIHdhcyB0ZXN0aW5nIHdpdGggd2VyZSB1cGxvYWRlZCBmcm9tIG15IGlwb2QsIGFuZCBhbGwgc2VlbWVkIHRvIGJlIHJvdGF0ZWQgOTAgZGVncmVlcyBjb3VudGVyIGNsb2NrZWlzLiAgU28gdGhlIGZpcnN0IGZpbHRlciBJIGFkZGVkIHdhcyB0byByb3RhdGUgdGhlIGltYWdlIDkwIGRlZ3JlZXMgY2xvY2t3aXNlIHZpYSB0aGUgPGNvZGU+ZmlsdGVyX3JvdGF0ZT05MDwvY29kZT4gYXJndW1lbnQuIFRoZSBpbWFnZXMgdGhlbiBuZWVkZWQgdG8gaGF2ZSB0aGUgd2F0ZXJtYXJrIG9uIHRoZW0gPGVtPih0aGlzIGlzIGp1c3QgZm9yIGV4YW1wbGUgcHVycG9zZXMsIEkgZG9udCB0aGluayBhbnlib2R5IHdvdWxkIHJlYWxseSBzdGVhbCB0aGUgYmx1cnJ5IHBpY3R1cmVzIGZyb20gbXkgaXBvZCBmb3IgY29tbWVyY2lhbCBwdXJwb3Nlcyk8L2VtPiwgc28gSSBhZGRlZCB0aGUgPGNvZGU+ZmlsdGVyX3dhdGVybWFyaz0xPC9jb2RlPiBwYXJhbWV0ZXIuICBBbmQgZmluYWxseSwgYmVjYXVzZSBldmVuIHRoZSBpcG9kIHRvdWNoIGNhbiB0YWtlIHBpY3R1cmVzIHRoYXQgYXJlIHRvbyBiaWcgdG8gZGlzcGxheSBvbiB0aGUgc2NyZWVuIEkgd2FudGVkIHRvIHJlc2l6ZSB0aGVtIHRvIGEgbWF4aW11bSBoZWlnaHQgb2YgNTAwIHBpeGVscy4gIFRoaXMgd2FzIGFjY29tcGxpc2hlZCB2aWEgdGhlIDxjb2RlPmZpbHRlcl9yZXNpemU9aCw1MDA8L2NvZGU+IGFyZ3VtZW50LiAgV2UgYWRkIHRoZSA8Y29kZT5ub2VtYmVkPTE8L2NvZGU+IGFyZ3VtZW50IGJlY2F1c2UgZmFuY3lib3ggZG9lcyBub3QgdW5kZXJzdGFuZCBob3cgdG8gZGlzcGxheSBlbWJlZGRlZCBpbWFnZXMgaW4gaXRzIHBvcHVwIHdpbmRvdy4gIFRoaXMgZGVmaW5lZCB0aGUgaW1hZ2UgdGhhdCB3ZSB3ZXJlIGdvaW5nIHRvIGxpbmsgdG8uPC9wPgo8cD5OZXh0IHdlIG5lZWRlZCB0byBkZWZpbmUgdGhlIHRodW1ibmFpbCBpbWFnZSB0aGF0IHdlIGFyZSBnb2luZyB0byB1c2UgaW4gdGhlIGdhbGxlcnkuICBUaGlzIGNhbGwgdG8gPGNvZGU+e0NHU21hcnRJbWFnZX08L2NvZGU+IGlzIGFsbW9zdCBpZGVudGljYWwgdG8gdGhlIGZpcnN0IGNhbGwsIGV4Y2VwdCB0aGF0IHdlIHVzZSBhIGRpZmZlcmVudCBoZWlnaHQgdmFsdWUgKDE1MCBwaXhlbHMpIGZvciB0aGUgdGh1bWJuYWlsLCBhbmQgZm9yIGtpY2tzIEkgY29udmVydGVkIHRoZSB0aHVtYm5haWwgdG8gZ3JheXNjYWxlIDxzdHJvbmc+YmVmb3JlPC9zdHJvbmc+IGFwcGx5aW5nIHRoZSB3YXRlcm1hcmsuICBJIGFsc28gcmVtb3ZlZCB0aGUgbm9lbWJlZD0xIGFyZ3VtZW50IHNvIHRoYXQgdGhlIHN5c3RlbSBjb3VsZCBlbWJlZCB0aGUgaW1hZ2UgaW4gdGhlIEhUTUwgb3V0cHV0IGlmIHRoZSBicm93c2VyIHN1cHBvcnRlZCBpdC4gIFRoZSBzY3JlZW4gY2FwdHVyZSBiZWxvdyBzaG93cyB0aGUgZWZmZWN0LjwvcD4KPGltZyBzcmM9ImRhdGE6aW1hZ2UvanBlZztiYXNlNjQsLzlqLzRBQVFTa1pKUmdBQkFRRUFZQUJnQUFELzJ3QkRBQWdHQmdjR0JRZ0hCd2NKQ1FnS0RCUU5EQXNMREJrU0V3OFVIUm9mSGgwYUhCd2dKQzRuSUNJc0l4d2NLRGNwTERBeE5EUTBIeWM1UFRneVBDNHpOREwvMndCREFRa0pDUXdMREJnTkRSZ3lJUndoTWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qTC93QUFSQ0FDaEFmQURBU0lBQWhFQkF4RUIvOFFBSEFBQUFRUURBUUFBQUFBQUFBQUFBQUFBQUFRRkJnY0JBZ01JLzhRQVVCQUFBZ0VEQWdNRUJ3UUdCd1FJQlFVQUFRSURBQVFSQlNFR0VqRVRRVkZoQnhRaWNZR1JzU015b2RFVk0wSlNrc0VXSlRSaWNuUHdKRldDNFJjMlExTldnNkx4SmpWRVk3SmtrN1BDMHYvRUFCZ0JBUUVCQVFFQUFBQUFBQUFBQUFBQUFBQUJBZ01FLzhRQUl4RUJBUUFDQWdNQUFnSURBQUFBQUFBQUFBRUNFU0V4QXhKQkV5SWpRbEZoa2YvYUFBd0RBUUFDRVFNUkFEOEF0Zlc5VnViSzcwK3hza2c5WnZwR1ZaTGduczBDakp5QnVUNEN0THZWTG5UTEZZOVF2Tk1pMUdaK1dESWNSdU1nZE56bmY2VjA0aGswWDFhS0RXd3ZZeU1lUm1Wc0t3NytaZnVuenFKM01sMUp3dElIa3VKck5OV2dXeW11QWUwZUxtSFhPNUdlaE5CTkxyWE5Lc1pIanV0UXQ0WFJ3aks3NElZak9NZTRnMXRIcldseTN3c285UXRudVdHUkVzZ0pPMmR2aFRGRkRISnhMeGd6eHF4N0dOUVdYTzNaSGI4QlRYREVxY0o4RnVzWVZ4ZVFISVhCMzVzL09nbGI4UzZKSE8wTW1xV3FTcTVqWldmQkREWWcrRmM1OVN1RTR0c2RPUms5V25zNVptOW5KTEtSakI4S2k5cnFlbVcybjhTV2QyQkpjVDMxd0VnRVJacGM3QURBOGZsU3F6aXVOTDFuaGM2aHpvdzA1N1ZwQ0NRSlNSaFNlNDBFbW0xM1NiYTk5VG0xRzJqdU1nZG0wZ0JCUGNmQSsrbkNxNHNrZ2owZTUwYlZ0UWUxdVpKWFdlM05pSGVRczJ6cTJNdG5JT2U2ckJ0b1JaMlVVRFNzNnd4aERJL1VoUmpKK1ZBMlhldkphOFMyV2tsY2lkQ1hrL2NZL2NIeDVXL0NqOUpYUDlMcE5OeW5xeTZmNndCeTc4L1BqcjRZN3Fpeng2dnErbWFscVZycDBiQzduRnpienRjY3Jvc1I5Z0JNYjlEMzc4MU9WcnFNVjF4ZFphaXdaSWRRMG9KRXhVNE1uTVNVejNFWU5BczRiNHB0ZFIweXpXK3Y3VWFsTUd6RUNGSlBNUUJqeHdCdFQ3SGVXMDF4Y1c4Y3lOTmI0N1pCMVRJeU0vQ3E3dDdpenVmUjdEbzBjYlNhcy82cUVRdHpxNWZLdm5Hd3h2bk5QZHZmdzZMeE5yYTZnN3E5ekhBMEdJMmJ0aUkrVTh1QnVjOTFCSVAwN3BRdG83azZoYmlHVkdkSExZREtwd3hIdUpBcm1lSk5FV0tLUTZyYUJKU1FoN1FiL2w4YWgyZ1JoMjRNRWlCZ0k3dHNNTTRJSklOTEJieGZvM2pyN0ZQMTBtUFlIZEhrZmp2UVRrSEl5RGtHaWtPaWtuUWRPSnpuMVdMT2Y4QXBkUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRlJsdURyZmw1Rm1Fa1lVS29tVmlRQVA3cktQd3FUVVZaZEpac3dhTndwYmFQZmV1TGNTeVNCWkVST2lJcmxTUUFjbjlnZFNhZjZLS2lpanJSUlFGRkh3b3g1VUNEUzlMVFN4ZGlPVjVQV2JsN2x1WUFjcGJHUU1kMjFMNk1lVkdENFVCaytORkdENEdqQjhEUUZGR0Q0R3M0UGdhREdUUm1zNFBnYXhnK0JvQ2lpajRVQlJSOEtQaFFGRkdQS2pIbFFGRkdENEdqQjhEUUZGR0Q0R2pCOERRRkZad2ZBMWpCOERRRkZGRkFVVVVVQlJSUlFGRkZGQVVVWVBnYVBoUUZGRkdDVGpHOUFVVm5rYjkxdmxSeXQrNjN5b01VVm5sYjkxdmxSZytCK1ZCaWlqQjhLenl0KzZmbFFZb3JKVWpxQ1BlS0FySG9wUHdvTVVWbmxiOTF2bFFWWWRWSStGQmlpczRQZ2ZsUUFUMEJQdUZCaWlzOGpmdU44alJ5UDhBdU44cURGRlpLc09xa2U4VWNqZnVOOHFERkZaNUcvY2I1VWNqL3VOOGpRWW9yUEkzN3JmS2psYjkxdmxRWW9yUEszN3ArVkFCUFFFKzRVR0tLenl0KzYzeXJGQVVVVVVEYnFURVN4NEpHeDZlK2tYTzM3emZPbG1xZnJZLzhKK3ROK2Q4VUc1a1lrKzAzenJIT3gvYWI1MXBuZXRTYURjeVBuN3pmTTF6WjN4c3pmTTBaTmMzb01tUi93Qjl2NGpYTXlQL0FONC96TllKclVuem9NTkpKKyszOFJyaThrbS8yai94R3QySnBPMjFCaHA1Zis4ZitJMTM0UjFBNmtZN2oyaDlzeVlMRTdDa0x0djF4WEhnZWRvV2dqeHpDUytrUWtkQjFOQk03eDJGM0o3UndDTnMrVmNDN2Q3SDUxMXZ2N1pKOFBwU1ZqNDBHNWRzZmZiNTBkby9lemZPdE01ckdmSHJRYkYyL2ViNTFvWkh6OTl2bWF4ekFISFN1Yk1EMzBHV2tjZnR0L0VhME1yL0FMNy9BTVJyUm0zclFuRkJzWlpNZ2M3ZnhHdVR6U0Q5dC80alFXM3JpNW9OWG1rQTJsZitJMDZjTXlNK3F5Z3U3QVFucVNmMmhUTEtkczA2OEtIT3JULzVQWC9pRkE0TkkyVDdSNm52ckhhc1AybStkSTN1VkR2bnhJcm1idFIzaWdjUk0zVG1iNTFudFcvZmI1MDBIVVkxSkhPdVI0bXViNnFtTm5YK0lVRDBaM0RZTEhHT3Vhd2J2bDZzZm5VTjFEaXExc2NtYWRWeDNjMU00OUllbHpTZG42eUFmTnFDZjNlc3JicVR6a251cVAzbkZGd1NRa2hIdXFOWFhFbHM4cVptVHMzMkQ4Mnc5OUk1TlJzWkVrY1gwYWhja3NQTHo4YUNRVyt1NnJxbHpMYTZkSUpab3dESnpQeXJHUE0rUGwxcDFnL1NmTk90NXEwa1RRNExkaUFGSG1jNXFzTFRpNmJoSkI2dEg2Mjl5ck9zemV5RC9lL0dtSFV1SmVJYnE2YVNTUzVSZ1FTZTdJNkhwUVh4eFJxVjdvY1ZyY1djc3pxVVZtU1lobGtCeHZ0dm1sM0ZGeTdlanZVWjFMSS9acVJna0ZmYlRiTmVmaHhWeE5xTjNIYzNkOWUzMHcyN05sMktnNUhkajhLdDV0UnZOVTlDbXEzVjdEMk53U1F5azV4aDAvR2dxbWE4dWhxOHlpOXVWUmxCR0pteHQ4YWM5T3ZiaU8vUXRlM1BJUmc4MHJIYy9HbUo1UStwMjVZYzNQRVJ2MUdLY1ltQ1R4dHlIUGZnWnpRTGRldXJ2OUpXMGtkNWNzblo0L1hNTndUNEdyRDBLR2E2dHJLZHBwc1BHckgyejRlK3EwMVFubGd3Q0FHSXF6dUNwdTA0ZXRYTytFNUNlYk80UC9PZ2w4enhpR09GcENDNTVWRys1eG5yOEtyN2l5MmtpMC9VcFV2cnFQN0Y4eGlUQUpXUlFNRHJqR2M3OWNWTjdtem51UmJzc1RrSk1zZ0lIVWpPS1lPTDlOZHJhZU5ZcGhQTGJ5b2lJbzl0aHlsVjNCUGVlbUtCcjlEZHhKSmZhcmJ6eVN5RXdDUlM3bHNkeEc1ODZldUk3Q3d1dE9udW5FZ3ZZTGRsaWxFN3JnRGZvRGp4NmltRDBWVzkzWTZ6ckVNa2IyODZXV01TajdqYzNlS2JOVnQrSkZ0bmU1MTd0b1NwTHhwYmdBand6M1VEWHBkbGRhdnFNS0c0dUpJNG9KSkdnYTRkTzFiS3FNa0hvTTVwOHMzL0FLTm00anU3cTVnZ2VSV1FjN1N0SjdJSlVFOXdPZmNNWjhhamVnYXVOSzErMEZ4SWtjRXNVcVNPN1lDNDVXQno4S2MrT0xSTG8yZXEyYzRsdCtUc25NVzR4elpEZWVjNCtWQnBxWEZrcGRoYnp5eFlKNUZXUnVZZkhwMThxZS9TVmQzSTlISENjeXpUUnl5TXBjcktRVDlqM2tIZW9CeVc0a2hjTzZCVHpNcnNEeU40NXg1RDNWT3ZTU0RKNk5PRDhra2twa25yK3BvS3B1YjYrVlZZWHQwTjkvdDMvT3U5dHFWN2xWTjdja2Y1Ny9uU2ZVRVQxSXlJMlNrbksrRDBOYlIyRjR1blI2aTF2SjZtOG5ack1SN0pZZFJueG9IMjExYlU3UU85dHFWMUU3cVZibGxKeXA3dHpUZGMzOTZja1h0MXpaSFNkdC94b2lsSFlEZnAxcEhka05idG5CM0hYdW9GMXJkYWdDNlMzTjJ1M1JwbjIvR3NUWGw0dUN0N2MrWDI3Zm5TZlFWU1c1WlpXazdJSnpQeUFGZ01qcG5yVzk4cUxJNWg1K3k1anlsOFp4NTRvTzl0cU4ramh4ZTNJS25LbnRXMlBkMzFLUmRTWHNTWDBOeE9nZmFXTlpYNVk1UjFVYjlEOTRlOGp1cUZwSUF1TnMrZFBYRCtwUjJGOGUzYVFXY3c1WmtYdzdtSG1wM3gzamJ2b0piYVQzTURSU3RjVEVnL3RTc2ZQeHFWZW1hM3VINFNzYnkxbWxSdTFSV2FOeXZWV0k2ZWRkN1BoeURWRWlUblZaY1lZajl2d09mZGlzOGN6VDNHZzIvRHJXcnRjQ05KdTFaaCt5U3VBUEVqdm9LYTRVOWZIRjJqYzk1Y2xQWG9ReXRPeHlPY2RSbXZVeDZtcVE0VzRXZ2gxcXdsdVVuV2VPNFIxVm1DNElZSGNZL25WMzBCUlJSUU5XcmZyWXY4Sit0TjJhY2RXL1d4ZjRUOWFiR29NazcxcnpZckRIRytEVEZ4SnhISG9Ob3Nra0x1SHlBeTR3TVVENHppdVprcXBYOUs5N0hKL1o3UngwM0xDbE5oNlc0VElWMUd6Q29UczBCSkkrQm9MTkxkOWFNeHgwMnFQYWZ4bG91b1JLNlhxS3pmc05ubUh3cGIrbk5Oei9iSS9rZnlvSEVuYXVEMFEzVVYxRUpZSkJJaEpBSTI2VmlRMENWenZrK05MT0EySHF5c2VrbDNLVWI5NFo2anlwajExK1RUanV3VnBFVnNISHNsZ0NLa3ZES0JKcmVOUmhWa09CNGJVRDNxRzE1SjhQcFNVbWxWL3dEMnlUNGZTa2hvTlFhNVRUaUNKNUNDUWd6Z2RUWFR2NlZGT05kVEZwcGd0UktZM3VUeWxobk9QRGJ4b0dEV1BTUlBiM1VpMmxxQkd1MzIzWFBmMHBGSDZWSlN5bVN5ajVNKzFnNzRxS1gxdkQyVE1IK1lKTk1raW9pZmZHZmVhQzdkTjQzMG5VNVk0bzNaSkh6a1BzRjI4YWtDeUxJb1pHREE5Q0RYbStHNEViNUVwVStJcXp1QmVKUk5ielIzMTZBc1NoWTFPZm5RV0VhNU9heWtpU0lyb1FWWUFnanZyVitsQW5rTzFMdURIZVhpTytMT2VSSUFpcC94REpwQkowcFp3Ui8xajFMYmZzeC8rUW9FTTl5M2F2diswZnJYQXp1M2ZUaFBhcUpYL3dBUjd2T3VZdG96MXo4cUNCYSs1L1M4cDcrVmZwVVkxaldVMCtFcXBCbVlZVWVGVFRpQzJSZFlsQUhSRjd2S3FnMTZacE5UbXljNFlnZVZBaW51NVo1R2VTUWxqMXJnSkNEMTNwVlk2WlBmdjdJS29PckduKzM0YnQwQTdUTEh6b0krbDBWWEJZOGdPU3RTZlRlSzJzYlUyNWdXYTFBNWxWa0I1VDQwb1RodXhkZDQrdmhXMDNDVFcxbExOYlB6RURtS040ZUZaeXk5WGJ3K0w4bVYzeEREZlR5YW5jK3NGRVJUOTFSc0FPK24yMGprRTBiWEhLMEl4ektpNEpIaG51cUx4eXlKY01IWGx3U0NuY0ttZHVCSXFNQ01FQ3RPVjR2QjMxS2ZScDlNU0xTOU1tdGJ6SUx5eXo5b3BYdkhMVXYwZEpuOUNHc0pJVVp6TzRIS3ZLTWMwZFFSVXd3cWYyUTVmUXByQkgvZnNmOEExeDBSVjgybjhpVzBqU3hRaEhHV2Q5c0hHTnhtbEN1T2JsNXdXVW5KNWVsS05UVHR0RGxueGdSY3JiZVJ4dlNPRWMvM1FjQUtUZ2JETzlBdG5pZ2xqTDNJa1pZL2JRSTJNdDVudUZTclN0WTFDMzRhZ3NyQmt0bWVjekNTUk1xdURqQkozT2RzWTI2MXJvME9uYVRiUjZqcU1DWERTWTdPMUs4d09QMmlPOCsvYXBOeFhiYVhybHZwNXRkU2d0Sm9NUnNnUXFGWE9jQUFiWThLQ1RhUk5mWEhBS2FoZXhPTlFlMzl1TU5sY2c0eWc3Z1J2U1RqRFNVMU9RYWZFcFNOY1o1Q1FGQlU5UU80Ny9oV3FjWTZUbzl0RHBjVjNCSXFRQkZEQnRnUElDbXZXT0pyUzc3U1MxdlNIbFRKZUZDck5nYlpQZGpmNTBEYjZPckNiUytJTHBHRWZhUEU2R0RtdzRRT0NHSTZZUHozNlVsMXlXZTdubHRvTlBta2Nkb2dWY0RiZjZiVXE0SG5zOUp2bnY3KytpVDFpSm9peEpMaDJ3Y0hieEZPU1RpOW11b05PalZpeGZMSnU4b3pnbkp4dDNZSGthQ3ZYczdiUzljZ1ZyVTNWK0VQTklQMU1BS0E0d1I3VGVmUWVkUzJHd1RWYk45SkVVMGMxNFdqN2NyN0lCSUlPZXVBUEtuV3k0WDFMVkxqdGdxUXhNbkwyam5id0l4MzlLZStJTkcvUkhEZDllMjExS3R4QmJzNmRraW9lWURiQkc0K3RCSHJiME0yNnhxcjZwS2M5U0k4OS9jUG5TRDB2NmRIcGZCdkQrbTI1WXhXMXgyS0Z1cEN4RUROTWNON2ZSY3M4dXA2ak03TDBudlpHQStHYWQvU2d4bDlIM0REc1N4YVJTU1NTVDlsNDlhQ0IyZC9wYitpeS8waTRkVTFPQ2NNaUg3ejVjRUZmaGtmQ21LSFRZNUxLSjFKVm1VSHlweTFLT0g5RHZ5QWh5WXljNXgxcnRwOXVUWVFuRzNMM0R6b0dYMWU2alFyZ092aUswdVVCczhHVDdWajdVWlVncmp2ejBOV0duRFVjMmpOY0t3RWdPZmVLaCtwcmJ2WnVCTW5NcWN3d080SGZlZzU4TVJ3NXY4QXRXQy83TWVUUGVlWmEyMWFJSlppUlYyTDQ2MXcwTzRoRVZ5R201SGJDOU83L1FwYnE2d0xvaU4ydk0vYmJrSDJjWVBkanI4YUJ2bk5wY05iZW93U3h1VVdOMGFUdERKSm5xdXd3UExmMzBPV3R5VmxVcXdPR0JHQ3BIaUtJakJDdHN5Uzhrb1lTbGxHK091eFBRK0ZPRWtQNlV0WlBWK1NabU9aSk1iOHg4Yzc0eDFOQlpubzUxdTNpdEliRzR1SWtlTWg0T1k0T0NTU3VmeEh2TlN2amZVN0szdGJMVlpBWGdCTUpDWTVzbkJIWHUyYW9idzdjYUZiV2Rxc2VpeVhWemdMSk5PVlNOaU8vT2M0SHUzd0tsRVdyV3VzdmQyTnhwTm84Y1o1b3c2Q1FFNDIzUHZPTnZIcFFNV2k4YzZMTnJGbFpMYVhZa2ttU05DUW1BeElBenY1MWE5UnZUWWRBVHM0NHRMczRybUp0aWJaQVNlYkFLbkhqaXBKUUZGRkZBMDZ2K3RpSGR5bjYwMW40MDZheCt0aS93QUordE5aNlVHam5CcXJPTFk3aldaYnVkRmtraWoyUmM3SU5oK1BXclFseHlObndxTmFoREhGb1YwMGFjb2VQSitZb0tQdTlObGpjRmxJOGFRdkFRMk1HcGxmaFJNUmpyVFBQR3ZNZGhtZ2FMZDViYVpKRVlvNDZFVlprRVFHbnhTOW9PWWdiWnlmblVFYTM3UXF3WFpUdWU0VkxOSm5hYXdSUzJlejluR1RpcGUrSFhIMW1OdVN3T0hNL29aUDh4L3JUaTQ4NmJ1SEIvVXlmNDIrdE9MZ0VIYjhhcmtaZGZYbTBxVURZQmxPZmN3cVVjTjQ5WWh6blBhL3lxTmErQitocm55WFB5cVI4Tk1QVzRRUmpENUhudFFQZC9qMXVYUFhiNlVrYWxkLy9iSlBoOUtSbWc1bnI1VkRlTW9vM0VibGN1cnJ2OERVeVlWWC9IRjNKYUs2a0FreUt3YndISzIxQkZOUVJUR0FSNVZIN3Ezak80WHBXYmpXcFhjeHRJbU9uVEZJNTlRSUlEWTM2ZVlvTlRicVZJVmNrMDg2SEI2bmRsUkpublRkZkEwelFYaDV4SUZ3bzZIUGZUaFlUeXlhcERnRWc3ZGVnclAxMS9XWVhjNXE3N0wrd1czK1V2MEZkR3JTeUg5WDIzK1V2MEZkV3JUa1RQNVVyNEwyNG4xSWQzWUtmeEZKWkFBQ0tYY0lRc25FMTdKajJYdGhnLzhBRUtCM3ZyRHRPYVdKZHgxVWQvblRNMFhLY2QvaFVsczd1QzlqYVMzY01BeFUrSU5NZWtvdDNkWG5hbk9QdStXU2FDdWVNYmdXbDFlem5iczRWSStWVkJaV2o2dnFiQWtoYzg4amZIK2RXNTZTbzFSdFRSdDJFQzQ5K0JWZThNUUZMT2FZRExPK0FmSWY2TkE3SkhGYnhpS0pRcXIweFFYeU5xeTNLbzNPOWN5NEIyb2Y2TGJabjdSTWJiamZ3cDdqbmt1VlZaUXZValBYSnFPUHE2NmRBVW1oUGlweUNDZkVWenN1SkFKRUxBaEFlcEZZbjdYbDZNOStQSDFsNzdhY1RhRjZ2SWJ1SlBaYysxaXRkS2NwR0kyT2VYZFRVNFNPMzF6UnlnYlpsNitCcUxYdWkzV25YTWxvNjluZFJ0eUZUNDdZUGhpdHZPVURacy9PckMwa2Mvb2MxVVk1c3pQdC93QVVkUUU4S2NYMjJHdUxiVHlXd0FvMUNIbU9TQU51YnpGV05CcGQ5cGZvaDFXMXZvVml1RElYNUJJc2d3V2o3MUpIY2FDQ1E4aGltdDVFVTl0SGdnQU52allINjBodGxaSlpiZFlnb2RWRFpJUFR3eDd1dEtZb3BTUXZaODJSaGVYYkZLTGZURGFwSlBPd1IyVEVTblB0TjNaOGdONkJYRTZyYUxEZFNpT09NODhiT2NlempKQTl3MytIalM1YnEyOVpuNVdIM3ljK05SMlNQMWhta3V1V2QyVXBuOTFjWXdNOU9wNlZHcDcyK3NMeWRZSFY0Z3g1ZWNrSEZCS05YZTJhYVdRWkRCQStWN3huY2ZLbnFHZEpJVWFJaGs1ZDVDTmgvd0ErdFFxd21OMWNvYm84NVpHQkM5Q1FRY1ZLa3ZSeWhValBnaUtOZ0tIWlYyWkZpeG05bFJNQ0dDNUxlMk56OEtlZUhOWFdEWEpDcUt3RUxjdVR0MUZSSzUxR1VvVWtiQjhBZW5pSzdhQkwydXE0UHNqc3pqYk9lbTFTYjI2NStza2s3WFZvMm9QZkE4aUtxcU5nb3dCVGhxMWdkUzBpYXo5bk1xOHBMWngrRk5YQy9JdG5rWUNnNHljQ24yVzdpakFCZGM5MjlWeVZqY2VpN1ZaSlM2MzFyZ25jSG1KSHV5S1IrbGl5ZXg0TDRmc25ZTTBFM1pzdzZFaU9yTXU5VWFCNFlJaXNseE94V05lNFk2c2ZJVlgzcGtEZjBkMHJ0TU93dW01aUJqSjdNOTFCVTk0eGZUbURZeHlyMDhqVWk0WHNsdXRPak9kbGNqclVZWkpKcmN4UlJ1N0ViS296MzFMK0YzRm5wQjdac0VTT01BRmgzZDQyb0phNWhnMC9rWUFLVjVCc092S2FxYlY0NGt0Wmw3VW93aGJLakh0RTRxejdpMW11dE1Od3ZNc0NGWkdkbElBVURjL2pWY2F2YnBCRmNyTEtxeXNyRGxEKzdHMUFoNFN0b3BrdnpKR3JGSXdWeU9oMzZVcDE3bU9scWdmbVR0VlBJRUczWEp6MVBmU2Zoa3pKWTZvWU9UdERFdkx6Ymp2cExQTnFDTVRkUEc4YTdzc2E5UE9peWI0ampKcGd1b3BKb3JodWFNS0VSays4TWZoVWg0ZXRyUzJzcDVKaVZ5Vk9Ya3dXMjZGUjFId3ByMC9VYlo1WlVTVEhOak9Uc2NmdStYU2s2TEtsN2NyTE1BV1lFTUIxSGw5S2syMzVQWGlZbis3MUZYaU1Oc3l3RmM0a0E1V3dUNWRSMTJwSGFhcmMycVJTaSttM0xLRlNVNWpKd0NWMzJQVGVra2FKRUhhWExCenkvZjNBSHU3cVN0YU1KL3N5QUdHTS9tYXJtbXZEV3NYTXZFR25ReVhidUd2b2x5ekU1SE52OE1uNW12UVo2MTVmNFdDcnhYb0tBdm4xdUU0Sis5N1kzOTFlb0QxTkFVVVVVRFRySDYyTC9DZnJUVVRUcnJINjJML0NmclRVd3hRSXRSV1dTeG1XRWtTRWJZR1NmS3E3NGsxUzhHa3loWTM1T3p3REdkaHYzMVpyRFB4cUFjUzJ5dHB0N2x5aWhTY2ZIcFFWYWwxYzNKZkxNZVhHU2FReVhrcGtJR2VicGlucTBDUjJzN2tBSzJWWEl3V0hqVFZIQ3IzWmJmc3djbGdNNytGUzNUV0dGenltTUtMZTVtaWhDbFhWbkdkK2hIalVpNGFTVDFPUjJQc0Z1VmMvalVkNTFra1pnTmlkczl3cWJXRnVMV3lpaEdkaHY3K3BwUDhBTFhrdk9wZUluWERuL3dBbVQvTWY2MDRQbWtIRGcvcVpQOHgvclRpNDhxcm1RWGx1bDFieVFTWjVKRjVUanJTamc3MXVIV093dTVWZFF5OWs0R09iWTdlK3NTWUF5ZWdyaHdhYnE5MTZHK21DcEEyOFVZYlBLTjhIM21nbWQrTTNrbncrbEl6dlMyKy90a253K2xJbW9PYmIvT29UeDlEejIxc3d3Q1g1U0QzakJxYkVWRWVPbzg2WmJ5ZnV6WVB1d2FDcEZ0Z05Vd1FydVBhNkRBSGlhYmRVUVBlTVVHUVRnQWQxUGZadkcwN3JIekVrZ3RtbXN4R04ybmx5Y2JEdnpVdDA2ZVBEM3kxOGNZd1VIWVpLcVB2QTcvS243aDYxNXA1Yms5RVhrWDMwd1I1Njc1WW1wWnc5aGRPWWtqZHp0U001NWJxMnJFZjFmYmY1U2ZRVjBhdWRrZjZ2dHVuNnBmb0s2dFZaSjMvR25iaFRINlVtR1Juc2ZIKzhLYTNIZlNyaFlIK2xzdXdQK3hISC93QzR0QXkyMXpOWTNra2tEbFR6dDM3SGVwRHc2NjhsdzU2dXlqNm1vcWs4VThrand5cEl2T3dKUTUzeWRxbEdncUZ0RmtCM01oeVBJRC9uUVZwNlVVN1RVcnlNZDhhL0gyYXIyMHZHdHRJaVNJZTB6TjA5OVdWeDJxemNTelJuN3BpWDZWQWJuVFBVMTVZOGxRU1ZCOHhRTkRYOXpITDlvMmFtT2lhV2RTczNuS2txcTlQTTlLaGlXVXQxZXJIdWN0akhjQlZ0YUVJclBUakFNRG0yT0t6bGZrZWp3WVMzMno2aXBid3lDNWRYTHNxc2NjMVNQaHFTMG1qZTNuVG41d1J5OHZsMXA5MS9obTB1aDJzV0VsOFFkalVkdGJLNDA2Yms1Y01mMmxOV1RUamxsdTdTRGh2T24zMGxzSFpvVG5DdDNWTnZTUHB4aDRndGJyMlJEcUZxRlo4ZmRlTURIekJxSTZMYVlZdTQrME81SnEyK045T0Y1WTZRZVVFUnVRMmU1U2d5Zndxc3ZQbHRiU3J4SFBieU14SWtUY25wbGhWbzhDR052UXZxSmx5RTlha0o1bTV1K1B2cURhYkUxeHhrNWtQTVFVQkk3OEhZL0dwendEQzAzb1kxQ05Ua3RkeUFFanpqb0doN3FJakZ0YkVIKy9rZmdLajJxUGRQZTlvMHpjeWtNQ3hPUERwK0ZTZGRLbjVqN2NZSFFuUDBwQnFXZ1hGeXJMRUVZNDN6Smdudi9sUUliQ2RKUVZmbERqZkJOTXVxV0tTcmR5U0ZSeVMrd1AyanY5UEduV1hTTlJzRTlZa1dJRlIxRWd5UGNPK21xU1VTUTNBbUxOTDI0eTVPNUpQU2dUY3kybllBRXZsdVZTT281dS84SzJna21VZHAyczJGeDdTdjBOSnJreUs1U0tQTXZNQWk0NkdsY3hSVVNGRG5sUE1kdkdzMi9IYng0Y1hPOGFLa2xhWlE3a2xpTWJtbmpoc0VhcTJCMVFrL01VeFcyZXlWUjU3MUl1R1VINlNZOUFJeWM1NjdpdE9WdTd0WWR2cTNxa0lHU0ZVN0tQNTF0SHhIYnRBVk52STh4UDMrMTIzOHNVeHpuMlNDUmp2enZTTlc1RVhPU091d3hSRDdlNm5OYzNWcmMyOGlwYzJ6OXBFWFBzRTk0YkcrRFNuMGdhbGF4OFBhTGZhcFlyY3E4M004S1B0a3B2aHFqc1hNeFZzNEhuMXB5OUpha2NHYUN1ZGhJQWM5L3dCblFRTFY5VDBpOFJqWTJVMXVrZ09BaEFaUjcvOEFsdlMvaG1mazRaV0lOK3N1WmxCSFRaWXpVWFdQSkF3UUQzKzZwSHAxcmN3Mk5yYnl5UVdxTExJNnVGNW1PVlhKS25ZakE4cUM0WUxlTzU0V1NOeU1QWll4NCt6bXFHMWFMdDNhU2FhTlVLTVU4U1RqcDViVlBiYVc1bHRwWVJNOGl4V3ZNanVNa1p5RDVia2VIU29ISnA4aktUSjJhc1FOODdrMENYUVl6YjIyb2RsbHlpY3I3YkU3OVBERkpacmVkclJwcGtOdWpqYVU1Yk9Oc1lHNXArMHF3RnJIREdyYy9yakJXSUhRY3JISy9HdEw3VDU3aVgrMENRZ1lITjAyMitsWnQ1MDdZWSt1UHY4QThSaTBqamdaNG9vbVljeHpJNEJadmNlNEh3RlRQaC9oR1BpcGJpZEx0clV3RlV3MGVlYkl6WEhUOURqQlo3aWJtYm0yRVorcHBUZE5jNmR5SllUM0VVVHVUSXlURlNkdGh0ODYwNG41ZlE0dHhHenZyQlNNZEFJVDhlK3VUZWpXMXQ5U3RJQlBMTTEweGlEbFRoUUJubVlkTTVJNzZqN2F6cURqc3pxVjRjZU03NCt0ZDdXOXZZQVp2WGJsV3g5L3RXeVBkNGQ5Qk1yTDBhcHBHdGFmZVIzU1RTUjNFYkhDbFJ5ZzV4akpxMHFvTFNOV3ZwdUo5TEVsN2RTSzE3Q0NwbVp0dVlkZCtsWDZldEFVVVVVRFRxNCsyaS93bjYwMXQxTk9tci9yb3Y4QUNmclRQUExIQ3BaemphZ0RzRFVLNHVoeFlhaXZRTkhsY2Y2OGExNHE0OFhTVUVObkdqM0w5T1luQ2p4ODZiZldkUTFiZzV0VHZwQXpUaHlnVlFvVlFRUHFDYUNFWEZ1N1d5b3pLTWdkTnNVMFhDUENCRUdYQndUZ1lJNjdWS0hic2JkcEdIdGdaVEkvMW1veEp6R1YzYnF4eldlN3c3eitQRGM3ck1lQXk1T0FTS25TWE1MN0pLcmY4VlFET1dBN3EwMUpHVXhTZ2UwUnlrMXB3WHh3MjRPaXB2OEE5bzMxcHpZN253cXJ1Q2I2OGswZFVqbWIySElPL2p2VTFpMUM1UUR0dmFYb2NqY1VEdXc1dHEwNENjRkxFZUFJL0VpdElaa201WFE3Vng5SHMzTWJOYzdDV1Jma3hvSnRmSC9iWlBlUHBTUTB2dUlETGV5bmNLQ04vZ0thOVNuRnFqY3RBa3Z0U3RyQ0o1SjVNS2lsbXg0Q3F4MW5qZHVJNUVzTFMwN0tJTVpESTdaYmxBSTZkM1d0K090VVlXSmhEZTFPZVhQbDMxSHVHclZUYVh1b01EelJzc1NqdU9RU2ZqN05CMkVaZFhYR2ZkVEJxTWhhNE1TaFZSR0lBVVlCcVVUc2xwRklRRDJwUEx5a2RCNCs3enFOejVubEpVRTQ4cXozWGZMK1BDWXp1a0dRcTdWMkU4OGRuSVlwV1FydjdKclQxYVI1TWNwSDg2ZC8wUzBWbzZ2OTVrTEg1VnB3Ty9DM0dPcG1XTzBtbmFVY25zY3g2WUhTcDliNjFJd0hhcHRqdXFuT0gzRnRyZG16N0FTQlc5eDJxNG9MUkpHWkI5NWVublFPRWR3azR5aHpUdHd0L3dCWldidTlWUDhBL0l0UXVHZDRKbUdjRld3UlV4NFBsRTJ0TTRQL0FOTWU3Kyt0QkNORTArVFM3SjRKZVh0TzJrWnVYelkxT2RLeEhwOERkNVZpZm5VUHY3NUxSM1psSnpOeTRIaVRpcFpaY3k2ZEgva0Riem9LOTRya0VuRTh6WjZJbjBxTlg0eWRxZk9JMnp4RGMrNWZwVFRLbk5JbTJja0RIalRwWk4zUnZ0bWgwK0tTYVFOMnJkR0E2RHdydFo2MWNyYXU5cXF0SVNBc2JIbDJvMVdaSTR4QXFnanFGOEtZNGc4VjByYzJCMTY5S3hqemR2UjVzcmhKNHBla3Z2OEFWNTU5TnRwdXdhS1FPVmxUUGRpdGJCMXZndk1QYkJybEJkelhGdWUxWkpBdXdBcmFHYUMyWlowWGtrRHFDbWV1OWJlWkliZUxzbUhrS3RmaXFLNmZSSW10UUdaUUFSbnhBSDg2cTcyVEdzbWVvN3F1S2U1N0RTbm01QTZ4UWgrWHZKQUZCU3ljTTNXbGNmR3pXT1M0bGhzb0hta1JkaXg1bVB5R0I4S2RlQjdsdEo5Q3VwWElERm83cVJoeTVVN21NZnpxUjN1cDNWM3FNbHpGUE5BSHg3RWNod01ERlo0aWVXNDlGK3JtVnk3bkF5MytOS0N0aHIrb2M3TXNpdXVUZ3VtZSt1MFhFMm9HVlZLUUZTUnpmWjR6K05NZk9XNWNaQjVSblBqV3drQVlBamNBOVBHZ2t0eVd1WTVPWnN1VmJBeDAycUVTWmplNmluV1hMRWhDaTVLc0RrWjkxVExMTkdXMnh5ZytPRDRWSFprN2JVSmpKbmtFaExFRHpwYnJ0Y2NmYTZjd0hrVDFoeEhrY3AzWHFmSHlPMUoxczQyWUE3SHhwWEtVZVFKRUNVUVlCOGE1ZUlPYzFtVDY2K1cvMW5UZUtCSTF4elp3Y21uN2gxay9TVGI0K3hiNmltT053VU8yTWVGT21nNS9TTExqT1lpZW5tSzA0cFBkOXBjUWN0dXNiTmtmckhJMjcrNnRBSkFQYjVTT21PdWE1dTdJL0xzQWU3TzYxbFpYVlVBd1JudzNGQjNpNW84QkkwOHlSbjRVdTlJNERjRmNQNWJDODRKUC9sMDN3dUNnSEw3Wk9jSCtWT25wSlVEZ3pRNHhITEl4ZkNwR2haaWV6OFB6b0t0Z1FOSU03ajltbmEzbTdGd0ZCZHM1QmJ1SjJPMUlMVzExQ1dSbU9sM01Lb01ublhmYnZwWEdTMHB4N0lEYnNlZ29IWFNwNTVyNmZubHlSQ01CanRqSjZDbTRHS0tNSG01MkMrMjdIR1BkV25ONnZlbVdLUnVRUXVwSjc5dHFqOXRxRE1xbTRVY29HeHljWnFXNmpXR0h0bG8vVFhYcWNVTWNNbVNoeUdJM0dOdHZLbXg3dVIzMmNrOWRqdFNXUzdlNVBhSEF5QnNLeEd4eW9PTmozZjYzcVNhN2I4dVc3cWRSS2RMVm5oQkpKeWRxbG1sOE5RYTlZM0lsbmFJcTZnRlFEM1pxSFdOOUhCQUZJeTNqNFZOT0dicWNXVjFMSmJ1c0hhSmx6c3VjYmIxcHliUStpMktLVVRtOWVXTW5jTkZnSDhhWGFqd2pwMHRuNnZFMXJieU1NQnNNVDMrZEtkRW5YWGRjdmJTZVE5bGJvclJXL05nTURubVkrUGQ3cWtGdnBFTnRLeE1rOXd6dGtMSTJRdnVIUVVGZTZUd09sdHJsbmNEVTJab0xsR0tDM0k1dVZnY1p6MDg2dDN2cExiUGh3aVJCRk9kOFlQdXBWUUZGRkZBM2FvQUFya2JoU0tnZXMzYmhpdk43cW11dXpDR05jNXh5TWZsVUExd05IcGsxeWNleEhuZng1YzBGUThRWFJ1ZFp1WFU3S2VWZmhWcTNWaWxwd3BIcDhZVlRIYVlDSHVJT1Q4U0RWVjZOWkhWOWZ0TFVnbnQ1UnplUXprL2hWdjZ1dnJkc1ovYVdMdEZMY3ZYQlVBL0gyYUxMcTdWbHExdzZmWXI5eEI3SkZNelFNOFlZWURIeE5XZnFIQkZ2Y01URlBLaFhPYzR3ZndwSmFlajB2TXJUVHNrWEx1VklKSGwwcVNhWFBPNTNhQmFicEp1WnZiKzZOMklyT3ZXYXJwa2NxQUREbjVkS3RTeDRTc0FoRVVzNFFJejgyVnkyUGhUUHFIQ1VFM0RYT3NzeEpTVTRPTVpCOTFWbEd2UnhKbWE4dGlmdlJjNkR6QjMvQUFxeExtSVRhUExjUkQybzhGc2VYZlZSY1BYTDZWcmxsTWpFQlpnRzl4T0RWeHN5Mk42SFVadExrOGtxbm9wYmJQdTNvR20wdW1oZFpBVGdrWkFwWndUT0xEWHJMVHBjOXBKY1NPaEEyWld5UmorZE10d2h0TDZXMXlmczVPVWU3Yjg2Y05DN1NiakRoMlJkMWh1bVZoNEJrUDVVRnMzc3F4TG52Ni9oVVcxaGpOSnlBWkRJclo5N0VENlU5NjY3TENXVDd5L3pGTWNNeGxrYVZSa0JWeG5vUFoyejdpU2FDbk9Pbi9yV0syQnoyYTVQaHY4QSsxUFBEMW9nNEx0MWNBTk5mZHFjL3RBS3kxRitKWkRlY1RYZlo1Yk1uWm9EMTIyL0dyVnRORXRwN1RTN1U4OGNFTGxQWXhuYmJ3OHpVczIxamw2M2FEejgxL0FHY0RtWEtBanZ4VEsybTNDc1FFeWZFVll5OEsyeVh0OWJMTk1HakpkZW5jZHgwOEtWYWJ3blkzRngybnJFNWlaZWJHUjdPM3VwSnFKbGxjcnVxL3RkTlcyWVNTZ0dRZEZHK1BmU200UWlhWmNkSWZxYW10dndoYVN1WmpOT1VsbEVjZUNPZzZucFd5Y0oyVStyWHlHYTU1VWp4K3o0KzZxaW5iKzJOaHFSQUdDT1Z4OGdhdHpUTHN6YVJZNnJGMWFNQ1FmaFZlY2FRaVBWVmtqQjVBZ1FFOStOdjVWSk9CTlFFdWhUV3JrbnNXeGs5QURRUEd0S2tkNHMwV09TZEF3OS9mVWg5SGt2YWF0Y2VIWWJmeGlvanFNMllGaVp2YWdrSkgrRS93RHRVbjlIRFoxcWNmOEE2WFAvQUsxb0luckJMM3F4Z0FnTzBqK0k5ckEvSE5XRXpDSkpGNWwrNHZLdVJuR0tyNjQ1WmRUdURrRTl1c1hUd2JKK3RUN1VZWTBFOHJJcGRDUWo0M0FvS3ExdVV2cmR3eFBnTnZkWEFYTnNscTVManRVUE5qSUIrRkl0ZG1ZWEY5TXBZRkYySzljOTFRRzh1bmFjZTBTeW5kczlhNTVjMzFqMWVHWHhZL2wrcExlR2FTNkpVa2s3NThLUWVyU3ZLQVpUa21sdW4zSXVyZEpmMml1Rzk5RTBUQnczTmpldWttbm10dDVwNnNORkRLTXlTOHpZNk5qRmE2anA3MmVwV2tRa1owYkdTeHp2bW5IU1dic3djODN4NlU0WFZrWkpVdUR2eTdnR2lGa0U0V0pVSjZESFNyZHVwczZKT0JubE52Mys2cVd0M0xTRUVZT2ZoVnpUV01tcGFKZVdTU3RFOHRxVVdWZXFrcjErbEJHRVFNZVlIYWxXdXJ6ZWpUVlZHTWsvL3dCMHFoMzR1NG8wVy9hM3U3bVRtak9Dc2d5cHg3NnR2VE5jbTRrOUMycDNza2FSeUNSb3lFNkhsWk4veG9LNW55SUkrVG92TnpNVzZBSG9LNHh5ckl3WURCQjJKcDRzYlJaNGdTQXlrbklZZU9LY1k5R3QySUxSS0FOeHNCUWNiV1R0WUl6M2N1TVUxemxvcEp4a2N6eUhwMUkvbFVxaTArR1BvdUJqcGpha3N2RGx0TlBKT1paZ1hKWWdFWStsU3piZUdmcHRGaGtESTJIY0syR0NCdHZVbFhocTJ6Z3lUS2V1NUg0YlZuK2pscGcvYXo0OTQvS3F3aStNRW5idzZVNmFEN1YrdzVpQjJiZEJud3AwSERscGpQYnpuSGRrYmZoWFczMG1Dd21Na2NrakVqQkRFWUhUd0hqZ1VHNTVBNDVlWWQrY1ovMS83MW9YeXBJVXEyKzNVNC8xdjhhNkVGaUFEN1BlQ0RucjFyV1FNR0hzNXlNNXg4ZitWQjBpY3huQ0hkamd1UnpmNkhXcGh4SElUd2xvemptVUVMa0VmM08rb2NoVWZabFNNNUcyd1A4QXJOUzdpWi8vQUlTMFFnazh3SHg5aWdpcXV5dUdEa01PaEI2ZTZtKy9zQk1wa2hBRWd5U2dHRmYzZUIrdEtReDlvNUcyT3RiNTV3VkJPNDYwRU12SnBZT3pFdk1tWDVHVHZBSU5NazBuTENrQSs2QUNTRG5OVC9VZEpnMU9NSko3RWliQ1ZSdjdqNVZGSnVHNUxlUXh1ekhCMlpSc3c4UnRVczI2WTUrc3NuMDJ4SDdNWStsS0lsUE5uTzlPMXR3L0gyYTh6eWMzZnVNQ2xRMEszQS9XeStlTVZYTXh2S3lwaFRUM29kOU90dE1obmtLRjF5aFk0TzNoWEdiU2JaR1JXbWxITjVqTktiV3lpdDFJV1NUbGZjbHQrZzhxQnppdUMwNk1Ya2ptQjltV0orVjF6NEVWWU9qNjNyU3drejIwV29SRDdyUm5zcGNZR0J5L2RQZnZrR3E2dDNDTUNRTi9MOEtuT2czYjgyOG1Bd0lVdCt4dDNlN05CS2RONGcwL1VKQ3JxYlM1UmdoaHUxS09HUFFMblppZkltbnFtaTNsak53U3l4U0ZuR01ZUFR2OSs0cDNvQ2lpaWdqWEU2czB5Z2s4alc1WEhuempQNEUxQmVQNTBzdUdURW4zcFRnRGZxZXArVzFUN1g1Z3VvV3NMcUFqeHNRNTdqbnArRlZoNlU1R1MyMDZCbTlwbUxFZUF3Y0Q4YUNPK2o2eE1tdWV0bllRbFVIanpNY2ZUTldldHNIMGEvalBWR1Z2aGsxRnZSNVlOSHA5dEl3L1h6dFAwNkJSeWo4UWFuMFVJUHJjSUdlMWpQekZBeExQMnRyYnUrZVNaZXhjajlseHR6RDhLY1hqTnZ3K2tTak1ramhGUHZwcXMxRTJuM2xzeDlxTTlvbjh4VHZwaDlmdDdRbmN3N043eDMwR1VqOVd0cnRBUVJEYmlQSUh6L0dteWY3SGhLTngxZG1Iek5QVjBPVFROUmt3UnpEcWZlS2FOVmp4d25BRS9Za3ljVUZHYW5DMXJxVnhHZHNPU04vSGNmV3JTanZUZTZIYU56RDdXQmVWejNQanA4eHQ1MUF1TDdVeFhzTnlCdE1tQ2ZOYVVjUDM1T2l2QXpZQ1NIbGJQVHYrdEJJSHV2V3IyR1p2dk9NeWU5ZGo5S2ZlRGdUeExZdHVWN2JieTJOUS9UbTlZdXBDMndRRnZpZXYwcWM4RkFIV2JZNDI3WUVmSTBGZzZuZ3h6Zzc3QWdlSkcvOEFLbzdiNE9rdTRUN01vV1lqYm1HT254NmU0VXU0aDFTTzJrblFFY3lqSHh3RFRQYVhndXVGTDRod0k0dzRiR050czQ4c0Q2MEZQOFB4bTk0dnRwSlBiQW1NemU0WlA1VmRWbmI5bllXaEkzQjdUNG1xejlHdGlMblViMlk0eWtLeGovak8rUGxWdlhFWWpVQURBQTI4cUJrMUZ2VStKVW02SktNbnpEVnRZTjZwZVhsb01lMTl6M1ZuaUdNdmEyMXlBZWRjS2E0TS9OTmFYaUEvZEFlZ2ZJTFlSbXpoL2NHY0R1cEJZWmU4MU5oM2hnUGhUNWJsWlpvNVY3OTgweTZaR1JlM2FIdmxiOGFDcStMYmNTYWRLK0R6eFNCcy9HbVRnL1VQVmRRbnQyWWNrMGU0OHgwcVo2NWJDVVgxdmdEbURkZkxKcXROTWZzTlhqQjIzS21nbVY1ZE04enhnKzJRRkI4ODdWWVBvMkIvVHR6emRmVmdQL1d0VmJMSUUxSzNMSGJtQjYxYVhvMGZ0T0lMdHU0d0QvOEFOYUNLYVF5WFd0MnVSdFBmRmlQSExZK2dGVG5Xcmd4YVpLeDY0Sk5WN3dQZE5mYS9idEtBQ3MwMkFQN3BiQi9DcFZ4UGRuOUR1MmNjeUUwRk9hOWY4dHRLQUR6czNLQ1BQLzJxR2tsam52TlREVUxlSzh0b3d4VlR6OHpudklHYVFMRFoyNDVZSUFXL2ZmY21wSkkzbG5jcEpmamxwVEczc1dsTGNwNXNnSHZwY2JneUVBbnBUZmZNaVJjb1VjM2ZTelRyZnQ5T1M0UkE1NWlyRHd4VllPT21hbTFyTVY1dG02MU1sMU5Yc2huOTNCSGZVQkVQMm81b2dQaFVzMFZyVXFpdmJJU1RqbWJ3b0Z0bzIvTVRrSHBWNTZmZHhRV0RUU043S3JuZjNiMVU2UG82d3FvdG9SeWpmcjdScmhyUEdNMzZQOVVnZkJZWU9PNGVGQkhPSTF0ZFVtdVdrUU1yU3N5bndHU2FtZkJWZzB2b1AxVzB0K2RqNnpNUmpyc1VZL1Nxd3Y3MWxqeGtrbXJqOUZBNS9SamNxeDJlN21CSjh3Z29JcHBFSEpwc2R4TXZLMGpmWkxrKzBwM3pUc3BBT3c3aGp6Tk1xU3Vtb2l6a2xhVklDVlFFN0FLZTZuOEtyQm14aGV1ZTdGQmo3b3hnazFoWmN2eVlKQUhVR3N5Uk1FTFp3Y1o1U0s1NE9Ec2MrWS9uUWQrZHVpSGI1MWdEMmNZUHhHOWNVZkEyUFg0VjBWaXd6Z3NlL0JvQW5HUVR5NHpnL3dBcXdUaEJ2bkk2bnI4cUNmY01iY3RhQWdFNXhuQjYwR2c1TTh6QWdZLzBQbFhNb1NmdmdIYnIxOGZ5K1ZkT1gybEFHV3lkNjU4dzZrSDNZb012Q2M4eWpHTWZENFZMdUlGWWNJNkdHUFB5cXZOdDk3N09vaHo5eGJicjRWS2VKNzRXWEMvRG5NL0trekNNaGgxK3ovQ2dpdU9iUE5qSGNNZGEwL2F4eTh1ZWc4YTd6UVk1bkJDZ2ZQRkorVlNWSTN4MzBHVmxIM054a2VGZFNBOFpqa0JkU2NqeFh6RkNCTTRPQ0Ixd2R6V0hBZFIzWngzMENDZTNrdHhrTVhqSjJmb1BjZkNrclNrSExObmFuamxKVTVYS3NOODlDS1JYZW5oVWFhM3oyZjdTNHlWd04vaFFKQmNjbktNQUh1ckRPblViNHBPTXRzcHdNNXovQUs4cTJEY3ZUSFRPU2VvSGhRTHJPMmtua1FRKzBUallINFZNdEkweTRpZ0xTenJHQ1FDcmJuSCtqVVFzcHV5UWdBNXgxejAzNi9oVHNOVGw3UHM0cGVWUmxjRTlUdFFXRmFXaUpOYnMwNkgyZzdFSVJrZ2dmenFRVlZPaGF4ZC9wTFRvZWRpaGtVRTU4V1dyV29DaWlpZ2gzRnQ0TGZYOUlSc0ZTR0lCOFNjZnpxdHZTd1cvUzlnR09jd00yTS8zcXUrNjB1eHZiaUc0dXJXT2FhRDlVN2pkUGRTTFVPRk5CMWFWSk5RMG0ydVhSZVZXa0JKQXpuSFdnaW5CK21tMDBXMFJ3Y3hXNnI3cyswZnhhbmxYRVZ6R2NiWndha1VkamF4SUVqZ1JWQUFBQThOaFdEcDltVGsyNkUwRmRsVFk2MnlIWlhPRDdqUy9TdjhBWTcyV0k1NUdKSVB2cVlUYU5wdHhJSkpyS0ozSFJpRG10aHBWZ0dEQzBpeU8vQm9HUFZJLzZrdlA3dy9uVFhjS0g0Wm1JWE9BR0ZUVjdPMmtpTVR3b3lIcXA2R3VRMHF3RnViY1drZllrWUtZT0tEejF4ZGJ0TnBJbDNQWk9BQU80WTNxTzhPeXIvdE51eCs4T1llZmpYcG1iaEhoNjRpYUtiUjdWNDIrOHBCd2Z4cEpGNlBlRUlINTR1SHJGR3hqSVZ2em9LRzAyWm83dTRRbnJ0dlZpOEc1R3RXQUF5RExrbjRHcHd2QXZDcXVYWFFiTU1Ua25sYjg2Y0xYUWRLc3BVa3RyQ0dKME9WWlFjajhhQ3RlTTdrcnhSZlFLMkEzSmxmRThvb1VUV2ZDK3JRY283SnJDVjJiL3dDNlFSOUtzZTY0YzBhOXZHdkxuVGJlVzRZZ21SZ2NrZ1lIZjVDdDMwSFNwTGVXQnJDRXhTcnl5SVFjTVBBNzBGV2VpVzBQcXQ5ZHN2MlprVlEzanlnLy93Q2hWZ1MvYWxoVHBwMmhhVnBOczF2cDloRGJRczNPVWpCQUo4ZXZrS1UrcFcyYzlnbWFDTFR4Q2Eya3Rtem5KSzAwYWFDeVNXN2RVT3dxZm13dEdmbU51aGJ4cmttazZmSEkwaVdrU3UzVWdIZWdhTk5tNVVDTWNZMkZKTFJPVFhMbGNkUnpWSmwwKzBRNVczUUhydFFOUHRCT1poYnAycEdDM2ZpZ3FIWENZdFZ1QXdPNVlWVkdyUXRaYXRJTUVlMkdGZXFyamh6UnJxUXlUNmJieU8zVm1CeWZ4cEJjOEE4SlhrbmFYSEQ5bEkvVExLZnpvUFBGNU1YdTdabEJQTVA1VmF2b21tVjladVZMQXlDM0dSNGUydFRSZUJPRlZaR1hRYklHUDdwNVR0K05MZE00YzBiUnJ1UzcwM1RZTFc0bFhsZVNNRUZobk9PdmlBYUR6OTZQYmk0WGkyVkNWN09GTGwrbTQzUDUwOWNkYTlEYVd4dFkyVnBpQ0dVZnM5S3QyejRLNGEwKzRlNHRORnRJWm5CRE9pbkpCNjkvZlhLNTRCNFR2SldrdWRBc3BYWTVMTUdKSitkQjVaZVJ6R01uZHF3dVV5eEhRWitOZW92K2pqZzMvd0FOMkg4TGZuUWZSendhUVFlSExEQjYreTM1MEhrcVZubGJjZStwUnc0T3owNERsUHRaUDQxNksvNk0rQ2YvQUF6cC93REMzNTBwaDRDNFR0MENSYUJaSW82QUszNTBIbnFTMzlyT0RXVWtsakdGR0s5RG5nbmhnOWREcy80VCtkWS9vTnd2L3VLei9oUDUwSG5zM0VpamRqU04zWSsxazU4NjlIbmdUaFZ1dWcyUi93Q0Z2enJVOEE4Sm5ydy9aZnd0K2RCNWN1bmFXYytXMVhuNk5tTnY2SjdoeU4xdkhPLytLT3BaL3dCSFBCMmMvd0JITEQrRnZ6cDNzOUMwdXcwMXRPdExDR0d6Wml6UW9EeWtuRy9YeUh5b0tVMUZSYWNZWEt2L0FOcEtXQkEydzNoVDFFM01veDBYWVo2YkhIOHFzcTQ0VzBLNm43ZWZTcmFTWEFIT3dPY1p6NDEwVGg3UjQxNVYwNkFMNFlQam54b0t6bFl5QW5CMkgrczF3TGRYWld6NG5Za2VZcTAyNGQwWnV1bXdINEg4NngvUnpSczUvUnNHY1k2SDg2Q3FsWnprNU9EMzQ3dkFWM0xsYzhydGtleURqYjMxWjM5RzlGLzNiQjhqK2RCNGIwVTlkTnQrbU9oL09ncTVtSFE1SjIyejhxMkpDN2dFbnpxMER3NW94SUowMjN5Tjg0UDUxZ2NPYU1CZ2FiQmozSDg2Q3IyQXhuQnlmRHBXa250NTdnUnVmQ3JUSERlaWdBRFRiZkE2Ykg4NkR3M29wT1RwdHY4QUkvblFWTmxpU0MyY0hPTWVGT3ZwSEJIQVhEUnp1cnFjL3dEbDFZWjRhMFFuSjB5M3o3aitkZGI3UXRLMUt6aHM3MndobnQ0ZjFVYmc0VGJHMi9oUVV6cGVwSFZMTmVZWWxqeHpBRHFPbEtFR0g4ajRWYWR0d2Z3N1pzV3R0SHRZaTJ4S2c3L2pYWCtqR2g0eCtpN2ZIdVA1MEZVNTVHS2dNVDFJSGRXNEpLaGduVHB0ak5Xbi9SalEvd0RkZHY4QUkvblczOUc5Ry8zYmIvSS9uUVZlb1ZQYWIybEdCZy82NlZpTXl4b1drSURCaVZaRDFYUHM5ZnhxMHY2T2FOL3UyMytSL09zSGh6UmoxMDIzK1IvT2dxVzUwdExsVExiQkk1V3p6UmpvM21EM2U2bVl4TWpublJnVlB0QnRpTVZlbjlIZEgyL3EyMzI4aitkYVM4TWFITy9QTHBkczdZeGtnNSt0QlNxS3BBQkJJNkRCN2pYUm5aK1htQkdDRDQrTlhIL1JQaC8vQUhSYS93QUovT2c4SjZBZXVrV3Z5UDUwRlY2Tk16NjVwaWd0bjFtTUh3KytLdTA5YWFJZUY5Q2dtam1pMHUzU1NOZzZNQWNnam9ldE85QVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRZi8vWiIgYWx0PSJZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBlbWJlZGRlZCBpbWFnZXMsIHNvcnJ5Ii8+CjxoMz5SZXNwb25zaXZlIEltYWdlczo8L2gzPgo8cD5DR1NtYXJ0SW1hZ2UgaXMgY2FwYWJsZSBvZiBhdXRvbWF0aWNhbGx5IHNjYWxpbmcgaW1hZ2VzIGRvd24gdG8gYSBzaXplIHRoYXQgaXMgc3VpdGFibGUgZm9yIG1vYmlsZSBkZXZpY2VzLiAgVGhpcyBib29zdHMgcGVyZm9ybWFuY2UgYnkgbWluaW1pemluZyB0aGUgaW1hZ2Ugc2l6ZSBmb3IgbW9iaWxlIGRldmljZXMsIGFuZCB0aGVyZWZvcmUgaW1wcm92ZXMgcGVyZm9ybWFuY2UgYW5kIHRoZSBnZW5lcmFsIHVzZXIgZXhwZXJpZW5hY2UuICBVbmxlc3MgZGlzYWJsZWQsIHRoZSBtb2R1bGUgd2lsbCBsb29rIGluIGl0cyBkYXRhYmFzZSBmb3IgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG1heGltdW0gcmVzb2x1dGlvbiBvZiB0aGUgcmVxdWVzdGluZyBkZXZpY2UuICBJZiB0aGF0IGluZm9ybWF0aW9uIGNhbm5vdCBiZSBmb3VuZCBhIHJlbW90ZSB3ZWIgc2VydmljZSB3aWxsIGJlIHF1ZXJpZWQgZm9yIHRoZSByZXNvbHV0aW9uIGluZm9ybWF0aW9uLiAgIElmIHN1aXRhYmxlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCB0aGVuIHRoZSBtYXhfd2lkdGggYW5kIG1heF9oZWlnaHQgcGFyYW1ldGVycyB3aWxsIGJlIGFkanVzdGVkIHRvIHJlc2NhbGUgdGhlIGltYWdlLjwvcD4KPHA+VGhlIGRldGVjdGlvbiBvZiBhIG1vYmlsZSBkZXZpY2UsIGFuZCBlbmFibGluZyByZXNwb25zaXZlIGJlaGF2aW9yIHdpbGwgb3ZlcnJpZGUgdGhlIG5vYXV0b3NjYWxlIHBhcmFtZXRlci4gIFRoZSByZXNwb25zaXZlIGJlaGF2aW9yIGNhbiBiZSBkaXNhYmxlZCBlaXRoZXIgaW4gdGhlIG1vZHVsZXMgYWRtaW4gcGFuZWwsIG9yIHZpYSB0aGUgbm9yZXNwb25zaXZlIHBhcmFtZXRlci48L3A+CjxoMz5NYXhpbXVtIGltYWdlIHNpemU8L2gzPgo8cD5JbiBhZGRpdGlvbiB0byBhdXRvbWF0aWMgcmVzaXppbmcgb2YgdGhlIGltYWdlIGZvciB0aGUgZGV2aWNlLCB0aGUgbWF4X3dpZHRoIGFuZC9vciBtYXhfaGVpZ2h0IHBhcmFtZXRlcnMgY2FuIGJlIHNwZWNpZmllZCB0byBpbmRpY2F0ZSBhbiBhYnNvbHV0ZSBtYXhpbXVtIHNpemUgZm9yIHRoZSBvdXRwdXQgaW1hZ2UuICBUaGlzIHdpbGwgb3ZlcnJpZGUgdGhlIHdpZHRoIGFuZCBoZWlnaHQgcGFyYW1ldGVyIHdoZW4gc2NhbGluZyB0aGUgaW1hZ2UuPC9wPgo8aDM+U3R5bGVzaGVldHM6PC9oMz4KPHA+VGhpcyBtb2R1bGUgYWxzbyB3b3JrcyB3aXRoaW4gc3R5bGVzaGVldHMsIGlmIHVzaW5nIHRoZSB7Y21zX3N0eWxlc2hlZXR9IHRhZyBpbiB5b3VyIHBhZ2UgdGVtcGxhdGUuICBCZWNhdXNlIHRoZSBzbWFydHkgc3ludGF4IGlzIHNsaWdodGx5IGRpZmZlcmVudCBpbnNpZGUgdGhlIHtjbXNfc3R5bGVzaGVldH0gdGFnIHlvdSB1dGlsaXplIHRoZSBtb2R1bGUgdXNpbmcgdGhlIFtbIGFuZCBdXSBkZWxpbWl0ZXJzLiAgaS5lOiA8Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij5kaXYuaGVhZGVyIHsgYmFja2dyb3VuZDogdXJsKFtbQ0dTbWFydEltYWdlIHNyYz0ndXBsb2Fkcy9waWN0dXJlLmpwZycgbm90YWc9MV1dKTsgfTwvY29kZT48L3A+CjxwPkJlY2F1c2Ugc3R5bGVzaGVldHMgYXJlIGdlbmVyYXRlZCBvbiBtb2RpZmljYXRpb24gYW5kIHN0b3JlZCBpbiB0aGUgZmlsZXN5c3RlbSB0aGVyZSBpcyBubyB3YXkgdG8gZGV0ZXJtaW5lIGR1cmluZyB0aGUgcmVxdWVzdCB3aGljaCBicm93c2VyIGlzIHJlcXVlc3RpbmcgdGhlIHN0eWxlc2hlZXQsIHRoZXJlZm9yZSBlbWJlZGRpbmcgd2lsbCBiZSBkb25lIHN0cmljdGx5IGJhc2VkIHVwb24gdGhlIHByZXNlbnNlIG9mIHRoZSBub2VtYmVkIHBhcmFtZXRlci4gIElmIHlvdSBoYXZlIGNob3NlbiB0byBlbWJlZCBpbWFnZXMgZGlyZWN0bHkgaW50byB5b3VyIHN0eWxlc2hlZXRzLCBZb3UgbWF5IG5lZWQgdG8gYWRkIGFkZGl0aW9uYWwgc3R5bGVzaGVldCBzdXBwb3J0IGZvciB0aGUgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBlbWJlZGRlZCBpbWFnZXMuICBpLmU6ICBJRTYuPC9wPgo8aDM+QXV0b21hdGljIFByb2Nlc3Npbmc6PC9oMz4KPHA+VGhpcyBtb2R1bGUgaW5jbHVkZXMgYSBzbWFydHkgYmxvY2sgdGFnIGNhbGxlZCA8Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dzaV9jb252ZXJ0fTwvY29kZT4gdGhhdCBjYW4gc3Vycm91bmQgYSBibG9jayBvZiBodG1sLCBvciBvdGhlciBzbWFydHkgdGFncyB0byBhbGxvdyBhdXRvbWF0aWMgaW1hZ2UgcHJvY2Vzc2luZy4gIFRoaXMgdGFnIGNhbiBiZSB1c2VkIGxpa2U6IChmb3IgZXhhbXBsZSk6PC9wPgo8cHJlPjxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntjZ3NpX2NvbnZlcnR9e2NvbnRlbnR9ey9jZ3NpX2NvbnZlcnR9PC9jb2RlPjwvcHJlPgo8cD5UaGlzIHdpbGwgYWxsb3cgeW91ciB1c2VycyB0byBpbmNsdWRlIGltYWdlcyBpbnRvIHBhZ2VzIHVzaW5nIHRoZSBub3JtYWwgd3lzaXd5ZyB0b29scywgYW5kIHRvIGhhdmUgdGhlbSBhdXRvbWF0aWNhbGx5IHByb2Nlc3NlZCBhbmQgZW1iZWRkZWQgaW50byB0aGUgcGFnZSB1c2luZyB0aGUgbWFnaWMgb2Yge0NHU21hcnRJbWFnZX0uIGkuZTogU2VlIHRoZSBmb2xsb3dpbmcgY29kZTo8L3A+CjxwcmU+PGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e2Nnc2lfY29udmVydCBmaWx0ZXJfZ3JheXNjYWxlPTEgZmlsdGVyX3dhdGVybWFyaz0xfXtjb250ZW50fXsvY2dzaV9jb252ZXJ0fTwvY29kZT48L3ByZT4KPHA+VGhlIGFib3ZlIGNvZGUgd2lsbCBjYXB0dXJlIGFsbCBpbWFnZSB0YWdzLCBhbmQgY29udmVydCB0aGVtIHRvIGdyYXlzY2FsZSBhbmQgdGhlbiBhcHBseSB0aGUgd2F0ZXJtYXJrIChhY2NvcmRpbmcgdG8gdGhlIHNldHRpbmdzIGluIHRoZSBDR0V4dGVuc2lvbnMgbW9kdWxlKS4gIEFsbCBvZiB0aGUgcGFyZXRlcnMgYXZhaWxhYmxlIHRvIHRoZSA8Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Q0dTbWFydEltYWdlfTwvY29kZT4gdGFnIGFyZSBhdmFpbGFibGUgdG8gdGhpcyB0YWcgKGZvciBpbWFnZSBzY2FsaW5nIGV0Yy4pLiAgQWRkaXRpb25hbGx5LCB0d28gbmV3IHBhcmFtZXRlcnMgaGF2ZSBiZWVuIGludHJvZHVjZWQ6IDxzdHJvbmc+bWF4X3dpZHRoPC9zdHJvbmc+IGFuZCA8c3Ryb25nPm1heF9oZWlnaHQ8L3N0cm9uZz4gd2hpY2ggY2FuIGJlIHVzZWQgdG8gc2V0IGEgbWF4aW11bSBzaXplIGZvciBpbWFnZXMuLjwvcD4KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDNlbTsiPjxzdHJvbmcgc3R5bGU9ImNvbG9yOiByZWQ7Ij5Ob3RlOjwvc3Ryb25nPgo8cD5UaGlzIHRhZyBwYXJzZXMgdGhlIEhUTUwgY29udGVudCBiZXR3ZWVuIHRoZSBzdGFydCBhbmQgZW5kIHRhZ3MgdG8gZmluZCB0aGUgPGltZz4gdGFncy4gIEl0IHRoZW4gd2lsbCBvdXRwdXQgc3ludGFjdGljYWxseSB2YWxpZCBIVE1MIGZvciB0aGUgc3Vic2V0IG9mIGNvZGUgaXQgd2FzIHByb3ZpZGVkLiAgVGhlcmVmb3JlIGl0IGlzIGltcG9ydGFudCB0aGF0IHRoZSBzbmlwcGV0IG9mIEhUTUwgcGFzc2VkIHRvIHRoaXMgdGFnIGJlIGludGFjdCBhbmQgYXMgY2xvc2UgdG8gdmFsaWQgYXMgcG9zc2libGUuICA8c3Ryb25nPlVzZSB3aXRoIGNhdXRpb24uPC9zdHJvbmc+CjwvZGl2Pgo8aDM+QWR2YW5jZWQgVXRpbGl0aWVzOjwvaDM+Cjx1bD4KICAgPGxpPjxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntjZ3NpX2dldGltYWdlc308L2NvZGU+CiAgICAgPHA+QSBwbHVnaW4gdG8gZXh0cmFjdCBpbWFnZXMgZnJvbSBhIGJsb2NrIG9mIEhUTUwgY29kZSBmb3IgZnVydGhlciBwcm9jZXNzaW5nIG91dHNpZGUgb2YgQ0dTSS48L3A+CiAgICAgPHA+PHN0cm9uZz5Bcmd1bWVudHM6PC9zdHJvbmc+CiAgICAgICA8dWw+CiAgICAgICAgIDxsaT5pbWFnZXNvbmx5OiB0aGUgY29udGVudCByZXR1cm5lZCB3aWxsIGNvbnRhaW4gb25seSAmbHQ7aW1nJmd0OyB0YWdzLiAgQWxsIG90aGVyIHRhZ3Mgd2lsbCBiZSByZW1vdmVkLiAgTm90IGFwcGxpY2FibGUgaWYgdGhlIG5vY29udGVudCBwYXJhbWV0ZXIgaXMgc3BlY2lmaWVkLjwvbGk+CiAgICAgICAgIDxsaT5ub2NvbnRlbnQ6IGRvIG5vdCBvdXRwdXQgYW55IGNvbnRlbnQgd2hhdHNvZXZlci48L2xpPgogICAgICAgICA8bGk+YXNzaWduOiBjcmVhdGUgYW4gYXJyYXkgcmVwcmVzZWludGluZyBhbGwgb2YgdGhlIGF2YWlsYWJsZSBpbmZvcm1hdGlvbiBmb3IgdGhlIGZvdW5kICZsdDtpbWcmZ3Q7IHRhZ3MgYW5kIGFzc2lnbiBpdCB0byB0aGUgbmFtZWQgc21hcnR5IHZhcmlhYmxlLjwvbGk+CiAgICAgICA8L3VsPgogICAgIDwvcD4KICAgICA8cD48c3Ryb25nPlVzYWdlOjwvc3Ryb25nPgogICAgICAgPHVsPgogICAgICAgICA8bGk+UmVtb3ZlIGFsbCBidXQgdGhlIGltYWdlIHRhZ3MgaW4gdGhlIGVuY2xvc2VkIEhUTUw6PGJyLz4KICAgICAgICAgICA8cHJlPjxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntjZ3NpX2dldGltYWdlcyBpbWFnZXNvbmx5PTF9e2NvbnRlbnR9ey9jZ3NpX2dldGltYWdlc308L2NvZGU+PC9wcmU+CiAgICAgICAgIDwvbGk+CiAgICAgICAgIDxsaT5SZXR1cm4gYSBsaXN0IG9mIHRoZSBpbWFnZSB0YWdzIGluIHRoZSBlbmNsb3NlZCBIVE1MIGNvbnRlbnQsIGJ1dCBsZWF2ZSB0aGUgY29udGVudCB1bnRvdWNoZWQ6PGJyLz4KICAgICAgICAgICA8cHJlPjxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntjZ3NpX2dldGltYWdlcyBhc3NpZ249J2ltYWdlaW5mbyd9e2NvbnRlbnR9ey9jZ3NpX2dldGltYWdlc308L2NvZGU+PC9wcmU+CiAgICAgICAgIDwvbGk+CiAgICAgICAgIDxsaT5SZXR1cm4gYSBsaXN0IG9mIHRoZSBpbWFnZSB0YWdzIGluIHRoZSBlbmNsb3NlZCBIVE1MIGNvbnRlbnQsIGFuZCBkbyBub3Qgb3V0cHV0IGFueSBvZiB0aGUgb3JpZ2luYWwgY29udGVudDo8YnIvPgogICAgICAgICAgIDxwcmU+PGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e2Nnc2lfZ2V0aW1hZ2VzIGFzc2lnbj0naW1hZ2VpbmZvJyBub2NvbnRlbnQ9MX17Y29udGVudH17L2Nnc2lfZ2V0aW1hZ2VzfTwvY29kZT48L3ByZT4KICAgICAgICAgPC9saT4KICAgICAgIDwvdWw+CiAgICAgPC9wPgogIDwvbGk+CjwvdWw+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCBvciBidXkgY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2UgdmlzaXQgY2FsZ3V5J3MKbW9kdWxlIGhvbWVwYWdlIGF0IDxhIGhyZWY9Imh0dHA6Ly9jYWxndXkxMDAwLmNvbSI+Y2FsZ3V5MTAwMC5jb208L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4KPGxpPlRoZSBhdXRob3IsIGNhbGd1eTEwMDAsIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseS48L2xpPgo8L3VsPgo8aDM+UmVxdWlyZW1lbnRzPC9oMz4KPHA+PHN0cm9uZz5XYXJuaW5nOjwvc3Ryb25nPiBUaGlzIG1vZHVsZSBpcyBoZWF2aWx5IGRlcGVuZGFudCB1cG9uIHNlcnZlciByZXNvdXJjZXMuICBQZXJmb3JtaW5nIGZpbHRlcmluZywgb3IgcmVzaXppbmcgb2YgZXh0cmVtZWx5IGxhcmdlIGltYWdlcywgb3IgbXVsdGlwbGUgaW1hZ2VzIGF0IG9uZSB0aW1lIG1heSBleGNlZWQgdGhlIG1lbW9yeSBhdmFpbGFiaWxpdHkgb2YgeW91ciB3ZWJzZXJ2ZXIgPGVtPihwYXJ0aWN1bGFybHkgb24gc2hhcmVkIGhvc3RzKTwvZW0+LiAgV2hpbGUgaW1hZ2VzIGFyZSBiZWluZyBpbml0aWFsbHkgdHJhbnNmb3JtZWQsIHBhZ2UgbG9hZCB0aW1lIG1heSBiZSBpbmNyZWFzZWQuPC9wPgo8cD48c3Ryb25nIHN0eWxlPSJjb2xvcjogYmx1ZTsiPlRpcDo8L3N0cm9uZz4gd2hlbiBkZWFsaW5nIHdpdGggbGFyZ2UgaW1hZ2VzIGl0IGlzIGltcG9ydGFudCB0byB0cnkgdG8gcmVkdWNlIHRoZWlyIHNpemUgYXMgZWFybHkgYXMgcG9zc2libGUgaW4gdGhlIGZpbHRlcmluZyBwcm9jZXNzIHRvIG1pbmltaXplIHJlc291cmNlIHJlcXVpcmVtZW50cy48L3A+CjxwPlRoaXMgbW9kdWxlIG1ha2VzIGV2dGVuc2l2ZSB1c2Ugb2YgdGhlIEdEIEltYWdlIHByb2Nlc3NpbmcgbGlicmFyeSB0byBkbyBpbWFnZSBtYW5pcHVsYXRpb24uICBBZGRpdGlvbmFsbHksIHRoZSB7Y2dzaV9jb252ZXJ0fSBwbHVnaW4gbWFrZXMgZXh0ZW5zaXZlIHVzZSBvZiB0aGUgc2ltcGxleG1sIGFuZCBYTUxEb20gY2xhc3NlcyBidWlsdCBpbiB0byBwaHAuICBUaGVyZSBtYXkgYmUgb3RoZXIgYWRkaXRpb25hbCByZXF1aXJlbWVudHMuICBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBlcnJvcnMgeW91IHNob3VsZCBlbnN1cmUgdGhhdCBlcnJvciByZXBvcnRpbmcgaXMgZW5hYmxlZCwgYW5kIHRoYXQgeW91IGhhdmUgYW5hbHl6ZWQgeW91ciBlcnJvciBsb2dzLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAwOCwgUm9iZXJ0IENhbXBiZWwgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPiZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+CjxwPkhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAphcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwpNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4Kc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLApidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgpNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCmFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCk9yIHJlYWQgaXQgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5vbmxpbmU8L2E+PC9wPg==]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBBCiRsYW5nWydhY3RfY2FjaGVjbGVhbmVkJ10gPSAnQ2FjaGUgQ2xlYW5lZCc7CiRsYW5nWydhZGRfcm93J10gPSAnQWRkIFJvdyc7CiRsYW5nWydhbGlhcyddID0gJ0FsaWFzJzsKJGxhbmdbJ2FsaWFzZXMnXSA9ICdBbGlhc2VzJzsKJGxhbmdbJ2Fza19jbGVhcl9pbWFnZV9jYWNoZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZW1vdmUgQUxMIGZpbGVzIGZyb20gdGhlIGltYWdlIGNhY2hlPyc7CgojIEMKJGxhbmdbJ2NsZWFyX2FsbCddID0gJ0NsZWFyIEFsbCBGaWxlcyc7CiRsYW5nWydjbGVhcl9ub3cnXSA9ICdDbGVhciBOb3cnOwokbGFuZ1snY2FjaGVfcGF0aCddID0gJ0NhY2hlIFBhdGgnOwokbGFuZ1snY2hlY2tfbWVtb3J5J10gPSAnRG8gcHJlZW1wdGl2ZSBtZW1vcnkgY2hlY2snOwoKIyBECiRsYW5nWydkZWxldGUnXSA9ICdEZWxldGUnOwoKIyBFCiRsYW5nWydlbWJlZGRpbmcnXSA9ICdFbWJlZGRlZCBJbWFnZXMnOwokbGFuZ1snZW1iZWRkaW5nX21vZGUnXSA9ICdJbWFnZSBFbWJlZGRpbmcgTW9kZSc7CiRsYW5nWydlbWJlZF9zaXplbGltaXQnXSA9ICdFbWJlZGRhYmxlIGltYWdlIHNpemUgbGltaXQgKGtiKSc7CiRsYW5nWydlbWJlZF90eXBlcyddID0gJ0VtYmVkZGFibGUgaW1hZ2UgdHlwZSc7CiRsYW5nWydlbmFibGVfcmVzcG9uc2l2ZSddID0gJ0VuYWJsZSBSZXNwb25zaXZlIEltYWdlcyc7CiRsYW5nWydlcnJvcl9hbGlhc19kdXBsaWNhdGVuYW1lX2F0cm93J10gPSAnRHVwbGljYXRlIGFsaWFzIG5hbWUgc3BlY2lmaWVkIGZvciBhbGlhcyBhdCByb3cgJWQnOwokbGFuZ1snZXJyb3JfYWxpYXNfbm9uYW1lX2F0cm93J10gPSAnTm8gbmFtZSBzcGVjaWZpZWQgZm9yIGFsaWFzIGF0IHJvdyAlZCc7CiRsYW5nWydlcnJvcl9hbGlhc19ub29wdGlvbnNfYXRyb3cnXSA9ICdObyBvcHRpb25zIHNwZWNpZmllZCBmb3IgYWxpYXMgYXQgcm93ICVkJzsKJGxhbmdbJ2Vycm9yX2NhY2hlcGF0aF9pbnZhbGlkJ10gPSAnVGhlIGNhY2hlIHBhdGggc3BlY2lmaWVkIGlzIGludmFsaWQnOwokbGFuZ1snZXJyb3JfaW52YWxpZF9hZ2UnXSA9ICdBZ2UgcHJlZmVyZW5jZSBpbnZhbGlkLi4uIE5vIG9wZXJhdGlvbiBwZXJmb3JtZWQnOwokbGFuZ1snZXJyb3JfaW5zdWZmaWNpZW50bWVtb3J5J10gPSAnV2UgaGF2ZSBlc3RpbWF0ZWQgdGhhdCBQSFAgcHJvYmFibHkgZG9lcyBub3QgaGF2ZSBlbm91Z2ggbWVtb3J5IHRvIHByb2Nlc3MgdGhpcyBpbWFnZSc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdBIHJlcXVpcmVkIHBhcmFtZXRlciB3YXMgbWlzc2luZyBvciBpbnZhbGlkOiAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyYW0nXSA9ICdJbnZhbGlkIHBhcmFtZXRlciBpbiBjYWxsOiAlcyc7CiRsYW5nWydlcnJvcl9zcmNub3Rmb3VuZCddID0gJ0NvdWxkIG5vdCBmaW5kIGEgZmlsZSBhdDogJXMnOwokbGFuZ1snZXJyb3JfcmVtb3RlZmlsZSddID0gJ1Byb2JsZW0gcmV0cmlldmluZyByZW1vdGUgZmlsZSBhdCAlcyc7CiRsYW5nWydlcnJvcl91bmtub3duZmlsdGVyJ10gPSAnQ0dTbWFydEltYWdlIC0gVW5rbm93biBGaWx0ZXI6ICVzJzsKCiMgRgokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnQ2FsZ3V5cyBTbWFydCBJbWFnZSBUb29sa2l0JzsKCiMgRwokbGFuZ1snZ2VuZXJhbCddID0gJ0dlbmVyYWwnOwoKIyBICgojIEkKJGxhbmdbJ2luZm9fYWxpYXNlcyddID0gJ0FsaWFlcyBjYW4gYmUgdXNlZCB2aWEgdGhlIGFsaWFzMSB0aHJvdWdoIGFsaWFzNSBvcHRpb25zIG9uIHRoZSBDR1NtYXJ0SW1hZ2UgdGFnIHRvIGNvbWJpbmUgbnVtZXJvdXMgZnJlcXVlbnRseSB1c2VkIG9wdGlvbnMnOwokbGFuZ1snaW5mb19jaGVja19tZW1vcnknXSA9ICdJZiBlbmFibGVkLCB0aGUgc3lzdGVtIHdpbGwgYXR0ZW1wdCB0byBlc3RpbWF0ZSBtZW1vcnkgbmVlZGVkIGZvciBhbiBpbWFnZSB0cmFuc2Zvcm1hdGlvbiwgYW5kIHdpbGwgZmFpbCBpZiBpbnN1ZmZpY2llbnQgYXZhaWxhYmxlIG1lbW9yeSBpcyBkZXRlY3RlZCc7CiRsYW5nWydpbmZvX2Nyb3B0b2ZpdF9kZWZhdWx0X2xvYyddID0gJ1NwZWNpZnkgdGhlIGRlZmF1bHQgbG9jYXRpb24gZnJvbSB3aGljaCB0byAmcXVvdDtjcm9wIHRvIGZpdCZxdW90OyB0aGlzIHdpbGwgZWZmZWN0IGFsbCBjcm9wIHRvIGZpdCBvcGVyYXRpb25zIHVubGVzcyB0aGUgbG9jYXRpb24gcGFyYW1ldGVyIG9uIHRoZSBmaWx0ZXJfY3JvcHRvZml0IGF0dHJpYnV0ZSBvdmVycmlkZXMgaXQuICBEZWZhdWx0IGxvY2F0aW9uIGlzICZxdW90O2NlbnRlciZxdW90Oyc7CiRsYW5nWydpbmZvX3Jlc3BvbnNpdmUnXSA9ICdJZiBlbmFibGVkLCBDR1NtYXJ0SW1hZ2Ugd2lsbCBhdHRlbXB0IHRvIGRldGVjdCB0aGUgbWF4aW11bSByZXNvbHV0aW9uIG9mIHRoZSByZXF1ZXN0aW5nIGRldmljZSBhbmQgYXV0b21hdGljYWxseSByZXNjYWxlIHRoZSBpbWFnZSBzbyB0aGF0IHVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgY2FuIHRoZSBvdXRwdXQgaW1hZ2UgYmUgdG9vIGxhcmdlIGZvciB0aGUgZGlzcGxheS4gIFRoaXMgYXNzaXN0cyBpbiBwZXJmb3JtYW5jZSB3aGVuIGRldmVsb3BpbmcgbW9iaWxlIHdlYnNpdGVzLic7CiRsYW5nWydpbmZvX2ZvcmNlX2V4dGVuc2lvbiddID0gJ0lmIGVuYWJsZWQsIENHU21hcnRJbWFnZSB3aWxsIGZvcmNlIGFsbCBnZW5lcmF0ZWQgaW1hZ2VzIHRvIGhhdmUgYSBmaWxlIGV4dGVuc2lvbi4gPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaG91Z2ggYWxsIGVmZm9ydHMgYXJlIG1hZGUgdG8gZW5zdXJlIGNvcnJlY3RuZXNzLCB0aGUgZmlsZSBleHRlbnNpb24gZ2VuZXJhdGVkIG1heSBub3QgYWNjdXJhdGVseSByZXByZXNlbnQgdGhlIGFjdHVhbCBpbWFnZSB0eXBlLCBkZXBlbmRpbmcgdXBvbiB0aGUgZmlsdGVycyB1c2VkIGFuZCB0aGUgcGFyYW1ldGVycyB0byB0aG9zZSBmaWx0ZXJzLic7CiRsYW5nWydpbmZvX3Jlc3BvbnNpdmVfYnJlYWtwb2ludHMnXSA9ICc8c3Ryb25nPkV4cGVyaW1lbnRhbDo8L3N0cm9uZz4gSWYgc3BlY2lmaWVkLCBhbmQgYSBtb2JpbGUgZGV2aWNlIGlzIGRldGVjdGVkIHRoZSBicmVha3BvaW50cyB3aWxsIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBtYXhpbXVtIGxhcmdlc3QgZWRnZSBmb3IgdGhlIHJlc3VsdGluZyBpbWFnZS4gIFNwZWNpZnkgYSBsaXN0IG9mIGNvbW1hIHNlcGFyYXRlZCBpbmNyZWFzaW5nIGludGVnZXJzIDxlbT4oaS5lOiAyMDAsNDAwLDYwMCw4MDApPC9lbT4uIFRoZSBkZXZpY2UgY2FwYWJpbHRpZXMgd2lsbCBiZSB1c2VkIHRvIGZpbmQgdGhlIGNsb3Nlc3QgbWF0Y2hpbmcgYnJlYWtwb2ludCB2YWx1ZS4gIFRoZSBpbWFnZSB3aWxsIGJlIHJlc2l6ZWQgc28gdGhhdCBpdHMgbGFyZ2VzdCBlZGdlIGlzIGF0IHRoYXQgdmFsdWUgd2l0aG91dCB1cHNjYWxpbmcuICBBc3BlY3QgcmF0aW8gd2lsbCBiZSBtYWludGFpbmVkLic7CiRsYW5nWydpbWFnZV91cmxfaGFzY2FjaGVkaXInXSA9ICdEb2VzIHRoZSBVUkwgYWJvdmUgYWNvdW50IGZvciB0aGUgY2FjaGUgcGF0aD8gaWUuICh1cGxvYWRzL19DR1NtYXJ0SW1hZ2UpJzsKJGxhbmdbJ2ltYWdlX3VybF9wcmVmaXgnXSA9ICdJbWFnZSBVcmwgUHJlZml4JzsKJGxhbmdbJ2luZm9fY2FjaGVfYWdlJ10gPSAnU3BlY2lmeSB0aGUgbWF4aW11bSBhZ2Ugb2YgYSBmaWxlIChpbiBkYXlzKSBiZWZvcmUgaXQgd2lsbCBiZSByZW1vdmVkIGFuZCBmb3JjZWQgdG8gcmVnZW5lcmF0ZS4gIFRoaXMgaXMgdXNlZnVsIGlmIHlvdSBoYXZlIGNoYW5nZWQgc29tZSBvZiB0aGUgcGFyYW1ldGVycyB1c2VkIHdoZW4gZ2VuZXJhdGluZyBpbWFnZXMsIG9yIHRvIGNvbnRyb2wgdGhlIGFtb3VudCBvZiBkaXNrIHNwYWNlIHVzZWQuICBFbnRlcmluZyAwIHdpbGwgZGlzYWJsZSBhdXRvbWF0aWMgZmlsZSBkZWxldGlvbic7CiRsYW5nWydpbmZvX2NhY2hlX3BhdGgnXSA9ICdDYWNoZSBwYXRoIGZvciBjYWNoZSBpbWFnZXMgdG8gYmUgc3RvcmVkLiBDYWNoZSBwYXRoIGlzIHJlbGF0aXZlIHRvIGNvbmZpZyByZWZlcmVuY2UgInJvb3RfcGF0aCIuJzsKJGxhbmdbJ2luZm9fZW1iZWRfbW9kZSddID0gJ1RoaXMgc2VsZWN0aW9uIGRldGVybWluZXMgaG93IHRoZSB7c21hcnRpbWd9IHRhZyB3aWxsIGdlbmVyYXRlIG91dHB1dC4gIElmICZxdW90O25vbmUmcXVvdDsgaXMgc2VsZWN0ZWQgbm8gaW1hZ2UgZW1iZWRkaW5nIHdpbGwgYmUgcGVyZm9ybWVkLiAgSWYgJnF1b3Q7c21hcnQmcXVvdDsgaXMgc2VsZWN0ZWQgdGhlbiB0aGUgc3lzdGVtIHdpbGwgZGVjaWRlIGJhc2VkIG9uIHRoZSBpbWFnZSBzaXplLCB0eXBlLCBhbmQgdGhlIGJyb3dzZXIgdGhhdCBpcyByZXF1ZXN0aW5nIHRoZSBpbWFnZS4gIE90aGVyIG9wdGlvbnMgaW5jbHVkZSBhbHdheXMgZW1iZWRkaW5nIGJhc2VkIG9uIHRoZSBpbWFnZSBzaXplLCBvciB0aGUgaW1hZ2UgdHlwZS4nOwokbGFuZ1snaW5mb19lbWJlZF9zaXplbGltaXQnXSA9ICdJZiB0aGUgZW1iZWRkaW5nIG9wdGlvbiBpcyBkZXRlcm1pZWQgYnkgdGhlIGltYWdlIHNpemUsIHNwZWNpZnkgdGhlIG1heGltdW0gc2l6ZSAoaW4ga2lsb2J5dGVzKSBmb3IgaW1hZ2VzIHRvIGJlIGVtYmVkZGVkICgzMiBpcyByZWNvbW1lbmRlZCkuJzsKJGxhbmdbJ2luZm9fZW1iZWRfdHlwZXMnXSA9ICdJZiB0aGUgZW1iZWRkaW5nIG9wdGlvbiBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBpbWFnZSB0eXBlLCBzcGVjaWZ5IHRoZSBleHRlbnNpb25zIG9mIHRoZSBmaWxlcyB0aGF0IHNob3VsZCBiZSBlbWJlZGRlZCBoZXJlIHNlcGFyYXRlZCBieSBjb21tYXMuICBUaGlzIG9wdGlvbiBpcyBub3QgY2FzZSBzZW5zaXRpdmUnOwokbGFuZ1snaW5mb19pbWFnZV91cmxfaGFzY2FjaGVkaXInXSA9ICdJZiB5b3VyIENETiBpcyBwb2ludGluZyBkaXJlY3RseSBhdCB0aGUgaW1hZ2UgY2FjaGUgZGlyZWN0b3J5IHRoZW4geW91IG1heSB3YW50IHRvIHR1cm4gdGhpcyBvcHRpb24gb24uJzsKJGxhbmdbJ2luZm9faW1hZ2VfdXJsX3ByZWZpeCddID0gJ1NwZWNpZnkgdGhlIFVSTCB0byBwcmVmaXggdG8gYWxsIGdlbmVyYXRlZCBpbWFnZXMuICBCeSBkZWZhdWx0IHRoaXMgaXMgdGhlIHVwbG9hZHMgVVJMLCBob3dldmVyIGlmIHlvdSBoYXZlIHlvdXIgb3duIENETiAob3IgbXVsdGlwbGUgZG9tYWlucyBwb2ludGluZyBhdCB0aGUgc2FtZSBkaXJlY3RvcnkpIFlvdSBtYXkgd2FudCB0byBzcGVjaWZ5IGEgZGlmZmVyZW50IG5hbWUgaGVyZSc7CiRsYW5nWydpbmZvX3N1cHByZXNzX2Vycm9ycyddID0gJ1NwZWNpZnkgYSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgJnF1b3Q7c2lsZW50JnF1b3Q7IHBhcmFtZXRlcic7CgojIE0KJGxhbmdbJ21heF9jYWNoZV9hZ2UnXSA9ICdNYXhpbXVtIENhY2hlIEZpbGUgQWdlIChkYXlzKSc7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0Egc21hcnQgaW1hZ2UgdGFnIGdlbmVyYXRpb24gbW9kdWxlIGZvciBDTVNNUyc7CiRsYW5nWydtc2dfYWxpYXNlc191cGRhdGVkJ10gPSAnQWxpYXNlcyBVcGRhdGVkJzsKJGxhbmdbJ21zZ19jYWNoZWNsZWFuZWQnXSA9ICdDYWNoZSBkaXJlY3RvcnkgY2xlYW5lZC4gJWQgZmlsZXMgcmVtb3ZlZCc7CiRsYW5nWydtc2dfY2FjaGVyZW1vdmVkJ10gPSAnQ2FjaGUgZGlyZWN0b3J5IGNvbXBsZXRlbHkgY2xlYW5lZCc7CiRsYW5nWydtc2dfcHJlZnN1cGRhdGVkJ10gPSAnUHJlZmVyZW5jZXMgVXBkYXRlZCc7CgojIE4KJGxhbmdbJ25vbmUnXSA9ICdOb25lJzsKCiMgTwokbGFuZ1snb3B0aW9ucyddID0gJ09wdGlvbnMnOwoKIyBQCiRsYW5nWydwYXJhbV9hbGlhcyddID0gJ1RoZSBDR1NtYXJ0SW1hZ2UgYWRtaW4gcGFuZWwgYWxsb3dzIGNyZWF0aW5nIG51bWVyb3VzIGNvbW1hbmQgYWxpYXMgdG8gY29tYmluZSBhIGZyZXF1ZW50bHkgdXNlZCBwYXR0ZXJuIG9mIGFyZ3VtZW50cyBpbnRvIG9uZSBuYW1lLiAgVG8gdXNlIHRoZXNlIGFsaWFzZXMgdXNlIGFuIGFyZ3VtZW50IG9mIHRoZSBmb3JtIGFsaWFzIyM9YWxpYXNfbmFtZSBpLmU6ICBhbGlhczE9Zm9vIGFsaWFzMj1mb28uJzsKJGxhbmdbJ3BhcmFtX2FsdCddID0gJ1VzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBzcGVjaWZ5IHRoZSB2YWx1ZSBmb3IgdGhlIGFsdCBhdHRyaWJ1dGUuICBOb3RlLCBpZiB0aGlzIGlzIG5vdCBzcGVjaWZpZWQgYSB2YWx1ZSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY2FsY3VsYXRlZCBmb3IgdGhpcyBhdHRyaWJ1dGUgc28gdGhhdCBtb3N0IGdlbmVyYXRlZCBpbWcgdGFncyB3aWxsIHZhbGlkYXRlLiAgWW91IGNhbiBvdmVycmlkZSB0aGlzIGF1dG8gY2FsY3VsYXRpb24gd2l0aCB0aGUgJnF1b3Q7bm9hdXRvJnF1b3Q7IHBhcmFtZXRlcic7CiRsYW5nWydwYXJhbV9jbGFzcyddID0gJ1VzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBhbGxvd3Mgc3BlY2lmeWluZyBvbmUgb3IgbW9yZSBjbGFzc2VzIHRvIGluY2x1ZGUgb24gdGhlIHRhZy4gIGkuZTogY2xhc3M9ImZhbmN5Ym94IHRodW1ibmFpbCInOwokbGFuZ1sncGFyYW1fZmlsdGVyX2JsdXInXSA9ICcoYW55dGhpbmcpIFNwZWNpZnkgYW55IHZhbHVlIGZvciB0aGlzIHBhcmFtZXRlciB0byBhZGQgYSBibHVyIGZpbHRlciB0byB0aGUgaW1hZ2UnOwokbGFuZ1sncGFyYW1fZmlsdGVyX2JyaWdodG5lc3MnXSA9ICcoaW50ZWdlcikgSW5jcmFzZSB0aGUgYnJpZ2h0bmVzcyBvZiB0aGUgcHJvY2Vzc2VkIGltYWdlIGJ5IHRoZSBpbnRlZ2VyIHZhbHVlIHNwZWNpZmllZCc7CiRsYW5nWydwYXJhbV9maWx0ZXJfY29sb3JpemUnXSA9ICcocixnLGJbLGFscGhhXSkgLSBMaWtlIGZpbHRlcl9ncmF5c2NhbGUgaG93ZXZlciB5b3UgY2FuIHNwZWNpZnkgdGhlIGNvbG9yIGFuZCBhbHBoYSB2YWx1ZSc7CiRsYW5nWydwYXJhbV9maWx0ZXJfY29udHJhc3QnXSA9ICcoaW50ZWdlcikgQ2hhbmdlIHRoZSBjb250cmFzdCBvZiB0aGUgaW1hZ2UgYnkgdGhlIGludGVnZXIgdmFsdWUgc3BlY2lmaWVkJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jcm9wJ10gPSAnKHBlcmNlbnRbLGhfYWxpZ24sdl9hbGlnbl0pIC0gUGVyZm9ybSBjcm9wcGluZyBvbiB0aGUgaW1hZ2Ugc3BlY2lmaWVkLiBDcm9wIHBhcmFtZWV0ZXJzIGFyZSBzcGVjaWZpZWQgYXMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBwYXJhbWV0ZXJzLiAgVGhlIGZpcnN0IChyZXF1aXJlZCkgdmFsdWUgaXMgYW4gaW50ZWdlciBwZXJjZW50YWdlIG9mIHRoZSBvcmlnaW5hbCBpbWFnZSBzaXplLiAgVGhlIG9wdGlvbmFsIHNlY29uZCBhbmQgdGhpcmQgcGFyYW1ldGVycyBhcmUgb25lIG9mIGwsYyxyIChsZWZ0LGNlbnRlcixyaWdodCkgYW5kIHQsYyxiICh0b3AsY2VudGVyLGJvdHRvbSkgc3BlY2lmeWluZyB3aGVyZSB0aGUgbG9jYXRpb24gd2l0aGluIHRoZSBzb3VyY2UgaW1hZ2UgdG8gY3JvcCBmcm9tLiAgaS5lOiBjcm9wPTMzLGIsciB0byBncmFiIGEgY3JvcCBvZiAzMyUgZnJvbSB0aGUgYm90dG9tIHJpZ2h0IG9mIHRoZSBzb3VyY2UgaW1hZ2UuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jcm9wdG9maXQnXSA9ICcod2lkdGgsaGVpZ2h0Wyxsb2NhdGlvblssdXBzY2FsZV1dKSAtIFBlcmZvcm0gYSBjcm9wdG9maXQgb24gdGhlIGltYWdlIHNwZWNpZmllZC4gVGhpcyBhdHRlbXB0cyB0byByZXNjYWxlIHRoZSBpbWFnZSB0byB0aGUgZGVzdGluYXRpb24gc2l6ZSB3aGlsZSByZXRhaW5pbmcgYXNwZWN0IHJhdGlvLCB0aGVuIGZvY3VzIG9uIHRoZSBzZWxlY3RlZCBhcmVhIG9mIHRoZSByZXNpemVkIGltYWdlLiAgQ3JvcCB0byBmaXQgcGFyYW1ldGVycyBhcmUgc3BlY2lmaWVkIGFzIHRoZSBkZXNpcmVkIHdpZHRoIGFuZCBoZWlnaHQgZm9yIHRoZSBkZXN0aW5hdGlvbiBpbWFnZSBhbG9uZyB3aXRoIGFuIChvcHRpb25hbCkgbG9jYXRpb24gY29kZSwgYW5kIHVwc2NhbGUgZmxhZy4gIHZhbGlkIGxvY2F0aW9uIGNvZGVzIGFyZSB0bCx0Yyx0cixjbCxjLGNyLGJsLGIsYnIgZm9yIHRoZSA5IHJlbGF0aXZlIHBvc2l0aW9ucyB3aXRoaW4gdGhlIGltYWdlLiAgSWYgYSBsb2NhdGlvbiBpcyBub3Qgc3BlY2lmaWVkIGEgcHJlZmVyZW5jZSB3aWxsIGJlIHVzZWQuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAmcXVvdDtjJnF1b3Q7IHRvIGNyb3AtdG8tZml0IGZyb20gdGhlIGNlbnRlciBvZiB0aGUgc291cmNlIGltYWdlLiAgQnkgZGVmYXVsdCB1cHNjYWxpbmcgaXMgZGlzYWJsZWQgb24gdGhpcyBmaWx0ZXIuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jcm9wMnNpemUnXSA9ICcod2lkdGgsaGVpZ2h0Wyxsb2NhdGlvbl0pIC0gUGVyZm9ybSBhIGNyb3Agb24gdGhlIGltYWdlIHNwZWNpZmllZC4gIFRoaXMgZmlsdGVyIHdpbGwgY29weSB0aGUgcG9ydGlvbiBvZiB0aGUgc291cmNlIGltYWdlIHNwZWNpZmllZCBpbnRvIHRoZSBkZXN0aW5hdGlvbiBpbWFnZS4gIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IHBhcmFtZXRlcnMgY2FuIGJlIG5vIGxhcmdlciB0aGFuIHRoZSBzaXplIG9mIHRoZSBzb3VyY2UgaW1hZ2UgKGFuZCB3aWxsIGJlIHRyaW1tZWQgYXMgc3VjaC4gIE5lZ2F0aXZlIHZhbHVlcyBhcmUgbm90IHBlcm1pdHRlZC4gIFZhbGlkIGxvY2F0aW9ucyBhcmU6IGwsdGMsdHIsY2wsYyxjcixibCxiYyxiciBmb3IgdGhlIDkgcmVsYXRpdmUgcG9zaXRpb25zIHdpdGhpbiB0aGUgaW1hZ2UuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9lZGdlZGV0ZWN0J10gPSAnKGFueXRoaW5nKSBIaWxpZ2h0IHRoZSBlZGdlcyBpbiB0aGUgaW1hZ2UnOwokbGFuZ1sncGFyYW1fZmlsdGVyX2VtYm9zcyddID0gJyhhbnl0aGluZykgRW1ib3NzIHRoZSBpbWFnZSc7CiRsYW5nWydwYXJhbV9maWx0ZXJfZmxpcCddID0gJyhtb2RlKSAtIFBlcmZvcm0gYSBmbGlwIG9uIHRoZSBzcGVjaWZpZWQgaW1hZ2UuICBTcGVjaWZ5IDAgZm9yIGhvcml6b250YWwsIDEgZm9yIHZlcnRpY2FsLCBhbmQgMiBmb3IgZmxpcCBpbiBib3RoIGRpcmVjdGlvbnMuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9ncmF5c2NhbGUnXSA9ICcoYW55dGhpbmcpIENvbnZlcnQgdGhlIGltYWdlIHRvIGdyYXlzY2FsZSc7CiRsYW5nWydwYXJhbV9maWx0ZXJfbWVhbnJlbW92YWwnXSA9ICcoYW55dGhpbmcpIEF0dGVtcHQgdG8gYWNoaWV2ZSBhICZxdW90O3NrZXRjaHkmcXVvdDsgZWZmZWN0JzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9uZWdhdGUnXSA9ICcoYW55dGhpbmcpIE5lZ2F0ZSB0aGUgaW1hZ2UnOwokbGFuZ1sncGFyYW1fZmlsdGVyX3BpeGVsYXRlJ10gPSAnKHNpemVbLGFkdmFuY2VkXSkgUGl4ZWxhdGUgdGhlIGltYWdlLCBzcGVjaWZ5IGFuIGludGVnZXIgc2l6ZSBhbmQgYW4gb3B0aW9uYWwgYm9vbGVhbiAoZGVmYXVsdCBpcyBmYWxzZSkgdG8gZW5hYmxlIGFkdmFuY2VkIHBpeGVsYXRpb24nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3JlZmxlY3QnXSA9ICcoW3JlZmxlY3Rpb25faGVpZ2h0WyxyZWZsZWN0aW9uX29wYWNpdHlbLGRpdmlkZXJfaGVpZ2h0XV1dKSwgQ3JlYXRlcyByZWZsZWN0aW9uIG9mIGltYWdlLCBjdXJyZW50bHkgd29ya2luZyBvbmx5IHdpdGgganBnLGpwZWcgaW1hZ2VzIGFnYWluc3Qgd2hpdGUgYmFja2dyb3VuZC4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3Jlc2l6ZSddID0gJ3R5cGUsbnVtYmVyWyxudW1iZXJbLHVwc2NhbGVdXSAtIFBlcmZvcm0gYSByZXNpemUgb2YgdGhlIHNvdXJjZSBpbWFnZS4gIEJ5IGRlZmF1bHQsIHRoZSByZXNpemUgZmlsdGVyIGFsbG93cyB1cHNjYWxpbmcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOgo8dWw+CiAgPGxpPnAsbnVtYmVyIC0gUGVyZm9ybSBhIHNpbXBsZSByZXNjYWxlIHRvIGEgY2VydGFpbiBwZXJjZW50YWdlLiAgaS5lOiAgcmVzaXplPXAsNTAgdG8gcmVzaXplIHRvIDUwJSBvZiB0aGUgb3JpZ2luYWwgc2l6ZS48L2xpPgogIDxsaT5wLG51bWJlciwwIC0gUGVyZm9ybSBhIHNpbXBsZSByZXNjYWxlIHRvIGEgY2VydGFpbiBwZXJjZW50YWdlLiAgaS5lOiAgcmVzaXplPXAsNTAgdG8gcmVzaXplIHRvIDUwJSBvZiB0aGUgb3JpZ2luYWwgc2l6ZS4gRG8gbm90IGFsbG93IHVwc2NhbGluZzwvbGk+CiAgPGxpPncsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCB3aWR0aCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPXcsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIHdpZHRoIG9mIDgwIHBpeGVscy48L2xpPgogIDxsaT53LG51bWJlciwwIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCB3aWR0aCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPXcsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIHdpZHRoIG9mIDgwIHBpeGVscy4gRG8gbm90IGFsbG93IHVwc2NhbGluZzwvbGk+CiAgPGxpPmgsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCBoZWlnaHQgKHdoaWxlIHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiBpLmU6IHJlc2l6ZT1oLDgwIHRvIGNyZWF0ZSBhIHRodW1ibmFpbCB3aXRoIGEgbWF4aW11bSBoZWlnaHQgb2YgODAgcGl4ZWxzLjwvbGk+CiAgPGxpPmgsbnVtYmVyLDAgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgc3BlY2lmaWVkIGhlaWdodCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPWgsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIGhlaWdodCBvZiA4MCBwaXhlbHMuIERvIG5vdCBhbGxvdyB1cHNjYWxpbmc8L2xpPgogIDxsaT5lLG51bWJlciAtIFBlcmZvcm0gYSByZXNpemUgcmVzaXppbmcgdGhlIGxhcmdlc3QgZWRnZSB0byB0aGUgc3BlY2lmaWVkIHZhbHVlICh3aGlsZSByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gaS5lOiByZXNpemU9ZSwxMDAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdob3MgbGFyZ2VzdCBlZGdlIGlzIDEwMCBwaXhlbHMuPC9saT4KICA8bGk+ZSxudW1iZXIsMCAtIFBlcmZvcm0gYSByZXNpemUgcmVzaXppbmcgdGhlIGxhcmdlc3QgZWRnZSB0byB0aGUgc3BlY2lmaWVkIHZhbHVlICh3aGlsZSByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gaS5lOiByZXNpemU9ZSwxMDAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdob3MgbGFyZ2VzdCBlZGdlIGlzIDEwMCBwaXhlbHMuICBEbyBub3QgYWxsb3cgdXBzY2FsaW5nLjwvbGk+CiAgPGxpPmMseCx5IC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIGN1c3RvbSBzaXplICh3aXRob3V0IHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgaS5lOiBmaWx0ZXJfcmVzaXplPWMsNTAsNzUgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHRoYXQgaXMgNTB4NzUgcGl4ZWxzLjwvbGk+LgogIDxsaT5jLHgseSwwIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIGN1c3RvbSBzaXplICh3aXRob3V0IHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgaS5lOiBmaWx0ZXJfcmVzaXplPWMsNTAsNzUgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHRoYXQgaXMgNTB4NzUgcGl4ZWxzLiBEbyBub3QgYWxsb3cgdXBzY2FsaW5nLjwvbGk+Lgo8L3VsPic7CiRsYW5nWydwYXJhbV9maWx0ZXJfcmVzaXpldG9maXQnXSA9ICcod2lkdGgsaGVpZ2h0Wyxjb2xvclssYWxwaGFdXSkgLSBQZXJmb3JtIGEgcmVzaXplIG9uIHRoZSBpbWFnZSBzcGVjaWZpZWQuIFRoaXMgYXR0ZW1wdHMgdG8gcmVzY2FsZSB0aGUgaW1hZ2UgdG8gdGhlIGRlc3RpbmF0aW9uIHNpemUgd2hpbGUgcmVhdGluaW5nIGFzcGVjdCByYXRpbywgdGhlIGltYWdlIGlzIGNlbnRlcmVkIGluIHRoZSBib3ggc3BlY2lmaWVkIChlaXRoZXIgaG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgZGVwZW5kaW5nIHVwb24gYXNwZWN0IHJhdGlvIGFuZCB0aGUgZGVzdGluYXRpb24gc2l6ZSwgYW5kIHRoZSBpbWFnZSBpcyBzdXJyb3VuZGVkIGJ5IHRoZSBzdXBwbGllZCBjb2xvci4gIENvbG9ycyBjYW4gYmUgc3BlY2lmaWVkIGJ5IG5hbWUgKHNlZSB0aGUgWDExIGNvbG9yIG5hbWVzKSwgb3IgYnkgI25ubm5ubiBoZXhhZGVjaW1hbCBmb3JtYXQsIG9yIGFzIHJnYiB2YWx1ZXMgc2VwYXJhdGVkIGJ5IGEgOiBpLmU6ICBmaWx0ZXJfY3JvcHRvZml0PTYwMCw0MDAsI2ZmMDAwMC4gIFRoZSBzcGVjaWFsIGNvbG9yIHZhbHVlICZxdW90O3RyYW5zcGFyZW50JnF1b3Q7IGNhbiBiZSBzcGVjaWZpZWQgdG8gZm9yY2UgdGhlIGJhY2tncm91bmQgdG8gYmUgdHJhbnNwYXJlbnQgKGZvciBpbWFnZSB0eXBlcyB0aGF0IHN1cHBvcnQgaXQpLiAgIEFuIGFscGhhIHZhbHVlIG1heSBiZSBzcGVjaWZpZWQgYmV0d2VlbiAwIGFuZCAxMjcgdG8gc3BlY2lmeSBkaWZmZXJlbnQgZGVncmVlcyBvZiB0cmFuc2x1Y2VuY3kgZm9yIHRoZSBiYWNrZ3JvdW5kLiAgIEF0IG5vIHRpbWUgd2lsbCB0aGlzIHBsdWdpbiBwZXJmb3JtIGFueSB1cHNjYWxpbmcuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yb3RhdGUnXSA9ICcoYW5nbGUpIFNwZWNpZnkgdGhlIGludGVnZXIgYW5nbGUgKGNvdW50ZXIgY2xvY2t3aXNlKSB0byByb3RhdGUgdGhlIGltYWdlLCBUaGUgaW1hZ2UgaXMgcm90YXRlZCBhYm91dCBpdHMgY2VudGVyLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfcm91bmRlZGNvcm5lcnMnXSA9ICcocmFkaXVzWyxjb2xvcl0pIFNwZWNpZnkgYW4gaW50ZWdlciByYWRpdXMgKGluIHBpeGVscykgZm9yIHJvdW5kaW5nIHRoZSBjb3JuZXJzLiAgT3B0aW9uYWxseSBzcGVjaWZ5IGEgY29sb3IgZm9yIHRoZSByb3VuZGVkIGNvcm5lcnMuICBUaGUgc3BlY2lhbCB2YWx1ZSBpZiAmcXVvdDt0cmFuc3BhcmVudCZxdW90OyBmb3IgdGhlIGNvbG9yIHdpbGwgZm9yY2UgdGhlIGltYWdlIHRvIGJlIGNvbnZlcnRlZCB0byBhIHBuZyBhbmQgYSB0cmFuc3BhcmVudCBjb2xvciB1c2VkLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfc2hhcnBlbiddID0gJyhpbnRlZ2VyKSBTcGVjaWZ5IGFuIGFkanVzdG1lbnQgKGJldHdlZW4gLTEwIGFuZCAxMCkgdG8gdGhlIHNoYXJwZW4gZmlsdGVyLiAgTG93ZXIgdmFsdWVzIHdpbGwgbGlnaHRlbiB0aGUgc2hhcnBlbmluZyBlZmZlY3QuICBIaWdoZXIgdmFsdWVzIGluY3JlYXNlIGl0LiAgTm90ZTogc2hhcnBlbmluZyBtYXkgaGF2ZSBhZHZlcnNlIGVmZmVjdHMgb24gc29tZSBpbWFnZXMsIGFuZCBzaG91bGQgdXN1YWxseSBiZSBzcGVjaWZpZWQgYXMgdGhlIGxhc3QgZmlsdGVyLCB1bmxlc3MgdGhlIGZpbHRlciBtYXkgYWRkIGJvcmRlcnMgdG90aGUgaW1hZ2UuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl90cmFuc3BhcmVudCddID0gJyhjb2xvclssYWxwaGFdKSBDb252ZXJ0cyBhIGpwZWcgaW1hZ2UgdG8gdHJhbnNwYXJlbnQgUE5HIGJ5IGNvbnZlcnRpbmcgYWxsIG9mIHRoZSBwaXhlbHMgb2YgdGhlIHNwZWNpZmllZCBjb2xvciB0byB0aGUgdHJhbnNwYXJlbnQgY29sb3IuICBPcHRpb25hbGx5LCBhbiBhbHBoYSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEyNyBjYW4gYmUgc3BlY2lmaWVkIHRvIGluZGljYXRlIHNvbWUgYWxwaGEgbGV2ZWwgYmxlbmRpbmcnOwokbGFuZ1sncGFyYW1fZmlsdGVyX3VudHJhbnNwYXJlbnQnXSA9ICcoY29sb3JbLHBlcmNlbnRdKSBDb252ZXJ0cyBhIHRyYW5zcGFyZW50IHBuZyBpbWFnZSB0byBhIGpwZWcgaW1hZ2UgYnkgY29weWluZyBhIHRyYW5zcGFyZW50L2FscGhhIGJsZW5kZWQgcG5nIG92ZXJ0b3Agb2YgYW4gaW1hZ2Ugb2YgdGhlIGFwcHJvcHJpYXRlIGNvbG9yLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfd2F0ZXJtYXJrJ10gPSAnKGFueXRoaW5nKSwgU3BlY2lmeSB0aGF0IHRoZSB3YXRlcm1hcmsgKGFzIHNwZWNpZmllZCBpbiB0aGUgQ0dFeHRlbnNpb25zIGFkbWluIHBhbmVsKSBzaG91bGQgYmUgYXBwbGllZCB0byB0aGUgaW1hZ2UnOwokbGFuZ1sncGFyYW1fZm9yY2VleHQnXSA9ICcoaW50ZWdlcikgRW5hYmxlIChvciBkaXNhYmxlZCkgdGhlIGZvcmNpbmcgb2YgYWxsIGdlbmVyYXRlZCBpbWFnZSBmaWxlcyB0byBoYXZlIGZpbGUgZXh0ZW5zaW9ucy4gIERlcGVuZGluZyB1cG9uIHRoZSBzb3VyY2UgaW1hZ2UsIGFuZCB0aGUgZmlsdGVycyBhbmQgcGFyYW1ldGVycyB1c2VkLCB0aGUgZ2VuZXJhdGVkIGV4dGVuc2lvbiBtYXkgbm90IGFjY3VyYXRlbHkgcmVwcmVzZW50IHRoZSBhY3R1YWwgY29udGVudHMgb2YgdGhlIGZpbGUnOwokbGFuZ1sncGFyYW1fZm9yY2V0eXBlJ10gPSAnKHN0cmluZykgRm9yY2UgdGhlIG91dHB1dCBpbWFnZSB0byBiZSBzYXZlZCBpbiB0aGUgc3BlY2lmaWVkIGltYWdlIHR5cGUsIGluZGVwZW5kZW50IG9mIHRoZSBzb3VyY2UgaW1hZ2UsIGZpbHRlcnMsIGFuZCBwYXJhbWV0ZXJzLiAgVmFsaWQgdmFsdWVzIGFyZToganBlZyxwbmcsZ2lmLiBOb3RlOiBEdWUgdG8gdGhlIGNhcGFiaWxpdGllcyBvZiBzb21lIGltYWdlIGZvcm1hdHMsIHN1cnByaXNpbmcgZWZmZWN0cyBjYW4gb2NjdXIuICBQYXJ0aWN1bGFybHksIGZvcmNpbmcgYSB0cmFuc3BhcmVudCBQTkcgdG8gc2F2ZSBpbiBKUEVHIGZvcm1hdCB3aWxsIHJlc3VsdCBpbiBhbGwgdHJhbnNwYXJlbmN5IGJlaW5nIGxvc3QuJzsKJGxhbmdbJ3BhcmFtX2hlaWdodCddID0gJ1VzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBzcGVjaWZ5IHRoZSB2YWx1ZSBmb3IgdGhlIGhlaWdodCBhdHRyaWJ1dGUuICBOb3RlLCBpZiB0aGlzIGlzIG5vdCBzcGVjaWZpZWQgYSB2YWx1ZSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY2FsY3VsYXRlZCBmb3IgdGhpcyBhdHRyaWJ1dGUgc28gdGhhdCBtb3N0IGdlbmVyYXRlZCBpbWcgdGFncyB3aWxsIHZhbGlkYXRlLiAgWW91IGNhbiBvdmVycmlkZSB0aGlzIGF1dG8gY2FsY3VsYXRpb24gd2l0aCB0aGUgJnF1b3Q7bm9hdXRvJnF1b3Q7IHBhcmFtZXRlci4gIFRoaXMgcGFyYW1ldGVyIHdpbGwgYWxzbyBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlICZxdW90O3dpZHRoJnF1b3Q7IHBhcmFtZXRlciB0byBwZXJmb3JtIGEgZmluYWwgcmVzaXppbmcgb3IgY3JvcHRvZml0IGZpbHRlciAodW5sZXNzIHRoZSAmcXVvdDtub2F1dG9zY2FsZSZxdW90OyBwYXJhbWV0ZXIgaXMgYWxzbyBzdXBwbGllZCknOwokbGFuZ1sncGFyYW1faWQnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgYWxsb3dzIHNwZWNpZnlpbmcgYW4gaWQgYXR0cmlidXRlIHRvIGluY2x1ZGUgb24gdGhlIHRhZy4gIGkuZTogaWQ9InNvbWV0YWciJzsKJGxhbmdbJ3BhcmFtX21heF9oZWlnaHQnXSA9ICdUaGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG1heGltdW0gaGVpZ2h0IGZvciB0aGUgY29udmVydGVkIGltYWdlcy4nOwokbGFuZ1sncGFyYW1fbWF4X3dpZHRoJ10gPSAnVGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBtYXhpbXVtIHdpZHRoIGZvciB0aGUgY29udmVydGVkIGltYWdlcy4nOwokbGFuZ1sncGFyYW1fbmFtZSddID0gJ1VzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBzcGVjaWZ5IHRoZSB2YWx1ZSBmb3IgdGhlIG5hbWUgYXR0cmlidXRlLic7CiRsYW5nWydwYXJhbV9ub2F1dG8nXSA9ICdEbyBub3QgYXV0b21hdGljYWxseSBjYWxjdWxhdGUgcGFyYW1ldGVycyBmb3IgdGhlIGltZyB0YWcuICBUaGlzIG1heSBjYXVzZSB5b3VyIHNpdGUgdG8gZmFpbCB2YWxpZGF0aW9uIGlmIHNvbWUgcmVxdWlyZWQgcGFyYW1ldGVycyAod2lkdGgsaGVpZ2h0LGFsdCkgYXJlIG5vdCBzcGVjaWZpZWQuICBBZGRpdGlvbmFsbHksIGlmIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMgYXJlIHNwZWNpZmllZCwgdGhpcyBwYXJhbWV0ZXIgd2lsbCBlbnN1cmUgdGhhdCB0aGV5IHdpbGwgbm90IGJlIG92ZXJyaWRkZW4gYnkgdGhlIGFjdHVhbCBzaXplIG9mIHRoZSBwcm9jZXNzZWQgaW1hZ2UuJzsKJGxhbmdbJ3BhcmFtX25vYXV0b3NjYWxlJ10gPSAnSWYgd2lkdGggYW5kIGhlaWdodCBwYXJhbWV0ZXJzIGFyZSBzcGVjaWZpZWQsIHRoaXMgcGFyYW1ldGVyIHdpbGwgZGlzYWJsZSBhdXRvbWF0aWMgc2NhbGluZyBvZiB0aGUgaW1hZ2UuICBUaGlzIHBhcmFtZXRlciB3aWxsIGJlIGRpc2FibGVkIGZvciBtb2JpbGUgYnJvd3NlcnMnOwokbGFuZ1sncGFyYW1fbm9iY2FjaGUnXSA9ICdEbyBub3QgYWxsb3cgdGhlIHJlc2l6ZWQgaW1hZ2UgdG8gY2FjaGUgaW4gdGhlIGJyb3dzZXIgKHVzZWZ1bCBmb3IgZGV2ZWxvcG1lbnQgcHVycG9zZXMpIHRoaXMgYWRkcyBhIHVuaXF1ZSBudW1iZXIgYXMgYSBwYXJhbWV0ZXIgdG8gdGhlIGltYWdlIHdoaWNoIHdpbGwgZm9yY2UgdGhlIGJyb3dzZXIgbm90IHRvIGNhY2hlIHRoZSBpbWFnZS4nOwokbGFuZ1sncGFyYW1fbm9icmVha3BvaW50cyddID0gJzxzdHJvbmc+RXhwZXJpbWVudGFsOjwvc3Ryb25nPiBGb3IgcmVzcG9uc2l2ZSBpbWFnZSBoYW5kbGluZywgZGlzYWJsZSBicmVha3BvaW50cyBhbmQgZm9yY2UgcmVndWxhciByZXNpemUgaGFuZGxpbmcgZm9yIGltYWdlcyBvbiBtb2JpbGUgYnJvd3NlcnMuJzsKJGxhbmdbJ3BhcmFtX25vZW1iZWQnXSA9ICdGb3JjZSB0aGUgaW1hZ2UgdG8gbm90IGVtYmVkLiAgUmVnYXJkbGVzcyBvZiBzZXR0aW5ncyBpbiB0aGUgYWRtaW4gcGFuZWwsIHRoZSBVUkwgYW5kIHRhZyBnZW5lcmF0ZWQgd2lsbCBiZSB0byBhIGZpbGUgb24gdGhlIHNlcnZlci4gIE5vIGVtYmVkZGluZyB3aWxsIGJlIHBlcmZvcm1lZCc7CiRsYW5nWydwYXJhbV9ub3RpbWVjaGVjayddID0gJ0Rpc2FibGUgdGltZSBjaGVja2luZyBvZiBjYWNoZWQgZmlsZXMuJzsKJGxhbmdbJ3BhcmFtX25vcmVtb3RlJ10gPSAnRG8gbm90IGFsbG93IHJldHJpZXZpbmcgc291cmNlcyBmcm9tIHJlbW90ZSBVUkxTJzsKJGxhbmdbJ3BhcmFtX25vcmVzcG9uc2l2ZSddID0gJ0RvIG5vdCBwZXJmb3JtIHJlc3BvbnNpdmUgaW1hZ2UgcmVzaXppbmcnOwokbGFuZ1sncGFyYW1fbm9yb3RhdGUnXSA9ICdEbyBub3QgYXR0ZW1wdCB0byByZWFkIGV4aWYgaW5mb3JtYXRpb24gZnJvbSB0aGUgZmlsZSBhbmQgY29ycmVjdCBpbWFnZSByb3RhdGlvbic7CiRsYW5nWydwYXJhbV9ub3RhZyddID0gJ0RvIG5vdCBvdXRwdXQgYW4gaW1nIHRhZywgb25seSB0aGUgdXJsIHRvIHRoZSBjYWNoZWQgaW1hZ2UuICBUaGlzIGhhcyBubyBlZmZlY3Qgd2hlbiBDR1NtYXJ0SW1hZ2UgaXMgdXNlZCBmcm9tIHdpdGhpbiBhIHN0eWxlc2hlZXQuJzsKJGxhbmdbJ3BhcmFtX292ZXJ3cml0ZSddID0gJ0Rpc2FibGUgYWxsIGNhY2hpbmcgYW5kIGZvcmNlIHJlLWNhbGN1bGF0aW9uIG9mIGFsbCBmaWx0ZXJzJzsKJGxhbmdbJ3BhcmFtX3F1YWxpdHknXSA9ICdTcGVjaWZ5IHRoZSBxdWFsaXR5IG9mIHRoZSBvdXRwdXQgaW1hZ2UuICBBIHZhbHVlIGJldHdlZW4gMCBhbmQgMTAwLiAgVGhlIGRlZmF1bHQgdmFsdWUgaWYgbm90IHNwZWNpZmllZCBpcyA3NS4nOwokbGFuZ1sncGFyYW1fcmVsJ10gPSAnVXNlZCB3aGVuIGJ1aWxkaW5nIGFuIGltYWdlIHRhZyBhbGxvd3Mgc3BlY2lmeWluZyBhbiBvcHRpb25hbCByZWwgYXR0cmlidXRlICh0eXBpY2FsbHkgdXNlZCB3aXRoIGphdmFzY3JpcHQgdHlwZSBhbGJ1bXMpLiBpLmU6IHJlbD0iYWxidW0iJzsKJGxhbmdbJ3BhcmFtX3NpbGVudCddID0gJ1NpbGVudGx5IGlnbm9yZSBlcnJvcnMnOwokbGFuZ1sncGFyYW1fc3JjJ10gPSAnU3BlY2lmeSB0aGUgc291cmNlIGZvciB0aGUgaW1hZ2UgcHJvY2Vzc2luZyAoaWYgYW55KSBvciB0aGUgZ2VuZXJhdGVkIGltZyB0YWcuICBOb3RlLCB0aGlzIHBhcmFtZXRlciBpcyBmbGV4aWJsZSwgYW5kIHRoZSBtb2R1bGUgd2lsbCBhdHRlbXB0IG1hbnkgbWV0aG9kcyB0byBmaW5kIHRoZSBzb3VyY2UgaW1hZ2UgZmlsZSBvbiB0aGUgd2ViIHNlcnZlciBhcyBmb2xsb3dzOgo8dWw+CiAgPGxpPkZpcnN0IGxvb2sgdG8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgc3JjIHZhbHVlIGV4aXN0cyBhcyBhIGZpbGUgb24gdGhlIGZpbGVzeXN0ZW0gPHN0cm9uZz5CZWxvdyB0aGUgQ01TTVMgcm9vdCBVUkw8L3N0cm9uZz48L2xpPgogIDxsaT5OZXh0LCBjaGVjayBpZiB0aGUgdmFsdWUgc3BlY2lmaWVkIGZvciB0aGUgc3JjIHBhcmFtZXRlciBpcyBhIFVSTCBhbmQgYmVnaW5zIHdpdGggdGhlIHVwbG9hZHNfdXJsIChhcyBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZy5waHApPC9saT4KICA8bGk+TmV4dCwgY2hlY2sgaWYgdGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgdGhlIHNyYyBwYXJhbWV0ZXIgaXMgYSBVUkwgYW5kIGJlZ2lucyB3aXRoIHRoZSByb290X3VybCAoYXMgc3BlY2lmaWVkIGluIHRoZSBjb25maWcucGhwKTwvbGk+CiAgPGxpPk5leHQsIGNoZWNrIGlmIHRoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yIHRoZSBzcmMgcGFyYW1ldGVyIGlzIGEgVVJMIGFuZCBiZWdpbnMgd2l0aCB0aGUgc3NsX3VybCAoYXMgc3BlY2lmaWVkIGluIHRoZSBjb25maWcucGhwKTwvbGk+CjwvdWw+Ckl0IGlzIGFsc28gcG9zc2libGUgdG8gc3BsaXQgdGhlIHNyYyBwYXJhbWV0ZXIgaW50byBtdWx0aXBsZSBhcmd1bWVudHMsIHdoaWNoIGlzIHVzZWZ1bCBmb3IgZXhhbXBsZSB3aGVuIHRoZSBwYXRoIHRvIHRoZSBmaWxlLCBhbmQgdGhlIGZpbGVuYW1lIGFyZSBzdG9yZWQgaW4gc2VwYXJhdGUgc21hcnR5IHZhcmlhYmxlcy4gICBZb3UgY2FuIHNwZWNpZnkgdGhlIHNyYyBhcyBzcmMxPVwkdGhlX3BhdGggc3JjMj1cJHRoZV9maWxlbmFtZS4gIFRoZSBzeXN0ZW0gd2lsbCBhdXRvbWF0aWNhbGx5IGFkZCBhIC8gaW4gYmV0d2VlbiBlYWNoIGFyZ3VtZW50LiAgVGhlcmUgaXMgbm8gbGltaXQgdG8gdGhlIG51bWJlciBvZiBzcmMgcGFyYW1ldGVycy4nOwokbGFuZ1sncGFyYW1fc3R5bGUnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgYWxsb3dzIHNwZWNpZnlpbmcgYWx0ZXJuYXRlIHN0eWxlcyBmb3IgdGhlIHRhZy4gIGkuZTogc3R5bGU9ImJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyInOwokbGFuZ1sncGFyYW1fdGl0bGUnXSA9ICdTcGVjaWZ5IGFuIG9wdGlvbmFsIHRpdGxlIGF0dHJpYnV0ZSBmb3IgdGhlIGltZyB0YWcuICBpLmU6IHRpdGxlPSJUaGlzIGlzIHRoZSB0b29sdGlwIic7CiRsYW5nWydwYXJhbV93aWR0aCddID0gJ1VzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBzcGVjaWZ5IHRoZSB2YWx1ZSBmb3IgdGhlIHdpZHRoIGF0dHJpYnV0ZS4gICBOb3RlLCBpZiB0aGlzIGlzIG5vdCBzcGVjaWZpZWQgYSB2YWx1ZSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY2FsY3VsYXRlZCBmb3IgdGhpcyBhdHRyaWJ1dGUgc28gdGhhdCBtb3N0IGdlbmVyYXRlZCBpbWcgdGFncyB3aWxsIHZhbGlkYXRlLiAgWW91IGNhbiBvdmVycmlkZSB0aGlzIGF1dG8gY2FsY3VsYXRpb24gd2l0aCB0aGUgJnF1b3Q7bm9hdXRvJnF1b3Q7IHBhcmFtZXRlci4gIFRoaXMgcGFyYW1ldGVyIHdpbGwgYWxzbyBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlICZxdW90O2hlaWdodCZxdW90OyBwYXJhbWV0ZXIgdG8gcGVyZm9ybSBhIGZpbmFsIHJlc2l6aW5nIG9yIGNyb3B0b2ZpdCBmaWx0ZXIgKHVubGVzcyB0aGUgJnF1b3Q7bm9hdXRvc2NhbGUmcXVvdDsgcGFyYW1ldGVyIGlzIGFsc28gc3VwcGxpZWQpJzsKCiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ01vZHVsZSBpbnN0YWxsZWQnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0FsbCBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1vZHVsZSBoYXMgYmVlbiByZW1vdmVkJzsKJGxhbmdbJ3Byb21wdF9jcm9wdG9maXRfZGVmYXVsdF9sb2MnXSA9ICdEZWZhdWx0IGxvY2F0aW9uIGZyb20gd2hpY2ggdG8gJnF1b3Q7Y3JvcCB0byBmaXQmcXVvdDsnOwokbGFuZ1sncHJvbXB0X2VtYmVkX3NpemVsaW1pdCddID0gJ0Jhc2VkIG9uIGltYWdlIHNpemUnOwokbGFuZ1sncHJvbXB0X2VtYmVkX3NtYXJ0bGltaXRlZCddID0gJ1NtYXJ0IG1vZGUgYnV0IGxpbWl0IGltYWdlIHNpemUnOwokbGFuZ1sncHJvbXB0X2VtYmVkX3R5cGUnXSA9ICdCYXNlZCBvbiBpbWFnZSB0eXBlJzsKJGxhbmdbJ3Byb21wdF9mb3JjZV9leHRlbnNpb24nXSA9ICdGb3JjZSBhbGwgb3V0cHV0IGZpbGVzIHRvIGhhdmUgYSBmaWxlIGV4dGVuc2lvbic7CiRsYW5nWydwcm9tcHRfbG9jX2JvdHRvbWxlZnQnXSA9ICdCb3R0b20gTGVmdCAoYmwpJzsKJGxhbmdbJ3Byb21wdF9sb2NfYm90dG9tY2VudGVyJ10gPSAnQm90dG9tIENlbnRlciAoYmMpJzsKJGxhbmdbJ3Byb21wdF9sb2NfYm90dG9tcmlnaHQnXSA9ICdCb3R0b20gUmlnaHQgKGJyKSc7CiRsYW5nWydwcm9tcHRfbG9jX2NlbnRlcmxlZnQnXSA9ICdDZW50ZXIgTGVmdCAoY2wpJzsKJGxhbmdbJ3Byb21wdF9sb2NfY2VudGVyJ10gPSAnQ2VudGVyIChjKSc7CiRsYW5nWydwcm9tcHRfbG9jX2NlbnRlcnJpZ2h0J10gPSAnQ2VudGVyIFJpZ2h0IChjbCknOwokbGFuZ1sncHJvbXB0X2xvY190b3BsZWZ0J10gPSAnVG9wIExlZnQgKHRsKSc7CiRsYW5nWydwcm9tcHRfbG9jX3RvcGNlbnRlciddID0gJ1RvcCBDZW50ZXIgKHRjKSc7CiRsYW5nWydwcm9tcHRfbG9jX3RvcHJpZ2h0J10gPSAnVG9wIFJpZ2h0ICh0ciknOwoKIyBSCiRsYW5nWydyZXNpemluZyddID0gJ1Jlc2l6aW5nJzsKJGxhbmdbJ3Jlc3BvbnNpdmUnXSA9ICdSZXNwb25zaXZlbmVzcyc7CiRsYW5nWydyZXNwb25zaXZlX2JyZWFrcG9pbnRzJ10gPSAnU3BlY2lmeSByZXNwb25zaXZlIGltYWdlIG1heGltdW0gZWRnZSBicmVha3BvaW50cyc7CgojIFMKJGxhbmdbJ3NtYXJ0J10gPSAnU21hcnQnOwokbGFuZ1snc3VibWl0J10gPSAnU3VibWl0JzsKJGxhbmdbJ3N1cHByZXNzX2Vycm9ycyddID0gJ1N1cHByZXNzIEVycm9ycyc7Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FjdF9jYWNoZWNsZWFuZWQnXSA9ICdad2lzY2hlbnNwZWljaGVyIGdlbGVlcnQnOwokbGFuZ1snYWRkX3JvdyddID0gJ1plaWxlIGhpbnp1ZiZ1dW1sO2dlbic7CiRsYW5nWydhbGlhcyddID0gJ0FsaWFzICc7CiRsYW5nWydhbGlhc2VzJ10gPSAnQWxpYXNlJzsKJGxhbmdbJ2Fza19jbGVhcl9pbWFnZV9jYWNoZSddID0gJ1dvbGxlbiBTaWUgd2lya2xpY2ggQUxMRSBEYXRlaWVuIGF1cyBkZW0gWndpc2NoZW5zcGVpY2hlciBlbnRmZXJuZW4/JzsKJGxhbmdbJ2NsZWFyX2FsbCddID0gJ0FsbGUgRGF0ZWllbiBsJm91bWw7c2NoZW4nOwokbGFuZ1snY2xlYXJfbm93J10gPSAnSmV0enQgbCZvdW1sO3NjaGVuJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0wmb3VtbDtzY2hlbic7CiRsYW5nWydlbWJlZGRpbmcnXSA9ICdFaW5nZWJldHRldGUgQmlsZGVyJzsKJGxhbmdbJ2VtYmVkZGluZ19tb2RlJ10gPSAnQmlsZGVpbmJldHR1bmdzbW9kdXMnOwokbGFuZ1snZW1iZWRfc2l6ZWxpbWl0J10gPSAnQmlsZGVyIGVpbmJldHRlbiBiaXMgbWF4aW1hbCAoa2IpJzsKJGxhbmdbJ2VtYmVkX3R5cGVzJ10gPSAnQmlsZGVyIGRlcyBUeXBzIGVpbmJldHRlbic7CiRsYW5nWydlcnJvcl9hbGlhc19kdXBsaWNhdGVuYW1lX2F0cm93J10gPSAnRGVuIEFsaWFzLU5hbWVuLCBkZXIgZiZ1dW1sO3IgQWxpYXMgaW4gWmVpbGUgJWQgYW5nZWdlYmVuIHd1cmRlLCBkdXBsaXppZXJlbi4nOwokbGFuZ1snZXJyb3JfYWxpYXNfbm9uYW1lX2F0cm93J10gPSAnS2VpbiBOYW1lIGYmdXVtbDtyIGRlbiBBbGlhcyBpbiBaZWlsZSAlZCBhbmdlZ2ViZW4uJzsKJGxhbmdbJ2Vycm9yX2FsaWFzX25vb3B0aW9uc19hdHJvdyddID0gJ0tlaW5lIE9wdGlvbmVuIGYmdXVtbDtyIGRlbiBBbGlhcyBpbiBaZWlsZSAlZCBhbmdlZ2ViZW4uJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfYWdlJ10gPSAnQWx0ZXJzZWluc3RlbGx1bmcgdW5nJnV1bWw7bHRpZyAuLi4ga2VpbmUgQWt0aW9uIGF1c2dlZiZ1dW1sO2hydCc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdFaW4gZXJmb3JkZXJsaWNoZXIgUGFyYW1ldGVyIGZlaGx0IG9kZXIgaXN0IHVuZyZ1dW1sO2x0aWc6ICVzJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXJhbSddID0gJ1VuZyZ1dW1sO2x0aWdlciBQYXJhbWV0ZXIgaW4gJXMnOwokbGFuZ1snZXJyb3Jfc3Jjbm90Zm91bmQnXSA9ICdLb25udGUgRGF0ZWkgaW4gJXMgbmljaHQgZmluZGVuJzsKJGxhbmdbJ2Vycm9yX3JlbW90ZWZpbGUnXSA9ICdFcyBnYWIgZWluIFByb2JsZW0sIGRpZSBlbnRmZXJudGUgRGF0ZWkgaW4gJXMgenUgZmluZGVuLic7CiRsYW5nWydlcnJvcl91bmtub3duZmlsdGVyJ10gPSAnQ0dTbWFydEltYWdlICZuZGFzaDsgVW5iZWthbm50ZXIgRmlsdGVyOiAlcyc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdDYWxndXlzIFNtYXJ0LUltYWdlLVdlcmt6ZXVnZSc7CiRsYW5nWydnZW5lcmFsJ10gPSAnQWxsZ2VtZWluJzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgc2ltcGxlIHdheSB0byBwcm9jZXNzLCBhbmQgZGlzcGxheSBpbWFnZXMgb24geW91ciB3ZWIgcGFnZS4gIEl0IGFsbG93cyBzaW1wbGUgaW1hZ2UgcHJvY2Vzc2luZywgYW5kIHdhdGVybWFya2luZy4gIFRoaXMgbW9kdWxlIG1ha2VzIGRpc3BsYXlpbmcgcHJvY2Vzc2VkIGltYWdlcyBvbiB5b3VyIHdlYnNpdGUgdHJpdmlhbC4gIEl0IGFsc28gcHJvdmlkZXMgZmVhdHVyZXMgdG8gaW1wcm92ZSB0aGUgcGVyZm9ybWFuY2UgcmF0aW5nIG9mIHlvdXIgd2Vic2l0ZSwgbWFraW5nIHlvdXIgd2Vic2l0ZSBwb3dlcmZ1bCBhbmQgZmFzdCBhdCB0aGUgc2FtZSB0aW1lLjwvcD4NCjxoMz5GZWF0dXJlczwvaDM+DQo8dWw+DQo8bGk+UG93ZXJmdWwsIGJ1dCBzaW1wbGUgdG8gdXNlIGltYWdlIGZpbHRlcmluZyBhbmQgcHJvY2Vzc2luZy4gRmlsdGVyaW5nIGluY2x1ZGVzOg0KICA8dWw+DQogICAgPGxpPkJsdXI8L2xpPg0KICAgIDxsaT5CcmlnaHRuZXNzPC9saT4NCiAgICA8bGk+Q29sb3JpemU8L2xpPg0KICAgIDxsaT5Db250cmFzdDwvbGk+DQogICAgPGxpPkNyb3A8L2xpPg0KICAgIDxsaT48c3Ryb25nPkNyb3AgVG8gRml0PC9zdHJvbmc+PC9saT4NCiAgICA8bGk+RWRnZSBEZXRlY3Rpb248L2xpPg0KICAgIDxsaT5FbWJvc3M8L2xpPiANCiAgICA8bGk+R3JheXNjYWxlPC9saT4NCiAgICA8bGk+TWVhbiBSZW1vdmFsPC9saT4NCiAgICA8bGk+TmVnYXRlPC9saT4NCiAgICA8bGk+UGl4ZWxhdGU8L2xpPg0KICAgIDxsaT5SZXNpemU8L2xpPg0KICAgIDxsaT5Sb3RhdGU8L2xpPg0KICAgIDxsaT5TZWxpY3RpdmUgQmx1cjwvbGk+DQogICAgPGxpPlNtb290aDwvbGk+DQogICAgPGxpPldhdGVybWFyazwvbGk+DQogIDwvdWw+DQo8L2xpPjxici8+DQo8bGk+U21hcnQgZGV0ZWN0aW9uIG9mIGltYWdlcy4gIFNwZWNpZnkgYWJzb2x1dGUgVVJMUywgYWJzb2x1dGUgcGF0aHMsIG9yIGZpbGVzIHJlbGF0aXZlIHRvIHlvdXIgcm9vdCBpbnN0YWxsYXRpb24uPC9saT4NCjxsaT5BdXRvbWF0aWMgZG93bmxvYWRpbmcsIGNhY2hpbmcsIHByb2Nlc3NpbmcsIGFuZCByZS1jYWNoaW5nIG9mIGltYWdlcyBmcm9tIHJlbW90ZSB3ZWJzaXRlcy48L2xpPg0KPGxpPlNtYXJ0IGF1dG9tYXRpYyByZXNpemluZyAoYXV0b21hdGljYWxseSByZXNpemUgdG8gZGVzaXJlZCB3aWR0aCBhbmQgaGVpZ2h0IGJlZm9yZSBzZXJ2aW5nIHRoZSBpbWFnZS4uLiByZXNpemluZyB0byB3aWR0aCBBTkQgaGVpZ2h0IGRvZXMgYSBjcm9wIHRvIGZpdC4gPGVtPihqdXN0IHNwZWNpZnkgYSB3aWR0aCwgYW5kL29yIGhlaWdodCBwYXJhbWV0ZXIgdG8gdGhlIENHU21hcnRJbWFnZSB0YWcuKTwvZW0+PC9saT4NCjxsaT5BdXRvbWF0aWNhbGx5IHJlYWRzIGltYWdlIEVYSUYgaW5mb3JtYXRpb24gYW5kIGNvcnJlY3RzIHRoZSBvcmllbnRhdGlvbi48L2xpPg0KPGxpPkltYWdlIGNoYW5nZSBkZXRlY3Rpb24sIGlmIHRoZSBtYXN0ZXIgaW1hZ2UgaXMgY2hhbmdlZCBzY2FsZWQgaW1hZ2VzIHdpbGwgYmUgcmVnZW5lcmF0ZWQuIChzZWUgdGhlIG5vdGltZWNoZWNrIHBhcmFtZXRlciB0byBkaXNhYmxlIHRoaXMgYmVoYXZpb3IpLjwvbGk+DQo8bGk+U21hcnQgYXR0cmlidXRlIGdlbmVyYXRpb24gZm9yIGltYWdlcy48L2xpPg0KPGxpPlByb2Nlc3NlZCBpbWFnZXMgYXJlIGNhY2hlZCBvbiB0aGUgc2VydmVyIGZvciBmYXN0ZXIgc2VydmluZy48L2xJPg0KPGxpPlRoZSBhYmlsaXR5IHRvIHVzZSBhIHNlcGFyYXRlIFVSTCAoQ0ROKSBmb3Igc2VydmluZyBpbWFnZXM8L2xpPg0KPGxpPkltYWdlIHByb2Nlc3NlcyBjYW4gYmUgY29tYmluZWQsIGFuZCBhcmUgZXhlY3V0ZWQgaW4gb3JkZXIuPC9saT4NCjxsaT5Qcm92aWRlcyB0aGUgYWJpbGl0eSB0byBlbWJlZCBpbWFnZXMgZGlyZWN0bHkgaW50byB0aGUgY29udGVudCBvZiB0aGUgd2ViIHBhZ2UgdG8gbWluaW1pemUgc3BhY2UuPC9saT4NCjxsaT5Qcm92aWRlcyB0aGUgYWJpbGl0eSB0byBsaW1pdCBlbWJlZGRpbmcgaW1hZ2VzIHNtYXJ0bHksIG9ubHkgdG8gYnJvd3NlcnMgdGhhdCBhcmUgY2FwYWJsZSBvZiB1bmRlcnN0YW5kaW5nIHRoZW0uPC9saT4NCjxsaT5Db21iaW5lIGNvbW1vbmx5IHVzZWQgYXJndW1lbnRzIGludG8gbmFtZWQgYWxpYXNlcy48L2xpPg0KPGxpPkFsc28gd29ya3Mgd2l0aGluIHN0eWxlc2hlZXRzIHZpYSB0aGUge2Ntc19zdHlsZXNoZWV0fSB0YWcuPC9saT4NCjxsaT5UaGUgYWJpbGl0eSB0byBhdXRvbWF0aWNhbGx5IHByb2Nlc3MgaW1hZ2VzIGluc2lkZSBhIGJsb2NrIG9mIGh0bWwgY29kZSB1c2luZyB0aGUge2Nnc2lfY29udmVydH0gYmxvY2sgdGFnLjwvbGk+DQo8bGk+TW9yZS4uLjwvbGk+DQo8L3VsPg0KPGgzPldoeSBzaG91bGQgSSB1c2UgaXQ/PC9oMz4NCjxwPlRoZXJlIGFyZSBmb3VyIHZlcnkgaW1wb3J0YW50IHJlYXNvbnMgdG8gdXNlIHRoaXMgcGx1Z2luOjwvcD4NCjx1bD4NCiAgPGxpPlBlcmZvcm1hbmNlOiAgVXNpbmcgaW1hZ2UgZW1iZWRkaW5nIChldmVuIGlmIG5vIG90aGVyIGZ1bmN0aW9ucyBhcmUgdXNlZCkgcmVzdWx0cyBpbiBmZXdlciByZXF1ZXN0cy4gIE1vc3QgYnJvd3NlcnMgb25seSBwZXJmb3JtIHR3byB0byBmb3VyIHNpbXVsdGFuZW91cyByZXF1ZXN0cyB0byB0aGUgc2FtZSBkb21haW4gYXQgdGhlIHNhbWUgdGltZS4gIEZvciB3ZWIgcGFnZXMgd2l0aCBsb3RzIG9mIGltYWdlcyB0aGlzIGNhbiBzZXJpb3VzbHkgc2xvdyBkb3duIHlvdXIgc2l0ZS48L2xpPg0KICA8bGk+UGVyZm9ybWFuY2U6ICBFdmVuIGlmIG5vdCB1c2luZyBlbWJlZGRpbmcsIHNlbmRpbmcgbGFyZ2UgaW1hZ2VzIHRvIHlvdXIgdmlzaXRvcnMsIGFuZCBhc2tpbmcgdGhlaXIgYnJvd3NlciB0byBzY2FsZSB0aGUgaW1hZ2UgaXMgdmVyeSB2ZXJ5IHNsb3cuPC9saT4NCiAgPGxpPlNlY3VyaXR5OiAgQ0dTbWFydEltYWdlIGNhY2hlcyBpdHMgaW1hZ2VzIGluIGEgc2VwYXJhdGUgZGlyZWN0b3J5LCB0aGVyZWJ5IGhpZGluZyB0aGUgb3JpZ2luYWwgKHBlcmhhcHMgY29weXJpZ2h0ZWQpIGltYWdlcyBmcm9tIHlvdXIgdXNlcnMuICBJZiBlbWJlZGRpbmcgaXMgdXNlZCB0aGV5IGNhbnQgZXZlbiBmaW5kIHRoZSBjYWNoZWQgbG9jYXRpb24pPC9saT4NCiAgPGxpPlNpbXBsaWNpdHk6ICBUaGUgZmlsdGVyaW5nIGNhcGFiaWxpdGllcyBvZiBDR1NtYXJ0SW1hZ2UgYWxsb3cgeW91IHRvIGF1dG9tYXRpY2FsbHkgcHJvY2VzcyBpbWFnZXMgZm9yIGNvbnNpc3RlbnQgYW5kIHNlY3VyZSBkaXNwbGF5LCB3aXRob3V0IHNpdGUgZWRpdG9ycyBoYXZpbmcgdG8gcGxheSB3aXRoIHRoZW0uICBUaGV5IGNhbiB1cGxvYWQgbGFyZ2VyIGltYWdlcywgYW5kIHlvdXIgc2l0ZSB3aWxsIGp1c3QgaGFuZGxlIHRoZW0gcHJvcGVybHkuPC9saT4NCjwvdWw+DQo8aDM+SG93IGRvIEkgdXNlIGl0PzwvaDM+DQo8cD5UaGUgc2ltcGxlc3Qgd2F5IHRvIHVzZSB0aGlzIG1vZHVsZSBpcyB0byB1c2UgaXQgaW4gdGhlIHNhbWUgcGxhY2UgeW91IHdvdWxkIHRoZSB7aW1hZ2V9IHRhZy4gIEkuZTogU29tZXRoaW5nIGxpa2UgPGNvZGUgc3R5bGU9JnF1b3Q7Y29sb3I6IGJsdWU7JnF1b3Q7PntDR1NtYXJ0SW1hZ2Ugc3JjPSYjMDM5O3VwbG9hZHMvaW1hZ2VzL3BpY3R1cmUuanBnJiMwMzk7fTwvY29kZT4uICBUaGlzIHdpbGwgZ2VuZXJhdGUgdGhlIGltYWdlIHRhZyBmb3IgeW91IHdpdGggbm8gcHJvY2Vzc2luZy4gIEFuZCBpZiBwb3NzaWJsZSwgZW1iZWQgdGhlIGltYWdlIGRpcmVjdGx5IGludG8geW91ciBodG1sIG91dHB1dC48L3A+DQo8cD5PZnRlbiBwZW9wbGUgd2FudCB0byBkaXNwbGF5IGEgd2F0ZXJtYXJrIG9uIHRoZSBpbWFnZXMgdGhhdCB0aGV5IGRpc3BsYXkgb24gdGhlIGZyb250ZW5kIHRvIHByZXZlbnQgaW1hZ2UgdGhlZnQuICBUaGUgQ0dFeHRlbnNpb25zIG1vZHVsZSBwcm92aWRlcyBzZXR0aW5ncyBmb3IgeW91IHRvIGNvbmZpZ3VyZSB3YXRlcm1hcmtpbmcgYW5kIHlvdSBjYW4gZW5hYmxlIHRoYXQgd2l0aCBhbnkgaW1hZ2Ugd2l0aCBhIHRhZyBsaWtlIHRoaXM6IDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57Q0dTbWFydEltYWdlIHNyYz0mIzAzOTt1cGxvYWRzL2ltYWdlcy9waWN0dXJlLmpwZyYjMDM5OyBmaWx0ZXJfd2F0ZXJtYXJrPTF9PC9jb2RlPi4gIFRoaXMgd2lsbCByZWFkIHRoZSBpbWFnZSwgYXBwbHkgdGhlIHdhdGVybWFyayBhY2NvcmRpbmcgdG8gdGhlIHNldHRpbmdzIGluIENHRXh0ZW5zaW9ucywgY2FjaGUgdGhlIGFsdGVyZWQgaW1hZ2UsIGFuZCB0aGVuIGVtYmVkIGl0IGludG8geW91ciBvdXRwdXQuPC9wPg0KPHA+QWxzbywgUGljdHVyZXMgdGFrZW4gYnkgbW9kZXJuIGRpZ2l0YWwgY2FtZXJhcyBhcmUgb2Z0ZW4gdG9vIGxhcmdlIGZvciB1c2Ugb24gYSB3ZWJzaXRlLCB0aGVyZWZvcmUgdGhleSBuZWVkIHRvIGJlIHNjYWxlZCBiZWZvcmUgZGlzcGxheWVkIG9uIHlvdXIgcGFnZS4gIFRoaXMgY2FuIGJlIGRvbmUgcXVpdGUgZWFzaWx5IHdpdGggYSB0YWcgbGlrZTogPGNvZGUgc3R5bGU9JnF1b3Q7Y29sb3I6IGJsdWU7JnF1b3Q7PntDR1NtYXJ0SW1hZ2Ugc3JjPSYjMDM5O3VwbG9hZHMvaW1hZ2VzL3BpY3R1cmUuanBnJiMwMzk7IGZpbHRlcl93YXRlcm1hcms9MSBmaWx0ZXJfcmVzaXplPSYjMDM5O3csMzUwJiMwMzk7fTwvY29kZT4uICBBcyB5b3UgbWF5IHRoaW5rLCB0aGUgd2F0ZXJtYXJrIHdpbGwgYmUgYXBwbGllZCB0byB0aGUgaW1hZ2UgYmVmb3JlIGl0IGlzIHJlc2l6ZWQgdG8gYSBtYXhpbXVtIHdpZHRoIG9mIDMwMCBwaXhlbHMgKHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgVGhlbiB0aGUgYWRqdXN0ZWQgaW1hZ2Ugd2lsbCBiZSBjYWNoZWQsIGFuZCBpZiB0aGUgYnJvd3NlciBhbGxvd2VzIHRoZSBpbWFnZSB3aWxsIGJlIGVtYmVkZGVkIGludG8gdGhlIEhUTUwgb3V0cHV0LiAgSWYgZW1iZWRkaW5nIGlzIG5vdCBwb3NzaWJsZSwgdGhlIGltZyB0YWcgd2lsbCBjb250YWluIHRoZSBVUkwgdG8gdGhlIGNhY2hlZCBpbWFnZS48L3A+DQo8cD5Gcm9tIGhlcmUgeW91IGNhbiBjb21iaW5lIHRoZSBvcHRpb25zIGJlbG93IHRvIHBlcmZvcm0gYWxvdCBvZiBkaWZmZXJlbnQgZWZmZWN0cyB0byB5b3VyIGltYWdlcywgYnVpbGQgc2ltcGxlIGdhbGxlcmllcywgYW5kIGltcHJvdmUgeW91ciBzaXRlIHBlcmZvcm1hbmNlIGF0IHRoZSBzYW1lIHRpbWUuICBFbmpveSE8L3A+DQo8aDM+QXV0b21hdGljIGltYWdlIHJlc2l6aW5nPC9oMz4NCiAgPHA+SWYgeW91IHNwZWNpZnkgYSB3aWR0aCwgYW5kL29yIGEgaGVpZ2h0IHBhcmFtZXRlciwgYW5kIGRvIG5vdCBzcGVjaWZ5IHRoZSAmYW1wO3F1b3Q7bm9hdXRvc2NhbGUmYW1wO3F1b3Q7IHBhcmFtZXRlciwgdGhlIG1vZHVsZSB3aWxsIGFuYWx5emUgdGhlIGZpbHRlcnMgeW91IGhhdmUgYWxyZWFkeSBzcGVjaWZpZWQsIGFuZCBpZiB0aGVyZSBpcyBubyByZXNpemUgZmlsdGVyIGFscmVhZHkgc3BlY2lmaWVkIGF1dG9tYXRpY2FsbHkgYWRkIGEgZmlsdGVyIHRvIHJlc2l6ZSBvciBjcm9wdG9maXQgdGhlIGltYWdlIG9uIG91dHB1dC4gIFRoaXMgaXMgdXNlZnVsIHRvIGRvIGF1dG9tYXRpYyB0aHVtYm5haWxpbmcgb24gdGhlIHNlcnZlciwgYW5kIG5vdCByZXF1aXJlIHRoZSBicm93c2VyIHRvIHJlc2l6ZSB0aGUgaW1hZ2UuPC9wPg0KIDxoMz5BIFNpbXBsZSBHYWxsZXJ5PC9oMz4NCjxwPlRoZSBjb2RlIGJlbG93IHVzZXMgdGhlIHtDR1NtYXJ0SW1hZ2V9IG1vZHVsZSwgZmFuY3lib3gsIGFuZCBhIGJpdCBvZiBzbWFydHkgbWFnaWMgdG8gZ2VuZXJhdGUgYSBzaW1wbGUgbGlnaHRib3ggc3R5bGUgYWxib20gZnJvbSBhIHN1YmRpcmVjdG9yeSBvbiB5b3VyIHdlYnNpdGUsIHdoaWxlIHByb2Nlc3NpbmcgdGhlIGltYWdlcyBmb3Igd2ViIHN0YW5kYXJkcywgYW5kIGNyZWF0aW5nIHRodW1ibmFpbHMuPC9wPg0KPHByZSBzdHlsZT0mcXVvdDtiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsmcXVvdDs+PGNvZGU+PHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDE6PC9zcGFuPiAmYW1wO2x0O3NjcmlwdCB0eXBlPSZxdW90O3RleHQvamF2YXNjcmlwdCZxdW90OyZhbXA7Z3Q7e2xpdGVyYWx9DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gMjo8L3NwYW4+IGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsNCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiAzOjwvc3Bhbj4gIGpRdWVyeSgmIzAzOTthLmZhbmN5Ym94JiMwMzk7KS5mYW5jeWJveCgpOw0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDQ6PC9zcGFuPiB9KTsNCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiA1Ojwvc3Bhbj4gey9saXRlcmFsfSZhbXA7bHQ7L3NjcmlwdCZhbXA7Z3Q7DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gNjo8L3NwYW4+IHthc3NpZ24gdmFyPSYjMDM5O2ZpbGVzJiMwMzk7IHZhbHVlPSYjMDM5O3VwbG9hZHMvYWxidW0vKi5qcGcmIzAzOTt8Z2xvYn0NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiA3Ojwvc3Bhbj4ge2lmIGNvdW50KCRmaWxlcyl9DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gODo8L3NwYW4+ICZhbXA7bHQ7ZGl2IHN0eWxlPSZxdW90O3dpZHRoOiAxMDAlOyBoZWlnaHQ6IDE1MHB4OyBvdmVyZmxvdzogYXV0bzsmcXVvdDsmYW1wO2d0Ow0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDk6PC9zcGFuPiB7Zm9yZWFjaCBmcm9tPSRmaWxlcyBpdGVtPSYjMDM5O2ZpbGUmIzAzOTt9DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xMDo8L3NwYW4+ICAmYW1wO2x0O2EgcmVsPSYjMDM5O3NpbXBsZV9hbGJ1bSYjMDM5OyBjbGFzcz0mcXVvdDtmYW5jeWJveCZxdW90OyBocmVmPSZxdW90OzxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57Q0dTbWFydEltYWdlIHNyYz0kZmlsZSBmaWx0ZXJfcm90YXRlPTkwIGZpbHRlcl93YXRlcm1hcms9MSBmaWx0ZXJfcmVzaXplPSYjMDM5O2gsNTAwJiMwMzk7IG5vdGFnPTEgbm9lbWJlZD0xfTwvc3Bhbj4mcXVvdDsmYW1wO2d0Ow0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+MTE6PC9zcGFuPiAgPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IGJsdWU7JnF1b3Q7PntDR1NtYXJ0SW1hZ2Ugc3JjPSRmaWxlIGZpbHRlcl9yb3RhdGU9OTAgZmlsdGVyX2dyYXlzY2FsZT0xIGZpbHRlcl93YXRlcm1hcms9MSBmaWx0ZXJfcmVzaXplPSYjMDM5O2gsMTUwJiMwMzk7fTwvc3Bhbj4NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PjEyOjwvc3Bhbj4gICZhbXA7bHQ7L2EmYW1wO2d0Ow0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+MTM6PC9zcGFuPiB7L2ZvcmVhY2h9DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xNDo8L3NwYW4+ICZhbXA7bHQ7L2RpdiZhbXA7Z3Q7DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xNTo8L3NwYW4+IHsvaWZ9DQo8L2NvZGU+PC9wcmU+PGJyLz4NCjxwPkxldHMgdGFsayBhYm91dCB0aGlzLjwvcD4NCjxwPkxpbmVzIDEgdGhyb3VnaCA1IHV0aWxpemUgalF1ZXJ5IHRvIGNhbGwgZmFuY3lib3ggb24gYW55IGxpbmtzIHRoYXQgaGF2ZSB0aGUgJmFtcDtxdW90O2ZhbmN5Ym94JmFtcDtxdW90OyBjbGFzcy4gIFRoZSBmYW5jeWJveCBqUXVlcnkgcGx1Z2luIGlzIGluY2x1ZGVkIHdpdGggdGhlIEpRdWVyeVRvb2xzIG1vZHVsZS48L3A+DQo8cD5MaW5lIDYgdXNlcyBhIGJ1aWx0IGluIHBocCBmdW5jdGlvbiBjYWxsZWQgZ2xvYiwgYW5kIHNvbWUgc21hcnR5IG1hZ2ljIHRvIGZpbmQgYWxsIG9mIHRoZSBKUEcgZmlsZXMgaW4gdGhlIHVwbG9hZHMvYWxidW0gZGlyZWN0b3J5IGJlbG93IG91ciBpbnN0YWxsYXRpb24gcm9vdC48L3A+DQo8cD5MaW5lIDcgaXMgYSB0ZXN0IHRvIHNlZSBpZiBhbnkgZmlsZXMgd2VyZSBhY3R1YWxseSBmb3VuZCBpbiB0aGUgYXNzaWduIGxpbmUgc3RhdGVkIGFib3ZlLiAgVGhpcyBpZiBzdGF0ZW1lbnQgaXMgY2xvc2VkIG9uIGxpbmUgMTUuPC9wPg0KPHA+TGluZSA4IG9wZW5zIHVwIGEgZGl2IHRvIGNvbnRhaW4gb3VyIGFsYnVtLiAgRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGV4YW1wbGUgdGhlIHN0eWxlcyB3ZXJlIGluY2x1ZGVkIGlubGluZSwgaG93ZXZlciBhIGNsYXNzIHRoYXQgd2FzIGRlZmluZWQgaW4gdGhlIHN0eWxlc2hlZXQgc2hvdWxkIGJlIHVzZWQgaW4gcHJvZHVjdGlvbiBlbnZpcm9ubWVudHMuICBUaGUgY2xvc2luZyB0YWcgZm9yIHRoaXMgZGl2IGlzIG9uIGxpbmUgMTQsIGp1c3QgYmVmb3JlIHRoZSA8Y29kZT57L2lmfTwvY29kZT4uPC9wPg0KPHA+TGluZSA5IGJlZ2lucyBhIGxvb3AgdGhyb3VnaCBhbGwgb2YgdGhlIGZpbGVzIHRoYXQgd2UgZm91bmQgaW4gdGhlIGRpcmVjdG9yeS4gIFRoaXMgbG9vcCBpcyBjbG9zZWQgb24gbGluZSAxMy48L3A+PGJyLz4NCjxwPkxpbmVzIDEwIGFuZCAxMSBhcmUgdGhlIHJlYWwgbWFnaWMuICBIZXJlIHdlIGNyZWF0ZSBhIGxpbmsgd2l0aCBjbGFzcyAmYW1wO3F1b3Q7ZmFuY3lib3gmYW1wO3F1b3Q7IGFuZCBhZGRzIHRoZSA8Y29kZT5yZWw8L2NvZGU+IGF0dHJpYnV0ZSBzbyB0aGF0IGZhbmN5Ym94IGtub3dzIHRoYXQgYWxsIG9mIHRoZXNlIGltYWdlcyBzaG91bGQgYmUgZ3JvdXBlZCB0b2dldGhlciBhcyBvbmUgYWxidW0gYW5kIGFsbG93IGNsaWNraW5nIGJldHdlZW4gdGhlIGltYWdlcy4gIFRoZW4gY29tZXMgdGhlIHBhcnQgd2hlcmUgd2UgZGVmaW5lIG91ciBpbWFnZXMuDQo8cD5XZSBzdXBwbHkgdGhlICRmaWxlIHZhcmlhYmxlIHRvIHRoZSBzcmMgYXJndW1lbnQgb2YgdGhlIDxjb2RlPntDR1NtYXJ0SW1hZ2V9PC9jb2RlPiB0YWcgc28gdGhhdCBpdCB3aWxsIGdldCB0aGUgbmFtZSBvZiBlYWNoIG1hdGNoZWQganBlZyBhcyB0aGUgbG9vcCBpcyBleGVjdXRlZC48L3A+DQo8cD5UaGUgaW1hZ2VzIEkgd2FzIHRlc3Rpbmcgd2l0aCB3ZXJlIHVwbG9hZGVkIGZyb20gbXkgaXBvZCwgYW5kIGFsbCBzZWVtZWQgdG8gYmUgcm90YXRlZCA5MCBkZWdyZWVzIGNvdW50ZXIgY2xvY2tlaXMuICBTbyB0aGUgZmlyc3QgZmlsdGVyIEkgYWRkZWQgd2FzIHRvIHJvdGF0ZSB0aGUgaW1hZ2UgOTAgZGVncmVlcyBjbG9ja3dpc2UgdmlhIHRoZSA8Y29kZT5maWx0ZXJfcm90YXRlPTkwPC9jb2RlPiBhcmd1bWVudC4gVGhlIGltYWdlcyB0aGVuIG5lZWRlZCB0byBoYXZlIHRoZSB3YXRlcm1hcmsgb24gdGhlbSA8ZW0+KHRoaXMgaXMganVzdCBmb3IgZXhhbXBsZSBwdXJwb3NlcywgSSBkb250IHRoaW5rIGFueWJvZHkgd291bGQgcmVhbGx5IHN0ZWFsIHRoZSBibHVycnkgcGljdHVyZXMgZnJvbSBteSBpcG9kIGZvciBjb21tZXJjaWFsIHB1cnBvc2VzKTwvZW0+LCBzbyBJIGFkZGVkIHRoZSA8Y29kZT5maWx0ZXJfd2F0ZXJtYXJrPTE8L2NvZGU+IHBhcmFtZXRlci4gIEFuZCBmaW5hbGx5LCBiZWNhdXNlIGV2ZW4gdGhlIGlwb2QgdG91Y2ggY2FuIHRha2UgcGljdHVyZXMgdGhhdCBhcmUgdG9vIGJpZyB0byBkaXNwbGF5IG9uIHRoZSBzY3JlZW4gSSB3YW50ZWQgdG8gcmVzaXplIHRoZW0gdG8gYSBtYXhpbXVtIGhlaWdodCBvZiA1MDAgcGl4ZWxzLiAgVGhpcyB3YXMgYWNjb21wbGlzaGVkIHZpYSB0aGUgPGNvZGU+ZmlsdGVyX3Jlc2l6ZT1oLDUwMDwvY29kZT4gYXJndW1lbnQuICBXZSBhZGQgdGhlIDxjb2RlPm5vZW1iZWQ9MTwvY29kZT4gYXJndW1lbnQgYmVjYXVzZSBmYW5jeWJveCBkb2VzIG5vdCB1bmRlcnN0YW5kIGhvdyB0byBkaXNwbGF5IGVtYmVkZGVkIGltYWdlcyBpbiBpdHMgcG9wdXAgd2luZG93LiAgVGhpcyBkZWZpbmVkIHRoZSBpbWFnZSB0aGF0IHdlIHdlcmUgZ29pbmcgdG8gbGluayB0by48L3A+DQo8cD5OZXh0IHdlIG5lZWRlZCB0byBkZWZpbmUgdGhlIHRodW1ibmFpbCBpbWFnZSB0aGF0IHdlIGFyZSBnb2luZyB0byB1c2UgaW4gdGhlIGdhbGxlcnkuICBUaGlzIGNhbGwgdG8gPGNvZGU+e0NHU21hcnRJbWFnZX08L2NvZGU+IGlzIGFsbW9zdCBpZGVudGljYWwgdG8gdGhlIGZpcnN0IGNhbGwsIGV4Y2VwdCB0aGF0IHdlIHVzZSBhIGRpZmZlcmVudCBoZWlnaHQgdmFsdWUgKDE1MCBwaXhlbHMpIGZvciB0aGUgdGh1bWJuYWlsLCBhbmQgZm9yIGtpY2tzIEkgY29udmVydGVkIHRoZSB0aHVtYm5haWwgdG8gZ3JheXNjYWxlIDxzdHJvbmc+YmVmb3JlPC9zdHJvbmc+IGFwcGx5aW5nIHRoZSB3YXRlcm1hcmsuICBJIGFsc28gcmVtb3ZlZCB0aGUgbm9lbWJlZD0xIGFyZ3VtZW50IHNvIHRoYXQgdGhlIHN5c3RlbSBjb3VsZCBlbWJlZCB0aGUgaW1hZ2UgaW4gdGhlIEhUTUwgb3V0cHV0IGlmIHRoZSBicm93c2VyIHN1cHBvcnRlZCBpdC4gIFRoZSBzY3JlZW4gY2FwdHVyZSBiZWxvdyBzaG93cyB0aGUgZWZmZWN0LjwvcD4NCjxpbWcgc3JjPSZxdW90O2RhdGE6aW1hZ2UvanBlZztiYXNlNjQsLzlqLzRBQVFTa1pKUmdBQkFRRUFZQUJnQUFELzJ3QkRBQWdHQmdjR0JRZ0hCd2NKQ1FnS0RCUU5EQXNMREJrU0V3OFVIUm9mSGgwYUhCd2dKQzRuSUNJc0l4d2NLRGNwTERBeE5EUTBIeWM1UFRneVBDNHpOREwvMndCREFRa0pDUXdMREJnTkRSZ3lJUndoTWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qTC93QUFSQ0FDaEFmQURBU0lBQWhFQkF4RUIvOFFBSEFBQUFRUURBUUFBQUFBQUFBQUFBQUFBQUFRRkJnY0JBZ01JLzhRQVVCQUFBZ0VEQWdNRUJ3UUdCd1FJQlFVQUFRSURBQVFSQlNFR0VqRVRRVkZoQnhRaWNZR1JzU015b2RFVk0wSlNrc0VXSlRSaWNuUHdKRldDNFJjMlExTldnNkx4SmpWRVk3SmtrN1BDMHYvRUFCZ0JBUUVCQVFFQUFBQUFBQUFBQUFBQUFBQUJBZ01FLzhRQUl4RUJBUUFDQWdNQUFnSURBQUFBQUFBQUFBRUNFU0V4QXhKQkV5SWpRbEZoa2YvYUFBd0RBUUFDRVFNUkFEOEF0Zlc5VnViSzcwK3hza2c5WnZwR1ZaTGduczBDakp5QnVUNEN0THZWTG5UTEZZOVF2Tk1pMUdaK1dESWNSdU1nZE56bmY2VjA0aGswWDFhS0RXd3ZZeU1lUm1Wc0t3NytaZnVuenFKM01sMUp3dElIa3VKck5OV2dXeW11QWUwZUxtSFhPNUdlaE5CTkxyWE5Lc1pIanV0UXQ0WFJ3aks3NElZak9NZTRnMXRIcldseTN3c285UXRudVdHUkVzZ0pPMmR2aFRGRkRISnhMeGd6eHF4N0dOUVdYTzNaSGI4QlRYREVxY0o4RnVzWVZ4ZVFISVhCMzVzL09nbGI4UzZKSE8wTW1xV3FTcTVqWldmQkREWWcrRmM1OVN1RTR0c2RPUms5V25zNVptOW5KTEtSakI4S2k5cnFlbVcybjhTV2QyQkpjVDMxd0VnRVJacGM3QURBOGZsU3F6aXVOTDFuaGM2aHpvdzA1N1ZwQ0NRSlNSaFNlNDBFbW0xM1NiYTk5VG0xRzJqdU1nZG0wZ0JCUGNmQSsrbkNxNHNrZ2owZTUwYlZ0UWUxdVpKWFdlM05pSGVRczJ6cTJNdG5JT2U2ckJ0b1JaMlVVRFNzNnd4aERJL1VoUmpKK1ZBMlhldkphOFMyV2tsY2lkQ1hrL2NZL2NIeDVXL0NqOUpYUDlMcE5OeW5xeTZmNndCeTc4L1BqcjRZN3Fpeng2dnErbWFscVZycDBiQzduRnpienRjY3Jvc1I5Z0JNYjlEMzc4MU9WcnFNVjF4ZFphaXdaSWRRMG9KRXhVNE1uTVNVejNFWU5BczRiNHB0ZFIweXpXK3Y3VWFsTUd6RUNGSlBNUUJqeHdCdFQ3SGVXMDF4Y1c4Y3lOTmI0N1pCMVRJeU0vQ3E3dDdpenVmUjdEbzBjYlNhcy82cUVRdHpxNWZLdm5Hd3h2bk5QZHZmdzZMeE5yYTZnN3E5ekhBMEdJMmJ0aUkrVTh1QnVjOTFCSVAwN3BRdG83azZoYmlHVkdkSExZREtwd3hIdUpBcm1lSk5FV0tLUTZyYUJKU1FoN1FiL2w4YWgyZ1JoMjRNRWlCZ0k3dHNNTTRJSklOTEJieGZvM2pyN0ZQMTBtUFlIZEhrZmp2UVRrSEl5RGtHaWtPaWtuUWRPSnpuMVdMT2Y4QXBkUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRlJsdURyZmw1Rm1Fa1lVS29tVmlRQVA3cktQd3FUVVZaZEpac3dhTndwYmFQZmV1TGNTeVNCWkVST2lJcmxTUUFjbjlnZFNhZjZLS2lpanJSUlFGRkh3b3g1VUNEUzlMVFN4ZGlPVjVQV2JsN2x1WUFjcGJHUU1kMjFMNk1lVkdENFVCaytORkdENEdqQjhEUUZGR0Q0R3M0UGdhREdUUm1zNFBnYXhnK0JvQ2lpajRVQlJSOEtQaFFGRkdQS2pIbFFGRkdENEdqQjhEUUZGR0Q0R2pCOERRRkZad2ZBMWpCOERRRkZGRkFVVVVVQlJSUlFGRkZGQVVVWVBnYVBoUUZGRkdDVGpHOUFVVm5rYjkxdmxSeXQrNjN5b01VVm5sYjkxdmxSZytCK1ZCaWlqQjhLenl0KzZmbFFZb3JKVWpxQ1BlS0FySG9wUHdvTVVWbmxiOTF2bFFWWWRWSStGQmlpczRQZ2ZsUUFUMEJQdUZCaWlzOGpmdU44alJ5UDhBdU44cURGRlpLc09xa2U4VWNqZnVOOHFERkZaNUcvY2I1VWNqL3VOOGpRWW9yUEkzN3JmS2psYjkxdmxRWW9yUEszN3ArVkFCUFFFKzRVR0tLenl0KzYzeXJGQVVVVVVEYnFURVN4NEpHeDZlK2tYTzM3emZPbG1xZnJZLzhKK3ROK2Q4VUc1a1lrKzAzenJIT3gvYWI1MXBuZXRTYURjeVBuN3pmTTF6WjN4c3pmTTBaTmMzb01tUi93Qjl2NGpYTXlQL0FONC96TllKclVuem9NTkpKKyszOFJyaThrbS8yai94R3QySnBPMjFCaHA1Zis4ZitJMTM0UjFBNmtZN2oyaDlzeVlMRTdDa0x0djF4WEhnZWRvV2dqeHpDUytrUWtkQjFOQk03eDJGM0o3UndDTnMrVmNDN2Q3SDUxMXZ2N1pKOFBwU1ZqNDBHNWRzZmZiNTBkby9lemZPdE01ckdmSHJRYkYyL2ViNTFvWkh6OTl2bWF4ekFISFN1Yk1EMzBHV2tjZnR0L0VhME1yL0FMNy9BTVJyUm0zclFuRkJzWlpNZ2M3ZnhHdVR6U0Q5dC80alFXM3JpNW9OWG1rQTJsZitJMDZjTXlNK3F5Z3U3QVFucVNmMmhUTEtkczA2OEtIT3JULzVQWC9pRkE0TkkyVDdSNm52ckhhc1AybStkSTN1VkR2bnhJcm1idFIzaWdjUk0zVG1iNTFudFcvZmI1MDBIVVkxSkhPdVI0bXViNnFtTm5YK0lVRDBaM0RZTEhHT3Vhd2J2bDZzZm5VTjFEaXExc2NtYWRWeDNjMU00OUllbHpTZG42eUFmTnFDZjNlc3JicVR6a251cVAzbkZGd1NRa2hIdXFOWFhFbHM4cVptVHMzMkQ4Mnc5OUk1TlJzWkVrY1gwYWhja3NQTHo4YUNRVyt1NnJxbHpMYTZkSUpab3dESnpQeXJHUE0rUGwxcDFnL1NmTk90NXEwa1RRNExkaUFGSG1jNXFzTFRpNmJoSkI2dEg2Mjl5ck9zemV5RC9lL0dtSFV1SmVJYnE2YVNTUzVSZ1FTZTdJNkhwUVh4eFJxVjdvY1ZyY1djc3pxVVZtU1lobGtCeHZ0dm1sM0ZGeTdlanZVWjFMSS9acVJna0ZmYlRiTmVmaHhWeE5xTjNIYzNkOWUzMHcyN05sMktnNUhkajhLdDV0UnZOVTlDbXEzVjdEMk53U1F5azV4aDAvR2dxbWE4dWhxOHlpOXVWUmxCR0pteHQ4YWM5T3ZiaU8vUXRlM1BJUmc4MHJIYy9HbUo1UStwMjVZYzNQRVJ2MUdLY1ltQ1R4dHlIUGZnWnpRTGRldXJ2OUpXMGtkNWNzblo0L1hNTndUNEdyRDBLR2E2dHJLZHBwc1BHckgyejRlK3EwMVFubGd3Q0FHSXF6dUNwdTA0ZXRYTytFNUNlYk80UC9PZ2w4enhpR09GcENDNTVWRys1eG5yOEtyN2l5MmtpMC9VcFV2cnFQN0Y4eGlUQUpXUlFNRHJqR2M3OWNWTjdtem51UmJzc1RrSk1zZ0lIVWpPS1lPTDlOZHJhZU5ZcGhQTGJ5b2lJbzl0aHlsVjNCUGVlbUtCcjlEZHhKSmZhcmJ6eVN5RXdDUlM3bHNkeEc1ODZldUk3Q3d1dE9udW5FZ3ZZTGRsaWxFN3JnRGZvRGp4NmltRDBWVzkzWTZ6ckVNa2IyODZXV01TajdqYzNlS2JOVnQrSkZ0bmU1MTd0b1NwTHhwYmdBand6M1VEWHBkbGRhdnFNS0c0dUpJNG9KSkdnYTRkTzFiS3FNa0hvTTVwOHMzL0FLTm00anU3cTVnZ2VSV1FjN1N0SjdJSlVFOXdPZmNNWjhhamVnYXVOSzErMEZ4SWtjRXNVcVNPN1lDNDVXQno4S2MrT0xSTG8yZXEyYzRsdCtUc25NVzR4elpEZWVjNCtWQnBxWEZrcGRoYnp5eFlKNUZXUnVZZkhwMThxZS9TVmQzSTlISENjeXpUUnl5TXBjcktRVDlqM2tIZW9CeVc0a2hjTzZCVHpNcnNEeU40NXg1RDNWT3ZTU0RKNk5PRDhra2twa25yK3BvS3B1YjYrVlZZWHQwTjkvdDMvT3U5dHFWN2xWTjdja2Y1Ny9uU2ZVRVQxSXlJMlNrbksrRDBOYlIyRjR1blI2aTF2SjZtOG5ack1SN0pZZFJueG9IMjExYlU3UU85dHFWMUU3cVZibGxKeXA3dHpUZGMzOTZja1h0MXpaSFNkdC94b2lsSFlEZnAxcEhka05idG5CM0hYdW9GMXJkYWdDNlMzTjJ1M1JwbjIvR3NUWGw0dUN0N2MrWDI3Zm5TZlFWU1c1WlpXazdJSnpQeUFGZ01qcG5yVzk4cUxJNWg1K3k1anlsOFp4NTRvTzl0cU4ramh4ZTNJS25LbnRXMlBkMzFLUmRTWHNTWDBOeE9nZmFXTlpYNVk1UjFVYjlEOTRlOGp1cUZwSUF1TnMrZFBYRCtwUjJGOGUzYVFXY3c1WmtYdzdtSG1wM3gzamJ2b0piYVQzTURSU3RjVEVnL3RTc2ZQeHFWZW1hM3VINFNzYnkxbWxSdTFSV2FOeXZWV0k2ZWRkN1BoeURWRWlUblZaY1lZajl2d09mZGlzOGN6VDNHZzIvRHJXcnRjQ05KdTFaaCt5U3VBUEVqdm9LYTRVOWZIRjJqYzk1Y2xQWG9ReXRPeHlPY2RSbXZVeDZtcVE0VzRXZ2gxcXdsdVVuV2VPNFIxVm1DNElZSGNZL25WMzBCUlJSUU5XcmZyWXY4Sit0TjJhY2RXL1d4ZjRUOWFiR29NazcxcnpZckRIRytEVEZ4SnhISG9Ob3Nra0x1SHlBeTR3TVVENHppdVprcXBYOUs5N0hKL1o3UngwM0xDbE5oNlc0VElWMUd6Q29UczBCSkkrQm9MTkxkOWFNeHgwMnFQYWZ4bG91b1JLNlhxS3pmc05ubUh3cGIrbk5Oei9iSS9rZnlvSEVuYXVEMFEzVVYxRUpZSkJJaEpBSTI2VmlRMENWenZrK05MT0EySHF5c2VrbDNLVWI5NFo2anlwajExK1RUanV3VnBFVnNISHNsZ0NLa3ZES0JKcmVOUmhWa09CNGJVRDNxRzE1SjhQcFNVbWxWL3dEMnlUNGZTa2hvTlFhNVRUaUNKNUNDUWd6Z2RUWFR2NlZGT05kVEZwcGd0UktZM3VUeWxobk9QRGJ4b0dEV1BTUlBiM1VpMmxxQkd1MzIzWFBmMHBGSDZWSlN5bVN5ajVNKzFnNzRxS1gxdkQyVE1IK1lKTk1raW9pZmZHZmVhQzdkTjQzMG5VNVk0bzNaSkh6a1BzRjI4YWtDeUxJb1pHREE5Q0RYbStHNEViNUVwVStJcXp1QmVKUk5ielIzMTZBc1NoWTFPZm5RV0VhNU9heWtpU0lyb1FWWUFnanZyVitsQW5rTzFMdURIZVhpTytMT2VSSUFpcC94REpwQkowcFp3Ui8xajFMYmZzeC8rUW9FTTl5M2F2diswZnJYQXp1M2ZUaFBhcUpYL3dBUjd2T3VZdG96MXo4cUNCYSs1L1M4cDcrVmZwVVkxaldVMCtFcXBCbVlZVWVGVFRpQzJSZFlsQUhSRjd2S3FnMTZacE5UbXljNFlnZVZBaW51NVo1R2VTUWxqMXJnSkNEMTNwVlk2WlBmdjdJS29PckduKzM0YnQwQTdUTEh6b0krbDBWWEJZOGdPU3RTZlRlSzJzYlUyNWdXYTFBNWxWa0I1VDQwb1RodXhkZDQrdmhXMDNDVFcxbExOYlB6RURtS040ZUZaeXk5WGJ3K0w4bVYzeEREZlR5YW5jK3NGRVJUOTFSc0FPK24yMGprRTBiWEhLMEl4ektpNEpIaG51cUx4eXlKY01IWGx3U0NuY0ttZHVCSXFNQ01FQ3RPVjR2QjMxS2ZScDlNU0xTOU1tdGJ6SUx5eXo5b3BYdkhMVXYwZEpuOUNHc0pJVVp6TzRIS3ZLTWMwZFFSVXd3cWYyUTVmUXByQkgvZnNmOEExeDBSVjgybjhpVzBqU3hRaEhHV2Q5c0hHTnhtbEN1T2JsNXdXVW5KNWVsS05UVHR0RGxueGdSY3JiZVJ4dlNPRWMvM1FjQUtUZ2JETzlBdG5pZ2xqTDNJa1pZL2JRSTJNdDVudUZTclN0WTFDMzRhZ3NyQmt0bWVjekNTUk1xdURqQkozT2RzWTI2MXJvME9uYVRiUjZqcU1DWERTWTdPMUs4d09QMmlPOCsvYXBOeFhiYVhybHZwNXRkU2d0Sm9NUnNnUXFGWE9jQUFiWThLQ1RhUk5mWEhBS2FoZXhPTlFlMzl1TU5sY2c0eWc3Z1J2U1RqRFNVMU9RYWZFcFNOY1o1Q1FGQlU5UU80Ny9oV3FjWTZUbzl0RHBjVjNCSXFRQkZEQnRnUElDbXZXT0pyUzc3U1MxdlNIbFRKZUZDck5nYlpQZGpmNTBEYjZPckNiUytJTHBHRWZhUEU2R0RtdzRRT0NHSTZZUHozNlVsMXlXZTdubHRvTlBta2Nkb2dWY0RiZjZiVXE0SG5zOUp2bnY3KytpVDFpSm9peEpMaDJ3Y0hieEZPU1RpOW11b05PalZpeGZMSnU4b3pnbkp4dDNZSGthQ3ZYczdiUzljZ1ZyVTNWK0VQTklQMU1BS0E0d1I3VGVmUWVkUzJHd1RWYk45SkVVMGMxNFdqN2NyN0lCSUlPZXVBUEtuV3k0WDFMVkxqdGdxUXhNbkwyam5id0l4MzlLZStJTkcvUkhEZDllMjExS3R4QmJzNmRraW9lWURiQkc0K3RCSHJiME0yNnhxcjZwS2M5U0k4OS9jUG5TRDB2NmRIcGZCdkQrbTI1WXhXMXgyS0Z1cEN4RUROTWNON2ZSY3M4dXA2ak03TDBudlpHQStHYWQvU2d4bDlIM0REc1N4YVJTU1NTVDlsNDlhQ0IyZC9wYitpeS8waTRkVTFPQ2NNaUg3ejVjRUZmaGtmQ21LSFRZNUxLSjFKVm1VSHlweTFLT0g5RHZ5QWh5WXljNXgxcnRwOXVUWVFuRzNMM0R6b0dYMWU2alFyZ092aUswdVVCczhHVDdWajdVWlVncmp2ejBOV0duRFVjMmpOY0t3RWdPZmVLaCtwcmJ2WnVCTW5NcWN3d080SGZlZzU4TVJ3NXY4QXRXQy83TWVUUGVlWmEyMWFJSlppUlYyTDQ2MXcwTzRoRVZ5R201SGJDOU83L1FwYnE2d0xvaU4ydk0vYmJrSDJjWVBkanI4YUJ2bk5wY05iZW93U3h1VVdOMGFUdERKSm5xdXd3UExmMzBPV3R5VmxVcXdPR0JHQ3BIaUtJakJDdHN5Uzhrb1lTbGxHK091eFBRK0ZPRWtQNlV0WlBWK1NabU9aSk1iOHg4Yzc0eDFOQlpubzUxdTNpdEliRzR1SWtlTWg0T1k0T0NTU3VmeEh2TlN2amZVN0szdGJMVlpBWGdCTUpDWTVzbkJIWHUyYW9idzdjYUZiV2Rxc2VpeVhWemdMSk5PVlNOaU8vT2M0SHUzd0tsRVdyV3VzdmQyTnhwTm84Y1o1b3c2Q1FFNDIzUHZPTnZIcFFNV2k4YzZMTnJGbFpMYVhZa2ttU05DUW1BeElBenY1MWE5UnZUWWRBVHM0NHRMczRybUp0aWJaQVNlYkFLbkhqaXBKUUZGRkZBMDZ2K3RpSGR5bjYwMW40MDZheCt0aS93QUordE5aNlVHam5CcXJPTFk3aldaYnVkRmtraWoyUmM3SU5oK1BXclFseHlObndxTmFoREhGb1YwMGFjb2VQSitZb0tQdTlObGpjRmxJOGFRdkFRMk1HcGxmaFJNUmpyVFBQR3ZNZGhtZ2FMZDViYVpKRVlvNDZFVlprRVFHbnhTOW9PWWdiWnlmblVFYTM3UXF3WFpUdWU0VkxOSm5hYXdSUzJlejluR1RpcGUrSFhIMW1OdVN3T0hNL29aUDh4L3JUaTQ4NmJ1SEIvVXlmNDIrdE9MZ0VIYjhhcmtaZGZYbTBxVURZQmxPZmN3cVVjTjQ5WWh6blBhL3lxTmErQitocm55WFB5cVI4Tk1QVzRRUmpENUhudFFQZC9qMXVYUFhiNlVrYWxkLy9iSlBoOUtSbWc1bnI1VkRlTW9vM0VibGN1cnJ2OERVeVlWWC9IRjNKYUs2a0FreUt3YndISzIxQkZOUVJUR0FSNVZIN3Ezak80WHBXYmpXcFhjeHRJbU9uVEZJNTlRSUlEWTM2ZVlvTlRicVZJVmNrMDg2SEI2bmRsUkpublRkZkEwelFYaDV4SUZ3bzZIUGZUaFlUeXlhcERnRWc3ZGVnclAxMS9XWVhjNXE3N0wrd1czK1V2MEZkR3JTeUg5WDIzK1V2MEZkV3JUa1RQNVVyNEwyNG4xSWQzWUtmeEZKWkFBQ0tYY0lRc25FMTdKajJYdGhnLzhBRUtCM3ZyRHRPYVdKZHgxVWQvblRNMFhLY2QvaFVsczd1QzlqYVMzY01BeFUrSU5NZWtvdDNkWG5hbk9QdStXU2FDdWVNYmdXbDFlem5iczRWSStWVkJaV2o2dnFiQWtoYzg4amZIK2RXNTZTbzFSdFRSdDJFQzQ5K0JWZThNUUZMT2FZRExPK0FmSWY2TkE3SkhGYnhpS0pRcXIweFFYeU5xeTNLbzNPOWN5NEIyb2Y2TGJabjdSTWJiamZ3cDdqbmt1VlZaUXZValBYSnFPUHE2NmRBVW1oUGlweUNDZkVWenN1SkFKRUxBaEFlcEZZbjdYbDZNOStQSDFsNzdhY1RhRjZ2SWJ1SlBaYysxaXRkS2NwR0kyT2VYZFRVNFNPMzF6UnlnYlpsNitCcUxYdWkzV25YTWxvNjluZFJ0eUZUNDdZUGhpdHZPVURacy9PckMwa2Mvb2MxVVk1c3pQdC93QVVkUUU4S2NYMjJHdUxiVHlXd0FvMUNIbU9TQU51YnpGV05CcGQ5cGZvaDFXMXZvVml1RElYNUJJc2d3V2o3MUpIY2FDQ1E4aGltdDVFVTl0SGdnQU52allINjBodGxaSlpiZFlnb2RWRFpJUFR3eDd1dEtZb3BTUXZaODJSaGVYYkZLTGZURGFwSlBPd1IyVEVTblB0TjNaOGdONkJYRTZyYUxEZFNpT09NODhiT2NlempKQTl3MytIalM1YnEyOVpuNVdIM3ljK05SMlNQMWhta3V1V2QyVXBuOTFjWXdNOU9wNlZHcDcyK3NMeWRZSFY0Z3g1ZWNrSEZCS05YZTJhYVdRWkRCQStWN3huY2ZLbnFHZEpJVWFJaGs1ZDVDTmgvd0ErdFFxd21OMWNvYm84NVpHQkM5Q1FRY1ZLa3ZSeWhValBnaUtOZ0tIWlYyWkZpeG05bFJNQ0dDNUxlMk56OEtlZUhOWFdEWEpDcUt3RUxjdVR0MUZSSzUxR1VvVWtiQjhBZW5pSzdhQkwydXE0UHNqc3pqYk9lbTFTYjI2NStza2s3WFZvMm9QZkE4aUtxcU5nb3dCVGhxMWdkUzBpYXo5bk1xOHBMWngrRk5YQy9JdG5rWUNnNHljQ24yVzdpakFCZGM5MjlWeVZqY2VpN1ZaSlM2MzFyZ25jSG1KSHV5S1IrbGl5ZXg0TDRmc25ZTTBFM1pzdzZFaU9yTXU5VWFCNFlJaXNseE94V05lNFk2c2ZJVlgzcGtEZjBkMHJ0TU93dW01aUJqSjdNOTFCVTk0eGZUbURZeHlyMDhqVWk0WHNsdXRPak9kbGNqclVZWkpKcmN4UlJ1N0ViS296MzFMK0YzRm5wQjdac0VTT01BRmgzZDQyb0phNWhnMC9rWUFLVjVCc092S2FxYlY0NGt0Wmw3VW93aGJLakh0RTRxejdpMW11dE1Od3ZNc0NGWkdkbElBVURjL2pWY2F2YnBCRmNyTEtxeXNyRGxEKzdHMUFoNFN0b3BrdnpKR3JGSXdWeU9oMzZVcDE3bU9scWdmbVR0VlBJRUczWEp6MVBmU2Zoa3pKWTZvWU9UdERFdkx6Ymp2cExQTnFDTVRkUEc4YTdzc2E5UE9peWI0ampKcGd1b3BKb3JodWFNS0VSays4TWZoVWg0ZXRyUzJzcDVKaVZ5Vk9Ya3dXMjZGUjFId3ByMC9VYlo1WlVTVEhOak9Uc2NmdStYU2s2TEtsN2NyTE1BV1lFTUIxSGw5S2syMzVQWGlZbis3MUZYaU1Oc3l3RmM0a0E1V3dUNWRSMTJwSGFhcmMycVJTaSttM0xLRlNVNWpKd0NWMzJQVGVra2FKRUhhWExCenkvZjNBSHU3cVN0YU1KL3N5QUdHTS9tYXJtbXZEV3NYTXZFR25ReVhidUd2b2x5ekU1SE52OE1uNW12UVo2MTVmNFdDcnhYb0tBdm4xdUU0Sis5N1kzOTFlb0QxTkFVVVVVRFRySDYyTC9DZnJUVVRUcnJINjJML0NmclRVd3hRSXRSV1dTeG1XRWtTRWJZR1NmS3E3NGsxUzhHa3loWTM1T3p3REdkaHYzMVpyRFB4cUFjUzJ5dHB0N2x5aWhTY2ZIcFFWYWwxYzNKZkxNZVhHU2FReVhrcGtJR2VicGlucTBDUjJzN2tBSzJWWEl3V0hqVFZIQ3IzWmJmc3djbGdNNytGUzNUV0dGenltTUtMZTVtaWhDbFhWbkdkK2hIalVpNGFTVDFPUjJQc0Z1VmMvalVkNTFra1pnTmlkczl3cWJXRnVMV3lpaEdkaHY3K3BwUDhBTFhrdk9wZUluWERuL3dBbVQvTWY2MDRQbWtIRGcvcVpQOHgvclRpNDhxcm1RWGx1bDFieVFTWjVKRjVUanJTamc3MXVIV093dTVWZFF5OWs0R09iWTdlK3NTWUF5ZWdyaHdhYnE5MTZHK21DcEEyOFVZYlBLTjhIM21nbWQrTTNrbncrbEl6dlMyKy90a253K2xJbW9PYmIvT29UeDlEejIxc3d3Q1g1U0QzakJxYkVWRWVPbzg2WmJ5ZnV6WVB1d2FDcEZ0Z05Vd1FydVBhNkRBSGlhYmRVUVBlTVVHUVRnQWQxUGZadkcwN3JIekVrZ3RtbXN4R04ybmx5Y2JEdnpVdDA2ZVBEM3kxOGNZd1VIWVpLcVB2QTcvS243aDYxNXA1Yms5RVhrWDMwd1I1Njc1WW1wWnc5aGRPWWtqZHp0U001NWJxMnJFZjFmYmY1U2ZRVjBhdWRrZjZ2dHVuNnBmb0s2dFZaSjMvR25iaFRINlVtR1Juc2ZIKzhLYTNIZlNyaFlIK2xzdXdQK3hISC93QzR0QXkyMXpOWTNra2tEbFR6dDM3SGVwRHc2NjhsdzU2dXlqNm1vcWs4VThrand5cEl2T3dKUTUzeWRxbEdncUZ0RmtCM01oeVBJRC9uUVZwNlVVN1RVcnlNZDhhL0gyYXIyMHZHdHRJaVNJZTB6TjA5OVdWeDJxemNTelJuN3BpWDZWQWJuVFBVMTVZOGxRU1ZCOHhRTkRYOXpITDlvMmFtT2lhV2RTczNuS2txcTlQTTlLaGlXVXQxZXJIdWN0akhjQlZ0YUVJclBUakFNRG0yT0t6bGZrZWp3WVMzMno2aXBid3lDNWRYTHNxc2NjMVNQaHFTMG1qZTNuVG41d1J5OHZsMXA5MS9obTB1aDJzV0VsOFFkalVkdGJLNDA2Yms1Y01mMmxOV1RUamxsdTdTRGh2T24zMGxzSFpvVG5DdDNWTnZTUHB4aDRndGJyMlJEcUZxRlo4ZmRlTURIekJxSTZMYVlZdTQrME81SnEyK045T0Y1WTZRZVVFUnVRMmU1U2d5Zndxc3ZQbHRiU3J4SFBieU14SWtUY25wbGhWbzhDR052UXZxSmx5RTlha0o1bTV1K1B2cURhYkUxeHhrNWtQTVFVQkk3OEhZL0dwendEQzAzb1kxQ05Ua3RkeUFFanpqb0doN3FJakZ0YkVIKy9rZmdLajJxUGRQZTlvMHpjeWtNQ3hPUERwK0ZTZGRLbjVqN2NZSFFuUDBwQnFXZ1hGeXJMRUVZNDN6Smdudi9sUUliQ2RKUVZmbERqZkJOTXVxV0tTcmR5U0ZSeVMrd1AyanY5UEduV1hTTlJzRTlZa1dJRlIxRWd5UGNPK21xU1VTUTNBbUxOTDI0eTVPNUpQU2dUY3kybllBRXZsdVZTT281dS84SzJna21VZHAyczJGeDdTdjBOSnJreUs1U0tQTXZNQWk0NkdsY3hSVVNGRG5sUE1kdkdzMi9IYng0Y1hPOGFLa2xhWlE3a2xpTWJtbmpoc0VhcTJCMVFrL01VeFcyZXlWUjU3MUl1R1VINlNZOUFJeWM1NjdpdE9WdTd0WWR2cTNxa0lHU0ZVN0tQNTF0SHhIYnRBVk52STh4UDMrMTIzOHNVeHpuMlNDUmp2enZTTlc1RVhPU091d3hSRDdlNm5OYzNWcmMyOGlwYzJ6OXBFWFBzRTk0YkcrRFNuMGdhbGF4OFBhTGZhcFlyY3E4M004S1B0a3B2aHFqc1hNeFZzNEhuMXB5OUpha2NHYUN1ZGhJQWM5L3dCblFRTFY5VDBpOFJqWTJVMXVrZ09BaEFaUjcvOEFsdlMvaG1mazRaV0lOK3N1WmxCSFRaWXpVWFdQSkF3UUQzKzZwSHAxcmN3Mk5yYnl5UVdxTExJNnVGNW1PVlhKS25ZakE4cUM0WUxlTzU0V1NOeU1QWll4NCt6bXFHMWFMdDNhU2FhTlVLTVU4U1RqcDViVlBiYVc1bHRwWVJNOGl4V3ZNanVNa1p5RDVia2VIU29ISnA4aktUSjJhc1FOODdrMENYUVl6YjIyb2RsbHlpY3I3YkU3OVBERkpacmVkclJwcGtOdWpqYVU1Yk9Oc1lHNXArMHF3RnJIREdyYy9yakJXSUhRY3JISy9HdEw3VDU3aVgrMENRZ1lITjAyMitsWnQ1MDdZWSt1UHY4QThSaTBqamdaNG9vbVljeHpJNEJadmNlNEh3RlRQaC9oR1BpcGJpZEx0clV3RlV3MGVlYkl6WEhUOURqQlo3aWJtYm0yRVorcHBUZE5jNmR5SllUM0VVVHVUSXlURlNkdGh0ODYwNG41ZlE0dHhHenZyQlNNZEFJVDhlK3VUZWpXMXQ5U3RJQlBMTTEweGlEbFRoUUJubVlkTTVJNzZqN2F6cURqc3pxVjRjZU03NCt0ZDdXOXZZQVp2WGJsV3g5L3RXeVBkNGQ5Qk1yTDBhcHBHdGFmZVIzU1RTUjNFYkhDbFJ5ZzV4akpxMHFvTFNOV3ZwdUo5TEVsN2RTSzE3Q0NwbVp0dVlkZCtsWDZldEFVVVVVRFRxNCsyaS93bjYwMXQxTk9tci9yb3Y4QUNmclRQUExIQ3BaemphZ0RzRFVLNHVoeFlhaXZRTkhsY2Y2OGExNHE0OFhTVUVObkdqM0w5T1luQ2p4ODZiZldkUTFiZzV0VHZwQXpUaHlnVlFvVlFRUHFDYUNFWEZ1N1d5b3pLTWdkTnNVMFhDUENCRUdYQndUZ1lJNjdWS0hic2JkcEdIdGdaVEkvMW1veEp6R1YzYnF4eldlN3c3eitQRGM3ck1lQXk1T0FTS25TWE1MN0pLcmY4VlFET1dBN3EwMUpHVXhTZ2UwUnlrMXB3WHh3MjRPaXB2OEE5bzMxcHpZN253cXJ1Q2I2OGswZFVqbWIySElPL2p2VTFpMUM1UUR0dmFYb2NqY1VEdXc1dHEwNENjRkxFZUFJL0VpdElaa201WFE3Vng5SHMzTWJOYzdDV1Jma3hvSnRmSC9iWlBlUHBTUTB2dUlETGV5bmNLQ04vZ0thOVNuRnFqY3RBa3Z0U3RyQ0o1SjVNS2lsbXg0Q3F4MW5qZHVJNUVzTFMwN0tJTVpESTdaYmxBSTZkM1d0K090VVlXSmhEZTFPZVhQbDMxSHVHclZUYVh1b01EelJzc1NqdU9RU2ZqN05CMkVaZFhYR2ZkVEJxTWhhNE1TaFZSR0lBVVlCcVVUc2xwRklRRDJwUEx5a2RCNCs3enFOejVubEpVRTQ4cXozWGZMK1BDWXp1a0dRcTdWMkU4OGRuSVlwV1FydjdKclQxYVI1TWNwSDg2ZC8wUzBWbzZ2OTVrTEg1VnB3Ty9DM0dPcG1XTzBtbmFVY25zY3g2WUhTcDliNjFJd0hhcHRqdXFuT0gzRnRyZG16N0FTQlc5eDJxNG9MUkpHWkI5NWVublFPRWR3azR5aHpUdHd0L3dCWldidTlWUDhBL0l0UXVHZDRKbUdjRld3UlV4NFBsRTJ0TTRQL0FOTWU3Kyt0QkNORTArVFM3SjRKZVh0TzJrWnVYelkxT2RLeEhwOERkNVZpZm5VUHY3NUxSM1psSnpOeTRIaVRpcFpaY3k2ZEgva0Riem9LOTRya0VuRTh6WjZJbjBxTlg0eWRxZk9JMnp4RGMrNWZwVFRLbk5JbTJja0RIalRwWk4zUnZ0bWgwK0tTYVFOMnJkR0E2RHdydFo2MWNyYXU5cXF0SVNBc2JIbDJvMVdaSTR4QXFnanFGOEtZNGc4VjByYzJCMTY5S3hqemR2UjVzcmhKNHBla3Z2OEFWNTU5TnRwdXdhS1FPVmxUUGRpdGJCMXZndk1QYkJybEJkelhGdWUxWkpBdXdBcmFHYUMyWlowWGtrRHFDbWV1OWJlWkliZUxzbUhrS3RmaXFLNmZSSW10UUdaUUFSbnhBSDg2cTcyVEdzbWVvN3F1S2U1N0RTbm01QTZ4UWgrWHZKQUZCU3ljTTNXbGNmR3pXT1M0bGhzb0hta1JkaXg1bVB5R0I4S2RlQjdsdEo5Q3VwWElERm83cVJoeTVVN21NZnpxUjN1cDNWM3FNbHpGUE5BSHg3RWNod01ERlo0aWVXNDlGK3JtVnk3bkF5MytOS0N0aHIrb2M3TXNpdXVUZ3VtZSt1MFhFMm9HVlZLUUZTUnpmWjR6K05NZk9XNWNaQjVSblBqV3drQVlBamNBOVBHZ2t0eVd1WTVPWnN1VmJBeDAycUVTWmplNmluV1hMRWhDaTVLc0RrWjkxVExMTkdXMnh5ZytPRDRWSFprN2JVSmpKbmtFaExFRHpwYnJ0Y2NmYTZjd0hrVDFoeEhrY3AzWHFmSHlPMUoxczQyWUE3SHhwWEtVZVFKRUNVUVlCOGE1ZUlPYzFtVDY2K1cvMW5UZUtCSTF4elp3Y21uN2gxay9TVGI0K3hiNmltT053VU8yTWVGT21nNS9TTExqT1lpZW5tSzA0cFBkOXBjUWN0dXNiTmtmckhJMjcrNnRBSkFQYjVTT21PdWE1dTdJL0xzQWU3TzYxbFpYVlVBd1JudzNGQjNpNW84QkkwOHlSbjRVdTlJNERjRmNQNWJDODRKUC9sMDN3dUNnSEw3Wk9jSCtWT25wSlVEZ3pRNHhITEl4ZkNwR2haaWV6OFB6b0t0Z1FOSU03ajltbmEzbTdGd0ZCZHM1QmJ1SjJPMUlMVzExQ1dSbU9sM01Lb01ublhmYnZwWEdTMHB4N0lEYnNlZ29IWFNwNTVyNmZubHlSQ01CanRqSjZDbTRHS0tNSG01MkMrMjdIR1BkV25ONnZlbVdLUnVRUXVwSjc5dHFqOXRxRE1xbTRVY29HeHljWnFXNmpXR0h0bG8vVFhYcWNVTWNNbVNoeUdJM0dOdHZLbXg3dVIzMmNrOWRqdFNXUzdlNVBhSEF5QnNLeEd4eW9PTmozZjYzcVNhN2I4dVc3cWRSS2RMVm5oQkpKeWRxbG1sOE5RYTlZM0lsbmFJcTZnRlFEM1pxSFdOOUhCQUZJeTNqNFZOT0dicWNXVjFMSmJ1c0hhSmx6c3VjYmIxcHliUStpMktLVVRtOWVXTW5jTkZnSDhhWGFqd2pwMHRuNnZFMXJieU1NQnNNVDMrZEtkRW5YWGRjdmJTZVE5bGJvclJXL05nTURubVkrUGQ3cWtGdnBFTnRLeE1rOXd6dGtMSTJRdnVIUVVGZTZUd09sdHJsbmNEVTJab0xsR0tDM0k1dVZnY1p6MDg2dDN2cExiUGh3aVJCRk9kOFlQdXBWUUZGRkZBM2FvQUFya2JoU0tnZXMzYmhpdk43cW11dXpDR05jNXh5TWZsVUExd05IcGsxeWNleEhuZng1YzBGUThRWFJ1ZFp1WFU3S2VWZmhWcTNWaWxwd3BIcDhZVlRIYVlDSHVJT1Q4U0RWVjZOWkhWOWZ0TFVnbnQ1UnplUXprL2hWdjZ1dnJkc1ovYVdMdEZMY3ZYQlVBL0gyYUxMcTdWbHExdzZmWXI5eEI3SkZNelFNOFlZWURIeE5XZnFIQkZ2Y01URlBLaFhPYzR3ZndwSmFlajB2TXJUVHNrWEx1VklKSGwwcVNhWFBPNTNhQmFicEp1WnZiKzZOMklyT3ZXYXJwa2NxQUREbjVkS3RTeDRTc0FoRVVzNFFJejgyVnkyUGhUUHFIQ1VFM0RYT3NzeEpTVTRPTVpCOTFWbEd2UnhKbWE4dGlmdlJjNkR6QjMvQUFxeExtSVRhUExjUkQybzhGc2VYZlZSY1BYTDZWcmxsTWpFQlpnRzl4T0RWeHN5Mk42SFVadExrOGtxbm9wYmJQdTNvR20wdW1oZFpBVGdrWkFwWndUT0xEWHJMVHBjOXBKY1NPaEEyWld5UmorZE10d2h0TDZXMXlmczVPVWU3Yjg2Y05DN1NiakRoMlJkMWh1bVZoNEJrUDVVRnMzc3F4TG52Ni9oVVcxaGpOSnlBWkRJclo5N0VENlU5NjY3TENXVDd5L3pGTWNNeGxrYVZSa0JWeG5vUFoyejdpU2FDbk9Pbi9yV0syQnoyYTVQaHY4QSsxUFBEMW9nNEx0MWNBTk5mZHFjL3RBS3kxRitKWkRlY1RYZlo1Yk1uWm9EMTIyL0dyVnRORXRwN1RTN1U4OGNFTGxQWXhuYmJ3OHpVczIxamw2M2FEejgxL0FHY0RtWEtBanZ4VEsybTNDc1FFeWZFVll5OEsyeVh0OWJMTk1HakpkZW5jZHgwOEtWYWJ3blkzRngybnJFNWlaZWJHUjdPM3VwSnFKbGxjcnVxL3RkTlcyWVNTZ0dRZEZHK1BmU200UWlhWmNkSWZxYW10dndoYVN1WmpOT1VsbEVjZUNPZzZucFd5Y0oyVStyWHlHYTU1VWp4K3o0KzZxaW5iKzJOaHFSQUdDT1Z4OGdhdHpUTHN6YVJZNnJGMWFNQ1FmaFZlY2FRaVBWVmtqQjVBZ1FFOStOdjVWSk9CTlFFdWhUV3JrbnNXeGs5QURRUEd0S2tkNHMwV09TZEF3OS9mVWg5SGt2YWF0Y2VIWWJmeGlvanFNMllGaVp2YWdrSkgrRS93RHRVbjlIRFoxcWNmOEE2WFAvQUsxb0luckJMM3F4Z0FnTzBqK0k5ckEvSE5XRXpDSkpGNWwrNHZLdVJuR0tyNjQ1WmRUdURrRTl1c1hUd2JKK3RUN1VZWTBFOHJJcGRDUWo0M0FvS3ExdVV2cmR3eFBnTnZkWEFYTnNscTVManRVUE5qSUIrRkl0ZG1ZWEY5TXBZRkYySzljOTFRRzh1bmFjZTBTeW5kczlhNTVjMzFqMWVHWHhZL2wrcExlR2FTNkpVa2s3NThLUWVyU3ZLQVpUa21sdW4zSXVyZEpmMml1Rzk5RTBUQnczTmpldWttbm10dDVwNnNORkRLTXlTOHpZNk5qRmE2anA3MmVwV2tRa1owYkdTeHp2bW5IU1dic3djODN4NlU0WFZrWkpVdUR2eTdnR2lGa0U0V0pVSjZESFNyZHVwczZKT0JubE52Mys2cVd0M0xTRUVZT2ZoVnpUV01tcGFKZVdTU3RFOHRxVVdWZXFrcjErbEJHRVFNZVlIYWxXdXJ6ZWpUVlZHTWsvL3dCMHFoMzR1NG8wVy9hM3U3bVRtak9Dc2d5cHg3NnR2VE5jbTRrOUMycDNza2FSeUNSb3lFNkhsWk4veG9LNW55SUkrVG92TnpNVzZBSG9LNHh5ckl3WURCQjJKcDRzYlJaNGdTQXlrbklZZU9LY1k5R3QySUxSS0FOeHNCUWNiV1R0WUl6M2N1TVUxemxvcEp4a2N6eUhwMUkvbFVxaTArR1BvdUJqcGpha3N2RGx0TlBKT1paZ1hKWWdFWStsU3piZUdmcHRGaGtESTJIY0syR0NCdHZVbFhocTJ6Z3lUS2V1NUg0YlZuK2pscGcvYXo0OTQvS3F3aStNRW5idzZVNmFEN1YrdzVpQjJiZEJud3AwSERscGpQYnpuSGRrYmZoWFczMG1Dd21Na2NrakVqQkRFWUhUd0hqZ1VHNTVBNDVlWWQrY1ovMS83MW9YeXBJVXEyKzNVNC8xdjhhNkVGaUFEN1BlQ0RucjFyV1FNR0hzNXlNNXg4ZitWQjBpY3huQ0hkamd1UnpmNkhXcGh4SElUd2xvemptVUVMa0VmM08rb2NoVWZabFNNNUcyd1A4QXJOUzdpWi8vQUlTMFFnazh3SHg5aWdpcXV5dUdEa01PaEI2ZTZtKy9zQk1wa2hBRWd5U2dHRmYzZUIrdEtReDlvNUcyT3RiNTV3VkJPNDYwRU12SnBZT3pFdk1tWDVHVHZBSU5NazBuTENrQSs2QUNTRG5OVC9VZEpnMU9NSko3RWliQ1ZSdjdqNVZGSnVHNUxlUXh1ekhCMlpSc3c4UnRVczI2WTUrc3NuMDJ4SDdNWStsS0lsUE5uTzlPMXR3L0gyYTh6eWMzZnVNQ2xRMEszQS9XeStlTVZYTXh2S3lwaFRUM29kOU90dE1obmtLRjF5aFk0TzNoWEdiU2JaR1JXbWxITjVqTktiV3lpdDFJV1NUbGZjbHQrZzhxQnppdUMwNk1Ya2ptQjltV0orVjF6NEVWWU9qNjNyU3drejIwV29SRDdyUm5zcGNZR0J5L2RQZnZrR3E2dDNDTUNRTi9MOEtuT2czYjgyOG1Bd0lVdCt4dDNlN05CS2RONGcwL1VKQ3JxYlM1UmdoaHUxS09HUFFMblppZkltbnFtaTNsak53U3l4U0ZuR01ZUFR2OSs0cDNvQ2lpaWdqWEU2czB5Z2s4alc1WEhuempQNEUxQmVQNTBzdUdURW4zcFRnRGZxZXArVzFUN1g1Z3VvV3NMcUFqeHNRNTdqbnArRlZoNlU1R1MyMDZCbTlwbUxFZUF3Y0Q4YUNPK2o2eE1tdWV0bllRbFVIanpNY2ZUTldldHNIMGEvalBWR1Z2aGsxRnZSNVlOSHA5dEl3L1h6dFAwNkJSeWo4UWFuMFVJUHJjSUdlMWpQekZBeExQMnRyYnUrZVNaZXhjajlseHR6RDhLY1hqTnZ3K2tTak1ramhGUHZwcXMxRTJuM2xzeDlxTTlvbjh4VHZwaDlmdDdRbmN3N043eDMwR1VqOVd0cnRBUVJEYmlQSUh6L0dteWY3SGhLTngxZG1Iek5QVjBPVFROUmt3UnpEcWZlS2FOVmp4d25BRS9Za3ljVUZHYW5DMXJxVnhHZHNPU04vSGNmV3JTanZUZTZIYU56RDdXQmVWejNQanA4eHQ1MUF1TDdVeFhzTnlCdE1tQ2ZOYVVjUDM1T2l2QXpZQ1NIbGJQVHYrdEJJSHV2V3IyR1p2dk9NeWU5ZGo5S2ZlRGdUeExZdHVWN2JieTJOUS9UbTlZdXBDMndRRnZpZXYwcWM4RkFIV2JZNDI3WUVmSTBGZzZuZ3h6Zzc3QWdlSkcvOEFLbzdiNE9rdTRUN01vV1lqYm1HT254NmU0VXU0aDFTTzJrblFFY3lqSHh3RFRQYVhndXVGTDRod0k0dzRiR050czQ4c0Q2MEZQOFB4bTk0dnRwSlBiQW1NemU0WlA1VmRWbmI5bllXaEkzQjdUNG1xejlHdGlMblViMlk0eWtLeGovak8rUGxWdlhFWWpVQURBQTI4cUJrMUZ2VStKVW02SktNbnpEVnRZTjZwZVhsb01lMTl6M1ZuaUdNdmEyMXlBZWRjS2E0TS9OTmFYaUEvZEFlZ2ZJTFlSbXpoL2NHY0R1cEJZWmU4MU5oM2hnUGhUNWJsWlpvNVY3OTgweTZaR1JlM2FIdmxiOGFDcStMYmNTYWRLK0R6eFNCcy9HbVRnL1VQVmRRbnQyWWNrMGU0OHgwcVo2NWJDVVgxdmdEbURkZkxKcXROTWZzTlhqQjIzS21nbVY1ZE04enhnKzJRRkI4ODdWWVBvMkIvVHR6emRmVmdQL1d0VmJMSUUxSzNMSGJtQjYxYVhvMGZ0T0lMdHU0d0QvOEFOYUNLYVF5WFd0MnVSdFBmRmlQSExZK2dGVG5Xcmd4YVpLeDY0Sk5WN3dQZE5mYS9idEtBQ3MwMkFQN3BiQi9DcFZ4UGRuOUR1MmNjeUUwRk9hOWY4dHRLQUR6czNLQ1BQLzJxR2tsam52TlREVUxlSzh0b3d4VlR6OHpudklHYVFMRFoyNDVZSUFXL2ZmY21wSkkzbG5jcEpmamxwVEczc1dsTGNwNXNnSHZwY2JneUVBbnBUZmZNaVJjb1VjM2ZTelRyZnQ5T1M0UkE1NWlyRHd4VllPT21hbTFyTVY1dG02MU1sMU5Yc2huOTNCSGZVQkVQMm81b2dQaFVzMFZyVXFpdmJJU1RqbWJ3b0Z0bzIvTVRrSHBWNTZmZHhRV0RUU043S3JuZjNiMVU2UG82d3FvdG9SeWpmcjdScmhyUEdNMzZQOVVnZkJZWU9PNGVGQkhPSTF0ZFVtdVdrUU1yU3N5bndHU2FtZkJWZzB2b1AxVzB0K2RqNnpNUmpyc1VZL1Nxd3Y3MWxqeGtrbXJqOUZBNS9SamNxeDJlN21CSjh3Z29JcHBFSEpwc2R4TXZLMGpmWkxrKzBwM3pUc3BBT3c3aGp6Tk1xU3Vtb2l6a2xhVklDVlFFN0FLZTZuOEtyQm14aGV1ZTdGQmo3b3hnazFoWmN2eVlKQUhVR3N5Uk1FTFp3Y1o1U0s1NE9Ec2MrWS9uUWQrZHVpSGI1MWdEMmNZUHhHOWNVZkEyUFg0VjBWaXd6Z3NlL0JvQW5HUVR5NHpnL3dBcXdUaEJ2bkk2bnI4cUNmY01iY3RhQWdFNXhuQjYwR2c1TTh6QWdZLzBQbFhNb1NmdmdIYnIxOGZ5K1ZkT1gybEFHV3lkNjU4dzZrSDNZb012Q2M4eWpHTWZENFZMdUlGWWNJNkdHUFB5cXZOdDk3N09vaHo5eGJicjRWS2VKNzRXWEMvRG5NL0trekNNaGgxK3ovQ2dpdU9iUE5qSGNNZGEwL2F4eTh1ZWc4YTd6UVk1bkJDZ2ZQRkorVlNWSTN4MzBHVmxIM054a2VGZFNBOFpqa0JkU2NqeFh6RkNCTTRPQ0Ixd2R6V0hBZFIzWngzMENDZTNrdHhrTVhqSjJmb1BjZkNrclNrSExObmFuamxKVTVYS3NOODlDS1JYZW5oVWFhM3oyZjdTNHlWd04vaFFKQmNjbktNQUh1ckRPblViNHBPTXRzcHdNNXovQUs4cTJEY3ZUSFRPU2VvSGhRTHJPMmtua1FRKzBUallINFZNdEkweTRpZ0xTenJHQ1FDcmJuSCtqVVFzcHV5UWdBNXgxejAzNi9oVHNOVGw3UHM0cGVWUmxjRTlUdFFXRmFXaUpOYnMwNkgyZzdFSVJrZ2dmenFRVlZPaGF4ZC9wTFRvZWRpaGtVRTU4V1dyV29DaWlpZ2gzRnQ0TGZYOUlSc0ZTR0lCOFNjZnpxdHZTd1cvUzlnR09jd00yTS8zcXUrNjB1eHZiaUc0dXJXT2FhRDlVN2pkUGRTTFVPRk5CMWFWSk5RMG0ydVhSZVZXa0JKQXpuSFdnaW5CK21tMDBXMFJ3Y3hXNnI3cyswZnhhbmxYRVZ6R2NiWndha1VkamF4SUVqZ1JWQUFBQThOaFdEcDltVGsyNkUwRmRsVFk2MnlIWlhPRDdqUy9TdjhBWTcyV0k1NUdKSVB2cVlUYU5wdHhJSkpyS0ozSFJpRG10aHBWZ0dEQzBpeU8vQm9HUFZJLzZrdlA3dy9uVFhjS0g0Wm1JWE9BR0ZUVjdPMmtpTVR3b3lIcXA2R3VRMHF3RnViY1drZllrWUtZT0tEejF4ZGJ0TnBJbDNQWk9BQU80WTNxTzhPeXIvdE51eCs4T1llZmpYcG1iaEhoNjRpYUtiUjdWNDIrOHBCd2Z4cEpGNlBlRUlINTR1SHJGR3hqSVZ2em9LRzAyWm83dTRRbnJ0dlZpOEc1R3RXQUF5RExrbjRHcHd2QXZDcXVYWFFiTU1Ua25sYjg2Y0xYUWRLc3BVa3RyQ0dKME9WWlFjajhhQ3RlTTdrcnhSZlFLMkEzSmxmRThvb1VUV2ZDK3JRY283SnJDVjJiL3dDNlFSOUtzZTY0YzBhOXZHdkxuVGJlVzRZZ21SZ2NrZ1lIZjVDdDMwSFNwTGVXQnJDRXhTcnl5SVFjTVBBNzBGV2VpVzBQcXQ5ZHN2MlprVlEzanlnLy93Q2hWZ1MvYWxoVHBwMmhhVnBOczF2cDloRGJRczNPVWpCQUo4ZXZrS1UrcFcyYzlnbWFDTFR4Q2Eya3Rtem5KSzAwYWFDeVNXN2RVT3dxZm13dEdmbU51aGJ4cmttazZmSEkwaVdrU3UzVWdIZWdhTk5tNVVDTWNZMkZKTFJPVFhMbGNkUnpWSmwwKzBRNVczUUhydFFOUHRCT1poYnAycEdDM2ZpZ3FIWENZdFZ1QXdPNVlWVkdyUXRaYXRJTUVlMkdGZXFyamh6UnJxUXlUNmJieU8zVm1CeWZ4cEJjOEE4SlhrbmFYSEQ5bEkvVExLZnpvUFBGNU1YdTdabEJQTVA1VmF2b21tVjladVZMQXlDM0dSNGUydFRSZUJPRlZaR1hRYklHUDdwNVR0K05MZE00YzBiUnJ1UzcwM1RZTFc0bFhsZVNNRUZobk9PdmlBYUR6OTZQYmk0WGkyVkNWN09GTGwrbTQzUDUwOWNkYTlEYVd4dFkyVnBpQ0dVZnM5S3QyejRLNGEwKzRlNHRORnRJWm5CRE9pbkpCNjkvZlhLNTRCNFR2SldrdWRBc3BYWTVMTUdKSitkQjVaZVJ6R01uZHF3dVV5eEhRWitOZW92K2pqZzMvd0FOMkg4TGZuUWZSendhUVFlSExEQjYreTM1MEhrcVZubGJjZStwUnc0T3owNERsUHRaUDQxNksvNk0rQ2YvQUF6cC93REMzNTBwaDRDNFR0MENSYUJaSW82QUszNTBIbnFTMzlyT0RXVWtsakdGR0s5RG5nbmhnOWREcy80VCtkWS9vTnd2L3VLei9oUDUwSG5zM0VpamRqU04zWSsxazU4NjlIbmdUaFZ1dWcyUi93Q0Z2enJVOEE4Sm5ydy9aZnd0K2RCNWN1bmFXYytXMVhuNk5tTnY2SjdoeU4xdkhPLytLT3BaL3dCSFBCMmMvd0JITEQrRnZ6cDNzOUMwdXcwMXRPdExDR0d6Wml6UW9EeWtuRy9YeUh5b0tVMUZSYWNZWEt2L0FOcEtXQkEydzNoVDFFM01veDBYWVo2YkhIOHFzcTQ0VzBLNm43ZWZTcmFTWEFIT3dPY1p6NDEwVGg3UjQxNVYwNkFMNFlQam54b0t6bFl5QW5CMkgrczF3TGRYWld6NG5Za2VZcTAyNGQwWnV1bXdINEg4NngvUnpSczUvUnNHY1k2SDg2Q3FsWnprNU9EMzQ3dkFWM0xsYzhydGtleURqYjMxWjM5RzlGLzNiQjhqK2RCNGIwVTlkTnQrbU9oL09ncTVtSFE1SjIyejhxMkpDN2dFbnpxMER3NW94SUowMjN5Tjg0UDUxZ2NPYU1CZ2FiQmozSDg2Q3IyQXhuQnlmRHBXa250NTdnUnVmQ3JUSERlaWdBRFRiZkE2Ykg4NkR3M29wT1RwdHY4QUkvblFWTmxpU0MyY0hPTWVGT3ZwSEJIQVhEUnp1cnFjL3dEbDFZWjRhMFFuSjB5M3o3aitkZGI3UXRLMUt6aHM3MndobnQ0ZjFVYmc0VGJHMi9oUVV6cGVwSFZMTmVZWWxqeHpBRHFPbEtFR0g4ajRWYWR0d2Z3N1pzV3R0SHRZaTJ4S2c3L2pYWCtqR2g0eCtpN2ZIdVA1MEZVNTVHS2dNVDFJSGRXNEpLaGduVHB0ak5Xbi9SalEvd0RkZHY4QUkvblczOUc5Ry8zYmIvSS9uUVZlb1ZQYWIybEdCZy82NlZpTXl4b1drSURCaVZaRDFYUHM5ZnhxMHY2T2FOL3UyMytSL09zSGh6UmoxMDIzK1IvT2dxVzUwdExsVExiQkk1V3p6UmpvM21EM2U2bVl4TWpublJnVlB0QnRpTVZlbjlIZEgyL3EyMzI4aitkYVM4TWFITy9QTHBkczdZeGtnNSt0QlNxS3BBQkJJNkRCN2pYUm5aK1htQkdDRDQrTlhIL1JQaC8vQUhSYS93QUovT2c4SjZBZXVrV3Z5UDUwRlY2Tk16NjVwaWd0bjFtTUh3KytLdTA5YWFJZUY5Q2dtam1pMHUzU1NOZzZNQWNnam9ldE85QVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRZi8vWiZxdW90OyBhbHQ9JnF1b3Q7WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgZW1iZWRkZWQgaW1hZ2VzLCBzb3JyeSZxdW90Oy8+DQo8aDM+U3R5bGVzaGVldHM6PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGFsc28gd29ya3Mgd2l0aGluIHN0eWxlc2hlZXRzLCBpZiB1c2luZyB0aGUge2Ntc19zdHlsZXNoZWV0fSB0YWcgaW4geW91ciBwYWdlIHRlbXBsYXRlLiAgQmVjYXVzZSB0aGUgc21hcnR5IHN5bnRheCBpcyBzbGlnaHRseSBkaWZmZXJlbnQgaW5zaWRlIHRoZSB7Y21zX3N0eWxlc2hlZXR9IHRhZyB5b3UgdXRpbGl6ZSB0aGUgbW9kdWxlIHVzaW5nIHRoZSBbWyBhbmQgXV0gZGVsaW1pdGVycy4gIGkuZTogPGNvZGUgc3R5bGU9JnF1b3Q7Y29sb3I6IGJsdWU7JnF1b3Q7PmRpdi5oZWFkZXIgeyBiYWNrZ3JvdW5kOiB1cmwoW1tDR1NtYXJ0SW1hZ2Ugc3JjPSYjMDM5O3VwbG9hZHMvcGljdHVyZS5qcGcmIzAzOTsgbm90YWc9MV1dKTsgfTwvY29kZT48L3A+DQo8cD5CZWNhdXNlIHN0eWxlc2hlZXRzIGFyZSBnZW5lcmF0ZWQgb24gbW9kaWZpY2F0aW9uIGFuZCBzdG9yZWQgaW4gdGhlIGZpbGVzeXN0ZW0gdGhlcmUgaXMgbm8gd2F5IHRvIGRldGVybWluZSBkdXJpbmcgdGhlIHJlcXVlc3Qgd2hpY2ggYnJvd3NlciBpcyByZXF1ZXN0aW5nIHRoZSBzdHlsZXNoZWV0LCB0aGVyZWZvcmUgZW1iZWRkaW5nIHdpbGwgYmUgZG9uZSBzdHJpY3RseSBiYXNlZCB1cG9uIHRoZSBwcmVzZW5zZSBvZiB0aGUgbm9lbWJlZCBwYXJhbWV0ZXIuICBJZiB5b3UgaGF2ZSBjaG9zZW4gdG8gZW1iZWQgaW1hZ2VzIGRpcmVjdGx5IGludG8geW91ciBzdHlsZXNoZWV0cywgWW91IG1heSBuZWVkIHRvIGFkZCBhZGRpdGlvbmFsIHN0eWxlc2hlZXQgc3VwcG9ydCBmb3IgdGhlIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgZW1iZWRkZWQgaW1hZ2VzLiAgaS5lOiAgSUU2LjwvcD4NCjxoMz5BdXRvbWF0aWMgUHJvY2Vzc2luZzwvaDM+DQo8cD5UaGlzIG1vZHVsZSBpbmNsdWRlcyBhIHNtYXJ0eSBibG9jayB0YWcgY2FsbGVkIDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57Y2dzaV9jb252ZXJ0fTwvY29kZT4gdGhhdCBjYW4gc3Vycm91bmQgYSBibG9jayBvZiBodG1sLCBvciBvdGhlciBzbWFydHkgdGFncyB0byBhbGxvdyBhdXRvbWF0aWMgaW1hZ2UgcHJvY2Vzc2luZy4gIFRoaXMgdGFnIGNhbiBiZSB1c2VkIGxpa2U6IChmb3IgZXhhbXBsZSk6PC9wPg0KPHByZT48Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e2Nnc2lfY29udmVydH17Y29udGVudH17L2Nnc2lfY29udmVydH08L2NvZGU+PC9wcmU+DQo8cD5UaGlzIHdpbGwgYWxsb3cgeW91ciB1c2VycyB0byBpbmNsdWRlIGltYWdlcyBpbnRvIHBhZ2VzIHVzaW5nIHRoZSBub3JtYWwgd3lzaXd5ZyB0b29scywgYW5kIHRvIGhhdmUgdGhlbSBhdXRvbWF0aWNhbGx5IHByb2Nlc3NlZCBhbmQgZW1iZWRkZWQgaW50byB0aGUgcGFnZSB1c2luZyB0aGUgbWFnaWMgb2Yge0NHU21hcnRJbWFnZX0uIGkuZTogU2VlIHRoZSBmb2xsb3dpbmcgY29kZTo8L3A+DQo8cHJlPjxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57Y2dzaV9jb252ZXJ0IGZpbHRlcl9ncmF5c2NhbGU9MSBmaWx0ZXJfd2F0ZXJtYXJrPTF9e2NvbnRlbnR9ey9jZ3NpX2NvbnZlcnR9PC9jb2RlPjwvcHJlPg0KPHA+VGhlIGFib3ZlIGNvZGUgd2lsbCBjYXB0dXJlIGFsbCBpbWFnZSB0YWdzLCBhbmQgY29udmVydCB0aGVtIHRvIGdyYXlzY2FsZSBhbmQgdGhlbiBhcHBseSB0aGUgd2F0ZXJtYXJrIChhY2NvcmRpbmcgdG8gdGhlIHNldHRpbmdzIGluIHRoZSBDR0V4dGVuc2lvbnMgbW9kdWxlKS4gIEFsbCBvZiB0aGUgcGFyZXRlcnMgYXZhaWxhYmxlIHRvIHRoZSA8Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e0NHU21hcnRJbWFnZX08L2NvZGU+IHRhZyBhcmUgYXZhaWxhYmxlIHRvIHRoaXMgdGFnIChmb3IgaW1hZ2Ugc2NhbGluZyBldGMuKS4gIEFkZGl0aW9uYWxseSwgdHdvIG5ldyBwYXJhbWV0ZXJzIGhhdmUgYmVlbiBpbnRyb2R1Y2VkOiA8c3Ryb25nPm1heF93aWR0aDwvc3Ryb25nPiBhbmQgPHN0cm9uZz5tYXhfaGVpZ2h0PC9zdHJvbmc+IHdoaWNoIGNhbiBiZSB1c2VkIHRvIHNldCBhIG1heGltdW0gc2l6ZSBmb3IgaW1hZ2VzLi48L3A+DQo8ZGl2IHN0eWxlPSZxdW90O21hcmdpbi1sZWZ0OiAzZW07JnF1b3Q7PjxzdHJvbmcgc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+Tm90ZTo8L3N0cm9uZz4NCjxwPlRoaXMgdGFnIHBhcnNlcyB0aGUgSFRNTCBjb250ZW50IGJldHdlZW4gdGhlIHN0YXJ0IGFuZCBlbmQgdGFncyB0byBmaW5kIHRoZSA8aW1nPiB0YWdzLiAgSXQgdGhlbiB3aWxsIG91dHB1dCBzeW50YWN0aWNhbGx5IHZhbGlkIEhUTUwgZm9yIHRoZSBzdWJzZXQgb2YgY29kZSBpdCB3YXMgcHJvdmlkZWQuICBUaGVyZWZvcmUgaXQgaXMgaW1wb3J0YW50IHRoYXQgdGhlIHNuaXBwZXQgb2YgSFRNTCBwYXNzZWQgdG8gdGhpcyB0YWcgYmUgaW50YWN0IGFuZCBhcyBjbG9zZSB0byB2YWxpZCBhcyBwb3NzaWJsZS4gIDxzdHJvbmc+VXNlIHdpdGggY2F1dGlvbi48L3N0cm9uZz4NCjwvZGl2Pg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0IG9yIGJ1eSBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSB2aXNpdCBjYWxndXkmIzAzOTtzDQptb2R1bGUgaG9tZXBhZ2UgYXQgPGEgaHJlZj0iaHR0cDovL2NhbGd1eTEwMDAuY29tIj5jYWxndXkxMDAwLmNvbTwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yLCBjYWxndXkxMDAwLCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LjwvbGk+ICANCjwvdWw+DQo8aDM+UmVxdWlyZW1lbnRzPC9oMz4NCjxwPlRoaXMgbW9kdWxlIG1ha2VzIGV2dGVuc2l2ZSB1c2Ugb2YgdGhlIEdEIEltYWdlIHByb2Nlc3NpbmcgbGlicmFyeSB0byBkbyBpbWFnZSBtYW5pcHVsYXRpb24uICBBZGRpdGlvbmFsbHksIHRoZSB7Y2dzaV9jb252ZXJ0fSBwbHVnaW4gbWFrZXMgZXh0ZW5zaXZlIHVzZSBvZiB0aGUgc2ltcGxleG1sIGFuZCBYTUxEb20gY2xhc3NlcyBidWlsdCBpbiB0byBwaHAuICBUaGVyZSBtYXkgYmUgb3RoZXIgYWRkaXRpb25hbCByZXF1aXJlbWVudHMuICBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBlcnJvcnMgeW91IHNob3VsZCBlbnN1cmUgdGhhdCBlcnJvciByZXBvcnRpbmcgaXMgZW5hYmxlZCwgYW5kIHRoYXQgeW91IGhhdmUgYW5hbHl6ZWQgeW91ciBlcnJvciBsb2dzLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZhbXA7Y29weTsgMjAwOCwgUm9iZXJ0IENhbXBiZWwgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPiZhbXA7bHQ7Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZhbXA7Z3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQp0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+DQo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQNCmFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQ0KaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUw0KTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIA0Kc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS48L3A+DQo8cD5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQpNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCmFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+JzsKJGxhbmdbJ2luZm9fYWxpYXNlcyddID0gJ1VtIHphaGxyZWljaGUgdW5kIGgmYXVtbDt1ZmlnIHZlcndlbmRldGUgT3B0aW9uZW4genUga29tYmluaWVyZW4gayZvdW1sO25uZW4gYWxpYXNlIHZvbiBhbGlhczEgYmlzIGFsaWFzNSBkdXJjaCBDR1NtYXJ0SW1hZ2UgT3B0aW9uZW4gdmVyd2VuZGV0IHdlcmRlbi4nOwokbGFuZ1snaW5mb19jcm9wdG9maXRfZGVmYXVsdF9sb2MnXSA9ICdTdGFuZGFyZCByaWNodHVuZywgIGYmdXVtbDtyICZxdW90O2Nyb3AgdG8gZml0JnF1b3Q7LCBkaWVzIHdpcmt0IHNpY2ggYXVmIGFsbGUgJnF1b3Q7Y3JvcCB0byBmaXQmcXVvdDsgb3BlcmF0aW9uZW4gYXVzLCBhdXNnZW5vbW1lbiBmaWx0ZXJfY3JvcHRvZml0IEF0dHJpYnV0ICZ1dW1sO2JlcnNjaHJlaWJ0IGVzLiBTdGFuZGFyZC1FaW5zdGVsbHVuZyBpc3QgJnF1b3Q7Y2VudGVyJnF1b3Q7Lic7CiRsYW5nWydpbWFnZV91cmxfaGFzY2FjaGVkaXInXSA9ICdaJmF1bWw7aGx0IGRpZSBVUkwgb2JlbiBmJnV1bWw7ciBkYXMgWndpc2NoZW5zcGVpY2hlci1WZXJ6ZWljaG5pcyAoX0NHU21hcnRJbWFnZSknOwokbGFuZ1snaW1hZ2VfdXJsX3ByZWZpeCddID0gJ0JpbGQtVVJMLVByJmF1bWw7Zml4JzsKJGxhbmdbJ2luZm9fY2FjaGVfYWdlJ10gPSAnTWF4aW1hbGVzIEFsdGVyIGVpbmVyIERhdGVpIChpbiBUYWdlbikgYmV2b3IgZXMgZW50ZmVybnQgdW5kIG5ldSBlcnpldWd0IHdpcmQuIE4mdXVtbDt0emxpY2gsIHdlbm4gZGllIEVpbnN0ZWxsdW5nZW4gdmVyJmF1bWw7bmRlcnQgd3VyZGVuIG9kZXIgdW0gZGllIEdyJm91bWw7JnN6bGlnO2UgZGVzIGdlbnV0enRlbiBTcGVpY2hlcnBsYXR6ZXMgenUga29udHJvbGxpZXJlbi4nOwokbGFuZ1snaW5mb19lbWJlZF9tb2RlJ10gPSAnVGhpcyBzZWxlY3Rpb24gZGV0ZXJtaW5lcyBob3cgdGhlIHtzbWFydGltZ30gdGFnIHdpbGwgZ2VuZXJhdGUgb3V0cHV0LiAgSWYgJnF1b3Q7bm9uZSZxdW90OyBpcyBzZWxlY3RlZCBubyBpbWFnZSBlbWJlZGRpbmcgd2lsbCBiZSBwZXJmb3JtZWQuICBJZiAmcXVvdDtzbWFydCZxdW90OyBpcyBzZWxlY3RlZCB0aGVuIHRoZSBzeXN0ZW0gd2lsbCBkZWNpZGUgYmFzZWQgb24gdGhlIGltYWdlIHNpemUsIHR5cGUsIGFuZCB0aGUgYnJvd3NlciB0aGF0IGlzIHJlcXVlc3RpbmcgdGhlIGltYWdlLiAgT3RoZXIgb3B0aW9ucyBpbmNsdWRlIGFsd2F5cyBlbWJlZGRpbmcgYmFzZWQgb24gdGhlIGltYWdlIHNpemUsIG9yIHRoZSBpbWFnZSB0eXBlLic7CiRsYW5nWydpbmZvX2VtYmVkX3NpemVsaW1pdCddID0gJ1dlbm4gZGllIE9wdGlvbiBmJnV1bWw7ciBCaWxkLUVpbmJldHR1bmcgZHVyY2ggZGllIEJpbGRnciZvdW1sOyZzemxpZztlIGJlc3RpbW10IHdpcmQsIGdlYmVuIFNpZSBkaWUgbWF4aW1hbGUgR3Imb3VtbDsmc3psaWc7ZSAoaW4gS2lsb2J5dGUpIGYmdXVtbDtyIGVpbmdlYmV0dGV0ZSBCaWxkZXIgYW4gICgzMiB3aXJkIGVtcGZvaGxlbikuJzsKJGxhbmdbJ2luZm9fZW1iZWRfdHlwZXMnXSA9ICdXZW5uIGRpZSBPcHRpb24gZiZ1dW1sO3IgQmlsZC1FaW5iZXR0dW5nIGR1cmNoIEJpbGQtVHlwIGJlc3RpbW10IHdpcmQsIGdlYmVuIFNpZSBkdXJjaCBLb21tYSBnZXRyZW5udGUgRXJ3ZWl0ZXJ1bmdlbiBkZXIgRGF0ZWllbiBhbiwgZGllIGVpbmdlYmV0dGV0IHdlcmRlbiBzb2xsZW4uIEdybyZzemxpZzstL0tsZWluc2NocmVpYnVuZyB3aXJkIG5pY2h0IGJlYWNodGV0Lic7CiRsYW5nWydpbmZvX2ltYWdlX3VybF9oYXNjYWNoZWRpciddID0gJ1dlbm4gSWhyIENETiBkaXJla3QgYXVmIGRhcyBad2lzY2hlbnNwZWljaGVyLVZlcnplaWNobmlzIHZlcndlaXN0LCBrJm91bWw7bm50ZSBkaWVzZSBPcHRpb25lbiBoaWxmcmVpY2ggc2Vpbi4nOwokbGFuZ1snaW5mb19pbWFnZV91cmxfcHJlZml4J10gPSAnVVJMIGRlciBCaWxkZXIuIFN0YW5kYXJkbSZhdW1sOyZzemxpZztpZyBpc3QgZGllcyBkaWUgVXBsb2FkLVVSTC4gVmVyd2VuZGVuIFNpZSBlaW4gQ0ROIChvZGVyIG1laHJlcmUgRG9tYWlucywgZGllIGF1ZiBkYXMgc2VsYmUgVmVyemVpY2huaXMgdmVyd2Vpc2VuKSBrJm91bWw7bm5lbiBTaWUgaGllciBlaW4gZWluZSBhbmRlcmUgVVJMIGZlc3RsZWdlbi4nOwokbGFuZ1snbWF4X2NhY2hlX2FnZSddID0gJ01heGltYWxlcyBBbHRlciBkZXIgRGF0ZWllbiBpbSBad2lzY2hlbnNwZWljaGVyIChUYWdlKSc7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0VpbiBNb2R1bCB6dXIgc2NobGF1ZW4gRXJ6ZXVndW5nIHZvbiBCaWxkZXJuIGYmdXVtbDtyIENNUyBNYWRlIFNpbXBsZSc7CiRsYW5nWydtc2dfYWxpYXNlc191cGRhdGVkJ10gPSAnQWxpYXNlIGFrdHVhbGlzaWVydCc7CiRsYW5nWydtc2dfY2FjaGVjbGVhbmVkJ10gPSAnWndpc2NoZW5zcGVpY2hlciBnZWxlZXJ0LiAlZCBEYXRlaWVuIGVudGZlcm50Lic7CiRsYW5nWydtc2dfY2FjaGVyZW1vdmVkJ10gPSAnWndpc2NoZW5zcGVpY2hlciBlbnRmZXJudCc7CiRsYW5nWydtc2dfcHJlZnN1cGRhdGVkJ10gPSAnRWluc3RlbGx1bmdlbiBha3R1YWxpc2llcnQnOwokbGFuZ1snbm9uZSddID0gJ0tlaW5lcic7CiRsYW5nWydvcHRpb25zJ10gPSAnT3B0aW9uZW4nOwokbGFuZ1sncGFyYW1fYWxpYXMnXSA9ICdUaGUgQ0dTbWFydEltYWdlIGFkbWluIHBhbmVsIGFsbG93cyBjcmVhdGluZyBudW1lcm91cyBjb21tYW5kIGFsaWFzIHRvIGNvbWJpbmUgYSBmcmVxdWVudGx5IHVzZWQgcGF0dGVybiBvZiBhcmd1bWVudHMgaW50byBvbmUgbmFtZS4gIFRvIHVzZSB0aGVzZSBhbGlhc2VzIHVzZSBhbiBhcmd1bWVudCBvZiB0aGUgZm9ybSBhbGlhcyMjPWFsaWFzX25hbWUgaS5lOiAgYWxpYXMxPWZvbyBhbGlhczI9Zm9vLic7CiRsYW5nWydwYXJhbV9hbHQnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSBhbHQgYXR0cmlidXRlLiAgTm90ZSwgaWYgdGhpcyBpcyBub3Qgc3BlY2lmaWVkIGEgdmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoaXMgYXR0cmlidXRlIHNvIHRoYXQgbW9zdCBnZW5lcmF0ZWQgaW1nIHRhZ3Mgd2lsbCB2YWxpZGF0ZS4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBhdXRvIGNhbGN1bGF0aW9uIHdpdGggdGhlICZxdW90O25vYXV0byZxdW90OyBwYXJhbWV0ZXInOwokbGFuZ1sncGFyYW1fY2xhc3MnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgYWxsb3dzIHNwZWNpZnlpbmcgb25lIG9yIG1vcmUgY2xhc3NlcyB0byBpbmNsdWRlIG9uIHRoZSB0YWcuICBpLmU6IGNsYXNzPSZxdW90O2ZhbmN5Ym94IHRodW1ibmFpbCZxdW90Oyc7CiRsYW5nWydwYXJhbV9maWx0ZXJfYmx1ciddID0gJyhpcmdlbmR3YXMpIEdlYmVuIFNpZSBlaW5lbiBiZWxpZWJpZ2VuIFdlcnQgZWluIGYmdXVtbDtyIGRpZXNlbiBQYXJhbWV0ZXIgenVtIEhpbnp1ZiZ1dW1sO2dlbiBlaW5lcyBXZWljaHplaWNobnVuZ3NmaWx0ZXIgYXVmIGRhcyBCaWxkJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9icmlnaHRuZXNzJ10gPSAnKEdhbnp6YWhsKSBFcmgmb3VtbDtoZW4gU2llIGRpZSBIZWxsaWdrZWl0IGRlcyBiZWFyYmVpdGV0ZW4gQmlsZGVzIGR1cmNoIGRlbiBhbmdlZ2ViZW4gR2FuenphaGwtV2VydCc7CiRsYW5nWydwYXJhbV9maWx0ZXJfY29sb3JpemUnXSA9ICcocixnLGJbLGFscGhhXSkgLSBXaWUgZmlsdGVyX2dyZXlzY2FsZSwgamVkb2NoIGsmb3VtbDtubmVuIFNpZSBkaWUgRmFyYmUgdW5kIGRlbiBBbHBoYS1XZXJ0IGJlc3RpbW1lbic7CiRsYW5nWydwYXJhbV9maWx0ZXJfY29udHJhc3QnXSA9ICcoR2FuenphaGwpIFZlciZhdW1sO25kZXJ0IGRlbiBLb25zdHJhc3QgZGVzIEJpbGRlcyB1bSBkaWUgYW5nZWdlYmVuZSBHYW56emFobCc7CiRsYW5nWydwYXJhbV9maWx0ZXJfY3JvcCddID0gJyhwZXJjZW50WyxoX2FsaWduLHZfYWxpZ25dKSAtIFBlcmZvcm0gY3JvcHBpbmcgb24gdGhlIGltYWdlIHNwZWNpZmllZC4gQ3JvcCBwYXJhbWVldGVycyBhcmUgc3BlY2lmaWVkIGFzIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgcGFyYW1ldGVycy4gIFRoZSBmaXJzdCAocmVxdWlyZWQpIHZhbHVlIGlzIGFuIGludGVnZXIgcGVyY2VudGFnZSBvZiB0aGUgb3JpZ2luYWwgaW1hZ2Ugc2l6ZS4gIFRoZSBvcHRpb25hbCBzZWNvbmQgYW5kIHRoaXJkIHBhcmFtZXRlcnMgYXJlIG9uZSBvZiBsLGMsciAobGVmdCxjZW50ZXIscmlnaHQpIGFuZCB0LGMsYiAodG9wLGNlbnRlcixib3R0b20pIHNwZWNpZnlpbmcgd2hlcmUgdGhlIGxvY2F0aW9uIHdpdGhpbiB0aGUgc291cmNlIGltYWdlIHRvIGNyb3AgZnJvbS4gIGkuZTogY3JvcD0zMyxiLHIgdG8gZ3JhYiBhIGNyb3Agb2YgMzMlIGZyb20gdGhlIGJvdHRvbSByaWdodCBvZiB0aGUgc291cmNlIGltYWdlLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfY3JvcHRvZml0J10gPSAnKHdpZHRoLGhlaWdodCkgLSBQZXJmb3JtIGEgY3JvcHRvZml0IG9uIHRoZSBpbWFnZSBzcGVjaWZpZWQuIFRoaXMgYXR0ZW1wdHMgdG8gcmVzY2FsZSB0aGUgaW1hZ2UgdG8gdGhlIGRlc3RpbmF0aW9uIHNpemUgd2hpbGUgcmVhdGluaW5nIGFzcGVjdCByYXRpbywgdGhlbiBmb2N1cyBvbiB0aGUgY2VudGVyIG9mIHRoZSByZXNpemVkIGltYWdlLiAgQ3JvcCB0byBmaXQgcGFyYW1ldGVycyBhcmUgc3BlY2lmaWVkIGFzIHRoZSBkZXNpcmVkIHdpZHRoIGFuZCBoZWlnaHQgZm9yIHRoZSBkZXN0aW5hdGlvbiBpbWFnZS4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX2VkZ2VkZXRlY3QnXSA9ICcoaXJnZW5kd2FzKSBLYW50ZW4gaW0gQmlsZCBoZXJ2b3JoZWJlbi4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX2VtYm9zcyddID0gJyhpcmdlbmR3YXMpIEJpbGQgcHImYXVtbDtnZW4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX2ZsaXAnXSA9ICcobW9kZSkgLSBGJnV1bWw7aHJ0IGVpbmUgRHJlaHVuZyBhdWYgZGVtIGFuZ2VnZWJlbmVuIEJpbGQuIEdlYmVuIFNpZSAwIGYmdXVtbDtyIGhvcml6b250YWxlLCAxIGYmdXVtbDtyIHZlcnRpa2FsZSB1bmQgMiBmJnV1bWw7ciBEcmVodW5nIGluIGJlaWRlIFJpY2h0dW5nZW4uJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9ncmF5c2NhbGUnXSA9ICcoYW55dGhpbmcpIEJpbGQgaW4gR3JhdXN0dWZlbiB1bXdhbmRlbG4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX21lYW5yZW1vdmFsJ10gPSAnKGFueXRoaW5nKSBWZXJzdWNodCBlaW5lbiAmcXVvdDtnZXplaWNobmV0JnF1b3Q7LUVmZmVrdCc7CiRsYW5nWydwYXJhbV9maWx0ZXJfbmVnYXRlJ10gPSAnKGFueXRoaW5nKSBCaWxkIGlucyBOZWdhdGl2IHVta2VocmVuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9waXhlbGF0ZSddID0gJyhzaXplWyxhZHZhbmNlZF0pIFBpeGVsYXRlIHRoZSBpbWFnZSwgc3BlY2lmeSBhbiBpbnRlZ2VyIHNpemUgYW5kIGFuIG9wdGlvbmFsIGJvb2xlYW4gKGRlZmF1bHQgaXMgZmFsc2UpIHRvIGVuYWJsZSBhZHZhbmNlZCBwaXhlbGF0aW9uJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yZXNpemUnXSA9ICd0eXBlLG51bWJlclssbnVtYmVyXSAtIFBlcmZvcm0gYSByZXNpemUgb2YgdGhlIHNvdXJjZSBpbWFnZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5wLG51bWJlciAtIFBlcmZvcm0gYSBzaW1wbGUgcmVzY2FsZSB0byBhIGNlcnRhaW4gcGVyY2VudGFnZS4gIGkuZTogIHJlc2l6ZT1wLDUwIHRvIHJlc2l6ZSB0byA1MCUgb2YgdGhlIG9yaWdpbmFsIHNpemUuPC9saT4NCiAgPGxpPncsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCB3aWR0aCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPXcsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIHdpZHRoIG9mIDgwIHBpeGVscy48L2xpPg0KICA8bGk+aCxudW1iZXIgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgc3BlY2lmaWVkIGhlaWdodCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPWgsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIGhlaWdodCBvZiA4MCBwaXhlbHMuPC9saT4NCiAgPGxpPmMseCx5IC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIGN1c3RvbSBzaXplICh3aXRob3V0IHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgaS5lOiByZXNpemU9Yyw1MCw3NSB0byBjcmVhdGUgYSB0aHVtYm5haWwgdGhhdCBpcyA1MHg3NSBwaXhlbHMuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yZXNpemV0b2ZpdCddID0gJyh3aWR0aCxoZWlnaHRbLGNvbG9yWyxhbHBoYV1dKSAtIFBlcmZvcm0gYSByZXNpemUgb24gdGhlIGltYWdlIHNwZWNpZmllZC4gVGhpcyBhdHRlbXB0cyB0byByZXNjYWxlIHRoZSBpbWFnZSB0byB0aGUgZGVzdGluYXRpb24gc2l6ZSB3aGlsZSByZWF0aW5pbmcgYXNwZWN0IHJhdGlvLCB0aGUgaW1hZ2UgaXMgY2VudGVyZWQgaW4gdGhlIGJveCBzcGVjaWZpZWQgKGVpdGhlciBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBkZXBlbmRpbmcgdXBvbiBhc3BlY3QgcmF0aW8gYW5kIHRoZSBkZXN0aW5hdGlvbiBzaXplLCBhbmQgdGhlIGltYWdlIGlzIHN1cnJvdW5kZWQgYnkgdGhlIHN1cHBsaWVkIGNvbG9yLiAgQ29sb3JzIGNhbiBiZSBzcGVjaWZpZWQgYnkgbmFtZSAoc2VlIHRoZSBYMTEgY29sb3IgbmFtZXMpLCBvciBieSAjbm5ubm5uIGhleGFkZWNpbWFsIGZvcm1hdCwgb3IgYXMgcmdiIHZhbHVlcyBzZXBhcmF0ZWQgYnkgYSA6IGkuZTogIGZpbHRlcl9jcm9wdG9maXQ9NjAwLDQwMCwjZmYwMDAwLiAgVGhlIHNwZWNpYWwgY29sb3IgdmFsdWUgJnF1b3Q7dHJhbnNwYXJlbnQmcXVvdDsgY2FuIGJlIHNwZWNpZmllZCB0byBmb3JjZSB0aGUgYmFja2dyb3VuZCB0byBiZSB0cmFuc3BhcmVudC4gICBBbiBhbHBoYSB2YWx1ZSBtYXkgYmUgc3BlY2lmaWVkIGJldHdlZW4gMCBhbmQgMTI3IHRvIHNwZWNpZnkgZGlmZmVyZW50IGRlZ3JlZXMgb2YgdHJhbnNsdWNlbmN5IGZvciB0aGUgYmFja2dyb3VuZC4gICBBdCBubyB0aW1lIHdpbGwgdGhpcyBwbHVnaW4gcGVyZm9ybSBhbnkgdXBzY2FsaW5nLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfcm90YXRlJ10gPSAnKGFuZ2xlLGNvbG9yKSBTcGVjaWZ5IHRoZSBpbnRlZ2VyIGFuZ2xlIChjb3VudGVyIGNsb2Nrd2lzZSkgdG8gcm90YXRlIHRoZSBpbWFnZSwgYW5kIGEgY29sb3IgdG8gZmlsbCB0aGUgZW1wdHkgcGl4ZWxzIHdpdGguICBUaGUgaW1hZ2UgaXMgcm90YXRlZCBhYm91dCBpdHMgY2VudGVyLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfcm91bmRlZGNvcm5lcnMnXSA9ICcocmFkaXVzKSBlaW5lbiBnYW56emFobGlnZW4gUmFkaXVzIChpbiBQaXhlbG4pIHp1bSBBYnJ1bmRlbiBkZXIgRWNrZW4gYW5nZWJlbic7CiRsYW5nWydwYXJhbV9maWx0ZXJfd2F0ZXJtYXJrJ10gPSAnKGlyZ2VuZHdhcykgV2Fzc2VyemVpY2hlbiAod2llIGluIGRlbiBFaW5zdGVsbHVuZ2VuIHZvbiBDR0V4dGVuc2lvbnMgZGVmaW5pZXJ0KSBhdWYgZGFzIEJpbGQgYW53ZW5kZW4nOwokbGFuZ1sncGFyYW1faGVpZ2h0J10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIHNwZWNpZnkgdGhlIHZhbHVlIGZvciB0aGUgaGVpZ2h0IGF0dHJpYnV0ZS4gIE5vdGUsIGlmIHRoaXMgaXMgbm90IHNwZWNpZmllZCBhIHZhbHVlIHdpbGwgYmUgYXV0b21hdGljYWxseSBjYWxjdWxhdGVkIGZvciB0aGlzIGF0dHJpYnV0ZSBzbyB0aGF0IG1vc3QgZ2VuZXJhdGVkIGltZyB0YWdzIHdpbGwgdmFsaWRhdGUuICBZb3UgY2FuIG92ZXJyaWRlIHRoaXMgYXV0byBjYWxjdWxhdGlvbiB3aXRoIHRoZSAmcXVvdDtub2F1dG8mcXVvdDsgcGFyYW1ldGVyJzsKJGxhbmdbJ3BhcmFtX2lkJ10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIGFsbG93cyBzcGVjaWZ5aW5nIGFuIGlkIGF0dHJpYnV0ZSB0byBpbmNsdWRlIG9uIHRoZSB0YWcuICBpLmU6IGlkPSZxdW90O3NvbWV0YWcmcXVvdDsnOwokbGFuZ1sncGFyYW1fbWF4X2hlaWdodCddID0gJ1dpcmQgbnVyIGYmdXVtbDtyIHtjZ3NpX2NvbnZlcnR9IHRhZyB2ZXJ3ZW5kZXQuIERpZXNlciBQYXJhbWV0ZXIgZXJtJm91bWw7Z2xpY2h0IGRpZSBBbmdhYmUgZWluZXIgbWF4aW1hbGVuIEgmb3VtbDtoZSBmJnV1bWw7ciBkaWUga29udmVydGllcnRlbiBCaWxkZXInOwokbGFuZ1sncGFyYW1fbWF4X3dpZHRoJ10gPSAnV2lyZCBudXIgZiZ1dW1sO3Ige2Nnc2lfY29udmVydH0gdGFnIHZlcndlbmRldC4gRGllc2VyIFBhcmFtZXRlciBlcm0mb3VtbDtnbGljaHQgZGllIEFuZ2FiZSBlaW5lciBtYXhpbWFsZW4gQnJlaXRlIGYmdXVtbDtyIGRpZSBrb252ZXJ0aWVydGVuIEJpbGRlcic7CiRsYW5nWydwYXJhbV9uYW1lJ10gPSAnVmVyd2VuZGV0IGJlaSBkZXIgRXJzdGVsbHVuZyBlaW5lcyBpbWctVGFncywgZ2ViZW4gU2llIGRlbiBXZXJ0IGYmdXVtbDtyIGRhcyBuYW1lIEF0dHJpYnV0Lic7CiRsYW5nWydwYXJhbV9ub2F1dG8nXSA9ICdBdHRyaWJ1dGUgZiZ1dW1sO3IgZGFzIGltZy1UYWcgbmljaHQgYXV0b21hdGlzY2ggYmVyZWNobmV0LiBEaWVzIGsmb3VtbDtubnRlIGRhenUgZiZ1dW1sO2hyZW4sIGRhc3MgSWhyZSBTZWl0ZSBuaWNodCBtZWhyIHZhbGlkaWVydCwgd2VubiB2ZXJwZmxpY2h0ZW5kZSBBdHRyaWJ1dGUgKHdpZHRoLCBoZWlnaHQsIGFsdCkgbmljaHQgYW5nZWdlYmVuIHNpbmQuJzsKJGxhbmdbJ3BhcmFtX25vYXV0b3NjYWxlJ10gPSAnd2VubiBCcmVpdGUgdW5kIEgmb3VtbDtoZSBQYXJhbWV0ZXIgYW5nZWdlYmVuIHdlcmRlbiwgd2lyZCBkaWVzZXIgUGFyYW1ldGVyIGRpZSBhdXRvbWF0aXNjaGUgU2thbGllcnVuZyBkZXMgQmlsZGVzIGRlYWt0aXZpZXJlbi4nOwokbGFuZ1sncGFyYW1fbm9iY2FjaGUnXSA9ICdEbyBub3QgYWxsb3cgdGhlIHJlc2l6ZWQgaW1hZ2UgdG8gY2FjaGUgaW4gdGhlIGJyb3dzZXIgKHVzZWZ1bCBmb3IgZGV2ZWxvcG1lbnQgcHVycG9zZXMpIHRoaXMgYWRkcyBhIHVuaXF1ZSBudW1iZXIgYXMgYSBwYXJhbWV0ZXIgdG8gdGhlIGltYWdlIHdoaWNoIHdpbGwgZm9yY2UgdGhlIGJyb3dzZXIgbm90IHRvIGNhY2hlIHRoZSBpbWFnZS4nOwokbGFuZ1sncGFyYW1fbm9lbWJlZCddID0gJ0ZvcmNlIHRoZSBpbWFnZSB0byBub3QgZW1iZWQuICBSZWdhcmRsZXNzIG9mIHNldHRpbmdzIGluIHRoZSBhZG1pbiBwYW5lbCwgdGhlIFVSTCBhbmQgdGFnIGdlbmVyYXRlZCB3aWxsIGJlIHRvIGEgZmlsZSBvbiB0aGUgc2VydmVyLiAgTm8gZW1iZWRkaW5nIHdpbGwgYmUgcGVyZm9ybWVkJzsKJGxhbmdbJ3BhcmFtX25vdGltZWNoZWNrJ10gPSAnWmVpdCZ1dW1sO2JlcnByJnV1bWw7ZnVuZyBkZXIgendpc2NoZW5nZXNwZWljaGVydGVuIERhdGVpZW4gZGVha3RpdmllcmVuLic7CiRsYW5nWydwYXJhbV9ub3JlbW90ZSddID0gJ0F1ZnJ1ZiB2b24gZXh0cmVuZW4gVVJMJiMwMzk7cyBuaWNodCBlcmxhdWJlbic7CiRsYW5nWydwYXJhbV9ub3JvdGF0ZSddID0gJ0V4aWYgSW5mb3JtYXRpb24gZGVyIERhdGVpIG5pY2h0IGF1c2xlc2VuIHVuZCBCaWxyb3RhdGlvbiBuaWNodCBrb3JyaWdpZXJlbic7CiRsYW5nWydwYXJhbV9ub3RhZyddID0gJ0tlaW4gaW1nLVRhZyBhdXNnZWJlbiwgbnVyIGRpZSBVUkwgenVtIEJpbGQuIEtlaW4gRWZmZWt0LCB3ZW5uIENHU21hcnRJbWFnZXMgaW4gZWluZW0gU3R5bGVzaGVldCB2ZXJ3ZW5kZXQgd2lyZC4nOwokbGFuZ1sncGFyYW1fb3ZlcndyaXRlJ10gPSAnWndpc2NoZW5zcGVpY2hlciBkZWFrdGl2aWVyZW4gdW5kIE5ldWJlcmVjaG51bmcgYWxsZXIgRmlsdGVyIGVyendpbmdlbic7CiRsYW5nWydwYXJhbV9xdWFsaXR5J10gPSAnUXVhbGl0JmF1bWw7dCBkZXMgQmlsZGVzLiBFaW4gV2VydCB6d2lzY2hlbiAwIHVuZCAxMDAuIERpZSBWb3JlaW5zdGVsbHVuZyBpc3QgNzUuJzsKJGxhbmdbJ3BhcmFtX3JlbCddID0gJ1VzZWQgd2hlbiBidWlsZGluZyBhbiBpbWFnZSB0YWcgYWxsb3dzIHNwZWNpZnlpbmcgYW4gb3B0aW9uYWwgcmVsIGF0dHJpYnV0ZSAodHlwaWNhbGx5IHVzZWQgd2l0aCBqYXZhc2NyaXB0IHR5cGUgYWxidW1zKS4gaS5lOiByZWw9JnF1b3Q7YWxidW0mcXVvdDsnOwokbGFuZ1sncGFyYW1fc2lsZW50J10gPSAnRmVobGVyIHN0aWxsIGlnbm9yaWVyZW4nOwokbGFuZ1sncGFyYW1fc3JjJ10gPSAnU3BlY2lmeSB0aGUgc291cmNlIGZvciB0aGUgaW1hZ2UgcHJvY2Vzc2luZyAoaWYgYW55KSBvciB0aGUgZ2VuZXJhdGVkIGltZyB0YWcuICBOb3RlLCB0aGlzIHBhcmFtZXRlciBpcyBmbGV4aWJsZSwgYW5kIHRoZSBtb2R1bGUgd2lsbCBhdHRlbXB0IG1hbnkgbWV0aG9kcyB0byBmaW5kIHRoZSBzb3VyY2UgaW1hZ2UgZmlsZSBvbiB0aGUgd2ViIHNlcnZlciBhcyBmb2xsb3dzOg0KPHVsPg0KICA8bGk+Rmlyc3QgbG9vayB0byBzZWUgaWYgdGhlIHNwZWNpZmllZCBzcmMgdmFsdWUgZXhpc3RzIGFzIGEgZmlsZSBvbiB0aGUgZmlsZXN5c3RlbS48L2xpPg0KICA8bGk+TmV4dCwgY2hlY2sgaWYgdGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgdGhlIHNyYyBwYXJhbWV0ZXIgaXMgYSBVUkwgYW5kIGJlZ2lucyB3aXRoIHRoZSB1cGxvYWRzX3VybCAoYXMgc3BlY2lmaWVkIGluIHRoZSBjb25maWcucGhwKTwvbGk+DQogIDxsaT5OZXh0LCBjaGVjayBpZiB0aGUgdmFsdWUgc3BlY2lmaWVkIGZvciB0aGUgc3JjIHBhcmFtZXRlciBpcyBhIFVSTCBhbmQgYmVnaW5zIHdpdGggdGhlIHJvb3RfdXJsIChhcyBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZy5waHApPC9saT4NCiAgPGxpPk5leHQsIGNoZWNrIGlmIHRoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yIHRoZSBzcmMgcGFyYW1ldGVyIGlzIGEgVVJMIGFuZCBiZWdpbnMgd2l0aCB0aGUgc3NsX3VybCAoYXMgc3BlY2lmaWVkIGluIHRoZSBjb25maWcucGhwKTwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zdHlsZSddID0gJ1VzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBhbGxvd3Mgc3BlY2lmeWluZyBhbHRlcm5hdGUgc3R5bGVzIGZvciB0aGUgdGFnLiAgaS5lOiBzdHlsZT0mcXVvdDtib3JkZXI6IDFweCBzb2xpZCBibGFjazsmcXVvdDsnOwokbGFuZ1sncGFyYW1fdGl0bGUnXSA9ICdUaXRlbC1BdHRyaWJ1dCBmJnV1bWw7ciBkYXMgaW1nLVRhZyAob3B0aW9uYWwpLCB6LiBCLiA8Y29kZT50aXRsZT0mcXVvdDtEaWVzIGlzdCBkZXIgVG9vbHRpcCZxdW90OzwvY29kZT4nOwokbGFuZ1sncGFyYW1fd2lkdGgnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSB3aWR0aCBhdHRyaWJ1dGUuICBOb3RlLCBpZiB0aGlzIGlzIG5vdCBzcGVjaWZpZWQgYSB2YWx1ZSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY2FsY3VsYXRlZCBmb3IgdGhpcyBhdHRyaWJ1dGUgc28gdGhhdCBtb3N0IGdlbmVyYXRlZCBpbWcgdGFncyB3aWxsIHZhbGlkYXRlLiAgWW91IGNhbiBvdmVycmlkZSB0aGlzIGF1dG8gY2FsY3VsYXRpb24gd2l0aCB0aGUgJnF1b3Q7bm9hdXRvJnF1b3Q7IHBhcmFtZXRlcic7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ01vZHVsIHd1cmRlIGluc3RhbGxpZXJ0JzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdBbGxlIERhdGVuIGRpZXNlcyBNb2R1bHMgd3VyZGVuIGVudGZlcm50Lic7CiRsYW5nWydwcm9tcHRfY3JvcHRvZml0X2RlZmF1bHRfbG9jJ10gPSAnU3RhbmRhcmRiZXJlaWNoIGYmdXVtbDtyICZiZHF1bztCZXNjaG5laWRlbiB1bmQgQW5wYXNzZW4mbGRxdW87JzsKJGxhbmdbJ3Byb21wdF9lbWJlZF9zaXplbGltaXQnXSA9ICdCYXNpZXJlbmQgYXVmIEJpbGRnciZvdW1sOyZzemxpZztlJzsKJGxhbmdbJ3Byb21wdF9lbWJlZF9zbWFydGxpbWl0ZWQnXSA9ICdTbWFydC1Nb2R1cywgYWJlciBCaWxkZ3Imb3VtbDsmc3psaWc7ZSBiZXNjaHImYXVtbDtua2VuJzsKJGxhbmdbJ3Byb21wdF9lbWJlZF90eXBlJ10gPSAnQmlsZHR5cC1iYXNpZXJlbmQnOwokbGFuZ1sncHJvbXB0X2xvY19ib3R0b21sZWZ0J10gPSAndW50ZW4gbGlua3MnOwokbGFuZ1sncHJvbXB0X2xvY19ib3R0b21jZW50ZXInXSA9ICd1bnRlbiBtaXR0aWcnOwokbGFuZ1sncHJvbXB0X2xvY19ib3R0b21yaWdodCddID0gJ3VudGVuIHJlY2h0cyc7CiRsYW5nWydwcm9tcHRfbG9jX2NlbnRlcmxlZnQnXSA9ICdtaXR0aWcgbGlua3MnOwokbGFuZ1sncHJvbXB0X2xvY19jZW50ZXInXSA9ICdtaXR0aWcnOwokbGFuZ1sncHJvbXB0X2xvY19jZW50ZXJyaWdodCddID0gJ21pdHRpZyByZWNodHMnOwokbGFuZ1sncHJvbXB0X2xvY190b3BsZWZ0J10gPSAnb2JlbiBsaW5rcyc7CiRsYW5nWydwcm9tcHRfbG9jX3RvcGNlbnRlciddID0gJ29iZW4gbWl0dGlnJzsKJGxhbmdbJ3Byb21wdF9sb2NfdG9wcmlnaHQnXSA9ICdvYmVuIHJlY2h0cyc7CiRsYW5nWydyZXNpemluZyddID0gJ0dyJm91bWw7JnN6bGlnO2VuJmF1bWw7bmRlcnVuZyc7CiRsYW5nWydzbWFydCddID0gJ2F1dG9tYXRpc2NoJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ0Fic2VuZGVuJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMzI2NzAwNDUwLjEzNzM4MjczNjcuMTM3MzgyNzM2Ny4xMzczODI3MzY3LjEnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEzNzM4MjczNjcuMS4xLnV0bWNjbj0oZGlyZWN0KXx1dG1jc3I9KGRpcmVjdCl8dXRtY21kPShub25lKSc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FjdF9jYWNoZWNsZWFuZWQnXSA9ICdDYWNoZSB2aWQmZWFjdXRlOyc7CiRsYW5nWydhZGRfcm93J10gPSAnQWpvdXRlciB1bmUgbGlnbmUnOwokbGFuZ1snYWxpYXMnXSA9ICdBbGlhcyZuYnNwOyc7CiRsYW5nWydhbGlhc2VzJ10gPSAnQWxpYXMmbmJzcDsnOwokbGFuZ1snYXNrX2NsZWFyX2ltYWdlX2NhY2hlJ10gPSAnJkVjaXJjO3Rlcy12b3VzIHMmdWNpcmM7ciBkZSB2b3Vsb2lyIHN1cHByaW1lciBUT1VURVMgbGVzIGltYWdlcyBlbiBjYWNoZSA/JzsKJGxhbmdbJ2NsZWFyX2FsbCddID0gJ1N1cHByaW1lciB0b3VzIGxlcyBmaWNoaWVycyc7CiRsYW5nWydjbGVhcl9ub3cnXSA9ICdTdXBwcmltZXIgbWFpbnRlbmFudCc7CiRsYW5nWydkZWxldGUnXSA9ICdFZmZhY2VyJzsKJGxhbmdbJ2VtYmVkZGluZyddID0gJ0ltYWdlcyBpbnQmZWFjdXRlO2dyJmVhY3V0ZTtlcyc7CiRsYW5nWydlbWJlZGRpbmdfbW9kZSddID0gJ01vZGUgZCYjMDM5O2ludCZlYWN1dGU7Z3JhdGlvbiBkZXMgaW1hZ2VzIChhdSBzZWluIGR1IGNvZGUgSFRNTCknOwokbGFuZ1snZW1iZWRfc2l6ZWxpbWl0J10gPSAnVGFpbGxlIGxpbWl0ZSBkZXMgaW1hZ2VzIGludCZlYWN1dGU7Z3ImZWFjdXRlO2VzIChLbykgJzsKJGxhbmdbJ2VtYmVkX3R5cGVzJ10gPSAnVHlwZShzKSBkJiMwMzk7aW1hZ2UocykgaW50JmVhY3V0ZTtncmFibGUocykgJzsKJGxhbmdbJ2Vycm9yX2FsaWFzX2R1cGxpY2F0ZW5hbWVfYXRyb3cnXSA9ICdOb20gZCYjMDM5O2FsaWFzIGR1cGxpcXUmZWFjdXRlOyBwb3VyIGwmIzAzOTthbGlhcyBkZSBsYSBsaWduZSAlZCc7CiRsYW5nWydlcnJvcl9hbGlhc19ub25hbWVfYXRyb3cnXSA9ICdBdWN1biBub20gbiYjMDM5O2EgJmVhY3V0ZTt0JmVhY3V0ZTsgc3AmZWFjdXRlO2NpZmkmZWFjdXRlOyBwb3VyIGwmIzAzOTthbGlhcyAmYWdyYXZlOyBsYSBsaWduZSAlZCc7CiRsYW5nWydlcnJvcl9hbGlhc19ub29wdGlvbnNfYXRyb3cnXSA9ICdBdWN1bmUgb3B0aW9uIG4mIzAzOTthICZlYWN1dGU7dCZlYWN1dGU7IHNwJmVhY3V0ZTtjaWZpJmVhY3V0ZTtlIHBvdXIgbCYjMDM5O2FsaWFzICZhZ3JhdmU7IGxhIGxpZ25lICVkJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfYWdlJ10gPSAnUHImZWFjdXRlO2YmZWFjdXRlO3JlbmNlIGQmIzAzOTsmYWNpcmM7Z2UgaW52YWxpZGUuLi4gQXVjdW5lIG9wJmVhY3V0ZTtyYXRpb24gciZlYWN1dGU7YWxpcyZlYWN1dGU7ZSc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdVbiBwYXJhbSZlZ3JhdmU7dHJlIHJlcXVpcyBlc3QgbWFucXVhbnQgb3UgaW52YWxpZGUgOiAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyYW0nXSA9ICdQYXJhbSZlZ3JhdmU7dHJlIGludmFsaWRlIGRhbnMgbCYjMDM5O2FwcGVsIDogJXMnOwokbGFuZ1snZXJyb3Jfc3Jjbm90Zm91bmQnXSA9ICdMZSBmaWNoaWVyIHN1aXZhbnQgbiYjMDM5O2EgcGFzICZlYWN1dGU7dCZlYWN1dGU7IHRyb3V2JmVhY3V0ZTsgOiAlcyc7CiRsYW5nWydlcnJvcl9yZW1vdGVmaWxlJ10gPSAnUHJvYmwmZWdyYXZlO21lIGRlIHImZWFjdXRlO2N1cCZlYWN1dGU7cmF0aW9uIGR1IGZpY2hpZXIgZGlzdGFudCBkZXB1aXMgJXMnOwokbGFuZ1snZXJyb3JfdW5rbm93bmZpbHRlciddID0gJ1RyYWl0ZW1lbnQgZCYjMDM5O2ltYWdlcyAtIEZpbHRyZSBpbmNvbm51IDogJXMnOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnVHJhaXRlbWVudCBkJiMwMzk7aW1hZ2VzIChDRyknOwokbGFuZ1snZ2VuZXJhbCddID0gJ0cmZWFjdXRlO24mZWFjdXRlO3JhbCc7CiRsYW5nWydpbmZvX2FsaWFzZXMnXSA9ICdMZXMgYWxpYXMgcGV1dmVudCAmZWNpcmM7dHJlIHV0aWxpcyZlYWN1dGU7cyB2aWEgbGVzIG9wdGlvbnMgYWxpYXMxICZhZ3JhdmU7IGFsaWFzNSBkZXMgYmFsaXNlcyBDR1NtYXJ0SW1hZ2UgcG91ciBjb21iaW5lciBwbHVzaWV1cnMgb3B0aW9ucyBmciZlYWN1dGU7cXVlbW1lbnQgdXRpbGlzJmVhY3V0ZTtlcy4nOwokbGFuZ1snaW5mb19jcm9wdG9maXRfZGVmYXVsdF9sb2MnXSA9ICdTcGVjaWZ5IHRoZSBkZWZhdWx0IGxvY2F0aW9uIGZyb20gd2hpY2ggdG8gJnF1b3Q7Y3JvcCB0byBmaXQmcXVvdDsgdGhpcyB3aWxsIGVmZmVjdCBhbGwgY3JvcCB0byBmaXQgb3BlcmF0aW9ucyB1bmxlc3MgdGhlIGxvY2F0aW9uIHBhcmFtZXRlciBvbiB0aGUgZmlsdGVyX2Nyb3B0b2ZpdCBhdHRyaWJ1dGUgb3ZlcnJpZGVzIGl0LiAgRGVmYXVsdCBsb2NhdGlvbiBpcyAmcXVvdDtjZW50ZXImcXVvdDsnOwokbGFuZ1snaW1hZ2VfdXJsX2hhc2NhY2hlZGlyJ10gPSAnTCYjMDM5O1VSTCBjaS1kZXNzdXMgZXN0LWVsbGUgbGUgciZlYWN1dGU7cGVydG9pcmUgZGUgY2FjaGUgKF9DR1NtYXJ0SW1hZ2UpID8nOwokbGFuZ1snaW1hZ2VfdXJsX3ByZWZpeCddID0gJ1ByJmVhY3V0ZTtmaXhlIGRlIGwmIzAzOTtVUkwgZGUgbCYjMDM5O2ltYWdlICc7CiRsYW5nWydpbmZvX2NhY2hlX2FnZSddID0gJ1NwJmVhY3V0ZTtjaWZpZSBsJiMwMzk7JmFjaXJjO2dlIG1heGltdW0gZCYjMDM5O3VuIGZpY2hpZXItaW1hZ2UgKGVuIGpvdXJzKSBhdmFudCBxdSYjMDM5O2lsIHNvaXQgc3VwcHJpbSZlYWN1dGU7IGV0IHJlZyZlYWN1dGU7biZlYWN1dGU7ciZlYWN1dGU7LiBDZWNpIGVzdCB1dGlsZSBzaSB2b3VzIGF2ZXogY2hhbmcmZWFjdXRlOyBjZXJ0YWlucyBwYXJhbSZlZ3JhdmU7dHJlcyBkZSBnJmVhY3V0ZTtuJmVhY3V0ZTtyYXRpb24gZCYjMDM5O2ltYWdlcywgb3UgcG91ciByJmVhY3V0ZTtndWxlciBsJiMwMzk7ZXNwYWNlIGRpc3F1ZSB1dGlsaXMmZWFjdXRlOy4gVW5lIHZhbGV1ciBkZSAmcXVvdDswJnF1b3Q7IGQmZWFjdXRlO3NhY3RpdmUgbGEgc3VwcHJlc3Npb24gYXV0b21hdGlxdWUuJzsKJGxhbmdbJ2luZm9fZW1iZWRfbW9kZSddID0gJ0NlIHBhcmFtJmVncmF2ZTt0cmUgZCZlYWN1dGU7ZmluaXQgbGEgbWFuaSZlZ3JhdmU7cmUgZG9udCBsZSBtb2R1bGUgdmEgZyZlYWN1dGU7biZlYWN1dGU7cmVyIGwmIzAzOTthZmZpY2hhZ2UgOg0KDQo8dWw+PGxpPkF1Y3VuIDogdW5lIGJhbGlzZSBIVE1MICZxdW90O2ltZyZxdW90OyBjbGFzc2lxdWUgc2VyYSB1dGlsaXMmZWFjdXRlO2UgZXQgbCYjMDM5O2ltYWdlIG5lIHNlcmEgcGFzIGludCZlYWN1dGU7Z3ImZWFjdXRlO2UgZGFucyBsYSBzb3VyY2U8L2xpPg0KPGxpPlNtYXJ0IDogbGUgc3lzdCZlZ3JhdmU7bWUgdmEgaW50JmVhY3V0ZTtncmVyIG91IG5vbiBsJiMwMzk7aW1hZ2UgZGFucyBsZSBjb2RlIHNlbG9uIHNvbiBwb2lkcywgc29uIHR5cGUgZXQgbGUgbmF2aWdhdGV1ciBxdWkgYWZmaWNoZSBsYSBwYWdlPC9saT4NCjwvdWw+PGJyIC8+DQpMZXMgYXV0cmVzIG1vZGVzIHImZWFjdXRlO2FsaXNlcm9udCB1bmUgaW50JmVhY3V0ZTtncmF0aW9uIGRlIGwmIzAzOTtpbWFnZSBiYXMmZWFjdXRlO2Ugc3VyIGxlIHBvaWRzIG91IGxlIHR5cGUgZGUgY2VsbGUtY2kuJzsKJGxhbmdbJ2luZm9fZW1iZWRfc2l6ZWxpbWl0J10gPSAnU2kgbCYjMDM5O2ludCZlYWN1dGU7Z3JhdGlvbiBlc3QgYmFzJmVhY3V0ZTtlIHN1ciBsZSBwb2lkcyBkZSBsJiMwMzk7aW1hZ2UsIHByJmVhY3V0ZTtjaXNleiBpY2kgbGUgcG9pZHMgbWF4aW11bSAoZW4ga2lsby1vY3RldHMpIHBvdXIgbGVzIGltYWdlcyAmYWdyYXZlOyBpbnQmZWFjdXRlO2dyZXIgKDMya28gZXN0IHVuZSB2YWxldXIgcmVjb21tYW5kJmVhY3V0ZTtlKS4nOwokbGFuZ1snaW5mb19lbWJlZF90eXBlcyddID0gJ1NpIGwmIzAzOTtpbnQmZWFjdXRlO2dyYXRpb24gZXN0IGJhcyZlYWN1dGU7ZSBzdXIgbGUgdHlwZSBkZSBsJiMwMzk7aW1hZ2UsIHByJmVhY3V0ZTtjaXNleiBpY2kgbGVzIHR5cGVzIGQmIzAzOTtpbWFnZXMgcXVpIGRldnJvbnQgJmVjaXJjO3RyZSBpbnQmZWFjdXRlO2dyJmVhY3V0ZTtlcywgZW4gbGVzIHMmZWFjdXRlO3BhcmFudCBwYXIgZGVzIHZpcmd1bGVzLiBFeGVtcGxlIDogJnF1b3Q7LmpwZywucG5nLC5naWYmcXVvdDsuIExhIGNhc3NlIChtYWp1c2N1bGUvbWludXNjdWxlKSBuJiMwMzk7ZXN0IHBhcyBwcmlzZSBlbiBjb21wdGUuJzsKJGxhbmdbJ2luZm9faW1hZ2VfdXJsX2hhc2NhY2hlZGlyJ10gPSAnU2kgdm90cmUgQ0ROIChyJmVhY3V0ZTtzZWF1IGRlIGNvbnRlbnUpIHBvaW50ZSBkaXJlY3RlbWVudCB2ZXJzIGxlIHImZWFjdXRlO3BlcnRvaXJlIGRlcyBpbWFnZXMgZW4gY2FjaGUsIGFsb3JzIHZvdXMgZGV2cmV6IHBldXQtJmVjaXJjO3RyZSBwYXNzZXIgY2V0dGUgb3B0aW9uICZhZ3JhdmU7ICZxdW90O091aSZxdW90Oyc7CiRsYW5nWydpbmZvX2ltYWdlX3VybF9wcmVmaXgnXSA9ICdTcCZlYWN1dGU7Y2lmaWUgbCYjMDM5O1VSTCAmYWdyYXZlOyBham91dGVyIGVuIHByJmVhY3V0ZTtmaXhlIGF1eCBpbWFnZXMgZyZlYWN1dGU7biZlYWN1dGU7ciZlYWN1dGU7ZXMuIFBhciBkJmVhY3V0ZTtmYXV0LCBjJiMwMzk7ZXN0IGwmIzAzOTtVUkwgZHUgciZlYWN1dGU7cGVydG9pcmUgJnF1b3Q7dXBsb2FkcyZxdW90OywgbWFpcyBzaSB2b3VzIGF2ZXogdm90cmUgcHJvcHJlIHImZWFjdXRlO3NlYXUgZGUgY29udGVudSAoQ29udGVudCBEZWxpdmVyeSBOZXR3b3JrKSwgb3UgcGx1c2lldXJzIGRvbWFpbmVzIHBvaW50YW50IHZlcnMgbGUgbSZlY2lyYzttZSByJmVhY3V0ZTtwZXJ0b2lyZSwgdm91cyB2b3VkcmV6IHBldXQtJmVjaXJjO3RyZSBzcCZlYWN1dGU7Y2lmaWVyIHVuZSBhZHJlc3NlIGRpZmYmZWFjdXRlO3JlbnRlIGljaS4nOwokbGFuZ1snbWF4X2NhY2hlX2FnZSddID0gJyZBY2lyYztnZSBtYXhpbXVtIGRlcyBmaWNoaWVycyBlbiBjYWNoZSAoZW4gam91cnMpICc7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ1VuIG1vZHVsZSBkZSBnJmVhY3V0ZTtuJmVhY3V0ZTtyYXRpb24gZCYjMDM5O2ltYWdlcyBldCBkZSBiYWxpc2VzLWltYWdlcyBwb3VyIENNU01TJzsKJGxhbmdbJ21zZ19hbGlhc2VzX3VwZGF0ZWQnXSA9ICdMZXMgYWxpYXMgb250ICZlYWN1dGU7dCZlYWN1dGU7IG1pcyAmYWdyYXZlOyBqb3VyJzsKJGxhbmdbJ21zZ19jYWNoZWNsZWFuZWQnXSA9ICdSJmVhY3V0ZTtwZXJ0b2lyZSBjYWNoZSB2aWQmZWFjdXRlOy4gJWQgZmljaGllcnMgc3VwcHJpbSZlYWN1dGU7cyc7CiRsYW5nWydtc2dfY2FjaGVyZW1vdmVkJ10gPSAnQ2FjaGUgc3VwcHJpbSZlYWN1dGU7JzsKJGxhbmdbJ21zZ19wcmVmc3VwZGF0ZWQnXSA9ICdQciZlYWN1dGU7ZiZlYWN1dGU7cmVuY2VzIG1vZGlmaSZlYWN1dGU7ZXMnOwokbGFuZ1snbm9uZSddID0gJ0F1Y3VuJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICdPcHRpb25zJm5ic3A7JzsKJGxhbmdbJ3BhcmFtX2FsaWFzJ10gPSAnTGUgcGFubmVhdSBkJiMwMzk7YWRtaW5pc3RyYXRpb24gZHUgbW9kdWxlIHZvdXMgcGVybWV0IGRlIGNyJmVhY3V0ZTtlciBwbHVzaWV1cnMgYWxpYXMgZGUgY29tbWFuZGUgcXVpIGNvbWJpbmVudCBkZXMgbW9kJmVncmF2ZTtsZXMgZCYjMDM5O2FyZ3VtZW50cyBmciZlYWN1dGU7cXVlbW1lbnQgdXRpbGlzJmVhY3V0ZTtzLCBzb3VzIHVuIG5vbS4gUG91ciB1dGlsaXNlciBjZXMgYWxpYXMsIHV0aWxpc2V6IHVuIGFyZ3VtZW50IGRlIGxhIGZvcm1lIHN1aXZhbnRlIDogYWxpYXMjIz1taW5fYWxpYXMuIFBhciBleCA6IGFsaWFzMT1mb28gYWxpYXMyPWZvby4nOwokbGFuZ1sncGFyYW1fYWx0J10gPSAnVXRpbGlzJmVhY3V0ZTsgbG9ycyBkZSBsYSBjciZlYWN1dGU7YXRpb24gZCYjMDM5O3VuIHRhZyBpbWcsIHNwJmVhY3V0ZTtjaWZpZSBsYSB2YWxldXIgZGUgbCYjMDM5O2F0dHJpYnV0IGFsdC4gTm90ZXogcXVlLCBzaSBjZSBuJiMwMzk7ZXN0IHBhcyBzcCZlYWN1dGU7Y2lmaSZlYWN1dGU7LCB1bmUgdmFsZXVyIHNlcmEgYXV0b21hdGlxdWVtZW50IGNhbGN1bCZlYWN1dGU7ZSBwb3VyIGNldCBhdHRyaWJ1dCBkZSBzb3J0IHF1ZSBsYSBwbHVwYXJ0IGRlcyB0YWdzIGltZyBzb2llbnQgdmFsaWRlcy4gVm91cyBwb3V2ZXogaW5oaWJlciBjZSBjYWxjdWwgYXV0b21hdGlxdWUgYXZlYyBsYSBwYXJhbSZlZ3JhdmU7dHJlICZhbXA7cXVvdDtub2F1dG8mYW1wO3F1b3Q7JzsKJGxhbmdbJ3BhcmFtX2NsYXNzJ10gPSAnVXRpbGlzJmVhY3V0ZTsgbG9ycyBkZSBsYSBjciZlYWN1dGU7YXRpb24gZCYjMDM5O3VuIHRhZyA8aW1nPi4gUGVybWV0IGQmIzAzOTtham91dGVyIHVuZSBvdSBwbHVzaWV1cnMgY2xhc3NlcyBDU1MgYXUgdGFnLCBwYXIgZXhlbXBsZSA6IGNsYXNzPSZxdW90O2ZhbmN5Ym94IHRodW1ibmFpbCZxdW90Oyc7CiRsYW5nWydwYXJhbV9maWx0ZXJfYmx1ciddID0gJyh0b3V0ZXMgdmFsZXVycykgU3AmZWFjdXRlO2NpZmlleiB1bmUgdmFsZXVyIHBvdXIgY2UgcGFyYW0mZWdyYXZlO3RyZSBwb3VyIGFqb3V0ZXIgdW4gZWZmZXQgZGUgZmxvdSBzdXIgbCYjMDM5O2ltYWdlJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9icmlnaHRuZXNzJ10gPSAnKGVudGllcikgQXVnbWVudGUgbGEgbHVtaW5vc2l0JmVhY3V0ZTsgZGUgbCYjMDM5O2ltYWdlIGcmZWFjdXRlO24mZWFjdXRlO3ImZWFjdXRlO2Ugc2Vsb24gbCYjMDM5O2VudGllciBzcCZlYWN1dGU7Y2lmaSZlYWN1dGU7JzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jb2xvcml6ZSddID0gJyhyLGcsYlssYWxwaGFdKSBJZGVudGlxdWUgJmFncmF2ZTsgJnF1b3Q7ZmlsdGVyX2dyZXlzY2FsZSZxdW90OyBzYXVmIHF1ZSB2b3VzIHBvdXZleiBzcCZlYWN1dGU7Y2lmaWVyIGxhIGNvdWxldXIgZXQgbGEgdmFsZXVyIGFscGhhICh0cmFuc3BhcmVuY2UpJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jb250cmFzdCddID0gJyhlbnRpZXIpIE1vZGlmaWUgbGUgY29udHJhc3RlIGRlIGwmIzAzOTtpbWFnZSBnJmVhY3V0ZTtuJmVhY3V0ZTtyJmVhY3V0ZTtlIHNlbG9uIGwmIzAzOTtlbnRpZXIgc3AmZWFjdXRlO2NpZmkmZWFjdXRlOyc7CiRsYW5nWydwYXJhbV9maWx0ZXJfY3JvcCddID0gJyhwb3VyY2VudGFnZVssYWxpZ25lbWVudF9ob3Jpem9udGFsLGFsaWduZW1lbnRfdmVydGljYWxdKSAtIEVmZmVjdHVlIHVuIHJlY2FkcmFnZSBzdXIgbCYjMDM5O2ltYWdlIHNwJmVhY3V0ZTtjaWZpJmVhY3V0ZTtlLiBMZXMgcGFyYW0mZWdyYXZlO3RyZXMgZGUgcmVjYWRyYWdlIHNvbnQgc3AmZWFjdXRlO2NpZmkmZWFjdXRlO3Mgc291cyBmb3JtZSBkJiMwMzk7dW5lIGxpc3RlIGRlIHBhcmFtJmVncmF2ZTt0cmVzIHMmZWFjdXRlO3BhciZlYWN1dGU7cyBwYXIgdW5lIHZpcmd1bGUuIExhIHByZW1pJmVncmF2ZTtyZSB2YWxldXIgKG9ibGlnYXRvaXJlKSBlc3QgdW4gcG91cmNlbnRhZ2UgZGUgbGEgdGFpbGxlIG9yaWdpbmFsZSBkZSBsJiMwMzk7aW1hZ2UuIExlIHNlY29uZHMgcGFyYW0mZWdyYXZlO3RyZSAob3B0aW9ubmVsKSBkb2l0ICZlY2lyYzt0cmUgY2hvaXNpIHBhcm1pICYjMDM5O2wmIzAzOTssICYjMDM5O2MmIzAzOTssIG91ICYjMDM5O3ImIzAzOTsgKHJlc3BlY3RpdmVtZW50IHBvdXIgZ2F1Y2hlKGxlZnQpLCBjZW50cmUoY2VudGVyKSwgZHJvaXQocmlnaHQpKS4gTGUgdHJvaXNpJmVncmF2ZTttZSBwYXJhbSZlZ3JhdmU7dHJlIChvcHRpb25uZWwpIGRvaXQgJmVjaXJjO3RyZSBjaG9pc2kgcGFybWkgJiMwMzk7dCYjMDM5OywgJiMwMzk7YyYjMDM5Oywgb3UgJiMwMzk7YiYjMDM5OyAocmVzcGVjdGl2ZW1lbnQgcG91ciBoYXV0KHRvcCksIGNlbnRyZShjZW50ZXIpLCBiYXMoYm90dG9tKSkuIENlcyBkZXV4IGRlcm5pZXJzIHBhcmFtJmVncmF2ZTt0cmVzIHNwJmVhY3V0ZTtjaWZpZW50IGxhIHBvc2l0aW9uIGF1IHNlaW4gZGUgbCYjMDM5O2ltYWdlIG9yaWdpbmFsZSAmYWdyYXZlOyBsYXF1ZWxsZSBhcHBsaXF1ZXIgbGUgcmVjYWRyYWdlLiBlLmcuIDogY3JvcD0zMyxiLHIgcG91ciBlZmZlY3R1ZXIgdW4gcmVjYWRyYWdlIGRlIDMzJSAmYWdyYXZlOyBwYXJ0aXIgZHUgYmFzIGRyb2l0IGRlIGwmIzAzOTtpbWFnZSBvcmlnaW5hbGUuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jcm9wdG9maXQnXSA9ICcobGFyZ2V1cixoYXV0ZXVyKSAtIEVmZmVjdHVlIHVuIHJlY2FkcmFnZSBzdXIgbCYjMDM5O2ltYWdlIHNwJmVhY3V0ZTtjaWZpJmVhY3V0ZTtlIHBvdXIgZW4gYWRhcHRlciBsYSB0YWlsbGUuIENlbGEgdGVudGUgZGUgcmVkaW1lbnNpb25uZXIgbCYjMDM5O2ltYWdlICZhZ3JhdmU7IGxhIHRhaWxsZSBkJmVhY3V0ZTtzaXImZWFjdXRlO2UgZW4gZ2FyZGFudCBsZSByYXRpbyBkJiMwMzk7YXNwZWN0LCBwdWlzIHJlY2VudHJlIGwmIzAzOTtpbWFnZSByZWRpbWVuc2lvbm4mZWFjdXRlO2UuIExlcyBwYXJhbSZlZ3JhdmU7dHJlcyBzcCZlYWN1dGU7Y2lmaSZlYWN1dGU7cyBjb3JyZXNwb25kZW50ICZhZ3JhdmU7IGxhIGhhdXRldXIgZXQgbGEgbGFyZ2V1ciBkJmVhY3V0ZTtzaXImZWFjdXRlO3MgcG91ciBsJiMwMzk7aW1hZ2UgZGUgZGVzdGluYXRpb24uJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9lZGdlZGV0ZWN0J10gPSAnKHRvdXRlcyB2YWxldXJzKSBBY2NlbnR1ZSBsZXMgYm9yZHMgZGUgbCYjMDM5O2ltYWdlJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9lbWJvc3MnXSA9ICcodG91dGVzIHZhbGV1cnMpICZxdW90O1JlcG91c3NlJnF1b3Q7IGwmIzAzOTtpbWFnZSc7CiRsYW5nWydwYXJhbV9maWx0ZXJfZmxpcCddID0gJyhtb2RlKSAtIEFwcGxpcXVlIHVuZSByb3RhdGlvbiAmYWdyYXZlOyBsJiMwMzk7aW1hZ2UuICAwID0gaG9yaXpvbnRhbCwgMSA9IHZlcnRpY2FsLCBldCAyID0gZGFucyBsZXMgZGV1eCBkaXJlY3Rpb25zLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfZ3JheXNjYWxlJ10gPSAnKHRvdXRlcyB2YWxldXJzKSBDb252ZXJ0aXQgbCYjMDM5O2ltYWdlIGVuIG5pdmVhdXggZGUgZ3Jpcyc7CiRsYW5nWydwYXJhbV9maWx0ZXJfbWVhbnJlbW92YWwnXSA9ICcodG91dGVzIHZhbGV1cnMpIFRlbnRlIGQmIzAzOTtham91dGVyIHVuIGVmZmV0ICZxdW90O3NrZXRjaHkmcXVvdDsnOwokbGFuZ1sncGFyYW1fZmlsdGVyX25lZ2F0ZSddID0gJyh0b3V0ZXMgdmFsZXVycykgUGFzc2UgbCYjMDM5O2ltYWdlIGVuIG4mZWFjdXRlO2dhdGlmJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9waXhlbGF0ZSddID0gJyh0YWlsbGVbLGF2YW5jJmVhY3V0ZTtdKSBQaXgmZWFjdXRlO2xpc2UgbCYjMDM5O2ltYWdlLiBTcCZlYWN1dGU7Y2lmaWV6IHVuIGVudGllciBwb3VyIGxlIHBvaWRzIGV0IHVuZSB2YWxldXIgYm9vbCZlYWN1dGU7ZW5uZSBvcHRpb25uZWxsZSAodHJ1ZS9mYWxzZSAtIGZhbHNlIHBhciBkJmVhY3V0ZTtmYXV0KSBwb3VyIHBlcm1ldHRyZSB1bmUgcGl4JmVhY3V0ZTtsaXNhdGlvbiBhdmFuYyZlYWN1dGU7ZS4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3Jlc2l6ZSddID0gJ3R5cGUsbnVtYmVyWyxudW1iZXJdIC0gUGVyZm9ybSBhIHJlc2l6ZSBvZiB0aGUgc291cmNlIGltYWdlLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPnAsbnVtYmVyIC0gUGVyZm9ybSBhIHNpbXBsZSByZXNjYWxlIHRvIGEgY2VydGFpbiBwZXJjZW50YWdlLiAgaS5lOiAgcmVzaXplPXAsNTAgdG8gcmVzaXplIHRvIDUwJSBvZiB0aGUgb3JpZ2luYWwgc2l6ZS48L2xpPg0KICA8bGk+dyxudW1iZXIgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgc3BlY2lmaWVkIHdpZHRoICh3aGlsZSByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gaS5lOiByZXNpemU9dyw4MCB0byBjcmVhdGUgYSB0aHVtYm5haWwgd2l0aCBhIG1heGltdW0gd2lkdGggb2YgODAgcGl4ZWxzLjwvbGk+DQogIDxsaT5oLG51bWJlciAtIFBlcmZvcm0gYSByZXNpemUgdG8gYSBzcGVjaWZpZWQgaGVpZ2h0ICh3aGlsZSByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gaS5lOiByZXNpemU9aCw4MCB0byBjcmVhdGUgYSB0aHVtYm5haWwgd2l0aCBhIG1heGltdW0gaGVpZ2h0IG9mIDgwIHBpeGVscy48L2xpPg0KICA8bGk+Yyx4LHkgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgY3VzdG9tIHNpemUgKHdpdGhvdXQgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuICBpLmU6IHJlc2l6ZT1jLDUwLDc1IHRvIGNyZWF0ZSBhIHRodW1ibmFpbCB0aGF0IGlzIDUweDc1IHBpeGVscy48L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3Jlc2l6ZXRvZml0J10gPSAnKHdpZHRoLGhlaWdodFssY29sb3JbLGFscGhhXV0pIC0gUGVyZm9ybSBhIHJlc2l6ZSBvbiB0aGUgaW1hZ2Ugc3BlY2lmaWVkLiBUaGlzIGF0dGVtcHRzIHRvIHJlc2NhbGUgdGhlIGltYWdlIHRvIHRoZSBkZXN0aW5hdGlvbiBzaXplIHdoaWxlIHJlYXRpbmluZyBhc3BlY3QgcmF0aW8sIHRoZSBpbWFnZSBpcyBjZW50ZXJlZCBpbiB0aGUgYm94IHNwZWNpZmllZCAoZWl0aGVyIGhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5IGRlcGVuZGluZyB1cG9uIGFzcGVjdCByYXRpbyBhbmQgdGhlIGRlc3RpbmF0aW9uIHNpemUsIGFuZCB0aGUgaW1hZ2UgaXMgc3Vycm91bmRlZCBieSB0aGUgc3VwcGxpZWQgY29sb3IuICBDb2xvcnMgY2FuIGJlIHNwZWNpZmllZCBieSBuYW1lIChzZWUgdGhlIFgxMSBjb2xvciBuYW1lcyksIG9yIGJ5ICNubm5ubm4gaGV4YWRlY2ltYWwgZm9ybWF0LCBvciBhcyByZ2IgdmFsdWVzIHNlcGFyYXRlZCBieSBhIDogaS5lOiAgZmlsdGVyX2Nyb3B0b2ZpdD02MDAsNDAwLCNmZjAwMDAuICBUaGUgc3BlY2lhbCBjb2xvciB2YWx1ZSAmcXVvdDt0cmFuc3BhcmVudCZxdW90OyBjYW4gYmUgc3BlY2lmaWVkIHRvIGZvcmNlIHRoZSBiYWNrZ3JvdW5kIHRvIGJlIHRyYW5zcGFyZW50LiAgIEFuIGFscGhhIHZhbHVlIG1heSBiZSBzcGVjaWZpZWQgYmV0d2VlbiAwIGFuZCAxMjcgdG8gc3BlY2lmeSBkaWZmZXJlbnQgZGVncmVlcyBvZiB0cmFuc2x1Y2VuY3kgZm9yIHRoZSBiYWNrZ3JvdW5kLiAgIEF0IG5vIHRpbWUgd2lsbCB0aGlzIHBsdWdpbiBwZXJmb3JtIGFueSB1cHNjYWxpbmcuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yb3RhdGUnXSA9ICcoYW5nbGUsY291bGV1cikgU3AmZWFjdXRlO2NpZmllIGwmIzAzOTthbmdsZSAoc2VucyBkZXMgYWlndWlsbGVzIGQmIzAzOTt1bmUgbW9udHJlKSBkZSByb3RhdGlvbiBkZSBsJiMwMzk7aW1hZ2UsIGV0IGxhIGNvdWxldXIgZGUgcmVtcGxpc3NhZ2UgcG91ciBsZXMgcGl4ZWxzIHZpZGVzLiBMYSByb3RhdGlvbiBzJiMwMzk7ZWZmZWN0dWUgJmFncmF2ZTsgcGFydGlyIGR1IGNlbnRyZSBkZSBsJiMwMzk7aW1hZ2UuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yb3VuZGVkY29ybmVycyddID0gJyhyYXlvbikgU3AmZWFjdXRlO2NpZmllIHVuZSB2YWxldXIgZGUgcmF5b24gKGVuIHBpeGVscykgcG91ciBhcnJvbmRpciBsZXMgYW5nbGVzLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfd2F0ZXJtYXJrJ10gPSAnKHRvdXRlcyB2YWxldXJzKSBTcCZlYWN1dGU7Y2lmaWUgcXVlIGxlIGZpbGlncmFuZSAociZlYWN1dGU7Z2wmZWFjdXRlOyBkYW5zIGxlIG1vZHVsZSBDR0V4dGVuc2lvbnMpIGRvaXQgJmVjaXJjO3RyZSBhcHBsaXF1JmVhY3V0ZTsgJmFncmF2ZTsgbCYjMDM5O2ltYWdlJzsKJGxhbmdbJ3BhcmFtX2hlaWdodCddID0gJ1VzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBzcGVjaWZ5IHRoZSB2YWx1ZSBmb3IgdGhlIGhlaWdodCBhdHRyaWJ1dGUuICBOb3RlLCBpZiB0aGlzIGlzIG5vdCBzcGVjaWZpZWQgYSB2YWx1ZSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY2FsY3VsYXRlZCBmb3IgdGhpcyBhdHRyaWJ1dGUgc28gdGhhdCBtb3N0IGdlbmVyYXRlZCBpbWcgdGFncyB3aWxsIHZhbGlkYXRlLiAgWW91IGNhbiBvdmVycmlkZSB0aGlzIGF1dG8gY2FsY3VsYXRpb24gd2l0aCB0aGUgJmFtcDtxdW90O25vYXV0byZhbXA7cXVvdDsgcGFyYW1ldGVyLiAgVGhpcyBwYXJhbWV0ZXIgd2lsbCBhbHNvIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgJmFtcDtxdW90O3dpZHRoJmFtcDtxdW90OyBwYXJhbWV0ZXIgdG8gcGVyZm9ybSBhIGZpbmFsIHJlc2l6aW5nIG9yIGNyb3B0b2ZpdCBmaWx0ZXIgKHVubGVzcyB0aGUgJmFtcDtxdW90O25vYXV0b3NjYWxlJmFtcDtxdW90OyBwYXJhbWV0ZXIgaXMgYWxzbyBzdXBwbGllZCknOwokbGFuZ1sncGFyYW1faWQnXSA9ICdVdGlsaXMmZWFjdXRlOyBsb3JzIGRlIGxhIGNyJmVhY3V0ZTthdGlvbiBkJiMwMzk7dW4gdGFnIGltZywgcGVybWV0IGRlIHNwJmVhY3V0ZTtjaWZpZXIgdW4gYXR0cmlidXQgaWQgJmFncmF2ZTsgaW5jbHVyZSBhdSB0YWcuIFBhciBleCA6IGlkPSZxdW90O21vbnRhZyZxdW90Oyc7CiRsYW5nWydwYXJhbV9tYXhfaGVpZ2h0J10gPSAnVXRpbGlzJmVhY3V0ZTsgdW5pcXVlbWVudCBhdmVjIGxhIGJhbGlzZSB7Y2dzaV9jb252ZXJ0fSwgY2UgcGFyYW0mZWdyYXZlO3RyZSBwZXJtZXQgZGUgc3AmZWFjdXRlO2NpZmllciBsYSBoYXV0ZXVyIG1heC4gcG91ciBsZXMgaW1hZ2VzIGNvbnZlcnRpZXMnOwokbGFuZ1sncGFyYW1fbWF4X3dpZHRoJ10gPSAnVXRpbGlzJmVhY3V0ZTsgdW5pcXVlbWVudCBhdmVjIGxhIGJhbGlzZSB7Y2dzaV9jb252ZXJ0fSwgY2UgcGFyYW0mZWdyYXZlO3RyZSBwZXJtZXQgZGUgc3AmZWFjdXRlO2NpZmllciBsYSBsYXJnZXVyIG1heC4gcG91ciBsZXMgaW1hZ2VzIGNvbnZlcnRpZXMnOwokbGFuZ1sncGFyYW1fbmFtZSddID0gJ1V0aWxpcyZlYWN1dGU7IGxvcnMgZGUgbGEgY3ImZWFjdXRlO2F0aW9uIGR1IHRhZyBpbWcsIHNwJmVhY3V0ZTtjaWZpZSBsYSB2YWxldXIgcG91ciBsJiMwMzk7YXR0cmlidXQgbmFtZS4nOwokbGFuZ1sncGFyYW1fbm9hdXRvJ10gPSAnTmUgcGFzIGNhbGN1bGVyIGF1dG9tYXRpcXVlbWVudCBsZXMgYXR0cmlidXRzICh3aWR0aCwgaGVpZ2h0LCBhbHQpIHBvdXIgbGEgYmFsaXNlICZxdW90O2ltZyZxdW90Oy4gQ2VjaSBwZXV0IGZhaXJlIGVuIHNvcnRlIHF1ZSB2b3RyZSBjb2RlIG5lIHNvaXQgcGFzIHZhbGlkZSBzaSB2b3VzIG5lIHNwJmVhY3V0ZTtjaWZpZXogcGFzIGxlcyBhdHRyaWJ1dHMgJnF1b3Q7d2lkdGgmcXVvdDssICZxdW90O2hlaWdodCZxdW90OyBldCAmcXVvdDthbHQmcXVvdDsuJzsKJGxhbmdbJ3BhcmFtX25vYXV0b3NjYWxlJ10gPSAnU2kgbGVzIHBhcmFtJmVncmF2ZTt0cmVzIGhhdXRldXIgZXQgbGFyZ2V1ciBzb250IHNwJmVhY3V0ZTtjaWZpJmVhY3V0ZTtzLCBjZSBwYXJhbSZlZ3JhdmU7dHJlcyBkJmVhY3V0ZTtzYWN0aXZlIGxlIHJlZGltZW5zaW9ubmVtZW50IGF1dG9tYXRpcXVlIGRlIGwmIzAzOTtpbWFnZS4nOwokbGFuZ1sncGFyYW1fbm9iY2FjaGUnXSA9ICdEbyBub3QgYWxsb3cgdGhlIHJlc2l6ZWQgaW1hZ2UgdG8gY2FjaGUgaW4gdGhlIGJyb3dzZXIgKHVzZWZ1bCBmb3IgZGV2ZWxvcG1lbnQgcHVycG9zZXMpIHRoaXMgYWRkcyBhIHVuaXF1ZSBudW1iZXIgYXMgYSBwYXJhbWV0ZXIgdG8gdGhlIGltYWdlIHdoaWNoIHdpbGwgZm9yY2UgdGhlIGJyb3dzZXIgbm90IHRvIGNhY2hlIHRoZSBpbWFnZS4nOwokbGFuZ1sncGFyYW1fbm9lbWJlZCddID0gJ0ZvcmNlIGwmIzAzOTtpbWFnZSAmYWdyYXZlOyBuZSBwYXMgJmVjaXJjO3RyZSBpbnQmZWFjdXRlO2dyJmVhY3V0ZTtlIGVuY29kJmVhY3V0ZTtlIGRhbnMgbGUgY29kZSBzb3VyY2UuIEVuIGQmZWFjdXRlO3BpdCBkZSBzYSBjb25maWd1cmF0aW9uIGRhbnMgbCYjMDM5O2FkbWluLCBsZSBtb2R1bGUgdmEgZyZlYWN1dGU7biZlYWN1dGU7cmVyIHVuIGZpY2hpZXIgaW1hZ2Ugc3VyIGxlIHNlcnZldXIuJzsKJGxhbmdbJ3BhcmFtX25vdGltZWNoZWNrJ10gPSAnRGlzYWJsZSB0aW1lIGNoZWNraW5nIG9mIGNhY2hlZCBmaWxlcy4nOwokbGFuZ1sncGFyYW1fbm9yb3RhdGUnXSA9ICdOZSBwYXMgdGVudGVyIGRlIGxpcmUgbGVzIGluZm9ybWF0aW9ucyBleGlmIGRlcHVpcyBsZSBmaWNoaWVyIHBvdXIgY29ycmlnZXIgbGEgcm90YXRpb24gZGUgbCYjMDM5O2ltYWdlJzsKJGxhbmdbJ3BhcmFtX25vdGFnJ10gPSAnTmUgcGFzIGcmZWFjdXRlO24mZWFjdXRlO3JlciBkZSBiYWxpc2UgJnF1b3Q7aW1nJnF1b3Q7LCBtYWlzIHVuaXF1ZW1lbnQgbCYjMDM5O1VSTCBkZSBsJiMwMzk7aW1hZ2UgZW4gY2FjaGUuIENlY2kgbiYjMDM5O2EgYXVjdW4gZWZmZXQgcXVhbmQgQ0dTbWFydEltYWdlIGVzdCB1dGlsaXMmZWFjdXRlOyBkZXB1aXMgdW5lIGZldWlsbGUgZGUgc3R5bGVzLic7CiRsYW5nWydwYXJhbV9vdmVyd3JpdGUnXSA9ICdEJmVhY3V0ZTtzYWN0aXZlIHRvdXQgbGUgY2FjaGUgZXQgZm9yY2UgJmFncmF2ZTsgcmVjYWxjdWxlciBsZXMgZmlsdHJlcyc7CiRsYW5nWydwYXJhbV9xdWFsaXR5J10gPSAnU3AmZWFjdXRlO2NpZmllciBsYSBxdWFsaXQmZWFjdXRlOyBkZSBsJiMwMzk7aW1hZ2UgYWZmaWNoJmVhY3V0ZTtlLiAgTWV0dHJlIHVuZSB2YWxldXIgZW50cmUgMCBldCAxMDAuJzsKJGxhbmdbJ3BhcmFtX3JlbCddID0gJ1V0aWxpcyZlYWN1dGU7IGxvcnMgZGUgbGEgY3ImZWFjdXRlO2F0aW9uIGQmIzAzOTt1bmUgYmFsaXNlIGQmIzAzOTtpbWFnZSwgaWwgcGVybWV0IGRlIHNwJmVhY3V0ZTtjaWZpZXIgdW4gYXR0cmlidXQgcmVsIG9wdGlvbm5lbCAodXRpbGlzJmVhY3V0ZTsgdHlwaXF1ZW1lbnQgZGFucyBsZXMgYWxidW1zIGphdmFzY3JpcHQpLiBlLmc6IHJlbD0mcXVvdDthbGJ1bSZxdW90Oyc7CiRsYW5nWydwYXJhbV9zaWxlbnQnXSA9ICdTaWxlbnRseSBpZ25vcmUgZXJyb3JzJzsKJGxhbmdbJ3BhcmFtX3NyYyddID0gJ1NwZWNpZnkgdGhlIHNvdXJjZSBmb3IgdGhlIGltYWdlIHByb2Nlc3NpbmcgKGlmIGFueSkgb3IgdGhlIGdlbmVyYXRlZCBpbWcgdGFnLiAgTm90ZSwgdGhpcyBwYXJhbWV0ZXIgaXMgZmxleGlibGUsIGFuZCB0aGUgbW9kdWxlIHdpbGwgYXR0ZW1wdCBtYW55IG1ldGhvZHMgdG8gZmluZCB0aGUgc291cmNlIGltYWdlIGZpbGUgb24gdGhlIHdlYiBzZXJ2ZXIgYXMgZm9sbG93czoNCjx1bD4NCiAgPGxpPkZpcnN0IGxvb2sgdG8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgc3JjIHZhbHVlIGV4aXN0cyBhcyBhIGZpbGUgb24gdGhlIGZpbGVzeXN0ZW0uPC9saT4NCiAgPGxpPk5leHQsIGNoZWNrIGlmIHRoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yIHRoZSBzcmMgcGFyYW1ldGVyIGlzIGEgVVJMIGFuZCBiZWdpbnMgd2l0aCB0aGUgdXBsb2Fkc191cmwgKGFzIHNwZWNpZmllZCBpbiB0aGUgY29uZmlnLnBocCk8L2xpPg0KICA8bGk+TmV4dCwgY2hlY2sgaWYgdGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgdGhlIHNyYyBwYXJhbWV0ZXIgaXMgYSBVUkwgYW5kIGJlZ2lucyB3aXRoIHRoZSByb290X3VybCAoYXMgc3BlY2lmaWVkIGluIHRoZSBjb25maWcucGhwKTwvbGk+DQogIDxsaT5OZXh0LCBjaGVjayBpZiB0aGUgdmFsdWUgc3BlY2lmaWVkIGZvciB0aGUgc3JjIHBhcmFtZXRlciBpcyBhIFVSTCBhbmQgYmVnaW5zIHdpdGggdGhlIHNzbF91cmwgKGFzIHNwZWNpZmllZCBpbiB0aGUgY29uZmlnLnBocCk8L2xpPg0KPC91bD4NCkl0IGlzIGFsc28gcG9zc2libGUgdG8gc3BsaXQgdGhlIHNyYyBwYXJhbWV0ZXIgaW50byBtdWx0aXBsZSBhcmd1bWVudHMsIHdoaWNoIGlzIHVzZWZ1bCBmb3IgZXhhbXBsZSB3aGVuIHRoZSBwYXRoIHRvIHRoZSBmaWxlLCBhbmQgdGhlIGZpbGVuYW1lIGFyZSBzdG9yZWQgaW4gc2VwYXJhdGUgc21hcnR5IHZhcmlhYmxlcy4gICBZb3UgY2FuIHNwZWNpZnkgdGhlIHNyYyBhcyBzcmMxPVwkdGhlX3BhdGggc3JjMj1cJHRoZV9maWxlbmFtZS4gIFRoZSBzeXN0ZW0gd2lsbCBhdXRvbWF0aWNhbGx5IGFkZCBhIC8gaW4gYmV0d2VlbiBlYWNoIGFyZ3VtZW50LiAgVGhlcmUgaXMgbm8gbGltaXQgdG8gdGhlIG51bWJlciBvZiBzcmMgcGFyYW1ldGVycy4nOwokbGFuZ1sncGFyYW1fc3R5bGUnXSA9ICdVdGlsaXMmZWFjdXRlOyBwb3VyIGxhIGJhbGlzZSAmcXVvdDtpbWcmcXVvdDssIHBlcm1ldCBkZSBzcCZlYWN1dGU7Y2lmaWVyIHVuIHN0eWxlIGFsdGVybmF0aWYgcG91ciBsYSBiYWxpc2UuICBQYXIgZXggOiBzdHlsZT0mcXVvdDtib3JkZXI6IDFweCBzb2xpZCBibGFjazsmcXVvdDsnOwokbGFuZ1sncGFyYW1fdGl0bGUnXSA9ICdSZW5zZWlnbmV6IHVuIHRpdHJlIG9wdGlvbm5lbCBwb3VyIGxhIGJhbGlzZSAmcXVvdDtpbWcmcXVvdDsuICBQYXIgZXggOiB0aXRsZT0mcXVvdDtDZWNpIGVzdCB1bmUgYXN0dWNlJnF1b3Q7JzsKJGxhbmdbJ3BhcmFtX3dpZHRoJ10gPSAnVXRpbGlzJmVhY3V0ZTsgbG9ycyBkZSBsYSBjciZlYWN1dGU7YXRpb24gZCYjMDM5O3VuZSBiYWxpc2UgJnF1b3Q7aW1nJnF1b3Q7IDogc3AmZWFjdXRlO2NpZmllIGwmIzAzOTthdHRyaWJ1dCAmcXVvdDt3aWR0aCZxdW90OyAobGFyZ2V1cikuIE5vdGUgOiBzaSBjZXR0ZSB2YWxldXIgbiYjMDM5O2VzdCBwYXMgc3AmZWFjdXRlO2NpZmkmZWFjdXRlO2UsIHVuZSB2YWxldXIgdmEgJmVjaXJjO3RyZSBhdXRvbWF0aXF1ZW1lbnQgY2FsY3VsJmVhY3V0ZTtlLiBWb3VzIHBvdXZleiBkJmVhY3V0ZTtzYWN0aXZlciBjZSBjYWxjdWwgYXV0b21hdGlxdWUgYXZlYyBsZSBwYXJhbSZlZ3JhdmU7dHJlICZxdW90O25vYXV0byZxdW90Oy4nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdNb2R1bGUgaW5zdGFsbCZlYWN1dGU7JzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdUb3V0ZXMgbGVzIGRvbm4mZWFjdXRlO2VzIHJlbGF0aXZlcyAmYWdyYXZlOyBjZSBtb2R1bGUgb250ICZlYWN1dGU7dCZlYWN1dGU7IHN1cHByaW0mZWFjdXRlO2VzJzsKJGxhbmdbJ3Byb21wdF9jcm9wdG9maXRfZGVmYXVsdF9sb2MnXSA9ICdQb3NpdGlvbiAmYWdyYXZlOyBwYXJ0aXIgZGUgbGFxdWVsbGUgcmVjYWRyZXIgOic7CiRsYW5nWydwcm9tcHRfZW1iZWRfc2l6ZWxpbWl0J10gPSAnSW50JmVhY3V0ZTtncmF0aW9uIGJhcyZlYWN1dGU7ZSBzdXIgbGUgcG9pZHMgZGUgbCYjMDM5O2ltYWdlJzsKJGxhbmdbJ3Byb21wdF9lbWJlZF9zbWFydGxpbWl0ZWQnXSA9ICdJbnQmZWFjdXRlO2dyYXRpb24gZW4gbW9kZSBTbWFydCBtYWlzIGxpbWl0ZSBsZSBwb2lkcyBkZSBsJiMwMzk7aW1hZ2UnOwokbGFuZ1sncHJvbXB0X2VtYmVkX3R5cGUnXSA9ICdJbnQmZWFjdXRlO2dyYXRpb24gYmFzJmVhY3V0ZTtlIHN1ciBsZSB0eXBlIGRlIGwmIzAzOTtpbWFnZSc7CiRsYW5nWydwcm9tcHRfbG9jX2JvdHRvbWxlZnQnXSA9ICdFbiBiYXMgJmFncmF2ZTsgZ2F1Y2hlIChiZyknOwokbGFuZ1sncHJvbXB0X2xvY19ib3R0b21jZW50ZXInXSA9ICdFbiBiYXMgYXUgY2VudHJlIChiYyknOwokbGFuZ1sncHJvbXB0X2xvY19ib3R0b21yaWdodCddID0gJ0VuIGJhcyAmYWdyYXZlOyBkcm9pdGUgKGJkKSc7CiRsYW5nWydwcm9tcHRfbG9jX2NlbnRlcmxlZnQnXSA9ICdBdSBjZW50cmUgJmFncmF2ZTsgZ2F1Y2hlIChjZyknOwokbGFuZ1sncHJvbXB0X2xvY19jZW50ZXInXSA9ICdBdSBjZW50cmUnOwokbGFuZ1sncHJvbXB0X2xvY19jZW50ZXJyaWdodCddID0gJ0F1IGNlbnRyZSAmYWdyYXZlOyBkcm9pdGUgKGNkKSc7CiRsYW5nWydwcm9tcHRfbG9jX3RvcGxlZnQnXSA9ICdFbiBoYXV0ICZhZ3JhdmU7IGdhdWNoZSAoaGcpJzsKJGxhbmdbJ3Byb21wdF9sb2NfdG9wY2VudGVyJ10gPSAnRW4gaGF1dCBhdSBjZW50cmUgKGhjKSc7CiRsYW5nWydwcm9tcHRfbG9jX3RvcHJpZ2h0J10gPSAnRW4gaGF1dCAmYWdyYXZlOyBkcm9pdGUgKGhkKSc7CiRsYW5nWydyZXNpemluZyddID0gJ1JlZGltZW5zaW9ubmVtZW50JzsKJGxhbmdbJ3NtYXJ0J10gPSAnU21hcnQgJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ0Vudm95ZXInOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My43Njc2OTEyMzMuMTMzMjAyMTgzNC4xMzMyMDIxODM0LjEzMzIwMjE4MzQuMSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEzMzIwMjE4MzQuMS4xLnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1kZXYuY21zbWFkZXNpbXBsZS5vcmd8dXRtY2N0PS98dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3FjYSddID0gJzRhM2QxYjQxLTVlYjM2LWM5NTcwLWY0OWVhJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBkdW1teSAtLT4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/it_IT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FjdF9jYWNoZWNsZWFuZWQnXSA9ICdDYWNoZSBQdWxpdGEnOwokbGFuZ1snYWRkX3JvdyddID0gJ0FnZ2l1bmdpIHJpZ2EnOwokbGFuZ1snYWxpYXMnXSA9ICdBbGlhcyc7CiRsYW5nWydhbGlhc2VzJ10gPSAnQWxpYXMnOwokbGFuZ1snYXNrX2NsZWFyX2ltYWdlX2NhY2hlJ10gPSAnU2ljdXJvIGRpIHZvbGVyIHJpbXVvdmVyZSBUVVRUSSBpIGZpbGUgZGFsbGEgY2FjaGUgZGVsbGUgaW1tYWdpbmk/JzsKJGxhbmdbJ2NsZWFyX2FsbCddID0gJ0VsaW1pbmEgVHV0dGkgaSBGaWxlJzsKJGxhbmdbJ2NsZWFyX25vdyddID0gJ0VsaW1pbmEgT3JhJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0NhbmNlbGxhJzsKJGxhbmdbJ2VtYmVkZGluZyddID0gJ0ltbWFnaW5pIGluY29ycG9yYXRlJzsKJGxhbmdbJ2VtYmVkZGluZ19tb2RlJ10gPSAnTW9kYWxpdCZhZ3JhdmU7IEluY29ycG9yYXppb25lIEltbWFnaW5lJzsKJGxhbmdbJ2VtYmVkX3NpemVsaW1pdCddID0gJ0xpbWl0ZSBkaSBncmFuZGV6emEgcGVyIGwmIzAzOTtpbW1hZ2luZSBpbmNvcnBvcmFiaWxlIChrYiknOwokbGFuZ1snZW1iZWRfdHlwZXMnXSA9ICdUaXBvIGRpIGltbWFnaW5lIGluY29ycG9yYWJpbGUnOwokbGFuZ1snZXJyb3JfYWxpYXNfZHVwbGljYXRlbmFtZV9hdHJvdyddID0gJ0R1cGxpY2EgaWwgbm9tZSBhbGlhcyBzcGVjaWZpY2F0byBwZXIgbCYjMDM5O2FsaWFzIGFsbGEgcmlnYSAlZCc7CiRsYW5nWydlcnJvcl9hbGlhc19ub25hbWVfYXRyb3cnXSA9ICdOZXNzdW4gbm9tZSBzcGVjaWZpY2F0byBwZXIgbCYjMDM5O2FsaWFzIGFsbGEgcmlnYSAlZCc7CiRsYW5nWydlcnJvcl9hbGlhc19ub29wdGlvbnNfYXRyb3cnXSA9ICdOZXNzdW5hIG9wemlvbmUgc3BlY2lmaWNhdGEgcGVyIGwmIzAzOTthbGlhcyBhbGxhIHJpZ2EgJWQnOwokbGFuZ1snZXJyb3JfaW52YWxpZF9hZ2UnXSA9ICdFdCZhZ3JhdmU7IHByZWZlcmVuemEgbm9uIHZhbGlkbyAuLi4gTmVzc3VuYSBvcGVyYXppb25lIGVzZWd1aXRhJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ1VuIHBhcmFtZXRybyByaWNoaWVzdG8gbWFuY2EgbyBub24gJmVncmF2ZTsgdmFsaWRvOiAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyYW0nXSA9ICdQYXJhbWV0cm8gbm9uIHZhbGlkbyBuZWxsYSBjaGlhbWF0YTogJXMnOwokbGFuZ1snZXJyb3Jfc3Jjbm90Zm91bmQnXSA9ICdJbXBvc3NpYmlsZSB0cm92YXJlIHVuIGZpbGUgaW46ICVzJzsKJGxhbmdbJ2Vycm9yX3JlbW90ZWZpbGUnXSA9ICdQcm9ibGVtYSByZWN1cGVybyBmaWxlIHJlbW90byBpbiAlcyc7CiRsYW5nWydlcnJvcl91bmtub3duZmlsdGVyJ10gPSAnQ0dTbWFydEltYWdlIC0gRmlsdHJvIFNjb25vc2NpdXRvOiAlcyc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdDYWxndXlzIFNtYXJ0IEltYWdlIFRvb2xraXQnOwokbGFuZ1snZ2VuZXJhbCddID0gJ0dlbmVyYWxlJzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+Q29zYSBmYT88L2gzPg0KPHA+UXVlc3RvIG1vZHVsbyBmYWNpbGl0YSBsJiMwMzk7ZWxhYm9yYXppb25lIGUgbGEgdmlzdWFsaXp6YXppb25lIGRlbGxlIGltbWFnaW5pIG5lbCB0dW8gc2l0byB3ZWIuIFBlcm1ldHRlIHVuYSBzZW1wbGljZSBlbGFib3JhemlvbmUgZGVsbCYjMDM5O2ltbWFnaW5lLCBlIGwmIzAzOTthZ2dpdW50YSBkaSBmaWxpZ3JhbmEuIFF1ZXN0byBtb2R1bG8gcmVuZGUgYmFuYWxlIGlsIHByb2Nlc3NvIGRpIHZpc3VhbGl6emF6aW9uZSBkZWxsZSBpbW1hZ2luaSBuZWwgdHVvIHNpdG8uIElub2x0cmUgZm9ybmlzY2UgZnVuemlvbmFsaXQmYWdyYXZlOyBwZXIgbWlnbGlvcmFyZSBsYSB2YWx1dGF6aW9uZSBkZWxsZSBwcmVzdGF6aW9uaSBkZWwgdHVvIHNpdG8gd2ViLCByZW5kZW5kb2xvIHBvdGVudGUgZSB2ZWxvY2UgYWwgdGVtcG8gc3Rlc3NvLjwvcD4NCjxoMz5DYXJhdHRlcmlzdGljaGU8L2gzPg0KPHVsPg0KPGxpPkVsYWJvcmF6aW9uZSBlIGZpbHRyYWdnaW8gZGVsbGUgaW1tYWdpbmkgcG90ZW50aSBtYSBzZW1wbGljaSBkYSB1c2FyZS4gSWwgZmlsdHJhZ2dpbyBjb21wcmVuZGU6DQogIDx1bD4NCiAgICA8bGk+U2ZvY2F0dXJhPC9saT4NCiAgICA8bGk+THVtaW5vc2l0JmFncmF2ZTs8L2xpPg0KICAgIDxsaT5Db2xvcmF6aW9uZTwvbGk+DQogICAgPGxpPkNvbnRyYXN0bzwvbGk+DQogICAgPGxpPlJpdGFnbGlvPC9saT4NCiAgICA8bGk+PHN0cm9uZz5SaXRhZ2xpbyBlIGFkYXR0YW1lbnRvPC9zdHJvbmc+PC9saT4NCiAgICA8bGk+UmlsZXZhbWVudG8gZGVpIGJvcmRpPC9saT4NCiAgICA8bGk+UmlsaWV2bzwvbGk+IA0KICAgIDxsaT5TY2FsYSBkaSBncmlnaTwvbGk+DQogICAgPGxpPlJpbW96aW9uZSBtZWRpYTwvbGk+DQogICAgPGxpPk5lZ2F0aXZvPC9saT4NCiAgICA8bGk+RWZmZXR0byBwaXhlbDwvbGk+DQogICAgPGxpPlJpZGltZW5zaW9uYW1lbnRvPC9saT4NCiAgICA8bGk+Um90YXppb25lPC9saT4NCiAgICA8bGk+U2ZvY2F0dXJhIHNlbGV0dGl2YTwvbGk+DQogICAgPGxpPlNtdXNzYW1lbnRvPC9saT4NCiAgICA8bGk+RmlsaWdyYW5hPC9saT4NCiAgPC91bD4NCjwvbGk+PGJyLz4NCjxsaT5SaWxldmFtZW50byBpbnRlbGxpZ2VudGUgZGkgaW1tYWdpbmkuIFNwZWNpZmljYXJlIFVSTCBhc3NvbHV0aSwgcGVyY29yc2kgYXNzb2x1dGkgbyByZWxhdGl2aSBhaSBmaWxlIG5lbGxhIGNhcnRlbGxhIHByaW5jaXBhbGUgZGVsIHNpdG8uPC9saT4NCjxsaT5TY2FyaWNhbWVudG8gYXV0b21hdGljbywgbWVtb3JpenphemlvbmUgaW4gY2FjaGUsIGVsYWJvcmF6aW9uZSwgZSByaW1lbW9yaXp6YXppb25lIGluIGNhY2hlIGRpIGltbWFnaW5pIGRpIHNpdGkgcmVtb3RpLjwvbGk+DQo8bGk+UmlkaW1lbnNpb25hbWVudG8gaW50ZWxsaWdlbnRlIGF1dG9tYXRpY28gKHJpZGltZW5zaW9uYSBhdXRvbWF0aWNhbWVudGUgYWxsYSBsYXJnaGV6emEgZWQgYWx0ZXp6YSBkZXNpZGVyYXRlIHByaW1hIGRpIHNlcnZpcmUgbCYjMDM5O2ltbWFnaW5lLi4uIHJpZGltZW5zaW9uYW5kbyBhIGxhcmdoZXp6YSBFIGFsdGV6emEgcHJvdm9jYSB1biByaXRhZ2xpbyBhZGF0dGF0bykuIDxlbT4oQmFzdGEgc3BlY2lmaWNhcmUgdW4gcGFyYW1ldHJvIHBlciBsYSBsYXJnaGV6emEgZS9vIHVubyBwZXIgbCYjMDM5O2FsdGV6emEgbmVsIHRhZyBDR1NtYXJ0SW1hZ2UpLjwvZW0+PC9saT4NCjxsaT5MZWdnZSBhdXRvbWF0aWNhbWVudGUgbGUgaW5mb3JtYXppb25pIEVYSUYgZGVsbCYjMDM5O2ltbWFnaW5lIGUgY29ycmVnZ2UgbCYjMDM5O29yaWVudGFtZW50by48L2xpPg0KPGxpPlJpbGV2YW1lbnRvIGRlbCBjYW1iaWFtZW50byBkZWxsJiMwMzk7aW1tYWdpbmUsIHNlIGwmIzAzOTtpbW1hZ2luZSBwcmluY2lwYWxlICZlZ3JhdmU7IGNhbWJpYXRhIHZlcnJhbm5vIGdlbmVyYXRlIGltbWFnaW5pIHNjYWxhdGUuIChwZXIgZGlzYWJpbGl0YXJlIHF1ZXN0byBjb21wb3J0YW1lbnRvLCB2ZWRpIGlsIHBhcmFtZXRybyBub3RpbWVjaGVjaykuPC9saT4NCjxsaT5HZW5lcmF6aW9uZSBpbnRlbGxpZ2VudGUgYXV0b21hdGljYSBkZWdsaSBhdHRyaWJ1dGkgZGVsbGUgaW1tYWdpbmkuPC9saT4NCjxsaT5MZSBpbW1hZ2luaSBlbGFib3JhdGUgdmVuZ29ubyBtZW1vcml6emF0ZSBuZWxsYSBjYWNoZSBkZWwgc2VydmVyIHBlciB2ZWxvY2l6emFybmUgbGEgZnJ1aXppb25lLjwvbEk+DQo8bGk+UG9zc2liaWxpdCZhZ3JhdmU7IGRpIHV0aWxpenphcmUgdW4gVVJMIHNlcGFyYXRvIChDRE4pIHBlciBzZXJ2aXJlIGxlIGltbWFnaW5pPC9saT4NCjxsaT5MZSBlbGFib3JhemlvbmkgZGVsbCYjMDM5O2ltbWFnaW5lIHBvc3Nvbm8gZXNzZXJlIGNvbWJpbmF0ZSBlIHZlbmdvbm8gZXNlZ3VpdGUgaW4gb3JkaW5lLjwvbGk+DQo8bGk+T2ZmcmUgbGEgcG9zc2liaWxpdCZhZ3JhdmU7IGRpIGluc2VyaXJlIGxlIGltbWFnaW5pIGRpcmV0dGFtZW50ZSBuZWwgY29udGVudXRvIGRlbGxhIHBhZ2luYSB3ZWIsIHBlciBtaW5pbWl6emFyZSBsbyBzcGF6aW8uPC9saT4NCjxsaT5Gb3JuaXNjZSBsYSBjYXBhY2l0JmFncmF2ZTsgZGkgbGltaXRhcmUgZWxlZ2FudGVtZW50ZSBsJiMwMzk7aW5jbHVzaW9uZSBkZWxsZSBpbW1hZ2luaSwgc29sbyBwZXIgcXVlaSBicm93c2VyIGluIGdyYWRvIGRpIGdlc3RpcmxlLjwvbGk+DQo8bGk+Q29tYmluYSBnbGkgYXJnb21lbnRpIGNvbXVuZW1lbnRlIHVzYXRpIGluIGFsaWFzIGRlbm9taW5hdGkuPC9saT4NCjxsaT5GdW56aW9uYSBhbmNoZSBuZWkgZm9sZ2kgZGkgc3RpbGUgY29uIGlsIHRhZyB7Y21zX3N0eWxlc2hlZXR9LjwvbGk+DQo8bGk+UG9zc2liaWxpdCZhZ3JhdmU7IGRpIGVsYWJvcmFyZSBhdXRvbWF0aWNhbWVudGUgbGUgaW1tYWdpbmkgYWxsJiMwMzk7aW50ZXJubyBkaSB1biBibG9jY28gaHRtbCB1c2FuZG8gaWwgdGFnIHBlciBpIGJsb2NjaGkge2Nnc2lfY29udmVydH0uPC9saT4NCjxsaT5BbHRyby4uLjwvbGk+DQo8L3VsPg0KPGgzPlBlcmNoJmVhY3V0ZTsgdXNhcmxvPzwvaDM+DQo8cD5DaSBzb25vIHF1YXR0cm8gbW90aXZpIG1vbHRvIGltcG9ydGFudGkgcGVyIHV0aWxpenphcmUgcXVlc3RvIHBsdWdpbjo8L3A+DQo8dWw+DQogIDxsaT5QcmVzdGF6aW9uaTogbCYjMDM5O3V0aWxpenpvIGRlbGxhIGluY29ycG9yYW1lbnRvIGRlbGxlIGltbWFnaW5pIChhbmNoZSBub24gdXNhbmRvIGFsdHJlIGZ1bnppb25pKSBzaSB0cmFkdWNlIGluIHVuIG1pbm9yIG51bWVybyBkaSByaWNoaWVzdGUpLiBMYSBtYWdnaW9yIHBhcnRlIGRlaSBicm93c2VyIGVmZmV0dHVhIGRhbGxlIGR1ZSBhbGxlIHF1YXR0cm8gcmljaGllc3RlIHNpbXVsdGFuZWUgcGVyIHZvbHRhIHZlcnNvIGxvIHN0ZXNzbyBkb21pbmlvLiBRdWVzdG8gcHUmb2dyYXZlOyByYWxsZW50YXJlIHNlcmlhbWVudGUgcGFnaW5lIHdlYiBjb24gdW4gYWx0byBudW1lcm8gZGkgaW1tYWdpbmkuPC9saT4NCiAgPGxpPlByZXN0YXppb25pOiBhbmNoZSBub24gdXNhbmRvIGwmIzAzOTtpbmNvcnBvcmFtZW50bywgbCYjMDM5O2ludmlvIGRpIGdyYW5kaSBpbW1hZ2luaSBhaSB0dW9pIHZpc2l0YXRvcmksIGNoaWVkZW5kbyBhaSBsb3JvIGJyb3dzZXIgZGkgc2NhbGFybGUsICZlZ3JhdmU7IG1vbHRvIG1vbHRvIGxlbnRvLjwvbGk+DQogIDxsaT5TaWN1cmV6emE6IENHU21hcnRJbWFnZSBtZW1vcml6emEgaW4gY2FjaGUgbGUgcHJvcHJpZSBpbW1hZ2luaSBpbiB1bmEgY2FydGVsbGEgc2VwYXJhdGEsIG5hY29uZGVuZG8gcXVpbmRpIGFnbGkgdXRlbnRpIGxlIGltbWFnaW5pIG9yaWdpbmFsaSAobWFnYXJpIHByb3RldHRvIGRhIGNvcHlyaWdodCkuIFNlIHZpZW5lIHVzYXRvIGwmIzAzOTtpbmNvcnBvcmFtZW50byBub24gcG90cmFubm8gdHJvdmFyZSBsYSBwb3NpemlvbmUgb3JpZ2luYWxlIGRlbGwmIzAzOTtpbW1hZ2luZTwvbGk+DQogIDxsaT5TZW1wbGljaXQmYWdyYXZlOzogbGUgY2FwYWNpdCZhZ3JhdmU7IGRpIGZpbHRyYWdnaW8gZGkgQ0dTbWFydEltYWdlIHBlcm1ldHRvbm8gZGkgZWxhYm9yYXJlIGF1dG9tYXRpY2FtZW50ZSBsZSBpbW1hZ2luaSBwZXIgdW5hIGxvcm8gdmlzdWFsaXp6YXppb25lIGFybW9uaW9zYSBlIHNpY3VyYSwgc2VuemEgY2hlIGdsaSBlZGl0b3JpIGRlbCBzaXRvIGRlYmJhbm8gbW9kaWZpY2FybGUuIFBvc3Nvbm8gY2FyaWNhcmUgaW1tYWdpbmkgcGkmdWdyYXZlOyBncmFuZGksIGVkIGlsIHR1byBzaXRvIGxlIHRyYXR0ZXImYWdyYXZlOyBpbiBtb2RvIGFwcHJvcHJpYXRvLjwvbGk+DQo8L3VsPg0KPGgzPkNvbWUgc2kgdXNhPzwvaDM+DQo8cD5JbCBtb2RvIHBpJnVncmF2ZTsgc2VtcGxpY2UgZGkgdXNhcmUgcXVlc3RvIG1vZHVsbyAmZWdyYXZlOyBkaSBjb2xsb2NhcmxvIG5lbGxvIHN0ZXNzbyBwb3N0byBpbiBjdWkgYXZyZXN0aSBjb2xsb2NhdG8gaWwgdGFnIHtpbWFnZX0uICBBZCBlc2VtcGlvOiBxdWFsY29zYSBkaSBzaW1pbGUgYSA8Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e0NHU21hcnRJbWFnZSBzcmM9JiMwMzk7dXBsb2Fkcy9pbWFnZXMvcGljdHVyZS5qcGcmIzAzOTt9PC9jb2RlPi4gUXVlc3RvIGdlbmVyZXImYWdyYXZlOyBpbCB0YWcgaW1tYWdpbmUgc2VuemEgYWxjdW5hIGVsYWJvcmF6aW9uZS4gRSwgc2UgcG9zc2liaWxlLCBpbmNvcnBvcmVyJmFncmF2ZTsgbCYjMDM5O2ltbWFnaW5lIGRpcmV0dGFtZW50ZSBuZWxsJiMwMzk7b3V0cHV0IGh0bWwuPC9wPg0KPHA+U3Blc3NvIHNpIHZ1b2xlIGFwcGxpY2FyZSB1bmEgZmlsaWdyYW5hIGFsbGUgaW1tYWdpbmkgdmlzdWFsaXp6YXRlIG5lbCBmcm9udGVuZCBwZXIgZXZpdGFybmUgaWwgZnVydG8uIElsIG1vZHVsbyBDR0V4dGVuc2lvbnMgcGVybWV0dGUgZm9ybmlzY2UgaW1wb3N0YXppb25pIGRpIGNvbmZpZ3VyYXppb25lIGRlbGxlIGZpbGlncmFuZSBjaGUgcG9zc29ubyBlc3NlcmUgYWJpbGl0YXRlIHBlciBxdWFsc2lhc2kgaW1tYWdpbmUgY29uIHVuIHRhZyBzaW1pbGUgYSBxdWVzdG86IDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57Q0dTbWFydEltYWdlIHNyYz0mIzAzOTt1cGxvYWRzL2ltYWdlcy9waWN0dXJlLmpwZyYjMDM5OyBmaWx0ZXJfd2F0ZXJtYXJrPTF9PC9jb2RlPi4gUXVlc3RvIHByb3ZvY2hlciZhZ3JhdmU7IGxhIGxldHR1cmEgZGVsbCYjMDM5O2ltbWFnaW5lLCBsJiMwMzk7YXBwbGljYXppb25lIGRlbGxhIGZpbGlncmFuYSBzZWNvbmRvIGxlIGltcG9zdGF6aW9uaSBkaSBDR0V4dGVuc2lvbnMsIGxhIG1lbW9yaXp6YXppb25lIGluIGNhY2hlIGRlbGwmIzAzOTtpbW1hZ2luZSBhbHRlcmF0YSwgcXVpbmRpIGlsIHN1byBpbmNvcnBvcmFtZW50byBuZWwgdHVvIG91dHB1dDwvcD4NCjxwPkUgYW5jb3JhLCBmb3RvZ3JhZmllIHJpcHJlc2UgZGFsbGUgbW9kZXJuZSBtYWNjaGluZSBmb3RvZ3JhZmljaGUgZGlnaXRhbGkgc29ubyBzcGVzc28gdHJvcHBvIGdyYW5kaSBwZXIgcG90ZXIgZXNzZXJlIHV0aWxpenphdGUgaW4gdW4gc2l0byB3ZWIsIHF1aW5kaSBkZXZvbm8gZXNzZXJlIHNjYWxhdGUgcHJpbWEgZGkgZXNzZXJlIHZpc3VhbGl6emF0ZSBuZWxsYSBwYWdpbmEgd2ViLiBRdWVzdG8gc2kgcHUmb2dyYXZlOyBmYXJlIGFiYmFzdGFuemEgZmFjaWxtZW50ZSBjb24gdW4gdGFnIGNvbWU6IDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57Q0dTbWFydEltYWdlIHNyYz0mIzAzOTt1cGxvYWRzL2ltYWdlcy9waWN0dXJlLmpwZyYjMDM5OyBmaWx0ZXJfd2F0ZXJtYXJrPTEgZmlsdGVyX3Jlc2l6ZT0mIzAzOTt3LDM1MCYjMDM5O308L2NvZGU+LiAgQ29tZSBzaSBwdSZvZ3JhdmU7IGltbWFnaW5hcmUsIGxhIGZpbGlncmFuYSB2aWVuZSBhcHBsaWNhdGEgYWxsJiMwMzk7aW1tYWdpbmUgcHJpbWEgY2hlIHF1ZXN0YSB2ZW5nYSBzY2FsYXRhIGFkIHVuYSBsYXJnaGV6emEgbWFzc2ltYSBkaSAzMDAgcGl4ZWwgKG1hbnRlbmVuZG8gbGUgcHJvcG9yemlvbmkpLiBRdWluZGkgbCYjMDM5O2ltbWFnaW5lIGFkYXR0YXRhIHZlcnImYWdyYXZlOyBtZW1vcml6emF0YSBpbiBjYWNoZSwgZSBzZSBpbCBicm93c2VyIGxvIHBlcm1ldHRlIGwmIzAzOTtpbW1hZ2luZSB2ZXJyJmFncmF2ZTsgaW5jb3Jwb3JhdGEgbmVsbCYjMDM5O291dHB1dCBIVE1MLiBTZSBsJiMwMzk7aW5jb3Jwb3JhbWVudG8gbm9uICZlZ3JhdmU7IHBvc3NpYmlsZSwgaWwgdGFnIGltZyBjb250ZXJyJmFncmF2ZTsgbCYjMDM5O1VSTCBhbGwmIzAzOTtpbW1hZ2luZSBuZWxsYSBjYWNoZS48L3A+DQo8cD5PcmEgcHVvaSBjb21iaW5hcmUgdHJhIGxvcm8gbGUgb3B6aW9uaSBxdWkgc290dG8gcGVyIG90dGVuZXJlIG1vbHRpIGVmZmV0dGkgZGlmZmVyZW50aSBzdWxsZSB0dWUgaW1tYWdpbmksIHJlYWxpenphcmUgc2VtcGxpY2kgZ2FsbGVyaWUsIGVkIGFsbG8gc3Rlc3NvIHRlbXBvIG1pZ2xpb3JhcmUgbGUgcHJlc3RhemlvbmkgZGVsIHR1byBzaXRvLiBEaXZlcnRpdGkhPC9wPg0KPGgzPlJpZGltZW5zaW9uYW1lbnRvIGltbWFnaW5lIGF1dG9tYXRpY288L2gzPg0KICA8cD5TZSBzaSBzcGVjaWZpY2EgdW4gcGFyYW1ldHJvIHBlciBsYSBsYXJnaGV6emEsIGUvbyBwZXIgbCYjMDM5O2FsdGV6emEsIGUgbm9uIHNpIHNwZWNpZmljYSBpbCBwYXJhbWV0cm8gJnF1b3Q7bm9hdXRvc2NhbGUmcXVvdDssIGlsIG1vZHVsbyBhbmFsaXp6YXImYWdyYXZlOyBpIGZpbHRyaSBjaGUgaGFpIGFwcGVuYSBzcGVjaWZpY2F0bywgZSBzZSBhbmNvcmEgbm9uIGMmIzAzOTsmZWdyYXZlOyBuZXNzdW4gZmlsdHJvIGRpIHJpZGltZW5zaW9uYW1lbnRvLCBhZ2dpdW5nZSBhdXRvbWF0aWNhbWVudGUgdW4gZmlsdHJvIHBlciByaWRpbWVuc2lvbmFyZSBvIHJpdGFnbGlhcmUgYWRhdHRhbmRvbGEgbCYjMDM5O2ltbWFnaW5lIG5lbGwmIzAzOTtvdXRwdXQuIFF1ZXN0byAmZWdyYXZlOyB1dGlsZSBwZXIgZ2VuZXJhcmUgYXV0b21hdGljYW1lbnRlIGxlIG1pbmlhdHVyZSBzdWwgc2VydmVyLCBldml0YW5kbyBhbCBicm93c2VyIGRpIHJpZGltZW5zaW9uYXJlIGwmIzAzOTtpbW1hZ2luZS48L3A+DQogPGgzPlVuYSBTZW1wbGljZSBHYWxsZXJpYTwvaDM+DQo8cD5JbCBjb2RpY2Ugc290dG9zdGFudGUgdXRpbGl6emEgaWwgbW9kdWxvIHtDR1NtYXJ0SW1hZ2V9LCBmYW5jeWJveCwgZSB1biBwbyYjMDM5OyBkaSB0cnVjY2hpIHNtYXJ0eSBwZXIgZ2VuZXJhcmUgdW4gc2VtcGxpY2UgYWxidW0gbGlnaHRib3ggZGEgdW5hIHNvdHRvY2FydGVsbGEgZGVsIHNpdG8gd2ViLCBlbGFib3JhbmRvIGNvbnRlbXBvcmFuZWFtZW50ZSBsZSBpbW1hZ2luaSBzZWNvbmRvIGdsaSBzdGFuZGFyZCB3ZWIsIGUgY3JlYW5kbyBsZSBtaW5pYXR1cmUuPC9wPg0KPHByZSBzdHlsZT0mcXVvdDtiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsmcXVvdDs+PGNvZGU+PHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDE6PC9zcGFuPiA8c2NyaXB0IHR5cGU9JnF1b3Q7dGV4dC9qYXZhc2NyaXB0JnF1b3Q7PntsaXRlcmFsfQ0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDI6PC9zcGFuPiBqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gMzo8L3NwYW4+ICBqUXVlcnkoJiMwMzk7YS5mYW5jeWJveCYjMDM5OykuZmFuY3lib3goKTsNCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiA0Ojwvc3Bhbj4gfSk7DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gNTo8L3NwYW4+IHsvbGl0ZXJhbH08L3NjcmlwdD4NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiA2Ojwvc3Bhbj4ge2Fzc2lnbiB2YXI9JiMwMzk7ZmlsZXMmIzAzOTsgdmFsdWU9JiMwMzk7dXBsb2Fkcy9hbGJ1bS8qLmpwZyYjMDM5O3xnbG9ifQ0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDc6PC9zcGFuPiB7aWYgY291bnQoJGZpbGVzKX0NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiA4Ojwvc3Bhbj4gPGRpdiBzdHlsZT0mcXVvdDt3aWR0aDogMTAwJTsgaGVpZ2h0OiAxNTBweDsgb3ZlcmZsb3c6IGF1dG87JnF1b3Q7Pg0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDk6PC9zcGFuPiB7Zm9yZWFjaCBmcm9tPSRmaWxlcyBpdGVtPSYjMDM5O2ZpbGUmIzAzOTt9DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xMDo8L3NwYW4+ICA8YSByZWw9JiMwMzk7c2ltcGxlX2FsYnVtJiMwMzk7IGNsYXNzPSJmYW5jeWJveCIgaHJlZj0iPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+e0NHU21hcnRJbWFnZSBzcmM9JGZpbGUgZmlsdGVyX3JvdGF0ZT05MCBmaWx0ZXJfd2F0ZXJtYXJrPTEgZmlsdGVyX3Jlc2l6ZT0mIzAzOTtoLDUwMCYjMDM5OyBub3RhZz0xIG5vZW1iZWQ9MX08L3NwYW4+JnF1b3Q7Pg0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+MTE6PC9zcGFuPiAgPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IGJsdWU7JnF1b3Q7PntDR1NtYXJ0SW1hZ2Ugc3JjPSRmaWxlIGZpbHRlcl9yb3RhdGU9OTAgZmlsdGVyX2dyYXlzY2FsZT0xIGZpbHRlcl93YXRlcm1hcms9MSBmaWx0ZXJfcmVzaXplPSYjMDM5O2gsMTUwJiMwMzk7fTwvc3Bhbj4NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PjEyOjwvc3Bhbj4gIDwvYT4NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PjEzOjwvc3Bhbj4gey9mb3JlYWNofQ0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+MTQ6PC9zcGFuPiA8L2Rpdj4NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PjE1Ojwvc3Bhbj4gey9pZn0NCjwvY29kZT48L3ByZT48YnIvPg0KPHA+RXNhbWluaWFtb2xvLjwvcD4NCjxwPkxlIHJpZ2hlIGRhbGxhIDEgYWxsYSA1IHVzYW5vIGpRdWVyeSBwZXIgY2FyaWNhcmUgZmFuY3lib3ggbWVkaWFudGUgb2duaSBsaW5rIGNvbiBjbGFzc2UgJnF1b3Q7ZmFuY3lib3gmcXVvdDsuIElsIHBsdWdpbiBmYW5jeWJveCBkaSBqUXVlcnkgJmVncmF2ZTsgaW5jbHVzbyBuZWwgbW9kdWxvIEpRdWVyeVRvb2xzLjwvcD4NCjxwPkxhIHJpZ2EgNiB1c2EgdW5hIGZ1bnppb25lIHByb3ByaWEgZGkgcGhwIGNoaWFtYXRhIGdsb2IsIGVkIGFsY3VuaSB0cnVjY2hpIHNtYXJ0eSBwZXIgdHJvdmFyZSB0dXR0aSBpIGZpbGUgSlBHIG5lbGxhIGNhcnRlbGxhIHVwbG9hZHMvYWxidW0gc290dG8gbGEgY2FydGVsbGEgcHJpbmNpcGFsZSBkZWwgc2l0by48L3A+DQo8cD5MYSByaWdhIDcgZWZmZXR0dWEgdW4gdGVzdCBwZXIgdmVkZXJlIHNlIHNvbm8gc3RhdGkgZWZmZXR0aXZhbWVudGUgdHJvdmF0aSB0dXR0aSBpIGZpbGUgbmVsbGEgbGluZWEgZGkgYXNzZWduYXppb25lIGRpIGN1aSBzb3ByYS4gUXVlc3RhIGlzdHJ1emlvbmUgaWYgc2kgY2hpdWRlIGFsbGEgcmlnYSAxNS48L3A+DQo8cD5MYSByaWdhIDggY3JlYSB1biBkaXYgcGVyIGNvbnRlbmVyZSBpbCBub3N0cm8gYWxidW0uIFBlciBnbGkgc2NvcGkgZGkgcXVlc3RvIGVzZW1waW8gZ2xpIHN0aWxpIHNvbm8gc3RhdGkgaW5jbHVzaSBpbmxpbmUsIG1hIGluIHVuIGFtYmllbnRlIGRpIHByb2R1emlvbmUgc2kgZG92cmViYmUgdXNhcmUgdW5hIGNsYXNzZSBkZWZpbml0YSBuZWwgZm9nbGlvIGRpIHN0aWxlLiBJbCB0YWcgZGkgY2hpdXN1cmEgZGkgcXVlc3RvIGRpdiAmZWdyYXZlOyBhbGxhIHJpZ2EgMTQsIGFwcGVuYSBwcmltYSBkaSA8Y29kZT57L2lmfTwvY29kZT4uPC9wPg0KPHA+TGEgcmlnYSA5IGluaXppYSB1biBjaWNsbyBzdSB0dXR0aSBpIGZpbGUgdHJvdmF0aSBuZWxsYSBjYXJ0ZWxsYS4gUXVlc3RvIGNpY2xvIHNpIGNoaXVkZSBhbGxhIHJpZ2EgMTMuPC9wPjxici8+DQo8cD5MZSByaWdoZSAxMCBlIDExIGZhbm5vIGlsIHZlcm8gcHJvZGlnaW8uIFF1aSB2aWVuZSBjcmVhdG8gdW4gbGluayBjb24gY2xhc3NlICZxdW90O2ZhbmN5Ym94JnF1b3Q7IGUgdmllbmUgYWdnaXVudG8gbCYjMDM5O2F0dHJpYnV0byA8Y29kZT5yZWw8L2NvZGU+IGluIG1vZG8gY2hlIGZhbmN5Ym94IHNhcHBpYSBjaGUgdHV0dGUgcXVlc3RlIGltbWFnaW5pIGRvdnJhbm5vIGVzc2VyZSByYWdncnVwcGF0ZSBpbnNpZW1lIGNvbWUgdW4gc2luZ29sbyBhbGJ1bSBlIG5lIHBlcm1ldHRhIGxvIHNjb3JyaW1lbnRvIGNvbiBpbCBjbGljayBkZWwgbW91c2UuIFF1aW5kaSwgdmllbmUgbGEgcGFydGUgaW4gY3VpIGRlZmluaWFtbyBsZSBub3N0cmUgaW1tYWdpbmkuPC9wPg0KPHA+Rm9ybmlhbW8gbGEgdmFyaWFiaWxlICRmaWxlIGFsbCYjMDM5O2FyZ29tZW50byBzcmMgZGVsIHRhZyA8Y29kZT57Q0dTbWFydEltYWdlfTwvY29kZT4gaW4gbW9kbyBjaGUgcHJlbmRhIGlsIG5vbWUgZGkgb2duaSBqcGcgdHJvdmF0byBkdXJhbnRlIGlsIGNpY2xvLjwvcD4NCjxwPkxlIGltbWFnaW5pIGNvbiBsZSBxdWFsaSBobyBjb25kb3R0byBpbCB0ZXN0IHNvbm8gc3RhdGUgY2FyaWNhdGUgZGFsIG1pbyBpcG9kLCBlIHR1dHRlIHNlbWJyYXZhbm8gcnVvdGF0ZSBkaSA5MCBncmFkaSBpbiBzZW5zbyBhbnRpb3JhcmlvLiBQZXJjaSZvZ3JhdmU7IGlsIHByaW1vIGZpbHRybyBjaGUgaG8gYWdnaXVudG8gJmVncmF2ZTsgc3RhdGEgbGEgcm90YXppb25lIGRpIDkwIGdyYWRpIGluIHNlbnNvIG9yYXJpbyBjb24gbCYjMDM5O2FyZ29tZW50byA8Y29kZT5maWx0ZXJfcm90YXRlPTkwPC9jb2RlPi4gSW4gc2VndWl0byBsZSBpbW1hZ2luaSBuZWNlc3NpdGF2YW5vIGRpIHVuYSBmaWxpZ3JhbmEgPGVtPigmZWdyYXZlOyBzb2xvIHVuIGVzZW1waW8sIG5vbiBjcmVkbyBwcm9wcmlvIGNoZSBxdWFsY3VubyBydWJlcmViYmUgcGVyIGZpbmkgY29tbWVyY2lhbGkgbGUgaW1tYWdpbmkgc2ZvY2F0ZSBkZWwgbWlvIGlwb2QpPC9lbT4sIGNvcyZpZ3JhdmU7IGhvIGFnZ2l1bnRvIGlsIHBhcmFtZXRybyA8Y29kZT5maWx0ZXJfd2F0ZXJtYXJrPTE8L2NvZGU+LiBFZCBpbmZpbmUsIHBvaWNoJmVhY3V0ZTsgYW5jaGUgY29uIGwmIzAzOTtpcG9kIHRvdWNoICZlZ3JhdmU7IHBvc3NpYmlsZSBzY2F0dGFyZSBmb3RvIHRyb3BwbyBncmFuZGkgcGVyIGVzc2VyZSB2aXN1YWxpenphdGUgc3VsbG8gc2NoZXJtbywgbGUgaG8gdm9sdXRlIHJpZGltZW5zaW9uYXJlIGFkIHVuYSBhbHRlenphIG1hc3NpbWEgZGkgNTAwIHBpeGVscy4gUXVlc3RvICZlZ3JhdmU7IHN0YXRvIGZhdHRvIGNvbiBsJiMwMzk7YXJnb21lbnRvIDxjb2RlPmZpbHRlcl9yZXNpemU9aCw1MDA8L2NvZGU+LiBBYmJpYW1vIGFnZ2l1bnRvIGwmIzAzOTthcmdvbWVudG8gPGNvZGU+bm9lbWJlZD0xPC9jb2RlPiBwZXJjaCZlYWN1dGU7IGZhbmN5Ym94IG5vbiBzYSB2aXN1YWxpenphcmUgaW1tYWdpbmkgaW5jb3Jwb3JhdGUgbmVsbGEgc3VhIGZpbmVzdHJhIHBvcHVwLiBRdWVzdG8gaGEgZGVmaW5pdG8gbCYjMDM5O2ltbWFnaW5lIGNoZSBzdGF2YW1vIGNvbGxlZ2FuZG8uPC9wPg0KPHA+UG9pIGRvYmJpYW1vIGRlZmluaXJlIGxhIG1pbmlhdHVyYSBkZWxsJiMwMzk7aW1tYWdpbmUgY2hlIGFiYmlhbW8gaW50ZW56aW9uZSBkaSB1dGlsaXp6YXJlIG5lbGxhIGdhbGxlcmlhLiBRdWVzdG8gbW9kbyBkaSByaWNoaWFtYXJlIDxjb2RlPntDR1NtYXJ0SW1hZ2V9PC9jb2RlPiAmZWdyYXZlOyBxdWFzaSBpZGVudGljbyBhbCBwcmltbyBtb2RvLCB0cmFubmUgY2hlIHBlciBpbCBmYXR0byBjaGUgdXNpYW1vIHVuIGRpZmZlcmVudGUgdmFsb3JlIHBlciBsJiMwMzk7YWx0ZXp6YSBkZWxsYSBtaW5pYXR1cmEgKDE1MCBwaXhlbHMpLCBlIHBlciBkaXZlcnRpcm1pIGhvIGNvbnZlcnRpdG8gbGEgbWluaWF0dXJhIGluIHNjYWxhIGRpIGdyaWdpIDxzdHJvbmc+cHJpbWE8L3N0cm9uZz4gZGkgYXBwbGljYXJlIGxhIGZpbGlncmFuYS4gSG8gYW5jaGUgcmltb3NzbyBsJiMwMzk7YXJnb21lbnRvIG5vZW1iZWQ9MSBpbiBtb2RvIGNoZSBpbCBzaXN0ZW1hIHBvc3NhIGluY29ycG9yYXJlIGwmIzAzOTtpbW1hZ2luZSBuZWxsJiMwMzk7b3V0cHV0IEhUTUwgcGVyIGkgYnJvd3NlciBjb21wYXRpYmlsaS4gTCYjMDM5O2lzdGFudGFuZWEgZGVsbG8gc2NoZXJtbyBxdWkgc290dG8gbW9zdHJhIGlsIHJpc3VsdGF0by48L3A+DQo8aW1nIHNyYz0mcXVvdDtkYXRhOmltYWdlL2pwZWc7YmFzZTY0LC85ai80QUFRU2taSlJnQUJBUUVBWUFCZ0FBRC8yd0JEQUFnR0JnY0dCUWdIQndjSkNRZ0tEQlFOREFzTERCa1NFdzhVSFJvZkhoMGFIQndnSkM0bklDSXNJeHdjS0RjcExEQXhORFEwSHljNVBUZ3lQQzR6TkRMLzJ3QkRBUWtKQ1F3TERCZ05EUmd5SVJ3aE1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakwvd0FBUkNBQ2hBZkFEQVNJQUFoRUJBeEVCLzhRQUhBQUFBUVFEQVFBQUFBQUFBQUFBQUFBQUFBUUZCZ2NCQWdNSS84UUFVQkFBQWdFREFnTUVCd1FHQndRSUJRVUFBUUlEQUFRUkJTRUdFakVUUVZGaEJ4UWljWUdSc1NNeW9kRVZNMEpTa3NFV0pUUmljblB3SkZXQzRSYzJRMU5XZzZMeEpqVkVZN0prazdQQzB2L0VBQmdCQVFFQkFRRUFBQUFBQUFBQUFBQUFBQUFCQWdNRS84UUFJeEVCQVFBQ0FnTUFBZ0lEQUFBQUFBQUFBQUVDRVNFeEF4SkJFeUlqUWxGaGtmL2FBQXdEQVFBQ0VRTVJBRDhBdGZXOVZ1Yks3MCt4c2tnOVp2cEdWWkxnbnMwQ2pKeUJ1VDRDdEx2VkxuVExGWTlRdk5NaTFHWitXREljUnVNZ2ROem5mNlYwNGhrMFgxYUtEV3d2WXlNZVJtVnNLdzcrWmZ1bnpxSjNNbDFKd3RJSGt1SnJOTldnV3ltdUFlMGVMbUhYTzVHZWhOQk5MclhOS3NaSGp1dFF0NFhSd2pLNzRJWWpPTWU0ZzF0SHJXbHkzd3NvOVF0bnVXR1JFc2dKTzJkdmhURkZESEp4THhnenhxeDdHTlFXWE8zWkhiOEJUWERFcWNKOEZ1c1lWeGVRSElYQjM1cy9PZ2xiOFM2SkhPME1tcVdxU3E1alpXZkJERFlnK0ZjNTlTdUU0dHNkT1JrOVduczVabTluSkxLUmpCOEtpOXJxZW1XMm44U1dkMkJKY1QzMXdFZ0VSWnBjN0FEQThmbFNxeml1TkwxbmhjNmh6b3cwNTdWcENDUUpTUmhTZTQwRW1tMTNTYmE5OVRtMUcyanVNZ2RtMGdCQlBjZkErK25DcTRza2dqMGU1MGJWdFFlMXVaSlhXZTNOaUhlUXMyenEyTXRuSU9lNnJCdG9SWjJVVURTczZ3eGhESS9VaFJqSitWQTJYZXZKYThTMldrbGNpZENYay9jWS9jSHg1Vy9DajlKWFA5THBOTnlucXk2ZjZ3Qnk3OC9QanI0WTdxaXp4NnZxK21hbHFWcnAwYkM3bkZ6Ynp0Y2Nyb3NSOWdCTWI5RDM3ODFPVnJxTVYxeGRaYWl3WklkUTBvSkV4VTRNbk1TVXozRVlOQXM0YjRwdGRSMHl6Vyt2N1VhbE1HekVDRkpQTVFCanh3QnRUN0hlVzAxeGNXOGN5Tk5iNDdaQjFUSXlNL0NxN3Q3aXp1ZlI3RG8wY2JTYXMvNnFFUXR6cTVmS3ZuR3d4dm5OUGR2Znc2THhOcmE2ZzdxOXpIQTBHSTJidGlJK1U4dUJ1YzkxQklQMDdwUXRvN2s2aGJpR1ZHZEhMWURLcHd4SHVKQXJtZUpORVdLS1E2cmFCSlNRaDdRYi9sOGFoMmdSaDI0TUVpQmdJN3RzTU00SUpJTkxCYnhmbzNqcjdGUDEwbVBZSGRIa2ZqdlFUa0hJeURrR2lrT2lrblFkT0p6bjFXTE9mOEFwZFFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZSbHVEcmZsNUZtRWtZVUtvbVZpUUFQN3JLUHdxVFVWWmRKWnN3YU53cGJhUGZldUxjU3lTQlpFUk9pSXJsU1FBY245Z2RTYWY2S0tpaWpyUlJRRkZId294NVVDRFM5TFRTeGRpT1Y1UFdibDdsdVlBY3BiR1FNZDIxTDZNZVZHRDRVQmsrTkZHRDRHakI4RFFGRkdENEdzNFBnYURHVFJtczRQZ2F4ZytCb0NpaWo0VUJSUjhLUGhRRkZHUEtqSGxRRkZHRDRHakI4RFFGRkdENEdqQjhEUUZGWndmQTFqQjhEUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVlQZ2FQaFFGRkZHQ1RqRzlBVVZua2I5MXZsUnl0KzYzeW9NVVZubGI5MXZsUmcrQitWQmlpakI4S3p5dCs2ZmxRWW9ySlVqcUNQZUtBckhvcFB3b01VVm5sYjkxdmxRVllkVkkrRkJpaXM0UGdmbFFBVDBCUHVGQmlpczhqZnVOOGpSeVA4QXVOOHFERkZaS3NPcWtlOFVjamZ1TjhxREZGWjVHL2NiNVVjai91TjhqUVlvclBJMzdyZktqbGI5MXZsUVlvclBLMzdwK1ZBQlBRRSs0VUdLS3p5dCs2M3lyRkFVVVVVRGJxVEVTeDRKR3g2ZStrWE8zN3pmT2xtcWZyWS84Sit0TitkOFVHNWtZayswM3pySE94L2FiNTFwbmV0U2FEY3lQbjd6Zk0xelozeHN6Zk0wWk5jM29NbVIvd0I5djRqWE15UC9BTjQvek5ZSnJVbnpvTU5KSisrMzhScmk4a20vMmoveEd0MkpwTzIxQmhwNWYrOGYrSTEzNFIxQTZrWTdqMmg5c3lZTEU3Q2tMdHYxeFhIZ2Vkb1dnanh6Q1Mra1FrZEIxTkJNN3gyRjNKN1J3Q05zK1ZjQzdkN0g1MTF2djdaSjhQcFNWajQwRzVkc2ZmYjUwZG8vZXpmT3RNNXJHZkhyUWJGMi9lYjUxb1pIejk5dm1heHpBSEhTdWJNRDMwR1drY2Z0dC9FYTBNci9BTDcvQU1SclJtM3JRbkZCc1paTWdjN2Z4R3VUelNEOXQvNGpRVzNyaTVvTlhta0EybGYrSTA2Y015TStxeWd1N0FRbnFTZjJoVExLZHMwNjhLSE9yVC81UFgvaUZBNE5JMlQ3UjZudnJIYXNQMm0rZEkzdVZEdm54SXJtYnRSM2lnY1JNM1RtYjUxbnRXL2ZiNTAwSFVZMUpIT3VSNG11YjZxbU5uWCtJVUQwWjNEWUxIR091YXdidmw2c2ZuVU4xRGlxMXNjbWFkVngzYzFNNDlJZWx6U2RuNnlBZk5xQ2YzZXNyYnFUemtudXFQM25GRndTUWtoSHVxTlhYRWxzOHFabVRzMzJEODJ3OTlJNU5Sc1pFa2NYMGFoY2tzUEx6OGFDUVcrdTZycWx6TGE2ZElKWm93REp6UHlyR1BNK1BsMXAxZy9TZk5PdDVxMGtUUTRMZGlBRkhtYzVxc0xUaTZiaEpCNnRINjI5eXJPc3pleUQvZS9HbUhVdUplSWJxNmFTU1M1UmdRU2U3STZIcFFYeHhScVY3b2NWcmNXY3N6cVVWbVNZaGxrQnh2dHZtbDNGRnk3ZWp2VVoxTEkvWnFSZ2tGZmJUYk5lZmh4VnhOcU4zSGMzZDllMzB3MjdObDJLZzVIZGo4S3Q1dFJ2TlU5Q21xM1Y3RDJOd1NReWs1eGgwL0dncW1hOHVocTh5aTl1VlJsQkdKbXh0OGFjOU92YmlPL1F0ZTNQSVJnODBySGMvR21KNVErcDI1WWMzUEVSdjFHS2NZbUNUeHR5SFBmZ1p6UUxkZXVydjlKVzBrZDVjc25aNC9YTU53VDRHckQwS0dhNnRyS2RwcHNQR3JIMno0ZStxMDFRbmxnd0NBR0lxenVDcHUwNGV0WE8rRTVDZWJPNFAvT2dsOHp4aUdPRnBDQzU1VkcrNXhucjhLcjdpeTJraTAvVXBVdnJxUDdGOHhpVEFKV1JRTURyakdjNzljVk43bXpudVJic3NUa0pNc2dJSFVqT0tZT0w5TmRyYWVOWXBoUExieW9pSW85dGh5bFYzQlBlZW1LQnI5RGR4SkpmYXJienlTeUV3Q1JTN2xzZHhHNTg2ZXVJN0N3dXRPbnVuRWd2WUxkbGlsRTdyZ0Rmb0RqeDZpbUQwVlc5M1k2enJFTWtiMjg2V1dNU2o3amMzZUtiTlZ0K0pGdG5lNTE3dG9TcEx4cGJnQWp3ejNVRFhwZGxkYXZxTUtHNHVKSTRvSkpHZ2E0ZE8xYktxTWtIb001cDhzMy9BS05tNGp1N3E1Z2dlUldRYzdTdEo3SUpVRTl3T2ZjTVo4YWplZ2F1TksxKzBGeElrY0VzVXFTTzdZQzQ1V0J6OEtjK09MUkxvMmVxMmM0bHQrVHNuTVc0eHpaRGVlYzQrVkJwcVhGa3BkaGJ6eXhZSjVGV1J1WWZIcDE4cWUvU1ZkM0k5SEhDY3l6VFJ5eU1wY3JLUVQ5ajNrSGVvQnlXNGtoY082QlR6TXJzRHlONDV4NUQzVk92U1NESjZOT0Q4a2trcGtucitwb0twdWI2K1ZWWVh0ME45L3QzL091OXRxVjdsVk43Y2tmNTcvblNmVUVUMUl5STJTa25LK0QwTmJSMkY0dW5SNmkxdko2bThuWnJNUjdKWWRSbnhvSDIxMWJVN1FPOXRxVjFFN3FWYmxsSnlwN3R6VGRjMzk2Y2tYdDF6WkhTZHQveG9pbEhZRGZwMXBIZGtOYnRuQjNIWHVvRjFyZGFnQzZTM04ydTNScG4yL0dzVFhsNHVDdDdjK1gyN2ZuU2ZRVlNXNVpaV2s3SUp6UHlBRmdNanBuclc5OHFMSTVoNSt5NWp5bDhaeDU0b085dHFOK2poeGUzSUtuS250VzJQZDMxS1JkU1hzU1gwTnhPZ2ZhV05aWDVZNVIxVWI5RDk0ZThqdXFGcElBdU5zK2RQWEQrcFIyRjhlM2FRV2N3NVprWHc3bUhtcDN4M2pidm9KYmFUM01EUlN0Y1RFZy90U3NmUHhxVmVtYTN1SDRTc2J5MW1sUnUxUldhTnl2VldJNmVkZDdQaHlEVkVpVG5WWmNZWWo5dndPZmRpczhjelQzR2cyL0RyV3J0Y0NOSnUxWmgreVN1QVBFanZvS2E0VTlmSEYyamM5NWNsUFhvUXl0T3h5T2NkUm12VXg2bXFRNFc0V2doMXF3bHVVbldlTzRSMVZtQzRJWUhjWS9uVjMwQlJSUlFOV3Jmcll2OEordE4yYWNkVy9XeGY0VDlhYkdvTWs3MXJ6WXJESEcrRFRGeEp4SEhvTm9za2tMdUh5QXk0d01VRDR6aXVaa3FwWDlLOTdISi9aN1J4MDNMQ2xOaDZXNFRJVjFHekNvVHMwQkpJK0JvTE5MZDlhTXh4MDJxUGFmeGxvdW9SSzZYcUt6ZnNObm1Id3BiK25OTnovYkkva2Z5b0hFbmF1RDBRM1VWMUVKWUpCSWhKQUkyNlZpUTBDVnp2aytOTE9BMkhxeXNla2wzS1ViOTRaNmp5cGoxMStUVGp1d1ZwRVZzSEhzbGdDS2t2REtCSnJlTlJoVmtPQjRiVUQzcUcxNUo4UHBTVW1sVi93RDJ5VDRmU2tob05RYTVUVGlDSjVDQ1FnemdkVFhUdjZWRk9OZFRGcHBndFJLWTN1VHlsaG5PUERieG9HRFdQU1JQYjNVaTJscUJHdTMyM1hQZjBwRkg2VkpTeW1TeWo1TSsxZzc0cUtYMXZEMlRNSCtZSk5Na2lvaWZmR2ZlYUM3ZE40MzBuVTVZNG8zWkpIemtQc0YyOGFrQ3lMSW9aR0RBOUNEWG0rRzRFYjVFcFUrSXF6dUJlSlJOYnpSMzE2QXNTaFkxT2ZuUVdFYTVPYXlraVNJcm9RVllBZ2p2clYrbEFua08xTHVESGVYaU8rTE9lUklBaXAveERKcEJKMHBad1IvMWoxTGJmc3gvK1FvRU05eTNhdnYrMGZyWEF6dTNmVGhQYXFKWC93QVI3dk91WXRvejF6OHFDQmErNS9TOHA3K1ZmcFVZMWpXVTArRXFwQm1ZWVVlRlRUaUMyUmRZbEFIUkY3dktxZzE2WnBOVG15YzRZZ2VWQWludTVaNUdlU1FsajFyZ0pDRDEzcFZZNlpQZnY3SUtvT3JHbiszNGJ0MEE3VExIem9JK2wwVlhCWThnT1N0U2ZUZUsyc2JVMjVnV2ExQTVsVmtCNVQ0MG9UaHV4ZGQ0K3ZoVzAzQ1RXMWxMTmJQekVEbUtONGVGWnl5OVhidytMOG1WM3hERGZUeWFuYytzRkVSVDkxUnNBTytuMjBqa0UwYlhISzBJeHpLaTRKSGhudXFMeHl5SmNNSFhsd1NDbmNLbWR1QklxTUNNRUN0T1Y0dkIzMUtmUnA5TVNMUzlNbXRieklMeXl6OW9wWHZITFV2MGRKbjlDR3NKSVVaek80SEt2S01jMGRRUlV3d3FmMlE1ZlFwckJIL2ZzZjhBMXgwUlY4Mm44aVcwalN4UWhIR1dkOXNIR054bWxDdU9ibDV3V1VuSjVlbEtOVFR0dERsbnhnUmNyYmVSeHZTT0VjLzNRY0FLVGdiRE85QXRuaWdsakwzSWtaWS9iUUkyTXQ1bnVGU3JTdFkxQzM0YWdzckJrdG1lY3pDU1JNcXVEakJKM09kc1kyNjFybzBPbmFUYlI2anFNQ1hEU1k3TzFLOHdPUDJpTzgrL2FwTnhYYmFYcmx2cDV0ZFNndEpvTVJzZ1FxRlhPY0FBYlk4S0NUYVJOZlhIQUthaGV4T05RZTM5dU1ObGNnNHlnN2dSdlNUakRTVTFPUWFmRXBTTmNaNUNRRkJVOVFPNDcvaFdxY1k2VG85dERwY1YzQklxUUJGREJ0Z1BJQ212V09KclM3N1NTMXZTSGxUSmVGQ3JOZ2JaUGRqZjUwRGI2T3JDYlMrSUxwR0VmYVBFNkdEbXc0UU9DR0k2WVB6MzZVbDF5V2U3bmx0b05QbWtjZG9nVmNEYmY2YlVxNEhuczlKdm52NysraVQxaUpvaXhKTGgyd2NIYnhGT1NUaTltdW9OT2pWaXhmTEp1OG96Z25KeHQzWUhrYUN2WHM3YlM5Y2dWclUzVitFUE5JUDFNQUtBNHdSN1RlZlFlZFMyR3dUVmJOOUpFVTBjMTRXajdjcjdJQklJT2V1QVBLbld5NFgxTFZManRncVF4TW5MMmpuYndJeDM5S2UrSU5HL1JIRGQ5ZTIxMUt0eEJiczZka2lvZVlEYkJHNCt0QkhyYjBNMjZ4cXI2cEtjOVNJODkvY1BuU0QwdjZkSHBmQnZEK20yNVl4VzF4MktGdXBDeEVETk1jTjdmUmNzOHVwNmpNN0wwbnZaR0ErR2FkL1NneGw5SDNERHNTeGFSU1NTU1Q5bDQ5YUNCMmQvcGIraXkvMGk0ZFUxT0NjTWlIN3o1Y0VGZmhrZkNtS0hUWTVMS0oxSlZtVUh5cHkxS09IOUR2eUFoeVl5YzV4MXJ0cDl1VFlRbkczTDNEem9HWDFlNmpRcmdPdmlLMHVVQnM4R1Q3Vmo3VVpVZ3JqdnowTldHbkRVYzJqTmNLd0VnT2ZlS2grcHJidlp1Qk1uTXFjd3dPNEhmZWc1OE1SdzV2OEF0V0MvN01lVFBlZVphMjFhSUpaaVJWMkw0NjF3ME80aEVWeUdtNUhiQzlPNy9RcGJxNndMb2lOMnZNL2Jia0gyY1lQZGpyOGFCdm5OcGNOYmVvd1N4dVVXTjBhVHRESkpucXV3d1BMZjMwT1d0eVZsVXF3T0dCR0NwSGlLSWpCQ3RzeVM4a29ZU2xsRytPdXhQUStGT0VrUDZVdFpQVitTWm1PWkpNYjh4OGM3NHgxTkJabm81MXUzaXRJYkc0dUlrZU1oNE9ZNE9DU1N1ZnhIdk5TdmpmVTdLM3RiTFZaQVhnQk1KQ1k1c25CSFh1MmFvYnc3Y2FGYldkcXNlaXlYVnpnTEpOT1ZTTmlPL09jNEh1M3dLbEVXcld1c3ZkMk54cE5vOGNaNW93NkNRRTQyM1B2T052SHBRTVdpOGM2TE5yRmxaTGFYWWtrbVNOQ1FtQXhJQXp2NTFhOVJ2VFlkQVRzNDR0THM0cm1KdGliWkFTZWJBS25IamlwSlFGRkZGQTA2dit0aUhkeW42MDFuNDA2YXgrdGkvd0FKK3ROWjZVR2puQnFyT0xZN2pXWmJ1ZEZra2lqMlJjN0lOaCtQV3JRbHh5Tm53cU5haERIRm9WMDBhY29lUEorWW9LUHU5TmxqY0ZsSThhUXZBUTJNR3BsZmhSTVJqclRQUEd2TWRobWdhTGQ1YmFaSkVZbzQ2RVZaa0VRR254UzlvT1lnYlp5Zm5VRWEzN1Fxd1haVHVlNFZMTkpuYWF3UlMyZXo5bkdUaXBlK0hYSDFtTnVTd09ITS9vWlA4eC9yVGk0ODZidUhCL1V5ZjQyK3RPTGdFSGI4YXJrWmRmWG0wcVVEWUJsT2Zjd3FVY040OVloem5QYS95cU5hK0IraHJueVhQeXFSOE5NUFc0UVJqRDVIbnRRUGQvajF1WFBYYjZVa2FsZC8vYkpQaDlLUm1nNW5yNVZEZU1vbzNFYmxjdXJydjhEVXlZVlgvSEYzSmFLNmtBa3lLd2J3SEsyMUJGTlFSVEdBUjVWSDdxM2pPNFhwV2JqV3BYY3h0SW1PblRGSTU5UUlJRFkzNmVZb05UYnFWSVZjazA4NkhCNm5kbFJKbm5UZGZBMHpRWGg1eElGd282SFBmVGhZVHl5YXBEZ0VnN2RlZ3JQMTEvV1lYYzVxNzdMK3dXMytVdjBGZEdyU3lIOVgyMytVdjBGZFdyVGtUUDVVcjRMMjRuMUlkM1lLZnhGSlpBQUNLWGNJUXNuRTE3SmoyWHRoZy84QUVLQjN2ckR0T2FXSmR4MVVkL25UTTBYS2NkL2hVbHM3dUM5amFTM2NNQXhVK0lOTWVrb3QzZFhuYW5PUHUrV1NhQ3VlTWJnV2wxZXpuYnM0VkkrVlZCWldqNnZxYkFraGM4OGpmSCtkVzU2U28xUnRUUnQyRUM0OStCVmU4TVFGTE9hWURMTytBZklmNk5BN0pIRmJ4aUtKUXFyMHhRWHlOcXkzS28zTzljeTRCMm9mNkxiWm43Uk1iYmpmd3A3am5rdVZWWlF2VWpQWEpxT1BxNjZkQVVtaFBpcHlDQ2ZFVnpzdUpBSkVMQWhBZXBGWW43WGw2TTkrUEgxbDc3YWNUYUY2dklidUpQWmMrMWl0ZEtjcEdJMk9lWGRUVTRTTzMxelJ5Z2JabDYrQnFMWHVpM1duWE1sbzY5bmRSdHlGVDQ3WVBoaXR2T1VEWnMvT3JDMGtjL29jMVVZNXN6UHQvd0FVZFFFOEtjWDIyR3VMYlR5V3dBbzFDSG1PU0FOdWJ6RldOQnBkOXBmb2gxVzF2b1ZpdURJWDVCSXNnd1dqNzFKSGNhQ0NROGhpbXQ1RVU5dEhnZ0FOdmpZSDYwaHRsWkpaYmRZZ29kVkRaSVBUd3g3dXRLWW9wU1F2WjgyUmhlWGJGS0xmVERhcEpQT3dSMlRFU25QdE4zWjhnTjZCWEU2cmFMRGRTaU9PTTg4Yk9jZXpqSkE5dzMrSGpTNWJxMjlabjVXSDN5YytOUjJTUDFobWt1dVdkMlVwbjkxY1l3TTlPcDZWR3A3MitzTHlkWUhWNGd4NWVja0hGQktOWGUyYWFXUVpEQkErVjd4bmNmS25xR2RKSVVhSWhrNWQ1Q05oL3dBK3RRcXdtTjFjb2JvODVaR0JDOUNRUWNWS2t2UnloVWpQZ2lLTmdLSFpWMlpGaXhtOWxSTUNHQzVMZTJOejhLZWVITlhXRFhKQ3FLd0VMY3VUdDFGUks1MUdVb1VrYkI4QWVuaUs3YUJMMnVxNFBzanN6amJPZW0xU2IyNjUrc2trN1hWbzJvUGZBOGlLcXFOZ293QlRocTFnZFMwaWF6OW5NcThwTFp4K0ZOWEMvSXRua1lDZzR5Y0NuMlc3aWpBQmRjOTI5VnlWamNlaTdWWkpTNjMxcmduY0htSkh1eUtSK2xpeWV4NEw0ZnNuWU0wRTNac3c2RWlPck11OVVhQjRZSWlzbHhPeFdOZTRZNnNmSVZYM3BrRGYwZDBydE1Pd3VtNWlCako3TTkxQlU5NHhmVG1EWXh5cjA4alVpNFhzbHV0T2pPZGxjanJVWVpKSnJjeFJSdTdFYktvejMxTCtGM0ZucEI3WnNFU09NQUZoM2Q0Mm9KYTVoZzAva1lBS1Y1QnNPdkthcWJWNDRrdFpsN1Vvd2hiS2pIdEU0cXo3aTFtdXRNTnd2TXNDRlpHZGxJQVVEYy9qVmNhdmJwQkZjckxLcXlzckRsRCs3RzFBaDRTdG9wa3Z6SkdyRkl3VnlPaDM2VXAxN21PbHFnZm1UdFZQSUVHM1hKejFQZlNmaGt6Slk2b1lPVHRERXZMemJqdnBMUE5xQ01UZFBHOGE3c3NhOVBPaXliNGpqSnBndW9wSm9yaHVhTUtFUmsrOE1maFVoNGV0clMyc3A1SmlWeVZPWGt3VzI2RlIxSHdwcjAvVWJaNVpVU1RITmpPVHNjZnUrWFNrNkxLbDdjckxNQVdZRU1CMUhsOUtrMjM1UFhpWW4rNzFGWGlNTnN5d0ZjNGtBNVd3VDVkUjEycEhhYXJjMnFSU2krbTNMS0ZTVTVqSndDVjMyUFRla2thSkVIYVhMQnp5L2YzQUh1N3FTdGFNSi9zeUFHR00vbWFybW12RFdzWE12RUduUXlYYnVHdm9seXpFNUhOdjhNbjVtdlFaNjE1ZjRXQ3J4WG9LQXZuMXVFNEorOTdZMzkxZW9EMU5BVVVVVURUckg2MkwvQ2ZyVFVUVHJySDYyTC9DZnJUVXd4UUl0UldXU3htV0VrU0ViWUdTZktxNzRrMVM4R2t5aFkzNU96d0RHZGh2MzFackRQeHFBY1MyeXRwdDdseWloU2NmSHBRVmFsMWMzSmZMTWVYR1NhUXlYa3BrSUdlYnBpbnEwQ1IyczdrQUsyVlhJd1dIalRWSENyM1piZnN3Y2xnTTcrRlMzVFdHRnp5bU1LTGU1bWloQ2xYVm5HZCtoSGpVaTRhU1QxT1IyUHNGdVZjL2pVZDUxa2taZ05pZHM5d3FiV0Z1TFd5aWhHZGh2NytwcFA4QUxYa3ZPcGVJblhEbi93QW1UL01mNjA0UG1rSERnL3FaUDh4L3JUaTQ4cXJtUVhsdWwxYnlRU1o1SkY1VGpyU2pnNzF1SFdPd3U1VmRReTlrNEdPYlk3ZStzU1lBeWVncmh3YWJxOTE2RyttQ3BBMjhVWWJQS044SDNtZ21kK00za253K2xJenZTMisvdGtudytsSW1vT2JiL09vVHg5RHoyMXN3d0NYNVNEM2pCcWJFVkVlT284NlpieWZ1ellQdXdhQ3BGdGdOVXdRcnVQYTZEQUhpYWJkVVFQZU1VR1FUZ0FkMVBmWnZHMDdySHpFa2d0bW1zeEdOMm5seWNiRHZ6VXQwNmVQRDN5MThjWXdVSFlaS3FQdkE3L0tuN2g2MTVwNWJrOUVYa1gzMHdSNTY3NVltcFp3OWhkT1lramR6dFNNNTVicTJyRWYxZmJmNVNmUVYwYXVka2Y2dnR1bjZwZm9LNnRWWkozL0duYmhUSDZVbUdSbnNmSCs4S2EzSGZTcmhZSCtsc3V3UCt4SEgvd0M0dEF5MjF6Tlkza2trRGxUenQzN0hlcER3NjY4bHc1NnV5ajZtb3FrOFU4a2p3eXBJdk93SlE1M3lkcWxHZ3FGdEZrQjNNaHlQSUQvblFWcDZVVTdUVXJ5TWQ4YS9IMmFyMjB2R3R0SWlTSWUwek4wOTlXVngycXpjU3pSbjdwaVg2VkFiblRQVTE1WThsUVNWQjh4UU5EWDl6SEw5bzJhbU9pYVdkU3MzbktrcXE5UE05S2hpV1V0MWVySHVjdGpIY0JWdGFFSXJQVGpBTURtMk9Lemxma2Vqd1lTMzJ6NmlwYnd5QzVkWExzcXNjYzFTUGhxUzBtamUzblRuNXdSeTh2bDFwOTEvaG0wdWgyc1dFbDhRZGpVZHRiSzQwNmJrNWNNZjJsTldUVGpsbHU3U0Rodk9uMzBsc0hab1RuQ3QzVk52U1BweGg0Z3RicjJSRHFGcUZaOGZkZU1ESHpCcUk2TGFZWXU0KzBPNUpxMitOOU9GNVk2UWVVRVJ1UTJlNVNneWZ3cXN2UGx0YlNyeEhQYnlNeElrVGNucGxoVm84Q0dOdlF2cUpseUU5YWtKNW01dStQdnFEYWJFMXh4azVrUE1RVUJJNzhIWS9HcHp3REMwM29ZMUNOVGt0ZHlBRWp6am9HaDdxSWpGdGJFSCsva2ZnS2oycVBkUGU5bzB6Y3lrTUN4T1BEcCtGU2RkS241ajdjWUhRblAwcEJxV2dYRnlyTEVFWTQzekpnbnYvbFFJYkNkSlFWZmxEamZCTk11cVdLU3JkeVNGUnlTK3dQMmp2OVBHbldYU05Sc0U5WWtXSUZSMUVneVBjTyttcVNVU1EzQW1MTkwyNHk1TzVKUFNnVGN5Mm5ZQUV2bHVWU09vNXUvOEsyZ2ttVWRwMnMyRng3U3YwTkpya3lLNVNLUE12TUFpNDZHbGN4UlVTRkRubFBNZHZHczIvSGJ4NGNYTzhhS2tsYVpRN2tsaU1ibW5qaHNFYXEyQjFRay9NVXhXMmV5VlI1NzFJdUdVSDZTWTlBSXljNTY3aXRPVnU3dFlkdnEzcWtJR1NGVTdLUDUxdEh4SGJ0QVZOdkk4eFAzKzEyMzhzVXh6bjJTQ1Jqdnp2U05XNUVYT1NPdXd4UkQ3ZTZuTmMzVnJjMjhpcGMyejlwRVhQc0U5NGJHK0RTbjBnYWxheDhQYUxmYXBZcmNxODNNOEtQdGtwdmhxanNYTXhWczRIbjFweTlKYWtjR2FDdWRoSUFjOS93Qm5RUUxWOVQwaThSalkyVTF1a2dPQWhBWlI3LzhBbHZTL2htZms0WldJTitzdVpsQkhUWll6VVhXUEpBd1FEMys2cEhwMXJjdzJOcmJ5eVFXcUxMSTZ1RjVtT1ZYSktuWWpBOHFDNFlMZU81NFdTTnlNUFpZeDQrem1xRzFhTHQzYVNhYU5VS01VOFNUanA1YlZQYmFXNWx0cFlSTThpeFd2TWp1TWtaeUQ1YmtlSFNvSEpwOGpLVEoyYXNRTjg3azBDWFFZemIyMm9kbGx5aWNyN2JFNzlQREZKWnJlZHJScHBrTnVqamFVNWJPTnNZRzVwKzBxd0ZySERHcmMvcmpCV0lIUWNySEsvR3RMN1Q1N2lYKzBDUWdZSE4wMjIrbFp0NTA3WVkrdVB2OEE4UmkwampnWjRvb21ZY3h6STRCWnZjZTRId0ZUUGgvaEdQaXBiaWRMdHJVd0ZVdzBlZWJJelhIVDlEakJaN2libWJtMkVaK3BwVGROYzZkeUpZVDNFVVR1VEl5VEZTZHRodDg2MDRuNWZRNHR4R3p2ckJTTWRBSVQ4ZSt1VGVqVzF0OVN0SUJQTE0xMHhpRGxUaFFCbm1ZZE01STc2ajdhenFEanN6cVY0Y2VNNzQrdGQ3Vzl2WUFadlhibFd4OS90V3lQZDRkOUJNckwwYXBwR3RhZmVSM1NUU1IzRWJIQ2xSeWc1eGpKcTBxb0xTTld2cHVKOUxFbDdkU0sxN0NDcG1adHVZZGQrbFg2ZXRBVVVVVURUcTQrMmkvd242MDF0MU5PbXIvcm92OEFDZnJUUFBMSENwWnpqYWdEc0RVSzR1aHhZYWl2UU5IbGNmNjhhMTRxNDhYU1VFTm5HajNMOU9ZbkNqeDg2YmZXZFExYmc1dFR2cEF6VGh5Z1ZRb1ZRUVBxQ2FDRVhGdTdXeW96S01nZE5zVTBYQ1BDQkVHWEJ3VGdZSTY3VktIYnNiZHBHSHRnWlRJLzFtb3hKekdWM2JxeHpXZTd3N3orUERjN3JNZUF5NU9BU0tuU1hNTDdKS3JmOFZRRE9XQTdxMDFKR1V4U2dlMFJ5azFwd1h4dzI0T2lwdjhBOW8zMXB6WTdud3FydUNiNjhrMGRVam1iMkhJTy9qdlUxaTFDNVFEdHZhWG9jamNVRHV3NXRxMDRDY0ZMRWVBSS9FaXRJWmttNVhRN1Z4OUhzM01iTmM3Q1dSZmt4b0p0ZkgvYlpQZVBwU1EwdnVJRExleW5jS0NOL2dLYTlTbkZxamN0QWt2dFN0ckNKNUo1TUtpbG14NENxeDFuamR1STVFc0xTMDdLSU1aREk3WmJsQUk2ZDNXdCtPdFVZV0poRGUxT2VYUGwzMUh1R3JWVGFYdW9NRHpSc3NTanVPUVNmajdOQjJFWmRYWEdmZFRCcU1oYTRNU2hWUkdJQVVZQnFVVHNscEZJUUQycFBMeWtkQjQrN3pxTno1bmxKVUU0OHF6M1hmTCtQQ1l6dWtHUXE3VjJFODhkbklZcFdRcnY3SnJUMWFSNU1jcEg4NmQvMFMwVm82djk1a0xINVZwd08vQzNHT3BtV08wbW5hVWNuc2N4NllIU3A5YjYxSXdIYXB0anVxbk9IM0Z0cmRtejdBU0JXOXgycTRvTFJKR1pCOTVlbm5RT0Vkd2s0eWh6VHR3dC93QlpXYnU5VlA4QS9JdFF1R2Q0Sm1HY0ZXd1JVeDRQbEUydE00UC9BTk1lNysrdEJDTkUwK1RTN0o0SmVYdE8ya1p1WHpZMU9kS3hIcDhEZDVWaWZuVVB2NzVMUjNabEp6Tnk0SGlUaXBaWmN5NmRIL2tEYnpvSzk0cmtFbkU4elo2SW4wcU5YNHlkcWZPSTJ6eERjKzVmcFRUS25OSW0yY2tESGpUcFpOM1J2dG1oMCtLU2FRTjJyZEdBNkR3cnRaNjFjcmF1OXFxdElTQXNiSGwybzFXWkk0eEFxZ2pxRjhLWTRnOFYwcmMyQjE2OUt4anpkdlI1c3JoSjRwZWt2djhBVjU1OU50cHV3YUtRT1ZsVFBkaXRiQjF2Z3ZNUGJCcmxCZHpYRnVlMVpKQXV3QXJhR2FDMlpaMFhra0RxQ21ldTliZVpJYmVMc21Ia0t0ZmlxSzZmUkltdFFHWlFBUm54QUg4NnE3MlRHc21lbzdxdUtlNTdEU25tNUE2eFFoK1h2SkFGQlN5Y00zV2xjZkd6V09TNGxoc29IbWtSZGl4NW1QeUdCOEtkZUI3bHRKOUN1cFhJREZvN3FSaHk1VTdtTWZ6cVIzdXAzVjNxTWx6RlBOQUh4N0VjaHdNREZaNGllVzQ5RitybVZ5N25BeTMrTktDdGhyK29jN01zaXV1VGd1bWUrdTBYRTJvR1ZWS1FGU1J6Zlo0eitOTWZPVzVjWkI1Um5Qald3a0FZQWpjQTlQR2drdHlXdVk1T1pzdVZiQXgwMnFFU1pqZTZpbldYTEVoQ2k1S3NEa1o5MVRMTE5HVzJ4eWcrT0Q0VkhaazdiVUpqSm5rRWhMRUR6cGJydGNjZmE2Y3dIa1QxaHhIa2NwM1hxZkh5TzFKMXM0MllBN0h4cFhLVWVRSkVDVVFZQjhhNWVJT2MxbVQ2NitXLzFuVGVLQkkxeHpad2NtbjdoMWsvU1RiNCt4YjZpbU9Od1VPMk1lRk9tZzUvU0xMak9ZaWVubUswNHBQZDlwY1FjdHVzYk5rZnJISTI3KzZ0QUpBUGI1U09tT3VhNXU3SS9Mc0FlN082MWxaWFZVQXdSbnczRkIzaTVvOEJJMDh5Um40VXU5STREY0ZjUDViQzg0SlAvbDAzd3VDZ0hMN1pPY0grVk9ucEpVRGd6UTR4SExJeGZDcEdoWmllejhQem9LdGdRTklNN2o5bW5hM203RndGQmRzNUJidUoyTzFJTFcxMUNXUm1PbDNNS29Nbm5YZmJ2cFhHUzBweDdJRGJzZWdvSFhTcDU1cjZmbmx5UkNNQmp0ako2Q200R0tLTUhtNTJDKzI3SEdQZFduTjZ2ZW1XS1J1UVF1cEo3OXRxajl0cURNcW00VWNvR3h5Y1pxVzZqV0dIdGxvL1RYWHFjVU1jTW1TaHlHSTNHTnR2S214N3VSMzJjazlkanRTV1M3ZTVQYUhBeUJzS3hHeHlvT05qM2Y2M3FTYTdiOHVXN3FkUktkTFZuaEJKSnlkcWxtbDhOUWE5WTNJbG5hSXE2Z0ZRRDNacUhXTjlIQkFGSXkzajRWTk9HYnFjV1YxTEpidXNIYUpsenN1Y2JiMXB5YlEraTJLS1VUbTllV01uY05GZ0g4YVhhandqcDB0bjZ2RTFyYnlNTUJzTVQzK2RLZEVuWFhkY3ZiU2VROWxib3JSVy9OZ01Ebm1ZK1BkN3FrRnZwRU50S3hNazl3enRrTEkyUXZ1SFFVRmU2VHdPbHRybG5jRFUyWm9MbEdLQzNJNXVWZ2NaejA4NnQzdnBMYlBod2lSQkZPZDhZUHVwVlFGRkZGQTNhb0FBcmtiaFNLZ2VzM2JoaXZON3FtdXV6Q0dOYzV4eU1mbFVBMXdOSHBrMXljZXhIbmZ4NWMwRlE4UVhSdWRadVhVN0tlVmZoVnEzVmlscHdwSHA4WVZUSGFZQ0h1SU9UOFNEVlY2TlpIVjlmdExVZ250NVJ6ZVF6ay9oVnY2dXZyZHNaL2FXTHRGTGN2WEJVQS9IMmFMTHE3VmxxMXc2ZllyOXhCN0pGTXpRTThZWVlESHhOV2ZxSEJGdmNNVEZQS2hYT2M0d2Z3cEphZWowdk1yVFRza1hMdVZJSkhsMHFTYVhQTzUzYUJhYnBKdVp2Yis2TjJJck92V2FycGtjcUFERG41ZEt0U3g0U3NBaEVVczRRSXo4MlZ5MlBoVFBxSENVRTNEWE9zc3hKU1U0T01aQjkxVmxHdlJ4Sm1hOHRpZnZSYzZEekIzL0FBcXhMbUlUYVBMY1JEMm84RnNlWGZWUmNQWEw2VnJsbE1qRUJaZ0c5eE9EVnhzeTJONkhVWnRMazhrcW5vcGJiUHUzb0dtMHVtaGRaQVRna1pBcFp3VE9MRFhyTFRwYzlwSmNTT2hBMlpXeVJqK2RNdHdodEw2VzF5ZnM1T1VlN2I4NmNOQzdTYmpEaDJSZDFodW1WaDRCa1A1VUZzM3NxeExudjYvaFVXMWhqTkp5QVpESXJaOTdFRDZVOTY2N0xDV1Q3eS96Rk1jTXhsa2FWUmtCVnhub1BaMno3aVNhQ25PT24vcldLMkJ6MmE1UGh2OEErMVBQRDFvZzRMdDFjQU5OZmRxYy90QUt5MUYrSlpEZWNUWGZaNWJNblpvRDEyMi9HclZ0TkV0cDdUUzdVODhjRUxsUFl4bmJidzh6VXMyMWpsNjNhRHo4MS9BR2NEbVhLQWp2eFRLMm0zQ3NRRXlmRVZZeThLMnlYdDliTE5NR2pKZGVuY2R4MDhLVmFid25ZM0Z4Mm5yRTVpWmViR1I3TzN1cEpxSmxsY3J1cS90ZE5XMllTU2dHUWRGRytQZlNtNFFpYVpjZElmcWFtdHZ3aGFTdVpqTk9VbGxFY2VDT2c2bnBXeWNKMlUrclh5R2E1NVVqeCt6NCs2cWluYisyTmhxUkFHQ09WeDhnYXR6VExzemFSWTZyRjFhTUNRZmhWZWNhUWlQVlZrakI1QWdRRTkrTnY1VkpPQk5RRXVoVFdya25zV3hrOUFEUVBHdEtrZDRzMFdPU2RBdzkvZlVoOUhrdmFhdGNlSFliZnhpb2pxTTJZRmladmFna0pIK0Uvd0R0VW45SERaMXFjZjhBNlhQL0FLMW9JbnJCTDNxeGdBZ08waitJOXJBL0hOV0V6Q0pKRjVsKzR2S3VSbkdLcjY0NVpkVHVEa0U5dXNYVHdiSit0VDdVWVkwRThySXBkQ1FqNDNBb0txMXVVdnJkd3hQZ052ZFhBWE5zbHE1TGp0VVBOaklCK0ZJdGRtWVhGOU1wWUZGMks5YzkxUUc4dW5hY2UwU3luZHM5YTU1YzMxajFlR1h4WS9sK3BMZUdhUzZKVWtrNzU4S1FlclN2S0FaVGttbHVuM0l1cmRKZjJpdUc5OUUwVEJ3M05qZXVrbW5tdHQ1cDZzTkZES015Uzh6WTZOakZhNmpwNzJlcFdrUWtaMGJHU3h6dm1uSFNXYnN3YzgzeDZVNFhWa1pKVXVEdnk3Z0dpRmtFNFdKVUo2REhTcmR1cHM2Sk9CbmxOdjMrNnFXdDNMU0VFWU9maFZ6VFdNbXBhSmVXU1N0RTh0cVVXVmVxa3IxK2xCR0VRTWVZSGFsV3VyemVqVFZWR01rLy93QjBxaDM0dTRvMFcvYTN1N21UbWpPQ3NneXB4NzZ0dlROY200azlDMnAzc2thUnlDUm95RTZIbFpOL3hvSzVueUlJK1Rvdk56TVc2QUhvSzR4eXJJd1lEQkIySnA0c2JSWjRnU0F5a25JWWVPS2NZOUd0MklMUktBTnhzQlFjYldUdFlJejNjdU1VMXpsb3BKeGtjenlIcDFJL2xVcWkwK0dQb3VCanBqYWtzdkRsdE5QSk9aWmdYSllnRVkrbFN6YmVHZnB0RmhrREkySGNLMkdDQnR2VWxYaHEyemd5VEtldTVINGJWbitqbHBnL2F6NDk0L0txd2krTUVuYnc2VTZhRDdWK3c1aUIyYmRCbndwMEhEbHBqUGJ6bkhka2JmaFhXMzBtQ3dtTWtja2pFakJERVlIVHdIamdVRzU1QTQ1ZVlkK2NaLzEvNzFvWHlwSVVxMiszVTQvMXY4YTZFRmlBRDdQZUNEbnIxcldRTUdIczV5TTV4OGYrVkIwaWN4bkNIZGpndVJ6ZjZIV3BoeEhJVHdsb3pqbVVFTGtFZjNPK29jaFVmWmxTTTVHMndQOEFyTlM3aVovL0FJUzBRZ2s4d0h4OWlnaXF1eXVHRGtNT2hCNmU2bSsvc0JNcGtoQUVneVNnR0ZmM2VCK3RLUXg5bzVHMk90YjU1d1ZCTzQ2MEVNdkpwWU96RXZNbVg1R1R2QUlOTWswbkxDa0ErNkFDU0RuTlQvVWRKZzFPTUpKN0VpYkNWUnY3ajVWRkp1RzVMZVF4dXpIQjJaUnN3OFJ0VXMyNlk1K3NzbjAyeEg3TVkrbEtJbFBObk85TzF0dy9IMmE4enljM2Z1TUNsUTBLM0EvV3krZU1WWE14dkt5cGhUVDNvZDlPdHRNaG5rS0YxeWhZNE8zaFhHYlNiWkdSV21sSE41ak5LYld5aXQxSVdTVGxmY2x0K2c4cUJ6aXVDMDZNWGtqbUI5bVdKK1YxejRFVllPajYzclN3a3oyMFdvUkQ3clJuc3BjWUdCeS9kUGZ2a0dxNnQzQ01DUU4vTDhLbk9nM2I4MjhtQXdJVXQreHQzZTdOQktkTjRnMC9VSkNycWJTNVJnaGh1MUtPR1BRTG5aaWZJbW5xbWkzbGpOd1N5eFNGbkdNWVBUdjkrNHAzb0NpaWlnalhFNnMweWdrOGpXNVhIbnpqUDRFMUJlUDUwc3VHVEVuM3BUZ0RmcWVwK1cxVDdYNWd1b1dzTHFBanhzUTU3am5wK0ZWaDZVNUdTMjA2Qm05cG1MRWVBd2NEOGFDTytqNnhNbXVldG5ZUWxVSGp6TWNmVE5XZXRzSDBhL2pQVkdWdmhrMUZ2UjVZTkhwOXRJdy9YenRQMDZCUnlqOFFhbjBVSVByY0lHZTFqUHpGQXhMUDJ0cmJ1K2VTWmV4Y2o5bHh0ekQ4S2NYak52dytrU2pNa2poRlB2cHFzMUUybjNsc3g5cU05b244eFR2cGg5ZnQ3UW5jdzdON3gzMEdVajlXdHJ0QVFSRGJpUElIei9HbXlmN0hoS054MWRtSHpOUFYwT1RUTlJrd1J6RHFmZUthTlZqeHduQUUvWWt5Y1VGR2FuQzFycVZ4R2RzT1NOL0hjZldyU2p2VGU2SGFOekQ3V0JlVnozUGpwOHh0NTFBdUw3VXhYc055QnRNbUNmTmFVY1AzNU9pdkF6WUNTSGxiUFR2K3RCSUh1dldyMkdadnZPTXllOWRqOUtmZURnVHhMWXR1VjdiYnkyTlEvVG05WXVwQzJ3UUZ2aWV2MHFjOEZBSFdiWTQyN1lFZkkwRmc2bmd4emc3N0FnZUpHLzhBS283YjRPa3U0VDdNb1dZamJtR09ueDZlNFV1NGgxU08ya25RRWN5akh4d0RUUGFYZ3V1Rkw0aHdJNHc0YkdOdHM0OHNENjBGUDhQeG05NHZ0cEpQYkFtTXplNFpQNVZkVm5iOW5ZV2hJM0I3VDRtcXo5R3RpTG5VYjJZNHlrS3hqL2pPK1BsVnZYRVlqVUFEQUEyOHFCazFGdlUrSlVtNkpLTW56RFZ0WU42cGVYbG9NZTE5ejNWbmlHTXZhMjF5QWVkY0thNE0vTk5hWGlBL2RBZWdmSUxZUm16aC9jR2NEdXBCWVplODFOaDNoZ1BoVDVibFpabzVWNzk4MHk2WkdSZTNhSHZsYjhhQ3ErTGJjU2FkSytEenhTQnMvR21UZy9VUFZkUW50MlljazBlNDh4MHFaNjViQ1VYMXZnRG1EZGZMSnF0Tk1mc05YakIyM0ttZ21WNWRNOHp4ZysyUUZCODg3VllQbzJCL1R0enpkZlZnUC9XdFZiTElFMUszTEhibUI2MWFYbzBmdE9JTHR1NHdELzhBTmFDS2FReVhXdDJ1UnRQZkZpUEhMWStnRlRuV3JneGFaS3g2NEpOVjd3UGROZmEvYnRLQUNzMDJBUDdwYkIvQ3BWeFBkbjlEdTJjY3lFMEZPYTlmOHR0S0FEenMzS0NQUC8ycUdrbGpudk5URFVMZUs4dG93eFZUejh6bnZJR2FRTERaMjQ1WUlBVy9mZmNtcEpJM2xuY3BKZmpscFRHM3NXbExjcDVzZ0h2cGNiZ3lFQW5wVGZmTWlSY29VYzNmU3pUcmZ0OU9TNFJBNTVpckR3eFZZT09tYW0xck1WNXRtNjFNbDFOWHNobjkzQkhmVUJFUDJvNW9nUGhVczBWclVxaXZiSVNUam1id29GdG8yL01Ua0hwVjU2ZmR4UVdEVFNON0tybmYzYjFVNlBvNndxb3RvUnlqZnI3UnJoclBHTTM2UDlVZ2ZCWVlPTzRlRkJIT0kxdGRVbXVXa1FNclNzeW53R1NhbWZCVmcwdm9QMVcwdCtkajZ6TVJqcnNVWS9TcXd2NzFsanhra21yajlGQTUvUmpjcXgyZTdtQko4d2dvSXBwRUhKcHNkeE12SzBqZlpMayswcDN6VHNwQU93N2hqek5NcVN1bW9pemtsYVZJQ1ZRRTdBS2U2bjhLckJteGhldWU3RkJqN294Z2sxaFpjdnlZSkFIVUdzeVJNRUxad2NaNVNLNTRPRHNjK1kvblFkK2R1aUhiNTFnRDJjWVB4RzljVWZBMlBYNFYwVml3emdzZS9Cb0FuR1FUeTR6Zy93QXF3VGhCdm5JNm5yOHFDZmNNYmN0YUFnRTV4bkI2MEdnNU04ekFnWS8wUGxYTW9TZnZnSGJyMThmeStWZE9YMmxBR1d5ZDY1OHc2a0gzWW9NdkNjOHlqR01mRDRWTHVJRlljSTZHR1BQeXF2TnQ5NzdPb2h6OXhiYnI0VktlSjc0V1hDL0RuTS9La3pDTWhoMSt6L0NnaXVPYlBOakhjTWRhMC9heHk4dWVnOGE3elFZNW5CQ2dmUEZKK1ZTVkkzeDMwR1ZsSDNOeGtlRmRTQThaamtCZFNjanhYekZDQk00T0NCMXdkeldIQWRSM1p4MzBDQ2Uza3R4a01YakoyZm9QY2ZDa3JTa0hMTm5hbmpsSlU1WEtzTjg5Q0tSWGVuaFVhYTN6MmY3UzR5VndOL2hRSkJjY25LTUFIdXJET25VYjRwT010c3B3TTV6L0FLOHEyRGN2VEhUT1Nlb0hoUUxyTzJrbmtRUSswVGpZSDRWTXRJMHk0aWdMU3pyR0NRQ3JibkgralVRc3B1eVFnQTV4MXowMzYvaFRzTlRsN1BzNHBlVlJsY0U5VHRRV0ZhV2lKTmJzMDZIMmc3RUlSa2dnZnpxUVZWT2hheGQvcExUb2VkaWhrVUU1OFdXcldvQ2lpaWdoM0Z0NExmWDlJUnNGU0dJQjhTY2Z6cXR2U3dXL1M5Z0dPY3dNMk0vM3F1KzYwdXh2YmlHNHVyV09hYUQ5VTdqZFBkU0xVT0ZOQjFhVkpOUTBtMnVYUmVWV2tCSkF6bkhXZ2luQittbTAwVzBSd2N4VzZyN3MrMGZ4YW5sWEVWekdjYlp3YWtVZGpheElFamdSVkFBQUE4TmhXRHA5bVRrMjZFMEZkbFRZNjJ5SFpYT0Q3alMvU3Y4QVk3MldJNTVHSklQdnFZVGFOcHR4SUpKcktKM0hSaURtdGhwVmdHREMwaXlPL0JvR1BWSS82a3ZQN3cvblRYY0tINFptSVhPQUdGVFY3TzJraU1Ud295SHFwNkd1UTBxd0Z1YmNXa2ZZa1lLWU9LRHoxeGRidE5wSWwzUFpPQUFPNFkzcU84T3lyL3ROdXgrOE9ZZWZqWHBtYmhIaDY0aWFLYlI3VjQyKzhwQndmeHBKRjZQZUVJSDU0dUhyRkd4aklWdnpvS0cwMlpvN3U0UW5ydHZWaThHNUd0V0FBeURMa240R3B3dkF2Q3F1WFhRYk1NVGtubGI4NmNMWFFkS3NwVWt0ckNHSjBPVlpRY2o4YUN0ZU03a3J4UmZRSzJBM0psZkU4b29VVFdmQytyUWNvN0pyQ1YyYi93QzZRUjlLc2U2NGMwYTl2R3ZMblRiZVc0WWdtUmdja2dZSGY1Q3QzMEhTcExlV0JyQ0V4U3J5eUlRY01QQTcwRldlaVcwUHF0OWRzdjJaa1ZRM2p5Zy8vd0NoVmdTL2FsaFRwcDJoYVZwTnMxdnA5aERiUXMzT1VqQkFKOGV2a0tVK3BXMmM5Z21hQ0xUeENhMmt0bXpuSkswMGFhQ3lTVzdkVU93cWZtd3RHZm1OdWhieHJrbWs2ZkhJMGlXa1N1M1VnSGVnYU5ObTVVQ01jWTJGSkxST1RYTGxjZFJ6VkpsMCswUTVXM1FIcnRRTlB0Qk9aaGJwMnBHQzNmaWdxSFhDWXRWdUF3TzVZVlZHclF0WmF0SU1FZTJHRmVxcmpoelJycVF5VDZiYnlPM1ZtQnlmeHBCYzhBOEpYa25hWEhEOWxJL1RMS2Z6b1BQRjVNWHU3WmxCUE1QNVZhdm9tbVY5WnVWTEF5QzNHUjRlMnRUUmVCT0ZWWkdYUWJJR1A3cDVUdCtOTGRNNGMwYlJydVM3MDNUWUxXNGxYbGVTTUVGaG5PT3ZpQWFEejk2UGJpNFhpMlZDVjdPRkxsK200M1A1MDljZGE5RGFXeHRZMlZwaUNHVWZzOUt0Mno0SzRhMCs0ZTR0TkZ0SVpuQkRPaW5KQjY5L2ZYSzU0QjRUdkpXa3VkQXNwWFk1TE1HSkorZEI1WmVSekdNbmRxd3VVeXhIUVorTmVvditqamczL3dBTjJIOExmblFmUnp3YVFRZUhMREI2K3kzNTBIa3FWbmxiY2UrcFJ3NE96MDREbFB0WlA0MTZLLzZNK0NmL0FBenAvd0RDMzUwcGg0QzRUdDBDUmFCWklvNkFLMzUwSG5xUzM5ck9EV1VrbGpHRkdLOURuZ25oZzlkRHMvNFQrZFkvb053di91S3ovaFA1MEhuczNFaWpkalNOM1krMWs1ODY5SG5nVGhWdXVnMlIvd0NGdnpyVThBOEpucncvWmZ3dCtkQjVjdW5hV2MrVzFYbjZObU52Nko3aHlOMXZITy8rS09wWi93QkhQQjJjL3dCSExEK0Z2enAzczlDMHV3MDF0T3RMQ0dHelppelFvRHlrbkcvWHlIeW9LVTFGUmFjWVhLdi9BTnBLV0JBMnczaFQxRTNNb3gwWFlaNmJISDhxc3E0NFcwSzZuN2VmU3JhU1hBSE93T2NaejQxMFRoN1I0MTVWMDZBTDRZUGpueG9LemxZeUFuQjJIK3Mxd0xkWFpXejRuWWtlWXEwMjRkMFp1dW13SDRIODZ4L1J6UnM1L1JzR2NZNkg4NkNxbFp6azVPRDM0N3ZBVjNMbGM4cnRrZXlEamIzMVozOUc5Ri8zYkI4aitkQjRiMFU5ZE50K21PaC9PZ3E1bUhRNUoyMno4cTJKQzdnRW56cTBEdzVveElKMDIzeU44NFA1MWdjT2FNQmdhYkJqM0g4NkNyMkF4bkJ5ZkRwV2tudDU3Z1J1ZkNyVEhEZWlnQURUYmZBNmJIODZEdzNvcE9UcHR2OEFJL25RVk5saVNDMmNIT01lRk92cEhCSEFYRFJ6dXJxYy93RGwxWVo0YTBRbkoweTN6N2orZGRiN1F0SzFLemhzNzJ3aG50NGYxVWJnNFRiRzIvaFFVenBlcEhWTE5lWVlsanh6QURxT2xLRUdIOGo0VmFkdHdmdzdac1d0dEh0WWkyeEtnNy9qWFgrakdoNHgraTdmSHVQNTBGVTU1R0tnTVQxSUhkVzRKS2hnblRwdGpOV24vUmpRL3dEZGR2OEFJL25XMzlHOUcvM2JiL0kvblFWZW9WUGFiMmxHQmcvNjZWaU15eG9Xa0lEQmlWWkQxWFBzOWZ4cTB2Nk9hTi91MjMrUi9Pc0hoelJqMTAyMytSL09ncVc1MHRMbFRMYkJJNVd6elJqbzNtRDNlNm1ZeE1qbm5SZ1ZQdEJ0aU1WZW45SGRIMi9xMjMyOGorZGFTOE1hSE8vUExwZHM3WXhrZzUrdEJTcUtwQUJCSTZEQjdqWFJuWitYbUJHQ0Q0K05YSC9SUGgvL0FIUmEvd0FKL09nOEo2QWV1a1d2eVA1MEZWNk5NejY1cGlndG4xbU1IdysrS3UwOWFhSWVGOUNnbWptaTB1M1NTTmc2TUFjZ2pvZXRPOUFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUWYvL1omcXVvdDsgYWx0PSZxdW90O0lsIHR1byBicm93c2VyIG5vbiAmZWdyYXZlOyBjb21wYXRpYmlsZSBjb24gbGUgaW1tYWdpbmkgaW5jb3Jwb3JhdGUsIG1pIHNwaWFjZSZxdW90Oy8+DQo8aDM+Rm9nbGkgZGkgU3RpbGU6PC9oMz4NCjxwPlF1ZXN0byBtb2R1bG8gZnVuemlvbmEgYW5jaGUgY29uIGkgZmxvZ2xpIGRpIHN0aWxlLCBzZSBzaSB1c2EgaWwgdGFnIHtjbXNfc3R5bGVzaGVldH0gbmVsIG1vZGVsbG8gZGVsbGEgcGFnaW5hLiBQb2ljaCZlYWN1dGU7IGxhIHNpbnRhc3NpIGRpIHNtYXJ0eSAmZWdyYXZlOyBsZWdnZXJtZW50ZSBkaXZlcnNhIGFsbCYjMDM5O2ludGVybm8gZGVsIHRhZyB7Y21zX3N0eWxlc2hlZXR9IHNpIHV0aWxpenphIGlsIG1vZHVsbyB1c2FuZG8gaSBkZWxpbWl0YXRvcmkgIFtbIGUgXV0uICBPdnZlcm86IDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz5kaXYuaGVhZGVyIHsgYmFja2dyb3VuZDogdXJsKFtbQ0dTbWFydEltYWdlIHNyYz0mIzAzOTt1cGxvYWRzL3BpY3R1cmUuanBnJiMwMzk7IG5vdGFnPTFdXSk7IH08L2NvZGU+PC9wPg0KPHA+QSBjYXVzYSBkZWwgZmF0dG8gY2hlIGkgZm9nbGkgZGkgc3RpbGUgdmVuZ29ubyBnZW5lcmF0aSBkb3BvIGxhIGxvcm8gbW9kaWZpY2F0aSBlIG1lbW9yaXp6YXRpIG5lbCBmaWxlc3lzdGVtIG5vbiB2aSAmZWdyYXZlOyBhbGN1biBtb2RvIHBlciBkZXRlcm1pbmFyZSBkdXJhbnRlIGxhIHJpY2hpZXN0YSBxdWFsZSBicm93c2VyIHN0YSByaWNoaWVkZW5kbyBpbCBmb2dsaW8gZGkgc3RpbGUsIHBlcmNpJm9ncmF2ZTsgbCYjMDM5O2luY29ycG9yYW1lbnRvIHZlcnImYWdyYXZlOyBlZmZldHR1YXRvIGJhc2FuZG9zaSBzdHJldHRhbWVudGUgc3VsbGEgcmlsZXZhemlvbmUgYW50aWNpcGF0YSBkZWwgcGFyYW1ldHJvIG5vZW1iZWQuIFNlIHNpICZlZ3JhdmU7IGRlY2lzbyBkaSBpbmNvcnBvcmFyZSBsZSBpbW1hZ2luaSBkaXJldHRhbWVudGUgbmVpIGZvbGdpIGRpIHN0aWxlLCBwb3RyZWJiZSBlc3NlcmUgbmVjZXNzYXJpbyBhZ2dpdW5nZXJlIGFzc2lzdGVuemEgYWRkaXppb25hbGUgcGVyIGkgZm9nbGkgZGkgc3RpbGUgcGVyIGkgYnJvd3NlciBub24gY29tcGF0aWJpbGkgY29uIGxlIGltbWFnaW5pIGluY29ycG9yYXRlLiBPdnZlcm86ICBJRTYuPC9wPg0KPGgzPkVsYWJvcmF6aW9uZSBhdXRvbWF0aWNhPC9oMz4NCjxwPlF1ZXN0byBtb2R1bG8gaW5jbHVkZSB1biB0YWcgZGkgYmxvY2NvIHNtYXJ0eSBjaGlhbWF0byA8Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e2Nnc2lfY29udmVydH08L2NvZGU+IGNoZSBwdSZvZ3JhdmU7IHJhY2NoaXVkZXJlIHVuIGJsb2NjbyBodG1sLCBvIGFsdHJpIHRhZyBzbWFydHkgcGVyIGNvbnNlbnRpcmUgbCYjMDM5O2VsYWJvcmF6aW9uZSBhdXRvbWF0aWNhIGRlbGxlIGltbWFnaW5pLiBRdWVzdG8gdGFnIHB1Jm9ncmF2ZTsgZXNzZXJlIHVzYXRvIGluIHF1ZXN0byBtb2RvOiAoYWQgZXNlbXBpbyk6PC9wPg0KPHByZT48Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e2Nnc2lfY29udmVydH17Y29udGVudH17L2Nnc2lfY29udmVydH08L2NvZGU+PC9wcmU+DQo8cD5RdWVzdG8gcGVybWV0dGVyJmFncmF2ZTsgYWdsaSB1dGVudGkgZGkgaW5jbHVkZXJlIGltbWFnaW5pIG5lbGxlIHBhZ2luZSB1c2FuZG8gaSBub3JtYWxpIHN0cnVtZW50aSB3eXNpd3lnLCBwcm9jZXNzYW5kb2xlICBlZCBpbmNvcnBvcmFuZG9sZSBhdXRvbWF0aWNhbWVudGUgbmVsbGEgcGFnaW5hIHV0aWxpenphbmRvIGxhIG1hZ2lhIGRpIHtDR1NtYXJ0SW1hZ2V9LiAgRXNlbXBpbzogVmVkaSBpbCBzZWd1ZW50ZSBjb2RpY2U6PC9wPg0KPHByZT48Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e2Nnc2lfY29udmVydCBmaWx0ZXJfZ3JheXNjYWxlPTEgZmlsdGVyX3dhdGVybWFyaz0xfXtjb250ZW50fXsvY2dzaV9jb252ZXJ0fTwvY29kZT48L3ByZT4NCjxwPklsIGNvZGljZSBxdWkgc29wcmEgY2F0dHVyZXImYWdyYXZlOyB0dXR0aSBpIHRhZyBpbW1hZ2luZSwgZSBsZSBjb252ZXJ0aXImYWdyYXZlOyBpbiBzY2FsYSBkaSBncmlnaW8sIHF1aW5kaSBhcHBsaWNoZXImYWdyYXZlOyBsYSBmaWxpZ3JhbmEgKHNlY29uZG8gbGUgaW1wb3N0YXppb25pIHByZXNlbnRpIG5lbCBtb2R1bG8gQ0dFeHRlbnNpb25zKS4gVHV0dGkgaSBwYXJhbWV0cmkgZGlzcG9uaWJpbGkgbmVsIHRhZyA8Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e0NHU21hcnRJbWFnZX08L2NvZGU+IHNvbm8gZGlzcG9uaWJpbGkgaW4gcXVlc3RvIHRhZyAocGVyIGxhIHNjYWxhdHVyYSBkZWxsZSBpbW1hZ2luaSBlY2MuKS4gSW4gcGkmdWdyYXZlOywgc29ubyBzdGF0aSBpbnRyb2RvdHRpIGR1ZSBudW92aSBwYXJhbWV0cmk6IDxzdHJvbmc+bWF4X3dpZHRoPC9zdHJvbmc+IGUgPHN0cm9uZz5tYXhfaGVpZ2h0PC9zdHJvbmc+IGNoZSBwb3Nzb25vIGVzc2VyZSB1c2F0aSBwZXIgaW1wb3N0YXJlIGxhIGdyYW5kZXp6YSBtYXNzaW1hIGRlbGxlIGltbWFnaW5pLjwvcD4NCjxkaXYgc3R5bGU9JnF1b3Q7bWFyZ2luLWxlZnQ6IDNlbTsmcXVvdDs+PHN0cm9uZyBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz5Ob3RhOjwvc3Ryb25nPg0KPHA+UXVlc3RvIHRhZyBhbmFsaXp6YSBpbCBjb250ZW51dG8gSFRNTCBjb21wcmVzbyB0cmEgaSB0YWcgZGkgaW5pemlvIGUgZmluZSBwZXIgdHJvdmFyZSBpIHRhZyA8aW1nPi4gUXVpbmRpIGdlbmVyZXImYWdyYXZlOyB1biBvdXRwdXQgSFRNTCBzaW50YXR0aWNhbWVudGUgdmFsaWRvIHBlciBpbCBzb3R0b2luc2llbWUgZGkgY29kaWNlIHByZXZpc3RvLiAgUGVydGFudG8gJmVncmF2ZTsgaW1wb3J0YW50ZSBjaGUgaWwgZnJhbW1lbnRvIGRpIEhUTUwgcGFzc2F0byBhbCB0YWcgZXNzZXJlIGludGF0dG8gZSBpbCBwaSZ1Z3JhdmU7IHZpY2lubyBwb3NzaWJpbGUgYWkgdmFsaWRlLiBQZXJ0YW50byAmZWdyYXZlOyBpbXBvcnRhbnRlIGNoZSBpbCBmcmFtbWVudG8gZGkgSFRNTCBwYXNzYXRvIGFsIHRhZyBzaWEgaWwgcGkmdWdyYXZlOyBpbnRhdHRvIGUgdmFsaWRvIHBvc3NpYmlsZS4gIDxzdHJvbmc+VXNhcmUgY29uIGNhdXRlbGEuPC9zdHJvbmc+DQo8L2Rpdj4NCjxoMz5Bc3Npc3RlbnphPC9oMz4NCjxwPlF1ZXN0byBtb2R1bG8gbm9uIGluY2x1ZGUgYXNzaXN0ZW56YSBjb21tZXJjaWFsZS4gQ29tdW5xdWUsIHNvbm8gZGlzcG9uaWJpbGkgbnVtZXJvc2Ugcmlzb3JzZSBkaSBhaXV0bzo8L3A+DQo8dWw+DQo8bGk+UGVyIGwmIzAzOTt1bHRpbWEgdmVyc2lvbmUgZGkgcXVlc3RvIG1vZHVsbywgRkFRcywgbyBwZXIgc2VnbmFsYXJlIHVuIEJ1ZyBvIHBlciBhY3F1aXN0YXJlIGFzc2lzdGVuemEgY29tbWVyY2lhbGUsIHNlaSBwcmVnYXRvIGRpIHZpc2l0YXJlIGwmIzAzOTtob21lIHBhZ2UgZGVsIG1vZHVsbyBkaSBjYWxndXkgYSA8YSBocmVmPSJodHRwOi8vY2FsZ3V5MTAwMC5jb20iPnRlY2hjb20uZHluZG5zLm9yZzwvYT4uPC9saT4NCjxsaT5VbHRlcmlvcmkgZGlzY3Vzc2lvbmkgc3UgcXVlc3RvIG1vZHVsbyBwb3Nzb25vIGVzc2VyZSB0cm92YXRlIG5laSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkZvcnVtIGRpIENNUyBNYWRlIFNpbXBsZTwvYT4uPC9saT4NCjxsaT5MJiMwMzk7YXV0b3JlLCBjYWxndXkxMDAwLCBwdSZvZ3JhdmU7IGVzc2VyZSByYWdnaXVudG8gc3Blc3NvIG5lbCA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPmNhbmFsZSBJUkMgQ01TPC9hPi48L2xpPg0KPGxpPkluZmluZSwgcHUmb2dyYXZlOyBhbmNoZSBkYXJzaSBjaGUgbCYjMDM5O2F1dG9yZSByaXNwb25kYSBhZCB1bmEgcmljaGllc3RhIGRpcmV0dGEgdmlhIGVtYWlsLjwvbGk+ICANCjwvdWw+DQo8aDM+UmVxdWlzaXRpPC9oMz4NCjxwPlBlciBsYSBtYW5pcG9sYXppb25lIGRlbGxlIGltbWFnaW5pLCBxdWVzdG8gbW9kdWxvIGZhIGxhcmdvIHVzbyBkZWxsYSBsaWJyZXJpYSBHRCBwZXIgbCYjMDM5O2VsYWJvcmF6aW9uZSBkZWxsZSBpbW1hZ2luaS4gIEluIGFnZ2l1bnRhLCBpbCBwbHVnaW4ge2Nnc2lfY29udmVydH0gdXNhIGluIG1vZG8gZXN0ZXNvIGxlIGNsYXNzaSBzaW1wbGV4bWwgIGUgWE1MRG9tIHByb3ByaWUgZGkgcGhwLiBQb3Nzb25vIGVzc2VyZWNpIGFsdHJpIHJlcXVpc2l0aSBzdXBwbGVtZW50YXJpLiBJbiBjYXNvIGRpIGVycm9yaSwgYXNzaWN1cmF0aSBjaGUgbGEgc2VnbmFsYXppb25lIGRlZ2xpIGVycm9yaSBzaWEgYWJpbGl0YXRhLCBlIGRpIGF2ZXIgYW5hbGl6emF0byBpIHR1b2kgZmlsZSBkaSBsb2cuIGRlZ2xpIGVycm9yaS48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwOCwgUm9iZXJ0IENhbXBiZWwgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPjxjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPg0KPHA+SG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkDQphcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUNCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMNCk1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiANCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPg0KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQpidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCk9yIHJlYWQgaXQgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5vbmxpbmU8L2E+PC9wPic7CiRsYW5nWydpbmZvX2FsaWFzZXMnXSA9ICdHbGkgYWxpYXMgcG9zc29ubyBlc3NlcmUgdXNhdGkgbmVsIHRhZyBDR1NtYXJ0SW1hZ2UsIGRhbGwmIzAzOTtvcHppb25lIGFsaWFzMSBhbGwmIzAzOTthbGlhczUsIHBlciBjb21iaW5hcmUgdHJhIGxvcm8gb3B6aW9uaSB1c2F0ZSBkaSBmcmVxdWVudGUnOwokbGFuZ1snaW5mb19jcm9wdG9maXRfZGVmYXVsdF9sb2MnXSA9ICdTcGVjaWZpY2FyZSBsYSBwb3NpemlvbmUgcHJlZGVmaW5pdGEgZGEgY3VpICZxdW90O1JpdGFnbGlhcmUgZWQgQWRhdHRhcmUmcXVvdDs7IGF2ciZhZ3JhdmU7IGVmZmV0dG8gc3UgdHV0dGUgbGUgb3BlcmF6aW9uaSBkaSByaXRhZ2xpbyBlZCBhZGF0dGFtZW50byBzZSBub24gZGl2ZXJzYW1lbnRlIHNwZWNpZmljYXRvIG5lbCBwYXJhbWV0cm8gZGkgcG9zaXppb25hbWVudG8gZGVsbCYjMDM5O2F0dHJpYnV0byBkZWwgZmlsdHJvIGZpbHRlcl9jcm9wdG9maXQuIExhIHBvc2l6aW9uZSBwcmVkZWZpbml0YSAmZWdyYXZlOyAmcXVvdDtjZW50ZXImcXVvdDsnOwokbGFuZ1snaW1hZ2VfdXJsX2hhc2NhY2hlZGlyJ10gPSAnTCYjMDM5O1VSTCBxdWkgc29wcmEgdGllbmUgY29udG8gZGVsbGEgY2FydGVsbGEgY2FjaGUgKF9DR1NtYXJ0SW1hZ2UpJzsKJGxhbmdbJ2ltYWdlX3VybF9wcmVmaXgnXSA9ICdQcmVmaXNzbyBVUkwgSW1tYWdpbmUnOwokbGFuZ1snaW5mb19jYWNoZV9hZ2UnXSA9ICdTcGVjaWZpY2FyZSBsJiMwMzk7ZXQmYWdyYXZlOyBtYXNzaW1hIGRpIHVuIGZpbGUgKGluIGdpb3JuaSkgcHJpbWEgY2hlIHNpYSByaW1vc3NvIGUgcmlnZW5lcmF0by4gUXVlc3RvICZlZ3JhdmU7IHV0aWxlIG5lbCBjYXNvIGluIGN1aSBzaWFubyBzdGF0aSBtb2RpZmljYXRpIGFsY3VuaSBkZWkgcGFyYW1ldHJpIHVzYXRpIG5lbGxhIGdlbmVyYXppb25lIGRlbGxlIGltbWFnaW5pLCBvcHB1cmUgcGVyIGNvbnRyb2xsYXJlIGxhIHF1b3RhIGRpIHNwYXppbyBkaXNjbyB1c2F0by4gSW1wb3N0YW5kbyAwIGxhIGNhbmNlbGxhemlvbmUgYXV0b21hdGljYSBkZWwgZmlsZSAmZWdyYXZlOyBkaXNhYmlsaXRhdGEnOwokbGFuZ1snaW5mb19lbWJlZF9tb2RlJ10gPSAnUXVlc3RhIHNlbGV6aW9uZSBkZXRlcm1pbmEgaWwgbW9kbyBpbiBjdWkgaWwgdGFnIHtzbWFydGltZ30gZ2VuZXJlciZhZ3JhdmU7IGwmIzAzOTtvdXRwdXQuIFNlIHZpZW5lIHNlbGV6aW9uYXRvICZxdW90O25vbmUmcXVvdDsgbm9uIHZlcnImYWdyYXZlOyBlc2VndWl0YSBuZXNzdW5hIGluY29ycG9yYXppb25lIGRlbGwmIzAzOTtpbW1hZ2luZS4gU2VsZXppb25hbmRvICZxdW90O3NtYXJ0JnF1b3Q7IGlsIHNpc3RlbWEgZGVjaWRlciZhZ3JhdmU7IGluIGJhc2UgYWxsYSBncmFuZGV6emEgZGVsbCYjMDM5O2ltbWFnaW5lLCBhbCB0aXBvLCBlZCBhbCBicm93c2VyIGNoZSBzdGEgcmljaGllZGVuZG8gbCYjMDM5O2ltbWFnaW5lLiBMZSBhbHRyZSBvcHppb25pIGluY2x1ZG9ubyBzZW1wcmUgbCYjMDM5O2luY29ycG9yYW1lbnRvIGJhc2F0byBzdWxsYSBncmFuZGV6emEgZGVsbCYjMDM5O2ltbWFnaW5lLCBvIGlsIHRpcG8gZGkgaW1tYWdpbmUuJzsKJGxhbmdbJ2luZm9fZW1iZWRfc2l6ZWxpbWl0J10gPSAnU2UgbCYjMDM5O29wemlvbmUgZGkgaW5jb3Jwb3JhbWVudG8gJmVncmF2ZTsgZGV0ZXJtaW5hdGEgZGFsbGEgZ3JhbmRlenphIGRlbGwmIzAzOTtpbW1hZ2luZSwgc3BlY2lmaWNhcmUgbGEgZ3JhbmRlenphIG1hc3NpbWEgZGVsbGUgaW1tYWdpbmkgZGEgaW5jb3Jwb3JhcmUgKGluICBraWxvYnl0ZXMuIFJhY2NvbWFuZGF0byAzMikuJzsKJGxhbmdbJ2luZm9fZW1iZWRfdHlwZXMnXSA9ICdTZSBsJiMwMzk7b3B6aW9uZSBkaSBpbmNvcnBvcmFtZW50byAmZWdyYXZlOyBkZXRlcm1pbmF0YSBkYWwgdGlwbyBkaSBpbW1hZ2luZSwgc3BlY2lmaWNhcmUgcXVpIGxlIGVzdGVuc2lvbmkgZGVpIGZpbGUgZGEgaW5jb3Jwb3JhcmUsIHNlcGFyYXRlIGRhIHZpcmdvbGEuIFF1ZXN0YSBvcHppb25lIG5vbiBmYSBkaXN0aW56aW9uZSB0cmEgbWFpdXNjb2xlIGUgbWludXNjb2xlLic7CiRsYW5nWydpbmZvX2ltYWdlX3VybF9oYXNjYWNoZWRpciddID0gJ1NlIGxhIHByb3ByaWEgQ0ROIHB1bnRhIGRpcmV0dGFtZW50ZSBhbGxhIGNhcnRlbGxhIGNhY2hlIGRlbGxlIGltbWFnaW5pLCBzaSBwb3RyZWJiZSB2b2xlciBhdHRpdmFyZSBxdWVzdGEgb3B6aW9uZS4nOwokbGFuZ1snaW5mb19pbWFnZV91cmxfcHJlZml4J10gPSAnU3BlY2lmaWNhcmUgbCYjMDM5O1VSTCBkYSBhbnRlcG9ycmUgYSB0dXR0ZSBsZSBpbW1hZ2luaSBnZW5lcmF0ZS4gTCYjMDM5O1VSTCBkaSB1cGxvYWRzICZlZ3JhdmU7IGwmIzAzOTtpbXBvc3RhemlvbmUgcHJlZGVmaW5pdGEsIGNvbXVucXVlIHNlIHNpIGhhIHVuYSBwcm9wcmlhIENETiAobyBkb21pbmkgbXVsdGlwbGkgY2hlIHB1bnRhbm8gYWxsYSBzdGVzc2EgY2FydGVsbGEpLCBzaSBwb3RyZWJiZSB2b2xlciBzcGVjaWZpY2FyZSB1biBub21lIGRpdmVyc28uJzsKJGxhbmdbJ21heF9jYWNoZV9hZ2UnXSA9ICdFdCZhZ3JhdmU7IG1hc3NpbWEgZGVpIGZpbGUgbmVsbGEgY2FjaGUgKGdpb3JuaSknOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdNb2R1bG8gcGVyIENNU01TIHBlciBsYSBnZW5lcmF6aW9uZSBpbnRlbGxpZ2VudGUgZGVsIHRhZyBpbWFnZSc7CiRsYW5nWydtc2dfYWxpYXNlc191cGRhdGVkJ10gPSAnQWxpYXMgQWdnaW9ybmF0aSc7CiRsYW5nWydtc2dfY2FjaGVjbGVhbmVkJ10gPSAnQ2FydGVsbGEgQ2FjaGUgcHVsaXRhLiBSaW1vc3NpICVkIGZpbGUnOwokbGFuZ1snbXNnX2NhY2hlcmVtb3ZlZCddID0gJ0NhY2hlIFJpbW9zc2EnOwokbGFuZ1snbXNnX3ByZWZzdXBkYXRlZCddID0gJ1ByZWZlcmVuemUgQWdnaW9ybmF0ZSc7CiRsYW5nWydub25lJ10gPSAnTmVzc3Vubyc7CiRsYW5nWydvcHRpb25zJ10gPSAnT3B6aW9uaSc7CiRsYW5nWydwYXJhbV9hbGlhcyddID0gJ0lsIHBhbm5lbGxvIGRpIGFtbWluaXN0cmF6aW9uZSBDR1NtYXJ0SW1hZ2UgY29uc2VudGUgbGEgY3JlYXppb25lIGRpIG51bWVyb3NpIGFsaWFzIGRpIGNvbWFuZG8gcGVyIGNvbWJpbmFyZSBpbiB1biB1bmljbyBub21lIGFyZ29tZW50aSB1c2F0aSBkaSBmcmVxdWVudGUuIFBlciB1dGlsaXp6YXJlIHF1ZXN0aSBhbGlhcywgdXNhcmUgdW4gYXJnb21lbnRvIGRlbCBtb2R1bG8gYWxpYXMjIz1hbGlhc19uYW1lLCBjb21lIGFsaWFzMT1mb28gYWxpYXMyPWZvby4nOwokbGFuZ1sncGFyYW1fYWx0J10gPSAnVXNhdG8gbmVsbGEgY3JlYXppb25lIGRpIHVuIHRhZyBpbWcsIHNwZWNpZmljYSBpbCB2YWxvcmUgZGVsbCYjMDM5O2F0dHJpYnV0byBhbHQuIE5vdGE6IHNlIG5vbiBzcGVjaWZpY2F0bywgc2FyJmFncmF2ZTsgYXV0b21hdGljYW1lbnRlIGNhbGNvbGF0byB1biB2YWxvcmUgcGVyIHF1ZXN0byBhdHRyaWJ1dG8gcGVyIGNvbnNlbnRpcmUgbGEgdmFsaWRhemlvbmUgZGVsbGEgbWFnZ2lvciBwYXJ0ZSBkZWkgdGFnIGltZy4gJkVncmF2ZTsgcG9zc2liaWxlIGluaWJpcmUgcXVlc3RvIGF1dG9tYXRpc21vIG1lZGlhbnRlIGlsIHBhcmFtZXRybyAmcXVvdDtub2F1dG8mcXVvdDsnOwokbGFuZ1sncGFyYW1fY2xhc3MnXSA9ICdVc2F0byBuZWxsYSBjcmVhemlvbmUgZGkgdW4gdGFnIGltZywgcGVybWV0dGUgZGkgc3BlY2lmaWNhcmUgdW5hIG8gcGkmdWdyYXZlOyBjbGFzc2kgZGEgaW5jbHVkZXJlIG5lbCB0YWcuIEFkIGVzZW1waW86IGNsYXNzPSZxdW90O2ZhbmN5Ym94LHRodW1ibmFpbCZxdW90Oyc7CiRsYW5nWydwYXJhbV9maWx0ZXJfYmx1ciddID0gJyhxdWFsc2lhc2kpIFNwZWNpZmljYXJlIHVuIHZhbG9yZSBwZXIgcXVlc3RvIHBhcmFtZXRybyBwZXIgYWdnaXVuZ2VyZSB1biBmaWx0cm8gc2ZvY2F0dXJhIGFsbCYjMDM5O2ltbWFnaW5lJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9icmlnaHRuZXNzJ10gPSAnKGludGVybykgQXVtZW50YSBsYSBsdW1pbm9zaXQmYWdyYXZlOyBkZWxsJiMwMzk7aW1tYWdpbmUgZWxhYm9yYXRhIGRlbCB2YWxvcmUgaW50ZXJvIHNwZWNpZmljYXRvJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jb2xvcml6ZSddID0gJyhyLGcsYlssYWxwaGFdKSAtIENvbWUgZmlsdGVyX2dyYXlzY2FsZSAmZWdyYXZlOyBjb211bnF1ZSBwb3NzaWJpbGUgc3BlY2lmaWNhcmUgaWwgY29sb3JlIGVkIGlsIHZhbG9yZSBhbGZhJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jb250cmFzdCddID0gJyhpbnRlcm8pIE1vZGlmaWNhIGlsIGNvbnRyYXN0byBkZWxsJiMwMzk7aW1tYWdpbmUgaW4gYmFzZSBhbGwmIzAzOTtpbnRlcm8gc3BlY2lmaWNhdG8nOwokbGFuZ1sncGFyYW1fZmlsdGVyX2Nyb3AnXSA9ICcocGVyY2VudHVhbGVbLGhfYWxpZ24sdl9hbGlnbl0pIC0gRWZmZXR0dWEgaWwgcml0YWdsaW8gZGVsbCYjMDM5O2ltbWFnaW5lIHNwZWNpZmljYXRhLiBJIHZhbG9yaSBwZXIgaWwgcml0YWdsaW8gc29ubyBzcGVjaWZpY2F0aSBjb21lIHVuYSBsaXN0YSBkaSBwYXJhbWV0cmkgc2VwYXJhdGkgZGEgdmlyZ29sYS4gSWwgcHJpbW8gdmFsb3JlIChyaWNoaWVzdG8pICZlZ3JhdmU7IHVuIGludGVybyBwZXJjZW50dWFsZSBkZWxsYSBncmFuZGV6emEgb3JpZ2luYWxlIGRlbGwmIzAzOTtpbW1hZ2luZS4gSWwgc2Vjb25kbyBlZCBpbCB0ZXJ6byBwYXJhbWV0cm8sIG9wemlvbmFsaSwgc29ubyByZWxhdGl2aSBhIGwsYyxyIChsZWZ0LGNlbnRlcixyaWdodCkgZSB0LGMsYiAodG9wLGNlbnRlcixib3R0b20pIGUgc3BlY2lmaWNhbm8gaWwgcHVudG8gZGVsbCYjMDM5O2ltbWFnaW5lIGRhIGN1aSBpbml6aWFyZSBpbCByaXRhZ2xpby4gRXNlbXBpbzogY3JvcD0zMyxiLHIgcGVyIGVmZmV0dHVhcmUgdW4gcml0YWdsaW8gZGVsMzMlIHBhcnRlbmRvIGRhbCBtYXJnaW5lIGluZmVyaW9yZSBkZXN0cm8gZGVsbCYjMDM5O2ltbWFnaW5lIG9yaWdpbmFsZS4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX2Nyb3B0b2ZpdCddID0gJyhsYXJnaGV6emEsYWx0ZXp6YSxbLHBvc2l6aW9uZV0pIC0gRWZmZXR0dWEgdW4gcml0YWdsaW8gZWQgdW4gYWRhdHRhbWVudG8gZGVsbCYjMDM5O2ltbWFnaW5lIHNwZWNpZmljYXRhLiBUZW50YSBkaSBzY2FsYXJlIGwmIzAzOTtpbW1hZ2luZSBhbGxhIGdyYW5kZXp6YSBkZXNpZGVyYXRhIG1hbnRlbmVuZG9uZSBpbCByYXBwb3J0byB0cmEgbGFyZ2hlenphIGVkIGFsdGV6emEsIHF1aW5kaSBmb2NhbGl6emEgbCYjMDM5O2FyZWEgc2VsZXppb25hdGEgZGVsbCYjMDM5O2ltbWFnaW5lIHNjYWxhdGEuIFBhcmFtZXRyaSBkaSByaXRhZ2xpbyBlZCBhZGF0dGFtZW50byBzb25vIHNwZWNpZmljYXRpIGNvbWUgbGFyZ2hlenphIGVkIGFsdGV6emEgZGVzaWRlcmF0ZSBwZXIgbCYjMDM5O2ltbWFnaW5lIGZpbmFsZSwgaW5zaWVtZSBjb24gdW4gY29kaWNlIChvcHppb25hbGUpIGRpIHBvc2l6aW9uZS4gQ29kaWNpIGRpIHBvc2l6aW9uZSB2YWxpZGkgc29ubyB0bCx0Yyx0cixjbCxjLGNyLGJsLGIsYnIgcmVsYXRpdmkgYWxsZSA5IHBvc2l6aW9uaSBhbGwmIzAzOTtpbnRlcm5vIGRlbGwmIzAzOTtpbW1hZ2luZS4gU2UgdW5hIHBvc2l6aW9uZSBub24gdmllbmUgc3BlY2lmaWNhdGEgdmVyciZhZ3JhdmU7IHVzYXRhIHVuYSBwcmVmZXJlbnphLiBJbCB2YWxvcmUgcHJlZGVmaW5pdG8gJmVncmF2ZTsgJnF1b3Q7YyZxdW90OyBwZXIgcml0YWdsaWFyZS1lZC1hZGF0dGFyZSBwYXJ0ZW5kbyBkYWwgY2VudHJvIGRlbGwmIzAzOTtpbW1hZ2luZSBvcmlnaW5hbGUuIFF1ZXN0byBmaWx0cm8gbm9uIGVzZWd1aXImYWdyYXZlOyBpbiBuZXNzdW4gY2FzbyB1biBpbmdyYW5kaW1lbnRvICh1cHNjYWxpbmcpLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfZWRnZWRldGVjdCddID0gJyhuaWVudGUpIEV2aWRlbnppYSBpIGJvcmRpIGRlbGwmIzAzOTtpbW1hZ2luZSc7CiRsYW5nWydwYXJhbV9maWx0ZXJfZW1ib3NzJ10gPSAnKG5pZW50ZSkgQXBwbGljYSB1biByaWxpZXZvIGFsbCYjMDM5O2ltbWFnaW5lJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9mbGlwJ10gPSAnKG1vZGUpIC0gUmlmbGV0dGUgbCYjMDM5O2ltbWFnaW5lIHNwZWNpZmljYXRhLiBTcGVjaWZpY2FyZSAwIHBlciBvcml6em9uYXRsZSwgMSBwZXIgdmVydGljYWxlLCBlIDIgcGVyIHJpZmxldHRlcmUgaW4gZW50cmFtYmUgbGUgZGlyZXppb25pLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfZ3JheXNjYWxlJ10gPSAnKG5pZW50ZSkgQ29udmVydGUgbCYjMDM5O2ltbWFnaW5lIGluIHNjYWxhIGRpIGdyaWdpbyc7CiRsYW5nWydwYXJhbV9maWx0ZXJfbWVhbnJlbW92YWwnXSA9ICcobmllbnRlKSBUZW50YSBkaSBvdHRlbmVyZSB1biBlZmZldHRvICZxdW90O1NjaGl6em8mcXVvdDsnOwokbGFuZ1sncGFyYW1fZmlsdGVyX25lZ2F0ZSddID0gJyhuaWVudGUpIFJlbmRlIGwmIzAzOTtpbW1hZ2luZSBpbiBuZWdhdGl2byc7CiRsYW5nWydwYXJhbV9maWx0ZXJfcGl4ZWxhdGUnXSA9ICcoZ3JhbmRlenphWyxhdmFuemF0b10pIEVmZmV0dG8gcGl4ZWwgc3VsbCYjMDM5O2ltbWFnaW5lLCBzcGVjaWZpY2FyZSB1bmEgZ3JhbmRlenphIGludGVyYSBlZCB1biBib29sZWFubyBvcHppb25hbGUgKGlsIHByZWRlZmluaXRvICZlZ3JhdmU7IGZhbHNlKSBwZXIgYWJpbGl0YXJlIHVuIGVmZmV0dG8gcGl4ZWwgYXZhbnphdG8nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3Jlc2l6ZSddID0gJ3RpcG8sbnVtZXJvWyxudW1lcm9dIC0gUmlkaW1lbnNpb25hIGwmIzAzOTtpbW1hZ2luZSBvcmlnaW5hbGUuIElsIGZpbHRybyBkaSByaWRpbWVuc2lvbmFtZW50byBub24gZWZmZXR0dWEgbmVzc3VuIGNvbnRyb2xsbyBkaSBpbmdyYW5kaW1lbnRvLg0KSSBwb3NzaWJpbGkgdmFsb3JpIHNvbm86DQo8dWw+DQogIDxsaT5wLG51bWVybyAtIEVzZWd1ZSB1biByaWRpbWVuc2lvbmFtZW50byBzZW1wbGljZSBhZCB1bmEgZGV0ZXJtaW5hdGEgcGVyY2VudHVhbGUuIEVzZW1waW86IHJlc2l6ZT1wLDUwIHBlciByaWR1cnJlIGRlbCA1MCUgbGEgZ3JhbmRlenphIG9yaWdpbmFsZTwvbGk+DQogIDxsaT53LG51bWVybyAtIEVzZWd1ZSBpbCByaWRpbWVuc2lvbmFtZW50byBhbGxhIGxhcmdoZXp6YSBzcGVjaWZpY2F0YSAobWFudGVuZW5kbyBpbCByYXBwb3J0byB0cmEgbGFyZ2hlenphIGVkIGFsdGV6emEpLiBFc2VtcGlvOiByZXNpemU9dyw4MCBwZXIgY3JlYXJlIHVuYSBtaW5pYXR1cmEgY29uIGxhcmdoZXp6YSBtYXNzaW1hIGRpIDgwIHBpeGVsLjwvbGk+DQogIDxsaT5oLG51bWVybyAtIEVzZWd1ZSBpbCByaWRpbWVuc2lvbmFtZW50byBhbGwmIzAzOTthbHRlenphIHNwZWNpZmljYXRhIChtYW50ZW5lbmRvIGlsIHJhcHBvcnRvIHRyYSBsYXJnaGV6emEgZWQgYWx0ZXp6YSkuIEVzZW1waW86IHJlc2l6ZT1oLDgwIHBlciBjcmVhcmUgdW5hIG1pbmlhdHVyYSBjb24gYWx0ZXp6YSBtYXNzaW1hIGRpIDgwIHBpeGVsLjwvbGk+DQogIDxsaT5lLG51bWVybyAtIEVzZWd1ZSBpbCByaWRpbWVuc2lvbmFtZW50byBpbXBvc3RhbmRvIGlsIGxhdG8gbWFnZ2lvcmUgYWwgdmFsb3JlIHNwZWNpZmljYXRvIChtYW50ZW5lbmRvIGlsIHJhcHBvcnRvIHRyYSBsYXJnaGV6emEgZWQgYWx0ZXp6YSkuIEVzZW1waW86IHJlc2l6ZT1lLDEwMCBwZXIgY3JlYXJlIHVuYSBtaW5pYXR1cmEgaWwgY3VpIGxhdG8gbWFnZ2lvcmUgc2lhIGRpIDEwMCBwaXhlbC4NCiAgPGxpPmMseCx5IC0gRXNlZ3VlIGlsIHJpZGltZW5zaW9uYW1lbnRvIGFkIHVuYSBncmFuZGV6emEgcGVyc29uYWxpenphdGEgKHNlbnphIG1hbnRlbmVyZSBpbCByYXBwb3J0byB0cmEgbGFyZ2hlenphIGVkIGFsdGV6emEpLiBFc2VtcGlvOiBmaWx0ZXJfcmVzaXplPWMsNTAsNzUgcGVyIGNyZWFyZSB1bmEgbWluaWF0dXJhIGRpIDUweDc1IHBpeGVsLjwvbGk+Lg0KPC91bD4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3Jlc2l6ZXRvZml0J10gPSAnKGxhcmdoZXp6YSxhbHRlenphWyxjb2xvcmVbLHRyYXNwYXJlbnphXV0pIC0gRXNlZ3VlIHVuIHJpZGltZW5zaW9uYW1lbnRvIGRlbGwmIzAzOTtpbW1hZ2luZSBzcGVjaWZpY2F0YS4gVGVudGEgZGkgc2NhbGFyZSBsJiMwMzk7aW1tYWdpbmUgYWxsYSBncmFuZGV6emEgZGkgZGVzdGluYXppb25lIHNwZWNpZmljYXRhIG1hbnRlbmVuZG9uZSBpbCByYXBwb3J0byB0cmEgbGFyZ2hlenphIGVkIGFsdGV6emEsIGwmIzAzOTtpbW1hZ2luZSAmZWdyYXZlOyBjZW50cmF0YSByaXNwZXR0byBhbGwmIzAzOTthcmVhIHNwZWNpZmljYXRhIChvcml6em9udGFsbWVudGUgbyB2ZXJ0aWNhbG1lbnRlIGluIGJhc2UgYWwgcmFwcG9ydG8gbGFyZ2hlenphL2FsdGV6emEgZWQgYWxsYSBncmFuZGV6emEgZmluYWxlKSwgZSBjaXJjb25kYXRhIGRhbCBjb2xvcmUgc3BlY2lmaWNhdG8uIEkgY29sb3JpIHBvc3Nvbm8gZXNzZXJlIHNwZWNpZmljYXRpIHBlciBub21lICh2ZWRlcmUgaSBub21pIGRpIGNvbG9yZSBYMTEpLCBvIGNvbiBpbCBmb3JtYXRvIGVzYWRlY2ltYWxlICNubm5ubm4sIG8gY29tZSB2YWxvcmkgcmdiIHNlcGFyYXRpIGRhIDogRXNlbXBpbzogZmlsdGVyX2Nyb3B0b2ZpdD02MDAsNDAwLCNmZjAwMDAuIElsIHZhbG9yZSBzcGVjaWFsZSAmcXVvdDt0cmFuc3BhcmVudCZxdW90OyBwdSZvZ3JhdmU7IGVzc2VyZSBzcGVjaWZpY2F0byBwZXIgZm9yemFyZSB1bm8gc2ZvbmRvIHRyYXNwYXJlbnRlLiBJbCB2YWxvcmUgYWxwaGEgcHUmb2dyYXZlOyB2YXJpYXJlIHRyYSAwIGUgMTI3IHBlciBzcGVjaWZpY2FyZSB2YXJpIGdyYWRpIGRpIHRyYXNwYXJlbnphIGRlbGxvIHNmb25kby4gUXVlc3RvIGZpbHRybyBub24gZXNlZ3VpciZhZ3JhdmU7IGluIG5lc3N1biBjYXNvIHVuIGluZ3JhbmRpbWVudG8gKHVwc2NhbGluZykuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yb3RhdGUnXSA9ICcoYW5nb2xvKSBTcGVjaWZpY2FyZSB1biBhbmdvbG8gaW50ZXJvIChpbiBzZW5zbyBhbnRpb3JhcmlvKSBwZXIgcnVvdGFyZSBsJiMwMzk7aW1tYWdpbmUuIEwmIzAzOTtpbW1hZ2luZSB2aWVuZSBydW90YXRhIHN1bCBzdW8gY2VudHJvLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfcm91bmRlZGNvcm5lcnMnXSA9ICcocmFkaWFsZSkgU3BlY2lmaWNhcmUgdW4gdmFsb3JlIHJhZGlhbGUgaW50ZXJvIChpbiBwaXhlbCkgcGVyIGFycm90b25kYXJlIGdsaSBhbmdvbGkuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl93YXRlcm1hcmsnXSA9ICcobmluZXRlKSwgSW1wb3N0YXJlIGwmIzAzOTthcHBsaWNhemlvbmUgZGVsbGEgZmlsaWdyYW5hIGFsbCYjMDM5O2ltbWFnaW5lIChjb21lIHNwZWNpZmljYXRvIG5lbCBwYW5uZWxsbyBkaSBhbW1pbmlzdHJhemlvbmUgZGkgQ0dFeHRlbnNpb25zICknOwokbGFuZ1sncGFyYW1faGVpZ2h0J10gPSAnVXNhdG8gbmVsbGEgY3JlYXppb25lIGRpIHVuIHRhZyBpbWcsIHNwZWNpZmljYSBpbCB2YWxvcmUgcGVyIGwmIzAzOTthdHRyaWJ1dG8gaGVpZ2h0IC4gTm90YSwgc2Ugbm9uIHZpZW5lIHNwZWNpZmljYXRvIHVuIHZhbG9yZSwgbmUgdmVyciZhZ3JhdmU7IGNhbGNvbGF0byBhdXRvbWF0aWNhbWVudGUgdW5vIHBlciBxdWVzdG8gYXR0cmlidXRvIGluIG1vZG8gY2hlIGxhIG1hZ2dpb3IgcGFydGUgZGVpIHRhZyBpbWcgc2lhbm8gdmFsaWRhdGkuDQogJkVncmF2ZTsgcG9zc2liaWxlIHNvdnJhc2NyaXZlcmUgcXVlc3RvIGNhbGNvbG8gYXV0b21hdGljbyBtZWRpYW50ZSBpbCBwYXJhbWV0cm8gJnF1b3Q7bm9hdXRvJnF1b3Q7LiBRdWVzdG8gcGFyYW1ldHJvIHNhciZhZ3JhdmU7IGlub2x0cmUgdXNhdG8gaW5zaWVtZSBjb24gaWwgcGFyYW1ldHJvICZxdW90O3dpZHRoJnF1b3Q7IHBlciBlZmZldHR1YXJlIHVuIHJpZGltZW5zaW9uYW1lbnRvIGZpbmFsZSBvIHVuIGZpbHRybyBkaSByaXRhZ2xpbyBlZCBhZGF0dGFtZW50byAoYSBtZW5vIGNoZSBub24gc2lhIHN0YXRvIHNwZWNpZmljYXRvIGFuY2hlIGlsIHBhcmFtZXRybyAmcXVvdDtub2F1dG9zY2FsZSZxdW90OyApJzsKJGxhbmdbJ3BhcmFtX2lkJ10gPSAnVXNhdG8gbmVsbGEgY3JlYXppb25lIGRpIHVuIHRhZyBpbWcsIHBlcm1ldHRlIGRpIHNwZWNpZmljYXJlIHVuIGF0dHJpYnV0byBpZCBkYSBpbmNsdWRlcmUgbmVsIHRhZy4gRXNlbXBpbzogaWQ9JnF1b3Q7dHVvaWQmcXVvdDsnOwokbGFuZ1sncGFyYW1fbWF4X2hlaWdodCddID0gJ0FwcGxpY2FiaWxlIHNvbG8gYWwgdGFnICB7Y2dzaV9jb252ZXJ0fSwgcXVlc3RvIHBhcmFtZXRybyBwZXJtZXR0ZSBzaSBzcGVjaWZpY2FyZSB1biYjMDM5O2FsdGV6emEgbWFzc2ltYSBwZXIgbGUgaW1tYWdpbmUgY29udmVydGl0ZSc7CiRsYW5nWydwYXJhbV9tYXhfd2lkdGgnXSA9ICdBcHBsaWNhYmlsZSBzb2xvIGFsIHRhZyAge2Nnc2lfY29udmVydH0sIHF1ZXN0byBwYXJhbWV0cm8gcGVybWV0dGUgc2kgc3BlY2lmaWNhcmUgdW5hIGxhcmdoZXp6YSBtYXNzaW1hIHBlciBsZSBpbW1hZ2luZSBjb252ZXJ0aXRlJzsKJGxhbmdbJ3BhcmFtX25hbWUnXSA9ICdVc2F0byBuZWxsYSBjcmVhemlvbmUgZGkgdW4gdGFnIGltZywgIHNwZWNpZmljYSBpbCB2YWxvcmUgZGVsbCYjMDM5O2F0dHJpYnV0byBuYW1lLic7CiRsYW5nWydwYXJhbV9ub2F1dG8nXSA9ICdOb24gY2FsY29sYXJlIGF1dG9tYXRpY2FtZW50ZSBpIHBhcmFtZXRyaSBwZXIgaWwgdGFnIGltZy4gUXVlc3RvIHB1Jm9ncmF2ZTsgY29tcG9ydGFyZSBsYSBtYW5jYXRhIHZhbGlkYXppb25lIGRlbCBzaXRvIG5lbCBjYXNvIGluIGN1aSBhbGN1bmkgcGFyYW1ldHJpIHJpY2hpZXN0aSAod2lkdGgsaGVpZ2h0LGFsdCkgbm9uIHNpYW5vIHNwZWNpZmljYXRpJzsKJGxhbmdbJ3BhcmFtX25vYXV0b3NjYWxlJ10gPSAnU2Ugc29ubyBzcGVjaWZpY2F0aSBpIHBhcmFtZXRyaSB3aWR0aCBlIGhlaWdodCwgcXVlc3RvIHBhcmFtZXRybyBkaXNhYmlsaXRlciZhZ3JhdmU7IGxhIHNjYWxhdHVyYSBhdXRvbWF0aWNhIGRlbGwmIzAzOTtpbW1hZ2luZS4nOwokbGFuZ1sncGFyYW1fbm9iY2FjaGUnXSA9ICdOb24gcGVybWV0dGUgbGEgbWVtb3JpenphemlvbmUgbmVsbGEgY2FjaGUgZGVsIGJyb3dzZXIgZGVsbCYjMDM5O2ltbWFnaW5lIHJpZGltZW5zaW9uYXRhICh1dGlsZSBpbiBmYXNlIGRpIHN2aWx1cHBvKSwgYWdnaXVuZ2UgdW4gbnVtZXJvIHVuaXZvY28gY29tZSBwYXJhbWV0cm8gZGVsbCYjMDM5O2ltbWFnaW5lIGNoZSBmb3J6ZXImYWdyYXZlOyBpbCBicm93c2VyIGEgbm9uIG1lbW9yaXp6YXJsYSBuZWxsYSBjYWNoZS4nOwokbGFuZ1sncGFyYW1fbm9lbWJlZCddID0gJ0ZvcnphIGxhIG5vbiBpbmNsdXNpb25lIGRlbGwmIzAzOTtpbW1hZ2luZS4gSW5kaXBlbmRlbnRlbWVudGUgZGFsbGUgaW1wb3N0YXppb25pIG5lbCBwYW5uZWxsbyBkaSBhbW1pbmlzdHJhemlvbmUsIGwmIzAzOTtVUkwgZWQgaWwgdGFnIGdlbmVyYXRpIHB1bnRlcmFubm8gYWQgdW4gZmlsZSBzdWwgc2VydmVyLiBOZXNzdW5hIGluY2x1c2lvbmUgKGVtYmVkZGluZykgc2FyJmFncmF2ZTsgZXNlZ3VpdGEnOwokbGFuZ1sncGFyYW1fbm90aW1lY2hlY2snXSA9ICdEaXNhYmlsaXRhcmUgaWwgY29udHJvbGxvIHRlbXBvcmFsZSBkZWkgZmlsZSBuZWxsYSBjYWNoZS4nOwokbGFuZ1sncGFyYW1fbm9yZW1vdGUnXSA9ICdOb24gcGVybWV0dGVyZSBpbCByZWN1cGVybyBkaSBmb250aSBkYSBVUkwgcmVtb3RpJzsKJGxhbmdbJ3BhcmFtX25vcm90YXRlJ10gPSAnTm9uIHRlbnRhcmUgZGkgbGVnZ2VyZSBsZSBpbmZvcm1hemlvbmkgZXhpZiBkYWwgZmlsZSBlIGNvcnJlZ2dlcmUgbGEgcm90YXppb25lIGltbWFnaW5lJzsKJGxhbmdbJ3BhcmFtX25vdGFnJ10gPSAnTm9uIGdlbmVyYXJlIHVuIHRhZyBpbWcsIHNvbG8gbCYjMDM5O3VybCBkZWxsJiMwMzk7aW1tYWdpbmUgbWVtb3JpenphdGEgbmVsbGEgY2FjaGUuIFF1ZXN0byBub24gaGEgYWxjdW4gZWZmZXR0byBzZSBDR1NtYXJ0SW1hZ2UgdmllbmUgdXRpbGl6emF0byBhbGwmIzAzOTtpbnRlcm5vIGRpIHVuIGZvZ2xpbyBkaSBzdGlsZS4nOwokbGFuZ1sncGFyYW1fb3ZlcndyaXRlJ10gPSAnRGlzYXR0aXZhcmUgbGEgbWVtb3JpenphemlvbmUgbmVsbGEgY2FjaGUgZSBmb3J6YXJlIGlsIHJpY2FsY29sbyBkaSB0dXR0aSBpIGZpbHRyaSc7CiRsYW5nWydwYXJhbV9xdWFsaXR5J10gPSAnU3BlY2lmaWNhcmUgbGEgcXVhbGl0JmFncmF2ZTsgZGVsbCYjMDM5O2ltbWFnaW5lIHByb2RvdHRhLiBVbiB2YWxvcmUgdHJhIDAgZSAxMDAuIElsIHZhbG9yZSBwcmVkZWZpbml0bywgc2Ugbm9uIHNwZWNpZmljYXRvLCAmZWdyYXZlOyBkaSA3NS4nOwokbGFuZ1sncGFyYW1fcmVsJ10gPSAnVXNhdG8gZHVyYW50ZSBsYSBjcmVhemlvbmUgZGkgdW4gdGFnIGRpIGltbWFnaW5lIHBlcm1ldHRlIGRpIHNwZWNpZmljYXJlIHVuIGF0dHJpYnV0byBvcHppb25hbGUgcmVsIChpbiBnZW5lcmUgdXRpbGl6emF0byBjb24gZ2xpIGFsYnVtIGRpIHRpcG8gamF2YXNjcmlwdCkuIEVzZW1waW86IHJlbD0mcXVvdDthbGJ1bSZxdW90Oyc7CiRsYW5nWydwYXJhbV9zaWxlbnQnXSA9ICdJZ25vcmFyZSBzaWxlbnppb3NhbWVudGUgZ2xpIGVycm9yaSc7CiRsYW5nWydwYXJhbV9zcmMnXSA9ICdTcGVjaWZpY2FyZSBsJiMwMzk7b3JpZ2luZSBwZXIgbCYjMDM5O2VsYWJvcmF6aW9uZSBkZWxsZSBpbW1hZ2luaSAoc2UgcHJlc2VudGUpIG8gaWwgdGFnIGltZyBnZW5lcmF0by4gTm90YSwgcXVlc3RvIHBhcmFtZXRybyAmZWdyYXZlOyBmbGVzc2liaWxlLCBlIGlsIG1vZHVsbyB0ZW50ZXImYWdyYXZlOyBtb2x0aSBtZXRvZGkgcGVyIHRyb3ZhcmUgaWwgZmlsZSBpbW1hZ2luZSBzb3JnZW50ZSBzdWwgc2VydmVyIHdlYiBjb21lIHNlZ3VlOg0KPHVsPg0KICAgPGxpPiBQcmltYSBjb250cm9sbGEgc2UgaWwgdmFsb3JlIHNyYyBzcGVjaWZpY2F0byBjb3JyaXNwb25kZSBhZCB1biBmaWxlIGVzaXN0ZW50ZSBuZWwgZmlsZXN5c3RlbS48LyBsaT4NCiAgIDxsaT5JbiBzZWd1aXRvLCB2ZXJpZmljYSBzZSBpbCB2YWxvcmUgc3BlY2lmaWNhdG8gcGVyIGlsIHBhcmFtZXRybyBzcmMgJmVncmF2ZTsgdW4gVVJMIGUgaW5pemlhIGNvbiB1cGxvYWRzX3VybCAoY29tZSBzcGVjaWZpY2F0byBuZWwgY29uZmlnLnBocCk8LyBsaT4NCiAgIDxsaT5Qb2ksIHZlcmlmaWNhIHNlIGlsIHZhbG9yZSBzcGVjaWZpY2F0byBwZXIgaWwgcGFyYW1ldHJvIHNyYyAmZWdyYXZlOyB1biBVUkwgZSBpbml6aWEgY29uIHJvb3RfdXJsIChjb21lIHNwZWNpZmljYXRvIG5lbCBjb25maWcucGhwKTwvIGxpPg0KICAgPGxpPlF1aW5kaSwgdmVyaWZpY2Egc2UgaWwgdmFsb3JlIHNwZWNpZmljYXRvIHBlciBpbCBwYXJhbWV0cm8gc3JjICZlZ3JhdmU7IHVuIFVSTCBlIGluaXppYSBjb24gc3NsX3VybCAoY29tZSBzcGVjaWZpY2F0byBuZWwgY29uZmlnLnBocCk8LyBsaT4NCjwvIHVsPg0KICZFZ3JhdmU7IGFuY2hlIHBvc3NpYmlsZSBzdWRkaXZpZGVyZSBpbCBwYXJhbWV0cm8gc3JjIGluIHBpJnVncmF2ZTsgYXJnb21lbnRpLCBpbCBjaGUgJmVncmF2ZTsgdXRpbGUgcGVyIGVzZW1waW8gcXVhbmRvIGlsIHBlcmNvcnNvIGRlbCBmaWxlIGUgaWwgbm9tZSBkZWwgZmlsZSBzb25vIG1lbW9yaXp6YXRpIGluIHZhcmlhYmlsaSBzbWFydHkgc2VwYXJhdGUuICZFZ3JhdmU7IHBvc3NpYmlsZSBzcGVjaWZpY2FyZSBzcmMgY29tZSBzcmMxID0gXCAkIHRoZV9wYXRoIHNyYzIgPSBcICQgdGhlX2ZpbGVuYW1lLiBJbCBzaXN0ZW1hIGFnZ2l1bmdlIGF1dG9tYXRpY2FtZW50ZSB1biAvIHRyYSBvZ25pIGFyZ29tZW50by4gTm9uIHZpICZlZ3JhdmU7IGFsY3VuIGxpbWl0ZSBhbCBudW1lcm8gZGkgcGFyYW1ldHJpIHNyYy4nOwokbGFuZ1sncGFyYW1fc3R5bGUnXSA9ICdVc2F0byBkdXJhbnRlIGxhIGNyZWF6aW9uZSBkaSB1biB0YWcgaW1nLCBwZXJtZXR0ZSBkaSBzcGVjaWZpY2FyZSBnbGkgc3RpbGkgYWx0ZXJuYXRpdmkgcGVyIGlsIHRhZy4gRXNlbXBpbzogc3R5bGUgPSAmcXVvdDtib3JkZXI6IDFweCBzb2xpZCBibGFjazsmcXVvdDsnOwokbGFuZ1sncGFyYW1fdGl0bGUnXSA9ICdTcGVjaWZpY2FyZSB1biBhdHRyaWJ1dG8gb3B6aW9uYWxlIHRpdGxlIHBlciBpbCB0YWcgaW1nLiBFc2VtcGlvOiB0aXRsZT0mcXVvdDtRdWVzdG8gJmVncmF2ZTsgaWwgdG9vbHRpcCZxdW90Oyc7CiRsYW5nWydwYXJhbV93aWR0aCddID0gJ1VzYXRvIGR1cmFudGUgbGEgY3JlYXppb25lIGRpIHVuIHRhZyBpbWcsIHNwZWNpZmljYSBpbCB2YWxvcmUgcGVyIGwmIzAzOTthdHRyaWJ1dG8gd2lkdGguIE5vdGEsIHNlIG5vbiB2aWVuZSBzcGVjaWZpY2F0byB1biB2YWxvcmUsIG5lIHZlcnImYWdyYXZlOyBjYWxjb2xhdG8gYXV0b21hdGljYW1lbnRlIHVubyBwZXIgcXVlc3RvIGF0dHJpYnV0byBpbiBtb2RvIGNoZSBsYSBtYWdnaW9yIHBhcnRlIGRlaSB0YWcgaW1nIHNpYW5vIHZhbGlkYXRpLiAmRWdyYXZlOyBwb3NzaWJpbGUgc292cmFzY3JpdmVyZSBxdWVzdG8gY2FsY29sbyBhdXRvbWF0aWNvIG1lZGlhbnRlIGlsIHBhcmFtZXRybyAmcXVvdDtub2F1dG8mcXVvdDsuIFF1ZXN0byBwYXJhbWV0cm8gc2FyJmFncmF2ZTsgaW5vbHRyZSB1c2F0byBpbnNpZW1lIGNvbiBpbCBwYXJhbWV0cm8gJnF1b3Q7aGVpZ2h0JnF1b3Q7IHBlciBlZmZldHR1YXJlIHVuIHJpZGltZW5zaW9uYW1lbnRvIGZpbmFsZSBvIHVuIGZpbHRybyBkaSByaXRhZ2xpbyBlZCBhZGF0dGFtZW50byAoYSBtZW5vIGNoZSBub24gc2lhIHN0YXRvIHNwZWNpZmljYXRvIGFuY2hlIGlsIHBhcmFtZXRybyAmcXVvdDtub2F1dG9zY2FsZSZxdW90OyApJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTW9kdWxvIGluc3RhbGxhdG8nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1R1dHRpIGkgZGF0aSBhc3NvY2lhdGkgYSBxdWVzdG8gbW9kdWxvIHNvbm8gc3RhdGkgcmltb3Nzc2knOwokbGFuZ1sncHJvbXB0X2Nyb3B0b2ZpdF9kZWZhdWx0X2xvYyddID0gJ1B1bnRvIHByZWRlZmluaXRvIGRhbCBxdWFsZSBlZmZldHR1YXJlIHVuIHJpZGl0YWdsaW8gZWQgYWRhdHRhbWVudG8gKCZxdW90O2Nyb3AgdG8gZml0JnF1b3Q7KSc7CiRsYW5nWydwcm9tcHRfZW1iZWRfc2l6ZWxpbWl0J10gPSAnQmFzYXRvIHN1bGxhIGdyYW5kZXp6YSBkZWxsJiMwMzk7aW1tYWdpbmUnOwokbGFuZ1sncHJvbXB0X2VtYmVkX3NtYXJ0bGltaXRlZCddID0gJ01vZGFsaXQmYWdyYXZlOyBJbnRlbGxpZ2VudGUgbWEgbGltaXRhIGxhIGRpbWVuc2lvbmUgZGVsbCYjMDM5O2ltbWFnaW5lJzsKJGxhbmdbJ3Byb21wdF9lbWJlZF90eXBlJ10gPSAnQmFzYXRvIHN1bCB0aXBvIGRpIGltbWFnaW5lJzsKJGxhbmdbJ3Byb21wdF9sb2NfYm90dG9tbGVmdCddID0gJ0luIEJhc3NvIGEgU2luaXN0cmEgKGJsKSc7CiRsYW5nWydwcm9tcHRfbG9jX2JvdHRvbWNlbnRlciddID0gJ0luIEJhc3NvIGFsIENlbnRybyAoYmMpJzsKJGxhbmdbJ3Byb21wdF9sb2NfYm90dG9tcmlnaHQnXSA9ICdJbiBCYXNzbyBhIERlc3RyYSAoYnIpJzsKJGxhbmdbJ3Byb21wdF9sb2NfY2VudGVybGVmdCddID0gJ0NlbnRybyBTaW5pc3RyYSAoY2wpJzsKJGxhbmdbJ3Byb21wdF9sb2NfY2VudGVyJ10gPSAnQ2VudHJvIChjKSc7CiRsYW5nWydwcm9tcHRfbG9jX2NlbnRlcnJpZ2h0J10gPSAnQ2VudHJvIERlc3RyYSAoY2wpJzsKJGxhbmdbJ3Byb21wdF9sb2NfdG9wbGVmdCddID0gJ0luIEFsdG8gYSBTaW5pc3RyYSAodGwpJzsKJGxhbmdbJ3Byb21wdF9sb2NfdG9wY2VudGVyJ10gPSAnSW4gQWx0byBhbCBDZW50cm8gKHRjKSc7CiRsYW5nWydwcm9tcHRfbG9jX3RvcHJpZ2h0J10gPSAnSW4gQWx0byBhIERlc3RyYSAodHIpJzsKJGxhbmdbJ3Jlc2l6aW5nJ10gPSAnUmlkaW1lbnNpb25hbWVudG8nOwokbGFuZ1snc21hcnQnXSA9ICdJbnRlbGxpZ2VudGUnOwokbGFuZ1snc3VibWl0J10gPSAnSW52aWEnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xOTA5NTM2NTE2LjEzNTgxNjUyMzIuMTM1ODE2NTIzMi4xMzU4MTY1MjMyLjEnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMzU4MTY1MjMyLjEuMS51dG1jY249KGRpcmVjdCl8dXRtY3NyPShkaXJlY3QpfHV0bWNtZD0obm9uZSknOwokbGFuZ1sncWNhJ10gPSAnMTIwOTkxNzI2Ni0zNjQ2NDYzOC0zMTY4Nzg3JzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FjdF9jYWNoZWNsZWFuZWQnXSA9ICdNZWxsb21sYWdlciB0Jm9zbGFzaDttdCc7CiRsYW5nWydhZGRfcm93J10gPSAnTGVnZyB0aWwgcmFkJzsKJGxhbmdbJ2FsaWFzJ10gPSAnQWxpYXMnOwokbGFuZ1snYWxpYXNlcyddID0gJ0FsaWFzZXInOwokbGFuZ1snYXNrX2NsZWFyX2ltYWdlX2NhY2hlJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7IGF0IGR1ICZvc2xhc2g7bnNrZXIgJmFyaW5nOyBmamVybmUgQUxMRSBmaWxlciBmcmEgbWVsbG9tbGFnZXJldD8nOwokbGFuZ1snY2xlYXJfYWxsJ10gPSAnVCZvc2xhc2g7bSBhbGxlIGZpbGVyJzsKJGxhbmdbJ2NsZWFyX25vdyddID0gJ1Qmb3NsYXNoO20gbiZhcmluZzsnOwokbGFuZ1snZGVsZXRlJ10gPSAnU2xldHQnOwokbGFuZ1snZW1iZWRkaW5nJ10gPSAnSW5rbHVkZXJ0ZSBiaWxkZXInOwokbGFuZ1snZW1iZWRkaW5nX21vZGUnXSA9ICdJbmtsdWRlcmluZ3NtZXRvZGUnOwokbGFuZ1snZW1iZWRfc2l6ZWxpbWl0J10gPSAnSW5rbHVkZXIgZXR0ZXIgZmlsc3Qmb3NsYXNoO3JyZWxzZSAoa2IpJzsKJGxhbmdbJ2VtYmVkX3R5cGVzJ10gPSAnSW5rbHVkZXIgZmlsdHlwZXInOwokbGFuZ1snZXJyb3JfYWxpYXNfZHVwbGljYXRlbmFtZV9hdHJvdyddID0gJ0R1cGxpY2F0ZSBhbGlhcyBuYW1lIHNwZWNpZmllZCBmb3IgYWxpYXMgYXQgcm93ICVkJzsKJGxhbmdbJ2Vycm9yX2FsaWFzX25vbmFtZV9hdHJvdyddID0gJ05vIG5hbWUgc3BlY2lmaWVkIGZvciBhbGlhcyBhdCByb3cgJWQnOwokbGFuZ1snZXJyb3JfYWxpYXNfbm9vcHRpb25zX2F0cm93J10gPSAnTm8gb3B0aW9ucyBzcGVjaWZpZWQgZm9yIGFsaWFzIGF0IHJvdyAlZCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX2FnZSddID0gJ0FnZSBwcmVmZXJlbmNlIGludmFsaWQuLi4gTm8gb3BlcmF0aW9uIHBlcmZvcm1lZCc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdBIHJlcXVpcmVkIHBhcmFtZXRlciB3YXMgbWlzc2luZyBvciBpbnZhbGlkOiAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyYW0nXSA9ICdJbnZhbGlkIHBhcmFtZXRlciBpbiBjYWxsOiAlcyc7CiRsYW5nWydlcnJvcl9zcmNub3Rmb3VuZCddID0gJ0NvdWxkIG5vdCBmaW5kIGEgZmlsZSBhdDogJXMnOwokbGFuZ1snZXJyb3JfcmVtb3RlZmlsZSddID0gJ1Byb2JsZW0gcmV0cmlldmluZyByZW1vdGUgZmlsZSBhdCAlcyc7CiRsYW5nWydlcnJvcl91bmtub3duZmlsdGVyJ10gPSAnQ0dTbWFydEltYWdlIC0gVW5rbm93biBGaWx0ZXI6ICVzJzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0NhbGd1eXMgU21hcnQgSW1hZ2UgVG9vbGtpdCc7CiRsYW5nWydnZW5lcmFsJ10gPSAnR2VuZXJlbHQnOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgYSBzaW1wbGUgd2F5IHRvIHByb2Nlc3MsIGFuZCBkaXNwbGF5IGltYWdlcyBvbiB5b3VyIHdlYiBwYWdlLiAgSXQgYWxsb3dzIHNpbXBsZSBpbWFnZSBwcm9jZXNzaW5nLCBhbmQgd2F0ZXJtYXJraW5nLiAgVGhpcyBtb2R1bGUgbWFrZXMgZGlzcGxheWluZyBwcm9jZXNzZWQgaW1hZ2VzIG9uIHlvdXIgd2Vic2l0ZSB0cml2aWFsLiAgSXQgYWxzbyBwcm92aWRlcyBmZWF0dXJlcyB0byBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSByYXRpbmcgb2YgeW91ciB3ZWJzaXRlLCBtYWtpbmcgeW91ciB3ZWJzaXRlIHBvd2VyZnVsIGFuZCBmYXN0IGF0IHRoZSBzYW1lIHRpbWUuPC9wPg0KPGgzPkZlYXR1cmVzPC9oMz4NCjx1bD4NCjxsaT5Qb3dlcmZ1bCwgYnV0IHNpbXBsZSB0byB1c2UgaW1hZ2UgZmlsdGVyaW5nIGFuZCBwcm9jZXNzaW5nLiBGaWx0ZXJpbmcgaW5jbHVkZXM6DQogIDx1bD4NCiAgICA8bGk+Qmx1cjwvbGk+DQogICAgPGxpPkJyaWdodG5lc3M8L2xpPg0KICAgIDxsaT5Db2xvcml6ZTwvbGk+DQogICAgPGxpPkNvbnRyYXN0PC9saT4NCiAgICA8bGk+Q3JvcDwvbGk+DQogICAgPGxpPjxzdHJvbmc+Q3JvcCBUbyBGaXQ8L3N0cm9uZz48L2xpPg0KICAgIDxsaT5FZGdlIERldGVjdGlvbjwvbGk+DQogICAgPGxpPkVtYm9zczwvbGk+IA0KICAgIDxsaT5HcmF5c2NhbGU8L2xpPg0KICAgIDxsaT5NZWFuIFJlbW92YWw8L2xpPg0KICAgIDxsaT5OZWdhdGU8L2xpPg0KICAgIDxsaT5QaXhlbGF0ZTwvbGk+DQogICAgPGxpPlJlc2l6ZTwvbGk+DQogICAgPGxpPlJvdGF0ZTwvbGk+DQogICAgPGxpPlNlbGljdGl2ZSBCbHVyPC9saT4NCiAgICA8bGk+U21vb3RoPC9saT4NCiAgICA8bGk+V2F0ZXJtYXJrPC9saT4NCiAgPC91bD4NCjwvbGk+PGJyLz4NCjxsaT5TbWFydCBkZXRlY3Rpb24gb2YgaW1hZ2VzLiAgU3BlY2lmeSBhYnNvbHV0ZSBVUkxTLCBhYnNvbHV0ZSBwYXRocywgb3IgZmlsZXMgcmVsYXRpdmUgdG8geW91ciByb290IGluc3RhbGxhdGlvbi48L2xpPg0KPGxpPkF1dG9tYXRpYyBkb3dubG9hZGluZywgY2FjaGluZywgcHJvY2Vzc2luZywgYW5kIHJlLWNhY2hpbmcgb2YgaW1hZ2VzIGZyb20gcmVtb3RlIHdlYnNpdGVzLjwvbGk+DQo8bGk+U21hcnQgYXV0b21hdGljIHJlc2l6aW5nIChhdXRvbWF0aWNhbGx5IHJlc2l6ZSB0byBkZXNpcmVkIHdpZHRoIGFuZCBoZWlnaHQgYmVmb3JlIHNlcnZpbmcgdGhlIGltYWdlLi4uIHJlc2l6aW5nIHRvIHdpZHRoIEFORCBoZWlnaHQgZG9lcyBhIGNyb3AgdG8gZml0LiA8ZW0+KGp1c3Qgc3BlY2lmeSBhIHdpZHRoLCBhbmQvb3IgaGVpZ2h0IHBhcmFtZXRlciB0byB0aGUgQ0dTbWFydEltYWdlIHRhZy4pPC9lbT48L2xpPg0KPGxpPkF1dG9tYXRpY2FsbHkgcmVhZHMgaW1hZ2UgRVhJRiBpbmZvcm1hdGlvbiBhbmQgY29ycmVjdHMgdGhlIG9yaWVudGF0aW9uLjwvbGk+DQo8bGk+SW1hZ2UgY2hhbmdlIGRldGVjdGlvbiwgaWYgdGhlIG1hc3RlciBpbWFnZSBpcyBjaGFuZ2VkIHNjYWxlZCBpbWFnZXMgd2lsbCBiZSByZWdlbmVyYXRlZC4gKHNlZSB0aGUgbm90aW1lY2hlY2sgcGFyYW1ldGVyIHRvIGRpc2FibGUgdGhpcyBiZWhhdmlvcikuPC9saT4NCjxsaT5TbWFydCBhdHRyaWJ1dGUgZ2VuZXJhdGlvbiBmb3IgaW1hZ2VzLjwvbGk+DQo8bGk+UHJvY2Vzc2VkIGltYWdlcyBhcmUgY2FjaGVkIG9uIHRoZSBzZXJ2ZXIgZm9yIGZhc3RlciBzZXJ2aW5nLjwvbEk+DQo8bGk+VGhlIGFiaWxpdHkgdG8gdXNlIGEgc2VwYXJhdGUgVVJMIChDRE4pIGZvciBzZXJ2aW5nIGltYWdlczwvbGk+DQo8bGk+SW1hZ2UgcHJvY2Vzc2VzIGNhbiBiZSBjb21iaW5lZCwgYW5kIGFyZSBleGVjdXRlZCBpbiBvcmRlci48L2xpPg0KPGxpPlByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIGVtYmVkIGltYWdlcyBkaXJlY3RseSBpbnRvIHRoZSBjb250ZW50IG9mIHRoZSB3ZWIgcGFnZSB0byBtaW5pbWl6ZSBzcGFjZS48L2xpPg0KPGxpPlByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIGxpbWl0IGVtYmVkZGluZyBpbWFnZXMgc21hcnRseSwgb25seSB0byBicm93c2VycyB0aGF0IGFyZSBjYXBhYmxlIG9mIHVuZGVyc3RhbmRpbmcgdGhlbS48L2xpPg0KPGxpPkNvbWJpbmUgY29tbW9ubHkgdXNlZCBhcmd1bWVudHMgaW50byBuYW1lZCBhbGlhc2VzLjwvbGk+DQo8bGk+QWxzbyB3b3JrcyB3aXRoaW4gc3R5bGVzaGVldHMgdmlhIHRoZSB7Y21zX3N0eWxlc2hlZXR9IHRhZy48L2xpPg0KPGxpPlRoZSBhYmlsaXR5IHRvIGF1dG9tYXRpY2FsbHkgcHJvY2VzcyBpbWFnZXMgaW5zaWRlIGEgYmxvY2sgb2YgaHRtbCBjb2RlIHVzaW5nIHRoZSB7Y2dzaV9jb252ZXJ0fSBibG9jayB0YWcuPC9saT4NCjxsaT5Nb3JlLi4uPC9saT4NCjwvdWw+DQo8aDM+V2h5IHNob3VsZCBJIHVzZSBpdD88L2gzPg0KPHA+VGhlcmUgYXJlIGZvdXIgdmVyeSBpbXBvcnRhbnQgcmVhc29ucyB0byB1c2UgdGhpcyBwbHVnaW46PC9wPg0KPHVsPg0KICA8bGk+UGVyZm9ybWFuY2U6ICBVc2luZyBpbWFnZSBlbWJlZGRpbmcgKGV2ZW4gaWYgbm8gb3RoZXIgZnVuY3Rpb25zIGFyZSB1c2VkKSByZXN1bHRzIGluIGZld2VyIHJlcXVlc3RzLiAgTW9zdCBicm93c2VycyBvbmx5IHBlcmZvcm0gdHdvIHRvIGZvdXIgc2ltdWx0YW5lb3VzIHJlcXVlc3RzIHRvIHRoZSBzYW1lIGRvbWFpbiBhdCB0aGUgc2FtZSB0aW1lLiAgRm9yIHdlYiBwYWdlcyB3aXRoIGxvdHMgb2YgaW1hZ2VzIHRoaXMgY2FuIHNlcmlvdXNseSBzbG93IGRvd24geW91ciBzaXRlLjwvbGk+DQogIDxsaT5QZXJmb3JtYW5jZTogIEV2ZW4gaWYgbm90IHVzaW5nIGVtYmVkZGluZywgc2VuZGluZyBsYXJnZSBpbWFnZXMgdG8geW91ciB2aXNpdG9ycywgYW5kIGFza2luZyB0aGVpciBicm93c2VyIHRvIHNjYWxlIHRoZSBpbWFnZSBpcyB2ZXJ5IHZlcnkgc2xvdy48L2xpPg0KICA8bGk+U2VjdXJpdHk6ICBDR1NtYXJ0SW1hZ2UgY2FjaGVzIGl0cyBpbWFnZXMgaW4gYSBzZXBhcmF0ZSBkaXJlY3RvcnksIHRoZXJlYnkgaGlkaW5nIHRoZSBvcmlnaW5hbCAocGVyaGFwcyBjb3B5cmlnaHRlZCkgaW1hZ2VzIGZyb20geW91ciB1c2Vycy4gIElmIGVtYmVkZGluZyBpcyB1c2VkIHRoZXkgY2FudCBldmVuIGZpbmQgdGhlIGNhY2hlZCBsb2NhdGlvbik8L2xpPg0KICA8bGk+U2ltcGxpY2l0eTogIFRoZSBmaWx0ZXJpbmcgY2FwYWJpbGl0aWVzIG9mIENHU21hcnRJbWFnZSBhbGxvdyB5b3UgdG8gYXV0b21hdGljYWxseSBwcm9jZXNzIGltYWdlcyBmb3IgY29uc2lzdGVudCBhbmQgc2VjdXJlIGRpc3BsYXksIHdpdGhvdXQgc2l0ZSBlZGl0b3JzIGhhdmluZyB0byBwbGF5IHdpdGggdGhlbS4gIFRoZXkgY2FuIHVwbG9hZCBsYXJnZXIgaW1hZ2VzLCBhbmQgeW91ciBzaXRlIHdpbGwganVzdCBoYW5kbGUgdGhlbSBwcm9wZXJseS48L2xpPg0KPC91bD4NCjxoMz5Ib3cgZG8gSSB1c2UgaXQ/PC9oMz4NCjxwPlRoZSBzaW1wbGVzdCB3YXkgdG8gdXNlIHRoaXMgbW9kdWxlIGlzIHRvIHVzZSBpdCBpbiB0aGUgc2FtZSBwbGFjZSB5b3Ugd291bGQgdGhlIHtpbWFnZX0gdGFnLiAgSS5lOiBTb21ldGhpbmcgbGlrZSA8Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e0NHU21hcnRJbWFnZSBzcmM9JiMwMzk7dXBsb2Fkcy9pbWFnZXMvcGljdHVyZS5qcGcmIzAzOTt9PC9jb2RlPi4gIFRoaXMgd2lsbCBnZW5lcmF0ZSB0aGUgaW1hZ2UgdGFnIGZvciB5b3Ugd2l0aCBubyBwcm9jZXNzaW5nLiAgQW5kIGlmIHBvc3NpYmxlLCBlbWJlZCB0aGUgaW1hZ2UgZGlyZWN0bHkgaW50byB5b3VyIGh0bWwgb3V0cHV0LjwvcD4NCjxwPk9mdGVuIHBlb3BsZSB3YW50IHRvIGRpc3BsYXkgYSB3YXRlcm1hcmsgb24gdGhlIGltYWdlcyB0aGF0IHRoZXkgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQgdG8gcHJldmVudCBpbWFnZSB0aGVmdC4gIFRoZSBDR0V4dGVuc2lvbnMgbW9kdWxlIHByb3ZpZGVzIHNldHRpbmdzIGZvciB5b3UgdG8gY29uZmlndXJlIHdhdGVybWFya2luZyBhbmQgeW91IGNhbiBlbmFibGUgdGhhdCB3aXRoIGFueSBpbWFnZSB3aXRoIGEgdGFnIGxpa2UgdGhpczogPGNvZGUgc3R5bGU9JnF1b3Q7Y29sb3I6IGJsdWU7JnF1b3Q7PntDR1NtYXJ0SW1hZ2Ugc3JjPSYjMDM5O3VwbG9hZHMvaW1hZ2VzL3BpY3R1cmUuanBnJiMwMzk7IGZpbHRlcl93YXRlcm1hcms9MX08L2NvZGU+LiAgVGhpcyB3aWxsIHJlYWQgdGhlIGltYWdlLCBhcHBseSB0aGUgd2F0ZXJtYXJrIGFjY29yZGluZyB0byB0aGUgc2V0dGluZ3MgaW4gQ0dFeHRlbnNpb25zLCBjYWNoZSB0aGUgYWx0ZXJlZCBpbWFnZSwgYW5kIHRoZW4gZW1iZWQgaXQgaW50byB5b3VyIG91dHB1dC48L3A+DQo8cD5BbHNvLCBQaWN0dXJlcyB0YWtlbiBieSBtb2Rlcm4gZGlnaXRhbCBjYW1lcmFzIGFyZSBvZnRlbiB0b28gbGFyZ2UgZm9yIHVzZSBvbiBhIHdlYnNpdGUsIHRoZXJlZm9yZSB0aGV5IG5lZWQgdG8gYmUgc2NhbGVkIGJlZm9yZSBkaXNwbGF5ZWQgb24geW91ciBwYWdlLiAgVGhpcyBjYW4gYmUgZG9uZSBxdWl0ZSBlYXNpbHkgd2l0aCBhIHRhZyBsaWtlOiA8Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e0NHU21hcnRJbWFnZSBzcmM9JiMwMzk7dXBsb2Fkcy9pbWFnZXMvcGljdHVyZS5qcGcmIzAzOTsgZmlsdGVyX3dhdGVybWFyaz0xIGZpbHRlcl9yZXNpemU9JiMwMzk7dywzNTAmIzAzOTt9PC9jb2RlPi4gIEFzIHlvdSBtYXkgdGhpbmssIHRoZSB3YXRlcm1hcmsgd2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBpbWFnZSBiZWZvcmUgaXQgaXMgcmVzaXplZCB0byBhIG1heGltdW0gd2lkdGggb2YgMzAwIHBpeGVscyAocmV0YWluaW5nIGFzcGVjdCByYXRpbykuICBUaGVuIHRoZSBhZGp1c3RlZCBpbWFnZSB3aWxsIGJlIGNhY2hlZCwgYW5kIGlmIHRoZSBicm93c2VyIGFsbG93ZXMgdGhlIGltYWdlIHdpbGwgYmUgZW1iZWRkZWQgaW50byB0aGUgSFRNTCBvdXRwdXQuICBJZiBlbWJlZGRpbmcgaXMgbm90IHBvc3NpYmxlLCB0aGUgaW1nIHRhZyB3aWxsIGNvbnRhaW4gdGhlIFVSTCB0byB0aGUgY2FjaGVkIGltYWdlLjwvcD4NCjxwPkZyb20gaGVyZSB5b3UgY2FuIGNvbWJpbmUgdGhlIG9wdGlvbnMgYmVsb3cgdG8gcGVyZm9ybSBhbG90IG9mIGRpZmZlcmVudCBlZmZlY3RzIHRvIHlvdXIgaW1hZ2VzLCBidWlsZCBzaW1wbGUgZ2FsbGVyaWVzLCBhbmQgaW1wcm92ZSB5b3VyIHNpdGUgcGVyZm9ybWFuY2UgYXQgdGhlIHNhbWUgdGltZS4gIEVuam95ITwvcD4NCjxoMz5BdXRvbWF0aWMgaW1hZ2UgcmVzaXppbmc8L2gzPg0KICA8cD5JZiB5b3Ugc3BlY2lmeSBhIHdpZHRoLCBhbmQvb3IgYSBoZWlnaHQgcGFyYW1ldGVyLCBhbmQgZG8gbm90IHNwZWNpZnkgdGhlICZxdW90O25vYXV0b3NjYWxlJnF1b3Q7IHBhcmFtZXRlciwgdGhlIG1vZHVsZSB3aWxsIGFuYWx5emUgdGhlIGZpbHRlcnMgeW91IGhhdmUgYWxyZWFkeSBzcGVjaWZpZWQsIGFuZCBpZiB0aGVyZSBpcyBubyByZXNpemUgZmlsdGVyIGFscmVhZHkgc3BlY2lmaWVkIGF1dG9tYXRpY2FsbHkgYWRkIGEgZmlsdGVyIHRvIHJlc2l6ZSBvciBjcm9wdG9maXQgdGhlIGltYWdlIG9uIG91dHB1dC4gIFRoaXMgaXMgdXNlZnVsIHRvIGRvIGF1dG9tYXRpYyB0aHVtYm5haWxpbmcgb24gdGhlIHNlcnZlciwgYW5kIG5vdCByZXF1aXJlIHRoZSBicm93c2VyIHRvIHJlc2l6ZSB0aGUgaW1hZ2UuPC9wPg0KIDxoMz5BIFNpbXBsZSBHYWxsZXJ5PC9oMz4NCjxwPlRoZSBjb2RlIGJlbG93IHVzZXMgdGhlIHtDR1NtYXJ0SW1hZ2V9IG1vZHVsZSwgZmFuY3lib3gsIGFuZCBhIGJpdCBvZiBzbWFydHkgbWFnaWMgdG8gZ2VuZXJhdGUgYSBzaW1wbGUgbGlnaHRib3ggc3R5bGUgYWxib20gZnJvbSBhIHN1YmRpcmVjdG9yeSBvbiB5b3VyIHdlYnNpdGUsIHdoaWxlIHByb2Nlc3NpbmcgdGhlIGltYWdlcyBmb3Igd2ViIHN0YW5kYXJkcywgYW5kIGNyZWF0aW5nIHRodW1ibmFpbHMuPC9wPg0KPHByZSBzdHlsZT0mcXVvdDtiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsmcXVvdDs+PGNvZGU+PHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDE6PC9zcGFuPiA8c2NyaXB0IHR5cGU9JnF1b3Q7dGV4dC9qYXZhc2NyaXB0JnF1b3Q7PntsaXRlcmFsfQ0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDI6PC9zcGFuPiBqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gMzo8L3NwYW4+ICBqUXVlcnkoJiMwMzk7YS5mYW5jeWJveCYjMDM5OykuZmFuY3lib3goKTsNCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiA0Ojwvc3Bhbj4gfSk7DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gNTo8L3NwYW4+IHsvbGl0ZXJhbH08L3NjcmlwdD4NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiA2Ojwvc3Bhbj4ge2Fzc2lnbiB2YXI9JiMwMzk7ZmlsZXMmIzAzOTsgdmFsdWU9JiMwMzk7dXBsb2Fkcy9hbGJ1bS8qLmpwZyYjMDM5O3xnbG9ifQ0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDc6PC9zcGFuPiB7aWYgY291bnQoJGZpbGVzKX0NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiA4Ojwvc3Bhbj4gPGRpdiBzdHlsZT0mcXVvdDt3aWR0aDogMTAwJTsgaGVpZ2h0OiAxNTBweDsgb3ZlcmZsb3c6IGF1dG87JnF1b3Q7Pg0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDk6PC9zcGFuPiB7Zm9yZWFjaCBmcm9tPSRmaWxlcyBpdGVtPSYjMDM5O2ZpbGUmIzAzOTt9DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xMDo8L3NwYW4+ICA8YSByZWw9JiMwMzk7c2ltcGxlX2FsYnVtJiMwMzk7IGNsYXNzPSJmYW5jeWJveCIgaHJlZj0iPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+e0NHU21hcnRJbWFnZSBzcmM9JGZpbGUgZmlsdGVyX3JvdGF0ZT05MCBmaWx0ZXJfd2F0ZXJtYXJrPTEgZmlsdGVyX3Jlc2l6ZT0mIzAzOTtoLDUwMCYjMDM5OyBub3RhZz0xIG5vZW1iZWQ9MX08L3NwYW4+JnF1b3Q7Pg0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+MTE6PC9zcGFuPiAgPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IGJsdWU7JnF1b3Q7PntDR1NtYXJ0SW1hZ2Ugc3JjPSRmaWxlIGZpbHRlcl9yb3RhdGU9OTAgZmlsdGVyX2dyYXlzY2FsZT0xIGZpbHRlcl93YXRlcm1hcms9MSBmaWx0ZXJfcmVzaXplPSYjMDM5O2gsMTUwJiMwMzk7fTwvc3Bhbj4NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PjEyOjwvc3Bhbj4gIDwvYT4NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PjEzOjwvc3Bhbj4gey9mb3JlYWNofQ0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+MTQ6PC9zcGFuPiA8L2Rpdj4NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PjE1Ojwvc3Bhbj4gey9pZn0NCjwvY29kZT48L3ByZT48YnIvPg0KPHA+TGV0cyB0YWxrIGFib3V0IHRoaXMuPC9wPg0KPHA+TGluZXMgMSB0aHJvdWdoIDUgdXRpbGl6ZSBqUXVlcnkgdG8gY2FsbCBmYW5jeWJveCBvbiBhbnkgbGlua3MgdGhhdCBoYXZlIHRoZSAmcXVvdDtmYW5jeWJveCZxdW90OyBjbGFzcy4gIFRoZSBmYW5jeWJveCBqUXVlcnkgcGx1Z2luIGlzIGluY2x1ZGVkIHdpdGggdGhlIEpRdWVyeVRvb2xzIG1vZHVsZS48L3A+DQo8cD5MaW5lIDYgdXNlcyBhIGJ1aWx0IGluIHBocCBmdW5jdGlvbiBjYWxsZWQgZ2xvYiwgYW5kIHNvbWUgc21hcnR5IG1hZ2ljIHRvIGZpbmQgYWxsIG9mIHRoZSBKUEcgZmlsZXMgaW4gdGhlIHVwbG9hZHMvYWxidW0gZGlyZWN0b3J5IGJlbG93IG91ciBpbnN0YWxsYXRpb24gcm9vdC48L3A+DQo8cD5MaW5lIDcgaXMgYSB0ZXN0IHRvIHNlZSBpZiBhbnkgZmlsZXMgd2VyZSBhY3R1YWxseSBmb3VuZCBpbiB0aGUgYXNzaWduIGxpbmUgc3RhdGVkIGFib3ZlLiAgVGhpcyBpZiBzdGF0ZW1lbnQgaXMgY2xvc2VkIG9uIGxpbmUgMTUuPC9wPg0KPHA+TGluZSA4IG9wZW5zIHVwIGEgZGl2IHRvIGNvbnRhaW4gb3VyIGFsYnVtLiAgRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGV4YW1wbGUgdGhlIHN0eWxlcyB3ZXJlIGluY2x1ZGVkIGlubGluZSwgaG93ZXZlciBhIGNsYXNzIHRoYXQgd2FzIGRlZmluZWQgaW4gdGhlIHN0eWxlc2hlZXQgc2hvdWxkIGJlIHVzZWQgaW4gcHJvZHVjdGlvbiBlbnZpcm9ubWVudHMuICBUaGUgY2xvc2luZyB0YWcgZm9yIHRoaXMgZGl2IGlzIG9uIGxpbmUgMTQsIGp1c3QgYmVmb3JlIHRoZSA8Y29kZT57L2lmfTwvY29kZT4uPC9wPg0KPHA+TGluZSA5IGJlZ2lucyBhIGxvb3AgdGhyb3VnaCBhbGwgb2YgdGhlIGZpbGVzIHRoYXQgd2UgZm91bmQgaW4gdGhlIGRpcmVjdG9yeS4gIFRoaXMgbG9vcCBpcyBjbG9zZWQgb24gbGluZSAxMy48L3A+PGJyLz4NCjxwPkxpbmVzIDEwIGFuZCAxMSBhcmUgdGhlIHJlYWwgbWFnaWMuICBIZXJlIHdlIGNyZWF0ZSBhIGxpbmsgd2l0aCBjbGFzcyAmcXVvdDtmYW5jeWJveCZxdW90OyBhbmQgYWRkcyB0aGUgPGNvZGU+cmVsPC9jb2RlPiBhdHRyaWJ1dGUgc28gdGhhdCBmYW5jeWJveCBrbm93cyB0aGF0IGFsbCBvZiB0aGVzZSBpbWFnZXMgc2hvdWxkIGJlIGdyb3VwZWQgdG9nZXRoZXIgYXMgb25lIGFsYnVtIGFuZCBhbGxvdyBjbGlja2luZyBiZXR3ZWVuIHRoZSBpbWFnZXMuICBUaGVuIGNvbWVzIHRoZSBwYXJ0IHdoZXJlIHdlIGRlZmluZSBvdXIgaW1hZ2VzLg0KPHA+V2Ugc3VwcGx5IHRoZSAkZmlsZSB2YXJpYWJsZSB0byB0aGUgc3JjIGFyZ3VtZW50IG9mIHRoZSA8Y29kZT57Q0dTbWFydEltYWdlfTwvY29kZT4gdGFnIHNvIHRoYXQgaXQgd2lsbCBnZXQgdGhlIG5hbWUgb2YgZWFjaCBtYXRjaGVkIGpwZWcgYXMgdGhlIGxvb3AgaXMgZXhlY3V0ZWQuPC9wPg0KPHA+VGhlIGltYWdlcyBJIHdhcyB0ZXN0aW5nIHdpdGggd2VyZSB1cGxvYWRlZCBmcm9tIG15IGlwb2QsIGFuZCBhbGwgc2VlbWVkIHRvIGJlIHJvdGF0ZWQgOTAgZGVncmVlcyBjb3VudGVyIGNsb2NrZWlzLiAgU28gdGhlIGZpcnN0IGZpbHRlciBJIGFkZGVkIHdhcyB0byByb3RhdGUgdGhlIGltYWdlIDkwIGRlZ3JlZXMgY2xvY2t3aXNlIHZpYSB0aGUgPGNvZGU+ZmlsdGVyX3JvdGF0ZT05MDwvY29kZT4gYXJndW1lbnQuIFRoZSBpbWFnZXMgdGhlbiBuZWVkZWQgdG8gaGF2ZSB0aGUgd2F0ZXJtYXJrIG9uIHRoZW0gPGVtPih0aGlzIGlzIGp1c3QgZm9yIGV4YW1wbGUgcHVycG9zZXMsIEkgZG9udCB0aGluayBhbnlib2R5IHdvdWxkIHJlYWxseSBzdGVhbCB0aGUgYmx1cnJ5IHBpY3R1cmVzIGZyb20gbXkgaXBvZCBmb3IgY29tbWVyY2lhbCBwdXJwb3Nlcyk8L2VtPiwgc28gSSBhZGRlZCB0aGUgPGNvZGU+ZmlsdGVyX3dhdGVybWFyaz0xPC9jb2RlPiBwYXJhbWV0ZXIuICBBbmQgZmluYWxseSwgYmVjYXVzZSBldmVuIHRoZSBpcG9kIHRvdWNoIGNhbiB0YWtlIHBpY3R1cmVzIHRoYXQgYXJlIHRvbyBiaWcgdG8gZGlzcGxheSBvbiB0aGUgc2NyZWVuIEkgd2FudGVkIHRvIHJlc2l6ZSB0aGVtIHRvIGEgbWF4aW11bSBoZWlnaHQgb2YgNTAwIHBpeGVscy4gIFRoaXMgd2FzIGFjY29tcGxpc2hlZCB2aWEgdGhlIDxjb2RlPmZpbHRlcl9yZXNpemU9aCw1MDA8L2NvZGU+IGFyZ3VtZW50LiAgV2UgYWRkIHRoZSA8Y29kZT5ub2VtYmVkPTE8L2NvZGU+IGFyZ3VtZW50IGJlY2F1c2UgZmFuY3lib3ggZG9lcyBub3QgdW5kZXJzdGFuZCBob3cgdG8gZGlzcGxheSBlbWJlZGRlZCBpbWFnZXMgaW4gaXRzIHBvcHVwIHdpbmRvdy4gIFRoaXMgZGVmaW5lZCB0aGUgaW1hZ2UgdGhhdCB3ZSB3ZXJlIGdvaW5nIHRvIGxpbmsgdG8uPC9wPg0KPHA+TmV4dCB3ZSBuZWVkZWQgdG8gZGVmaW5lIHRoZSB0aHVtYm5haWwgaW1hZ2UgdGhhdCB3ZSBhcmUgZ29pbmcgdG8gdXNlIGluIHRoZSBnYWxsZXJ5LiAgVGhpcyBjYWxsIHRvIDxjb2RlPntDR1NtYXJ0SW1hZ2V9PC9jb2RlPiBpcyBhbG1vc3QgaWRlbnRpY2FsIHRvIHRoZSBmaXJzdCBjYWxsLCBleGNlcHQgdGhhdCB3ZSB1c2UgYSBkaWZmZXJlbnQgaGVpZ2h0IHZhbHVlICgxNTAgcGl4ZWxzKSBmb3IgdGhlIHRodW1ibmFpbCwgYW5kIGZvciBraWNrcyBJIGNvbnZlcnRlZCB0aGUgdGh1bWJuYWlsIHRvIGdyYXlzY2FsZSA8c3Ryb25nPmJlZm9yZTwvc3Ryb25nPiBhcHBseWluZyB0aGUgd2F0ZXJtYXJrLiAgSSBhbHNvIHJlbW92ZWQgdGhlIG5vZW1iZWQ9MSBhcmd1bWVudCBzbyB0aGF0IHRoZSBzeXN0ZW0gY291bGQgZW1iZWQgdGhlIGltYWdlIGluIHRoZSBIVE1MIG91dHB1dCBpZiB0aGUgYnJvd3NlciBzdXBwb3J0ZWQgaXQuICBUaGUgc2NyZWVuIGNhcHR1cmUgYmVsb3cgc2hvd3MgdGhlIGVmZmVjdC48L3A+DQo8aW1nIHNyYz0mcXVvdDtkYXRhOmltYWdlL2pwZWc7YmFzZTY0LC85ai80QUFRU2taSlJnQUJBUUVBWUFCZ0FBRC8yd0JEQUFnR0JnY0dCUWdIQndjSkNRZ0tEQlFOREFzTERCa1NFdzhVSFJvZkhoMGFIQndnSkM0bklDSXNJeHdjS0RjcExEQXhORFEwSHljNVBUZ3lQQzR6TkRMLzJ3QkRBUWtKQ1F3TERCZ05EUmd5SVJ3aE1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakwvd0FBUkNBQ2hBZkFEQVNJQUFoRUJBeEVCLzhRQUhBQUFBUVFEQVFBQUFBQUFBQUFBQUFBQUFBUUZCZ2NCQWdNSS84UUFVQkFBQWdFREFnTUVCd1FHQndRSUJRVUFBUUlEQUFRUkJTRUdFakVUUVZGaEJ4UWljWUdSc1NNeW9kRVZNMEpTa3NFV0pUUmljblB3SkZXQzRSYzJRMU5XZzZMeEpqVkVZN0prazdQQzB2L0VBQmdCQVFFQkFRRUFBQUFBQUFBQUFBQUFBQUFCQWdNRS84UUFJeEVCQVFBQ0FnTUFBZ0lEQUFBQUFBQUFBQUVDRVNFeEF4SkJFeUlqUWxGaGtmL2FBQXdEQVFBQ0VRTVJBRDhBdGZXOVZ1Yks3MCt4c2tnOVp2cEdWWkxnbnMwQ2pKeUJ1VDRDdEx2VkxuVExGWTlRdk5NaTFHWitXREljUnVNZ2ROem5mNlYwNGhrMFgxYUtEV3d2WXlNZVJtVnNLdzcrWmZ1bnpxSjNNbDFKd3RJSGt1SnJOTldnV3ltdUFlMGVMbUhYTzVHZWhOQk5MclhOS3NaSGp1dFF0NFhSd2pLNzRJWWpPTWU0ZzF0SHJXbHkzd3NvOVF0bnVXR1JFc2dKTzJkdmhURkZESEp4THhnenhxeDdHTlFXWE8zWkhiOEJUWERFcWNKOEZ1c1lWeGVRSElYQjM1cy9PZ2xiOFM2SkhPME1tcVdxU3E1alpXZkJERFlnK0ZjNTlTdUU0dHNkT1JrOVduczVabTluSkxLUmpCOEtpOXJxZW1XMm44U1dkMkJKY1QzMXdFZ0VSWnBjN0FEQThmbFNxeml1TkwxbmhjNmh6b3cwNTdWcENDUUpTUmhTZTQwRW1tMTNTYmE5OVRtMUcyanVNZ2RtMGdCQlBjZkErK25DcTRza2dqMGU1MGJWdFFlMXVaSlhXZTNOaUhlUXMyenEyTXRuSU9lNnJCdG9SWjJVVURTczZ3eGhESS9VaFJqSitWQTJYZXZKYThTMldrbGNpZENYay9jWS9jSHg1Vy9DajlKWFA5THBOTnlucXk2ZjZ3Qnk3OC9QanI0WTdxaXp4NnZxK21hbHFWcnAwYkM3bkZ6Ynp0Y2Nyb3NSOWdCTWI5RDM3ODFPVnJxTVYxeGRaYWl3WklkUTBvSkV4VTRNbk1TVXozRVlOQXM0YjRwdGRSMHl6Vyt2N1VhbE1HekVDRkpQTVFCanh3QnRUN0hlVzAxeGNXOGN5Tk5iNDdaQjFUSXlNL0NxN3Q3aXp1ZlI3RG8wY2JTYXMvNnFFUXR6cTVmS3ZuR3d4dm5OUGR2Znc2THhOcmE2ZzdxOXpIQTBHSTJidGlJK1U4dUJ1YzkxQklQMDdwUXRvN2s2aGJpR1ZHZEhMWURLcHd4SHVKQXJtZUpORVdLS1E2cmFCSlNRaDdRYi9sOGFoMmdSaDI0TUVpQmdJN3RzTU00SUpJTkxCYnhmbzNqcjdGUDEwbVBZSGRIa2ZqdlFUa0hJeURrR2lrT2lrblFkT0p6bjFXTE9mOEFwZFFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZSbHVEcmZsNUZtRWtZVUtvbVZpUUFQN3JLUHdxVFVWWmRKWnN3YU53cGJhUGZldUxjU3lTQlpFUk9pSXJsU1FBY245Z2RTYWY2S0tpaWpyUlJRRkZId294NVVDRFM5TFRTeGRpT1Y1UFdibDdsdVlBY3BiR1FNZDIxTDZNZVZHRDRVQmsrTkZHRDRHakI4RFFGRkdENEdzNFBnYURHVFJtczRQZ2F4ZytCb0NpaWo0VUJSUjhLUGhRRkZHUEtqSGxRRkZHRDRHakI4RFFGRkdENEdqQjhEUUZGWndmQTFqQjhEUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVlQZ2FQaFFGRkZHQ1RqRzlBVVZua2I5MXZsUnl0KzYzeW9NVVZubGI5MXZsUmcrQitWQmlpakI4S3p5dCs2ZmxRWW9ySlVqcUNQZUtBckhvcFB3b01VVm5sYjkxdmxRVllkVkkrRkJpaXM0UGdmbFFBVDBCUHVGQmlpczhqZnVOOGpSeVA4QXVOOHFERkZaS3NPcWtlOFVjamZ1TjhxREZGWjVHL2NiNVVjai91TjhqUVlvclBJMzdyZktqbGI5MXZsUVlvclBLMzdwK1ZBQlBRRSs0VUdLS3p5dCs2M3lyRkFVVVVVRGJxVEVTeDRKR3g2ZStrWE8zN3pmT2xtcWZyWS84Sit0TitkOFVHNWtZayswM3pySE94L2FiNTFwbmV0U2FEY3lQbjd6Zk0xelozeHN6Zk0wWk5jM29NbVIvd0I5djRqWE15UC9BTjQvek5ZSnJVbnpvTU5KSisrMzhScmk4a20vMmoveEd0MkpwTzIxQmhwNWYrOGYrSTEzNFIxQTZrWTdqMmg5c3lZTEU3Q2tMdHYxeFhIZ2Vkb1dnanh6Q1Mra1FrZEIxTkJNN3gyRjNKN1J3Q05zK1ZjQzdkN0g1MTF2djdaSjhQcFNWajQwRzVkc2ZmYjUwZG8vZXpmT3RNNXJHZkhyUWJGMi9lYjUxb1pIejk5dm1heHpBSEhTdWJNRDMwR1drY2Z0dC9FYTBNci9BTDcvQU1SclJtM3JRbkZCc1paTWdjN2Z4R3VUelNEOXQvNGpRVzNyaTVvTlhta0EybGYrSTA2Y015TStxeWd1N0FRbnFTZjJoVExLZHMwNjhLSE9yVC81UFgvaUZBNE5JMlQ3UjZudnJIYXNQMm0rZEkzdVZEdm54SXJtYnRSM2lnY1JNM1RtYjUxbnRXL2ZiNTAwSFVZMUpIT3VSNG11YjZxbU5uWCtJVUQwWjNEWUxIR091YXdidmw2c2ZuVU4xRGlxMXNjbWFkVngzYzFNNDlJZWx6U2RuNnlBZk5xQ2YzZXNyYnFUemtudXFQM25GRndTUWtoSHVxTlhYRWxzOHFabVRzMzJEODJ3OTlJNU5Sc1pFa2NYMGFoY2tzUEx6OGFDUVcrdTZycWx6TGE2ZElKWm93REp6UHlyR1BNK1BsMXAxZy9TZk5PdDVxMGtUUTRMZGlBRkhtYzVxc0xUaTZiaEpCNnRINjI5eXJPc3pleUQvZS9HbUhVdUplSWJxNmFTU1M1UmdRU2U3STZIcFFYeHhScVY3b2NWcmNXY3N6cVVWbVNZaGxrQnh2dHZtbDNGRnk3ZWp2VVoxTEkvWnFSZ2tGZmJUYk5lZmh4VnhOcU4zSGMzZDllMzB3MjdObDJLZzVIZGo4S3Q1dFJ2TlU5Q21xM1Y3RDJOd1NReWs1eGgwL0dncW1hOHVocTh5aTl1VlJsQkdKbXh0OGFjOU92YmlPL1F0ZTNQSVJnODBySGMvR21KNVErcDI1WWMzUEVSdjFHS2NZbUNUeHR5SFBmZ1p6UUxkZXVydjlKVzBrZDVjc25aNC9YTU53VDRHckQwS0dhNnRyS2RwcHNQR3JIMno0ZStxMDFRbmxnd0NBR0lxenVDcHUwNGV0WE8rRTVDZWJPNFAvT2dsOHp4aUdPRnBDQzU1VkcrNXhucjhLcjdpeTJraTAvVXBVdnJxUDdGOHhpVEFKV1JRTURyakdjNzljVk43bXpudVJic3NUa0pNc2dJSFVqT0tZT0w5TmRyYWVOWXBoUExieW9pSW85dGh5bFYzQlBlZW1LQnI5RGR4SkpmYXJienlTeUV3Q1JTN2xzZHhHNTg2ZXVJN0N3dXRPbnVuRWd2WUxkbGlsRTdyZ0Rmb0RqeDZpbUQwVlc5M1k2enJFTWtiMjg2V1dNU2o3amMzZUtiTlZ0K0pGdG5lNTE3dG9TcEx4cGJnQWp3ejNVRFhwZGxkYXZxTUtHNHVKSTRvSkpHZ2E0ZE8xYktxTWtIb001cDhzMy9BS05tNGp1N3E1Z2dlUldRYzdTdEo3SUpVRTl3T2ZjTVo4YWplZ2F1TksxKzBGeElrY0VzVXFTTzdZQzQ1V0J6OEtjK09MUkxvMmVxMmM0bHQrVHNuTVc0eHpaRGVlYzQrVkJwcVhGa3BkaGJ6eXhZSjVGV1J1WWZIcDE4cWUvU1ZkM0k5SEhDY3l6VFJ5eU1wY3JLUVQ5ajNrSGVvQnlXNGtoY082QlR6TXJzRHlONDV4NUQzVk92U1NESjZOT0Q4a2trcGtucitwb0twdWI2K1ZWWVh0ME45L3QzL091OXRxVjdsVk43Y2tmNTcvblNmVUVUMUl5STJTa25LK0QwTmJSMkY0dW5SNmkxdko2bThuWnJNUjdKWWRSbnhvSDIxMWJVN1FPOXRxVjFFN3FWYmxsSnlwN3R6VGRjMzk2Y2tYdDF6WkhTZHQveG9pbEhZRGZwMXBIZGtOYnRuQjNIWHVvRjFyZGFnQzZTM04ydTNScG4yL0dzVFhsNHVDdDdjK1gyN2ZuU2ZRVlNXNVpaV2s3SUp6UHlBRmdNanBuclc5OHFMSTVoNSt5NWp5bDhaeDU0b085dHFOK2poeGUzSUtuS250VzJQZDMxS1JkU1hzU1gwTnhPZ2ZhV05aWDVZNVIxVWI5RDk0ZThqdXFGcElBdU5zK2RQWEQrcFIyRjhlM2FRV2N3NVprWHc3bUhtcDN4M2pidm9KYmFUM01EUlN0Y1RFZy90U3NmUHhxVmVtYTN1SDRTc2J5MW1sUnUxUldhTnl2VldJNmVkZDdQaHlEVkVpVG5WWmNZWWo5dndPZmRpczhjelQzR2cyL0RyV3J0Y0NOSnUxWmgreVN1QVBFanZvS2E0VTlmSEYyamM5NWNsUFhvUXl0T3h5T2NkUm12VXg2bXFRNFc0V2doMXF3bHVVbldlTzRSMVZtQzRJWUhjWS9uVjMwQlJSUlFOV3Jmcll2OEordE4yYWNkVy9XeGY0VDlhYkdvTWs3MXJ6WXJESEcrRFRGeEp4SEhvTm9za2tMdUh5QXk0d01VRDR6aXVaa3FwWDlLOTdISi9aN1J4MDNMQ2xOaDZXNFRJVjFHekNvVHMwQkpJK0JvTE5MZDlhTXh4MDJxUGFmeGxvdW9SSzZYcUt6ZnNObm1Id3BiK25OTnovYkkva2Z5b0hFbmF1RDBRM1VWMUVKWUpCSWhKQUkyNlZpUTBDVnp2aytOTE9BMkhxeXNla2wzS1ViOTRaNmp5cGoxMStUVGp1d1ZwRVZzSEhzbGdDS2t2REtCSnJlTlJoVmtPQjRiVUQzcUcxNUo4UHBTVW1sVi93RDJ5VDRmU2tob05RYTVUVGlDSjVDQ1FnemdkVFhUdjZWRk9OZFRGcHBndFJLWTN1VHlsaG5PUERieG9HRFdQU1JQYjNVaTJscUJHdTMyM1hQZjBwRkg2VkpTeW1TeWo1TSsxZzc0cUtYMXZEMlRNSCtZSk5Na2lvaWZmR2ZlYUM3ZE40MzBuVTVZNG8zWkpIemtQc0YyOGFrQ3lMSW9aR0RBOUNEWG0rRzRFYjVFcFUrSXF6dUJlSlJOYnpSMzE2QXNTaFkxT2ZuUVdFYTVPYXlraVNJcm9RVllBZ2p2clYrbEFua08xTHVESGVYaU8rTE9lUklBaXAveERKcEJKMHBad1IvMWoxTGJmc3gvK1FvRU05eTNhdnYrMGZyWEF6dTNmVGhQYXFKWC93QVI3dk91WXRvejF6OHFDQmErNS9TOHA3K1ZmcFVZMWpXVTArRXFwQm1ZWVVlRlRUaUMyUmRZbEFIUkY3dktxZzE2WnBOVG15YzRZZ2VWQWludTVaNUdlU1FsajFyZ0pDRDEzcFZZNlpQZnY3SUtvT3JHbiszNGJ0MEE3VExIem9JK2wwVlhCWThnT1N0U2ZUZUsyc2JVMjVnV2ExQTVsVmtCNVQ0MG9UaHV4ZGQ0K3ZoVzAzQ1RXMWxMTmJQekVEbUtONGVGWnl5OVhidytMOG1WM3hERGZUeWFuYytzRkVSVDkxUnNBTytuMjBqa0UwYlhISzBJeHpLaTRKSGhudXFMeHl5SmNNSFhsd1NDbmNLbWR1QklxTUNNRUN0T1Y0dkIzMUtmUnA5TVNMUzlNbXRieklMeXl6OW9wWHZITFV2MGRKbjlDR3NKSVVaek80SEt2S01jMGRRUlV3d3FmMlE1ZlFwckJIL2ZzZjhBMXgwUlY4Mm44aVcwalN4UWhIR1dkOXNIR054bWxDdU9ibDV3V1VuSjVlbEtOVFR0dERsbnhnUmNyYmVSeHZTT0VjLzNRY0FLVGdiRE85QXRuaWdsakwzSWtaWS9iUUkyTXQ1bnVGU3JTdFkxQzM0YWdzckJrdG1lY3pDU1JNcXVEakJKM09kc1kyNjFybzBPbmFUYlI2anFNQ1hEU1k3TzFLOHdPUDJpTzgrL2FwTnhYYmFYcmx2cDV0ZFNndEpvTVJzZ1FxRlhPY0FBYlk4S0NUYVJOZlhIQUthaGV4T05RZTM5dU1ObGNnNHlnN2dSdlNUakRTVTFPUWFmRXBTTmNaNUNRRkJVOVFPNDcvaFdxY1k2VG85dERwY1YzQklxUUJGREJ0Z1BJQ212V09KclM3N1NTMXZTSGxUSmVGQ3JOZ2JaUGRqZjUwRGI2T3JDYlMrSUxwR0VmYVBFNkdEbXc0UU9DR0k2WVB6MzZVbDF5V2U3bmx0b05QbWtjZG9nVmNEYmY2YlVxNEhuczlKdm52NysraVQxaUpvaXhKTGgyd2NIYnhGT1NUaTltdW9OT2pWaXhmTEp1OG96Z25KeHQzWUhrYUN2WHM3YlM5Y2dWclUzVitFUE5JUDFNQUtBNHdSN1RlZlFlZFMyR3dUVmJOOUpFVTBjMTRXajdjcjdJQklJT2V1QVBLbld5NFgxTFZManRncVF4TW5MMmpuYndJeDM5S2UrSU5HL1JIRGQ5ZTIxMUt0eEJiczZka2lvZVlEYkJHNCt0QkhyYjBNMjZ4cXI2cEtjOVNJODkvY1BuU0QwdjZkSHBmQnZEK20yNVl4VzF4MktGdXBDeEVETk1jTjdmUmNzOHVwNmpNN0wwbnZaR0ErR2FkL1NneGw5SDNERHNTeGFSU1NTU1Q5bDQ5YUNCMmQvcGIraXkvMGk0ZFUxT0NjTWlIN3o1Y0VGZmhrZkNtS0hUWTVMS0oxSlZtVUh5cHkxS09IOUR2eUFoeVl5YzV4MXJ0cDl1VFlRbkczTDNEem9HWDFlNmpRcmdPdmlLMHVVQnM4R1Q3Vmo3VVpVZ3JqdnowTldHbkRVYzJqTmNLd0VnT2ZlS2grcHJidlp1Qk1uTXFjd3dPNEhmZWc1OE1SdzV2OEF0V0MvN01lVFBlZVphMjFhSUpaaVJWMkw0NjF3ME80aEVWeUdtNUhiQzlPNy9RcGJxNndMb2lOMnZNL2Jia0gyY1lQZGpyOGFCdm5OcGNOYmVvd1N4dVVXTjBhVHRESkpucXV3d1BMZjMwT1d0eVZsVXF3T0dCR0NwSGlLSWpCQ3RzeVM4a29ZU2xsRytPdXhQUStGT0VrUDZVdFpQVitTWm1PWkpNYjh4OGM3NHgxTkJabm81MXUzaXRJYkc0dUlrZU1oNE9ZNE9DU1N1ZnhIdk5TdmpmVTdLM3RiTFZaQVhnQk1KQ1k1c25CSFh1MmFvYnc3Y2FGYldkcXNlaXlYVnpnTEpOT1ZTTmlPL09jNEh1M3dLbEVXcld1c3ZkMk54cE5vOGNaNW93NkNRRTQyM1B2T052SHBRTVdpOGM2TE5yRmxaTGFYWWtrbVNOQ1FtQXhJQXp2NTFhOVJ2VFlkQVRzNDR0THM0cm1KdGliWkFTZWJBS25IamlwSlFGRkZGQTA2dit0aUhkeW42MDFuNDA2YXgrdGkvd0FKK3ROWjZVR2puQnFyT0xZN2pXWmJ1ZEZra2lqMlJjN0lOaCtQV3JRbHh5Tm53cU5haERIRm9WMDBhY29lUEorWW9LUHU5TmxqY0ZsSThhUXZBUTJNR3BsZmhSTVJqclRQUEd2TWRobWdhTGQ1YmFaSkVZbzQ2RVZaa0VRR254UzlvT1lnYlp5Zm5VRWEzN1Fxd1haVHVlNFZMTkpuYWF3UlMyZXo5bkdUaXBlK0hYSDFtTnVTd09ITS9vWlA4eC9yVGk0ODZidUhCL1V5ZjQyK3RPTGdFSGI4YXJrWmRmWG0wcVVEWUJsT2Zjd3FVY040OVloem5QYS95cU5hK0IraHJueVhQeXFSOE5NUFc0UVJqRDVIbnRRUGQvajF1WFBYYjZVa2FsZC8vYkpQaDlLUm1nNW5yNVZEZU1vbzNFYmxjdXJydjhEVXlZVlgvSEYzSmFLNmtBa3lLd2J3SEsyMUJGTlFSVEdBUjVWSDdxM2pPNFhwV2JqV3BYY3h0SW1PblRGSTU5UUlJRFkzNmVZb05UYnFWSVZjazA4NkhCNm5kbFJKbm5UZGZBMHpRWGg1eElGd282SFBmVGhZVHl5YXBEZ0VnN2RlZ3JQMTEvV1lYYzVxNzdMK3dXMytVdjBGZEdyU3lIOVgyMytVdjBGZFdyVGtUUDVVcjRMMjRuMUlkM1lLZnhGSlpBQUNLWGNJUXNuRTE3SmoyWHRoZy84QUVLQjN2ckR0T2FXSmR4MVVkL25UTTBYS2NkL2hVbHM3dUM5amFTM2NNQXhVK0lOTWVrb3QzZFhuYW5PUHUrV1NhQ3VlTWJnV2wxZXpuYnM0VkkrVlZCWldqNnZxYkFraGM4OGpmSCtkVzU2U28xUnRUUnQyRUM0OStCVmU4TVFGTE9hWURMTytBZklmNk5BN0pIRmJ4aUtKUXFyMHhRWHlOcXkzS28zTzljeTRCMm9mNkxiWm43Uk1iYmpmd3A3am5rdVZWWlF2VWpQWEpxT1BxNjZkQVVtaFBpcHlDQ2ZFVnpzdUpBSkVMQWhBZXBGWW43WGw2TTkrUEgxbDc3YWNUYUY2dklidUpQWmMrMWl0ZEtjcEdJMk9lWGRUVTRTTzMxelJ5Z2JabDYrQnFMWHVpM1duWE1sbzY5bmRSdHlGVDQ3WVBoaXR2T1VEWnMvT3JDMGtjL29jMVVZNXN6UHQvd0FVZFFFOEtjWDIyR3VMYlR5V3dBbzFDSG1PU0FOdWJ6RldOQnBkOXBmb2gxVzF2b1ZpdURJWDVCSXNnd1dqNzFKSGNhQ0NROGhpbXQ1RVU5dEhnZ0FOdmpZSDYwaHRsWkpaYmRZZ29kVkRaSVBUd3g3dXRLWW9wU1F2WjgyUmhlWGJGS0xmVERhcEpQT3dSMlRFU25QdE4zWjhnTjZCWEU2cmFMRGRTaU9PTTg4Yk9jZXpqSkE5dzMrSGpTNWJxMjlabjVXSDN5YytOUjJTUDFobWt1dVdkMlVwbjkxY1l3TTlPcDZWR3A3MitzTHlkWUhWNGd4NWVja0hGQktOWGUyYWFXUVpEQkErVjd4bmNmS25xR2RKSVVhSWhrNWQ1Q05oL3dBK3RRcXdtTjFjb2JvODVaR0JDOUNRUWNWS2t2UnloVWpQZ2lLTmdLSFpWMlpGaXhtOWxSTUNHQzVMZTJOejhLZWVITlhXRFhKQ3FLd0VMY3VUdDFGUks1MUdVb1VrYkI4QWVuaUs3YUJMMnVxNFBzanN6amJPZW0xU2IyNjUrc2trN1hWbzJvUGZBOGlLcXFOZ293QlRocTFnZFMwaWF6OW5NcThwTFp4K0ZOWEMvSXRua1lDZzR5Y0NuMlc3aWpBQmRjOTI5VnlWamNlaTdWWkpTNjMxcmduY0htSkh1eUtSK2xpeWV4NEw0ZnNuWU0wRTNac3c2RWlPck11OVVhQjRZSWlzbHhPeFdOZTRZNnNmSVZYM3BrRGYwZDBydE1Pd3VtNWlCako3TTkxQlU5NHhmVG1EWXh5cjA4alVpNFhzbHV0T2pPZGxjanJVWVpKSnJjeFJSdTdFYktvejMxTCtGM0ZucEI3WnNFU09NQUZoM2Q0Mm9KYTVoZzAva1lBS1Y1QnNPdkthcWJWNDRrdFpsN1Vvd2hiS2pIdEU0cXo3aTFtdXRNTnd2TXNDRlpHZGxJQVVEYy9qVmNhdmJwQkZjckxLcXlzckRsRCs3RzFBaDRTdG9wa3Z6SkdyRkl3VnlPaDM2VXAxN21PbHFnZm1UdFZQSUVHM1hKejFQZlNmaGt6Slk2b1lPVHRERXZMemJqdnBMUE5xQ01UZFBHOGE3c3NhOVBPaXliNGpqSnBndW9wSm9yaHVhTUtFUmsrOE1maFVoNGV0clMyc3A1SmlWeVZPWGt3VzI2RlIxSHdwcjAvVWJaNVpVU1RITmpPVHNjZnUrWFNrNkxLbDdjckxNQVdZRU1CMUhsOUtrMjM1UFhpWW4rNzFGWGlNTnN5d0ZjNGtBNVd3VDVkUjEycEhhYXJjMnFSU2krbTNMS0ZTVTVqSndDVjMyUFRla2thSkVIYVhMQnp5L2YzQUh1N3FTdGFNSi9zeUFHR00vbWFybW12RFdzWE12RUduUXlYYnVHdm9seXpFNUhOdjhNbjVtdlFaNjE1ZjRXQ3J4WG9LQXZuMXVFNEorOTdZMzkxZW9EMU5BVVVVVURUckg2MkwvQ2ZyVFVUVHJySDYyTC9DZnJUVXd4UUl0UldXU3htV0VrU0ViWUdTZktxNzRrMVM4R2t5aFkzNU96d0RHZGh2MzFackRQeHFBY1MyeXRwdDdseWloU2NmSHBRVmFsMWMzSmZMTWVYR1NhUXlYa3BrSUdlYnBpbnEwQ1IyczdrQUsyVlhJd1dIalRWSENyM1piZnN3Y2xnTTcrRlMzVFdHRnp5bU1LTGU1bWloQ2xYVm5HZCtoSGpVaTRhU1QxT1IyUHNGdVZjL2pVZDUxa2taZ05pZHM5d3FiV0Z1TFd5aWhHZGh2NytwcFA4QUxYa3ZPcGVJblhEbi93QW1UL01mNjA0UG1rSERnL3FaUDh4L3JUaTQ4cXJtUVhsdWwxYnlRU1o1SkY1VGpyU2pnNzF1SFdPd3U1VmRReTlrNEdPYlk3ZStzU1lBeWVncmh3YWJxOTE2RyttQ3BBMjhVWWJQS044SDNtZ21kK00za253K2xJenZTMisvdGtudytsSW1vT2JiL09vVHg5RHoyMXN3d0NYNVNEM2pCcWJFVkVlT284NlpieWZ1ellQdXdhQ3BGdGdOVXdRcnVQYTZEQUhpYWJkVVFQZU1VR1FUZ0FkMVBmWnZHMDdySHpFa2d0bW1zeEdOMm5seWNiRHZ6VXQwNmVQRDN5MThjWXdVSFlaS3FQdkE3L0tuN2g2MTVwNWJrOUVYa1gzMHdSNTY3NVltcFp3OWhkT1lramR6dFNNNTVicTJyRWYxZmJmNVNmUVYwYXVka2Y2dnR1bjZwZm9LNnRWWkozL0duYmhUSDZVbUdSbnNmSCs4S2EzSGZTcmhZSCtsc3V3UCt4SEgvd0M0dEF5MjF6Tlkza2trRGxUenQzN0hlcER3NjY4bHc1NnV5ajZtb3FrOFU4a2p3eXBJdk93SlE1M3lkcWxHZ3FGdEZrQjNNaHlQSUQvblFWcDZVVTdUVXJ5TWQ4YS9IMmFyMjB2R3R0SWlTSWUwek4wOTlXVngycXpjU3pSbjdwaVg2VkFiblRQVTE1WThsUVNWQjh4UU5EWDl6SEw5bzJhbU9pYVdkU3MzbktrcXE5UE05S2hpV1V0MWVySHVjdGpIY0JWdGFFSXJQVGpBTURtMk9Lemxma2Vqd1lTMzJ6NmlwYnd5QzVkWExzcXNjYzFTUGhxUzBtamUzblRuNXdSeTh2bDFwOTEvaG0wdWgyc1dFbDhRZGpVZHRiSzQwNmJrNWNNZjJsTldUVGpsbHU3U0Rodk9uMzBsc0hab1RuQ3QzVk52U1BweGg0Z3RicjJSRHFGcUZaOGZkZU1ESHpCcUk2TGFZWXU0KzBPNUpxMitOOU9GNVk2UWVVRVJ1UTJlNVNneWZ3cXN2UGx0YlNyeEhQYnlNeElrVGNucGxoVm84Q0dOdlF2cUpseUU5YWtKNW01dStQdnFEYWJFMXh4azVrUE1RVUJJNzhIWS9HcHp3REMwM29ZMUNOVGt0ZHlBRWp6am9HaDdxSWpGdGJFSCsva2ZnS2oycVBkUGU5bzB6Y3lrTUN4T1BEcCtGU2RkS241ajdjWUhRblAwcEJxV2dYRnlyTEVFWTQzekpnbnYvbFFJYkNkSlFWZmxEamZCTk11cVdLU3JkeVNGUnlTK3dQMmp2OVBHbldYU05Sc0U5WWtXSUZSMUVneVBjTyttcVNVU1EzQW1MTkwyNHk1TzVKUFNnVGN5Mm5ZQUV2bHVWU09vNXUvOEsyZ2ttVWRwMnMyRng3U3YwTkpya3lLNVNLUE12TUFpNDZHbGN4UlVTRkRubFBNZHZHczIvSGJ4NGNYTzhhS2tsYVpRN2tsaU1ibW5qaHNFYXEyQjFRay9NVXhXMmV5VlI1NzFJdUdVSDZTWTlBSXljNTY3aXRPVnU3dFlkdnEzcWtJR1NGVTdLUDUxdEh4SGJ0QVZOdkk4eFAzKzEyMzhzVXh6bjJTQ1Jqdnp2U05XNUVYT1NPdXd4UkQ3ZTZuTmMzVnJjMjhpcGMyejlwRVhQc0U5NGJHK0RTbjBnYWxheDhQYUxmYXBZcmNxODNNOEtQdGtwdmhxanNYTXhWczRIbjFweTlKYWtjR2FDdWRoSUFjOS93Qm5RUUxWOVQwaThSalkyVTF1a2dPQWhBWlI3LzhBbHZTL2htZms0WldJTitzdVpsQkhUWll6VVhXUEpBd1FEMys2cEhwMXJjdzJOcmJ5eVFXcUxMSTZ1RjVtT1ZYSktuWWpBOHFDNFlMZU81NFdTTnlNUFpZeDQrem1xRzFhTHQzYVNhYU5VS01VOFNUanA1YlZQYmFXNWx0cFlSTThpeFd2TWp1TWtaeUQ1YmtlSFNvSEpwOGpLVEoyYXNRTjg3azBDWFFZemIyMm9kbGx5aWNyN2JFNzlQREZKWnJlZHJScHBrTnVqamFVNWJPTnNZRzVwKzBxd0ZySERHcmMvcmpCV0lIUWNySEsvR3RMN1Q1N2lYKzBDUWdZSE4wMjIrbFp0NTA3WVkrdVB2OEE4UmkwampnWjRvb21ZY3h6STRCWnZjZTRId0ZUUGgvaEdQaXBiaWRMdHJVd0ZVdzBlZWJJelhIVDlEakJaN2libWJtMkVaK3BwVGROYzZkeUpZVDNFVVR1VEl5VEZTZHRodDg2MDRuNWZRNHR4R3p2ckJTTWRBSVQ4ZSt1VGVqVzF0OVN0SUJQTE0xMHhpRGxUaFFCbm1ZZE01STc2ajdhenFEanN6cVY0Y2VNNzQrdGQ3Vzl2WUFadlhibFd4OS90V3lQZDRkOUJNckwwYXBwR3RhZmVSM1NUU1IzRWJIQ2xSeWc1eGpKcTBxb0xTTld2cHVKOUxFbDdkU0sxN0NDcG1adHVZZGQrbFg2ZXRBVVVVVURUcTQrMmkvd242MDF0MU5PbXIvcm92OEFDZnJUUFBMSENwWnpqYWdEc0RVSzR1aHhZYWl2UU5IbGNmNjhhMTRxNDhYU1VFTm5HajNMOU9ZbkNqeDg2YmZXZFExYmc1dFR2cEF6VGh5Z1ZRb1ZRUVBxQ2FDRVhGdTdXeW96S01nZE5zVTBYQ1BDQkVHWEJ3VGdZSTY3VktIYnNiZHBHSHRnWlRJLzFtb3hKekdWM2JxeHpXZTd3N3orUERjN3JNZUF5NU9BU0tuU1hNTDdKS3JmOFZRRE9XQTdxMDFKR1V4U2dlMFJ5azFwd1h4dzI0T2lwdjhBOW8zMXB6WTdud3FydUNiNjhrMGRVam1iMkhJTy9qdlUxaTFDNVFEdHZhWG9jamNVRHV3NXRxMDRDY0ZMRWVBSS9FaXRJWmttNVhRN1Z4OUhzM01iTmM3Q1dSZmt4b0p0ZkgvYlpQZVBwU1EwdnVJRExleW5jS0NOL2dLYTlTbkZxamN0QWt2dFN0ckNKNUo1TUtpbG14NENxeDFuamR1STVFc0xTMDdLSU1aREk3WmJsQUk2ZDNXdCtPdFVZV0poRGUxT2VYUGwzMUh1R3JWVGFYdW9NRHpSc3NTanVPUVNmajdOQjJFWmRYWEdmZFRCcU1oYTRNU2hWUkdJQVVZQnFVVHNscEZJUUQycFBMeWtkQjQrN3pxTno1bmxKVUU0OHF6M1hmTCtQQ1l6dWtHUXE3VjJFODhkbklZcFdRcnY3SnJUMWFSNU1jcEg4NmQvMFMwVm82djk1a0xINVZwd08vQzNHT3BtV08wbW5hVWNuc2N4NllIU3A5YjYxSXdIYXB0anVxbk9IM0Z0cmRtejdBU0JXOXgycTRvTFJKR1pCOTVlbm5RT0Vkd2s0eWh6VHR3dC93QlpXYnU5VlA4QS9JdFF1R2Q0Sm1HY0ZXd1JVeDRQbEUydE00UC9BTk1lNysrdEJDTkUwK1RTN0o0SmVYdE8ya1p1WHpZMU9kS3hIcDhEZDVWaWZuVVB2NzVMUjNabEp6Tnk0SGlUaXBaWmN5NmRIL2tEYnpvSzk0cmtFbkU4elo2SW4wcU5YNHlkcWZPSTJ6eERjKzVmcFRUS25OSW0yY2tESGpUcFpOM1J2dG1oMCtLU2FRTjJyZEdBNkR3cnRaNjFjcmF1OXFxdElTQXNiSGwybzFXWkk0eEFxZ2pxRjhLWTRnOFYwcmMyQjE2OUt4anpkdlI1c3JoSjRwZWt2djhBVjU1OU50cHV3YUtRT1ZsVFBkaXRiQjF2Z3ZNUGJCcmxCZHpYRnVlMVpKQXV3QXJhR2FDMlpaMFhra0RxQ21ldTliZVpJYmVMc21Ia0t0ZmlxSzZmUkltdFFHWlFBUm54QUg4NnE3MlRHc21lbzdxdUtlNTdEU25tNUE2eFFoK1h2SkFGQlN5Y00zV2xjZkd6V09TNGxoc29IbWtSZGl4NW1QeUdCOEtkZUI3bHRKOUN1cFhJREZvN3FSaHk1VTdtTWZ6cVIzdXAzVjNxTWx6RlBOQUh4N0VjaHdNREZaNGllVzQ5RitybVZ5N25BeTMrTktDdGhyK29jN01zaXV1VGd1bWUrdTBYRTJvR1ZWS1FGU1J6Zlo0eitOTWZPVzVjWkI1Um5Qald3a0FZQWpjQTlQR2drdHlXdVk1T1pzdVZiQXgwMnFFU1pqZTZpbldYTEVoQ2k1S3NEa1o5MVRMTE5HVzJ4eWcrT0Q0VkhaazdiVUpqSm5rRWhMRUR6cGJydGNjZmE2Y3dIa1QxaHhIa2NwM1hxZkh5TzFKMXM0MllBN0h4cFhLVWVRSkVDVVFZQjhhNWVJT2MxbVQ2NitXLzFuVGVLQkkxeHpad2NtbjdoMWsvU1RiNCt4YjZpbU9Od1VPMk1lRk9tZzUvU0xMak9ZaWVubUswNHBQZDlwY1FjdHVzYk5rZnJISTI3KzZ0QUpBUGI1U09tT3VhNXU3SS9Mc0FlN082MWxaWFZVQXdSbnczRkIzaTVvOEJJMDh5Um40VXU5STREY0ZjUDViQzg0SlAvbDAzd3VDZ0hMN1pPY0grVk9ucEpVRGd6UTR4SExJeGZDcEdoWmllejhQem9LdGdRTklNN2o5bW5hM203RndGQmRzNUJidUoyTzFJTFcxMUNXUm1PbDNNS29Nbm5YZmJ2cFhHUzBweDdJRGJzZWdvSFhTcDU1cjZmbmx5UkNNQmp0ako2Q200R0tLTUhtNTJDKzI3SEdQZFduTjZ2ZW1XS1J1UVF1cEo3OXRxajl0cURNcW00VWNvR3h5Y1pxVzZqV0dIdGxvL1RYWHFjVU1jTW1TaHlHSTNHTnR2S214N3VSMzJjazlkanRTV1M3ZTVQYUhBeUJzS3hHeHlvT05qM2Y2M3FTYTdiOHVXN3FkUktkTFZuaEJKSnlkcWxtbDhOUWE5WTNJbG5hSXE2Z0ZRRDNacUhXTjlIQkFGSXkzajRWTk9HYnFjV1YxTEpidXNIYUpsenN1Y2JiMXB5YlEraTJLS1VUbTllV01uY05GZ0g4YVhhandqcDB0bjZ2RTFyYnlNTUJzTVQzK2RLZEVuWFhkY3ZiU2VROWxib3JSVy9OZ01Ebm1ZK1BkN3FrRnZwRU50S3hNazl3enRrTEkyUXZ1SFFVRmU2VHdPbHRybG5jRFUyWm9MbEdLQzNJNXVWZ2NaejA4NnQzdnBMYlBod2lSQkZPZDhZUHVwVlFGRkZGQTNhb0FBcmtiaFNLZ2VzM2JoaXZON3FtdXV6Q0dOYzV4eU1mbFVBMXdOSHBrMXljZXhIbmZ4NWMwRlE4UVhSdWRadVhVN0tlVmZoVnEzVmlscHdwSHA4WVZUSGFZQ0h1SU9UOFNEVlY2TlpIVjlmdExVZ250NVJ6ZVF6ay9oVnY2dXZyZHNaL2FXTHRGTGN2WEJVQS9IMmFMTHE3VmxxMXc2ZllyOXhCN0pGTXpRTThZWVlESHhOV2ZxSEJGdmNNVEZQS2hYT2M0d2Z3cEphZWowdk1yVFRza1hMdVZJSkhsMHFTYVhQTzUzYUJhYnBKdVp2Yis2TjJJck92V2FycGtjcUFERG41ZEt0U3g0U3NBaEVVczRRSXo4MlZ5MlBoVFBxSENVRTNEWE9zc3hKU1U0T01aQjkxVmxHdlJ4Sm1hOHRpZnZSYzZEekIzL0FBcXhMbUlUYVBMY1JEMm84RnNlWGZWUmNQWEw2VnJsbE1qRUJaZ0c5eE9EVnhzeTJONkhVWnRMazhrcW5vcGJiUHUzb0dtMHVtaGRaQVRna1pBcFp3VE9MRFhyTFRwYzlwSmNTT2hBMlpXeVJqK2RNdHdodEw2VzF5ZnM1T1VlN2I4NmNOQzdTYmpEaDJSZDFodW1WaDRCa1A1VUZzM3NxeExudjYvaFVXMWhqTkp5QVpESXJaOTdFRDZVOTY2N0xDV1Q3eS96Rk1jTXhsa2FWUmtCVnhub1BaMno3aVNhQ25PT24vcldLMkJ6MmE1UGh2OEErMVBQRDFvZzRMdDFjQU5OZmRxYy90QUt5MUYrSlpEZWNUWGZaNWJNblpvRDEyMi9HclZ0TkV0cDdUUzdVODhjRUxsUFl4bmJidzh6VXMyMWpsNjNhRHo4MS9BR2NEbVhLQWp2eFRLMm0zQ3NRRXlmRVZZeThLMnlYdDliTE5NR2pKZGVuY2R4MDhLVmFid25ZM0Z4Mm5yRTVpWmViR1I3TzN1cEpxSmxsY3J1cS90ZE5XMllTU2dHUWRGRytQZlNtNFFpYVpjZElmcWFtdHZ3aGFTdVpqTk9VbGxFY2VDT2c2bnBXeWNKMlUrclh5R2E1NVVqeCt6NCs2cWluYisyTmhxUkFHQ09WeDhnYXR6VExzemFSWTZyRjFhTUNRZmhWZWNhUWlQVlZrakI1QWdRRTkrTnY1VkpPQk5RRXVoVFdya25zV3hrOUFEUVBHdEtrZDRzMFdPU2RBdzkvZlVoOUhrdmFhdGNlSFliZnhpb2pxTTJZRmladmFna0pIK0Uvd0R0VW45SERaMXFjZjhBNlhQL0FLMW9JbnJCTDNxeGdBZ08waitJOXJBL0hOV0V6Q0pKRjVsKzR2S3VSbkdLcjY0NVpkVHVEa0U5dXNYVHdiSit0VDdVWVkwRThySXBkQ1FqNDNBb0txMXVVdnJkd3hQZ052ZFhBWE5zbHE1TGp0VVBOaklCK0ZJdGRtWVhGOU1wWUZGMks5YzkxUUc4dW5hY2UwU3luZHM5YTU1YzMxajFlR1h4WS9sK3BMZUdhUzZKVWtrNzU4S1FlclN2S0FaVGttbHVuM0l1cmRKZjJpdUc5OUUwVEJ3M05qZXVrbW5tdHQ1cDZzTkZES015Uzh6WTZOakZhNmpwNzJlcFdrUWtaMGJHU3h6dm1uSFNXYnN3YzgzeDZVNFhWa1pKVXVEdnk3Z0dpRmtFNFdKVUo2REhTcmR1cHM2Sk9CbmxOdjMrNnFXdDNMU0VFWU9maFZ6VFdNbXBhSmVXU1N0RTh0cVVXVmVxa3IxK2xCR0VRTWVZSGFsV3VyemVqVFZWR01rLy93QjBxaDM0dTRvMFcvYTN1N21UbWpPQ3NneXB4NzZ0dlROY200azlDMnAzc2thUnlDUm95RTZIbFpOL3hvSzVueUlJK1Rvdk56TVc2QUhvSzR4eXJJd1lEQkIySnA0c2JSWjRnU0F5a25JWWVPS2NZOUd0MklMUktBTnhzQlFjYldUdFlJejNjdU1VMXpsb3BKeGtjenlIcDFJL2xVcWkwK0dQb3VCanBqYWtzdkRsdE5QSk9aWmdYSllnRVkrbFN6YmVHZnB0RmhrREkySGNLMkdDQnR2VWxYaHEyemd5VEtldTVINGJWbitqbHBnL2F6NDk0L0txd2krTUVuYnc2VTZhRDdWK3c1aUIyYmRCbndwMEhEbHBqUGJ6bkhka2JmaFhXMzBtQ3dtTWtja2pFakJERVlIVHdIamdVRzU1QTQ1ZVlkK2NaLzEvNzFvWHlwSVVxMiszVTQvMXY4YTZFRmlBRDdQZUNEbnIxcldRTUdIczV5TTV4OGYrVkIwaWN4bkNIZGpndVJ6ZjZIV3BoeEhJVHdsb3pqbVVFTGtFZjNPK29jaFVmWmxTTTVHMndQOEFyTlM3aVovL0FJUzBRZ2s4d0h4OWlnaXF1eXVHRGtNT2hCNmU2bSsvc0JNcGtoQUVneVNnR0ZmM2VCK3RLUXg5bzVHMk90YjU1d1ZCTzQ2MEVNdkpwWU96RXZNbVg1R1R2QUlOTWswbkxDa0ErNkFDU0RuTlQvVWRKZzFPTUpKN0VpYkNWUnY3ajVWRkp1RzVMZVF4dXpIQjJaUnN3OFJ0VXMyNlk1K3NzbjAyeEg3TVkrbEtJbFBObk85TzF0dy9IMmE4enljM2Z1TUNsUTBLM0EvV3krZU1WWE14dkt5cGhUVDNvZDlPdHRNaG5rS0YxeWhZNE8zaFhHYlNiWkdSV21sSE41ak5LYld5aXQxSVdTVGxmY2x0K2c4cUJ6aXVDMDZNWGtqbUI5bVdKK1YxejRFVllPajYzclN3a3oyMFdvUkQ3clJuc3BjWUdCeS9kUGZ2a0dxNnQzQ01DUU4vTDhLbk9nM2I4MjhtQXdJVXQreHQzZTdOQktkTjRnMC9VSkNycWJTNVJnaGh1MUtPR1BRTG5aaWZJbW5xbWkzbGpOd1N5eFNGbkdNWVBUdjkrNHAzb0NpaWlnalhFNnMweWdrOGpXNVhIbnpqUDRFMUJlUDUwc3VHVEVuM3BUZ0RmcWVwK1cxVDdYNWd1b1dzTHFBanhzUTU3am5wK0ZWaDZVNUdTMjA2Qm05cG1MRWVBd2NEOGFDTytqNnhNbXVldG5ZUWxVSGp6TWNmVE5XZXRzSDBhL2pQVkdWdmhrMUZ2UjVZTkhwOXRJdy9YenRQMDZCUnlqOFFhbjBVSVByY0lHZTFqUHpGQXhMUDJ0cmJ1K2VTWmV4Y2o5bHh0ekQ4S2NYak52dytrU2pNa2poRlB2cHFzMUUybjNsc3g5cU05b244eFR2cGg5ZnQ3UW5jdzdON3gzMEdVajlXdHJ0QVFSRGJpUElIei9HbXlmN0hoS054MWRtSHpOUFYwT1RUTlJrd1J6RHFmZUthTlZqeHduQUUvWWt5Y1VGR2FuQzFycVZ4R2RzT1NOL0hjZldyU2p2VGU2SGFOekQ3V0JlVnozUGpwOHh0NTFBdUw3VXhYc055QnRNbUNmTmFVY1AzNU9pdkF6WUNTSGxiUFR2K3RCSUh1dldyMkdadnZPTXllOWRqOUtmZURnVHhMWXR1VjdiYnkyTlEvVG05WXVwQzJ3UUZ2aWV2MHFjOEZBSFdiWTQyN1lFZkkwRmc2bmd4emc3N0FnZUpHLzhBS283YjRPa3U0VDdNb1dZamJtR09ueDZlNFV1NGgxU08ya25RRWN5akh4d0RUUGFYZ3V1Rkw0aHdJNHc0YkdOdHM0OHNENjBGUDhQeG05NHZ0cEpQYkFtTXplNFpQNVZkVm5iOW5ZV2hJM0I3VDRtcXo5R3RpTG5VYjJZNHlrS3hqL2pPK1BsVnZYRVlqVUFEQUEyOHFCazFGdlUrSlVtNkpLTW56RFZ0WU42cGVYbG9NZTE5ejNWbmlHTXZhMjF5QWVkY0thNE0vTk5hWGlBL2RBZWdmSUxZUm16aC9jR2NEdXBCWVplODFOaDNoZ1BoVDVibFpabzVWNzk4MHk2WkdSZTNhSHZsYjhhQ3ErTGJjU2FkSytEenhTQnMvR21UZy9VUFZkUW50MlljazBlNDh4MHFaNjViQ1VYMXZnRG1EZGZMSnF0Tk1mc05YakIyM0ttZ21WNWRNOHp4ZysyUUZCODg3VllQbzJCL1R0enpkZlZnUC9XdFZiTElFMUszTEhibUI2MWFYbzBmdE9JTHR1NHdELzhBTmFDS2FReVhXdDJ1UnRQZkZpUEhMWStnRlRuV3JneGFaS3g2NEpOVjd3UGROZmEvYnRLQUNzMDJBUDdwYkIvQ3BWeFBkbjlEdTJjY3lFMEZPYTlmOHR0S0FEenMzS0NQUC8ycUdrbGpudk5URFVMZUs4dG93eFZUejh6bnZJR2FRTERaMjQ1WUlBVy9mZmNtcEpJM2xuY3BKZmpscFRHM3NXbExjcDVzZ0h2cGNiZ3lFQW5wVGZmTWlSY29VYzNmU3pUcmZ0OU9TNFJBNTVpckR3eFZZT09tYW0xck1WNXRtNjFNbDFOWHNobjkzQkhmVUJFUDJvNW9nUGhVczBWclVxaXZiSVNUam1id29GdG8yL01Ua0hwVjU2ZmR4UVdEVFNON0tybmYzYjFVNlBvNndxb3RvUnlqZnI3UnJoclBHTTM2UDlVZ2ZCWVlPTzRlRkJIT0kxdGRVbXVXa1FNclNzeW53R1NhbWZCVmcwdm9QMVcwdCtkajZ6TVJqcnNVWS9TcXd2NzFsanhra21yajlGQTUvUmpjcXgyZTdtQko4d2dvSXBwRUhKcHNkeE12SzBqZlpMayswcDN6VHNwQU93N2hqek5NcVN1bW9pemtsYVZJQ1ZRRTdBS2U2bjhLckJteGhldWU3RkJqN294Z2sxaFpjdnlZSkFIVUdzeVJNRUxad2NaNVNLNTRPRHNjK1kvblFkK2R1aUhiNTFnRDJjWVB4RzljVWZBMlBYNFYwVml3emdzZS9Cb0FuR1FUeTR6Zy93QXF3VGhCdm5JNm5yOHFDZmNNYmN0YUFnRTV4bkI2MEdnNU04ekFnWS8wUGxYTW9TZnZnSGJyMThmeStWZE9YMmxBR1d5ZDY1OHc2a0gzWW9NdkNjOHlqR01mRDRWTHVJRlljSTZHR1BQeXF2TnQ5NzdPb2h6OXhiYnI0VktlSjc0V1hDL0RuTS9La3pDTWhoMSt6L0NnaXVPYlBOakhjTWRhMC9heHk4dWVnOGE3elFZNW5CQ2dmUEZKK1ZTVkkzeDMwR1ZsSDNOeGtlRmRTQThaamtCZFNjanhYekZDQk00T0NCMXdkeldIQWRSM1p4MzBDQ2Uza3R4a01YakoyZm9QY2ZDa3JTa0hMTm5hbmpsSlU1WEtzTjg5Q0tSWGVuaFVhYTN6MmY3UzR5VndOL2hRSkJjY25LTUFIdXJET25VYjRwT010c3B3TTV6L0FLOHEyRGN2VEhUT1Nlb0hoUUxyTzJrbmtRUSswVGpZSDRWTXRJMHk0aWdMU3pyR0NRQ3JibkgralVRc3B1eVFnQTV4MXowMzYvaFRzTlRsN1BzNHBlVlJsY0U5VHRRV0ZhV2lKTmJzMDZIMmc3RUlSa2dnZnpxUVZWT2hheGQvcExUb2VkaWhrVUU1OFdXcldvQ2lpaWdoM0Z0NExmWDlJUnNGU0dJQjhTY2Z6cXR2U3dXL1M5Z0dPY3dNMk0vM3F1KzYwdXh2YmlHNHVyV09hYUQ5VTdqZFBkU0xVT0ZOQjFhVkpOUTBtMnVYUmVWV2tCSkF6bkhXZ2luQittbTAwVzBSd2N4VzZyN3MrMGZ4YW5sWEVWekdjYlp3YWtVZGpheElFamdSVkFBQUE4TmhXRHA5bVRrMjZFMEZkbFRZNjJ5SFpYT0Q3alMvU3Y4QVk3MldJNTVHSklQdnFZVGFOcHR4SUpKcktKM0hSaURtdGhwVmdHREMwaXlPL0JvR1BWSS82a3ZQN3cvblRYY0tINFptSVhPQUdGVFY3TzJraU1Ud295SHFwNkd1UTBxd0Z1YmNXa2ZZa1lLWU9LRHoxeGRidE5wSWwzUFpPQUFPNFkzcU84T3lyL3ROdXgrOE9ZZWZqWHBtYmhIaDY0aWFLYlI3VjQyKzhwQndmeHBKRjZQZUVJSDU0dUhyRkd4aklWdnpvS0cwMlpvN3U0UW5ydHZWaThHNUd0V0FBeURMa240R3B3dkF2Q3F1WFhRYk1NVGtubGI4NmNMWFFkS3NwVWt0ckNHSjBPVlpRY2o4YUN0ZU03a3J4UmZRSzJBM0psZkU4b29VVFdmQytyUWNvN0pyQ1YyYi93QzZRUjlLc2U2NGMwYTl2R3ZMblRiZVc0WWdtUmdja2dZSGY1Q3QzMEhTcExlV0JyQ0V4U3J5eUlRY01QQTcwRldlaVcwUHF0OWRzdjJaa1ZRM2p5Zy8vd0NoVmdTL2FsaFRwcDJoYVZwTnMxdnA5aERiUXMzT1VqQkFKOGV2a0tVK3BXMmM5Z21hQ0xUeENhMmt0bXpuSkswMGFhQ3lTVzdkVU93cWZtd3RHZm1OdWhieHJrbWs2ZkhJMGlXa1N1M1VnSGVnYU5ObTVVQ01jWTJGSkxST1RYTGxjZFJ6VkpsMCswUTVXM1FIcnRRTlB0Qk9aaGJwMnBHQzNmaWdxSFhDWXRWdUF3TzVZVlZHclF0WmF0SU1FZTJHRmVxcmpoelJycVF5VDZiYnlPM1ZtQnlmeHBCYzhBOEpYa25hWEhEOWxJL1RMS2Z6b1BQRjVNWHU3WmxCUE1QNVZhdm9tbVY5WnVWTEF5QzNHUjRlMnRUUmVCT0ZWWkdYUWJJR1A3cDVUdCtOTGRNNGMwYlJydVM3MDNUWUxXNGxYbGVTTUVGaG5PT3ZpQWFEejk2UGJpNFhpMlZDVjdPRkxsK200M1A1MDljZGE5RGFXeHRZMlZwaUNHVWZzOUt0Mno0SzRhMCs0ZTR0TkZ0SVpuQkRPaW5KQjY5L2ZYSzU0QjRUdkpXa3VkQXNwWFk1TE1HSkorZEI1WmVSekdNbmRxd3VVeXhIUVorTmVvditqamczL3dBTjJIOExmblFmUnp3YVFRZUhMREI2K3kzNTBIa3FWbmxiY2UrcFJ3NE96MDREbFB0WlA0MTZLLzZNK0NmL0FBenAvd0RDMzUwcGg0QzRUdDBDUmFCWklvNkFLMzUwSG5xUzM5ck9EV1VrbGpHRkdLOURuZ25oZzlkRHMvNFQrZFkvb053di91S3ovaFA1MEhuczNFaWpkalNOM1krMWs1ODY5SG5nVGhWdXVnMlIvd0NGdnpyVThBOEpucncvWmZ3dCtkQjVjdW5hV2MrVzFYbjZObU52Nko3aHlOMXZITy8rS09wWi93QkhQQjJjL3dCSExEK0Z2enAzczlDMHV3MDF0T3RMQ0dHelppelFvRHlrbkcvWHlIeW9LVTFGUmFjWVhLdi9BTnBLV0JBMnczaFQxRTNNb3gwWFlaNmJISDhxc3E0NFcwSzZuN2VmU3JhU1hBSE93T2NaejQxMFRoN1I0MTVWMDZBTDRZUGpueG9LemxZeUFuQjJIK3Mxd0xkWFpXejRuWWtlWXEwMjRkMFp1dW13SDRIODZ4L1J6UnM1L1JzR2NZNkg4NkNxbFp6azVPRDM0N3ZBVjNMbGM4cnRrZXlEamIzMVozOUc5Ri8zYkI4aitkQjRiMFU5ZE50K21PaC9PZ3E1bUhRNUoyMno4cTJKQzdnRW56cTBEdzVveElKMDIzeU44NFA1MWdjT2FNQmdhYkJqM0g4NkNyMkF4bkJ5ZkRwV2tudDU3Z1J1ZkNyVEhEZWlnQURUYmZBNmJIODZEdzNvcE9UcHR2OEFJL25RVk5saVNDMmNIT01lRk92cEhCSEFYRFJ6dXJxYy93RGwxWVo0YTBRbkoweTN6N2orZGRiN1F0SzFLemhzNzJ3aG50NGYxVWJnNFRiRzIvaFFVenBlcEhWTE5lWVlsanh6QURxT2xLRUdIOGo0VmFkdHdmdzdac1d0dEh0WWkyeEtnNy9qWFgrakdoNHgraTdmSHVQNTBGVTU1R0tnTVQxSUhkVzRKS2hnblRwdGpOV24vUmpRL3dEZGR2OEFJL25XMzlHOUcvM2JiL0kvblFWZW9WUGFiMmxHQmcvNjZWaU15eG9Xa0lEQmlWWkQxWFBzOWZ4cTB2Nk9hTi91MjMrUi9Pc0hoelJqMTAyMytSL09ncVc1MHRMbFRMYkJJNVd6elJqbzNtRDNlNm1ZeE1qbm5SZ1ZQdEJ0aU1WZW45SGRIMi9xMjMyOGorZGFTOE1hSE8vUExwZHM3WXhrZzUrdEJTcUtwQUJCSTZEQjdqWFJuWitYbUJHQ0Q0K05YSC9SUGgvL0FIUmEvd0FKL09nOEo2QWV1a1d2eVA1MEZWNk5NejY1cGlndG4xbU1IdysrS3UwOWFhSWVGOUNnbWptaTB1M1NTTmc2TUFjZ2pvZXRPOUFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUWYvL1omcXVvdDsgYWx0PSZxdW90O1lvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IGVtYmVkZGVkIGltYWdlcywgc29ycnkmcXVvdDsvPg0KPGgzPlN0eWxlc2hlZXRzOjwvaDM+DQo8cD5UaGlzIG1vZHVsZSBhbHNvIHdvcmtzIHdpdGhpbiBzdHlsZXNoZWV0cywgaWYgdXNpbmcgdGhlIHtjbXNfc3R5bGVzaGVldH0gdGFnIGluIHlvdXIgcGFnZSB0ZW1wbGF0ZS4gIEJlY2F1c2UgdGhlIHNtYXJ0eSBzeW50YXggaXMgc2xpZ2h0bHkgZGlmZmVyZW50IGluc2lkZSB0aGUge2Ntc19zdHlsZXNoZWV0fSB0YWcgeW91IHV0aWxpemUgdGhlIG1vZHVsZSB1c2luZyB0aGUgW1sgYW5kIF1dIGRlbGltaXRlcnMuICBpLmU6IDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz5kaXYuaGVhZGVyIHsgYmFja2dyb3VuZDogdXJsKFtbQ0dTbWFydEltYWdlIHNyYz0mIzAzOTt1cGxvYWRzL3BpY3R1cmUuanBnJiMwMzk7IG5vdGFnPTFdXSk7IH08L2NvZGU+PC9wPg0KPHA+QmVjYXVzZSBzdHlsZXNoZWV0cyBhcmUgZ2VuZXJhdGVkIG9uIG1vZGlmaWNhdGlvbiBhbmQgc3RvcmVkIGluIHRoZSBmaWxlc3lzdGVtIHRoZXJlIGlzIG5vIHdheSB0byBkZXRlcm1pbmUgZHVyaW5nIHRoZSByZXF1ZXN0IHdoaWNoIGJyb3dzZXIgaXMgcmVxdWVzdGluZyB0aGUgc3R5bGVzaGVldCwgdGhlcmVmb3JlIGVtYmVkZGluZyB3aWxsIGJlIGRvbmUgc3RyaWN0bHkgYmFzZWQgdXBvbiB0aGUgcHJlc2Vuc2Ugb2YgdGhlIG5vZW1iZWQgcGFyYW1ldGVyLiAgSWYgeW91IGhhdmUgY2hvc2VuIHRvIGVtYmVkIGltYWdlcyBkaXJlY3RseSBpbnRvIHlvdXIgc3R5bGVzaGVldHMsIFlvdSBtYXkgbmVlZCB0byBhZGQgYWRkaXRpb25hbCBzdHlsZXNoZWV0IHN1cHBvcnQgZm9yIHRoZSBicm93c2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IGVtYmVkZGVkIGltYWdlcy4gIGkuZTogIElFNi48L3A+DQo8aDM+QXV0b21hdGljIFByb2Nlc3Npbmc8L2gzPg0KPHA+VGhpcyBtb2R1bGUgaW5jbHVkZXMgYSBzbWFydHkgYmxvY2sgdGFnIGNhbGxlZCA8Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e2Nnc2lfY29udmVydH08L2NvZGU+IHRoYXQgY2FuIHN1cnJvdW5kIGEgYmxvY2sgb2YgaHRtbCwgb3Igb3RoZXIgc21hcnR5IHRhZ3MgdG8gYWxsb3cgYXV0b21hdGljIGltYWdlIHByb2Nlc3NpbmcuICBUaGlzIHRhZyBjYW4gYmUgdXNlZCBsaWtlOiAoZm9yIGV4YW1wbGUpOjwvcD4NCjxwcmU+PGNvZGUgc3R5bGU9JnF1b3Q7Y29sb3I6IGJsdWU7JnF1b3Q7PntjZ3NpX2NvbnZlcnR9e2NvbnRlbnR9ey9jZ3NpX2NvbnZlcnR9PC9jb2RlPjwvcHJlPg0KPHA+VGhpcyB3aWxsIGFsbG93IHlvdXIgdXNlcnMgdG8gaW5jbHVkZSBpbWFnZXMgaW50byBwYWdlcyB1c2luZyB0aGUgbm9ybWFsIHd5c2l3eWcgdG9vbHMsIGFuZCB0byBoYXZlIHRoZW0gYXV0b21hdGljYWxseSBwcm9jZXNzZWQgYW5kIGVtYmVkZGVkIGludG8gdGhlIHBhZ2UgdXNpbmcgdGhlIG1hZ2ljIG9mIHtDR1NtYXJ0SW1hZ2V9LiBpLmU6IFNlZSB0aGUgZm9sbG93aW5nIGNvZGU6PC9wPg0KPHByZT48Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e2Nnc2lfY29udmVydCBmaWx0ZXJfZ3JheXNjYWxlPTEgZmlsdGVyX3dhdGVybWFyaz0xfXtjb250ZW50fXsvY2dzaV9jb252ZXJ0fTwvY29kZT48L3ByZT4NCjxwPlRoZSBhYm92ZSBjb2RlIHdpbGwgY2FwdHVyZSBhbGwgaW1hZ2UgdGFncywgYW5kIGNvbnZlcnQgdGhlbSB0byBncmF5c2NhbGUgYW5kIHRoZW4gYXBwbHkgdGhlIHdhdGVybWFyayAoYWNjb3JkaW5nIHRvIHRoZSBzZXR0aW5ncyBpbiB0aGUgQ0dFeHRlbnNpb25zIG1vZHVsZSkuICBBbGwgb2YgdGhlIHBhcmV0ZXJzIGF2YWlsYWJsZSB0byB0aGUgPGNvZGUgc3R5bGU9JnF1b3Q7Y29sb3I6IGJsdWU7JnF1b3Q7PntDR1NtYXJ0SW1hZ2V9PC9jb2RlPiB0YWcgYXJlIGF2YWlsYWJsZSB0byB0aGlzIHRhZyAoZm9yIGltYWdlIHNjYWxpbmcgZXRjLikuICBBZGRpdGlvbmFsbHksIHR3byBuZXcgcGFyYW1ldGVycyBoYXZlIGJlZW4gaW50cm9kdWNlZDogPHN0cm9uZz5tYXhfd2lkdGg8L3N0cm9uZz4gYW5kIDxzdHJvbmc+bWF4X2hlaWdodDwvc3Ryb25nPiB3aGljaCBjYW4gYmUgdXNlZCB0byBzZXQgYSBtYXhpbXVtIHNpemUgZm9yIGltYWdlcy4uPC9wPg0KPGRpdiBzdHlsZT0mcXVvdDttYXJnaW4tbGVmdDogM2VtOyZxdW90Oz48c3Ryb25nIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7Pk5vdGU6PC9zdHJvbmc+DQo8cD5UaGlzIHRhZyBwYXJzZXMgdGhlIEhUTUwgY29udGVudCBiZXR3ZWVuIHRoZSBzdGFydCBhbmQgZW5kIHRhZ3MgdG8gZmluZCB0aGUgPGltZz4gdGFncy4gIEl0IHRoZW4gd2lsbCBvdXRwdXQgc3ludGFjdGljYWxseSB2YWxpZCBIVE1MIGZvciB0aGUgc3Vic2V0IG9mIGNvZGUgaXQgd2FzIHByb3ZpZGVkLiAgVGhlcmVmb3JlIGl0IGlzIGltcG9ydGFudCB0aGF0IHRoZSBzbmlwcGV0IG9mIEhUTUwgcGFzc2VkIHRvIHRoaXMgdGFnIGJlIGludGFjdCBhbmQgYXMgY2xvc2UgdG8gdmFsaWQgYXMgcG9zc2libGUuICA8c3Ryb25nPlVzZSB3aXRoIGNhdXRpb24uPC9zdHJvbmc+DQo8L2Rpdj4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCBvciBidXkgY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2UgdmlzaXQgY2FsZ3V5JiMwMzk7cw0KbW9kdWxlIGhvbWVwYWdlIGF0IDxhIGhyZWY9Imh0dHA6Ly9jYWxndXkxMDAwLmNvbSI+Y2FsZ3V5MTAwMC5jb208L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciwgY2FsZ3V5MTAwMCwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseS48L2xpPiAgDQo8L3VsPg0KPGgzPlJlcXVpcmVtZW50czwvaDM+DQo8cD5UaGlzIG1vZHVsZSBtYWtlcyBldnRlbnNpdmUgdXNlIG9mIHRoZSBHRCBJbWFnZSBwcm9jZXNzaW5nIGxpYnJhcnkgdG8gZG8gaW1hZ2UgbWFuaXB1bGF0aW9uLiAgQWRkaXRpb25hbGx5LCB0aGUge2Nnc2lfY29udmVydH0gcGx1Z2luIG1ha2VzIGV4dGVuc2l2ZSB1c2Ugb2YgdGhlIHNpbXBsZXhtbCBhbmQgWE1MRG9tIGNsYXNzZXMgYnVpbHQgaW4gdG8gcGhwLiAgVGhlcmUgbWF5IGJlIG90aGVyIGFkZGl0aW9uYWwgcmVxdWlyZW1lbnRzLiAgSWYgeW91IGFyZSBleHBlcmllbmNpbmcgZXJyb3JzIHlvdSBzaG91bGQgZW5zdXJlIHRoYXQgZXJyb3IgcmVwb3J0aW5nIGlzIGVuYWJsZWQsIGFuZCB0aGF0IHlvdSBoYXZlIGFuYWx5emVkIHlvdXIgZXJyb3IgbG9ncy48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwOCwgUm9iZXJ0IENhbXBiZWwgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPjxjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPg0KPHA+SG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkDQphcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUNCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMNCk1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiANCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPg0KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQpidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCk9yIHJlYWQgaXQgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5vbmxpbmU8L2E+PC9wPic7CiRsYW5nWydpbmZvX2FsaWFzZXMnXSA9ICdBbGlhZXMgY2FuIGJlIHVzZWQgdmlhIHRoZSBhbGlhczEgdGhyb3VnaCBhbGlhczUgb3B0aW9ucyBvbiB0aGUgQ0dTbWFydEltYWdlIHRhZyB0byBjb21iaW5lIG51bWVyb3VzIGZyZXF1ZW50bHkgdXNlZCBvcHRpb25zJzsKJGxhbmdbJ2luZm9fY3JvcHRvZml0X2RlZmF1bHRfbG9jJ10gPSAnU3BlY2lmeSB0aGUgZGVmYXVsdCBsb2NhdGlvbiBmcm9tIHdoaWNoIHRvICZxdW90O2Nyb3AgdG8gZml0JnF1b3Q7IHRoaXMgd2lsbCBlZmZlY3QgYWxsIGNyb3AgdG8gZml0IG9wZXJhdGlvbnMgdW5sZXNzIHRoZSBsb2NhdGlvbiBwYXJhbWV0ZXIgb24gdGhlIGZpbHRlcl9jcm9wdG9maXQgYXR0cmlidXRlIG92ZXJyaWRlcyBpdC4gIERlZmF1bHQgbG9jYXRpb24gaXMgJnF1b3Q7Y2VudGVyJnF1b3Q7JzsKJGxhbmdbJ2ltYWdlX3VybF9oYXNjYWNoZWRpciddID0gJ0RvZXMgdGhlIFVSTCBhYm92ZSBhY291bnQgZm9yIHRoZSBjYWNoZSBkaXJlY3RvcnkgKF9DR1NtYXJ0SW1hZ2UpJzsKJGxhbmdbJ2ltYWdlX3VybF9wcmVmaXgnXSA9ICdJbWFnZSBVcmwgUHJlZml4JzsKJGxhbmdbJ2luZm9fY2FjaGVfYWdlJ10gPSAnU3BlY2lmeSB0aGUgbWF4aW11bSBhZ2Ugb2YgYSBmaWxlIChpbiBkYXlzKSBiZWZvcmUgaXQgd2lsbCBiZSByZW1vdmVkIGFuZCBmb3JjZWQgdG8gcmVnZW5lcmF0ZS4gIFRoaXMgaXMgdXNlZnVsIGlmIHlvdSBoYXZlIGNoYW5nZWQgc29tZSBvZiB0aGUgcGFyYW1ldGVycyB1c2VkIHdoZW4gZ2VuZXJhdGluZyBpbWFnZXMsIG9yIHRvIGNvbnRyb2wgdGhlIGFtb3VudCBvZiBkaXNrIHNwYWNlIHVzZWQuICBFbnRlcmluZyAwIHdpbGwgZGlzYWJsZSBhdXRvbWF0aWMgZmlsZSBkZWxldGlvbic7CiRsYW5nWydpbmZvX2VtYmVkX21vZGUnXSA9ICdUaGlzIHNlbGVjdGlvbiBkZXRlcm1pbmVzIGhvdyB0aGUge3NtYXJ0aW1nfSB0YWcgd2lsbCBnZW5lcmF0ZSBvdXRwdXQuICBJZiAmcXVvdDtub25lJnF1b3Q7IGlzIHNlbGVjdGVkIG5vIGltYWdlIGVtYmVkZGluZyB3aWxsIGJlIHBlcmZvcm1lZC4gIElmICZxdW90O3NtYXJ0JnF1b3Q7IGlzIHNlbGVjdGVkIHRoZW4gdGhlIHN5c3RlbSB3aWxsIGRlY2lkZSBiYXNlZCBvbiB0aGUgaW1hZ2Ugc2l6ZSwgdHlwZSwgYW5kIHRoZSBicm93c2VyIHRoYXQgaXMgcmVxdWVzdGluZyB0aGUgaW1hZ2UuICBPdGhlciBvcHRpb25zIGluY2x1ZGUgYWx3YXlzIGVtYmVkZGluZyBiYXNlZCBvbiB0aGUgaW1hZ2Ugc2l6ZSwgb3IgdGhlIGltYWdlIHR5cGUuJzsKJGxhbmdbJ2luZm9fZW1iZWRfc2l6ZWxpbWl0J10gPSAnSWYgdGhlIGVtYmVkZGluZyBvcHRpb24gaXMgZGV0ZXJtaWVkIGJ5IHRoZSBpbWFnZSBzaXplLCBzcGVjaWZ5IHRoZSBtYXhpbXVtIHNpemUgKGluIGtpbG9ieXRlcykgZm9yIGltYWdlcyB0byBiZSBlbWJlZGRlZCAoMzIgaXMgcmVjb21tZW5kZWQpLic7CiRsYW5nWydpbmZvX2VtYmVkX3R5cGVzJ10gPSAnSWYgdGhlIGVtYmVkZGluZyBvcHRpb24gaXMgZGV0ZXJtaW5lZCBieSB0aGUgaW1hZ2UgdHlwZSwgc3BlY2lmeSB0aGUgZXh0ZW5zaW9ucyBvZiB0aGUgZmlsZXMgdGhhdCBzaG91bGQgYmUgZW1iZWRkZWQgaGVyZSBzZXBhcmF0ZWQgYnkgY29tbWFzLiAgVGhpcyBvcHRpb24gaXMgbm90IGNhc2Ugc2Vuc2l0aXZlJzsKJGxhbmdbJ2luZm9faW1hZ2VfdXJsX2hhc2NhY2hlZGlyJ10gPSAnSWYgeW91ciBDRE4gaXMgcG9pbnRpbmcgZGlyZWN0bHkgYXQgdGhlIGltYWdlIGNhY2hlIGRpcmVjdG9yeSB0aGVuIHlvdSBtYXkgd2FudCB0byB0dXJuIHRoaXMgb3B0aW9uIG9uLic7CiRsYW5nWydpbmZvX2ltYWdlX3VybF9wcmVmaXgnXSA9ICdTcGVjaWZ5IHRoZSBVUkwgdG8gcHJlZml4IHRvIGFsbCBnZW5lcmF0ZWQgaW1hZ2VzLiAgQnkgZGVmYXVsdCB0aGlzIGlzIHRoZSB1cGxvYWRzIFVSTCwgaG93ZXZlciBpZiB5b3UgaGF2ZSB5b3VyIG93biBDRE4gKG9yIG11bHRpcGxlIGRvbWFpbnMgcG9pbnRpbmcgYXQgdGhlIHNhbWUgZGlyZWN0b3J5KSBZb3UgbWF5IHdhbnQgdG8gc3BlY2lmeSBhIGRpZmZlcmVudCBuYW1lIGhlcmUnOwokbGFuZ1snbWF4X2NhY2hlX2FnZSddID0gJ0FudGFsbCBkYWdlciAmYXJpbmc7IG1lbGxvbWxhZ3JlIGZpbGVyJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnQSBzbWFydCBpbWFnZSB0YWcgZ2VuZXJhdGlvbiBtb2R1bGUgZm9yIENNU01TJzsKJGxhbmdbJ21zZ19hbGlhc2VzX3VwZGF0ZWQnXSA9ICdBbGlhc2VyIG9wcGRhdGVydCc7CiRsYW5nWydtc2dfY2FjaGVjbGVhbmVkJ10gPSAnTWVsbG9tbGFnZXIgdCZvc2xhc2g7bXQuICVkIGZpbGVyIGZqZXJuZXQnOwokbGFuZ1snbXNnX2NhY2hlcmVtb3ZlZCddID0gJ01lbGxvbWxhZ2VyIGZqZXJuZXQnOwokbGFuZ1snbXNnX3ByZWZzdXBkYXRlZCddID0gJ0lubnN0aWxsaW5nZW5lIG9wcGRhdGVydCc7CiRsYW5nWydub25lJ10gPSAnSW5nZW4nOwokbGFuZ1snb3B0aW9ucyddID0gJ1ZhbGcnOwokbGFuZ1sncGFyYW1fYWxpYXMnXSA9ICdUaGUgQ0dTbWFydEltYWdlIGFkbWluIHBhbmVsIGFsbG93cyBjcmVhdGluZyBudW1lcm91cyBjb21tYW5kIGFsaWFzIHRvIGNvbWJpbmUgYSBmcmVxdWVudGx5IHVzZWQgcGF0dGVybiBvZiBhcmd1bWVudHMgaW50byBvbmUgbmFtZS4gIFRvIHVzZSB0aGVzZSBhbGlhc2VzIHVzZSBhbiBhcmd1bWVudCBvZiB0aGUgZm9ybSBhbGlhcyMjPWFsaWFzX25hbWUgaS5lOiAgYWxpYXMxPWZvbyBhbGlhczI9Zm9vLic7CiRsYW5nWydwYXJhbV9hbHQnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSBhbHQgYXR0cmlidXRlLiAgTm90ZSwgaWYgdGhpcyBpcyBub3Qgc3BlY2lmaWVkIGEgdmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoaXMgYXR0cmlidXRlIHNvIHRoYXQgbW9zdCBnZW5lcmF0ZWQgaW1nIHRhZ3Mgd2lsbCB2YWxpZGF0ZS4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBhdXRvIGNhbGN1bGF0aW9uIHdpdGggdGhlICZxdW90O25vYXV0byZxdW90OyBwYXJhbWV0ZXInOwokbGFuZ1sncGFyYW1fY2xhc3MnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgYWxsb3dzIHNwZWNpZnlpbmcgb25lIG9yIG1vcmUgY2xhc3NlcyB0byBpbmNsdWRlIG9uIHRoZSB0YWcuICBpLmU6IGNsYXNzPSZxdW90O2ZhbmN5Ym94LHRodW1ibmFpbCZxdW90Oyc7CiRsYW5nWydwYXJhbV9maWx0ZXJfYmx1ciddID0gJyhhbnl0aGluZykgU3BlY2lmeSBhbnkgdmFsdWUgZm9yIHRoaXMgcGFyYW1ldGVyIHRvIGFkZCBhIGJsdXIgZmlsdGVyIHRvIHRoZSBpbWFnZSc7CiRsYW5nWydwYXJhbV9maWx0ZXJfYnJpZ2h0bmVzcyddID0gJyhpbnRlZ2VyKSBJbmNyYXNlIHRoZSBicmlnaHRuZXNzIG9mIHRoZSBwcm9jZXNzZWQgaW1hZ2UgYnkgdGhlIGludGVnZXIgdmFsdWUgc3BlY2lmaWVkJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jb2xvcml6ZSddID0gJyhyLGcsYlssYWxwaGFdKSAtIExpa2UgZmlsdGVyX2dyYXlzY2FsZSBob3dldmVyIHlvdSBjYW4gc3BlY2lmeSB0aGUgY29sb3IgYW5kIGFscGhhIHZhbHVlJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jb250cmFzdCddID0gJyhpbnRlZ2VyKSBDaGFuZ2UgdGhlIGNvbnRyYXN0IG9mIHRoZSBpbWFnZSBieSB0aGUgaW50ZWdlciB2YWx1ZSBzcGVjaWZpZWQnOwokbGFuZ1sncGFyYW1fZmlsdGVyX2Nyb3AnXSA9ICcocGVyY2VudFssaF9hbGlnbix2X2FsaWduXSkgLSBQZXJmb3JtIGNyb3BwaW5nIG9uIHRoZSBpbWFnZSBzcGVjaWZpZWQuIENyb3AgcGFyYW1lZXRlcnMgYXJlIHNwZWNpZmllZCBhcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHBhcmFtZXRlcnMuICBUaGUgZmlyc3QgKHJlcXVpcmVkKSB2YWx1ZSBpcyBhbiBpbnRlZ2VyIHBlcmNlbnRhZ2Ugb2YgdGhlIG9yaWdpbmFsIGltYWdlIHNpemUuICBUaGUgb3B0aW9uYWwgc2Vjb25kIGFuZCB0aGlyZCBwYXJhbWV0ZXJzIGFyZSBvbmUgb2YgbCxjLHIgKGxlZnQsY2VudGVyLHJpZ2h0KSBhbmQgdCxjLGIgKHRvcCxjZW50ZXIsYm90dG9tKSBzcGVjaWZ5aW5nIHdoZXJlIHRoZSBsb2NhdGlvbiB3aXRoaW4gdGhlIHNvdXJjZSBpbWFnZSB0byBjcm9wIGZyb20uICBpLmU6IGNyb3A9MzMsYixyIHRvIGdyYWIgYSBjcm9wIG9mIDMzJSBmcm9tIHRoZSBib3R0b20gcmlnaHQgb2YgdGhlIHNvdXJjZSBpbWFnZS4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX2Nyb3B0b2ZpdCddID0gJyh3aWR0aCxoZWlnaHRbLGxvY2F0aW9uXSkgLSBQZXJmb3JtIGEgY3JvcHRvZml0IG9uIHRoZSBpbWFnZSBzcGVjaWZpZWQuIFRoaXMgYXR0ZW1wdHMgdG8gcmVzY2FsZSB0aGUgaW1hZ2UgdG8gdGhlIGRlc3RpbmF0aW9uIHNpemUgd2hpbGUgcmVhdGluaW5nIGFzcGVjdCByYXRpbywgdGhlbiBmb2N1cyBvbiB0aGUgc2VsZWN0ZWQgYXJlYSBvZiB0aGUgcmVzaXplZCBpbWFnZS4gIENyb3AgdG8gZml0IHBhcmFtZXRlcnMgYXJlIHNwZWNpZmllZCBhcyB0aGUgZGVzaXJlZCB3aWR0aCBhbmQgaGVpZ2h0IGZvciB0aGUgZGVzdGluYXRpb24gaW1hZ2UgYWxvbmcgd2l0aCBhbiAob3B0aW9uYWwpIGxvY2F0aW9uIGNvZGUuICB2YWxpZCBsb2NhdGlvbiBjb2RlcyBhcmUgdGwsdGMsdHIsY2wsYyxjcixibCxiLGJyIGZvciB0aGUgOSByZWxhdGl2ZSBwb3NpdGlvbnMgd2l0aGluIHRoZSBpbWFnZS4gIElmIGEgbG9jYXRpb24gaXMgbm90IHNwZWNpZmllZCBhIHByZWZlcmVuY2Ugd2lsbCBiZSB1c2VkLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgJnF1b3Q7YyZxdW90OyB0byBjcm9wLXRvLWZpdCBmcm9tIHRoZSBjZW50ZXIgb2YgdGhlIHNvdXJjZSBpbWFnZS4gIEF0IG5vIHRpbWUgd2lsbCB0aGlzIGZpbHRlciBwZXJmb3JtIGFueSB1cHNjYWxpbmcuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9lZGdlZGV0ZWN0J10gPSAnKGFueXRoaW5nKSBIaWxpZ2h0IHRoZSBlZGdlcyBpbiB0aGUgaW1hZ2UnOwokbGFuZ1sncGFyYW1fZmlsdGVyX2VtYm9zcyddID0gJyhhbnl0aGluZykgRW1ib3NzIHRoZSBpbWFnZSc7CiRsYW5nWydwYXJhbV9maWx0ZXJfZmxpcCddID0gJyhtb2RlKSAtIFBlcmZvcm0gYSBmbGlwIG9uIHRoZSBzcGVjaWZpZWQgaW1hZ2UuICBTcGVjaWZ5IDAgZm9yIGhvcml6b250YWwsIDEgZm9yIHZlcnRpY2FsLCBhbmQgMiBmb3IgZmxpcCBpbiBib3RoIGRpcmVjdGlvbnMuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9ncmF5c2NhbGUnXSA9ICcoYW55dGhpbmcpIENvbnZlcnQgdGhlIGltYWdlIHRvIGdyYXlzY2FsZSc7CiRsYW5nWydwYXJhbV9maWx0ZXJfbWVhbnJlbW92YWwnXSA9ICcoYW55dGhpbmcpIEF0dGVtcHQgdG8gYWNoaWV2ZSBhICZxdW90O3NrZXRjaHkmcXVvdDsgZWZmZWN0JzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9uZWdhdGUnXSA9ICcoYW55dGhpbmcpIE5lZ2F0ZSB0aGUgaW1hZ2UnOwokbGFuZ1sncGFyYW1fZmlsdGVyX3BpeGVsYXRlJ10gPSAnKHNpemVbLGFkdmFuY2VkXSkgUGl4ZWxhdGUgdGhlIGltYWdlLCBzcGVjaWZ5IGFuIGludGVnZXIgc2l6ZSBhbmQgYW4gb3B0aW9uYWwgYm9vbGVhbiAoZGVmYXVsdCBpcyBmYWxzZSkgdG8gZW5hYmxlIGFkdmFuY2VkIHBpeGVsYXRpb24nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3Jlc2l6ZSddID0gJ3R5cGUsbnVtYmVyWyxudW1iZXJdIC0gUGVyZm9ybSBhIHJlc2l6ZSBvZiB0aGUgc291cmNlIGltYWdlLiAgVGhlIHJlc2l6ZSBmaWx0ZXIgZG9lcyBub3QgcGVyZm9ybSBhbnkgdXBzY2FsZSBjaGVja2luZy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5wLG51bWJlciAtIFBlcmZvcm0gYSBzaW1wbGUgcmVzY2FsZSB0byBhIGNlcnRhaW4gcGVyY2VudGFnZS4gIGkuZTogIHJlc2l6ZT1wLDUwIHRvIHJlc2l6ZSB0byA1MCUgb2YgdGhlIG9yaWdpbmFsIHNpemUuPC9saT4NCiAgPGxpPncsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCB3aWR0aCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPXcsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIHdpZHRoIG9mIDgwIHBpeGVscy48L2xpPg0KICA8bGk+aCxudW1iZXIgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgc3BlY2lmaWVkIGhlaWdodCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPWgsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIGhlaWdodCBvZiA4MCBwaXhlbHMuPC9saT4NCiAgPGxpPmUsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSByZXNpemluZyB0aGUgbGFyZ2VzdCBlZGdlIHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUgKHdoaWxlIHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiBpLmU6IHJlc2l6ZT1lLDEwMCB0byBjcmVhdGUgYSB0aHVtYm5haWwgd2hvcyBsYXJnZXN0IGVkZ2UgaXMgMTAwIHBpeGVscy4NCiAgPGxpPmMseCx5IC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIGN1c3RvbSBzaXplICh3aXRob3V0IHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgaS5lOiBmaWx0ZXJfcmVzaXplPWMsNTAsNzUgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHRoYXQgaXMgNTB4NzUgcGl4ZWxzLjwvbGk+Lg0KPC91bD4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3Jlc2l6ZXRvZml0J10gPSAnKHdpZHRoLGhlaWdodFssY29sb3JbLGFscGhhXV0pIC0gUGVyZm9ybSBhIHJlc2l6ZSBvbiB0aGUgaW1hZ2Ugc3BlY2lmaWVkLiBUaGlzIGF0dGVtcHRzIHRvIHJlc2NhbGUgdGhlIGltYWdlIHRvIHRoZSBkZXN0aW5hdGlvbiBzaXplIHdoaWxlIHJlYXRpbmluZyBhc3BlY3QgcmF0aW8sIHRoZSBpbWFnZSBpcyBjZW50ZXJlZCBpbiB0aGUgYm94IHNwZWNpZmllZCAoZWl0aGVyIGhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5IGRlcGVuZGluZyB1cG9uIGFzcGVjdCByYXRpbyBhbmQgdGhlIGRlc3RpbmF0aW9uIHNpemUsIGFuZCB0aGUgaW1hZ2UgaXMgc3Vycm91bmRlZCBieSB0aGUgc3VwcGxpZWQgY29sb3IuICBDb2xvcnMgY2FuIGJlIHNwZWNpZmllZCBieSBuYW1lIChzZWUgdGhlIFgxMSBjb2xvciBuYW1lcyksIG9yIGJ5ICNubm5ubm4gaGV4YWRlY2ltYWwgZm9ybWF0LCBvciBhcyByZ2IgdmFsdWVzIHNlcGFyYXRlZCBieSBhIDogaS5lOiAgZmlsdGVyX2Nyb3B0b2ZpdD02MDAsNDAwLCNmZjAwMDAuICBUaGUgc3BlY2lhbCBjb2xvciB2YWx1ZSAmcXVvdDt0cmFuc3BhcmVudCZxdW90OyBjYW4gYmUgc3BlY2lmaWVkIHRvIGZvcmNlIHRoZSBiYWNrZ3JvdW5kIHRvIGJlIHRyYW5zcGFyZW50LiAgIEFuIGFscGhhIHZhbHVlIG1heSBiZSBzcGVjaWZpZWQgYmV0d2VlbiAwIGFuZCAxMjcgdG8gc3BlY2lmeSBkaWZmZXJlbnQgZGVncmVlcyBvZiB0cmFuc2x1Y2VuY3kgZm9yIHRoZSBiYWNrZ3JvdW5kLiAgIEF0IG5vIHRpbWUgd2lsbCB0aGlzIHBsdWdpbiBwZXJmb3JtIGFueSB1cHNjYWxpbmcuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yb3RhdGUnXSA9ICcoYW5nbGUpIFNwZWNpZnkgdGhlIGludGVnZXIgYW5nbGUgKGNvdW50ZXIgY2xvY2t3aXNlKSB0byByb3RhdGUgdGhlIGltYWdlLCBUaGUgaW1hZ2UgaXMgcm90YXRlZCBhYm91dCBpdHMgY2VudGVyLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfcm91bmRlZGNvcm5lcnMnXSA9ICcocmFkaXVzKSBTcGVjaWZ5IGFuIGludGVnZXIgcmFkaXVzIChpbiBwaXhlbHMpIGZvciByb3VuZGluZyB0aGUgY29ybmVycy4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3dhdGVybWFyayddID0gJyhhbnl0aGluZyksIFNwZWNpZnkgdGhhdCB0aGUgd2F0ZXJtYXJrIChhcyBzcGVjaWZpZWQgaW4gdGhlIENHRXh0ZW5zaW9ucyBhZG1pbiBwYW5lbCkgc2hvdWxkIGJlIGFwcGxpZWQgdG8gdGhlIGltYWdlJzsKJGxhbmdbJ3BhcmFtX2hlaWdodCddID0gJ1VzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBzcGVjaWZ5IHRoZSB2YWx1ZSBmb3IgdGhlIGhlaWdodCBhdHRyaWJ1dGUuICBOb3RlLCBpZiB0aGlzIGlzIG5vdCBzcGVjaWZpZWQgYSB2YWx1ZSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY2FsY3VsYXRlZCBmb3IgdGhpcyBhdHRyaWJ1dGUgc28gdGhhdCBtb3N0IGdlbmVyYXRlZCBpbWcgdGFncyB3aWxsIHZhbGlkYXRlLiAgWW91IGNhbiBvdmVycmlkZSB0aGlzIGF1dG8gY2FsY3VsYXRpb24gd2l0aCB0aGUgJnF1b3Q7bm9hdXRvJnF1b3Q7IHBhcmFtZXRlci4gIFRoaXMgcGFyYW1ldGVyIHdpbGwgYWxzbyBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlICZxdW90O3dpZHRoJnF1b3Q7IHBhcmFtZXRlciB0byBwZXJmb3JtIGEgZmluYWwgcmVzaXppbmcgb3IgY3JvcHRvZml0IGZpbHRlciAodW5sZXNzIHRoZSAmcXVvdDtub2F1dG9zY2FsZSZxdW90OyBwYXJhbWV0ZXIgaXMgYWxzbyBzdXBwbGllZCknOwokbGFuZ1sncGFyYW1faWQnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgYWxsb3dzIHNwZWNpZnlpbmcgYW4gaWQgYXR0cmlidXRlIHRvIGluY2x1ZGUgb24gdGhlIHRhZy4gIGkuZTogaWQ9JnF1b3Q7c29tZXRhZyZxdW90Oyc7CiRsYW5nWydwYXJhbV9tYXhfaGVpZ2h0J10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSB7Y2dzaV9jb252ZXJ0fSB0YWcgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBtYXhpbXVtIGhlaWdodCBmb3IgdGhlIGNvbnZlcnRlZCBpbWFnZXMnOwokbGFuZ1sncGFyYW1fbWF4X3dpZHRoJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSB7Y2dzaV9jb252ZXJ0fSB0YWcgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBtYXhpbXVtIHdpZHRoIGZvciB0aGUgY29udmVydGVkIGltYWdlcyc7CiRsYW5nWydwYXJhbV9uYW1lJ10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIHNwZWNpZnkgdGhlIHZhbHVlIGZvciB0aGUgbmFtZSBhdHRyaWJ1dGUuJzsKJGxhbmdbJ3BhcmFtX25vYXV0byddID0gJ0RvIG5vdCBhdXRvbWF0aWNhbGx5IGNhbGN1YWx0ZSBwYXJhbWV0ZXJzIGZvciB0aGUgaW1nIHRhZy4gIFRoaXMgbWF5IGNhdXNlIHlvdXIgc2l0ZSB0byBmYWlsIHZhbGlkYXRpb24gaWYgc29tZSByZXF1aXJlZCBwYXJhbWV0ZXJzICh3aWR0aCxoZWlnaHQsYWx0KSBhcmUgbm90IHNwZWNpZmllZCc7CiRsYW5nWydwYXJhbV9ub2F1dG9zY2FsZSddID0gJ2lmIHdpZHRoIGFuZCBoZWlnaHQgcGFyYW1ldGVycyBhcmUgc3BlY2lmaWVkLCB0aGlzIHBhcmFtZXRlciB3aWxsIGRpc2FibGUgYXV0b21hdGljIHNjYWxpbmcgb2YgdGhlIGltYWdlLic7CiRsYW5nWydwYXJhbV9ub2JjYWNoZSddID0gJ0RvIG5vdCBhbGxvdyB0aGUgcmVzaXplZCBpbWFnZSB0byBjYWNoZSBpbiB0aGUgYnJvd3NlciAodXNlZnVsIGZvciBkZXZlbG9wbWVudCBwdXJwb3NlcykgdGhpcyBhZGRzIGEgdW5pcXVlIG51bWJlciBhcyBhIHBhcmFtZXRlciB0byB0aGUgaW1hZ2Ugd2hpY2ggd2lsbCBmb3JjZSB0aGUgYnJvd3NlciBub3QgdG8gY2FjaGUgdGhlIGltYWdlLic7CiRsYW5nWydwYXJhbV9ub2VtYmVkJ10gPSAnRm9yY2UgdGhlIGltYWdlIHRvIG5vdCBlbWJlZC4gIFJlZ2FyZGxlc3Mgb2Ygc2V0dGluZ3MgaW4gdGhlIGFkbWluIHBhbmVsLCB0aGUgVVJMIGFuZCB0YWcgZ2VuZXJhdGVkIHdpbGwgYmUgdG8gYSBmaWxlIG9uIHRoZSBzZXJ2ZXIuICBObyBlbWJlZGRpbmcgd2lsbCBiZSBwZXJmb3JtZWQnOwokbGFuZ1sncGFyYW1fbm90aW1lY2hlY2snXSA9ICdEaXNhYmxlIHRpbWUgY2hlY2tpbmcgb2YgY2FjaGVkIGZpbGVzLic7CiRsYW5nWydwYXJhbV9ub3JlbW90ZSddID0gJ0RvIG5vdCBhbGxvdyByZXRyaWV2aW5nIHNvdXJjZXMgZnJvbSByZW1vdGUgVVJMUyc7CiRsYW5nWydwYXJhbV9ub3JvdGF0ZSddID0gJ0RvIG5vdCBhdHRlbXB0IHRvIHJlYWQgZXhpZiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBmaWxlIGFuZCBjb3JyZWN0IGltYWdlIHJvdGF0aW9uJzsKJGxhbmdbJ3BhcmFtX25vdGFnJ10gPSAnRG8gbm90IG91dHB1dCBhbiBpbWcgdGFnLCBvbmx5IHRoZSB1cmwgdG8gdGhlIGNhY2hlZCBpbWFnZS4gIFRoaXMgaGFzIG5vIGVmZmVjdCB3aGVuIENHU21hcnRJbWFnZSBpcyB1c2VkIGZyb20gd2l0aGluIGEgc3R5bGVzaGVldC4nOwokbGFuZ1sncGFyYW1fb3ZlcndyaXRlJ10gPSAnRGlzYWJsZSBhbGwgY2FjaGluZyBhbmQgZm9yY2UgcmUtY2FsY3VsYXRpb24gb2YgYWxsIGZpbHRlcnMnOwokbGFuZ1sncGFyYW1fcXVhbGl0eSddID0gJ1NwZWNpZnkgdGhlIHF1YWxpdHkgb2YgdGhlIG91dHB1dCBpbWFnZS4gIEEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxMDAuICBUaGUgZGVmYXVsdCB2YWx1ZSBpZiBub3Qgc3BlY2lmaWVkIGlzIDc1Lic7CiRsYW5nWydwYXJhbV9yZWwnXSA9ICdVc2VkIHdoZW4gYnVpbGRpbmcgYW4gaW1hZ2UgdGFnIGFsbG93cyBzcGVjaWZ5aW5nIGFuIG9wdGlvbmFsIHJlbCBhdHRyaWJ1dGUgKHR5cGljYWxseSB1c2VkIHdpdGggamF2YXNjcmlwdCB0eXBlIGFsYnVtcykuIGkuZTogcmVsPSZxdW90O2FsYnVtJnF1b3Q7JzsKJGxhbmdbJ3BhcmFtX3NpbGVudCddID0gJ1NpbGVudGx5IGlnbm9yZSBlcnJvcnMnOwokbGFuZ1sncGFyYW1fc3JjJ10gPSAnU3BlY2lmeSB0aGUgc291cmNlIGZvciB0aGUgaW1hZ2UgcHJvY2Vzc2luZyAoaWYgYW55KSBvciB0aGUgZ2VuZXJhdGVkIGltZyB0YWcuICBOb3RlLCB0aGlzIHBhcmFtZXRlciBpcyBmbGV4aWJsZSwgYW5kIHRoZSBtb2R1bGUgd2lsbCBhdHRlbXB0IG1hbnkgbWV0aG9kcyB0byBmaW5kIHRoZSBzb3VyY2UgaW1hZ2UgZmlsZSBvbiB0aGUgd2ViIHNlcnZlciBhcyBmb2xsb3dzOg0KPHVsPg0KICA8bGk+Rmlyc3QgbG9vayB0byBzZWUgaWYgdGhlIHNwZWNpZmllZCBzcmMgdmFsdWUgZXhpc3RzIGFzIGEgZmlsZSBvbiB0aGUgZmlsZXN5c3RlbS48L2xpPg0KICA8bGk+TmV4dCwgY2hlY2sgaWYgdGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgdGhlIHNyYyBwYXJhbWV0ZXIgaXMgYSBVUkwgYW5kIGJlZ2lucyB3aXRoIHRoZSB1cGxvYWRzX3VybCAoYXMgc3BlY2lmaWVkIGluIHRoZSBjb25maWcucGhwKTwvbGk+DQogIDxsaT5OZXh0LCBjaGVjayBpZiB0aGUgdmFsdWUgc3BlY2lmaWVkIGZvciB0aGUgc3JjIHBhcmFtZXRlciBpcyBhIFVSTCBhbmQgYmVnaW5zIHdpdGggdGhlIHJvb3RfdXJsIChhcyBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZy5waHApPC9saT4NCiAgPGxpPk5leHQsIGNoZWNrIGlmIHRoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yIHRoZSBzcmMgcGFyYW1ldGVyIGlzIGEgVVJMIGFuZCBiZWdpbnMgd2l0aCB0aGUgc3NsX3VybCAoYXMgc3BlY2lmaWVkIGluIHRoZSBjb25maWcucGhwKTwvbGk+DQo8L3VsPg0KSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBzcGxpdCB0aGUgc3JjIHBhcmFtZXRlciBpbnRvIG11bHRpcGxlIGFyZ3VtZW50cywgd2hpY2ggaXMgdXNlZnVsIGZvciBleGFtcGxlIHdoZW4gdGhlIHBhdGggdG8gdGhlIGZpbGUsIGFuZCB0aGUgZmlsZW5hbWUgYXJlIHN0b3JlZCBpbiBzZXBhcmF0ZSBzbWFydHkgdmFyaWFibGVzLiAgIFlvdSBjYW4gc3BlY2lmeSB0aGUgc3JjIGFzIHNyYzE9XCR0aGVfcGF0aCBzcmMyPVwkdGhlX2ZpbGVuYW1lLiAgVGhlIHN5c3RlbSB3aWxsIGF1dG9tYXRpY2FsbHkgYWRkIGEgLyBpbiBiZXR3ZWVuIGVhY2ggYXJndW1lbnQuICBUaGVyZSBpcyBubyBsaW1pdCB0byB0aGUgbnVtYmVyIG9mIHNyYyBwYXJhbWV0ZXJzLic7CiRsYW5nWydwYXJhbV9zdHlsZSddID0gJ1VzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBhbGxvd3Mgc3BlY2lmeWluZyBhbHRlcm5hdGUgc3R5bGVzIGZvciB0aGUgdGFnLiAgaS5lOiBzdHlsZT0mcXVvdDtib3JkZXI6IDFweCBzb2xpZCBibGFjazsmcXVvdDsnOwokbGFuZ1sncGFyYW1fdGl0bGUnXSA9ICdTcGVjaWZ5IGFuIG9wdGlvbmFsIHRpdGxlIGF0dHJpYnV0ZSBmb3IgdGhlIGltZyB0YWcuICBpLmU6IHRpdGxlPSZxdW90O1RoaXMgaXMgdGhlIHRvb2x0aXAmcXVvdDsnOwokbGFuZ1sncGFyYW1fd2lkdGgnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSB3aWR0aCBhdHRyaWJ1dGUuICAgTm90ZSwgaWYgdGhpcyBpcyBub3Qgc3BlY2lmaWVkIGEgdmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoaXMgYXR0cmlidXRlIHNvIHRoYXQgbW9zdCBnZW5lcmF0ZWQgaW1nIHRhZ3Mgd2lsbCB2YWxpZGF0ZS4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBhdXRvIGNhbGN1bGF0aW9uIHdpdGggdGhlICZxdW90O25vYXV0byZxdW90OyBwYXJhbWV0ZXIuICBUaGlzIHBhcmFtZXRlciB3aWxsIGFsc28gYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAmcXVvdDtoZWlnaHQmcXVvdDsgcGFyYW1ldGVyIHRvIHBlcmZvcm0gYSBmaW5hbCByZXNpemluZyBvciBjcm9wdG9maXQgZmlsdGVyICh1bmxlc3MgdGhlICZxdW90O25vYXV0b3NjYWxlJnF1b3Q7IHBhcmFtZXRlciBpcyBhbHNvIHN1cHBsaWVkKSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ01vZHVsZW4gYmxlIGluc3RhbGxlcnQnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0FsbGxlIGRhdGEgdGlsaCZvc2xhc2g7cmVuZGUgZGVubmUgbW9kdWxlbiBlciBmamVybmV0Lic7CiRsYW5nWydwcm9tcHRfY3JvcHRvZml0X2RlZmF1bHRfbG9jJ10gPSAnU3RhbmRhcmQgdXRnYW5nc3B1bmt0IGZvciAmcXVvdDtjcm9wIHRvIGZpdCZxdW90Oyc7CiRsYW5nWydwcm9tcHRfZW1iZWRfc2l6ZWxpbWl0J10gPSAnQmFzZXJ0IHAmYXJpbmc7IGJpbGRlIHN0Jm9zbGFzaDtycmVsc2UnOwokbGFuZ1sncHJvbXB0X2VtYmVkX3NtYXJ0bGltaXRlZCddID0gJ1NtYXJ0IG1vZHVzIGJlZ3JlbnNldCB0aWwgYmlsZGUgc3Qmb3NsYXNoO3JyZWxzZSc7CiRsYW5nWydwcm9tcHRfZW1iZWRfdHlwZSddID0gJ0Jhc2VydCBwJmFyaW5nOyBmaWx0eXBlJzsKJGxhbmdbJ3Byb21wdF9sb2NfYm90dG9tbGVmdCddID0gJ0JvdHRvbSBMZWZ0IChibCknOwokbGFuZ1sncHJvbXB0X2xvY19ib3R0b21jZW50ZXInXSA9ICdCb3R0b20gQ2VudGVyIChiYyknOwokbGFuZ1sncHJvbXB0X2xvY19ib3R0b21yaWdodCddID0gJ0JvdHRvbSBSaWdodCAoYnIpJzsKJGxhbmdbJ3Byb21wdF9sb2NfY2VudGVybGVmdCddID0gJ0NlbnRlciBMZWZ0IChjbCknOwokbGFuZ1sncHJvbXB0X2xvY19jZW50ZXInXSA9ICdDZW50ZXIgKGMpJzsKJGxhbmdbJ3Byb21wdF9sb2NfY2VudGVycmlnaHQnXSA9ICdDZW50ZXIgUmlnaHQgKGNsKSc7CiRsYW5nWydwcm9tcHRfbG9jX3RvcGxlZnQnXSA9ICdUb3AgTGVmdCAodGwpJzsKJGxhbmdbJ3Byb21wdF9sb2NfdG9wY2VudGVyJ10gPSAnVG9wIENlbnRlciAodGMpJzsKJGxhbmdbJ3Byb21wdF9sb2NfdG9wcmlnaHQnXSA9ICdUb3AgUmlnaHQgKHRyKSc7CiRsYW5nWydyZXNpemluZyddID0gJ1NrYWxlcmluZyc7CiRsYW5nWydzbWFydCddID0gJ1NtYXJ0JzsKJGxhbmdbJ3N1Ym1pdCddID0gJ0xhZ3JlJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTc3OTM4NTg5MC4xMzc0MjMzMjE5LjEzNzQyMzMyMTkuMTM3NDIzMzIxOS4xJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTM3NDIzMzIxOS4xLjEudXRtY3NyPWdvb2dsZXx1dG1jY249KG9yZ2FuaWMpfHV0bWNtZD1vcmdhbmljfHV0bWN0cj0obm90IHByb3ZpZGVkKSc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMuMS4xMC4xMzc0MjMzMjE5JzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FjdF9jYWNoZWNsZWFuZWQnXSA9ICdDYWNoZSBvcGdlc2Nob29uZCc7CiRsYW5nWydhZGRfcm93J10gPSAnUmlqIHRvZXZvZWdlbic7CiRsYW5nWydhbGlhc2VzJ10gPSAnQWxpYXNzZW4nOwokbGFuZ1snYXNrX2NsZWFyX2ltYWdlX2NhY2hlJ10gPSAnV2VldCB1IHpla2VyIGRhdCB1IEFMTEUgYmVzdGFuZGVuIHdpbHQgdmVyd2lqZGVyZW4gdWl0IGRlIGFmYmVlbGRpbmdlbiBidWZmZXI/JzsKJGxhbmdbJ2NsZWFyX2FsbCddID0gJ1NjaG9vbiBhbGxlIGJlc3RhbmRlbiBvcCc7CiRsYW5nWydjbGVhcl9ub3cnXSA9ICdOdSBvcHNjaG9uZW4nOwokbGFuZ1snZGVsZXRlJ10gPSAnVmVyd2lqZGVyZW4nOwokbGFuZ1snZW1iZWRkaW5nJ10gPSAnR2UmZXVtbDttYmVkZGUgYWZiZWVsZGluZ2VuJzsKJGxhbmdbJ2VtYmVkZGluZ19tb2RlJ10gPSAnQWZiZWVsZGluZyBpbnNsdWl0bW9kdXMnOwokbGFuZ1snZW1iZWRfc2l6ZWxpbWl0J10gPSAnSW5zbHVpdGJhcmUgYWZiZWVsZGluZ3Nncm9vdHRlIGxpbWlldCAoa2IpJzsKJGxhbmdbJ2VtYmVkX3R5cGVzJ10gPSAnSW5zbHVpdGJhcmUgYWZiZWVsZGluZyB0eXBlJzsKJGxhbmdbJ2Vycm9yX2FsaWFzX2R1cGxpY2F0ZW5hbWVfYXRyb3cnXSA9ICdEZXplbGZkZSBhbGlhc25hYW0gb3BnZWdldmVuIHZvb3IgZGUgYWxpYXMgb3AgcmlqICVkJzsKJGxhbmdbJ2Vycm9yX2FsaWFzX25vbmFtZV9hdHJvdyddID0gJ0dlZW4gbmFhbSBvcGdlZ2V2ZW4gdm9vciBkZSBhbGlhcyBvcCByaWogJWQnOwokbGFuZ1snZXJyb3JfYWxpYXNfbm9vcHRpb25zX2F0cm93J10gPSAnR2VlbiBvcHRpZXMgb3BnZWdldmVuIHZvb3IgZGUgYWxpYXMgb3AgcmlqICVkJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfYWdlJ10gPSAnTGVlZnRpamRzaW5zdGVsbGluZyBvbmdlbGRpZy4uLiBCZXdlcmtpbmcgbmlldCB1aXRnZXZvZXJkJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0VlbiB2ZXJwbGljaHRlIHBhcmFtZXRlciBpcyBuaWV0IChjb3JyZWN0KSBpbmdldnVsZDogJXMnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmFtJ10gPSAnT25nZWxkaWdlIHBhcmFtZXRlciBpbiBvcHJvZXA6ICVzJzsKJGxhbmdbJ2Vycm9yX3NyY25vdGZvdW5kJ10gPSAnS2FuIGdlZW4gYmVzdGFuZCB2aW5kZW4gaW46ICVzJzsKJGxhbmdbJ2Vycm9yX3JlbW90ZWZpbGUnXSA9ICdQcm9ibGVlbSBtZXQgaGV0IG9udHZhbmdlbiB2YW4gZWVuIGV4dGVybiBiZXN0YW5kIGluOiAlcyc7CiRsYW5nWydlcnJvcl91bmtub3duZmlsdGVyJ10gPSAnQ0dTbWFydEltYWdlIC0gT25iZWtlbmQgRmlsdGVyOiAlcyc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdDYWxndXkmIzAzOTtzIFNtYXJ0IEltYWdlIFRvb2xraXQnOwokbGFuZ1snZ2VuZXJhbCddID0gJ0FsZ2VtZWVuJzsKJGxhbmdbJ2luZm9fYWxpYXNlcyddID0gJ0FsaWFzc2VuIGt1bm5lbiB3b3JkZW4gZ2VicnVpa3QgbWV0IGRlIGFsaWFzMSB0b3QgZW4gbWV0IGFsaWFzNSBvcHRpZXMgaW4gZGUgQ0dTbWFydEltYWdlLXRhZyB2b29yIHZlcnNjaGlsbGVuZGUgcmVnZWxtYXRpZyBnZWJydWlrdGUgb3B0aWVzJzsKJGxhbmdbJ2ltYWdlX3VybF9oYXNjYWNoZWRpciddID0gJ0lzIGRlIGJvdmVuc3RhYW5kZSBVUkwgaW4gZ2VicnVpayB2b29yIGRlIGNhY2hlIGRpcmVjdG9yeSAoX0NHU21hcnRJbWFnZSknOwokbGFuZ1snaW1hZ2VfdXJsX3ByZWZpeCddID0gJ0FmYmVlbGRpbmcgVXJsIFByZWZpeCc7CiRsYW5nWydpbmZvX2NhY2hlX2FnZSddID0gJ0dlZWYgZGUgbWF4aW1hbGUgbGVlZnRpamQgb3AgdmFuIGVlbiBiZXN0YW5kIChpbiBkYWdlbikgdm9vcmRhdCBoZXQgbW9ldCB3b3JkZW4gdmVyd2lqZGVyZCBlbiBvcG5pZXV3IGdlZ2VuZXJlZXJkIG1vZXQgd29yZGVuICBEaXQgaXMgaGFuZGlnIGFscyB1IHNvbW1pZ2UgcGFyYW1ldGVycyBoZWVmdCBnZXdpanppZ2Qgdm9vciBoZXQgZ2VuZXJlcmVuIHZhbiBhZmJlZWxkaW5nZW4gb2Ygb20gZGUgZ2VicnVpa3RlIHNjaGlqZnJ1aW10ZSB0ZSBiZWhlcmVuLiAgQWxzIHUgMCBpbnZvZXJ0IGRhbiB6YWwgZGUgYXV0b21hdGlzY2hlIGJlc3RhbmRzZGV0ZWN0aWUgdWl0IHN0YWFuLic7CiRsYW5nWydpbmZvX2VtYmVkX21vZGUnXSA9ICdEZXplIHNlY3RpZSBiZXBhYWxkIGhvZSBkZSB7c21hcnRpbWd9LXRhZyBlZW4gb3V0cHV0IGdlbmVyZWVyZC4gQWxzICYjMDM5O25pZXRzJiMwMzk7IGlzIGdlc2VsZWN0ZWVyZCwgZGFuIHphbCBlciBnZWVuIGFmYmVlbGRpbmcgaW5nZXNsb3RlbiB3b3JkZW4uIEFscyB1ICYjMDM5O3NsaW0mIzAzOTsgc2VsZWN0ZWVydCBkYW4gemFsIGhldCBzeXN0ZWVtIGhldCB6ZWxmIGJlcGFsZW4gYWFuIGRlIGhhbmQgdmFuIGRlIGFmYmVlbGRpbmdzZ3Jvb3R0ZSwgdHlwZSBlbiBkZSBicm93c2VyIGRpZSBkZSBhZmJlZWxkaW5nIGFmYmVlbGRpbmcgb3B2cmFhZ3QuIEFuZGVyZSBvcHRpZXMgenVsbGVuIGFsdGlqZCBkZSBhZmJlZWxkaW5nIGluc2x1aXRlbiBvcCBiYXNpcyB2YW4gZGUgYWZiZWVsZGluZ3Nncm9vdHRlIGVuIGFmYmVlbGRpbmdzdHlwZS4nOwokbGFuZ1snaW5mb19lbWJlZF9zaXplbGltaXQnXSA9ICdBbHMgZGUgaW5zbHVpdGluZ3NvcHRpZSBiZXBhYWx0IHdvcmQgZG9vciBhZmJlZWxkaW5nc2dyb290dGUsIGdlZWYgdmFuIGVlbiBtYXhpbXVtIGJlc3RhbmRzZ3Jvb3R0ZSBvcCAoaW4ga2lsb2J5dGVzKSB2b29yIGFmYmVlbGRpbmdlbiBvbSBkZXplIGluIHRlIHNsdWl0ZW4gKDMyIGlzIGFhbmJldm9sZW4pLic7CiRsYW5nWydpbmZvX2VtYmVkX3R5cGVzJ10gPSAnQWxzIGRlIGluc2x1aXRpbmdzb3B0aWUgYmVwYWFsdCB3b3JkIGRvb3IgaGV0IGFmYmVlbGRpbmdzdHlwZSwgZ2VlZiBkYW4gaGllciBkZSBleHRlbnNpZXMgb3AgdmFuIGJlc3RhbmRlbiBkaWUgaW5nZXNsb3RlbiBtb2dlbiB3b3JkZW4sIGdlc2NoaWVkZW4gZG9vciBjb21tYSYjMDM5O3MuIERlemUgb3B0aWUgaXMgbmlldCBob29mZGxldHRlcmdldm9lbGlnLic7CiRsYW5nWydpbmZvX2ltYWdlX3VybF9oYXNjYWNoZWRpciddID0gJ0FscyB1dyBDRE4gZGlyZWN0IHZlcndpanN0IG5hYXIgZGUgYWZiZWVsZGluZ3NjYWNoZSBkYW4gd2lsdCB1IG1pc3NjaGllbiBkZXplIGZ1bmN0aWUgaW5zY2hha2VsZW4uJzsKJGxhbmdbJ2luZm9faW1hZ2VfdXJsX3ByZWZpeCddID0gJ1NwZWNpZmljZWVyIGRlIFVSTCBtZXQgZWVuIHByZWZpeCB2b29yIGFsbGUgZ2VnZW5lcmVlcmRlIGFmYmVlbGRpbmdlbi4gU3RhbmRhYXJkIGlzIGRpdCBkZSB1cGxvYWRzIFVSTCwgbWFhciBoZXQgbWFnIG9vayB1dyBlaWdlbiBDRE4gemlqbiAob2YgbWVlcmRlcmUgZG9tZWluZW4gZGllIGdlYnJ1aWsgbWFrZW4gdmFuIGRlemVsZmRlIG1hcCkuIFUga3VudCBoaWVyIGVlbiBhbmRlcmUgbmFhbSBvcGdlZ2V2ZW4uJzsKJGxhbmdbJ21heF9jYWNoZV9hZ2UnXSA9ICdNYXhpbXVtIGJlc3RhbmRzbGVlZnRpamQgaW4gY2FjaGUgKGRhZ2VuKSc7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0VlbiBzbGltbWUgYWZiZWVsZGluZ3N0YWcgbW9kdWxlIHZvb3IgQ01TTVMnOwokbGFuZ1snbXNnX2FsaWFzZXNfdXBkYXRlZCddID0gJ0FsaWFzc2VuIGJpamdld2Vya3QnOwokbGFuZ1snbXNnX2NhY2hlY2xlYW5lZCddID0gJ0NhY2hlbWFwIG9wZ2VzY2hvb25kLiAlZCBiZXN0YW5kZW4gdmVyd2lqZGVyZCc7CiRsYW5nWydtc2dfY2FjaGVyZW1vdmVkJ10gPSAnQ2FjaGUgdmVyd2lqZGVyZCc7CiRsYW5nWydtc2dfcHJlZnN1cGRhdGVkJ10gPSAnVm9vcmtldXJlbiBiaWpnZXdlcmt0JzsKJGxhbmdbJ25vbmUnXSA9ICdHZWVuJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICdPcHRpZXMnOwokbGFuZ1sncGFyYW1fYWxpYXMnXSA9ICdIZXQgQ0dTbWFydEltYWdlIGFkbWlucGFuZWVsIHN0YWF0IHRvZSBvbSB2ZXJzY2hpbGxlbmRlIGNvbW1hbmRvLWFsaWFzc2VuIHRvZSB0ZSB3aWp6ZW4gYWFuIHJlZ2VsbWF0aWcgZ2VicnVpa3RlIHBhdHJvbmVuIHZhbiByZWdlbHMgaW4gZWVuIG5hYW0uIE9tIGRlemUgYWxpYXNzZW4gdGUgZ2VicnVpa2VuIGdlYnJ1aWsgZWVuIHJlZ2VsIGluIGRlIHZvbGdlbmRlIHZvcm06IGFsaWFzIyM9YWxpYXNfbmFtZS4gQmlqdm9vcmJlZWxkOiBhbGlhczE9Zm9vLCBhbGlhczI9Zm9vLic7CiRsYW5nWydwYXJhbV9hbHQnXSA9ICdWb29yIGJpaiBoZXQgZ2VicnVpayB2YW4gZGUgaW1nLXRhZyBtb2V0IHUgaGllciBkZSB3YWFyZGUgdm9vciBoZXQgYWx0LWF0dHJpYnV1dCBvcGdlZ2V2ZW4uICBPcG1lcmtpbmc6IGFscyB1IGhpZXIgZ2VlbiB3YWFyZGUgaW52b2VydCBkYW4gemFsIGRlemUgd2FhcmRlIGF1dG9tYXRpc2NoIGJlcmVrZW5kIHdvcmRlbiB6b2RhdCBkZSBtZWVzdGUgaW1nLXRhZ3MganVpc3Qgemlqbi4gIFUga3VudCBkZXplIGF1dG9tYXRpc2NoZSBiZXJla2VuaW5nIHVpdHNjaGFrZWxlbiBtZXQgZGUgJnF1b3Q7bm9hdXRvJnF1b3Q7IHBhcmFtZXRlcic7CiRsYW5nWydwYXJhbV9jbGFzcyddID0gJ1dvcmR0IGdlYnJ1aWt0IGJpaiBoZXQgZ2VuZXJlcmVuIHZhbiBlZW4gaW1nLXRhZywgc3RhYXQgdG9lIG9tIGVlbiBvZiBtZWVyZGVyZSBjbGFzc2VzIHRvZSB0ZSB2b2VnZW4gYWFuIGRlIHRhZy4gIGJpanZvb3JiZWVsZDogY2xhc3M9JnF1b3Q7ZmFuY3lib3ggdGh1bWJuYWlsJnF1b3Q7JzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9ibHVyJ10gPSAnKGlldHMpIEdlZWYgZWVuIHdhYXJkZSBvcCB2b29yIGRlemUgcGFyYW1ldGVyIG9tIGVlbiBibHVyIGZpbHRlciB0b2UgdGUgdm9lZ2VuIGFhbiBkZSBhZmJlZWxkaW5nJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9icmlnaHRuZXNzJ10gPSAnKGhlZWwgZ2V0YWwpIFZlcmJldGVyZCBkZSBoZWxkZXJoZWlkIHZhbiBkZSBhZmJlZWxkaW5nIG1ldCBkZSBnZWhlbGUgd2FhcmRlIGRpZSB3b3JkdCBvcGdlZ2V2ZW4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX2NvbG9yaXplJ10gPSAnKHIsZyxiWyxhbHBoYV0pIC0gTGlqa3Qgb3AgaGV0IGZpbHRlciBfZ3JleXNjYWxlIG1hYXIgdSBrdW50IGhpZXIgZGUga2xldXIgZW4gZGUgYWxwaGF3YWFyZGUgb3BnZWdldmVuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jb250cmFzdCddID0gJyhoZWVsIGdldGFsKSBXaWp6aWcgaGV0IGNvbnRyYXN0IHZhbiBkZSBhZmJlZWxkaW5nIGRvb3IgZGUgd2FhcmRlIG1ldCBlZW4gaGVlbCBnZXRhbCB0ZSB3aWp6aWdlbic7CiRsYW5nWydwYXJhbV9maWx0ZXJfY3JvcCddID0gJyhwZXJjZW50YWdlWyxoX2FsaWduLHZfYWxpZ25dKSAtIFZvZXIgYmlqc25pamRlbiB1aXQgb3AgZGUgb3BnZWdldmVuIGFmYmVlbGRpbmcuIERlIHBhcmFtZXRlcnMgdm9vciBoZXQgYmlqc25pamRlbiB6aWpuIG9wZ2VnZXZlbiBhbHMgZWVuIGtvbW1hZ2VzY2hlaWRlbiBsaWpzdC4gIERlIGVlcnN0ZSB3YWFyZGUgaXMgZWVuIGdlaGVlbCBwZXJjZW50YWdlIHZhbiBkZSBhZmJlZWxkaW5nIG9wIG9yaWdpbmVsZSBncm9vdHRlLiAgRGV6ZSB0d2VlZGUgZW4gZGVyZGUgKG9wdGl0aW9uZWxlKSBwYXJhbWV0ZXJzIHppam46IGwsYyxyIChsaW5rcyxnZWNlbnRyZWVyZCxyZWNodHMpIGVuIHQsYyxiICh0b3AsZ2VjZW50cmVlcmQsYmVuZWRlbikgb20gZGUgbG9jYXRpZSBvcCB0ZSBnZWdldmVuIHZhbmFmIHdhYXIgZXIgYmlqZ2VzbmVkZW4gbW9ldCB3b3JkZW4uICBiaWp2b29yYmVlbGQ6IGNyb3A9MzMsYixyIG9tIGVlbiBrbmlwc2VsIHRlIG5lbWVuIHZhbiAzMyUgdmFuYWYgZGUgcmVjaHRlciBvbmRlcmthbnQgdmFuIGRlIGJyb25hZmJlZWxkaW5nJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9lZGdlZGV0ZWN0J10gPSAnKGlldHMpIE1hcmtlZXIgZGUgcmFuZGVuIGluIGRlIGFmYmVlbGRpbmcnOwokbGFuZ1sncGFyYW1fZmlsdGVyX2VtYm9zcyddID0gJyhpZXRzKSBHZWVmIGRlIGFmYmVlbGRpbmcgcmVsaSZldW1sO2YnOwokbGFuZ1sncGFyYW1fZmlsdGVyX2ZsaXAnXSA9ICcobW9kZSkgLSBEcmFhaSBkZSBvcGdlZ2V2ZW4gYWZiZWVsZGluZy4gIEdlZWYgMCBvcCB2b29yIGhvcml6b250YWFsLCAxIHZvb3IgdmVydGljYWFsIGVuIDIgdm9vciBiZWlkZSByaWNodGluZ2VuLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfZ3JheXNjYWxlJ10gPSAnKGlldHMpIENvbnZlcnRlZXIgZGUgYWZiZWVsZGluZyBuYWFyIGdyaWpzd2FhcmRlbic7CiRsYW5nWydwYXJhbV9maWx0ZXJfbWVhbnJlbW92YWwnXSA9ICcoaWV0cykgQmVkb2VsZCB2b29yIGVlbiAmcXVvdDt0ZWtlbiZxdW90Oy1lZmZlY3QnOwokbGFuZ1sncGFyYW1fZmlsdGVyX25lZ2F0ZSddID0gJyhpZXRzKSBPbnRrZW4gZGUgYWZiZWVsZGluZyc7CiRsYW5nWydwYXJhbV9maWx0ZXJfcGl4ZWxhdGUnXSA9ICcoZ3Jvb3R0ZVssZ2VhdmFuY2VlcmRdKSBQaXhlbGF0ZSB0aGUgaW1hZ2UsIHNwZWNpZnkgYW4gaW50ZWdlciBzaXplIGFuZCBhbiBvcHRpb25hbCBib29sZWFuIChkZWZhdWx0IGlzIGZhbHNlKSB0byBlbmFibGUgYWR2YW5jZWQgcGl4ZWxhdGlvbic7CiRsYW5nWydwYXJhbV9maWx0ZXJfcm90YXRlJ10gPSAnKGFuZ2xlLGNvbG9yKSBHZWVmIG1ldCBlZW4gZ2VoZWVsIGdldGFsIGRlIGRyYWFpaG9layBvcCAoZHJhYWllbiBnYWF0IG1ldCBkZSBrbG9rIG1lZSkgb20gZGUgYWZiZWVsZGluZyB0ZSBkcmFhaWVuLiBEYWFybmFhc3QgbW9ldCB1IGVlbiBrbGV1ciBvcGdlZ2V2ZW4gd2Fhcm1lZSBkZSBvdmVyaWdlIHBpeGVscyB3b3JkZW4gb3BnZXZ1bGQuICBEZSBhZmJlZWxkaW5nIGRyYWFpdCBvbSB6aWpuIGVpZ2VuIG1pZGRlbi4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3JvdW5kZWRjb3JuZXJzJ10gPSAnKHJhZGl1cykgU3BlY2lmaWNlZXIgZWVuIGhlZWwgZ2V0YWwgdm9vciBkZSBzdHJhYWwgKGluIHBpeGVscykgdmFuIGRlIGFmZ2Vyb25kZSBob2VrZW4uJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl93YXRlcm1hcmsnXSA9ICcoaWV0cykgR2VlZiBlZW4gd2F0ZXJtZXJrIG9wICh6b2FscyBvcGdlZ2V2ZW4gaW4gZGUgQ0dFeHRlbnRpb25zIG1vZHVsZSkgZGllIG1vZXQgd29yZGVuIHRvZWdlcGFzdCBvcCBkZSBhZmJlZWxkaW5nJzsKJGxhbmdbJ3BhcmFtX21heF9oZWlnaHQnXSA9ICdWYW4gdG9lcGFzc2luZyBvcCBkZSB7Y2dzaV9jb252ZXJ0fSB0YWcsIGRlemUgcGFyYW1ldGVyIHN0YWF0IHRvZSBvbSBlZW4gbWF4aW11bSBob29ndGUgb3AgdGUgZ2V2ZW4gdm9vciBnZWNvbnZlcnRlZXJkZSBhZmJlZWxkaW5nZW4nOwokbGFuZ1sncGFyYW1fbWF4X3dpZHRoJ10gPSAnVmFuIHRvZXBhc3Npbmcgb3AgZGUge2Nnc2lfY29udmVydH0gdGFnLCBkZXplIHBhcmFtZXRlciBzdGFhdCB0b2Ugb20gZWVuIG1heGltdW0gaG9vZ3RlIG9wIHRlIGdldmVuIHZvb3IgZ2Vjb252ZXJ0ZWVyZGUgYWZiZWVsZGluZ2VuJzsKJGxhbmdbJ3BhcmFtX25hbWUnXSA9ICdHZWJydWlrdCBiaWogaGV0IG1ha2VuIHZhbiBkZSBpbWcgdGFnLCBiZW5vZW0gZWVuIHdhYXJkZSB2b29yIGRlIG5hYW0gYXR0cmlidXV0Lic7CiRsYW5nWydwYXJhbV9ub2F1dG8nXSA9ICdCZXJla2VuIG5pZXQgYXV0b21hdGlzY2ggZGUgcGFyYW1hdGVycyB2b29yIGRlIGltZy10YWcuICBEaXQga2FuIGVyIG1vZ2VsaWprIHZvb3Igem9yZ2VuIGRhdCB1dyBzaXRlIG5pZXQganVpc3QgZ2V2YWxpZGVlcmQgd29yZHQgaW5kaWVuIGRlIHZlcmVpc3RlIHBhcmFtZXRlcnMgKHdpZHRoLGhlaWdodCxhbHQpIG5pZXQgemlqbiBvcGdlZ2V2ZW4nOwokbGFuZ1sncGFyYW1fbm9hdXRvc2NhbGUnXSA9ICdpbmRpZW4gZXIgZWVuIGJyZWVkdGUgZW4gaG9vZ3RlIHBhcmFtZXRlciBpcyBvcCBnZWdldmVuLCBkYW4gemFsIGRlemUgcGFyYW1ldGVyIGhldCBhdXRvbWF0aXNjaGUgc2NoYWxlbiB2YW4gZGUgYWZiZWVsZGluZyB1aXRzY2hha2VsZW4uJzsKJGxhbmdbJ3BhcmFtX25vYmNhY2hlJ10gPSAnU3RhIG5pZXQgdG9lIGRhdCBkZSBoZXJzY2hhYWxkZSBhZmJlZWxkaW5nIGluIGRlIGJyb3dzZXIgZ2VjYWNoZWQgd29yZHQgKGhhbmRpZyB2b29yIG9udHdpa2tlbGRvZWxlaW5kZW4pIERpdCB2b2VndCBlZW4gdW5pZWsgbnVtbWVyIGFscyBwYXJhbWV0ZXIgdG9lIGFhbiBkZSBhZmJlZWxkaW5nLic7CiRsYW5nWydwYXJhbV9ub2VtYmVkJ10gPSAnRGV6ZSBhZmJlZWxkaW5nIG1hZyBuaWV0IGluZ2VzbG90ZW4gd29yZGVuLiBPbmdlYWNodCBkZSBpbnN0ZWxsaW5nZW4gaW4gaGV0IGJlaGVlcmRlcnNwYW5lZWwsIGRlIFVSTCBlbiBkZSBnZWdlbmVyZWVyZGUgdGFncyB6dWxsZW4gZGUgYmVzdGFuZGVuIG9wIGRlIHNlcnZlciB3b3JkZW4gb3BnZXJvZXBlbi4gRXIgemFsIGdlZW4gaW5zbHVpdGluZyBwbGFhdHMgdmluZGVuLic7CiRsYW5nWydwYXJhbV9ub3RpbWVjaGVjayddID0gJ1RpamRjb250cm9sZSB2b29yIGdlYnVmZmVyZGUgYmVzdGFuZGVuIHVpdHNjaGFrZWxlbi4nOwokbGFuZ1sncGFyYW1fbm9yZW1vdGUnXSA9ICdFeHRlcm5lIGJyb25uZW4gdm9vciBVUkwmIzAzOTtzIG5pZXQgdG9lc3RhYW4nOwokbGFuZ1sncGFyYW1fbm9yb3RhdGUnXSA9ICdOaWV0IHByb2JlcmVuIG9tIGRlIGV4aWYtaW5mb3JtYXRpZSB0ZSBsZXplbiB2YW4gaGV0IGJlc3RhbmQgb20gdmVydm9sZ2VucyBkZSBhZmJlZWxkaW5nIGp1aXN0IHRlIHJvdGVyZW4nOwokbGFuZ1sncGFyYW1fbm90YWcnXSA9ICdHZWVmIGdlZW4gaW1nLXRhZyBtZWUgaW4gZGUgb3V0cHV0LCBhbGxlZW4gZGUgVVJMIHZhbiBkZSBnZWNhY2hlZGUgYWZiZWVsZGluZy4gRGl0IGhlZWZ0IGdlZW4gZWZmZWN0IHdhbm5lZXIgQ0dTbWFydEltYWdlIHdvcmR0IGdlYnJ1aWt0IGluIGVlbiBzdHlsZXNoZWV0Lic7CiRsYW5nWydwYXJhbV9vdmVyd3JpdGUnXSA9ICdTY2hha2VsIGFsbGUgY2FjaGluZyB1aXQgZW4gZm9yY2VlciBoZXJiZXJla2VuaW5nIHZvb3IgYWxsZSBmaWx0ZXJzJzsKJGxhbmdbJ3BhcmFtX3F1YWxpdHknXSA9ICdTcGVjaWZpY2VlciBkZSBrd2FsaXRlaXQgdmFuIGRlIG91dHB1dGFmYmVlbGRpbmcuIFUgbW9ldCBlZW4gd2FhcmRlIGludnVsbGVuIHR1c3NlbiBkZSAwIGVuIDEwMC4nOwokbGFuZ1sncGFyYW1fcmVsJ10gPSAnVXNlZCB3aGVuIGJ1aWxkaW5nIGFuIGltYWdlIHRhZyBhbGxvd3Mgc3BlY2lmeWluZyBhbiBvcHRpb25hbCByZWwgYXR0cmlidXRlICh0eXBpY2FsbHkgdXNlZCB3aXRoIGphdmFzY3JpcHQgdHlwZSBhbGJ1bXMpLiBpLmU6IHJlbD0mcXVvdDthbGJ1bSZxdW90Oyc7CiRsYW5nWydwYXJhbV9zaWxlbnQnXSA9ICdOZWdlZXIgZm91dGVuJzsKJGxhbmdbJ3BhcmFtX3N0eWxlJ10gPSAnR2VicnVpa3QgYmlqIGhldCBtYWtlbiB2YW4gZGUgaW1nIHRhZywgZ2VicnVpa3Qgdm9vciBlZW4gYWx0ZXJuYXRpZXZlIHN0eWxpbmcuICBiaWp2Ljogc3R5bGU9JnF1b3Q7Ym9yZGVyOiAxcHggc29saWQgYmxhY2s7JnF1b3Q7JzsKJGxhbmdbJ3BhcmFtX3RpdGxlJ10gPSAnR2VlZiBoZXQgb3B0aW9uZWxlIHRpdGVsIGF0dHJpYnV1dCBvcCB2b29yIGRlIGltZy10YWcuICBiaWp2b29yYmVlbGQ6IHRpdGxlPSZxdW90O0RpdCBpcyBlZW4gdG9vbHRpcCZxdW90Oyc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ01vZHVsZSBnZSZpdW1sO25zdGFsbGVlcmQnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0FsbGUgbWV0IGRlemUgbW9kdWxlIGdlYXNzb2NpZWVyZGUgZGF0YSBpcyB2ZXJ3aWpkZXJkJzsKJGxhbmdbJ3Byb21wdF9jcm9wdG9maXRfZGVmYXVsdF9sb2MnXSA9ICdTdGFuZGFhcmQgcGxhYXRzIHZvb3IgJnF1b3Q7Y3JvcCB0byBmaXQmcXVvdDsnOwokbGFuZ1sncHJvbXB0X2VtYmVkX3NpemVsaW1pdCddID0gJ0dlYmFzZWVyZCBvcCBhZmJlZWxkaW5nc2dyb290dGUnOwokbGFuZ1sncHJvbXB0X2VtYmVkX3NtYXJ0bGltaXRlZCddID0gJ1NsaW1tZSBtb2R1cywgbWFhciBiZXBlcmsgZGUgYWZiZWVsZGluZ3Nncm9vdHRlJzsKJGxhbmdbJ3Byb21wdF9lbWJlZF90eXBlJ10gPSAnR2ViYXNlZXJkIG9wIGFmYmVlbGRpbmdzdHlwZSc7CiRsYW5nWydwcm9tcHRfbG9jX2JvdHRvbWxlZnQnXSA9ICdCZW5lZGVuIExpbmtzIChibCknOwokbGFuZ1sncHJvbXB0X2xvY19ib3R0b21jZW50ZXInXSA9ICdCZW5lZGVuIENlbnRyZWVyIChiYyknOwokbGFuZ1sncHJvbXB0X2xvY19ib3R0b21yaWdodCddID0gJ0JlbmVkZW4gUmVjaHRzIChiciknOwokbGFuZ1sncHJvbXB0X2xvY19jZW50ZXJsZWZ0J10gPSAnQ2VudHJlZXIgTGlua3MgKGNsKSc7CiRsYW5nWydwcm9tcHRfbG9jX2NlbnRlciddID0gJ0NlbnRyZWVyIChjKSc7CiRsYW5nWydwcm9tcHRfbG9jX2NlbnRlcnJpZ2h0J10gPSAnQ2VudHJlZXIgUmVjaHRzIChjbCknOwokbGFuZ1sncHJvbXB0X2xvY190b3BsZWZ0J10gPSAnVG9wIExpbmtzICh0bCknOwokbGFuZ1sncHJvbXB0X2xvY190b3BjZW50ZXInXSA9ICdUb3AgQ2VudHJlZXIgKHRjKSc7CiRsYW5nWydwcm9tcHRfbG9jX3RvcHJpZ2h0J10gPSAnVG9wIFJlY2h0cyAodHIpJzsKJGxhbmdbJ3Jlc2l6aW5nJ10gPSAnSGVyc2NoYWxlbic7CiRsYW5nWydzbWFydCddID0gJ1NsaW0nOwokbGFuZ1snc3VibWl0J10gPSAnT3BzbGFhbic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjYwNjAxNjQzNC4xMzg1OTE3MTA3LjEzODU5MTcxMDcuMTM4NTkxNzEwNy4xJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTM4NTkxNzEwNy4xLjEudXRtY2NuPShkaXJlY3QpfHV0bWNzcj0oZGlyZWN0KXx1dG1jbWQ9KG5vbmUpJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pt_PT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FjdF9jYWNoZWNsZWFuZWQnXSA9ICdDYWNoZSBMaW1wYSc7CiRsYW5nWydhZGRfcm93J10gPSAnQWRpY2lvbmFyIExpbmhhJzsKJGxhbmdbJ2FsaWFzJ10gPSAnQWxpJmFhY3V0ZTtzJzsKJGxhbmdbJ2FsaWFzZXMnXSA9ICdBbGkmYWFjdXRlO3MnOwokbGFuZ1snYXNrX2NsZWFyX2ltYWdlX2NhY2hlJ10gPSAnUmVtb3ZlciBUT0RPUyBvcyBmaWNoZWlyb3MgZGEgY2FjaGUgZGUgaW1hZ2VuczogdGVtIGEgY2VydGV6YT8nOwokbGFuZ1snY2xlYXJfYWxsJ10gPSAnTGltcGFyIHRvZG9zIG9zIGZpY2hlaXJvcyc7CiRsYW5nWydjbGVhcl9ub3cnXSA9ICdMaW1wYXIgSW1lZGlhdGFtZW50ZSc7CiRsYW5nWydkZWxldGUnXSA9ICdBcGFnYXInOwokbGFuZ1snZW1iZWRkaW5nJ10gPSAnSW1hZ2VucyBFbWJlYmlkYXMnOwokbGFuZ1snZW1iZWRkaW5nX21vZGUnXSA9ICdNb2RvIGRlIEltYWdlbSBFbWJlYmlkYSc7CiRsYW5nWydlbWJlZF9zaXplbGltaXQnXSA9ICdUYW1hbmhvIGxpbWl0ZSBkYSBpbWFnZW0gYSBlbWJlYmVyIChrYiknOwokbGFuZ1snZW1iZWRfdHlwZXMnXSA9ICdUaXBvIGRhIGltYWdlbSBhIGVtYmViZXInOwokbGFuZ1snZXJyb3JfYWxpYXNfZHVwbGljYXRlbmFtZV9hdHJvdyddID0gJ0ZvaSBlc3BlY2lmaWNhZG8gdW0gYWxpJmFhY3V0ZTtzIGR1cGxpY2FkbyBuYSBsaW5oYSAlZCc7CiRsYW5nWydlcnJvcl9hbGlhc19ub25hbWVfYXRyb3cnXSA9ICdOJmF0aWxkZTtvIGZvaSBlc3BlY2lmaWNhZG8gdW0gbm9tZSBwYXJhIG8gYWxpJmFhY3V0ZTtzIG5hIGxpbmhhICVkJzsKJGxhbmdbJ2Vycm9yX2FsaWFzX25vb3B0aW9uc19hdHJvdyddID0gJ04mYXRpbGRlO28gZm9yYW0gZXNwZWNpZmljYWRhcyBvcCZjY2VkaWw7Jm90aWxkZTtlcyBwYXJhIG8gYWxpJmFhY3V0ZTtzIG5hIGxpbmhhICVkJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfYWdlJ10gPSAnUHJlZmVyJmVjaXJjO25jaWEgZGUgaWRhZGUgaW52JmFhY3V0ZTtsaWRhLi4uIG5lbmh1bWEgb3BlcmEmY2NlZGlsOyZhdGlsZGU7byBlZmVjdHVhZGEnOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnVW0gcGFyJmFjaXJjO21ldHJvIHJlcXVlcmlkbyBlc3QmYWFjdXRlOyBlbSBmYWx0YSBvdSBuJmF0aWxkZTtvICZlYWN1dGU7IHYmYWFjdXRlO2xpZG86ICVzJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXJhbSddID0gJ1BhciZhY2lyYzttZXRybyBpbnYmYWFjdXRlO2xpZG8gbmEgY2hhbWFkYTogJXMnOwokbGFuZ1snZXJyb3Jfc3Jjbm90Zm91bmQnXSA9ICdOJmF0aWxkZTtvIGZvaSBlbmNvbnRyYWRvIG5lbmh1bSBmaWNoZWlybyBlbTogJXMnOwokbGFuZ1snZXJyb3JfcmVtb3RlZmlsZSddID0gJ1Byb2JsZW1hIG5hIG9idGVuJmNjZWRpbDsmYXRpbGRlO28gZGUgdW0gZmljaGVpcm8gcmVtb3RvIGVtICAlcyc7CiRsYW5nWydlcnJvcl91bmtub3duZmlsdGVyJ10gPSAnQ0dTbWFydEltYWdlIC0gRmlsdHJvIERlc2NvbmhlY2lkbzogJXMnOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnQ2FsZ3V5cyBTbWFydCBJbWFnZSBUb29sa2l0IC0gRmVycmFtZW50YXMgZGUgSW1hZ2VtJzsKJGxhbmdbJ2dlbmVyYWwnXSA9ICdHZXJhbCc7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBhIHNpbXBsZSB3YXkgdG8gcHJvY2VzcywgYW5kIGRpc3BsYXkgaW1hZ2VzIG9uIHlvdXIgd2ViIHBhZ2UuICBJdCBhbGxvd3Mgc2ltcGxlIGltYWdlIHByb2Nlc3NpbmcsIGFuZCB3YXRlcm1hcmtpbmcuICBUaGlzIG1vZHVsZSBtYWtlcyBkaXNwbGF5aW5nIHByb2Nlc3NlZCBpbWFnZXMgb24geW91ciB3ZWJzaXRlIHRyaXZpYWwuICBJdCBhbHNvIHByb3ZpZGVzIGZlYXR1cmVzIHRvIGltcHJvdmUgdGhlIHBlcmZvcm1hbmNlIHJhdGluZyBvZiB5b3VyIHdlYnNpdGUsIG1ha2luZyB5b3VyIHdlYnNpdGUgcG93ZXJmdWwgYW5kIGZhc3QgYXQgdGhlIHNhbWUgdGltZS48L3A+DQo8aDM+RmVhdHVyZXM8L2gzPg0KPHVsPg0KPGxpPlBvd2VyZnVsLCBidXQgc2ltcGxlIHRvIHVzZSBpbWFnZSBmaWx0ZXJpbmcgYW5kIHByb2Nlc3NpbmcuIEZpbHRlcmluZyBpbmNsdWRlczoNCiAgPHVsPg0KICAgIDxsaT5CbHVyPC9saT4NCiAgICA8bGk+QnJpZ2h0bmVzczwvbGk+DQogICAgPGxpPkNvbG9yaXplPC9saT4NCiAgICA8bGk+Q29udHJhc3Q8L2xpPg0KICAgIDxsaT5Dcm9wPC9saT4NCiAgICA8bGk+PHN0cm9uZz5Dcm9wIFRvIEZpdDwvc3Ryb25nPjwvbGk+DQogICAgPGxpPkVkZ2UgRGV0ZWN0aW9uPC9saT4NCiAgICA8bGk+RW1ib3NzPC9saT4gDQogICAgPGxpPkdyYXlzY2FsZTwvbGk+DQogICAgPGxpPk1lYW4gUmVtb3ZhbDwvbGk+DQogICAgPGxpPk5lZ2F0ZTwvbGk+DQogICAgPGxpPlBpeGVsYXRlPC9saT4NCiAgICA8bGk+UmVzaXplPC9saT4NCiAgICA8bGk+Um90YXRlPC9saT4NCiAgICA8bGk+U2VsaWN0aXZlIEJsdXI8L2xpPg0KICAgIDxsaT5TbW9vdGg8L2xpPg0KICAgIDxsaT5XYXRlcm1hcms8L2xpPg0KICA8L3VsPg0KPC9saT48YnIvPg0KPGxpPlNtYXJ0IGRldGVjdGlvbiBvZiBpbWFnZXMuICBTcGVjaWZ5IGFic29sdXRlIFVSTFMsIGFic29sdXRlIHBhdGhzLCBvciBmaWxlcyByZWxhdGl2ZSB0byB5b3VyIHJvb3QgaW5zdGFsbGF0aW9uLjwvbGk+DQo8bGk+QXV0b21hdGljIGRvd25sb2FkaW5nLCBjYWNoaW5nLCBwcm9jZXNzaW5nLCBhbmQgcmUtY2FjaGluZyBvZiBpbWFnZXMgZnJvbSByZW1vdGUgd2Vic2l0ZXMuPC9saT4NCjxsaT5TbWFydCBhdXRvbWF0aWMgcmVzaXppbmcgKGF1dG9tYXRpY2FsbHkgcmVzaXplIHRvIGRlc2lyZWQgd2lkdGggYW5kIGhlaWdodCBiZWZvcmUgc2VydmluZyB0aGUgaW1hZ2UuLi4gcmVzaXppbmcgdG8gd2lkdGggQU5EIGhlaWdodCBkb2VzIGEgY3JvcCB0byBmaXQuIDxlbT4oanVzdCBzcGVjaWZ5IGEgd2lkdGgsIGFuZC9vciBoZWlnaHQgcGFyYW1ldGVyIHRvIHRoZSBDR1NtYXJ0SW1hZ2UgdGFnLik8L2VtPjwvbGk+DQo8bGk+QXV0b21hdGljYWxseSByZWFkcyBpbWFnZSBFWElGIGluZm9ybWF0aW9uIGFuZCBjb3JyZWN0cyB0aGUgb3JpZW50YXRpb24uPC9saT4NCjxsaT5JbWFnZSBjaGFuZ2UgZGV0ZWN0aW9uLCBpZiB0aGUgbWFzdGVyIGltYWdlIGlzIGNoYW5nZWQgc2NhbGVkIGltYWdlcyB3aWxsIGJlIHJlZ2VuZXJhdGVkLiAoc2VlIHRoZSBub3RpbWVjaGVjayBwYXJhbWV0ZXIgdG8gZGlzYWJsZSB0aGlzIGJlaGF2aW9yKS48L2xpPg0KPGxpPlNtYXJ0IGF0dHJpYnV0ZSBnZW5lcmF0aW9uIGZvciBpbWFnZXMuPC9saT4NCjxsaT5Qcm9jZXNzZWQgaW1hZ2VzIGFyZSBjYWNoZWQgb24gdGhlIHNlcnZlciBmb3IgZmFzdGVyIHNlcnZpbmcuPC9sST4NCjxsaT5UaGUgYWJpbGl0eSB0byB1c2UgYSBzZXBhcmF0ZSBVUkwgKENETikgZm9yIHNlcnZpbmcgaW1hZ2VzPC9saT4NCjxsaT5JbWFnZSBwcm9jZXNzZXMgY2FuIGJlIGNvbWJpbmVkLCBhbmQgYXJlIGV4ZWN1dGVkIGluIG9yZGVyLjwvbGk+DQo8bGk+UHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gZW1iZWQgaW1hZ2VzIGRpcmVjdGx5IGludG8gdGhlIGNvbnRlbnQgb2YgdGhlIHdlYiBwYWdlIHRvIG1pbmltaXplIHNwYWNlLjwvbGk+DQo8bGk+UHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gbGltaXQgZW1iZWRkaW5nIGltYWdlcyBzbWFydGx5LCBvbmx5IHRvIGJyb3dzZXJzIHRoYXQgYXJlIGNhcGFibGUgb2YgdW5kZXJzdGFuZGluZyB0aGVtLjwvbGk+DQo8bGk+Q29tYmluZSBjb21tb25seSB1c2VkIGFyZ3VtZW50cyBpbnRvIG5hbWVkIGFsaWFzZXMuPC9saT4NCjxsaT5BbHNvIHdvcmtzIHdpdGhpbiBzdHlsZXNoZWV0cyB2aWEgdGhlIHtjbXNfc3R5bGVzaGVldH0gdGFnLjwvbGk+DQo8bGk+VGhlIGFiaWxpdHkgdG8gYXV0b21hdGljYWxseSBwcm9jZXNzIGltYWdlcyBpbnNpZGUgYSBibG9jayBvZiBodG1sIGNvZGUgdXNpbmcgdGhlIHtjZ3NpX2NvbnZlcnR9IGJsb2NrIHRhZy48L2xpPg0KPGxpPk1vcmUuLi48L2xpPg0KPC91bD4NCjxoMz5XaHkgc2hvdWxkIEkgdXNlIGl0PzwvaDM+DQo8cD5UaGVyZSBhcmUgZm91ciB2ZXJ5IGltcG9ydGFudCByZWFzb25zIHRvIHVzZSB0aGlzIHBsdWdpbjo8L3A+DQo8dWw+DQogIDxsaT5QZXJmb3JtYW5jZTogIFVzaW5nIGltYWdlIGVtYmVkZGluZyAoZXZlbiBpZiBubyBvdGhlciBmdW5jdGlvbnMgYXJlIHVzZWQpIHJlc3VsdHMgaW4gZmV3ZXIgcmVxdWVzdHMuICBNb3N0IGJyb3dzZXJzIG9ubHkgcGVyZm9ybSB0d28gdG8gZm91ciBzaW11bHRhbmVvdXMgcmVxdWVzdHMgdG8gdGhlIHNhbWUgZG9tYWluIGF0IHRoZSBzYW1lIHRpbWUuICBGb3Igd2ViIHBhZ2VzIHdpdGggbG90cyBvZiBpbWFnZXMgdGhpcyBjYW4gc2VyaW91c2x5IHNsb3cgZG93biB5b3VyIHNpdGUuPC9saT4NCiAgPGxpPlBlcmZvcm1hbmNlOiAgRXZlbiBpZiBub3QgdXNpbmcgZW1iZWRkaW5nLCBzZW5kaW5nIGxhcmdlIGltYWdlcyB0byB5b3VyIHZpc2l0b3JzLCBhbmQgYXNraW5nIHRoZWlyIGJyb3dzZXIgdG8gc2NhbGUgdGhlIGltYWdlIGlzIHZlcnkgdmVyeSBzbG93LjwvbGk+DQogIDxsaT5TZWN1cml0eTogIENHU21hcnRJbWFnZSBjYWNoZXMgaXRzIGltYWdlcyBpbiBhIHNlcGFyYXRlIGRpcmVjdG9yeSwgdGhlcmVieSBoaWRpbmcgdGhlIG9yaWdpbmFsIChwZXJoYXBzIGNvcHlyaWdodGVkKSBpbWFnZXMgZnJvbSB5b3VyIHVzZXJzLiAgSWYgZW1iZWRkaW5nIGlzIHVzZWQgdGhleSBjYW50IGV2ZW4gZmluZCB0aGUgY2FjaGVkIGxvY2F0aW9uKTwvbGk+DQogIDxsaT5TaW1wbGljaXR5OiAgVGhlIGZpbHRlcmluZyBjYXBhYmlsaXRpZXMgb2YgQ0dTbWFydEltYWdlIGFsbG93IHlvdSB0byBhdXRvbWF0aWNhbGx5IHByb2Nlc3MgaW1hZ2VzIGZvciBjb25zaXN0ZW50IGFuZCBzZWN1cmUgZGlzcGxheSwgd2l0aG91dCBzaXRlIGVkaXRvcnMgaGF2aW5nIHRvIHBsYXkgd2l0aCB0aGVtLiAgVGhleSBjYW4gdXBsb2FkIGxhcmdlciBpbWFnZXMsIGFuZCB5b3VyIHNpdGUgd2lsbCBqdXN0IGhhbmRsZSB0aGVtIHByb3Blcmx5LjwvbGk+DQo8L3VsPg0KPGgzPkhvdyBkbyBJIHVzZSBpdD88L2gzPg0KPHA+VGhlIHNpbXBsZXN0IHdheSB0byB1c2UgdGhpcyBtb2R1bGUgaXMgdG8gdXNlIGl0IGluIHRoZSBzYW1lIHBsYWNlIHlvdSB3b3VsZCB0aGUge2ltYWdlfSB0YWcuICBJLmU6IFNvbWV0aGluZyBsaWtlIDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57Q0dTbWFydEltYWdlIHNyYz0mIzAzOTt1cGxvYWRzL2ltYWdlcy9waWN0dXJlLmpwZyYjMDM5O308L2NvZGU+LiAgVGhpcyB3aWxsIGdlbmVyYXRlIHRoZSBpbWFnZSB0YWcgZm9yIHlvdSB3aXRoIG5vIHByb2Nlc3NpbmcuICBBbmQgaWYgcG9zc2libGUsIGVtYmVkIHRoZSBpbWFnZSBkaXJlY3RseSBpbnRvIHlvdXIgaHRtbCBvdXRwdXQuPC9wPg0KPHA+T2Z0ZW4gcGVvcGxlIHdhbnQgdG8gZGlzcGxheSBhIHdhdGVybWFyayBvbiB0aGUgaW1hZ2VzIHRoYXQgdGhleSBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZCB0byBwcmV2ZW50IGltYWdlIHRoZWZ0LiAgVGhlIENHRXh0ZW5zaW9ucyBtb2R1bGUgcHJvdmlkZXMgc2V0dGluZ3MgZm9yIHlvdSB0byBjb25maWd1cmUgd2F0ZXJtYXJraW5nIGFuZCB5b3UgY2FuIGVuYWJsZSB0aGF0IHdpdGggYW55IGltYWdlIHdpdGggYSB0YWcgbGlrZSB0aGlzOiA8Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e0NHU21hcnRJbWFnZSBzcmM9JiMwMzk7dXBsb2Fkcy9pbWFnZXMvcGljdHVyZS5qcGcmIzAzOTsgZmlsdGVyX3dhdGVybWFyaz0xfTwvY29kZT4uICBUaGlzIHdpbGwgcmVhZCB0aGUgaW1hZ2UsIGFwcGx5IHRoZSB3YXRlcm1hcmsgYWNjb3JkaW5nIHRvIHRoZSBzZXR0aW5ncyBpbiBDR0V4dGVuc2lvbnMsIGNhY2hlIHRoZSBhbHRlcmVkIGltYWdlLCBhbmQgdGhlbiBlbWJlZCBpdCBpbnRvIHlvdXIgb3V0cHV0LjwvcD4NCjxwPkFsc28sIFBpY3R1cmVzIHRha2VuIGJ5IG1vZGVybiBkaWdpdGFsIGNhbWVyYXMgYXJlIG9mdGVuIHRvbyBsYXJnZSBmb3IgdXNlIG9uIGEgd2Vic2l0ZSwgdGhlcmVmb3JlIHRoZXkgbmVlZCB0byBiZSBzY2FsZWQgYmVmb3JlIGRpc3BsYXllZCBvbiB5b3VyIHBhZ2UuICBUaGlzIGNhbiBiZSBkb25lIHF1aXRlIGVhc2lseSB3aXRoIGEgdGFnIGxpa2U6IDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57Q0dTbWFydEltYWdlIHNyYz0mIzAzOTt1cGxvYWRzL2ltYWdlcy9waWN0dXJlLmpwZyYjMDM5OyBmaWx0ZXJfd2F0ZXJtYXJrPTEgZmlsdGVyX3Jlc2l6ZT0mIzAzOTt3LDM1MCYjMDM5O308L2NvZGU+LiAgQXMgeW91IG1heSB0aGluaywgdGhlIHdhdGVybWFyayB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIGltYWdlIGJlZm9yZSBpdCBpcyByZXNpemVkIHRvIGEgbWF4aW11bSB3aWR0aCBvZiAzMDAgcGl4ZWxzIChyZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gIFRoZW4gdGhlIGFkanVzdGVkIGltYWdlIHdpbGwgYmUgY2FjaGVkLCBhbmQgaWYgdGhlIGJyb3dzZXIgYWxsb3dlcyB0aGUgaW1hZ2Ugd2lsbCBiZSBlbWJlZGRlZCBpbnRvIHRoZSBIVE1MIG91dHB1dC4gIElmIGVtYmVkZGluZyBpcyBub3QgcG9zc2libGUsIHRoZSBpbWcgdGFnIHdpbGwgY29udGFpbiB0aGUgVVJMIHRvIHRoZSBjYWNoZWQgaW1hZ2UuPC9wPg0KPHA+RnJvbSBoZXJlIHlvdSBjYW4gY29tYmluZSB0aGUgb3B0aW9ucyBiZWxvdyB0byBwZXJmb3JtIGFsb3Qgb2YgZGlmZmVyZW50IGVmZmVjdHMgdG8geW91ciBpbWFnZXMsIGJ1aWxkIHNpbXBsZSBnYWxsZXJpZXMsIGFuZCBpbXByb3ZlIHlvdXIgc2l0ZSBwZXJmb3JtYW5jZSBhdCB0aGUgc2FtZSB0aW1lLiAgRW5qb3khPC9wPg0KPGgzPkF1dG9tYXRpYyBpbWFnZSByZXNpemluZzwvaDM+DQogIDxwPklmIHlvdSBzcGVjaWZ5IGEgd2lkdGgsIGFuZC9vciBhIGhlaWdodCBwYXJhbWV0ZXIsIGFuZCBkbyBub3Qgc3BlY2lmeSB0aGUgJnF1b3Q7bm9hdXRvc2NhbGUmcXVvdDsgcGFyYW1ldGVyLCB0aGUgbW9kdWxlIHdpbGwgYW5hbHl6ZSB0aGUgZmlsdGVycyB5b3UgaGF2ZSBhbHJlYWR5IHNwZWNpZmllZCwgYW5kIGlmIHRoZXJlIGlzIG5vIHJlc2l6ZSBmaWx0ZXIgYWxyZWFkeSBzcGVjaWZpZWQgYXV0b21hdGljYWxseSBhZGQgYSBmaWx0ZXIgdG8gcmVzaXplIG9yIGNyb3B0b2ZpdCB0aGUgaW1hZ2Ugb24gb3V0cHV0LiAgVGhpcyBpcyB1c2VmdWwgdG8gZG8gYXV0b21hdGljIHRodW1ibmFpbGluZyBvbiB0aGUgc2VydmVyLCBhbmQgbm90IHJlcXVpcmUgdGhlIGJyb3dzZXIgdG8gcmVzaXplIHRoZSBpbWFnZS48L3A+DQogPGgzPkEgU2ltcGxlIEdhbGxlcnk8L2gzPg0KPHA+VGhlIGNvZGUgYmVsb3cgdXNlcyB0aGUge0NHU21hcnRJbWFnZX0gbW9kdWxlLCBmYW5jeWJveCwgYW5kIGEgYml0IG9mIHNtYXJ0eSBtYWdpYyB0byBnZW5lcmF0ZSBhIHNpbXBsZSBsaWdodGJveCBzdHlsZSBhbGJvbSBmcm9tIGEgc3ViZGlyZWN0b3J5IG9uIHlvdXIgd2Vic2l0ZSwgd2hpbGUgcHJvY2Vzc2luZyB0aGUgaW1hZ2VzIGZvciB3ZWIgc3RhbmRhcmRzLCBhbmQgY3JlYXRpbmcgdGh1bWJuYWlscy48L3A+DQo8cHJlIHN0eWxlPSZxdW90O2JhY2tncm91bmQtY29sb3I6ICNkZGQ7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyZxdW90Oz48Y29kZT48c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gMTo8L3NwYW4+IDxzY3JpcHQgdHlwZT0mcXVvdDt0ZXh0L2phdmFzY3JpcHQmcXVvdDs+e2xpdGVyYWx9DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gMjo8L3NwYW4+IGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsNCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiAzOjwvc3Bhbj4gIGpRdWVyeSgmIzAzOTthLmZhbmN5Ym94JiMwMzk7KS5mYW5jeWJveCgpOw0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDQ6PC9zcGFuPiB9KTsNCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiA1Ojwvc3Bhbj4gey9saXRlcmFsfTwvc2NyaXB0Pg0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDY6PC9zcGFuPiB7YXNzaWduIHZhcj0mIzAzOTtmaWxlcyYjMDM5OyB2YWx1ZT0mIzAzOTt1cGxvYWRzL2FsYnVtLyouanBnJiMwMzk7fGdsb2J9DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gNzo8L3NwYW4+IHtpZiBjb3VudCgkZmlsZXMpfQ0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDg6PC9zcGFuPiA8ZGl2IHN0eWxlPSZxdW90O3dpZHRoOiAxMDAlOyBoZWlnaHQ6IDE1MHB4OyBvdmVyZmxvdzogYXV0bzsmcXVvdDs+DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gOTo8L3NwYW4+IHtmb3JlYWNoIGZyb209JGZpbGVzIGl0ZW09JiMwMzk7ZmlsZSYjMDM5O30NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PjEwOjwvc3Bhbj4gIDxhIHJlbD0mIzAzOTtzaW1wbGVfYWxidW0mIzAzOTsgY2xhc3M9ImZhbmN5Ym94IiBocmVmPSI8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Q0dTbWFydEltYWdlIHNyYz0kZmlsZSBmaWx0ZXJfcm90YXRlPTkwIGZpbHRlcl93YXRlcm1hcms9MSBmaWx0ZXJfcmVzaXplPSYjMDM5O2gsNTAwJiMwMzk7IG5vdGFnPTEgbm9lbWJlZD0xfTwvc3Bhbj4mcXVvdDs+DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xMTo8L3NwYW4+ICA8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e0NHU21hcnRJbWFnZSBzcmM9JGZpbGUgZmlsdGVyX3JvdGF0ZT05MCBmaWx0ZXJfZ3JheXNjYWxlPTEgZmlsdGVyX3dhdGVybWFyaz0xIGZpbHRlcl9yZXNpemU9JiMwMzk7aCwxNTAmIzAzOTt9PC9zcGFuPg0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+MTI6PC9zcGFuPiAgPC9hPg0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+MTM6PC9zcGFuPiB7L2ZvcmVhY2h9DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xNDo8L3NwYW4+IDwvZGl2Pg0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+MTU6PC9zcGFuPiB7L2lmfQ0KPC9jb2RlPjwvcHJlPjxici8+DQo8cD5MZXRzIHRhbGsgYWJvdXQgdGhpcy48L3A+DQo8cD5MaW5lcyAxIHRocm91Z2ggNSB1dGlsaXplIGpRdWVyeSB0byBjYWxsIGZhbmN5Ym94IG9uIGFueSBsaW5rcyB0aGF0IGhhdmUgdGhlICZxdW90O2ZhbmN5Ym94JnF1b3Q7IGNsYXNzLiAgVGhlIGZhbmN5Ym94IGpRdWVyeSBwbHVnaW4gaXMgaW5jbHVkZWQgd2l0aCB0aGUgSlF1ZXJ5VG9vbHMgbW9kdWxlLjwvcD4NCjxwPkxpbmUgNiB1c2VzIGEgYnVpbHQgaW4gcGhwIGZ1bmN0aW9uIGNhbGxlZCBnbG9iLCBhbmQgc29tZSBzbWFydHkgbWFnaWMgdG8gZmluZCBhbGwgb2YgdGhlIEpQRyBmaWxlcyBpbiB0aGUgdXBsb2Fkcy9hbGJ1bSBkaXJlY3RvcnkgYmVsb3cgb3VyIGluc3RhbGxhdGlvbiByb290LjwvcD4NCjxwPkxpbmUgNyBpcyBhIHRlc3QgdG8gc2VlIGlmIGFueSBmaWxlcyB3ZXJlIGFjdHVhbGx5IGZvdW5kIGluIHRoZSBhc3NpZ24gbGluZSBzdGF0ZWQgYWJvdmUuICBUaGlzIGlmIHN0YXRlbWVudCBpcyBjbG9zZWQgb24gbGluZSAxNS48L3A+DQo8cD5MaW5lIDggb3BlbnMgdXAgYSBkaXYgdG8gY29udGFpbiBvdXIgYWxidW0uICBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZXhhbXBsZSB0aGUgc3R5bGVzIHdlcmUgaW5jbHVkZWQgaW5saW5lLCBob3dldmVyIGEgY2xhc3MgdGhhdCB3YXMgZGVmaW5lZCBpbiB0aGUgc3R5bGVzaGVldCBzaG91bGQgYmUgdXNlZCBpbiBwcm9kdWN0aW9uIGVudmlyb25tZW50cy4gIFRoZSBjbG9zaW5nIHRhZyBmb3IgdGhpcyBkaXYgaXMgb24gbGluZSAxNCwganVzdCBiZWZvcmUgdGhlIDxjb2RlPnsvaWZ9PC9jb2RlPi48L3A+DQo8cD5MaW5lIDkgYmVnaW5zIGEgbG9vcCB0aHJvdWdoIGFsbCBvZiB0aGUgZmlsZXMgdGhhdCB3ZSBmb3VuZCBpbiB0aGUgZGlyZWN0b3J5LiAgVGhpcyBsb29wIGlzIGNsb3NlZCBvbiBsaW5lIDEzLjwvcD48YnIvPg0KPHA+TGluZXMgMTAgYW5kIDExIGFyZSB0aGUgcmVhbCBtYWdpYy4gIEhlcmUgd2UgY3JlYXRlIGEgbGluayB3aXRoIGNsYXNzICZxdW90O2ZhbmN5Ym94JnF1b3Q7IGFuZCBhZGRzIHRoZSA8Y29kZT5yZWw8L2NvZGU+IGF0dHJpYnV0ZSBzbyB0aGF0IGZhbmN5Ym94IGtub3dzIHRoYXQgYWxsIG9mIHRoZXNlIGltYWdlcyBzaG91bGQgYmUgZ3JvdXBlZCB0b2dldGhlciBhcyBvbmUgYWxidW0gYW5kIGFsbG93IGNsaWNraW5nIGJldHdlZW4gdGhlIGltYWdlcy4gIFRoZW4gY29tZXMgdGhlIHBhcnQgd2hlcmUgd2UgZGVmaW5lIG91ciBpbWFnZXMuDQo8cD5XZSBzdXBwbHkgdGhlICRmaWxlIHZhcmlhYmxlIHRvIHRoZSBzcmMgYXJndW1lbnQgb2YgdGhlIDxjb2RlPntDR1NtYXJ0SW1hZ2V9PC9jb2RlPiB0YWcgc28gdGhhdCBpdCB3aWxsIGdldCB0aGUgbmFtZSBvZiBlYWNoIG1hdGNoZWQganBlZyBhcyB0aGUgbG9vcCBpcyBleGVjdXRlZC48L3A+DQo8cD5UaGUgaW1hZ2VzIEkgd2FzIHRlc3Rpbmcgd2l0aCB3ZXJlIHVwbG9hZGVkIGZyb20gbXkgaXBvZCwgYW5kIGFsbCBzZWVtZWQgdG8gYmUgcm90YXRlZCA5MCBkZWdyZWVzIGNvdW50ZXIgY2xvY2tlaXMuICBTbyB0aGUgZmlyc3QgZmlsdGVyIEkgYWRkZWQgd2FzIHRvIHJvdGF0ZSB0aGUgaW1hZ2UgOTAgZGVncmVlcyBjbG9ja3dpc2UgdmlhIHRoZSA8Y29kZT5maWx0ZXJfcm90YXRlPTkwPC9jb2RlPiBhcmd1bWVudC4gVGhlIGltYWdlcyB0aGVuIG5lZWRlZCB0byBoYXZlIHRoZSB3YXRlcm1hcmsgb24gdGhlbSA8ZW0+KHRoaXMgaXMganVzdCBmb3IgZXhhbXBsZSBwdXJwb3NlcywgSSBkb250IHRoaW5rIGFueWJvZHkgd291bGQgcmVhbGx5IHN0ZWFsIHRoZSBibHVycnkgcGljdHVyZXMgZnJvbSBteSBpcG9kIGZvciBjb21tZXJjaWFsIHB1cnBvc2VzKTwvZW0+LCBzbyBJIGFkZGVkIHRoZSA8Y29kZT5maWx0ZXJfd2F0ZXJtYXJrPTE8L2NvZGU+IHBhcmFtZXRlci4gIEFuZCBmaW5hbGx5LCBiZWNhdXNlIGV2ZW4gdGhlIGlwb2QgdG91Y2ggY2FuIHRha2UgcGljdHVyZXMgdGhhdCBhcmUgdG9vIGJpZyB0byBkaXNwbGF5IG9uIHRoZSBzY3JlZW4gSSB3YW50ZWQgdG8gcmVzaXplIHRoZW0gdG8gYSBtYXhpbXVtIGhlaWdodCBvZiA1MDAgcGl4ZWxzLiAgVGhpcyB3YXMgYWNjb21wbGlzaGVkIHZpYSB0aGUgPGNvZGU+ZmlsdGVyX3Jlc2l6ZT1oLDUwMDwvY29kZT4gYXJndW1lbnQuICBXZSBhZGQgdGhlIDxjb2RlPm5vZW1iZWQ9MTwvY29kZT4gYXJndW1lbnQgYmVjYXVzZSBmYW5jeWJveCBkb2VzIG5vdCB1bmRlcnN0YW5kIGhvdyB0byBkaXNwbGF5IGVtYmVkZGVkIGltYWdlcyBpbiBpdHMgcG9wdXAgd2luZG93LiAgVGhpcyBkZWZpbmVkIHRoZSBpbWFnZSB0aGF0IHdlIHdlcmUgZ29pbmcgdG8gbGluayB0by48L3A+DQo8cD5OZXh0IHdlIG5lZWRlZCB0byBkZWZpbmUgdGhlIHRodW1ibmFpbCBpbWFnZSB0aGF0IHdlIGFyZSBnb2luZyB0byB1c2UgaW4gdGhlIGdhbGxlcnkuICBUaGlzIGNhbGwgdG8gPGNvZGU+e0NHU21hcnRJbWFnZX08L2NvZGU+IGlzIGFsbW9zdCBpZGVudGljYWwgdG8gdGhlIGZpcnN0IGNhbGwsIGV4Y2VwdCB0aGF0IHdlIHVzZSBhIGRpZmZlcmVudCBoZWlnaHQgdmFsdWUgKDE1MCBwaXhlbHMpIGZvciB0aGUgdGh1bWJuYWlsLCBhbmQgZm9yIGtpY2tzIEkgY29udmVydGVkIHRoZSB0aHVtYm5haWwgdG8gZ3JheXNjYWxlIDxzdHJvbmc+YmVmb3JlPC9zdHJvbmc+IGFwcGx5aW5nIHRoZSB3YXRlcm1hcmsuICBJIGFsc28gcmVtb3ZlZCB0aGUgbm9lbWJlZD0xIGFyZ3VtZW50IHNvIHRoYXQgdGhlIHN5c3RlbSBjb3VsZCBlbWJlZCB0aGUgaW1hZ2UgaW4gdGhlIEhUTUwgb3V0cHV0IGlmIHRoZSBicm93c2VyIHN1cHBvcnRlZCBpdC4gIFRoZSBzY3JlZW4gY2FwdHVyZSBiZWxvdyBzaG93cyB0aGUgZWZmZWN0LjwvcD4NCjxpbWcgc3JjPSZxdW90O2RhdGE6aW1hZ2UvanBlZztiYXNlNjQsLzlqLzRBQVFTa1pKUmdBQkFRRUFZQUJnQUFELzJ3QkRBQWdHQmdjR0JRZ0hCd2NKQ1FnS0RCUU5EQXNMREJrU0V3OFVIUm9mSGgwYUhCd2dKQzRuSUNJc0l4d2NLRGNwTERBeE5EUTBIeWM1UFRneVBDNHpOREwvMndCREFRa0pDUXdMREJnTkRSZ3lJUndoTWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qTC93QUFSQ0FDaEFmQURBU0lBQWhFQkF4RUIvOFFBSEFBQUFRUURBUUFBQUFBQUFBQUFBQUFBQUFRRkJnY0JBZ01JLzhRQVVCQUFBZ0VEQWdNRUJ3UUdCd1FJQlFVQUFRSURBQVFSQlNFR0VqRVRRVkZoQnhRaWNZR1JzU015b2RFVk0wSlNrc0VXSlRSaWNuUHdKRldDNFJjMlExTldnNkx4SmpWRVk3SmtrN1BDMHYvRUFCZ0JBUUVCQVFFQUFBQUFBQUFBQUFBQUFBQUJBZ01FLzhRQUl4RUJBUUFDQWdNQUFnSURBQUFBQUFBQUFBRUNFU0V4QXhKQkV5SWpRbEZoa2YvYUFBd0RBUUFDRVFNUkFEOEF0Zlc5VnViSzcwK3hza2c5WnZwR1ZaTGduczBDakp5QnVUNEN0THZWTG5UTEZZOVF2Tk1pMUdaK1dESWNSdU1nZE56bmY2VjA0aGswWDFhS0RXd3ZZeU1lUm1Wc0t3NytaZnVuenFKM01sMUp3dElIa3VKck5OV2dXeW11QWUwZUxtSFhPNUdlaE5CTkxyWE5Lc1pIanV0UXQ0WFJ3aks3NElZak9NZTRnMXRIcldseTN3c285UXRudVdHUkVzZ0pPMmR2aFRGRkRISnhMeGd6eHF4N0dOUVdYTzNaSGI4QlRYREVxY0o4RnVzWVZ4ZVFISVhCMzVzL09nbGI4UzZKSE8wTW1xV3FTcTVqWldmQkREWWcrRmM1OVN1RTR0c2RPUms5V25zNVptOW5KTEtSakI4S2k5cnFlbVcybjhTV2QyQkpjVDMxd0VnRVJacGM3QURBOGZsU3F6aXVOTDFuaGM2aHpvdzA1N1ZwQ0NRSlNSaFNlNDBFbW0xM1NiYTk5VG0xRzJqdU1nZG0wZ0JCUGNmQSsrbkNxNHNrZ2owZTUwYlZ0UWUxdVpKWFdlM05pSGVRczJ6cTJNdG5JT2U2ckJ0b1JaMlVVRFNzNnd4aERJL1VoUmpKK1ZBMlhldkphOFMyV2tsY2lkQ1hrL2NZL2NIeDVXL0NqOUpYUDlMcE5OeW5xeTZmNndCeTc4L1BqcjRZN3Fpeng2dnErbWFscVZycDBiQzduRnpienRjY3Jvc1I5Z0JNYjlEMzc4MU9WcnFNVjF4ZFphaXdaSWRRMG9KRXhVNE1uTVNVejNFWU5BczRiNHB0ZFIweXpXK3Y3VWFsTUd6RUNGSlBNUUJqeHdCdFQ3SGVXMDF4Y1c4Y3lOTmI0N1pCMVRJeU0vQ3E3dDdpenVmUjdEbzBjYlNhcy82cUVRdHpxNWZLdm5Hd3h2bk5QZHZmdzZMeE5yYTZnN3E5ekhBMEdJMmJ0aUkrVTh1QnVjOTFCSVAwN3BRdG83azZoYmlHVkdkSExZREtwd3hIdUpBcm1lSk5FV0tLUTZyYUJKU1FoN1FiL2w4YWgyZ1JoMjRNRWlCZ0k3dHNNTTRJSklOTEJieGZvM2pyN0ZQMTBtUFlIZEhrZmp2UVRrSEl5RGtHaWtPaWtuUWRPSnpuMVdMT2Y4QXBkUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRlJsdURyZmw1Rm1Fa1lVS29tVmlRQVA3cktQd3FUVVZaZEpac3dhTndwYmFQZmV1TGNTeVNCWkVST2lJcmxTUUFjbjlnZFNhZjZLS2lpanJSUlFGRkh3b3g1VUNEUzlMVFN4ZGlPVjVQV2JsN2x1WUFjcGJHUU1kMjFMNk1lVkdENFVCaytORkdENEdqQjhEUUZGR0Q0R3M0UGdhREdUUm1zNFBnYXhnK0JvQ2lpajRVQlJSOEtQaFFGRkdQS2pIbFFGRkdENEdqQjhEUUZGR0Q0R2pCOERRRkZad2ZBMWpCOERRRkZGRkFVVVVVQlJSUlFGRkZGQVVVWVBnYVBoUUZGRkdDVGpHOUFVVm5rYjkxdmxSeXQrNjN5b01VVm5sYjkxdmxSZytCK1ZCaWlqQjhLenl0KzZmbFFZb3JKVWpxQ1BlS0FySG9wUHdvTVVWbmxiOTF2bFFWWWRWSStGQmlpczRQZ2ZsUUFUMEJQdUZCaWlzOGpmdU44alJ5UDhBdU44cURGRlpLc09xa2U4VWNqZnVOOHFERkZaNUcvY2I1VWNqL3VOOGpRWW9yUEkzN3JmS2psYjkxdmxRWW9yUEszN3ArVkFCUFFFKzRVR0tLenl0KzYzeXJGQVVVVVVEYnFURVN4NEpHeDZlK2tYTzM3emZPbG1xZnJZLzhKK3ROK2Q4VUc1a1lrKzAzenJIT3gvYWI1MXBuZXRTYURjeVBuN3pmTTF6WjN4c3pmTTBaTmMzb01tUi93Qjl2NGpYTXlQL0FONC96TllKclVuem9NTkpKKyszOFJyaThrbS8yai94R3QySnBPMjFCaHA1Zis4ZitJMTM0UjFBNmtZN2oyaDlzeVlMRTdDa0x0djF4WEhnZWRvV2dqeHpDUytrUWtkQjFOQk03eDJGM0o3UndDTnMrVmNDN2Q3SDUxMXZ2N1pKOFBwU1ZqNDBHNWRzZmZiNTBkby9lemZPdE01ckdmSHJRYkYyL2ViNTFvWkh6OTl2bWF4ekFISFN1Yk1EMzBHV2tjZnR0L0VhME1yL0FMNy9BTVJyUm0zclFuRkJzWlpNZ2M3ZnhHdVR6U0Q5dC80alFXM3JpNW9OWG1rQTJsZitJMDZjTXlNK3F5Z3U3QVFucVNmMmhUTEtkczA2OEtIT3JULzVQWC9pRkE0TkkyVDdSNm52ckhhc1AybStkSTN1VkR2bnhJcm1idFIzaWdjUk0zVG1iNTFudFcvZmI1MDBIVVkxSkhPdVI0bXViNnFtTm5YK0lVRDBaM0RZTEhHT3Vhd2J2bDZzZm5VTjFEaXExc2NtYWRWeDNjMU00OUllbHpTZG42eUFmTnFDZjNlc3JicVR6a251cVAzbkZGd1NRa2hIdXFOWFhFbHM4cVptVHMzMkQ4Mnc5OUk1TlJzWkVrY1gwYWhja3NQTHo4YUNRVyt1NnJxbHpMYTZkSUpab3dESnpQeXJHUE0rUGwxcDFnL1NmTk90NXEwa1RRNExkaUFGSG1jNXFzTFRpNmJoSkI2dEg2Mjl5ck9zemV5RC9lL0dtSFV1SmVJYnE2YVNTUzVSZ1FTZTdJNkhwUVh4eFJxVjdvY1ZyY1djc3pxVVZtU1lobGtCeHZ0dm1sM0ZGeTdlanZVWjFMSS9acVJna0ZmYlRiTmVmaHhWeE5xTjNIYzNkOWUzMHcyN05sMktnNUhkajhLdDV0UnZOVTlDbXEzVjdEMk53U1F5azV4aDAvR2dxbWE4dWhxOHlpOXVWUmxCR0pteHQ4YWM5T3ZiaU8vUXRlM1BJUmc4MHJIYy9HbUo1UStwMjVZYzNQRVJ2MUdLY1ltQ1R4dHlIUGZnWnpRTGRldXJ2OUpXMGtkNWNzblo0L1hNTndUNEdyRDBLR2E2dHJLZHBwc1BHckgyejRlK3EwMVFubGd3Q0FHSXF6dUNwdTA0ZXRYTytFNUNlYk80UC9PZ2w4enhpR09GcENDNTVWRys1eG5yOEtyN2l5MmtpMC9VcFV2cnFQN0Y4eGlUQUpXUlFNRHJqR2M3OWNWTjdtem51UmJzc1RrSk1zZ0lIVWpPS1lPTDlOZHJhZU5ZcGhQTGJ5b2lJbzl0aHlsVjNCUGVlbUtCcjlEZHhKSmZhcmJ6eVN5RXdDUlM3bHNkeEc1ODZldUk3Q3d1dE9udW5FZ3ZZTGRsaWxFN3JnRGZvRGp4NmltRDBWVzkzWTZ6ckVNa2IyODZXV01TajdqYzNlS2JOVnQrSkZ0bmU1MTd0b1NwTHhwYmdBand6M1VEWHBkbGRhdnFNS0c0dUpJNG9KSkdnYTRkTzFiS3FNa0hvTTVwOHMzL0FLTm00anU3cTVnZ2VSV1FjN1N0SjdJSlVFOXdPZmNNWjhhamVnYXVOSzErMEZ4SWtjRXNVcVNPN1lDNDVXQno4S2MrT0xSTG8yZXEyYzRsdCtUc25NVzR4elpEZWVjNCtWQnBxWEZrcGRoYnp5eFlKNUZXUnVZZkhwMThxZS9TVmQzSTlISENjeXpUUnl5TXBjcktRVDlqM2tIZW9CeVc0a2hjTzZCVHpNcnNEeU40NXg1RDNWT3ZTU0RKNk5PRDhra2twa25yK3BvS3B1YjYrVlZZWHQwTjkvdDMvT3U5dHFWN2xWTjdja2Y1Ny9uU2ZVRVQxSXlJMlNrbksrRDBOYlIyRjR1blI2aTF2SjZtOG5ack1SN0pZZFJueG9IMjExYlU3UU85dHFWMUU3cVZibGxKeXA3dHpUZGMzOTZja1h0MXpaSFNkdC94b2lsSFlEZnAxcEhka05idG5CM0hYdW9GMXJkYWdDNlMzTjJ1M1JwbjIvR3NUWGw0dUN0N2MrWDI3Zm5TZlFWU1c1WlpXazdJSnpQeUFGZ01qcG5yVzk4cUxJNWg1K3k1anlsOFp4NTRvTzl0cU4ramh4ZTNJS25LbnRXMlBkMzFLUmRTWHNTWDBOeE9nZmFXTlpYNVk1UjFVYjlEOTRlOGp1cUZwSUF1TnMrZFBYRCtwUjJGOGUzYVFXY3c1WmtYdzdtSG1wM3gzamJ2b0piYVQzTURSU3RjVEVnL3RTc2ZQeHFWZW1hM3VINFNzYnkxbWxSdTFSV2FOeXZWV0k2ZWRkN1BoeURWRWlUblZaY1lZajl2d09mZGlzOGN6VDNHZzIvRHJXcnRjQ05KdTFaaCt5U3VBUEVqdm9LYTRVOWZIRjJqYzk1Y2xQWG9ReXRPeHlPY2RSbXZVeDZtcVE0VzRXZ2gxcXdsdVVuV2VPNFIxVm1DNElZSGNZL25WMzBCUlJSUU5XcmZyWXY4Sit0TjJhY2RXL1d4ZjRUOWFiR29NazcxcnpZckRIRytEVEZ4SnhISG9Ob3Nra0x1SHlBeTR3TVVENHppdVprcXBYOUs5N0hKL1o3UngwM0xDbE5oNlc0VElWMUd6Q29UczBCSkkrQm9MTkxkOWFNeHgwMnFQYWZ4bG91b1JLNlhxS3pmc05ubUh3cGIrbk5Oei9iSS9rZnlvSEVuYXVEMFEzVVYxRUpZSkJJaEpBSTI2VmlRMENWenZrK05MT0EySHF5c2VrbDNLVWI5NFo2anlwajExK1RUanV3VnBFVnNISHNsZ0NLa3ZES0JKcmVOUmhWa09CNGJVRDNxRzE1SjhQcFNVbWxWL3dEMnlUNGZTa2hvTlFhNVRUaUNKNUNDUWd6Z2RUWFR2NlZGT05kVEZwcGd0UktZM3VUeWxobk9QRGJ4b0dEV1BTUlBiM1VpMmxxQkd1MzIzWFBmMHBGSDZWSlN5bVN5ajVNKzFnNzRxS1gxdkQyVE1IK1lKTk1raW9pZmZHZmVhQzdkTjQzMG5VNVk0bzNaSkh6a1BzRjI4YWtDeUxJb1pHREE5Q0RYbStHNEViNUVwVStJcXp1QmVKUk5ielIzMTZBc1NoWTFPZm5RV0VhNU9heWtpU0lyb1FWWUFnanZyVitsQW5rTzFMdURIZVhpTytMT2VSSUFpcC94REpwQkowcFp3Ui8xajFMYmZzeC8rUW9FTTl5M2F2diswZnJYQXp1M2ZUaFBhcUpYL3dBUjd2T3VZdG96MXo4cUNCYSs1L1M4cDcrVmZwVVkxaldVMCtFcXBCbVlZVWVGVFRpQzJSZFlsQUhSRjd2S3FnMTZacE5UbXljNFlnZVZBaW51NVo1R2VTUWxqMXJnSkNEMTNwVlk2WlBmdjdJS29PckduKzM0YnQwQTdUTEh6b0krbDBWWEJZOGdPU3RTZlRlSzJzYlUyNWdXYTFBNWxWa0I1VDQwb1RodXhkZDQrdmhXMDNDVFcxbExOYlB6RURtS040ZUZaeXk5WGJ3K0w4bVYzeEREZlR5YW5jK3NGRVJUOTFSc0FPK24yMGprRTBiWEhLMEl4ektpNEpIaG51cUx4eXlKY01IWGx3U0NuY0ttZHVCSXFNQ01FQ3RPVjR2QjMxS2ZScDlNU0xTOU1tdGJ6SUx5eXo5b3BYdkhMVXYwZEpuOUNHc0pJVVp6TzRIS3ZLTWMwZFFSVXd3cWYyUTVmUXByQkgvZnNmOEExeDBSVjgybjhpVzBqU3hRaEhHV2Q5c0hHTnhtbEN1T2JsNXdXVW5KNWVsS05UVHR0RGxueGdSY3JiZVJ4dlNPRWMvM1FjQUtUZ2JETzlBdG5pZ2xqTDNJa1pZL2JRSTJNdDVudUZTclN0WTFDMzRhZ3NyQmt0bWVjekNTUk1xdURqQkozT2RzWTI2MXJvME9uYVRiUjZqcU1DWERTWTdPMUs4d09QMmlPOCsvYXBOeFhiYVhybHZwNXRkU2d0Sm9NUnNnUXFGWE9jQUFiWThLQ1RhUk5mWEhBS2FoZXhPTlFlMzl1TU5sY2c0eWc3Z1J2U1RqRFNVMU9RYWZFcFNOY1o1Q1FGQlU5UU80Ny9oV3FjWTZUbzl0RHBjVjNCSXFRQkZEQnRnUElDbXZXT0pyUzc3U1MxdlNIbFRKZUZDck5nYlpQZGpmNTBEYjZPckNiUytJTHBHRWZhUEU2R0RtdzRRT0NHSTZZUHozNlVsMXlXZTdubHRvTlBta2Nkb2dWY0RiZjZiVXE0SG5zOUp2bnY3KytpVDFpSm9peEpMaDJ3Y0hieEZPU1RpOW11b05PalZpeGZMSnU4b3pnbkp4dDNZSGthQ3ZYczdiUzljZ1ZyVTNWK0VQTklQMU1BS0E0d1I3VGVmUWVkUzJHd1RWYk45SkVVMGMxNFdqN2NyN0lCSUlPZXVBUEtuV3k0WDFMVkxqdGdxUXhNbkwyam5id0l4MzlLZStJTkcvUkhEZDllMjExS3R4QmJzNmRraW9lWURiQkc0K3RCSHJiME0yNnhxcjZwS2M5U0k4OS9jUG5TRDB2NmRIcGZCdkQrbTI1WXhXMXgyS0Z1cEN4RUROTWNON2ZSY3M4dXA2ak03TDBudlpHQStHYWQvU2d4bDlIM0REc1N4YVJTU1NTVDlsNDlhQ0IyZC9wYitpeS8waTRkVTFPQ2NNaUg3ejVjRUZmaGtmQ21LSFRZNUxLSjFKVm1VSHlweTFLT0g5RHZ5QWh5WXljNXgxcnRwOXVUWVFuRzNMM0R6b0dYMWU2alFyZ092aUswdVVCczhHVDdWajdVWlVncmp2ejBOV0duRFVjMmpOY0t3RWdPZmVLaCtwcmJ2WnVCTW5NcWN3d080SGZlZzU4TVJ3NXY4QXRXQy83TWVUUGVlWmEyMWFJSlppUlYyTDQ2MXcwTzRoRVZ5R201SGJDOU83L1FwYnE2d0xvaU4ydk0vYmJrSDJjWVBkanI4YUJ2bk5wY05iZW93U3h1VVdOMGFUdERKSm5xdXd3UExmMzBPV3R5VmxVcXdPR0JHQ3BIaUtJakJDdHN5Uzhrb1lTbGxHK091eFBRK0ZPRWtQNlV0WlBWK1NabU9aSk1iOHg4Yzc0eDFOQlpubzUxdTNpdEliRzR1SWtlTWg0T1k0T0NTU3VmeEh2TlN2amZVN0szdGJMVlpBWGdCTUpDWTVzbkJIWHUyYW9idzdjYUZiV2Rxc2VpeVhWemdMSk5PVlNOaU8vT2M0SHUzd0tsRVdyV3VzdmQyTnhwTm84Y1o1b3c2Q1FFNDIzUHZPTnZIcFFNV2k4YzZMTnJGbFpMYVhZa2ttU05DUW1BeElBenY1MWE5UnZUWWRBVHM0NHRMczRybUp0aWJaQVNlYkFLbkhqaXBKUUZGRkZBMDZ2K3RpSGR5bjYwMW40MDZheCt0aS93QUordE5aNlVHam5CcXJPTFk3aldaYnVkRmtraWoyUmM3SU5oK1BXclFseHlObndxTmFoREhGb1YwMGFjb2VQSitZb0tQdTlObGpjRmxJOGFRdkFRMk1HcGxmaFJNUmpyVFBQR3ZNZGhtZ2FMZDViYVpKRVlvNDZFVlprRVFHbnhTOW9PWWdiWnlmblVFYTM3UXF3WFpUdWU0VkxOSm5hYXdSUzJlejluR1RpcGUrSFhIMW1OdVN3T0hNL29aUDh4L3JUaTQ4NmJ1SEIvVXlmNDIrdE9MZ0VIYjhhcmtaZGZYbTBxVURZQmxPZmN3cVVjTjQ5WWh6blBhL3lxTmErQitocm55WFB5cVI4Tk1QVzRRUmpENUhudFFQZC9qMXVYUFhiNlVrYWxkLy9iSlBoOUtSbWc1bnI1VkRlTW9vM0VibGN1cnJ2OERVeVlWWC9IRjNKYUs2a0FreUt3YndISzIxQkZOUVJUR0FSNVZIN3Ezak80WHBXYmpXcFhjeHRJbU9uVEZJNTlRSUlEWTM2ZVlvTlRicVZJVmNrMDg2SEI2bmRsUkpublRkZkEwelFYaDV4SUZ3bzZIUGZUaFlUeXlhcERnRWc3ZGVnclAxMS9XWVhjNXE3N0wrd1czK1V2MEZkR3JTeUg5WDIzK1V2MEZkV3JUa1RQNVVyNEwyNG4xSWQzWUtmeEZKWkFBQ0tYY0lRc25FMTdKajJYdGhnLzhBRUtCM3ZyRHRPYVdKZHgxVWQvblRNMFhLY2QvaFVsczd1QzlqYVMzY01BeFUrSU5NZWtvdDNkWG5hbk9QdStXU2FDdWVNYmdXbDFlem5iczRWSStWVkJaV2o2dnFiQWtoYzg4amZIK2RXNTZTbzFSdFRSdDJFQzQ5K0JWZThNUUZMT2FZRExPK0FmSWY2TkE3SkhGYnhpS0pRcXIweFFYeU5xeTNLbzNPOWN5NEIyb2Y2TGJabjdSTWJiamZ3cDdqbmt1VlZaUXZValBYSnFPUHE2NmRBVW1oUGlweUNDZkVWenN1SkFKRUxBaEFlcEZZbjdYbDZNOStQSDFsNzdhY1RhRjZ2SWJ1SlBaYysxaXRkS2NwR0kyT2VYZFRVNFNPMzF6UnlnYlpsNitCcUxYdWkzV25YTWxvNjluZFJ0eUZUNDdZUGhpdHZPVURacy9PckMwa2Mvb2MxVVk1c3pQdC93QVVkUUU4S2NYMjJHdUxiVHlXd0FvMUNIbU9TQU51YnpGV05CcGQ5cGZvaDFXMXZvVml1RElYNUJJc2d3V2o3MUpIY2FDQ1E4aGltdDVFVTl0SGdnQU52allINjBodGxaSlpiZFlnb2RWRFpJUFR3eDd1dEtZb3BTUXZaODJSaGVYYkZLTGZURGFwSlBPd1IyVEVTblB0TjNaOGdONkJYRTZyYUxEZFNpT09NODhiT2NlempKQTl3MytIalM1YnEyOVpuNVdIM3ljK05SMlNQMWhta3V1V2QyVXBuOTFjWXdNOU9wNlZHcDcyK3NMeWRZSFY0Z3g1ZWNrSEZCS05YZTJhYVdRWkRCQStWN3huY2ZLbnFHZEpJVWFJaGs1ZDVDTmgvd0ErdFFxd21OMWNvYm84NVpHQkM5Q1FRY1ZLa3ZSeWhValBnaUtOZ0tIWlYyWkZpeG05bFJNQ0dDNUxlMk56OEtlZUhOWFdEWEpDcUt3RUxjdVR0MUZSSzUxR1VvVWtiQjhBZW5pSzdhQkwydXE0UHNqc3pqYk9lbTFTYjI2NStza2s3WFZvMm9QZkE4aUtxcU5nb3dCVGhxMWdkUzBpYXo5bk1xOHBMWngrRk5YQy9JdG5rWUNnNHljQ24yVzdpakFCZGM5MjlWeVZqY2VpN1ZaSlM2MzFyZ25jSG1KSHV5S1IrbGl5ZXg0TDRmc25ZTTBFM1pzdzZFaU9yTXU5VWFCNFlJaXNseE94V05lNFk2c2ZJVlgzcGtEZjBkMHJ0TU93dW01aUJqSjdNOTFCVTk0eGZUbURZeHlyMDhqVWk0WHNsdXRPak9kbGNqclVZWkpKcmN4UlJ1N0ViS296MzFMK0YzRm5wQjdac0VTT01BRmgzZDQyb0phNWhnMC9rWUFLVjVCc092S2FxYlY0NGt0Wmw3VW93aGJLakh0RTRxejdpMW11dE1Od3ZNc0NGWkdkbElBVURjL2pWY2F2YnBCRmNyTEtxeXNyRGxEKzdHMUFoNFN0b3BrdnpKR3JGSXdWeU9oMzZVcDE3bU9scWdmbVR0VlBJRUczWEp6MVBmU2Zoa3pKWTZvWU9UdERFdkx6Ymp2cExQTnFDTVRkUEc4YTdzc2E5UE9peWI0ampKcGd1b3BKb3JodWFNS0VSays4TWZoVWg0ZXRyUzJzcDVKaVZ5Vk9Ya3dXMjZGUjFId3ByMC9VYlo1WlVTVEhOak9Uc2NmdStYU2s2TEtsN2NyTE1BV1lFTUIxSGw5S2syMzVQWGlZbis3MUZYaU1Oc3l3RmM0a0E1V3dUNWRSMTJwSGFhcmMycVJTaSttM0xLRlNVNWpKd0NWMzJQVGVra2FKRUhhWExCenkvZjNBSHU3cVN0YU1KL3N5QUdHTS9tYXJtbXZEV3NYTXZFR25ReVhidUd2b2x5ekU1SE52OE1uNW12UVo2MTVmNFdDcnhYb0tBdm4xdUU0Sis5N1kzOTFlb0QxTkFVVVVVRFRySDYyTC9DZnJUVVRUcnJINjJML0NmclRVd3hRSXRSV1dTeG1XRWtTRWJZR1NmS3E3NGsxUzhHa3loWTM1T3p3REdkaHYzMVpyRFB4cUFjUzJ5dHB0N2x5aWhTY2ZIcFFWYWwxYzNKZkxNZVhHU2FReVhrcGtJR2VicGlucTBDUjJzN2tBSzJWWEl3V0hqVFZIQ3IzWmJmc3djbGdNNytGUzNUV0dGenltTUtMZTVtaWhDbFhWbkdkK2hIalVpNGFTVDFPUjJQc0Z1VmMvalVkNTFra1pnTmlkczl3cWJXRnVMV3lpaEdkaHY3K3BwUDhBTFhrdk9wZUluWERuL3dBbVQvTWY2MDRQbWtIRGcvcVpQOHgvclRpNDhxcm1RWGx1bDFieVFTWjVKRjVUanJTamc3MXVIV093dTVWZFF5OWs0R09iWTdlK3NTWUF5ZWdyaHdhYnE5MTZHK21DcEEyOFVZYlBLTjhIM21nbWQrTTNrbncrbEl6dlMyKy90a253K2xJbW9PYmIvT29UeDlEejIxc3d3Q1g1U0QzakJxYkVWRWVPbzg2WmJ5ZnV6WVB1d2FDcEZ0Z05Vd1FydVBhNkRBSGlhYmRVUVBlTVVHUVRnQWQxUGZadkcwN3JIekVrZ3RtbXN4R04ybmx5Y2JEdnpVdDA2ZVBEM3kxOGNZd1VIWVpLcVB2QTcvS243aDYxNXA1Yms5RVhrWDMwd1I1Njc1WW1wWnc5aGRPWWtqZHp0U001NWJxMnJFZjFmYmY1U2ZRVjBhdWRrZjZ2dHVuNnBmb0s2dFZaSjMvR25iaFRINlVtR1Juc2ZIKzhLYTNIZlNyaFlIK2xzdXdQK3hISC93QzR0QXkyMXpOWTNra2tEbFR6dDM3SGVwRHc2NjhsdzU2dXlqNm1vcWs4VThrand5cEl2T3dKUTUzeWRxbEdncUZ0RmtCM01oeVBJRC9uUVZwNlVVN1RVcnlNZDhhL0gyYXIyMHZHdHRJaVNJZTB6TjA5OVdWeDJxemNTelJuN3BpWDZWQWJuVFBVMTVZOGxRU1ZCOHhRTkRYOXpITDlvMmFtT2lhV2RTczNuS2txcTlQTTlLaGlXVXQxZXJIdWN0akhjQlZ0YUVJclBUakFNRG0yT0t6bGZrZWp3WVMzMno2aXBid3lDNWRYTHNxc2NjMVNQaHFTMG1qZTNuVG41d1J5OHZsMXA5MS9obTB1aDJzV0VsOFFkalVkdGJLNDA2Yms1Y01mMmxOV1RUamxsdTdTRGh2T24zMGxzSFpvVG5DdDNWTnZTUHB4aDRndGJyMlJEcUZxRlo4ZmRlTURIekJxSTZMYVlZdTQrME81SnEyK045T0Y1WTZRZVVFUnVRMmU1U2d5Zndxc3ZQbHRiU3J4SFBieU14SWtUY25wbGhWbzhDR052UXZxSmx5RTlha0o1bTV1K1B2cURhYkUxeHhrNWtQTVFVQkk3OEhZL0dwendEQzAzb1kxQ05Ua3RkeUFFanpqb0doN3FJakZ0YkVIKy9rZmdLajJxUGRQZTlvMHpjeWtNQ3hPUERwK0ZTZGRLbjVqN2NZSFFuUDBwQnFXZ1hGeXJMRUVZNDN6Smdudi9sUUliQ2RKUVZmbERqZkJOTXVxV0tTcmR5U0ZSeVMrd1AyanY5UEduV1hTTlJzRTlZa1dJRlIxRWd5UGNPK21xU1VTUTNBbUxOTDI0eTVPNUpQU2dUY3kybllBRXZsdVZTT281dS84SzJna21VZHAyczJGeDdTdjBOSnJreUs1U0tQTXZNQWk0NkdsY3hSVVNGRG5sUE1kdkdzMi9IYng0Y1hPOGFLa2xhWlE3a2xpTWJtbmpoc0VhcTJCMVFrL01VeFcyZXlWUjU3MUl1R1VINlNZOUFJeWM1NjdpdE9WdTd0WWR2cTNxa0lHU0ZVN0tQNTF0SHhIYnRBVk52STh4UDMrMTIzOHNVeHpuMlNDUmp2enZTTlc1RVhPU091d3hSRDdlNm5OYzNWcmMyOGlwYzJ6OXBFWFBzRTk0YkcrRFNuMGdhbGF4OFBhTGZhcFlyY3E4M004S1B0a3B2aHFqc1hNeFZzNEhuMXB5OUpha2NHYUN1ZGhJQWM5L3dCblFRTFY5VDBpOFJqWTJVMXVrZ09BaEFaUjcvOEFsdlMvaG1mazRaV0lOK3N1WmxCSFRaWXpVWFdQSkF3UUQzKzZwSHAxcmN3Mk5yYnl5UVdxTExJNnVGNW1PVlhKS25ZakE4cUM0WUxlTzU0V1NOeU1QWll4NCt6bXFHMWFMdDNhU2FhTlVLTVU4U1RqcDViVlBiYVc1bHRwWVJNOGl4V3ZNanVNa1p5RDVia2VIU29ISnA4aktUSjJhc1FOODdrMENYUVl6YjIyb2RsbHlpY3I3YkU3OVBERkpacmVkclJwcGtOdWpqYVU1Yk9Oc1lHNXArMHF3RnJIREdyYy9yakJXSUhRY3JISy9HdEw3VDU3aVgrMENRZ1lITjAyMitsWnQ1MDdZWSt1UHY4QThSaTBqamdaNG9vbVljeHpJNEJadmNlNEh3RlRQaC9oR1BpcGJpZEx0clV3RlV3MGVlYkl6WEhUOURqQlo3aWJtYm0yRVorcHBUZE5jNmR5SllUM0VVVHVUSXlURlNkdGh0ODYwNG41ZlE0dHhHenZyQlNNZEFJVDhlK3VUZWpXMXQ5U3RJQlBMTTEweGlEbFRoUUJubVlkTTVJNzZqN2F6cURqc3pxVjRjZU03NCt0ZDdXOXZZQVp2WGJsV3g5L3RXeVBkNGQ5Qk1yTDBhcHBHdGFmZVIzU1RTUjNFYkhDbFJ5ZzV4akpxMHFvTFNOV3ZwdUo5TEVsN2RTSzE3Q0NwbVp0dVlkZCtsWDZldEFVVVVVRFRxNCsyaS93bjYwMXQxTk9tci9yb3Y4QUNmclRQUExIQ3BaemphZ0RzRFVLNHVoeFlhaXZRTkhsY2Y2OGExNHE0OFhTVUVObkdqM0w5T1luQ2p4ODZiZldkUTFiZzV0VHZwQXpUaHlnVlFvVlFRUHFDYUNFWEZ1N1d5b3pLTWdkTnNVMFhDUENCRUdYQndUZ1lJNjdWS0hic2JkcEdIdGdaVEkvMW1veEp6R1YzYnF4eldlN3c3eitQRGM3ck1lQXk1T0FTS25TWE1MN0pLcmY4VlFET1dBN3EwMUpHVXhTZ2UwUnlrMXB3WHh3MjRPaXB2OEE5bzMxcHpZN253cXJ1Q2I2OGswZFVqbWIySElPL2p2VTFpMUM1UUR0dmFYb2NqY1VEdXc1dHEwNENjRkxFZUFJL0VpdElaa201WFE3Vng5SHMzTWJOYzdDV1Jma3hvSnRmSC9iWlBlUHBTUTB2dUlETGV5bmNLQ04vZ0thOVNuRnFqY3RBa3Z0U3RyQ0o1SjVNS2lsbXg0Q3F4MW5qZHVJNUVzTFMwN0tJTVpESTdaYmxBSTZkM1d0K090VVlXSmhEZTFPZVhQbDMxSHVHclZUYVh1b01EelJzc1NqdU9RU2ZqN05CMkVaZFhYR2ZkVEJxTWhhNE1TaFZSR0lBVVlCcVVUc2xwRklRRDJwUEx5a2RCNCs3enFOejVubEpVRTQ4cXozWGZMK1BDWXp1a0dRcTdWMkU4OGRuSVlwV1FydjdKclQxYVI1TWNwSDg2ZC8wUzBWbzZ2OTVrTEg1VnB3Ty9DM0dPcG1XTzBtbmFVY25zY3g2WUhTcDliNjFJd0hhcHRqdXFuT0gzRnRyZG16N0FTQlc5eDJxNG9MUkpHWkI5NWVublFPRWR3azR5aHpUdHd0L3dCWldidTlWUDhBL0l0UXVHZDRKbUdjRld3UlV4NFBsRTJ0TTRQL0FOTWU3Kyt0QkNORTArVFM3SjRKZVh0TzJrWnVYelkxT2RLeEhwOERkNVZpZm5VUHY3NUxSM1psSnpOeTRIaVRpcFpaY3k2ZEgva0Riem9LOTRya0VuRTh6WjZJbjBxTlg0eWRxZk9JMnp4RGMrNWZwVFRLbk5JbTJja0RIalRwWk4zUnZ0bWgwK0tTYVFOMnJkR0E2RHdydFo2MWNyYXU5cXF0SVNBc2JIbDJvMVdaSTR4QXFnanFGOEtZNGc4VjByYzJCMTY5S3hqemR2UjVzcmhKNHBla3Z2OEFWNTU5TnRwdXdhS1FPVmxUUGRpdGJCMXZndk1QYkJybEJkelhGdWUxWkpBdXdBcmFHYUMyWlowWGtrRHFDbWV1OWJlWkliZUxzbUhrS3RmaXFLNmZSSW10UUdaUUFSbnhBSDg2cTcyVEdzbWVvN3F1S2U1N0RTbm01QTZ4UWgrWHZKQUZCU3ljTTNXbGNmR3pXT1M0bGhzb0hta1JkaXg1bVB5R0I4S2RlQjdsdEo5Q3VwWElERm83cVJoeTVVN21NZnpxUjN1cDNWM3FNbHpGUE5BSHg3RWNod01ERlo0aWVXNDlGK3JtVnk3bkF5MytOS0N0aHIrb2M3TXNpdXVUZ3VtZSt1MFhFMm9HVlZLUUZTUnpmWjR6K05NZk9XNWNaQjVSblBqV3drQVlBamNBOVBHZ2t0eVd1WTVPWnN1VmJBeDAycUVTWmplNmluV1hMRWhDaTVLc0RrWjkxVExMTkdXMnh5ZytPRDRWSFprN2JVSmpKbmtFaExFRHpwYnJ0Y2NmYTZjd0hrVDFoeEhrY3AzWHFmSHlPMUoxczQyWUE3SHhwWEtVZVFKRUNVUVlCOGE1ZUlPYzFtVDY2K1cvMW5UZUtCSTF4elp3Y21uN2gxay9TVGI0K3hiNmltT053VU8yTWVGT21nNS9TTExqT1lpZW5tSzA0cFBkOXBjUWN0dXNiTmtmckhJMjcrNnRBSkFQYjVTT21PdWE1dTdJL0xzQWU3TzYxbFpYVlVBd1JudzNGQjNpNW84QkkwOHlSbjRVdTlJNERjRmNQNWJDODRKUC9sMDN3dUNnSEw3Wk9jSCtWT25wSlVEZ3pRNHhITEl4ZkNwR2haaWV6OFB6b0t0Z1FOSU03ajltbmEzbTdGd0ZCZHM1QmJ1SjJPMUlMVzExQ1dSbU9sM01Lb01ublhmYnZwWEdTMHB4N0lEYnNlZ29IWFNwNTVyNmZubHlSQ01CanRqSjZDbTRHS0tNSG01MkMrMjdIR1BkV25ONnZlbVdLUnVRUXVwSjc5dHFqOXRxRE1xbTRVY29HeHljWnFXNmpXR0h0bG8vVFhYcWNVTWNNbVNoeUdJM0dOdHZLbXg3dVIzMmNrOWRqdFNXUzdlNVBhSEF5QnNLeEd4eW9PTmozZjYzcVNhN2I4dVc3cWRSS2RMVm5oQkpKeWRxbG1sOE5RYTlZM0lsbmFJcTZnRlFEM1pxSFdOOUhCQUZJeTNqNFZOT0dicWNXVjFMSmJ1c0hhSmx6c3VjYmIxcHliUStpMktLVVRtOWVXTW5jTkZnSDhhWGFqd2pwMHRuNnZFMXJieU1NQnNNVDMrZEtkRW5YWGRjdmJTZVE5bGJvclJXL05nTURubVkrUGQ3cWtGdnBFTnRLeE1rOXd6dGtMSTJRdnVIUVVGZTZUd09sdHJsbmNEVTJab0xsR0tDM0k1dVZnY1p6MDg2dDN2cExiUGh3aVJCRk9kOFlQdXBWUUZGRkZBM2FvQUFya2JoU0tnZXMzYmhpdk43cW11dXpDR05jNXh5TWZsVUExd05IcGsxeWNleEhuZng1YzBGUThRWFJ1ZFp1WFU3S2VWZmhWcTNWaWxwd3BIcDhZVlRIYVlDSHVJT1Q4U0RWVjZOWkhWOWZ0TFVnbnQ1UnplUXprL2hWdjZ1dnJkc1ovYVdMdEZMY3ZYQlVBL0gyYUxMcTdWbHExdzZmWXI5eEI3SkZNelFNOFlZWURIeE5XZnFIQkZ2Y01URlBLaFhPYzR3ZndwSmFlajB2TXJUVHNrWEx1VklKSGwwcVNhWFBPNTNhQmFicEp1WnZiKzZOMklyT3ZXYXJwa2NxQUREbjVkS3RTeDRTc0FoRVVzNFFJejgyVnkyUGhUUHFIQ1VFM0RYT3NzeEpTVTRPTVpCOTFWbEd2UnhKbWE4dGlmdlJjNkR6QjMvQUFxeExtSVRhUExjUkQybzhGc2VYZlZSY1BYTDZWcmxsTWpFQlpnRzl4T0RWeHN5Mk42SFVadExrOGtxbm9wYmJQdTNvR20wdW1oZFpBVGdrWkFwWndUT0xEWHJMVHBjOXBKY1NPaEEyWld5UmorZE10d2h0TDZXMXlmczVPVWU3Yjg2Y05DN1NiakRoMlJkMWh1bVZoNEJrUDVVRnMzc3F4TG52Ni9oVVcxaGpOSnlBWkRJclo5N0VENlU5NjY3TENXVDd5L3pGTWNNeGxrYVZSa0JWeG5vUFoyejdpU2FDbk9Pbi9yV0syQnoyYTVQaHY4QSsxUFBEMW9nNEx0MWNBTk5mZHFjL3RBS3kxRitKWkRlY1RYZlo1Yk1uWm9EMTIyL0dyVnRORXRwN1RTN1U4OGNFTGxQWXhuYmJ3OHpVczIxamw2M2FEejgxL0FHY0RtWEtBanZ4VEsybTNDc1FFeWZFVll5OEsyeVh0OWJMTk1HakpkZW5jZHgwOEtWYWJ3blkzRngybnJFNWlaZWJHUjdPM3VwSnFKbGxjcnVxL3RkTlcyWVNTZ0dRZEZHK1BmU200UWlhWmNkSWZxYW10dndoYVN1WmpOT1VsbEVjZUNPZzZucFd5Y0oyVStyWHlHYTU1VWp4K3o0KzZxaW5iKzJOaHFSQUdDT1Z4OGdhdHpUTHN6YVJZNnJGMWFNQ1FmaFZlY2FRaVBWVmtqQjVBZ1FFOStOdjVWSk9CTlFFdWhUV3JrbnNXeGs5QURRUEd0S2tkNHMwV09TZEF3OS9mVWg5SGt2YWF0Y2VIWWJmeGlvanFNMllGaVp2YWdrSkgrRS93RHRVbjlIRFoxcWNmOEE2WFAvQUsxb0luckJMM3F4Z0FnTzBqK0k5ckEvSE5XRXpDSkpGNWwrNHZLdVJuR0tyNjQ1WmRUdURrRTl1c1hUd2JKK3RUN1VZWTBFOHJJcGRDUWo0M0FvS3ExdVV2cmR3eFBnTnZkWEFYTnNscTVManRVUE5qSUIrRkl0ZG1ZWEY5TXBZRkYySzljOTFRRzh1bmFjZTBTeW5kczlhNTVjMzFqMWVHWHhZL2wrcExlR2FTNkpVa2s3NThLUWVyU3ZLQVpUa21sdW4zSXVyZEpmMml1Rzk5RTBUQnczTmpldWttbm10dDVwNnNORkRLTXlTOHpZNk5qRmE2anA3MmVwV2tRa1owYkdTeHp2bW5IU1dic3djODN4NlU0WFZrWkpVdUR2eTdnR2lGa0U0V0pVSjZESFNyZHVwczZKT0JubE52Mys2cVd0M0xTRUVZT2ZoVnpUV01tcGFKZVdTU3RFOHRxVVdWZXFrcjErbEJHRVFNZVlIYWxXdXJ6ZWpUVlZHTWsvL3dCMHFoMzR1NG8wVy9hM3U3bVRtak9Dc2d5cHg3NnR2VE5jbTRrOUMycDNza2FSeUNSb3lFNkhsWk4veG9LNW55SUkrVG92TnpNVzZBSG9LNHh5ckl3WURCQjJKcDRzYlJaNGdTQXlrbklZZU9LY1k5R3QySUxSS0FOeHNCUWNiV1R0WUl6M2N1TVUxemxvcEp4a2N6eUhwMUkvbFVxaTArR1BvdUJqcGpha3N2RGx0TlBKT1paZ1hKWWdFWStsU3piZUdmcHRGaGtESTJIY0syR0NCdHZVbFhocTJ6Z3lUS2V1NUg0YlZuK2pscGcvYXo0OTQvS3F3aStNRW5idzZVNmFEN1YrdzVpQjJiZEJud3AwSERscGpQYnpuSGRrYmZoWFczMG1Dd21Na2NrakVqQkRFWUhUd0hqZ1VHNTVBNDVlWWQrY1ovMS83MW9YeXBJVXEyKzNVNC8xdjhhNkVGaUFEN1BlQ0RucjFyV1FNR0hzNXlNNXg4ZitWQjBpY3huQ0hkamd1UnpmNkhXcGh4SElUd2xvemptVUVMa0VmM08rb2NoVWZabFNNNUcyd1A4QXJOUzdpWi8vQUlTMFFnazh3SHg5aWdpcXV5dUdEa01PaEI2ZTZtKy9zQk1wa2hBRWd5U2dHRmYzZUIrdEtReDlvNUcyT3RiNTV3VkJPNDYwRU12SnBZT3pFdk1tWDVHVHZBSU5NazBuTENrQSs2QUNTRG5OVC9VZEpnMU9NSko3RWliQ1ZSdjdqNVZGSnVHNUxlUXh1ekhCMlpSc3c4UnRVczI2WTUrc3NuMDJ4SDdNWStsS0lsUE5uTzlPMXR3L0gyYTh6eWMzZnVNQ2xRMEszQS9XeStlTVZYTXh2S3lwaFRUM29kOU90dE1obmtLRjF5aFk0TzNoWEdiU2JaR1JXbWxITjVqTktiV3lpdDFJV1NUbGZjbHQrZzhxQnppdUMwNk1Ya2ptQjltV0orVjF6NEVWWU9qNjNyU3drejIwV29SRDdyUm5zcGNZR0J5L2RQZnZrR3E2dDNDTUNRTi9MOEtuT2czYjgyOG1Bd0lVdCt4dDNlN05CS2RONGcwL1VKQ3JxYlM1UmdoaHUxS09HUFFMblppZkltbnFtaTNsak53U3l4U0ZuR01ZUFR2OSs0cDNvQ2lpaWdqWEU2czB5Z2s4alc1WEhuempQNEUxQmVQNTBzdUdURW4zcFRnRGZxZXArVzFUN1g1Z3VvV3NMcUFqeHNRNTdqbnArRlZoNlU1R1MyMDZCbTlwbUxFZUF3Y0Q4YUNPK2o2eE1tdWV0bllRbFVIanpNY2ZUTldldHNIMGEvalBWR1Z2aGsxRnZSNVlOSHA5dEl3L1h6dFAwNkJSeWo4UWFuMFVJUHJjSUdlMWpQekZBeExQMnRyYnUrZVNaZXhjajlseHR6RDhLY1hqTnZ3K2tTak1ramhGUHZwcXMxRTJuM2xzeDlxTTlvbjh4VHZwaDlmdDdRbmN3N043eDMwR1VqOVd0cnRBUVJEYmlQSUh6L0dteWY3SGhLTngxZG1Iek5QVjBPVFROUmt3UnpEcWZlS2FOVmp4d25BRS9Za3ljVUZHYW5DMXJxVnhHZHNPU04vSGNmV3JTanZUZTZIYU56RDdXQmVWejNQanA4eHQ1MUF1TDdVeFhzTnlCdE1tQ2ZOYVVjUDM1T2l2QXpZQ1NIbGJQVHYrdEJJSHV2V3IyR1p2dk9NeWU5ZGo5S2ZlRGdUeExZdHVWN2JieTJOUS9UbTlZdXBDMndRRnZpZXYwcWM4RkFIV2JZNDI3WUVmSTBGZzZuZ3h6Zzc3QWdlSkcvOEFLbzdiNE9rdTRUN01vV1lqYm1HT254NmU0VXU0aDFTTzJrblFFY3lqSHh3RFRQYVhndXVGTDRod0k0dzRiR050czQ4c0Q2MEZQOFB4bTk0dnRwSlBiQW1NemU0WlA1VmRWbmI5bllXaEkzQjdUNG1xejlHdGlMblViMlk0eWtLeGovak8rUGxWdlhFWWpVQURBQTI4cUJrMUZ2VStKVW02SktNbnpEVnRZTjZwZVhsb01lMTl6M1ZuaUdNdmEyMXlBZWRjS2E0TS9OTmFYaUEvZEFlZ2ZJTFlSbXpoL2NHY0R1cEJZWmU4MU5oM2hnUGhUNWJsWlpvNVY3OTgweTZaR1JlM2FIdmxiOGFDcStMYmNTYWRLK0R6eFNCcy9HbVRnL1VQVmRRbnQyWWNrMGU0OHgwcVo2NWJDVVgxdmdEbURkZkxKcXROTWZzTlhqQjIzS21nbVY1ZE04enhnKzJRRkI4ODdWWVBvMkIvVHR6emRmVmdQL1d0VmJMSUUxSzNMSGJtQjYxYVhvMGZ0T0lMdHU0d0QvOEFOYUNLYVF5WFd0MnVSdFBmRmlQSExZK2dGVG5Xcmd4YVpLeDY0Sk5WN3dQZE5mYS9idEtBQ3MwMkFQN3BiQi9DcFZ4UGRuOUR1MmNjeUUwRk9hOWY4dHRLQUR6czNLQ1BQLzJxR2tsam52TlREVUxlSzh0b3d4VlR6OHpudklHYVFMRFoyNDVZSUFXL2ZmY21wSkkzbG5jcEpmamxwVEczc1dsTGNwNXNnSHZwY2JneUVBbnBUZmZNaVJjb1VjM2ZTelRyZnQ5T1M0UkE1NWlyRHd4VllPT21hbTFyTVY1dG02MU1sMU5Yc2huOTNCSGZVQkVQMm81b2dQaFVzMFZyVXFpdmJJU1RqbWJ3b0Z0bzIvTVRrSHBWNTZmZHhRV0RUU043S3JuZjNiMVU2UG82d3FvdG9SeWpmcjdScmhyUEdNMzZQOVVnZkJZWU9PNGVGQkhPSTF0ZFVtdVdrUU1yU3N5bndHU2FtZkJWZzB2b1AxVzB0K2RqNnpNUmpyc1VZL1Nxd3Y3MWxqeGtrbXJqOUZBNS9SamNxeDJlN21CSjh3Z29JcHBFSEpwc2R4TXZLMGpmWkxrKzBwM3pUc3BBT3c3aGp6Tk1xU3Vtb2l6a2xhVklDVlFFN0FLZTZuOEtyQm14aGV1ZTdGQmo3b3hnazFoWmN2eVlKQUhVR3N5Uk1FTFp3Y1o1U0s1NE9Ec2MrWS9uUWQrZHVpSGI1MWdEMmNZUHhHOWNVZkEyUFg0VjBWaXd6Z3NlL0JvQW5HUVR5NHpnL3dBcXdUaEJ2bkk2bnI4cUNmY01iY3RhQWdFNXhuQjYwR2c1TTh6QWdZLzBQbFhNb1NmdmdIYnIxOGZ5K1ZkT1gybEFHV3lkNjU4dzZrSDNZb012Q2M4eWpHTWZENFZMdUlGWWNJNkdHUFB5cXZOdDk3N09vaHo5eGJicjRWS2VKNzRXWEMvRG5NL0trekNNaGgxK3ovQ2dpdU9iUE5qSGNNZGEwL2F4eTh1ZWc4YTd6UVk1bkJDZ2ZQRkorVlNWSTN4MzBHVmxIM054a2VGZFNBOFpqa0JkU2NqeFh6RkNCTTRPQ0Ixd2R6V0hBZFIzWngzMENDZTNrdHhrTVhqSjJmb1BjZkNrclNrSExObmFuamxKVTVYS3NOODlDS1JYZW5oVWFhM3oyZjdTNHlWd04vaFFKQmNjbktNQUh1ckRPblViNHBPTXRzcHdNNXovQUs4cTJEY3ZUSFRPU2VvSGhRTHJPMmtua1FRKzBUallINFZNdEkweTRpZ0xTenJHQ1FDcmJuSCtqVVFzcHV5UWdBNXgxejAzNi9oVHNOVGw3UHM0cGVWUmxjRTlUdFFXRmFXaUpOYnMwNkgyZzdFSVJrZ2dmenFRVlZPaGF4ZC9wTFRvZWRpaGtVRTU4V1dyV29DaWlpZ2gzRnQ0TGZYOUlSc0ZTR0lCOFNjZnpxdHZTd1cvUzlnR09jd00yTS8zcXUrNjB1eHZiaUc0dXJXT2FhRDlVN2pkUGRTTFVPRk5CMWFWSk5RMG0ydVhSZVZXa0JKQXpuSFdnaW5CK21tMDBXMFJ3Y3hXNnI3cyswZnhhbmxYRVZ6R2NiWndha1VkamF4SUVqZ1JWQUFBQThOaFdEcDltVGsyNkUwRmRsVFk2MnlIWlhPRDdqUy9TdjhBWTcyV0k1NUdKSVB2cVlUYU5wdHhJSkpyS0ozSFJpRG10aHBWZ0dEQzBpeU8vQm9HUFZJLzZrdlA3dy9uVFhjS0g0Wm1JWE9BR0ZUVjdPMmtpTVR3b3lIcXA2R3VRMHF3RnViY1drZllrWUtZT0tEejF4ZGJ0TnBJbDNQWk9BQU80WTNxTzhPeXIvdE51eCs4T1llZmpYcG1iaEhoNjRpYUtiUjdWNDIrOHBCd2Z4cEpGNlBlRUlINTR1SHJGR3hqSVZ2em9LRzAyWm83dTRRbnJ0dlZpOEc1R3RXQUF5RExrbjRHcHd2QXZDcXVYWFFiTU1Ua25sYjg2Y0xYUWRLc3BVa3RyQ0dKME9WWlFjajhhQ3RlTTdrcnhSZlFLMkEzSmxmRThvb1VUV2ZDK3JRY283SnJDVjJiL3dDNlFSOUtzZTY0YzBhOXZHdkxuVGJlVzRZZ21SZ2NrZ1lIZjVDdDMwSFNwTGVXQnJDRXhTcnl5SVFjTVBBNzBGV2VpVzBQcXQ5ZHN2MlprVlEzanlnLy93Q2hWZ1MvYWxoVHBwMmhhVnBOczF2cDloRGJRczNPVWpCQUo4ZXZrS1UrcFcyYzlnbWFDTFR4Q2Eya3Rtem5KSzAwYWFDeVNXN2RVT3dxZm13dEdmbU51aGJ4cmttazZmSEkwaVdrU3UzVWdIZWdhTk5tNVVDTWNZMkZKTFJPVFhMbGNkUnpWSmwwKzBRNVczUUhydFFOUHRCT1poYnAycEdDM2ZpZ3FIWENZdFZ1QXdPNVlWVkdyUXRaYXRJTUVlMkdGZXFyamh6UnJxUXlUNmJieU8zVm1CeWZ4cEJjOEE4SlhrbmFYSEQ5bEkvVExLZnpvUFBGNU1YdTdabEJQTVA1VmF2b21tVjladVZMQXlDM0dSNGUydFRSZUJPRlZaR1hRYklHUDdwNVR0K05MZE00YzBiUnJ1UzcwM1RZTFc0bFhsZVNNRUZobk9PdmlBYUR6OTZQYmk0WGkyVkNWN09GTGwrbTQzUDUwOWNkYTlEYVd4dFkyVnBpQ0dVZnM5S3QyejRLNGEwKzRlNHRORnRJWm5CRE9pbkpCNjkvZlhLNTRCNFR2SldrdWRBc3BYWTVMTUdKSitkQjVaZVJ6R01uZHF3dVV5eEhRWitOZW92K2pqZzMvd0FOMkg4TGZuUWZSendhUVFlSExEQjYreTM1MEhrcVZubGJjZStwUnc0T3owNERsUHRaUDQxNksvNk0rQ2YvQUF6cC93REMzNTBwaDRDNFR0MENSYUJaSW82QUszNTBIbnFTMzlyT0RXVWtsakdGR0s5RG5nbmhnOWREcy80VCtkWS9vTnd2L3VLei9oUDUwSG5zM0VpamRqU04zWSsxazU4NjlIbmdUaFZ1dWcyUi93Q0Z2enJVOEE4Sm5ydy9aZnd0K2RCNWN1bmFXYytXMVhuNk5tTnY2SjdoeU4xdkhPLytLT3BaL3dCSFBCMmMvd0JITEQrRnZ6cDNzOUMwdXcwMXRPdExDR0d6Wml6UW9EeWtuRy9YeUh5b0tVMUZSYWNZWEt2L0FOcEtXQkEydzNoVDFFM01veDBYWVo2YkhIOHFzcTQ0VzBLNm43ZWZTcmFTWEFIT3dPY1p6NDEwVGg3UjQxNVYwNkFMNFlQam54b0t6bFl5QW5CMkgrczF3TGRYWld6NG5Za2VZcTAyNGQwWnV1bXdINEg4NngvUnpSczUvUnNHY1k2SDg2Q3FsWnprNU9EMzQ3dkFWM0xsYzhydGtleURqYjMxWjM5RzlGLzNiQjhqK2RCNGIwVTlkTnQrbU9oL09ncTVtSFE1SjIyejhxMkpDN2dFbnpxMER3NW94SUowMjN5Tjg0UDUxZ2NPYU1CZ2FiQmozSDg2Q3IyQXhuQnlmRHBXa250NTdnUnVmQ3JUSERlaWdBRFRiZkE2Ykg4NkR3M29wT1RwdHY4QUkvblFWTmxpU0MyY0hPTWVGT3ZwSEJIQVhEUnp1cnFjL3dEbDFZWjRhMFFuSjB5M3o3aitkZGI3UXRLMUt6aHM3MndobnQ0ZjFVYmc0VGJHMi9oUVV6cGVwSFZMTmVZWWxqeHpBRHFPbEtFR0g4ajRWYWR0d2Z3N1pzV3R0SHRZaTJ4S2c3L2pYWCtqR2g0eCtpN2ZIdVA1MEZVNTVHS2dNVDFJSGRXNEpLaGduVHB0ak5Xbi9SalEvd0RkZHY4QUkvblczOUc5Ry8zYmIvSS9uUVZlb1ZQYWIybEdCZy82NlZpTXl4b1drSURCaVZaRDFYUHM5ZnhxMHY2T2FOL3UyMytSL09zSGh6UmoxMDIzK1IvT2dxVzUwdExsVExiQkk1V3p6UmpvM21EM2U2bVl4TWpublJnVlB0QnRpTVZlbjlIZEgyL3EyMzI4aitkYVM4TWFITy9QTHBkczdZeGtnNSt0QlNxS3BBQkJJNkRCN2pYUm5aK1htQkdDRDQrTlhIL1JQaC8vQUhSYS93QUovT2c4SjZBZXVrV3Z5UDUwRlY2Tk16NjVwaWd0bjFtTUh3KytLdTA5YWFJZUY5Q2dtam1pMHUzU1NOZzZNQWNnam9ldE85QVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRZi8vWiZxdW90OyBhbHQ9JnF1b3Q7WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgZW1iZWRkZWQgaW1hZ2VzLCBzb3JyeSZxdW90Oy8+DQo8aDM+U3R5bGVzaGVldHM6PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGFsc28gd29ya3Mgd2l0aGluIHN0eWxlc2hlZXRzLCBpZiB1c2luZyB0aGUge2Ntc19zdHlsZXNoZWV0fSB0YWcgaW4geW91ciBwYWdlIHRlbXBsYXRlLiAgQmVjYXVzZSB0aGUgc21hcnR5IHN5bnRheCBpcyBzbGlnaHRseSBkaWZmZXJlbnQgaW5zaWRlIHRoZSB7Y21zX3N0eWxlc2hlZXR9IHRhZyB5b3UgdXRpbGl6ZSB0aGUgbW9kdWxlIHVzaW5nIHRoZSBbWyBhbmQgXV0gZGVsaW1pdGVycy4gIGkuZTogPGNvZGUgc3R5bGU9JnF1b3Q7Y29sb3I6IGJsdWU7JnF1b3Q7PmRpdi5oZWFkZXIgeyBiYWNrZ3JvdW5kOiB1cmwoW1tDR1NtYXJ0SW1hZ2Ugc3JjPSYjMDM5O3VwbG9hZHMvcGljdHVyZS5qcGcmIzAzOTsgbm90YWc9MV1dKTsgfTwvY29kZT48L3A+DQo8cD5CZWNhdXNlIHN0eWxlc2hlZXRzIGFyZSBnZW5lcmF0ZWQgb24gbW9kaWZpY2F0aW9uIGFuZCBzdG9yZWQgaW4gdGhlIGZpbGVzeXN0ZW0gdGhlcmUgaXMgbm8gd2F5IHRvIGRldGVybWluZSBkdXJpbmcgdGhlIHJlcXVlc3Qgd2hpY2ggYnJvd3NlciBpcyByZXF1ZXN0aW5nIHRoZSBzdHlsZXNoZWV0LCB0aGVyZWZvcmUgZW1iZWRkaW5nIHdpbGwgYmUgZG9uZSBzdHJpY3RseSBiYXNlZCB1cG9uIHRoZSBwcmVzZW5zZSBvZiB0aGUgbm9lbWJlZCBwYXJhbWV0ZXIuICBJZiB5b3UgaGF2ZSBjaG9zZW4gdG8gZW1iZWQgaW1hZ2VzIGRpcmVjdGx5IGludG8geW91ciBzdHlsZXNoZWV0cywgWW91IG1heSBuZWVkIHRvIGFkZCBhZGRpdGlvbmFsIHN0eWxlc2hlZXQgc3VwcG9ydCBmb3IgdGhlIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgZW1iZWRkZWQgaW1hZ2VzLiAgaS5lOiAgSUU2LjwvcD4NCjxoMz5BdXRvbWF0aWMgUHJvY2Vzc2luZzwvaDM+DQo8cD5UaGlzIG1vZHVsZSBpbmNsdWRlcyBhIHNtYXJ0eSBibG9jayB0YWcgY2FsbGVkIDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57Y2dzaV9jb252ZXJ0fTwvY29kZT4gdGhhdCBjYW4gc3Vycm91bmQgYSBibG9jayBvZiBodG1sLCBvciBvdGhlciBzbWFydHkgdGFncyB0byBhbGxvdyBhdXRvbWF0aWMgaW1hZ2UgcHJvY2Vzc2luZy4gIFRoaXMgdGFnIGNhbiBiZSB1c2VkIGxpa2U6IChmb3IgZXhhbXBsZSk6PC9wPg0KPHByZT48Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e2Nnc2lfY29udmVydH17Y29udGVudH17L2Nnc2lfY29udmVydH08L2NvZGU+PC9wcmU+DQo8cD5UaGlzIHdpbGwgYWxsb3cgeW91ciB1c2VycyB0byBpbmNsdWRlIGltYWdlcyBpbnRvIHBhZ2VzIHVzaW5nIHRoZSBub3JtYWwgd3lzaXd5ZyB0b29scywgYW5kIHRvIGhhdmUgdGhlbSBhdXRvbWF0aWNhbGx5IHByb2Nlc3NlZCBhbmQgZW1iZWRkZWQgaW50byB0aGUgcGFnZSB1c2luZyB0aGUgbWFnaWMgb2Yge0NHU21hcnRJbWFnZX0uIGkuZTogU2VlIHRoZSBmb2xsb3dpbmcgY29kZTo8L3A+DQo8cHJlPjxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57Y2dzaV9jb252ZXJ0IGZpbHRlcl9ncmF5c2NhbGU9MSBmaWx0ZXJfd2F0ZXJtYXJrPTF9e2NvbnRlbnR9ey9jZ3NpX2NvbnZlcnR9PC9jb2RlPjwvcHJlPg0KPHA+VGhlIGFib3ZlIGNvZGUgd2lsbCBjYXB0dXJlIGFsbCBpbWFnZSB0YWdzLCBhbmQgY29udmVydCB0aGVtIHRvIGdyYXlzY2FsZSBhbmQgdGhlbiBhcHBseSB0aGUgd2F0ZXJtYXJrIChhY2NvcmRpbmcgdG8gdGhlIHNldHRpbmdzIGluIHRoZSBDR0V4dGVuc2lvbnMgbW9kdWxlKS4gIEFsbCBvZiB0aGUgcGFyZXRlcnMgYXZhaWxhYmxlIHRvIHRoZSA8Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e0NHU21hcnRJbWFnZX08L2NvZGU+IHRhZyBhcmUgYXZhaWxhYmxlIHRvIHRoaXMgdGFnIChmb3IgaW1hZ2Ugc2NhbGluZyBldGMuKS4gIEFkZGl0aW9uYWxseSwgdHdvIG5ldyBwYXJhbWV0ZXJzIGhhdmUgYmVlbiBpbnRyb2R1Y2VkOiA8c3Ryb25nPm1heF93aWR0aDwvc3Ryb25nPiBhbmQgPHN0cm9uZz5tYXhfaGVpZ2h0PC9zdHJvbmc+IHdoaWNoIGNhbiBiZSB1c2VkIHRvIHNldCBhIG1heGltdW0gc2l6ZSBmb3IgaW1hZ2VzLi48L3A+DQo8ZGl2IHN0eWxlPSZxdW90O21hcmdpbi1sZWZ0OiAzZW07JnF1b3Q7PjxzdHJvbmcgc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+Tm90ZTo8L3N0cm9uZz4NCjxwPlRoaXMgdGFnIHBhcnNlcyB0aGUgSFRNTCBjb250ZW50IGJldHdlZW4gdGhlIHN0YXJ0IGFuZCBlbmQgdGFncyB0byBmaW5kIHRoZSA8aW1nPiB0YWdzLiAgSXQgdGhlbiB3aWxsIG91dHB1dCBzeW50YWN0aWNhbGx5IHZhbGlkIEhUTUwgZm9yIHRoZSBzdWJzZXQgb2YgY29kZSBpdCB3YXMgcHJvdmlkZWQuICBUaGVyZWZvcmUgaXQgaXMgaW1wb3J0YW50IHRoYXQgdGhlIHNuaXBwZXQgb2YgSFRNTCBwYXNzZWQgdG8gdGhpcyB0YWcgYmUgaW50YWN0IGFuZCBhcyBjbG9zZSB0byB2YWxpZCBhcyBwb3NzaWJsZS4gIDxzdHJvbmc+VXNlIHdpdGggY2F1dGlvbi48L3N0cm9uZz4NCjwvZGl2Pg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0IG9yIGJ1eSBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSB2aXNpdCBjYWxndXkmIzAzOTtzDQptb2R1bGUgaG9tZXBhZ2UgYXQgPGEgaHJlZj0iaHR0cDovL2NhbGd1eTEwMDAuY29tIj5jYWxndXkxMDAwLmNvbTwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yLCBjYWxndXkxMDAwLCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LjwvbGk+ICANCjwvdWw+DQo8aDM+UmVxdWlyZW1lbnRzPC9oMz4NCjxwPlRoaXMgbW9kdWxlIG1ha2VzIGV2dGVuc2l2ZSB1c2Ugb2YgdGhlIEdEIEltYWdlIHByb2Nlc3NpbmcgbGlicmFyeSB0byBkbyBpbWFnZSBtYW5pcHVsYXRpb24uICBBZGRpdGlvbmFsbHksIHRoZSB7Y2dzaV9jb252ZXJ0fSBwbHVnaW4gbWFrZXMgZXh0ZW5zaXZlIHVzZSBvZiB0aGUgc2ltcGxleG1sIGFuZCBYTUxEb20gY2xhc3NlcyBidWlsdCBpbiB0byBwaHAuICBUaGVyZSBtYXkgYmUgb3RoZXIgYWRkaXRpb25hbCByZXF1aXJlbWVudHMuICBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBlcnJvcnMgeW91IHNob3VsZCBlbnN1cmUgdGhhdCBlcnJvciByZXBvcnRpbmcgaXMgZW5hYmxlZCwgYW5kIHRoYXQgeW91IGhhdmUgYW5hbHl6ZWQgeW91ciBlcnJvciBsb2dzLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA4LCBSb2JlcnQgQ2FtcGJlbCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+PGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmc+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQp0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+DQo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQNCmFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQ0KaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUw0KTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIA0Kc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS48L3A+DQo8cD5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQpNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCmFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+JzsKJGxhbmdbJ2luZm9fYWxpYXNlcyddID0gJ09zIEFsaSZhYWN1dGU7cyBwb2RlbSBzZXIgdXNhZG9zIG5hIHRhZyBDR1NtYXJ0SW1hZ2UgYXRyYXYmZWFjdXRlO3MgZGFzIG9wJmNjZWRpbDsmb3RpbGRlO2VzIGFsaWFzMSBhIGFsaWFzNSBwYXJhIGNvbWJpbmFyIGFzIG9wJmNjZWRpbDsmb3RpbGRlO2VzIG1haXMgZnJlcXVlbnRlbWVudGUgdXNhZGFzJzsKJGxhbmdbJ2luZm9fY3JvcHRvZml0X2RlZmF1bHRfbG9jJ10gPSAnRXNwZWNpZmlxdWUgYSBsb2NhbGl6YSZjY2VkaWw7JmF0aWxkZTtvIHBvciBkZWZlaXRvIGEgcGFydGlyIGRhIHF1YWwgJmFtcDtxdW90O2NvcnRhciBwYXJhIGNhYmVyIChjcm9wIHRvIGZpdCkmYW1wO3F1b3Q7LiBFc3RhIG9wJmNjZWRpbDsmYXRpbGRlO28gYWZlY3RhciZhYWN1dGU7IHRvZGFzIGFzIG9wZXJhJmNjZWRpbDsmb3RpbGRlO2VzIGNvcnRhciBwYXJhIGNhYmVyIGEgbWVub3MgcXVlIG8gcGFyJmFjaXJjO21ldHJvICZhbXA7cXVvdDtsb2NhdGlvbiZhbXA7cXVvdDsgbm8gYXRyaWJ1dG8gJmFtcDtxdW90O2ZpbHRlcl9jcm9wdG9maXQmYW1wO3F1b3Q7IHNlIHNvYnJlcG9uaGEuIFBvciBkZWZlaXRvIG8gdmFsb3IgJmVhY3V0ZTsgJmFtcDtxdW90O2NlbnRlciZhbXA7cXVvdDsgKGNlbnRybykgJzsKJGxhbmdbJ2ltYWdlX3VybF9oYXNjYWNoZWRpciddID0gJ08gVVJMIGFjaW1hIHRlbSBlbSBjb250YSBvIGRpciZlYWN1dGU7Y3RvcmlvIGRlIGNhY2hlIChfQ0dTbWFydEltYWdlKSc7CiRsYW5nWydpbWFnZV91cmxfcHJlZml4J10gPSAnUHJlZml4byBVcmwgZGUgIEltYWdlbSc7CiRsYW5nWydpbmZvX2NhY2hlX2FnZSddID0gJ0VzcGVjaWZpcXVlIHVtYSBpZGFkZSBtJmFhY3V0ZTt4aW1hIChlbSBkaWFzKSBwYXJhIHVtIGZpY2hlaXJvIGFudGVzIGRlIHNlciByZW1vdmlkbyBlIHJlZ2VuZXJhZG8gZm9yJmNjZWRpbDtvc2FtZW50ZS4gRXN0YSBvcCZjY2VkaWw7JmF0aWxkZTtvICZlYWN1dGU7ICZ1YWN1dGU7dGlsIHNlIHRpdmVyIGFsdGVyYWRvIGFsZ3VucyBkb3MgcGFyJmFjaXJjO21ldHJvcyB1c2Fkb3MgYW8gZ2VyYXIgaW1hZ2Vucywgb3UgcGFyYSBjb250cm9sYXIgYSBxdWFudGlkYWRlIGRlIGVzcGEmY2NlZGlsO28gdXNhZG8gZW0gZGlzY28uIE8gdmFsb3IgemVybyAoMCkgZGVzYWN0aXZhIG8gYXBhZ2FtZW50byBhdXRvbSZhYWN1dGU7dGljbyBkZSBmaWNoZWlyb3MnOwokbGFuZ1snaW5mb19lbWJlZF9tb2RlJ10gPSAnRXN0YSBzZWxlYyZjY2VkaWw7JmF0aWxkZTtvIGRldGVybWluYSBjb21vIGEgdGFnIHtzbWFydGltZ30gaXImYWFjdXRlOyBnZXJhciBhIHNhJmlhY3V0ZTtkYS4gU2UgZXN0aXZlciBzZWxlY2Npb25hZG8gJnF1b3Q7bm9uZSZxdW90OyAobmVuaHVtKSwgc2VyJmFhY3V0ZTsgZWZlY3R1YWRhIG8gJnF1b3Q7ZW1iZWRkaW5nJnF1b3Q7IGRhIGltYWdlbS4gc2UgZXN0aXZlciBzZWxlY2Npb25hZG8gJnF1b3Q7c21hcnQmcXVvdDsgKGludGVsaWdlbnRlKSBlbnQmYXRpbGRlO28gbyBzaXN0ZW1hIGlyJmFhY3V0ZTsgZGVjaWRpciBiYXNlYWRvIG5vIHRhbWFuaG8gZSB0aXBvIGRlIGltYWdlbSwgYmVtIGNvbW8gbm8gYnJvd3NlciBxdWUgZXN0aXZlciBhIGVmZWN0dWFyIG8gcGVkaWRvIHBhcmEgdmVyIGEgaW1hZ2VtLiBhcyBvdXRyYXMgb3AmY2NlZGlsOyZvdGlsZGU7ZXMgaW5jbHVlbSBmYXplciAmcXVvdDtlbWJlZGRpbmcmcXVvdDsgZGEgaW1hZ2VtIGJhc2VhZG8gbm8gc2V1IHRhbWFuaG8gb3UgdGlwby4nOwokbGFuZ1snaW5mb19lbWJlZF9zaXplbGltaXQnXSA9ICdTZSBhIG9wJmNjZWRpbDsmYXRpbGRlO28gJnF1b3Q7ZW1iZWRkaW5nJnF1b3Q7IGZvciBkZXRlcm1pbmFkYSBwZWxvIHRhbWFuaG8gZGUgaW1hZ2VtLCBlc3BlY2lmaWNhciBvIHRhbWFuaG8gbSZhYWN1dGU7eGltbyAoZW0ga2lsb2J5dGVzKSBwYXJhIGFzIGltYWdlbnMgYSBzZXJlbSAmcXVvdDtlbWJlZGRlZCZxdW90OyAocmVjb21lbmRhZG8gMzIpJzsKJGxhbmdbJ2luZm9fZW1iZWRfdHlwZXMnXSA9ICdTZSBhIG9wJmNjZWRpbDsmYXRpbGRlO28gJnF1b3Q7ZW1iZWRkaW5nJnF1b3Q7IGZvciBkZXRlcm1pbmFkYSBwZWxvIHRpcG8gZGUgaW1hZ2VtLCBlc3BlY2lmaWNhciBhcyBleHRlbnMmb3RpbGRlO2VzIGEgc2VyZW0gJnF1b3Q7ZW1iZWRkZWQmcXVvdDssIHNlcGFyYWRhcyBwb3IgdmlyZ3VsYXMuIEVzdGEgb3AmY2NlZGlsOyZhdGlsZGU7byBuJmF0aWxkZTtvICZlYWN1dGU7IHNlbnMmaWFjdXRlO3ZlbCAmYWdyYXZlOyBjYXBpdGFsaXphJmNjZWRpbDsmYXRpbGRlO28nOwokbGFuZ1snaW5mb19pbWFnZV91cmxfaGFzY2FjaGVkaXInXSA9ICdTZSBvIHNldSBDRE4gYXBvbnRhIGRpcmVjdGFtZW50ZSBhbyBkaXJlY3Qmb2FjdXRlO3JpbyBkZSBjYWNoZSBwb2RlciZhYWN1dGU7IHF1ZXJlciBlc3RhIG9wJmNjZWRpbDsmYXRpbGRlO28gYWN0aXZhLic7CiRsYW5nWydpbmZvX2ltYWdlX3VybF9wcmVmaXgnXSA9ICdFc3BlY2lmaWNhciBvIFVSTCBhIHNlciB1c2FkbyBjb21vIHByZWZpeG8gcGFyYSB0b2RhcyBhcyBpbWFnZW5zIGdlcmFkYXMuIFBvciBkZWZlaXRvIGVzdGUgJmVhY3V0ZTsgbyBVUkwgZG9zICZxdW90O3VwbG9hZHMmcXVvdDssIG5vIGVudGFudG8sIHNlIHRpdmVyIG8gc2V1IHByJm9hY3V0ZTtwcmlvIENETiAob3UgbSZ1YWN1dGU7bHRpcGxvcyBkb20maWFjdXRlO25pb3MgYSBhcG9udGFyIHBhcmEgbyBtZXNtbyBkaXJlY3Qmb2FjdXRlO3JpbyksIHBvZGVyJmFhY3V0ZTsgcXVlcmVyIGVzcGVjaWZpY2FyIHVtIG5vbWUgZGlmZXJlbnRlIGFxdWkuJzsKJGxhbmdbJ21heF9jYWNoZV9hZ2UnXSA9ICdJZGFkZSBNJmFhY3V0ZTt4aW1hIGRvcyBGaWNoZWlyb3MgZW0gQ2FjaGUgKGRpYXMpJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnVW0gbSZvYWN1dGU7ZHVsbyBpbnRlbGlnZW50ZSBwYXJhIGdlcmFyIHRhZ3MgZGUgaW1hZ2VucyBwYXJhIG8gQ01TTVMnOwokbGFuZ1snbXNnX2FsaWFzZXNfdXBkYXRlZCddID0gJ0FsaWFzZXMgYWN0dWFsaXphZG9zJzsKJGxhbmdbJ21zZ19jYWNoZWNsZWFuZWQnXSA9ICdEaXJlY3Qmb2FjdXRlO3JpbyBkYSBjYWNoZSBMaW1wby4gJWQgZmljaGVpcm9zIHJlbW92aWRvcyc7CiRsYW5nWydtc2dfY2FjaGVyZW1vdmVkJ10gPSAnQ2FjaGUgUmVtb3ZpZGEnOwokbGFuZ1snbXNnX3ByZWZzdXBkYXRlZCddID0gJ1ByZWZlcmVuY2lhcyBBY3R1YWxpemFkYXMnOwokbGFuZ1snbm9uZSddID0gJ05lbmh1bSc7CiRsYW5nWydvcHRpb25zJ10gPSAnT3AmY2NlZGlsOyZvdGlsZGU7ZXMnOwokbGFuZ1sncGFyYW1fYWxpYXMnXSA9ICdUaGUgQ0dTbWFydEltYWdlIGFkbWluIHBhbmVsIGFsbG93cyBjcmVhdGluZyBudW1lcm91cyBjb21tYW5kIGFsaWFzIHRvIGNvbWJpbmUgYSBmcmVxdWVudGx5IHVzZWQgcGF0dGVybiBvZiBhcmd1bWVudHMgaW50byBvbmUgbmFtZS4gIFRvIHVzZSB0aGVzZSBhbGlhc2VzIHVzZSBhbiBhcmd1bWVudCBvZiB0aGUgZm9ybSBhbGlhcyMjPWFsaWFzX25hbWUgaS5lOiAgYWxpYXMxPWZvbyBhbGlhczI9Zm9vLic7CiRsYW5nWydwYXJhbV9hbHQnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSBhbHQgYXR0cmlidXRlLiAgTm90ZSwgaWYgdGhpcyBpcyBub3Qgc3BlY2lmaWVkIGEgdmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoaXMgYXR0cmlidXRlIHNvIHRoYXQgbW9zdCBnZW5lcmF0ZWQgaW1nIHRhZ3Mgd2lsbCB2YWxpZGF0ZS4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBhdXRvIGNhbGN1bGF0aW9uIHdpdGggdGhlICZxdW90O25vYXV0byZxdW90OyBwYXJhbWV0ZXInOwokbGFuZ1sncGFyYW1fY2xhc3MnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgYWxsb3dzIHNwZWNpZnlpbmcgb25lIG9yIG1vcmUgY2xhc3NlcyB0byBpbmNsdWRlIG9uIHRoZSB0YWcuICBpLmU6IGNsYXNzPSZxdW90O2ZhbmN5Ym94LHRodW1ibmFpbCZxdW90Oyc7CiRsYW5nWydwYXJhbV9maWx0ZXJfYmx1ciddID0gJyhhbnl0aGluZykgU3BlY2lmeSBhbnkgdmFsdWUgZm9yIHRoaXMgcGFyYW1ldGVyIHRvIGFkZCBhIGJsdXIgZmlsdGVyIHRvIHRoZSBpbWFnZSc7CiRsYW5nWydwYXJhbV9maWx0ZXJfYnJpZ2h0bmVzcyddID0gJyhpbnRlZ2VyKSBJbmNyYXNlIHRoZSBicmlnaHRuZXNzIG9mIHRoZSBwcm9jZXNzZWQgaW1hZ2UgYnkgdGhlIGludGVnZXIgdmFsdWUgc3BlY2lmaWVkJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jb2xvcml6ZSddID0gJyhyLGcsYlssYWxwaGFdKSAtIExpa2UgZmlsdGVyX2dyYXlzY2FsZSBob3dldmVyIHlvdSBjYW4gc3BlY2lmeSB0aGUgY29sb3IgYW5kIGFscGhhIHZhbHVlJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jb250cmFzdCddID0gJyhpbnRlZ2VyKSBDaGFuZ2UgdGhlIGNvbnRyYXN0IG9mIHRoZSBpbWFnZSBieSB0aGUgaW50ZWdlciB2YWx1ZSBzcGVjaWZpZWQnOwokbGFuZ1sncGFyYW1fZmlsdGVyX2Nyb3AnXSA9ICcocGVyY2VudFssaF9hbGlnbix2X2FsaWduXSkgLSBQZXJmb3JtIGNyb3BwaW5nIG9uIHRoZSBpbWFnZSBzcGVjaWZpZWQuIENyb3AgcGFyYW1lZXRlcnMgYXJlIHNwZWNpZmllZCBhcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHBhcmFtZXRlcnMuICBUaGUgZmlyc3QgKHJlcXVpcmVkKSB2YWx1ZSBpcyBhbiBpbnRlZ2VyIHBlcmNlbnRhZ2Ugb2YgdGhlIG9yaWdpbmFsIGltYWdlIHNpemUuICBUaGUgb3B0aW9uYWwgc2Vjb25kIGFuZCB0aGlyZCBwYXJhbWV0ZXJzIGFyZSBvbmUgb2YgbCxjLHIgKGxlZnQsY2VudGVyLHJpZ2h0KSBhbmQgdCxjLGIgKHRvcCxjZW50ZXIsYm90dG9tKSBzcGVjaWZ5aW5nIHdoZXJlIHRoZSBsb2NhdGlvbiB3aXRoaW4gdGhlIHNvdXJjZSBpbWFnZSB0byBjcm9wIGZyb20uICBpLmU6IGNyb3A9MzMsYixyIHRvIGdyYWIgYSBjcm9wIG9mIDMzJSBmcm9tIHRoZSBib3R0b20gcmlnaHQgb2YgdGhlIHNvdXJjZSBpbWFnZS4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX2Nyb3B0b2ZpdCddID0gJyh3aWR0aCxoZWlnaHRbLGxvY2F0aW9uXSkgLSBQZXJmb3JtIGEgY3JvcHRvZml0IG9uIHRoZSBpbWFnZSBzcGVjaWZpZWQuIFRoaXMgYXR0ZW1wdHMgdG8gcmVzY2FsZSB0aGUgaW1hZ2UgdG8gdGhlIGRlc3RpbmF0aW9uIHNpemUgd2hpbGUgcmVhdGluaW5nIGFzcGVjdCByYXRpbywgdGhlbiBmb2N1cyBvbiB0aGUgc2VsZWN0ZWQgYXJlYSBvZiB0aGUgcmVzaXplZCBpbWFnZS4gIENyb3AgdG8gZml0IHBhcmFtZXRlcnMgYXJlIHNwZWNpZmllZCBhcyB0aGUgZGVzaXJlZCB3aWR0aCBhbmQgaGVpZ2h0IGZvciB0aGUgZGVzdGluYXRpb24gaW1hZ2UgYWxvbmcgd2l0aCBhbiAob3B0aW9uYWwpIGxvY2F0aW9uIGNvZGUuICB2YWxpZCBsb2NhdGlvbiBjb2RlcyBhcmUgdGwsdGMsdHIsY2wsYyxjcixibCxiLGJyIGZvciB0aGUgOSByZWxhdGl2ZSBwb3NpdGlvbnMgd2l0aGluIHRoZSBpbWFnZS4gIElmIGEgbG9jYXRpb24gaXMgbm90IHNwZWNpZmllZCBhIHByZWZlcmVuY2Ugd2lsbCBiZSB1c2VkLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgJnF1b3Q7YyZxdW90OyB0byBjcm9wLXRvLWZpdCBmcm9tIHRoZSBjZW50ZXIgb2YgdGhlIHNvdXJjZSBpbWFnZS4gIEF0IG5vIHRpbWUgd2lsbCB0aGlzIGZpbHRlciBwZXJmb3JtIGFueSB1cHNjYWxpbmcuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9lZGdlZGV0ZWN0J10gPSAnKGFueXRoaW5nKSBIaWxpZ2h0IHRoZSBlZGdlcyBpbiB0aGUgaW1hZ2UnOwokbGFuZ1sncGFyYW1fZmlsdGVyX2VtYm9zcyddID0gJyhhbnl0aGluZykgRW1ib3NzIHRoZSBpbWFnZSc7CiRsYW5nWydwYXJhbV9maWx0ZXJfZmxpcCddID0gJyhtb2RlKSAtIFBlcmZvcm0gYSBmbGlwIG9uIHRoZSBzcGVjaWZpZWQgaW1hZ2UuICBTcGVjaWZ5IDAgZm9yIGhvcml6b250YWwsIDEgZm9yIHZlcnRpY2FsLCBhbmQgMiBmb3IgZmxpcCBpbiBib3RoIGRpcmVjdGlvbnMuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9ncmF5c2NhbGUnXSA9ICcoYW55dGhpbmcpIENvbnZlcnQgdGhlIGltYWdlIHRvIGdyYXlzY2FsZSc7CiRsYW5nWydwYXJhbV9maWx0ZXJfbWVhbnJlbW92YWwnXSA9ICcoYW55dGhpbmcpIEF0dGVtcHQgdG8gYWNoaWV2ZSBhICZxdW90O3NrZXRjaHkmcXVvdDsgZWZmZWN0JzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9uZWdhdGUnXSA9ICcoYW55dGhpbmcpIE5lZ2F0ZSB0aGUgaW1hZ2UnOwokbGFuZ1sncGFyYW1fZmlsdGVyX3BpeGVsYXRlJ10gPSAnKHNpemVbLGFkdmFuY2VkXSkgUGl4ZWxhdGUgdGhlIGltYWdlLCBzcGVjaWZ5IGFuIGludGVnZXIgc2l6ZSBhbmQgYW4gb3B0aW9uYWwgYm9vbGVhbiAoZGVmYXVsdCBpcyBmYWxzZSkgdG8gZW5hYmxlIGFkdmFuY2VkIHBpeGVsYXRpb24nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3Jlc2l6ZSddID0gJ3R5cGUsbnVtYmVyWyxudW1iZXJdIC0gUGVyZm9ybSBhIHJlc2l6ZSBvZiB0aGUgc291cmNlIGltYWdlLiAgVGhlIHJlc2l6ZSBmaWx0ZXIgZG9lcyBub3QgcGVyZm9ybSBhbnkgdXBzY2FsZSBjaGVja2luZy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5wLG51bWJlciAtIFBlcmZvcm0gYSBzaW1wbGUgcmVzY2FsZSB0byBhIGNlcnRhaW4gcGVyY2VudGFnZS4gIGkuZTogIHJlc2l6ZT1wLDUwIHRvIHJlc2l6ZSB0byA1MCUgb2YgdGhlIG9yaWdpbmFsIHNpemUuPC9saT4NCiAgPGxpPncsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCB3aWR0aCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPXcsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIHdpZHRoIG9mIDgwIHBpeGVscy48L2xpPg0KICA8bGk+aCxudW1iZXIgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgc3BlY2lmaWVkIGhlaWdodCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPWgsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIGhlaWdodCBvZiA4MCBwaXhlbHMuPC9saT4NCiAgPGxpPmUsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSByZXNpemluZyB0aGUgbGFyZ2VzdCBlZGdlIHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUgKHdoaWxlIHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiBpLmU6IHJlc2l6ZT1lLDEwMCB0byBjcmVhdGUgYSB0aHVtYm5haWwgd2hvcyBsYXJnZXN0IGVkZ2UgaXMgMTAwIHBpeGVscy4NCiAgPGxpPmMseCx5IC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIGN1c3RvbSBzaXplICh3aXRob3V0IHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgaS5lOiBmaWx0ZXJfcmVzaXplPWMsNTAsNzUgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHRoYXQgaXMgNTB4NzUgcGl4ZWxzLjwvbGk+Lg0KPC91bD4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3Jlc2l6ZXRvZml0J10gPSAnKHdpZHRoLGhlaWdodFssY29sb3JbLGFscGhhXV0pIC0gUGVyZm9ybSBhIHJlc2l6ZSBvbiB0aGUgaW1hZ2Ugc3BlY2lmaWVkLiBUaGlzIGF0dGVtcHRzIHRvIHJlc2NhbGUgdGhlIGltYWdlIHRvIHRoZSBkZXN0aW5hdGlvbiBzaXplIHdoaWxlIHJlYXRpbmluZyBhc3BlY3QgcmF0aW8sIHRoZSBpbWFnZSBpcyBjZW50ZXJlZCBpbiB0aGUgYm94IHNwZWNpZmllZCAoZWl0aGVyIGhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5IGRlcGVuZGluZyB1cG9uIGFzcGVjdCByYXRpbyBhbmQgdGhlIGRlc3RpbmF0aW9uIHNpemUsIGFuZCB0aGUgaW1hZ2UgaXMgc3Vycm91bmRlZCBieSB0aGUgc3VwcGxpZWQgY29sb3IuICBDb2xvcnMgY2FuIGJlIHNwZWNpZmllZCBieSBuYW1lIChzZWUgdGhlIFgxMSBjb2xvciBuYW1lcyksIG9yIGJ5ICNubm5ubm4gaGV4YWRlY2ltYWwgZm9ybWF0LCBvciBhcyByZ2IgdmFsdWVzIHNlcGFyYXRlZCBieSBhIDogaS5lOiAgZmlsdGVyX2Nyb3B0b2ZpdD02MDAsNDAwLCNmZjAwMDAuICBUaGUgc3BlY2lhbCBjb2xvciB2YWx1ZSAmcXVvdDt0cmFuc3BhcmVudCZxdW90OyBjYW4gYmUgc3BlY2lmaWVkIHRvIGZvcmNlIHRoZSBiYWNrZ3JvdW5kIHRvIGJlIHRyYW5zcGFyZW50LiAgIEFuIGFscGhhIHZhbHVlIG1heSBiZSBzcGVjaWZpZWQgYmV0d2VlbiAwIGFuZCAxMjcgdG8gc3BlY2lmeSBkaWZmZXJlbnQgZGVncmVlcyBvZiB0cmFuc2x1Y2VuY3kgZm9yIHRoZSBiYWNrZ3JvdW5kLiAgIEF0IG5vIHRpbWUgd2lsbCB0aGlzIHBsdWdpbiBwZXJmb3JtIGFueSB1cHNjYWxpbmcuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yb3RhdGUnXSA9ICcoYW5nbGUpIFNwZWNpZnkgdGhlIGludGVnZXIgYW5nbGUgKGNvdW50ZXIgY2xvY2t3aXNlKSB0byByb3RhdGUgdGhlIGltYWdlLCBUaGUgaW1hZ2UgaXMgcm90YXRlZCBhYm91dCBpdHMgY2VudGVyLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfcm91bmRlZGNvcm5lcnMnXSA9ICcocmFkaXVzKSBTcGVjaWZ5IGFuIGludGVnZXIgcmFkaXVzIChpbiBwaXhlbHMpIGZvciByb3VuZGluZyB0aGUgY29ybmVycy4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3dhdGVybWFyayddID0gJyhhbnl0aGluZyksIFNwZWNpZnkgdGhhdCB0aGUgd2F0ZXJtYXJrIChhcyBzcGVjaWZpZWQgaW4gdGhlIENHRXh0ZW5zaW9ucyBhZG1pbiBwYW5lbCkgc2hvdWxkIGJlIGFwcGxpZWQgdG8gdGhlIGltYWdlJzsKJGxhbmdbJ3BhcmFtX2hlaWdodCddID0gJ1VzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBzcGVjaWZ5IHRoZSB2YWx1ZSBmb3IgdGhlIGhlaWdodCBhdHRyaWJ1dGUuICBOb3RlLCBpZiB0aGlzIGlzIG5vdCBzcGVjaWZpZWQgYSB2YWx1ZSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY2FsY3VsYXRlZCBmb3IgdGhpcyBhdHRyaWJ1dGUgc28gdGhhdCBtb3N0IGdlbmVyYXRlZCBpbWcgdGFncyB3aWxsIHZhbGlkYXRlLiAgWW91IGNhbiBvdmVycmlkZSB0aGlzIGF1dG8gY2FsY3VsYXRpb24gd2l0aCB0aGUgJnF1b3Q7bm9hdXRvJnF1b3Q7IHBhcmFtZXRlci4gIFRoaXMgcGFyYW1ldGVyIHdpbGwgYWxzbyBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlICZxdW90O3dpZHRoJnF1b3Q7IHBhcmFtZXRlciB0byBwZXJmb3JtIGEgZmluYWwgcmVzaXppbmcgb3IgY3JvcHRvZml0IGZpbHRlciAodW5sZXNzIHRoZSAmcXVvdDtub2F1dG9zY2FsZSZxdW90OyBwYXJhbWV0ZXIgaXMgYWxzbyBzdXBwbGllZCknOwokbGFuZ1sncGFyYW1faWQnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgYWxsb3dzIHNwZWNpZnlpbmcgYW4gaWQgYXR0cmlidXRlIHRvIGluY2x1ZGUgb24gdGhlIHRhZy4gIGkuZTogaWQ9JnF1b3Q7c29tZXRhZyZxdW90Oyc7CiRsYW5nWydwYXJhbV9tYXhfaGVpZ2h0J10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSB7Y2dzaV9jb252ZXJ0fSB0YWcgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBtYXhpbXVtIGhlaWdodCBmb3IgdGhlIGNvbnZlcnRlZCBpbWFnZXMnOwokbGFuZ1sncGFyYW1fbWF4X3dpZHRoJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSB7Y2dzaV9jb252ZXJ0fSB0YWcgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBtYXhpbXVtIHdpZHRoIGZvciB0aGUgY29udmVydGVkIGltYWdlcyc7CiRsYW5nWydwYXJhbV9uYW1lJ10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIHNwZWNpZnkgdGhlIHZhbHVlIGZvciB0aGUgbmFtZSBhdHRyaWJ1dGUuJzsKJGxhbmdbJ3BhcmFtX25vYXV0byddID0gJ0RvIG5vdCBhdXRvbWF0aWNhbGx5IGNhbGN1YWx0ZSBwYXJhbWV0ZXJzIGZvciB0aGUgaW1nIHRhZy4gIFRoaXMgbWF5IGNhdXNlIHlvdXIgc2l0ZSB0byBmYWlsIHZhbGlkYXRpb24gaWYgc29tZSByZXF1aXJlZCBwYXJhbWV0ZXJzICh3aWR0aCxoZWlnaHQsYWx0KSBhcmUgbm90IHNwZWNpZmllZCc7CiRsYW5nWydwYXJhbV9ub2F1dG9zY2FsZSddID0gJ2lmIHdpZHRoIGFuZCBoZWlnaHQgcGFyYW1ldGVycyBhcmUgc3BlY2lmaWVkLCB0aGlzIHBhcmFtZXRlciB3aWxsIGRpc2FibGUgYXV0b21hdGljIHNjYWxpbmcgb2YgdGhlIGltYWdlLic7CiRsYW5nWydwYXJhbV9ub2JjYWNoZSddID0gJ0RvIG5vdCBhbGxvdyB0aGUgcmVzaXplZCBpbWFnZSB0byBjYWNoZSBpbiB0aGUgYnJvd3NlciAodXNlZnVsIGZvciBkZXZlbG9wbWVudCBwdXJwb3NlcykgdGhpcyBhZGRzIGEgdW5pcXVlIG51bWJlciBhcyBhIHBhcmFtZXRlciB0byB0aGUgaW1hZ2Ugd2hpY2ggd2lsbCBmb3JjZSB0aGUgYnJvd3NlciBub3QgdG8gY2FjaGUgdGhlIGltYWdlLic7CiRsYW5nWydwYXJhbV9ub2VtYmVkJ10gPSAnRm9yY2UgdGhlIGltYWdlIHRvIG5vdCBlbWJlZC4gIFJlZ2FyZGxlc3Mgb2Ygc2V0dGluZ3MgaW4gdGhlIGFkbWluIHBhbmVsLCB0aGUgVVJMIGFuZCB0YWcgZ2VuZXJhdGVkIHdpbGwgYmUgdG8gYSBmaWxlIG9uIHRoZSBzZXJ2ZXIuICBObyBlbWJlZGRpbmcgd2lsbCBiZSBwZXJmb3JtZWQnOwokbGFuZ1sncGFyYW1fbm90aW1lY2hlY2snXSA9ICdEaXNhYmxlIHRpbWUgY2hlY2tpbmcgb2YgY2FjaGVkIGZpbGVzLic7CiRsYW5nWydwYXJhbV9ub3JlbW90ZSddID0gJ0RvIG5vdCBhbGxvdyByZXRyaWV2aW5nIHNvdXJjZXMgZnJvbSByZW1vdGUgVVJMUyc7CiRsYW5nWydwYXJhbV9ub3JvdGF0ZSddID0gJ0RvIG5vdCBhdHRlbXB0IHRvIHJlYWQgZXhpZiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBmaWxlIGFuZCBjb3JyZWN0IGltYWdlIHJvdGF0aW9uJzsKJGxhbmdbJ3BhcmFtX25vdGFnJ10gPSAnRG8gbm90IG91dHB1dCBhbiBpbWcgdGFnLCBvbmx5IHRoZSB1cmwgdG8gdGhlIGNhY2hlZCBpbWFnZS4gIFRoaXMgaGFzIG5vIGVmZmVjdCB3aGVuIENHU21hcnRJbWFnZSBpcyB1c2VkIGZyb20gd2l0aGluIGEgc3R5bGVzaGVldC4nOwokbGFuZ1sncGFyYW1fb3ZlcndyaXRlJ10gPSAnRGlzYWJsZSBhbGwgY2FjaGluZyBhbmQgZm9yY2UgcmUtY2FsY3VsYXRpb24gb2YgYWxsIGZpbHRlcnMnOwokbGFuZ1sncGFyYW1fcXVhbGl0eSddID0gJ1NwZWNpZnkgdGhlIHF1YWxpdHkgb2YgdGhlIG91dHB1dCBpbWFnZS4gIEEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxMDAuICBUaGUgZGVmYXVsdCB2YWx1ZSBpZiBub3Qgc3BlY2lmaWVkIGlzIDc1Lic7CiRsYW5nWydwYXJhbV9yZWwnXSA9ICdVc2VkIHdoZW4gYnVpbGRpbmcgYW4gaW1hZ2UgdGFnIGFsbG93cyBzcGVjaWZ5aW5nIGFuIG9wdGlvbmFsIHJlbCBhdHRyaWJ1dGUgKHR5cGljYWxseSB1c2VkIHdpdGggamF2YXNjcmlwdCB0eXBlIGFsYnVtcykuIGkuZTogcmVsPSZxdW90O2FsYnVtJnF1b3Q7JzsKJGxhbmdbJ3BhcmFtX3NpbGVudCddID0gJ1NpbGVudGx5IGlnbm9yZSBlcnJvcnMnOwokbGFuZ1sncGFyYW1fc3JjJ10gPSAnU3BlY2lmeSB0aGUgc291cmNlIGZvciB0aGUgaW1hZ2UgcHJvY2Vzc2luZyAoaWYgYW55KSBvciB0aGUgZ2VuZXJhdGVkIGltZyB0YWcuICBOb3RlLCB0aGlzIHBhcmFtZXRlciBpcyBmbGV4aWJsZSwgYW5kIHRoZSBtb2R1bGUgd2lsbCBhdHRlbXB0IG1hbnkgbWV0aG9kcyB0byBmaW5kIHRoZSBzb3VyY2UgaW1hZ2UgZmlsZSBvbiB0aGUgd2ViIHNlcnZlciBhcyBmb2xsb3dzOg0KPHVsPg0KICA8bGk+Rmlyc3QgbG9vayB0byBzZWUgaWYgdGhlIHNwZWNpZmllZCBzcmMgdmFsdWUgZXhpc3RzIGFzIGEgZmlsZSBvbiB0aGUgZmlsZXN5c3RlbS48L2xpPg0KICA8bGk+TmV4dCwgY2hlY2sgaWYgdGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgdGhlIHNyYyBwYXJhbWV0ZXIgaXMgYSBVUkwgYW5kIGJlZ2lucyB3aXRoIHRoZSB1cGxvYWRzX3VybCAoYXMgc3BlY2lmaWVkIGluIHRoZSBjb25maWcucGhwKTwvbGk+DQogIDxsaT5OZXh0LCBjaGVjayBpZiB0aGUgdmFsdWUgc3BlY2lmaWVkIGZvciB0aGUgc3JjIHBhcmFtZXRlciBpcyBhIFVSTCBhbmQgYmVnaW5zIHdpdGggdGhlIHJvb3RfdXJsIChhcyBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZy5waHApPC9saT4NCiAgPGxpPk5leHQsIGNoZWNrIGlmIHRoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yIHRoZSBzcmMgcGFyYW1ldGVyIGlzIGEgVVJMIGFuZCBiZWdpbnMgd2l0aCB0aGUgc3NsX3VybCAoYXMgc3BlY2lmaWVkIGluIHRoZSBjb25maWcucGhwKTwvbGk+DQo8L3VsPg0KSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBzcGxpdCB0aGUgc3JjIHBhcmFtZXRlciBpbnRvIG11bHRpcGxlIGFyZ3VtZW50cywgd2hpY2ggaXMgdXNlZnVsIGZvciBleGFtcGxlIHdoZW4gdGhlIHBhdGggdG8gdGhlIGZpbGUsIGFuZCB0aGUgZmlsZW5hbWUgYXJlIHN0b3JlZCBpbiBzZXBhcmF0ZSBzbWFydHkgdmFyaWFibGVzLiAgIFlvdSBjYW4gc3BlY2lmeSB0aGUgc3JjIGFzIHNyYzE9XCR0aGVfcGF0aCBzcmMyPVwkdGhlX2ZpbGVuYW1lLiAgVGhlIHN5c3RlbSB3aWxsIGF1dG9tYXRpY2FsbHkgYWRkIGEgLyBpbiBiZXR3ZWVuIGVhY2ggYXJndW1lbnQuICBUaGVyZSBpcyBubyBsaW1pdCB0byB0aGUgbnVtYmVyIG9mIHNyYyBwYXJhbWV0ZXJzLic7CiRsYW5nWydwYXJhbV9zdHlsZSddID0gJ1VzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBhbGxvd3Mgc3BlY2lmeWluZyBhbHRlcm5hdGUgc3R5bGVzIGZvciB0aGUgdGFnLiAgaS5lOiBzdHlsZT0mcXVvdDtib3JkZXI6IDFweCBzb2xpZCBibGFjazsmcXVvdDsnOwokbGFuZ1sncGFyYW1fdGl0bGUnXSA9ICdTcGVjaWZ5IGFuIG9wdGlvbmFsIHRpdGxlIGF0dHJpYnV0ZSBmb3IgdGhlIGltZyB0YWcuICBpLmU6IHRpdGxlPSZxdW90O1RoaXMgaXMgdGhlIHRvb2x0aXAmcXVvdDsnOwokbGFuZ1sncGFyYW1fd2lkdGgnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSB3aWR0aCBhdHRyaWJ1dGUuICAgTm90ZSwgaWYgdGhpcyBpcyBub3Qgc3BlY2lmaWVkIGEgdmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoaXMgYXR0cmlidXRlIHNvIHRoYXQgbW9zdCBnZW5lcmF0ZWQgaW1nIHRhZ3Mgd2lsbCB2YWxpZGF0ZS4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBhdXRvIGNhbGN1bGF0aW9uIHdpdGggdGhlICZxdW90O25vYXV0byZxdW90OyBwYXJhbWV0ZXIuICBUaGlzIHBhcmFtZXRlciB3aWxsIGFsc28gYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAmcXVvdDtoZWlnaHQmcXVvdDsgcGFyYW1ldGVyIHRvIHBlcmZvcm0gYSBmaW5hbCByZXNpemluZyBvciBjcm9wdG9maXQgZmlsdGVyICh1bmxlc3MgdGhlICZxdW90O25vYXV0b3NjYWxlJnF1b3Q7IHBhcmFtZXRlciBpcyBhbHNvIHN1cHBsaWVkKSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ00mb2FjdXRlO2R1bG8gaW5zdGFsYWRvJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdUb2RvcyBvcyBkYWRvcyBhc3NvY2lhZG9zIGEgZXN0ZSBtJm9hY3V0ZTtkdWxvIGZvcmFtIHJlbW92aWRvcyc7CiRsYW5nWydwcm9tcHRfY3JvcHRvZml0X2RlZmF1bHRfbG9jJ10gPSAnUG9zaSZjY2VkaWw7JmF0aWxkZTtvIHBvciBkZWZlaXRvIGFwYXJ0aXIgZGUgb25kZSBmYXplciAmcXVvdDtjcm9wIHRvIGZpdCZxdW90OyAoY29ydGFyIHBhcmEgY2FiZXIpJzsKJGxhbmdbJ3Byb21wdF9lbWJlZF9zaXplbGltaXQnXSA9ICdCYXNlYWRvIG5vIHRhbWFuaG8gZGEgaW1hZ2VtJzsKJGxhbmdbJ3Byb21wdF9lbWJlZF9zbWFydGxpbWl0ZWQnXSA9ICdNb2RvIGludGVsaWdlbnRlIG1hcyBsaW1pdGFkbyBhbyB0YW1hbmhvIGRlIGltYWdlbSc7CiRsYW5nWydwcm9tcHRfZW1iZWRfdHlwZSddID0gJ0Jhc2VhZG8gbm8gdGFtYW5obyBkZSBpbWFnZW0nOwokbGFuZ1sncHJvbXB0X2xvY19ib3R0b21sZWZ0J10gPSAnQmFpeG8gRXNxdWVyZGEgKGJsKSc7CiRsYW5nWydwcm9tcHRfbG9jX2JvdHRvbWNlbnRlciddID0gJ0JhaXhvIENlbnRybyAoYmMpJzsKJGxhbmdbJ3Byb21wdF9sb2NfYm90dG9tcmlnaHQnXSA9ICdCYWl4byBEaXJlaXRhIChiciknOwokbGFuZ1sncHJvbXB0X2xvY19jZW50ZXJsZWZ0J10gPSAnQ2VudHJvIEVzcXVlcmRhIChjbCknOwokbGFuZ1sncHJvbXB0X2xvY19jZW50ZXInXSA9ICdDZW50cm8gKGMpJzsKJGxhbmdbJ3Byb21wdF9sb2NfY2VudGVycmlnaHQnXSA9ICdDZW50cm8gRGlyZWl0YSAoY3IpJzsKJGxhbmdbJ3Byb21wdF9sb2NfdG9wbGVmdCddID0gJ1RvcG8gRXNxdWVyZGEgKHRsKSc7CiRsYW5nWydwcm9tcHRfbG9jX3RvcGNlbnRlciddID0gJ1RvcG8gQ2VudHJvICh0YyknOwokbGFuZ1sncHJvbXB0X2xvY190b3ByaWdodCddID0gJ1RvcG8gRGlyZWl0YSAodHIpJzsKJGxhbmdbJ3Jlc2l6aW5nJ10gPSAnUmVkaW1lbnNpb25hbmRvJzsKJGxhbmdbJ3NtYXJ0J10gPSAnSW50ZWxpZ2VudGUnOwokbGFuZ1snc3VibWl0J10gPSAnU3VibWV0ZXInOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4yMTM2ODA5ODYyLjEzNzQxNjI3NTEuMTM3NDE2Mjc1MS4xMzc0MTYyNzUxLjEnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEzNzQxNjI3NTEuMS4xLnV0bWNjbj0oZGlyZWN0KXx1dG1jc3I9KGRpcmVjdCl8dXRtY21kPShub25lKSc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.CGImageBase.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgQ0dJbWFnZUJhc2UgaW1wbGVtZW50cyBBcnJheUFjY2Vzcwp7CiAgcHJpdmF0ZSAkX3RyYW5zcGFyZW50OwogIHByaXZhdGUgJF9zYXZlYWxwaGE7IC8vIGluZGljYXRlcyB0aGF0IHRoZSBpbWFnZSBzaG91bGQgYmUgc2F2ZWQgd2l0aCBhbHBoYSBjaGFubmVscwogIHByaXZhdGUgJF9yc3JjOwogIHByaXZhdGUgJF9zcmNuYW1lOwogIHByaXZhdGUgJF9kaXJ0eTsKICBwcml2YXRlICRfaW5mbzsKICBwcml2YXRlIHN0YXRpYyAkX2tleXMgPSBhcnJheSgnZGlydHknLCdyc3JjJywnd2lkdGgnLCdoZWlnaHQnLCd0eXBlJywnZmlsZW5hbWUnLCduYW1lJywndHJhbnNwYXJlbnQnLCdzYXZlYWxwaGEnKTsKCiAgcHJpdmF0ZSBmdW5jdGlvbiBjcmVhdGVfbmV3X3JzcmMoJG1pbWV0eXBlLCR3aWR0aCwkaGVpZ2h0KQogIHsKICAgIHN3aXRjaCggJG1pbWV0eXBlICkgewogICAgY2FzZSAnaW1hZ2UvanBlZyc6CiAgICAgICRfcnNyYyA9IGltYWdlY3JlYXRldHJ1ZWNvbG9yKCR3aWR0aCwkaGVpZ2h0KTsKICAgICAgcmV0dXJuICRfcnNyYzsKCiAgICBjYXNlICdpbWFnZS9wbmcnOgogICAgICAvLyBmcm9tIHN1cGVyc2l6ZXIKICAgICAgJF9yc3JjID0gaW1hZ2VjcmVhdGV0cnVlY29sb3IoJHdpZHRoLCAkaGVpZ2h0KTsKICAgICAgJGNvbG9yID0gaW1hZ2Vjb2xvcmFsbG9jYXRlYWxwaGEoJF9yc3JjLCAwLCAwLCAwLCAxMjcpOwogICAgICBpbWFnZWNvbG9ydHJhbnNwYXJlbnQoJF9yc3JjLCRjb2xvcik7CiAgICAgICR0aGlzLT5fdHJhbnNwYXJlbnQgPSAkY29sb3I7CiAgICAgIHJldHVybiAkX3JzcmM7CgogICAgY2FzZSAnaW1hZ2UvZ2lmJzoKICAgICAgJF9yc3JjID0gaW1hZ2VjcmVhdGV0cnVlY29sb3IoJHdpZHRoLCAkaGVpZ2h0KTsKICAgICAgaW1hZ2V0cnVlY29sb3J0b3BhbGV0dGUoJF9yc3JjLCB0cnVlLCAyNTYpOwogICAgICBpbWFnZWFscGhhYmxlbmRpbmcoJF9yc3JjLCBmYWxzZSk7CiAgICAgIGltYWdlc2F2ZWFscGhhKCRfcnNyYyx0cnVlKTsKICAgICAgJHRyYW5zcGFyZW50ID0gaW1hZ2Vjb2xvcmFsbG9jYXRlYWxwaGEoJF9yc3JjLCAyNTUsIDI1NSwgMjU1LCAxMjcpOwogICAgICBpbWFnZWZpbGxlZHJlY3RhbmdsZSgkX3JzcmMsIDAsIDAsICR3aWR0aCwgJGhlaWdodGQsICR0cmFuc3BhcmVudCk7CiAgICAgIGltYWdlY29sb3J0cmFuc3BhcmVudCgkX3JzcmMsICR0cmFuc3BhcmVudCk7CiAgICAgIHJldHVybiAkX3JzcmM7CgogICAgZGVmYXVsdDoKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQ2Fubm90IGNyZWF0ZSBuZXcgaW1hZ2Ugb2YgdHlwZSAnLiRtaW1ldHlwZSk7CiAgICB9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGlucHV0KQogIHsKICAgIGlmKCBpc19vYmplY3QoJGlucHV0KSAmJiAkaW5wdXQgaW5zdGFuY2VvZiBDR0ltYWdlQmFzZSAgKSB7CiAgICAgIC8vIGNvcHkgY29uc3RydWN0b3IKICAgICAgJHRoaXMtPl9zYXZlYWxwaGEgPSAkaW5wdXQtPl9zYXZlYWxwaGE7CiAgICAgICR0aGlzLT5fdHJhbnNwYXJlbnQgPSAkaW5wdXQtPl90cmFuc3BhcmVudDsKICAgICAgJHRoaXMtPl9yc3JjID0gJGlucHV0LT5fcnNyYzsKICAgICAgJHRoaXMtPl9zcmNuYW1lID0gJGlucHV0LT5fc3JjbmFtZTsKICAgICAgJHRoaXMtPl9pbmZvID0gJGlucHV0LT5faW5mbzsKICAgICAgJHRoaXMtPl9kaXJ0eSA9IDE7CiAgICB9CiAgICBlbHNlIGlmKCBpc19zdHJpbmcoJGlucHV0KSAmJiBpc19yZWFkYWJsZSgkaW5wdXQpICYmIGlzX2ZpbGUoJGlucHV0KSApIHsKICAgICAgJGRhdGEgPSBmaWxlX2dldF9jb250ZW50cygkaW5wdXQpOwogICAgICBpZiggJGRhdGEgIT09IEZBTFNFICkgewoJJHRoaXMtPl9yc3JjID0gaW1hZ2VjcmVhdGVmcm9tc3RyaW5nKCRkYXRhKTsKCSR0aGlzLT5fc3JjbmFtZSA9ICRpbnB1dDsKCSR0aGlzLT5faW5mbyA9IGdldGltYWdlc2l6ZSgkaW5wdXQpOwoJJHRtcCA9IGltYWdlY29sb3J0cmFuc3BhcmVudCgkdGhpcy0+X3JzcmMpOwoJaWYoICR0bXAgIT0gLTEgKSAkdGhpcy0+X3RyYW5zcGFyZW50ID0gJHRtcDsKCSR0aGlzLT5faW5mb1syXSA9IGltYWdlX3R5cGVfdG9fbWltZV90eXBlKCR0aGlzLT5faW5mb1syXSk7CglyZXR1cm47CiAgICAgIH0KICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignUHJvYmxlbSBjcmVhdGluZyBuZXcgQ0dJbWFnZUJhc2Ugb2JqZWN0IGZyb20gJy4kaW5wdXQpOwogICAgfQogICAgZWxzZSBpZiggaXNfYXJyYXkoJGlucHV0KSAmJiBjb3VudCgkaW5wdXQpID49IDMgKSB7CiAgICAgICR0aGlzLT5fcnNyYyA9ICR0aGlzLT5jcmVhdGVfbmV3X3JzcmMoJGlucHV0WzBdLCRpbnB1dFsxXSwkaW5wdXRbMl0pOwogICAgICAkdGhpcy0+X2luZm8gPSBhcnJheSgkaW5wdXRbMV0sJGlucHV0WzJdLCRpbnB1dFswXSk7CiAgICAgICR0aGlzLT5fZGlydHkgPSAxOwogICAgfQogICAgZWxzZSB7CiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0F0dGVtcHQgdG8gY3JlYXRlIGEgQ0dJbWFnZUJhc2Ugb2JqZWN0IHdpdGggaW52YWxpZCBpbnB1dCcpOwogICAgfQogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRFeGlzdHMoJGspCiAgewogICAgcmV0dXJuIGluX2FycmF5KCRrLENHSW1hZ2VCYXNlOjokX2tleXMpOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRVbnNldCgkaykKICB7CiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBdHRlbXB0IHRvIHVuc2V0IGFuIGF0dHJpYnV0ZSBvZiBhIENHSW1hZ2VCYXNlIG9iamVjdCcpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIG9mZnNldEdldCgkaykKICB7CiAgICAkayA9IHN0cnRvbG93ZXIoJGspOwogICAgaWYoICFpbl9hcnJheSgkayxDR0ltYWdlQmFzZTo6JF9rZXlzKSApCiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0F0dGVtcHQgdG8gZ2V0IGludmFsaWQgYXR0cmlidXRlICcuJGsuJyBGcm9tIENHSW1hZ2VCYXNlJyk7CgogICAgc3dpdGNoKCAkayApIHsKICAgIGNhc2UgJ3JzcmMnOgogICAgICByZXR1cm4gJHRoaXMtPl9yc3JjOwogICAgICBicmVhazsKCiAgICBjYXNlICd3aWR0aCc6CiAgICAgIGlmKCAhaXNfYXJyYXkoJHRoaXMtPl9pbmZvKSApIHRocm93IG5ldyBFeGNlcHRpb24oJ0F0dGVtcHQgdG8gZ2V0IGluZm9ybWF0aW9uIG9uIHVuaW5pdGlhbGl6ZWQgb2JqZWN0Jyk7CiAgICAgIHJldHVybiAkdGhpcy0+X2luZm9bMF07CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ2hlaWdodCc6CiAgICAgIGlmKCAhaXNfYXJyYXkoJHRoaXMtPl9pbmZvKSApIHRocm93IG5ldyBFeGNlcHRpb24oJ0F0dGVtcHQgdG8gZ2V0IGluZm9ybWF0aW9uIG9uIHVuaW5pdGlhbGl6ZWQgb2JqZWN0Jyk7CiAgICAgIHJldHVybiAkdGhpcy0+X2luZm9bMV07CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ3R5cGUnOgogICAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5faW5mbykgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBdHRlbXB0IHRvIGdldCBpbmZvcm1hdGlvbiBvbiB1bmluaXRpYWxpemVkIG9iamVjdCcpOwogICAgICByZXR1cm4gJHRoaXMtPl9pbmZvWzJdOwogICAgICBicmVhazsKCiAgICBjYXNlICdkaXJ0eSc6CiAgICAgIHJldHVybiAkdGhpcy0+X2RpcnR5OwogICAgICBicmVhazsKCiAgICBjYXNlICd0cmFuc3BhcmVudCc6CiAgICAgIHJldHVybiAkdGhpcy0+X3RyYW5zcGFyZW50OwogICAgICBicmVhazsKCiAgICBjYXNlICdzYXZlYWxwaGEnOgogICAgICByZXR1cm4gJHRoaXMtPl9zYXZlYWxwaGE7CgogICAgY2FzZSAnZmlsZW5hbWUnOgogICAgY2FzZSAnbmFtZSc6CiAgICAgIHJldHVybiAkdGhpcy0+X3NyY25hbWU7CiAgICAgIGJyZWFrOwogICAgfQogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRTZXQoJGssJHYpCiAgewogICAgaWYoICFpbl9hcnJheSgkayxDR0ltYWdlQmFzZTo6JF9rZXlzKSApIHRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgQXR0ZW1wdCB0byBtb2RpZnkgdGhlIGF0dHJpYnV0ZSBvZiBDR0ltYWdlQmFzZScpOwoKICAgICR0aGlzLT5fZGlydHkgPSAxOwogICAgc3dpdGNoKCRrKSB7CiAgICBjYXNlICdyc3JjJzoKICAgIGNhc2UgJ2RpcnR5JzoKICAgIGNhc2UgJ3RyYW5zcGFyZW50JzoKICAgICAgJGsgPSAnXycuJGs7CiAgICAgICR0aGlzLT4kayA9ICR2OwogICAgICBicmVhazsKCiAgICBjYXNlICd3aWR0aCc6CiAgICAgIGlmKCAhaXNfYXJyYXkoJHRoaXMtPl9pbmZvKSApICR0aGlzLT5faW5mbyA9IGFycmF5KCk7CiAgICAgICR0aGlzLT5faW5mb1swXSA9ICR2OwogICAgICBicmVhazsKCiAgICBjYXNlICdoZWlnaHQnOgogICAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5faW5mbykgKSAkdGhpcy0+X2luZm8gPSBhcnJheSgpOwogICAgICAkdGhpcy0+X2luZm9bMV0gPSAkdjsKICAgICAgYnJlYWs7CgogICAgY2FzZSAndHlwZSc6CiAgICAgIGlmKCAhaXNfYXJyYXkoJHRoaXMtPl9pbmZvKSApICR0aGlzLT5faW5mbyA9IGFycmF5KCk7CiAgICAgICR0aGlzLT5faW5mb1syXSA9ICR2OwogICAgICBicmVhazsKCiAgICBjYXNlICdzYXZlYWxwaGEnOgogICAgICAkdGhpcy0+X3NhbHZlYWxwaGEgPSAoYm9vbCkkdjsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnZmlsZW5hbWUnOgogICAgY2FzZSAnbmFtZSc6CiAgICAgICR0aGlzLT5fc3JjbmFtZSA9ICR2OwogICAgICBicmVhazsKICAgIH0KICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gc2F2ZSgkZmlsZW5hbWUsJHF1YWxpdHkgPSA3NSkKICB7CiAgICBpZiggISR0aGlzLT5fZGlydHkgKSByZXR1cm47CgogICAgJHR5cGUgPSAkdGhpc1sndHlwZSddOwogICAgJHJlcyA9ICcnOwogICAgc3dpdGNoKCR0eXBlKSB7CiAgICBjYXNlICdpbWFnZS9qcGVnJzoKICAgICAgJHJlcyA9IGltYWdlanBlZygkdGhpc1sncnNyYyddLCRmaWxlbmFtZSwkcXVhbGl0eSk7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ2ltYWdlL3BuZyc6CiAgICAgIGltYWdlc2F2ZWFscGhhKCR0aGlzWydyc3JjJ10sVFJVRSk7CiAgICAgICRxdWFsaXR5ID0gY2VpbCgoMTAwLjAgLSAoZmxvYXQpJHF1YWxpdHkpLzEwMC4wKjEwLjApOwogICAgICAkcmVzID0gaW1hZ2VwbmcoJHRoaXNbJ3JzcmMnXSwkZmlsZW5hbWUsJHF1YWxpdHkpOwogICAgICBicmVhazsKCiAgICBjYXNlICdpbWFnZS9naWYnOgogICAgICBpZiggJHRoaXMtPl9zYXZlYWxwaGEgKSB7CglpbWFnZXNhdmVhbHBoYSgkdGhpc1sncnNyYyddLFRSVUUpOwogICAgICB9CiAgICAgIGVsc2UgewoJaW1hZ2VzYXZlYWxwaGEoJHRoaXNbJ3JzcmMnXSxGQUxTRSk7CiAgICAgIH0KICAgICAgJHJlcyA9IGltYWdlZ2lmKCR0aGlzWydyc3JjJ10sJGZpbGVuYW1lKTsKICAgICAgYnJlYWs7CgogICAgZGVmYXVsdDoKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQ2Fubm90IHNhdmUgaW1hZ2Ugb2YgdHlwZSAnLiR0aGlzWyd0eXBlJ10pOwogICAgfQoKICAgIGlmKCAkcmVzICkgcmV0dXJuOwogICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignRXJyb3Igc2F2aW5nIGltYWdlIG9mIHR5cGUgJy4kdGhpc1sndHlwZSddLicgdG8gJy4kZmlsZW5hbWUpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHN1cHBvcnRzX3RyYW5zcGFyZW5jeSgpCiAgewogICAgc3dpdGNoKCAkdGhpc1sndHlwZSddICkgewogICAgY2FzZSAnaW1hZ2UvZ2lmJzoKICAgIGNhc2UgJ2ltYWdlL3BuZyc6CiAgICAgIHJldHVybiBUUlVFOwoKICAgIGRlZmF1bHQ6CiAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KICB9Cn0gLy8gY2xhc3MgQ0dJbWFnZUJhc2UKCi8vICRpbWcxID0gbmV3IENHSW1hZ2UoJHNvbWVmaWxlbmFtZSk7Ci8vICRmaWx0ZXIgPSBuZXcgQ21zU29tZXRoaW5nRmlsdGVyKCk7Ci8vICRpbWcyID0gJGZpbHRlci0+dHJhbnNmb3JtKCRpbWcxKTsKLy8gJGltZzItPnNhdmUoKTsKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImageFilterBase.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgphYnN0cmFjdCBjbGFzcyBDR0ltYWdlRmlsdGVyQmFzZQp7CiAgLy8gcmV0dXJucyBhIENHSW1hZ2VCYXNlIG9iamVjdAogIGFic3RyYWN0IGZ1bmN0aW9uIHRyYW5zZm9ybShDR0ltYWdlQmFzZSAkaW1hZ2UpOwp9CgoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Blur_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX0JsdXJfRmlsdGVyIGV4dGVuZHMgQ0dJbWFnZUZpbHRlckJhc2UKewogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgewogICAgLy8gbm90aGluZyBoZXJlLgogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2Zvcm0oQ0dJbWFnZUJhc2UgJHNyYykKICB7CiAgICAkX2Rlc3QgPSBuZXcgQ0dJbWFnZUJhc2UoJHNyYyk7CiAgICAkcmVzID0gaW1hZ2VmaWx0ZXIoJF9kZXN0Wydyc3JjJ10sSU1HX0ZJTFRFUl9HQVVTU0lBTl9CTFVSKTsKCiAgICBpZiggISRyZXMgKQogICAgICB7Cgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdFcnJvciBhcHBseWluZyBmaWx0ZXIgJy5JTUdfRklMVEVSX0dBVVNTSUFOX0JMVVIpOwogICAgICB9CiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Brightness_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX0JyaWdodG5lc3NfRmlsdGVyIGV4dGVuZHMgQ0dJbWFnZUZpbHRlckJhc2UKewogIHByaXZhdGUgJF9icmlnaHRuZXNzID0gMDsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KC8qIHZhcmlhYmxlIGFyZ3VtZW50cyAqLykKICB7CiAgICBpZiggZnVuY19udW1fYXJncygpICE9IDEgKQogICAgICB7Cgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIGFyZ3VtZW50cyB0byAnLmdldF9jbGFzcygkdGhpcykpOwogICAgICB9CgogICAgJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7CiAgICAkYXJncyA9ICRhcmdzWzBdOwogICAgaWYoIGlzX2FycmF5KCRhcmdzKSApCiAgICAgIHsKCSR0aGlzLT5fYnJpZ2h0bmVzcyA9IChpbnQpJGFyZ3NbMF07CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHRoaXMtPl9icmlnaHRuZXNzID0gJGFyZ3M7CiAgICAgIH0KICAgIC8vIG5vdGhpbmcgaGVyZS4KICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gdHJhbnNmb3JtKENHSW1hZ2VCYXNlICRzcmMpCiAgewogICAgJF9kZXN0ID0gbmV3IENHSW1hZ2VCYXNlKCRzcmMpOwogICAgJHJlcyA9IGltYWdlZmlsdGVyKCRfZGVzdFsncnNyYyddLElNR19GSUxURVJfQlJJR0hUTkVTUywkdGhpcy0+X2JyaWdodG5lc3MpOwoKICAgIGlmKCAhJHJlcyApCiAgICAgIHsKCXRocm93IG5ldyBFeGNlcHRpb24oJ0Vycm9yIGFwcGx5aW5nIGZpbHRlciAnLklNR19GSUxURVJfQlJJR0hUTkVTUyk7CiAgICAgIH0KICAgIHJldHVybiAkX2Rlc3Q7CiAgfQp9CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Colorize_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX0NvbG9yaXplX0ZpbHRlciBleHRlbmRzIENHSW1hZ2VGaWx0ZXJCYXNlCnsKICBwcml2YXRlICRfYXJncyA9IGFycmF5KDAsMCwwLDApOwoKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoLyogdmFyaWFibGUgYXJndW1lbnRzICovKQogIHsKICAgICRhcmdzID0gZnVuY19nZXRfYXJncygpOwogICAgaWYoIGlzX2FycmF5KCRhcmdzWzBdKSApCiAgICAgIHsKCSRhcmdzID0gJGFyZ3NbMF07CiAgICAgIH0KCiAgICBmb3IoICRpID0gMDsgJGkgPCBtaW4oY291bnQoJHRoaXMtPl9hcmdzKSxjb3VudCgkYXJncykpOyAkaSsrICkKICAgICAgewoJJHRoaXMtPl9hcmdzWyRpXSA9IG1pbigyNTUsbWF4KDAsKGludCkkYXJnc1skaV0pKTsKICAgICAgfQogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2Zvcm0oQ0dJbWFnZUJhc2UgJHNyYykKICB7CiAgICAkX2Rlc3QgPSBuZXcgQ0dJbWFnZUJhc2UoJHNyYyk7CiAgICAkdG1wID0gJHRoaXMtPl9hcmdzOwogICAgJHJlcyA9IGltYWdlZmlsdGVyKCRfZGVzdFsncnNyYyddLElNR19GSUxURVJfQ09MT1JJWkUsJHRtcFswXSwkdG1wWzFdLCR0bXBbMl0sJHRtcFszXSk7CgogICAgaWYoICEkcmVzICkKICAgICAgewoJdGhyb3cgbmV3IEV4Y2VwdGlvbignRXJyb3IgYXBwbHlpbmcgZmlsdGVyICcuSU1HX0ZJTFRFUl9DT0xPUklaRSk7CiAgICAgIH0KICAgIHJldHVybiAkX2Rlc3Q7CiAgfQp9CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Contrast_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX0NvbnRyYXN0X0ZpbHRlciBleHRlbmRzIENHSW1hZ2VGaWx0ZXJCYXNlCnsKICBwcml2YXRlICRfY29udHJhc3QgPSAwOwoKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoLyogdmFyaWFibGUgYXJndW1lbnRzICovKQogIHsKICAgIGlmKCBmdW5jX251bV9hcmdzKCkgIT0gMSApCiAgICAgIHsKCXRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgYXJndW1lbnRzIHRvICcuZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgIH0KCiAgICAkYXJncyA9IGZ1bmNfZ2V0X2FyZ3MoKTsKICAgICRhcmdzID0gJGFyZ3NbMF07CiAgICBpZiggaXNfYXJyYXkoJGFyZ3MpICkKICAgICAgewoJJHRoaXMtPl9jb250cmFzdCA9IChpbnQpJGFyZ3NbMF07CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHRoaXMtPl9jb250cmFzdCA9ICRhcmdzOwogICAgICB9CiAgICAvLyBub3RoaW5nIGhlcmUuCiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShDR0ltYWdlQmFzZSAkc3JjKQogIHsKICAgICRfZGVzdCA9IG5ldyBDR0ltYWdlQmFzZSgkc3JjKTsKICAgICRyZXMgPSBpbWFnZWZpbHRlcigkX2Rlc3RbJ3JzcmMnXSxJTUdfRklMVEVSX0NPTlRSQVNULCR0aGlzLT5fY29udHJhc3QpOwoKICAgIGlmKCAhJHJlcyApCiAgICAgIHsKCXRocm93IG5ldyBFeGNlcHRpb24oJ0Vycm9yIGFwcGx5aW5nIGZpbHRlciAnLklNR19GSUxURVJfQ09OVFJBU1QpOwogICAgICB9CiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Crop2size_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX0Nyb3Ayc2l6ZV9GaWx0ZXIgZXh0ZW5kcyBDR0ltYWdlRmlsdGVyQmFzZQp7CiAgcHJpdmF0ZSAkX2Rlc3RfdyA9IDA7CiAgcHJpdmF0ZSAkX2Rlc3RfaCA9IDA7CiAgcHJpdmF0ZSAkX2xvYyA9ICdjJzsKICBzdGF0aWMgcHJpdmF0ZSAkX3ZhbGlkX2xvY3MgPSBhcnJheSgndGwnLCd0YycsJ3RyJywnY2wnLCdjJywnY2MnLCdjcicsJ2JsJywnYmMnLCdicicpOwoKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGlucHV0KQogIHsKICAgIGlmKCBjZ2VfYXJyYXk6OmlzX2hhc2goJGlucHV0KSApIHsKICAgICAgaWYoIGlzc2V0KCRpbnB1dFsnd2lkdGgnXSkgKSB7CgkkdGhpcy0+X2Rlc3RfdyA9IChpbnQpJGlucHV0Wyd3aWR0aCddOwoJJHRoaXMtPl9kZXN0X2ggPSAoaW50KSRpbnB1dFsnaGVpZ2h0J107CiAgICAgIH0KICAgICAgZWxzZSBpZiAoIGlzc2V0KCRpbnB1dFsndyddKSApIHsKCSR0aGlzLT5fZGVzdF93ID0gKGludCkkaW5wdXRbJ3cnXTsKCSR0aGlzLT5fZGVzdF9oID0gKGludCkkaW5wdXRbJ2gnXTsKICAgICAgfQogICAgICBpZiggaXNzZXQoJGlucHV0Wydsb2MnXSkgJiYgaW5fYXJyYXkoJGlucHV0Wydsb2MnXSxzZWxmOjokX3ZhbGlkX2xvY3MpICkgJHRoaXMtPl9sb2MgPSB0cmltKCRpbnB1dFsnbG9jJ10pOwogICAgfQogICAgZWxzZSBpZiggaXNfYXJyYXkoJGlucHV0KSAgKSB7CiAgICAgIGlmKCBjb3VudCgkaW5wdXQpID49IDIgKSB7CgkkdGhpcy0+X2Rlc3RfdyA9IChpbnQpdHJpbSgkaW5wdXRbMF0pOwoJJHRoaXMtPl9kZXN0X2ggPSAoaW50KXRyaW0oJGlucHV0WzFdKTsKCWlmKCBjb3VudCgkaW5wdXQpID49IDMgJiYgaW5fYXJyYXkoJGlucHV0WzJdLHNlbGY6OiRfdmFsaWRfbG9jcykgKSAkdGhpcy0+X2xvYyA9IHRyaW0oJGlucHV0WzJdKTsKICAgICAgfQogICAgfQoKICAgIGlmKCAkdGhpcy0+X2Rlc3RfaCA8PSAwIHx8ICR0aGlzLT5fZGVzdF93IDw9IDAgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIHZhbHVlcyBzcGVjaWZpZWQgZm9yIENyb3B0b2ZpdCBmaWx0ZXIgY29uc3RydWN0b3InKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2Zvcm0oQ0dJbWFnZUJhc2UgJHNyYykKICB7CiAgICAkZGVzdF93ID0gKGludCkkdGhpcy0+X2Rlc3RfdzsKICAgICRkZXN0X2ggPSAoaW50KSR0aGlzLT5fZGVzdF9oOwogICAgJHNyY193ICA9IChpbnQpJHNyY1snd2lkdGgnXTsKICAgICRzcmNfaCAgPSAoaW50KSRzcmNbJ2hlaWdodCddOwoKICAgICRkZXN0X3cgPSBtaW4oJHNyY193LCRkZXN0X3cpOwogICAgJGRlc3RfaCA9IG1pbigkc3JjX2gsJGRlc3RfaCk7CiAgICAKICAgIGlmKCAkZGVzdF93IDw9IDAgfHwgJGRlc3RfaCA8PSAwICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignSW52YWxpZCB2YWx1ZXMgc3BlY2lmaWVkIGZvciBDcm9wMiBmaWx0ZXInKTsKICAgIGlmKCAkZGVzdF93ID09ICRzcmNfdyAmJiAkZGVzdF9oID09ICRzcmNfaCApIHJldHVybiAkc3JjOwoKICAgICR4MCA9ICR5MCA9IDA7CiAgICBzd2l0Y2goIHN0cnRvbG93ZXIoJHRoaXMtPl9sb2MpICkgewogICAgY2FzZSAndGwnOgogICAgICAvLyB1c2UgZGVmYXVsdHMuCiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ3RjJzoKICAgICAgJHgwID0gZmxvb3IoICgkc3JjX3cgLSAkZGVzdF93KSAvIDIgKTsKICAgICAgYnJlYWs7CgogICAgY2FzZSAndHInOgogICAgICAkeDAgPSAkc3JjX3cgLSAkZGVzdF93OwogICAgICBicmVhazsKCiAgICBjYXNlICdjbCc6CiAgICAgICR5MCA9IGZsb29yKCAoJHNyY19oIC0gJGRlc3RfaCkgLyAyICk7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ2MnOgogICAgY2FzZSAnY2MnOgogICAgICAkeDAgPSBmbG9vciggKCRzcmNfdyAtICRkZXN0X3cpIC8gMiApOwogICAgICAkeTAgPSBmbG9vciggKCRzcmNfaCAtICRkZXN0X2gpIC8gMiApOwogICAgICBicmVhazsKCiAgICBjYXNlICdjcic6CiAgICAgICR4MCA9ICRzcmNfdyAtICRkZXN0X3c7CiAgICAgICR5MCA9IGZsb29yKCAoJHNyY19oIC0gJGRlc3RfaCkgLyAyICk7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ2JsJzoKICAgICAgJHkwID0gJHNyY19oIC0gJGRlc3RfaDsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnYmMnOgogICAgICAkeDAgPSBmbG9vciggKCRzcmNfdyAtICRkZXN0X3cpIC8gMiApOwogICAgICAkeTAgPSAkc3JjX2ggLSAkZGVzdF9oOwogICAgICBicmVhazsKCiAgICBjYXNlICdicic6CiAgICAgICR4MCA9ICRzcmNfdyAtICRkZXN0X3c7CiAgICAgICR5MCA9ICRzcmNfaCAtICRkZXN0X2g7CiAgICAgIGJyZWFrOwogICAgfQoKICAgICRfZGVzdCA9IG5ldyBDR0ltYWdlQmFzZShhcnJheSgkc3JjWyd0eXBlJ10sJGRlc3RfdywkZGVzdF9oKSk7CiAgICAkcmVzID0gaW1hZ2Vjb3B5KCRfZGVzdFsncnNyYyddLCRzcmNbJ3JzcmMnXSwwLDAsJHgwLCR5MCwkZGVzdF93LCRkZXN0X2gpOwogICAgaWYoICRyZXMgPT09IEZBTFNFICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignY3JvcDIgZmFpbGVkJyk7CiAgICByZXR1cm4gJF9kZXN0OwogIH0KCn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Croptofit_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIENHSW1hZ2VfQ3JvcHRvZml0X0ZpbHRlciBleHRlbmRzIENHSW1hZ2VGaWx0ZXJCYXNlCnsKICBwcml2YXRlICRfZGVzdF93ID0gMDsKICBwcml2YXRlICRfZGVzdF9oID0gMDsKICBwcml2YXRlICRfbG9jID0gJ2MnOwogIHByaXZhdGUgJF91cHNjYWxlID0gMDsKICBzdGF0aWMgcHJpdmF0ZSAkX3ZhbGlkX2xvY3MgPSBhcnJheSgndGwnLCd0YycsJ3RyJywnY2wnLCdjJywnY3InLCdibCcsJ2JjJywnYnInKTsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRpbnB1dCkKICB7CiAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR1NtYXJ0SW1hZ2UnKTsKICAgICR0aGlzLT5fbG9jID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnY3JvcHRvZml0X2RlZmF1bHRfbG9jJywnYycpOwogICAgaWYoIGNnZV9hcnJheTo6aXNfaGFzaCgkaW5wdXQpICkgewogICAgICBpZiggaXNzZXQoJGlucHV0Wyd3aWR0aCddKSApIHsKJHRoaXMtPl9kZXN0X3cgPSAoaW50KSRpbnB1dFsnd2lkdGgnXTsKCSR0aGlzLT5fZGVzdF9oID0gKGludCkkaW5wdXRbJ2hlaWdodCddOwogICAgICB9CiAgICAgIGVsc2UgaWYgKCBpc3NldCgkaW5wdXRbJ3cnXSkgKSB7CgkkdGhpcy0+X2Rlc3RfdyA9IChpbnQpJGlucHV0Wyd3J107CgkkdGhpcy0+X2Rlc3RfaCA9IChpbnQpJGlucHV0WydoJ107CiAgICAgIH0KICAgICAgaWYoIGlzc2V0KCRpbnB1dFsnbG9jJ10pICYmIGluX2FycmF5KCRpbnB1dFsnbG9jJ10sc2VsZjo6JF92YWxpZF9sb2NzKSApICR0aGlzLT5fbG9jID0gJGlucHV0Wydsb2MnXTsKICAgICAgaWYoIGlzc2V0KCRpbnB1dFsndXBzY2FsZSddKSApICR0aGlzLT5fdXBzY2FsZSA9IChpbnQpJGlucHV0Wyd1cHNjYWxlJ107CiAgICB9CiAgICBlbHNlIGlmKCBpc19hcnJheSgkaW5wdXQpICApIHsKICAgICAgaWYoIGNvdW50KCRpbnB1dCkgPj0gMiApIHsKCSR0aGlzLT5fZGVzdF93ID0gKGludCl0cmltKCRpbnB1dFswXSk7CgkkdGhpcy0+X2Rlc3RfaCA9IChpbnQpdHJpbSgkaW5wdXRbMV0pOwoJaWYoIGNvdW50KCRpbnB1dCkgPj0gMyAmJiBpbl9hcnJheSgkaW5wdXRbMl0sc2VsZjo6JF92YWxpZF9sb2NzKSApICR0aGlzLT5fbG9jID0gJGlucHV0WzJdOwoJaWYoIGNvdW50KCRpbnB1dCkgPj0gNCApICR0aGlzLT5fdXBzY2FsZSA9IChpbnQpJGlucHV0WzNdOwogICAgICB9CiAgICB9CgogICAgaWYoICEkdGhpcy0+X3Vwc2NhbGUgKSB7CiAgICAgICR0aGlzLT5fZGVzdF93ID0gY2dzaV91dGlsczo6dHJpbV90b19kZXZpY2UoJ3dpZHRoJywkdGhpcy0+X2Rlc3Rfdyk7CiAgICAgICR0aGlzLT5fZGVzdF9oID0gY2dzaV91dGlsczo6dHJpbV90b19kZXZpY2UoJ2hlaWdodCcsJHRoaXMtPl9kZXN0X2gpOwogICAgfQoKICAgIGlmKCAkdGhpcy0+X2Rlc3RfaCA8PSAwIHx8ICR0aGlzLT5fZGVzdF93IDw9IDAgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIHZhbHVlcyBzcGVjaWZpZWQgZm9yIENyb3B0b2ZpdCBmaWx0ZXIgY29uc3RydWN0b3InKTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gdHJhbnNmb3JtKENHSW1hZ2VCYXNlICRzcmMpCiAgewogICAgaWYoICEkdGhpcy0+X3Vwc2NhbGUgKSB7CiAgICAgIC8vIHByZXZlbnQgYW55IHVwc2NhbGluZwogICAgICAkdGhpcy0+X2Rlc3RfdyA9IG1pbigkdGhpcy0+X2Rlc3Rfdywkc3JjWyd3aWR0aCddKTsKICAgICAgJHRoaXMtPl9kZXN0X2ggPSBtaW4oJHRoaXMtPl9kZXN0X2gsJHNyY1snaGVpZ2h0J10pOwogICAgfQoKICAgIC8vCiAgICAvLyBub3RlOiAgdGhpcyBjb2RlIGRldmVsb3BlZCBieSB1c2luZyB0aGUgZm9sbG93aW5nIHBhZ2UgYXMgYSByZWZlcmVuY2UKICAgIC8vIGh0dHA6Ly85MTEtbmVlZC1jb2RlLWhlbHAuYmxvZ3Nwb3QuY29tLzIwMDkvMDQvY3JvcC10by1maXQtaW1hZ2UtdXNpbmctYXNwcGhwLmh0bWwKICAgIC8vCiAgICAkc3JjX3JhdGlvID0gKGZsb2F0KSRzcmNbJ3dpZHRoJ10gLyAoZmxvYXQpJHNyY1snaGVpZ2h0J107CiAgICAkZGVzdF9yYXRpbyA9IChmbG9hdCkkdGhpcy0+X2Rlc3RfdyAvIChmbG9hdCkkdGhpcy0+X2Rlc3RfaDsKCiAgICAvLyBkZXRlcm1pbmUgdGhlIHNpemUgb2YgdGhlIHRlbXAgaW1hZ2UgdGhhdCBmaXRzIGludG8KICAgIC8vIHRoZSBkZXNpcmVkIGFyZWEgYnkgYXQgbGVhc3Qgb25lIGRpbWVuc2lvbi4KICAgICRuZXdfaCA9ICcnOwogICAgJG5ld193ID0gJyc7CiAgICBpZiggJHNyY19yYXRpbyA+PSAkZGVzdF9yYXRpbyApIHsKICAgICAgJG5ld19oID0gKGludCkgJHRoaXMtPl9kZXN0X2g7CiAgICAgICRuZXdfdyA9IChpbnQpIGNlaWwoJHRoaXMtPl9kZXN0X2ggKiAkc3JjX3JhdGlvKTsKICAgIH0KICAgIGVsc2UgewogICAgICAvL2Vsc2UgaWYoICRzcmNfcmF0aW8gPCAkZGVzdF9yYXRpbyApIHsKICAgICAgJG5ld193ID0gKGludCkgJHRoaXMtPl9kZXN0X3c7CiAgICAgICRuZXdfaCA9IChpbnQpIGNlaWwoJHRoaXMtPl9kZXN0X3cgLyAkc3JjX3JhdGlvICk7CiAgICB9CgogICAgLy8gZ2V0IHRoZSB0cmFuc3BhcmVudCBjb2xvciBvZiB0aGUgc291cmNlIGltYWdlLgogICAgJHRtcF9yc3JjID0gbnVsbDsKICAgICR0YyA9IGltYWdlY29sb3JhdCgkc3JjWydyc3JjJ10sMCwkc3JjWydoZWlnaHQnXS0xKTsKICAgICR0ciA9ICR0ZyA9ICR0YiA9IDA7ICR0YSA9IDEyNzsKICAgIGlmKCAkdGMgPiAwICkgewogICAgICAkdG1wID0gaW1hZ2Vjb2xvcnNmb3JpbmRleCgkc3JjWydyc3JjJ10sJHRjKTsKICAgICAgJHRyID0gJHRtcFsncmVkJ107CiAgICAgICR0ZyA9ICR0bXBbJ2dyZWVuJ107CiAgICAgICR0YiA9ICR0bXBbJ2JsdWUnXTsKICAgICAgJHRhID0gJHRtcFsnYWxwaGEnXTsKICAgIH0KCiAgICBpZiggJG5ld193ID09ICRzcmNbJ3dpZHRoJ10gJiYgJG5ld19oID09ICRzcmNbJ2hlaWdodCddICkgewogICAgICAkdG1wX3JzcmMgPSAkc3JjWydyc3JjJ107CiAgICB9CiAgICBlbHNlIHsKICAgICAgLy8gY3JlYXRlIHRlbXBvcmFyeSB0cmFuc3BhcmVudCBpbWFnZQogICAgICAkdG1wX3JzcmMgPSBpbWFnZWNyZWF0ZXRydWVjb2xvcigkbmV3X3csJG5ld19oKTsKICAgICAgaW1hZ2VhbHBoYWJsZW5kaW5nKCR0bXBfcnNyYywgVFJVRSk7CiAgICAgICR0cmFuc3BhcmVudCA9IGltYWdlY29sb3JhbGxvY2F0ZWFscGhhKCR0bXBfcnNyYywgJHRyLCAkdGcsICR0YiwgJHRhKTsKICAgICAgaW1hZ2Vjb2xvcnRyYW5zcGFyZW50KCR0bXBfcnNyYywkdHJhbnNwYXJlbnQpOwogICAgICBpbWFnZWZpbGwoJHRtcF9yc3JjLCAwLCAwLCAkdHJhbnNwYXJlbnQpOwogICAgfQoKICAgIC8vIHJlc2l6ZSB0aGUgYmlnIGltYWdlIGludG8gdGhlIHRlbXBvcmFyeSB0cmFuc3BhcmVudCBpbWFnZQogICAgJHJlcyA9IGltYWdlY29weXJlc2FtcGxlZCgkdG1wX3JzcmMsJHNyY1sncnNyYyddLDAsMCwwLDAsJG5ld193LCRuZXdfaCwkc3JjWyd3aWR0aCddLCRzcmNbJ2hlaWdodCddKTsKICAgIGlmKCAkcmVzID09PSBGQUxTRSApIHRocm93IG5ldyBFeGNlcHRpb24oJ0Nyb3B0b2ZpdCAtIHN0YWdlIDEgLSBmYWlsZWQnKTsKCiAgICAvLyBjYWxjdWxhdGUgdGhlIG9mZnNldCBpbnRvIHRoZSBkZXN0aW5hdGlvbiBpYW1nZS4KICAgIHN3aXRjaCggc3RydG9sb3dlcigkdGhpcy0+X2xvYykgKSB7CiAgICBjYXNlICd0bCc6CiAgICAgICR4MCA9IDA7CiAgICAgICR5MCA9IDA7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ3RjJzoKICAgICAgJHgwID0gKGludCkoICRuZXdfdyAtICR0aGlzLT5fZGVzdF93ICkgLyAyOwogICAgICAkeTAgPSAwOwogICAgICBicmVhazsKCiAgICBjYXNlICd0cic6CiAgICAgICR4MCA9IChpbnQpKCAkbmV3X3cgLSAkdGhpcy0+X2Rlc3RfdyApOwogICAgICAkeTAgPSAwOwogICAgICBicmVhazsKCiAgICBjYXNlICdjbCc6CiAgICAgICR4MCA9IDA7CiAgICAgICR5MCA9IChpbnQpKCAkbmV3X2ggLSAkdGhpcy0+X2Rlc3RfaCApIC8gMjsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnY3InOgogICAgICAkeDAgPSAoaW50KSggJG5ld193IC0gJHRoaXMtPl9kZXN0X3cgKTsKICAgICAgJHkwID0gKGludCkoICRuZXdfaCAtICR0aGlzLT5fZGVzdF9oICkgLyAyOwogICAgICBicmVhazsKCiAgICBjYXNlICdibCc6CiAgICAgICR4MCA9IDA7CiAgICAgICR5MCA9IChpbnQpKCAkbmV3X2ggLSAkdGhpcy0+X2Rlc3RfaCApOwogICAgICBicmVhazsKCiAgICBjYXNlICdiYyc6CiAgICAgICR4MCA9IChpbnQpKCAkbmV3X3cgLSAkdGhpcy0+X2Rlc3RfdyApIC8gMjsKICAgICAgJHkwID0gKGludCkoICRuZXdfaCAtICR0aGlzLT5fZGVzdF9oICk7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ2JyJzoKICAgICAgJHgwID0gKGludCkoICRuZXdfdyAtICR0aGlzLT5fZGVzdF93ICk7CiAgICAgICR5MCA9IChpbnQpKCAkbmV3X2ggLSAkdGhpcy0+X2Rlc3RfaCApOwogICAgICBicmVhazsKCiAgICBjYXNlICdjJzoKICAgIGRlZmF1bHQ6CiAgICAgIC8vIGNlbnRlcgogICAgICAkeDAgPSAoaW50KSggJG5ld193IC0gJHRoaXMtPl9kZXN0X3cgKSAvIDI7CiAgICAgICR5MCA9IChpbnQpKCAkbmV3X2ggLSAkdGhpcy0+X2Rlc3RfaCApIC8gMjsKICAgICAgYnJlYWs7CiAgICB9CgogICAgLy8gY3JlYXRlIGRlc3RpbmF0aW9uIGltYWdlIGF0IHRoZSBkZXNpcmVkIHRodW1iIHNpemUuCiAgICAvLyRfZGVzdCA9IG5ldyBDR0ltYWdlQmFzZShhcnJheSgnaW1hZ2UvcG5nJywkdGhpcy0+X2Rlc3RfdywkdGhpcy0+X2Rlc3RfaCkpOwogICAgJF9kZXN0ID0gbmV3IENHSW1hZ2VCYXNlKGFycmF5KCRzcmNbJ3R5cGUnXSwkdGhpcy0+X2Rlc3RfdywkdGhpcy0+X2Rlc3RfaCkpOwoKICAgIC8vIHNldCB0aGlzIHRyYW5zcGFyZW50IGNvbG9yIGludG8gaW50byB0aGUgZGVzdCBpbWFnZS4KICAgICR0cmFuc3BhcmVudDIgPSBpbWFnZWNvbG9yYWxsb2NhdGVhbHBoYSgkX2Rlc3RbJ3JzcmMnXSwgJHRyLCAkdGcsICR0YiwgJHRhKTsKICAgIGltYWdlY29sb3J0cmFuc3BhcmVudCgkX2Rlc3RbJ3JzcmMnXSwkdHJhbnNwYXJlbnQyKTsKICAgIGltYWdlZmlsbCgkX2Rlc3RbJ3JzcmMnXSwgMCwgMCwgJHRyYW5zcGFyZW50Mik7CgogICAgLy8gY29weSB0aGUgdGVtcCBpbWFnZSBpbnRvIHRoZSBkZXN0IGltYWdlLgogICAgaW1hZ2VhbHBoYWJsZW5kaW5nKCRfZGVzdFsncnNyYyddLFRSVUUpOwogICAgJHJlcyA9IGltYWdlY29weSgkX2Rlc3RbJ3JzcmMnXSwkdG1wX3JzcmMsMCwwLCR4MCwkeTAsJG5ld193LCRuZXdfaCk7CiAgICBpZiggJHJlcyA9PT0gRkFMU0UgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdDcm9wdG9maXQgLSBzdGFnZSAyIC0gZmFpbGVkJyk7CiAgICBpbWFnZWRlc3Ryb3koJHRtcF9yc3JjKTsKICAgIHJldHVybiAkX2Rlc3Q7CiAgfQoKfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Crop_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX0Nyb3BfRmlsdGVyIGV4dGVuZHMgQ0dJbWFnZUZpbHRlckJhc2UKewogIGNvbnN0IEFMSUdOX1RPUCAgICA9ICd0b3AnOwogIGNvbnN0IEFMSUdOX0NFTlRFUiA9ICdjZW50ZXInOwogIGNvbnN0IEFMSUdOX0JPVFRPTSA9ICdib3R0b20nOwogIGNvbnN0IEFMSUdOX0xFRlQgICA9ICdsZWZ0JzsKICBjb25zdCBBTElHTl9SSUdIVCAgPSAncmlnaHQnOwoKICBwcml2YXRlICRfcGVyY2VudCA9IDUwOwogIHByaXZhdGUgJF9oX2FsaWduID0gc2VsZjo6QUxJR05fQ0VOVEVSOwogIHByaXZhdGUgJF92X2FsaWduID0gc2VsZjo6QUxJR05fQ0VOVEVSOwogICAgCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRpbnB1dCkKICB7CiAgICAkcGVyY2VudCA9IDUwOwogICAgJGhfYWxpZ24gPSBDR0ltYWdlX0Nyb3BfRmlsdGVyOjpBTElHTl9DRU5URVI7CiAgICAkdl9hbGlnbiA9IENHSW1hZ2VfQ3JvcF9GaWx0ZXI6OkFMSUdOX0NFTlRFUjsKCiAgICBpZiggY2dlX2FycmF5Ojppc19oYXNoKCRpbnB1dCkgKSB7CiAgICAgICRwZXJjZW50ID0gKGludCkkaW5wdXRbJ3BlcmNlbnQnXTsKICAgICAgJGhfYWxpZ24gPSB0cmltKCRwYXJhbXNbJ2gnXSk7CiAgICAgICR2X2FsaWduID0gdHJpbSgkcGFyYW1zWyd2J10pOwogICAgfQogICAgZWxzZSBpZiggaXNfYXJyYXkoJGlucHV0KSApIHsKICAgICAgaWYoIGNvdW50KCRpbnB1dCkgPiAxICkgJHBlcmNlbnQgPSAoaW50KSRpbnB1dFswXTsKICAgICAgaWYoIGNvdW50KCRpbnB1dCkgPT0gMyApIHsKCSRoX2FsaWduID0gdHJpbSgkaW5wdXRbMV0pOwoJJHZfYWxpZ24gPSB0cmltKCRpbnB1dFsyXSk7CiAgICAgIH0KICAgIH0KICAgIAogICAgJHRoaXMtPl9wZXJjZW50ID0gbWluKDEwMCxtYXgoMSwkcGVyY2VudCkpOwogICAgc3dpdGNoKCRoX2FsaWduKSB7CiAgICBjYXNlICctMSc6CiAgICBjYXNlICdsZWZ0JzoKICAgIGNhc2UgJ2wnOgogICAgICAkdGhpcy0+X2hfYWxpZ24gPSBzZWxmOjpBTElHTl9MRUZUOwogICAgICBicmVhazsKCiAgICBjYXNlICcwJzoKICAgIGNhc2UgJ2MnOgogICAgY2FzZSAnY2VudGVyJzoKICAgICAgJHRoaXMtPl9oX2FsaWduID0gc2VsZjo6QUxJR05fQ0VOVEVSOwogICAgICBicmVhazsKCiAgICBjYXNlICcxJzoKICAgIGNhc2UgJ3InOgogICAgY2FzZSAncmlnaHQnOgogICAgICAkdGhpcy0+X2hfYWxpZ24gPSBzZWxmOjpBTElHTl9SSUdIVDsKICAgICAgYnJlYWs7CgogICAgZGVmYXVsdDoKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignSW52YWxpZCB2YWx1ZSAnLiRoX2FsaWduLicgZm9yIGhvcml6b250YWwgYWxpZ25tZW50Jyk7CiAgICB9CgogICAgc3dpdGNoKCR2X2FsaWduKSB7CiAgICBjYXNlICctMSc6CiAgICBjYXNlICd0JzoKICAgIGNhc2UgJ3RvcCc6CiAgICAgICR0aGlzLT5fdl9hbGlnbiA9IHNlbGY6OkFMSUdOX1RPUDsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnMCc6CiAgICBjYXNlICdjJzoKICAgIGNhc2UgJ2NlbnRlcic6CiAgICAgICR0aGlzLT5fdl9hbGlnbiA9IHNlbGY6OkFMSUdOX0NFTlRFUjsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnMSc6CiAgICBjYXNlICdiJzoKICAgIGNhc2UgJ2JvdHRvbSc6CiAgICAgICR0aGlzLT5fdl9hbGlnbiA9IHNlbGY6OkFMSUdOX0JPVFRPTTsKICAgICAgYnJlYWs7CgogICAgZGVmYXVsdDoKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignSW52YWxpZCB2YWx1ZSAnLiRoX2FsaWduLicgZm9yIGhvcml6b250YWwgYWxpZ25tZW50Jyk7CiAgICB9CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShDR0ltYWdlQmFzZSAkc3JjKQogIHsKICAgICRuZXdfdyA9IChpbnQpKCRzcmNbJ3dpZHRoJ10gKiAkdGhpcy0+X3BlcmNlbnQgLyAxMDAuMCk7CiAgICAkbmV3X2ggPSAoaW50KSgkc3JjWydoZWlnaHQnXSAqICR0aGlzLT5fcGVyY2VudCAvIDEwMC4wKTsKCiAgICAkc3JjX3ggPSAwOwogICAgc3dpdGNoKCAkdGhpcy0+X2hfYWxpZ24gKSB7CiAgICBjYXNlIHNlbGY6OkFMSUdOX0xFRlQ6CiAgICAgICRzcmNfeCA9IDA7CiAgICAgIGJyZWFrOwoKICAgIGNhc2Ugc2VsZjo6QUxJR05fQ0VOVEVSOgogICAgICAkc3JjX3ggPSAoaW50KSgoJHNyY1snd2lkdGgnXSAtICRuZXdfdykgLyAyKTsKICAgICAgYnJlYWs7CgogICAgY2FzZSBzZWxmOjpBTElHTl9SSUdIVDoKICAgICAgJHNyY194ID0gJHNyY1snd2lkdGgnXSAtICRuZXdfdzsKICAgICAgYnJlYWs7CiAgICB9CgogICAgJHNyY195ID0gMDsKICAgIHN3aXRjaCggJHRoaXMtPl92X2FsaWduICkgewogICAgY2FzZSBzZWxmOjpBTElHTl9UT1A6CiAgICAgICRzcmNfeSA9IDA7CiAgICAgIGJyZWFrOwoKICAgIGNhc2Ugc2VsZjo6QUxJR05fQ0VOVEVSOgogICAgICAkc3JjX3kgPSAoaW50KSgoJHNyY1snaGVpZ2h0J10gLSAkbmV3X2gpIC8gMik7CiAgICAgIGJyZWFrOwoKICAgIGNhc2Ugc2VsZjo6QUxJR05fQk9UVE9NOgogICAgICAkc3JjX3kgPSAkc3JjWydoZWlnaHQnXSA9ICRuZXdfaDsKICAgICAgYnJlYWs7CiAgICB9CgogICAgJF9kZXN0ID0gbmV3IENHSW1hZ2VCYXNlKGFycmF5KCRzcmNbJ3R5cGUnXSwkbmV3X3csJG5ld19oKSk7CiAgICAkcmVzID0gaW1hZ2Vjb3B5cmVzYW1wbGVkKCRfZGVzdFsncnNyYyddLCRzcmNbJ3JzcmMnXSwwLDAsJHNyY194LCRzcmNfeSwkbmV3X3csJG5ld19oLCRuZXdfdywkbmV3X2gpOwogICAgaWYoICRyZXMgPT09IEZBTFNFICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignY3JvcCBmYWlsZWQnKTsKCiAgICByZXR1cm4gJF9kZXN0OwogIH0KCn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Edgedetect_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX0VkZ2VkZXRlY3RfRmlsdGVyIGV4dGVuZHMgQ0dJbWFnZUZpbHRlckJhc2UKewogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgewogICAgLy8gbm90aGluZyBoZXJlLgogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2Zvcm0oQ0dJbWFnZUJhc2UgJHNyYykKICB7CiAgICAkX2Rlc3QgPSBuZXcgQ0dJbWFnZUJhc2UoJHNyYyk7CiAgICAkcmVzID0gaW1hZ2VmaWx0ZXIoJF9kZXN0Wydyc3JjJ10sSU1HX0ZJTFRFUl9FREdFREVURUNUKTsKCiAgICBpZiggISRyZXMgKQogICAgICB7Cgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdFcnJvciBhcHBseWluZyBmaWx0ZXIgJy5JTUdfRklMVEVSX0VER0VERVRFQ1QpOwogICAgICB9CiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Emboss_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX0VtYm9zc19GaWx0ZXIgZXh0ZW5kcyBDR0ltYWdlRmlsdGVyQmFzZQp7CiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkKICB7CiAgICAvLyBub3RoaW5nIGhlcmUuCiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShDR0ltYWdlQmFzZSAkc3JjKQogIHsKICAgICRfZGVzdCA9IG5ldyBDR0ltYWdlQmFzZSgkc3JjKTsKICAgICRyZXMgPSBpbWFnZWZpbHRlcigkX2Rlc3RbJ3JzcmMnXSxJTUdfRklMVEVSX0VNQk9TUyk7CgogICAgaWYoICEkcmVzICkKICAgICAgewoJdGhyb3cgbmV3IEV4Y2VwdGlvbignRXJyb3IgYXBwbHlpbmcgZmlsdGVyICcuSU1HX0ZJTFRFUl9FTUJPU1MpOwogICAgICB9CiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Flip_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovKioKICogRmlsdGVyIGNsYXNzIGZvciBob3Jpem9udGFsbHkgZmxpcHBpbmcgYW4gaW1hZ2UuCiAqIAogKiBAYXV0aG9yIFJvYmVydCBDYW1wYmVsbCA8Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZz4KICogQHBhY2thZ2UgQ0dTbWFydEltYWdlCiAqLwpjbGFzcyBDR0ltYWdlX0ZsaXBfRmlsdGVyIGV4dGVuZHMgQ0dJbWFnZUZpbHRlckJhc2UKewogIHByaXZhdGUgJF9tb2RlOwoKICBwdWJsaWMgZnVuY3Rpb24gY29uc3RydWN0KCkKICB7CiAgICBpZiggZnVuY19udW1fYXJncygpICE9IDEgKSB7CiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgYXJndW1lbnRzIHRvICcuZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICB9CgogICAgJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7CiAgICAkYXJncyA9ICRhcmdzWzBdOwogICAgaWYoIGlzX2FycmF5KCRhcmdzKSApIHsKICAgICAgJHRoaXMtPl9tb2RlID0gKGludCkkYXJnc1swXTsKICAgIH0KICAgIGVsc2UgewogICAgICAkdGhpcy0+X21vZGUgPSAkYXJnczsKICAgIH0KICAgICR0aGlzLT5fbW9kZSA9IG1heCgwLCR0aGlzLT5fbW9kZSk7CiAgICAkdGhpcy0+X21vZGUgPSBtaW4oMiwkdGhpcy0+X21vZGUpOwogIH0KCiAgLyoqCiAgICogVHJhbnNmb3JtIHRoZSBzcGVjaWZpZWQgaW1hZ2UgdXNpbmcgdGhlIHBhcmFtZXRlcnMgc2V0CiAgICoKICAgKiBAcGFyYW0gQ0dJbWFnZUJhc2UgVGhlIGltYWdlIHRvIHRyYW5zZm9ybQogICAqIEByZXR1cm4gQ0dJbWFnZUJhc2UgVGhlIHRyYW5zZm9ybWVkIGltYWdlLgogICAqLwogIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2Zvcm0oQ0dJbWFnZUJhc2UgJHNyYykKICB7CiAgICAkd2lkdGggICAgICAgPSAkc3JjWyd3aWR0aCddOwogICAgJGhlaWdodCAgICAgID0gJHNyY1snaGVpZ2h0J107CgogICAgJHNyY194ICAgICAgID0gMDsKICAgICRzcmNfeSAgICAgICA9IDA7CiAgICAkc3JjX3dpZHRoICAgPSAkd2lkdGg7CiAgICAkc3JjX2hlaWdodCAgPSAkaGVpZ2h0OwoKICAgIHN3aXRjaCAoIChpbnQpICRtb2RlICkgewogICAgY2FzZSAwOgogICAgICAkc3JjX3kgICAgICAgICAgICAgICAgPSAgICAkaGVpZ2h0OwogICAgICAkc3JjX2hlaWdodCAgICAgICAgICAgPSAgICAtJGhlaWdodDsKICAgICAgYnJlYWs7CgogICAgY2FzZSAxOgogICAgICAkc3JjX3ggICAgICAgICAgICAgICAgPSAgICAkd2lkdGg7CiAgICAgICRzcmNfd2lkdGggICAgICAgICAgICA9ICAgIC0kd2lkdGg7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgMjoKICAgICAgJHNyY194ICAgICAgICAgICAgICAgID0gICAgJHdpZHRoOwogICAgICAkc3JjX3kgICAgICAgICAgICAgICAgPSAgICAkaGVpZ2h0OwogICAgICAkc3JjX3dpZHRoICAgICAgICAgICAgPSAgICAtJHdpZHRoOwogICAgICAkc3JjX2hlaWdodCAgICAgICAgICAgPSAgICAtJGhlaWdodDsKICAgICAgYnJlYWs7CgogICAgZGVmYXVsdDoKICAgICAgcmV0dXJuICRpbWdzcmM7CiAgICB9CgogICAgJF9kZXN0ID0gbmV3IENHSW1hZ2VCYXNlKGFycmF5KCRzcmNbJ3R5cGUnXSwkd2lkdGgsJGhlaWdodCkpOwogICAgJHJlcyA9IGltYWdlY29weXJlc2FtcGxlZCAoICRfZGVzdFsncnNyYyddLCAkc3JjWydyc3JjJ10sIDAsIDAsICRzcmNfeCwgJHNyY195LCAkd2lkdGgsICRoZWlnaHQsICRzcmNfd2lkdGgsICRzcmNfaGVpZ2h0ICk7CiAgICBpZiggISRyZXMgKQl0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbWFnZSBUcmFuc2Zvcm0gRmFpbGVkJyk7CgogICAgcmV0dXJuICRfZGVzdDsKICB9Cn0KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Grayscale_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX0dyYXlzY2FsZV9GaWx0ZXIgZXh0ZW5kcyBDR0ltYWdlRmlsdGVyQmFzZQp7CiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkKICB7CiAgICAvLyBub3RoaW5nIGhlcmUuCiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShDR0ltYWdlQmFzZSAkc3JjKQogIHsKICAgICRfZGVzdCA9IG5ldyBDR0ltYWdlQmFzZSgkc3JjKTsKICAgICRyZXMgPSBpbWFnZWZpbHRlcigkX2Rlc3RbJ3JzcmMnXSxJTUdfRklMVEVSX0dSQVlTQ0FMRSk7CgogICAgaWYoICEkcmVzICkJdGhyb3cgbmV3IEV4Y2VwdGlvbignRXJyb3IgYXBwbHlpbmcgZmlsdGVyICcuSU1HX0ZJTFRFUl9HUkFZU0NBTEUpOwogICAgcmV0dXJuICRfZGVzdDsKICB9Cn0KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Meanremoval_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX01lYW5SZW1vdmFsX0ZpbHRlciBleHRlbmRzIENHSW1hZ2VGaWx0ZXJCYXNlCnsKICBwcml2YXRlICRfYXJncyA9IGFycmF5KDAsMCwwLDApOwoKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQogIHsKICAgIC8vIG5vdGhpbmcgaGVyZS4KICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gdHJhbnNmb3JtKENHSW1hZ2VCYXNlICRzcmMpCiAgewogICAgJF9kZXN0ID0gbmV3IENHSW1hZ2VCYXNlKCRzcmMpOwogICAgJHRtcCA9ICR0aGlzLT5fYXJnczsKICAgICRyZXMgPSBpbWFnZWZpbHRlcigkX2Rlc3RbJ3JzcmMnXSxJTUdfRklMVEVSX01FQU5fUkVNT1ZBTCk7CgogICAgaWYoICEkcmVzICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignRXJyb3IgYXBwbHlpbmcgZmlsdGVyICcuSU1HX0ZJTFRFUl9NRUFOX1JFTU9WQUwpOwogICAgcmV0dXJuICRfZGVzdDsKICB9Cn0KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Negate_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX05lZ2F0ZV9GaWx0ZXIgZXh0ZW5kcyBDR0ltYWdlRmlsdGVyQmFzZQp7CiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkKICB7CiAgICAvLyBub3RoaW5nIGhlcmUuCiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShDR0ltYWdlQmFzZSAkc3JjKQogIHsKICAgICRfZGVzdCA9IG5ldyBDR0ltYWdlQmFzZSgkc3JjKTsKICAgICR0Y29sb3IgPSBpbWFnZWNvbG9yYXQoJHNyY1sncnNyYyddLDAsJHNyY1snaGVpZ2h0J10tMSk7CiAgICAkcmVzID0gaW1hZ2VmaWx0ZXIoJF9kZXN0Wydyc3JjJ10sSU1HX0ZJTFRFUl9ORUdBVEUpOwogICAgaW1hZ2Vjb2xvcnRyYW5zcGFyZW50KCRfZGVzdFsncnNyYyddLCR0Y29sb3IpOwoKICAgIGlmKCAhJHJlcyApIHRocm93IG5ldyBFeGNlcHRpb24oJ0Vycm9yIGFwcGx5aW5nIGZpbHRlciAnLklNR19GSUxURVJfTkVHQVRFKTsKICAgIHJldHVybiAkX2Rlc3Q7CiAgfQp9CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Pixelate_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX1BpeGVsYXRlX0ZpbHRlciBleHRlbmRzIENHSW1hZ2VGaWx0ZXJCYXNlCnsKICBwcml2YXRlICRfc2l6ZSA9IDM7CiAgcHJpdmF0ZSAkX3BpeGVsYXRlID0gMDsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KC8qIHZhcmlhYmxlIGFyZ3VtZW50cyAqLykKICB7CiAgICAkYXJncyA9IGZ1bmNfZ2V0X2FyZ3MoKTsKICAgIGlmKCBpc19hcnJheSgkYXJnc1swXSkgJiYgY291bnQoJGFyZ3MpID09IDEgKQogICAgICAkYXJncyA9ICRhcmdzWzBdOwoKICAgIGlmKCBjb3VudCgkYXJncykgIT0gMiApCiAgICAgIHsKCXRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgYXJndW1lbnRzIHRvICcuZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgIH0KCiAgICAkdGhpcy0+X3NpemUgPSAoaW50KSRhcmdzWzBdOwogICAgJHRoaXMtPl9waXhlbGF0ZSA9IChpbnQpJGFyZ3NbMV07CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShDR0ltYWdlQmFzZSAkc3JjKQogIHsKICAgICRfZGVzdCA9IG5ldyBDR0ltYWdlQmFzZSgkc3JjKTsKICAgICRyZXMgPSBpbWFnZWZpbHRlcigkX2Rlc3RbJ3JzcmMnXSxJTUdfRklMVEVSX1BJWEVMQVRFLCR0aGlzLT5fcGl4ZWxhdGUpOwoKICAgIGlmKCAhJHJlcyApCiAgICAgIHsKCXRocm93IG5ldyBFeGNlcHRpb24oJ0Vycm9yIGFwcGx5aW5nIGZpbHRlciAnLklNR19GSUxURVJfUElYRUxBVEUpOwogICAgICB9CiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Reflect_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCi8qKgogKiBGaWx0ZXIgY2xhc3MgZm9yIG1ha2luZyByZWZsZWN0aW9uIGZvciBpbWFnZS4KICoKICogQGF1dGhvciBUYXBpbyBM9nl0dHkgPHN0aWtraUBjbXNtYWRlc2ltcGxlLm9yZz4KICogQHBhY2thZ2UgQ0dTbWFydEltYWdlCiAqLwpjbGFzcyBDR0ltYWdlX1JlZmxlY3RfRmlsdGVyIGV4dGVuZHMgQ0dJbWFnZUZpbHRlckJhc2UKewogIHByaXZhdGUgJF9yZWZsZWN0aW9uX2hlaWdodAkJCQk9IDEwMDsKICBwcml2YXRlICRfcmVmbGVjdGlvbl90cmFuc3BhcmVuY3kJCQk9IDA7CiAgcHJpdmF0ZSAkX2Rpdl9oZWlnaHQJCQkJCQk9IDA7CgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgewogICAgaWYoZnVuY19udW1fYXJncygpID4gMCkgewoKCQkkYXJncyA9IGZ1bmNfZ2V0X2FyZ3MoKTsKCQkkYXJncyA9IChhcnJheSkkYXJnc1swXTsKCgkJaWYoaXNzZXQoJGFyZ3NbMF0pKQoJCQkkdGhpcy0+X3JlZmxlY3Rpb25faGVpZ2h0ID0gKGludCkkYXJnc1swXTsKCgkJaWYoaXNzZXQoJGFyZ3NbMV0pKQoJCQkkdGhpcy0+X3JlZmxlY3Rpb25fdHJhbnNwYXJlbmN5ID0gKGludCkkYXJnc1sxXTsKCgkJaWYoaXNzZXQoJGFyZ3NbMl0pKQoJCQkkdGhpcy0+X2Rpdl9oZWlnaHQgPSAoaW50KSRhcmdzWzJdOwoJfQogIH0KCiAgLyoqCiAgICogVHJhbnNmb3JtIHRoZSBzcGVjaWZpZWQgaW1hZ2UgdXNpbmcgdGhlIHBhcmFtZXRlcnMgc2V0CiAgICoKICAgKiBAcGFyYW0gQ0dJbWFnZUJhc2UgVGhlIGltYWdlIHRvIHRyYW5zZm9ybQogICAqIEByZXR1cm4gQ0dJbWFnZUJhc2UgVGhlIHRyYW5zZm9ybWVkIGltYWdlLgogICAqLwogIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2Zvcm0oQ0dJbWFnZUJhc2UgJHNyYykKICB7CiAgICAkd2lkdGggICAgICA9ICRzcmNbJ3dpZHRoJ107CiAgICAkaGVpZ2h0ICAgICA9ICRzcmNbJ2hlaWdodCddOwoJJHR5cGUgCQk9ICRzcmNbJ3R5cGUnXTsKCgkvLyBDcmVhdGUgX2Rlc3QgaW1hZ2UgYW5kIGNvcHkgb3JnaW5hbCBpbWFnZSBpbnRvIGl0CiAgICAkX2Rlc3QgPSBuZXcgQ0dJbWFnZUJhc2UoYXJyYXkoJHR5cGUsICR3aWR0aCwgJGhlaWdodCArICR0aGlzLT5fcmVmbGVjdGlvbl9oZWlnaHQpKTsKCSRyZXMgPSBpbWFnZWNvcHlyZXNhbXBsZWQoJF9kZXN0Wydyc3JjJ10sICRzcmNbJ3JzcmMnXSwgMCwgMCwgMCwgMCwgJHdpZHRoLCAkaGVpZ2h0LCAkd2lkdGgsICRoZWlnaHQpOwoKICAgIGlmKCRyZXMgPT09IEZBTFNFKQoJCXRocm93IG5ldyBFeGNlcHRpb24oJ0NyZWF0aW9uIG9mIGRlc3RpbmF0aW9uIGltYWdlIGZhaWxlZCcpOwoKCS8vIE1ha2Ugd2hpdGUgbWFzawoJJG1hc2sgPSBpbWFnZWNyZWF0ZXRydWVjb2xvcigkd2lkdGgsICRoZWlnaHQpOwoJJGJnYyA9IGltYWdlY29sb3JhbGxvY2F0ZSgkbWFzaywgMjU1LCAyNTUsIDI1NSk7IC8vIEJhY2tncm91bmQgY29sb3IKCWltYWdlZmlsbGVkcmVjdGFuZ2xlKCRtYXNrLCAwLCAwLCAkd2lkdGgsICRoZWlnaHQsICRiZ2MpOwoKCS8vIEZsaXAgb3JnaW5hbCBpbWFnZSBhbmQgZHVtcCBpdCB0byBuZXcgcGljdHVyZSAoJGR1bXBpbWFnZSkKCSRkdW1waW1hZ2UgPSBpbWFnZWNyZWF0ZXRydWVjb2xvcigkd2lkdGgsICR0aGlzLT5fcmVmbGVjdGlvbl9oZWlnaHQpOwoJJGJnYyA9IGltYWdlY29sb3JhbGxvY2F0ZSgkc3JjWydyc3JjJ10sIDI1NSwgMjU1LCAyNTUpOyAvLyBCYWNrZ3JvdW5kIGNvbG9yCgkkc3JjWydyc3JjJ10gPSBpbWFnZXJvdGF0ZSgkc3JjWydyc3JjJ10sIC0xODAsICRiZ2MpOwoJaW1hZ2Vjb3B5cmVzYW1wbGVkKCRkdW1waW1hZ2UsICRzcmNbJ3JzcmMnXSwgMCwgMCwgMCwgMCwgJHdpZHRoLCAkaGVpZ2h0LCAkd2lkdGgsICRoZWlnaHQpOwoKCS8vIFNldCBPcmdpbmFsIGltYWdlIGFzIGR1bXBpbWFnZSBhbmQgY3JlYXRlIG5ldyAkZHVtcGltYWdlCgkkc3JjWydyc3JjJ10gPSAkZHVtcGltYWdlOwoJJGR1bXBpbWFnZSA9IGltYWdlY3JlYXRldHJ1ZWNvbG9yKCR3aWR0aCwgJHRoaXMtPl9yZWZsZWN0aW9uX2hlaWdodCk7CgoJLy8gTWFrZSBtaXJyb3IgaW1hZ2Ugb2YgY3VycmVudCBPcmdpbmFsIGltYWdlIGFuZCBkdW1wIGl0IHRvICRkdW1waW1hZ2UuIFNldCAkZHVtcGltYWdlIHRvICRzcmNbJ3JzcmMnXQoJZm9yICgkeCA9IDA7ICR4IDwgJHdpZHRoOyAkeCsrKSB7CgoJCWltYWdlY29weSgkZHVtcGltYWdlLCAkc3JjWydyc3JjJ10sICR4LCAwLCAkd2lkdGgtJHgtMSwgMCwgJHdpZHRoLCAkdGhpcy0+X3JlZmxlY3Rpb25faGVpZ2h0KTsKCX0KCSRzcmNbJ3JzcmMnXSA9ICRkdW1waW1hZ2U7CgoJLy8gU2V0ICRtYXNrIG9uICRzcmNbJ3JzcmMnXSBhbmQgbWFrZSBhY3R1YWwgcmVmbGVjdGlvbgoJJGluID0gMTAwLyR0aGlzLT5fcmVmbGVjdGlvbl9oZWlnaHQ7Cglmb3IoJGk9MDsgJGkgPD0gJHRoaXMtPl9yZWZsZWN0aW9uX2hlaWdodDsgJGkrKyl7CgoJCWlmKCR0aGlzLT5fcmVmbGVjdGlvbl90cmFuc3BhcmVuY3kgPiAxMDApICR0aGlzLT5fcmVmbGVjdGlvbl90cmFuc3BhcmVuY3kgPSAxMDA7CgoJCWltYWdlY29weW1lcmdlKCRzcmNbJ3JzcmMnXSwgJG1hc2ssIDAsICRpLCAwLCAwLCAkd2lkdGgsIDEsICR0aGlzLT5fcmVmbGVjdGlvbl90cmFuc3BhcmVuY3kpOwoKCQkkdGhpcy0+X3JlZmxlY3Rpb25fdHJhbnNwYXJlbmN5ICs9ICRpbjsKCX0KCgkvLyBTZXQgRGl2aWRlciBsaW5lIGZvciAkc3JjWydyc3JjJ10KCSRyZXMgPSBpbWFnZWNvcHltZXJnZSgkc3JjWydyc3JjJ10sICRtYXNrLCAwLCAwLCAwLCAwLCAkd2lkdGgsICR0aGlzLT5fZGl2X2hlaWdodCwgMTAwKTsKCiAgICBpZigkcmVzID09PSBGQUxTRSkKCQl0aHJvdyBuZXcgRXhjZXB0aW9uKCdDcmVhdGlvbiBvZiBtYXNrIGNvcHkgZmFpbGVkJyk7CgoJLy8gQ29weSByZWZsZWN0aW9uIHRvICRfZGVzdCBpbWFnZQoJJHJlcyA9IGltYWdlY29weW1lcmdlKCRfZGVzdFsncnNyYyddLCAkc3JjWydyc3JjJ10sIDAsICRoZWlnaHQsIDAsIDAsICR3aWR0aCwgJHRoaXMtPl9yZWZsZWN0aW9uX2hlaWdodCwgMTAwKTsKCiAgICBpZiggaXNfcmVzb3VyY2UoJG1hc2spICkgaW1hZ2VkZXN0cm95KCRtYXNrKTsKICAgIGlmKCBpc19yZXNvdXJjZSgkZHVtcGltYWdlKSApIGltYWdlZGVzdHJveSgkZHVtcGltYWdlKTsKCiAgICBpZigkcmVzID09PSBGQUxTRSkKCQl0aHJvdyBuZXcgRXhjZXB0aW9uKCdDcmVhdGlvbiBvZiBmaW5hbCBpbWFnZSBmYWlsZWQnKTsKCiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Resizetofit_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX1Jlc2l6ZXRvZml0X0ZpbHRlciBleHRlbmRzIENHSW1hZ2VGaWx0ZXJCYXNlCnsKICBwcml2YXRlICRfZGVzdF93ID0gMDsKICBwcml2YXRlICRfZGVzdF9oID0gMDsKICBwcml2YXRlICRfY29sb3I7CiAgcHJpdmF0ZSAkX2FscGhhID0gMDsKICAgIAogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkaW5wdXQpCiAgewogICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dTbWFydEltYWdlJyk7CiAgICAkdGhpcy0+X2xvYyA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ2Nyb3B0b2ZpdF9kZWZhdWx0X2xvYycsJ2MnKTsKICAgIGlmKCBjZ2VfYXJyYXk6OmlzX2hhc2goJGlucHV0KSApIHsKICAgICAgaWYoIGlzc2V0KCRpbnB1dFsnd2lkdGgnXSkgKSB7CgkkdGhpcy0+X2Rlc3RfdyA9IChpbnQpJGlucHV0Wyd3aWR0aCddOwoJJHRoaXMtPl9kZXN0X2ggPSAoaW50KSRpbnB1dFsnaGVpZ2h0J107CiAgICAgIH0KICAgICAgZWxzZSBpZiAoIGlzc2V0KCRpbnB1dFsndyddKSApIHsKCSR0aGlzLT5fZGVzdF93ID0gKGludCkkaW5wdXRbJ3cnXTsKCSR0aGlzLT5fZGVzdF9oID0gKGludCkkaW5wdXRbJ2gnXTsKICAgICAgfQogICAgICBpZiggaXNzZXQoJGlucHV0Wydjb2xvciddKSAmJiAkaW5wdXRbJ2NvbG9yJ10gIT0gJycpICR0aGlzLT5fY29sb3IgPSBzdHJ0b2xvd2VyKCRpbnB1dFsnY29sb3InXSk7CiAgICAgIGlmKCBpc3NldCgkaW5wdXRbJ2FscGhhJ10pICkgJHRoaXMtPl9hbHBoYSA9IChpbnQpJGlucHV0WydhbHBoYSddOwogICAgfQogICAgZWxzZSBpZiggaXNfYXJyYXkoJGlucHV0KSAgKSB7CiAgICAgIGlmKCBjb3VudCgkaW5wdXQpID49IDIgKSB7CgkkdGhpcy0+X2Rlc3RfdyA9IChpbnQpdHJpbSgkaW5wdXRbMF0pOwoJJHRoaXMtPl9kZXN0X2ggPSAoaW50KXRyaW0oJGlucHV0WzFdKTsKCWlmKCBjb3VudCgkaW5wdXQpID49IDMgKSB7CgkgIGlmKCAkaW5wdXRbMl0gIT0gJycgKSAkdGhpcy0+X2NvbG9yID0gc3RydG9sb3dlcigkaW5wdXRbMl0pOwoJICBpZiggY291bnQoJGlucHV0KSA+PSA0ICkgaWYoICRpbnB1dFszXSAhPSAnJyApICR0aGlzLT5fYWxwaGEgPSAoaW50KSRpbnB1dFszXTsKCX0KICAgICAgfQogICAgfQoKICAgICR0aGlzLT5fZGVzdF93ID0gY2dzaV91dGlsczo6dHJpbV90b19kZXZpY2UoJ3dpZHRoJywkdGhpcy0+X2Rlc3Rfdyk7CiAgICAkdGhpcy0+X2Rlc3RfaCA9IGNnc2lfdXRpbHM6OnRyaW1fdG9fZGV2aWNlKCdoZWlnaHQnLCR0aGlzLT5fZGVzdF9oKTsKICAgICR0aGlzLT5fYWxwaGEgPSBtYXgoMCxtaW4oMTI3LCR0aGlzLT5fYWxwaGEpKTsKCiAgICAvLyB0b2RvOiBjb252ZXJ0IGNvbG9yIG5hbWUgaW50byByZ2IuCiAgICBpZiggJHRoaXMtPl9kZXN0X2ggPD0gMCB8fCAkdGhpcy0+X2Rlc3RfdyA8PSAwICkgewogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIHZhbHVlcyBzcGVjaWZpZWQgZm9yIENyb3B0b2ZpdCBmaWx0ZXIgY29uc3RydWN0b3InKTsKICAgIH0KICB9CgogIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2Zvcm0oQ0dJbWFnZUJhc2UgJHNyYykKICB7CiAgICAvLyBxdWljayBvcHRpbWl6YXRpb24gKG5vdGhpbmcgdG8gZG8pCiAgICAvL2lmKCAkdGhpcy0+X2Rlc3RfdyA9PSAkc3JjWyd3aWR0aCddICYmICR0aGlzLT5fZGVzdF9oID09ICRzcmNbJ2hlaWdodCddICkgcmV0dXJuICRzcmM7CgogICAgJHR5cGUgPSAkc3JjWyd0eXBlJ107CiAgICBpZiggJHRoaXMtPl9hbHBoYSA9PSAxMjcgKSAkdGhpcy0+X2NvbG9yID0gJ3RyYW5zcGFyZW50JzsKICAgIGlmKCAkc3JjLT5zdXBwb3J0c190cmFuc3BhcmVuY3koKSAmJiAhJHRoaXMtPl9jb2xvciApICR0aGlzLT5fY29sb3IgPSAndHJhbnNwYXJlbnQnOwogICAgaWYoICR0aGlzLT5fY29sb3IgPT0gJ3RyYW5zcGFyZW50JyB8fCAkdGhpcy0+X2FscGhhID4gMCApICR0eXBlID0gJ2ltYWdlL3BuZyc7CiAgICBpZiggJHRoaXMtPl9jb2xvciA9PSAndHJhbnNwYXJlbnQnICkgJHRoaXMtPl9hbHBoYSA9IDEyNzsKCiAgICAvLyBjcmVhdGUgb3VyIGRlc3RpbmF0aW9uIGltYWdlLgogICAgJF9kZXN0ID0gbmV3IENHSW1hZ2VCYXNlKGFycmF5KCR0eXBlLCR0aGlzLT5fZGVzdF93LCR0aGlzLT5fZGVzdF9oKSk7CgogICAgLy8gZmlsbCBvdXIgaW1hZ2Ugd2l0aCBhIGNvbG9yIChvciB0cmFuc3BhcmVudCkKICAgICRjb2xvciA9IG51bGw7CiAgICBpZiggJHRoaXMtPl9jb2xvciApIHsKICAgICAgaWYoICR0aGlzLT5fY29sb3IgPT0gJ3RyYW5zcGFyZW50JyApIHsKCS8vIG5lZWQgdG8gZ2V0IGEgdHJhbnNwYXJlbnQgY29sb3IgZnJvbSBzb21lcGxhY2UKCSRjb2xvciA9ICRfZGVzdFsndHJhbnNwYXJlbnQnXTsKICAgICAgfQogICAgICBlbHNlIHsKCSRfciA9ICRfZyA9ICRfYiA9IDI1NTsKCWxpc3QoJF9yLCRfZywkX2IpID0gY2dzaV91dGlsczo6Y29sb3JfdG9fcmdiKCR0aGlzLT5fY29sb3IpOwoJJGNvbG9yID0gaW1hZ2Vjb2xvcmFsbG9jYXRlYWxwaGEoJF9kZXN0Wydyc3JjJ10sICRfciwgJF9nLCAkX2IsICR0aGlzLT5fYWxwaGEpOwogICAgICB9CiAgICB9CiAgICAKICAgIGlmKCAkdGhpcy0+X2FscGhhID4gMCAmJiAkdGhpcy0+X2FscGhhIDwgMTI3KSB7CiAgICAgICRfZGVzdFsnc2F2ZWFscGhhJ10gPSBUUlVFOwogICAgICBpbWFnZWFscGhhYmxlbmRpbmcoJF9kZXN0Wydyc3JjJ10sVFJVRSk7CiAgICAgIGltYWdlc2F2ZWFscGhhKCRfZGVzdFsncnNyYyddLFRSVUUpOwogICAgfSBpZiggJHRoaXMtPl9jb2xvciA9PSAndHJhbnNwYXJlbnQnICkgewogICAgICBpbWFnZWNvbG9ydHJhbnNwYXJlbnQoJF9kZXN0Wydyc3JjJ10sJGNvbG9yKTsKICAgICAgaW1hZ2VhbHBoYWJsZW5kaW5nKCRfZGVzdFsncnNyYyddLEZBTFNFKTsKICAgIH0KCiAgICBpbWFnZWZpbGwoJF9kZXN0Wydyc3JjJ10sIDAsIDAsICRjb2xvcik7CgogICAgaWYoICgkdGhpcy0+X2Rlc3RfdyAvICR0aGlzLT5fZGVzdF9oKSA+ICgkc3JjWyd3aWR0aCddLyRzcmNbJ2hlaWdodCddKSApIHsKICAgICAgLy8gaGVpZ2h0IGlzIGdyZWF0ZXIuLi4gCiAgICAgICRuZXdfaCA9ICR0aGlzLT5fZGVzdF9oOwogICAgICAkbmV3X3cgPSByb3VuZCgoJG5ld19oIC8gJHNyY1snaGVpZ2h0J10pICogJHNyY1snd2lkdGgnXSwgMCk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgLy8gd2lkdGggaXMgZ3JlYXRlci4KICAgICAgJG5ld193ID0gJHRoaXMtPl9kZXN0X3c7CiAgICAgICRuZXdfaCA9IHJvdW5kKCgkbmV3X3cgLyAkc3JjWyd3aWR0aCddKSAqICRzcmNbJ2hlaWdodCddLCAwKTsKICAgIH0KCiAgICAkeDAgPSAoaW50KSgoJHRoaXMtPl9kZXN0X3cgLSAkbmV3X3cpIC8gMik7CiAgICAkeTAgPSAoaW50KSgoJHRoaXMtPl9kZXN0X2ggLSAkbmV3X2gpIC8gMik7CgogICAgLy8gcmVzaXplIHRoZSBiaWcgaW1hZ2UgaW50byB0aGUgdGVtcG9yYXJ5IHRyYW5zcGFyZW50IGltYWdlCiAgICAkcmVzID0gaW1hZ2Vjb3B5cmVzYW1wbGVkKCRfZGVzdFsncnNyYyddLCRzcmNbJ3JzcmMnXSwkeDAsJHkwLDAsMCwkbmV3X3csJG5ld19oLCRzcmNbJ3dpZHRoJ10sJHNyY1snaGVpZ2h0J10pOwogICAgaWYoICRyZXMgPT09IEZBTFNFICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignUmVzaXpldG9maXQgLSBzdGFnZSAxIC0gZmFpbGVkJyk7CiAgICByZXR1cm4gJF9kZXN0OwogIH0KCn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Resize_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgQ0dJbWFnZV9SZXNpemVfRmlsdGVyIGV4dGVuZHMgQ0dJbWFnZUZpbHRlckJhc2UKewogICAgcHJpdmF0ZSAkX3dpZHRoOyAgICAgICAgIC8vIGRlc3Qgd2lkdGgKICAgIHByaXZhdGUgJF9oZWlnaHQ7ICAgICAgICAvLyBkZXN0IGhlaWdodAogICAgcHJpdmF0ZSAkX2VkZ2UgPSAwOwkgICAvLyBlZGdlIHNpemUKICAgIHByaXZhdGUgJF9wZXJjZW50ID0gMDsgICAvLyBzY2FsZSB0byBwZXJjZW50CiAgICBwcml2YXRlICRfcmVzYW1wbGUgPSAxOyAgLy8gcmVzYW1wbGUsIHZzIHJlc2l6ZS4KICAgIHByaXZhdGUgJF91cHNjYWxlID0gMTsgICAvLyBhbGxvdyB1cHNjYWxlIGJ5IGRlZmF1bHQuCgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KC8qIHZhciBhcmdzICovKQogICAgewogICAgICAgICRpbnB1dCA9IGZ1bmNfZ2V0X2FyZ3MoKTsKICAgICAgICBpZiggY291bnQoJGlucHV0KSA9PSAxICYmIGlzX2FycmF5KCRpbnB1dFswXSkgKSAkaW5wdXQgPSAkaW5wdXRbMF07CgogICAgICAgIGlmKCBjZ2VfYXJyYXk6OmlzX2hhc2goJGlucHV0KSApIHsKICAgICAgICAgICAgaWYoIGlzc2V0KCRpbnB1dFsnd2lkdGgnXSkgKSAkdGhpcy0+X3dpZHRoID0gKGludCkkaW5wdXRbJ3dpZHRoJ107CiAgICAgICAgICAgIGlmKCBpc3NldCgkaW5wdXRbJ2hlaWdodCddKSApICR0aGlzLT5faGVpZ2h0ID0gKGludCkkaW5wdXRbJ2hlaWdodCddOwogICAgICAgICAgICBpZiggaXNzZXQoJGlucHV0WydwZXJjZW50J10pICkgewogICAgICAgICAgICAgICAgJHRoaXMtPl9wZXJjZW50ID0gKGludCkkaW5wdXRbJ3BlcmNlbnQnXTsKICAgICAgICAgICAgICAgICR0aGlzLT5fcGVyY2VudCA9IG1pbigxMDAsbWF4KDEsJHRoaXMtPl9wZXJjZW50KSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoIGlzc2V0KCRpbnB1dFsncmVzYW1wbGUnXSkgKSAkdGhpcy0+X3Jlc2FtcGxlID0gKGludCkkaW5wdXRbJ3Jlc2FtcGxlJ107CiAgICAgICAgICAgIGlmKCBpc3NldCgkaW5wdXRbJ3Vwc2NhbGUnXSkgKSAkdGhpcy0+X3Vwc2NhbGUgPSAoaW50KSRpbnB1dFsndXBzY2FsZSddOwogICAgICAgICAgICBpZiggaXNzZXQoJGlucHV0WydlZGdlJ10pICkgJHRoaXMtPl9lZGdlID0gKGludCkkaW5wdXRbJ2VkZ2UnXTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggaXNfYXJyYXkoJGlucHV0KSAmJiBjb3VudCgkaW5wdXQpID49IDIgKSB7CiAgICAgICAgICAgICRpZHggPSAyOwogICAgICAgICAgICBzd2l0Y2goICRpbnB1dFswXSApIHsKICAgICAgICAgICAgY2FzZSAncCc6CiAgICAgICAgICAgICAgICAkdGhpcy0+X3BlcmNlbnQgPSAoaW50KSRpbnB1dFsxXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICd3JzoKICAgICAgICAgICAgICAgICR0aGlzLT5fd2lkdGggPSAoaW50KSRpbnB1dFsxXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdoJzoKICAgICAgICAgICAgICAgICR0aGlzLT5faGVpZ2h0ID0gKGludCkkaW5wdXRbMV07CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnZSc6CiAgICAgICAgICAgICAgICAkdGhpcy0+X2VkZ2UgPSAoaW50KSRpbnB1dFsxXTsKICAgICAgICAgICAgY2FzZSAnYyc6CiAgICAgICAgICAgICAgICAkdGhpcy0+X3dpZHRoID0gKGludCkkaW5wdXRbMV07CiAgICAgICAgICAgICAgICAkdGhpcy0+X2hlaWdodCA9IChpbnQpJGlucHV0WzJdOwogICAgICAgICAgICAgICAgJGlkeCA9IDM7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYoIGNvdW50KCRpbnB1dCkgPiAkaWR4ICkgJHRoaXMtPl91cHNjYWxlID0gKGludCkkaW5wdXRbJGlkeF07CiAgICAgICAgfQoKICAgICAgICBpZiggJHRoaXMtPl93aWR0aCA+IDAgKSAkdGhpcy0+X3dpZHRoID0gY2dzaV91dGlsczo6dHJpbV90b19kZXZpY2UoJ3dpZHRoJywkdGhpcy0+X3dpZHRoKTsKICAgICAgICBpZiggJHRoaXMtPl9oZWlnaHQgPiAwICkgJHRoaXMtPl9oZWlnaHQgPSBjZ3NpX3V0aWxzOjp0cmltX3RvX2RldmljZSgnaGVpZ2h0JywkdGhpcy0+X2hlaWdodCk7CiAgICAgICAgaWYoICEoJHRoaXMtPl9wZXJjZW50ID4gMCB8fCAkdGhpcy0+X3dpZHRoID4gMCB8fCAkdGhpcy0+X2hlaWdodCA+IDAgfHwgJHRoaXMtPl9lZGdlID4gMCkgKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0NvdWxkIG5vdCBDcmVhdGUgUmVzaXplIEZpbHRlciAtIEludmFsaWQgUGFyYW1ldGVycycpOwogICAgICAgIH0KICB9CgoKICBwcml2YXRlIGZ1bmN0aW9uIF90cmFuc2Zvcm0oQ0dJbWFnZUJhc2UgJHNyYywkbmV3X3csJG5ld19oKQogIHsKICAgICAgJF9kZXN0ID0gbmV3IENHSW1hZ2VCYXNlKGFycmF5KCRzcmNbJ3R5cGUnXSwkbmV3X3csJG5ld19oKSk7CgogICAgICAkcmVzID0gJyc7CiAgICAgIGlmKCAkdGhpcy0+X3Jlc2FtcGxlICkgewogICAgICAgICAgaW1hZ2VhbHBoYWJsZW5kaW5nKCRfZGVzdFsncnNyYyddLEZBTFNFKTsKICAgICAgICAgICRyZXMgPSBpbWFnZWNvcHlyZXNhbXBsZWQoJF9kZXN0Wydyc3JjJ10sJHNyY1sncnNyYyddLDAsMCwwLDAsJG5ld193LCRuZXdfaCwkc3JjWyd3aWR0aCddLCRzcmNbJ2hlaWdodCddKTsKICAgICAgfQogICAgICBlbHNlIHsKICAgICAgICAgIGRpZSgndGVzdDEnKTsKICAgICAgICAgICRyZXMgPSBpbWFnZWNvcHlyZXNpemVkKCRfZGVzdFsncnNyYyddLCRzcmNbJ3JzcmMnXSwwLDAsMCwwLCRuZXdfdywkbmV3X2gsJHNyY1snd2lkdGgnXSwkc3JjWydoZWlnaHQnXSk7CiAgICAgIH0KCiAgICAgIGlmKCAhJHJlcyApIHRocm93IG5ldyBFeGNlcHRpb24oJ0ltYWdlIFRyYW5zZm9ybSBGYWlsZWQnKTsKICAgICAgcmV0dXJuICRfZGVzdDsKICB9CgoKICBwcm90ZWN0ZWQgZnVuY3Rpb24gX3RyYW5zZm9ybV9wZXJjZW50YWdlKENHSW1hZ2VCYXNlICRzcmMpCiAgewogICAgICAkbmV3X3cgPSAoaW50KSgoZmxvYXQpJHNyY1snd2lkdGgnXSAqIChmbG9hdCkkdGhpcy0+X3BlcmNlbnQgLyAxMDAuMCk7CiAgICAgICRuZXdfaCA9IChpbnQpKChmbG9hdCkkc3JjWydoZWlnaHQnXSAqIChmbG9hdCkkdGhpcy0+X3BlcmNlbnQgLyAxMDAuMCk7CiAgICAgIHJldHVybiAkdGhpcy0+X3RyYW5zZm9ybSgkc3JjLCRuZXdfdywkbmV3X2gpOwogIH0KCgogIHByb3RlY3RlZCBmdW5jdGlvbiBfdHJhbnNmb3JtX3dpZHRoKENHSW1hZ2VCYXNlICRzcmMpCiAgewogICAgICAvLyBjYWxjdWxhdGUgbmV3IHdpZHRoIGFuZCBoZWlnaHQsIHByZXNlcnZpbmcgYXNwZWN0IHJhdGlvCiAgICAgICRuZXdfdyA9ICR0aGlzLT5fd2lkdGg7CiAgICAgICRuZXdfaCA9IChpbnQpKCR0aGlzLT5fd2lkdGggKiAkc3JjWydoZWlnaHQnXSAvICRzcmNbJ3dpZHRoJ10pOwogICAgICByZXR1cm4gJHRoaXMtPl90cmFuc2Zvcm0oJHNyYywkbmV3X3csJG5ld19oKTsKICB9CgogIHByb3RlY3RlZCBmdW5jdGlvbiBfdHJhbnNmb3JtX2hlaWdodChDR0ltYWdlQmFzZSAkc3JjKQogIHsKICAgICAgLy8gY2FsY3VsYXRlIG5ldyB3aWR0aCBhbmQgaGVpZ2h0LCBwcmVzZXJ2aW5nIGFzcGVjdCByYXRpbwogICAgICAkbmV3X2ggPSAkdGhpcy0+X2hlaWdodDsKICAgICAgJG5ld193ID0gKGludCkoJHRoaXMtPl9oZWlnaHQgKiAkc3JjWyd3aWR0aCddIC8gJHNyY1snaGVpZ2h0J10pOwogICAgICByZXR1cm4gJHRoaXMtPl90cmFuc2Zvcm0oJHNyYywkbmV3X3csJG5ld19oKTsKICB9CgogIHByb3RlY3RlZCBmdW5jdGlvbiBfdHJhbnNmb3JtX2VkZ2UoQ0dJbWFnZUJhc2UgJHNyYykKICB7CiAgICAgIC8vZmluZCB0aGUgbG9uZ2VzdCBlZGdlIG9mIGltYWdlIGFuZCByZXNpemUgYmFzZWQgb24gaXQKICAgICAgaWYoJHNyY1snd2lkdGgnXSA+ICRzcmNbJ2hlaWdodCddKSB7CiAgICAgICAgICAkbmV3X3cgPSAkdGhpcy0+X2VkZ2U7CiAgICAgICAgICAkbmV3X3cgPSBjZ3NpX3V0aWxzOjp0cmltX3RvX2RldmljZSgnd2lkdGgnLCRuZXdfdyk7CiAgICAgICAgICAkbmV3X2ggPSAoaW50KSgkdGhpcy0+X2VkZ2UgKiAkc3JjWydoZWlnaHQnXSAvICRzcmNbJ3dpZHRoJ10pOwogICAgICAgICAgcmV0dXJuICR0aGlzLT5fdHJhbnNmb3JtKCRzcmMsJG5ld193LCRuZXdfaCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgICAkbmV3X2ggPSAkdGhpcy0+X2VkZ2U7CiAgICAgICAgICAkbmV3X2ggPSBjZ3NpX3V0aWxzOjp0cmltX3RvX2RldmljZSgnaGVpZ2h0JywkbmV3X2gpOwogICAgICAgICAgJG5ld193ID0gKGludCkoJHRoaXMtPl9lZGdlICogJHNyY1snd2lkdGgnXSAvICRzcmNbJ2hlaWdodCddKTsKICAgICAgICAgIHJldHVybiAkdGhpcy0+X3RyYW5zZm9ybSgkc3JjLCRuZXdfdywkbmV3X2gpOwogICAgICB9CiAgfQoKICBwcm90ZWN0ZWQgZnVuY3Rpb24gX3RyYW5zZm9ybV9jdXN0b20oQ0dJbWFnZUJhc2UgJHNyYykKICB7CiAgICAgIC8vIHRoaXMgZG9lcyBub3QgcHJlc2VydmUgYXNwZWN0IHJhdGlvLgogICAgICByZXR1cm4gJHRoaXMtPl90cmFuc2Zvcm0oJHNyYywkdGhpcy0+X3dpZHRoLCR0aGlzLT5faGVpZ2h0KTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gdHJhbnNmb3JtKENHSW1hZ2VCYXNlICRpbWcpCiAgewogICAgICBpZiggJHRoaXMtPl9wZXJjZW50ID4gMCApIHJldHVybiAkdGhpcy0+X3RyYW5zZm9ybV9wZXJjZW50YWdlKCRpbWcpOyAvLyBwZXJjZW50YWdlIHJlc2l6ZS4KICAgICAgaWYoICR0aGlzLT5fZWRnZSA+IDAgJiYgKCgkaW1nWyd3aWR0aCddID4gJHRoaXMtPl9lZGdlIHx8ICRpbWdbJ2hlaWdodCddID4gJHRoaXMtPl9lZGdlKSB8fCAkdGhpcy0+X3Vwc3NjYWxlKSApIHsKICAgICAgICAgIC8vcmVzaXplIGJ5IGxvbmdlc3QgZWRnZQogICAgICAgICAgcmV0dXJuICR0aGlzLT5fdHJhbnNmb3JtX2VkZ2UoJGltZyk7CiAgICAgIH0KICAgICAgaWYoICR0aGlzLT5fd2lkdGggPiAwICYmICR0aGlzLT5faGVpZ2h0ID09IDAgJiYgKCgkaW1nWyd3aWR0aCddID4gJHRoaXMtPl93aWR0aCkgfHwgJHRoaXMtPl91cHNjYWxlKSApIHsKICAgICAgICAgIHJldHVybiAkdGhpcy0+X3RyYW5zZm9ybV93aWR0aCgkaW1nKTsKICAgICAgfQogICAgICBpZiggJHRoaXMtPl93aWR0aCA9PSAwICYmICR0aGlzLT5faGVpZ2h0ID4gMCAmJiAoKCRpbWdbJ2hlaWdodCddID4gJHRoaXMtPl9oZWlnaHQpIHx8ICR0aGlzLT5fdXBzY2FsZSkgKSB7CiAgICAgICAgICByZXR1cm4gJHRoaXMtPl90cmFuc2Zvcm1faGVpZ2h0KCRpbWcpOwogICAgICB9CiAgICAgIGlmKCAkdGhpcy0+X3dpZHRoID4gMCAmJiAkdGhpcy0+X2hlaWdodCA+IDAgKSB7CiAgICAgICAgICBpZiggJGltZ1snd2lkdGgnXSA9PSAkdGhpcy0+X3dpZHRoICYmICRpbWdbJ2hlaWdodCddID09ICR0aGlzLT5faGVpZ2h0ICkgewogICAgICAgICAgICAgIC8vIG5vdGhpbmcgdG8gZG8uLi4gYnV0IHRyaWNrIHRoZSBpbWFnZSB0byBiZSBkaXJ0eS4KICAgICAgICAgICAgICAkaW1nWydoZWlnaHQnXSA9ICRpbWdbJ2hlaWdodCddOwogICAgICAgICAgICAgIHJldHVybiAkaW1nOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuICR0aGlzLT5fdHJhbnNmb3JtX2N1c3RvbSgkaW1nKTsKICAgICAgfQoKICAgICAgLy8gbm90aGluZyB0byBkby4uLi4gYnV0IHRyaWNrIHRoZSBpbWFnZSB0byBiZSBkaXJ0eS4KICAgICAgJGltZ1snaGVpZ2h0J10gPSAkaW1nWydoZWlnaHQnXTsKICAgICAgcmV0dXJuICRpbWc7CiAgfQp9CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Rotate_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovKioKICogSW1hZ2Ugcm90YXRpb24gZmlsdGVyIGNsYXNzCiAqIAogKiBBbGxvd3Mgcm90YXRpbmcgYW4gaW1hZ2UgYSBzcGVjaWZpZWQgbnVtYmVyIG9mIGRlZ3JlZXMuCiAqCiAqIEBhdXRob3IgUm9iZXJ0IENhbXBiZWxsIDxjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnPgogKiBAcGFja2FnZSBDR1NtYXJ0SW1hZ2UKICovCmNsYXNzIENHSW1hZ2VfUm90YXRlX0ZpbHRlciBleHRlbmRzIENHSW1hZ2VGaWx0ZXJCYXNlCnsKICAvKioKICAgKiBUaGUgbnVtYmVyIG9mIGRlZ3JlZXMgdG8gcm90YXRlCiAgICoKICAgKiBAYWNjZXNzIHByaXZhdGUKICAgKiBAdmFyIGludGVnZXIKICAgKi8KICBwcml2YXRlICRfYW5nbGUgPSAwOwogIHByaXZhdGUgJF9jb2xvcjsKICBwcml2YXRlICRfYWxwaGEgPSAwOwoKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoLyogdmFyaWFibGUgYXJndW1lbnRzICovKQogIHsKICAgICRhcmdzID0gZnVuY19nZXRfYXJncygpOwogICAgaWYoIGlzX2FycmF5KCRhcmdzWzBdKSAmJiBjb3VudCgkYXJncykgPT0gMSkgJGFyZ3MgPSAkYXJnc1swXTsKICAgIGlmKCBjb3VudCgkYXJncykgPj0gMSApICR0aGlzLT5fYW5nbGUgPSAoaW50KSRhcmdzWzBdICUgMzYwOwogICAgaWYoIGNvdW50KCRhcmdzKSA+PSAyICkgJHRoaXMtPl9jb2xvciA9ICRhcmdzWzFdOwogICAgaWYoIGNvdW50KCRhcmdzKSA+PSAzICkgJHRoaXMtPl9hbHBoYSA9IChpbnQpJGFyZ3NbMl07CgogICAgJHRoaXMtPl9hbHBoYSA9IG1heCgwLG1pbigxMjcsJHRoaXMtPl9hbHBoYSkpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShDR0ltYWdlQmFzZSAkc3JjKQogIHsKICAgIGlmKCAkdGhpcy0+X2FuZ2xlID09IDAgKSByZXR1cm4gJHNyYzsgLy8gbm90aGluZyB0byBkby4KICAgICR0eXBlID0gJHNyY1sndHlwZSddOwogICAgaWYoICR0aGlzLT5fYWxwaGEgIT0gMCApICR0eXBlID0gJ2ltYWdlL3BuZyc7CiAgICBpZiggJHRoaXMtPl9hbHBoYSA9PSAxMjcgKSAkdGhpcy0+X2NvbG9yID0gJ3RyYW5zcGFyZW50JzsKICAgIGlmKCAkdGhpcy0+X2NvbG9yID09ICd0cmFuc3BhcmVudCcgKSAkdHlwZSA9ICdpbWFnZS9wbmcnOwoKICAgIGlmKCAhZnVuY3Rpb25fZXhpc3RzKCdpbWFnZXJvdGF0ZScpICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignaW1hZ2Vyb3RhdGUgZnVuY3Rpb24gbm90IGZvdW5kJyk7CgogICAgJF9kZXN0ID0gbmV3IENHSW1hZ2VCYXNlKGFycmF5KCR0eXBlLCRzcmNbJ3dpZHRoJ10sJHNyY1snaGVpZ2h0J10pKTsKCiAgICBpZiggISR0aGlzLT5fY29sb3IgfHwgJHRoaXMtPl9jb2xvciA9PSAndHJhbnNwYXJlbnQnICkgewogICAgICAkdGNvbG9yID0gY2dzaV91dGlsczo6Z2V0X3RyYW5zcGFyZW50X2NvbG9yKCRzcmMpOwogICAgfQogICAgZWxzZSB7CiAgICAgIGxpc3QoJF9yLCRfZywkX2IpID0gY2dzaV91dGlsczo6Y29sb3JfdG9fcmdiKCR0aGlzLT5fY29sb3IpOwogICAgICAkdGNvbG9yID0gaW1hZ2Vjb2xvcmFsbG9jYXRlYWxwaGEoJF9kZXN0Wydyc3JjJ10sJF9yLCRfZywkX2IsJHRoaXMtPl9hbHBoYSk7CiAgICB9CiAgICAkcmVzID0gaW1hZ2Vyb3RhdGUoJHNyY1sncnNyYyddLCR0aGlzLT5fYW5nbGUgKiAtMSwkdGNvbG9yKTsKICAgIGlmKCAkcmVzID09PSBGQUxTRSApIHRocm93IG5ldyBFeGNlcHRpb24oJ0Vycm9yIGFwcGx5aW5nIGZpbHRlciAnLklNR19GSUxURVJfQ09MT1JJWkUpOwoKICAgIGltYWdlY29sb3J0cmFuc3BhcmVudCgkcmVzLCR0Y29sb3IpOwogICAgJF9kZXN0Wydyc3JjJ10gPSAkcmVzOwogICAgJF9kZXN0Wyd3aWR0aCddID0gaW1hZ2VzeCgkcmVzKTsKICAgICRfZGVzdFsnaGVpZ2h0J10gPSBpbWFnZXN5KCRyZXMpOwogICAgcmV0dXJuICRfZGVzdDsKICB9Cn0KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Roundedcorners_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX1JvdW5kZWRjb3JuZXJzX0ZpbHRlciBleHRlbmRzIENHSW1hZ2VGaWx0ZXJCYXNlCnsKICBwcml2YXRlICRfcmFkaXVzOwogIHByaXZhdGUgJF9jb2xvcjsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRpbnB1dCkKICB7CiAgICBpZiggY2dlX2FycmF5Ojppc19oYXNoKCRpbnB1dCkgKSB7CiAgICAgIGlmKCBpc3NldCgkaW5wdXRbJ3JhZGl1cyddKSApICR0aGlzLT5fcmFkaXVzID0gKGludCkkaW5wdXRbJ3JhZGl1cyddOwogICAgICBpZiggaXNzZXQoJGlucHV0Wydjb2xvciddKSApICR0aGlzLT5fY29sb3IgPSAkaW5wdXRbJ2NvbG9yJ107CiAgICB9CiAgICBlbHNlIGlmKCBpc19hcnJheSgkaW5wdXQpICkgewogICAgICBpZiggY291bnQoJGlucHV0KSA+PSAxICkgJHRoaXMtPl9yYWRpdXMgPSAoaW50KSRpbnB1dFswXTsKICAgICAgaWYoIGNvdW50KCRpbnB1dCkgPj0gMiApICR0aGlzLT5fY29sb3IgID0gJGlucHV0WzFdOwogICAgfQoKICAgIGlmKCAkdGhpcy0+X3JhZGl1cyA8PSAxICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignSW52YWxpZCB2YWx1ZXMgc3BlY2lmaWVkIGZvciBSb3VuZGVkY29ybmVycyBmaWx0ZXIgY29uc3RydWN0b3InKTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gdHJhbnNmb3JtKENHSW1hZ2VCYXNlICRzcmMpCiAgewogICAgJHdpZHRoID0gJHNyY1snd2lkdGgnXTsKICAgICRoZWlnaHQgPSAkc3JjWydoZWlnaHQnXTsKICAgICRyYWRpdXMgPSAkdGhpcy0+X3JhZGl1czsKICAgICR0eXBlID0gJHNyY1sndHlwZSddOwogICAgJGNvbG9yID0gbnVsbDsKICAgICRyID0gJGcgPSAkYiA9IDI1NTsKCiAgICBpZiggJHNyYy0+c3VwcG9ydHNfdHJhbnNwYXJlbmN5KCkgJiYgISR0aGlzLT5fY29sb3IgKSAkdGhpcy0+X2NvbG9yID0gJ3RyYW5zcGFyZW50JzsKICAgIGlmKCAkdGhpcy0+X2NvbG9yID09ICd0cmFuc3BhcmVudCcgKSAkdHlwZSA9ICdpbWFnZS9wbmcnOwoKICAgICRfZGVzdCA9IG5ldyBDR0ltYWdlQmFzZShhcnJheSgkdHlwZSwkd2lkdGgsJGhlaWdodCkpOwogICAgaW1hZ2Vjb3B5KCRfZGVzdFsncnNyYyddLCRzcmNbJ3JzcmMnXSwwLDAsMCwwLCR3aWR0aCwkaGVpZ2h0KTsKCiAgICBpZiggJHRoaXMtPl9jb2xvciApIHsKICAgICAgaWYoICR0aGlzLT5fY29sb3IgPT0gJ3RyYW5zcGFyZW50JyApIHsKCS8vIGdldCB0aGUgZGVzdCBpbWFnYWdlcyB0cmFuc3BhcmVudCBjb2xvci4KCSRjb2xvciA9ICRfZGVzdFsndHJhbnNwYXJlbnQnXTsKCWlmKCAhJGNvbG9yICkgbGlzdCgkciwkZywkYikgPSBjZ3NpX3V0aWxzOjpmaW5kX3VudXNlZF9jb2xvcigkX2Rlc3QpOwogICAgICB9CiAgICAgIGVsc2UgewoJLy8gdXNlIHRoZSBzcGVjaWZpZWQgcmdiLgoJbGlzdCgkciwkZywkYikgPSBjZ3NpX3V0aWxzOjpjb2xvcl90b19yZ2IoJHRoaXMtPl9jb2xvcik7CiAgICAgIH0KICAgIH0KCiAgICBpZiggISRjb2xvciApIHsKICAgICAgaWYoICR0aGlzLT5fY29sb3IgPT0gJ3RyYW5zcGFyZW50JyApIHsKCSRjb2xvciA9IGltYWdlY29sb3JhbGxvY2F0ZWFscGhhKCRfZGVzdFsncnNyYyddLCRyLCRnLCRiLDEyNyk7CiAgICAgIH0KICAgICAgZWxzZSB7CgkkY29sb3IgPSBpbWFnZWNvbG9yYWxsb2NhdGUoJF9kZXN0Wydyc3JjJ10sJHIsJGcsJGIpOwogICAgICB9CiAgICB9CgogICAgaWYoICR0aGlzLT5fY29sb3IgPT0gJ3RyYW5zcGFyZW50JyApIHsKICAgICAgJF9kZXN0Wyd0cmFuc3BhcmVudCddID0gJGNvbG9yOwogICAgICBpbWFnZWNvbG9ydHJhbnNwYXJlbnQoJF9kZXN0Wydyc3JjJ10sJGNvbG9yKTsKICAgICAgaW1hZ2VhbHBoYWJsZW5kaW5nKCRfZGVzdFsncnNyYyddLEZBTFNFKTsKICAgIH0KCiAgICAvLyByb3VuZCB0aGUgY29ybmVycy4KICAgIGltYWdlYXJjKCRfZGVzdFsncnNyYyddLCRyYWRpdXMtMSwkcmFkaXVzLTEsJHJhZGl1cyoyLCRyYWRpdXMqMiwgMTgwLCAyNzAsICRjb2xvcik7CiAgICBpbWFnZWZpbGx0b2JvcmRlcigkX2Rlc3RbJ3JzcmMnXSwwLDAsJGNvbG9yLCRjb2xvcik7CiAgICAKICAgIGltYWdlYXJjKCRfZGVzdFsncnNyYyddLCAkd2lkdGgtJHJhZGl1cywgJHJhZGl1cy0xLCAkcmFkaXVzKjIsICRyYWRpdXMqMiwgMjcwLCAwLCAkY29sb3IpOyAKICAgIGltYWdlZmlsbHRvYm9yZGVyKCRfZGVzdFsncnNyYyddLCAkd2lkdGgtMSwgMCwgJGNvbG9yLCAkY29sb3IpOwoKICAgIGltYWdlYXJjKCRfZGVzdFsncnNyYyddLCAkcmFkaXVzLTEsICRoZWlnaHQtJHJhZGl1cywgJHJhZGl1cyoyLCAkcmFkaXVzKjIsIDkwLCAxODAsICRjb2xvcik7IAogICAgaW1hZ2VmaWxsdG9ib3JkZXIoJF9kZXN0Wydyc3JjJ10sIDAsICRoZWlnaHQtMSwgJGNvbG9yLCAkY29sb3IpOwoKICAgIGltYWdlYXJjKCRfZGVzdFsncnNyYyddLCAkd2lkdGgtJHJhZGl1cywgJGhlaWdodC0kcmFkaXVzLCAkcmFkaXVzKjIsICRyYWRpdXMqMiwgMCwgOTAsICRjb2xvcik7IAogICAgaW1hZ2VmaWxsdG9ib3JkZXIoJF9kZXN0Wydyc3JjJ10sICR3aWR0aC0xLCAkaGVpZ2h0LTEsICRjb2xvciwgJGNvbG9yKTsKCiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Selectiveblur_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovKioKICogU2VsZWN0aXZlIEJsdXIgaW1hZ2UgZmlsdGVyIGNsYXNzCiAqCiAqIFBlcmZvcm1zIGEgc2VsZWN0aXZlIGJsdXIgb24gdGhlIHByb3ZpZGVkIGltYWdlLgogKiBUaGVyZSBhcmUgbm8gcGFyYW1ldGVycyB0byB0aGlzIGZpbHRlcmluZyBtZXRob2QuCiAqCiAqIEBhdXRob3IgUm9iZXJ0IENhbXBiZWxsIDxjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnPgogKiBAcGFja2FnZSBDR1NtYXJ0SW1hZ2UKICovCmNsYXNzIENHSW1hZ2VfU2VsZWN0aXZlYmx1cl9GaWx0ZXIgZXh0ZW5kcyBDR0ltYWdlRmlsdGVyQmFzZQp7CiAgCiAgLyoqCiAgICogVHJhbnNmb3JtIHRoZSBzcGVjaWZpZWQgaW1hZ2UKICAgKgogICAqIEBwYXJhbSBDR0ltYWdlQmFzZSBUaGUgaW1hZ2UgdG8gdHJhbnNmb3JtCiAgICogQHJldHVybiBDR0ltYWdlQmFzZSBUaGUgdHJhbnNmb3JtZWQgaW1hZ2UuCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShDR0ltYWdlQmFzZSAkc3JjKQogIHsKICAgICRfZGVzdCA9IG5ldyBDR0ltYWdlQmFzZSgkc3JjKTsKICAgICR0bXAgPSAkdGhpcy0+X2FyZ3M7CiAgICAkcmVzID0gaW1hZ2VmaWx0ZXIoJF9kZXN0Wydyc3JjJ10sSU1HX0ZJTFRFUl9TRUxFQ1RJVkVfQkxVUik7CgogICAgaWYoICEkcmVzICkKICAgICAgewoJdGhyb3cgbmV3IEV4Y2VwdGlvbignRXJyb3IgYXBwbHlpbmcgZmlsdGVyICcuSU1HX0ZJTFRFUl9TRUxFQ1RJVkVfQkxVUik7CiAgICAgIH0KICAgIHJldHVybiAkX2Rlc3Q7CiAgfQp9CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Sharpen_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMyBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX1NoYXJwZW5fRmlsdGVyIGV4dGVuZHMgQ0dJbWFnZUZpbHRlckJhc2UKewogIHByaXZhdGUgJF9tYXRyaXggPSBhcnJheShhcnJheSgwLC0zLDApLGFycmF5KC0zLDIxLC0zKSxhcnJheSgwLC0zLDApKTsKICBwcml2YXRlICRfZGl2aXNvciA9IDk7CgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgvKiB2YXIgYXJncyAqLykKICB7CiAgICAkaW5wdXQgPSBmdW5jX2dldF9hcmdzKCk7CiAgICBpZiggaXNfYXJyYXkoJGlucHV0KSAmJiBjb3VudCgkaW5wdXQpID09IDEgKSAkaW5wdXQgPSAkaW5wdXRbMF07CgogICAgJGFkaiA9IDA7CiAgICBpZiggY2dlX2FycmF5Ojppc19oYXNoKCRpbnB1dCkgJiYgaXNzZXQoJGlucHV0WydkaXZpc29yJ10pICkgewogICAgICAkYWRqID0gKGZsb2F0KSRpbnB1dFsnZGl2aXNvciddOwogICAgfQogICAgZWxzZSBpZiggaXNfYXJyYXkoJGlucHV0KSAmJiBjb3VudCgkaW5wdXQpID49IDEgKSB7CiAgICAgICRhZGogPSAoZmxvYXQpJGlucHV0WzBdOyAgIAogICAgfQogICAgJHRoaXMtPl9kaXZpc29yICs9IG1heCgtMTAsbWluKDEwLCRhZGopKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2Zvcm0oQ0dJbWFnZUJhc2UgJHNyYykKICB7CiAgICAvLyBjb3B5IHRoZSBpbWFnZSAocGl4ZWwgZm9yIHBpeGVsKQogICAgJF9kZXN0ID0gbmV3IENHSW1hZ2VCYXNlKCRzcmMpOwogICAgaW1hZ2Vjb3B5KCRfZGVzdFsncnNyYyddLCRzcmNbJ3JzcmMnXSwwLDAsMCwwLCRzcmNbJ3dpZHRoJ10sJHNyY1snaGVpZ2h0J10pOwogICAgaW1hZ2Vjb252b2x1dGlvbigkX2Rlc3RbJ3JzcmMnXSwkdGhpcy0+X21hdHJpeCwkdGhpcy0+X2Rpdmlzb3IsMCk7CiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Smooth_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovKioKICogU21vb3RoaW5nIEltYWdlIGltYWdlIGZpbHRlciBjbGFzcwogKiAKICogUGVyZm9ybXMgYSBzbW9vdGhpbmcgZmlsdGVyIG9uIHRoZSBzdXBwbGllZCBpbWFnZS4KICoKICogQGF1dGhvciBSb2JlcnQgQ2FtcGJlbGwgPGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmc+CiAqIEBwYWNrYWdlIENHU21hcnRJbWFnZQogKi8KY2xhc3MgQ0dJbWFnZV9TbW9vdGhfRmlsdGVyIGV4dGVuZHMgQ0dJbWFnZUZpbHRlckJhc2UKewogIC8qKgogICAqIFRoZSBTbW9vdGhpbmcgU2ljZQogICAqIEBhY2Nlc3MgcHJpdmF0ZQogICAqLwogIHByaXZhdGUgJF9zbW9vdGggPSAwOwoKICAvKioKICAgKiBDb25zdHJ1Y3Rvci4KICAgKgogICAqIFRoaXMgbWV0aG9kIGFjY2VwdHMgYSB2YXJpZXR5IG9mIHdheXMgb2Ygc3BlY2lmeWluZyB0aGUgc21vb3RobmVzcyBmYWN0b3IuCiAgICogaS5lOiAgJG9iaiA9IG5ldyBDR0ltYWdlX1Ntb290aF9GaWx0ZXIoMyk7CiAgICogaS5lOiAgJG9iaiA9IG5ldyBDR0ltYWdlX1Ntb290aF9GaWx0ZXIoYXJyYXkoMykpOwogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgvKiB2YXJpYWJsZSBhcmd1bWVudHMgKi8pCiAgewogICAgaWYoIGZ1bmNfbnVtX2FyZ3MoKSAhPSAxICkKICAgICAgewoJdGhyb3cgbmV3IEV4Y2VwdGlvbignSW52YWxpZCBhcmd1bWVudHMgdG8gJy5nZXRfY2xhc3MoJHRoaXMpKTsKICAgICAgfQoKICAgICRhcmdzID0gZnVuY19nZXRfYXJncygpOwogICAgJGFyZ3MgPSAkYXJnc1swXTsKICAgIGlmKCBpc19hcnJheSgkYXJncykgKQogICAgICB7CgkkdGhpcy0+X3Ntb290aCA9IChpbnQpJGFyZ3NbMF07CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHRoaXMtPl9zbW9vdGggPSAkYXJnczsKICAgICAgfQogIH0KCgogIC8qKgogICAqIFRyYW5zZm9ybSB0aGUgc3BlY2lmaWVkIGltYWdlIHVzaW5nIHRoZSBwYXJhbWV0ZXJzIHNldAogICAqCiAgICogQHBhcmFtIENHSW1hZ2VCYXNlIFRoZSBpbWFnZSB0byB0cmFuc2Zvcm0KICAgKiBAcmV0dXJuIENHSW1hZ2VCYXNlIFRoZSB0cmFuc2Zvcm1lZCBpbWFnZS4KICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gdHJhbnNmb3JtKENHSW1hZ2VCYXNlICRzcmMpCiAgewogICAgJF9kZXN0ID0gbmV3IENHSW1hZ2VCYXNlKCRzcmMpOwogICAgJHJlcyA9IGltYWdlZmlsdGVyKCRfZGVzdFsncnNyYyddLElNR19GSUxURVJfU01PT1RILCR0aGlzLT5fc21vb3RoKTsKCiAgICBpZiggISRyZXMgKQogICAgICB7Cgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdFcnJvciBhcHBseWluZyBmaWx0ZXIgJy5JTUdfRklMVEVSX1NNT09USCk7CiAgICAgIH0KICAgIHJldHVybiAkX2Rlc3Q7CiAgfQp9CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Transparent_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovKioKICogQ29udmVydHMgYW4gaW1hZ2UgdG8gdHJhbnNwYXJlbnQsIGJ5IHNwZWNpZnlpbmcgYSBjb2xvciB0aGF0IHNob3VsZCBiZWNvbWUgdGhlIHRyYW5zcGFyZW50IGNvbG9yLgogKiAKICogQGF1dGhvciBSb2JlcnQgQ2FtcGJlbGwgPGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmc+CiAqIEBwYWNrYWdlIENHU21hcnRJbWFnZQogKi8KY2xhc3MgQ0dJbWFnZV9UcmFuc3BhcmVudF9GaWx0ZXIgZXh0ZW5kcyBDR0ltYWdlRmlsdGVyQmFzZQp7CiAgLyoqCiAgICogVGhlIG51bWJlciBvZiBkZWdyZWVzIHRvIHJvdGF0ZQogICAqCiAgICogQGFjY2VzcyBwcml2YXRlCiAgICogQHZhciBpbnRlZ2VyCiAgICovCiAgcHJpdmF0ZSAkX2NvbG9yOwogIHByaXZhdGUgJF9hbHBoYSA9IDEyNzsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KC8qIHZhcmlhYmxlIGFyZ3VtZW50cyAqLykKICB7CiAgICAkYXJncyA9IGZ1bmNfZ2V0X2FyZ3MoKTsKICAgIGlmKCBpc19hcnJheSgkYXJnc1swXSkgJiYgY291bnQoJGFyZ3MpID09IDEpICRhcmdzID0gJGFyZ3NbMF07CiAgICBpZiggY291bnQoJGFyZ3MpID49IDEgKSAkdGhpcy0+X2NvbG9yID0gJGFyZ3NbMF07CiAgICBpZiggY291bnQoJGFyZ3MpID49IDIgKSAkdGhpcy0+X2FscGhhID0gKGludCkkYXJnc1sxXTsKCiAgICAkdGhpcy0+X2FscGhhID0gbWF4KDAsbWluKDEyNywkdGhpcy0+X2FscGhhKSk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gdHJhbnNmb3JtKENHSW1hZ2VCYXNlICRzcmMpCiAgewogICAgJHR5cGUgPSAnaW1hZ2UvcG5nJzsKICAgICRfZGVzdCA9IG5ldyBDR0ltYWdlQmFzZShhcnJheSgkdHlwZSwkc3JjWyd3aWR0aCddLCRzcmNbJ2hlaWdodCddKSk7CiAgICBpbWFnZWNvcHkoJF9kZXN0Wydyc3JjJ10sJHNyY1sncnNyYyddLDAsMCwwLDAsJHNyY1snd2lkdGgnXSwkc3JjWydoZWlnaHQnXSk7CiAgICBsaXN0KCRfciwkX2csJF9iKSA9IGNnc2lfdXRpbHM6OmNvbG9yX3RvX3JnYigkdGhpcy0+X2NvbG9yKTsKICAgICRjb2xvciA9IGltYWdlY29sb3JhbGxvY2F0ZWFscGhhKCRfZGVzdFsncnNyYyddLCRfciwkX2csJF9iLCR0aGlzLT5fYWxwaGEpOwogICAgaW1hZ2Vjb2xvcnRyYW5zcGFyZW50KCRfZGVzdFsncnNyYyddLCRjb2xvcik7CiAgICAkX2Rlc3RbJ3RyYW5zcGFyZW50J10gPSAkY29sb3I7CiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Untransparent_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovKioKICogQ29udmVydHMgYSB0cmFuc3BhcmVudCBpbWFnZSB0byB1bnRyYW5zcGFyZW50LCBieSBzcGVjaWZ5aW5nIGEgY29sb3IgdGhhdCBzaG91bGQgYmVjb21lIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLgogKiAKICogQGF1dGhvciBSb2JlcnQgQ2FtcGJlbGwgPGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmc+CiAqIEBwYWNrYWdlIENHU21hcnRJbWFnZQogKi8KY2xhc3MgQ0dJbWFnZV9VbnRyYW5zcGFyZW50X0ZpbHRlciBleHRlbmRzIENHSW1hZ2VGaWx0ZXJCYXNlCnsKICAvKioKICAgKiBUaGUgbnVtYmVyIG9mIGRlZ3JlZXMgdG8gcm90YXRlCiAgICoKICAgKiBAYWNjZXNzIHByaXZhdGUKICAgKiBAdmFyIGludGVnZXIKICAgKi8KICBwcml2YXRlICRfY29sb3I7CiAgcHJpdmF0ZSAkX3BjdCA9IDEwMDsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KC8qIHZhcmlhYmxlIGFyZ3VtZW50cyAqLykKICB7CiAgICAkYXJncyA9IGZ1bmNfZ2V0X2FyZ3MoKTsKICAgIGlmKCBpc19hcnJheSgkYXJnc1swXSkgJiYgY291bnQoJGFyZ3MpID09IDEpICRhcmdzID0gJGFyZ3NbMF07CiAgICBpZiggY291bnQoJGFyZ3MpID49IDEgKSAkdGhpcy0+X2NvbG9yID0gJGFyZ3NbMF07CiAgICBpZiggY291bnQoJGFyZ3MpID49IDIgKSAkdGhpcy0+X3BjdCA9IChpbnQpJGFyZ3NbMV07CgogICAgJHRoaXMtPl9wY3QgPSBtYXgoMCxtaW4oMTAwLCR0aGlzLT5fcGN0KSk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gdHJhbnNmb3JtKENHSW1hZ2VCYXNlICRzcmMpCiAgewogICAgJHR5cGUgPSAnaW1hZ2UvanBlZyc7CiAgICBpZiggIWZ1bmN0aW9uX2V4aXN0cygnaW1hZ2Vyb3RhdGUnKSApIHRocm93IG5ldyBFeGNlcHRpb24oJ2ltYWdlcm90YXRlIGZ1bmN0aW9uIG5vdCBmb3VuZCcpOwogICAgJF9kZXN0ID0gbmV3IENHSW1hZ2VCYXNlKGFycmF5KCR0eXBlLCRzcmNbJ3dpZHRoJ10sJHNyY1snaGVpZ2h0J10pKTsKICAgIGxpc3QoJF9yLCRfZywkX2IpID0gY2dzaV91dGlsczo6Y29sb3JfdG9fcmdiKCR0aGlzLT5fY29sb3IpOwogICAgJGNvbG9yID0gaW1hZ2Vjb2xvcmFsbG9jYXRlKCRfZGVzdFsncnNyYyddLCRfciwkX2csJF9iKTsKICAgIGltYWdlZmlsbCgkX2Rlc3RbJ3JzcmMnXSwwLDAsJGNvbG9yKTsKICAgIGlmKCAkdGhpcy0+X3BjdCA9PSAxMDAgKSB7CiAgICAgIGltYWdlY29weSgkX2Rlc3RbJ3JzcmMnXSwkc3JjWydyc3JjJ10sIDAsIDAsIDAsIDAsICRzcmNbJ3dpZHRoJ10sICRzcmNbJ2hlaWdodCddKTsKICAgIH0KICAgIGVsc2UgewogICAgICBpbWFnZWNvcHltZXJnZSgkX2Rlc3RbJ3JzcmMnXSwkc3JjWydyc3JjJ10sIDAsIDAsIDAsIDAsICRzcmNbJ3dpZHRoJ10sICRzcmNbJ2hlaWdodCddLCR0aGlzLT5fcGN0KTsKICAgIH0KICAgIHJldHVybiAkX2Rlc3Q7CiAgfQp9CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImage_Watermark_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgQ0dJbWFnZV9XYXRlcm1hcmtfRmlsdGVyIGV4dGVuZHMgQ0dJbWFnZUZpbHRlckJhc2UKewogIHByaXZhdGUgJF93bWltZyA9IG51bGw7CiAgcHJpdmF0ZSAkX3dtaW5mbyA9IG51bGw7CiAgcHJpdmF0ZSAkX2htYXJnaW4gPSA0MDsKICBwcml2YXRlICRfdm1hcmdpbiA9IDQwOwogIHByaXZhdGUgJF9oZWlnaHQgPSBudWxsOwogIHByaXZhdGUgJF93aWR0aCA9IG51bGw7CiAgcHJpdmF0ZSAkX2FsaWduID0gY2dfd2F0ZXJtYXJrOjpBTElHTl9NQzsKICBwcml2YXRlICRfdHJhbnNsdWNlbmN5ID0gNTA7CiAgcHJpdmF0ZSAkX3VzZV9tZXJnZSA9IGZhbHNlOwoKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQogIHsKICAgICAgJGNnZSA9IGNnZV91dGlsczo6Z2V0X2NnZSgpOwogICAgICAkdHh0ID0gJGNnZS0+R2V0UHJlZmVyZW5jZSgnd2F0ZXJtYXJrX3RleHQnKTsKICAgICAgJGltZyA9ICRjZ2UtPkdldFByZWZlcmVuY2UoJ3dhdGVybWFya19maWxlJyk7CiAgICAgICR0aGlzLT5fYWxpZ24gPSAkY2dlLT5HZXRQcmVmZXJlbmNlKCd3YXRlcm1hcmtfYWxpZ25tZW50JyxjZ193YXRlcm1hcms6OkFMSUdOX01DKTsKICAgICAgJHRoaXMtPl90cmFuc2x1Y2VuY3kgPSAkY2dlLT5HZXRQcmVmZXJlbmNlKCd3YXRlcm1hcmtfdHJhbnNsdWNlbmN5Jyw1MCk7CgogICAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CgogICAgICBpZiggIWVtcHR5KCRpbWcpICYmIGZpbGVfZXhpc3RzKGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJGltZykpICkKICAgICAgewogICAgICAgICAgJHRtcCA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJGltZyk7CiAgICAgICAgICAkdGhpcy0+X3dtaW5mbyA9IGdldGltYWdlc2l6ZSgkdG1wKTsKICAgICAgICAgICR0aGlzLT5fd2lkdGggPSAkdGhpcy0+X3dtaW5mb1swXTsKICAgICAgICAgICR0aGlzLT5faGVpZ2h0ID0gJHRoaXMtPl93bWluZm9bMV07CiAgICAgICAgICAkZGF0YSA9IEBmaWxlX2dldF9jb250ZW50cygkdG1wKTsKICAgICAgICAgICR0aGlzLT5fd21pbWcgPSBpbWFnZWNyZWF0ZWZyb21zdHJpbmcoJGRhdGEpOwogICAgICB9CiAgICAgIGVsc2UgaWYoICFlbXB0eSgkdHh0KSApCiAgICAgIHsKICAgICAgICAgICRmb250ID0gJGNnZS0+R2V0UHJlZmVyZW5jZSgnd2F0ZXJtYXJrX2ZvbnQnKTsKICAgICAgICAgIGlmKCAhc3RhcnRzd2l0aCgkZm9udCwnLycpICkgJGZvbnQgPSAkY2dlLT5HZXRNb2R1bGVQYXRoKCkuJy9mb250cy8nLiRmb250OwogICAgICAgICAgJHNpemUgPSAkY2dlLT5HZXRQcmVmZXJlbmNlKCd3YXRlcm1hcmtfdGV4dHNpemUnKTsKICAgICAgICAgICRhbmdsID0gJGNnZS0+R2V0UHJlZmVyZW5jZSgnd2F0ZXJtYXJrX3RleHRhbmdsZScsMCk7CiAgICAgICAgICAkYW5nbCA9IChmbG9hdCkkYW5nbDsKICAgICAgICAgICRmY2xyID0gJGNnZS0+R2V0UHJlZmVyZW5jZSgnd2F0ZXJtYXJrX3RleHRjb2xvcicsJyMwMDAwMDAnKTsKICAgICAgICAgICRiY2xyID0gJGNnZS0+R2V0UHJlZmVyZW5jZSgnd2F0ZXJtYXJrX2JnY29sb3InLCcjZmZmZmZmJyk7CiAgICAgICAgICAkdHBudCA9ICRjZ2UtPkdldFByZWZlcmVuY2UoJ3dhdGVybWFya190cmFuc3BhcmVudCcsMSk7CgogICAgICAgICAgaWYoICEkZm9udCB8fCAhJHNpemUgKQogICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0luc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBnZW5lcmF0ZSB3YXRhcm1hcmsuLi4gRW5zdXJlIHdhdGVybWFyayBwcmVmZXJlbmNlcyBhcmUgc2V0IGluIENHRXh0ZW5zaW9ucycpOwoKLy8gY2FsY3VsYXRlIGEgc2l6ZSBmb3IgdGhlIGltYWdlCiAgICAgICAgICAkdG1wID0gaW1hZ2VmdGJib3goJHNpemUsJGFuZ2wsJGZvbnQsJHR4dCk7CiAgICAgICAgICAkdGhpcy0+X3dpZHRoID0gYWJzKCR0bXBbMF0pK2FicygkdG1wWzJdKSskdGhpcy0+X2htYXJnaW47CiAgICAgICAgICAkdGhpcy0+X2hlaWdodCA9IGFicygkdG1wWzFdKSthYnMoJHRtcFs1XSkrJHRoaXMtPl92bWFyZ2luOwoKLy8gY3JlYXRlIHRoZSBpbWFnZS4KICAgICAgICAgICR0aGlzLT5fd21pbWcgPSBpbWFnZWNyZWF0ZXRydWVjb2xvcigkdGhpcy0+X3dpZHRoLCR0aGlzLT5faGVpZ2h0KTsKICAgICAgICAgICR0aGlzLT5fdXNlX21lcmdlID0gdHJ1ZTsKCi8vIGJnY29sb3IKICAgICAgICAgICRyID0gaGV4ZGVjKHN1YnN0cigkYmNsciwxLDIpKTsgJGcgPSBoZXhkZWMoc3Vic3RyKCRiY2xyLDMsMikpOyAkYiA9IGhleGRlYyhzdWJzdHIoJGJjbHIsNSwyKSk7CiAgICAgICAgICAkYmMgPSBpbWFnZWNvbG9yYWxsb2NhdGVhbHBoYSgkdGhpcy0+X3dtaW1nLCRyLCRnLCRiLCgkdHBudCk/MDoxMjcpOwovLyBmaWxsIHRoZSBiYWNrZ3JvdW5kCiAgICAgICAgICBpbWFnZWZpbGxlZHJlY3RhbmdsZSgkdGhpcy0+X3dtaW1nLDAsMCwkdGhpcy0+X3dpZHRoLTEsJHRoaXMtPl9oZWlnaHQtMSwkYmMpOwovLyBtYWtlIHRoZSBiYWNrZ3JvdW5kIHRyYW5zcGFyZW50LgogICAgICAgICAgaWYoICR0cG50ICkgaW1hZ2Vjb2xvcnRyYW5zcGFyZW50KCR0aGlzLT5fd21pbWcsJGJjKTsKCi8vIGRyYXcgdGhlIGZvcmVncm91bmQgdGV4dAogICAgICAgICAgJHIgPSBoZXhkZWMoc3Vic3RyKCRmY2xyLDEsMikpOyAkZyA9IGhleGRlYyhzdWJzdHIoJGZjbHIsMywyKSk7ICRiID0gaGV4ZGVjKHN1YnN0cigkZmNsciw1LDIpKTsKICAgICAgICAgICRmYyA9IGltYWdlY29sb3JhbGxvY2F0ZSgkdGhpcy0+X3dtaW1nLCRyLCRnLCRiKTsKICAgICAgICAgICRyZXMgPSBpbWFnZVRURlRleHQoJHRoaXMtPl93bWltZywkc2l6ZSwkYW5nbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoJHRoaXMtPl9obWFyZ2luLzIpLChpbnQpKCR0aGlzLT5faGVpZ2h0IC0gJHRoaXMtPl92bWFyZ2luLzIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZmMsJGZvbnQsJHR4dCk7Cn0KICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gdHJhbnNmb3JtKENHSW1hZ2VCYXNlICRpbWFnZSkKICB7CiAgICAgICRfZGVzdCA9IG5ldyBDR0ltYWdlQmFzZSgkaW1hZ2UpOwogICAgICBpZiggJGltYWdlWyd3aWR0aCddIDwgJHRoaXMtPl93aWR0aCB8fCAkaW1hZ2VbJ2hlaWdodCddIDwgJHRoaXMtPl9oZWlnaHQgKSByZXR1cm4gJF9kZXN0OwoKICAgICAgLy8gRmluZCBvdXQgdGhlIHBsYWNlbWVudCBvZiB0aGUgd2F0ZXJtYXJrCiAgICAgIC8vIG9uIHRoZSByZXN1bHQgaW1hZ2UKICAgICAgJHBvc3ggPSAnJzsKICAgICAgJHBvc3kgPSAnJzsKICAgICAgJGN4ID0gKCRpbWFnZVsnd2lkdGgnXSAtICR0aGlzLT5fd2lkdGgpLzI7CiAgICAgICRjeSA9ICgkaW1hZ2VbJ2hlaWdodCddIC0gJHRoaXMtPl9oZWlnaHQpLzI7CiAgICAgIHN3aXRjaCggJHRoaXMtPl9hbGlnbiApIHsKICAgICAgY2FzZSBjZ193YXRlcm1hcms6OkFMSUdOX1VMOgogICAgICAgICAgJHBvc3ggPSAoaW50KSR0aGlzLT5fcGFkZGluZ194OwogICAgICAgICAgJHBvc3kgPSAoaW50KSR0aGlzLT5fcGFkZGluZ195OwogICAgICAgICAgYnJlYWs7CgogICAgICBjYXNlIGNnX3dhdGVybWFyazo6QUxJR05fVUM6CiAgICAgICAgICAkcG9zeCA9ICRjeDsKICAgICAgICAgICRwb3N5ID0gKGludCkkdGhpcy0+X3BhZGRpbmdfeTsKICAgICAgICAgIGJyZWFrOwoKICAgICAgY2FzZSBjZ193YXRlcm1hcms6OkFMSUdOX1VSOgogICAgICAgICAgJHBvc3ggPSAoaW50KSgkaW1hZ2VbJ3dpZHRoJ10gLSAkdGhpcy0+X3dpZHRoKTsKICAgICAgICAgICRwb3N5ID0gMDsKICAgICAgICAgIGJyZWFrOwoKICAgICAgY2FzZSBjZ193YXRlcm1hcms6OkFMSUdOX01MOgogICAgICAgICAgJHBvc3ggPSAwOwogICAgICAgICAgJHBvc3kgPSAoaW50KSRjeTsKICAgICAgICAgIGJyZWFrOwoKICAgICAgY2FzZSBjZ193YXRlcm1hcms6OkFMSUdOX01DOgogICAgICAgICAgJHBvc3ggPSAoaW50KSRjeDsKICAgICAgICAgICRwb3N5ID0gKGludCkkY3k7CiAgICAgICAgICBicmVhazsKCiAgICAgIGNhc2UgY2dfd2F0ZXJtYXJrOjpBTElHTl9NUjoKICAgICAgICAgICRwb3N4ID0gKGludCkoJGltYWdlWyd3aWR0aCddIC0gJHRoaXMtPl93aWR0aCk7CiAgICAgICAgICAkcG9zeSA9IChpbnQpJGN5OwogICAgICAgICAgYnJlYWs7CgogICAgICBjYXNlIGNnX3dhdGVybWFyazo6QUxJR05fTEw6CiAgICAgICAgICAkcG9zeCA9IChpbnQpMDsKICAgICAgICAgICRwb3N5ID0gKGludCkoJGltYWdlWydoZWlnaHQnXSAtICR0aGlzLT5faGVpZ2h0KTsKICAgICAgICAgIGJyZWFrOwoKICAgICAgY2FzZSBjZ193YXRlcm1hcms6OkFMSUdOX0xDOgogICAgICAgICAgJHBvc3ggPSAoaW50KSRjeDsKICAgICAgICAgICRwb3N5ID0gKGludCkoJGltYWdlWydoZWlnaHQnXSAtICR0aGlzLT5faGVpZ2h0KTsKICAgICAgICAgIGJyZWFrOwoKICAgICAgY2FzZSBjZ193YXRlcm1hcms6OkFMSUdOX0xSOgogICAgICBkZWZhdWx0OgogICAgICAgICAgJHBvc3ggPSAoaW50KSgkaW1hZ2VbJ3dpZHRoJ10gLSAkdGhpcy0+X3dpZHRoKTsKICAgICAgICAgICRwb3N5ID0gKGludCkoJGltYWdlWydoZWlnaHQnXSAtICR0aGlzLT5faGVpZ2h0KTsKICAgICAgICAgIGJyZWFrOwogICAgICB9CgogICAgICBpZiggJHBvc3ggPT09ICcnIHx8ICRwb3N5ID09PSAnJyApIHRocm93IG5ldyBFeGNlcHRpb24oJ0Vycm9yIGFwcGx5aW5nIGZpbHRlciAod2F0ZXJtYXJrKSAtIGNvdWxkIG5vdCBjYWxjdWxhdGUgcG9zaXRpb24nKTsKCiAgICAgICRyZXMgPSAnJzsKICAgICAgaW1hZ2VhbHBoYWJsZW5kaW5nKCR0aGlzLT5fd21pbWcsRkFMU0UpOwogICAgICBpZiggJHRoaXMtPl91c2VfbWVyZ2UgKSB7CiAgICAgICAgICAkcmVzID0gaW1hZ2Vjb3B5bWVyZ2UoJF9kZXN0Wydyc3JjJ10sJHRoaXMtPl93bWltZywkcG9zeCwkcG9zeSwgMCwwLCR0aGlzLT5fd2lkdGgsJHRoaXMtPl9oZWlnaHQsJHRoaXMtPl90cmFuc2x1Y2VuY3kpOwogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgICAgaW1hZ2VzYXZlYWxwaGEoJHRoaXMtPl93bWltZyxUUlVFKTsKICAgICAgICAgICRyZXMgPSBpbWFnZWNvcHlyZXNhbXBsZWQoJF9kZXN0Wydyc3JjJ10sJHRoaXMtPl93bWltZywkcG9zeCwkcG9zeSwgMCwwLCR0aGlzLT5fd2lkdGgsJHRoaXMtPl9oZWlnaHQsJHRoaXMtPl93aWR0aCwkdGhpcy0+X2hlaWdodCk7CiAgICAgIH0KCiAgICAgIGlmKCBpc19yZXNvdXJjZSgkdGhpcy0+X3dtaW1nKSApIGltYWdlZGVzdHJveSgkdGhpcy0+X3dtaW1nKTsKICAgICAgcmV0dXJuICRfZGVzdDsKICB9Cn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsi_DeviceAtlasPersonal_client.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBjZ3NpX0RldmljZUF0bGFzUGVyc29uYWxfY2xpZW50IGV4dGVuZHMgY2dzaV9kZXZpY2VjYXBhYmlsaXRpZXNfY2xpZW50IAp7CiAgY29uc3QgcmVxdWVzdF91cmwgPSAnaHR0cDovL2RldmljZWF0bGFzLmFwcHNwb3QuY29tL3F1ZXJ5JzsKCiAgcHVibGljIGZ1bmN0aW9uIGdldF9kZXZpY2VfcmVzb2x1dGlvbigpCiAgewogICAgJGNsaWVudCA9IGNnZV9odHRwOjpnZXRfaHR0cCgpOwogICAgJGNsaWVudC0+c2V0TWV0aG9kKCdHRVQnKTsKICAgICRjbGllbnQtPnNldFRhcmdldChzZWxmOjpyZXF1ZXN0X3VybCk7CiAgICAkY2xpZW50LT5hZGRQYXJhbSgnVXNlci1BZ2VudCcsJHRoaXMtPmdldF9hZ2VudCgpKTsKICAgICRqc29uID0gJGNsaWVudC0+ZXhlY3V0ZSgpOwogICAgaWYoICEkanNvbiApIHsKICAgICAgLy8gbm8gZGF0YSwgcHJvYmFibHkgYSA0MDQgb3Igc29tZSBvdGhlciBlcnJvcgogICAgICByZXR1cm47CiAgICB9CiAgICAKICAgIC8vIGNvdWxkIGJlIHRyYWNraW5nIGZhaWx1cmVzIGhlcmUKCiAgICAkZGF0YSA9IGpzb25fZGVjb2RlKCRqc29uLFRSVUUpOwogICAgaWYoICFpc3NldCgkZGF0YVsnZGlzcGxheVdpZHRoJ10pIHx8ICFpc3NldCgkZGF0YVsnZGlzcGxheUhlaWdodCddKSApIHsKICAgICAgLy8gaW52YWxpZCBkYXRhLgogICAgICByZXR1cm47CiAgICB9CgogICAgLy8gd29vdCwgaXQgd29ya2VkLgogICAgJHJlcyA9IGFycmF5KCk7CiAgICAkcmVzWyd3aWR0aCddID0gJGRhdGFbJ2Rpc3BsYXlXaWR0aCddOwogICAgJHJlc1snaGVpZ2h0J10gPSAkZGF0YVsnZGlzcGxheUhlaWdodCddOwogICAgcmV0dXJuICRyZXM7CiAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsi_devicecapabilities_client.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgphYnN0cmFjdCBjbGFzcyBjZ3NpX2RldmljZWNhcGFiaWxpdGllc19jbGllbnQgCnsKICBwcml2YXRlICRfYWdlbnQ7CgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkdXNlcl9hZ2VudCkKICB7CiAgICAkdGhpcy0+X2FnZW50ID0gJHVzZXJfYWdlbnQ7CiAgfQoKICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2FnZW50KCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9hZ2VudDsKICB9CgogIC8vIHJldHVybiBhcnJheSBvZiB3aWR0aCwgaGVpZ2h0IChpbiBwaXhlbHMpLCBvciBudWxsCiAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGdldF9kZXZpY2VfcmVzb2x1dGlvbigpOwp9IC8vIGVuZCBvZiBpbnRlcmZhY2UKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsi_extended.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMyBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpmaW5hbCBjbGFzcyBjZ3NpX2V4dGVuZGVkCnsKICBwcml2YXRlIGZ1bmN0aW9uIF9fY29uc3N0cnVjdCgpIHt9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2dzaV9nZXRpbWFnZXMoJHBhcmFtcywkY29udGVudCwmJHNtYXJ0eSwkcmVwZWF0KQogIHsKICAgIGlmKCAhJGNvbnRlbnQgKSByZXR1cm47CgogICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dTbWFydEltYWdlJyk7CiAgICAkb2xkX2Vycm9ydmFsID0gbGlieG1sX3VzZV9pbnRlcm5hbF9lcnJvcnModHJ1ZSk7CiAgICAkZG9tID0gbmV3IENHRG9tRG9jdW1lbnQoKTsKICAgICRkb20tPnN0cmljdEVycm9yQ2hlY2tpbmcgPSBGQUxTRTsKICAgICRkb20tPnZhbGlkYXRlT25QYXJzZSA9IEZBTFNFOwogICAgaWYoIGZ1bmN0aW9uX2V4aXN0cygnbWJfY29udmVydF9lbmNvZGluZycpICkgJGNvbnRlbnQgPSBtYl9jb252ZXJ0X2VuY29kaW5nKCRjb250ZW50LCAnSFRNTC1FTlRJVElFUycsICdVVEYtOCcpOwogICAgJGRvbS0+bG9hZEhUTUwoJGNvbnRlbnQpOwoKICAgICRpbWdzID0gJGRvbS0+R2V0RWxlbWVudHNCeVRhZ05hbWUoJ2ltZycpOwogICAgaWYoIGlzX29iamVjdCgkaW1ncykgJiYgJGltZ3MtPmxlbmd0aCApIHsKICAgICAgJG91dCA9IGFycmF5KCk7CiAgICAgIGZvciggJGkgPSAwOyAkaSA8ICRpbWdzLT5sZW5ndGg7ICRpKysgKSB7Cgkkbm9kZSA9ICRpbWdzLT5pdGVtKCRpKTsKCSRzeGUgPSBzaW1wbGV4bWxfaW1wb3J0X2RvbSgkbm9kZSk7CgoJJHJlYyA9IGFycmF5KCk7CgkkcmVjWyd0YWcnXSA9ICRzeGUtPmFzWE1MKCk7Cglmb3JlYWNoKCAkc3hlLT5hdHRyaWJ1dGVzKCkgYXMgJG5hbWUgPT4gJHZhbHVlICkgewoJICAkdmFsdWUgPSAoc3RyaW5nKSR2YWx1ZTsKCSAgaWYoICR2YWx1ZSA9PSAnJyApIGNvbnRpbnVlOwoJICAkcmVjWyRuYW1lXSA9ICR2YWx1ZTsKCX0KCSRvdXRbXSA9ICRyZWM7CiAgICAgIH0KCiAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydhc3NpZ24nXSkgKSAkc21hcnR5LT5hc3NpZ24oJHBhcmFtc1snYXNzaWduJ10sJG91dCk7CiAgICB9CgogICAgJGltYWdlc29ubHkgPSBjbXNfdG9fYm9vbChnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsJ2ltYWdlc29ubHknKSk7CiAgICAkbm9jb250ZW50ID0gY21zX3RvX2Jvb2woZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCdub2NvbnRlbnQnKSk7OwogICAgaWYoICEkbm9jb250ZW50ICkgewogICAgICBpZiggJGltYWdlc29ubHkgKSB7CgkkY29udGVudCA9ICcnOwoJZm9yZWFjaCggJG91dCBhcyAkcmVjICkgewoJICAkY29udGVudCAuPSAkcmVjWyd0YWcnXTsKCX0KICAgICAgfQogICAgICByZXR1cm4gJGNvbnRlbnQ7CiAgICB9CiAgfQoKfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsi_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKZmluYWwgY2xhc3MgY2dzaV91dGlscwp7CiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7fQogICAgc3RhdGljIHByaXZhdGUgJF9kZXZpY2VfZGF0YTsKCiAgICAvKioKICAgICAqIEdpdmVuIGEgZmFpcmx5IGxvb3NlIGltYWdlIHR5cGUgaWRlbnRpZmllciAoZWl0aGVyIGFuIGV4dGVuc2lvbiwgb3IgYSBtaW1lIHR5cGUgdGhhdCBjb3VsZCBiZSBzb21ld2hhdCBtaXMtc3BlbGxlZAogICAgICogYXR0ZW1wdCB0byByZXR1cm4gYSByZWFzb25hYmxlIG1pbWUgdHlwZQogICAgICovCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBwYXJzZV90eXBlKCRzdHIsJGRmbHQgPSAnaW1hZ2UvcG5nJykKICAgIHsKICAgICAgICAkc3RyID0gc3RydG9sb3dlcigkc3RyKTsKICAgICAgICB3aGlsZSggc3RhcnRzd2l0aCgkc3RyLCcuJykgKSAkc3RyID0gc3Vic3RyKCRzdHIsMSk7CgogICAgICAgIHN3aXRjaCggJHN0ciApIHsKICAgICAgICBjYXNlICdpbWFnZS9qcGVnJzoKICAgICAgICBjYXNlICdpbWFnZS9wbmcnOgogICAgICAgIGNhc2UgJ2ltYWdlL2dpZic6CiAgICAgICAgY2FzZSAnaW1hZ2UvYm1wJzoKICAgICAgICBjYXNlICdpbWFnZS93ZWJwJzoKICAgICAgICAgICAgcmV0dXJuICRzdHI7CiAgICAgICAgY2FzZSAnaW1hZ2UveC13aW5kb3dzLWJtcCc6CiAgICAgICAgY2FzZSAnaW1hZ2UveC1tcy1ibXAnOgogICAgICAgICAgICByZXR1cm4gJ2ltYWdlL2JtcCc7CiAgICAgICAgY2FzZSAnaW1hZ2UvanBnJzoKICAgICAgICBjYXNlICdqcGVnJzoKICAgICAgICBjYXNlICdqcGcnOgogICAgICAgICAgICByZXR1cm4gJ2ltYWdlL2pwZWcnOwogICAgICAgIGNhc2UgJ3BuZyc6CiAgICAgICAgICAgIHJldHVybiAnaW1hZ2UvcG5nJzsKICAgICAgICBjYXNlICdnaWYnOgogICAgICAgICAgICByZXR1cm4gJ2ltYWdlL2dpZic7CiAgICAgICAgY2FzZSAnYm1wJzoKICAgICAgICAgICAgcmV0dXJuICdpbWFnZS9ibXAnOwogICAgICAgIGNhc2UgJ3dlYnAnOgogICAgICAgICAgICByZXR1cm4gJ2ltYWdlL3dlYnAnOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHJldHVybiAkZGZsdDsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBHaXZlbiBhIG1pbWUgdHlwZSBmb3Igb3Iga25vd24gaW1hZ2UgZm9ybWF0cywgcmV0dXJuIGFuIGV4dGVuc2lvbgogICAgICovCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBnZXRfZXh0ZW5zaW9uKCRtaW1lX3R5cGUpCiAgICB7CiAgICAgICAgJG1hcCA9IGFycmF5KCdpbWFnZS9qcGVnJz0+Jy5qcGcnLAogICAgICAgICAgICAgICAgICAgICAnaW1hZ2UvcG5nJz0+Jy5wbmcnLAogICAgICAgICAgICAgICAgICAgICAnaW1wYWdlL2JtcCc9PicuYm1wJywKICAgICAgICAgICAgICAgICAgICAgJ2ltYWdlL2dpZic9PicuZ2lmJyk7CiAgICAgICAgaWYoIGlzc2V0KCRtYXBbJG1pbWVfdHlwZV0pICkgcmV0dXJuICRtYXBbJG1pbWVfdHlwZV07CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gdGhlIG9wdGlvbnMgZm9yIGEgcGFydGljdWxhciBhbGlhcwogICAgICovCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBfZ2V0X2FsaWFzX29wdGlvbnMoJG5hbWUpCiAgICB7CiAgICAgICAgc3RhdGljICRhbGlhc2VzOwogICAgICAgIGlmKCAhJGFsaWFzZXMgKSB7CiAgICAgICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHU21hcnRJbWFnZScpOwogICAgICAgICAgICAkdG1wID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnYWxpYXNlcycpOwogICAgICAgICAgICAkYWxpYXNlcyA9ICdGQUxTRSc7CiAgICAgICAgICAgIGlmKCAkdG1wICkgJGFsaWFzZXMgPSB1bnNlcmlhbGl6ZSgkdG1wKTsKICAgICAgICB9CiAgICAgICAgaWYoIGlzX2FycmF5KCRhbGlhc2VzKSApIHsKICAgICAgICAgICAgJGtleXMgPSBhcnJheV9rZXlzKCRhbGlhc2VzKTsKICAgICAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGtleXMpOyAkaSsrICkgewogICAgICAgICAgICAgICAgJGtleSA9ICRrZXlzWyRpXTsKICAgICAgICAgICAgICAgIGlmKCAkYWxpYXNlc1ska2V5XVsnbmFtZSddID09ICRuYW1lICkgcmV0dXJuICRhbGlhc2VzWyRrZXldWydvcHRpb25zJ107CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX2V4cGFuZF9xdW90ZWRfc3RyaW5nKCRzdHIpCiAgICB7CiAgICAgICAgJHJlc3VsdCA9IGFycmF5KCk7CiAgICAgICAgJGNvbCA9ICcnOwogICAgICAgICRzYWZlID0gJyc7CiAgICAgICAgJHByZXZfY2hhciA9ICcnOwogICAgICAgIGZvciggJGkgPSAwOyAkaSA8IHN0cmxlbigkc3RyKTsgJGkrKyApIHsKICAgICAgICAgICAgc3dpdGNoKCAkc3RyWyRpXSApIHsKICAgICAgICAgICAgY2FzZSAnICc6CiAgICAgICAgICAgICAgICBpZiggISRzYWZlICkgewogICAgICAgICAgICAgICAgICAgIGlmKCBzdHJwb3MoJGNvbCwnPScpICE9PSBGQUxTRSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCgkaywkdikgPSBleHBsb2RlKCc9JywkY29sLDIpOwogICAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0WyRrXSA9ICR2OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkY29sID0gJyc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkY29sIC49ICRzdHJbJGldOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICInIjoKICAgICAgICAgICAgY2FzZSAnIic6CiAgICAgICAgICAgICAgICBpZiggJHByZXZfY2hhciAhPSAnXFwnICkgewogICAgICAgICAgICAgICAgICAgIGlmKCAkc3RyWyRpXSA9PSAkc2FmZSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHNhZmUgPSBudWxsOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHNhZmUgPSAkc3RyWyRpXTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICRjb2wgLj0gJHN0clskaV07CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHByZXZfY2hhciA9ICRzdHJbJGldOwogICAgICAgIH0KCiAgICAgICAgaWYoIHN0cmxlbigkY29sKSAhPSAwICkgewogICAgICAgICAgICBpZiggc3RycG9zKCRjb2wsJz0nKSAhPT0gRkFMU0UgKSB7CiAgICAgICAgICAgICAgICBsaXN0KCRrLCR2KSA9IGV4cGxvZGUoJz0nLCRjb2wsMik7CiAgICAgICAgICAgICAgICAkcmVzdWx0WyRrXSA9ICR2OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KCgogICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX2lzX3N0eWxlc2hlZXQoKQogICAgewogICAgICAgICR0bXAgPSBkZWJ1Z19iYWNrdHJhY2UoKTsKICAgICAgICBmb3JlYWNoKCAkdG1wIGFzICRlbGVtICkgewogICAgICAgICAgICBpZiggaXNzZXQoJGVsZW1bJ2Z1bmN0aW9uJ10pICYmICRlbGVtWydmdW5jdGlvbiddID09ICdzbWFydHlfY21zX2Z1bmN0aW9uX2Ntc19zdHlsZXNoZWV0JyApIHJldHVybiBUUlVFOwogICAgICAgIH0KICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY29sb3JfdG9fcmdiKCRzdHIpCiAgICB7CiAgICAgICAgJHN0ciA9IHRyaW0oJHN0cik7CiAgICAgICAgJHJlcyA9IGFycmF5KDAsMCwwKTsKCiAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJHN0ciwnIycpICYmIHN0cmxlbigkc3RyKSA9PSA0ICkgewogICAgICAgICAgICAkciA9IHN1YnN0cigkc3RyLDEsMSk7ICRyID0gJHIuJHI7CiAgICAgICAgICAgICRnID0gc3Vic3RyKCRzdHIsMiwxKTsgJGcgPSAkZy4kZzsKICAgICAgICAgICAgJGIgPSBzdWJzdHIoJHN0ciwzLDEpOyAkYiA9ICRiLiRiOwogICAgICAgICAgICAkcmVzWzBdID0gaGV4ZGVjKCRyKTsKICAgICAgICAgICAgJHJlc1sxXSA9IGhleGRlYygkZyk7CiAgICAgICAgICAgICRyZXNbMl0gPSBoZXhkZWMoJGIpOwogICAgICAgICAgICByZXR1cm4gJHJlczsKICAgICAgICB9CgogICAgICAgIGlmKCBzdGFydHN3aXRoKCRzdHIsJyMnKSAmJiBzdHJsZW4oJHN0cikgPT0gNyApIHsKICAgICAgICAgICAgJHJlc1swXSA9IGhleGRlYyhzdWJzdHIoJHN0ciwxLDIpKTsKICAgICAgICAgICAgJHJlc1sxXSA9IGhleGRlYyhzdWJzdHIoJHN0ciwzLDIpKTsKICAgICAgICAgICAgJHJlc1syXSA9IGhleGRlYyhzdWJzdHIoJHN0ciw1LDIpKTsKICAgICAgICAgICAgcmV0dXJuICRyZXM7CiAgICAgICAgfQoKICAgICAgICAkdG1wID0gZXhwbG9kZSgnOicsJHN0ciwzKTsKICAgICAgICBpZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgPT0gMyAmJiBpc19udW1lcmljKCR0bXBbMF0pICYmIGlzX251bWVyaWMoJHRtcFsxXSkgJiYgaXNfbnVtZXJpYygkdG1wWzFdKSApIHsKICAgICAgICAgICAgJHJlc1swXSA9IChpbnQpJHRtcFswXTsKICAgICAgICAgICAgJHJlc1sxXSA9IChpbnQpJHRtcFsxXTsKICAgICAgICAgICAgJHJlc1syXSA9IChpbnQpJHRtcFsyXTsKICAgICAgICAgICAgcmV0dXJuICRyZXM7CiAgICAgICAgfQoKICAgICAgICAvLyBhc3N1bWUgaXQncyBhIGNvbG9yIG5hbWUuCiAgICAgICAgc3RhdGljICRfY29sb3JzOwogICAgICAgIGlmKCAhaXNfYXJyYXkoJF9jb2xvcnMpICkgewogICAgICAgICAgICAkZm4gPSBfX0RJUl9fLicvY29sb3JzLmRhdCc7CiAgICAgICAgICAgICRkYXRhID0gZmlsZSgkZm4pOwogICAgICAgICAgICBpZiggY291bnQoJGRhdGEpICkgewogICAgICAgICAgICAgICAgJF9jb2xvcnMgPSBhcnJheSgpOwogICAgICAgICAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGRhdGEpOyAkaSsrICkgewogICAgICAgICAgICAgICAgICAgIGxpc3QoJHJnYiwkbmFtZSkgPSBleHBsb2RlKCctJywkZGF0YVskaV0sMik7CiAgICAgICAgICAgICAgICAgICAgaWYoICFzdGFydHN3aXRoKCRyZ2IsJyMnKSB8fCBzdHJsZW4oJHJnYikgIT0gNyB8fCAkbmFtZSA9PSAnJyApIGNvbnRpbnVlOwoKICAgICAgICAgICAgICAgICAgICAkdG1wID0gYXJyYXkoKTsKICAgICAgICAgICAgICAgICAgICAkdG1wWzBdID0gaGV4ZGVjKHN1YnN0cigkcmdiLDEsMikpOwogICAgICAgICAgICAgICAgICAgICR0bXBbMV0gPSBoZXhkZWMoc3Vic3RyKCRyZ2IsMywyKSk7CiAgICAgICAgICAgICAgICAgICAgJHRtcFsyXSA9IGhleGRlYyhzdWJzdHIoJHJnYiw1LDIpKTsKCiAgICAgICAgICAgICAgICAgICAgJF9jb2xvcnNbc3RydG9sb3dlcih0cmltKCRuYW1lKSldID0gJHRtcDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiggaXNfYXJyYXkoJF9jb2xvcnMpICYmIGlzc2V0KCRfY29sb3JzWyRzdHJdKSApICRyZXMgPSAkX2NvbG9yc1skc3RyXTsKICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uICZwcm9jZXNzX2ltYWdlKCRwYXJhbXMpCiAgICB7CiAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dTbWFydEltYWdlJyk7CiAgICAgICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgICAgICR3YW50X3RyYW5zZm9ybSA9IDA7CiAgICAgICAgJGRvX3RyYW5zZm9ybSA9IDA7CiAgICAgICAgJGhhdmVfdHJhbnNmb3JtID0gMDsKICAgICAgICAkZGVzdF9mbmFtZSA9ICcnOwogICAgICAgICRkZXN0X3VybCA9ICcnOwogICAgICAgICRpbWcgPSAnJzsKICAgICAgICAkc3JjZmlsZSA9ICcnOwogICAgICAgICRyZWwgPSAwOwogICAgICAgICRvdXRwID0gYXJyYXkoKTsgIC8vIG91dHB1dCBwYXJhbXMKICAgICAgICAkb3V0cFsnaWQnXSA9ICcnOwogICAgICAgICRvdXRwWyduYW1lJ10gPSAnJzsKICAgICAgICAkb3V0cFsnY2xhc3MnXSA9ICcnOwogICAgICAgICRvdXRwWydzdHlsZSddID0gJyc7CiAgICAgICAgJG91dHBbJ3NyYyddID0gJyc7CiAgICAgICAgJG91dHBbJ3dpZHRoJ10gPSAnJzsKICAgICAgICAkb3V0cFsnaGVpZ2h0J10gPSAnJzsKICAgICAgICAkb3V0cFsnZXJyb3InXSA9ICcnOwogICAgICAgICRvcHAgPSBhcnJheSgpOyAgLy8gb3BlcmF0aW9uIHBhcmFtcwogICAgICAgICRvcHBbJ292ZXJ3cml0ZSddID0gMDsKICAgICAgICAkb3BwWydub2JjYWNoZSddID0gMDsKICAgICAgICAkb3BwWydub3JlbW90ZSddID0gMDsKICAgICAgICAkb3BwWydub2VtYmVkJ10gPSAwOwogICAgICAgICRvcHBbJ25vYXV0byddID0gMDsKICAgICAgICAkb3BwWydub3JvdGF0ZSddID0gMDsKICAgICAgICAkb3BwWydub3RpbWVjaGVjayddID0gMDsKICAgICAgICAkb3BwWydub2F1dG9zY2FsZSddID0gMDsKICAgICAgICAkb3BwWydub3RhZyddID0gMDsKICAgICAgICAkb3BwWydub3Jlc3BvbnNpdmUnXSA9IDA7CiAgICAgICAgJG9wcFsnbm9icmVha3BvaW50cyddID0gMDsKICAgICAgICAkb3BwWydtYXhfd2lkdGgnXSA9ICcnOwogICAgICAgICRvcHBbJ21heF9oZWlnaHQnXSA9ICcnOwogICAgICAgICRvcHBbJ3NyYyddID0gJyc7CiAgICAgICAgJG9wcFsncXVhbGl0eSddID0gNzU7CiAgICAgICAgJG9wcFsnZmlsdGVycyddID0gYXJyYXkoKTsKICAgICAgICAkb3BwWydmb3JjZV90eXBlJ10gPSAnJzsKICAgICAgICAkb3BwWydmb3JjZV9leHQnXSA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ2ZvcmNlX2V4dGVuc2lvbicsMCk7CiAgICAgICAgJHNyY2ltZ3NpemUgPSAnJzsgLy8gc3JjIGltYWdlIHNpemUKICAgICAgICAkbGFzdGZpbHRlciA9IG51bGw7CgogICAgICAgIHRyeSB7CiAgICAgICAgICAgICR0bXAgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdhbGlhc2VzJyk7CiAgICAgICAgICAgIGlmKCAkdG1wICkgJGFsaWFzZXMgPSB1bnNlcmlhbGl6ZSgkdG1wKTsKCiAgICAgICAgICAgIC8vIGZpcnN0IHBhc3MuLi4gZXhwYW5kIGFsaWFzZXMgYW5kIGJ1aWxkIHNyYwogICAgICAgICAgICAkbmV3X3BhcmFtcyA9IGFycmF5KCk7CiAgICAgICAgICAgIGZvcmVhY2goICRwYXJhbXMgYXMgJGtleSA9PiAkdmFsdWUgKSB7CiAgICAgICAgICAgICAgICBpZiggc3RhcnRzd2l0aCgka2V5LCdhbGlhcycpICkgewogICAgICAgICAgICAgICAgICAgIC8vIGV4cGFuZCBhbGlhcwogICAgICAgICAgICAgICAgICAgICRvcHRpb25zID0gc2VsZjo6X2dldF9hbGlhc19vcHRpb25zKCR2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgaWYoICRvcHRpb25zICkgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBwYXJzZSBhIHN0cmluZyBpbnRvIGFuIGFycmF5IG9mIGFyZ3VtZW50cy4KICAgICAgICAgICAgICAgICAgICAgICAgJGRhdGEgPSBzZWxmOjpfZXhwYW5kX3F1b3RlZF9zdHJpbmcoJG9wdGlvbnMpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiggaXNfYXJyYXkoJGRhdGEpICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCggJGRhdGEgYXMgJGtleSA9PiAkdmFsdWUgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5ld19wYXJhbXNbJGtleV0gPSAkdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZWlmKCBzdGFydHN3aXRoKCRrZXksJ3NyYycpICYmICRrZXkgIT0gJ3NyYycgKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gaGFuZGxlIHNyYzEgdGhyb3VnaCBzcmM5OSBhcmd1bWVudHMuCiAgICAgICAgICAgICAgICAgICAgaWYoICFpc3NldCgkbmV3X3BhcmFtc1snc3JjJ10pICkgJG5ld19wYXJhbXNbJ3NyYyddID0gJyc7CiAgICAgICAgICAgICAgICAgICAgaWYoICFlbXB0eSgkbmV3X3BhcmFtc1snc3JjJ10pICYmICFlbmRzd2l0aCgkbmV3X3BhcmFtc1snc3JjJ10sJy8nKSApICRuZXdfcGFyYW1zWydzcmMnXSAuPSAnLyc7CiAgICAgICAgICAgICAgICAgICAgJG5ld19wYXJhbXNbJ3NyYyddIC49ICR2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBldmVyeXRoaW5nIGVsc2UganVzdCBnZXRzIGFkZGVkLgogICAgICAgICAgICAgICAgJG5ld19wYXJhbXNbJGtleV0gPSAkdmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHBhcmFtcyA9ICRuZXdfcGFyYW1zOwoKICAgICAgICAgICAgLy8gc2Vjb25kIHBhc3MsIGJ1aWxkIG91ciBhcnJheXMKICAgICAgICAgICAgJHBhcnNlX3BhcmFtcyA9IGZ1bmN0aW9uKCRwYXJtcywgJGRlcHRoID0gMCkgdXNlKCAmJHBhcnNlX3BhcmFtcywgJiRvcHAsICYkb3V0cCApIHsKICAgICAgICAgICAgICAgIGZvcmVhY2goICRwYXJtcyBhcyAka2V5ID0+ICR2YWx1ZSApIHsKICAgICAgICAgICAgICAgICAgICAkbWF0Y2hlcyA9IGFycmF5KCk7CiAgICAgICAgICAgICAgICAgICAgaWYoIHByZWdfbWF0Y2goJy9eZmlsdGVyX1swLTldLl8vJywka2V5LCRtYXRjaGVzKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGtleSA9IHN1YnN0cigka2V5LHN0cmxlbigkbWF0Y2hlc1swXSkpOwogICAgICAgICAgICAgICAgICAgICAgICAkZmlsdGVyID0gdWN3b3Jkcygka2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgJGFyZ3MgPSBleHBsb2RlKCcsJywkdmFsdWUpOwogICAgICAgICAgICAgICAgICAgICAgICAkY2xhc3NuYW1lID0gJ0NHSW1hZ2VfJy4kZmlsdGVyLidfRmlsdGVyJzsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICFjbGFzc19leGlzdHMoJGNsYXNzbmFtZSkgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCRtb2QtPkxhbmcoJ2Vycm9yX3Vua25vd25maWx0ZXInLCRmaWx0ZXIpKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFkZCBpdCB0byB0aGUgb3BzLgogICAgICAgICAgICAgICAgICAgICAgICAkb3BwWydmaWx0ZXJzJ11bXSA9IGFycmF5KCRjbGFzc25hbWUsJGFyZ3MpOwogICAgICAgICAgICAgICAgICAgICAgICAvLyBkb25lLgogICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlmKCBzdGFydHN3aXRoKCRrZXksJ2ZpbHRlcl8nKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFuZGxlIGZpbHRlciBhcmd1bWVudC4KICAgICAgICAgICAgICAgICAgICAgICAgJGZpbHRlciA9IHVjd29yZHMoc3Vic3RyKCRrZXksc3RybGVuKCdmaWx0ZXJfJykpKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGFyZ3MgPSBleHBsb2RlKCcsJywkdmFsdWUpOwogICAgICAgICAgICAgICAgICAgICAgICAkY2xhc3NuYW1lID0gJ0NHSW1hZ2VfJy4kZmlsdGVyLidfRmlsdGVyJzsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICFjbGFzc19leGlzdHMoJGNsYXNzbmFtZSkgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCRtb2QtPkxhbmcoJ2Vycm9yX3Vua25vd25maWx0ZXInLCRmaWx0ZXIpKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFkZCBpdCB0byB0aGUgb3BzLgogICAgICAgICAgICAgICAgICAgICAgICAkb3BwWydmaWx0ZXJzJ11bXSA9IGFycmF5KCRjbGFzc25hbWUsJGFyZ3MpOwogICAgICAgICAgICAgICAgICAgICAgICAvLyBkb25lLgogICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICAgICAgICAgICAgICBjYXNlICdkYXRhJzoKICAgICAgICAgICAgICAgICAgICBpZiggJGRlcHRoID09IDAgKSAkcGFyc2VfcGFyYW1zKCR2YWx1ZSwkZGVwdGgrMSk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NsYXNzJzoKICAgICAgICAgICAgICAgICAgICBjYXNlICdpZCc6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc3R5bGUnOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ25hbWUnOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2FsdCc6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAncmVsJzoKICAgICAgICAgICAgICAgICAgICBjYXNlICd0aXRsZSc6CiAgICAgICAgICAgICAgICAgICAgJG91dHBbJGtleV0gPSB0cmltKCR2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3dpZHRoJzoKICAgICAgICAgICAgICAgICAgICBjYXNlICdoZWlnaHQnOgogICAgICAgICAgICAgICAgICAgICRvdXRwWyRrZXldID0gKGludCkkdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ21heF93aWR0aCc6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbWF4X2hlaWdodCc6CiAgICAgICAgICAgICAgICAgICAgJG9wcFska2V5XSA9IChpbnQpJHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICBjYXNlICdzcmMnOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2ZvcmNlX3R5cGUnOgogICAgICAgICAgICAgICAgICAgICRvcHBbJGtleV0gPSB0cmltKCR2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3F1YWxpdHknOgogICAgICAgICAgICAgICAgICAgICRvcHBbJ3F1YWxpdHknXSA9IChpbnQpJHZhbHVlOwogICAgICAgICAgICAgICAgICAgICRvcHBbJ3F1YWxpdHknXSA9IG1pbigxMDAsbWF4KDAsJG9wcFsncXVhbGl0eSddKSk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ292ZXJ3cml0ZSc6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbm90YWcnOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ25vcmVtb3RlJzoKICAgICAgICAgICAgICAgICAgICBjYXNlICdub3Jlc3BvbnNpdmUnOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ25vYnJlYWtwb2ludHMnOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ25vYmNhY2hlJzoKICAgICAgICAgICAgICAgICAgICBjYXNlICdub2VtYmVkJzoKICAgICAgICAgICAgICAgICAgICBjYXNlICdub2F1dG8nOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ25vcm90YXRlJzoKICAgICAgICAgICAgICAgICAgICBjYXNlICdub3RpbWVjaGVjayc6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZm9yY2VfZXh0JzoKICAgICAgICAgICAgICAgICAgICAkb3BwWyRrZXldID0gY2dlX3V0aWxzOjp0b19ib29sKCR2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwoKICAgICAgICAgICAgJHBhcnNlX3BhcmFtcygkcGFyYW1zKTsKCiAgICAgICAgICAgIGlmKCAhJG9wcFsnc3JjJ10gKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCRtb2QtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXJhbScsJ3NyYycpKTsKCiAgICAgICAgICAgIC8vCiAgICAgICAgICAgIC8vIGZpbmQgdGhlIHNvdXJjZSBpbWFnZSAuLi4gdGhlIGFjdHVhbCBmaWxlbmFtZQogICAgICAgICAgICAvLyB1c2Ugc29tZSBhdXRvbWFnaWMgaW50ZWxsaWdlbmNlIHRvIGZpbmQgaXQuCiAgICAgICAgICAgIC8vCiAgICAgICAgICAgICRvcHBbJ3NyYyddID0gdXJsZGVjb2RlKCRvcHBbJ3NyYyddKTsKICAgICAgICAgICAgaWYoICEkc3JjZmlsZSAmJiBzdGFydHN3aXRoKCRvcHBbJ3NyYyddLCRjb25maWdbJ3VwbG9hZHNfdXJsJ10pICkgewogICAgICAgICAgICAgICAgJHRtcCA9IHN0cl9yZXBsYWNlKCRjb25maWdbJ3VwbG9hZHNfdXJsJ10sJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJG9wcFsnc3JjJ10pOwogICAgICAgICAgICAgICAgaWYoIGZpbGVfZXhpc3RzKCR0bXApICkgJHNyY2ZpbGUgPSAkdG1wOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCAhJHNyY2ZpbGUgJiYgc3RhcnRzd2l0aCgkb3BwWydzcmMnXSwkY29uZmlnWydyb290X3VybCddKSApIHsKICAgICAgICAgICAgICAgICR0bXAgPSBzdHJfcmVwbGFjZSgkY29uZmlnWydyb290X3VybCddLCRjb25maWdbJ3Jvb3RfcGF0aCddLCRvcHBbJ3NyYyddKTsKICAgICAgICAgICAgICAgIGlmKCBmaWxlX2V4aXN0cygkdG1wKSApICRzcmNmaWxlID0gJHRtcDsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiggISRzcmNmaWxlICYmIGlzc2V0KCRjb25maWdbJ3NzbF91cmwnXSkgJiYgc3RhcnRzd2l0aCgkb3BwWydzcmMnXSwkY29uZmlnWydzc2xfdXJsJ10pICkgewogICAgICAgICAgICAgICAgJHRtcCA9IHN0cl9yZXBsYWNlKCRjb25maWdbJ3NzbF91cmwnXSwkY29uZmlnWydyb290X3BhdGgnXSwkb3BwWydzcmMnXSk7CiAgICAgICAgICAgICAgICBpZiggZmlsZV9leGlzdHMoJHRtcCkgKSAkc3JjZmlsZSA9ICR0bXA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoICEkc3JjZmlsZSAmJiBzdGFydHN3aXRoKCRvcHBbJ3NyYyddLCcvJykgKSB7CiAgICAgICAgICAgICAgICAkcnAxID0gcmVhbHBhdGgoJGNvbmZpZ1sncm9vdF9wYXRoJ10pOwogICAgICAgICAgICAgICAgJHJwMiA9IHJlYWxwYXRoKCRvcHBbJ3NyYyddKTsKICAgICAgICAgICAgICAgIGlmKCBzdGFydHN3aXRoKCRycDIsJHJwMSkgJiYgZmlsZV9leGlzdHMoJG9wcFsnc3JjJ10pICkgJHNyY2ZpbGUgPSAkb3BwWydzcmMnXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiggISRzcmNmaWxlICkgewogICAgICAgICAgICAgICAgLy8gY2hlY2sgcmVsYXRpdmUgcGF0aCB3cnQgdGhlIHVwbG9hZHMgZGlyLgogICAgICAgICAgICAgICAgJHRtcCA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJG9wcFsnc3JjJ10pOwogICAgICAgICAgICAgICAgJHJwMSA9IHJlYWxwYXRoKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddKTsKICAgICAgICAgICAgICAgICRycDIgPSByZWFscGF0aCgkdG1wKTsKICAgICAgICAgICAgICAgIGlmKCBzdGFydHN3aXRoKCRycDIsJHJwMSkgJiYgZmlsZV9leGlzdHMoJHRtcCkgKSAkc3JjZmlsZSA9ICR0bXA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoICEkc3JjZmlsZSApIHsKICAgICAgICAgICAgICAgIC8vIGNoZWNrIHJlbGF0aXZlIHBhdGggd3J0IHRoZSByb290IGRpci4KICAgICAgICAgICAgICAgICR0bXAgPSBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3Jvb3RfcGF0aCddLCRvcHBbJ3NyYyddKTsKICAgICAgICAgICAgICAgICRycDEgPSByZWFscGF0aCgkY29uZmlnWydyb290X3BhdGgnXSk7CiAgICAgICAgICAgICAgICAkcnAyID0gcmVhbHBhdGgoJHRtcCk7CiAgICAgICAgICAgICAgICBpZiggc3RhcnRzd2l0aCgkcnAyLCRycDEpICYmIGZpbGVfZXhpc3RzKCR0bXApICkgJHNyY2ZpbGUgPSAkdG1wOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCAhJHNyY2ZpbGUgJiYgJG9wcFsnbm9yZW1vdGUnXSA9PSAwICYmCiAgICAgICAgICAgICAgICAoc3RhcnRzd2l0aCgkb3BwWydzcmMnXSwnaHR0cDonKSB8fCBzdGFydHN3aXRoKCRvcHBbJ3NyYyddLCdodHRwczonKSB8fCBzdGFydHN3aXRoKCRvcHBbJ3NyYyddLCdmdHA6JykpKSB7CiAgICAgICAgICAgICAgICAvLyBva2F5LCBnb3R0YSBhc3N1bWUgdGhhdCB0aHMgaXMgYSByZW1vdGUgZmlsZQogICAgICAgICAgICAgICAgLy8gZ2V0IGl0LCBhbmQgY2FjaGUgaXQuCiAgICAgICAgICAgICAgICAkY2FjaGVmaWxlID0gVE1QX0NBQ0hFX0xPQ0FUSU9OLicvY2dzaV8nLm1kNSgkb3BwWydzcmMnXSkuJy5pbWcnOwogICAgICAgICAgICAgICAgaWYoICFmaWxlX2V4aXN0cygkY2FjaGVmaWxlKSApIHsKICAgICAgICAgICAgICAgICAgICAkZGF0YSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRvcHBbJ3NyYyddKTsKICAgICAgICAgICAgICAgICAgICBpZiggJGRhdGEgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVfcHV0X2NvbnRlbnRzKCRjYWNoZWZpbGUsJGRhdGEpOwogICAgICAgICAgICAgICAgICAgICAgICAkc3JjZmlsZSA9ICRjYWNoZWZpbGU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJHNyY2ZpbGUgPSAkY2FjaGVmaWxlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiggISRzcmNmaWxlICkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkbW9kLT5MYW5nKCdlcnJvcl9zcmNub3Rmb3VuZCcsJG9wcFsnc3JjJ10pKTsKICAgICAgICAgICAgICAgIHJldHVybiAkb3V0cDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gZ2V0IHRoZSBzb3VyY2UgaW1hZ2Ugc2l6ZQogICAgICAgICAgICAkc3JjaW5mbyA9IGdldGltYWdlc2l6ZSgkc3JjZmlsZSk7CiAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoJHNyY2luZm8pIHx8IGNvdW50KCRzcmNpbmZvKSA8IDIgKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCRtb2QtPkxhbmcoJ2Vycm9yX3NyY25vdGZvdW5kJywkb3BwWydzcmMnXSkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJHNyY2ltZ3NpemUgPSBhcnJheSgnd2lkdGgnPT4kc3JjaW5mb1swXSwnaGVpZ2h0Jz0+JHNyY2luZm9bMV0pOwogICAgICAgICAgICAgICAgJG1lbW9yeV9uZWVkZWQgPSByb3VuZCggJHNyY2luZm9bMF0gKiAkc3JjaW5mb1sxXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAoaXNzZXQoJHNyY2luZm9bJ2JpdHMnXSk/JHNyY2luZm9bJ2JpdHMnXTo4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAoaXNzZXQoJHNyY2luZm9bJ2NoYW5uZWxzJ10pPyRzcmNpbmZvWydjaGFubmVscyddOjMpIC8gOCArIDY1NTM1ICk7CiAgICAgICAgICAgICAgICBpZiggJG1vZC0+R2V0UHJlZmVyZW5jZSgnY2hlY2ttZW1vcnknLDEpICYmICFjZ2VfdXRpbHM6OmhhdmVfZW5vdWdoX21lbW9yeSgkbWVtb3J5X25lZWRlZCkgKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkbW9kLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRtZW1vcnknKSsnOiAnLihpbnQpKCRtZW1vcnlfbmVlZGVkLzEwMjQpKydrJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIGFyZSB3ZSBhdXRvbWFnaWNhbGx5IHJvdGF0aW5nLgogICAgICAgICAgICBpZiggISRvcHBbJ25vcm90YXRlJ10gJiYgZnVuY3Rpb25fZXhpc3RzKCdleGlmX3JlYWRfZGF0YScpICkgewogICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgYWxyZWFkeSBhIHJvdGF0ZSBmaWx0ZXIgaW4gdGhlIGxpc3QsIHdlIHdvbid0IG92ZXJyaWRlIHRoYXQuCiAgICAgICAgICAgICAgICAkZm4gPSAwOwogICAgICAgICAgICAgICAgZm9yKCAkZiA9IDA7ICRmIDwgY291bnQoJG9wcFsnZmlsdGVycyddKTsgJGYrKyApIHsKICAgICAgICAgICAgICAgICAgICBpZiggJG9wcFsnZmlsdGVycyddWyRmXVswXSA9PSAnQ0dJbWFnZV9Sb3RhdGVfRmlsdGVyJyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGZuID0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmKCAkZm4gPT0gMCApIHsKICAgICAgICAgICAgICAgICAgICAvLyB3ZSBjYW4gdHJ5IHRvIHJlYWQgdGhlIGV4aWYgaW5mb3JtYXRpb24gdG8gZmluZCBhbiBvcmllbnRhdGlvbi4KICAgICAgICAgICAgICAgICAgICAkZXhpZiA9IEBleGlmX3JlYWRfZGF0YSgkc3JjZmlsZSwwLFRSVUUpOwogICAgICAgICAgICAgICAgICAgIGlmKCBpc19hcnJheSgkZXhpZikgJiYgaXNzZXQoJGV4aWZbJ0lGRDAnXSkgJiYgaXNzZXQoJGV4aWZbJ0lGRDAnXVsnT3JpZW50YXRpb24nXSkgJiYKICAgICAgICAgICAgICAgICAgICAgICAgaXNfaW50KCRleGlmWydJRkQwJ11bJ09yaWVudGF0aW9uJ10pICkgewoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm91bmQgYW4gb3JpZW50YXRpb24sIG5vdyB3ZSBnb3R0YSBmaWd1cmUgb3V0IHdoYXQgZmlsdGVycyB0byBhZGQuCiAgICAgICAgICAgICAgICAgICAgICAgICRvcmllbnRhdGlvbiA9IChpbnQpJGV4aWZbJ0lGRDAnXVsnT3JpZW50YXRpb24nXTsKICAgICAgICAgICAgICAgICAgICAgICAgJG5ld19maWx0ZXJzID0gYXJyYXkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoKCAkb3JpZW50YXRpb24gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vdGhpbmcuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaG9yaXpvbnRhbCBmbGlwLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5ld19maWx0ZXJzW10gPSBhcnJheSgnQ0dJbWFnZV9GbGlwX0ZpbHRlcicsMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcm90YXRlIDE4MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5ld19maWx0ZXJzW10gPSBhcnJheSgnQ0dJbWFnZV9Sb3RhdGVfRmlsdGVyJyxhcnJheSgxODApKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmV3X2ZpbHRlcnNbXSA9IGFycmF5KCdDR0ltYWdlX0ZsaXBfRmlsdGVyJywxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmV3X2ZpbHRlcnNbXSA9IGFycmF5KCdDR0ltYWdlX0ZsaXBfRmlsdGVyJywxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuZXdfZmlsdGVyc1tdID0gYXJyYXkoJ0NHSW1hZ2VfUm90YXRlX0ZpbHRlcicsYXJyYXkoOTApKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmV3X2ZpbHRlcnNbXSA9IGFycmF5KCdDR0ltYWdlX1JvdGF0ZV9GaWx0ZXInLGFycmF5KDkwKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5ld19maWx0ZXJzW10gPSBhcnJheSgnQ0dJbWFnZV9GbGlwX0ZpbHRlcicsMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmV3X2ZpbHRlcnNbXSA9IGFycmF5KCdDR0ltYWdlX1JvdGF0ZV9GaWx0ZXInLGFycmF5KDkwKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA4OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5ld19maWx0ZXJzW10gPSBhcnJheSgnQ0dJbWFnZV9Sb3RhdGVfRmlsdGVyJyxhcnJheSgtOTApKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAkb3BwWydmaWx0ZXJzJ10gPSBhcnJheV9tZXJnZSgkbmV3X2ZpbHRlcnMsJG9wcFsnZmlsdGVycyddKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIGRvaW5nIHJlc3BvbnNpdmUgaW1hZ2VzLi4uIGdldCBkZXZpY2Ugd2lkdGggYW5kIGhlaWdodC4KICAgICAgICAgICAgJGlzX3Jlc3BvbnNpdmUgPSAwOwogICAgICAgICAgICBpZiggJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVzcG9uc2l2ZScsMSkgJiYgJG9wcFsnbm9yZXNwb25zaXZlJ10gPT0gMCApIHsKICAgICAgICAgICAgICAgICRkZXZpY2UgPSBzZWxmOjpnZXRfZGV2aWNlX2NhcGFiaWxpdGllcygpOwogICAgICAgICAgICAgICAgaWYoIGlzX2FycmF5KCRkZXZpY2UpICYmIGlzc2V0KCRkZXZpY2VbJ3dpZHRoJ10pICYmIGlzc2V0KCRkZXZpY2VbJ2hlaWdodCddKSApIHsKICAgICAgICAgICAgICAgICAgICAvLyB3ZSBmb3VuZCBkZXZpY2UgY2FwYWJpbGl0aWVzLgoKICAgICAgICAgICAgICAgICAgICAvLyB3ZSBoYXZlIHRvIGRvIGF1dG8tc2NhbGluZyBub3csIHJlc3BvbnNpdmUgc3R1ZmYgdHJ1bXBzIGl0LgogICAgICAgICAgICAgICAgICAgICRvcHBbJ25vYXV0b3NjYWxlJ10gPSAwOwogICAgICAgICAgICAgICAgICAgICRpc19yZXNwb25zaXZlID0gMTsKCiAgICAgICAgICAgICAgICAgICAgLy8gbWVyZ2UgdGhhdCBkYXRhIHdpdGggYW55IG1heF93aWR0aCBhbmQgbWF4X2hlaWdodCB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIHN1cHBsaWVkLgogICAgICAgICAgICAgICAgICAgICR3ID0gbWF4KDEsKGludCkkZGV2aWNlWyd3aWR0aCddKTsKICAgICAgICAgICAgICAgICAgICBpZiggJG9wcFsnbWF4X3dpZHRoJ10gPiAwICkgewogICAgICAgICAgICAgICAgICAgICAgICAkb3BwWydtYXhfd2lkdGgnXSA9IG1pbigkb3BwWydtYXhfd2lkdGgnXSwkdyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkb3BwWydtYXhfd2lkdGgnXSA9ICR3OwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJGggPSBtYXgoMSwoaW50KSRkZXZpY2VbJ2hlaWdodCddKTsKICAgICAgICAgICAgICAgICAgICBpZiggJG9wcFsnbWF4X2hlaWdodCddID4gMCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJG9wcFsnbWF4X2hlaWdodCddID0gbWluKCRvcHBbJ21heF9oZWlnaHQnXSwkaCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkb3BwWydtYXhfaGVpZ2h0J10gPSAkaDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIHJhdGlvbmFsaXplIHdpZHRoL2hlaWdodCwgbWF4X3dpZHRoLCBtYXhfaGVpZ2h0CiAgICAgICAgICAgICRub193aWR0aF9oZWlnaHQgPSAwOwogICAgICAgICAgICBpZiggJG9wcFsnbWF4X3dpZHRoJ10gJiYgJG91dHBbJ3dpZHRoJ10gKSB7CiAgICAgICAgICAgICAgICAkbm9fd2lkdGhfaGVpZ2h0ID0gMTsKICAgICAgICAgICAgICAgICRvcHBbJ21heF93aWR0aCddID0gbWluKCRvcHBbJ21heF93aWR0aCddLCRvdXRwWyd3aWR0aCddKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiggJG9wcFsnbWF4X2hlaWdodCddICYmICRvdXRwWydoZWlnaHQnXSApIHsKICAgICAgICAgICAgICAgICRub193aWR0aF9oZWlnaHQgPSAxOwogICAgICAgICAgICAgICAgJG9wcFsnbWF4X2hlaWdodCddID0gbWluKCRvcHBbJ21heF9oZWlnaHQnXSwkb3V0cFsnaGVpZ2h0J10pOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBub3cgZG8gc29tZSBpbnRlbGxpZ2VuY2UsIGFuZCBzZWUgaWYgdGhlIHdpZHRoLCBhbmQgaGVpZ2h0IGFyZ3VtZW50cyBwYXNzZWQgaW4KICAgICAgICAgICAgLy8gbWF0Y2ggdGhlIGltYWdlIHNpemUuLi4gaWYgbm90LCBhbmQgbWF4X3dpZHRoL2hlaWdodCBhcmVuJ3QgYWxyZWFkeSBzbWFsbGVyLi4uIGFkZCBhIGZpbHRlci4KICAgICAgICAgICAgaWYoICRub193aWR0aF9oZWlnaHQgPT0gMCAmJiAoJG91dHBbJ3dpZHRoJ10gPiAwIHx8ICRvdXRwWydoZWlnaHQnXSA+IDApICYmICRvcHBbJ25vYXV0b3NjYWxlJ10gPT0gMCApIHsKICAgICAgICAgICAgICAgIGlmKCAkb3V0cFsnd2lkdGgnXSAhPSAkc3JjaW1nc2l6ZVsnd2lkdGgnXSB8fCAkb3V0cFsnaGVpZ2h0J10gIT0gJHNyY2ltZ3NpemVbJ2hlaWdodCddICkgewogICAgICAgICAgICAgICAgICAgIC8vIHdlIHdhbm5hIGRpc3BsYXkgdGhlIGZpbGUgYXQgYSBkaWZmZXJlbnQgZGltZW5pb24uCiAgICAgICAgICAgICAgICAgICAgJGFyZ3MgPSAnJzsKICAgICAgICAgICAgICAgICAgICAkZmlsdGVyID0gJyc7CiAgICAgICAgICAgICAgICAgICAgaWYoICRvdXRwWyd3aWR0aCddICYmICRvdXRwWydoZWlnaHQnXSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ29ubmEgZG8gYSBjcm9wIHRvIGZpdAogICAgICAgICAgICAgICAgICAgICAgICAkZmlsdGVyID0gJ0NHSW1hZ2VfQ3JvcHRvZml0X0ZpbHRlcic7CiAgICAgICAgICAgICAgICAgICAgICAgICRhcmdzID0gYXJyYXkoKGludCkkb3V0cFsnd2lkdGgnXSwoaW50KSRvdXRwWydoZWlnaHQnXSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoICRvdXRwWyd3aWR0aCddICkgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBnb25uYSBkbyBhIHJlc2l6ZQogICAgICAgICAgICAgICAgICAgICAgICAkZmlsdGVyID0gJ0NHSW1hZ2VfUmVzaXplX0ZpbHRlcic7CiAgICAgICAgICAgICAgICAgICAgICAgICRhcmdzID0gYXJyYXkoJ3cnLChpbnQpJG91dHBbJ3dpZHRoJ10pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICggJG91dHBbJ2hlaWdodCddICkgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBnb25uYSBkbyBhIHJlc2l6ZQogICAgICAgICAgICAgICAgICAgICAgICAkZmlsdGVyID0gJ0NHSW1hZ2VfUmVzaXplX0ZpbHRlcic7CiAgICAgICAgICAgICAgICAgICAgICAgICRhcmdzID0gYXJyYXkoJ2gnLChpbnQpJG91dHBbJ2hlaWdodCddKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYoIGlzX2FycmF5KCRhcmdzKSAmJiAkZmlsdGVyICE9ICcnICkgewogICAgICAgICAgICAgICAgICAgICAgICAkZm91bmQgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkb3BwWydmaWx0ZXJzJ10pOyAkaSsrICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoICRvcHBbJ2ZpbHRlcnMnXVskaV1bMF0gPT0gJ0NHSW1hZ2VfUmVzaXplX0ZpbHRlcicgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvdW5kID0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAvLyBhZGQgYSBmaWx0ZXIgdG8gdGhlIGVuZAogICAgICAgICAgICAgICAgICAgICAgICBpZiggISRmb3VuZCApICRsYXN0ZmlsdGVyID0gYXJyYXkoJGZpbHRlciwkYXJncyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBpZiB3ZSBhcmUgZm9yY2luZyBhIHR5cGUgYW5kIHRoYXQgdHlwZSBpcyBub3QgdGhlIHNhbWUgYXMgb3VyIGN1cnJlbnQgdHlwZS4KICAgICAgICAgICAgaWYoICRvcHBbJ2ZvcmNlX3R5cGUnXSApIHsKICAgICAgICAgICAgICAgICR0bXBfYSA9IHNlbGY6OnBhcnNlX3R5cGUoJG9wcFsnZm9yY2VfdHlwZSddKTsKICAgICAgICAgICAgICAgIGlmKCAkdG1wX2EgIT0gJHNyY2luZm9bJ21pbWUnXSApICR3YW50X3RyYW5zZm9ybSA9IDE7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIGlmIHdlIGhhdmUgbWF4IHdpZHRoIGFuZC9vciBoZWlnaHQuLi4gYWRkIGEgZmlsdGVyIGF0IHRoZSBlbmQKICAgICAgICAgICAgLy8gdG8gbWFrZSBzdXJlIHRoYXQgb3VyIG91dHB1dCBuZXZlciBleGNlZWRzIHRob3NlIG1heCB2YWx1ZXMuCiAgICAgICAgICAgIGlmKCAoJG9wcFsnbWF4X3dpZHRoJ10gPiAwIHx8ICRvcHBbJ21heF9oZWlnaHQnXSA+IDApICYmICRvcHBbJ25vYXV0b3NjYWxlJ10gPT0gMCApIHsKICAgICAgICAgICAgICAgIC8vIGlmIHdlIGhhdmUgYnJlYWtwb2ludHMsIHVzZSBmaW5kIHRoZSBjbG9zZXN0IG9uZQogICAgICAgICAgICAgICAgJGFyZ3MgPSAnJzsKICAgICAgICAgICAgICAgICRmaWx0ZXIgPSAnJzsKICAgICAgICAgICAgICAgICRicCA9IG51bGw7CgogICAgICAgICAgICAgICAgaWYoICgkdG1wID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVzcG9uc2l2ZV9icmVha3BvaW50cycpKSAmJiAkaXNfcmVzcG9uc2l2ZSA9PSAxICYmCiAgICAgICAgICAgICAgICAgICAgISRvcHBbJ25vYnJlYWtwb2ludHMnXSApIHsKICAgICAgICAgICAgICAgICAgICAkdG1wID0gZXhwbG9kZSgnLCcsJHRtcCk7CiAgICAgICAgICAgICAgICAgICAgJGJwID0gYXJyYXkoKTsKICAgICAgICAgICAgICAgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdG1wKTsgJGkrKyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHQxID0gKGludCl0cmltKCR0bXBbJGldKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICR0MSA+IDAgKSAkYnBbXSA9ICR0MTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgYXNvcnQoJGJwKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiggaXNfYXJyYXkoJGJwKSAmJiBjb3VudCgkYnApICkgewogICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgdmFsaWQgYnJlYWtwb2ludHMuCiAgICAgICAgICAgICAgICAgICAgJGx2YWwgPSBtYXgoJG9wcFsnbWF4X3dpZHRoJ10sJG9wcFsnbWF4X2hlaWdodCddKTsKICAgICAgICAgICAgICAgICAgICBmb3IoICRpID0gY291bnQoJGJwKS0xOyAkaSA+IDA7ICRpLS0gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAkYnBbJGldID4gJGx2YWwgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAvLyByZXNpemUgdG8gbWF4aW11bSBkaW1lbnNpb24gb2YgbHZhbAogICAgICAgICAgICAgICAgICAgIC8vIG5vdGUsIGl0J2QgYmUgbmljZSB0byBoYXZlIHNvbWUga2luZCBvZiBzZXR0aW5ncyBoZXJlCiAgICAgICAgICAgICAgICAgICAgLy8gaS5lOiB3aGljaCBmaWxlciAoYW5kIG90aGVyIHBhcmFtcykgdG8gdXNlLgogICAgICAgICAgICAgICAgICAgICRsdmFsID0gJGJwWyRpXTsKICAgICAgICAgICAgICAgICAgICAkZmlsdGVyID0gJ0NHSW1hZ2VfUmVzaXplX0ZpbHRlcic7CiAgICAgICAgICAgICAgICAgICAgJGFyZ3MgPSBhcnJheSgnZScsJGx2YWwsMCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvLyBzdGFuZGFyZCBoYW5kbGluZyBvZiBtYXggd2lkdGgvbWF4IGhlaWdodC4KICAgICAgICAgICAgICAgICAgICBpZiggJG9wcFsnbWF4X3dpZHRoJ10gJiYgJG9wcFsnbWF4X2hlaWdodCddICkgewogICAgICAgICAgICAgICAgICAgICAgICAkZmlsdGVyID0gJ0NHSW1hZ2VfQ3JvcHRvZml0X0ZpbHRlcic7CiAgICAgICAgICAgICAgICAgICAgICAgICRhcmdzID0gYXJyYXkoKGludCkkb3BwWydtYXhfd2lkdGgnXSwoaW50KSRvcHBbJ21heF9oZWlnaHQnXSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoICRvcHBbJ21heF93aWR0aCddICkgewogICAgICAgICAgICAgICAgICAgICAgICAkZmlsdGVyID0gJ0NHSW1hZ2VfUmVzaXplX0ZpbHRlcic7CiAgICAgICAgICAgICAgICAgICAgICAgICRhcmdzID0gYXJyYXkoJ3cnLChpbnQpJG9wcFsnbWF4X3dpZHRoJ10sMCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoICRvcHBbJ21heF9oZWlnaHQnXSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGZpbHRlciA9ICdDR0ltYWdlX1Jlc2l6ZV9GaWx0ZXInOwogICAgICAgICAgICAgICAgICAgICAgICAkYXJncyA9IGFycmF5KCdoJywoaW50KSRvcHBbJ21heF9oZWlnaHQnXSwwKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAvLyBhZGp1c3Qgb3VyIGxhc3RmaWx0ZXIKICAgICAgICAgICAgICAgIGlmKCAkZmlsdGVyICkgJGxhc3RmaWx0ZXIgPSBhcnJheSgkZmlsdGVyLCRhcmdzKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gaWYgd2UgaGF2ZSBhIGxhc3QgZmlsdGVyLi4uIGFkZCBpdC4KICAgICAgICAgICAgaWYoICRsYXN0ZmlsdGVyICkgJG9wcFsnZmlsdGVycyddW10gPSAkbGFzdGZpbHRlcjsKCiAgICAgICAgICAgIC8vCiAgICAgICAgICAgIC8vIGVuZCBvZiBzbWFydG5lc3Mgc3R1ZmYuLi4gbm93IGJlZ2luIHRoZSB3b3JrCiAgICAgICAgICAgIC8vCiAgICAgICAgICAgIGlmKCBjb3VudChhcnJheV9rZXlzKCRvcHBbJ2ZpbHRlcnMnXSkpICkgJHdhbnRfdHJhbnNmb3JtID0gMTsgLy8gd2UncmUgZG9pbmcgc29tZSBraW5kIG9mIG1hZ2ljIHRvIHRoZSBpbWFnZS4KCiAgICAgICAgICAgIGlmKCAkd2FudF90cmFuc2Zvcm0gKSB7CiAgICAgICAgICAgICAgICAvLyBjYWxjdWxhdGUgb3VyIGRlc3RpbmF0aW9uIG5hbWUgYW5kIHVybC4KICAgICAgICAgICAgICAgICR0bXAgPSBiYXNlbmFtZSgkc3JjZmlsZSk7CiAgICAgICAgICAgICAgICBpZiggIWlzc2V0KCRvdXRwWydhbHQnXSkgKSAkb3V0cFsnYWx0J10gPSAkdG1wOwogICAgICAgICAgICAgICAgJGV4dCA9IHN0cnJjaHIoJHRtcCwnLicpOwogICAgICAgICAgICAgICAgJHQyID0gbWQ1KHNlcmlhbGl6ZSgkb3BwKSk7CiAgICAgICAgICAgICAgICAkZGVzdG5hbWUgPSAnaW1nLScuJHQyOwogICAgICAgICAgICAgICAgJHQzID0gc2VsZjo6cGFyc2VfdHlwZSgoJG9wcFsnZm9yY2VfdHlwZSddKT8kb3BwWydmb3JjZV90eXBlJ106JHNyY2luZm9bJ21pbWUnXSk7CiAgICAgICAgICAgICAgICBpZiggJG9wcFsnZm9yY2VfZXh0J10gKSAkZGVzdG5hbWUgLj0gc2VsZjo6Z2V0X2V4dGVuc2lvbigkdDMpOwoKICAgICAgICAgICAgICAgICRjYWNoZV9wYXRoID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnY2FjaGVfcGF0aCcsIGNtc19qb2luX3BhdGgoJ3VwbG9hZHMnLCAnXycuJG1vZC0+R2V0TmFtZSgpKSk7CiAgICAgICAgICAgICAgICAkZGVzdGRpciA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sncm9vdF9wYXRoJ10sICRjYWNoZV9wYXRoKTsKICAgICAgICAgICAgICAgIGlmKCAhaXNfZGlyKCRkZXN0ZGlyKSApIHsKICAgICAgICAgICAgICAgICAgICBAbWtkaXIoJGRlc3RkaXIsIDA3NzcsIHRydWUpOwogICAgICAgICAgICAgICAgICAgIHRvdWNoKCRkZXN0ZGlyLicvaW5kZXguaHRtbCcpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmKCAhaXNfZGlyKCRkZXN0ZGlyKSApIHRocm93IG5ldyBFeGNlcHRpb24oJG1vZC0+TGFuZygnZXJyb3JfbWtkaXInLCRkZXN0ZGlyKSk7CgogICAgICAgICAgICAgICAgLy8gc2VlIGlmIGl0IGV4aXN0cwogICAgICAgICAgICAgICAgJGRlc3RfZm5hbWUgPSAkZGVzdGRpci4nLycuJGRlc3RuYW1lOwoKICAgICAgICAgICAgICAgICRkZXN0X3VybCA9ICRtb2QtPmdldF9jYWNoZWRfaW1hZ2VfdXJsKCRkZXN0bmFtZSk7CiAgICAgICAgICAgICAgICAkdDEgPSBmaWxlbXRpbWUoJHNyY2ZpbGUpOwogICAgICAgICAgICAgICAgJHQyID0gZmlsZV9leGlzdHMoJGRlc3RfZm5hbWUpID8gZmlsZW10aW1lKCRkZXN0X2ZuYW1lKSA6IDA7CiAgICAgICAgICAgICAgICBpZiggIWZpbGVfZXhpc3RzKCRkZXN0X2ZuYW1lKSB8fCAoKCR0MiA8ICR0MSkgJiYgISRvcHBbJ25vdGltZWNoZWNrJ10pIHx8ICRvcHBbJ292ZXJ3cml0ZSddICApICRkb190cmFuc2Zvcm0gPSAxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgLy8gbm8gdHJhbnNvZm1yYXRpb24uLi4ganVzdCB1c2UgdGhlIHNyYyBpbWFnZQogICAgICAgICAgICAgICAgJGRlc3RfZm5hbWUgPSAkc3JjZmlsZTsKICAgICAgICAgICAgICAgICRkZXN0X3VybCA9ICRvcHBbJ3NyYyddOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiggJGRvX3RyYW5zZm9ybSApIHsKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgLy8gbG9hZCB0aGUgaW1hZ2UuCiAgICAgICAgICAgICAgICAgICAgJGltZyA9IG5ldyBDR0ltYWdlQmFzZSgkc3JjZmlsZSk7CgogICAgICAgICAgICAgICAgICAgIC8vIHByb2Nlc3MgZmlsdGVycwogICAgICAgICAgICAgICAgICAgICRpID0gMDsKICAgICAgICAgICAgICAgICAgICB3aGlsZSggJGkgPCBjb3VudCgkb3BwWydmaWx0ZXJzJ10pICkgewogICAgICAgICAgICAgICAgICAgICAgICAkZmlsdGVyID0gJG9wcFsnZmlsdGVycyddWyRpXVswXTsKICAgICAgICAgICAgICAgICAgICAgICAgJGZpbHRlcl9vYmogPSBuZXcgJGZpbHRlcigkb3BwWydmaWx0ZXJzJ11bJGldWzFdKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGltZyA9ICRmaWx0ZXJfb2JqLT50cmFuc2Zvcm0oJGltZyk7CiAgICAgICAgICAgICAgICAgICAgICAgICRpbWdbJ2RpcnR5J10gPSAxOyAvLyBmb3JjZSB0aGUgaW1hZ2UgZGlydHksIGp1c3Qgc28gdGhhdCB3ZSBjYW4gc2F2ZSBpdC4KICAgICAgICAgICAgICAgICAgICAgICAgJGkrKzsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIC8vIGNoZWNrIHNvbWUgc3R1ZmYKICAgICAgICAgICAgICAgICAgICBpZiggJG9wcFsnbm9hdXRvJ10gPT0gMCAmJiAoKCRvdXRwWyd3aWR0aCddICYmICRpbWdbJ3dpZHRoJ10gPCAkb3V0cFsnd2lkdGgnXSkgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCRvdXRwWydoZWlnaHQnXSAmJiAkaW1nWydoZWlnaHQnXSA8ICRvdXRwWydoZWlnaHQnXSkpICkgewogICAgICAgICAgICAgICAgICAgICAgICAvLyB1c2VyIHNwZWNpZmllZCBhIHdpZHRoLCBhbmQvb3IgaGVpZ2h0Li4uYnV0IHRoZXkgYXJlIHNtYWxsZXIgdGhhbiB0aGUgb3V0cHV0IG9mIHRoZSBmaWx0ZXJpbmcuCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgd2lsbCBlbnN1cmUgdGhhdCB0aGUgdGFnIHdpbGwgbWF0Y2ggdGhlIGltYWdlLgogICAgICAgICAgICAgICAgICAgICAgICAkb3V0cFsnd2lkdGgnXSA9ICRpbWdbJ3dpZHRoJ107CiAgICAgICAgICAgICAgICAgICAgICAgICRvdXRwWydoZWlnaHQnXSA9ICRpbWdbJ2hlaWdodCddOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHdyaXRlIHRoZSB0aGluZy4KICAgICAgICAgICAgICAgICAgICBpZiggaXNfb2JqZWN0KCRpbWcpICkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiggJG9wcFsnZm9yY2VfdHlwZSddICkgJGltZ1sndHlwZSddID0gc2VsZjo6cGFyc2VfdHlwZSgkb3BwWydmb3JjZV90eXBlJ10pOwogICAgICAgICAgICAgICAgICAgICAgICBpZiggJGltZ1snZGlydHknXSApICRpbWctPnNhdmUoJGRlc3RfZm5hbWUsJG9wcFsncXVhbGl0eSddKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjYXRjaCggRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAgICAgICAgIGF1ZGl0KCcnLCdDR1NtYXJ0SW1hZ2UnLCdFcnJvciBlbmNvdW50ZXJlZCBvbiAnLiRvcHBbJ3NyYyddLic6ICcuJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgJGU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gLy8gaWYKCiAgICAgICAgICAgIC8vIG5vdywgd2UgaGF2ZSBhIGNhY2hlZCBmaWxlbmFtZSAuLi4gbmVlZCB0byBnZXQgaXRzIGRpbWVuc2lvbnMuCiAgICAgICAgICAgIC8vIGFuZCBtYWtlIHN1cmUgdGhhdCB3ZSdyZSBuZXZlciBvdXRwdXR0aW5nIGFueXRoaW5nIGJpZ2dlciB0aGFuIHRoZSBjYWNoZWQgZGltZW5zaW9ucwogICAgICAgICAgICAvLyB1bmxlc3Mgbm9hdXRvIGlzIHNldAogICAgICAgICAgICBpZiggJG9wcFsnbm9hdXRvJ10gPT0gMCApIHsKICAgICAgICAgICAgICAgICR0bXAgPSBnZXRpbWFnZXNpemUoJGRlc3RfZm5hbWUpOwogICAgICAgICAgICAgICAgaWYoICFpc19hcnJheSgkdG1wKSB8fCBjb3VudCgkdG1wKSA8IDIgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCRtb2QtPkxhbmcoJ2Vycm9yX2Rlc3Rub3Rmb3VuZCcsJGRlc3RfZm5hbWUpKTsKICAgICAgICAgICAgICAgICR0X3dpZHRoID0gJHRtcFswXTsgJHRfaGVpZ2h0ID0gJHRtcFsxXTsKICAgICAgICAgICAgICAgIGlmKCAoJG91dHBbJ3dpZHRoJ10gJiYgJHRfd2lkdGggPCAkb3V0cFsnd2lkdGgnXSkgfHwgKCRvdXRwWydoZWlnaHQnXSAmJiAkdF9oZWlnaHQgPCAkb3V0cFsnaGVpZ2h0J10pICkgewogICAgICAgICAgICAgICAgICAgICRvdXRwWyd3aWR0aCddID0gJHRfd2lkdGg7CiAgICAgICAgICAgICAgICAgICAgJG91dHBbJ2hlaWdodCddID0gJHRfaGVpZ2h0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBhdCB0aGlzIHBvaW50LCB3ZSdyZSByZWFkeSB0byBoYW5kbGUgYnVpbGRpbmcgdGhlIHRhZy4KICAgICAgICAgICAgaWYoICRvcHBbJ25vYmNhY2hlJ10gKSAkZGVzdF91cmwgLj0gJz94PScudGltZSgpOwoKICAgICAgICAgICAgaWYoICFpc3NldCgkb3V0cFsnYWx0J10pICkgewogICAgICAgICAgICAgICAgaWYoICRkZXN0X2ZuYW1lICkgewogICAgICAgICAgICAgICAgICAgICRvdXRwWydhbHQnXSA9IGJhc2VuYW1lKCRkZXN0X2ZuYW1lKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgaWYoICRzcmNmaWxlICkgewogICAgICAgICAgICAgICAgICAgICRvdXRwWydhbHQnXSA9IGJhc2VuYW1lKCRzcmNmaWxlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRvdXRwWydhbHQnXSA9IGJhc2VuYW1lKCRvcHBbJ3NyYyddKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gYnVpbGQgdGhlIG91dHB1dC4KICAgICAgICAgICAgaWYoICRvcHBbJ25vdGFnJ10gfHwgc2VsZjo6X2lzX3N0eWxlc2hlZXQoKSApIHsKICAgICAgICAgICAgICAgICRvdXRwWydzcmMnXSA9ICRkZXN0X3VybDsKICAgICAgICAgICAgICAgIGlmKCAhJG9wcFsnbm9lbWJlZCddICYmICRtb2QtPmNhbl9lbWJlZCgkZGVzdF9mbmFtZSkgKSB7CiAgICAgICAgICAgICAgICAgICAgJHR5cGUgPSBjZ2VfdXRpbHM6OmdldF9taW1lX3R5cGUoJGRlc3RfZm5hbWUpOwogICAgICAgICAgICAgICAgICAgIGlmKCAkdHlwZSAmJiAkdHlwZSAhPSAndW5rbm93bicgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR0bXAgPSBiYXNlNjRfZW5jb2RlKGZpbGVfZ2V0X2NvbnRlbnRzKCRkZXN0X2ZuYW1lKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICRvdXRwWydzcmMnXSA9ICdkYXRhOicuJHR5cGUuJztiYXNlNjQsJy4kdG1wOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRvdXRwWydzcmMnXSA9ICRkZXN0X3VybDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiggIWlzc2V0KCRvdXRwWydvdXRwdXQnXSkgKSAkb3V0cFsnb3V0cHV0J10gPSAkb3V0cFsnc3JjJ107CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAvLwogICAgICAgICAgICAgICAgLy8gZ290dGEgYnVpbGQgYSB0YWcuCiAgICAgICAgICAgICAgICAvLwogICAgICAgICAgICAgICAgLy8gZ2V0IHRoZSBzcmMgZmlyc3QuCiAgICAgICAgICAgICAgICBpZiggISRvcHBbJ25vZW1iZWQnXSAmJiAkbW9kLT5jYW5fZW1iZWQoJGRlc3RfZm5hbWUpICkgewogICAgICAgICAgICAgICAgICAgICR0eXBlID0gY2dlX3V0aWxzOjpnZXRfbWltZV90eXBlKCRkZXN0X2ZuYW1lKTsKICAgICAgICAgICAgICAgICAgICBpZiggJHR5cGUgJiYgJHR5cGUgIT0gJ3Vua25vd24nICkgewogICAgICAgICAgICAgICAgICAgICAgICAkdG1wID0gYmFzZTY0X2VuY29kZShmaWxlX2dldF9jb250ZW50cygkZGVzdF9mbmFtZSkpOwogICAgICAgICAgICAgICAgICAgICAgICAkb3V0cFsnc3JjJ10gPSAnZGF0YTonLiR0eXBlLic7YmFzZTY0LCcuJHRtcDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYoICFpc3NldCgkb3V0cFsnc3JjJ10pIHx8ICEkb3V0cFsnc3JjJ10gKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gZmFsbGJhY2sgdG8gdGhlIGRlc3RpbmF0aW9uIHVybC4KICAgICAgICAgICAgICAgICAgICAkb3V0cFsnc3JjJ10gPSAkZGVzdF91cmw7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYoICRkZXN0X2ZuYW1lICYmICEkb3BwWydub2F1dG8nXSApIHsKICAgICAgICAgICAgICAgICAgICAkZGV0YWlscyA9IGdldGltYWdlc2l6ZSgkZGVzdF9mbmFtZSk7CiAgICAgICAgICAgICAgICAgICAgaWYoIGlzX2FycmF5KCRkZXRhaWxzKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJG91dHBbJ3dpZHRoJ10gID0gKGludCkkZGV0YWlsc1swXTsKICAgICAgICAgICAgICAgICAgICAgICAgJG91dHBbJ2hlaWdodCddID0gKGludCkkZGV0YWlsc1sxXTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gbm93IHdlIGNhbiBidWlsZCB0aGUgdGFnLgogICAgICAgICAgICAgICAgJG91dHB1dCA9ICc8aW1nJzsKICAgICAgICAgICAgICAgIGZvcmVhY2goICRvdXRwIGFzICRrZXkgPT4gJHZhbHVlICkgewogICAgICAgICAgICAgICAgICAgIGlmKCAhJHZhbHVlICYmICRrZXkgIT0gJ2FsdCcgKSBjb250aW51ZTsgLy8gZW1wdHkgYWx0IGlzIHZhbGlkLi4uIHN0dXBpZCwgYnV0IHZhbGlkLgogICAgICAgICAgICAgICAgICAgICRvdXRwdXQgLj0gJyAnLiRrZXkuJz0iJy4kdmFsdWUuJyInOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJG91dHB1dCAuPSAnLz4nOwogICAgICAgICAgICAgICAgJG91dHBbJ291dHB1dCddID0gJG91dHB1dDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCggRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAkb3V0cFsnZXJyb3InXSA9ICRlLT5HZXRNZXNzYWdlKCk7CiAgICAgICAgfQoKICAgICAgICAvLyBoZXJlIHdlJ3JlIGdvbm5hIHJldHVybiBzb21ldGhpbmcKICAgICAgICByZXR1cm4gJG91dHA7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2dzaV9jb252ZXJ0KCRwYXJhbXMsJGNvbnRlbnQsJiRzbWFydHksJHJlcGVhdCkKICAgIHsKICAgICAgICBpZiggISRjb250ZW50ICkgcmV0dXJuOwogICAgICAgICRtYXhfd2lkdGggPSAtMTsKICAgICAgICAkbWF4X2hlaWdodCA9IC0xOwogICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydtYXhfaGVpZ2h0J10pICkgJG1heF9oZWlnaHQgPSBtYXgoMCwoaW50KSRwYXJhbXNbJ21heF9oZWlnaHQnXSk7CiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ21heF93aWR0aCddKSApICRtYXhfd2lkdGggPSBtYXgoMCwoaW50KSRwYXJhbXNbJ21heF93aWR0aCddKTsKCiAgICAgICAgJGRpZF9tb2RpZnkgPSBGQUxTRTsKICAgICAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR1NtYXJ0SW1hZ2UnKTsKICAgICAgICAkb2xkX2Vycm9ydmFsID0gbGlieG1sX3VzZV9pbnRlcm5hbF9lcnJvcnModHJ1ZSk7CiAgICAgICAgJGRvbSA9IG5ldyBDR0RvbURvY3VtZW50KCk7CiAgICAgICAgJGRvbS0+c3RyaWN0RXJyb3JDaGVja2luZyA9IEZBTFNFOwogICAgICAgICRkb20tPnZhbGlkYXRlT25QYXJzZSA9IEZBTFNFOwogICAgICAgIGlmKCBmdW5jdGlvbl9leGlzdHMoJ21iX2NvbnZlcnRfZW5jb2RpbmcnKSApICRjb250ZW50ID0gbWJfY29udmVydF9lbmNvZGluZygkY29udGVudCwgJ0hUTUwtRU5USVRJRVMnLCAnVVRGLTgnKTsKICAgICAgICAkZG9tLT5sb2FkSFRNTCgkY29udGVudCk7CgogICAgICAgICRpbWdzID0gJGRvbS0+R2V0RWxlbWVudHNCeVRhZ05hbWUoJ2ltZycpOwogICAgICAgIGlmKCBpc19vYmplY3QoJGltZ3MpICYmICRpbWdzLT5sZW5ndGggKSB7CiAgICAgICAgICAgIGZvciggJGkgPSAwOyAkaSA8ICRpbWdzLT5sZW5ndGg7ICRpKysgKSB7CiAgICAgICAgICAgICAgICAkbm9kZSA9ICRpbWdzLT5pdGVtKCRpKTsKICAgICAgICAgICAgICAgICRzeGUgPSBzaW1wbGV4bWxfaW1wb3J0X2RvbSgkbm9kZSk7CgogICAgICAgICAgICAgICAgJHBhcm1zID0gJHBhcmFtczsKICAgICAgICAgICAgICAgICRwcm9jZXNzID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGZvcmVhY2goICRzeGUtPmF0dHJpYnV0ZXMoKSBhcyAkbmFtZSA9PiAkdmFsdWUgKSB7CiAgICAgICAgICAgICAgICAgICAgJHZhbHVlID0gKHN0cmluZykkdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgaWYoICR2YWx1ZSA9PSAnJyApIGNvbnRpbnVlOwoKICAgICAgICAgICAgICAgICAgICBzd2l0Y2goICRuYW1lICkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3dpZHRoJzoKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICRtYXhfd2lkdGggPiAwICkgJHZhbHVlID0gbWluKCRtYXhfd2lkdGgsKGludCkkdmFsdWUpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnaGVpZ2h0JzoKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICRtYXhfaGVpZ2h0ID4gMCApICR2YWx1ZSA9IG1pbigkbWF4X2hlaWdodCwoaW50KSR2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICBjYXNlICdjbGFzcyc6CiAgICAgICAgICAgICAgICAgICAgICAgICR3b3JkcyA9IGV4cGxvZGUoJyAnLCR2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBpbl9hcnJheSgnbm9jZ3NpJywkd29yZHMpICkgJHByb2Nlc3MgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICRwYXJtc1skbmFtZV0gPSAkdmFsdWU7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYoICEkcHJvY2VzcyApIGNvbnRpbnVlOyAvLyBmb3VuZCBhIHJlYXNvbiBub3QgZG8gdG8gYW55dGhpbmcgd2l0aCB0aGlzIGltYWdlLgogICAgICAgICAgICAgICAgaWYoICFpc3NldCgkcGFybXNbJ3NyYyddKSApIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJHBhcm1zWydzcmMnXSwnZGF0YTonKSApIGNvbnRpbnVlOyAgIC8vIGFscmVhZHkgZW1iZWRkZWQsIGNhbid0IGRvIGFueXRoaW5nLgoKICAgICAgICAgICAgICAgICRwYXJtc1snbm90YWcnXSA9IDE7CiAgICAgICAgICAgICAgICAkb3V0cCA9IHNlbGY6OnByb2Nlc3NfaW1hZ2UoJHBhcm1zKTsKICAgICAgICAgICAgICAgIGZvcmVhY2goICRvdXRwIGFzICRrZXkgPT4gJHZhbHVlICkgewogICAgICAgICAgICAgICAgICAgICRkaWRfbW9kaWZ5ID0gVFJVRTsKICAgICAgICAgICAgICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnd2lkdGgnOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2hlaWdodCc6CiAgICAgICAgICAgICAgICAgICAgICAgICRzeGUtPmF0dHJpYnV0ZXMoKS0+JGtleSA9IChpbnQpJHZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICdzcmMnOgogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICRzeGUtPmF0dHJpYnV0ZXMoKS0+JGtleSA9ICR2YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IC8vIGZvciBlYWNoIGltYWdlCiAgICAgICAgfQoKICAgICAgICAvLyBnZXQgdGhlIGNvbnRlbnRzLgogICAgICAgIGlmKCAkZGlkX21vZGlmeSApIHsKICAgICAgICAgICAgJG5vZGUgPSAkZG9tLT5kb2N1bWVudEVsZW1lbnQ7CiAgICAgICAgICAgICRjb250ZW50ID0gJG5vZGUtPmlubmVySFRNTDsKICAgICAgICAgICAgJGNvbnRlbnQgPSBzdHJfcmVwbGFjZShjaHIoMTMpLCcnLCRjb250ZW50KTsKICAgICAgICAgICAgJGNvbnRlbnQgPSBzdHJfcmVwbGFjZSgnJiMxMzsnLCcnLCRjb250ZW50KTsKICAgICAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJGNvbnRlbnQsJzxodG1sPicpICkgewogICAgICAgICAgICAgICAgJGNvbnRlbnQgPSBzdHJfcmVwbGFjZSgnPGh0bWw+JywnJywkY29udGVudCk7CiAgICAgICAgICAgICAgICAkY29udGVudCA9IHN0cl9yZXBsYWNlKCc8L2h0bWw+JywnJywkY29udGVudCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJGNvbnRlbnQsJzxib2R5PicpICkgewogICAgICAgICAgICAgICAgJGNvbnRlbnQgPSBzdHJfcmVwbGFjZSgnPGJvZHk+JywnJywkY29udGVudCk7CiAgICAgICAgICAgICAgICAkY29udGVudCA9IHN0cl9yZXBsYWNlKCc8L2JvZHk+JywnJywkY29udGVudCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRjb250ZW50OwogICAgfQoKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9kZXZpY2VfY2FwYWJpbGl0aWVzKCkKICAgIHsKICAgICAgICBpZiggaXNfYXJyYXkoc2VsZjo6JF9kZXZpY2VfZGF0YSkgJiYgaXNzZXQoc2VsZjo6JF9kZXZpY2VfZGF0YVsnd2lkdGgnXSkgKSByZXR1cm4gc2VsZjo6JF9kZXZpY2VfZGF0YTsKCiAgICAgICAgaWYoICFpc3NldCgkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pICkgcmV0dXJuOwogICAgICAgICRicm93c2VyID0gY2dlX3V0aWxzOjpnZXRfYnJvd3NlcigpOwoKICAgICAgICAkYWdlbnQgPSAkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ107CiAgICAgICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgICAgICRja2V5ID0gbWQ1KCRjb25maWdbJ3Jvb3RfdXJsJ10uJ0NHRXh0ZW5zaW9uc0RldmljZUNhcGFiaWxpdGllc0NhY2hlJyk7CgogICAgICAgICRoYW5kbGVyID0gbmV3IGNtc19maWxlY2FjaGVfZHJpdmVyKGFycmF5KCdsaWZldGltZSc9PjI0KjM2MDAqNywnYXV0b19jbGVhbmluZyc9PjEsJ2dyb3VwJz0+X19DTEFTU19fKSk7CiAgICAgICAgJGRhdGEgPSBhcnJheSgpOwogICAgICAgIGlmKCAkaGFuZGxlci0+ZXhpc3RzKCRja2V5KSApIHsKICAgICAgICAgICAgJHJhd2RhdCA9ICRoYW5kbGVyLT5nZXQoJGNrZXkpOwogICAgICAgICAgICBpZiggJHJhd2RhdCApICRkYXRhID0gdW5zZXJpYWxpemUoJHJhd2RhdCk7CiAgICAgICAgfQogICAgICAgICR1a2V5ID0gbWQ1KCRhZ2VudCk7CiAgICAgICAgaWYoIGlzc2V0KCRkYXRhWyR1a2V5XSkgKSB7CiAgICAgICAgICAgIHNlbGY6OiRfZGV2aWNlX2RhdGEgPSAkZGF0YVskdWtleV07CiAgICAgICAgICAgIHJldHVybiAkZGF0YVskdWtleV07CiAgICAgICAgfQoKICAgICAgICAvLyBnb3R0YSBkbyBhIHdlYiBzZXJ2aWNlIHJlcXVlc3QuCiAgICAgICAgLy8gaGVyZSB3ZSB3b3VsZCBkZXRlcm1pbmUgd2hhdCBjbGllbnQgdG8gdXNlLgogICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHU21hcnRJbWFnZScpOwogICAgICAgIGlmKCAhJG1vZCApIHJldHVybjsKCiAgICAgICAgLy8gaW5zdGFudGlhdGUgdGhlIGNsYXNzIGFuZCBkbyB0aGUgcmVxdWVzdAogICAgICAgICRjbGllbnRfY2xhc3MgPSAnY2dzaV9EZXZpY2VBdGxhc1BlcnNvbmFsX2NsaWVudCc7CiAgICAgICAgaWYoICFjbGFzc19leGlzdHMoJGNsaWVudF9jbGFzcykgKSByZXR1cm47IC8vIG5vIGNsaWVudCBjbGFzcyBmb3VuZC4KICAgICAgICAkY2xpZW50X29iaiA9IG5ldyAkY2xpZW50X2NsYXNzKCRhZ2VudCk7CiAgICAgICAgaWYoICFpc19vYmplY3QoJGNsaWVudF9vYmopICkgcmV0dXJuOyAvLyBubyBjbGllbnQgY2xhc3MgcG9zc2libGUuCiAgICAgICAgJHJlcyA9ICRjbGllbnRfb2JqLT5nZXRfZGV2aWNlX3Jlc29sdXRpb24oKTsKICAgICAgICBpZiggIWlzX2FycmF5KCRyZXMpICkgcmV0dXJuOwoKICAgICAgICAvLyBnb3QgcmVzdWx0cyBmcm9tIHdlYiBzZXJ2aWNlCiAgICAgICAgJGRhdGFbJHVrZXldID0gJHJlczsKICAgICAgICAkaGFuZGxlci0+c2V0KCRja2V5LHNlcmlhbGl6ZSgkZGF0YSkpOwogICAgICAgIHNlbGY6OiRfZGV2aWNlX2RhdGEgPSAkcmVzOwogICAgICAgIHJldHVybiAkcmVzOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gdHJpbV90b19kZXZpY2UoJGZsYWcsJHZhbHVlKQogICAgewogICAgICAgICRmbGFnID0gc3RydG9sb3dlcigkZmxhZyk7CiAgICAgICAgaWYoICR2YWx1ZSA+IDAgJiYgaXNfYXJyYXkoc2VsZjo6JF9kZXZpY2VfZGF0YSkgJiYgaXNzZXQoc2VsZjo6JF9kZXZpY2VfZGF0YVskZmxhZ10pICkgewogICAgICAgICAgICByZXR1cm4gbWluKCR2YWx1ZSxzZWxmOjokX2RldmljZV9kYXRhWyRmbGFnXSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkdmFsdWU7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfdHJhbnNwYXJlbnRfY29sb3IoQ0dJbWFnZUJhc2UgJGltZykKICAgIHsKICAgICAgICBpZiggJGltZ1sndHJhbnNwYXJlbnQnXSAhPSAnJyApIHJldHVybiAkaW1nWyd0cmFuc3BhcmVudCddOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZmluZF91bnVzZWRfY29sb3IoQ0dJbWFnZUJhc2UgJGltZykKICAgIHsKICAgICAgICAvLyBkb250IGhhdmUgYSB0cmFuc3BhcmVuY3kgY29sb3IuLi4gc28gZ3Vlc3Mgb25lLgogICAgICAgIC8vIGZpbmQgYSByYW5kb20gdW51c2VkIGNvbG9yIGZvciB0cmFuc3BhcmVuY3kuCiAgICAgICAgJHIgPSAkZyA9ICRiID0gMjU1OwogICAgICAgICRmb3VuZCA9IDA7CiAgICAgICAgd2hpbGUoICRmb3VuZCA8IDEwMCApIHsKICAgICAgICAgICAgJHIgPSByYW5kKDAsMjU1KTsKICAgICAgICAgICAgJGcgPSByYW5kKDAsMjU1KTsKICAgICAgICAgICAgJGIgPSByYW5kKDAsMjU1KTsKICAgICAgICAgICAgaWYoIGltYWdlY29sb3JleGFjdCgkaW1nWydyc3JjJ10sJHIsJGcsJGIpICE9IC0xICkgYnJlYWs7CiAgICAgICAgICAgICRmb3VuZCsrOwogICAgICAgIH0KCiAgICAgICAgaWYoICRmb3VuZCA9PSA1MCApIGF1ZGl0KCcnLCdDR1NtYXJ0SW1hZ2UnLCdObyB1bnVzZWQgY29sb3IgZm91bmQnKTsKICAgICAgICByZXR1cm4gYXJyYXkoJHIsJGcsJGIpOwogICAgfQp9CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGSmartImage_ClearCacheTask.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR1NtYXJ0SW1hZ2VfQ2xlYXJDYWNoZVRhc2sgaW1wbGVtZW50cyBDbXNSZWd1bGFyVGFzawp7CiAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkgCiAgewogICAgcmV0dXJuIGdldF9jbGFzcygkdGhpcyk7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIGdldF9kZXNjcmlwdGlvbigpCiAgewogICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dTbWFydEltYWdlJyk7CiAgICByZXR1cm4gJG1vZC0+TGFuZygnY2xlYXJjYWNoZXRhc2tfZGVzY3JpcHRpb24nKTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gdGVzdCgkdGltZSA9ICcnKQogIHsKICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHU21hcnRJbWFnZScpOwogICAgJGFnZSA9IChpbnQpJG1vZC0+R2V0UHJlZmVyZW5jZSgnY2FjaGVfYWdlJyk7CiAgICBpZiggJGFnZSA8PSAwICkgcmV0dXJuIEZBTFNFOwoKICAgIC8vIHdlIG9ubHkgYXR0ZW1wdCB0byBjbGVhciBjYWNoZWQgZmlsZXMgb25jZSBwZXIgZGF5CiAgICBpZiggISR0aW1lICkgJHRpbWUgPSB0aW1lKCk7CiAgICAkbGFzdF9leGVjdXRlID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnY2xlYXJjYWNoZV9sYXN0cnVuJyk7CiAgICBpZiggKCR0aW1lIC0gMjQqNjAqNjAgKSA+PSAkbGFzdF9leGVjdXRlICkKICAgIHsKICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIGV4ZWN1dGUoJHRpbWUgPSAnJykKICB7CiAgICBpZiggISR0aW1lICkgJHRpbWUgPSB0aW1lKCk7CgogICAgdHJ5CiAgICAgIHsKCS8vIGNsZWFyIGNhY2hlZCBmaWxlcy4KCSRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHU21hcnRJbWFnZScpOwoJJG5fcmVtb3ZlZCA9ICRtb2QtPmNsZWFyX2NhY2hlZF9maWxlcygpOwoJJG1vZC0+QXVkaXQoJycsJG1vZC0+TGFuZygnYWN0X2NhY2hlY2xlYW5lZCcpLCRtb2QtPkxhbmcoJ21zZ19jYWNoZWNsZWFuZWQnLCRuX3JlbW92ZWQpKTsKCXJldHVybiBUUlVFOwogICAgICB9CiAgICBjYXRjaCggRXhjZXB0aW9uICRlICkKICAgICAgewoJcmV0dXJuIEZBTFNFOwogICAgICB9CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIG9uX3N1Y2Nlc3MoJHRpbWUgPSAnJykKICB7CiAgICBpZiggISR0aW1lICkgJHRpbWUgPSB0aW1lKCk7CiAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR1NtYXJ0SW1hZ2UnKTsKICAgICRtb2QtPlNldFByZWZlcmVuY2UoJ2NsZWFyY2FjaGVfbGFzdHJ1bicsJHRpbWUpOwogIH0KCiAgCiAgcHVibGljIGZ1bmN0aW9uIG9uX2ZhaWx1cmUoJHRpbWUgPSAnJykKICB7CiAgICAvLyBub3RoaW5nIGhlcmUuCiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIGdldF9jYWNoZWRfaW1hZ2VfdXJsKCRkZXN0bmFtZSkKICB7CiAgICAkZGVzdG5hbWUgPSBiYXNlbmFtZSgkZGVzdG5hbWUpOwoKICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAgICRkZXN0X3VybCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbWFnZV91cmxfcHJlZml4JywkY29uZmlnWyd1cGxvYWRzX3VybCddKTsKICAgIGlmKCAhZW5kc3dpdGgoJGRlc3RfdXJsLCAnLycpICkgJGRlc3R1cmwgLj0gJy8nOwogICAgaWYoICEkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VfdXJsX2hhc2NhY2hlZGlyJywwKSApCiAgICAgIHsKCSRkZXN0X3VybCAuPSAnXycuJHRoaXMtPkdldE5hbWUoKS4nLyc7CiAgICAgIH0KICAgICRkZXN0X3VybCAuPSAkZGVzdG5hbWU7CiAgICByZXR1cm4gJGRlc3RfdXJsOwogIH0KfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/colors.dat</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[I0YwRjhGRi1BbGljZUJsdWUKI0ZBRUJENy1BbnRpcXVlV2hpdGUKIzAwRkZGRi1BcXVhCiM3RkZGRDQtQXF1YW1hcmluZQojRjBGRkZGLUF6dXJlCiNGNUY1REMtQmVpZ2UKI0ZGRTRDNC1CaXNxdWUKI0ZGRUJDRC1CbGFuY2hlZEFsbW9uZAojMDAwMDAwLUJsYWNrCiMwMDAwRkYtQmx1ZQojOEEyQkUyLUJsdWVWaW9sZXQKI0E1MkEyQS1Ccm93bgojREVCODg3LUJ1cmx5V29vZAojNUY5RUEwLUNhZGV0Qmx1ZQojN0ZGRjAwLUNoYXJ0cmV1c2UKI0QyNjkxRS1DaG9jb2xhdGUKI0ZGN0Y1MC1Db3JhbAojNjQ5NUVELUNvcm5mbG93ZXJCbHVlCiNGRkY4REMtQ29ybnNpbGsKI0RDMTQzQy1Dcmltc29uCiMwMEZGRkYtQ3lhbgojMDAwMDhCLURhcmtCbHVlCiMwMDhCOEItRGFya0N5YW4KI0I4ODYwQi1EYXJrR29sZGVuUm9kCiNBOUE5QTktRGFya0dyYXkKIzAwNjQwMC1EYXJrR3JlZW4KI0JEQjc2Qi1EYXJrS2hha2kKIzhCMDA4Qi1EYXJrTWFnZW50YQojNTU2QjJGLURhcmtPbGl2ZUdyZWVuCiNGRjhDMDAtRGFya29yYW5nZQojOTkzMkNDLURhcmtPcmNoaWQKIzhCMDAwMC1EYXJrUmVkCiNFOTk2N0EtRGFya1NhbG1vbgojOEZCQzhGLURhcmtTZWFHcmVlbgojNDgzRDhCLURhcmtTbGF0ZUJsdWUKIzJGNEY0Ri1EYXJrU2xhdGVHcmF5CiMwMENFRDEtRGFya1R1cnF1b2lzZQojOTQwMEQzLURhcmtWaW9sZXQKI0ZGMTQ5My1EZWVwUGluawojMDBCRkZGLURlZXBTa3lCbHVlCiM2OTY5NjktRGltR3JheQojMUU5MEZGLURvZGdlckJsdWUKI0QxOTI3NS1GZWxkc3BhcgojQjIyMjIyLUZpcmVCcmljawojRkZGQUYwLUZsb3JhbFdoaXRlCiMyMjhCMjItRm9yZXN0R3JlZW4KI0ZGMDBGRi1GdWNoc2lhCiNEQ0RDREMtR2FpbnNib3JvCiNGOEY4RkYtR2hvc3RXaGl0ZQojRkZENzAwLUdvbGQKI0RBQTUyMC1Hb2xkZW5Sb2QKIzgwODA4MC1HcmF5CiMwMDgwMDAtR3JlZW4KI0FERkYyRi1HcmVlblllbGxvdwojRjBGRkYwLUhvbmV5RGV3CiNGRjY5QjQtSG90UGluawojQ0Q1QzVDLUluZGlhblJlZAojNEIwMDgyLUluZGlnbwojRkZGRkYwLUl2b3J5CiNGMEU2OEMtS2hha2kKI0U2RTZGQS1MYXZlbmRlcgojRkZGMEY1LUxhdmVuZGVyQmx1c2gKIzdDRkMwMC1MYXduR3JlZW4KI0ZGRkFDRC1MZW1vbkNoaWZmb24KI0FERDhFNi1MaWdodEJsdWUKI0YwODA4MC1MaWdodENvcmFsCiNFMEZGRkYtTGlnaHRDeWFuCiNGQUZBRDItTGlnaHRHb2xkZW5Sb2RZZWxsb3cKI0QzRDNEMy1MaWdodEdyZXkKIzkwRUU5MC1MaWdodEdyZWVuCiNGRkI2QzEtTGlnaHRQaW5rCiNGRkEwN0EtTGlnaHRTYWxtb24KIzIwQjJBQS1MaWdodFNlYUdyZWVuCiM4N0NFRkEtTGlnaHRTa3lCbHVlCiM4NDcwRkYtTGlnaHRTbGF0ZUJsdWUKIzc3ODg5OS1MaWdodFNsYXRlR3JheQojQjBDNERFLUxpZ2h0U3RlZWxCbHVlCiNGRkZGRTAtTGlnaHRZZWxsb3cKIzAwRkYwMC1MaW1lCiMzMkNEMzItTGltZUdyZWVuCiNGQUYwRTYtTGluZW4KI0ZGMDBGRi1NYWdlbnRhCiM4MDAwMDAtTWFyb29uCiM2NkNEQUEtTWVkaXVtQXF1YU1hcmluZQojMDAwMENELU1lZGl1bUJsdWUKI0JBNTVEMy1NZWRpdW1PcmNoaWQKIzkzNzBEOC1NZWRpdW1QdXJwbGUKIzNDQjM3MS1NZWRpdW1TZWFHcmVlbgojN0I2OEVFLU1lZGl1bVNsYXRlQmx1ZQojMDBGQTlBLU1lZGl1bVNwcmluZ0dyZWVuCiM0OEQxQ0MtTWVkaXVtVHVycXVvaXNlCiNDNzE1ODUtTWVkaXVtVmlvbGV0UmVkCiMxOTE5NzAtTWlkbmlnaHRCbHVlCiNGNUZGRkEtTWludENyZWFtCiNGRkU0RTEtTWlzdHlSb3NlCiNGRkU0QjUtTW9jY2FzaW4KI0ZGREVBRC1OYXZham9XaGl0ZQojMDAwMDgwLU5hdnkKI0ZERjVFNi1PbGRMYWNlCiM4MDgwMDAtT2xpdmUKIzZCOEUyMy1PbGl2ZURyYWIKI0ZGQTUwMC1PcmFuZ2UKI0ZGNDUwMC1PcmFuZ2VSZWQKI0RBNzBENi1PcmNoaWQKI0VFRThBQS1QYWxlR29sZGVuUm9kCiM5OEZCOTgtUGFsZUdyZWVuCiNBRkVFRUUtUGFsZVR1cnF1b2lzZQojRDg3MDkzLVBhbGVWaW9sZXRSZWQKI0ZGRUZENS1QYXBheWFXaGlwCiNGRkRBQjktUGVhY2hQdWZmCiNDRDg1M0YtUGVydQojRkZDMENCLVBpbmsKI0REQTBERC1QbHVtCiNCMEUwRTYtUG93ZGVyQmx1ZQojODAwMDgwLVB1cnBsZQojRkYwMDAwLVJlZAojQkM4RjhGLVJvc3lCcm93bgojNDE2OUUxLVJveWFsQmx1ZQojOEI0NTEzLVNhZGRsZUJyb3duCiNGQTgwNzItU2FsbW9uCiNGNEE0NjAtU2FuZHlCcm93bgojMkU4QjU3LVNlYUdyZWVuCiNGRkY1RUUtU2VhU2hlbGwKI0EwNTIyRC1TaWVubmEKI0MwQzBDMC1TaWx2ZXIKIzg3Q0VFQi1Ta3lCbHVlCiM2QTVBQ0QtU2xhdGVCbHVlCiM3MDgwOTAtU2xhdGVHcmF5CiNGRkZBRkEtU25vdwojMDBGRjdGLVNwcmluZ0dyZWVuCiM0NjgyQjQtU3RlZWxCbHVlCiNEMkI0OEMtVGFuCiMwMDgwODAtVGVhbAojRDhCRkQ4LVRoaXN0bGUKI0ZGNjM0Ny1Ub21hdG8KIzQwRTBEMC1UdXJxdW9pc2UKI0VFODJFRS1WaW9sZXQKI0QwMjA5MC1WaW9sZXRSZWQKI0Y1REVCMy1XaGVhdAojRkZGRkZGLVdoaXRlCiNGNUY1RjUtV2hpdGVTbW9rZQojRkZGRjAwLVllbGxvdwojOUFDRDMyLVllbGxvd0dyZWVuCg==]]></data>
	</file>
	<file>
	  <filename>/lib/imageSmoothArc_optimized.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qCiAgICAKICAgIENvcHlyaWdodCAoYykgMjAwNi0yMDA4IFVscmljaCBNaWVyZW5kb3JmZgoKICAgIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCiAgICBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAogICAgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgogICAgdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCiAgICBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKICAgIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgogICAgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KICAgIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgoKICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCiAgICBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKICAgIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMCiAgICBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgogICAgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKICAgIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKICAgIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KCiovCgpmdW5jdGlvbiBpbWFnZVNtb290aEFyY0RyYXdTZWdtZW50ICgmJGltZywgJGN4LCAkY3ksICRhLCAkYiwgJGNvbG9yLCAkc3RhcnQsICRzdG9wLCAkc2VnKQp7CiAgICAvLyBPcmlnaW5hbGx5IHdyaXR0ZW4gZnJvbSBzY3JhdGNoIGJ5IFVscmljaCBNaWVyZW5kb3JmZiwgMDYvMjAwNgogICAgLy8gUmV3cml0dGVuIGFuZCBpbXByb3ZlZCwgMDQvMjAwNywgMDcvMjAwNwogICAgLy8gT3B0aW1pemVkIGNpcmNsZSB2ZXJzaW9uOiAwMy8yMDA4CiAgICAKICAgIC8vIFBsZWFzZSBkbyBub3QgdXNlIFRISVMgZnVuY3Rpb24gZGlyZWN0bHkuIFNjcm9sbCBkb3duIHRvIGltYWdlU21vb3RoQXJjKC4uLikuCiAgICAKICAgICRmaWxsQ29sb3IgPSBpbWFnZUNvbG9yRXhhY3RBbHBoYSggJGltZywgJGNvbG9yWzBdLCAkY29sb3JbMV0sICRjb2xvclsyXSwgJGNvbG9yWzNdICk7CiAgICBzd2l0Y2ggKCRzZWcpCiAgICB7CiAgICAgICAgY2FzZSAwOiAkeHAgPSArMTsgJHlwID0gLTE7ICR4YSA9IDE7ICR5YSA9IC0xOyBicmVhazsKICAgICAgICBjYXNlIDE6ICR4cCA9IC0xOyAkeXAgPSAtMTsgJHhhID0gMDsgJHlhID0gLTE7IGJyZWFrOwogICAgICAgIGNhc2UgMjogJHhwID0gLTE7ICR5cCA9ICsxOyAkeGEgPSAwOyAkeWEgPSAwOyBicmVhazsKICAgICAgICBjYXNlIDM6ICR4cCA9ICsxOyAkeXAgPSArMTsgJHhhID0gMTsgJHlhID0gMDsgYnJlYWs7CiAgICB9CiAgICBmb3IgKCAkeCA9IDA7ICR4IDw9ICRhOyAkeCArPSAxICkgewogICAgICAgICR5ID0gJGIgKiBzcXJ0KCAxIC0gKCR4KiR4KS8oJGEqJGEpICk7CiAgICAgICAgJGVycm9yID0gJHkgLSAoaW50KSgkeSk7CiAgICAgICAgJHkgPSAoaW50KSgkeSk7CiAgICAgICAgJGRpZmZDb2xvciA9IGltYWdlQ29sb3JFeGFjdEFscGhhKCAkaW1nLCAkY29sb3JbMF0sICRjb2xvclsxXSwgJGNvbG9yWzJdLCAxMjctKDEyNy0kY29sb3JbM10pKiRlcnJvciApOwogICAgICAgIGltYWdlU2V0UGl4ZWwoJGltZywgJGN4KyR4cCokeCskeGEsICRjeSskeXAqKCR5KzEpKyR5YSwgJGRpZmZDb2xvcik7CiAgICAgICAgaW1hZ2VMaW5lKCRpbWcsICRjeCskeHAqJHgrJHhhLCAkY3krJHlwKiR5KyR5YSAsICRjeCskeHAqJHgrJHhhLCAkY3krJHlhLCAkZmlsbENvbG9yKTsKICAgIH0KICAgIGZvciAoICR5ID0gMDsgJHkgPCAkYjsgJHkgKz0gMSApIHsKICAgICAgICAkeCA9ICRhICogc3FydCggMSAtICgkeSokeSkvKCRiKiRiKSApOwogICAgICAgICRlcnJvciA9ICR4IC0gKGludCkoJHgpOwogICAgICAgICR4ID0gKGludCkoJHgpOwogICAgICAgICRkaWZmQ29sb3IgPSBpbWFnZUNvbG9yRXhhY3RBbHBoYSggJGltZywgJGNvbG9yWzBdLCAkY29sb3JbMV0sICRjb2xvclsyXSwgMTI3LSgxMjctJGNvbG9yWzNdKSokZXJyb3IgKTsKICAgICAgICBpbWFnZVNldFBpeGVsKCRpbWcsICRjeCskeHAqKCR4KzEpKyR4YSwgJGN5KyR5cCokeSskeWEsICRkaWZmQ29sb3IpOwogICAgfQp9CgoKZnVuY3Rpb24gaW1hZ2VTbW9vdGhBcmMgKCAmJGltZywgJGN4LCAkY3ksICR3LCAkaCwgJGNvbG9yLCAkc3RhcnQsICRzdG9wKQp7CiAgICAvLyBPcmlnaW5hbGx5IHdyaXR0ZW4gZnJvbSBzY3JhdGNoIGJ5IFVscmljaCBNaWVyZW5kb3JmZiwgMDYvMjAwNgogICAgLy8gUmV3cml0dGVuIGFuZCBpbXByb3ZlZCwgMDQvMjAwNywgMDcvMjAwNwogICAgLy8gT3B0aW1pemVkIGNpcmNsZSB2ZXJzaW9uOiAwMy8yMDA4CiAgICAvLyBjb21wYXJlZCB0byBvbGQgdmVyc2lvbjoKICAgIC8vICsgU3VwcG9ydCBmb3IgdHJhbnNwYXJlbmN5IGFkZGVkCiAgICAvLyArIEltcHJvdmVkIHF1YWxpdHkgb2YgZWRnZXMgJiBhbnRpYWxpYXNpbmcKICAgIAogICAgLy8gbm90ZTogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCByZXByZXNlbnQgdGhlIGZhc3Rlc3Qgd2F5IHRvIGRyYXcgZWxsaXB0aWNhbAogICAgLy8gYXJjcy4gSXQgd2FzIHdyaXR0ZW4gd2l0aG91dCByZWFkaW5nIGFueSBwYXBlcnMgb24gdGhhdCBzdWJqZWN0LiBCZXR0ZXIKICAgIC8vIGFsZ29yaXRobXMgbWF5IGJlIHR3aWNlIGFzIGZhc3Qgb3IgZXZlbiBtb3JlLgogICAgCiAgICAvLyBQYXJhbWV0ZXJzOgogICAgLy8gJGN4ICAgICAgLSBDZW50ZXIgb2YgZWxsaXBzZSwgWC1jb29yZAogICAgLy8gJGN5ICAgICAgLSBDZW50ZXIgb2YgZWxsaXBzZSwgWS1jb29yZAogICAgLy8gJHcgICAgICAgLSBXaWR0aCBvZiBlbGxpcHNlICgkdyA+PSAyKQogICAgLy8gJGggICAgICAgLSBIZWlnaHQgb2YgZWxsaXBzZSAoJGggPj0gMiApCiAgICAvLyAkY29sb3IgICAtIENvbG9yIG9mIGVsbGlwc2UgYXMgYSBmb3VyIGNvbXBvbmVudCBhcnJheSB3aXRoIFJHQkEKICAgIC8vICRzdGFydCAgIC0gU3RhcnRpbmcgYW5nbGUgb2YgdGhlIGFyYzogMCwgUEkvMiwgUEksIFBJLzIqMywgMipQSSwuLi4gKDAsOTDCsCwxODDCsCwyNzDCsCwzNjDCsCwuLi4pCiAgICAvLyAkc3RvcCAgICAtIFN0b3AgICAgIGFuZ2xlIG9mIHRoZSBhcmM6IDAsIFBJLzIsIFBJLCBQSS8yKjMsIDIqUEksLi4uICgwLDkwwrAsMTgwwrAsMjcwwrAsMzYwwrAsLi4uKQogICAgLy8gJHN0YXJ0IF9jYW5fIGJlIGdyZWF0ZXIgdGhhbiAkc3RvcCEKICAgIC8vIElmIGFueSB2YWx1ZSBpcyBub3QgaW4gdGhlIGdpdmVuIHJhbmdlLCByZXN1bHRzIGFyZSB1bmRlZmluZWQhCiAgICAKICAgIC8vIFRoaXMgc2NyaXB0IGRvZXMgbm90IHVzZSBhbnkgc3BlY2lhbCBhbGdvcml0aG1zLCBldmVyeXRoaW5nIGlzIGNvbXBsZXRlbHkKICAgIC8vIHdyaXR0ZW4gZnJvbSBzY3JhdGNoOyBzZWUgaHR0cDovL2RlLndpa2lwZWRpYS5vcmcvd2lraS9FbGxpcHNlIGZvciBmb3JtdWxhcy4KICAgIAogICAgd2hpbGUgKCRzdGFydCA8IDApCiAgICAgICAgJHN0YXJ0ICs9IDIqTV9QSTsKICAgIHdoaWxlICgkc3RvcCA8IDApCiAgICAgICAgJHN0b3AgKz0gMipNX1BJOwogICAgCiAgICB3aGlsZSAoJHN0YXJ0ID4gMipNX1BJKQogICAgICAgICRzdGFydCAtPSAyKk1fUEk7CiAgICAKICAgIHdoaWxlICgkc3RvcCA+IDIqTV9QSSkKICAgICAgICAkc3RvcCAtPSAyKk1fUEk7CiAgICAKCiAgICBpZiAoJHN0YXJ0ID4gJHN0b3ApCiAgICB7CiAgICAgICAgaW1hZ2VTbW9vdGhBcmMgKCAkaW1nLCAkY3gsICRjeSwgJHcsICRoLCAkY29sb3IsICRzdGFydCwgMipNX1BJKTsKICAgICAgICBpbWFnZVNtb290aEFyYyAoICRpbWcsICRjeCwgJGN5LCAkdywgJGgsICRjb2xvciwgMCwgJHN0b3ApOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIAogICAgJGEgPSAxLjAqcm91bmQgKCR3LzIpOwogICAgJGIgPSAxLjAqcm91bmQgKCRoLzIpOwogICAgJGN4ID0gMS4wKnJvdW5kICgkY3gpOwogICAgJGN5ID0gMS4wKnJvdW5kICgkY3kpOwogICAgCiAgICBmb3IgKCRpPTA7ICRpPDQ7JGkrKykKICAgIHsKICAgICAgICBpZiAoJHN0YXJ0IDwgKCRpKzEpKk1fUEkvMikKICAgICAgICB7CiAgICAgICAgICAgIGlmICgkc3RhcnQgPiAkaSpNX1BJLzIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmICgkc3RvcCA+ICgkaSsxKSpNX1BJLzIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaW1hZ2VTbW9vdGhBcmNEcmF3U2VnbWVudCgkaW1nLCAkY3gsICRjeSwgJGEsICRiLCAkY29sb3IsICRzdGFydCwgKCRpKzEpKk1fUEkvMiwgJGkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGltYWdlU21vb3RoQXJjRHJhd1NlZ21lbnQoJGltZywgJGN4LCAkY3ksICRhLCAkYiwgJGNvbG9yLCAkc3RhcnQsICRzdG9wLCAkaSk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAoJHN0b3AgPiAoJGkrMSkqTV9QSS8yKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGltYWdlU21vb3RoQXJjRHJhd1NlZ21lbnQoJGltZywgJGN4LCAkY3ksICRhLCAkYiwgJGNvbG9yLCAkaSpNX1BJLzIsICgkaSsxKSpNX1BJLzIsICRpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpbWFnZVNtb290aEFyY0RyYXdTZWdtZW50KCRpbWcsICRjeCwgJGN5LCAkYSwgJGIsICRjb2xvciwgJGkqTV9QSS8yLCAkc3RvcCwgJGkpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIAojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2VtYmVkX21vZGUnLCdzbWFydCcpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZW1iZWRfc2l6ZScsMzIpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZW1iZWRfdHlwZScsJ3BuZyxqcGcsZ2lmJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbWFnZV91cmxfcHJlZml4JywkY29uZmlnWydyb290X3VybCddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltYWdlX3VybF9oYXNjYWNoZWRpcicsMCk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjYWNoZV9hZ2UnLDApOwovLyR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjYWNoZV9wYXRoJywgY21zX2pvaW5fcGF0aCgndXBsb2FkcycsICdfJy4kdGhpcy0+R2V0TmFtZSgpKSk7CgokYWxpYXNlcyA9IGFycmF5KCk7CiRhbGlhc2VzW10gPSBhcnJheSgnbmFtZSc9PidzdGRfdGh1bWJuYWlsJywnb3B0aW9ucyc9PidmaWx0ZXJfd2F0ZXJtYXJrPTEgd2lkdGg9MTUwIGhlaWdodD0xNTAnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FsaWFzZXMnLHNlcmlhbGl6ZSgkYWxpYXNlcykpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiRjYWNoZV9wYXRoID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NhY2hlX3BhdGgnKTsKaWYoICEkY2FjaGVfcGF0aCB8fCBzdGFydHN3aXRoKCRjYWNoZV9wYXRoLCcvJykgKSB7CiAgJGNhY2hlX3BhdGggPSAndXBsb2Fkcy9fQ0dTbWFydEltYWdlJzsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnY2FjaGVfcGF0aCcsJGNhY2hlX3BhdGgpOwogIGF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ0ludmFsaWQgY2FjaGUgcGF0aCByZXNldCB0byB1cGxvYWRzL19DR1NtYXJ0SW1hZ2Ugb24gdXBncmFkZScpOwp9Cj8+]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_aliases_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHA+eyRtb2QtPkxhbmcoJ2luZm9fYWxpYXNlcycpfTwvcD4KCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij57bGl0ZXJhbH0KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICAkKCcjYWxpYXNfdGFibGUgdHI6bGFzdCcpLmZpbmQoJ2ltZycpLmhpZGUoKTsKICAkKCcjYWRkX3JvdycpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICB2YXIgbmV3X3JvdyA9ICQoJyNhbGlhc190YWJsZSB0cjpsYXN0JykuY2xvbmUodHJ1ZSk7CiAgICAkKCcjYWxpYXNfdGFibGUgdHI6bGFzdCcpLmZpbmQoJ2ltZycpLnNob3coKTsKICAgIG5ld19yb3cuZmluZCgnOmlucHV0JykuZWFjaChmdW5jdGlvbigpewogICAgICAkKHRoaXMpLnZhbCgnJyk7CiAgICB9KTsKICAgICQoJyNhbGlhc190YWJsZSB0Ym9keScpLmFwcGVuZChuZXdfcm93KTsKICAgIHJldHVybiBmYWxzZTsKICB9KTsKCiAgJCgnaW1nLmRlbGV0ZXJvdycpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICBpZiggJCgnI2FsaWFzX3RhYmxlIHRyJykubGVuZ3RoIDw9IDIgKSByZXR1cm4gZmFsc2U7CiAgICAkKHRoaXMpLmNsb3Nlc3QoJ3RyJykucmVtb3ZlKCk7ICAgCiAgfSk7Cn0pOwp7L2xpdGVyYWx9PC9zY3JpcHQ+Cgp7JGZvcm1zdGFydH0KPHRhYmxlIGNsYXNzPSJwYWdldGFibGUgcGFnZWlucHV0IiBjZWxsc3BhY2luZz0iMCIgaWQ9ImFsaWFzX3RhYmxlIj4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD57JG1vZC0+TGFuZygnYWxpYXMnKX08L3RoPgogICAgICA8dGg+eyRtb2QtPkxhbmcoJ29wdGlvbnMnKX08L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj48L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4Ke2lmIGlzc2V0KCRhbGlhc2VzKX0Ke2ZvcmVhY2ggZnJvbT0kYWxpYXNlcyBpdGVtPSdhbGlhcyd9CiAgICA8dHI+CiAgICAgIDx0ZD4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1hbGlhc19uYW1lW10iIHZhbHVlPSJ7JGFsaWFzLm5hbWV8aHRtbHNwZWNpYWxjaGFyc30iIHNpemU9IjIwIiBtYXhsZW5ndGg9IjUwIi8+CiAgICAgIDwvdGQ+CiAgICAgIDx0ZD4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1hbGlhc19vcHRpb25zW10iIHZhbHVlPSJ7JGFsaWFzLm9wdGlvbnN8aHRtbHNwZWNpYWxjaGFyc30iIHNpemU9IjYwIiBtYXhsZW5ndGg9IjI1NSIvPgogICAgICA8L3RkPgogICAgICA8dGQ+CiAgICAgICAge2NnaW1hZ2UgY2xhc3M9J2RlbGV0ZXJvdycgaW1hZ2U9J2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJyBhbHQ9JG1vZC0+TGFuZygnZGVsZXRlJyl9CiAgICAgIDwvdGQ+CiAgICA8L3RyPgp7L2ZvcmVhY2h9CnsvaWZ9CiAgICB7KiBlbXB0eSByb3cgKn0KICAgIDx0cj4KICAgICAgPHRkPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWFsaWFzX25hbWVbXSIgdmFsdWU9IiIgc2l6ZT0iMjAiIG1heGxlbmd0aD0iNTAiLz4KICAgICAgPC90ZD4KICAgICAgPHRkPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWFsaWFzX29wdGlvbnNbXSIgdmFsdWU9IiIgc2l6ZT0iNjAiIG1heGxlbmd0aD0iMjU1Ii8+CiAgICAgIDwvdGQ+CiAgICAgIDx0ZD4KICAgICAgICB7Y2dpbWFnZSBjbGFzcz0nZGVsZXRlcm93JyBpbWFnZT0naWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnIGFsdD0kbW9kLT5MYW5nKCdkZWxldGUnKX0KICAgICAgPC90ZD4KICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIGlkPSJhZGRfcm93IiBuYW1lPSJ7JGFjdGlvbmlkfWFkZF9yb3ciIHZhbHVlPSJ7JG1vZC0+TGFuZygnYWRkX3JvdycpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_embedding_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnZW1iZWRkaW5nX21vZGUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWVtYmVkX21vZGUiPgogICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRlbWJlZF9tb2RlcyBzZWxlY3RlZD0kZW1iZWRfbW9kZX0KICAgIDwvc2VsZWN0PgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2VtYmVkX21vZGUnKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2VtYmVkX3NpemVsaW1pdCcpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1lbWJlZF9zaXplbGltaXQiIHNpemU9IjQiIG1heGxlbmd0aD0iNCIgdmFsdWU9InskZW1iZWRfc2l6ZWxpbWl0fSIvPgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2VtYmVkX3NpemVsaW1pdCcpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnZW1iZWRfdHlwZXMnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9ZW1iZWRfdHlwZXMiIHNpemU9IjIwIiBtYXhsZW5ndGg9IjIwIiB2YWx1ZT0ieyRlbWJlZF90eXBlc30iLz4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19lbWJlZF90eXBlcycpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8L3A+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_general_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2Nyb3B0b2ZpdF9kZWZhdWx0X2xvYycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y3JvcHRvZml0X2RlZmF1bHRfbG9jIj4KICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kY3JvcHRvZml0X2xvY3Mgc2VsZWN0ZWQ9JGNyb3B0b2ZpdF9kZWZhdWx0X2xvY30KICAgIDwvc2VsZWN0PgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2Nyb3B0b2ZpdF9kZWZhdWx0X2xvYycpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2ZvcmNlX2V4dGVuc2lvbicpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPSdmb3JjZV9leHRlbnNpb24nIHNlbGVjdGVkPSRmb3JjZV9leHRlbnNpb259CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fZm9yY2VfZXh0ZW5zaW9uJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdtYXhfY2FjaGVfYWdlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhY2hlX2FnZSIgdmFsdWU9InskY2FjaGVfYWdlfSIgc2l6ZT0iMyIgbWF4bGVuZ3RoPSIzIi8+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNsZWFyX25vdyIgdmFsdWU9InskbW9kLT5MYW5nKCdjbGVhcl9ub3cnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2xlYXJfYWxsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NsZWFyX2FsbCcpfSIgb25jbGljaz0icmV0dXJuIGNvbmZpcm0oJ3skbW9kLT5MYW5nKCdhc2tfY2xlYXJfaW1hZ2VfY2FjaGUnKX0nKTsiLz4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19jYWNoZV9hZ2UnKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2NhY2hlX3BhdGgnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y2FjaGVfcGF0aCIgdmFsdWU9InskY2FjaGVfcGF0aH0iIHNpemU9IjQwIiBtYXhsZW5ndGg9IjI1NSIvPgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2NhY2hlX3BhdGgnKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2ltYWdlX3VybF9wcmVmaXgnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9aW1hZ2VfdXJsX3ByZWZpeCIgdmFsdWU9InskaW1hZ2VfdXJsX3ByZWZpeH0iIHNpemU9IjQwIiBtYXhsZW5ndGg9IjI1NSIvPgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2ltYWdlX3VybF9wcmVmaXgnKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2ltYWdlX3VybF9oYXNjYWNoZWRpcicpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPSdpbWFnZV91cmxfaGFzY2FjaGVkaXInIHNlbGVjdGVkPSRpbWFnZV91cmxfaGFzY2FjaGVkaXJ9CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9faW1hZ2VfdXJsX2hhc2NhY2hlZGlyJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdzdXBwcmVzc19lcnJvcnMnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT0nc2lsZW50JyBzZWxlY3RlZD0kc2lsZW50fQogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX3N1cHByZXNzX2Vycm9ycycpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnY2hlY2tfbWVtb3J5Jyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9J2NoZWNrbWVtb3J5JyBzZWxlY3RlZD0kY2hlY2ttZW1vcnl9CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fY2hlY2tfbWVtb3J5Jyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_responsive_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnZW5hYmxlX3Jlc3BvbnNpdmUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfXJlc3BvbnNpdmUiPgogICAgICB7Y2dlX3llc25vX29wdGlvbnMgc2VsZWN0ZWQ9JHJlc3BvbnNpdmV9CiAgICA8L3NlbGVjdD4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19yZXNwb25zaXZlJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdyZXNwb25zaXZlX2JyZWFrcG9pbnRzJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXJlc3BvbnNpdmVfYnJlYWtwb2ludHMiIHZhbHVlPSJ7JHJlc3BvbnNpdmVfYnJlYWtwb2ludHN9IiBzaXplPSI1MCIgbWF4bGVuZ3RoPSIyNTUiLz4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19yZXNwb25zaXZlX2JyZWFrcG9pbnRzJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
</module>
