<?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.21.3</version>
  <mincmsversion>1.12.1</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgc2ltcGxlIHdheSB0byBwcm9jZXNzLCBhbmQgZGlzcGxheSBpbWFnZXMgb24geW91ciB3ZWIgcGFnZS4gIEl0IGFsbG93cyBzaW1wbGUgaW1hZ2UgcHJvY2Vzc2luZywgYW5kIHdhdGVybWFya2luZy4gIFRoaXMgbW9kdWxlIG1ha2VzIGRpc3BsYXlpbmcgcHJvY2Vzc2VkIGltYWdlcyBvbiB5b3VyIHdlYnNpdGUgdHJpdmlhbC4gIEl0IGFsc28gcHJvdmlkZXMgZmVhdHVyZXMgdG8gaW1wcm92ZSB0aGUgcGVyZm9ybWFuY2UgcmF0aW5nIG9mIHlvdXIgd2Vic2l0ZSwgbWFraW5nIHlvdXIgd2Vic2l0ZSBwb3dlcmZ1bCBhbmQgZmFzdCBhdCB0aGUgc2FtZSB0aW1lLjwvcD4KPGgzPkZlYXR1cmVzPC9oMz4KPHVsPgo8bGk+UG93ZXJmdWwsIGJ1dCBzaW1wbGUgdG8gdXNlIGltYWdlIGZpbHRlcmluZyBhbmQgcHJvY2Vzc2luZy4gRmlsdGVyaW5nIGluY2x1ZGVzOgogIDx1bD4KICAgIDxsaT5CbHVyPC9saT4KICAgIDxsaT5CcmlnaHRuZXNzPC9saT4KICAgIDxsaT5Db2xvcml6ZTwvbGk+CiAgICA8bGk+Q29udHJhc3Q8L2xpPgogICAgPGxpPkNyb3A8L2xpPgogICAgPGxpPjxzdHJvbmc+Q3JvcCBUbyBGaXQ8L3N0cm9uZz48L2xpPgogICAgPGxpPjxzdHJvbmc+UmVzaXplIFRvIEZpdDwvc3Ryb25nPjwvbGk+CiAgICA8bGk+RWRnZSBEZXRlY3Rpb248L2xpPgogICAgPGxpPlNoYXJwZW48L2xpPgogICAgPGxpPkVtYm9zczwvbGk+CiAgICA8bGk+R3JheXNjYWxlPC9saT4KICAgIDxsaT5NZWFuIFJlbW92YWw8L2xpPgogICAgPGxpPk5lZ2F0ZTwvbGk+CiAgICA8bGk+UGl4ZWxhdGU8L2xpPgogICAgPGxpPlJlZmxlY3Rpb248L2xpPgogICAgPGxpPlJlc2l6ZTwvbGk+CiAgICA8bGk+Um91bmRlZCBDb3JuZXJzPC9saT4KICAgIDxsaT5Sb3RhdGU8L2xpPgogICAgPGxpPlNlbGljdGl2ZSBCbHVyPC9saT4KICAgIDxsaT5TbW9vdGg8L2xpPgogICAgPGxpPldhdGVybWFyazwvbGk+CiAgICA8bGk+Tk9PUCA8ZW0+KG5vb3ApPC9lbT48L2xpPgogIDwvdWw+CjwvbGk+PGJyLz4KPGxpPjxzdHJvbmc+UmVzcG9uc2l2ZSBpbWFnZSBoYW5kbGluZywgd2l0aCBicmVha3BvaW50czwvc3Ryb25nPiAtIHJlc2l6ZSBpbWFnZXMgdG8gYmUgc3VpdGFibGUgZm9yIHNtYWxsZXIgZGV2aWNlcyBzdWNoIGFzIG1vYmlsZSBwaG9uZXMgb3IgdGFibGV0cy48L2xpPgo8bGk+U21hcnQgZGV0ZWN0aW9uIG9mIGltYWdlcy4gIFNwZWNpZnkgYWJzb2x1dGUgVVJMUywgYWJzb2x1dGUgcGF0aHMsIG9yIGZpbGVzIHJlbGF0aXZlIHRvIHlvdXIgcm9vdCBpbnN0YWxsYXRpb24uPC9saT4KPGxpPkF1dG9tYXRpYyBkb3dubG9hZGluZywgY2FjaGluZywgcHJvY2Vzc2luZywgYW5kIHJlLWNhY2hpbmcgb2YgaW1hZ2VzIGZyb20gcmVtb3RlIHdlYnNpdGVzLjwvbGk+CjxsaT5TbWFydCBhdXRvbWF0aWMgcmVzaXppbmcgKGF1dG9tYXRpY2FsbHkgcmVzaXplIHRvIGRlc2lyZWQgd2lkdGggYW5kIGhlaWdodCBiZWZvcmUgc2VydmluZyB0aGUgaW1hZ2UuLi4gPC9saT4KPGxpPkF1dG9tYXRpY2FsbHkgcmVhZHMgaW1hZ2UgRVhJRiBpbmZvcm1hdGlvbiBhbmQgY29ycmVjdHMgdGhlIG9yaWVudGF0aW9uLjwvbGk+CjxsaT5JbWFnZSBjaGFuZ2UgZGV0ZWN0aW9uLCBpZiB0aGUgbWFzdGVyIGltYWdlIGlzIGNoYW5nZWQgc2NhbGVkIGltYWdlcyB3aWxsIGJlIHJlZ2VuZXJhdGVkLiAoc2VlIHRoZSBub3RpbWVjaGVjayBwYXJhbWV0ZXIgdG8gZGlzYWJsZSB0aGlzIGJlaGF2aW9yKS48L2xpPgo8bGk+U21hcnQgYXR0cmlidXRlIGdlbmVyYXRpb24gZm9yIGltYWdlcy48L2xpPgo8bGk+UHJvY2Vzc2VkIGltYWdlcyBhcmUgY2FjaGVkIG9uIHRoZSBzZXJ2ZXIgZm9yIGZhc3RlciBzZXJ2aW5nLjwvbEk+CjxsaT5UaGUgYWJpbGl0eSB0byB1c2UgYSBzZXBhcmF0ZSBVUkwgKENETikgZm9yIHNlcnZpbmcgaW1hZ2VzPC9saT4KPGxpPkltYWdlIHByb2Nlc3NlcyBjYW4gYmUgY29tYmluZWQsIGFuZCBhcmUgZXhlY3V0ZWQgaW4gb3JkZXIuPC9saT4KPGxpPlByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIGVtYmVkIGltYWdlcyBkaXJlY3RseSBpbnRvIHRoZSBjb250ZW50IG9mIHRoZSB3ZWIgcGFnZSB0byBtaW5pbWl6ZSBzcGFjZS48L2xpPgo8bGk+UHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gbGltaXQgZW1iZWRkaW5nIGltYWdlcyBzbWFydGx5LCBvbmx5IHRvIGJyb3dzZXJzIHRoYXQgYXJlIGNhcGFibGUgb2YgdW5kZXJzdGFuZGluZyB0aGVtLjwvbGk+CjxsaT5Db21iaW5lIGNvbW1vbmx5IHVzZWQgYXJndW1lbnRzIGludG8gbmFtZWQgYWxpYXNlcy48L2xpPgo8bGk+QWxzbyB3b3JrcyB3aXRoaW4gc3R5bGVzaGVldHMgdmlhIHRoZSB7Y21zX3N0eWxlc2hlZXR9IHRhZy48L2xpPgo8bGk+VGhlIGFiaWxpdHkgdG8gYXV0b21hdGljYWxseSBwcm9jZXNzIGltYWdlcyBpbnNpZGUgYSBibG9jayBvZiBodG1sIGNvZGUgdXNpbmcgdGhlIHtjZ3NpX2NvbnZlcnR9IGJsb2NrIHRhZy48L2xpPgo8bGk+VGhlIGFiaWxpdHkgdG8gZXh0cmFjdCBpbWFnZXMgZnJvbSBhIGJsb2NrIG9mIGh0bWwgY29kZS48L2xpPgo8bGk+VGhlIGFiaWxpdHkgdG8gYXV0b21hdGljYWxseSByZXNpemUgdXBsb2FkZWQgaW1hZ2VzIHRvIGEgbWF4aW11bSBlZGdlIHNpemUuPC9saT4KPGxpPk1vcmUuLi48L2xpPgo8L3VsPgo8aDM+V2h5IHNob3VsZCBJIHVzZSBpdD88L2gzPgo8cD5UaGVyZSBhcmUgZm91ciB2ZXJ5IGltcG9ydGFudCByZWFzb25zIHRvIHVzZSB0aGlzIHBsdWdpbjo8L3A+Cjx1bD4KICA8bGk+UGVyZm9ybWFuY2U6ICBVc2luZyBpbWFnZSBlbWJlZGRpbmcgKGV2ZW4gaWYgbm8gb3RoZXIgZnVuY3Rpb25zIGFyZSB1c2VkKSByZXN1bHRzIGluIGZld2VyIHJlcXVlc3RzLiAgTW9zdCBicm93c2VycyBvbmx5IHBlcmZvcm0gdHdvIHRvIGZvdXIgc2ltdWx0YW5lb3VzIHJlcXVlc3RzIHRvIHRoZSBzYW1lIGRvbWFpbiBhdCB0aGUgc2FtZSB0aW1lLiAgRm9yIHdlYiBwYWdlcyB3aXRoIGxvdHMgb2YgaW1hZ2VzIHRoaXMgY2FuIHNlcmlvdXNseSBzbG93IGRvd24geW91ciBzaXRlLjwvbGk+CiAgPGxpPlBlcmZvcm1hbmNlOiAgRXZlbiBpZiBub3QgdXNpbmcgZW1iZWRkaW5nLCBzZW5kaW5nIGxhcmdlIGltYWdlcyB0byB5b3VyIHZpc2l0b3JzLCBhbmQgYXNraW5nIHRoZWlyIGJyb3dzZXIgdG8gc2NhbGUgdGhlIGltYWdlIGlzIHZlcnkgdmVyeSBzbG93LjwvbGk+CiAgPGxpPlNlY3VyaXR5OiAgQ0dTbWFydEltYWdlIGNhY2hlcyBpdHMgaW1hZ2VzIGluIGEgc2VwYXJhdGUgZGlyZWN0b3J5LCB0aGVyZWJ5IGhpZGluZyB0aGUgb3JpZ2luYWwgKHBlcmhhcHMgY29weXJpZ2h0ZWQpIGltYWdlcyBmcm9tIHlvdXIgdXNlcnMuICBJZiBlbWJlZGRpbmcgaXMgdXNlZCB0aGV5IGNhbnQgZXZlbiBmaW5kIHRoZSBjYWNoZWQgbG9jYXRpb24pPC9saT4KICA8bGk+U2ltcGxpY2l0eTogIFRoZSBmaWx0ZXJpbmcgY2FwYWJpbGl0aWVzIG9mIENHU21hcnRJbWFnZSBhbGxvdyB5b3UgdG8gYXV0b21hdGljYWxseSBwcm9jZXNzIGltYWdlcyBmb3IgY29uc2lzdGVudCBhbmQgc2VjdXJlIGRpc3BsYXksIHdpdGhvdXQgc2l0ZSBlZGl0b3JzIGhhdmluZyB0byBwbGF5IHdpdGggdGhlbS4gIFRoZXkgY2FuIHVwbG9hZCBsYXJnZXIgaW1hZ2VzLCBhbmQgeW91ciBzaXRlIHdpbGwganVzdCBoYW5kbGUgdGhlbSBwcm9wZXJseS48L2xpPgogIDxsaT5SZWR1Y2luZyBkaXNrIHNwYWNlOiBUaGUgYXV0b21hdGljIGltYWdlIHByb2Nlc3Npbmcgb3B0aW9uIGFsbG93cyByZXNpemluZyBpbWFnZXMgdG8gYSBtYXhpbXVtIHNpemUsIGFuZCBkZWxldGluZyB0aGUgb3JpZ2luYWwsIHRoaXMgc2F2ZXMgZGlzayBzcGFjZSB3aGVuIHVzZXJzIGFyZSB1cGxvYWRpbmcgdG9ubmVzIG9mIGltYWdlcy48L2xpPgo8L3VsPgoKPGgzPkltYWdlIEVtYmVkZGluZzwvaDM+CiAgPHA+SW1hZ2UgZW1iZWRkaW5nIGVuY29kZXMgdGhlIGltYWdlIGludG8gYSBkYXRhIFVSSSB3aGljaCBpcyBlbWJlZGRlZCBkaXJlY3RseSBpbiB0aGUgcGFnZSAob3Igc3R5bGVzaGVldCkgY29udGVudC4gIFRoaXMgcmVkdWNlcyByZXF1ZXN0cyB0aGF0IHRoZSBicm93c2VyIG11c3QgbWFrZSB0byByZWNlaXZlIGltYWdlcyBmcm9tIHlvdXIgc2l0ZS4gIEhvd2V2ZXIgaXQgZG9lcyBpbmNyZWFzZSB0aGUgc2l6ZSBvZiB0aGUgSFRNTCBwYWdlLiAgT24gaW1hZ2UgaGVhdnkgcGFnZXMgeW91IHNob3VsZGQgbWl4IHRoZSB1c2Ugb2YgZW1iZWRkZWQgaW1hZ2VzLjwvcD4KPGgzPkhvdyBkbyBJIHVzZSBpdD88L2gzPgo8cD5UaGUgc2ltcGxlc3Qgd2F5IHRvIHVzZSB0aGlzIG1vZHVsZSBpcyB0byB1c2UgaXQgaW4gdGhlIHNhbWUgcGxhY2UgeW91IHdvdWxkIHRoZSB7aW1hZ2V9IHRhZy4gIEkuZTogU29tZXRoaW5nIGxpa2UgPGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e0NHU21hcnRJbWFnZSBzcmM9J3VwbG9hZHMvaW1hZ2VzL3BpY3R1cmUuanBnJ308L2NvZGU+LiAgVGhpcyB3aWxsIGdlbmVyYXRlIHRoZSBpbWFnZSB0YWcgZm9yIHlvdSB3aXRoIG5vIHByb2Nlc3NpbmcuICBBbmQgaWYgcG9zc2libGUsIGVtYmVkIHRoZSBpbWFnZSBkaXJlY3RseSBpbnRvIHlvdXIgaHRtbCBvdXRwdXQuPC9wPgo8cD5PZnRlbiBwZW9wbGUgd2FudCB0byBkaXNwbGF5IGEgd2F0ZXJtYXJrIG9uIHRoZSBpbWFnZXMgdGhhdCB0aGV5IGRpc3BsYXkgb24gdGhlIGZyb250ZW5kIHRvIHByZXZlbnQgaW1hZ2UgdGhlZnQuICBUaGUgQ0dFeHRlbnNpb25zIG1vZHVsZSBwcm92aWRlcyBzZXR0aW5ncyBmb3IgeW91IHRvIGNvbmZpZ3VyZSB3YXRlcm1hcmtpbmcgYW5kIHlvdSBjYW4gZW5hYmxlIHRoYXQgd2l0aCBhbnkgaW1hZ2Ugd2l0aCBhIHRhZyBsaWtlIHRoaXM6IDxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntDR1NtYXJ0SW1hZ2Ugc3JjPSd1cGxvYWRzL2ltYWdlcy9waWN0dXJlLmpwZycgZmlsdGVyX3dhdGVybWFyaz0xfTwvY29kZT4uICBUaGlzIHdpbGwgcmVhZCB0aGUgaW1hZ2UsIGFwcGx5IHRoZSB3YXRlcm1hcmsgYWNjb3JkaW5nIHRvIHRoZSBzZXR0aW5ncyBpbiBDR0V4dGVuc2lvbnMsIGNhY2hlIHRoZSBhbHRlcmVkIGltYWdlLCBhbmQgdGhlbiBlbWJlZCBpdCBpbnRvIHlvdXIgb3V0cHV0LjwvcD4KPHA+QWxzbywgUGljdHVyZXMgdGFrZW4gYnkgbW9kZXJuIGRpZ2l0YWwgY2FtZXJhcyBhcmUgb2Z0ZW4gdG9vIGxhcmdlIGZvciB1c2Ugb24gYSB3ZWJzaXRlLCB0aGVyZWZvcmUgdGhleSBuZWVkIHRvIGJlIHNjYWxlZCBiZWZvcmUgZGlzcGxheWVkIG9uIHlvdXIgcGFnZS4gIFRoaXMgY2FuIGJlIGRvbmUgcXVpdGUgZWFzaWx5IHdpdGggYSB0YWcgbGlrZTogPGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e0NHU21hcnRJbWFnZSBzcmM9J3VwbG9hZHMvaW1hZ2VzL3BpY3R1cmUuanBnJyBmaWx0ZXJfd2F0ZXJtYXJrPTEgZmlsdGVyX3Jlc2l6ZT0ndywzNTAnfTwvY29kZT4uICBBcyB5b3UgbWF5IHRoaW5rLCB0aGUgd2F0ZXJtYXJrIHdpbGwgYmUgYXBwbGllZCB0byB0aGUgaW1hZ2UgYmVmb3JlIGl0IGlzIHJlc2l6ZWQgdG8gYSBtYXhpbXVtIHdpZHRoIG9mIDMwMCBwaXhlbHMgKHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgVGhlbiB0aGUgYWRqdXN0ZWQgaW1hZ2Ugd2lsbCBiZSBjYWNoZWQsIGFuZCBpZiB0aGUgYnJvd3NlciBhbGxvd2VzIHRoZSBpbWFnZSB3aWxsIGJlIGVtYmVkZGVkIGludG8gdGhlIEhUTUwgb3V0cHV0LiAgSWYgZW1iZWRkaW5nIGlzIG5vdCBwb3NzaWJsZSwgdGhlIGltZyB0YWcgd2lsbCBjb250YWluIHRoZSBVUkwgdG8gdGhlIGNhY2hlZCBpbWFnZS48L3A+CjxwPkZyb20gaGVyZSB5b3UgY2FuIGNvbWJpbmUgdGhlIG9wdGlvbnMgYmVsb3cgdG8gcGVyZm9ybSBhbG90IG9mIGRpZmZlcmVudCBlZmZlY3RzIHRvIHlvdXIgaW1hZ2VzLCBidWlsZCBzaW1wbGUgZ2FsbGVyaWVzLCBhbmQgaW1wcm92ZSB5b3VyIHNpdGUgcGVyZm9ybWFuY2UgYXQgdGhlIHNhbWUgdGltZS4gIEVuam95ITwvcD4KCjxoMz5SZXNpemluZyB0aGUgZGVzdGluYXRpb24gaW1hZ2UgdG8gZml0IHRoZSB0YWcuPC9oMz4KICA8cD5JZiB5b3Ugc3BlY2lmeSBhIHdpZHRoLCBhbmQvb3IgYSBoZWlnaHQgcGFyYW1ldGVyLCBhbmQgZG8gbm90IHNwZWNpZnkgdGhlICZxdW90O25vYXV0b3NjYWxlJnF1b3Q7IHBhcmFtZXRlciwgdGhlIG1vZHVsZSB3aWxsIGFuYWx5emUgdGhlIGZpbHRlcnMgeW91IGhhdmUgYWxyZWFkeSBzcGVjaWZpZWQsIGFuZCBpZiB0aGVyZSBpcyBubyByZXNpemUgZmlsdGVyIGFscmVhZHkgc3BlY2lmaWVkIGF1dG9tYXRpY2FsbHkgYWRkIGEgZmlsdGVyIHRvIHJlc2l6ZSBvciBjcm9wdG9maXQgdGhlIGltYWdlIG9uIG91dHB1dC4gIFRoaXMgaXMgdXNlZnVsIHRvIGRvIGF1dG9tYXRpYyB0aHVtYm5haWxpbmcgb24gdGhlIHNlcnZlciwgYW5kIG5vdCByZXF1aXJlIHRoZSBicm93c2VyIHRvIHJlc2l6ZSB0aGUgaW1hZ2UuPC9wPgogIDxwPkNHU21hcnRJbWFnZSB3aWxsIG5vcm1hbGx5IGF1dG9tYXRpY2FsbHkgZmlsbCB0aGUgd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIG9mIHRoZSBnZW5lcmF0ZWQgaW1nIHRhZyB3aXRoIHRoZSBzaXplIG9mIHRoZSBpbWFnZSBnZW5lcmF0ZWQgZnJvbSB0aGUgbGFzdCBmaWx0ZXIuICB0aGUgbm9hdXRvIHBhcmFtZXRlciBjYW4gcHJldmVudCB0aGlzLjwvcD4KICA8cD48c3Ryb25nIHN0eWxlPSJjb2xvcjogYmx1ZTsiPlRpcDo8L3N0cm9uZz4gSXQgaXMgbm9ybWFsbHkgY291bnRlci1wcm9kdWN0aXZlIHRvIHNwZWNpZnkgYm90aCBhIHJlc2l6ZS9jcm9wIGZpbHRlciwgQU5EIGEgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZSB1bmxlc3MgeW91IHdhbnQgdG8gYWJzb2x1dGVseSBjb250cm9sIHRoZSB2YWx1ZXMgb2YgdGhlIHdpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvbiB0aGUgaW1nIHRhZy4gIEluIHdoaWNoIGNhc2UgeW91IHNob3VsZCB1c2UgdGhlIG5vYXV0byBwYXJhbWV0ZXIgaW4gdGhlIGNhbGwgdG8gQ0dTbWFydEltYWdlLjwvcD4KIDxoMz5BIFNpbXBsZSBHYWxsZXJ5PC9oMz4KPHA+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+Cgo8aDM+UmVzcG9uc2l2ZSBJbWFnZXM6PC9oMz4KPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gUmVzcG9uc2l2ZSBpbWFnZSBoYW5kbGluZyBjaGFuZ2VkIGluIHZlcnNpb24gMS45LiAgQSByZW1vdGUgd2ViIHNlcnZpY2UgaXMgbm8gbG9uZ2VyIHVzZWQuPC9kaXY+CjxwPkNHU21hcnRJbWFnZSBpcyBjYXBhYmxlIG9mIGF1dG9tYXRpY2FsbHkgc2NhbGluZyBpbWFnZXMgZG93biB0byBhIHNpemUgdGhhdCBpcyBzdWl0YWJsZSBmb3IgbW9iaWxlIGRldmljZXMuICBUaGlzIGJvb3N0cyBwZXJmb3JtYW5jZSBieSBtaW5pbWl6aW5nIHRoZSBpbWFnZSBzaXplIGZvciBtb2JpbGUgZGV2aWNlcywgYW5kIHRoZXJlZm9yZSBpbXByb3ZlcyBwZXJmb3JtYW5jZSBhbmQgdGhlIGdlbmVyYWwgdXNlciBleHBlcmllbmFjZS4gIFRoaXMgYWN0aW9uIG11c3QgYmUgZW5hYmxlZCBpbiB0d28gd2F5czo8L3A+CjxvbD4KICA8bGk+QWRkIDxjb2RlPntDR1NtYXJ0SW1hZ2UgYWN0aW9uPXJlc3BvbnNpdmV9PC9jb2RlPiBqdXN0IGFmdGVyIHRoZSA8Y29kZT4mbHQ7aGVhZCZndDs8L2NvZGU+IHRhZyBpbiB5b3VyIHBhZ2UgdGVtcGxhdGUuCiAgICA8cD5UaGlzIHdpbGwgb3V0cHV0IGphdmFzY3JpcHQgdGhhdCB3aWxsIGRldGVjdCB0aGUgZGV2aWNlcyBzY3JlZW4gcmVzb2x1dGlvbiBhbmQgcGl4ZWwgcmF0aW8sIGFuZCBjcmVhdGUgYSBjb29raWUsIGFuZCB0aGVuIHJlZGlyZWN0IGFnYWluIGJhY2sgdG8gdGhlIHNhbWUgVVJMIHNvIHRoYXQgdGhlIHNlcnZlciBjYW4gZ2V0IHRoZSBjb29raWUgaW5mb3JtYXRpb24uICAgVGhlIGNvb2tpZSBpcyBzZXQgdG8gZXhwaXJlIGluIG9uZSB5ZWFyLiAgIElmIHRoZSBjb29raWUgZG9lcyBub3QgZXhpc3QsIHRoZW4gQ0dTbWFydEltYWdlIGNhbm5vdCBwZXJmb3JtIHJlc3BvbnNpdmUgaW1hZ2UgcmVzaXppbmcuPC9wPgogIDwvbGk+CiAgPGxpPkVuc3VyZSB0aGF0ICZxdW90O1Jlc3BvbnNpdmUgSW1hZ2VzJnF1b3Q7IGlzIGVuYWJsZWQgaW4gdGhlIENHU21hcnRJbWFnZSBtb2R1bGUgYWRtaW4gcGFuZWwuCiAgICA8cD5JZiBkaXNhYmxlZCwgdGhlIHN5c3RlbSB3aWxsIG5vdCBwZXJmb3JtIHJlc3BvbnNpdmUgc2NhbGluZy4gIEV2ZW4gaWYgdGhlIGNvb2tpZSBleGlzdHMgZnJvbSB1c2Ugb2YgPGNvZGU+e0NHU21hcnRJbWFnZSBhY3Rpb249cmVzcG9uc2l2ZX08L2NvZGU+PC9wPgogIDwvbGk+Cjwvb2w+CjxwPkNHU21hcnRJbWFnZSBhbGxvd3Mgc3BlY2lmeWluZyBhIGNvbW1hIHNlcGFydGVkIGxpc3Qgb2YgYnJlYWtwb2ludHMgaW4gdGhlIGFkbWluIHBhbmVsLiAgSWYgYnJlYWtwb2ludHMgYXJlIHNwZWNpZmllZCBhbmQgdGhlIHN5c3RlbSBmb3VuZCBkZXZpY2UgY2FwYWJpbGl0aWVzIDxlbT4oYW5kIHJlc3BvbnNpdmUgYmVoYXZpb3IgaXMgbm90IGRpc2FibGVkKTwvZW0+IFRoZW4gdGhlIHN5c3RlbSB3aWxsIGZpbmQgdGhlIGNsb3Nlc3QgbWF0Y2hpbmcgYnJlYWtwb2ludCB0byB0aGUgZGV2aWNlIHdpZHRoIGFuZCBoZWlnaHQgYW5kIHVzZSB0aGUgYnJlYWtwb2ludCB2YWx1ZSB0byBjYWxjdWxhdGUgYSBuZXcgbWF4aW11bSBzaXplIGZvciB0aGUgaW1hZ2Ugd2hpbHN0IHN0aWxsIHJldGFpbmluZyBhc3BlY3QgcmF0aW8uPC9wPgo8cD5UaGUgZGV0ZWN0aW9uIG9mIGEgbW9iaWxlIGRldmljZSwgYW5kIGVuYWJsaW5nIHJlc3BvbnNpdmUgYmVoYXZpb3Igd2lsbCBvdmVycmlkZSB0aGUgbm9hdXRvc2NhbGUgcGFyYW1ldGVyLiAgVGhlIHJlc3BvbnNpdmUgYmVoYXZpb3IgY2FuIGJlIGRpc2FibGVkIGVpdGhlciBpbiB0aGUgbW9kdWxlcyBhZG1pbiBwYW5lbCwgb3IgdmlhIHRoZSBub3Jlc3BvbnNpdmUgcGFyYW1ldGVyLjwvcD4KPHA+Q0dTbWFydEltYWdlIGlzIGNhcGFibGUgb2YgZGV0ZWN0aW5nIHRoZSBkcHIgPGVtPihkZXZpY2UgcGl4ZWwgcmF0aW8pPC9lbT4gb2YgbW9iaWxlIGRldmljZXMuICBJZiBub3QgZGlzYWJsZWQsIGFuZCBhIGRwciBoaWdoZXIgdGhhbiAxIGlzIGRldGVjdGVkIHRoZSBhdXRvLXNjYWxlZCBpbWFnZSBzaXplIHdpbGwgYmUgaW5jcmVhc2VkIGJ5IHRoZSBkcHIgb2YgdGhlIGRldmljZS4gIEhvd2V2ZXIgdGhlIG91dHB1dCBpbWcgdGFnIHdpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyB3aWxsIG5vdC4gIFRoaXMgZm9yY2VzIHRoZSBicm93c2VyIHdpdGggYSBoaWdoZXIgZHByIHRvIGRvd25sb2FkIGEgbGFyZ2VyIGltYWdlLCBhbmQgc3F1ZXplIGl0IGludG8gdGhlIHNhbWUgc2l6ZSBib3gsIHRodXMgZ2l2aW5nIGEgaGlnaGVyIHF1YWxpdHkgb3V0cHV0LjwvcD4KCjxoMz5BdXRvU2NhbGluZzwvaDM+CjxwPkF1dG8gc2NhbGluZyBpcyBhIGZlYXR1cmUgdGhhdCB3aWxsIGFkanVzdCB0aGUgb3V0cHV0IGltYWdlIHNpemUgYmFzZWQgb24gdGhlIHNvdXJjZSBpbWFnZSBzaXplLCB0aGUgZGV2aWNlIGNhcGFiaWxpdGllcyA8ZW0+KGlmIHJlc3BvbnNpdmUgYmVoYXZpb3IgaXMgZW5hYmxlZCk8L2VtPiwgYnJlYWtwb2ludHMgPGVtPihpZiBlbmFibGVkKTwvZW0+LCB0aGUsIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IHBhcmFtZXRlcnMsIGFuZCB0aGUgbWF4X3dpZHRoIGFuZCBtYXhfaGVpZ2h0IHBhcmFtZXRlcnMuICBUaGUgc3lzdGVtIHdpbGwgY29tYmluZSBhbGwgb2YgdGhpcyBpbmZvcm1hdGlvbiBhbmQgYWRqdXN0IHRoZSBtYXhfd2lkdGggYW5kIG1heF9oZWlnaHQgdmFsdWVzIHRvIHRoZSBzbWFsbGVzdCBwb3NzaWJsZSB2YWx1ZXMgd2l0aG91dCBlZmZlY3RpbmcgaW1hZ2UgYXNwZWN0IHJhdGlvLjwvcD4KPHA+SWYgcmVzcG9uc2l2ZSBmdW5jdGlvbmFsaXR5IGlzIGVuYWJsZWQsIGFuZCBkZXZpY2UgY2FwYWJpbGl0aWVzIGFyZSBkZXRlY3RlZCwgIHRoZW4gYXV0b3NjYWxpbmcgaXMgZm9yY2VkIHRvIGJlIGFjdGl2ZS48L3A+Cgo8aDM+U3R5bGVzaGVldHM6PC9oMz4KPHA+VGhpcyBtb2R1bGUgYWxzbyB3b3JrcyB3aXRoaW4gc3R5bGVzaGVldHMsIGlmIHVzaW5nIHRoZSB7Y21zX3N0eWxlc2hlZXR9IHRhZyBpbiB5b3VyIHBhZ2UgdGVtcGxhdGUuICBCZWNhdXNlIHRoZSBzbWFydHkgc3ludGF4IGlzIHNsaWdodGx5IGRpZmZlcmVudCBpbnNpZGUgdGhlIHtjbXNfc3R5bGVzaGVldH0gdGFnIHlvdSB1dGlsaXplIHRoZSBtb2R1bGUgdXNpbmcgdGhlIFtbIGFuZCBdXSBkZWxpbWl0ZXJzLiAgaS5lOiA8Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij5kaXYuaGVhZGVyIHsgYmFja2dyb3VuZDogdXJsKFtbQ0dTbWFydEltYWdlIHNyYz0ndXBsb2Fkcy9waWN0dXJlLmpwZycgbm90YWc9MV1dKTsgfTwvY29kZT48L3A+CjxwPkJlY2F1c2Ugc3R5bGVzaGVldHMgYXJlIGdlbmVyYXRlZCBvbiBtb2RpZmljYXRpb24gYW5kIHN0b3JlZCBpbiB0aGUgZmlsZXN5c3RlbSB0aGVyZSBpcyBubyB3YXkgdG8gZGV0ZXJtaW5lIGR1cmluZyB0aGUgcmVxdWVzdCB3aGljaCBicm93c2VyIGlzIHJlcXVlc3RpbmcgdGhlIHN0eWxlc2hlZXQsIHRoZXJlZm9yZSBlbWJlZGRpbmcgd2lsbCBiZSBkb25lIHN0cmljdGx5IGJhc2VkIHVwb24gdGhlIHByZXNlbnNlIG9mIHRoZSBub2VtYmVkIHBhcmFtZXRlci4gIElmIHlvdSBoYXZlIGNob3NlbiB0byBlbWJlZCBpbWFnZXMgZGlyZWN0bHkgaW50byB5b3VyIHN0eWxlc2hlZXRzLCBZb3UgbWF5IG5lZWQgdG8gYWRkIGFkZGl0aW9uYWwgc3R5bGVzaGVldCBzdXBwb3J0IGZvciB0aGUgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBlbWJlZGRlZCBpbWFnZXMuICBpLmU6ICBJRTYuPC9wPgoKPGgzPkF1dG9tYXRpYyBQcm9jZXNzaW5nOjwvaDM+CjxwPlRoaXMgbW9kdWxlIGluY2x1ZGVzIGEgc21hcnR5IGJsb2NrIHRhZyBjYWxsZWQgPGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e2Nnc2lfY29udmVydH08L2NvZGU+IHRoYXQgY2FuIHN1cnJvdW5kIGEgYmxvY2sgb2YgaHRtbCwgb3Igb3RoZXIgc21hcnR5IHRhZ3MgdG8gYWxsb3cgYXV0b21hdGljIGltYWdlIHByb2Nlc3NpbmcuICBUaGlzIHRhZyBjYW4gYmUgdXNlZCBsaWtlOiAoZm9yIGV4YW1wbGUpOjwvcD4KPHByZT48Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dzaV9jb252ZXJ0fXtjb250ZW50fXsvY2dzaV9jb252ZXJ0fTwvY29kZT48L3ByZT4KPHA+VGhpcyB3aWxsIGFsbG93IHlvdXIgdXNlcnMgdG8gaW5jbHVkZSBpbWFnZXMgaW50byBwYWdlcyB1c2luZyB0aGUgbm9ybWFsIHd5c2l3eWcgdG9vbHMsIGFuZCB0byBoYXZlIHRoZW0gYXV0b21hdGljYWxseSBwcm9jZXNzZWQgYW5kIGVtYmVkZGVkIGludG8gdGhlIHBhZ2UgdXNpbmcgdGhlIG1hZ2ljIG9mIHtDR1NtYXJ0SW1hZ2V9LiBpLmU6IFNlZSB0aGUgZm9sbG93aW5nIGNvZGU6PC9wPgo8cHJlPjxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntjZ3NpX2NvbnZlcnQgZmlsdGVyX2dyYXlzY2FsZT0xIGZpbHRlcl93YXRlcm1hcms9MX17Y29udGVudH17L2Nnc2lfY29udmVydH08L2NvZGU+PC9wcmU+CjxwPlRoZSBhYm92ZSBjb2RlIHdpbGwgY2FwdHVyZSBhbGwgaW1hZ2UgdGFncywgYW5kIGNvbnZlcnQgdGhlbSB0byBncmF5c2NhbGUgYW5kIHRoZW4gYXBwbHkgdGhlIHdhdGVybWFyayAoYWNjb3JkaW5nIHRvIHRoZSBzZXR0aW5ncyBpbiB0aGUgQ0dFeHRlbnNpb25zIG1vZHVsZSkuICBBbGwgb2YgdGhlIHBhcmV0ZXJzIGF2YWlsYWJsZSB0byB0aGUgPGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e0NHU21hcnRJbWFnZX08L2NvZGU+IHRhZyBhcmUgYXZhaWxhYmxlIHRvIHRoaXMgdGFnIChmb3IgaW1hZ2Ugc2NhbGluZyBldGMuKS4gIEFkZGl0aW9uYWxseSwgdHdvIG5ldyBwYXJhbWV0ZXJzIGhhdmUgYmVlbiBpbnRyb2R1Y2VkOiA8c3Ryb25nPm1heF93aWR0aDwvc3Ryb25nPiBhbmQgPHN0cm9uZz5tYXhfaGVpZ2h0PC9zdHJvbmc+IHdoaWNoIGNhbiBiZSB1c2VkIHRvIHNldCBhIG1heGltdW0gc2l6ZSBmb3IgaW1hZ2VzLi48L3A+CjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAzZW07Ij48c3Ryb25nIHN0eWxlPSJjb2xvcjogcmVkOyI+Tm90ZTo8L3N0cm9uZz4KPHA+VGhpcyB0YWcgcGFyc2VzIHRoZSBIVE1MIGNvbnRlbnQgYmV0d2VlbiB0aGUgc3RhcnQgYW5kIGVuZCB0YWdzIHRvIGZpbmQgdGhlIDxpbWc+IHRhZ3MuICBJdCB0aGVuIHdpbGwgb3V0cHV0IHN5bnRhY3RpY2FsbHkgdmFsaWQgSFRNTCBmb3IgdGhlIHN1YnNldCBvZiBjb2RlIGl0IHdhcyBwcm92aWRlZC4gIFRoZXJlZm9yZSBpdCBpcyBpbXBvcnRhbnQgdGhhdCB0aGUgc25pcHBldCBvZiBIVE1MIHBhc3NlZCB0byB0aGlzIHRhZyBiZSBpbnRhY3QgYW5kIGFzIGNsb3NlIHRvIHZhbGlkIGFzIHBvc3NpYmxlLiAgPHN0cm9uZz5Vc2Ugd2l0aCBjYXV0aW9uLjwvc3Ryb25nPgo8L2Rpdj4KCjxoMz5NdWx0aXBsZSBhcmd1bWVudHM6PC9oMz4KPHA+Q0dTbWFydEltYWdlIHN1cHBvcnRzIGEgcGxldGhvcmEgb2Ygb3B0aW9ucyBhbmQgYXJndW1lbnRzLiAgVGVtcGxhdGUgbGF5b3V0IGNhbiBiZSBjbGVhbmVkIGJ5IHVzaW5nIHRoZSA8Y29kZT57Y2dlX21vZHVsZV9oaW50fTwvY29kZT4gdGFnIGF0IHRoZSB0b3Agb2YgdGhlIHBhZ2UgdGVtcGxhdGUsIG9yIGluIHRoZSBwYWdlIG1ldGFkYXRhIGFyZWEgc3VjaCB0aGF0IHBhcmFtZXRlcnMgZm9yIGFsbCBjYWxscyBDR1NtYXJ0SW1hZ2Ugb24gYSBwYWdlIGFyZSBzcGVjaWZpZWQgb25jZS4gIE92ZXJyaWRpbmcgdGhlIHBhcmFtZXRlcnMgZm9yIGEgc2luZ2xlIGNhbGwgaXMgc3RpbGwgcG9zc2libGUuPC9wPgo8cD5TZWUgdGhlIDxjb2RlPntjZ2VfbW9kdWxlX2hpbnR9PC9jb2RlPiB0YWcgaW4gdGhlIENHRXh0ZW5zaW9ucyBoZWxwIGZvciBtb3JlIGluZm9ybWF0aW9uLjwvcD4KCjxoMz5BZHZhbmNlZCBVdGlsaXRpZXM6PC9oMz4KPHVsPgogICA8bGk+PGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e2Nnc2lfZ2V0aW1hZ2VzfTwvY29kZT4KICAgICA8cD5BIHBsdWdpbiB0byBleHRyYWN0IGltYWdlcyBmcm9tIGEgYmxvY2sgb2YgSFRNTCBjb2RlIGZvciBmdXJ0aGVyIHByb2Nlc3Npbmcgb3V0c2lkZSBvZiBDR1NJLjwvcD4KICAgICA8cD48c3Ryb25nPkFyZ3VtZW50czo8L3N0cm9uZz4KICAgICAgIDx1bD4KICAgICAgICAgPGxpPmltYWdlc29ubHk6IHRoZSBjb250ZW50IHJldHVybmVkIHdpbGwgY29udGFpbiBvbmx5ICZsdDtpbWcmZ3Q7IHRhZ3MuICBBbGwgb3RoZXIgdGFncyB3aWxsIGJlIHJlbW92ZWQuICBOb3QgYXBwbGljYWJsZSBpZiB0aGUgbm9jb250ZW50IHBhcmFtZXRlciBpcyBzcGVjaWZpZWQuPC9saT4KICAgICAgICAgPGxpPm5vY29udGVudDogZG8gbm90IG91dHB1dCBhbnkgY29udGVudCB3aGF0c29ldmVyLjwvbGk+CiAgICAgICAgIDxsaT5hc3NpZ246IGNyZWF0ZSBhbiBhcnJheSByZXByZXNlaW50aW5nIGFsbCBvZiB0aGUgYXZhaWxhYmxlIGluZm9ybWF0aW9uIGZvciB0aGUgZm91bmQgJmx0O2ltZyZndDsgdGFncyBhbmQgYXNzaWduIGl0IHRvIHRoZSBuYW1lZCBzbWFydHkgdmFyaWFibGUuPC9saT4KICAgICAgIDwvdWw+CiAgICAgPC9wPgogICAgIDxwPjxzdHJvbmc+VXNhZ2U6PC9zdHJvbmc+CiAgICAgICA8dWw+CiAgICAgICAgIDxsaT5SZW1vdmUgYWxsIGJ1dCB0aGUgaW1hZ2UgdGFncyBpbiB0aGUgZW5jbG9zZWQgSFRNTDo8YnIvPgogICAgICAgICAgIDxwcmU+PGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e2Nnc2lfZ2V0aW1hZ2VzIGltYWdlc29ubHk9MX17Y29udGVudH17L2Nnc2lfZ2V0aW1hZ2VzfTwvY29kZT48L3ByZT4KICAgICAgICAgPC9saT4KICAgICAgICAgPGxpPlJldHVybiBhIGxpc3Qgb2YgdGhlIGltYWdlIHRhZ3MgaW4gdGhlIGVuY2xvc2VkIEhUTUwgY29udGVudCwgYnV0IGxlYXZlIHRoZSBjb250ZW50IHVudG91Y2hlZDo8YnIvPgogICAgICAgICAgIDxwcmU+PGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e2Nnc2lfZ2V0aW1hZ2VzIGFzc2lnbj0naW1hZ2VpbmZvJ317Y29udGVudH17L2Nnc2lfZ2V0aW1hZ2VzfTwvY29kZT48L3ByZT4KICAgICAgICAgPC9saT4KICAgICAgICAgPGxpPlJldHVybiBhIGxpc3Qgb2YgdGhlIGltYWdlIHRhZ3MgaW4gdGhlIGVuY2xvc2VkIEhUTUwgY29udGVudCwgYW5kIGRvIG5vdCBvdXRwdXQgYW55IG9mIHRoZSBvcmlnaW5hbCBjb250ZW50Ojxici8+CiAgICAgICAgICAgPHByZT48Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dzaV9nZXRpbWFnZXMgYXNzaWduPSdpbWFnZWluZm8nIG5vY29udGVudD0xfXtjb250ZW50fXsvY2dzaV9nZXRpbWFnZXN9PC9jb2RlPjwvcHJlPgogICAgICAgICA8L2xpPgogICAgICAgPC91bD4KICAgICA8L3A+CiAgPC9saT4KPC91bD4KCjxoMz5CYWNrZ3JvdW5kIEltYWdlIFJlc2l6aW5nPC9oMz4KPHA+SWYgdGhlIENHTWVzc2FnZVF1ZXVlIG1vZHVsZSBpcyBpbnN0YWxsZWQgYW5kIHByb3Blcmx5IGNvbmZpZ3VyZWQsIHRoZW4gdGhpcyBtb2R1bGUgaGFzIHRoZSBhYmlsaXR5IHRvIGNyZWF0ZSBiYWNrZ3JvdW5kIGpvYnMgdGhhdCB3aWxsIGF1dG9tYXRpY2FsbHkgcmVzaXplIGFsbCB1cGxvYWRlZCBpbWFnZXMgdG8gYSBtYXhpbXVtIGVkZ2Ugc2l6ZS4gIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyB1c2VmdWwgdG8gcmVkdWNlIGRpc2sgc3BhY2UgcmVxdWlyZW1lbnRzLCBhbmQgdG8gYWlkZSBpbiBwZXJmb3JtYW5jZS48L3A+CjxwPlVzaW5nIHRoZSBidWlsdCBpbiBDTVNNUyBwc2V1ZG9jcm9uIG1lY2hhbmlzbSB0aGUgc3lzdGVtIHdpbGwgcGVyaW9kaWNhbGx5IHNjYW4gZm9yIGZpbGVzIHRoYXQgZXhjZWVkIHRoZSBtYXhpbXVtIHNpemUuICBUaGVuIHVzaW5nIGEgZnVydGhlciBhc3luY2hyb25vdXMgcHJvY2VzcyAodGhlIE1lc3NhZ2VRdWV1ZSkgbWF0Y2hpbmcgZmlsZXMgYXJlIHNsb3dseSByZXNpemVkIGluIGJhdGNoZXMsIHRodXMgbWluaW1pemluZyBpbXBhY3Qgb24gc2VydmVyIHJlc291cmNlcy4gIEFkZGl0aW9uYWxseSwgaWYgYSBmaWxlIGlzIHRvIGJlIHJlc2l6ZWQsIGl0IGNhbiBiZSBhdXRvLXJvdGF0ZWQsIGFuZCB3YXRlcm1hcmtlZC48L3A+CjxwPlRoaXMgZnVuY3Rpb25hbGl0eSByZWxpZXMgb24gdGhlIENHTWVzc2FnZVF1ZXVlIG1vZHVsZSBiZWluZyBpbnN0YWxsZWQgYW5kIHByb3Blcmx5IGNvbmZpZ3VyZWQgKHdpdGggYSBjcm9uIGpvYikgYW5kIHRoZSBDTVNNUyBQc2V1ZG9jcm9uIHV0aWxpdHkgdG8gYmUgY29uZmlndXJlZCB0byBydW4gZnJlcXVlbnRseS4gIFdlIHJlY29tbWVuZCBvbmNlIHBlciBob3VyLjwvcD4KCjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhlIG1vZHVsZSBhdXRob3IgaXMgaW4gbm8gd2F5IG9ibGlnYXRlZCB0byBwcm92aWRlIHN1cHBvcnQgZm9yIHRoaXMgY29kZSBpbiBhbnkgZmFzaGlvbi4gIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5BIGJ1ZyB0cmFja2luZyBhbmQgZmVhdHVyZSByZXF1ZXN0IHN5c3RlbSBoYXMgYmVlbiBjcmVhdGVkIGZvciB0aGlzIG1vZHVsZSA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Nnc21hcnRpbWFnZSI+aGVyZTwvYT4uICBQbGVhc2UgYmUgdmVyYm9zZSBhbmQgZGVzY3JpcHRpdmUgd2hlbiBzdWJtaXR0aW5nIGJ1ZyByZXBvcnRzIGFuZCBmZWF0dXJlIHJlcXVlc3RzLCBhbmQgZm9yIGJ1ZyByZXBvcnRzIGVuc3VyZSB0aGF0IHlvdSBoYXZlIHByb3ZpZGVkIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gcmVsaWFibHkgcmVwcm9kdWNlIHRoZSBpc3N1ZS48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LiAgV2hlbiBkZXNjcmliaW5nIGFuIGlzc3VlIHBsZWFzZSBtYWtlIGFuIGVmZm9ydCB0byBwcml2aWRlIGFsbCByZWxhdmFudCBpbmZvcm1hdGlvbiwgYSB0aG9yb3VnaCBkZXNjcmlwdGlvbiBvZiB5b3VyIGlzc3VlLCBhbmQgc3RlcHMgdG8gcmVwcm9kdWNlIGl0IG9yIHlvdXIgZGlzY3Vzc2lvbiBtYXkgYmUgaWdub3JlZC48L2xpPgo8bGk+VGhlIGF1dGhvciwgY2FsZ3V5MTAwMCwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LiAgSG93ZXZlciwgcGxlYXNlIHVzZSB0aGlzIGFzIGEgbGFzdCByZXNvcnQsIGFuZCBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBmb2xsb3dlZCBhbGwgYXBwbGljYWJsZSBpbnN0cnVjdGlvbnMgb24gdGhlIGZvcmdlLCBpbiB0aGUgZm9ydW1zLCBldGMuPC9saT4KPC91bD4KCjxoMz5SZXF1aXJlbWVudHM8L2gzPgo8cD48c3Ryb25nPldhcm5pbmc6PC9zdHJvbmc+IFRoaXMgbW9kdWxlIGlzIGhlYXZpbHkgZGVwZW5kYW50IHVwb24gc2VydmVyIHJlc291cmNlcy4gIFBlcmZvcm1pbmcgZmlsdGVyaW5nLCBvciByZXNpemluZyBvZiBleHRyZW1lbHkgbGFyZ2UgaW1hZ2VzLCBvciBtdWx0aXBsZSBpbWFnZXMgYXQgb25lIHRpbWUgbWF5IGV4Y2VlZCB0aGUgbWVtb3J5IGF2YWlsYWJpbGl0eSBvZiB5b3VyIHdlYnNlcnZlciA8ZW0+KHBhcnRpY3VsYXJseSBvbiBzaGFyZWQgaG9zdHMpPC9lbT4uICBXaGlsZSBpbWFnZXMgYXJlIGJlaW5nIGluaXRpYWxseSB0cmFuc2Zvcm1lZCwgcGFnZSBsb2FkIHRpbWUgbWF5IGJlIGluY3JlYXNlZC48L3A+CjxwPjxzdHJvbmcgc3R5bGU9ImNvbG9yOiBibHVlOyI+VGlwOjwvc3Ryb25nPiB3aGVuIGRlYWxpbmcgd2l0aCBsYXJnZSBpbWFnZXMgaXQgaXMgaW1wb3J0YW50IHRvIHRyeSB0byByZWR1Y2UgdGhlaXIgc2l6ZSBhcyBlYXJseSBhcyBwb3NzaWJsZSBpbiB0aGUgZmlsdGVyaW5nIHByb2Nlc3MgdG8gbWluaW1pemUgcmVzb3VyY2UgcmVxdWlyZW1lbnRzLjwvcD4KPHA+VGhpcyBtb2R1bGUgbWFrZXMgZXZ0ZW5zaXZlIHVzZSBvZiB0aGUgR0QgSW1hZ2UgcHJvY2Vzc2luZyBsaWJyYXJ5IHRvIGRvIGltYWdlIG1hbmlwdWxhdGlvbi4gIEFkZGl0aW9uYWxseSwgdGhlIHtjZ3NpX2NvbnZlcnR9IHBsdWdpbiBtYWtlcyBleHRlbnNpdmUgdXNlIG9mIHRoZSBzaW1wbGV4bWwgYW5kIFhNTERvbSBjbGFzc2VzIGJ1aWx0IGluIHRvIHBocC4gIFRoZXJlIG1heSBiZSBvdGhlciBhZGRpdGlvbmFsIHJlcXVpcmVtZW50cy4gIElmIHlvdSBhcmUgZXhwZXJpZW5jaW5nIGVycm9ycyB5b3Ugc2hvdWxkIGVuc3VyZSB0aGF0IGVycm9yIHJlcG9ydGluZyBpcyBlbmFibGVkLCBhbmQgdGhhdCB5b3UgaGF2ZSBhbmFseXplZCB5b3VyIGVycm9yIGxvZ3MuPC9wPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA4LCBSb2JlcnQgQ2FtcGJlbCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+Jmx0O2NhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcmZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQp0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgooYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4KPHA+SG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCmFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQppbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCk1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgpzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+CjxoMz5EZXBlbmRlbmNpZXM8L2gzPjx1bD48bGk+Q0dFeHRlbnNpb25zID0mZ3Q7IDEuNTMuMTwvbGk+PC91bD48aDM+UGFyYW1ldGVyczwvaDM+PHVsPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGxhbmc9ImVuX1VTIiAtIFBhcmFtZXRlciBpcyB1c2VkIHRvIHNwZWNpZnkgd2hhdCBsYW5ndWFnZSB0byB1c2UgZm9yIGRpc3BsYXkgb24gdGhlIGZyb250ZW5kLiBOb3QgYWxsIG1vZHVsZXMgc3VwcG9ydCBvciBuZWVkIHRoaXMuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBhY3Rpb249ImRlZmF1bHQiIC0gVGhlIGFjdGlvbiBmb3IgdGhlIG1vZHVsZSB0byBwZXJmb3JtLiAgUG9zc2libGUgdmFsdWVzIGFyZToKPHVsPgogIDxsaT48c3Ryb25nPmRlZmF1bHQ8L3N0cm9uZz4gLSBQZXJmb3JtIG1hbmlwdWxhdGlvbiBvbiBhIHNpbmdsZSBpbWFnZS48L2xpPgogIDxsaT5yZXNwb25zaXZlIC0gT3V0cHV0IGphdmFzY3JpcHQgY29kZSB0aGF0IHdpbGwgY3JlYXRlIGEgY29va2llIHByb3ZpZGluZyB0aGUgQ0dTbWFydEltYWdlIG1vZHVsZSB3aXRoIGRldmljZSBzY3JlZW4gc2l6ZSBhbmQgcGl4ZWwgcmF0aW8uPC9saT4KPC91bD48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHNpbGVudD0iIiAtIFNpbGVudGx5IGlnbm9yZSBlcnJvcnM8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGFsaWFzPSIiIC0gVGhlIENHU21hcnRJbWFnZSBhZG1pbiBwYW5lbCBhbGxvd3MgY3JlYXRpbmcgbnVtZXJvdXMgY29tbWFuZCBhbGlhcyB0byBjb21iaW5lIGEgZnJlcXVlbnRseSB1c2VkIHBhdHRlcm4gb2YgYXJndW1lbnRzIGludG8gb25lIG5hbWUuICBUbyB1c2UgdGhlc2UgYWxpYXNlcyB1c2UgYW4gYXJndW1lbnQgb2YgdGhlIGZvcm0gYWxpYXMjIz1hbGlhc19uYW1lIGkuZTogIGFsaWFzMT1mb28gYWxpYXMyPWZvby48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vYXV0b3NjYWxlPSIiIC0gSWYgd2lkdGggYW5kIGhlaWdodCBwYXJhbWV0ZXJzIGFyZSBzcGVjaWZpZWQsIHRoaXMgcGFyYW1ldGVyIHdpbGwgZGlzYWJsZSBhdXRvbWF0aWMgc2NhbGluZyBvZiB0aGUgaW1hZ2UuICBUaGlzIHBhcmFtZXRlciB3aWxsIGJlIGRpc2FibGVkIGZvciBtb2JpbGUgYnJvd3NlcnM8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vYmNhY2hlPSIiIC0gRG8gbm90IGFsbG93IHRoZSByZXNpemVkIGltYWdlIHRvIGNhY2hlIGluIHRoZSBicm93c2VyICh1c2VmdWwgZm9yIGRldmVsb3BtZW50IHB1cnBvc2VzKSB0aGlzIGFkZHMgYSB1bmlxdWUgbnVtYmVyIGFzIGEgcGFyYW1ldGVyIHRvIHRoZSBpbWFnZSB3aGljaCB3aWxsIGZvcmNlIHRoZSBicm93c2VyIG5vdCB0byBjYWNoZSB0aGUgaW1hZ2UuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub2VtYmVkPSIiIC0gRm9yY2UgdGhlIGltYWdlIHRvIG5vdCBlbWJlZC4gIFJlZ2FyZGxlc3Mgb2Ygc2V0dGluZ3MgaW4gdGhlIGFkbWluIHBhbmVsLCB0aGUgVVJMIGFuZCB0YWcgZ2VuZXJhdGVkIHdpbGwgYmUgdG8gYSBmaWxlIG9uIHRoZSBzZXJ2ZXIuICBObyBlbWJlZGRpbmcgd2lsbCBiZSBwZXJmb3JtZWQ8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vYXV0bz0iIiAtIERvIG5vdCBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZSBwYXJhbWV0ZXJzIGZvciB0aGUgaW1nIHRhZy4gIFRoaXMgbWF5IGNhdXNlIHlvdXIgc2l0ZSB0byBmYWlsIHZhbGlkYXRpb24gaWYgc29tZSByZXF1aXJlZCBwYXJhbWV0ZXJzICh3aWR0aCxoZWlnaHQsYWx0KSBhcmUgbm90IHNwZWNpZmllZC4gIEFkZGl0aW9uYWxseSwgaWYgdGhlIHdpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBhcmUgc3BlY2lmaWVkLCB0aGlzIHBhcmFtZXRlciB3aWxsIGVuc3VyZSB0aGF0IHRoZXkgd2lsbCBub3QgYmUgb3ZlcnJpZGRlbiBieSB0aGUgYWN0dWFsIHNpemUgb2YgdGhlIHByb2Nlc3NlZCBpbWFnZS48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vcm90YXRlPSIiIC0gRG8gbm90IGF0dGVtcHQgdG8gcmVhZCBleGlmIGluZm9ybWF0aW9uIGZyb20gdGhlIGZpbGUgYW5kIGNvcnJlY3QgaW1hZ2Ugcm90YXRpb248L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vdGFnPSIiIC0gRG8gbm90IG91dHB1dCBhbiBpbWcgdGFnLCBvbmx5IHRoZSB1cmwgdG8gdGhlIGNhY2hlZCBpbWFnZS4gIFRoaXMgaGFzIG5vIGVmZmVjdCB3aGVuIENHU21hcnRJbWFnZSBpcyB1c2VkIGZyb20gd2l0aGluIGEgc3R5bGVzaGVldC48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vcmVzcG9uc2l2ZT0iIiAtIFR1cm4gb2ZmIGFsbCByZXNwb25zaXZlIGltYWdlIGhhbmRsaW5nIGZvciB0aGlzIG9wZXJhdGlvbi48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vZHByYWRqdXN0PSIiIC0gRm9yIHJlc3BvbnNpdmUgaW1hZ2UgaGFuZGxpbmcsIGRvIG5vdCBhZGp1c3QgdGhlIHNpemUgb2YgYSBzY2FsZWQgaW1hZ2UgYmFzZWQgb24gdGhlIGRldmljZSBwaXhlbCByYXRpbyBmcm9tIHRoZSByZXNwb25zaXZlIGluZm9ybWF0aW9uLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbm9icmVha3BvaW50cz0iIiAtIEZvciByZXNwb25zaXZlIGltYWdlIGhhbmRsaW5nLCBkaXNhYmxlIGJyZWFrcG9pbnRzIGFuZCBmb3JjZSByZWd1bGFyIHJlc2l6ZSBoYW5kbGluZyBmb3IgaW1hZ2VzIG9uIG1vYmlsZSBicm93c2Vycy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vcmVtb3RlPSIiIC0gRG8gbm90IGFsbG93IHJldHJpZXZpbmcgc291cmNlcyBmcm9tIHJlbW90ZSBVUkxTPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmb3JjZV90eXBlPSIiIC0gKHN0cmluZykgRm9yY2UgdGhlIG91dHB1dCBpbWFnZSB0byBiZSBzYXZlZCBpbiB0aGUgc3BlY2lmaWVkIGltYWdlIHR5cGUsIGluZGVwZW5kZW50IG9mIHRoZSBzb3VyY2UgaW1hZ2UsIGZpbHRlcnMsIGFuZCBwYXJhbWV0ZXJzLiAgVmFsaWQgdmFsdWVzIGFyZToganBlZyxwbmcsZ2lmLiBOb3RlOiBEdWUgdG8gdGhlIGNhcGFiaWxpdGllcyBvZiBzb21lIGltYWdlIGZvcm1hdHMsIHN1cnByaXNpbmcgZWZmZWN0cyBjYW4gb2NjdXIuICBQYXJ0aWN1bGFybHksIGZvcmNpbmcgYSB0cmFuc3BhcmVudCBQTkcgdG8gc2F2ZSBpbiBKUEVHIGZvcm1hdCB3aWxsIHJlc3VsdCBpbiBhbGwgdHJhbnNwYXJlbmN5IGJlaW5nIGxvc3QuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmb3JjZV9leHQ9IiIgLSAoaW50ZWdlcikgRW5hYmxlIChvciBkaXNhYmxlZCkgdGhlIGZvcmNpbmcgb2YgYWxsIGdlbmVyYXRlZCBpbWFnZSBmaWxlcyB0byBoYXZlIGZpbGUgZXh0ZW5zaW9ucy4gIERlcGVuZGluZyB1cG9uIHRoZSBzb3VyY2UgaW1hZ2UsIGFuZCB0aGUgZmlsdGVycyBhbmQgcGFyYW1ldGVycyB1c2VkLCB0aGUgZ2VuZXJhdGVkIGV4dGVuc2lvbiBtYXkgbm90IGFjY3VyYXRlbHkgcmVwcmVzZW50IHRoZSBhY3R1YWwgY29udGVudHMgb2YgdGhlIGZpbGU8L2xpPjxsaT5zcmM9IiIgLSBTcGVjaWZ5IHRoZSBzb3VyY2UgZm9yIHRoZSBpbWFnZSBwcm9jZXNzaW5nIChpZiBhbnkpIG9yIHRoZSBnZW5lcmF0ZWQgaW1nIHRhZy4gIE5vdGUsIHRoaXMgcGFyYW1ldGVyIGlzIGZsZXhpYmxlLCBhbmQgdGhlIG1vZHVsZSB3aWxsIGF0dGVtcHQgbWFueSBtZXRob2RzIHRvIGZpbmQgdGhlIHNvdXJjZSBpbWFnZSBmaWxlIG9uIHRoZSB3ZWIgc2VydmVyIGFzIGZvbGxvd3M6Cjx1bD4KICA8bGk+Rmlyc3QgbG9vayB0byBzZWUgaWYgdGhlIHNwZWNpZmllZCBzcmMgdmFsdWUgZXhpc3RzIGFzIGEgZmlsZSBvbiB0aGUgZmlsZXN5c3RlbSA8c3Ryb25nPkJlbG93IHRoZSBDTVNNUyByb290IFVSTDwvc3Ryb25nPjwvbGk+CiAgPGxpPk5leHQsIGNoZWNrIGlmIHRoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yIHRoZSBzcmMgcGFyYW1ldGVyIGlzIGEgVVJMIGFuZCBiZWdpbnMgd2l0aCB0aGUgdXBsb2Fkc191cmwgKGFzIHNwZWNpZmllZCBpbiB0aGUgY29uZmlnLnBocCk8L2xpPgogIDxsaT5OZXh0LCBjaGVjayBpZiB0aGUgdmFsdWUgc3BlY2lmaWVkIGZvciB0aGUgc3JjIHBhcmFtZXRlciBpcyBhIFVSTCBhbmQgYmVnaW5zIHdpdGggdGhlIHJvb3RfdXJsIChhcyBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZy5waHApPC9saT4KICA8bGk+TmV4dCwgY2hlY2sgaWYgdGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgdGhlIHNyYyBwYXJhbWV0ZXIgaXMgYSBVUkwgYW5kIGJlZ2lucyB3aXRoIHRoZSBzc2xfdXJsIChhcyBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZy5waHApPC9saT4KPC91bD4KSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBzcGxpdCB0aGUgc3JjIHBhcmFtZXRlciBpbnRvIG11bHRpcGxlIGFyZ3VtZW50cywgd2hpY2ggaXMgdXNlZnVsIGZvciBleGFtcGxlIHdoZW4gdGhlIHBhdGggdG8gdGhlIGZpbGUsIGFuZCB0aGUgZmlsZW5hbWUgYXJlIHN0b3JlZCBpbiBzZXBhcmF0ZSBzbWFydHkgdmFyaWFibGVzLiAgIFlvdSBjYW4gc3BlY2lmeSB0aGUgc3JjIGFzIHNyYzE9XCR0aGVfcGF0aCBzcmMyPVwkdGhlX2ZpbGVuYW1lLiAgVGhlIHN5c3RlbSB3aWxsIGF1dG9tYXRpY2FsbHkgYWRkIGEgLyBpbiBiZXR3ZWVuIGVhY2ggYXJndW1lbnQuICBUaGVyZSBpcyBubyBsaW1pdCB0byB0aGUgbnVtYmVyIG9mIHNyYyBwYXJhbWV0ZXJzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gb3ZlcndyaXRlPSIiIC0gRGlzYWJsZSBhbGwgY2FjaGluZyBhbmQgZm9yY2UgcmUtY2FsY3VsYXRpb24gb2YgYWxsIGZpbHRlcnM8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGlkPSIiIC0gVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIGFsbG93cyBzcGVjaWZ5aW5nIGFuIGlkIGF0dHJpYnV0ZSB0byBpbmNsdWRlIG9uIHRoZSB0YWcuICBpLmU6IGlkPSJzb21ldGFnIjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gY2xhc3M9IiIgLSBVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgYWxsb3dzIHNwZWNpZnlpbmcgb25lIG9yIG1vcmUgY2xhc3NlcyB0byBpbmNsdWRlIG9uIHRoZSB0YWcuICBpLmU6IGNsYXNzPSJmYW5jeWJveCB0aHVtYm5haWwiPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzdHlsZT0iIiAtIFVzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBhbGxvd3Mgc3BlY2lmeWluZyBhbHRlcm5hdGUgc3R5bGVzIGZvciB0aGUgdGFnLiAgaS5lOiBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgYmxhY2s7IjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gdGl0bGU9IiIgLSBTcGVjaWZ5IGFuIG9wdGlvbmFsIHRpdGxlIGF0dHJpYnV0ZSBmb3IgdGhlIGltZyB0YWcuICBpLmU6IHRpdGxlPSJUaGlzIGlzIHRoZSB0b29sdGlwIjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gYWx0PSIiIC0gVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIHNwZWNpZnkgdGhlIHZhbHVlIGZvciB0aGUgYWx0IGF0dHJpYnV0ZS4gIE5vdGUsIGlmIHRoaXMgaXMgbm90IHNwZWNpZmllZCBhIHZhbHVlIHdpbGwgYmUgYXV0b21hdGljYWxseSBjYWxjdWxhdGVkIGZvciB0aGlzIGF0dHJpYnV0ZSBzbyB0aGF0IG1vc3QgZ2VuZXJhdGVkIGltZyB0YWdzIHdpbGwgdmFsaWRhdGUuICBZb3UgY2FuIG92ZXJyaWRlIHRoaXMgYXV0byBjYWxjdWxhdGlvbiB3aXRoIHRoZSAmcXVvdDtub2F1dG8mcXVvdDsgcGFyYW1ldGVyPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBuYW1lPSIiIC0gVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIHNwZWNpZnkgdGhlIHZhbHVlIGZvciB0aGUgbmFtZSBhdHRyaWJ1dGUuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBoZWlnaHQ9IiIgLSBVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSBoZWlnaHQgYXR0cmlidXRlLiAgTm90ZSwgaWYgdGhpcyBpcyBub3Qgc3BlY2lmaWVkIGEgdmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoaXMgYXR0cmlidXRlIHNvIHRoYXQgbW9zdCBnZW5lcmF0ZWQgaW1nIHRhZ3Mgd2lsbCB2YWxpZGF0ZS4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBhdXRvIGNhbGN1bGF0aW9uIHdpdGggdGhlICZxdW90O25vYXV0byZxdW90OyBwYXJhbWV0ZXIuICBUaGlzIHBhcmFtZXRlciB3aWxsIGFsc28gYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAmcXVvdDt3aWR0aCZxdW90OyBwYXJhbWV0ZXIgdG8gcGVyZm9ybSBhIGZpbmFsIHJlc2l6aW5nIG9yIGNyb3B0b2ZpdCBmaWx0ZXIgKHVubGVzcyB0aGUgJnF1b3Q7bm9hdXRvc2NhbGUmcXVvdDsgcGFyYW1ldGVyIGlzIGFsc28gc3VwcGxpZWQpPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiB3aWR0aD0iIiAtIFVzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBzcGVjaWZ5IHRoZSB2YWx1ZSBmb3IgdGhlIHdpZHRoIGF0dHJpYnV0ZS4gICBOb3RlLCBpZiB0aGlzIGlzIG5vdCBzcGVjaWZpZWQgYSB2YWx1ZSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY2FsY3VsYXRlZCBmb3IgdGhpcyBhdHRyaWJ1dGUgc28gdGhhdCBtb3N0IGdlbmVyYXRlZCBpbWcgdGFncyB3aWxsIHZhbGlkYXRlLiAgWW91IGNhbiBvdmVycmlkZSB0aGlzIGF1dG8gY2FsY3VsYXRpb24gd2l0aCB0aGUgJnF1b3Q7bm9hdXRvJnF1b3Q7IHBhcmFtZXRlci4gIFRoaXMgcGFyYW1ldGVyIHdpbGwgYWxzbyBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlICZxdW90O2hlaWdodCZxdW90OyBwYXJhbWV0ZXIgdG8gcGVyZm9ybSBhIGZpbmFsIHJlc2l6aW5nIG9yIGNyb3B0b2ZpdCBmaWx0ZXIgKHVubGVzcyB0aGUgJnF1b3Q7bm9hdXRvc2NhbGUmcXVvdDsgcGFyYW1ldGVyIGlzIGFsc28gc3VwcGxpZWQpPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBxdWFsaXR5PSI3NSIgLSBTcGVjaWZ5IHRoZSBxdWFsaXR5IG9mIHRoZSBvdXRwdXQgaW1hZ2UuICBBIHZhbHVlIGJldHdlZW4gMCBhbmQgMTAwLiAgVGhlIGRlZmF1bHQgdmFsdWUgaWYgbm90IHNwZWNpZmllZCBpcyA3NS48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHJlbD0iNzUiIC0gVXNlZCB3aGVuIGJ1aWxkaW5nIGFuIGltYWdlIHRhZyBhbGxvd3Mgc3BlY2lmeWluZyBhbiBvcHRpb25hbCByZWwgYXR0cmlidXRlICh0eXBpY2FsbHkgdXNlZCB3aXRoIGphdmFzY3JpcHQgdHlwZSBhbGJ1bXMpLiBpLmU6IHJlbD0iYWxidW0iPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBtYXhfd2lkdGg9IiIgLSBUaGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG1heGltdW0gd2lkdGggZm9yIHRoZSBjb252ZXJ0ZWQgaW1hZ2VzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbWF4X2hlaWdodD0iIiAtIFRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbWF4aW11bSBoZWlnaHQgZm9yIHRoZSBjb252ZXJ0ZWQgaW1hZ2VzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gcHJvZ3Jlc3NpdmU9IiIgLSAoYm9vbGVhbikgVG9nZ2xlIHNhdmluZyBqcGVnIGltYWdlcyBpbiBwcm9ncmVzc2l2ZSBmb3JtYXQuICBUaGlzIHBhcmFtZXRlciB3aWxsIG92ZXJyaWRlIHRoZSBwcmVmZXJlbmNlIGluIHRoZSBtb2R1bGVzIGFkbWluIHBhbmVsLiAgQXBwbGllcyBvbmx5IHRvIEpQRUcgaW1hZ2VzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gYXV0b3NjYWxlX29wPSJjcm9wdG9maXQiIC0gT3ZlcnJpZGUgdGhlIGRlZmF1bHQgZmlsdGVyIHRvIGJlIHVzZWQgd2hlbiBhdXRvc2NhbGluZy4gIFBvc3NpYmxlIHZhbHVlcyBhcmUgInJlc2l6ZSIgYW5kICJjcm9wdG9maXQiPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfYmx1cj0iIiAtIChhbnl0aGluZykgU3BlY2lmeSBhbnkgdmFsdWUgZm9yIHRoaXMgcGFyYW1ldGVyIHRvIGFkZCBhIGJsdXIgZmlsdGVyIHRvIHRoZSBpbWFnZTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX2JyaWdodG5lc3M9IiIgLSAoaW50ZWdlcikgSW5jcmFzZSB0aGUgYnJpZ2h0bmVzcyBvZiB0aGUgcHJvY2Vzc2VkIGltYWdlIGJ5IHRoZSBpbnRlZ2VyIHZhbHVlIHNwZWNpZmllZDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX2NvbG9yaXplPSIiIC0gKHIsZyxiWyxhbHBoYV0pIC0gTGlrZSBmaWx0ZXJfZ3JheXNjYWxlIGhvd2V2ZXIgeW91IGNhbiBzcGVjaWZ5IHRoZSBjb2xvciBhbmQgYWxwaGEgdmFsdWU8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9jb250cmFzdD0iIiAtIChpbnRlZ2VyKSBDaGFuZ2UgdGhlIGNvbnRyYXN0IG9mIHRoZSBpbWFnZSBieSB0aGUgaW50ZWdlciB2YWx1ZSBzcGVjaWZpZWQ8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9jcm9wPSIiIC0gKHBlcmNlbnRbLGhfYWxpZ24sdl9hbGlnbl0pIC0gUGVyZm9ybSBjcm9wcGluZyBvbiB0aGUgaW1hZ2Ugc3BlY2lmaWVkLiBDcm9wIHBhcmFtZWV0ZXJzIGFyZSBzcGVjaWZpZWQgYXMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBwYXJhbWV0ZXJzLiAgVGhlIGZpcnN0IChyZXF1aXJlZCkgdmFsdWUgaXMgYW4gaW50ZWdlciBwZXJjZW50YWdlIG9mIHRoZSBvcmlnaW5hbCBpbWFnZSBzaXplLiAgVGhlIG9wdGlvbmFsIHNlY29uZCBhbmQgdGhpcmQgcGFyYW1ldGVycyBhcmUgb25lIG9mIGwsYyxyIChsZWZ0LGNlbnRlcixyaWdodCkgYW5kIHQsYyxiICh0b3AsY2VudGVyLGJvdHRvbSkgc3BlY2lmeWluZyB3aGVyZSB0aGUgbG9jYXRpb24gd2l0aGluIHRoZSBzb3VyY2UgaW1hZ2UgdG8gY3JvcCBmcm9tLiAgaS5lOiBjcm9wPTMzLGIsciB0byBncmFiIGEgY3JvcCBvZiAzMyUgZnJvbSB0aGUgYm90dG9tIHJpZ2h0IG9mIHRoZSBzb3VyY2UgaW1hZ2UuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfY3JvcDJzaXplPSIiIC0gKHdpZHRoLGhlaWdodFssbG9jYXRpb25dKSAtIFBlcmZvcm0gYSBjcm9wIG9uIHRoZSBpbWFnZSBzcGVjaWZpZWQuICBUaGlzIGZpbHRlciB3aWxsIGNvcHkgdGhlIHBvcnRpb24gb2YgdGhlIHNvdXJjZSBpbWFnZSBzcGVjaWZpZWQgaW50byB0aGUgZGVzdGluYXRpb24gaW1hZ2UuICBUaGUgd2lkdGggYW5kIGhlaWdodCBwYXJhbWV0ZXJzIGNhbiBiZSBubyBsYXJnZXIgdGhhbiB0aGUgc2l6ZSBvZiB0aGUgc291cmNlIGltYWdlIChhbmQgd2lsbCBiZSB0cmltbWVkIGFzIHN1Y2guICBOZWdhdGl2ZSB2YWx1ZXMgYXJlIG5vdCBwZXJtaXR0ZWQuICBWYWxpZCBsb2NhdGlvbnMgYXJlOiBsLHRjLHRyLGNsLGMsY3IsYmwsYmMsYnIgZm9yIHRoZSA5IHJlbGF0aXZlIHBvc2l0aW9ucyB3aXRoaW4gdGhlIGltYWdlLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX2Nyb3B0b2ZpdD0iIiAtICh3aWR0aCxoZWlnaHRbLGxvY2F0aW9uWyx1cHNjYWxlXV0pIC0gUGVyZm9ybSBhIGNyb3B0b2ZpdCBvbiB0aGUgaW1hZ2Ugc3BlY2lmaWVkLiBUaGlzIGF0dGVtcHRzIHRvIHJlc2NhbGUgdGhlIGltYWdlIHRvIHRoZSBkZXN0aW5hdGlvbiBzaXplIHdoaWxlIHJldGFpbmluZyBhc3BlY3QgcmF0aW8sIHRoZW4gZm9jdXMgb24gdGhlIHNlbGVjdGVkIGFyZWEgb2YgdGhlIHJlc2l6ZWQgaW1hZ2UuICBDcm9wIHRvIGZpdCBwYXJhbWV0ZXJzIGFyZSBzcGVjaWZpZWQgYXMgdGhlIGRlc2lyZWQgd2lkdGggYW5kIGhlaWdodCBmb3IgdGhlIGRlc3RpbmF0aW9uIGltYWdlIGFsb25nIHdpdGggYW4gKG9wdGlvbmFsKSBsb2NhdGlvbiBjb2RlLCBhbmQgdXBzY2FsZSBmbGFnLiAgdmFsaWQgbG9jYXRpb24gY29kZXMgYXJlIHRsLHRjLHRyLGNsLGMsY3IsYmwsYixiciBmb3IgdGhlIDkgcmVsYXRpdmUgcG9zaXRpb25zIHdpdGhpbiB0aGUgaW1hZ2UuICBJZiBhIGxvY2F0aW9uIGlzIG5vdCBzcGVjaWZpZWQgYSBwcmVmZXJlbmNlIHdpbGwgYmUgdXNlZC4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzICZxdW90O2MmcXVvdDsgdG8gY3JvcC10by1maXQgZnJvbSB0aGUgY2VudGVyIG9mIHRoZSBzb3VyY2UgaW1hZ2UuICBCeSBkZWZhdWx0IHVwc2NhbGluZyBpcyBkaXNhYmxlZCBvbiB0aGlzIGZpbHRlci48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9lZGdlZGV0ZWN0PSIiIC0gKGFueXRoaW5nKSBIaWxpZ2h0IHRoZSBlZGdlcyBpbiB0aGUgaW1hZ2U8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9lbWJvc3M9IiIgLSAoYW55dGhpbmcpIEVtYm9zcyB0aGUgaW1hZ2U8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9mbGlwPSIiIC0gKG1vZGUpIC0gUGVyZm9ybSBhIGZsaXAgb24gdGhlIHNwZWNpZmllZCBpbWFnZS4gIFNwZWNpZnkgMCBmb3IgaG9yaXpvbnRhbCwgMSBmb3IgdmVydGljYWwsIGFuZCAyIGZvciBmbGlwIGluIGJvdGggZGlyZWN0aW9ucy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9ncmF5c2NhbGU9IiIgLSAoYW55dGhpbmcpIENvbnZlcnQgdGhlIGltYWdlIHRvIGdyYXlzY2FsZTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX21lYW5yZW1vdmFsPSIiIC0gKGFueXRoaW5nKSBBdHRlbXB0IHRvIGFjaGlldmUgYSAmcXVvdDtza2V0Y2h5JnF1b3Q7IGVmZmVjdDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX25lZ2F0ZT0iIiAtIChhbnl0aGluZykgTmVnYXRlIHRoZSBpbWFnZTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX25vb3A9IiIgLSAoYW55dGhpbmcpIERvIG5vIHByb2Nlc3NpbmcgKGJ1dCB0cmlnZ2VycyBhIGNhY2hlZCBpbWFnZSk8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9waXhlbGF0ZT0iIiAtIChzaXplWyxhZHZhbmNlZF0pIFBpeGVsYXRlIHRoZSBpbWFnZSwgc3BlY2lmeSBhbiBpbnRlZ2VyIHNpemUgYW5kIGFuIG9wdGlvbmFsIGJvb2xlYW4gKGRlZmF1bHQgaXMgZmFsc2UpIHRvIGVuYWJsZSBhZHZhbmNlZCBwaXhlbGF0aW9uPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfcmVmbGVjdD0iIiAtIChbcmVmbGVjdGlvbl9oZWlnaHRbLHJlZmxlY3Rpb25fb3BhY2l0eVssZGl2aWRlcl9oZWlnaHRdXV0pLCBDcmVhdGVzIHJlZmxlY3Rpb24gb2YgaW1hZ2UsIGN1cnJlbnRseSB3b3JraW5nIG9ubHkgd2l0aCBqcGcsanBlZyBpbWFnZXMgYWdhaW5zdCB3aGl0ZSBiYWNrZ3JvdW5kLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX3Jlc2l6ZT0iIiAtIHR5cGUsbnVtYmVyWyxudW1iZXJbLHVwc2NhbGVdXSAtIFBlcmZvcm0gYSByZXNpemUgb2YgdGhlIHNvdXJjZSBpbWFnZS4gIEJ5IGRlZmF1bHQsIHRoZSByZXNpemUgZmlsdGVyIGFsbG93cyB1cHNjYWxpbmcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOgo8dWw+CiAgPGxpPnAsbnVtYmVyIC0gUGVyZm9ybSBhIHNpbXBsZSByZXNjYWxlIHRvIGEgY2VydGFpbiBwZXJjZW50YWdlLiAgaS5lOiAgcmVzaXplPXAsNTAgdG8gcmVzaXplIHRvIDUwJSBvZiB0aGUgb3JpZ2luYWwgc2l6ZS48L2xpPgogIDxsaT5wLG51bWJlciwwIC0gUGVyZm9ybSBhIHNpbXBsZSByZXNjYWxlIHRvIGEgY2VydGFpbiBwZXJjZW50YWdlLiAgaS5lOiAgcmVzaXplPXAsNTAgdG8gcmVzaXplIHRvIDUwJSBvZiB0aGUgb3JpZ2luYWwgc2l6ZS4gRG8gbm90IGFsbG93IHVwc2NhbGluZzwvbGk+CiAgPGxpPncsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCB3aWR0aCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPXcsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIHdpZHRoIG9mIDgwIHBpeGVscy48L2xpPgogIDxsaT53LG51bWJlciwwIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCB3aWR0aCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPXcsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIHdpZHRoIG9mIDgwIHBpeGVscy4gRG8gbm90IGFsbG93IHVwc2NhbGluZzwvbGk+CiAgPGxpPmgsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCBoZWlnaHQgKHdoaWxlIHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiBpLmU6IHJlc2l6ZT1oLDgwIHRvIGNyZWF0ZSBhIHRodW1ibmFpbCB3aXRoIGEgbWF4aW11bSBoZWlnaHQgb2YgODAgcGl4ZWxzLjwvbGk+CiAgPGxpPmgsbnVtYmVyLDAgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgc3BlY2lmaWVkIGhlaWdodCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPWgsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIGhlaWdodCBvZiA4MCBwaXhlbHMuIERvIG5vdCBhbGxvdyB1cHNjYWxpbmc8L2xpPgogIDxsaT5lLG51bWJlciAtIFBlcmZvcm0gYSByZXNpemUgcmVzaXppbmcgdGhlIGxhcmdlc3QgZWRnZSB0byB0aGUgc3BlY2lmaWVkIHZhbHVlICh3aGlsZSByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gaS5lOiByZXNpemU9ZSwxMDAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdob3MgbGFyZ2VzdCBlZGdlIGlzIDEwMCBwaXhlbHMuPC9saT4KICA8bGk+ZSxudW1iZXIsMCAtIFBlcmZvcm0gYSByZXNpemUgcmVzaXppbmcgdGhlIGxhcmdlc3QgZWRnZSB0byB0aGUgc3BlY2lmaWVkIHZhbHVlICh3aGlsZSByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gaS5lOiByZXNpemU9ZSwxMDAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdob3MgbGFyZ2VzdCBlZGdlIGlzIDEwMCBwaXhlbHMuICBEbyBub3QgYWxsb3cgdXBzY2FsaW5nLjwvbGk+CiAgPGxpPmMseCx5IC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIGN1c3RvbSBzaXplICh3aXRob3V0IHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgaS5lOiBmaWx0ZXJfcmVzaXplPWMsNTAsNzUgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHRoYXQgaXMgNTB4NzUgcGl4ZWxzLjwvbGk+LgogIDxsaT5jLHgseSwwIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIGN1c3RvbSBzaXplICh3aXRob3V0IHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgaS5lOiBmaWx0ZXJfcmVzaXplPWMsNTAsNzUgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHRoYXQgaXMgNTB4NzUgcGl4ZWxzLiBEbyBub3QgYWxsb3cgdXBzY2FsaW5nLjwvbGk+Lgo8L3VsPjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX3Jlc2l6ZXRvZml0PSIiIC0gKHdpZHRoLGhlaWdodFssY29sb3JbLGFscGhhXV0pIC0gUGVyZm9ybSBhIHJlc2l6ZSBvbiB0aGUgaW1hZ2Ugc3BlY2lmaWVkLiBUaGlzIGF0dGVtcHRzIHRvIHJlc2NhbGUgdGhlIGltYWdlIHRvIHRoZSBkZXN0aW5hdGlvbiBzaXplIHdoaWxlIHJlYXRpbmluZyBhc3BlY3QgcmF0aW8sIHRoZSBpbWFnZSBpcyBjZW50ZXJlZCBpbiB0aGUgYm94IHNwZWNpZmllZCAoZWl0aGVyIGhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5IGRlcGVuZGluZyB1cG9uIGFzcGVjdCByYXRpbyBhbmQgdGhlIGRlc3RpbmF0aW9uIHNpemUsIGFuZCB0aGUgaW1hZ2UgaXMgc3Vycm91bmRlZCBieSB0aGUgc3VwcGxpZWQgY29sb3IuICBDb2xvcnMgY2FuIGJlIHNwZWNpZmllZCBieSBuYW1lIChzZWUgdGhlIFgxMSBjb2xvciBuYW1lcyksIG9yIGJ5ICNubm5ubm4gaGV4YWRlY2ltYWwgZm9ybWF0LCBvciBhcyByZ2IgdmFsdWVzIHNlcGFyYXRlZCBieSBhIDogaS5lOiAgZmlsdGVyX2Nyb3B0b2ZpdD02MDAsNDAwLCNmZjAwMDAuICBUaGUgc3BlY2lhbCBjb2xvciB2YWx1ZSAmcXVvdDt0cmFuc3BhcmVudCZxdW90OyBjYW4gYmUgc3BlY2lmaWVkIHRvIGZvcmNlIHRoZSBiYWNrZ3JvdW5kIHRvIGJlIHRyYW5zcGFyZW50IChmb3IgaW1hZ2UgdHlwZXMgdGhhdCBzdXBwb3J0IGl0KS4gICBBbiBhbHBoYSB2YWx1ZSBtYXkgYmUgc3BlY2lmaWVkIGJldHdlZW4gMCBhbmQgMTI3IHRvIHNwZWNpZnkgZGlmZmVyZW50IGRlZ3JlZXMgb2YgdHJhbnNsdWNlbmN5IGZvciB0aGUgYmFja2dyb3VuZC4gICBBdCBubyB0aW1lIHdpbGwgdGhpcyBwbHVnaW4gcGVyZm9ybSBhbnkgdXBzY2FsaW5nLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX3JvdGF0ZT0iIiAtIChhbmdsZSkgU3BlY2lmeSB0aGUgaW50ZWdlciBhbmdsZSAoY291bnRlciBjbG9ja3dpc2UpIHRvIHJvdGF0ZSB0aGUgaW1hZ2UsIFRoZSBpbWFnZSBpcyByb3RhdGVkIGFib3V0IGl0cyBjZW50ZXIuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfcm91bmRlZGNvcm5lcnM9IiIgLSAocmFkaXVzWyxjb2xvcl0pIFNwZWNpZnkgYW4gaW50ZWdlciByYWRpdXMgKGluIHBpeGVscykgZm9yIHJvdW5kaW5nIHRoZSBjb3JuZXJzLiAgT3B0aW9uYWxseSBzcGVjaWZ5IGEgY29sb3IgZm9yIHRoZSByb3VuZGVkIGNvcm5lcnMuICBUaGUgc3BlY2lhbCB2YWx1ZSBpZiAmcXVvdDt0cmFuc3BhcmVudCZxdW90OyBmb3IgdGhlIGNvbG9yIHdpbGwgZm9yY2UgdGhlIGltYWdlIHRvIGJlIGNvbnZlcnRlZCB0byBhIHBuZyBhbmQgYSB0cmFuc3BhcmVudCBjb2xvciB1c2VkLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX3NoYXJwZW49IiIgLSAoaW50ZWdlcikgU3BlY2lmeSBhbiBhZGp1c3RtZW50IChiZXR3ZWVuIC0xMCBhbmQgMTApIHRvIHRoZSBzaGFycGVuIGZpbHRlci4gIExvd2VyIHZhbHVlcyB3aWxsIGxpZ2h0ZW4gdGhlIHNoYXJwZW5pbmcgZWZmZWN0LiAgSGlnaGVyIHZhbHVlcyBpbmNyZWFzZSBpdC4gIE5vdGU6IHNoYXJwZW5pbmcgbWF5IGhhdmUgYWR2ZXJzZSBlZmZlY3RzIG9uIHNvbWUgaW1hZ2VzLCBhbmQgc2hvdWxkIHVzdWFsbHkgYmUgc3BlY2lmaWVkIGFzIHRoZSBsYXN0IGZpbHRlciwgdW5sZXNzIHRoZSBmaWx0ZXIgbWF5IGFkZCBib3JkZXJzIHRvdGhlIGltYWdlLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX3RyYW5zcGFyZW50PSIiIC0gKGNvbG9yWyxhbHBoYV0pIENvbnZlcnRzIGEganBlZyBpbWFnZSB0byB0cmFuc3BhcmVudCBQTkcgYnkgY29udmVydGluZyBhbGwgb2YgdGhlIHBpeGVscyBvZiB0aGUgc3BlY2lmaWVkIGNvbG9yIHRvIHRoZSB0cmFuc3BhcmVudCBjb2xvci4gIE9wdGlvbmFsbHksIGFuIGFscGhhIHZhbHVlIGJldHdlZW4gMCBhbmQgMTI3IGNhbiBiZSBzcGVjaWZpZWQgdG8gaW5kaWNhdGUgc29tZSBhbHBoYSBsZXZlbCBibGVuZGluZzwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX3VudHJhbnNwYXJlbnQ9IiIgLSAoY29sb3JbLHBlcmNlbnRdKSBDb252ZXJ0cyBhIHRyYW5zcGFyZW50IHBuZyBpbWFnZSB0byBhIGpwZWcgaW1hZ2UgYnkgY29weWluZyBhIHRyYW5zcGFyZW50L2FscGhhIGJsZW5kZWQgcG5nIG92ZXJ0b3Agb2YgYW4gaW1hZ2Ugb2YgdGhlIGFwcHJvcHJpYXRlIGNvbG9yLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX3dhdGVybWFyaz0iIiAtIChib29sfHN0cmluZyksIFNwZWNpZnkgdGhhdCB0aGUgd2F0ZXJtYXJrIChhcyBzcGVjaWZpZWQgaW4gdGhlIENHRXh0ZW5zaW9ucyBhZG1pbiBwYW5lbCkgc2hvdWxkIGJlIGFwcGxpZWQgdG8gdGhlIGltYWdlLiAgQW4gb3B0b25hbCBzdHJpbmcgY2FuIGJlIHNwZWNpZmllZCB0byBhbGxvdyBjdXN0b21pemluZyB0aGUgdGV4dCBpbiB0aGUgd2F0ZXJtYXJrLiAgVGhlIHN0cmluZyBjYW5ub3QgY29udGFpbiBIVE1MIGNoYXJhY3RlcnMsIGFuZCBjYW5ub3QgYmUgbW9yZSB0aGFuIDUwIGNoYXJhY3RlcnMgaW4gbGVuZ3RoIChpdCB3aWxsIGJlIHRyaW1tZWQpLiAgTm90ZSwgIGRlcGVuZGluZyBvbiBpbWFnZSBzaXplLCBhbmQgd2F0ZXJtYXJrIHNldHRpbmdzIHRoZSB0ZXh0IG1heSBub3QgYmUgdmlzaWJsZSBvciBtYXkgYmUgY2xpcHBlZCBieSB0aGUgaW1hZ2UuPC9saT48L3VsPg==]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGdtYWlsLmNvbSZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAxLjIxLjM8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz48dWw+CiAgPGxpPlZlcnNpb24gMS4wIC0gSW5pdGlhbCBSZWxlYXNlPC9saT4KICA8bGk+VmVyc2lvbiAxLjAuMSAtIEJ1ZyBmaXhlcy48L2xpPgogIDxsaT5WZXJzaW9uIDEuMC4yIC0gQnVnIGZpeGVzLjwvbGk+CiAgPGxpPlZlcnNpb24gMS4wLjMgLSBCdWcgZml4ZXMuPC9saT4KICA8bGk+VmVyc2lvbiAxLjEgLSBNYXJjaCAyMDExCiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIHRoZSBjcm9wdG9maXQgZmlsdGVyLjwvbGk+CiAgICAgIDxsaT5BZGRzIGF1dG9tYXRpYyBpbWFnZSByZXNpemluZy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuMS4xIC0gTWFyY2ggMjAxMQogICAgPHVsPgogICAgICA8bGk+Rml4ZXMgdG8gY3JvcHRvZml0LjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMS4xLjEgLSBNYXkgMjAxMQogICAgPHVsPgogICAgICA8bGk+Rml4ZXMgdG8gR0lGIGltYWdlIGhhbmRsaW5nLjwvbGk+CiAgICAgIDxsaT5BZGQgYSBiaXQgbW9yZSBpbnRlbGxpZ2VuY2UgaW50byBpbWFnZSBzcmMgaGFuZGxpbmcuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAxLjEuMiAtIE1heSAyMDExCiAgICA8dWw+CiAgICAgIDxsaT5NYW55IG1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuMiAtIE1heSAyMDExCiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIHJvdW5kZWQgaW1hZ2UgY29ybmVyIHN1cHBvcnQuLi4gd2l0aCB0cmFuc3BhcmVuY3kuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAxLjIuMSAtIE1heSAyMDExCiAgICA8dWw+CiAgICA8bGk+Rml4ZXMgcHJvYmxlbXMgd2l0aCBJRTcgYW5kIGVtYmVkZGluZyAoSUU3IHdvbnQgZW1iZWQsIGFzIG11Y2ggYXMgSSB0cnkgdG8gbWFrZSBpdCkuPC9saT4KICAgIDxsaT5SZXF1aXJlcyBuZXcgdmVyc2lvbiBvZiBDR0V4dGVuc2lvbnMgdGhhdCBkb2VzIGNydWRlIGhhY2sgZm9yIG1pbWUgdHlwZSBkZXRlY3Rpb24gb24gd2luZG96ZSBzZXJ2ZXJzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPgogIDwvbGk+VmVyc2lvbiAxLjMgLSBNYXkgMjAxMQogIDxsaT4KICAgIDx1bD4KICAgIDxsaT5BZGRzIHN1cHBvcnQgZm9yIGpwZWcgYXV0by1yb3RhdGlvbiB2aWEgRVhJRi48L2xpPgogICAgPGxpPkFkZHMgYSBmbGlwIGZpbHRlci48L2xpPgogICAgPGxpPkFkZHMgY29tbWFuZCBhbGlhc2VzLjwvbGk+CiAgICA8bGk+QWRkcyBzdXBwb3J0IGZvciBtdWx0aXBsZSBzcmMjIyBhcmd1bWVudHMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8L2xpPlZlcnNpb24gMS4zLjEgLSBNYXkgMjAxMQogIDxsaT4KICAgIDx1bD4KICAgIDxsaT5TdXByZXNzIGEgd2FybmluZy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDwvbGk+VmVyc2lvbiAxLjQgLSBKdWx5IDIwMTEKICA8bGk+CiAgICA8dWw+CiAgICA8bGk+QWRkcyB0aGUge2Nnc2lfY29udmVydH0gdGFnLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPC9saT5WZXJzaW9uIDEuNC4xIC0gSnVseSAyMDExCiAgPGxpPgogICAgPHVsPgogICAgPGxpPkFkZHJlc3MgYW4gaXNzdWUgd2l0aCB0aGUgQ01TX1NUWUxFU0hFRVQgZ2xvYmFsIG9jY2Fzc2lvbmFsbHkgYmVpbmcgc2V0LCB3aGljaCByZXN1bHRzIGluIHRoZSBub3RhZyBzdHVmZiBtZXNzaW5nIHVwLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPC9saT5WZXJzaW9uIDEuNC4yIC0gSnVseSAyMDExCiAgPGxpPgogICAgPHVsPgogICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuNSAtIEF1Z3VzdCAyMDExCiAgICA8dWw+CiAgICA8bGk+TWlub3IgQnVnIEZpeGVzLjwvbGk+CiAgICA8bGk+Rml4ZXMgaXNzdWVzIHdpdGggY2dzaV9jb252ZXJ0LjwvbGk+CiAgICA8bGk+QWRkcyBkb2N1bWVudGF0aW9uIGZvciB0aGUgdGl0bGUsIHJlbCwgYW5kIGlkIHBhcmFtZXRlcnMuPC9saT4KICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGRvd25sb2FkIGltYWdlcyBmcm9tIGEgcmVtb3RlIHNpdGUsIGNhY2hlIHRoZW0uLiBhbmQgcHJvY2VzcyB0aGVtLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMS41LjEgLSBTZXB0ZW1iZXIsIDIwMTEKICAgIDx1bD4KICAgICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuNiAtIE9jdG9iZXIsIDIwMTEKICAgIDx1bD4KICAgICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gc3BlY2lmeSBhIGNyb3AtdG8tZml0IGxvY2F0aW9uIG90aGVyIHRoYW4gY2VudGVyLjwvbGk+CiAgICAgIDxsaT5BZGRzIGEgcHJlZmVyZW5jZSBmb3IgdGhlIGRlZmF1bHQgY3JvcC10by1maXQgbG9jYXRpb24sIGJ1dCBjaGFuZ2luZyB0aGlzIHdpbGwgbm90IGdlbmVyYXRlIG5ldyBpbWFnZXMuLi4geW91IHdpbGwgbmVlZCB0byBjbGVhciB5b3VyIGdlbmVyYXRlZCBpbWFnZSBmaWxlcy48L2xpPgogICAgICA8bGk+Y3JvcC10by1maXQgZmlsdGVyIG5vdyBjaGVja3MgZm9yIHBvc3NpYmxlIHVwc2NhbGluZyBhbmQgd2lsbCBub3QgYWxsb3cgaXQuPC9saT4KICAgICAgPGxpPnJlbmFtZSB0aGUgbm9jYWNoZSBwYXJhbWV0ZXIgdG8gbm9iY2FjaGUgdG8gcmVtb3ZlIGNvbmZsaWN0IHdpdGggQ0dFeHRlbnNpb25zLjwvbGk+CiAgICAgIDxsaT5GaXhlcyBhIGJ1ZyB3aXRoIG11bHRpcGxlIGNsYXNzIG5hbWVzIHNwZWNpZmllZCBpbiBhbGlhc2VzLjwvbGk+CiAgICAgIDxsaT5GaXhlcyBhIGJ1ZyBpbiB0aGUgcmVzaXplIGZpbHRlci48L2xpPgogICAgICA8bGk+Rml4ZXMgYSBidWcgd2hlcmUgaWYgbm90aGluZyBoYXBwZW5lZCBpbiBhbiBpbWFnZSBmaWx0ZXIgKGR1ZSB0byBjb25zdHJhaW50cykgdGhlIHN5c3RlbSB3b3VsZCBub3Qgc2FmZSB0aGUgZmlsZS48L2xpPgogICAgICA8bGk+QWRkcyBhIHJlc2l6ZXRvZml0IGZpbHRlci48L2xpPgogICAgICA8bGk+R2VuZXJhdGVkIGZpbGVzIG5vIGxvbmdlciBoYXZlIGFuIGV4dGVuc2lvbiB0byBwcmV2ZW50IGluY29uc2lzdGVuY2llcyBpbiBmaWxlIHR5cGVzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMS42LjEgLSBOb3ZlbWJlciwgMjAxMQogICAgPHVsPgogICAgICA8bGk+TWlub3IgZml4ZXMgdG8gY2dzaV9jb252ZXJ0LjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMS43IC0gRmVicnVhcnksIDIwMTIKICAgIDx1bD4KICAgICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gY2hlY2sgdGhlIHRpbWUgb2YgdGhlIHNvdXJjZSBpbWFnZSB0byBhaWRlIGluIGRlY2lkaW5nIGlmIHRoZSBjYWNoZWQgaW1hZ2UgbmVlZHMgdG8gYmUgZ2VuZXJhdGVkL3JlLWdlbmVyYXRlZC48L2xpPgogICAgICA8bGk+Rml4ZXMgdG8gdGhlIHJlc2l6ZSBmaWx0ZXIuPC9saT4KICAgICAgPGxpPlJlc2FtcGxlIGluc3RhZCBvZiByZXNpemUgYnkgZGVmYXVsdCBpbiB0aGUgcmVzaXplIGZpbHRlci48L2xpPgogICAgICA8bGk+Q3JlYXRlIGFuIGluZGV4Lmh0bWwgZmlsZSBpbiB0aGUgaW1hZ2UgZGlyZWN0b3J5IHRvIHByZXZlbnQgYnJvd3NpbmcuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAxLjguMSAtIEZlYnJ1YXJ5LCAyMDEyCiAgICA8dWw+CiAgICAgIDxsaT5BZGRzIHRoZSBzaWxlbnQgcGFyYW0gdG8gaGlkZSBlcnJvcnMuPC9saT4KICAgICAgPGxpPkFkZHMgcmVzaXplIHRvIGxhcmdlc3QgZWRnZSB0byBmaWx0ZXJfcmVzaXplLjwvbGk+CiAgICAgIDxsaT5SZW1vdmVzIGxhenlsb2FkaW5nIHNvIHRoYXQge2Nnc2lfY29udmVyVH0gd2lsbCB3b3JrLjwvbGk+CiAgICAgIDxsaT5zb21lIG1pbm9yIGZpeGVzLjwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiA8bGk+VmVyc2lvbiAxLjguNCAtIE1heSwgMjAxMgogICAgPHVsPgogICAgICA8bGk+Rml4ZXMgdG8gY2dzaV9jb252ZXJ0LjwvbGk+CiAgICAgIDxsaT5SZW1vdmVzIHRoZSBjb2xvciBwYXJhbWV0ZXIgZnJvbSBmaWx0ZXJfcm90YXRlLjwvbGk+CiAgICAgIDxsaT5GaXhlcyB3YXJuaW5ncy48L2xpPgogICAgICA8bGk+Q29kZSBjbGVhbnVwLjwvbGk+CiAgICA8L3VsPgogPC9saT4KIDxsaT5WZXJzaW9uIDEuOSAtIE1heSAyMDEyCiAgIDx1bD4KICAgICA8bGk+QWRkcyByZXNwb25zaXZlIGltYWdlIGNhcGFiaWxpdGllcyB3aXRoIHdlYiBzZXJ2aWNlIGJhc2VkIG1vYmlsZSBkZXZpY2UgZGV0ZWN0aW9uLjwvbGk+CiAgICAgPGxpPkltcHJvdmVzIHBhdGggZGV0ZWN0aW9uLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPlZlcnNpb24gMS4xMCAtIEphbiAyMDEzCiAgIDx1bD4KICAgICAgPGxpPkFkZHMgcmVmbGVjdGlvbiBmaWx0ZXIgKHRoYW5rcyB0byBUYXBpbykuLi4gbm90ZSBvbmx5IHdvcmtzIHdlbGwgd2l0aCBqcGVnIGltYWdlczwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPlZlcnNpb24gMS4xMSAtIEp1bHkgMjAxMwogICA8dWw+CiAgICAgIDxsaT5NaW5vciBkb2N1bWVudGF0aW9uIGZpeC4gIEZpbGVzIHByb3ZpZGVkIHZpYSB0aGUgc3JjIGFyZ3VtZW50IG11c3QgYmUgYmVsb3cgdGhlIENNU01TIHJvb3QgVVJMLjwvbGk+CiAgICAgIDxsaT5BZGRzIGEgc2ltcGxlIHNoYXJwZW4gZmlsdGVyLjwvbGk+CiAgICAgIDxsaT5BZGRzIHNpbXBsZSBtZW1vcnkgbGltaXQgY2hlY2tpbmcgKHdpbGwgd29yayBmb3IgaG9zdHMgd2hlcmUgd2UgY2FuIGluaV9nZXQgdGhlIG1lbW9yeSBsaW1pdC48L2xpPgogICAgICA8bGk+TnVtZXJvdXMgaW1wcm92ZW1lbnRzIHRvIHRoZSByZXNpemV0b0ZpdCBmaWx0ZXIuPC9saT4KICAgICAgPGxpPkZpeGVzIGNhY2hlZCBmaWxlbmFtZXMgdG8gYmUgZW50aXJlbHkgZW5jb2RlZC48L2xpPgogICAgICA8bGk+Rml4ZXMgYWx0IHZhbHVlIGZvciBpbWFnZSB0YWdzLjwvbGk+CiAgICAgIDxsaT5Ob3cgdXNlcyBhIHNpbmdsZSBsYXN0IGZpbHRlci4uLiBub3QgbXVsdGlwbGUuPC9saT4KICAgICAgPGxpPlJhdGlvbmFsaXplIGJlaGF2aW9yIGJldHdlZW4gbWF4X3dpZHRoL21heF9oZWlnaHQgYW5kIHdpZHRoL2hlaWdodC4KICAgICAgICA8cD5Ob3csIGlmIG1heF93aWR0aC9tYXhfaGVpZ2h0IGlzIHNwZWNpZmllZCB2aWEgdGhlIHBhcmFtZXRlciwgb3IgYnkgZGV2aWNlIGRldGVjdGlvbiwgQU5EIHRoZSBoZWlnaHQvd2lkdGggcGFyYW1ldGVycyBhcmUgc3BlY2lmaWVkLCB0aGUgc21hbGxlciBvZiB0aGVzZSB0d28gcGFpcnMgb2YgdmFsdWVzIHdpbGwgYmUgdXNlZCwgYW5kIGEgc2luZ2xlIGZpbHRlciBhcHBsaWVkLiAgVGhlIG5vYXV0byBwYXJhbWV0ZXIgY2FuIHN0aWxsIGJlIHVzZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGltZyB0YWcgKGlmIGdlbmVyYXRlZCkgaGFzIHRoZSBzcGVjaWZpZWQgd2l0aCBhbmQgaGVpZ2h0IHBhcmFtZXRlcnMuPC9wPgogICAgICA8L2xpPgogICAgICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPlZlcnNpb24gMS4xMiAtIEF1Z3VzdCAyMDEzCiAgIDx1bD4KICAgICA8bGk+R2V0IHJpZCBvZiBmaWxlbmFtZSBleHRlbnNpb25zIGNvbXBsZXRlbHkuPC9saT4KICAgICA8bGk+Tm93IHVzZSBleGNlcHRpb25zIGFsb3QgbW9yZSB0aGFuIGVycm9yIHN0YXR1cyAoYWxsb3dzIGNsZWFuaW5nIHVwIGNvZGUpLjwvbGk+CiAgICAgPGxpPkFkZHMgdGhlIGZpbHRlcl8jI19uYW1lIHN5bnRheCB3aGljaCBhbGxvd3MgY2FsbGluZyB0aGUgc2FtZSBmaWx0ZXIgbXVsdGlwbGUgdGltZXMuPC9saT4KICAgICA8bGk+QWRkcyBhIHNpbXBsZSB0cmFuc3BhcmVuY3kgZmlsdGVyLjwvbGk+CiAgICAgPGxpPkFkZHMgYSBzaW1wbGUgdW50cmFuc3BhcmVudCBmaWx0ZXIuPC9saT4KICAgICA8bGk+UmV3cml0ZXMgdGhlIHJvdW5kZWQgY29ybmVycyBmaWx0ZXIuPC9saT4KICAgICA8bGk+UmV3cml0ZXMgdGhlIHJlc2l6ZSB0byBmaXQgZmlsdGVyIChhZ2FpbikuPC9saT4KICAgICA8bGk+UmV3cml0ZXMgdGhlIHJvdGF0ZSBmaWx0ZXIuPC9saT4KICAgICA8bGk+Rml4ZXMgcHJvYmxlbXMgd2l0aCBlbXB0eSBjYWNoZSBwYXRoPC9saT4KICAgICA8bGk+YWx0IGF0dHJpYnV0ZSBpcyBub3cgYWxsb3dlZCB0byBiZSBlbXB0eS48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT5WZXJzaW9uIDEuMTMgLSBPY3RvYmVyIDIwMTMKICAgPHVsPgogICAgPGxpPkFkZHMgYSBwcmVmZXJlbmNlIGZvciBtZW1vcnkgY2hlY2tpbmcuPC9saT4KICAgIDxsaT5DaGFuZ2UgdG8gdGhlIG1lbW9yeSBuZWVkZWQgY2FsY3VsYXRpb24uPC9saT4KICAgIDxsaT5CdWcgZml4ZXMuPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+VmVyc2lvbiAxLjE0IC0gT2N0b2JlciAyMDEzCiAgIDx1bD4KICAgIDxsaT5BZGRzIGEgcHJlZmVyZW5jZSBmb3IgZXh0ZW5zaW9uIGhhbmRsaW5nLjwvbGk+CiAgICA8bGk+QWRkcyB0aGUgZm9yY2VfZXh0IGFuZCBmb3JjZV90eXBlIHBhcmFtZXRlcnMuPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+VmVyc2lvbiAxLjE1IC0gRGVjZW1iZXIgMjAxMwogICA8dWw+CiAgICA8bGk+QWRkcyBjcm9wMnNpemUgZmlsdGVyLjwvbGk+CiAgICA8bGk+TWlub3IgZml4ZXMgdG8gY3JvcHRvZml0IGZpbHRlci48L2xpPgogICAgPGxpPk1pbm9yIGZpeGVzIHRvIHJlc2l6ZSBmaWx0ZXIgd3J0IHRyYW5zcGFyZW50IFBORyBpbWFnZXM8L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT5WZXJzaW9uIDEuMTYgLSBNYXJjaCAyMDE0CiAgIDx1bD4KICAgICA8bGk+QWRkcyB7Y2dzaV9nZXRpbWFnZXN9IHBsdWdpbi48L2xpPgogICAgIDxsaT5DbGVhbnVwIHRlbXBvcmFyeSByZXNvdXJjZXMuPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+VmVyc2lvbiAxLjE2LjEgLSBBcHJpbCAyMDE0CiAgIDx1bD4KCTxsaT5GaXhlcyBpc3N1ZSB3aXRoIGNhY2hpbmcgYW5kIERldmljZUF0bGFzIHJlcXVlc3RzLjwvbGk+Cgk8bGk+Tm93IGNhY2hlIGRldmljZUF0bGFzIHJlcXVlc3RzIGZvciAxNCBkYXlzIGluc3RlYWQgb2YgNzwvbGk+Cgk8bGk+bW9yZSBhdWRpdGluZzwvbGk+Cgk8bGk+Rml4ZXMgbWlub3IgcHJvYmxlbSB3aXRoIGZpbHRlcl9yZXNpemUgYW5kIGZpbHRlcl93YXRlcm1hcmsuPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+VmVyc2lvbiAxLjE3IC0gQXVndXN0IDIwMTQKICAgPHVsPgogICAgICAgIDxsaT5PcHRpbWl6YXRpb25zIGluIHRoZSBldmVudCB0aGF0IGNvbm5lY3Rpb25zIHRvIHRoZSByZW1vdGUgc2VydmVyIGZvciBkZXZpY2UgY2hhcmFjdGVyaXN0aWNzIGZhaWwuPC9saT4KCTxsaT5BZGRzIHRoZSBvcHRpb24gdG8gc2F2ZSBKUEVHJ3MgYXMgcHJvZ3Jlc3NpdmUuPC9saT4KCTxsaT5UdXJuIG9mZiByZXNwb25zaXZlIGltYWdlcyBieSBkZWZhdWx0IChzaW5jZSBEZXZpY2VBdGxhcyBzZWVtcyB0byBoYXZlIHNodXQgZG93biB0aGVpciBzZXJ2aWNlKTwvbGk+Cgk8bGk+TWlub3IgaW1wcm92ZW1lbnRzIHRvIHRoZSBzaGFycGVuIGZpbHRlci48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT5WZXJzaW9uIDEuMTcuMSAtIE5vdmVtYmVyIDIwMTQKICAgPHVsPgogICAgIDxsaT5NaW5vciBidWdmaXhlcy48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT5WZXJzaW9uIDEuMTcuMiAtIEphbnVhcnkgMjAxNQogICA8dWw+CiAgICAgPGxpPldhdGVybWFya2luZyBjbGFzcyBub3cgdXNlcyBDR0V4dGVuc2lvbnMgd2F0ZXJtYXJrIGNsYXNzLjwvbGk+CiAgICAgPGxpPk1pbm9yIGJ1Z2ZpeGVzLjwvbGk+CiAgIDwvdWw+Cgk8L2xpPgogIDxsaT5WZXJzaW9uIDEuMTggLSBBcHJpbCAyMDE1Cgk8dWw+CiAgICAgICAgPGxpPkJ1ZyBmaXhlcyB3cnQge2Nnc2lfY29udmVydH0gKGFjdHVhbGx5IG1vc3RseSBkb25lIGluIENHRXh0ZW5zaW9ucykuPC9saT4KCTxsaT5CdWcgZml4ZXMgd3J0IHNtYXJ0LCBzaXplIGxpbWl0ZWQgZW1iZWRkaW5nLjwvbGk+Cgk8bGk+QnVnIGZpeGVzIHdydCBjYWNoZSBwcmVmaXhlcy48L2xpPgoJPGxpPkFkZHMgbm9vcCBmaWx0ZXIuPC9saT4KCTwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAxLjE5Cgk8dWw+Cgk8bGk+UmVwbGFjZSByZXNwb25zaXZlIGltYWdlIGZ1bmN0aW9uYWxpdHkgd2l0aCBuZXcgZnVuY3Rpb25hbGl0eS4gICB0aGUge0NHU21hcnRJbWFnZSBhY3Rpb249cmVzcG9uc2l2ZX0gbm93IG91dHB1dHMgZnVuY3Rpb25hbGl0eSB0byBzZW5kIGRldmljZSBjaGFyYWN0ZXJpc3RpY3MgdG8gdGhlIHNlcnZlciBhbGEgdGhlIG11c3RhcmQtY3V0IHRlY2huaXF1ZSAoaWYgY29va2llIGRvZXMgbm90IGV4aXN0LCBzZXQgY29va2llIGFuZCByZWxvYWQpLjwvbGk+Cgk8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMS4yMAoJPHVsPgoJPGxpPjxzdHJvbmc+SW1wb3J0YW50PC9zdHJvbmc+IHJhdGlvbmFsaXplIHRoZSBhdXRvc2NhbGluZyBmdW5jdGlvbmFsaXR5LiAgIElmIGF1dG9zY2FsaW5nIGlzIGVuYWJsZWQgKHRoZSBkZWZhdWx0KSBvciBkZXZpY2UgY2FwYWJpbHRpZXMgYXJlIGRldGVjdGVkLCBub3cgZW5zdXJlIHRoYXQgdGhlIGltYWdlIHdpbGwgYWx3YXlzIGJlIGFkanVzdGVkIHRvIGZpdCB0aGUgc21hbGxlc3QgcmVzb2x1dGlvbiBzcGVjaWZpZWQsIGFuZCBhbHdheXMgbWFpbnRhaW4gYXNwZWN0IHJhdGlvLjwvbGk+Cgk8bGk+Q2xlYW4gdXAgcmF0aW9uYWxpemF0aW9uIG9mIHdpZHRoL2hlaWdodCwgbWF4X3dpZHRoL21heF9oZWlnaHQgc3R1ZmYuPC9saT4KCTxsaT5BZGQgdGhlIGFzc3VtZSByZXNwb25zaXZlIHByZWZlcmVuY2UgdG8gb3B0aW1pemUgcGVyZm9ybWFuY2Ugb24gbW9iaWxlLWZpcnN0IHNpdGVzLjwvbGk+Cgk8bGk+QWRkIHRoZSBhdXRvc2NhbGVfb3AgcHJlZmVyZW5jZSB0byBpbmRpY2F0ZSB3aGF0IGZpbHRlciB0byBjYWxsIHdoZW4gZG9pbmcgYXV0byBzY2FsaW5nPC9saT4KCTxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIG91dHB1dCBpbWFnZXMgc3BlY2lmaWNhbGx5IGZvciBkZXZpY2VzIHdpdGggYSBoaWdoZXIgZHByIChkZXZpY2UgcGl4ZWwgcmF0aW8pLjwvbGk+Cgk8bEk+QWRkcyB0aGUgbm9kcHJhZGp1c3QgcGFyYW1ldGVyIHRvIGRpc2FibGUgYWRqdXN0aW5nIG91dHB1dCBmb3IgZGV2aWNlcyB3aXRoIGEgaGlnaGVyIGRldmljZSBwaXhlbCByYXRpby48L2xpPgoJPGxpPkFkanVzdCB0aGUgd2F0ZXJtYXJrIGZpbHRlciBzbyB0aGF0IHRleHQgY2FuIG9wdGlvbmFsbHkgYmUgcHJvdmlkZWQuICBpLmU6ICBmaWx0ZXJfd2F0ZXJtYXJrPSJzb21lIHRleHQiLiAgUmVhZCB0aGUgaGVscCBmb3IgdGhpcyBwYXJhbWV0ZXIgZm9yIGZ1cnRoZXIgaW5mby48L2xpPgoJPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuMjAuNQogICAgPHVsPgogICAgICA8bGk+Rml4ZXMgdG8gcmVzcG9uc2l2ZSBicmVha3BvaW50cy48L2xpPgogICAgICA8bGk+Rml4ZXMgZm9yIHJlc2l6ZSBmaWx0ZXIuPC9saT4KICAgICAgPGxpPkZpeGVzIGZvciByZWxhdGl2ZSBwYXRoIGlzc3Vlcy48L2xpPgogICAgICA8bGk+SW1wcm92ZW1lbnRzIHRvIHRoZSB0ZW1wbGF0ZSBmb3IgdGhlIHJlc3BvbnNpdmUgYWN0aW9uLjwvbGk+ICAgICAgCiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMS4yMQogICAgPHVsPgogICAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBhdXRvLXJlc2l6ZSwgd2F0ZXJtYXJrIGFuZCByb3RhdGUgaW1hZ2VzIGluIHRoZSBiYWNrZ3JvdW5kLiAgUmVxdWlyZXMgQ01TTVMgMi4xIGFuZCB0aGUgQ0dNZXNzYWdlUXVldWUgbW9kdWxlLjwvbGk+CiAgICAgIDxsaT5NaW5vciBpbXByb3ZlbWVudHMgdG8gY2dzaV91dGlsczwvbGk+CiAgICA8L3VsPgogIDwvbGk+CjxsaT5WZXJzaW9uIDEuMjEuMgogICA8dWw+CiAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgPC91bD4KCjwvdWw+CjxiciAvPg==]]></about>
	<description><![CDATA[A smart image tag generation module for CMSMS]]></description>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.53.1</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.admin_autoprocessing_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxNiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSByZXR1cm47CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdhdXRvcHJvY2Vzc2luZycpOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSApIHsKICAgICRwcmVmcyA9IFxDR1NtYXJ0SW1hZ2VcYXV0b3Byb2Nlc3Nfb3B0aW9uczo6bG9hZCgpOwogICAgJHByZWZzLT5lbmFibGVkID0gXGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdhcF9lbmFibGVkJyk7CiAgICAkcHJlZnMtPmlnbm9yZV9leHRlbnNpb25zID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdhcF9pZ25vcmVfZXh0ZW5zaW9ucycpOwogICAgJHByZWZzLT5pZ25vcmVfZGlycyA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnYXBfaWdub3JlX2RpcnMnKTsKICAgICRwcmVmcy0+aW5jbHVkZV9kaXJzID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdhcF9pbmNsdWRlX2RpcnMnKTsKICAgICRwcmVmcy0+bWF4X3NpemUgPSBcY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2FwX21heF9zaXplJyk7CiAgICAkcHJlZi0+YXV0b3JvdGF0ZSA9IFxjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnYXBfYXV0b3JvdGF0ZScpOwogICAgJHByZWZzLT53YXRlcm1hcmsgPSBcY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2FwX3dhdGVybWFyaycpOwogICAgJHByZWZzLT5zYXZlKCk7CiAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX3ByZWZzdXBkYXRlZCcpKTsKfQplbHNlIGlmKCBpc3NldCgkcGFyYW1zWydiZWdpbl9hdXRvcHJvY2VzcyddKSApIHsKICAgICRvYmogPSBuZXcgXENHU21hcnRJbWFnZVxBdXRvUHJvY2Vzc01hc3RlclRhc2soKTsKICAgIGlmKCAhJG9iai0+dGVzdCgpICkgewogICAgICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnbXNnX3Rhc2tub3RyZWFkeScpKTsKICAgICB9IGVsc2UgewogICAgICAgICRvYmotPmV4ZWN1dGUoKTsKICAgIH0KfQoKJHRoaXMtPlJlZGlyZWN0VG9UYWIoKTs=]]></data>
	</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[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2dlbmVyYWwnKTsKJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwoKdHJ5IHsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKSB7CiAgICAgICAgLy8gdmFsaWRhdGUgdGhlIGNhY2hlIHBhdGguCiAgICAgICAgJGNhY2hlX3BhdGggPSB0cmltKCRwYXJhbXNbJ2NhY2hlX3BhdGgnXSk7CiAgICAgICAgaWYoICRjYWNoZV9wYXRoICkgewogICAgICAgICAgICAkdHAxID0gJGNhY2hlX3BhdGg7CiAgICAgICAgICAgIGlmKCAhaXNfZGlyKCR0cDEpICkgJHRwMSA9ICRjb25maWdbJ3Jvb3RfcGF0aCddLicvJy4kdHAxOwogICAgICAgICAgICAkcDEgPSByZWFscGF0aCgkdHAxKTsKICAgICAgICAgICAgJHAyID0gcmVhbHBhdGgoJGNvbmZpZ1sncm9vdF9wYXRoJ10pOwogICAgICAgICAgICBpZiggJHAxID09ICRwMiB8fCAhc3RhcnRzd2l0aCgkcDEsJHAyKSApIHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2NhY2hlcGF0aF9pbnZhbGlkJykpOwogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2Nyb3B0b2ZpdF9kZWZhdWx0X2xvYycsdHJpbSgkcGFyYW1zWydjcm9wdG9maXRfZGVmYXVsdF9sb2MnXSkpOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjYWNoZV9hZ2UnLChpbnQpJHBhcmFtc1snY2FjaGVfYWdlJ10pOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjYWNoZV9wYXRoJywkY2FjaGVfcGF0aCk7CiAgICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltYWdlX3VybF9wcmVmaXgnLHRyaW0oJHBhcmFtc1snaW1hZ2VfdXJsX3ByZWZpeCddKSk7CiAgICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3NpbGVudCcsKGludCkkcGFyYW1zWydzaWxlbnQnXSk7CiAgICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltYWdlX3VybF9oYXNjYWNoZWRpcicsKGlzc2V0KCRwYXJhbXNbJ2ltYWdlX3VybF9oYXNjYWNoZWRpciddKSk/KGludCkkcGFyYW1zWydpbWFnZV91cmxfaGFzY2FjaGVkaXInXTowKTsKICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnY2hlY2ttZW1vcnknLChpbnQpJHBhcmFtc1snY2hlY2ttZW1vcnknXSk7CiAgICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ZvcmNlX2V4dGVuc2lvbicsKGludCkkcGFyYW1zWydmb3JjZV9leHRlbnNpb24nXSk7CiAgICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Byb2dyZXNzaXZlJywoaW50KSRwYXJhbXNbJ3Byb2dyZXNzaXZlJ10pOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhdXRvc2NhbGVfb3AnLHRyaW0oJHBhcmFtcywnYXV0b3NjYWxlX29wJykpOwogICAgICAgICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfcHJlZnN1cGRhdGVkJykpOwogICAgfQogICAgZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snY2xlYXJfbm93J10pICkgewogICAgICAgIC8vIGNsZWFyIGFsbCBmaWxlcyBmcm9tIGNhY2hlIGRpciBvbGRlciB0aGFuIE4gZGF5cwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjYWNoZV9hZ2UnLChpbnQpJHBhcmFtc1snY2FjaGVfYWdlJ10pOwogICAgICAgICRuX3JlbW92ZWQgPSAkdGhpcy0+Y2xlYXJfY2FjaGVkX2ZpbGVzKCk7CiAgICAgICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19jYWNoZWNsZWFuZWQnLCRuX3JlbW92ZWQpKTsKICAgICAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCRuX3JlbW92ZWQuJyBmaWxlcyBjbGVhbmVkIGZyb20gY2FjaGUgZGlyZWN0b3J5Jyk7CiAgICB9CiAgICBlbHNlIGlmKCBpc3NldCgkcGFyYW1zWydjbGVhcl9hbGwnXSkgKSB7CiAgICAgICAgLy8ganVzdCBudWtlIHRoZSBjYWNoZSBkaXJlY3RvcnkgY29tcGxldGVseS4KICAgICAgICAkY2FjaGVfcGF0aCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjYWNoZV9wYXRoJywgY21zX2pvaW5fcGF0aCgndXBsb2FkcycsICdfJy4kdGhpcy0+R2V0TmFtZSgpKSk7CiAgICAgICAgJGRpciA9ICRjYWNoZV9wYXRoOwogICAgICAgIGlmKCAhc3RhcnRzd2l0aCgkZGlyLCcvJykgKSAkZGlyID0gJGNvbmZpZ1sncm9vdF9wYXRoJ10uJy8nLiRjYWNoZV9wYXRoOwogICAgICAgICRwMSA9IHJlYWxwYXRoKCRkaXIpOwogICAgICAgICRwMiA9IHJlYWxwYXRoKCRjb25maWdbJ3Jvb3RfcGF0aCddKTsKICAgICAgICBpZiggIXN0YXJ0c3dpdGgoJHAxLCRwMikgfHwgJHAxID09ICRwMiApIHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2NhY2hlcGF0aF9pbnZhbGlkJykpOwogICAgICAgIGNnZV9kaXI6OnJlY3Vyc2l2ZV9ybWRpcigkZGlyKTsKICAgICAgICBta2RpcigkZGlyKTsKICAgICAgICBAdG91Y2goJGRpci4nL2luZGV4Lmh0bWwnKTsKICAgICAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX2NhY2hlcmVtb3ZlZCcpKTsKICAgICAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdBbGwgY2FjaGVkIGZpbGVzIHJlbW92ZWQnKTsKICAgIH0KfQpjYXRjaCggRXhjZXB0aW9uICRlICkgewogICAgJHRoaXMtPlNldEVycm9yKCRlLT5nZXRNZXNzYWdlKCkpOwp9CgokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_responsive_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSByZXR1cm47CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdyZXNwb25zaXZlJyk7CgokdGhpcy0+U2V0UHJlZmVyZW5jZSgncmVzcG9uc2l2ZScsKGludCkkcGFyYW1zWydyZXNwb25zaXZlJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnYXNzdW1lX3Jlc3BvbnNpdmUnLChpbnQpJHBhcmFtc1snYXNzdW1lX3Jlc3BvbnNpdmUnXSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdyZXNwb25zaXZlX2JyZWFrcG9pbnRzJyx0cmltKCRwYXJhbXNbJ3Jlc3BvbnNpdmVfYnJlYWtwb2ludHMnXSkpOwoKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKIwojIEVPRgojCj8+]]></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[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSByZXR1cm47Cgokb3V0cCA9IGNnc2lfdXRpbHM6OnByb2Nlc3NfaW1hZ2UoJHBhcmFtcyk7CiRzaWxlbnQgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc2lsZW50JywwKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ3NpbGVudCddKSApICRzaWxlbnQgPSAoaW50KSRwYXJhbXNbJ3NpbGVudCddOwoKaWYoIGlzc2V0KCRvdXRwWydlcnJvciddKSAmJiAkb3V0cFsnZXJyb3InXSAhPSAnJyApIHsKICBpZiggISRzaWxlbnQgKSB0cmlnZ2VyX2Vycm9yKCRvdXRwWydlcnJvciddKTsKICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCRvdXRwWydlcnJvciddKTsKICByZXR1cm47Cn0KCmlmKCBpc3NldCgkb3V0cFsnb3V0cHV0J10pICkgZWNobyAkb3V0cFsnb3V0cHV0J107CgojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSByZXR1cm47CgplY2hvICR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdhbGlhc2VzJywkdGhpcy0+TGFuZygnYWxpYXNlcycpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdyZXNwb25zaXZlJywkdGhpcy0+TGFuZygncmVzcG9uc2l2ZScpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdlbWJlZGRpbmcnLCR0aGlzLT5MYW5nKCdlbWJlZGRpbmcnKSk7CmlmKCBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR01lc3NhZ2VRdWV1ZScpICkgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdhdXRvcHJvY2Vzc2luZycsJHRoaXMtPkxhbmcoJ2F1dG9wcm9jZXNzaW5nJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2dlbmVyYWwnLCR0aGlzLT5MYW5nKCdnZW5lcmFsJykpOwplY2hvICR0aGlzLT5FbmRUYWJIZWFkZXJzKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdhbGlhc2VzJywkcGFyYW1zKTsKaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fYWxpYXNlc190YWIucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3Jlc3BvbnNpdmUnLCRwYXJhbXMpOwppbmNsdWRlKF9fRElSX18uJy9mdW5jdGlvbi5hZG1pbl9yZXNwb25zaXZlX3RhYi5waHAnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYignZW1iZWRkaW5nJywkcGFyYW1zKTsKaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fZW1iZWRkaW5nX3RhYi5waHAnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgppZiggXGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dNZXNzYWdlUXVldWUnKSApIHsKICAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2F1dG9wcm9jZXNzaW5nJywkcGFyYW1zKTsKICAgaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fYXV0b3Byb2Nlc3NpbmdfdGFiLnBocCcpOwogICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKfQoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2dlbmVyYWwnLCRwYXJhbXMpOwppbmNsdWRlKF9fRElSX18uJy9mdW5jdGlvbi5hZG1pbl9nZW5lcmFsX3RhYi5waHAnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5FbmRUYWJDb250ZW50KCk7CiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.responsive.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIHJldHVybjsKCmlmKCAhJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Jlc3BvbnNpdmUnKSApIHJldHVybjsKJGNuID0gY2dzaV91dGlsczo6Z2V0X3Jlc3BvbnNpdmVfY29va2llbmFtZSgpOwppZiggIWlzc2V0KCRfQ09PS0lFWyRjbl0pICkgewogICAgJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgncmVzcG9uc2l2ZS50cGwnKTsKICAgICR0cGwtPmFzc2lnbignY29va2llbmFtZScsJGNuKTsKICAgICR0cGwtPmRpc3BsYXkoKTsKfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/CGSmartImage.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgQ0dTbWFydEltYWdlIGV4dGVuZHMgQ0dFeHRlbnNpb25zCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgICB7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgpOwoKICAgICAgICAkc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7CiAgICAgICAgaWYoICEkc21hcnR5ICkgcmV0dXJuOwogICAgICAgICR0aGlzLT5SZWdpc3Rlck1vZHVsZVBsdWdpbigpOyAvLyB0aGlzIGlzIGhlcmUgc28gdGhlIG1vZHVsZSBjYW4gYmUgdXNlZCBmcm9tIHRoZSBhZG1pbi4KICAgIH0KCiAgICBmdW5jdGlvbiBMYXp5TG9hZEFkbWluKCkgeyByZXR1cm4gRkFMU0U7IH0KICAgIGZ1bmN0aW9uIExhenlMb2FkRnJvbnRlbmQoKSB7IHJldHVybiBGQUxTRTsgfQogICAgZnVuY3Rpb24gR2V0TmFtZSgpIHsgcmV0dXJuIGdldF9jbGFzcygkdGhpcyk7IH0KICAgIGZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsgIH0KICAgIGZ1bmN0aW9uIEdldFZlcnNpb24oKSB7IHJldHVybiAnMS4yMS4zJzsgfQogICAgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKSB7IHJldHVybiAnMS4xMi4xJzsgfQogICAgZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkgeyByZXR1cm4gYXJyYXkoJ0NHRXh0ZW5zaW9ucyc9PicxLjUzLjEnKTsgICB9CiAgICBmdW5jdGlvbiBHZXRBdXRob3IoKSB7IHJldHVybiAnY2FsZ3V5MTAwMCc7IH0KICAgIGZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkgeyByZXR1cm4gJ2NhbGd1eTEwMDBAZ21haWwuY29tJzsgfQogICAgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKSB7IHJldHVybiBUUlVFOyB9CiAgICBmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKSB7IHJldHVybiAnZXh0ZW5zaW9ucyc7IH0KICAgIGZ1bmN0aW9uIEhhbmRsZXNFdmVudHMgKCkgeyByZXR1cm4gRkFMU0U7IH0KICAgIGZ1bmN0aW9uIEhhc0FkbWluKCkgeyByZXR1cm4gVFJVRTsgfQogICAgZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkgeyByZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKTsgfQogICAgZnVuY3Rpb24gQWxsb3dBdXRvSW5zdGFsbCgpIHsgcmV0dXJuIEZBTFNFOyB9CiAgICBmdW5jdGlvbiBBbGxvd0F1dG9VcGdyYWRlKCkgeyByZXR1cm4gRkFMU0U7IH0KICAgIGZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24oKSB7IHJldHVybiAkdGhpcy0+TGFuZygnbW9kZGVzY3JpcHRpb24nKTsgfQogICAgZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkgeyByZXR1cm4gQGZpbGVfZ2V0X2NvbnRlbnRzKF9fRElSX18uJy9jaGFuZ2Vsb2cuaW5jJyk7IH0KICAgIGZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpOyB9CiAgICBmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0dW5pbnN0YWxsJyk7IH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gSW5pdGlhbGl6ZUZyb250ZW5kKCkKICAgIHsKICAgICAgICBwYXJlbnQ6OlNldFBhcmFtZXRlcnMoKTsKICAgICAgICAkdGhpcy0+UmVzdHJpY3RVbmtub3duUGFyYW1zKCk7CgogICAgICAgIC8vIG9wZXJhdGlvbmFsIHBhcmFtcyAod2hhdCB0byBkbywgd2l0aCB3aGF0Li4uKQoKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9hdXRvc2NhbGUnLENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ25vYmNhY2hlJyxDTEVBTl9JTlQpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdub2VtYmVkJyxDTEVBTl9JTlQpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdub2F1dG8nLENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ25vcm90YXRlJyxDTEVBTl9JTlQpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdub3RhZycsQ0xFQU5fSU5UKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9yZXNwb25zaXZlJyxDTEVBTl9JTlQpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdub3JlbW90ZScsQ0xFQU5fSU5UKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc3JjJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdvdmVyd3JpdGUnLENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2ZvcmNlX2V4dCcsQ0xFQU5fSU5UKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZm9yY2VfdHlwZScsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncHJvZ3Jlc3NpdmUnLENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2F1dG9zY2FsZV9vcCcsQ0xFQU5fU1RSSU5HKTsKCiAgICAgICAgLy8gcGFyYW1zIGZvciB0aGUgb3V0cHV0IHRhZyAoaWYgb3V0cHV0dGluZyBhbiBpbWcgdGFnKQogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpZCcsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnY2xhc3MnLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3N0eWxlJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCd0aXRsZScsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnYWx0JyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCduYW1lJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdoZWlnaHQnLENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3dpZHRoJyxDTEVBTl9JTlQpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdtYXhfaGVpZ2h0JyxDTEVBTl9JTlQpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdtYXhfd2lkdGgnLENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3F1YWxpdHknLENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3JlbCcsQ0xFQU5fU1RSSU5HKTsKCiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoQ0xFQU5fUkVHRVhQLicvc3JjXGQqLycsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZShDTEVBTl9SRUdFWFAuJy9hbGlhc1xkKi8nLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoQ0xFQU5fUkVHRVhQLicvZmlsdGVyX1x3Ki8nLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NpbGVudCcsQ0xFQU5fSU5UKTsKCiAgICAgICAgLy8gbW9yZSBzbWFydHkgcGx1Z2lucwogICAgICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsKICAgICAgICAkc21hcnR5LT5yZWdpc3Rlcl9ibG9jaygnY2dzaV9jb252ZXJ0JyxhcnJheSgnY2dzaV91dGlscycsJ2Nnc2lfY29udmVydCcpKTsKICAgICAgICAkc21hcnR5LT5yZWdpc3Rlcl9ibG9jaygnY2dzaV9nZXRpbWFnZXMnLGFycmF5KCdjZ3NpX2V4dGVuZGVkJywnY2dzaV9nZXRpbWFnZXMnKSk7CiAgICB9CgogICAgZnVuY3Rpb24gSW5pdGlhbGl6ZUFkbWluKCkKICAgIHsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdhY3Rpb24nLCdkZWZhdWx0JywkdGhpcy0+TGFuZygncGFyYW1fYWN0aW9uJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3NpbGVudCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX3NpbGVudCcpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdhbGlhcycsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2FsaWFzJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ25vYXV0b3NjYWxlJywnJywkdGhpcy0+TGFuZygncGFyYW1fbm9hdXRvc2NhbGUnKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbm9iY2FjaGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9ub2JjYWNoZScpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdub2VtYmVkJywnJywkdGhpcy0+TGFuZygncGFyYW1fbm9lbWJlZCcpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdub2F1dG8nLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9ub2F1dG8nKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbm9yb3RhdGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9ub3JvdGF0ZScpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdub3RhZycsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX25vdGFnJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ25vcmVzcG9uc2l2ZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX25vcmVzcG9uc2l2ZScpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdub2RwcmFkanVzdCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX25vZHByYWRqdXN0JykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ25vYnJlYWtwb2ludHMnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9ub2JyZWFrcG9pbnRzJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ25vcmVtb3RlJywnJywkdGhpcy0+TGFuZygncGFyYW1fbm9yZW1vdGUnKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZm9yY2VfdHlwZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZvcmNldHlwZScpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmb3JjZV9leHQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9mb3JjZWV4dCcpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzcmMnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9zcmMnKSxmYWxzZSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignb3ZlcndyaXRlJywnJywkdGhpcy0+TGFuZygncGFyYW1fb3ZlcndyaXRlJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2lkJywnJywkdGhpcy0+TGFuZygncGFyYW1faWQnKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignY2xhc3MnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9jbGFzcycpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzdHlsZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX3N0eWxlJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3RpdGxlJywnJywkdGhpcy0+TGFuZygncGFyYW1fdGl0bGUnKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignYWx0JywnJywkdGhpcy0+TGFuZygncGFyYW1fYWx0JykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ25hbWUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9uYW1lJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2hlaWdodCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2hlaWdodCcpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCd3aWR0aCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX3dpZHRoJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3F1YWxpdHknLCc3NScsJHRoaXMtPkxhbmcoJ3BhcmFtX3F1YWxpdHknKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigncmVsJywnNzUnLCR0aGlzLT5MYW5nKCdwYXJhbV9yZWwnKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbWF4X3dpZHRoJywnJywkdGhpcy0+TGFuZygncGFyYW1fbWF4X3dpZHRoJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ21heF9oZWlnaHQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9tYXhfaGVpZ2h0JykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3Byb2dyZXNzaXZlJywnJywkdGhpcy0+TGFuZygncGFyYW1fcHJvZ3Jlc3NpdmUnKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignYXV0b3NjYWxlX29wJywnY3JvcHRvZml0JywkdGhpcy0+TGFuZygncGFyYW1fYXV0b3NjYWxlX29wJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZpbHRlcl9ibHVyJywnJywkdGhpcy0+TGFuZygncGFyYW1fZmlsdGVyX2JsdXInKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmlsdGVyX2JyaWdodG5lc3MnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWx0ZXJfYnJpZ2h0bmVzcycpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfY29sb3JpemUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWx0ZXJfY29sb3JpemUnKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmlsdGVyX2NvbnRyYXN0JywnJywkdGhpcy0+TGFuZygncGFyYW1fZmlsdGVyX2NvbnRyYXN0JykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZpbHRlcl9jcm9wJywnJywkdGhpcy0+TGFuZygncGFyYW1fZmlsdGVyX2Nyb3AnKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmlsdGVyX2Nyb3Ayc2l6ZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZpbHRlcl9jcm9wMnNpemUnKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmlsdGVyX2Nyb3B0b2ZpdCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZpbHRlcl9jcm9wdG9maXQnKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmlsdGVyX2VkZ2VkZXRlY3QnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWx0ZXJfZWRnZWRldGVjdCcpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfZW1ib3NzJywnJywkdGhpcy0+TGFuZygncGFyYW1fZmlsdGVyX2VtYm9zcycpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfZmxpcCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZpbHRlcl9mbGlwJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZpbHRlcl9ncmF5c2NhbGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWx0ZXJfZ3JheXNjYWxlJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZpbHRlcl9tZWFucmVtb3ZhbCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZpbHRlcl9tZWFucmVtb3ZhbCcpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfbmVnYXRlJywnJywkdGhpcy0+TGFuZygncGFyYW1fZmlsdGVyX25lZ2F0ZScpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfbm9vcCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZpbHRlcl9ub29wJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZpbHRlcl9waXhlbGF0ZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZpbHRlcl9waXhlbGF0ZScpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfcmVmbGVjdCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZpbHRlcl9yZWZsZWN0JykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZpbHRlcl9yZXNpemUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWx0ZXJfcmVzaXplJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZpbHRlcl9yZXNpemV0b2ZpdCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZpbHRlcl9yZXNpemV0b2ZpdCcpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfcm90YXRlJywnJywkdGhpcy0+TGFuZygncGFyYW1fZmlsdGVyX3JvdGF0ZScpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfcm91bmRlZGNvcm5lcnMnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWx0ZXJfcm91bmRlZGNvcm5lcnMnKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmlsdGVyX3NoYXJwZW4nLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWx0ZXJfc2hhcnBlbicpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfdHJhbnNwYXJlbnQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWx0ZXJfdHJhbnNwYXJlbnQnKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmlsdGVyX3VudHJhbnNwYXJlbnQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWx0ZXJfdW50cmFuc3BhcmVudCcpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWx0ZXJfd2F0ZXJtYXJrJywnJywkdGhpcy0+TGFuZygncGFyYW1fZmlsdGVyX3dhdGVybWFyaycpKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gY2FuX3NtYXJ0X2VtYmVkKCRzcmMpCiAgICB7CiAgICAgICAgZ2xvYmFsICRDTVNfQURNSU5fUEFHRTsKICAgICAgICBnbG9iYWwgJENNU19TVFlMRVNIRUVUOwoKICAgICAgICAkaW1hZ3NpemUgPSBmaWxlc2l6ZSgkc3JjKTsKCiAgICAgICAgJGJyb3dzZXIgPSBjZ2VfdXRpbHM6OmdldF9icm93c2VyKCk7CiAgICAgICAgc3dpdGNoKCAkYnJvd3Nlci0+Z2V0QnJvd3NlcigpICkgewogICAgICAgIGNhc2UgQnJvd3Nlcjo6QlJPV1NFUl9JRToKICAgICAgICAgICAgJHZlciA9ICRicm93c2VyLT5nZXRWZXJzaW9uKCk7CiAgICAgICAgICAgIGlmKCAkdmVyIDw9IDcgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgICAgIGlmKCAkQ01TX1NUWUxFU0hFRVQgJiYgJHZlciA8IDggKSByZXR1cm4gRkFMU0U7CiAgICAgICAgICAgIGlmKCAkdmVyID09IDggJiYgJGltYWdzaXplID49IDMyKjEwMjQgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgICAgIHJldHVybiBUUlVFOwoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICByZXR1cm4gVFJVRTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGNhbl9lbWJlZCgkc3JjKQogICAgewogICAgICAgIGlmKCAhaXNfcmVhZGFibGUoJHNyYykgKSByZXR1cm4gRkFMU0U7CgogICAgICAgICRlX21vZGUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZW1iZWRfbW9kZScpOwogICAgICAgICRlX3NpemVsaW1pdCA9IChpbnQpJHRoaXMtPkdldFByZWZlcmVuY2UoJ2VtYmVkX3NpemVsaW1pdCcpOwogICAgICAgICRlX3R5cGVzID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2VtYmVkX3R5cGVzJyk7CgogICAgICAgIHN3aXRjaCggJGVfbW9kZSApIHsKICAgICAgICBjYXNlICdzbWFydCc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+Y2FuX3NtYXJ0X2VtYmVkKCRzcmMpOwoKICAgICAgICBjYXNlICdzbWFydF9saW1pdGVkJzoKICAgICAgICAgICAgaWYoICRlX3NpemVsaW1pdCA8PSAwIHx8ICRlX3NpemVsaW1pdCA+IDEwMDAwICkgcmV0dXJuIEZBTFNFOwogICAgICAgICAgICAkZV9zaXplbGltaXQgKj0gMTAyNDsKICAgICAgICAgICAgJHRtcCA9IGZpbGVzaXplKCRzcmMpOwogICAgICAgICAgICBpZiggJHRtcCA+ICRlX3NpemVsaW1pdCApIHJldHVybiBGQUxTRTsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5jYW5fc21hcnRfZW1iZWQoJHNyYyk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdzaXplbGltaXQnOgogICAgICAgICAgICAvLyBjaGVjayB0aGUgbGltaXQuCiAgICAgICAgICAgIGlmKCAkZV9zaXplbGltaXQgPD0gMCB8fCAkZV9zaXplbGltaXQgPiAxMDAwMCApIHJldHVybiBGQUxTRTsKICAgICAgICAgICAgJGVfc2l6ZWxpbWl0ICo9IDEwMjQ7CiAgICAgICAgICAgIC8vIGdldCB0aGUgZmlsZXNpemUKICAgICAgICAgICAgJHRtcCA9IGZpbGVzaXplKCRzcmMpOwogICAgICAgICAgICBpZiggJHRtcCA+ICRlX3NpemVsaW1pdCApIHJldHVybiBGQUxTRTsKICAgICAgICAgICAgcmV0dXJuIFRSVUU7CgogICAgICAgIGNhc2UgJ3R5cGUnOgogICAgICAgICAgICBpZiggISRlX3R5cGVzICkgcmV0dXJuIEZBTFNFOwogICAgICAgICAgICAkdHlwZXMgPSBleHBsb2RlKCcsJywkZV90eXBlcyk7CiAgICAgICAgICAgICRleHQgPSBzdHJyY2hyKCRmaWxlWyduYW1lJ10sJy4nKTsKICAgICAgICAgICAgaWYoICEkZXh0ICkgcmV0dXJuIEZBTFNFOwogICAgICAgICAgICBmb3JlYWNoKCAkdHlwZXMgYXMgJHR5cGUgKSB7CiAgICAgICAgICAgICAgICBpZiggJy4nLnN0cnRvbG93ZXIoJHR5cGUpID09IHN0cnRvbG93ZXIoJGV4dGVuc2lvbikgKSByZXR1cm4gVFJVRTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gRkFMU0U7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdub25lJzoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICByZXR1cm4gRkFMU0U7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY2FjaGVfcGF0aCgpCiAgICB7CiAgICAgICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgICAgICRjYWNoZV9wYXRoID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NhY2hlX3BhdGgnKTsKICAgICAgICBpZiggISRjYWNoZV9wYXRoICkgewogICAgICAgICAgICAkY2FjaGVfcGF0aCA9IGNtc19qb2luX3BhdGgoJ3VwbG9hZHMnLCdfJy4kdGhpcy0+R2V0TmFtZSgpKTsKICAgICAgICB9CiAgICAgICAgJGNhY2hlX3BhdGggPSBjbXNfam9pbl9wYXRoKCRjb25maWdbJ3Jvb3RfcGF0aCddLCRjYWNoZV9wYXRoKTsKICAgICAgICByZXR1cm4gJGNhY2hlX3BhdGg7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGNsZWFyX2NhY2hlZF9maWxlcygpCiAgICB7CiAgICAgICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgICAgICRjYWNoZV9wYXRoID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NhY2hlX3BhdGgnLCBjbXNfam9pbl9wYXRoKCd1cGxvYWRzJywgJ18nLiR0aGlzLT5HZXROYW1lKCkpKTsKICAgICAgICAkdHAxID0gJGNhY2hlX3BhdGg7CiAgICAgICAgaWYoICFpc19kaXIoJHRwMSkgKSAkdHAxID0gJGNvbmZpZ1sncm9vdF9wYXRoJ10uJy8nLiR0cDE7CiAgICAgICAgJHAxID0gcmVhbHBhdGgoJHRwMSk7CiAgICAgICAgJHAyID0gcmVhbHBhdGgoJGNvbmZpZ1sncm9vdF9wYXRoJ10pOwogICAgICAgIGlmKCAkcDEgPT0gJHAyIHx8ICFzdGFydHN3aXRoKCRwMSwkcDIpICkgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfY2FjaGVwYXRoX2ludmFsaWQnKSk7CiAgICAgICAgJGRpciA9ICR0cDE7CgogICAgICAgICRhZ2VfZGF5cyA9IChpbnQpJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NhY2hlX2FnZScpOwogICAgICAgIGlmKCAkYWdlX2RheXMgPD0gMCApIHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRfYWdlJykpOwoKICAgICAgICAkdGhlZGF0ZSA9IHRpbWUoKSAtICRhZ2VfZGF5cyAqIDI0ICogNjAgKiA2MDsKICAgICAgICAkbl9yZW1vdmVkID0gMDsKICAgICAgICBpZiggJGRoID0gb3BlbmRpcigkZGlyKSApIHsKICAgICAgICAgICAgd2hpbGUoICgkZmlsZSA9IHJlYWRkaXIoJGRoKSkgIT09IGZhbHNlICkgewogICAgICAgICAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJGZpbGUsJy4nKSApIGNvbnRpbnVlOyAvLyBpZ25vcmUgaGlkZGVuIGZpbGVzLgogICAgICAgICAgICAgICAgJGZuID0gY21zX2pvaW5fcGF0aCgkZGlyLCRmaWxlKTsKICAgICAgICAgICAgICAgIGlmKCBmaWxlbXRpbWUoJGZuKSA8ICR0aGVkYXRlICYmIGlzX2ZpbGUoJGZuKSApIHsKICAgICAgICAgICAgICAgICAgICBAdW5saW5rKCRmbik7CiAgICAgICAgICAgICAgICAgICAgJG5fcmVtb3ZlZCsrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGNsb3NlZGlyKCRkaCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkbl9yZW1vdmVkOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBIYXNDYXBhYmlsaXR5KCRjYXBhYmlsaXR5LCAkcGFyYW1zID0gYXJyYXkoKSkKICAgIHsKICAgICAgICBpZiggJGNhcGFiaWxpdHkgPT0gJ3Rhc2tzJyApIHJldHVybiBUUlVFOwogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3Rhc2tzKCkKICAgIHsKICAgICAgICAkb3V0ID0gYXJyYXkoKTsKICAgICAgICAkb3V0W10gPSBuZXcgQ0dTbWFydEltYWdlX0NsZWFyQ2FjaGVUYXNrKCk7CiAgICAgICAgaWYoIFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHTWVzc2FnZVF1ZXVlJykgKSAkb3V0W10gPSBuZXcgXENHU21hcnRJbWFnZVxBdXRvUHJvY2Vzc01hc3RlclRhc2soKTsKICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NhY2hlZF9pbWFnZV91cmwoJGZpbGVuYW1lKQogICAgewogICAgICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAgICAgICAkcHJlZml4ID0gdHJpbSgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VfdXJsX3ByZWZpeCcpKTsKICAgICAgICBpZiggISRwcmVmaXggKSAkcHJlZml4ID0gJGNvbmZpZ1sncm9vdF91cmwnXTsKICAgICAgICAkaGFzY2FjaGVkaXIgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VfdXJsX2hhc2NhY2hlZGlyJyk7CgogICAgICAgICR1cmwgPSAkcHJlZml4OwogICAgICAgIGlmKCAhZW5kc3dpdGgoJHVybCwnLycpICkgJHVybCAuPSAnLyc7CiAgICAgICAgaWYoICEkaGFzY2FjaGVkaXIgKSB7CiAgICAgICAgICAgICRjYWNoZV91cmwgPSB0cmltKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjYWNoZV9wYXRoJykpOwogICAgICAgICAgICBpZiggISRjYWNoZV91cmwgKSAkY2FjaGVfdXJsID0gJ3VwbG9hZHMvXycuJHRoaXMtPkdldE5hbWUoKTsKICAgICAgICAgICAgJGNhY2hlX3VybCA9IHN0cl9yZXBsYWNlKERJUkVDVE9SWV9TRVBBUkFUT1IsICcvJywgJGNhY2hlX3VybCk7IC8vIDwtIEVuc3VyZSBjb3JyZWN0IHNsYXNoZXMgZm9yIFVSTAogICAgICAgICAgICAkdXJsIC49ICRjYWNoZV91cmw7CiAgICAgICAgfQogICAgICAgIGlmKCAhZW5kc3dpdGgoJHVybCwnLycpICkgJHVybCAuPSAnLyc7CiAgICAgICAgJHVybCAuPSAkZmlsZW5hbWU7CiAgICAgICAgcmV0dXJuICR1cmw7CiAgICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwoKPz4K]]></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+CiA8L2xpPgogPGxpPlZlcnNpb24gMS4xNi4xIC0gQXByaWwgMjAxNAogICA8dWw+Cgk8bGk+Rml4ZXMgaXNzdWUgd2l0aCBjYWNoaW5nIGFuZCBEZXZpY2VBdGxhcyByZXF1ZXN0cy48L2xpPgoJPGxpPk5vdyBjYWNoZSBkZXZpY2VBdGxhcyByZXF1ZXN0cyBmb3IgMTQgZGF5cyBpbnN0ZWFkIG9mIDc8L2xpPgoJPGxpPm1vcmUgYXVkaXRpbmc8L2xpPgoJPGxpPkZpeGVzIG1pbm9yIHByb2JsZW0gd2l0aCBmaWx0ZXJfcmVzaXplIGFuZCBmaWx0ZXJfd2F0ZXJtYXJrLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPlZlcnNpb24gMS4xNyAtIEF1Z3VzdCAyMDE0CiAgIDx1bD4KICAgICAgICA8bGk+T3B0aW1pemF0aW9ucyBpbiB0aGUgZXZlbnQgdGhhdCBjb25uZWN0aW9ucyB0byB0aGUgcmVtb3RlIHNlcnZlciBmb3IgZGV2aWNlIGNoYXJhY3RlcmlzdGljcyBmYWlsLjwvbGk+Cgk8bGk+QWRkcyB0aGUgb3B0aW9uIHRvIHNhdmUgSlBFRydzIGFzIHByb2dyZXNzaXZlLjwvbGk+Cgk8bGk+VHVybiBvZmYgcmVzcG9uc2l2ZSBpbWFnZXMgYnkgZGVmYXVsdCAoc2luY2UgRGV2aWNlQXRsYXMgc2VlbXMgdG8gaGF2ZSBzaHV0IGRvd24gdGhlaXIgc2VydmljZSk8L2xpPgoJPGxpPk1pbm9yIGltcHJvdmVtZW50cyB0byB0aGUgc2hhcnBlbiBmaWx0ZXIuPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+VmVyc2lvbiAxLjE3LjEgLSBOb3ZlbWJlciAyMDE0CiAgIDx1bD4KICAgICA8bGk+TWlub3IgYnVnZml4ZXMuPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+VmVyc2lvbiAxLjE3LjIgLSBKYW51YXJ5IDIwMTUKICAgPHVsPgogICAgIDxsaT5XYXRlcm1hcmtpbmcgY2xhc3Mgbm93IHVzZXMgQ0dFeHRlbnNpb25zIHdhdGVybWFyayBjbGFzcy48L2xpPgogICAgIDxsaT5NaW5vciBidWdmaXhlcy48L2xpPgogICA8L3VsPgoJPC9saT4KICA8bGk+VmVyc2lvbiAxLjE4IC0gQXByaWwgMjAxNQoJPHVsPgogICAgICAgIDxsaT5CdWcgZml4ZXMgd3J0IHtjZ3NpX2NvbnZlcnR9IChhY3R1YWxseSBtb3N0bHkgZG9uZSBpbiBDR0V4dGVuc2lvbnMpLjwvbGk+Cgk8bGk+QnVnIGZpeGVzIHdydCBzbWFydCwgc2l6ZSBsaW1pdGVkIGVtYmVkZGluZy48L2xpPgoJPGxpPkJ1ZyBmaXhlcyB3cnQgY2FjaGUgcHJlZml4ZXMuPC9saT4KCTxsaT5BZGRzIG5vb3AgZmlsdGVyLjwvbGk+Cgk8L3VsPgogIDwvbGk+CiAgPGxpPlZlcnNpb24gMS4xOQoJPHVsPgoJPGxpPlJlcGxhY2UgcmVzcG9uc2l2ZSBpbWFnZSBmdW5jdGlvbmFsaXR5IHdpdGggbmV3IGZ1bmN0aW9uYWxpdHkuICAgdGhlIHtDR1NtYXJ0SW1hZ2UgYWN0aW9uPXJlc3BvbnNpdmV9IG5vdyBvdXRwdXRzIGZ1bmN0aW9uYWxpdHkgdG8gc2VuZCBkZXZpY2UgY2hhcmFjdGVyaXN0aWNzIHRvIHRoZSBzZXJ2ZXIgYWxhIHRoZSBtdXN0YXJkLWN1dCB0ZWNobmlxdWUgKGlmIGNvb2tpZSBkb2VzIG5vdCBleGlzdCwgc2V0IGNvb2tpZSBhbmQgcmVsb2FkKS48L2xpPgoJPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuMjAKCTx1bD4KCTxsaT48c3Ryb25nPkltcG9ydGFudDwvc3Ryb25nPiByYXRpb25hbGl6ZSB0aGUgYXV0b3NjYWxpbmcgZnVuY3Rpb25hbGl0eS4gICBJZiBhdXRvc2NhbGluZyBpcyBlbmFibGVkICh0aGUgZGVmYXVsdCkgb3IgZGV2aWNlIGNhcGFiaWx0aWVzIGFyZSBkZXRlY3RlZCwgbm93IGVuc3VyZSB0aGF0IHRoZSBpbWFnZSB3aWxsIGFsd2F5cyBiZSBhZGp1c3RlZCB0byBmaXQgdGhlIHNtYWxsZXN0IHJlc29sdXRpb24gc3BlY2lmaWVkLCBhbmQgYWx3YXlzIG1haW50YWluIGFzcGVjdCByYXRpby48L2xpPgoJPGxpPkNsZWFuIHVwIHJhdGlvbmFsaXphdGlvbiBvZiB3aWR0aC9oZWlnaHQsIG1heF93aWR0aC9tYXhfaGVpZ2h0IHN0dWZmLjwvbGk+Cgk8bGk+QWRkIHRoZSBhc3N1bWUgcmVzcG9uc2l2ZSBwcmVmZXJlbmNlIHRvIG9wdGltaXplIHBlcmZvcm1hbmNlIG9uIG1vYmlsZS1maXJzdCBzaXRlcy48L2xpPgoJPGxpPkFkZCB0aGUgYXV0b3NjYWxlX29wIHByZWZlcmVuY2UgdG8gaW5kaWNhdGUgd2hhdCBmaWx0ZXIgdG8gY2FsbCB3aGVuIGRvaW5nIGF1dG8gc2NhbGluZzwvbGk+Cgk8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBvdXRwdXQgaW1hZ2VzIHNwZWNpZmljYWxseSBmb3IgZGV2aWNlcyB3aXRoIGEgaGlnaGVyIGRwciAoZGV2aWNlIHBpeGVsIHJhdGlvKS48L2xpPgoJPGxJPkFkZHMgdGhlIG5vZHByYWRqdXN0IHBhcmFtZXRlciB0byBkaXNhYmxlIGFkanVzdGluZyBvdXRwdXQgZm9yIGRldmljZXMgd2l0aCBhIGhpZ2hlciBkZXZpY2UgcGl4ZWwgcmF0aW8uPC9saT4KCTxsaT5BZGp1c3QgdGhlIHdhdGVybWFyayBmaWx0ZXIgc28gdGhhdCB0ZXh0IGNhbiBvcHRpb25hbGx5IGJlIHByb3ZpZGVkLiAgaS5lOiAgZmlsdGVyX3dhdGVybWFyaz0ic29tZSB0ZXh0Ii4gIFJlYWQgdGhlIGhlbHAgZm9yIHRoaXMgcGFyYW1ldGVyIGZvciBmdXJ0aGVyIGluZm8uPC9saT4KCTwvdWw+CiAgPC9saT4KICA8bGk+VmVyc2lvbiAxLjIwLjUKICAgIDx1bD4KICAgICAgPGxpPkZpeGVzIHRvIHJlc3BvbnNpdmUgYnJlYWtwb2ludHMuPC9saT4KICAgICAgPGxpPkZpeGVzIGZvciByZXNpemUgZmlsdGVyLjwvbGk+CiAgICAgIDxsaT5GaXhlcyBmb3IgcmVsYXRpdmUgcGF0aCBpc3N1ZXMuPC9saT4KICAgICAgPGxpPkltcHJvdmVtZW50cyB0byB0aGUgdGVtcGxhdGUgZm9yIHRoZSByZXNwb25zaXZlIGFjdGlvbi48L2xpPiAgICAgIAogICAgPC91bD4KICA8L2xpPgogIDxsaT5WZXJzaW9uIDEuMjEKICAgIDx1bD4KICAgICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gYXV0by1yZXNpemUsIHdhdGVybWFyayBhbmQgcm90YXRlIGltYWdlcyBpbiB0aGUgYmFja2dyb3VuZC4gIFJlcXVpcmVzIENNU01TIDIuMSBhbmQgdGhlIENHTWVzc2FnZVF1ZXVlIG1vZHVsZS48L2xpPgogICAgICA8bGk+TWlub3IgaW1wcm92ZW1lbnRzIHRvIGNnc2lfdXRpbHM8L2xpPgogICAgPC91bD4KICA8L2xpPgo8bGk+VmVyc2lvbiAxLjIxLjIKICAgPHVsPgogICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgIDwvdWw+Cgo8L3VsPgo=]]></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_autoprocessing_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxNiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSByZXR1cm47CgokcHJlZnMgPSBcQ0dTbWFydEltYWdlXGF1dG9wcm9jZXNzX29wdGlvbnM6OmxvYWQoKTsKCiR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX2F1dG9wcm9jZXNzaW5nX3RhYi50cGwnKTsKJHRwbC0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX2F1dG9wcm9jZXNzaW5nX3RhYicpKTsKJHRwbC0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHRwbC0+YXNzaWduKCdwcmVmcycsJHByZWZzKTsKJHRwbC0+ZGlzcGxheSgpOw==]]></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[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSByZXR1cm47CgoKJHRtcCA9IGFycmF5KCk7CiR0bXBbJ3RsJ10gPSAkdGhpcy0+TGFuZygncHJvbXB0X2xvY190b3BsZWZ0Jyk7CiR0bXBbJ3RjJ10gPSAkdGhpcy0+TGFuZygncHJvbXB0X2xvY190b3BjZW50ZXInKTsKJHRtcFsndHInXSA9ICR0aGlzLT5MYW5nKCdwcm9tcHRfbG9jX3RvcHJpZ2h0Jyk7CiR0bXBbJ2NsJ10gPSAkdGhpcy0+TGFuZygncHJvbXB0X2xvY19jZW50ZXJsZWZ0Jyk7CiR0bXBbJ2MnXSA9ICR0aGlzLT5MYW5nKCdwcm9tcHRfbG9jX2NlbnRlcicpOwokdG1wWydjciddID0gJHRoaXMtPkxhbmcoJ3Byb21wdF9sb2NfY2VudGVycmlnaHQnKTsKJHRtcFsnYmwnXSA9ICR0aGlzLT5MYW5nKCdwcm9tcHRfbG9jX2JvdHRvbWxlZnQnKTsKJHRtcFsnYmMnXSA9ICR0aGlzLT5MYW5nKCdwcm9tcHRfbG9jX2JvdHRvbWNlbnRlcicpOwokdG1wWydiciddID0gJHRoaXMtPkxhbmcoJ3Byb21wdF9sb2NfYm90dG9tcmlnaHQnKTsKJHNtYXJ0eS0+YXNzaWduKCdjcm9wdG9maXRfbG9jcycsJHRtcCk7CiRzbWFydHktPmFzc2lnbignY2FjaGVfYWdlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY2FjaGVfYWdlJykpOwokc21hcnR5LT5hc3NpZ24oJ2NhY2hlX3BhdGgnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjYWNoZV9wYXRoJykpOwokc21hcnR5LT5hc3NpZ24oJ2ltYWdlX3VybF9wcmVmaXgnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbWFnZV91cmxfcHJlZml4JykpOwokc21hcnR5LT5hc3NpZ24oJ2Nyb3B0b2ZpdF9kZWZhdWx0X2xvYycsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Nyb3B0b2ZpdF9kZWZhdWx0X2xvYycsJ2MnKSk7CiRzbWFydHktPmFzc2lnbignaW1hZ2VfdXJsX2hhc2NhY2hlZGlyJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VfdXJsX2hhc2NhY2hlZGlyJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fZ2VuZXJhbF90YWInKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignc2lsZW50JywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc2lsZW50JywwKSk7CiRzbWFydHktPmFzc2lnbignY2hlY2ttZW1vcnknLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjaGVja21lbW9yeScsMSkpOwokc21hcnR5LT5hc3NpZ24oJ2ZvcmNlX2V4dGVuc2lvbicsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ZvcmNlX2V4dGVuc2lvbicsMCkpOwokc21hcnR5LT5hc3NpZ24oJ3Byb2dyZXNzaXZlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHJvZ3Jlc3NpdmUnLDApKTsKJHNtYXJ0eS0+YXNzaWduKCdhdXRvc2NhbGVfb3AnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhdXRvc2NhbGVfb3AnLCdjcm9wdG9maXQnKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX2dlbmVyYWxfdGFiLnRwbCcpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_responsive_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSByZXR1cm47Cgokc21hcnR5LT5hc3NpZ24oJ3Jlc3BvbnNpdmUnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZXNwb25zaXZlJywwKSk7CiRzbWFydHktPmFzc2lnbignYXNzdW1lX3Jlc3BvbnNpdmUnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhc3N1bWVfcmVzcG9uc2l2ZScsMCkpOwokc21hcnR5LT5hc3NpZ24oJ3Jlc3BvbnNpdmVfYnJlYWtwb2ludHMnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZXNwb25zaXZlX2JyZWFrcG9pbnRzJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fcmVzcG9uc2l2ZV90YWInKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fcmVzcG9uc2l2ZV90YWIudHBsJyk7CgojCiMgRU9GCiMKPz4=]]></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+CiAgICA8bGk+Tk9PUCA8ZW0+KG5vb3ApPC9lbT48L2xpPgogIDwvdWw+CjwvbGk+PGJyLz4KPGxpPjxzdHJvbmc+UmVzcG9uc2l2ZSBpbWFnZSBoYW5kbGluZywgd2l0aCBicmVha3BvaW50czwvc3Ryb25nPiAtIHJlc2l6ZSBpbWFnZXMgdG8gYmUgc3VpdGFibGUgZm9yIHNtYWxsZXIgZGV2aWNlcyBzdWNoIGFzIG1vYmlsZSBwaG9uZXMgb3IgdGFibGV0cy48L2xpPgo8bGk+U21hcnQgZGV0ZWN0aW9uIG9mIGltYWdlcy4gIFNwZWNpZnkgYWJzb2x1dGUgVVJMUywgYWJzb2x1dGUgcGF0aHMsIG9yIGZpbGVzIHJlbGF0aXZlIHRvIHlvdXIgcm9vdCBpbnN0YWxsYXRpb24uPC9saT4KPGxpPkF1dG9tYXRpYyBkb3dubG9hZGluZywgY2FjaGluZywgcHJvY2Vzc2luZywgYW5kIHJlLWNhY2hpbmcgb2YgaW1hZ2VzIGZyb20gcmVtb3RlIHdlYnNpdGVzLjwvbGk+CjxsaT5TbWFydCBhdXRvbWF0aWMgcmVzaXppbmcgKGF1dG9tYXRpY2FsbHkgcmVzaXplIHRvIGRlc2lyZWQgd2lkdGggYW5kIGhlaWdodCBiZWZvcmUgc2VydmluZyB0aGUgaW1hZ2UuLi4gPC9saT4KPGxpPkF1dG9tYXRpY2FsbHkgcmVhZHMgaW1hZ2UgRVhJRiBpbmZvcm1hdGlvbiBhbmQgY29ycmVjdHMgdGhlIG9yaWVudGF0aW9uLjwvbGk+CjxsaT5JbWFnZSBjaGFuZ2UgZGV0ZWN0aW9uLCBpZiB0aGUgbWFzdGVyIGltYWdlIGlzIGNoYW5nZWQgc2NhbGVkIGltYWdlcyB3aWxsIGJlIHJlZ2VuZXJhdGVkLiAoc2VlIHRoZSBub3RpbWVjaGVjayBwYXJhbWV0ZXIgdG8gZGlzYWJsZSB0aGlzIGJlaGF2aW9yKS48L2xpPgo8bGk+U21hcnQgYXR0cmlidXRlIGdlbmVyYXRpb24gZm9yIGltYWdlcy48L2xpPgo8bGk+UHJvY2Vzc2VkIGltYWdlcyBhcmUgY2FjaGVkIG9uIHRoZSBzZXJ2ZXIgZm9yIGZhc3RlciBzZXJ2aW5nLjwvbEk+CjxsaT5UaGUgYWJpbGl0eSB0byB1c2UgYSBzZXBhcmF0ZSBVUkwgKENETikgZm9yIHNlcnZpbmcgaW1hZ2VzPC9saT4KPGxpPkltYWdlIHByb2Nlc3NlcyBjYW4gYmUgY29tYmluZWQsIGFuZCBhcmUgZXhlY3V0ZWQgaW4gb3JkZXIuPC9saT4KPGxpPlByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIGVtYmVkIGltYWdlcyBkaXJlY3RseSBpbnRvIHRoZSBjb250ZW50IG9mIHRoZSB3ZWIgcGFnZSB0byBtaW5pbWl6ZSBzcGFjZS48L2xpPgo8bGk+UHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gbGltaXQgZW1iZWRkaW5nIGltYWdlcyBzbWFydGx5LCBvbmx5IHRvIGJyb3dzZXJzIHRoYXQgYXJlIGNhcGFibGUgb2YgdW5kZXJzdGFuZGluZyB0aGVtLjwvbGk+CjxsaT5Db21iaW5lIGNvbW1vbmx5IHVzZWQgYXJndW1lbnRzIGludG8gbmFtZWQgYWxpYXNlcy48L2xpPgo8bGk+QWxzbyB3b3JrcyB3aXRoaW4gc3R5bGVzaGVldHMgdmlhIHRoZSB7Y21zX3N0eWxlc2hlZXR9IHRhZy48L2xpPgo8bGk+VGhlIGFiaWxpdHkgdG8gYXV0b21hdGljYWxseSBwcm9jZXNzIGltYWdlcyBpbnNpZGUgYSBibG9jayBvZiBodG1sIGNvZGUgdXNpbmcgdGhlIHtjZ3NpX2NvbnZlcnR9IGJsb2NrIHRhZy48L2xpPgo8bGk+VGhlIGFiaWxpdHkgdG8gZXh0cmFjdCBpbWFnZXMgZnJvbSBhIGJsb2NrIG9mIGh0bWwgY29kZS48L2xpPgo8bGk+VGhlIGFiaWxpdHkgdG8gYXV0b21hdGljYWxseSByZXNpemUgdXBsb2FkZWQgaW1hZ2VzIHRvIGEgbWF4aW11bSBlZGdlIHNpemUuPC9saT4KPGxpPk1vcmUuLi48L2xpPgo8L3VsPgo8aDM+V2h5IHNob3VsZCBJIHVzZSBpdD88L2gzPgo8cD5UaGVyZSBhcmUgZm91ciB2ZXJ5IGltcG9ydGFudCByZWFzb25zIHRvIHVzZSB0aGlzIHBsdWdpbjo8L3A+Cjx1bD4KICA8bGk+UGVyZm9ybWFuY2U6ICBVc2luZyBpbWFnZSBlbWJlZGRpbmcgKGV2ZW4gaWYgbm8gb3RoZXIgZnVuY3Rpb25zIGFyZSB1c2VkKSByZXN1bHRzIGluIGZld2VyIHJlcXVlc3RzLiAgTW9zdCBicm93c2VycyBvbmx5IHBlcmZvcm0gdHdvIHRvIGZvdXIgc2ltdWx0YW5lb3VzIHJlcXVlc3RzIHRvIHRoZSBzYW1lIGRvbWFpbiBhdCB0aGUgc2FtZSB0aW1lLiAgRm9yIHdlYiBwYWdlcyB3aXRoIGxvdHMgb2YgaW1hZ2VzIHRoaXMgY2FuIHNlcmlvdXNseSBzbG93IGRvd24geW91ciBzaXRlLjwvbGk+CiAgPGxpPlBlcmZvcm1hbmNlOiAgRXZlbiBpZiBub3QgdXNpbmcgZW1iZWRkaW5nLCBzZW5kaW5nIGxhcmdlIGltYWdlcyB0byB5b3VyIHZpc2l0b3JzLCBhbmQgYXNraW5nIHRoZWlyIGJyb3dzZXIgdG8gc2NhbGUgdGhlIGltYWdlIGlzIHZlcnkgdmVyeSBzbG93LjwvbGk+CiAgPGxpPlNlY3VyaXR5OiAgQ0dTbWFydEltYWdlIGNhY2hlcyBpdHMgaW1hZ2VzIGluIGEgc2VwYXJhdGUgZGlyZWN0b3J5LCB0aGVyZWJ5IGhpZGluZyB0aGUgb3JpZ2luYWwgKHBlcmhhcHMgY29weXJpZ2h0ZWQpIGltYWdlcyBmcm9tIHlvdXIgdXNlcnMuICBJZiBlbWJlZGRpbmcgaXMgdXNlZCB0aGV5IGNhbnQgZXZlbiBmaW5kIHRoZSBjYWNoZWQgbG9jYXRpb24pPC9saT4KICA8bGk+U2ltcGxpY2l0eTogIFRoZSBmaWx0ZXJpbmcgY2FwYWJpbGl0aWVzIG9mIENHU21hcnRJbWFnZSBhbGxvdyB5b3UgdG8gYXV0b21hdGljYWxseSBwcm9jZXNzIGltYWdlcyBmb3IgY29uc2lzdGVudCBhbmQgc2VjdXJlIGRpc3BsYXksIHdpdGhvdXQgc2l0ZSBlZGl0b3JzIGhhdmluZyB0byBwbGF5IHdpdGggdGhlbS4gIFRoZXkgY2FuIHVwbG9hZCBsYXJnZXIgaW1hZ2VzLCBhbmQgeW91ciBzaXRlIHdpbGwganVzdCBoYW5kbGUgdGhlbSBwcm9wZXJseS48L2xpPgogIDxsaT5SZWR1Y2luZyBkaXNrIHNwYWNlOiBUaGUgYXV0b21hdGljIGltYWdlIHByb2Nlc3Npbmcgb3B0aW9uIGFsbG93cyByZXNpemluZyBpbWFnZXMgdG8gYSBtYXhpbXVtIHNpemUsIGFuZCBkZWxldGluZyB0aGUgb3JpZ2luYWwsIHRoaXMgc2F2ZXMgZGlzayBzcGFjZSB3aGVuIHVzZXJzIGFyZSB1cGxvYWRpbmcgdG9ubmVzIG9mIGltYWdlcy48L2xpPgo8L3VsPgoKPGgzPkltYWdlIEVtYmVkZGluZzwvaDM+CiAgPHA+SW1hZ2UgZW1iZWRkaW5nIGVuY29kZXMgdGhlIGltYWdlIGludG8gYSBkYXRhIFVSSSB3aGljaCBpcyBlbWJlZGRlZCBkaXJlY3RseSBpbiB0aGUgcGFnZSAob3Igc3R5bGVzaGVldCkgY29udGVudC4gIFRoaXMgcmVkdWNlcyByZXF1ZXN0cyB0aGF0IHRoZSBicm93c2VyIG11c3QgbWFrZSB0byByZWNlaXZlIGltYWdlcyBmcm9tIHlvdXIgc2l0ZS4gIEhvd2V2ZXIgaXQgZG9lcyBpbmNyZWFzZSB0aGUgc2l6ZSBvZiB0aGUgSFRNTCBwYWdlLiAgT24gaW1hZ2UgaGVhdnkgcGFnZXMgeW91IHNob3VsZGQgbWl4IHRoZSB1c2Ugb2YgZW1iZWRkZWQgaW1hZ2VzLjwvcD4KPGgzPkhvdyBkbyBJIHVzZSBpdD88L2gzPgo8cD5UaGUgc2ltcGxlc3Qgd2F5IHRvIHVzZSB0aGlzIG1vZHVsZSBpcyB0byB1c2UgaXQgaW4gdGhlIHNhbWUgcGxhY2UgeW91IHdvdWxkIHRoZSB7aW1hZ2V9IHRhZy4gIEkuZTogU29tZXRoaW5nIGxpa2UgPGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e0NHU21hcnRJbWFnZSBzcmM9J3VwbG9hZHMvaW1hZ2VzL3BpY3R1cmUuanBnJ308L2NvZGU+LiAgVGhpcyB3aWxsIGdlbmVyYXRlIHRoZSBpbWFnZSB0YWcgZm9yIHlvdSB3aXRoIG5vIHByb2Nlc3NpbmcuICBBbmQgaWYgcG9zc2libGUsIGVtYmVkIHRoZSBpbWFnZSBkaXJlY3RseSBpbnRvIHlvdXIgaHRtbCBvdXRwdXQuPC9wPgo8cD5PZnRlbiBwZW9wbGUgd2FudCB0byBkaXNwbGF5IGEgd2F0ZXJtYXJrIG9uIHRoZSBpbWFnZXMgdGhhdCB0aGV5IGRpc3BsYXkgb24gdGhlIGZyb250ZW5kIHRvIHByZXZlbnQgaW1hZ2UgdGhlZnQuICBUaGUgQ0dFeHRlbnNpb25zIG1vZHVsZSBwcm92aWRlcyBzZXR0aW5ncyBmb3IgeW91IHRvIGNvbmZpZ3VyZSB3YXRlcm1hcmtpbmcgYW5kIHlvdSBjYW4gZW5hYmxlIHRoYXQgd2l0aCBhbnkgaW1hZ2Ugd2l0aCBhIHRhZyBsaWtlIHRoaXM6IDxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntDR1NtYXJ0SW1hZ2Ugc3JjPSd1cGxvYWRzL2ltYWdlcy9waWN0dXJlLmpwZycgZmlsdGVyX3dhdGVybWFyaz0xfTwvY29kZT4uICBUaGlzIHdpbGwgcmVhZCB0aGUgaW1hZ2UsIGFwcGx5IHRoZSB3YXRlcm1hcmsgYWNjb3JkaW5nIHRvIHRoZSBzZXR0aW5ncyBpbiBDR0V4dGVuc2lvbnMsIGNhY2hlIHRoZSBhbHRlcmVkIGltYWdlLCBhbmQgdGhlbiBlbWJlZCBpdCBpbnRvIHlvdXIgb3V0cHV0LjwvcD4KPHA+QWxzbywgUGljdHVyZXMgdGFrZW4gYnkgbW9kZXJuIGRpZ2l0YWwgY2FtZXJhcyBhcmUgb2Z0ZW4gdG9vIGxhcmdlIGZvciB1c2Ugb24gYSB3ZWJzaXRlLCB0aGVyZWZvcmUgdGhleSBuZWVkIHRvIGJlIHNjYWxlZCBiZWZvcmUgZGlzcGxheWVkIG9uIHlvdXIgcGFnZS4gIFRoaXMgY2FuIGJlIGRvbmUgcXVpdGUgZWFzaWx5IHdpdGggYSB0YWcgbGlrZTogPGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e0NHU21hcnRJbWFnZSBzcmM9J3VwbG9hZHMvaW1hZ2VzL3BpY3R1cmUuanBnJyBmaWx0ZXJfd2F0ZXJtYXJrPTEgZmlsdGVyX3Jlc2l6ZT0ndywzNTAnfTwvY29kZT4uICBBcyB5b3UgbWF5IHRoaW5rLCB0aGUgd2F0ZXJtYXJrIHdpbGwgYmUgYXBwbGllZCB0byB0aGUgaW1hZ2UgYmVmb3JlIGl0IGlzIHJlc2l6ZWQgdG8gYSBtYXhpbXVtIHdpZHRoIG9mIDMwMCBwaXhlbHMgKHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgVGhlbiB0aGUgYWRqdXN0ZWQgaW1hZ2Ugd2lsbCBiZSBjYWNoZWQsIGFuZCBpZiB0aGUgYnJvd3NlciBhbGxvd2VzIHRoZSBpbWFnZSB3aWxsIGJlIGVtYmVkZGVkIGludG8gdGhlIEhUTUwgb3V0cHV0LiAgSWYgZW1iZWRkaW5nIGlzIG5vdCBwb3NzaWJsZSwgdGhlIGltZyB0YWcgd2lsbCBjb250YWluIHRoZSBVUkwgdG8gdGhlIGNhY2hlZCBpbWFnZS48L3A+CjxwPkZyb20gaGVyZSB5b3UgY2FuIGNvbWJpbmUgdGhlIG9wdGlvbnMgYmVsb3cgdG8gcGVyZm9ybSBhbG90IG9mIGRpZmZlcmVudCBlZmZlY3RzIHRvIHlvdXIgaW1hZ2VzLCBidWlsZCBzaW1wbGUgZ2FsbGVyaWVzLCBhbmQgaW1wcm92ZSB5b3VyIHNpdGUgcGVyZm9ybWFuY2UgYXQgdGhlIHNhbWUgdGltZS4gIEVuam95ITwvcD4KCjxoMz5SZXNpemluZyB0aGUgZGVzdGluYXRpb24gaW1hZ2UgdG8gZml0IHRoZSB0YWcuPC9oMz4KICA8cD5JZiB5b3Ugc3BlY2lmeSBhIHdpZHRoLCBhbmQvb3IgYSBoZWlnaHQgcGFyYW1ldGVyLCBhbmQgZG8gbm90IHNwZWNpZnkgdGhlICZxdW90O25vYXV0b3NjYWxlJnF1b3Q7IHBhcmFtZXRlciwgdGhlIG1vZHVsZSB3aWxsIGFuYWx5emUgdGhlIGZpbHRlcnMgeW91IGhhdmUgYWxyZWFkeSBzcGVjaWZpZWQsIGFuZCBpZiB0aGVyZSBpcyBubyByZXNpemUgZmlsdGVyIGFscmVhZHkgc3BlY2lmaWVkIGF1dG9tYXRpY2FsbHkgYWRkIGEgZmlsdGVyIHRvIHJlc2l6ZSBvciBjcm9wdG9maXQgdGhlIGltYWdlIG9uIG91dHB1dC4gIFRoaXMgaXMgdXNlZnVsIHRvIGRvIGF1dG9tYXRpYyB0aHVtYm5haWxpbmcgb24gdGhlIHNlcnZlciwgYW5kIG5vdCByZXF1aXJlIHRoZSBicm93c2VyIHRvIHJlc2l6ZSB0aGUgaW1hZ2UuPC9wPgogIDxwPkNHU21hcnRJbWFnZSB3aWxsIG5vcm1hbGx5IGF1dG9tYXRpY2FsbHkgZmlsbCB0aGUgd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIG9mIHRoZSBnZW5lcmF0ZWQgaW1nIHRhZyB3aXRoIHRoZSBzaXplIG9mIHRoZSBpbWFnZSBnZW5lcmF0ZWQgZnJvbSB0aGUgbGFzdCBmaWx0ZXIuICB0aGUgbm9hdXRvIHBhcmFtZXRlciBjYW4gcHJldmVudCB0aGlzLjwvcD4KICA8cD48c3Ryb25nIHN0eWxlPSJjb2xvcjogYmx1ZTsiPlRpcDo8L3N0cm9uZz4gSXQgaXMgbm9ybWFsbHkgY291bnRlci1wcm9kdWN0aXZlIHRvIHNwZWNpZnkgYm90aCBhIHJlc2l6ZS9jcm9wIGZpbHRlciwgQU5EIGEgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZSB1bmxlc3MgeW91IHdhbnQgdG8gYWJzb2x1dGVseSBjb250cm9sIHRoZSB2YWx1ZXMgb2YgdGhlIHdpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvbiB0aGUgaW1nIHRhZy4gIEluIHdoaWNoIGNhc2UgeW91IHNob3VsZCB1c2UgdGhlIG5vYXV0byBwYXJhbWV0ZXIgaW4gdGhlIGNhbGwgdG8gQ0dTbWFydEltYWdlLjwvcD4KIDxoMz5BIFNpbXBsZSBHYWxsZXJ5PC9oMz4KPHA+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+Cgo8aDM+UmVzcG9uc2l2ZSBJbWFnZXM6PC9oMz4KPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gUmVzcG9uc2l2ZSBpbWFnZSBoYW5kbGluZyBjaGFuZ2VkIGluIHZlcnNpb24gMS45LiAgQSByZW1vdGUgd2ViIHNlcnZpY2UgaXMgbm8gbG9uZ2VyIHVzZWQuPC9kaXY+CjxwPkNHU21hcnRJbWFnZSBpcyBjYXBhYmxlIG9mIGF1dG9tYXRpY2FsbHkgc2NhbGluZyBpbWFnZXMgZG93biB0byBhIHNpemUgdGhhdCBpcyBzdWl0YWJsZSBmb3IgbW9iaWxlIGRldmljZXMuICBUaGlzIGJvb3N0cyBwZXJmb3JtYW5jZSBieSBtaW5pbWl6aW5nIHRoZSBpbWFnZSBzaXplIGZvciBtb2JpbGUgZGV2aWNlcywgYW5kIHRoZXJlZm9yZSBpbXByb3ZlcyBwZXJmb3JtYW5jZSBhbmQgdGhlIGdlbmVyYWwgdXNlciBleHBlcmllbmFjZS4gIFRoaXMgYWN0aW9uIG11c3QgYmUgZW5hYmxlZCBpbiB0d28gd2F5czo8L3A+CjxvbD4KICA8bGk+QWRkIDxjb2RlPntDR1NtYXJ0SW1hZ2UgYWN0aW9uPXJlc3BvbnNpdmV9PC9jb2RlPiBqdXN0IGFmdGVyIHRoZSA8Y29kZT4mbHQ7aGVhZCZndDs8L2NvZGU+IHRhZyBpbiB5b3VyIHBhZ2UgdGVtcGxhdGUuCiAgICA8cD5UaGlzIHdpbGwgb3V0cHV0IGphdmFzY3JpcHQgdGhhdCB3aWxsIGRldGVjdCB0aGUgZGV2aWNlcyBzY3JlZW4gcmVzb2x1dGlvbiBhbmQgcGl4ZWwgcmF0aW8sIGFuZCBjcmVhdGUgYSBjb29raWUsIGFuZCB0aGVuIHJlZGlyZWN0IGFnYWluIGJhY2sgdG8gdGhlIHNhbWUgVVJMIHNvIHRoYXQgdGhlIHNlcnZlciBjYW4gZ2V0IHRoZSBjb29raWUgaW5mb3JtYXRpb24uICAgVGhlIGNvb2tpZSBpcyBzZXQgdG8gZXhwaXJlIGluIG9uZSB5ZWFyLiAgIElmIHRoZSBjb29raWUgZG9lcyBub3QgZXhpc3QsIHRoZW4gQ0dTbWFydEltYWdlIGNhbm5vdCBwZXJmb3JtIHJlc3BvbnNpdmUgaW1hZ2UgcmVzaXppbmcuPC9wPgogIDwvbGk+CiAgPGxpPkVuc3VyZSB0aGF0ICZxdW90O1Jlc3BvbnNpdmUgSW1hZ2VzJnF1b3Q7IGlzIGVuYWJsZWQgaW4gdGhlIENHU21hcnRJbWFnZSBtb2R1bGUgYWRtaW4gcGFuZWwuCiAgICA8cD5JZiBkaXNhYmxlZCwgdGhlIHN5c3RlbSB3aWxsIG5vdCBwZXJmb3JtIHJlc3BvbnNpdmUgc2NhbGluZy4gIEV2ZW4gaWYgdGhlIGNvb2tpZSBleGlzdHMgZnJvbSB1c2Ugb2YgPGNvZGU+e0NHU21hcnRJbWFnZSBhY3Rpb249cmVzcG9uc2l2ZX08L2NvZGU+PC9wPgogIDwvbGk+Cjwvb2w+CjxwPkNHU21hcnRJbWFnZSBhbGxvd3Mgc3BlY2lmeWluZyBhIGNvbW1hIHNlcGFydGVkIGxpc3Qgb2YgYnJlYWtwb2ludHMgaW4gdGhlIGFkbWluIHBhbmVsLiAgSWYgYnJlYWtwb2ludHMgYXJlIHNwZWNpZmllZCBhbmQgdGhlIHN5c3RlbSBmb3VuZCBkZXZpY2UgY2FwYWJpbGl0aWVzIDxlbT4oYW5kIHJlc3BvbnNpdmUgYmVoYXZpb3IgaXMgbm90IGRpc2FibGVkKTwvZW0+IFRoZW4gdGhlIHN5c3RlbSB3aWxsIGZpbmQgdGhlIGNsb3Nlc3QgbWF0Y2hpbmcgYnJlYWtwb2ludCB0byB0aGUgZGV2aWNlIHdpZHRoIGFuZCBoZWlnaHQgYW5kIHVzZSB0aGUgYnJlYWtwb2ludCB2YWx1ZSB0byBjYWxjdWxhdGUgYSBuZXcgbWF4aW11bSBzaXplIGZvciB0aGUgaW1hZ2Ugd2hpbHN0IHN0aWxsIHJldGFpbmluZyBhc3BlY3QgcmF0aW8uPC9wPgo8cD5UaGUgZGV0ZWN0aW9uIG9mIGEgbW9iaWxlIGRldmljZSwgYW5kIGVuYWJsaW5nIHJlc3BvbnNpdmUgYmVoYXZpb3Igd2lsbCBvdmVycmlkZSB0aGUgbm9hdXRvc2NhbGUgcGFyYW1ldGVyLiAgVGhlIHJlc3BvbnNpdmUgYmVoYXZpb3IgY2FuIGJlIGRpc2FibGVkIGVpdGhlciBpbiB0aGUgbW9kdWxlcyBhZG1pbiBwYW5lbCwgb3IgdmlhIHRoZSBub3Jlc3BvbnNpdmUgcGFyYW1ldGVyLjwvcD4KPHA+Q0dTbWFydEltYWdlIGlzIGNhcGFibGUgb2YgZGV0ZWN0aW5nIHRoZSBkcHIgPGVtPihkZXZpY2UgcGl4ZWwgcmF0aW8pPC9lbT4gb2YgbW9iaWxlIGRldmljZXMuICBJZiBub3QgZGlzYWJsZWQsIGFuZCBhIGRwciBoaWdoZXIgdGhhbiAxIGlzIGRldGVjdGVkIHRoZSBhdXRvLXNjYWxlZCBpbWFnZSBzaXplIHdpbGwgYmUgaW5jcmVhc2VkIGJ5IHRoZSBkcHIgb2YgdGhlIGRldmljZS4gIEhvd2V2ZXIgdGhlIG91dHB1dCBpbWcgdGFnIHdpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyB3aWxsIG5vdC4gIFRoaXMgZm9yY2VzIHRoZSBicm93c2VyIHdpdGggYSBoaWdoZXIgZHByIHRvIGRvd25sb2FkIGEgbGFyZ2VyIGltYWdlLCBhbmQgc3F1ZXplIGl0IGludG8gdGhlIHNhbWUgc2l6ZSBib3gsIHRodXMgZ2l2aW5nIGEgaGlnaGVyIHF1YWxpdHkgb3V0cHV0LjwvcD4KCjxoMz5BdXRvU2NhbGluZzwvaDM+CjxwPkF1dG8gc2NhbGluZyBpcyBhIGZlYXR1cmUgdGhhdCB3aWxsIGFkanVzdCB0aGUgb3V0cHV0IGltYWdlIHNpemUgYmFzZWQgb24gdGhlIHNvdXJjZSBpbWFnZSBzaXplLCB0aGUgZGV2aWNlIGNhcGFiaWxpdGllcyA8ZW0+KGlmIHJlc3BvbnNpdmUgYmVoYXZpb3IgaXMgZW5hYmxlZCk8L2VtPiwgYnJlYWtwb2ludHMgPGVtPihpZiBlbmFibGVkKTwvZW0+LCB0aGUsIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IHBhcmFtZXRlcnMsIGFuZCB0aGUgbWF4X3dpZHRoIGFuZCBtYXhfaGVpZ2h0IHBhcmFtZXRlcnMuICBUaGUgc3lzdGVtIHdpbGwgY29tYmluZSBhbGwgb2YgdGhpcyBpbmZvcm1hdGlvbiBhbmQgYWRqdXN0IHRoZSBtYXhfd2lkdGggYW5kIG1heF9oZWlnaHQgdmFsdWVzIHRvIHRoZSBzbWFsbGVzdCBwb3NzaWJsZSB2YWx1ZXMgd2l0aG91dCBlZmZlY3RpbmcgaW1hZ2UgYXNwZWN0IHJhdGlvLjwvcD4KPHA+SWYgcmVzcG9uc2l2ZSBmdW5jdGlvbmFsaXR5IGlzIGVuYWJsZWQsIGFuZCBkZXZpY2UgY2FwYWJpbGl0aWVzIGFyZSBkZXRlY3RlZCwgIHRoZW4gYXV0b3NjYWxpbmcgaXMgZm9yY2VkIHRvIGJlIGFjdGl2ZS48L3A+Cgo8aDM+U3R5bGVzaGVldHM6PC9oMz4KPHA+VGhpcyBtb2R1bGUgYWxzbyB3b3JrcyB3aXRoaW4gc3R5bGVzaGVldHMsIGlmIHVzaW5nIHRoZSB7Y21zX3N0eWxlc2hlZXR9IHRhZyBpbiB5b3VyIHBhZ2UgdGVtcGxhdGUuICBCZWNhdXNlIHRoZSBzbWFydHkgc3ludGF4IGlzIHNsaWdodGx5IGRpZmZlcmVudCBpbnNpZGUgdGhlIHtjbXNfc3R5bGVzaGVldH0gdGFnIHlvdSB1dGlsaXplIHRoZSBtb2R1bGUgdXNpbmcgdGhlIFtbIGFuZCBdXSBkZWxpbWl0ZXJzLiAgaS5lOiA8Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij5kaXYuaGVhZGVyIHsgYmFja2dyb3VuZDogdXJsKFtbQ0dTbWFydEltYWdlIHNyYz0ndXBsb2Fkcy9waWN0dXJlLmpwZycgbm90YWc9MV1dKTsgfTwvY29kZT48L3A+CjxwPkJlY2F1c2Ugc3R5bGVzaGVldHMgYXJlIGdlbmVyYXRlZCBvbiBtb2RpZmljYXRpb24gYW5kIHN0b3JlZCBpbiB0aGUgZmlsZXN5c3RlbSB0aGVyZSBpcyBubyB3YXkgdG8gZGV0ZXJtaW5lIGR1cmluZyB0aGUgcmVxdWVzdCB3aGljaCBicm93c2VyIGlzIHJlcXVlc3RpbmcgdGhlIHN0eWxlc2hlZXQsIHRoZXJlZm9yZSBlbWJlZGRpbmcgd2lsbCBiZSBkb25lIHN0cmljdGx5IGJhc2VkIHVwb24gdGhlIHByZXNlbnNlIG9mIHRoZSBub2VtYmVkIHBhcmFtZXRlci4gIElmIHlvdSBoYXZlIGNob3NlbiB0byBlbWJlZCBpbWFnZXMgZGlyZWN0bHkgaW50byB5b3VyIHN0eWxlc2hlZXRzLCBZb3UgbWF5IG5lZWQgdG8gYWRkIGFkZGl0aW9uYWwgc3R5bGVzaGVldCBzdXBwb3J0IGZvciB0aGUgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBlbWJlZGRlZCBpbWFnZXMuICBpLmU6ICBJRTYuPC9wPgoKPGgzPkF1dG9tYXRpYyBQcm9jZXNzaW5nOjwvaDM+CjxwPlRoaXMgbW9kdWxlIGluY2x1ZGVzIGEgc21hcnR5IGJsb2NrIHRhZyBjYWxsZWQgPGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e2Nnc2lfY29udmVydH08L2NvZGU+IHRoYXQgY2FuIHN1cnJvdW5kIGEgYmxvY2sgb2YgaHRtbCwgb3Igb3RoZXIgc21hcnR5IHRhZ3MgdG8gYWxsb3cgYXV0b21hdGljIGltYWdlIHByb2Nlc3NpbmcuICBUaGlzIHRhZyBjYW4gYmUgdXNlZCBsaWtlOiAoZm9yIGV4YW1wbGUpOjwvcD4KPHByZT48Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dzaV9jb252ZXJ0fXtjb250ZW50fXsvY2dzaV9jb252ZXJ0fTwvY29kZT48L3ByZT4KPHA+VGhpcyB3aWxsIGFsbG93IHlvdXIgdXNlcnMgdG8gaW5jbHVkZSBpbWFnZXMgaW50byBwYWdlcyB1c2luZyB0aGUgbm9ybWFsIHd5c2l3eWcgdG9vbHMsIGFuZCB0byBoYXZlIHRoZW0gYXV0b21hdGljYWxseSBwcm9jZXNzZWQgYW5kIGVtYmVkZGVkIGludG8gdGhlIHBhZ2UgdXNpbmcgdGhlIG1hZ2ljIG9mIHtDR1NtYXJ0SW1hZ2V9LiBpLmU6IFNlZSB0aGUgZm9sbG93aW5nIGNvZGU6PC9wPgo8cHJlPjxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntjZ3NpX2NvbnZlcnQgZmlsdGVyX2dyYXlzY2FsZT0xIGZpbHRlcl93YXRlcm1hcms9MX17Y29udGVudH17L2Nnc2lfY29udmVydH08L2NvZGU+PC9wcmU+CjxwPlRoZSBhYm92ZSBjb2RlIHdpbGwgY2FwdHVyZSBhbGwgaW1hZ2UgdGFncywgYW5kIGNvbnZlcnQgdGhlbSB0byBncmF5c2NhbGUgYW5kIHRoZW4gYXBwbHkgdGhlIHdhdGVybWFyayAoYWNjb3JkaW5nIHRvIHRoZSBzZXR0aW5ncyBpbiB0aGUgQ0dFeHRlbnNpb25zIG1vZHVsZSkuICBBbGwgb2YgdGhlIHBhcmV0ZXJzIGF2YWlsYWJsZSB0byB0aGUgPGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e0NHU21hcnRJbWFnZX08L2NvZGU+IHRhZyBhcmUgYXZhaWxhYmxlIHRvIHRoaXMgdGFnIChmb3IgaW1hZ2Ugc2NhbGluZyBldGMuKS4gIEFkZGl0aW9uYWxseSwgdHdvIG5ldyBwYXJhbWV0ZXJzIGhhdmUgYmVlbiBpbnRyb2R1Y2VkOiA8c3Ryb25nPm1heF93aWR0aDwvc3Ryb25nPiBhbmQgPHN0cm9uZz5tYXhfaGVpZ2h0PC9zdHJvbmc+IHdoaWNoIGNhbiBiZSB1c2VkIHRvIHNldCBhIG1heGltdW0gc2l6ZSBmb3IgaW1hZ2VzLi48L3A+CjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAzZW07Ij48c3Ryb25nIHN0eWxlPSJjb2xvcjogcmVkOyI+Tm90ZTo8L3N0cm9uZz4KPHA+VGhpcyB0YWcgcGFyc2VzIHRoZSBIVE1MIGNvbnRlbnQgYmV0d2VlbiB0aGUgc3RhcnQgYW5kIGVuZCB0YWdzIHRvIGZpbmQgdGhlIDxpbWc+IHRhZ3MuICBJdCB0aGVuIHdpbGwgb3V0cHV0IHN5bnRhY3RpY2FsbHkgdmFsaWQgSFRNTCBmb3IgdGhlIHN1YnNldCBvZiBjb2RlIGl0IHdhcyBwcm92aWRlZC4gIFRoZXJlZm9yZSBpdCBpcyBpbXBvcnRhbnQgdGhhdCB0aGUgc25pcHBldCBvZiBIVE1MIHBhc3NlZCB0byB0aGlzIHRhZyBiZSBpbnRhY3QgYW5kIGFzIGNsb3NlIHRvIHZhbGlkIGFzIHBvc3NpYmxlLiAgPHN0cm9uZz5Vc2Ugd2l0aCBjYXV0aW9uLjwvc3Ryb25nPgo8L2Rpdj4KCjxoMz5NdWx0aXBsZSBhcmd1bWVudHM6PC9oMz4KPHA+Q0dTbWFydEltYWdlIHN1cHBvcnRzIGEgcGxldGhvcmEgb2Ygb3B0aW9ucyBhbmQgYXJndW1lbnRzLiAgVGVtcGxhdGUgbGF5b3V0IGNhbiBiZSBjbGVhbmVkIGJ5IHVzaW5nIHRoZSA8Y29kZT57Y2dlX21vZHVsZV9oaW50fTwvY29kZT4gdGFnIGF0IHRoZSB0b3Agb2YgdGhlIHBhZ2UgdGVtcGxhdGUsIG9yIGluIHRoZSBwYWdlIG1ldGFkYXRhIGFyZWEgc3VjaCB0aGF0IHBhcmFtZXRlcnMgZm9yIGFsbCBjYWxscyBDR1NtYXJ0SW1hZ2Ugb24gYSBwYWdlIGFyZSBzcGVjaWZpZWQgb25jZS4gIE92ZXJyaWRpbmcgdGhlIHBhcmFtZXRlcnMgZm9yIGEgc2luZ2xlIGNhbGwgaXMgc3RpbGwgcG9zc2libGUuPC9wPgo8cD5TZWUgdGhlIDxjb2RlPntjZ2VfbW9kdWxlX2hpbnR9PC9jb2RlPiB0YWcgaW4gdGhlIENHRXh0ZW5zaW9ucyBoZWxwIGZvciBtb3JlIGluZm9ybWF0aW9uLjwvcD4KCjxoMz5BZHZhbmNlZCBVdGlsaXRpZXM6PC9oMz4KPHVsPgogICA8bGk+PGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e2Nnc2lfZ2V0aW1hZ2VzfTwvY29kZT4KICAgICA8cD5BIHBsdWdpbiB0byBleHRyYWN0IGltYWdlcyBmcm9tIGEgYmxvY2sgb2YgSFRNTCBjb2RlIGZvciBmdXJ0aGVyIHByb2Nlc3Npbmcgb3V0c2lkZSBvZiBDR1NJLjwvcD4KICAgICA8cD48c3Ryb25nPkFyZ3VtZW50czo8L3N0cm9uZz4KICAgICAgIDx1bD4KICAgICAgICAgPGxpPmltYWdlc29ubHk6IHRoZSBjb250ZW50IHJldHVybmVkIHdpbGwgY29udGFpbiBvbmx5ICZsdDtpbWcmZ3Q7IHRhZ3MuICBBbGwgb3RoZXIgdGFncyB3aWxsIGJlIHJlbW92ZWQuICBOb3QgYXBwbGljYWJsZSBpZiB0aGUgbm9jb250ZW50IHBhcmFtZXRlciBpcyBzcGVjaWZpZWQuPC9saT4KICAgICAgICAgPGxpPm5vY29udGVudDogZG8gbm90IG91dHB1dCBhbnkgY29udGVudCB3aGF0c29ldmVyLjwvbGk+CiAgICAgICAgIDxsaT5hc3NpZ246IGNyZWF0ZSBhbiBhcnJheSByZXByZXNlaW50aW5nIGFsbCBvZiB0aGUgYXZhaWxhYmxlIGluZm9ybWF0aW9uIGZvciB0aGUgZm91bmQgJmx0O2ltZyZndDsgdGFncyBhbmQgYXNzaWduIGl0IHRvIHRoZSBuYW1lZCBzbWFydHkgdmFyaWFibGUuPC9saT4KICAgICAgIDwvdWw+CiAgICAgPC9wPgogICAgIDxwPjxzdHJvbmc+VXNhZ2U6PC9zdHJvbmc+CiAgICAgICA8dWw+CiAgICAgICAgIDxsaT5SZW1vdmUgYWxsIGJ1dCB0aGUgaW1hZ2UgdGFncyBpbiB0aGUgZW5jbG9zZWQgSFRNTDo8YnIvPgogICAgICAgICAgIDxwcmU+PGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e2Nnc2lfZ2V0aW1hZ2VzIGltYWdlc29ubHk9MX17Y29udGVudH17L2Nnc2lfZ2V0aW1hZ2VzfTwvY29kZT48L3ByZT4KICAgICAgICAgPC9saT4KICAgICAgICAgPGxpPlJldHVybiBhIGxpc3Qgb2YgdGhlIGltYWdlIHRhZ3MgaW4gdGhlIGVuY2xvc2VkIEhUTUwgY29udGVudCwgYnV0IGxlYXZlIHRoZSBjb250ZW50IHVudG91Y2hlZDo8YnIvPgogICAgICAgICAgIDxwcmU+PGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e2Nnc2lfZ2V0aW1hZ2VzIGFzc2lnbj0naW1hZ2VpbmZvJ317Y29udGVudH17L2Nnc2lfZ2V0aW1hZ2VzfTwvY29kZT48L3ByZT4KICAgICAgICAgPC9saT4KICAgICAgICAgPGxpPlJldHVybiBhIGxpc3Qgb2YgdGhlIGltYWdlIHRhZ3MgaW4gdGhlIGVuY2xvc2VkIEhUTUwgY29udGVudCwgYW5kIGRvIG5vdCBvdXRwdXQgYW55IG9mIHRoZSBvcmlnaW5hbCBjb250ZW50Ojxici8+CiAgICAgICAgICAgPHByZT48Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dzaV9nZXRpbWFnZXMgYXNzaWduPSdpbWFnZWluZm8nIG5vY29udGVudD0xfXtjb250ZW50fXsvY2dzaV9nZXRpbWFnZXN9PC9jb2RlPjwvcHJlPgogICAgICAgICA8L2xpPgogICAgICAgPC91bD4KICAgICA8L3A+CiAgPC9saT4KPC91bD4KCjxoMz5CYWNrZ3JvdW5kIEltYWdlIFJlc2l6aW5nPC9oMz4KPHA+SWYgdGhlIENHTWVzc2FnZVF1ZXVlIG1vZHVsZSBpcyBpbnN0YWxsZWQgYW5kIHByb3Blcmx5IGNvbmZpZ3VyZWQsIHRoZW4gdGhpcyBtb2R1bGUgaGFzIHRoZSBhYmlsaXR5IHRvIGNyZWF0ZSBiYWNrZ3JvdW5kIGpvYnMgdGhhdCB3aWxsIGF1dG9tYXRpY2FsbHkgcmVzaXplIGFsbCB1cGxvYWRlZCBpbWFnZXMgdG8gYSBtYXhpbXVtIGVkZ2Ugc2l6ZS4gIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyB1c2VmdWwgdG8gcmVkdWNlIGRpc2sgc3BhY2UgcmVxdWlyZW1lbnRzLCBhbmQgdG8gYWlkZSBpbiBwZXJmb3JtYW5jZS48L3A+CjxwPlVzaW5nIHRoZSBidWlsdCBpbiBDTVNNUyBwc2V1ZG9jcm9uIG1lY2hhbmlzbSB0aGUgc3lzdGVtIHdpbGwgcGVyaW9kaWNhbGx5IHNjYW4gZm9yIGZpbGVzIHRoYXQgZXhjZWVkIHRoZSBtYXhpbXVtIHNpemUuICBUaGVuIHVzaW5nIGEgZnVydGhlciBhc3luY2hyb25vdXMgcHJvY2VzcyAodGhlIE1lc3NhZ2VRdWV1ZSkgbWF0Y2hpbmcgZmlsZXMgYXJlIHNsb3dseSByZXNpemVkIGluIGJhdGNoZXMsIHRodXMgbWluaW1pemluZyBpbXBhY3Qgb24gc2VydmVyIHJlc291cmNlcy4gIEFkZGl0aW9uYWxseSwgaWYgYSBmaWxlIGlzIHRvIGJlIHJlc2l6ZWQsIGl0IGNhbiBiZSBhdXRvLXJvdGF0ZWQsIGFuZCB3YXRlcm1hcmtlZC48L3A+CjxwPlRoaXMgZnVuY3Rpb25hbGl0eSByZWxpZXMgb24gdGhlIENHTWVzc2FnZVF1ZXVlIG1vZHVsZSBiZWluZyBpbnN0YWxsZWQgYW5kIHByb3Blcmx5IGNvbmZpZ3VyZWQgKHdpdGggYSBjcm9uIGpvYikgYW5kIHRoZSBDTVNNUyBQc2V1ZG9jcm9uIHV0aWxpdHkgdG8gYmUgY29uZmlndXJlZCB0byBydW4gZnJlcXVlbnRseS4gIFdlIHJlY29tbWVuZCBvbmNlIHBlciBob3VyLjwvcD4KCjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhlIG1vZHVsZSBhdXRob3IgaXMgaW4gbm8gd2F5IG9ibGlnYXRlZCB0byBwcm92aWRlIHN1cHBvcnQgZm9yIHRoaXMgY29kZSBpbiBhbnkgZmFzaGlvbi4gIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5BIGJ1ZyB0cmFja2luZyBhbmQgZmVhdHVyZSByZXF1ZXN0IHN5c3RlbSBoYXMgYmVlbiBjcmVhdGVkIGZvciB0aGlzIG1vZHVsZSA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Nnc21hcnRpbWFnZSI+aGVyZTwvYT4uICBQbGVhc2UgYmUgdmVyYm9zZSBhbmQgZGVzY3JpcHRpdmUgd2hlbiBzdWJtaXR0aW5nIGJ1ZyByZXBvcnRzIGFuZCBmZWF0dXJlIHJlcXVlc3RzLCBhbmQgZm9yIGJ1ZyByZXBvcnRzIGVuc3VyZSB0aGF0IHlvdSBoYXZlIHByb3ZpZGVkIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gcmVsaWFibHkgcmVwcm9kdWNlIHRoZSBpc3N1ZS48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LiAgV2hlbiBkZXNjcmliaW5nIGFuIGlzc3VlIHBsZWFzZSBtYWtlIGFuIGVmZm9ydCB0byBwcml2aWRlIGFsbCByZWxhdmFudCBpbmZvcm1hdGlvbiwgYSB0aG9yb3VnaCBkZXNjcmlwdGlvbiBvZiB5b3VyIGlzc3VlLCBhbmQgc3RlcHMgdG8gcmVwcm9kdWNlIGl0IG9yIHlvdXIgZGlzY3Vzc2lvbiBtYXkgYmUgaWdub3JlZC48L2xpPgo8bGk+VGhlIGF1dGhvciwgY2FsZ3V5MTAwMCwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LiAgSG93ZXZlciwgcGxlYXNlIHVzZSB0aGlzIGFzIGEgbGFzdCByZXNvcnQsIGFuZCBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBmb2xsb3dlZCBhbGwgYXBwbGljYWJsZSBpbnN0cnVjdGlvbnMgb24gdGhlIGZvcmdlLCBpbiB0aGUgZm9ydW1zLCBldGMuPC9saT4KPC91bD4KCjxoMz5SZXF1aXJlbWVudHM8L2gzPgo8cD48c3Ryb25nPldhcm5pbmc6PC9zdHJvbmc+IFRoaXMgbW9kdWxlIGlzIGhlYXZpbHkgZGVwZW5kYW50IHVwb24gc2VydmVyIHJlc291cmNlcy4gIFBlcmZvcm1pbmcgZmlsdGVyaW5nLCBvciByZXNpemluZyBvZiBleHRyZW1lbHkgbGFyZ2UgaW1hZ2VzLCBvciBtdWx0aXBsZSBpbWFnZXMgYXQgb25lIHRpbWUgbWF5IGV4Y2VlZCB0aGUgbWVtb3J5IGF2YWlsYWJpbGl0eSBvZiB5b3VyIHdlYnNlcnZlciA8ZW0+KHBhcnRpY3VsYXJseSBvbiBzaGFyZWQgaG9zdHMpPC9lbT4uICBXaGlsZSBpbWFnZXMgYXJlIGJlaW5nIGluaXRpYWxseSB0cmFuc2Zvcm1lZCwgcGFnZSBsb2FkIHRpbWUgbWF5IGJlIGluY3JlYXNlZC48L3A+CjxwPjxzdHJvbmcgc3R5bGU9ImNvbG9yOiBibHVlOyI+VGlwOjwvc3Ryb25nPiB3aGVuIGRlYWxpbmcgd2l0aCBsYXJnZSBpbWFnZXMgaXQgaXMgaW1wb3J0YW50IHRvIHRyeSB0byByZWR1Y2UgdGhlaXIgc2l6ZSBhcyBlYXJseSBhcyBwb3NzaWJsZSBpbiB0aGUgZmlsdGVyaW5nIHByb2Nlc3MgdG8gbWluaW1pemUgcmVzb3VyY2UgcmVxdWlyZW1lbnRzLjwvcD4KPHA+VGhpcyBtb2R1bGUgbWFrZXMgZXZ0ZW5zaXZlIHVzZSBvZiB0aGUgR0QgSW1hZ2UgcHJvY2Vzc2luZyBsaWJyYXJ5IHRvIGRvIGltYWdlIG1hbmlwdWxhdGlvbi4gIEFkZGl0aW9uYWxseSwgdGhlIHtjZ3NpX2NvbnZlcnR9IHBsdWdpbiBtYWtlcyBleHRlbnNpdmUgdXNlIG9mIHRoZSBzaW1wbGV4bWwgYW5kIFhNTERvbSBjbGFzc2VzIGJ1aWx0IGluIHRvIHBocC4gIFRoZXJlIG1heSBiZSBvdGhlciBhZGRpdGlvbmFsIHJlcXVpcmVtZW50cy4gIElmIHlvdSBhcmUgZXhwZXJpZW5jaW5nIGVycm9ycyB5b3Ugc2hvdWxkIGVuc3VyZSB0aGF0IGVycm9yIHJlcG9ydGluZyBpcyBlbmFibGVkLCBhbmQgdGhhdCB5b3UgaGF2ZSBhbmFseXplZCB5b3VyIGVycm9yIGxvZ3MuPC9wPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA4LCBSb2JlcnQgQ2FtcGJlbCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+Jmx0O2NhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcmZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQp0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgooYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4KPHA+SG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCmFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQppbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCk1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgpzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBBCiRsYW5nWydhY3RfY2FjaGVjbGVhbmVkJ10gPSAnQ2FjaGUgQ2xlYW5lZCc7CiRsYW5nWydhZGRfcm93J10gPSAnQWRkIFJvdyc7CiRsYW5nWydhbGlhcyddID0gJ0FsaWFzJzsKJGxhbmdbJ2FsaWFzZXMnXSA9ICdBbGlhc2VzJzsKJGxhbmdbJ2Fza19jbGVhcl9pbWFnZV9jYWNoZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZW1vdmUgQUxMIGZpbGVzIGZyb20gdGhlIGltYWdlIGNhY2hlPyc7CiRsYW5nWydhc3N1bWVfcmVzcG9uc2l2ZSddID0gJ0Fzc3VtZSByZXNwb25zaXZlIGNvb2tpZSBlbmFibGVkJzsKJGxhbmdbJ2F1dG9wcm9jZXNzaW5nJ10gPSAnQXV0b21hdGljIFByb2Nlc3NpbmcnOwokbGFuZ1snYXV0b3Byb2Nlc3NfYXV0b3JvdGF0ZSddID0gJ0F1dG9tYXRpY2FsbHkgT3JpZW50IEltYWdlcyc7CiRsYW5nWydhdXRvcHJvY2Vzc19lbmFibGVkJ10gPSAnRW5hYmxlZCc7CiRsYW5nWydhdXRvcHJvY2Vzc19pbmNsdWRlX2RpcnMnXSA9ICdJbmNsdWRlIERpcnMnOwokbGFuZ1snYXV0b3Byb2Nlc3NfaWdub3JlX2RpcnMnXSA9ICdJZ25vcmUgRGlycyc7CiRsYW5nWydhdXRvcHJvY2Vzc19pZ25vcmVfZXh0ZW5zaW9ucyddID0gJ0lnbm9yZSBFeHRlbnNpb25zJzsKJGxhbmdbJ2F1dG9wcm9jZXNzX21heF9zaXplJ10gPSAnTWF4aW11bSBJbWFnZSBTaXplJzsKJGxhbmdbJ2F1dG9wcm9jZXNzX3dhdGVybWFyayddID0gJ1dhdGVybWFyayBJbWFnZXMnOwoKIyBCCiRsYW5nWydiZWdpbl9hdXRvcHJvY2VzcyddID0gJ0JlZ2luIEF1dG9wcm9jY2VzcyBOb3cnOwoKIyBDCiRsYW5nWydjbGVhcl9hbGwnXSA9ICdDbGVhciBBbGwgRmlsZXMnOwokbGFuZ1snY2xlYXJfbm93J10gPSAnQ2xlYXIgTm93JzsKJGxhbmdbJ2NhY2hlX3BhdGgnXSA9ICdDYWNoZSBQYXRoJzsKJGxhbmdbJ2NoZWNrX21lbW9yeSddID0gJ0RvIHByZWVtcHRpdmUgbWVtb3J5IGNoZWNrJzsKJGxhbmdbJ2NsZWFyanVua3Bob3Rvc19kZXNjcmlwdGlvbiddID0gJ0NsZWFyIHRlbXBvcmFyeSBwaG90b3MgbW9yZSB0aGFuIG9uZSBkYXkgb2xkJzsKJGxhbmdbJ2Nyb3B0b2ZpdCddID0gJ0Nyb3AgdG8gRml0JzsKCiMgRAokbGFuZ1snZGVsZXRlJ10gPSAnRGVsZXRlJzsKCiMgRQokbGFuZ1snZW1iZWRkaW5nJ10gPSAnRW1iZWRkZWQgSW1hZ2VzJzsKJGxhbmdbJ2VtYmVkZGluZ19tb2RlJ10gPSAnSW1hZ2UgRW1iZWRkaW5nIE1vZGUnOwokbGFuZ1snZW1iZWRfc2l6ZWxpbWl0J10gPSAnRW1iZWRkYWJsZSBpbWFnZSBzaXplIGxpbWl0IChrYiknOwokbGFuZ1snZW1iZWRfdHlwZXMnXSA9ICdFbWJlZGRhYmxlIGltYWdlIHR5cGUnOwokbGFuZ1snZW5hYmxlX3Jlc3BvbnNpdmUnXSA9ICdFbmFibGUgUmVzcG9uc2l2ZSBJbWFnZXMnOwokbGFuZ1snZXJyb3JfYWxpYXNfZHVwbGljYXRlbmFtZV9hdHJvdyddID0gJ0R1cGxpY2F0ZSBhbGlhcyBuYW1lIHNwZWNpZmllZCBmb3IgYWxpYXMgYXQgcm93ICVkJzsKJGxhbmdbJ2Vycm9yX2FsaWFzX25vbmFtZV9hdHJvdyddID0gJ05vIG5hbWUgc3BlY2lmaWVkIGZvciBhbGlhcyBhdCByb3cgJWQnOwokbGFuZ1snZXJyb3JfYWxpYXNfbm9vcHRpb25zX2F0cm93J10gPSAnTm8gb3B0aW9ucyBzcGVjaWZpZWQgZm9yIGFsaWFzIGF0IHJvdyAlZCc7CiRsYW5nWydlcnJvcl9jYWNoZXBhdGhfaW52YWxpZCddID0gJ1RoZSBjYWNoZSBwYXRoIHNwZWNpZmllZCBpcyBpbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX2Rlc3Rub3Rmb3VuZCddID0gJ0ZvciBzb21lIHJlYXNvbiB0aGUgb3V0cHV0IGZpbGUgJXMgY291bGQgbm90IGJlIGZvdW5kIChvciBjb3VsZCBub3QgYmUgcmVhZCknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9hZ2UnXSA9ICdBZ2UgcHJlZmVyZW5jZSBpbnZhbGlkLi4uIE5vIG9wZXJhdGlvbiBwZXJmb3JtZWQnOwokbGFuZ1snZXJyb3JfaW5zdWZmaWNpZW50bWVtb3J5J10gPSAnV2UgaGF2ZSBlc3RpbWF0ZWQgdGhhdCBQSFAgcHJvYmFibHkgZG9lcyBub3QgaGF2ZSBlbm91Z2ggbWVtb3J5IHRvIHByb2Nlc3MgdGhpcyBpbWFnZSc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdBIHJlcXVpcmVkIHBhcmFtZXRlciB3YXMgbWlzc2luZyBvciBpbnZhbGlkOiAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyYW0nXSA9ICdJbnZhbGlkIHBhcmFtZXRlciBpbiBjYWxsOiAlcyc7CiRsYW5nWydlcnJvcl9zcmNub3Rmb3VuZCddID0gJ0NvdWxkIG5vdCBmaW5kIGEgZmlsZSBhdDogJXMnOwokbGFuZ1snZXJyb3JfcmVtb3RlZmlsZSddID0gJ1Byb2JsZW0gcmV0cmlldmluZyByZW1vdGUgZmlsZSBhdCAlcyc7CiRsYW5nWydlcnJvcl91bmtub3duZmlsdGVyJ10gPSAnQ0dTbWFydEltYWdlIC0gVW5rbm93biBGaWx0ZXI6ICVzJzsKCiMgRgokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnQ2FsZ3V5cyBTbWFydCBJbWFnZSBUb29sa2l0JzsKCiMgRwokbGFuZ1snZ2VuZXJhbCddID0gJ0dlbmVyYWwnOwoKIyBICiRsYW5nWydoZWxwX2FwX2luY2x1ZGVfZGlycyddID0gJ1NwZWNpZnkgYSBsaXN0IG9mIGRpcmVjdG9yaWVzIChyZWxhdGl2ZSB0byB0aGUgdXBsb2Fkc3MgZGlyZWN0b3J5KSB0aGF0IHNob3VsZCBiZSBleHBsaWNpdGx5IGluY2x1ZGVkIGluIHRoZSBhdXRvIHByb2Nlc3NpbmcuICBJZiB0aGlzIG9wdGlvbiBpcyBub3Qgc3BlY2lmaWVkIGFsbCBub24gaGlkZGVuIGRpcmVjdG9yaWVzIHdpbGwgYmUgcHJvY2Vzc2VkLiAgU3BlY2lmeSBvbmx5IG9uZSBkaXJlY3RvcnkgcGVyIGxpbmUuJzsKJGxhbmdbJ2hlbHBfYXBfaWdub3JlX2RpcnMnXSA9ICdTcGVjaWZ5IGEgbGlzdCBvZiBkaXJlY3RvcmllcyAocmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyZWN0b3J5KSB0aGF0IHNob3VsZCBiZSBpZ25vcmVkIGR1cmluZyBwcm9jZXNzaW5nLiAgU3BlY2lmeSBvbmx5IG9uZSBkaXJlY3RvcnkgcGVyIGxpbmUnOwokbGFuZ1snaGVscF9hcF9tYXhfc2l6ZSddID0gJ1NwZWNpZnkgdGhlIG1heGltdW0gc2l6ZSAoaW4gcGl4ZWxzKSBpbiBhbnkgZGlyZWN0aW9uIG9mIGFueSBpbWFnZSB0aGF0IGlzIGF1dG8gcHJvY2Vzc2VkLiAgVGhlIGF1dG9wcm9jZXNzaW5nIGZ1bmN0aW9uYWxpdHkgd2lsbCByZXNpemUgaW1hZ2VzIHNvIHRoYXQgdGhlIGxvbmdlc3QgZGltZW5zaW9uIGlzIHNtYWxsZXIgdG8gb3IgZXF1YWwgdG8gdGhpcyBzaXplLic7CiRsYW5nWydoZWxwX2FwX2F1dG9yb3RhdGUnXSA9ICdJZiBlbmFibGVkLCBKUEVHIGltYWdlcyB0aGF0IGFyZSBvdmVyIHRoZSBtYXhpbXVtIHNpemUgY2FuIGJlIHJvdGF0ZWQgdG8gY29ycmVjdCB0aGVpciBvcmllbnRhdGlvbiBiZWZvcmUgcmVzaXppbmcnOwoKIyBJCiRsYW5nWydpbmZvX2FsaWFzZXMnXSA9ICdBbGlhZXMgY2FuIGJlIHVzZWQgdmlhIHRoZSBhbGlhczEgdGhyb3VnaCBhbGlhczUgb3B0aW9ucyBvbiB0aGUgQ0dTbWFydEltYWdlIHRhZyB0byBjb21iaW5lIG51bWVyb3VzIGZyZXF1ZW50bHkgdXNlZCBvcHRpb25zJzsKJGxhbmdbJ2luZm9fYXNzdW1lX3Jlc3BvbnNpdmUnXSA9ICdUaGlzIG9wdGlvbiBpcyBvbmx5IGFwcGxpY2FibGUgd2hlbiByZXNwb25zaXZlIGltYWdlcyBhcmUgaW5jbHVkZWQuICBJdCBpbnN0cnVjdHMgQ0dTbWFydEltYWdlIHRvIG91dHB1dCBvbmx5IGFuIEhUTUwgY29tbWVudCBpZiB0aGUgY29va2llIGNvbnRhaW5pbmcgZGV2aWNlIGNoYXJhY3RlcmlzdGljcyBkb2VzIG5vdCBleGlzdC4gIFRoaXMgaXMgYW4gb3B0aW1pemF0aW9uIChhcyBpdCBzYXZlcyBDR1NtYXJ0SW1hZ2UgZnJvbSBwZXJmb3JtaW5nIGRvdWJsZSBwcm9jZXNzaW5nIG9uIHRoZSBzYW1lIGltYWdlcyBmb3IgdGhlIGluaXRpYWwgcmVxdWVzdCBvZiBhIHJlc3BvbnNpdmUgcGFnZS4gIEhvd2V2ZXIsIGlmIGEgdXNlciBoYXMgY29va2llcyBkaXNhYmxlZCBvbiB0aGVpciBicm93c2VyIHRoZW4gdGhleSBtYXkgc2VlIGEgYnJva2VuIHdlYiBwYWdlIChtaXNzaW5nIGltYWdlcyBvciBicm9rZW4gamF2YXNjcmlwdC4pJzsKJGxhbmdbJ2luZm9fYXV0b3Byb2Nlc3NpbmcnXSA9ICc8cD5JbiBvcmRlciB0byBjb25zZXJ2ZSBzdG9yYWdlIHNwYWNlLCB0aGlzIGZ1bmN0aW9uYWxpdHksIGlmIGVuYWJsZWQgd2lsbCByZXNpemUgYWxsIGltYWdlIGZpbGVzIHRoYXQgYXJlIGxvY2F0ZWQgYmVuZWF0aCB0aGUgdXBsb2FkcyBkaXJlY3RvcnkgYW5kIHRoYXQgYXJlIGxhcmdlciBpbiBhbnkgZGltZW5zaW9uIHRoYW4gdGhlIHNwZWNpZmllZCBtYXhpbXVtIGltYWdlIHNpemUuICBUaGlzIGZ1bmN0aW9uYWxpdHkgV0lMTCBvdmVyd3JpdGUgdGhlIG9yaWdpbmFsIGZpbGUuPC9wPic7CiRsYW5nWydpbmZvX2F1dG9zY2FsZV9vcCddID0gJ1doZW4gYXV0b3NjYWxpbmcgaXMgYWxsb3dlZCwgdGhpcyBwcmVmZXJlbmNlIHNldHMgdGhlIGRlZmF1bHQgZmlsdGVyIHRoYXQgd2lsbCBiZSB1c2VkLiAgVGhpcyBjYW4gYmUgb3ZlcnJpZGVuIGJ5IHVzaW5nIHRoZSBhdXRvc2NhbGVfb3AgcGFyYW1ldGVyLic7CiRsYW5nWydpbmZvX2NoZWNrX21lbW9yeSddID0gJ0lmIGVuYWJsZWQsIHRoZSBzeXN0ZW0gd2lsbCBhdHRlbXB0IHRvIGVzdGltYXRlIG1lbW9yeSBuZWVkZWQgZm9yIGFuIGltYWdlIHRyYW5zZm9ybWF0aW9uLCBhbmQgd2lsbCBmYWlsIGlmIGluc3VmZmljaWVudCBhdmFpbGFibGUgbWVtb3J5IGlzIGRldGVjdGVkJzsKJGxhbmdbJ2luZm9fY3JvcHRvZml0X2RlZmF1bHRfbG9jJ10gPSAnU3BlY2lmeSB0aGUgZGVmYXVsdCBsb2NhdGlvbiBmcm9tIHdoaWNoIHRvICZxdW90O2Nyb3AgdG8gZml0JnF1b3Q7IHRoaXMgd2lsbCBlZmZlY3QgYWxsIGNyb3AgdG8gZml0IG9wZXJhdGlvbnMgdW5sZXNzIHRoZSBsb2NhdGlvbiBwYXJhbWV0ZXIgb24gdGhlIGZpbHRlcl9jcm9wdG9maXQgYXR0cmlidXRlIG92ZXJyaWRlcyBpdC4gIERlZmF1bHQgbG9jYXRpb24gaXMgJnF1b3Q7Y2VudGVyJnF1b3Q7JzsKJGxhbmdbJ2luZm9fcmVzcG9uc2l2ZSddID0gJ0lmIGVuYWJsZWQsIENHU21hcnRJbWFnZSB3aWxsIGF0dGVtcHQgdG8gZGV0ZWN0IHRoZSBtYXhpbXVtIHJlc29sdXRpb24gb2YgdGhlIHJlcXVlc3RpbmcgZGV2aWNlIGFuZCBhdXRvbWF0aWNhbGx5IHJlc2NhbGUgdGhlIGltYWdlIHNvIHRoYXQgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBjYW4gdGhlIG91dHB1dCBpbWFnZSBiZSB0b28gbGFyZ2UgZm9yIHRoZSBkaXNwbGF5LiAgVGhpcyBhc3Npc3RzIGluIHBlcmZvcm1hbmNlIHdoZW4gZGV2ZWxvcGluZyBtb2JpbGUgd2Vic2l0ZXMuJzsKJGxhbmdbJ2luZm9fZm9yY2VfZXh0ZW5zaW9uJ10gPSAnSWYgZW5hYmxlZCwgQ0dTbWFydEltYWdlIHdpbGwgZm9yY2UgYWxsIGdlbmVyYXRlZCBpbWFnZXMgdG8gaGF2ZSBhIGZpbGUgZXh0ZW5zaW9uLiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRob3VnaCBhbGwgZWZmb3J0cyBhcmUgbWFkZSB0byBlbnN1cmUgY29ycmVjdG5lc3MsIHRoZSBmaWxlIGV4dGVuc2lvbiBnZW5lcmF0ZWQgbWF5IG5vdCBhY2N1cmF0ZWx5IHJlcHJlc2VudCB0aGUgYWN0dWFsIGltYWdlIHR5cGUsIGRlcGVuZGluZyB1cG9uIHRoZSBmaWx0ZXJzIHVzZWQgYW5kIHRoZSBwYXJhbWV0ZXJzIHRvIHRob3NlIGZpbHRlcnMuJzsKJGxhbmdbJ2luZm9fcmVzcG9uc2l2ZV9icmVha3BvaW50cyddID0gJ0lmIHNwZWNpZmllZCwgYW5kIGEgbW9iaWxlIGRldmljZSBpcyBkZXRlY3RlZCB0aGUgYnJlYWtwb2ludHMgd2lsbCBiZSB1c2VkIHRvIGRldGVybWluZSB0aGUgbWF4aW11bSBsYXJnZXN0IGVkZ2UgZm9yIHRoZSByZXN1bHRpbmcgaW1hZ2UuICBTcGVjaWZ5IGEgbGlzdCBvZiBjb21tYSBzZXBhcmF0ZWQgaW5jcmVhc2luZyBpbnRlZ2VycyA8ZW0+KGkuZTogMjAwLDQwMCw2MDAsODAwKTwvZW0+LiBUaGUgZGV2aWNlIGNhcGFiaWx0aWVzIHdpbGwgYmUgdXNlZCB0byBmaW5kIHRoZSBjbG9zZXN0IG1hdGNoaW5nIGJyZWFrcG9pbnQgdmFsdWUuICBUaGUgaW1hZ2Ugd2lsbCBiZSByZXNpemVkIHNvIHRoYXQgaXRzIGxhcmdlc3QgZWRnZSBpcyBhdCB0aGF0IHZhbHVlIHdpdGhvdXQgdXBzY2FsaW5nLiAgQXNwZWN0IHJhdGlvIHdpbGwgYmUgbWFpbnRhaW5lZC4nOwokbGFuZ1snaW1hZ2VfdXJsX2hhc2NhY2hlZGlyJ10gPSAnRG9lcyB0aGUgVVJMIGFib3ZlIGFjb3VudCBmb3IgdGhlIGNhY2hlIHBhdGg/IGllLiAodXBsb2Fkcy9fQ0dTbWFydEltYWdlKSc7CiRsYW5nWydpbWFnZV91cmxfcHJlZml4J10gPSAnSW1hZ2UgVXJsIFByZWZpeCc7CiRsYW5nWydpbmZvX2NhY2hlX2FnZSddID0gJ1NwZWNpZnkgdGhlIG1heGltdW0gYWdlIG9mIGEgZmlsZSAoaW4gZGF5cykgYmVmb3JlIGl0IHdpbGwgYmUgcmVtb3ZlZCBhbmQgZm9yY2VkIHRvIHJlZ2VuZXJhdGUuICBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UgaGF2ZSBjaGFuZ2VkIHNvbWUgb2YgdGhlIHBhcmFtZXRlcnMgdXNlZCB3aGVuIGdlbmVyYXRpbmcgaW1hZ2VzLCBvciB0byBjb250cm9sIHRoZSBhbW91bnQgb2YgZGlzayBzcGFjZSB1c2VkLiAgRW50ZXJpbmcgMCB3aWxsIGRpc2FibGUgYXV0b21hdGljIGZpbGUgZGVsZXRpb24nOwokbGFuZ1snaW5mb19jYWNoZV9wYXRoJ10gPSAnQ2FjaGUgcGF0aCBmb3IgY2FjaGUgaW1hZ2VzIHRvIGJlIHN0b3JlZC4gQ2FjaGUgcGF0aCBpcyByZWxhdGl2ZSB0byBjb25maWcgcmVmZXJlbmNlICJyb290X3BhdGgiLic7CiRsYW5nWydpbmZvX2VtYmVkX21vZGUnXSA9ICdUaGlzIHNlbGVjdGlvbiBkZXRlcm1pbmVzIGhvdyB0aGUge3NtYXJ0aW1nfSB0YWcgd2lsbCBnZW5lcmF0ZSBvdXRwdXQuICBJZiAmcXVvdDtub25lJnF1b3Q7IGlzIHNlbGVjdGVkIG5vIGltYWdlIGVtYmVkZGluZyB3aWxsIGJlIHBlcmZvcm1lZC4gIElmICZxdW90O3NtYXJ0JnF1b3Q7IGlzIHNlbGVjdGVkIHRoZW4gdGhlIHN5c3RlbSB3aWxsIGRlY2lkZSBiYXNlZCBvbiB0aGUgaW1hZ2Ugc2l6ZSwgdHlwZSwgYW5kIHRoZSBicm93c2VyIHRoYXQgaXMgcmVxdWVzdGluZyB0aGUgaW1hZ2UuICBPdGhlciBvcHRpb25zIGluY2x1ZGUgYWx3YXlzIGVtYmVkZGluZyBiYXNlZCBvbiB0aGUgaW1hZ2Ugc2l6ZSwgb3IgdGhlIGltYWdlIHR5cGUuJzsKJGxhbmdbJ2luZm9fZW1iZWRfc2l6ZWxpbWl0J10gPSAnSWYgdGhlIGVtYmVkZGluZyBvcHRpb24gaXMgZGV0ZXJtaWVkIGJ5IHRoZSBpbWFnZSBzaXplLCBzcGVjaWZ5IHRoZSBtYXhpbXVtIHNpemUgKGluIGtpbG9ieXRlcykgZm9yIGltYWdlcyB0byBiZSBlbWJlZGRlZCAoMzIgaXMgcmVjb21tZW5kZWQpLic7CiRsYW5nWydpbmZvX2VtYmVkX3R5cGVzJ10gPSAnSWYgdGhlIGVtYmVkZGluZyBvcHRpb24gaXMgZGV0ZXJtaW5lZCBieSB0aGUgaW1hZ2UgdHlwZSwgc3BlY2lmeSB0aGUgZXh0ZW5zaW9ucyBvZiB0aGUgZmlsZXMgdGhhdCBzaG91bGQgYmUgZW1iZWRkZWQgaGVyZSBzZXBhcmF0ZWQgYnkgY29tbWFzLiAgVGhpcyBvcHRpb24gaXMgbm90IGNhc2Ugc2Vuc2l0aXZlJzsKJGxhbmdbJ2luZm9faW1hZ2VfdXJsX2hhc2NhY2hlZGlyJ10gPSAnSWYgeW91ciBDRE4gaXMgcG9pbnRpbmcgZGlyZWN0bHkgYXQgdGhlIGltYWdlIGNhY2hlIGRpcmVjdG9yeSB0aGVuIHlvdSBtYXkgd2FudCB0byB0dXJuIHRoaXMgb3B0aW9uIG9uLic7CiRsYW5nWydpbmZvX2ltYWdlX3VybF9wcmVmaXgnXSA9ICdTcGVjaWZ5IHRoZSBVUkwgdG8gcHJlZml4IHRvIGFsbCBnZW5lcmF0ZWQgaW1hZ2VzLiAgQnkgZGVmYXVsdCB0aGlzIGlzIHRoZSB1cGxvYWRzIFVSTCwgaG93ZXZlciBpZiB5b3UgaGF2ZSB5b3VyIG93biBDRE4gKG9yIG11bHRpcGxlIGRvbWFpbnMgcG9pbnRpbmcgYXQgdGhlIHNhbWUgZGlyZWN0b3J5KSBZb3UgbWF5IHdhbnQgdG8gc3BlY2lmeSBhIGRpZmZlcmVudCBuYW1lIGhlcmUnOwokbGFuZ1snaW5mb19wcm9ncmVzc2l2ZSddID0gJ0lmIGVuYWJsZWQsIEpQRUcgaW1hZ2VzIHdpbGwgYmUgc2F2ZWQgYXMgcHJvZ3Jlc3NpdmUgaW1hZ2VzLiAgVGhpcyBvcHRpb24gY2FuIGFsc28gYmUgb3ZlcnJpZGRlbiB3aXRoIHRoZSBwcm9ncmVzc2l2ZSBwYXJhbWV0ZXIuJzsKJGxhbmdbJ2luZm9fc3VwcHJlc3NfZXJyb3JzJ10gPSAnU3BlY2lmeSBhIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSAmcXVvdDtzaWxlbnQmcXVvdDsgcGFyYW1ldGVyJzsKCiMgTQokbGFuZ1snbWF4X2NhY2hlX2FnZSddID0gJ01heGltdW0gQ2FjaGUgRmlsZSBBZ2UgKGRheXMpJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnQSBzbWFydCBpbWFnZSB0YWcgZ2VuZXJhdGlvbiBtb2R1bGUgZm9yIENNU01TJzsKJGxhbmdbJ21zZ19hbGlhc2VzX3VwZGF0ZWQnXSA9ICdBbGlhc2VzIFVwZGF0ZWQnOwokbGFuZ1snbXNnX2NhY2hlY2xlYW5lZCddID0gJ0NhY2hlIGRpcmVjdG9yeSBjbGVhbmVkLiAlZCBmaWxlcyByZW1vdmVkJzsKJGxhbmdbJ21zZ19jYWNoZXJlbW92ZWQnXSA9ICdDYWNoZSBkaXJlY3RvcnkgY29tcGxldGVseSBjbGVhbmVkJzsKJGxhbmdbJ21zZ19wcmVmc3VwZGF0ZWQnXSA9ICdQcmVmZXJlbmNlcyBVcGRhdGVkJzsKCiMgTgokbGFuZ1snbm9uZSddID0gJ05vbmUnOwoKIyBPCiRsYW5nWydvcHRpb25zJ10gPSAnT3B0aW9ucyc7CgojIFAKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gPDw8RU9UClRoZSBhY3Rpb24gZm9yIHRoZSBtb2R1bGUgdG8gcGVyZm9ybS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6Cjx1bD4KICA8bGk+PHN0cm9uZz5kZWZhdWx0PC9zdHJvbmc+IC0gUGVyZm9ybSBtYW5pcHVsYXRpb24gb24gYSBzaW5nbGUgaW1hZ2UuPC9saT4KICA8bGk+cmVzcG9uc2l2ZSAtIE91dHB1dCBqYXZhc2NyaXB0IGNvZGUgdGhhdCB3aWxsIGNyZWF0ZSBhIGNvb2tpZSBwcm92aWRpbmcgdGhlIENHU21hcnRJbWFnZSBtb2R1bGUgd2l0aCBkZXZpY2Ugc2NyZWVuIHNpemUgYW5kIHBpeGVsIHJhdGlvLjwvbGk+CjwvdWw+CkVPVDsKJGxhbmdbJ3BhcmFtX2FsaWFzJ10gPSAnVGhlIENHU21hcnRJbWFnZSBhZG1pbiBwYW5lbCBhbGxvd3MgY3JlYXRpbmcgbnVtZXJvdXMgY29tbWFuZCBhbGlhcyB0byBjb21iaW5lIGEgZnJlcXVlbnRseSB1c2VkIHBhdHRlcm4gb2YgYXJndW1lbnRzIGludG8gb25lIG5hbWUuICBUbyB1c2UgdGhlc2UgYWxpYXNlcyB1c2UgYW4gYXJndW1lbnQgb2YgdGhlIGZvcm0gYWxpYXMjIz1hbGlhc19uYW1lIGkuZTogIGFsaWFzMT1mb28gYWxpYXMyPWZvby4nOwokbGFuZ1sncGFyYW1fYWx0J10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIHNwZWNpZnkgdGhlIHZhbHVlIGZvciB0aGUgYWx0IGF0dHJpYnV0ZS4gIE5vdGUsIGlmIHRoaXMgaXMgbm90IHNwZWNpZmllZCBhIHZhbHVlIHdpbGwgYmUgYXV0b21hdGljYWxseSBjYWxjdWxhdGVkIGZvciB0aGlzIGF0dHJpYnV0ZSBzbyB0aGF0IG1vc3QgZ2VuZXJhdGVkIGltZyB0YWdzIHdpbGwgdmFsaWRhdGUuICBZb3UgY2FuIG92ZXJyaWRlIHRoaXMgYXV0byBjYWxjdWxhdGlvbiB3aXRoIHRoZSAmcXVvdDtub2F1dG8mcXVvdDsgcGFyYW1ldGVyJzsKJGxhbmdbJ3BhcmFtX2F1dG9zY2FsZV9vcCddID0gJ092ZXJyaWRlIHRoZSBkZWZhdWx0IGZpbHRlciB0byBiZSB1c2VkIHdoZW4gYXV0b3NjYWxpbmcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlICJyZXNpemUiIGFuZCAiY3JvcHRvZml0Iic7CiRsYW5nWydwYXJhbV9jbGFzcyddID0gJ1VzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBhbGxvd3Mgc3BlY2lmeWluZyBvbmUgb3IgbW9yZSBjbGFzc2VzIHRvIGluY2x1ZGUgb24gdGhlIHRhZy4gIGkuZTogY2xhc3M9ImZhbmN5Ym94IHRodW1ibmFpbCInOwokbGFuZ1sncGFyYW1fZmlsdGVyX2JsdXInXSA9ICcoYW55dGhpbmcpIFNwZWNpZnkgYW55IHZhbHVlIGZvciB0aGlzIHBhcmFtZXRlciB0byBhZGQgYSBibHVyIGZpbHRlciB0byB0aGUgaW1hZ2UnOwokbGFuZ1sncGFyYW1fZmlsdGVyX2JyaWdodG5lc3MnXSA9ICcoaW50ZWdlcikgSW5jcmFzZSB0aGUgYnJpZ2h0bmVzcyBvZiB0aGUgcHJvY2Vzc2VkIGltYWdlIGJ5IHRoZSBpbnRlZ2VyIHZhbHVlIHNwZWNpZmllZCc7CiRsYW5nWydwYXJhbV9maWx0ZXJfY29sb3JpemUnXSA9ICcocixnLGJbLGFscGhhXSkgLSBMaWtlIGZpbHRlcl9ncmF5c2NhbGUgaG93ZXZlciB5b3UgY2FuIHNwZWNpZnkgdGhlIGNvbG9yIGFuZCBhbHBoYSB2YWx1ZSc7CiRsYW5nWydwYXJhbV9maWx0ZXJfY29udHJhc3QnXSA9ICcoaW50ZWdlcikgQ2hhbmdlIHRoZSBjb250cmFzdCBvZiB0aGUgaW1hZ2UgYnkgdGhlIGludGVnZXIgdmFsdWUgc3BlY2lmaWVkJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jcm9wJ10gPSAnKHBlcmNlbnRbLGhfYWxpZ24sdl9hbGlnbl0pIC0gUGVyZm9ybSBjcm9wcGluZyBvbiB0aGUgaW1hZ2Ugc3BlY2lmaWVkLiBDcm9wIHBhcmFtZWV0ZXJzIGFyZSBzcGVjaWZpZWQgYXMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBwYXJhbWV0ZXJzLiAgVGhlIGZpcnN0IChyZXF1aXJlZCkgdmFsdWUgaXMgYW4gaW50ZWdlciBwZXJjZW50YWdlIG9mIHRoZSBvcmlnaW5hbCBpbWFnZSBzaXplLiAgVGhlIG9wdGlvbmFsIHNlY29uZCBhbmQgdGhpcmQgcGFyYW1ldGVycyBhcmUgb25lIG9mIGwsYyxyIChsZWZ0LGNlbnRlcixyaWdodCkgYW5kIHQsYyxiICh0b3AsY2VudGVyLGJvdHRvbSkgc3BlY2lmeWluZyB3aGVyZSB0aGUgbG9jYXRpb24gd2l0aGluIHRoZSBzb3VyY2UgaW1hZ2UgdG8gY3JvcCBmcm9tLiAgaS5lOiBjcm9wPTMzLGIsciB0byBncmFiIGEgY3JvcCBvZiAzMyUgZnJvbSB0aGUgYm90dG9tIHJpZ2h0IG9mIHRoZSBzb3VyY2UgaW1hZ2UuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jcm9wdG9maXQnXSA9ICcod2lkdGgsaGVpZ2h0Wyxsb2NhdGlvblssdXBzY2FsZV1dKSAtIFBlcmZvcm0gYSBjcm9wdG9maXQgb24gdGhlIGltYWdlIHNwZWNpZmllZC4gVGhpcyBhdHRlbXB0cyB0byByZXNjYWxlIHRoZSBpbWFnZSB0byB0aGUgZGVzdGluYXRpb24gc2l6ZSB3aGlsZSByZXRhaW5pbmcgYXNwZWN0IHJhdGlvLCB0aGVuIGZvY3VzIG9uIHRoZSBzZWxlY3RlZCBhcmVhIG9mIHRoZSByZXNpemVkIGltYWdlLiAgQ3JvcCB0byBmaXQgcGFyYW1ldGVycyBhcmUgc3BlY2lmaWVkIGFzIHRoZSBkZXNpcmVkIHdpZHRoIGFuZCBoZWlnaHQgZm9yIHRoZSBkZXN0aW5hdGlvbiBpbWFnZSBhbG9uZyB3aXRoIGFuIChvcHRpb25hbCkgbG9jYXRpb24gY29kZSwgYW5kIHVwc2NhbGUgZmxhZy4gIHZhbGlkIGxvY2F0aW9uIGNvZGVzIGFyZSB0bCx0Yyx0cixjbCxjLGNyLGJsLGIsYnIgZm9yIHRoZSA5IHJlbGF0aXZlIHBvc2l0aW9ucyB3aXRoaW4gdGhlIGltYWdlLiAgSWYgYSBsb2NhdGlvbiBpcyBub3Qgc3BlY2lmaWVkIGEgcHJlZmVyZW5jZSB3aWxsIGJlIHVzZWQuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAmcXVvdDtjJnF1b3Q7IHRvIGNyb3AtdG8tZml0IGZyb20gdGhlIGNlbnRlciBvZiB0aGUgc291cmNlIGltYWdlLiAgQnkgZGVmYXVsdCB1cHNjYWxpbmcgaXMgZGlzYWJsZWQgb24gdGhpcyBmaWx0ZXIuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jcm9wMnNpemUnXSA9ICcod2lkdGgsaGVpZ2h0Wyxsb2NhdGlvbl0pIC0gUGVyZm9ybSBhIGNyb3Agb24gdGhlIGltYWdlIHNwZWNpZmllZC4gIFRoaXMgZmlsdGVyIHdpbGwgY29weSB0aGUgcG9ydGlvbiBvZiB0aGUgc291cmNlIGltYWdlIHNwZWNpZmllZCBpbnRvIHRoZSBkZXN0aW5hdGlvbiBpbWFnZS4gIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IHBhcmFtZXRlcnMgY2FuIGJlIG5vIGxhcmdlciB0aGFuIHRoZSBzaXplIG9mIHRoZSBzb3VyY2UgaW1hZ2UgKGFuZCB3aWxsIGJlIHRyaW1tZWQgYXMgc3VjaC4gIE5lZ2F0aXZlIHZhbHVlcyBhcmUgbm90IHBlcm1pdHRlZC4gIFZhbGlkIGxvY2F0aW9ucyBhcmU6IGwsdGMsdHIsY2wsYyxjcixibCxiYyxiciBmb3IgdGhlIDkgcmVsYXRpdmUgcG9zaXRpb25zIHdpdGhpbiB0aGUgaW1hZ2UuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9lZGdlZGV0ZWN0J10gPSAnKGFueXRoaW5nKSBIaWxpZ2h0IHRoZSBlZGdlcyBpbiB0aGUgaW1hZ2UnOwokbGFuZ1sncGFyYW1fZmlsdGVyX2VtYm9zcyddID0gJyhhbnl0aGluZykgRW1ib3NzIHRoZSBpbWFnZSc7CiRsYW5nWydwYXJhbV9maWx0ZXJfZmxpcCddID0gJyhtb2RlKSAtIFBlcmZvcm0gYSBmbGlwIG9uIHRoZSBzcGVjaWZpZWQgaW1hZ2UuICBTcGVjaWZ5IDAgZm9yIGhvcml6b250YWwsIDEgZm9yIHZlcnRpY2FsLCBhbmQgMiBmb3IgZmxpcCBpbiBib3RoIGRpcmVjdGlvbnMuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9ub29wJ10gPSAnKGFueXRoaW5nKSBEbyBubyBwcm9jZXNzaW5nIChidXQgdHJpZ2dlcnMgYSBjYWNoZWQgaW1hZ2UpJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9ncmF5c2NhbGUnXSA9ICcoYW55dGhpbmcpIENvbnZlcnQgdGhlIGltYWdlIHRvIGdyYXlzY2FsZSc7CiRsYW5nWydwYXJhbV9maWx0ZXJfbWVhbnJlbW92YWwnXSA9ICcoYW55dGhpbmcpIEF0dGVtcHQgdG8gYWNoaWV2ZSBhICZxdW90O3NrZXRjaHkmcXVvdDsgZWZmZWN0JzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9uZWdhdGUnXSA9ICcoYW55dGhpbmcpIE5lZ2F0ZSB0aGUgaW1hZ2UnOwokbGFuZ1sncGFyYW1fZmlsdGVyX3BpeGVsYXRlJ10gPSAnKHNpemVbLGFkdmFuY2VkXSkgUGl4ZWxhdGUgdGhlIGltYWdlLCBzcGVjaWZ5IGFuIGludGVnZXIgc2l6ZSBhbmQgYW4gb3B0aW9uYWwgYm9vbGVhbiAoZGVmYXVsdCBpcyBmYWxzZSkgdG8gZW5hYmxlIGFkdmFuY2VkIHBpeGVsYXRpb24nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3JlZmxlY3QnXSA9ICcoW3JlZmxlY3Rpb25faGVpZ2h0WyxyZWZsZWN0aW9uX29wYWNpdHlbLGRpdmlkZXJfaGVpZ2h0XV1dKSwgQ3JlYXRlcyByZWZsZWN0aW9uIG9mIGltYWdlLCBjdXJyZW50bHkgd29ya2luZyBvbmx5IHdpdGgganBnLGpwZWcgaW1hZ2VzIGFnYWluc3Qgd2hpdGUgYmFja2dyb3VuZC4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3Jlc2l6ZSddID0gJ3R5cGUsbnVtYmVyWyxudW1iZXJbLHVwc2NhbGVdXSAtIFBlcmZvcm0gYSByZXNpemUgb2YgdGhlIHNvdXJjZSBpbWFnZS4gIEJ5IGRlZmF1bHQsIHRoZSByZXNpemUgZmlsdGVyIGFsbG93cyB1cHNjYWxpbmcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOgo8dWw+CiAgPGxpPnAsbnVtYmVyIC0gUGVyZm9ybSBhIHNpbXBsZSByZXNjYWxlIHRvIGEgY2VydGFpbiBwZXJjZW50YWdlLiAgaS5lOiAgcmVzaXplPXAsNTAgdG8gcmVzaXplIHRvIDUwJSBvZiB0aGUgb3JpZ2luYWwgc2l6ZS48L2xpPgogIDxsaT5wLG51bWJlciwwIC0gUGVyZm9ybSBhIHNpbXBsZSByZXNjYWxlIHRvIGEgY2VydGFpbiBwZXJjZW50YWdlLiAgaS5lOiAgcmVzaXplPXAsNTAgdG8gcmVzaXplIHRvIDUwJSBvZiB0aGUgb3JpZ2luYWwgc2l6ZS4gRG8gbm90IGFsbG93IHVwc2NhbGluZzwvbGk+CiAgPGxpPncsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCB3aWR0aCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPXcsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIHdpZHRoIG9mIDgwIHBpeGVscy48L2xpPgogIDxsaT53LG51bWJlciwwIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCB3aWR0aCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPXcsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIHdpZHRoIG9mIDgwIHBpeGVscy4gRG8gbm90IGFsbG93IHVwc2NhbGluZzwvbGk+CiAgPGxpPmgsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCBoZWlnaHQgKHdoaWxlIHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiBpLmU6IHJlc2l6ZT1oLDgwIHRvIGNyZWF0ZSBhIHRodW1ibmFpbCB3aXRoIGEgbWF4aW11bSBoZWlnaHQgb2YgODAgcGl4ZWxzLjwvbGk+CiAgPGxpPmgsbnVtYmVyLDAgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgc3BlY2lmaWVkIGhlaWdodCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPWgsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIGhlaWdodCBvZiA4MCBwaXhlbHMuIERvIG5vdCBhbGxvdyB1cHNjYWxpbmc8L2xpPgogIDxsaT5lLG51bWJlciAtIFBlcmZvcm0gYSByZXNpemUgcmVzaXppbmcgdGhlIGxhcmdlc3QgZWRnZSB0byB0aGUgc3BlY2lmaWVkIHZhbHVlICh3aGlsZSByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gaS5lOiByZXNpemU9ZSwxMDAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdob3MgbGFyZ2VzdCBlZGdlIGlzIDEwMCBwaXhlbHMuPC9saT4KICA8bGk+ZSxudW1iZXIsMCAtIFBlcmZvcm0gYSByZXNpemUgcmVzaXppbmcgdGhlIGxhcmdlc3QgZWRnZSB0byB0aGUgc3BlY2lmaWVkIHZhbHVlICh3aGlsZSByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gaS5lOiByZXNpemU9ZSwxMDAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdob3MgbGFyZ2VzdCBlZGdlIGlzIDEwMCBwaXhlbHMuICBEbyBub3QgYWxsb3cgdXBzY2FsaW5nLjwvbGk+CiAgPGxpPmMseCx5IC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIGN1c3RvbSBzaXplICh3aXRob3V0IHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgaS5lOiBmaWx0ZXJfcmVzaXplPWMsNTAsNzUgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHRoYXQgaXMgNTB4NzUgcGl4ZWxzLjwvbGk+LgogIDxsaT5jLHgseSwwIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIGN1c3RvbSBzaXplICh3aXRob3V0IHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgaS5lOiBmaWx0ZXJfcmVzaXplPWMsNTAsNzUgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHRoYXQgaXMgNTB4NzUgcGl4ZWxzLiBEbyBub3QgYWxsb3cgdXBzY2FsaW5nLjwvbGk+Lgo8L3VsPic7CiRsYW5nWydwYXJhbV9maWx0ZXJfcmVzaXpldG9maXQnXSA9ICcod2lkdGgsaGVpZ2h0Wyxjb2xvclssYWxwaGFdXSkgLSBQZXJmb3JtIGEgcmVzaXplIG9uIHRoZSBpbWFnZSBzcGVjaWZpZWQuIFRoaXMgYXR0ZW1wdHMgdG8gcmVzY2FsZSB0aGUgaW1hZ2UgdG8gdGhlIGRlc3RpbmF0aW9uIHNpemUgd2hpbGUgcmVhdGluaW5nIGFzcGVjdCByYXRpbywgdGhlIGltYWdlIGlzIGNlbnRlcmVkIGluIHRoZSBib3ggc3BlY2lmaWVkIChlaXRoZXIgaG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgZGVwZW5kaW5nIHVwb24gYXNwZWN0IHJhdGlvIGFuZCB0aGUgZGVzdGluYXRpb24gc2l6ZSwgYW5kIHRoZSBpbWFnZSBpcyBzdXJyb3VuZGVkIGJ5IHRoZSBzdXBwbGllZCBjb2xvci4gIENvbG9ycyBjYW4gYmUgc3BlY2lmaWVkIGJ5IG5hbWUgKHNlZSB0aGUgWDExIGNvbG9yIG5hbWVzKSwgb3IgYnkgI25ubm5ubiBoZXhhZGVjaW1hbCBmb3JtYXQsIG9yIGFzIHJnYiB2YWx1ZXMgc2VwYXJhdGVkIGJ5IGEgOiBpLmU6ICBmaWx0ZXJfY3JvcHRvZml0PTYwMCw0MDAsI2ZmMDAwMC4gIFRoZSBzcGVjaWFsIGNvbG9yIHZhbHVlICZxdW90O3RyYW5zcGFyZW50JnF1b3Q7IGNhbiBiZSBzcGVjaWZpZWQgdG8gZm9yY2UgdGhlIGJhY2tncm91bmQgdG8gYmUgdHJhbnNwYXJlbnQgKGZvciBpbWFnZSB0eXBlcyB0aGF0IHN1cHBvcnQgaXQpLiAgIEFuIGFscGhhIHZhbHVlIG1heSBiZSBzcGVjaWZpZWQgYmV0d2VlbiAwIGFuZCAxMjcgdG8gc3BlY2lmeSBkaWZmZXJlbnQgZGVncmVlcyBvZiB0cmFuc2x1Y2VuY3kgZm9yIHRoZSBiYWNrZ3JvdW5kLiAgIEF0IG5vIHRpbWUgd2lsbCB0aGlzIHBsdWdpbiBwZXJmb3JtIGFueSB1cHNjYWxpbmcuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yb3RhdGUnXSA9ICcoYW5nbGUpIFNwZWNpZnkgdGhlIGludGVnZXIgYW5nbGUgKGNvdW50ZXIgY2xvY2t3aXNlKSB0byByb3RhdGUgdGhlIGltYWdlLCBUaGUgaW1hZ2UgaXMgcm90YXRlZCBhYm91dCBpdHMgY2VudGVyLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfcm91bmRlZGNvcm5lcnMnXSA9ICcocmFkaXVzWyxjb2xvcl0pIFNwZWNpZnkgYW4gaW50ZWdlciByYWRpdXMgKGluIHBpeGVscykgZm9yIHJvdW5kaW5nIHRoZSBjb3JuZXJzLiAgT3B0aW9uYWxseSBzcGVjaWZ5IGEgY29sb3IgZm9yIHRoZSByb3VuZGVkIGNvcm5lcnMuICBUaGUgc3BlY2lhbCB2YWx1ZSBpZiAmcXVvdDt0cmFuc3BhcmVudCZxdW90OyBmb3IgdGhlIGNvbG9yIHdpbGwgZm9yY2UgdGhlIGltYWdlIHRvIGJlIGNvbnZlcnRlZCB0byBhIHBuZyBhbmQgYSB0cmFuc3BhcmVudCBjb2xvciB1c2VkLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfc2hhcnBlbiddID0gJyhpbnRlZ2VyKSBTcGVjaWZ5IGFuIGFkanVzdG1lbnQgKGJldHdlZW4gLTEwIGFuZCAxMCkgdG8gdGhlIHNoYXJwZW4gZmlsdGVyLiAgTG93ZXIgdmFsdWVzIHdpbGwgbGlnaHRlbiB0aGUgc2hhcnBlbmluZyBlZmZlY3QuICBIaWdoZXIgdmFsdWVzIGluY3JlYXNlIGl0LiAgTm90ZTogc2hhcnBlbmluZyBtYXkgaGF2ZSBhZHZlcnNlIGVmZmVjdHMgb24gc29tZSBpbWFnZXMsIGFuZCBzaG91bGQgdXN1YWxseSBiZSBzcGVjaWZpZWQgYXMgdGhlIGxhc3QgZmlsdGVyLCB1bmxlc3MgdGhlIGZpbHRlciBtYXkgYWRkIGJvcmRlcnMgdG90aGUgaW1hZ2UuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl90cmFuc3BhcmVudCddID0gJyhjb2xvclssYWxwaGFdKSBDb252ZXJ0cyBhIGpwZWcgaW1hZ2UgdG8gdHJhbnNwYXJlbnQgUE5HIGJ5IGNvbnZlcnRpbmcgYWxsIG9mIHRoZSBwaXhlbHMgb2YgdGhlIHNwZWNpZmllZCBjb2xvciB0byB0aGUgdHJhbnNwYXJlbnQgY29sb3IuICBPcHRpb25hbGx5LCBhbiBhbHBoYSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEyNyBjYW4gYmUgc3BlY2lmaWVkIHRvIGluZGljYXRlIHNvbWUgYWxwaGEgbGV2ZWwgYmxlbmRpbmcnOwokbGFuZ1sncGFyYW1fZmlsdGVyX3VudHJhbnNwYXJlbnQnXSA9ICcoY29sb3JbLHBlcmNlbnRdKSBDb252ZXJ0cyBhIHRyYW5zcGFyZW50IHBuZyBpbWFnZSB0byBhIGpwZWcgaW1hZ2UgYnkgY29weWluZyBhIHRyYW5zcGFyZW50L2FscGhhIGJsZW5kZWQgcG5nIG92ZXJ0b3Agb2YgYW4gaW1hZ2Ugb2YgdGhlIGFwcHJvcHJpYXRlIGNvbG9yLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfd2F0ZXJtYXJrJ10gPSAnKGJvb2x8c3RyaW5nKSwgU3BlY2lmeSB0aGF0IHRoZSB3YXRlcm1hcmsgKGFzIHNwZWNpZmllZCBpbiB0aGUgQ0dFeHRlbnNpb25zIGFkbWluIHBhbmVsKSBzaG91bGQgYmUgYXBwbGllZCB0byB0aGUgaW1hZ2UuICBBbiBvcHRvbmFsIHN0cmluZyBjYW4gYmUgc3BlY2lmaWVkIHRvIGFsbG93IGN1c3RvbWl6aW5nIHRoZSB0ZXh0IGluIHRoZSB3YXRlcm1hcmsuICBUaGUgc3RyaW5nIGNhbm5vdCBjb250YWluIEhUTUwgY2hhcmFjdGVycywgYW5kIGNhbm5vdCBiZSBtb3JlIHRoYW4gNTAgY2hhcmFjdGVycyBpbiBsZW5ndGggKGl0IHdpbGwgYmUgdHJpbW1lZCkuICBOb3RlLCAgZGVwZW5kaW5nIG9uIGltYWdlIHNpemUsIGFuZCB3YXRlcm1hcmsgc2V0dGluZ3MgdGhlIHRleHQgbWF5IG5vdCBiZSB2aXNpYmxlIG9yIG1heSBiZSBjbGlwcGVkIGJ5IHRoZSBpbWFnZS4nOzsKJGxhbmdbJ3BhcmFtX2ZvcmNlZXh0J10gPSAnKGludGVnZXIpIEVuYWJsZSAob3IgZGlzYWJsZWQpIHRoZSBmb3JjaW5nIG9mIGFsbCBnZW5lcmF0ZWQgaW1hZ2UgZmlsZXMgdG8gaGF2ZSBmaWxlIGV4dGVuc2lvbnMuICBEZXBlbmRpbmcgdXBvbiB0aGUgc291cmNlIGltYWdlLCBhbmQgdGhlIGZpbHRlcnMgYW5kIHBhcmFtZXRlcnMgdXNlZCwgdGhlIGdlbmVyYXRlZCBleHRlbnNpb24gbWF5IG5vdCBhY2N1cmF0ZWx5IHJlcHJlc2VudCB0aGUgYWN0dWFsIGNvbnRlbnRzIG9mIHRoZSBmaWxlJzsKJGxhbmdbJ3BhcmFtX2ZvcmNldHlwZSddID0gJyhzdHJpbmcpIEZvcmNlIHRoZSBvdXRwdXQgaW1hZ2UgdG8gYmUgc2F2ZWQgaW4gdGhlIHNwZWNpZmllZCBpbWFnZSB0eXBlLCBpbmRlcGVuZGVudCBvZiB0aGUgc291cmNlIGltYWdlLCBmaWx0ZXJzLCBhbmQgcGFyYW1ldGVycy4gIFZhbGlkIHZhbHVlcyBhcmU6IGpwZWcscG5nLGdpZi4gTm90ZTogRHVlIHRvIHRoZSBjYXBhYmlsaXRpZXMgb2Ygc29tZSBpbWFnZSBmb3JtYXRzLCBzdXJwcmlzaW5nIGVmZmVjdHMgY2FuIG9jY3VyLiAgUGFydGljdWxhcmx5LCBmb3JjaW5nIGEgdHJhbnNwYXJlbnQgUE5HIHRvIHNhdmUgaW4gSlBFRyBmb3JtYXQgd2lsbCByZXN1bHQgaW4gYWxsIHRyYW5zcGFyZW5jeSBiZWluZyBsb3N0Lic7CiRsYW5nWydwYXJhbV9oZWlnaHQnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSBoZWlnaHQgYXR0cmlidXRlLiAgTm90ZSwgaWYgdGhpcyBpcyBub3Qgc3BlY2lmaWVkIGEgdmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoaXMgYXR0cmlidXRlIHNvIHRoYXQgbW9zdCBnZW5lcmF0ZWQgaW1nIHRhZ3Mgd2lsbCB2YWxpZGF0ZS4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBhdXRvIGNhbGN1bGF0aW9uIHdpdGggdGhlICZxdW90O25vYXV0byZxdW90OyBwYXJhbWV0ZXIuICBUaGlzIHBhcmFtZXRlciB3aWxsIGFsc28gYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAmcXVvdDt3aWR0aCZxdW90OyBwYXJhbWV0ZXIgdG8gcGVyZm9ybSBhIGZpbmFsIHJlc2l6aW5nIG9yIGNyb3B0b2ZpdCBmaWx0ZXIgKHVubGVzcyB0aGUgJnF1b3Q7bm9hdXRvc2NhbGUmcXVvdDsgcGFyYW1ldGVyIGlzIGFsc28gc3VwcGxpZWQpJzsKJGxhbmdbJ3BhcmFtX2lkJ10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIGFsbG93cyBzcGVjaWZ5aW5nIGFuIGlkIGF0dHJpYnV0ZSB0byBpbmNsdWRlIG9uIHRoZSB0YWcuICBpLmU6IGlkPSJzb21ldGFnIic7CiRsYW5nWydwYXJhbV9tYXhfaGVpZ2h0J10gPSAnVGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBtYXhpbXVtIGhlaWdodCBmb3IgdGhlIGNvbnZlcnRlZCBpbWFnZXMuJzsKJGxhbmdbJ3BhcmFtX21heF93aWR0aCddID0gJ1RoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbWF4aW11bSB3aWR0aCBmb3IgdGhlIGNvbnZlcnRlZCBpbWFnZXMuJzsKJGxhbmdbJ3BhcmFtX25hbWUnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSBuYW1lIGF0dHJpYnV0ZS4nOwokbGFuZ1sncGFyYW1fbm9hdXRvJ10gPSAnRG8gbm90IGF1dG9tYXRpY2FsbHkgY2FsY3VsYXRlIHBhcmFtZXRlcnMgZm9yIHRoZSBpbWcgdGFnLiAgVGhpcyBtYXkgY2F1c2UgeW91ciBzaXRlIHRvIGZhaWwgdmFsaWRhdGlvbiBpZiBzb21lIHJlcXVpcmVkIHBhcmFtZXRlcnMgKHdpZHRoLGhlaWdodCxhbHQpIGFyZSBub3Qgc3BlY2lmaWVkLiAgQWRkaXRpb25hbGx5LCBpZiB0aGUgd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIGFyZSBzcGVjaWZpZWQsIHRoaXMgcGFyYW1ldGVyIHdpbGwgZW5zdXJlIHRoYXQgdGhleSB3aWxsIG5vdCBiZSBvdmVycmlkZGVuIGJ5IHRoZSBhY3R1YWwgc2l6ZSBvZiB0aGUgcHJvY2Vzc2VkIGltYWdlLic7CiRsYW5nWydwYXJhbV9ub2F1dG9zY2FsZSddID0gJ0lmIHdpZHRoIGFuZCBoZWlnaHQgcGFyYW1ldGVycyBhcmUgc3BlY2lmaWVkLCB0aGlzIHBhcmFtZXRlciB3aWxsIGRpc2FibGUgYXV0b21hdGljIHNjYWxpbmcgb2YgdGhlIGltYWdlLiAgVGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBkaXNhYmxlZCBmb3IgbW9iaWxlIGJyb3dzZXJzJzsKJGxhbmdbJ3BhcmFtX25vYmNhY2hlJ10gPSAnRG8gbm90IGFsbG93IHRoZSByZXNpemVkIGltYWdlIHRvIGNhY2hlIGluIHRoZSBicm93c2VyICh1c2VmdWwgZm9yIGRldmVsb3BtZW50IHB1cnBvc2VzKSB0aGlzIGFkZHMgYSB1bmlxdWUgbnVtYmVyIGFzIGEgcGFyYW1ldGVyIHRvIHRoZSBpbWFnZSB3aGljaCB3aWxsIGZvcmNlIHRoZSBicm93c2VyIG5vdCB0byBjYWNoZSB0aGUgaW1hZ2UuJzsKJGxhbmdbJ3BhcmFtX25vYnJlYWtwb2ludHMnXSA9ICdGb3IgcmVzcG9uc2l2ZSBpbWFnZSBoYW5kbGluZywgZGlzYWJsZSBicmVha3BvaW50cyBhbmQgZm9yY2UgcmVndWxhciByZXNpemUgaGFuZGxpbmcgZm9yIGltYWdlcyBvbiBtb2JpbGUgYnJvd3NlcnMuJzsKJGxhbmdbJ3BhcmFtX25vZHByYWRqdXN0J10gPSAnRm9yIHJlc3BvbnNpdmUgaW1hZ2UgaGFuZGxpbmcsIGRvIG5vdCBhZGp1c3QgdGhlIHNpemUgb2YgYSBzY2FsZWQgaW1hZ2UgYmFzZWQgb24gdGhlIGRldmljZSBwaXhlbCByYXRpbyBmcm9tIHRoZSByZXNwb25zaXZlIGluZm9ybWF0aW9uLic7CiRsYW5nWydwYXJhbV9ub2VtYmVkJ10gPSAnRm9yY2UgdGhlIGltYWdlIHRvIG5vdCBlbWJlZC4gIFJlZ2FyZGxlc3Mgb2Ygc2V0dGluZ3MgaW4gdGhlIGFkbWluIHBhbmVsLCB0aGUgVVJMIGFuZCB0YWcgZ2VuZXJhdGVkIHdpbGwgYmUgdG8gYSBmaWxlIG9uIHRoZSBzZXJ2ZXIuICBObyBlbWJlZGRpbmcgd2lsbCBiZSBwZXJmb3JtZWQnOwokbGFuZ1sncGFyYW1fbm90aW1lY2hlY2snXSA9ICdEaXNhYmxlIHRpbWUgY2hlY2tpbmcgb2YgY2FjaGVkIGZpbGVzLic7CiRsYW5nWydwYXJhbV9ub3JlbW90ZSddID0gJ0RvIG5vdCBhbGxvdyByZXRyaWV2aW5nIHNvdXJjZXMgZnJvbSByZW1vdGUgVVJMUyc7CiRsYW5nWydwYXJhbV9ub3Jlc3BvbnNpdmUnXSA9ICdUdXJuIG9mZiBhbGwgcmVzcG9uc2l2ZSBpbWFnZSBoYW5kbGluZyBmb3IgdGhpcyBvcGVyYXRpb24uJzsKJGxhbmdbJ3BhcmFtX25vcm90YXRlJ10gPSAnRG8gbm90IGF0dGVtcHQgdG8gcmVhZCBleGlmIGluZm9ybWF0aW9uIGZyb20gdGhlIGZpbGUgYW5kIGNvcnJlY3QgaW1hZ2Ugcm90YXRpb24nOwokbGFuZ1sncGFyYW1fbm90YWcnXSA9ICdEbyBub3Qgb3V0cHV0IGFuIGltZyB0YWcsIG9ubHkgdGhlIHVybCB0byB0aGUgY2FjaGVkIGltYWdlLiAgVGhpcyBoYXMgbm8gZWZmZWN0IHdoZW4gQ0dTbWFydEltYWdlIGlzIHVzZWQgZnJvbSB3aXRoaW4gYSBzdHlsZXNoZWV0Lic7CiRsYW5nWydwYXJhbV9vdmVyd3JpdGUnXSA9ICdEaXNhYmxlIGFsbCBjYWNoaW5nIGFuZCBmb3JjZSByZS1jYWxjdWxhdGlvbiBvZiBhbGwgZmlsdGVycyc7CiRsYW5nWydwYXJhbV9wcm9ncmVzc2l2ZSddID0gJyhib29sZWFuKSBUb2dnbGUgc2F2aW5nIGpwZWcgaW1hZ2VzIGluIHByb2dyZXNzaXZlIGZvcm1hdC4gIFRoaXMgcGFyYW1ldGVyIHdpbGwgb3ZlcnJpZGUgdGhlIHByZWZlcmVuY2UgaW4gdGhlIG1vZHVsZXMgYWRtaW4gcGFuZWwuICBBcHBsaWVzIG9ubHkgdG8gSlBFRyBpbWFnZXMuJzsKJGxhbmdbJ3BhcmFtX3F1YWxpdHknXSA9ICdTcGVjaWZ5IHRoZSBxdWFsaXR5IG9mIHRoZSBvdXRwdXQgaW1hZ2UuICBBIHZhbHVlIGJldHdlZW4gMCBhbmQgMTAwLiAgVGhlIGRlZmF1bHQgdmFsdWUgaWYgbm90IHNwZWNpZmllZCBpcyA3NS4nOwokbGFuZ1sncGFyYW1fcmVsJ10gPSAnVXNlZCB3aGVuIGJ1aWxkaW5nIGFuIGltYWdlIHRhZyBhbGxvd3Mgc3BlY2lmeWluZyBhbiBvcHRpb25hbCByZWwgYXR0cmlidXRlICh0eXBpY2FsbHkgdXNlZCB3aXRoIGphdmFzY3JpcHQgdHlwZSBhbGJ1bXMpLiBpLmU6IHJlbD0iYWxidW0iJzsKJGxhbmdbJ3BhcmFtX3NpbGVudCddID0gJ1NpbGVudGx5IGlnbm9yZSBlcnJvcnMnOwokbGFuZ1sncGFyYW1fc3JjJ10gPSAnU3BlY2lmeSB0aGUgc291cmNlIGZvciB0aGUgaW1hZ2UgcHJvY2Vzc2luZyAoaWYgYW55KSBvciB0aGUgZ2VuZXJhdGVkIGltZyB0YWcuICBOb3RlLCB0aGlzIHBhcmFtZXRlciBpcyBmbGV4aWJsZSwgYW5kIHRoZSBtb2R1bGUgd2lsbCBhdHRlbXB0IG1hbnkgbWV0aG9kcyB0byBmaW5kIHRoZSBzb3VyY2UgaW1hZ2UgZmlsZSBvbiB0aGUgd2ViIHNlcnZlciBhcyBmb2xsb3dzOgo8dWw+CiAgPGxpPkZpcnN0IGxvb2sgdG8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgc3JjIHZhbHVlIGV4aXN0cyBhcyBhIGZpbGUgb24gdGhlIGZpbGVzeXN0ZW0gPHN0cm9uZz5CZWxvdyB0aGUgQ01TTVMgcm9vdCBVUkw8L3N0cm9uZz48L2xpPgogIDxsaT5OZXh0LCBjaGVjayBpZiB0aGUgdmFsdWUgc3BlY2lmaWVkIGZvciB0aGUgc3JjIHBhcmFtZXRlciBpcyBhIFVSTCBhbmQgYmVnaW5zIHdpdGggdGhlIHVwbG9hZHNfdXJsIChhcyBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZy5waHApPC9saT4KICA8bGk+TmV4dCwgY2hlY2sgaWYgdGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgdGhlIHNyYyBwYXJhbWV0ZXIgaXMgYSBVUkwgYW5kIGJlZ2lucyB3aXRoIHRoZSByb290X3VybCAoYXMgc3BlY2lmaWVkIGluIHRoZSBjb25maWcucGhwKTwvbGk+CiAgPGxpPk5leHQsIGNoZWNrIGlmIHRoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yIHRoZSBzcmMgcGFyYW1ldGVyIGlzIGEgVVJMIGFuZCBiZWdpbnMgd2l0aCB0aGUgc3NsX3VybCAoYXMgc3BlY2lmaWVkIGluIHRoZSBjb25maWcucGhwKTwvbGk+CjwvdWw+Ckl0IGlzIGFsc28gcG9zc2libGUgdG8gc3BsaXQgdGhlIHNyYyBwYXJhbWV0ZXIgaW50byBtdWx0aXBsZSBhcmd1bWVudHMsIHdoaWNoIGlzIHVzZWZ1bCBmb3IgZXhhbXBsZSB3aGVuIHRoZSBwYXRoIHRvIHRoZSBmaWxlLCBhbmQgdGhlIGZpbGVuYW1lIGFyZSBzdG9yZWQgaW4gc2VwYXJhdGUgc21hcnR5IHZhcmlhYmxlcy4gICBZb3UgY2FuIHNwZWNpZnkgdGhlIHNyYyBhcyBzcmMxPVwkdGhlX3BhdGggc3JjMj1cJHRoZV9maWxlbmFtZS4gIFRoZSBzeXN0ZW0gd2lsbCBhdXRvbWF0aWNhbGx5IGFkZCBhIC8gaW4gYmV0d2VlbiBlYWNoIGFyZ3VtZW50LiAgVGhlcmUgaXMgbm8gbGltaXQgdG8gdGhlIG51bWJlciBvZiBzcmMgcGFyYW1ldGVycy4nOwokbGFuZ1sncGFyYW1fc3R5bGUnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgYWxsb3dzIHNwZWNpZnlpbmcgYWx0ZXJuYXRlIHN0eWxlcyBmb3IgdGhlIHRhZy4gIGkuZTogc3R5bGU9ImJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyInOwokbGFuZ1sncGFyYW1fdGl0bGUnXSA9ICdTcGVjaWZ5IGFuIG9wdGlvbmFsIHRpdGxlIGF0dHJpYnV0ZSBmb3IgdGhlIGltZyB0YWcuICBpLmU6IHRpdGxlPSJUaGlzIGlzIHRoZSB0b29sdGlwIic7CiRsYW5nWydwYXJhbV93aWR0aCddID0gJ1VzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBzcGVjaWZ5IHRoZSB2YWx1ZSBmb3IgdGhlIHdpZHRoIGF0dHJpYnV0ZS4gICBOb3RlLCBpZiB0aGlzIGlzIG5vdCBzcGVjaWZpZWQgYSB2YWx1ZSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY2FsY3VsYXRlZCBmb3IgdGhpcyBhdHRyaWJ1dGUgc28gdGhhdCBtb3N0IGdlbmVyYXRlZCBpbWcgdGFncyB3aWxsIHZhbGlkYXRlLiAgWW91IGNhbiBvdmVycmlkZSB0aGlzIGF1dG8gY2FsY3VsYXRpb24gd2l0aCB0aGUgJnF1b3Q7bm9hdXRvJnF1b3Q7IHBhcmFtZXRlci4gIFRoaXMgcGFyYW1ldGVyIHdpbGwgYWxzbyBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlICZxdW90O2hlaWdodCZxdW90OyBwYXJhbWV0ZXIgdG8gcGVyZm9ybSBhIGZpbmFsIHJlc2l6aW5nIG9yIGNyb3B0b2ZpdCBmaWx0ZXIgKHVubGVzcyB0aGUgJnF1b3Q7bm9hdXRvc2NhbGUmcXVvdDsgcGFyYW1ldGVyIGlzIGFsc28gc3VwcGxpZWQpJzsKCiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ01vZHVsZSBpbnN0YWxsZWQnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0FsbCBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1vZHVsZSBoYXMgYmVlbiByZW1vdmVkJzsKJGxhbmdbJ3Byb21wdF9hdXRvc2NhbGVfb3AnXSA9ICdEZWZhdWx0IGF1dG9zY2FsZSBmaWx0ZXIgb3BlcmF0aW9uJzsKJGxhbmdbJ3Byb21wdF9jcm9wdG9maXRfZGVmYXVsdF9sb2MnXSA9ICdEZWZhdWx0IGxvY2F0aW9uIGZyb20gd2hpY2ggdG8gJnF1b3Q7Y3JvcCB0byBmaXQmcXVvdDsnOwokbGFuZ1sncHJvbXB0X2VtYmVkX3NpemVsaW1pdCddID0gJ0Jhc2VkIG9uIGltYWdlIHNpemUnOwokbGFuZ1sncHJvbXB0X2VtYmVkX3NtYXJ0bGltaXRlZCddID0gJ1NtYXJ0IG1vZGUgYnV0IGxpbWl0IGltYWdlIHNpemUnOwokbGFuZ1sncHJvbXB0X2VtYmVkX3R5cGUnXSA9ICdCYXNlZCBvbiBpbWFnZSB0eXBlJzsKJGxhbmdbJ3Byb21wdF9mb3JjZV9leHRlbnNpb24nXSA9ICdGb3JjZSBhbGwgb3V0cHV0IGZpbGVzIHRvIGhhdmUgYSBmaWxlIGV4dGVuc2lvbic7CiRsYW5nWydwcm9tcHRfbG9jX2JvdHRvbWxlZnQnXSA9ICdCb3R0b20gTGVmdCAoYmwpJzsKJGxhbmdbJ3Byb21wdF9sb2NfYm90dG9tY2VudGVyJ10gPSAnQm90dG9tIENlbnRlciAoYmMpJzsKJGxhbmdbJ3Byb21wdF9sb2NfYm90dG9tcmlnaHQnXSA9ICdCb3R0b20gUmlnaHQgKGJyKSc7CiRsYW5nWydwcm9tcHRfbG9jX2NlbnRlcmxlZnQnXSA9ICdDZW50ZXIgTGVmdCAoY2wpJzsKJGxhbmdbJ3Byb21wdF9sb2NfY2VudGVyJ10gPSAnQ2VudGVyIChjKSc7CiRsYW5nWydwcm9tcHRfbG9jX2NlbnRlcnJpZ2h0J10gPSAnQ2VudGVyIFJpZ2h0IChjbCknOwokbGFuZ1sncHJvbXB0X2xvY190b3BsZWZ0J10gPSAnVG9wIExlZnQgKHRsKSc7CiRsYW5nWydwcm9tcHRfbG9jX3RvcGNlbnRlciddID0gJ1RvcCBDZW50ZXIgKHRjKSc7CiRsYW5nWydwcm9tcHRfbG9jX3RvcHJpZ2h0J10gPSAnVG9wIFJpZ2h0ICh0ciknOwokbGFuZ1sncHJvbXB0X3Byb2dyZXNzaXZlJ10gPSAnU2F2ZSBKUEcgaW1hZ2VzIGFzIHByb2dyZXNzaXZlJzsKCiMgUgokbGFuZ1sncmVzaXplJ10gPSAnUmVzaXplJzsKJGxhbmdbJ3Jlc2l6aW5nJ10gPSAnUmVzaXppbmcnOwokbGFuZ1sncmVzcG9uc2l2ZSddID0gJ1Jlc3BvbnNpdmVuZXNzJzsKJGxhbmdbJ3Jlc3BvbnNpdmVfYnJlYWtwb2ludHMnXSA9ICdTcGVjaWZ5IHJlc3BvbnNpdmUgaW1hZ2UgbWF4aW11bSBlZGdlIGJyZWFrcG9pbnRzJzsKCiMgUwokbGFuZ1snc21hcnQnXSA9ICdTbWFydCc7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOwokbGFuZ1snc3VwcHJlc3NfZXJyb3JzJ10gPSAnU3VwcHJlc3MgRXJyb3JzJzsKCj8+Cg==]]></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[PD9waHAKJGxhbmdbJ2FjdF9jYWNoZWNsZWFuZWQnXSA9ICdDYWNoZSB2aWTDqSc7CiRsYW5nWydhZGRfcm93J10gPSAnQWpvdXRlciB1bmUgbGlnbmUnOwokbGFuZ1snYWxpYXMnXSA9ICdBbGlhcyZuYnNwOyc7CiRsYW5nWydhbGlhc2VzJ10gPSAnQWxpYXMmbmJzcDsnOwokbGFuZ1snYXNrX2NsZWFyX2ltYWdlX2NhY2hlJ10gPSAnw4p0ZXMtdm91cyBzw7tyIGRlIHZvdWxvaXIgc3VwcHJpbWVyIFRPVVRFUyBsZXMgaW1hZ2VzIGVuIGNhY2hlID8nOwokbGFuZ1snY2xlYXJfYWxsJ10gPSAnU3VwcHJpbWVyIHRvdXMgbGVzIGZpY2hpZXJzJzsKJGxhbmdbJ2NsZWFyX25vdyddID0gJ1N1cHByaW1lciBtYWludGVuYW50JzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0VmZmFjZXInOwokbGFuZ1snZW1iZWRkaW5nJ10gPSAnSW1hZ2VzIGludMOpZ3LDqWVzJzsKJGxhbmdbJ2VtYmVkZGluZ19tb2RlJ10gPSAnTW9kZSBkXCdpbnTDqWdyYXRpb24gZGVzIGltYWdlcyAoYXUgc2VpbiBkdSBjb2RlIEhUTUwpJzsKJGxhbmdbJ2VtYmVkX3NpemVsaW1pdCddID0gJ1RhaWxsZSBsaW1pdGUgZGVzIGltYWdlcyBpbnTDqWdyw6llcyAoS28pJzsKJGxhbmdbJ2VtYmVkX3R5cGVzJ10gPSAnVHlwZShzKSBkXCdpbWFnZShzKSBpbnTDqWdyYWJsZShzKSc7CiRsYW5nWydlcnJvcl9hbGlhc19kdXBsaWNhdGVuYW1lX2F0cm93J10gPSAnTm9tIGRcJ2FsaWFzIGR1cGxpcXXDqSBwb3VyIGxcJ2FsaWFzIGRlIGxhIGxpZ25lICVkJzsKJGxhbmdbJ2Vycm9yX2FsaWFzX25vbmFtZV9hdHJvdyddID0gJ0F1Y3VuIG5vbSBuXCdhIMOpdMOpIHNww6ljaWZpw6kgcG91ciBsXCdhbGlhcyDDoCBsYSBsaWduZSAlZCc7CiRsYW5nWydlcnJvcl9hbGlhc19ub29wdGlvbnNfYXRyb3cnXSA9ICdBdWN1bmUgb3B0aW9uIG5cJ2Egw6l0w6kgc3DDqWNpZmnDqWUgcG91ciBsXCdhbGlhcyDDoCBsYSBsaWduZSAlZCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX2FnZSddID0gJ1Byw6lmw6lyZW5jZSBkXCfDomdlIGludmFsaWRlLi4uIEF1Y3VuZSBvcMOpcmF0aW9uIHLDqWFsaXPDqWUnOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnVW4gcGFyYW3DqHRyZSByZXF1aXMgZXN0IG1hbnF1YW50IG91IGludmFsaWRlIDogJXMnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmFtJ10gPSAnUGFyYW3DqHRyZSBpbnZhbGlkZSBkYW5zIGxcJ2FwcGVsIDogJXMnOwokbGFuZ1snZXJyb3Jfc3Jjbm90Zm91bmQnXSA9ICdMZSBmaWNoaWVyIHN1aXZhbnQgblwnYSBwYXMgw6l0w6kgdHJvdXbDqSA6ICVzJzsKJGxhbmdbJ2Vycm9yX3JlbW90ZWZpbGUnXSA9ICdQcm9ibMOobWUgZGUgcsOpY3Vww6lyYXRpb24gZHUgZmljaGllciBkaXN0YW50IGRlcHVpcyAlcyc7CiRsYW5nWydlcnJvcl91bmtub3duZmlsdGVyJ10gPSAnVHJhaXRlbWVudCBkXCdpbWFnZXMgLSBGaWx0cmUgaW5jb25udSA6ICVzJzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1RyYWl0ZW1lbnQgZFwnaW1hZ2VzIChDRyknOwokbGFuZ1snZ2VuZXJhbCddID0gJ0fDqW7DqXJhbCc7CiRsYW5nWydoZWxwJ10gPSAnPGgzPlF1ZSBmYWl0IGNlIG1vZHVsZSA/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+DQo8cD5UaGUgc2ltcGxlc3Qgd2F5IHRvIHVzZSB0aGlzIG1vZHVsZSBpcyB0byB1c2UgaXQgaW4gdGhlIHNhbWUgcGxhY2UgeW91IHdvdWxkIHRoZSB7aW1hZ2V9IHRhZy4gIEkuZTogU29tZXRoaW5nIGxpa2UgPGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e0NHU21hcnRJbWFnZSBzcmM9XCd1cGxvYWRzL2ltYWdlcy9waWN0dXJlLmpwZ1wnfTwvY29kZT4uICBUaGlzIHdpbGwgZ2VuZXJhdGUgdGhlIGltYWdlIHRhZyBmb3IgeW91IHdpdGggbm8gcHJvY2Vzc2luZy4gIEFuZCBpZiBwb3NzaWJsZSwgZW1iZWQgdGhlIGltYWdlIGRpcmVjdGx5IGludG8geW91ciBodG1sIG91dHB1dC48L3A+DQo8cD5PZnRlbiBwZW9wbGUgd2FudCB0byBkaXNwbGF5IGEgd2F0ZXJtYXJrIG9uIHRoZSBpbWFnZXMgdGhhdCB0aGV5IGRpc3BsYXkgb24gdGhlIGZyb250ZW5kIHRvIHByZXZlbnQgaW1hZ2UgdGhlZnQuICBUaGUgQ0dFeHRlbnNpb25zIG1vZHVsZSBwcm92aWRlcyBzZXR0aW5ncyBmb3IgeW91IHRvIGNvbmZpZ3VyZSB3YXRlcm1hcmtpbmcgYW5kIHlvdSBjYW4gZW5hYmxlIHRoYXQgd2l0aCBhbnkgaW1hZ2Ugd2l0aCBhIHRhZyBsaWtlIHRoaXM6IDxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntDR1NtYXJ0SW1hZ2Ugc3JjPVwndXBsb2Fkcy9pbWFnZXMvcGljdHVyZS5qcGdcJyBmaWx0ZXJfd2F0ZXJtYXJrPTF9PC9jb2RlPi4gIFRoaXMgd2lsbCByZWFkIHRoZSBpbWFnZSwgYXBwbHkgdGhlIHdhdGVybWFyayBhY2NvcmRpbmcgdG8gdGhlIHNldHRpbmdzIGluIENHRXh0ZW5zaW9ucywgY2FjaGUgdGhlIGFsdGVyZWQgaW1hZ2UsIGFuZCB0aGVuIGVtYmVkIGl0IGludG8geW91ciBvdXRwdXQuPC9wPg0KPHA+QWxzbywgUGljdHVyZXMgdGFrZW4gYnkgbW9kZXJuIGRpZ2l0YWwgY2FtZXJhcyBhcmUgb2Z0ZW4gdG9vIGxhcmdlIGZvciB1c2Ugb24gYSB3ZWJzaXRlLCB0aGVyZWZvcmUgdGhleSBuZWVkIHRvIGJlIHNjYWxlZCBiZWZvcmUgZGlzcGxheWVkIG9uIHlvdXIgcGFnZS4gIFRoaXMgY2FuIGJlIGRvbmUgcXVpdGUgZWFzaWx5IHdpdGggYSB0YWcgbGlrZTogPGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e0NHU21hcnRJbWFnZSBzcmM9XCd1cGxvYWRzL2ltYWdlcy9waWN0dXJlLmpwZ1wnIGZpbHRlcl93YXRlcm1hcms9MSBmaWx0ZXJfcmVzaXplPVwndywzNTBcJ308L2NvZGU+LiAgQXMgeW91IG1heSB0aGluaywgdGhlIHdhdGVybWFyayB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIGltYWdlIGJlZm9yZSBpdCBpcyByZXNpemVkIHRvIGEgbWF4aW11bSB3aWR0aCBvZiAzMDAgcGl4ZWxzIChyZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gIFRoZW4gdGhlIGFkanVzdGVkIGltYWdlIHdpbGwgYmUgY2FjaGVkLCBhbmQgaWYgdGhlIGJyb3dzZXIgYWxsb3dlcyB0aGUgaW1hZ2Ugd2lsbCBiZSBlbWJlZGRlZCBpbnRvIHRoZSBIVE1MIG91dHB1dC4gIElmIGVtYmVkZGluZyBpcyBub3QgcG9zc2libGUsIHRoZSBpbWcgdGFnIHdpbGwgY29udGFpbiB0aGUgVVJMIHRvIHRoZSBjYWNoZWQgaW1hZ2UuPC9wPg0KPHA+RnJvbSBoZXJlIHlvdSBjYW4gY29tYmluZSB0aGUgb3B0aW9ucyBiZWxvdyB0byBwZXJmb3JtIGFsb3Qgb2YgZGlmZmVyZW50IGVmZmVjdHMgdG8geW91ciBpbWFnZXMsIGJ1aWxkIHNpbXBsZSBnYWxsZXJpZXMsIGFuZCBpbXByb3ZlIHlvdXIgc2l0ZSBwZXJmb3JtYW5jZSBhdCB0aGUgc2FtZSB0aW1lLiAgRW5qb3khPC9wPg0KPGgzPkF1dG9tYXRpYyBpbWFnZSByZXNpemluZzwvaDM+DQogIDxwPklmIHlvdSBzcGVjaWZ5IGEgd2lkdGgsIGFuZC9vciBhIGhlaWdodCBwYXJhbWV0ZXIsIGFuZCBkbyBub3Qgc3BlY2lmeSB0aGUgIm5vYXV0b3NjYWxlIiBwYXJhbWV0ZXIsIHRoZSBtb2R1bGUgd2lsbCBhbmFseXplIHRoZSBmaWx0ZXJzIHlvdSBoYXZlIGFscmVhZHkgc3BlY2lmaWVkLCBhbmQgaWYgdGhlcmUgaXMgbm8gcmVzaXplIGZpbHRlciBhbHJlYWR5IHNwZWNpZmllZCBhdXRvbWF0aWNhbGx5IGFkZCBhIGZpbHRlciB0byByZXNpemUgb3IgY3JvcHRvZml0IHRoZSBpbWFnZSBvbiBvdXRwdXQuICBUaGlzIGlzIHVzZWZ1bCB0byBkbyBhdXRvbWF0aWMgdGh1bWJuYWlsaW5nIG9uIHRoZSBzZXJ2ZXIsIGFuZCBub3QgcmVxdWlyZSB0aGUgYnJvd3NlciB0byByZXNpemUgdGhlIGltYWdlLjwvcD4NCiA8aDM+QSBTaW1wbGUgR2FsbGVyeTwvaDM+DQo8cD5UaGUgY29kZSBiZWxvdyB1c2VzIHRoZSB7Q0dTbWFydEltYWdlfSBtb2R1bGUsIGZhbmN5Ym94LCBhbmQgYSBiaXQgb2Ygc21hcnR5IG1hZ2ljIHRvIGdlbmVyYXRlIGEgc2ltcGxlIGxpZ2h0Ym94IHN0eWxlIGFsYm9tIGZyb20gYSBzdWJkaXJlY3Rvcnkgb24geW91ciB3ZWJzaXRlLCB3aGlsZSBwcm9jZXNzaW5nIHRoZSBpbWFnZXMgZm9yIHdlYiBzdGFuZGFyZHMsIGFuZCBjcmVhdGluZyB0aHVtYm5haWxzLjwvcD4NCjxwcmUgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNkZGQ7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyI+PGNvZGU+PHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4gMTo8L3NwYW4+IDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij57bGl0ZXJhbH0NCjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDI6PC9zcGFuPiBqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7DQo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiAzOjwvc3Bhbj4gIGpRdWVyeShcJ2EuZmFuY3lib3hcJykuZmFuY3lib3goKTsNCjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDQ6PC9zcGFuPiB9KTsNCjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDU6PC9zcGFuPiB7L2xpdGVyYWx9PC9zY3JpcHQ+DQo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiA2Ojwvc3Bhbj4ge2Fzc2lnbiB2YXI9XCdmaWxlc1wnIHZhbHVlPVwndXBsb2Fkcy9hbGJ1bS8qLmpwZ1wnfGdsb2J9DQo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiA3Ojwvc3Bhbj4ge2lmIGNvdW50KCRmaWxlcyl9DQo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiA4Ojwvc3Bhbj4gPGRpdiBzdHlsZT0id2lkdGg6IDEwMCU7IGhlaWdodDogMTUwcHg7IG92ZXJmbG93OiBhdXRvOyI+DQo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiA5Ojwvc3Bhbj4ge2ZvcmVhY2ggZnJvbT0kZmlsZXMgaXRlbT1cJ2ZpbGVcJ30NCjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+MTA6PC9zcGFuPiAgPGEgcmVsPVwnc2ltcGxlX2FsYnVtXCcgY2xhc3M9ImZhbmN5Ym94IiBocmVmPSI8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Q0dTbWFydEltYWdlIHNyYz0kZmlsZSBmaWx0ZXJfcm90YXRlPTkwIGZpbHRlcl93YXRlcm1hcms9MSBmaWx0ZXJfcmVzaXplPVwnaCw1MDBcJyBub3RhZz0xIG5vZW1iZWQ9MX08L3NwYW4+Ij4NCjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+MTE6PC9zcGFuPiAgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+e0NHU21hcnRJbWFnZSBzcmM9JGZpbGUgZmlsdGVyX3JvdGF0ZT05MCBmaWx0ZXJfZ3JheXNjYWxlPTEgZmlsdGVyX3dhdGVybWFyaz0xIGZpbHRlcl9yZXNpemU9XCdoLDE1MFwnfTwvc3Bhbj4NCjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+MTI6PC9zcGFuPiAgPC9hPg0KPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4xMzo8L3NwYW4+IHsvZm9yZWFjaH0NCjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+MTQ6PC9zcGFuPiA8L2Rpdj4NCjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+MTU6PC9zcGFuPiB7L2lmfQ0KPC9jb2RlPjwvcHJlPjxici8+DQo8cD5MZXRzIHRhbGsgYWJvdXQgdGhpcy48L3A+DQo8cD5MaW5lcyAxIHRocm91Z2ggNSB1dGlsaXplIGpRdWVyeSB0byBjYWxsIGZhbmN5Ym94IG9uIGFueSBsaW5rcyB0aGF0IGhhdmUgdGhlICJmYW5jeWJveCIgY2xhc3MuICBUaGUgZmFuY3lib3ggalF1ZXJ5IHBsdWdpbiBpcyBpbmNsdWRlZCB3aXRoIHRoZSBKUXVlcnlUb29scyBtb2R1bGUuPC9wPg0KPHA+TGluZSA2IHVzZXMgYSBidWlsdCBpbiBwaHAgZnVuY3Rpb24gY2FsbGVkIGdsb2IsIGFuZCBzb21lIHNtYXJ0eSBtYWdpYyB0byBmaW5kIGFsbCBvZiB0aGUgSlBHIGZpbGVzIGluIHRoZSB1cGxvYWRzL2FsYnVtIGRpcmVjdG9yeSBiZWxvdyBvdXIgaW5zdGFsbGF0aW9uIHJvb3QuPC9wPg0KPHA+TGluZSA3IGlzIGEgdGVzdCB0byBzZWUgaWYgYW55IGZpbGVzIHdlcmUgYWN0dWFsbHkgZm91bmQgaW4gdGhlIGFzc2lnbiBsaW5lIHN0YXRlZCBhYm92ZS4gIFRoaXMgaWYgc3RhdGVtZW50IGlzIGNsb3NlZCBvbiBsaW5lIDE1LjwvcD4NCjxwPkxpbmUgOCBvcGVucyB1cCBhIGRpdiB0byBjb250YWluIG91ciBhbGJ1bS4gIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBleGFtcGxlIHRoZSBzdHlsZXMgd2VyZSBpbmNsdWRlZCBpbmxpbmUsIGhvd2V2ZXIgYSBjbGFzcyB0aGF0IHdhcyBkZWZpbmVkIGluIHRoZSBzdHlsZXNoZWV0IHNob3VsZCBiZSB1c2VkIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzLiAgVGhlIGNsb3NpbmcgdGFnIGZvciB0aGlzIGRpdiBpcyBvbiBsaW5lIDE0LCBqdXN0IGJlZm9yZSB0aGUgPGNvZGU+ey9pZn08L2NvZGU+LjwvcD4NCjxwPkxpbmUgOSBiZWdpbnMgYSBsb29wIHRocm91Z2ggYWxsIG9mIHRoZSBmaWxlcyB0aGF0IHdlIGZvdW5kIGluIHRoZSBkaXJlY3RvcnkuICBUaGlzIGxvb3AgaXMgY2xvc2VkIG9uIGxpbmUgMTMuPC9wPjxici8+DQo8cD5MaW5lcyAxMCBhbmQgMTEgYXJlIHRoZSByZWFsIG1hZ2ljLiAgSGVyZSB3ZSBjcmVhdGUgYSBsaW5rIHdpdGggY2xhc3MgImZhbmN5Ym94IiBhbmQgYWRkcyB0aGUgPGNvZGU+cmVsPC9jb2RlPiBhdHRyaWJ1dGUgc28gdGhhdCBmYW5jeWJveCBrbm93cyB0aGF0IGFsbCBvZiB0aGVzZSBpbWFnZXMgc2hvdWxkIGJlIGdyb3VwZWQgdG9nZXRoZXIgYXMgb25lIGFsYnVtIGFuZCBhbGxvdyBjbGlja2luZyBiZXR3ZWVuIHRoZSBpbWFnZXMuICBUaGVuIGNvbWVzIHRoZSBwYXJ0IHdoZXJlIHdlIGRlZmluZSBvdXIgaW1hZ2VzLg0KPHA+V2Ugc3VwcGx5IHRoZSAkZmlsZSB2YXJpYWJsZSB0byB0aGUgc3JjIGFyZ3VtZW50IG9mIHRoZSA8Y29kZT57Q0dTbWFydEltYWdlfTwvY29kZT4gdGFnIHNvIHRoYXQgaXQgd2lsbCBnZXQgdGhlIG5hbWUgb2YgZWFjaCBtYXRjaGVkIGpwZWcgYXMgdGhlIGxvb3AgaXMgZXhlY3V0ZWQuPC9wPg0KPHA+VGhlIGltYWdlcyBJIHdhcyB0ZXN0aW5nIHdpdGggd2VyZSB1cGxvYWRlZCBmcm9tIG15IGlwb2QsIGFuZCBhbGwgc2VlbWVkIHRvIGJlIHJvdGF0ZWQgOTAgZGVncmVlcyBjb3VudGVyIGNsb2NrZWlzLiAgU28gdGhlIGZpcnN0IGZpbHRlciBJIGFkZGVkIHdhcyB0byByb3RhdGUgdGhlIGltYWdlIDkwIGRlZ3JlZXMgY2xvY2t3aXNlIHZpYSB0aGUgPGNvZGU+ZmlsdGVyX3JvdGF0ZT05MDwvY29kZT4gYXJndW1lbnQuIFRoZSBpbWFnZXMgdGhlbiBuZWVkZWQgdG8gaGF2ZSB0aGUgd2F0ZXJtYXJrIG9uIHRoZW0gPGVtPih0aGlzIGlzIGp1c3QgZm9yIGV4YW1wbGUgcHVycG9zZXMsIEkgZG9udCB0aGluayBhbnlib2R5IHdvdWxkIHJlYWxseSBzdGVhbCB0aGUgYmx1cnJ5IHBpY3R1cmVzIGZyb20gbXkgaXBvZCBmb3IgY29tbWVyY2lhbCBwdXJwb3Nlcyk8L2VtPiwgc28gSSBhZGRlZCB0aGUgPGNvZGU+ZmlsdGVyX3dhdGVybWFyaz0xPC9jb2RlPiBwYXJhbWV0ZXIuICBBbmQgZmluYWxseSwgYmVjYXVzZSBldmVuIHRoZSBpcG9kIHRvdWNoIGNhbiB0YWtlIHBpY3R1cmVzIHRoYXQgYXJlIHRvbyBiaWcgdG8gZGlzcGxheSBvbiB0aGUgc2NyZWVuIEkgd2FudGVkIHRvIHJlc2l6ZSB0aGVtIHRvIGEgbWF4aW11bSBoZWlnaHQgb2YgNTAwIHBpeGVscy4gIFRoaXMgd2FzIGFjY29tcGxpc2hlZCB2aWEgdGhlIDxjb2RlPmZpbHRlcl9yZXNpemU9aCw1MDA8L2NvZGU+IGFyZ3VtZW50LiAgV2UgYWRkIHRoZSA8Y29kZT5ub2VtYmVkPTE8L2NvZGU+IGFyZ3VtZW50IGJlY2F1c2UgZmFuY3lib3ggZG9lcyBub3QgdW5kZXJzdGFuZCBob3cgdG8gZGlzcGxheSBlbWJlZGRlZCBpbWFnZXMgaW4gaXRzIHBvcHVwIHdpbmRvdy4gIFRoaXMgZGVmaW5lZCB0aGUgaW1hZ2UgdGhhdCB3ZSB3ZXJlIGdvaW5nIHRvIGxpbmsgdG8uPC9wPg0KPHA+TmV4dCB3ZSBuZWVkZWQgdG8gZGVmaW5lIHRoZSB0aHVtYm5haWwgaW1hZ2UgdGhhdCB3ZSBhcmUgZ29pbmcgdG8gdXNlIGluIHRoZSBnYWxsZXJ5LiAgVGhpcyBjYWxsIHRvIDxjb2RlPntDR1NtYXJ0SW1hZ2V9PC9jb2RlPiBpcyBhbG1vc3QgaWRlbnRpY2FsIHRvIHRoZSBmaXJzdCBjYWxsLCBleGNlcHQgdGhhdCB3ZSB1c2UgYSBkaWZmZXJlbnQgaGVpZ2h0IHZhbHVlICgxNTAgcGl4ZWxzKSBmb3IgdGhlIHRodW1ibmFpbCwgYW5kIGZvciBraWNrcyBJIGNvbnZlcnRlZCB0aGUgdGh1bWJuYWlsIHRvIGdyYXlzY2FsZSA8c3Ryb25nPmJlZm9yZTwvc3Ryb25nPiBhcHBseWluZyB0aGUgd2F0ZXJtYXJrLiAgSSBhbHNvIHJlbW92ZWQgdGhlIG5vZW1iZWQ9MSBhcmd1bWVudCBzbyB0aGF0IHRoZSBzeXN0ZW0gY291bGQgZW1iZWQgdGhlIGltYWdlIGluIHRoZSBIVE1MIG91dHB1dCBpZiB0aGUgYnJvd3NlciBzdXBwb3J0ZWQgaXQuICBUaGUgc2NyZWVuIGNhcHR1cmUgYmVsb3cgc2hvd3MgdGhlIGVmZmVjdC48L3A+DQo8aW1nIHNyYz0iZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwvOWovNEFBUVNrWkpSZ0FCQVFFQVlBQmdBQUQvMndCREFBZ0dCZ2NHQlFnSEJ3Y0pDUWdLREJRTkRBc0xEQmtTRXc4VUhSb2ZIaDBhSEJ3Z0pDNG5JQ0lzSXh3Y0tEY3BMREF4TkRRMEh5YzVQVGd5UEM0ek5ETC8yd0JEQVFrSkNRd0xEQmdORFJneUlSd2hNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpML3dBQVJDQUNoQWZBREFTSUFBaEVCQXhFQi84UUFIQUFBQVFRREFRQUFBQUFBQUFBQUFBQUFBQVFGQmdjQkFnTUkvOFFBVUJBQUFnRURBZ01FQndRR0J3UUlCUVVBQVFJREFBUVJCU0VHRWpFVFFWRmhCeFFpY1lHUnNTTXlvZEVWTTBKU2tzRVdKVFJpY25Qd0pGV0M0UmMyUTFOV2c2THhKalZFWTdKa2s3UEMwdi9FQUJnQkFRRUJBUUVBQUFBQUFBQUFBQUFBQUFBQkFnTUUvOFFBSXhFQkFRQUNBZ01BQWdJREFBQUFBQUFBQUFFQ0VTRXhBeEpCRXlJalFsRmhrZi9hQUF3REFRQUNFUU1SQUQ4QXRmVzlWdWJLNzAreHNrZzladnBHVlpMZ25zMENqSnlCdVQ0Q3RMdlZMblRMRlk5UXZOTWkxR1orV0RJY1J1TWdkTnpuZjZWMDRoazBYMWFLRFd3dll5TWVSbVZzS3c3K1pmdW56cUozTWwxSnd0SUhrdUpyTk5XZ1d5bXVBZTBlTG1IWE81R2VoTkJOTHJYTktzWkhqdXRRdDRYUndqSzc0SVlqT01lNGcxdEhyV2x5M3dzbzlRdG51V0dSRXNnSk8yZHZoVEZGREhKeEx4Z3p4cXg3R05RV1hPM1pIYjhCVFhERXFjSjhGdXNZVnhlUUhJWEIzNXMvT2dsYjhTNkpITzBNbXFXcVNxNWpaV2ZCRERZZytGYzU5U3VFNHRzZE9SazlXbnM1Wm05bkpMS1JqQjhLaTlycWVtVzJuOFNXZDJCSmNUMzF3RWdFUlpwYzdBREE4ZmxTcXppdU5MMW5oYzZoem93MDU3VnBDQ1FKU1JoU2U0MEVtbTEzU2JhOTlUbTFHMmp1TWdkbTBnQkJQY2ZBKytuQ3E0c2tnajBlNTBiVnRRZTF1WkpYV2UzTmlIZVFzMnpxMk10bklPZTZyQnRvUloyVVVEU3M2d3hoREkvVWhSakorVkEyWGV2SmE4UzJXa2xjaWRDWGsvY1kvY0h4NVcvQ2o5SlhQOUxwTk55bnF5NmY2d0J5NzgvUGpyNFk3cWl6eDZ2cSttYWxxVnJwMGJDN25GemJ6dGNjcm9zUjlnQk1iOUQzNzgxT1ZycU1WMXhkWmFpd1pJZFEwb0pFeFU0TW5NU1V6M0VZTkFzNGI0cHRkUjB5elcrdjdVYWxNR3pFQ0ZKUE1RQmp4d0J0VDdIZVcwMXhjVzhjeU5OYjQ3WkIxVEl5TS9DcTd0N2l6dWZSN0RvMGNiU2FzLzZxRVF0enE1Zkt2bkd3eHZuTlBkdmZ3Nkx4TnJhNmc3cTl6SEEwR0kyYnRpSStVOHVCdWM5MUJJUDA3cFF0bzdrNmhiaUdWR2RITFlES3B3eEh1SkFybWVKTkVXS0tRNnJhQkpTUWg3UWIvbDhhaDJnUmgyNE1FaUJnSTd0c01NNElKSU5MQmJ4Zm8zanI3RlAxMG1QWUhkSGtmanZRVGtISXlEa0dpa09pa25RZE9Kem4xV0xPZjhBcGRRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGUmx1RHJmbDVGbUVrWVVLb21WaVFBUDdyS1B3cVRVVlpkSlpzd2FOd3BiYVBmZXVMY1N5U0JaRVJPaUlybFNRQWNuOWdkU2FmNktLaWlqclJSUUZGSHdveDVVQ0RTOUxUU3hkaU9WNVBXYmw3bHVZQWNwYkdRTWQyMUw2TWVWR0Q0VUJrK05GR0Q0R2pCOERRRkZHRDRHczRQZ2FER1RSbXM0UGdheGcrQm9DaWlqNFVCUlI4S1BoUUZGR1BLakhsUUZGR0Q0R2pCOERRRkZHRDRHakI4RFFGRlp3ZkExakI4RFFGRkZGQVVVVVVCUlJSUUZGRkZBVVVZUGdhUGhRRkZGR0NUakc5QVVWbmtiOTF2bFJ5dCs2M3lvTVVWbmxiOTF2bFJnK0IrVkJpaWpCOEt6eXQrNmZsUVlvckpVanFDUGVLQXJIb3BQd29NVVZubGI5MXZsUVZZZFZJK0ZCaWlzNFBnZmxRQVQwQlB1RkJpaXM4amZ1TjhqUnlQOEF1TjhxREZGWktzT3FrZThVY2pmdU44cURGRlo1Ry9jYjVVY2ovdU44alFZb3JQSTM3cmZLamxiOTF2bFFZb3JQSzM3cCtWQUJQUUUrNFVHS0t6eXQrNjN5ckZBVVVVVURicVRFU3g0Skd4NmUra1hPMzd6Zk9sbXFmclkvOEordE4rZDhVRzVrWWsrMDN6ckhPeC9hYjUxcG5ldFNhRGN5UG43emZNMXpaM3hzemZNMFpOYzNvTW1SL3dCOXY0alhNeVAvQU40L3pOWUpyVW56b01OSkorKzM4UnJpOGttLzJqL3hHdDJKcE8yMUJocDVmKzhmK0kxMzRSMUE2a1k3ajJoOXN5WUxFN0NrTHR2MXhYSGdlZG9XZ2p4ekNTK2tRa2RCMU5CTTd4MkYzSjdSd0NOcytWY0M3ZDdINTExdnY3Wko4UHBTVmo0MEc1ZHNmZmI1MGRvL2V6Zk90TTVyR2ZIclFiRjIvZWI1MW9aSHo5OXZtYXh6QUhIU3ViTUQzMEdXa2NmdHQvRWEwTXIvQUw3L0FNUnJSbTNyUW5GQnNaWk1nYzdmeEd1VHpTRDl0LzRqUVczcmk1b05YbWtBMmxmK0kwNmNNeU0rcXlndTdBUW5xU2YyaFRMS2RzMDY4S0hPclQvNVBYL2lGQTROSTJUN1I2bnZySGFzUDJtK2RJM3VWRHZueElybWJ0UjNpZ2NSTTNUbWI1MW50Vy9mYjUwMEhVWTFKSE91UjRtdWI2cW1OblgrSVVEMFozRFlMSEdPdWF3YnZsNnNmblVOMURpcTFzY21hZFZ4M2MxTTQ5SWVselNkbjZ5QWZOcUNmM2VzcmJxVHprbnVxUDNuRkZ3U1FraEh1cU5YWEVsczhxWm1UczMyRDgydzk5STVOUnNaRWtjWDBhaGNrc1BMejhhQ1FXK3U2cnFsekxhNmRJSlpvd0RKelB5ckdQTStQbDFwMWcvU2ZOT3Q1cTBrVFE0TGRpQUZIbWM1cXNMVGk2YmhKQjZ0SDYyOXlyT3N6ZXlEL2UvR21IVXVKZUlicTZhU1NTNVJnUVNlN0k2SHBRWHh4UnFWN29jVnJjV2NzenFVVm1TWWhsa0J4dnR2bWwzRkZ5N2VqdlVaMUxJL1pxUmdrRmZiVGJOZWZoeFZ4TnFOM0hjM2Q5ZTMwdzI3TmwyS2c1SGRqOEt0NXRSdk5VOUNtcTNWN0QyTndTUXlrNXhoMC9HZ3FtYTh1aHE4eWk5dVZSbEJHSm14dDhhYzlPdmJpTy9RdGUzUElSZzgwckhjL0dtSjVRK3AyNVljM1BFUnYxR0tjWW1DVHh0eUhQZmdaelFMZGV1cnY5Slcwa2Q1Y3NuWjQvWE1Od1Q0R3JEMEtHYTZ0cktkcHBzUEdySDJ6NGUrcTAxUW5sZ3dDQUdJcXp1Q3B1MDRldFhPK0U1Q2ViTzRQL09nbDh6eGlHT0ZwQ0M1NVZHKzV4bnI4S3I3aXkya2kwL1VwVXZycVA3Rjh4aVRBSldSUU1EcmpHYzc5Y1ZON216bnVSYnNzVGtKTXNnSUhVak9LWU9MOU5kcmFlTllwaFBMYnlvaUlvOXRoeWxWM0JQZWVtS0JyOURkeEpKZmFyYnp5U3lFd0NSUzdsc2R4RzU4NmV1STdDd3V0T251bkVndllMZGxpbEU3cmdEZm9Eang2aW1EMFZXOTNZNnpyRU1rYjI4NldXTVNqN2pjM2VLYk5WdCtKRnRuZTUxN3RvU3BMeHBiZ0Fqd3ozVURYcGRsZGF2cU1LRzR1Skk0b0pKR2dhNGRPMWJLcU1rSG9NNXA4czMvQUtObTRqdTdxNWdnZVJXUWM3U3RKN0lKVUU5d09mY01aOGFqZWdhdU5LMSswRnhJa2NFc1VxU083WUM0NVdCejhLYytPTFJMbzJlcTJjNGx0K1Rzbk1XNHh6WkRlZWM0K1ZCcHFYRmtwZGhienl4WUo1RldSdVlmSHAxOHFlL1NWZDNJOUhIQ2N5elRSeXlNcGNyS1FUOWoza0hlb0J5VzRraGNPNkJUek1yc0R5TjQ1eDVEM1ZPdlNTREo2Tk9EOGtra3BrbnIrcG9LcHViNitWVllYdDBOOS90My9PdTl0cVY3bFZON2NrZjU3L25TZlVFVDFJeUkyU2tuSytEME5iUjJGNHVuUjZpMXZKNm04blpyTVI3SllkUm54b0gyMTFiVTdRTzl0cVYxRTdxVmJsbEp5cDd0elRkYzM5NmNrWHQxelpIU2R0L3hvaWxIWURmcDFwSGRrTmJ0bkIzSFh1b0YxcmRhZ0M2UzNOMnUzUnBuMi9Hc1RYbDR1Q3Q3YytYMjdmblNmUVZTVzVaWldrN0lKelB5QUZnTWpwbnJXOThxTEk1aDUreTVqeWw4Wng1NG9POXRxTitqaHhlM0lLbktudFcyUGQzMUtSZFNYc1NYME54T2dmYVdOWlg1WTVSMVViOUQ5NGU4anVxRnBJQXVOcytkUFhEK3BSMkY4ZTNhUVdjdzVaa1h3N21IbXAzeDNqYnZvSmJhVDNNRFJTdGNURWcvdFNzZlB4cVZlbWEzdUg0U3NieTFtbFJ1MVJXYU55dlZXSTZlZGQ3UGh5RFZFaVRuVlpjWVlqOXZ3T2ZkaXM4Y3pUM0dnMi9EcldydGNDTkp1MVpoK3lTdUFQRWp2b0thNFU5ZkhGMmpjOTVjbFBYb1F5dE94eU9jZFJtdlV4Nm1xUTRXNFdnaDFxd2x1VW5XZU80UjFWbUM0SVlIY1kvblYzMEJSUlJRTldyZnJZdjhKK3ROMmFjZFcvV3hmNFQ5YWJHb01rNzFyellyREhHK0RURnhKeEhIb05vc2trTHVIeUF5NHdNVUQ0eml1WmtxcFg5Szk3SEovWjdSeDAzTENsTmg2VzRUSVYxR3pDb1RzMEJKSStCb0xOTGQ5YU14eDAycVBhZnhsb3VvUks2WHFLemZzTm5tSHdwYituTk56L2JJL2tmeW9IRW5hdUQwUTNVVjFFSllKQkloSkFJMjZWaVEwQ1Z6dmsrTkxPQTJIcXlzZWtsM0tVYjk0WjZqeXBqMTErVFRqdXdWcEVWc0hIc2xnQ0trdkRLQkpyZU5SaFZrT0I0YlVEM3FHMTVKOFBwU1VtbFYvd0QyeVQ0ZlNraG9OUWE1VFRpQ0o1Q0NRZ3pnZFRYVHY2VkZPTmRURnBwZ3RSS1kzdVR5bGhuT1BEYnhvR0RXUFNSUGIzVWkybHFCR3UzMjNYUGYwcEZINlZKU3ltU3lqNU0rMWc3NHFLWDF2RDJUTUgrWUpOTWtpb2lmZkdmZWFDN2RONDMwblU1WTRvM1pKSHprUHNGMjhha0N5TElvWkdEQTlDRFhtK0c0RWI1RXBVK0lxenVCZUpSTmJ6UjMxNkFzU2hZMU9mblFXRWE1T2F5a2lTSXJvUVZZQWdqdnJWK2xBbmtPMUx1REhlWGlPK0xPZVJJQWlwL3hESnBCSjBwWndSLzFqMUxiZnN4LytRb0VNOXkzYXZ2KzBmclhBenUzZlRoUGFxSlgvd0FSN3ZPdVl0b3oxejhxQ0JhKzUvUzhwNytWZnBVWTFqV1UwK0VxcEJtWVlVZUZUVGlDMlJkWWxBSFJGN3ZLcWcxNlpwTlRteWM0WWdlVkFpbnU1WjVHZVNRbGoxcmdKQ0QxM3BWWTZaUGZ2N0lLb09yR24rMzRidDBBN1RMSHpvSStsMFZYQlk4Z09TdFNmVGVLMnNiVTI1Z1dhMUE1bFZrQjVUNDBvVGh1eGRkNCt2aFcwM0NUVzFsTE5iUHpFRG1LTjRlRlp5eTlYYncrTDhtVjN4RERmVHlhbmMrc0ZFUlQ5MVJzQU8rbjIwamtFMGJYSEswSXh6S2k0SkhobnVxTHh5eUpjTUhYbHdTQ25jS21kdUJJcU1DTUVDdE9WNHZCMzFLZlJwOU1TTFM5TW10YnpJTHl5ejlvcFh2SExVdjBkSm45Q0dzSklVWnpPNEhLdktNYzBkUVJVd3dxZjJRNWZRcHJCSC9mc2Y4QTF4MFJWODJuOGlXMGpTeFFoSEdXZDlzSEdOeG1sQ3VPYmw1d1dVbko1ZWxLTlRUdHREbG54Z1JjcmJlUnh2U09FYy8zUWNBS1RnYkRPOUF0bmlnbGpMM0lrWlkvYlFJMk10NW51RlNyU3RZMUMzNGFnc3JCa3RtZWN6Q1NSTXF1RGpCSjNPZHNZMjYxcm8wT25hVGJSNmpxTUNYRFNZN08xSzh3T1AyaU84Ky9hcE54WGJhWHJsdnA1dGRTZ3RKb01Sc2dRcUZYT2NBQWJZOEtDVGFSTmZYSEFLYWhleE9OUWUzOXVNTmxjZzR5ZzdnUnZTVGpEU1UxT1FhZkVwU05jWjVDUUZCVTlRTzQ3L2hXcWNZNlRvOXREcGNWM0JJcVFCRkRCdGdQSUNtdldPSnJTNzdTUzF2U0hsVEplRkNyTmdiWlBkamY1MERiNk9yQ2JTK0lMcEdFZmFQRTZHRG13NFFPQ0dJNllQejM2VWwxeVdlN25sdG9OUG1rY2RvZ1ZjRGJmNmJVcTRIbnM5SnZudjcrK2lUMWlKb2l4SkxoMndjSGJ4Rk9TVGk5bXVvTk9qVml4ZkxKdThvemduSnh0M1lIa2FDdlhzN2JTOWNnVnJVM1YrRVBOSVAxTUFLQTR3UjdUZWZRZWRTMkd3VFZiTjlKRVUwYzE0V2o3Y3I3SUJJSU9ldUFQS25XeTRYMUxWTGp0Z3FReE1uTDJqbmJ3SXgzOUtlK0lORy9SSERkOWUyMTFLdHhCYnM2ZGtpb2VZRGJCRzQrdEJIcmIwTTI2eHFyNnBLYzlTSTg5L2NQblNEMHY2ZEhwZkJ2RCttMjVZeFcxeDJLRnVwQ3hFRE5NY043ZlJjczh1cDZqTTdMMG52WkdBK0dhZC9TZ3hsOUgzRERzU3hhUlNTU1NUOWw0OWFDQjJkL3BiK2l5LzBpNGRVMU9DY01pSDd6NWNFRmZoa2ZDbUtIVFk1TEtKMUpWbVVIeXB5MUtPSDlEdnlBaHlZeWM1eDFydHA5dVRZUW5HM0wzRHpvR1gxZTZqUXJnT3ZpSzB1VUJzOEdUN1ZqN1VaVWdyanZ6ME5XR25EVWMyak5jS3dFZ09mZUtoK3ByYnZadUJNbk1xY3d3TzRIZmVnNThNUnc1djhBdFdDLzdNZVRQZWVaYTIxYUlKWmlSVjJMNDYxdzBPNGhFVnlHbTVIYkM5TzcvUXBicTZ3TG9pTjJ2TS9iYmtIMmNZUGRqcjhhQnZuTnBjTmJlb3dTeHVVV04wYVR0REpKbnF1d3dQTGYzME9XdHlWbFVxd09HQkdDcEhpS0lqQkN0c3lTOGtvWVNsbEcrT3V4UFErRk9Fa1A2VXRaUFYrU1ptT1pKTWI4eDhjNzR4MU5CWm5vNTF1M2l0SWJHNHVJa2VNaDRPWTRPQ1NTdWZ4SHZOU3ZqZlU3SzN0YkxWWkFYZ0JNSkNZNXNuQkhYdTJhb2J3N2NhRmJXZHFzZWl5WFZ6Z0xKTk9WU05pTy9PYzRIdTN3S2xFV3JXdXN2ZDJOeHBObzhjWjVvdzZDUUU0MjNQdk9OdkhwUU1XaThjNkxOckZsWkxhWFlra21TTkNRbUF4SUF6djUxYTlSdlRZZEFUczQ0dExzNHJtSnRpYlpBU2ViQUtuSGppcEpRRkZGRkEwNnYrdGlIZHluNjAxbjQwNmF4K3RpL3dBSit0Tlo2VUdqbkJxck9MWTdqV1pidWRGa2tpajJSYzdJTmgrUFdyUWx4eU5ud3FOYWhESEZvVjAwYWNvZVBKK1lvS1B1OU5samNGbEk4YVF2QVEyTUdwbGZoUk1SanJUUFBHdk1kaG1nYUxkNWJhWkpFWW80NkVWWmtFUUdueFM5b09ZZ2JaeWZuVUVhMzdRcXdYWlR1ZTRWTE5KbmFhd1JTMmV6OW5HVGlwZStIWEgxbU51U3dPSE0vb1pQOHgvclRpNDg2YnVIQi9VeWY0Mit0T0xnRUhiOGFya1pkZlhtMHFVRFlCbE9mY3dxVWNONDlZaHpuUGEveXFOYStCK2hybnlYUHlxUjhOTVBXNFFSakQ1SG50UVBkL2oxdVhQWGI2VWthbGQvL2JKUGg5S1JtZzVucjVWRGVNb28zRWJsY3VycnY4RFV5WVZYL0hGM0phSzZrQWt5S3did0hLMjFCRk5RUlRHQVI1Vkg3cTNqTzRYcFdialdwWGN4dEltT25URkk1OVFJSURZMzZlWW9OVGJxVklWY2swODZIQjZuZGxSSm5uVGRmQTB6UVhoNXhJRndvNkhQZlRoWVR5eWFwRGdFZzdkZWdyUDExL1dZWGM1cTc3TCt3VzMrVXYwRmRHclN5SDlYMjMrVXYwRmRXclRrVFA1VXI0TDI0bjFJZDNZS2Z4RkpaQUFDS1hjSVFzbkUxN0pqMlh0aGcvOEFFS0IzdnJEdE9hV0pkeDFVZC9uVE0wWEtjZC9oVWxzN3VDOWphUzNjTUF4VStJTk1la290M2RYbmFuT1B1K1dTYUN1ZU1iZ1dsMWV6bmJzNFZJK1ZWQlpXajZ2cWJBa2hjODhqZkgrZFc1NlNvMVJ0VFJ0MkVDNDkrQlZlOE1RRkxPYVlETE8rQWZJZjZOQTdKSEZieGlLSlFxcjB4UVh5TnF5M0tvM085Y3k0QjJvZjZMYlpuN1JNYmJqZndwN2pua3VWVlpRdlVqUFhKcU9QcTY2ZEFVbWhQaXB5Q0NmRVZ6c3VKQUpFTEFoQWVwRlluN1hsNk05K1BIMWw3N2FjVGFGNnZJYnVKUFpjKzFpdGRLY3BHSTJPZVhkVFU0U08zMXpSeWdiWmw2K0JxTFh1aTNXblhNbG82OW5kUnR5RlQ0N1lQaGl0dk9VRFpzL09yQzBrYy9vYzFVWTVzelB0L3dBVWRRRThLY1gyMkd1TGJUeVd3QW8xQ0htT1NBTnViekZXTkJwZDlwZm9oMVcxdm9WaXVESVg1QklzZ3dXajcxSkhjYUNDUThoaW10NUVVOXRIZ2dBTnZqWUg2MGh0bFpKWmJkWWdvZFZEWklQVHd4N3V0S1lvcFNRdlo4MlJoZVhiRktMZlREYXBKUE93UjJURVNuUHROM1o4Z042QlhFNnJhTERkU2lPT004OGJPY2V6akpBOXczK0hqUzVicTI5Wm41V0gzeWMrTlIyU1AxaG1rdXVXZDJVcG45MWNZd005T3A2VkdwNzIrc0x5ZFlIVjRneDVlY2tIRkJLTlhlMmFhV1FaREJBK1Y3eG5jZktucUdkSklVYUloazVkNUNOaC93QSt0UXF3bU4xY29ibzg1WkdCQzlDUVFjVktrdlJ5aFVqUGdpS05nS0haVjJaRml4bTlsUk1DR0M1TGUyTno4S2VlSE5YV0RYSkNxS3dFTGN1VHQxRlJLNTFHVW9Va2JCOEFlbmlLN2FCTDJ1cTRQc2pzempiT2VtMVNiMjY1K3NrazdYVm8yb1BmQThpS3FxTmdvd0JUaHExZ2RTMGlhejluTXE4cExaeCtGTlhDL0l0bmtZQ2c0eWNDbjJXN2lqQUJkYzkyOVZ5VmpjZWk3VlpKUzYzMXJnbmNIbUpIdXlLUitsaXlleDRMNGZzbllNMEUzWnN3NkVpT3JNdTlVYUI0WUlpc2x4T3hXTmU0WTZzZklWWDNwa0RmMGQwcnRNT3d1bTVpQmpKN005MUJVOTR4ZlRtRFl4eXIwOGpVaTRYc2x1dE9qT2RsY2pyVVlaSkpyY3hSUnU3RWJLb3ozMUwrRjNGbnBCN1pzRVNPTUFGaDNkNDJvSmE1aGcwL2tZQUtWNUJzT3ZLYXFiVjQ0a3RabDdVb3doYktqSHRFNHF6N2kxbXV0TU53dk1zQ0ZaR2RsSUFVRGMvalZjYXZicEJGY3JMS3F5c3JEbEQrN0cxQWg0U3RvcGt2ekpHckZJd1Z5T2gzNlVwMTdtT2xxZ2ZtVHRWUElFRzNYSnoxUGZTZmhrekpZNm9ZT1R0REV2THpianZwTFBOcUNNVGRQRzhhN3NzYTlQT2l5YjRqakpwZ3VvcEpvcmh1YU1LRVJrKzhNZmhVaDRldHJTMnNwNUppVnlWT1hrd1cyNkZSMUh3cHIwL1ViWjVaVVNUSE5qT1RzY2Z1K1hTazZMS2w3Y3JMTUFXWUVNQjFIbDlLazIzNVBYaVluKzcxRlhpTU5zeXdGYzRrQTVXd1Q1ZFIxMnBIYWFyYzJxUlNpK20zTEtGU1U1akp3Q1YzMlBUZWtrYUpFSGFYTEJ6eS9mM0FIdTdxU3RhTUovc3lBR0dNL21hcm1tdkRXc1hNdkVHblF5WGJ1R3ZvbHl6RTVITnY4TW41bXZRWjYxNWY0V0NyeFhvS0F2bjF1RTRKKzk3WTM5MWVvRDFOQVVVVVVEVHJINjJML0NmclRVVFRyckg2MkwvQ2ZyVFV3eFFJdFJXV1N4bVdFa1NFYllHU2ZLcTc0azFTOEdreWhZMzVPendER2RodjMxWnJEUHhxQWNTMnl0cHQ3bHlpaFNjZkhwUVZhbDFjM0pmTE1lWEdTYVF5WGtwa0lHZWJwaW5xMENSMnM3a0FLMlZYSXdXSGpUVkhDcjNaYmZzd2NsZ003K0ZTM1RXR0Z6eW1NS0xlNW1paENsWFZuR2QraEhqVWk0YVNUMU9SMlBzRnVWYy9qVWQ1MWtrWmdOaWRzOXdxYldGdUxXeWloR2RodjcrcHBQOEFMWGt2T3BlSW5YRG4vd0FtVC9NZjYwNFBta0hEZy9xWlA4eC9yVGk0OHFybVFYbHVsMWJ5UVNaNUpGNVRqclNqZzcxdUhXT3d1NVZkUXk5azRHT2JZN2Urc1NZQXllZ3Jod2FicTkxNkcrbUNwQTI4VVliUEtOOEgzbWdtZCtNM2tudytsSXp2UzIrL3RrbncrbEltb09iYi9Pb1R4OUR6MjFzd3dDWDVTRDNqQnFiRVZFZU9vODZaYnlmdXpZUHV3YUNwRnRnTlV3UXJ1UGE2REFIaWFiZFVRUGVNVUdRVGdBZDFQZlp2RzA3ckh6RWtndG1tc3hHTjJubHljYkR2elV0MDZlUEQzeTE4Y1l3VUhZWktxUHZBNy9LbjdoNjE1cDViazlFWGtYMzB3UjU2NzVZbXBadzloZE9Za2pkenRTTTU1YnEyckVmMWZiZjVTZlFWMGF1ZGtmNnZ0dW42cGZvSzZ0VlpKMy9HbmJoVEg2VW1HUm5zZkgrOEthM0hmU3JoWUgrbHN1d1AreEhIL3dDNHRBeTIxek5ZM2tra0RsVHp0MzdIZXBEdzY2OGx3NTZ1eWo2bW9xazhVOGtqd3lwSXZPd0pRNTN5ZHFsR2dxRnRGa0IzTWh5UElEL25RVnA2VVU3VFVyeU1kOGEvSDJhcjIwdkd0dElpU0llMHpOMDk5V1Z4MnF6Y1N6Um43cGlYNlZBYm5UUFUxNVk4bFFTVkI4eFFORFg5ekhMOW8yYW1PaWFXZFNzM25La3FxOVBNOUtoaVdVdDFlckh1Y3RqSGNCVnRhRUlyUFRqQU1EbTJPS3psZmtlandZUzMyejZpcGJ3eUM1ZFhMc3FzY2MxU1BocVMwbWplM25UbjV3Unk4dmwxcDkxL2htMHVoMnNXRWw4UWRqVWR0Yks0MDZiazVjTWYybE5XVFRqbGx1N1NEaHZPbjMwbHNIWm9UbkN0M1ZOdlNQcHhoNGd0YnIyUkRxRnFGWjhmZGVNREh6QnFJNkxhWVl1NCswTzVKcTIrTjlPRjVZNlFlVUVSdVEyZTVTZ3lmd3FzdlBsdGJTcnhIUGJ5TXhJa1RjbnBsaFZvOENHTnZRdnFKbHlFOWFrSjVtNXUrUHZxRGFiRTF4eGs1a1BNUVVCSTc4SFkvR3B6d0RDMDNvWTFDTlRrdGR5QUVqempvR2g3cUlqRnRiRUgrL2tmZ0tqMnFQZFBlOW8wemN5a01DeE9QRHArRlNkZEtuNWo3Y1lIUW5QMHBCcVdnWEZ5ckxFRVk0M3pKZ252L2xRSWJDZEpRVmZsRGpmQk5NdXFXS1NyZHlTRlJ5Uyt3UDJqdjlQR25XWFNOUnNFOVlrV0lGUjFFZ3lQY08rbXFTVVNRM0FtTE5MMjR5NU81SlBTZ1RjeTJuWUFFdmx1VlNPbzV1LzhLMmdrbVVkcDJzMkZ4N1N2ME5Kcmt5SzVTS1BNdk1BaTQ2R2xjeFJVU0ZEbmxQTWR2R3MyL0hieDRjWE84YUtrbGFaUTdrbGlNYm1uamhzRWFxMkIxUWsvTVV4VzJleVZSNTcxSXVHVUg2U1k5QUl5YzU2N2l0T1Z1N3RZZHZxM3FrSUdTRlU3S1A1MXRIeEhidEFWTnZJOHhQMysxMjM4c1V4em4yU0NSanZ6dlNOVzVFWE9TT3V3eFJEN2U2bk5jM1ZyYzI4aXBjMno5cEVYUHNFOTRiRytEU24wZ2FsYXg4UGFMZmFwWXJjcTgzTThLUHRrcHZocWpzWE14VnM0SG4xcHk5SmFrY0dhQ3VkaElBYzkvd0JuUVFMVjlUMGk4UmpZMlUxdWtnT0FoQVpSNy84QWx2Uy9obWZrNFpXSU4rc3VabEJIVFpZelVYV1BKQXdRRDMrNnBIcDFyY3cyTnJieXlRV3FMTEk2dUY1bU9WWEpLbllqQThxQzRZTGVPNTRXU055TVBaWXg0K3ptcUcxYUx0M2FTYWFOVUtNVThTVGpwNWJWUGJhVzVsdHBZUk04aXhXdk1qdU1rWnlENWJrZUhTb0hKcDhqS1RKMmFzUU44N2swQ1hRWXpiMjJvZGxseWljcjdiRTc5UERGSlpyZWRyUnBwa051amphVTViT05zWUc1cCswcXdGckhER3JjL3JqQldJSFFjckhLL0d0TDdUNTdpWCswQ1FnWUhOMDIyK2xadDUwN1lZK3VQdjhBOFJpMGpqZ1o0b29tWWN4ekk0Qlp2Y2U0SHdGVFBoL2hHUGlwYmlkTHRyVXdGVXcwZWViSXpYSFQ5RGpCWjdpYm1ibTJFWitwcFRkTmM2ZHlKWVQzRVVUdVRJeVRGU2R0aHQ4NjA0bjVmUTR0eEd6dnJCU01kQUlUOGUrdVRlalcxdDlTdElCUExNMTB4aURsVGhRQm5tWWRNNUk3Nmo3YXpxRGpzenFWNGNlTTc0K3RkN1c5dllBWnZYYmxXeDkvdFd5UGQ0ZDlCTXJMMGFwcEd0YWZlUjNTVFNSM0ViSENsUnlnNXhqSnEwcW9MU05XdnB1SjlMRWw3ZFNLMTdDQ3BtWnR1WWRkK2xYNmV0QVVVVVVEVHE0KzJpL3duNjAxdDFOT21yL3JvdjhBQ2ZyVFBQTEhDcFp6amFnRHNEVUs0dWh4WWFpdlFOSGxjZjY4YTE0cTQ4WFNVRU5uR2ozTDlPWW5Dang4NmJmV2RRMWJnNXRUdnBBelRoeWdWUW9WUVFQcUNhQ0VYRnU3V3lvektNZ2ROc1UwWENQQ0JFR1hCd1RnWUk2N1ZLSGJzYmRwR0h0Z1pUSS8xbW94SnpHVjNicXh6V2U3dzd6K1BEYzdyTWVBeTVPQVNLblNYTUw3SktyZjhWUURPV0E3cTAxSkdVeFNnZTBSeWsxcHdYeHcyNE9pcHY4QTlvMzFwelk3bndxcnVDYjY4azBkVWptYjJISU8vanZVMWkxQzVRRHR2YVhvY2pjVUR1dzV0cTA0Q2NGTEVlQUkvRWl0SVprbTVYUTdWeDlIczNNYk5jN0NXUmZreG9KdGZIL2JaUGVQcFNRMHZ1SURMZXluY0tDTi9nS2E5U25GcWpjdEFrdnRTdHJDSjVKNU1LaWxteDRDcXgxbmpkdUk1RXNMUzA3S0lNWkRJN1pibEFJNmQzV3QrT3RVWVdKaERlMU9lWFBsMzFIdUdyVlRhWHVvTUR6UnNzU2p1T1FTZmo3TkIyRVpkWFhHZmRUQnFNaGE0TVNoVlJHSUFVWUJxVVRzbHBGSVFEMnBQTHlrZEI0Kzd6cU56NW5sSlVFNDhxejNYZkwrUENZenVrR1FxN1YyRTg4ZG5JWXBXUXJ2N0pyVDFhUjVNY3BIODZkLzBTMFZvNnY5NWtMSDVWcHdPL0MzR09wbVdPMG1uYVVjbnNjeDZZSFNwOWI2MUl3SGFwdGp1cW5PSDNGdHJkbXo3QVNCVzl4MnE0b0xSSkdaQjk1ZW5uUU9FZHdrNHloelR0d3Qvd0JaV2J1OVZQOEEvSXRRdUdkNEptR2NGV3dSVXg0UGxFMnRNNFAvQU5NZTcrK3RCQ05FMCtUUzdKNEplWHRPMmtadVh6WTFPZEt4SHA4RGQ1VmlmblVQdjc1TFIzWmxKek55NEhpVGlwWlpjeTZkSC9rRGJ6b0s5NHJrRW5FOHpaNkluMHFOWDR5ZHFmT0kyenhEYys1ZnBUVEtuTkltMmNrREhqVHBaTjNSdnRtaDArS1NhUU4ycmRHQTZEd3J0WjYxY3JhdTlxcXRJU0FzYkhsMm8xV1pJNHhBcWdqcUY4S1k0ZzhWMHJjMkIxNjlLeGp6ZHZSNXNyaEo0cGVrdnY4QVY1NTlOdHB1d2FLUU9WbFRQZGl0YkIxdmd2TVBiQnJsQmR6WEZ1ZTFaSkF1d0FyYUdhQzJaWjBYa2tEcUNtZXU5YmVaSWJlTHNtSGtLdGZpcUs2ZlJJbXRRR1pRQVJueEFIODZxNzJUR3NtZW83cXVLZTU3RFNubTVBNnhRaCtYdkpBRkJTeWNNM1dsY2ZHeldPUzRsaHNvSG1rUmRpeDVtUHlHQjhLZGVCN2x0SjlDdXBYSURGbzdxUmh5NVU3bU1menFSM3VwM1YzcU1sekZQTkFIeDdFY2h3TURGWjRpZVc0OUYrcm1WeTduQXkzK05LQ3RocitvYzdNc2l1dVRndW1lK3UwWEUyb0dWVktRRlNSemZaNHorTk1mT1c1Y1pCNVJuUGpXd2tBWUFqY0E5UEdna3R5V3VZNU9ac3VWYkF4MDJxRVNaamU2aW5XWExFaENpNUtzRGtaOTFUTExOR1cyeHlnK09ENFZIWms3YlVKakpua0VoTEVEenBicnRjY2ZhNmN3SGtUMWh4SGtjcDNYcWZIeU8xSjFzNDJZQTdIeHBYS1VlUUpFQ1VRWUI4YTVlSU9jMW1UNjYrVy8xblRlS0JJMXh6WndjbW43aDFrL1NUYjQreGI2aW1PTndVTzJNZUZPbWc1L1NMTGpPWWllbm1LMDRwUGQ5cGNRY3R1c2JOa2ZySEkyNys2dEFKQVBiNVNPbU91YTV1N0kvTHNBZTdPNjFsWlhWVUF3Um53M0ZCM2k1bzhCSTA4eVJuNFV1OUk0RGNGY1A1YkM4NEpQL2wwM3d1Q2dITDdaT2NIK1ZPbnBKVURnelE0eEhMSXhmQ3BHaFppZXo4UHpvS3RnUU5JTTdqOW1uYTNtN0Z3RkJkczVCYnVKMk8xSUxXMTFDV1JtT2wzTUtvTW5uWGZidnBYR1MwcHg3SURic2Vnb0hYU3A1NXI2Zm5seVJDTUJqdGpKNkNtNEdLS01IbTUyQysyN0hHUGRXbk42dmVtV0tSdVFRdXBKNzl0cWo5dHFETXFtNFVjb0d4eWNacVc2aldHSHRsby9UWFhxY1VNY01tU2h5R0kzR050dktteDd1UjMyY2s5ZGp0U1dTN2U1UGFIQXlCc0t4R3h5b09OajNmNjNxU2E3Yjh1VzdxZFJLZExWbmhCSkp5ZHFsbWw4TlFhOVkzSWxuYUlxNmdGUUQzWnFIV045SEJBRkl5M2o0Vk5PR2JxY1dWMUxKYnVzSGFKbHpzdWNiYjFweWJRK2kyS0tVVG05ZVdNbmNORmdIOGFYYWp3anAwdG42dkUxcmJ5TU1Cc01UMytkS2RFblhYZGN2YlNlUTlsYm9yUlcvTmdNRG5tWStQZDdxa0Z2cEVOdEt4TWs5d3p0a0xJMlF2dUhRVUZlNlR3T2x0cmxuY0RVMlpvTGxHS0MzSTV1VmdjWnowODZ0M3ZwTGJQaHdpUkJGT2Q4WVB1cFZRRkZGRkEzYW9BQXJrYmhTS2dlczNiaGl2TjdxbXV1ekNHTmM1eHlNZmxVQTF3TkhwazF5Y2V4SG5meDVjMEZROFFYUnVkWnVYVTdLZVZmaFZxM1ZpbHB3cEhwOFlWVEhhWUNIdUlPVDhTRFZWNk5aSFY5ZnRMVWdudDVSemVRemsvaFZ2NnV2cmRzWi9hV0x0RkxjdlhCVUEvSDJhTExxN1ZscTF3NmZZcjl4QjdKRk16UU04WVlZREh4TldmcUhCRnZjTVRGUEtoWE9jNHdmd3BKYWVqMHZNclRUc2tYTHVWSUpIbDBxU2FYUE81M2FCYWJwSnVadmIrNk4ySXJPdldhcnBrY3FBRERuNWRLdFN4NFNzQWhFVXM0UUl6ODJWeTJQaFRQcUhDVUUzRFhPc3N4SlNVNE9NWkI5MVZsR3ZSeEptYTh0aWZ2UmM2RHpCMy9BQXF4TG1JVGFQTGNSRDJvOEZzZVhmVlJjUFhMNlZybGxNakVCWmdHOXhPRFZ4c3kyTjZIVVp0TGs4a3Fub3BiYlB1M29HbTB1bWhkWkFUZ2taQXBad1RPTERYckxUcGM5cEpjU09oQTJaV3lSaitkTXR3aHRMNlcxeWZzNU9VZTdiODZjTkM3U2JqRGgyUmQxaHVtVmg0QmtQNVVGczNzcXhMbnY2L2hVVzFoak5KeUFaRElyWjk3RUQ2VTk2NjdMQ1dUN3kvekZNY014bGthVlJrQlZ4bm9QWjJ6N2lTYUNuT09uL3JXSzJCejJhNVBodjhBKzFQUEQxb2c0THQxY0FOTmZkcWMvdEFLeTFGK0paRGVjVFhmWjViTW5ab0QxMjIvR3JWdE5FdHA3VFM3VTg4Y0VMbFBZeG5iYnc4elVzMjFqbDYzYUR6ODEvQUdjRG1YS0FqdnhUSzJtM0NzUUV5ZkVWWXk4SzJ5WHQ5YkxOTUdqSmRlbmNkeDA4S1ZhYnduWTNGeDJuckU1aVplYkdSN08zdXBKcUpsbGNydXEvdGROVzJZU1NnR1FkRkcrUGZTbTRRaWFaY2RJZnFhbXR2d2hhU3Vaak5PVWxsRWNlQ09nNm5wV3ljSjJVK3JYeUdhNTVVangrejQrNnFpbmIrMk5ocVJBR0NPVng4Z2F0elRMc3phUlk2ckYxYU1DUWZoVmVjYVFpUFZWa2pCNUFnUUU5K052NVZKT0JOUUV1aFRXcmtuc1d4azlBRFFQR3RLa2Q0czBXT1NkQXc5L2ZVaDlIa3ZhYXRjZUhZYmZ4aW9qcU0yWUZpWnZhZ2tKSCtFL3dEdFVuOUhEWjFxY2Y4QTZYUC9BSzFvSW5yQkwzcXhnQWdPMGorSTlyQS9ITldFekNKSkY1bCs0dkt1Um5HS3I2NDVaZFR1RGtFOXVzWFR3YkordFQ3VVlZMEU4cklwZENRajQzQW9LcTF1VXZyZHd4UGdOdmRYQVhOc2xxNUxqdFVQTmpJQitGSXRkbVlYRjlNcFlGRjJLOWM5MVFHOHVuYWNlMFN5bmRzOWE1NWMzMWoxZUdYeFkvbCtwTGVHYVM2SlVrazc1OEtRZXJTdktBWlRrbWx1bjNJdXJkSmYyaXVHOTlFMFRCdzNOamV1a21ubXR0NXA2c05GREtNeVM4elk2TmpGYTZqcDcyZXBXa1FrWjBiR1N4enZtbkhTV2Jzd2M4M3g2VTRYVmtaSlV1RHZ5N2dHaUZrRTRXSlVKNkRIU3JkdXBzNkpPQm5sTnYzKzZxV3QzTFNFRVlPZmhWelRXTW1wYUplV1NTdEU4dHFVV1ZlcWtyMStsQkdFUU1lWUhhbFd1cnplalRWVkdNay8vd0IwcWgzNHU0bzBXL2EzdTdtVG1qT0NzZ3lweDc2dHZUTmNtNGs5QzJwM3NrYVJ5Q1JveUU2SGxaTi94b0s1bnlJSStUb3ZOek1XNkFIb0s0eHlySXdZREJCMkpwNHNiUlo0Z1NBeWtuSVllT0tjWTlHdDJJTFJLQU54c0JRY2JXVHRZSXozY3VNVTF6bG9wSnhrY3p5SHAxSS9sVXFpMCtHUG91QmpwamFrc3ZEbHROUEpPWlpnWEpZZ0VZK2xTemJlR2ZwdEZoa0RJMkhjSzJHQ0J0dlVsWGhxMnpneVRLZXU1SDRiVm4ramxwZy9hejQ5NC9LcXdpK01FbmJ3NlU2YUQ3Vit3NWlCMmJkQm53cDBIRGxwalBiem5IZGtiZmhYVzMwbUN3bU1rY2tqRWpCREVZSFR3SGpnVUc1NUE0NWVZZCtjWi8xLzcxb1h5cElVcTIrM1U0LzF2OGE2RUZpQUQ3UGVDRG5yMXJXUU1HSHM1eU01eDhmK1ZCMGljeG5DSGRqZ3VSemY2SFdwaHhISVR3bG96am1VRUxrRWYzTytvY2hVZlpsU001RzJ3UDhBck5TN2laLy9BSVMwUWdrOHdIeDlpZ2lxdXl1R0RrTU9oQjZlNm0rL3NCTXBraEFFZ3lTZ0dGZjNlQit0S1F4OW81RzJPdGI1NXdWQk80NjBFTXZKcFlPekV2TW1YNUdUdkFJTk1rMG5MQ2tBKzZBQ1NEbk5UL1VkSmcxT01KSjdFaWJDVlJ2N2o1VkZKdUc1TGVReHV6SEIyWlJzdzhSdFVzMjZZNStzc24wMnhIN01ZK2xLSWxQTm5POU8xdHcvSDJhOHp5YzNmdU1DbFEwSzNBL1d5K2VNVlhNeHZLeXBoVFQzb2Q5T3R0TWhua0tGMXloWTRPM2hYR2JTYlpHUldtbEhONWpOS2JXeWl0MUlXU1RsZmNsdCtnOHFCeml1QzA2TVhram1COW1XSitWMXo0RVZZT2o2M3JTd2t6MjBXb1JEN3JSbnNwY1lHQnkvZFBmdmtHcTZ0M0NNQ1FOL0w4S25PZzNiODI4bUF3SVV0K3h0M2U3TkJLZE40ZzAvVUpDcnFiUzVSZ2hodTFLT0dQUUxuWmlmSW1ucW1pM2xqTndTeXhTRm5HTVlQVHY5KzRwM29DaWlpZ2pYRTZzMHlnazhqVzVYSG56alA0RTFCZVA1MHN1R1RFbjNwVGdEZnFlcCtXMVQ3WDVndW9Xc0xxQWp4c1E1N2pucCtGVmg2VTVHUzIwNkJtOXBtTEVlQXdjRDhhQ08rajZ4TW11ZXRuWVFsVUhqek1jZlROV2V0c0gwYS9qUFZHVnZoazFGdlI1WU5IcDl0SXcvWHp0UDA2QlJ5ajhRYW4wVUlQcmNJR2UxalB6RkF4TFAydHJidStlU1pleGNqOWx4dHpEOEtjWGpOdncra1NqTWtqaEZQdnBxczFFMm4zbHN4OXFNOW9uOHhUdnBoOWZ0N1FuY3c3Tjd4MzBHVWo5V3RydEFRUkRiaVBJSHovR215ZjdIaEtOeDFkbUh6TlBWME9UVE5Sa3dSekRxZmVLYU5Wanh3bkFFL1lreWNVRkdhbkMxcnFWeEdkc09TTi9IY2ZXclNqdlRlNkhhTnpEN1dCZVZ6M1BqcDh4dDUxQXVMN1V4WHNOeUJ0TW1DZk5hVWNQMzVPaXZBellDU0hsYlBUdit0QklIdXZXcjJHWnZ2T015ZTlkajlLZmVEZ1R4TFl0dVY3YmJ5Mk5RL1RtOVl1cEMyd1FGdmlldjBxYzhGQUhXYlk0MjdZRWZJMEZnNm5neHpnNzdBZ2VKRy84QUtvN2I0T2t1NFQ3TW9XWWpibUdPbng2ZTRVdTRoMVNPMmtuUUVjeWpIeHdEVFBhWGd1dUZMNGh3STR3NGJHTnRzNDhzRDYwRlA4UHhtOTR2dHBKUGJBbU16ZTRaUDVWZFZuYjluWVdoSTNCN1Q0bXF6OUd0aUxuVWIyWTR5a0t4ai9qTytQbFZ2WEVZalVBREFBMjhxQmsxRnZVK0pVbTZKS01uekRWdFlONnBlWGxvTWUxOXozVm5pR012YTIxeUFlZGNLYTRNL05OYVhpQS9kQWVnZklMWVJtemgvY0djRHVwQllaZTgxTmgzaGdQaFQ1YmxaWm81Vjc5ODB5NlpHUmUzYUh2bGI4YUNxK0xiY1NhZEsrRHp4U0JzL0dtVGcvVVBWZFFudDJZY2swZTQ4eDBxWjY1YkNVWDF2Z0RtRGRmTEpxdE5NZnNOWGpCMjNLbWdtVjVkTTh6eGcrMlFGQjg4N1ZZUG8yQi9UdHp6ZGZWZ1AvV3RWYkxJRTFLM0xIYm1CNjFhWG8wZnRPSUx0dTR3RC84QU5hQ0thUXlYV3QydVJ0UGZGaVBITFkrZ0ZUbldyZ3hhWkt4NjRKTlY3d1BkTmZhL2J0S0FDczAyQVA3cGJCL0NwVnhQZG45RHUyY2N5RTBGT2E5Zjh0dEtBRHpzM0tDUFAvMnFHa2xqbnZOVERVTGVLOHRvd3hWVHo4em52SUdhUUxEWjI0NVlJQVcvZmZjbXBKSTNsbmNwSmZqbHBURzNzV2xMY3A1c2dIdnBjYmd5RUFucFRmZk1pUmNvVWMzZlN6VHJmdDlPUzRSQTU1aXJEd3hWWU9PbWFtMXJNVjV0bTYxTWwxTlhzaG45M0JIZlVCRVAybzVvZ1BoVXMwVnJVcWl2YklTVGptYndvRnRvMi9NVGtIcFY1NmZkeFFXRFRTTjdLcm5mM2IxVTZQbzZ3cW90b1J5amZyN1JyaHJQR00zNlA5VWdmQllZT080ZUZCSE9JMXRkVW11V2tRTXJTc3lud0dTYW1mQlZnMHZvUDFXMHQrZGo2ek1SanJzVVkvU3F3djcxbGp4a2ttcmo5RkE1L1JqY3F4MmU3bUJKOHdnb0lwcEVISnBzZHhNdkswamZaTGsrMHAzelRzcEFPdzdoanpOTXFTdW1vaXprbGFWSUNWUUU3QUtlNm44S3JCbXhoZXVlN0ZCajdveGdrMWhaY3Z5WUpBSFVHc3lSTUVMWndjWjVTSzU0T0RzYytZL25RZCtkdWlIYjUxZ0QyY1lQeEc5Y1VmQTJQWDRWMFZpd3pnc2UvQm9BbkdRVHk0emcvd0Fxd1RoQnZuSTZucjhxQ2ZjTWJjdGFBZ0U1eG5CNjBHZzVNOHpBZ1kvMFBsWE1vU2Z2Z0hicjE4ZnkrVmRPWDJsQUdXeWQ2NTh3NmtIM1lvTXZDYzh5akdNZkQ0Vkx1SUZZY0k2R0dQUHlxdk50OTc3T29oejl4YmJyNFZLZUo3NFdYQy9Ebk0vS2t6Q01oaDErei9DZ2l1T2JQTmpIY01kYTAvYXh5OHVlZzhhN3pRWTVuQkNnZlBGSitWU1ZJM3gzMEdWbEgzTnhrZUZkU0E4WmprQmRTY2p4WHpGQ0JNNE9DQjF3ZHpXSEFkUjNaeDMwQ0NlM2t0eGtNWGpKMmZvUGNmQ2tyU2tITE5uYW5qbEpVNVhLc044OUNLUlhlbmhVYWEzejJmN1M0eVZ3Ti9oUUpCY2NuS01BSHVyRE9uVWI0cE9NdHNwd001ei9BSzhxMkRjdlRIVE9TZW9IaFFMck8ya25rUVErMFRqWUg0Vk10STB5NGlnTFN6ckdDUUNyYm5IK2pVUXNwdXlRZ0E1eDF6MDM2L2hUc05UbDdQczRwZVZSbGNFOVR0UVdGYVdpSk5iczA2SDJnN0VJUmtnZ2Z6cVFWVk9oYXhkL3BMVG9lZGloa1VFNThXV3JXb0NpaWlnaDNGdDRMZlg5SVJzRlNHSUI4U2NmenF0dlN3Vy9TOWdHT2N3TTJNLzNxdSs2MHV4dmJpRzR1cldPYWFEOVU3amRQZFNMVU9GTkIxYVZKTlEwbTJ1WFJlVldrQkpBem5IV2dpbkIrbW0wMFcwUndjeFc2cjdzKzBmeGFubFhFVnpHY2Jad2FrVWRqYXhJRWpnUlZBQUFBOE5oV0RwOW1UazI2RTBGZGxUWTYyeUhaWE9EN2pTL1N2OEFZNzJXSTU1R0pJUHZxWVRhTnB0eElKSnJLSjNIUmlEbXRocFZnR0RDMGl5Ty9Cb0dQVkkvNmt2UDd3L25UWGNLSDRabUlYT0FHRlRWN08ya2lNVHdveUhxcDZHdVEwcXdGdWJjV2tmWWtZS1lPS0R6MXhkYnROcElsM1BaT0FBTzRZM3FPOE95ci90TnV4KzhPWWVmalhwbWJoSGg2NGlhS2JSN1Y0Mis4cEJ3ZnhwSkY2UGVFSUg1NHVIckZHeGpJVnZ6b0tHMDJabzd1NFFucnR2Vmk4RzVHdFdBQXlETGtuNEdwd3ZBdkNxdVhYUWJNTVRrbmxiODZjTFhRZEtzcFVrdHJDR0owT1ZaUWNqOGFDdGVNN2tyeFJmUUsyQTNKbGZFOG9vVVRXZkMrclFjbzdKckNWMmIvd0M2UVI5S3NlNjRjMGE5dkd2TG5UYmVXNFlnbVJnY2tnWUhmNUN0MzBIU3BMZVdCckNFeFNyeXlJUWNNUEE3MEZXZWlXMFBxdDlkc3YyWmtWUTNqeWcvL3dDaFZnUy9hbGhUcHAyaGFWcE5zMXZwOWhEYlFzM09VakJBSjhldmtLVStwVzJjOWdtYUNMVHhDYTJrdG16bkpLMDBhYUN5U1c3ZFVPd3FmbXd0R2ZtTnVoYnhya21rNmZISTBpV2tTdTNVZ0hlZ2FOTm01VUNNY1kyRkpMUk9UWExsY2RSelZKbDArMFE1VzNRSHJ0UU5QdEJPWmhicDJwR0MzZmlncUhYQ1l0VnVBd081WVZWR3JRdFphdElNRWUyR0ZlcXJqaHpScnFReVQ2YmJ5TzNWbUJ5ZnhwQmM4QThKWGtuYVhIRDlsSS9UTEtmem9QUEY1TVh1N1psQlBNUDVWYXZvbW1WOVp1VkxBeUMzR1I0ZTJ0VFJlQk9GVlpHWFFiSUdQN3A1VHQrTkxkTTRjMGJScnVTNzAzVFlMVzRsWGxlU01FRmhuT092aUFhRHo5NlBiaTRYaTJWQ1Y3T0ZMbCttNDNQNTA5Y2RhOURhV3h0WTJWcGlDR1VmczlLdDJ6NEs0YTArNGU0dE5GdElabkJET2luSkI2OS9mWEs1NEI0VHZKV2t1ZEFzcFhZNUxNR0pKK2RCNVplUnpHTW5kcXd1VXl4SFFaK05lb3YrampnMy93QU4ySDhMZm5RZlJ6d2FRUWVITERCNit5MzUwSGtxVm5sYmNlK3BSdzRPejA0RGxQdFpQNDE2Sy82TStDZi9BQXpwL3dEQzM1MHBoNEM0VHQwQ1JhQlpJbzZBSzM1MEhucVMzOXJPRFdVa2xqR0ZHSzlEbmduaGc5ZERzLzRUK2RZL29Od3YvdUt6L2hQNTBIbnMzRWlqZGpTTjNZKzFrNTg2OUhuZ1RoVnV1ZzJSL3dDRnZ6clU4QThKbnJ3L1pmd3QrZEI1Y3VuYVdjK1cxWG42Tm1OdjZKN2h5TjF2SE8vK0tPcFovd0JIUEIyYy93QkhMRCtGdnpwM3M5QzB1dzAxdE90TENHR3paaXpRb0R5a25HL1h5SHlvS1UxRlJhY1lYS3YvQU5wS1dCQTJ3M2hUMUUzTW94MFhZWjZiSEg4cXNxNDRXMEs2bjdlZlNyYVNYQUhPd09jWno0MTBUaDdSNDE1VjA2QUw0WVBqbnhvS3psWXlBbkIySCtzMXdMZFhaV3o0bllrZVlxMDI0ZDBadXVtd0g0SDg2eC9SelJzNS9Sc0djWTZIODZDcWxaems1T0QzNDd2QVYzTGxjOHJ0a2V5RGpiMzFaMzlHOUYvM2JCOGorZEI0YjBVOWROdCttT2gvT2dxNW1IUTVKMjJ6OHEySkM3Z0VuenEwRHc1b3hJSjAyM3lOODRQNTFnY09hTUJnYWJCajNIODZDcjJBeG5CeWZEcFdrbnQ1N2dSdWZDclRIRGVpZ0FEVGJmQTZiSDg2RHczb3BPVHB0djhBSS9uUVZObGlTQzJjSE9NZUZPdnBIQkhBWERSenVycWMvd0RsMVlaNGEwUW5KMHkzejdqK2RkYjdRdEsxS3poczcyd2hudDRmMVViZzRUYkcyL2hRVXpwZXBIVkxOZVlZbGp4ekFEcU9sS0VHSDhqNFZhZHR3Znc3WnNXdHRIdFlpMnhLZzcvalhYK2pHaDR4K2k3Zkh1UDUwRlU1NUdLZ01UMUlIZFc0SktoZ25UcHRqTlduL1JqUS93RGRkdjhBSS9uVzM5RzlHLzNiYi9JL25RVmVvVlBhYjJsR0JnLzY2VmlNeXhvV2tJREJpVlpEMVhQczlmeHEwdjZPYU4vdTIzK1IvT3NIaHpSajEwMjMrUi9PZ3FXNTB0TGxUTGJCSTVXenpSam8zbUQzZTZtWXhNam5uUmdWUHRCdGlNVmVuOUhkSDIvcTIzMjhqK2RhUzhNYUhPL1BMcGRzN1l4a2c1K3RCU3FLcEFCQkk2REI3alhSblorWG1CR0NENCtOWEgvUlBoLy9BSFJhL3dBSi9PZzhKNkFldWtXdnlQNTBGVjZOTXo2NXBpZ3RuMW1NSHcrK0t1MDlhYUllRjlDZ21qbWkwdTNTU05nNk1BY2dqb2V0TzlBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFmLy9aIiBhbHQ9IllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IGVtYmVkZGVkIGltYWdlcywgc29ycnkiLz4NCjxoMz5TdHlsZXNoZWV0czo8L2gzPg0KPHA+VGhpcyBtb2R1bGUgYWxzbyB3b3JrcyB3aXRoaW4gc3R5bGVzaGVldHMsIGlmIHVzaW5nIHRoZSB7Y21zX3N0eWxlc2hlZXR9IHRhZyBpbiB5b3VyIHBhZ2UgdGVtcGxhdGUuICBCZWNhdXNlIHRoZSBzbWFydHkgc3ludGF4IGlzIHNsaWdodGx5IGRpZmZlcmVudCBpbnNpZGUgdGhlIHtjbXNfc3R5bGVzaGVldH0gdGFnIHlvdSB1dGlsaXplIHRoZSBtb2R1bGUgdXNpbmcgdGhlIFtbIGFuZCBdXSBkZWxpbWl0ZXJzLiAgaS5lOiA8Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij5kaXYuaGVhZGVyIHsgYmFja2dyb3VuZDogdXJsKFtbQ0dTbWFydEltYWdlIHNyYz1cJ3VwbG9hZHMvcGljdHVyZS5qcGdcJyBub3RhZz0xXV0pOyB9PC9jb2RlPjwvcD4NCjxwPkJlY2F1c2Ugc3R5bGVzaGVldHMgYXJlIGdlbmVyYXRlZCBvbiBtb2RpZmljYXRpb24gYW5kIHN0b3JlZCBpbiB0aGUgZmlsZXN5c3RlbSB0aGVyZSBpcyBubyB3YXkgdG8gZGV0ZXJtaW5lIGR1cmluZyB0aGUgcmVxdWVzdCB3aGljaCBicm93c2VyIGlzIHJlcXVlc3RpbmcgdGhlIHN0eWxlc2hlZXQsIHRoZXJlZm9yZSBlbWJlZGRpbmcgd2lsbCBiZSBkb25lIHN0cmljdGx5IGJhc2VkIHVwb24gdGhlIHByZXNlbnNlIG9mIHRoZSBub2VtYmVkIHBhcmFtZXRlci4gIElmIHlvdSBoYXZlIGNob3NlbiB0byBlbWJlZCBpbWFnZXMgZGlyZWN0bHkgaW50byB5b3VyIHN0eWxlc2hlZXRzLCBZb3UgbWF5IG5lZWQgdG8gYWRkIGFkZGl0aW9uYWwgc3R5bGVzaGVldCBzdXBwb3J0IGZvciB0aGUgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBlbWJlZGRlZCBpbWFnZXMuICBpLmU6ICBJRTYuPC9wPg0KPGgzPkF1dG9tYXRpYyBQcm9jZXNzaW5nPC9oMz4NCjxwPlRoaXMgbW9kdWxlIGluY2x1ZGVzIGEgc21hcnR5IGJsb2NrIHRhZyBjYWxsZWQgPGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e2Nnc2lfY29udmVydH08L2NvZGU+IHRoYXQgY2FuIHN1cnJvdW5kIGEgYmxvY2sgb2YgaHRtbCwgb3Igb3RoZXIgc21hcnR5IHRhZ3MgdG8gYWxsb3cgYXV0b21hdGljIGltYWdlIHByb2Nlc3NpbmcuICBUaGlzIHRhZyBjYW4gYmUgdXNlZCBsaWtlOiAoZm9yIGV4YW1wbGUpOjwvcD4NCjxwcmU+PGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e2Nnc2lfY29udmVydH17Y29udGVudH17L2Nnc2lfY29udmVydH08L2NvZGU+PC9wcmU+DQo8cD5UaGlzIHdpbGwgYWxsb3cgeW91ciB1c2VycyB0byBpbmNsdWRlIGltYWdlcyBpbnRvIHBhZ2VzIHVzaW5nIHRoZSBub3JtYWwgd3lzaXd5ZyB0b29scywgYW5kIHRvIGhhdmUgdGhlbSBhdXRvbWF0aWNhbGx5IHByb2Nlc3NlZCBhbmQgZW1iZWRkZWQgaW50byB0aGUgcGFnZSB1c2luZyB0aGUgbWFnaWMgb2Yge0NHU21hcnRJbWFnZX0uIGkuZTogU2VlIHRoZSBmb2xsb3dpbmcgY29kZTo8L3A+DQo8cHJlPjxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntjZ3NpX2NvbnZlcnQgZmlsdGVyX2dyYXlzY2FsZT0xIGZpbHRlcl93YXRlcm1hcms9MX17Y29udGVudH17L2Nnc2lfY29udmVydH08L2NvZGU+PC9wcmU+DQo8cD5UaGUgYWJvdmUgY29kZSB3aWxsIGNhcHR1cmUgYWxsIGltYWdlIHRhZ3MsIGFuZCBjb252ZXJ0IHRoZW0gdG8gZ3JheXNjYWxlIGFuZCB0aGVuIGFwcGx5IHRoZSB3YXRlcm1hcmsgKGFjY29yZGluZyB0byB0aGUgc2V0dGluZ3MgaW4gdGhlIENHRXh0ZW5zaW9ucyBtb2R1bGUpLiAgQWxsIG9mIHRoZSBwYXJldGVycyBhdmFpbGFibGUgdG8gdGhlIDxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntDR1NtYXJ0SW1hZ2V9PC9jb2RlPiB0YWcgYXJlIGF2YWlsYWJsZSB0byB0aGlzIHRhZyAoZm9yIGltYWdlIHNjYWxpbmcgZXRjLikuICBBZGRpdGlvbmFsbHksIHR3byBuZXcgcGFyYW1ldGVycyBoYXZlIGJlZW4gaW50cm9kdWNlZDogPHN0cm9uZz5tYXhfd2lkdGg8L3N0cm9uZz4gYW5kIDxzdHJvbmc+bWF4X2hlaWdodDwvc3Ryb25nPiB3aGljaCBjYW4gYmUgdXNlZCB0byBzZXQgYSBtYXhpbXVtIHNpemUgZm9yIGltYWdlcy4uPC9wPg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDNlbTsiPjxzdHJvbmcgc3R5bGU9ImNvbG9yOiByZWQ7Ij5Ob3RlOjwvc3Ryb25nPg0KPHA+VGhpcyB0YWcgcGFyc2VzIHRoZSBIVE1MIGNvbnRlbnQgYmV0d2VlbiB0aGUgc3RhcnQgYW5kIGVuZCB0YWdzIHRvIGZpbmQgdGhlIDxpbWc+IHRhZ3MuICBJdCB0aGVuIHdpbGwgb3V0cHV0IHN5bnRhY3RpY2FsbHkgdmFsaWQgSFRNTCBmb3IgdGhlIHN1YnNldCBvZiBjb2RlIGl0IHdhcyBwcm92aWRlZC4gIFRoZXJlZm9yZSBpdCBpcyBpbXBvcnRhbnQgdGhhdCB0aGUgc25pcHBldCBvZiBIVE1MIHBhc3NlZCB0byB0aGlzIHRhZyBiZSBpbnRhY3QgYW5kIGFzIGNsb3NlIHRvIHZhbGlkIGFzIHBvc3NpYmxlLiAgPHN0cm9uZz5Vc2Ugd2l0aCBjYXV0aW9uLjwvc3Ryb25nPg0KPC9kaXY+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQgb3IgYnV5IGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHZpc2l0IGNhbGd1eVwncw0KbW9kdWxlIGhvbWVwYWdlIGF0IDxhIGhyZWY9Imh0dHA6Ly9jYWxndXkxMDAwLmNvbSI+Y2FsZ3V5MTAwMC5jb208L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciwgY2FsZ3V5MTAwMCwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseS48L2xpPiAgDQo8L3VsPg0KPGgzPlJlcXVpcmVtZW50czwvaDM+DQo8cD5UaGlzIG1vZHVsZSBtYWtlcyBldnRlbnNpdmUgdXNlIG9mIHRoZSBHRCBJbWFnZSBwcm9jZXNzaW5nIGxpYnJhcnkgdG8gZG8gaW1hZ2UgbWFuaXB1bGF0aW9uLiAgQWRkaXRpb25hbGx5LCB0aGUge2Nnc2lfY29udmVydH0gcGx1Z2luIG1ha2VzIGV4dGVuc2l2ZSB1c2Ugb2YgdGhlIHNpbXBsZXhtbCBhbmQgWE1MRG9tIGNsYXNzZXMgYnVpbHQgaW4gdG8gcGhwLiAgVGhlcmUgbWF5IGJlIG90aGVyIGFkZGl0aW9uYWwgcmVxdWlyZW1lbnRzLiAgSWYgeW91IGFyZSBleHBlcmllbmNpbmcgZXJyb3JzIHlvdSBzaG91bGQgZW5zdXJlIHRoYXQgZXJyb3IgcmVwb3J0aW5nIGlzIGVuYWJsZWQsIGFuZCB0aGF0IHlvdSBoYXZlIGFuYWx5emVkIHlvdXIgZXJyb3IgbG9ncy48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCDCqSAyMDA4LCBSb2JlcnQgQ2FtcGJlbCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+PGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmc+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQp0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+DQo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQNCmFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQ0KaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUw0KTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIA0Kc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS48L3A+DQo8cD5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQpNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCmFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+JzsKJGxhbmdbJ2luZm9fYWxpYXNlcyddID0gJ0xlcyBhbGlhcyBwZXV2ZW50IMOqdHJlIHV0aWxpc8OpcyB2aWEgbGVzIG9wdGlvbnMgYWxpYXMxIMOgIGFsaWFzNSBkZXMgYmFsaXNlcyBDR1NtYXJ0SW1hZ2UgcG91ciBjb21iaW5lciBwbHVzaWV1cnMgb3B0aW9ucyBmcsOpcXVlbW1lbnQgdXRpbGlzw6llcy4nOwokbGFuZ1snaW5mb19jcm9wdG9maXRfZGVmYXVsdF9sb2MnXSA9ICdTcMOpY2lmaWUgbGEgem9uZSBkZSBsXCdpbWFnZSDDoCBwYXJ0aXIgZGUgbGFxdWVsbGUgZMOpY291cGVyIHBvdXIgbGEgZm9uY3Rpb24gImNyb3AgdG8gZml0IiA7IGNlY2kgYWZmZWN0ZXJhIHRvdXRlcyBsZXMgb3DDqXJhdGlvbnMgZGUgZMOpY291cGFnZSAiY3JvcCB0byBmaXQiIMOgIG1vaW5zIHF1ZSBsZSBwYXJhbcOodHJlIGRlIHpvbmUgZGFucyBsXCdhdHRyaWJ1dCBkdSBmaWx0cmUgZmlsdGVyX2Nyb3B0b2ZpdCBuZSBsXCdhbm51bGUuIExhIHpvbmUgcGFyIGTDqWZhdXQgZXN0ICJjZW50ZXIiJzsKJGxhbmdbJ2ltYWdlX3VybF9oYXNjYWNoZWRpciddID0gJ0xcJ1VSTCBjaS1kZXNzdXMgZXN0LWVsbGUgbGUgcsOpcGVydG9pcmUgZGUgY2FjaGUgKF9DR1NtYXJ0SW1hZ2UpID8nOwokbGFuZ1snaW1hZ2VfdXJsX3ByZWZpeCddID0gJ1Byw6lmaXhlIGRlIGxcJ1VSTCBkZSBsXCdpbWFnZSc7CiRsYW5nWydpbmZvX2NhY2hlX2FnZSddID0gJ1Nww6ljaWZpZSBsXCfDomdlIG1heGltdW0gZFwndW4gZmljaGllci1pbWFnZSAoZW4gam91cnMpIGF2YW50IHF1XCdpbCBuZSBzb2l0IHN1cHByaW3DqSBldCByZWfDqW7DqXLDqS4gQ2VjaSBlc3QgdXRpbGUgc2kgdm91cyBhdmV6IGNoYW5nw6kgY2VydGFpbnMgcGFyYW3DqHRyZXMgZGUgZ8OpbsOpcmF0aW9uIGRcJ2ltYWdlcywgb3UgcG91ciByw6lndWxlciBsXCdlc3BhY2UgZGlzcXVlIHV0aWxpc8OpLiBVbmUgdmFsZXVyIGRlICIwIiBkw6lzYWN0aXZlIGxhIHN1cHByZXNzaW9uIGF1dG9tYXRpcXVlLic7CiRsYW5nWydpbmZvX2VtYmVkX21vZGUnXSA9ICdDZSBwYXJhbcOodHJlIGTDqWZpbml0IGxhIG1hbmnDqHJlIGRvbnQgbGUgbW9kdWxlIHZhIGfDqW7DqXJlciBsXCdhZmZpY2hhZ2UgOg0KDQo8dWw+PGxpPkF1Y3VuIDogdW5lIGJhbGlzZSBIVE1MICJpbWciIGNsYXNzaXF1ZSBzZXJhIHV0aWxpc8OpZSBldCBsXCdpbWFnZSBuZSBzZXJhIHBhcyBpbnTDqWdyw6llIGRhbnMgbGEgc291cmNlPC9saT4NCjxsaT5TbWFydCA6IGxlIHN5c3TDqG1lIHZhIGludMOpZ3JlciBvdSBub24gbFwnaW1hZ2UgZGFucyBsZSBjb2RlIHNlbG9uIHNvbiBwb2lkcywgc29uIHR5cGUgZXQgbGUgbmF2aWdhdGV1ciBxdWkgYWZmaWNoZSBsYSBwYWdlPC9saT4NCjwvdWw+PGJyIC8+DQpMZXMgYXV0cmVzIG1vZGVzIHLDqWFsaXNlcm9udCB1bmUgaW50w6lncmF0aW9uIGRlIGxcJ2ltYWdlIGJhc8OpZSBzdXIgbGUgcG9pZHMgb3UgbGUgdHlwZSBkZSBjZWxsZS1jaS4nOwokbGFuZ1snaW5mb19lbWJlZF9zaXplbGltaXQnXSA9ICdTaSBsXCdpbnTDqWdyYXRpb24gZXN0IGJhc8OpZSBzdXIgbGUgcG9pZHMgZGUgbFwnaW1hZ2UsIHByw6ljaXNleiBpY2kgbGUgcG9pZHMgbWF4aW11bSAoZW4ga2lsby1vY3RldHMpIHBvdXIgbGVzIGltYWdlcyDDoCBpbnTDqWdyZXIgKDMya28gZXN0IHVuZSB2YWxldXIgcmVjb21tYW5kw6llKS4nOwokbGFuZ1snaW5mb19lbWJlZF90eXBlcyddID0gJ1NpIGxcJ2ludMOpZ3JhdGlvbiBlc3QgYmFzw6llIHN1ciBsZSB0eXBlIGRlIGxcJ2ltYWdlLCBwcsOpY2lzZXogaWNpIGxlcyB0eXBlcyBkXCdpbWFnZXMgcXVpIGRldnJvbnQgw6p0cmUgaW50w6lncsOpZXMsIGVuIGxlcyBzw6lwYXJhbnQgcGFyIGRlcyB2aXJndWxlcy4gRXhlbXBsZSA6ICIuanBnLC5wbmcsLmdpZiIuIExhIGNhc3NlIChtYWp1c2N1bGUvbWludXNjdWxlKSBuXCdlc3QgcGFzIHByaXNlIGVuIGNvbXB0ZS4nOwokbGFuZ1snaW5mb19pbWFnZV91cmxfaGFzY2FjaGVkaXInXSA9ICdTaSB2b3RyZSBDRE4gKHLDqXNlYXUgZGUgY29udGVudSkgcG9pbnRlIGRpcmVjdGVtZW50IHZlcnMgbGUgcsOpcGVydG9pcmUgZGVzIGltYWdlcyBlbiBjYWNoZSwgYWxvcnMgdm91cyBkZXZyZXogcGV1dC3DqnRyZSBwYXNzZXIgY2V0dGUgb3B0aW9uIMOgICJPdWkiJzsKJGxhbmdbJ2luZm9faW1hZ2VfdXJsX3ByZWZpeCddID0gJ1Nww6ljaWZpZSBsXCdVUkwgw6AgYWpvdXRlciBlbiBwcsOpZml4ZSBhdXggaW1hZ2VzIGfDqW7DqXLDqWVzLiBQYXIgZMOpZmF1dCwgY1wnZXN0IGxcJ1VSTCBkdSByw6lwZXJ0b2lyZSAidXBsb2FkcyIsIG1haXMgc2kgdm91cyBhdmV6IHZvdHJlIHByb3ByZSByw6lzZWF1IGRlIGNvbnRlbnUgKENvbnRlbnQgRGVsaXZlcnkgTmV0d29yayksIG91IHBsdXNpZXVycyBkb21haW5lcyBwb2ludGFudCB2ZXJzIGxlIG3Dqm1lIHLDqXBlcnRvaXJlLCB2b3VzIHZvdWRyZXogcGV1dC3DqnRyZSBzcMOpY2lmaWVyIHVuZSBhZHJlc3NlIGRpZmbDqXJlbnRlIGljaS4nOwokbGFuZ1snbWF4X2NhY2hlX2FnZSddID0gJ8OCZ2UgbWF4aW11bSBkZXMgZmljaGllcnMgZW4gY2FjaGUgKGVuIGpvdXJzKSc7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ1VuIG1vZHVsZSBkZSBnw6luw6lyYXRpb24gZFwnaW1hZ2VzIGV0IGRlIGJhbGlzZXMtaW1hZ2VzIHBvdXIgQ01TTVMnOwokbGFuZ1snbXNnX2FsaWFzZXNfdXBkYXRlZCddID0gJ0xlcyBhbGlhcyBvbnQgw6l0w6kgbWlzIMOgIGpvdXInOwokbGFuZ1snbXNnX2NhY2hlY2xlYW5lZCddID0gJ1LDqXBlcnRvaXJlIGNhY2hlIHZpZMOpLiAlZCBmaWNoaWVycyBzdXBwcmltw6lzJzsKJGxhbmdbJ21zZ19jYWNoZXJlbW92ZWQnXSA9ICdDYWNoZSBzdXBwcmltw6knOwokbGFuZ1snbXNnX3ByZWZzdXBkYXRlZCddID0gJ1Byw6lmw6lyZW5jZXMgbW9kaWZpw6llcyc7CiRsYW5nWydub25lJ10gPSAnQXVjdW4nOwokbGFuZ1snb3B0aW9ucyddID0gJ09wdGlvbnMmbmJzcDsnOwokbGFuZ1sncGFyYW1fYWxpYXMnXSA9ICdMZSBwYW5uZWF1IGRcJ2FkbWluaXN0cmF0aW9uIGR1IG1vZHVsZSB2b3VzIHBlcm1ldCBkZSBjcsOpZXIgcGx1c2lldXJzIGFsaWFzIGRlIGNvbW1hbmRlIHF1aSBjb21iaW5lbnQgZGVzIG1vZMOobGVzIGRcJ2FyZ3VtZW50cyBmcsOpcXVlbW1lbnQgdXRpbGlzw6lzLCBzb3VzIHVuIG5vbS4gUG91ciB1dGlsaXNlciBjZXMgYWxpYXMsIHV0aWxpc2V6IHVuIGFyZ3VtZW50IGRlIGxhIGZvcm1lIHN1aXZhbnRlIDogYWxpYXMjIz1taW5fYWxpYXMuIFBhciBleCA6IGFsaWFzMT1mb28gYWxpYXMyPWZvby4nOwokbGFuZ1sncGFyYW1fYWx0J10gPSAnVXRpbGlzw6kgbG9ycyBkZSBsYSBjcsOpYXRpb24gZFwndW4gdGFnIGltZywgc3DDqWNpZmllIGxhIHZhbGV1ciBkZSBsXCdhdHRyaWJ1dCBhbHQuIE5vdGV6IHF1ZSwgc2kgY2UgblwnZXN0IHBhcyBzcMOpY2lmacOpLCB1bmUgdmFsZXVyIHNlcmEgYXV0b21hdGlxdWVtZW50IGNhbGN1bMOpZSBwb3VyIGNldCBhdHRyaWJ1dCBkZSBzb3J0IHF1ZSBsYSBwbHVwYXJ0IGRlcyB0YWdzIGltZyBzb2llbnQgdmFsaWRlcy4gVm91cyBwb3V2ZXogaW5oaWJlciBjZSBjYWxjdWwgYXV0b21hdGlxdWUgYXZlYyBsYSBwYXJhbcOodHJlICJub2F1dG8iJzsKJGxhbmdbJ3BhcmFtX2NsYXNzJ10gPSAnVXRpbGlzw6kgbG9ycyBkZSBsYSBjcsOpYXRpb24gZFwndW4gdGFnIDxpbWc+LiBQZXJtZXQgZFwnYWpvdXRlciB1bmUgb3UgcGx1c2lldXJzIGNsYXNzZXMgQ1NTIGF1IHRhZywgcGFyIGV4ZW1wbGUgOiBjbGFzcz0iZmFuY3lib3ggdGh1bWJuYWlsIic7CiRsYW5nWydwYXJhbV9maWx0ZXJfYmx1ciddID0gJyh0b3V0ZXMgdmFsZXVycykgU3DDqWNpZmlleiB1bmUgdmFsZXVyIHBvdXIgY2UgcGFyYW3DqHRyZSBwb3VyIGFqb3V0ZXIgdW4gZWZmZXQgZGUgZmxvdSBzdXIgbFwnaW1hZ2UnOwokbGFuZ1sncGFyYW1fZmlsdGVyX2JyaWdodG5lc3MnXSA9ICcoZW50aWVyKSBBdWdtZW50ZSBsYSBsdW1pbm9zaXTDqSBkZSBsXCdpbWFnZSBnw6luw6lyw6llIHNlbG9uIGxcJ2VudGllciBzcMOpY2lmacOpJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jb2xvcml6ZSddID0gJyhyLGcsYlssYWxwaGFdKSBJZGVudGlxdWUgw6AgImZpbHRlcl9ncmV5c2NhbGUiIHNhdWYgcXVlIHZvdXMgcG91dmV6IHNww6ljaWZpZXIgbGEgY291bGV1ciBldCBsYSB2YWxldXIgYWxwaGEgKHRyYW5zcGFyZW5jZSknOwokbGFuZ1sncGFyYW1fZmlsdGVyX2NvbnRyYXN0J10gPSAnKGVudGllcikgTW9kaWZpZSBsZSBjb250cmFzdGUgZGUgbFwnaW1hZ2UgZ8OpbsOpcsOpZSBzZWxvbiBsXCdlbnRpZXIgc3DDqWNpZmnDqSc7CiRsYW5nWydwYXJhbV9maWx0ZXJfY3JvcCddID0gJyhwb3VyY2VudGFnZVssYWxpZ25lbWVudF9ob3Jpem9udGFsLGFsaWduZW1lbnRfdmVydGljYWxdKSAtIEVmZmVjdHVlIHVuIHJlY2FkcmFnZSBzdXIgbFwnaW1hZ2Ugc3DDqWNpZmnDqWUuIExlcyBwYXJhbcOodHJlcyBkZSByZWNhZHJhZ2Ugc29udCBzcMOpY2lmacOpcyBzb3VzIGZvcm1lIGRcJ3VuZSBsaXN0ZSBkZSBwYXJhbcOodHJlcyBzw6lwYXLDqXMgcGFyIHVuZSB2aXJndWxlLiBMYSBwcmVtacOocmUgdmFsZXVyIChvYmxpZ2F0b2lyZSkgZXN0IHVuIHBvdXJjZW50YWdlIGRlIGxhIHRhaWxsZSBvcmlnaW5hbGUgZGUgbFwnaW1hZ2UuIExlIHNlY29uZHMgcGFyYW3DqHRyZSAob3B0aW9ubmVsKSBkb2l0IMOqdHJlIGNob2lzaSBwYXJtaSBcJ2xcJywgXCdjXCcsIG91IFwnclwnIChyZXNwZWN0aXZlbWVudCBwb3VyIGdhdWNoZShsZWZ0KSwgY2VudHJlKGNlbnRlciksIGRyb2l0KHJpZ2h0KSkuIExlIHRyb2lzacOobWUgcGFyYW3DqHRyZSAob3B0aW9ubmVsKSBkb2l0IMOqdHJlIGNob2lzaSBwYXJtaSBcJ3RcJywgXCdjXCcsIG91IFwnYlwnIChyZXNwZWN0aXZlbWVudCBwb3VyIGhhdXQodG9wKSwgY2VudHJlKGNlbnRlciksIGJhcyhib3R0b20pKS4gQ2VzIGRldXggZGVybmllcnMgcGFyYW3DqHRyZXMgc3DDqWNpZmllbnQgbGEgcG9zaXRpb24gYXUgc2VpbiBkZSBsXCdpbWFnZSBvcmlnaW5hbGUgw6AgbGFxdWVsbGUgYXBwbGlxdWVyIGxlIHJlY2FkcmFnZS4gZS5nLiA6IGNyb3A9MzMsYixyIHBvdXIgZWZmZWN0dWVyIHVuIHJlY2FkcmFnZSBkZSAzMyUgw6AgcGFydGlyIGR1IGJhcyBkcm9pdCBkZSBsXCdpbWFnZSBvcmlnaW5hbGUuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jcm9wdG9maXQnXSA9ICcobGFyZ2V1cixoYXV0ZXVyKSAtIEVmZmVjdHVlIHVuIHJlY2FkcmFnZSBzdXIgbFwnaW1hZ2Ugc3DDqWNpZmnDqWUgcG91ciBlbiBhZGFwdGVyIGxhIHRhaWxsZS4gQ2VsYSB0ZW50ZSBkZSByZWRpbWVuc2lvbm5lciBsXCdpbWFnZSDDoCBsYSB0YWlsbGUgZMOpc2lyw6llIGVuIGdhcmRhbnQgbGUgcmF0aW8gZFwnYXNwZWN0LCBwdWlzIHJlY2VudHJlIGxcJ2ltYWdlIHJlZGltZW5zaW9ubsOpZS4gTGVzIHBhcmFtw6h0cmVzIHNww6ljaWZpw6lzIGNvcnJlc3BvbmRlbnQgw6AgbGEgaGF1dGV1ciBldCBsYSBsYXJnZXVyIGTDqXNpcsOpcyBwb3VyIGxcJ2ltYWdlIGRlIGRlc3RpbmF0aW9uLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfZWRnZWRldGVjdCddID0gJyh0b3V0ZXMgdmFsZXVycykgQWNjZW50dWUgbGVzIGJvcmRzIGRlIGxcJ2ltYWdlJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9lbWJvc3MnXSA9ICcodG91dGVzIHZhbGV1cnMpICJSZXBvdXNzZSIgbFwnaW1hZ2UnOwokbGFuZ1sncGFyYW1fZmlsdGVyX2ZsaXAnXSA9ICcobW9kZSkgLSBBcHBsaXF1ZSB1bmUgcm90YXRpb24gw6AgbFwnaW1hZ2UuICAwID0gaG9yaXpvbnRhbCwgMSA9IHZlcnRpY2FsLCBldCAyID0gZGFucyBsZXMgZGV1eCBkaXJlY3Rpb25zLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfZ3JheXNjYWxlJ10gPSAnKHRvdXRlcyB2YWxldXJzKSBDb252ZXJ0aXQgbFwnaW1hZ2UgZW4gbml2ZWF1eCBkZSBncmlzJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9tZWFucmVtb3ZhbCddID0gJyh0b3V0ZXMgdmFsZXVycykgVGVudGUgZFwnYWpvdXRlciB1biBlZmZldCAic2tldGNoeSInOwokbGFuZ1sncGFyYW1fZmlsdGVyX25lZ2F0ZSddID0gJyh0b3V0ZXMgdmFsZXVycykgUGFzc2UgbFwnaW1hZ2UgZW4gbsOpZ2F0aWYnOwokbGFuZ1sncGFyYW1fZmlsdGVyX3BpeGVsYXRlJ10gPSAnKHRhaWxsZVssYXZhbmPDqV0pIFBpeGVsbGlzZSBsXCdpbWFnZS4gU3DDqWNpZmlleiB1biBlbnRpZXIgcG91ciBsZSBwb2lkcyBldCB1bmUgdmFsZXVyIGJvb2zDqWVubmUgb3B0aW9ubmVsbGUgKHRydWUvZmFsc2UgLSBmYWxzZSBwYXIgZMOpZmF1dCkgcG91ciBwZXJtZXR0cmUgdW5lIHBpeMOpbGlzYXRpb24gYXZhbmPDqWUuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yZXNpemUnXSA9ICd0eXBlLG51bWJlclssbnVtYmVyXSAtIFBlcmZvcm0gYSByZXNpemUgb2YgdGhlIHNvdXJjZSBpbWFnZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5wLG51bWJlciAtIFBlcmZvcm0gYSBzaW1wbGUgcmVzY2FsZSB0byBhIGNlcnRhaW4gcGVyY2VudGFnZS4gIGkuZTogIHJlc2l6ZT1wLDUwIHRvIHJlc2l6ZSB0byA1MCUgb2YgdGhlIG9yaWdpbmFsIHNpemUuPC9saT4NCiAgPGxpPncsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCB3aWR0aCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPXcsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIHdpZHRoIG9mIDgwIHBpeGVscy48L2xpPg0KICA8bGk+aCxudW1iZXIgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgc3BlY2lmaWVkIGhlaWdodCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPWgsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIGhlaWdodCBvZiA4MCBwaXhlbHMuPC9saT4NCiAgPGxpPmMseCx5IC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIGN1c3RvbSBzaXplICh3aXRob3V0IHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgaS5lOiByZXNpemU9Yyw1MCw3NSB0byBjcmVhdGUgYSB0aHVtYm5haWwgdGhhdCBpcyA1MHg3NSBwaXhlbHMuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yZXNpemV0b2ZpdCddID0gJyh3aWR0aCxoZWlnaHRbLGNvbG9yWyxhbHBoYV1dKSAtIFBlcmZvcm0gYSByZXNpemUgb24gdGhlIGltYWdlIHNwZWNpZmllZC4gVGhpcyBhdHRlbXB0cyB0byByZXNjYWxlIHRoZSBpbWFnZSB0byB0aGUgZGVzdGluYXRpb24gc2l6ZSB3aGlsZSByZWF0aW5pbmcgYXNwZWN0IHJhdGlvLCB0aGUgaW1hZ2UgaXMgY2VudGVyZWQgaW4gdGhlIGJveCBzcGVjaWZpZWQgKGVpdGhlciBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBkZXBlbmRpbmcgdXBvbiBhc3BlY3QgcmF0aW8gYW5kIHRoZSBkZXN0aW5hdGlvbiBzaXplLCBhbmQgdGhlIGltYWdlIGlzIHN1cnJvdW5kZWQgYnkgdGhlIHN1cHBsaWVkIGNvbG9yLiAgQ29sb3JzIGNhbiBiZSBzcGVjaWZpZWQgYnkgbmFtZSAoc2VlIHRoZSBYMTEgY29sb3IgbmFtZXMpLCBvciBieSAjbm5ubm5uIGhleGFkZWNpbWFsIGZvcm1hdCwgb3IgYXMgcmdiIHZhbHVlcyBzZXBhcmF0ZWQgYnkgYSA6IGkuZTogIGZpbHRlcl9jcm9wdG9maXQ9NjAwLDQwMCwjZmYwMDAwLiAgVGhlIHNwZWNpYWwgY29sb3IgdmFsdWUgInRyYW5zcGFyZW50IiBjYW4gYmUgc3BlY2lmaWVkIHRvIGZvcmNlIHRoZSBiYWNrZ3JvdW5kIHRvIGJlIHRyYW5zcGFyZW50LiAgIEFuIGFscGhhIHZhbHVlIG1heSBiZSBzcGVjaWZpZWQgYmV0d2VlbiAwIGFuZCAxMjcgdG8gc3BlY2lmeSBkaWZmZXJlbnQgZGVncmVlcyBvZiB0cmFuc2x1Y2VuY3kgZm9yIHRoZSBiYWNrZ3JvdW5kLiAgIEF0IG5vIHRpbWUgd2lsbCB0aGlzIHBsdWdpbiBwZXJmb3JtIGFueSB1cHNjYWxpbmcuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yb3RhdGUnXSA9ICcoYW5nbGUsY291bGV1cikgU3DDqWNpZmllIGxcJ2FuZ2xlIChzZW5zIGRlcyBhaWd1aWxsZXMgZFwndW5lIG1vbnRyZSkgZGUgcm90YXRpb24gZGUgbFwnaW1hZ2UsIGV0IGxhIGNvdWxldXIgZGUgcmVtcGxpc3NhZ2UgcG91ciBsZXMgcGl4ZWxzIHZpZGVzLiBMYSByb3RhdGlvbiBzXCdlZmZlY3R1ZSDDoCBwYXJ0aXIgZHUgY2VudHJlIGRlIGxcJ2ltYWdlLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfcm91bmRlZGNvcm5lcnMnXSA9ICcocmF5b24pIFNww6ljaWZpZSB1bmUgdmFsZXVyIGRlIHJheW9uIChlbiBwaXhlbHMpIHBvdXIgYXJyb25kaXIgbGVzIGFuZ2xlcy4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3dhdGVybWFyayddID0gJyh0b3V0ZXMgdmFsZXVycykgU3DDqWNpZmllIHF1ZSBsZSBmaWxpZ3JhbmUgKHLDqWdsw6kgZGFucyBsZSBtb2R1bGUgQ0dFeHRlbnNpb25zKSBkb2l0IMOqdHJlIGFwcGxpcXXDqSDDoCBsXCdpbWFnZSc7CiRsYW5nWydwYXJhbV9oZWlnaHQnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSBoZWlnaHQgYXR0cmlidXRlLiAgTm90ZSwgaWYgdGhpcyBpcyBub3Qgc3BlY2lmaWVkIGEgdmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoaXMgYXR0cmlidXRlIHNvIHRoYXQgbW9zdCBnZW5lcmF0ZWQgaW1nIHRhZ3Mgd2lsbCB2YWxpZGF0ZS4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBhdXRvIGNhbGN1bGF0aW9uIHdpdGggdGhlICJub2F1dG8iIHBhcmFtZXRlci4gIFRoaXMgcGFyYW1ldGVyIHdpbGwgYWxzbyBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlICJ3aWR0aCIgcGFyYW1ldGVyIHRvIHBlcmZvcm0gYSBmaW5hbCByZXNpemluZyBvciBjcm9wdG9maXQgZmlsdGVyICh1bmxlc3MgdGhlICJub2F1dG9zY2FsZSIgcGFyYW1ldGVyIGlzIGFsc28gc3VwcGxpZWQpJzsKJGxhbmdbJ3BhcmFtX2lkJ10gPSAnVXRpbGlzw6kgbG9ycyBkZSBsYSBjcsOpYXRpb24gZFwndW4gdGFnIGltZywgcGVybWV0IGRlIHNww6ljaWZpZXIgdW4gYXR0cmlidXQgaWQgw6AgaW5jbHVyZSBhdSB0YWcuIFBhciBleCA6IGlkPSJtb250YWciJzsKJGxhbmdbJ3BhcmFtX21heF9oZWlnaHQnXSA9ICdVdGlsaXPDqSB1bmlxdWVtZW50IGF2ZWMgbGEgYmFsaXNlIHtjZ3NpX2NvbnZlcnR9LCBjZSBwYXJhbcOodHJlIHBlcm1ldCBkZSBzcMOpY2lmaWVyIGxhIGhhdXRldXIgbWF4LiBwb3VyIGxlcyBpbWFnZXMgY29udmVydGllcyc7CiRsYW5nWydwYXJhbV9tYXhfd2lkdGgnXSA9ICdVdGlsaXPDqSB1bmlxdWVtZW50IGF2ZWMgbGEgYmFsaXNlIHtjZ3NpX2NvbnZlcnR9LCBjZSBwYXJhbcOodHJlIHBlcm1ldCBkZSBzcMOpY2lmaWVyIGxhIGxhcmdldXIgbWF4LiBwb3VyIGxlcyBpbWFnZXMgY29udmVydGllcyc7CiRsYW5nWydwYXJhbV9uYW1lJ10gPSAnVXRpbGlzw6kgbG9ycyBkZSBsYSBjcsOpYXRpb24gZHUgdGFnIGltZywgc3DDqWNpZmllIGxhIHZhbGV1ciBwb3VyIGxcJ2F0dHJpYnV0IG5hbWUuJzsKJGxhbmdbJ3BhcmFtX25vYXV0byddID0gJ05lIHBhcyBjYWxjdWxlciBhdXRvbWF0aXF1ZW1lbnQgbGVzIGF0dHJpYnV0cyAod2lkdGgsIGhlaWdodCwgYWx0KSBwb3VyIGxhIGJhbGlzZSAiaW1nIi4gQ2VjaSBwZXV0IGZhaXJlIGVuIHNvcnRlIHF1ZSB2b3RyZSBjb2RlIG5lIHNvaXQgcGFzIHZhbGlkZSBzaSB2b3VzIG5lIHNww6ljaWZpZXogcGFzIGxlcyBhdHRyaWJ1dHMgIndpZHRoIiwgImhlaWdodCIgZXQgImFsdCIuJzsKJGxhbmdbJ3BhcmFtX25vYXV0b3NjYWxlJ10gPSAnU2kgbGVzIHBhcmFtw6h0cmVzIGhhdXRldXIgZXQgbGFyZ2V1ciBzb250IHNww6ljaWZpw6lzLCBjZSBwYXJhbcOodHJlcyBkw6lzYWN0aXZlIGxlIHJlZGltZW5zaW9ubmVtZW50IGF1dG9tYXRpcXVlIGRlIGxcJ2ltYWdlLic7CiRsYW5nWydwYXJhbV9ub2JjYWNoZSddID0gJ05lIHBhcyBhdXRvcmlzZXIgbFwnaW1hZ2UgcmVkaW1lbnNpb25uw6llIMOgIMOqdHJlIG1pc2UgZW4gY2FjaGUgZGFucyBsZSBuYXZpZ2F0ZXVyICh1dGlsZSBkdXJhbnQgbGUgZMOpdmVsb3BwZW1lbnQpIDsgY2VjaSBham91dGUgdW4gbnVtw6lybyB1bmlxdWUgZW4gcGFyYW3DqHRyZSBkZSBsXCdpbWFnZSBxdWkgZm9yY2VyYSBsZSBuYXZpZ2F0ZXVyIMOgIG5lIHBhcyBtZXR0cmUgbFwnaW1hZ2UgZW4gY2FjaGUuJzsKJGxhbmdbJ3BhcmFtX25vZW1iZWQnXSA9ICdGb3JjZSBsXCdpbWFnZSDDoCBuZSBwYXMgw6p0cmUgaW50w6lncsOpZSBlbmNvZMOpZSBkYW5zIGxlIGNvZGUgc291cmNlLiBFbiBkw6lwaXQgZGUgc2EgY29uZmlndXJhdGlvbiBkYW5zIGxcJ2FkbWluLCBsZSBtb2R1bGUgdmEgZ8OpbsOpcmVyIHVuIGZpY2hpZXIgaW1hZ2Ugc3VyIGxlIHNlcnZldXIuJzsKJGxhbmdbJ3BhcmFtX25vdGltZWNoZWNrJ10gPSAnRMOpc2FjdGl2ZXIgbGEgdsOpcmlmaWNhdGlvbiBkZSB0ZW1wb3Jpc2F0aW9uIGRlcyBmaWNoaWVycyBtaXMgZW4gY2FjaGUuJzsKJGxhbmdbJ3BhcmFtX25vcmVtb3RlJ10gPSAnTmUgcGFzIGF1dG9yaXNlciBsYSByw6ljdXDDqXJhdGlvbiBkZSBzb3VyY2UgZGVzIFVSTHMgZGlzdGFudGVzJzsKJGxhbmdbJ3BhcmFtX25vcm90YXRlJ10gPSAnTmUgcGFzIHRlbnRlciBkZSBsaXJlIGxlcyBpbmZvcm1hdGlvbnMgZXhpZiBkZXB1aXMgbGUgZmljaGllciBwb3VyIGNvcnJpZ2VyIGxhIHJvdGF0aW9uIGRlIGxcJ2ltYWdlJzsKJGxhbmdbJ3BhcmFtX25vdGFnJ10gPSAnTmUgcGFzIGfDqW7DqXJlciBkZSBiYWxpc2UgImltZyIsIG1haXMgdW5pcXVlbWVudCBsXCdVUkwgZGUgbFwnaW1hZ2UgZW4gY2FjaGUuIENlY2kgblwnYSBhdWN1biBlZmZldCBxdWFuZCBDR1NtYXJ0SW1hZ2UgZXN0IHV0aWxpc8OpIGRlcHVpcyB1bmUgZmV1aWxsZSBkZSBzdHlsZXMuJzsKJGxhbmdbJ3BhcmFtX292ZXJ3cml0ZSddID0gJ0TDqXNhY3RpdmUgdG91dCBsZSBjYWNoZSBldCBmb3JjZSDDoCByZWNhbGN1bGVyIGxlcyBmaWx0cmVzJzsKJGxhbmdbJ3BhcmFtX3F1YWxpdHknXSA9ICdTcMOpY2lmaWVyIGxhIHF1YWxpdMOpIGRlIGxcJ2ltYWdlIGFmZmljaMOpZS4gTWV0dHJlIHVuZSB2YWxldXIgZW50cmUgMCBldCAxMDAuJzsKJGxhbmdbJ3BhcmFtX3JlbCddID0gJ1V0aWxpc8OpIGxvcnMgZGUgbGEgY3LDqWF0aW9uIGRcJ3VuZSBiYWxpc2UgZFwnaW1hZ2UsIGlsIHBlcm1ldCBkZSBzcMOpY2lmaWVyIHVuIGF0dHJpYnV0IHJlbCBvcHRpb25uZWwgKHV0aWxpc8OpIHR5cGlxdWVtZW50IGRhbnMgbGVzIGFsYnVtcyBqYXZhc2NyaXB0KS4gZS5nOiByZWw9ImFsYnVtIic7CiRsYW5nWydwYXJhbV9zaWxlbnQnXSA9ICdJZ25vcmVyIHNpbGVuY2lldXNlbWVudCBsZXMgZXJyZXVycyc7CiRsYW5nWydwYXJhbV9zcmMnXSA9ICdTcGVjaWZ5IHRoZSBzb3VyY2UgZm9yIHRoZSBpbWFnZSBwcm9jZXNzaW5nIChpZiBhbnkpIG9yIHRoZSBnZW5lcmF0ZWQgaW1nIHRhZy4gIE5vdGUsIHRoaXMgcGFyYW1ldGVyIGlzIGZsZXhpYmxlLCBhbmQgdGhlIG1vZHVsZSB3aWxsIGF0dGVtcHQgbWFueSBtZXRob2RzIHRvIGZpbmQgdGhlIHNvdXJjZSBpbWFnZSBmaWxlIG9uIHRoZSB3ZWIgc2VydmVyIGFzIGZvbGxvd3M6DQo8dWw+DQogIDxsaT5GaXJzdCBsb29rIHRvIHNlZSBpZiB0aGUgc3BlY2lmaWVkIHNyYyB2YWx1ZSBleGlzdHMgYXMgYSBmaWxlIG9uIHRoZSBmaWxlc3lzdGVtLjwvbGk+DQogIDxsaT5OZXh0LCBjaGVjayBpZiB0aGUgdmFsdWUgc3BlY2lmaWVkIGZvciB0aGUgc3JjIHBhcmFtZXRlciBpcyBhIFVSTCBhbmQgYmVnaW5zIHdpdGggdGhlIHVwbG9hZHNfdXJsIChhcyBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZy5waHApPC9saT4NCiAgPGxpPk5leHQsIGNoZWNrIGlmIHRoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yIHRoZSBzcmMgcGFyYW1ldGVyIGlzIGEgVVJMIGFuZCBiZWdpbnMgd2l0aCB0aGUgcm9vdF91cmwgKGFzIHNwZWNpZmllZCBpbiB0aGUgY29uZmlnLnBocCk8L2xpPg0KICA8bGk+TmV4dCwgY2hlY2sgaWYgdGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgdGhlIHNyYyBwYXJhbWV0ZXIgaXMgYSBVUkwgYW5kIGJlZ2lucyB3aXRoIHRoZSBzc2xfdXJsIChhcyBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZy5waHApPC9saT4NCjwvdWw+DQpJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIHNwbGl0IHRoZSBzcmMgcGFyYW1ldGVyIGludG8gbXVsdGlwbGUgYXJndW1lbnRzLCB3aGljaCBpcyB1c2VmdWwgZm9yIGV4YW1wbGUgd2hlbiB0aGUgcGF0aCB0byB0aGUgZmlsZSwgYW5kIHRoZSBmaWxlbmFtZSBhcmUgc3RvcmVkIGluIHNlcGFyYXRlIHNtYXJ0eSB2YXJpYWJsZXMuICAgWW91IGNhbiBzcGVjaWZ5IHRoZSBzcmMgYXMgc3JjMT1cJHRoZV9wYXRoIHNyYzI9XCR0aGVfZmlsZW5hbWUuICBUaGUgc3lzdGVtIHdpbGwgYXV0b21hdGljYWxseSBhZGQgYSAvIGluIGJldHdlZW4gZWFjaCBhcmd1bWVudC4gIFRoZXJlIGlzIG5vIGxpbWl0IHRvIHRoZSBudW1iZXIgb2Ygc3JjIHBhcmFtZXRlcnMuJzsKJGxhbmdbJ3BhcmFtX3N0eWxlJ10gPSAnVXRpbGlzw6kgcG91ciBsYSBiYWxpc2UgImltZyIsIHBlcm1ldCBkZSBzcMOpY2lmaWVyIHVuIHN0eWxlIGFsdGVybmF0aWYgcG91ciBsYSBiYWxpc2UuICBQYXIgZXggOiBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Iic7CiRsYW5nWydwYXJhbV90aXRsZSddID0gJ1JlbnNlaWduZXogdW4gdGl0cmUgb3B0aW9ubmVsIHBvdXIgbGEgYmFsaXNlICJpbWciLiAgUGFyIGV4IDogdGl0bGU9IkNlY2kgZXN0IHVuZSBhc3R1Y2UiJzsKJGxhbmdbJ3BhcmFtX3dpZHRoJ10gPSAnVXRpbGlzw6kgbG9ycyBkZSBsYSBjcsOpYXRpb24gZFwndW5lIGJhbGlzZSAiaW1nIiA6IHNww6ljaWZpZSBsXCdhdHRyaWJ1dCAid2lkdGgiIChsYXJnZXVyKS4gTm90ZSA6IHNpIGNldHRlIHZhbGV1ciBuXCdlc3QgcGFzIHNww6ljaWZpw6llLCB1bmUgdmFsZXVyIHZhIMOqdHJlIGF1dG9tYXRpcXVlbWVudCBjYWxjdWzDqWUuIFZvdXMgcG91dmV6IGTDqXNhY3RpdmVyIGNlIGNhbGN1bCBhdXRvbWF0aXF1ZSBhdmVjIGxlIHBhcmFtw6h0cmUgIm5vYXV0byIuJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTW9kdWxlIGluc3RhbGzDqSc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnVG91dGVzIGxlcyBkb25uw6llcyByZWxhdGl2ZXMgw6AgY2UgbW9kdWxlIG9udCDDqXTDqSBzdXBwcmltw6llcyc7CiRsYW5nWydwcm9tcHRfY3JvcHRvZml0X2RlZmF1bHRfbG9jJ10gPSAnUG9zaXRpb24gw6AgcGFydGlyIGRlIGxhcXVlbGxlIHJlY2FkcmVyIDonOwokbGFuZ1sncHJvbXB0X2VtYmVkX3NpemVsaW1pdCddID0gJ0ludMOpZ3JhdGlvbiBiYXPDqWUgc3VyIGxlIHBvaWRzIGRlIGxcJ2ltYWdlJzsKJGxhbmdbJ3Byb21wdF9lbWJlZF9zbWFydGxpbWl0ZWQnXSA9ICdJbnTDqWdyYXRpb24gZW4gbW9kZSBTbWFydCBtYWlzIGxpbWl0ZSBsZSBwb2lkcyBkZSBsXCdpbWFnZSc7CiRsYW5nWydwcm9tcHRfZW1iZWRfdHlwZSddID0gJ0ludMOpZ3JhdGlvbiBiYXPDqWUgc3VyIGxlIHR5cGUgZGUgbFwnaW1hZ2UnOwokbGFuZ1sncHJvbXB0X2xvY19ib3R0b21sZWZ0J10gPSAnRW4gYmFzIMOgIGdhdWNoZSAoYmcpJzsKJGxhbmdbJ3Byb21wdF9sb2NfYm90dG9tY2VudGVyJ10gPSAnRW4gYmFzIGF1IGNlbnRyZSAoYmMpJzsKJGxhbmdbJ3Byb21wdF9sb2NfYm90dG9tcmlnaHQnXSA9ICdFbiBiYXMgw6AgZHJvaXRlIChiZCknOwokbGFuZ1sncHJvbXB0X2xvY19jZW50ZXJsZWZ0J10gPSAnQXUgY2VudHJlIMOgIGdhdWNoZSAoY2cpJzsKJGxhbmdbJ3Byb21wdF9sb2NfY2VudGVyJ10gPSAnQXUgY2VudHJlJzsKJGxhbmdbJ3Byb21wdF9sb2NfY2VudGVycmlnaHQnXSA9ICdBdSBjZW50cmUgw6AgZHJvaXRlIChjZCknOwokbGFuZ1sncHJvbXB0X2xvY190b3BsZWZ0J10gPSAnRW4gaGF1dCDDoCBnYXVjaGUgKGhnKSc7CiRsYW5nWydwcm9tcHRfbG9jX3RvcGNlbnRlciddID0gJ0VuIGhhdXQgYXUgY2VudHJlIChoYyknOwokbGFuZ1sncHJvbXB0X2xvY190b3ByaWdodCddID0gJ0VuIGhhdXQgw6AgZHJvaXRlIChoZCknOwokbGFuZ1sncmVzaXppbmcnXSA9ICdSZWRpbWVuc2lvbm5lbWVudCc7CiRsYW5nWydzbWFydCddID0gJ0ludGVsbGlnZW50IFtTbWFydF0nOwokbGFuZ1snc3VibWl0J10gPSAnRW52b3llcic7Cj8+]]></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.CGSmartImage_ClearCacheTask.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/class.AutoProcessMasterTask.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxNSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKbmFtZXNwYWNlIENHU21hcnRJbWFnZTsKCmNsYXNzIEF1dG9Qcm9jZXNzTWFzdGVyVGFzayBpbXBsZW1lbnRzIFxDbXNSZWd1bGFyVGFzawp7CiAgICBwcml2YXRlICRfcHJlZnM7CgogICAgcHJpdmF0ZSBmdW5jdGlvbiAmZ2V0X3ByZWZzKCkKICAgIHsKICAgICAgICBpZiggISR0aGlzLT5fcHJlZnMgKSAkdGhpcy0+X3ByZWZzID0gYXV0b3Byb2Nlc3Nfb3B0aW9uczo6bG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+X3ByZWZzOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIGJhc2VuYW1lKGdldF9jbGFzcygkdGhpcykpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGVzY3JpcHRpb24oKQogICAgewogICAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9DR1NNQVJUSU1BR0UpOwogICAgICAgIHJldHVybiAkbW9kLT5MYW5nKCdhdXRvcHJvY2Vzc3Rhc2tfZGVzY3JpcHRpb24nKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdCgkdGltZSA9ICcnKQogICAgewogICAgICAgIGlmKCAhXGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dNZXNzYWdlUXVldWUnKSApIHJldHVybiBGQUxTRTsKICAgICAgICAkb3B0cyA9ICR0aGlzLT5nZXRfcHJlZnMoKTsKICAgICAgICBpZiggISAkb3B0cy0+ZW5hYmxlZCApIHJldHVybiBGQUxTRTsKICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpbGVzKCRkaXIpCiAgICB7CiAgICAgICAgJHByZWZzID0gJHRoaXMtPmdldF9wcmVmcygpOwogICAgICAgIGlmKCAhJHByZWZzLT5pc19kaXJfc2Nhbm5hYmxlKCRkaXIpICkgcmV0dXJuOwoKICAgICAgICAkb3V0ID0gYXJyYXkoKTsKICAgICAgICAkZGggPSBvcGVuZGlyKCRkaXIpOwogICAgICAgIHdoaWxlKCBmYWxzZSAhPT0gKCRmaWxlID0gcmVhZGRpcigkZGgpKSApIHsKICAgICAgICAgICAgJGZpbGVzcGVjID0gJGRpci4nLycuJGZpbGU7CiAgICAgICAgICAgIGlmKCBzdGFydHN3aXRoKCRmaWxlLCcuJykgKSBjb250aW51ZTsKCiAgICAgICAgICAgIGlmKCBpc19maWxlKCRmaWxlc3BlYykgJiYgJHByZWZzLT5pc19maWxlX3NjYW5uYWJsZSgkZmlsZXNwZWMpICkgewogICAgICAgICAgICAgICAgJHNpemVpbmZvID0gZ2V0aW1hZ2VzaXplKCRmaWxlc3BlYyk7CiAgICAgICAgICAgICAgICBpZiggIWlzX2FycmF5KCRzaXplaW5mbykgfHwgY291bnQoJHNpemVpbmZvKSA8IDIgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgIGlmKCAkc2l6ZWluZm9bMF0gPD0gJHByZWZzLT5tYXhfc2l6ZSAmJiAkc2l6ZWluZm9bMV0gPD0gJHByZWZzLT5tYXhfc2l6ZSApIGNvbnRpbnVlOwoKICAgICAgICAgICAgICAgICRvdXRbXSA9ICRmaWxlc3BlYzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKCBpc19kaXIoJGZpbGVzcGVjKSApIHsKICAgICAgICAgICAgICAgICR0bXAgPSAkdGhpcy0+Z2V0X2ZpbGVzKCRmaWxlc3BlYyk7CiAgICAgICAgICAgICAgICBpZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgKSAkb3V0ID0gYXJyYXlfbWVyZ2UoJG91dCwkdG1wKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gb25fc3VjY2VzcygkdGltZSA9ICcnKSB7fQoKICAgIHB1YmxpYyBmdW5jdGlvbiBvbl9mYWlsdXJlKCR0aW1lID0gJycpIHt9CgogICAgcHVibGljIGZ1bmN0aW9uIHNjYW5fZm9yX2ZpbGVzKCkKICAgIHsKICAgICAgICAkb3B0cyA9ICR0aGlzLT5nZXRfcHJlZnMoKTsKICAgICAgICAkaW5jID0gJG9wdHMtPmdldF9pbmNsdWRlX2RpcnMoKTsKICAgICAgICAkY29uZmlnID0gXGNtc19jb25maWc6OmdldF9pbnN0YW5jZSgpOwogICAgICAgICRvdXQgPSBhcnJheSgpOwogICAgICAgIGlmKCBjb3VudCgkaW5jKSApIHsKICAgICAgICAgICAgZm9yZWFjaCggJGluYyBhcyAkZGlyICkgewogICAgICAgICAgICAgICAgJHRtcCA9ICR0aGlzLT5nZXRfZmlsZXMoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJGRpcik7CiAgICAgICAgICAgICAgICBpZiggY291bnQoJHRtcCkgKSAkb3V0ID0gYXJyYXlfbWVyZ2UoJG91dCwkdG1wKTsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRvdXQgPSAkdGhpcy0+Z2V0X2ZpbGVzKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGV4ZWN1dGUoJHRpbWUgPSAnJykKICAgIHsKICAgICAgICBpZiggISR0aW1lICkgJHRpbWUgPSB0aW1lKCk7CgogICAgICAgICRmaWxlcyA9ICR0aGlzLT5zY2FuX2Zvcl9maWxlcygpOwogICAgICAgIGlmKCBjb3VudCgkZmlsZXMpICkgewogICAgICAgICAgICAvLyBkZXZpZGUgdGhlIGZpbGUgbGlzdCBpbnRvIGNodW5rcwogICAgICAgICAgICAkY2h1bmtfc2l6ZSA9IDU7IC8vIHRvZG86IHNldHRpbmcKICAgICAgICAgICAgJGNodW5rcyA9IGFycmF5X2NodW5rKCRmaWxlcywkY2h1bmtfc2l6ZSk7CiAgICAgICAgICAgIGZvcmVhY2goICRjaHVua3MgYXMgJGNodW5rICkgewogICAgICAgICAgICAgICAgJG1zZyA9IG5ldyBBdXRvUHJvY2Vzc01lc3NhZ2UoJGNodW5rKTsKICAgICAgICAgICAgICAgICRtc2ctPnNlbmQoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.AutoProcessMessage.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCm5hbWVzcGFjZSBDR1NtYXJ0SW1hZ2U7CgpmaW5hbCBjbGFzcyBBdXRvUHJvY2Vzc01lc3NhZ2UgZXh0ZW5kcyBcQ0dNZXNzYWdlUXVldWVcTWVzc2FnZUJhc2UKewogICAgcHJpdmF0ZSAkX2ZpbGVzOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkZmlsZXMpCiAgICB7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgpOwogICAgICAgICR0aGlzLT5zZXRfbW9kdWxlKCdDR1NtYXJ0SW1hZ2UnKTsKICAgICAgICAkdGhpcy0+c2V0X3F1ZXVlKCdDR1NtYXJ0SW1hZ2UnKTsKICAgICAgICAkdGhpcy0+X2ZpbGVzID0gJGZpbGVzOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiAmZ2V0X3ByZWZzKCkKICAgIHsKICAgICAgICBzdGF0aWMgJF9wcmVmczsKICAgICAgICBpZiggISRfcHJlZnMgKSAkX3ByZWZzID0gYXV0b3Byb2Nlc3Nfb3B0aW9uczo6bG9hZCgpOwogICAgICAgIHJldHVybiAkX3ByZWZzOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBhdXRvY29udmVydF9maWxlKCRmaWxlbmFtZSkKICAgIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBkZWJ1Z190b19sb2coX19NRVRIT0RfXyk7CiAgICAgICAgICAgIGlmKCAhaXNfZmlsZSgkZmlsZW5hbWUpICkgdGhyb3cgbmV3IFxFeGNlcHRpb24oJ0ZpbGUgbm90IGZvdW5kJyk7CiAgICAgICAgICAgIGRlYnVnX3RvX2xvZygndGVzdDAgJy4kZmlsZW5hbWUpOwogICAgICAgICAgICBpZiggIWlzX3dyaXRhYmxlKCRmaWxlbmFtZSkgKSB0aHJvdyBuZXcgXEV4Y2VwdGlvbignRmlsZSBub3Qgd3JpdGFibGUnKTsKICAgICAgICAgICAgJHByZWZzID0gJHRoaXMtPmdldF9wcmVmcygpOwogICAgICAgICAgICBkZWJ1Z190b19sb2coJ3Rlc3QxICcuJGZpbGVuYW1lKTsKICAgICAgICAgICAgaWYoICEkcHJlZnMtPmlzX2ZpbGVfc2Nhbm5hYmxlKCRmaWxlbmFtZSkgKSByZXR1cm47CgogICAgICAgICAgICAkc2l6ZWluZm8gPSBnZXRpbWFnZXNpemUoJGZpbGVuYW1lKTsKICAgICAgICAgICAgZGVidWdfdG9fbG9nKCRzaXplaW5mbyk7CiAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoJHNpemVpbmZvKSB8fCBjb3VudCgkc2l6ZWluZm8pIDwgMiApIHRocm93IG5ldyBcRXhjZXB0aW9uKCdQcm9ibGVtIGdldHRpbmcgaW1hZ2UgZGV0YWlscycpOwogICAgICAgICAgICBpZiggJHNpemVpbmZvWzBdIDw9ICRwcmVmcy0+bWF4X3NpemUgJiYgJHNpemVpbmZvWzFdIDw9ICRwcmVmcy0+bWF4X3NpemUpIHJldHVybjsgLy8gbm90aGluZyB0byBkby4KCiAgICAgICAgICAgICRvcHRzID0gYXJyYXkoKTsKICAgICAgICAgICAgJG9wdHNbJ3NyYyddID0gJGZpbGVuYW1lOwogICAgICAgICAgICAkb3B0c1snbm90YWcnXSA9IDE7CiAgICAgICAgICAgICRvcHRzWydub2VtYmVkJ10gPSAxOwogICAgICAgICAgICAkb3B0c1snb3ZlcndyaXRlJ10gPSAxOwogICAgICAgICAgICBpZiggISRwcmVmcy0+YXV0b3JvdGF0ZSApICRvcHRzWydub3JvdGF0ZSddID0gMTsKICAgICAgICAgICAgJG9wdHNbJ2ZpbHRlcl9yZXNpemUnXSA9ICdlLCcuJHByZWZzLT5tYXhfc2l6ZTsKICAgICAgICAgICAgaWYoICRwcmVmcy0+d2F0ZXJtYXJrICkgJG9wdHNbJ2ZpbHRlcl93YXRlcm1hcmsnXSA9IDE7CgogICAgICAgICAgICBkZWJ1Z190b19sb2coJG9wdHMsJ2JlZm9yZSBwcm9jZXNzIGltYWdlJyk7CiAgICAgICAgICAgICRvdXQgPSBcY2dzaV91dGlsczo6cHJvY2Vzc19pbWFnZSgkb3B0cyk7CiAgICAgICAgICAgIGRlYnVnX3RvX2xvZygkb3V0LCdhZnRlciBwcm9jZXNzIGltYWdlJyk7CiAgICAgICAgICAgIGlmKCAkb3V0WydlcnJvciddICkgdGhyb3cgbmV3IFxFeGNlcHRpb24oJG91dFsnZXJyb3InXSk7CiAgICAgICAgICAgIGlmKCAhJG91dFsnZGVzdF9maWxlJ10gKSB0aHJvdyBuZXcgXEV4Y2VwdGlvbignTm8gY2FjaGVkIGltYWdlIGdlbmVyYXRlZCcpOwogICAgICAgICAgICBpZiggIWlzX2ZpbGUoJG91dFsnZGVzdF9maWxlJ10pICkgdGhyb3cgbmV3IFxFeGNlcHRpb24oJ091dHB1dCBmaWxlIG5vdCBmb3VuZCcpOwogICAgICAgICAgICBAcmVuYW1lKCRvdXRbJ2Rlc3RfZmlsZSddLCRmaWxlbmFtZSk7CiAgICAgICAgICAgIEB1bmxpbmsoJG91dFsnZGVzdF9maWxlJ10pOwogICAgICAgIH0KICAgICAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgZGVidWdfdG9fbG9nKCdFcnJvciBpbiAnLl9fTUVUSE9EX18pOwogICAgICAgICAgICBkZWJ1Z190b19sb2coJ0ZpbGVuYW1lOiAnLiRmaWxlbmFtZSk7CiAgICAgICAgICAgIGRlYnVnX3RvX2xvZygkZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICAgICAgYXVkaXQoJycsJ0NHU21hcnRJbWFnZSBBdXRvUHJvY2VzcycsJ0ZhaWxlZCBjb252ZXJ0aW5nICcuJGZpbGVuYW1lKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZSgpCiAgICB7CiAgICAgICAgZm9yZWFjaCggJHRoaXMtPl9maWxlcyBhcyAkZmlsZSApIHsKICAgICAgICAgICAgJHRoaXMtPmF1dG9jb252ZXJ0X2ZpbGUoJGZpbGUpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.autoprocess_options.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCm5hbWVzcGFjZSBDR1NtYXJ0SW1hZ2U7CgpmaW5hbCBjbGFzcyBhdXRvcHJvY2Vzc19vcHRpb25zCnsKICAgIHByaXZhdGUgJF9kYXRhID0gYXJyYXkoJ2VuYWJsZWQnPT4wLCdpZ25vcmVfZGlycyc9Pm51bGwsJ2lnbm9yZV9leHRlbnNpb25zJz0+bnVsbCwnaW5jbHVkZV9kaXJzJz0+bnVsbCwnbWF4X3NpemUnPT4xMDI0LCdhdXRvcm90YXRlJz0+MSwnd2F0ZXJtYXJrJz0+MCk7CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkge30KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICAgIHsKICAgICAgICBpZiggYXJyYXlfa2V5X2V4aXN0cygka2V5LCR0aGlzLT5fZGF0YSkgKSByZXR1cm4gJHRoaXMtPl9kYXRhWyRrZXldOwogICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oIiRrZXkgaXMgbm90IGEgZ2V0dGFibGUgbWVtYmVyIG9mICIuX19DTEFTU19fKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19zZXQoJGtleSwkdmFsKQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdpZ25vcmVfZGlycyc6CiAgICAgICAgY2FzZSAnaWdub3JlX2V4dGVuc2lvbnMnOgogICAgICAgIGNhc2UgJ2luY2x1ZGVfZGlycyc6CiAgICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IHRyaW0oJHZhbCk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdtYXhfc2l6ZSc6CiAgICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IG1heCgxMDAsKGludCkgJHZhbCk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdlbmFibGVkJzoKICAgICAgICBjYXNlICdhdXRvcm90YXRlJzoKICAgICAgICBjYXNlICd3YXRlcm1hcmsnOgogICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSBcY2dlX3V0aWxzOjp0b19ib29sKCR2YWwpOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF9kaXJsaXN0KCRzdHIpCiAgICB7CiAgICAgICAgJHRtcCA9IHRyaW0oJHN0cik7CiAgICAgICAgaWYoICEkdG1wICkgcmV0dXJuOwoKICAgICAgICAkbGlzdF8xID0gZXhwbG9kZSgiXG4iLCRzdHIpOwogICAgICAgICRvdXQgPSBhcnJheSgpOwogICAgICAgIGZvcmVhY2goICRsaXN0XzEgYXMgJGxpc3RfaXRlbSApIHsKICAgICAgICAgICAgJGxpc3RfaXRlbSA9IHRyaW0oJGxpc3RfaXRlbSk7CiAgICAgICAgICAgIGlmKCAhJGxpc3RfaXRlbSApIGNvbnRpbnVlOwogICAgICAgICAgICBpZiggIWlzX2RpcigkbGlzdF9pdGVtKSApIGNvbnRpbnVlOwogICAgICAgICAgICBpZiggIWluX2FycmF5KCRsaXN0X2l0ZW0sJG91dCkgKSAkb3V0W10gPSAkbGlzdF9pdGVtOwogICAgICAgIH0KICAgICAgICBpZiggY291bnQoJG91dCkgKSByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2luY2x1ZGVfZGlycygpCiAgICB7CiAgICAgICAgc3RhdGljICRfb3V0OwogICAgICAgIGlmKCAhJF9vdXQgKSAkX291dCA9ICR0aGlzLT5nZXRfZGlybGlzdCgkdGhpcy0+aW5jbHVkZV9kaXJzKTsKICAgICAgICByZXR1cm4gJF9vdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9leGNsdWRlX2RpcnMoKQogICAgewogICAgICAgIHN0YXRpYyAkX291dDsKICAgICAgICBpZiggISRfb3V0ICkgJF9vdXQgPSAkdGhpcy0+Z2V0X2Rpcmxpc3QoJHRoaXMtPmlnbm9yZV9kaXJzKTsKICAgICAgICByZXR1cm4gJF9vdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGlzX2ltYWdlZmlsZSgkZmlsZW5hbWUpCiAgICB7CiAgICAgICAgJHR5cGUgPSBcY2dlX3V0aWxzOjpnZXRfbWltZV90eXBlKCRmaWxlbmFtZSk7CiAgICAgICAgJHR5cGUgPSBzdHJ0b2xvd2VyKCR0eXBlKTsKICAgICAgICBpZiggIXN0YXJ0c3dpdGgoJHR5cGUsJ2ltYWdlLycpICkgcmV0dXJuIEZBTFNFOwogICAgICAgIHJldHVybiBUUlVFOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBpc19maWxlX2V4Y2x1ZGVkKCRmaWxlbmFtZSkKICAgIHsKICAgICAgICBpZiggISR0aGlzLT5pZ25vcmVfZXh0ZW5zaW9ucyApIHJldHVybiBGQUxTRTsKCiAgICAgICAgc3RhdGljICRfZXh0OwogICAgICAgIGlmKCAhJF9leHQgKSB7CiAgICAgICAgICAgICRfbGlzdCA9IGFycmF5KCk7CiAgICAgICAgICAgICRsaXN0X2EgPSBleHBsb2RlKCcsJywkdGhpcy0+aWdub3JlX2V4dGVuc2lvbnMpOwogICAgICAgICAgICBmb3JlYWNoKCAkbGlzdF9hIGFzICRleHQgKSB7CiAgICAgICAgICAgICAgICAkZXh0ID0gc3RydG9sb3dlcih0cmltKCRleHQpKTsKICAgICAgICAgICAgICAgIGlmKCAhJGV4dCApIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgaWYoICFpbl9hcnJheSgkZXh0LCRfbGlzdCkgKSAkX2xpc3RbXSA9ICRleHQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICRleHQgPSBzdHJ0b2xvd2VyKHN1YnN0cihzdHJyY2hyKCRmaWxlbmFtZSwgJy4nKSwgMSkpOwogICAgICAgIGlmKCAhJGV4dCApIHJldHVybiBGQUxTRTsKCiAgICAgICAgaWYoIGluX2FycmF5KCRleHQsJF9saXN0KSApIHJldHVybiBUUlVFOwogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaXNfZmlsZV9zY2FubmFibGUoJGZpbGVuYW1lKQogICAgewogICAgICAgIGlmKCAhaXNfZmlsZSgkZmlsZW5hbWUpICkgcmV0dXJuIEZBTFNFOwoKICAgICAgICAkYm4gPSBiYXNlbmFtZSgkZmlsZW5hbWUpOwogICAgICAgIGlmKCBzdGFydHN3aXRoKCRibiwnLicpICkgcmV0dXJuIEZBTFNFOwogICAgICAgIGlmKCAhaXNfd3JpdGFibGUoJGZpbGVuYW1lKSApIHJldHVybiBGQUxTRTsKICAgICAgICBpZiggISR0aGlzLT5pc19pbWFnZWZpbGUoJGZpbGVuYW1lKSApIHJldHVybiBGQUxTRTsKICAgICAgICAkbXRpbWUgPSBmaWxlbXRpbWUoJGZpbGVuYW1lKTsKICAgICAgICAkbGltaXQgPSB0aW1lKCkgLSAzMCAqIDI0ICogMzYwMDsKICAgICAgICBpZiggJG10aW1lIDwgJGxpbWl0ICkgcmV0dXJuIEZBTFNFOyAvLyBPTEQgZmlsZXMKICAgICAgICBpZiggJHRoaXMtPmlzX2ZpbGVfZXhjbHVkZWQoJGZpbGVuYW1lKSApIHJldHVybiBGQUxTRTsKICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaXNfZGlyX3NjYW5uYWJsZSgkZGlyKQogICAgewogICAgICAgICRkaXIgPSB0cmltKCRkaXIpOwogICAgICAgIGlmKCAhJGRpciApIHJldHVybiBGQUxTRTsKICAgICAgICAkYm4gPSBiYXNlbmFtZSgkZGlyKTsKICAgICAgICBpZiggc3RhcnRzd2l0aCgkYm4sJy4nKSApIHJldHVybiBGQUxTRTsKICAgICAgICBpZiggaXNfZmlsZSgkZGlyLiIvLm5vY2dzaSIpICkgcmV0dXJuIEZBTFNFOwoKICAgICAgICAkY29uZmlnID0gXGNtc19jb25maWc6OmdldF9pbnN0YW5jZSgpOwogICAgICAgICR1cCA9ICRjb25maWdbJ3VwbG9hZHNfcGF0aCddOwogICAgICAgIGlmKCBzdGFydHN3aXRoKCAkZGlyLCAkdXApICkgJGRpciA9IHN1YnN0cigkZGlyLHN0cmxlbigkdXApKTsKICAgICAgICAkZGlyID0gbHRyaW0oJGRpciwnLycuRElSRUNUT1JZX1NFUEFSQVRPUik7CiAgICAgICAgaWYoICFpc19kaXIoJHVwLicvJy4kZGlyKSApIHJldHVybiBGQUxTRTsgLy8gbXVzdCBiZSBhIHJlYWwgZGlyZWN0b3J5IGluc2lkZSB1cGxvYWRzIHBhdGgKCiAgICAgICAgJGluY2x1ZGVfZGlycyA9ICR0aGlzLT5nZXRfaW5jbHVkZV9kaXJzKCk7CiAgICAgICAgaWYoIGNvdW50KCRpbmNsdWRlX2RpcnMpICkgewogICAgICAgICAgICAkZm5kID0gZmFsc2U7CiAgICAgICAgICAgIGZvcmVhY2goICRpbmNsdWRlX2RpcnMgYXMgJG9uZWRpciApIHsKICAgICAgICAgICAgICAgIGlmKCBzdGFydHN3aXRoKCRkaXIsJG9uZWRpcikgKSB7CiAgICAgICAgICAgICAgICAgICAgJGZuZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoICEkZm5kICkgcmV0dXJuIEZBTFNFOwogICAgICAgIH0KCiAgICAgICAgJGV4Y2x1ZGVfZGlycyA9ICR0aGlzLT5nZXRfZXhjbHVkZV9kaXJzKCk7CiAgICAgICAgaWYoICFjb3VudCgkZXhjbHVkZV9kaXJzKSApIHJldHVybiBUUlVFOwoKICAgICAgICBmb3JlYWNoKCAkZXhjbHVkZV9kaXJzIGFzICRvbmVkaXIgKSB7CiAgICAgICAgICAgIGlmKCBzdGFydHN3aXRoKCAkZGlyLCAkb25lZGlyICkgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgfQogICAgICAgIHJldHVybiBUUlVFOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gJmxvYWQoKQogICAgewogICAgICAgIHN0YXRpYyAkX29iajsKICAgICAgICBpZiggISRfb2JqICkgewogICAgICAgICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfQ0dTTUFSVElNQUdFKTsKICAgICAgICAgICAgJHRtcCA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ2FwX3NldHRpbmdzJyk7CiAgICAgICAgICAgIGlmKCAkdG1wICkgewogICAgICAgICAgICAgICAgJF9vYmogPSB1bnNlcmlhbGl6ZSgkdG1wKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRfb2JqID0gbmV3IHNlbGYoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJF9vYmo7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNhdmUoKQogICAgewogICAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9DR1NNQVJUSU1BR0UpOwogICAgICAgICRtb2QtPlNldFByZWZlcmVuY2UoJ2FwX3NldHRpbmdzJyxzZXJpYWxpemUoJHRoaXMpKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGRlbGV0ZSgpCiAgICB7CiAgICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX0NHU01BUlRJTUFHRSk7CiAgICAgICAgJG1vZC0+UmVtb3ZlUHJlZmVyZW5jZSgnYXBfc2V0dGluZ3MnKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGImageBase.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlQmFzZSBpbXBsZW1lbnRzIEFycmF5QWNjZXNzCnsKICAgIHByaXZhdGUgJF90cmFuc3BhcmVudDsKICAgIHByaXZhdGUgJF9zYXZlYWxwaGE7IC8vIGluZGljYXRlcyB0aGF0IHRoZSBpbWFnZSBzaG91bGQgYmUgc2F2ZWQgd2l0aCBhbHBoYSBjaGFubmVscwogICAgcHJpdmF0ZSAkX3JzcmM7CiAgICBwcml2YXRlICRfc3JjbmFtZTsKICAgIHByaXZhdGUgJF9kaXJ0eTsKICAgIHByaXZhdGUgJF9pbmZvOwogICAgcHJpdmF0ZSBzdGF0aWMgJF9rZXlzID0gYXJyYXkoJ2RpcnR5JywncnNyYycsJ3dpZHRoJywnaGVpZ2h0JywndHlwZScsJ2ZpbGVuYW1lJywnbmFtZScsJ3RyYW5zcGFyZW50Jywnc2F2ZWFscGhhJyk7CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBjcmVhdGVfbmV3X3JzcmMoJG1pbWV0eXBlLCR3aWR0aCwkaGVpZ2h0KQogICAgewogICAgICAgIHN3aXRjaCggJG1pbWV0eXBlICkgewogICAgICAgIGNhc2UgJ2ltYWdlL2pwZWcnOgogICAgICAgICAgICAkX3JzcmMgPSBpbWFnZWNyZWF0ZXRydWVjb2xvcigkd2lkdGgsJGhlaWdodCk7CiAgICAgICAgICAgIHJldHVybiAkX3JzcmM7CgogICAgICAgIGNhc2UgJ2ltYWdlL3BuZyc6CiAgICAgICAgICAgIC8vIGZyb20gc3VwZXJzaXplcgogICAgICAgICAgICAkX3JzcmMgPSBpbWFnZWNyZWF0ZXRydWVjb2xvcigkd2lkdGgsICRoZWlnaHQpOwogICAgICAgICAgICAkY29sb3IgPSBpbWFnZWNvbG9yYWxsb2NhdGVhbHBoYSgkX3JzcmMsIDAsIDAsIDAsIDEyNyk7CiAgICAgICAgICAgIGltYWdlY29sb3J0cmFuc3BhcmVudCgkX3JzcmMsJGNvbG9yKTsKICAgICAgICAgICAgJHRoaXMtPl90cmFuc3BhcmVudCA9ICRjb2xvcjsKICAgICAgICAgICAgcmV0dXJuICRfcnNyYzsKCiAgICAgICAgY2FzZSAnaW1hZ2UvZ2lmJzoKICAgICAgICAgICAgJF9yc3JjID0gaW1hZ2VjcmVhdGV0cnVlY29sb3IoJHdpZHRoLCAkaGVpZ2h0KTsKICAgICAgICAgICAgaW1hZ2V0cnVlY29sb3J0b3BhbGV0dGUoJF9yc3JjLCB0cnVlLCAyNTYpOwogICAgICAgICAgICBpbWFnZWFscGhhYmxlbmRpbmcoJF9yc3JjLCBmYWxzZSk7CiAgICAgICAgICAgIGltYWdlc2F2ZWFscGhhKCRfcnNyYyx0cnVlKTsKICAgICAgICAgICAgJHRyYW5zcGFyZW50ID0gaW1hZ2Vjb2xvcmFsbG9jYXRlYWxwaGEoJF9yc3JjLCAyNTUsIDI1NSwgMjU1LCAxMjcpOwogICAgICAgICAgICBpbWFnZWZpbGxlZHJlY3RhbmdsZSgkX3JzcmMsIDAsIDAsICR3aWR0aCwgJGhlaWdodCwgJHRyYW5zcGFyZW50KTsKICAgICAgICAgICAgaW1hZ2Vjb2xvcnRyYW5zcGFyZW50KCRfcnNyYywgJHRyYW5zcGFyZW50KTsKICAgICAgICAgICAgcmV0dXJuICRfcnNyYzsKCiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQ2Fubm90IGNyZWF0ZSBuZXcgaW1hZ2Ugb2YgdHlwZSAnLiRtaW1ldHlwZSk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkaW5wdXQpCiAgICB7CiAgICAgICAgaWYoIGlzX29iamVjdCgkaW5wdXQpICYmICRpbnB1dCBpbnN0YW5jZW9mIENHSW1hZ2VCYXNlICApIHsKICAgICAgICAgICAgLy8gY29weSBjb25zdHJ1Y3RvcgogICAgICAgICAgICAkdGhpcy0+X3NhdmVhbHBoYSA9ICRpbnB1dC0+X3NhdmVhbHBoYTsKICAgICAgICAgICAgJHRoaXMtPl90cmFuc3BhcmVudCA9ICRpbnB1dC0+X3RyYW5zcGFyZW50OwogICAgICAgICAgICAkdGhpcy0+X3JzcmMgPSAkaW5wdXQtPl9yc3JjOwogICAgICAgICAgICAkdGhpcy0+X3NyY25hbWUgPSAkaW5wdXQtPl9zcmNuYW1lOwogICAgICAgICAgICAkdGhpcy0+X2luZm8gPSAkaW5wdXQtPl9pbmZvOwogICAgICAgICAgICAkdGhpcy0+X2RpcnR5ID0gMTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggaXNfc3RyaW5nKCRpbnB1dCkgJiYgaXNfcmVhZGFibGUoJGlucHV0KSAmJiBpc19maWxlKCRpbnB1dCkgKSB7CiAgICAgICAgICAgICRkYXRhID0gZmlsZV9nZXRfY29udGVudHMoJGlucHV0KTsKICAgICAgICAgICAgaWYoICRkYXRhICE9PSBGQUxTRSApIHsKICAgICAgICAgICAgICAgICR0aGlzLT5fcnNyYyA9IGltYWdlY3JlYXRlZnJvbXN0cmluZygkZGF0YSk7CiAgICAgICAgICAgICAgICAkdGhpcy0+X3NyY25hbWUgPSAkaW5wdXQ7CiAgICAgICAgICAgICAgICAkdGhpcy0+X2luZm8gPSBnZXRpbWFnZXNpemUoJGlucHV0KTsKICAgICAgICAgICAgICAgICR0bXAgPSBpbWFnZWNvbG9ydHJhbnNwYXJlbnQoJHRoaXMtPl9yc3JjKTsKICAgICAgICAgICAgICAgIGlmKCAkdG1wICE9IC0xICkgJHRoaXMtPl90cmFuc3BhcmVudCA9ICR0bXA7CiAgICAgICAgICAgICAgICAkdGhpcy0+X2luZm9bMl0gPSBpbWFnZV90eXBlX3RvX21pbWVfdHlwZSgkdGhpcy0+X2luZm9bMl0pOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1Byb2JsZW0gY3JlYXRpbmcgbmV3IENHSW1hZ2VCYXNlIG9iamVjdCBmcm9tICcuJGlucHV0KTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggaXNfYXJyYXkoJGlucHV0KSAmJiBjb3VudCgkaW5wdXQpID49IDMgKSB7CiAgICAgICAgICAgICR0aGlzLT5fcnNyYyA9ICR0aGlzLT5jcmVhdGVfbmV3X3JzcmMoJGlucHV0WzBdLCRpbnB1dFsxXSwkaW5wdXRbMl0pOwogICAgICAgICAgICAkdGhpcy0+X2luZm8gPSBhcnJheSgkaW5wdXRbMV0sJGlucHV0WzJdLCRpbnB1dFswXSk7CiAgICAgICAgICAgICR0aGlzLT5fZGlydHkgPSAxOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQXR0ZW1wdCB0byBjcmVhdGUgYSBDR0ltYWdlQmFzZSBvYmplY3Qgd2l0aCBpbnZhbGlkIGlucHV0Jyk7CiAgICAgICAgfQogICAgfQoKCiAgICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0RXhpc3RzKCRrKQogICAgewogICAgICAgIHJldHVybiBpbl9hcnJheSgkayxDR0ltYWdlQmFzZTo6JF9rZXlzKTsKICAgIH0KCgogICAgcHVibGljIGZ1bmN0aW9uIG9mZnNldFVuc2V0KCRrKQogICAgewogICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0F0dGVtcHQgdG8gdW5zZXQgYW4gYXR0cmlidXRlIG9mIGEgQ0dJbWFnZUJhc2Ugb2JqZWN0Jyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIG9mZnNldEdldCgkaykKICAgIHsKICAgICAgICAkayA9IHN0cnRvbG93ZXIoJGspOwogICAgICAgIGlmKCAhaW5fYXJyYXkoJGssQ0dJbWFnZUJhc2U6OiRfa2V5cykgKQogICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBdHRlbXB0IHRvIGdldCBpbnZhbGlkIGF0dHJpYnV0ZSAnLiRrLicgRnJvbSBDR0ltYWdlQmFzZScpOwoKICAgICAgICBzd2l0Y2goICRrICkgewogICAgICAgIGNhc2UgJ3JzcmMnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9yc3JjOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnd2lkdGgnOgogICAgICAgICAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5faW5mbykgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBdHRlbXB0IHRvIGdldCBpbmZvcm1hdGlvbiBvbiB1bmluaXRpYWxpemVkIG9iamVjdCcpOwogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9pbmZvWzBdOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnaGVpZ2h0JzoKICAgICAgICAgICAgaWYoICFpc19hcnJheSgkdGhpcy0+X2luZm8pICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignQXR0ZW1wdCB0byBnZXQgaW5mb3JtYXRpb24gb24gdW5pbml0aWFsaXplZCBvYmplY3QnKTsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5faW5mb1sxXTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ3R5cGUnOgogICAgICAgICAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5faW5mbykgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBdHRlbXB0IHRvIGdldCBpbmZvcm1hdGlvbiBvbiB1bmluaXRpYWxpemVkIG9iamVjdCcpOwogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9pbmZvWzJdOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnZGlydHknOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXJ0eTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ3RyYW5zcGFyZW50JzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdzYXZlYWxwaGEnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9zYXZlYWxwaGE7CgogICAgICAgIGNhc2UgJ2ZpbGVuYW1lJzoKICAgICAgICBjYXNlICduYW1lJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fc3JjbmFtZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQoKCiAgICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0U2V0KCRrLCR2KQogICAgewogICAgICAgIGlmKCAhaW5fYXJyYXkoJGssQ0dJbWFnZUJhc2U6OiRfa2V5cykgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIEF0dGVtcHQgdG8gbW9kaWZ5IHRoZSBhdHRyaWJ1dGUgb2YgQ0dJbWFnZUJhc2UnKTsKCiAgICAgICAgJHRoaXMtPl9kaXJ0eSA9IDE7CiAgICAgICAgc3dpdGNoKCRrKSB7CiAgICAgICAgY2FzZSAncnNyYyc6CiAgICAgICAgY2FzZSAnZGlydHknOgogICAgICAgIGNhc2UgJ3RyYW5zcGFyZW50JzoKICAgICAgICAgICAgJGsgPSAnXycuJGs7CiAgICAgICAgICAgICR0aGlzLT4kayA9ICR2OwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnd2lkdGgnOgogICAgICAgICAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5faW5mbykgKSAkdGhpcy0+X2luZm8gPSBhcnJheSgpOwogICAgICAgICAgICAkdGhpcy0+X2luZm9bMF0gPSAkdjsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ2hlaWdodCc6CiAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoJHRoaXMtPl9pbmZvKSApICR0aGlzLT5faW5mbyA9IGFycmF5KCk7CiAgICAgICAgICAgICR0aGlzLT5faW5mb1sxXSA9ICR2OwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAndHlwZSc6CiAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoJHRoaXMtPl9pbmZvKSApICR0aGlzLT5faW5mbyA9IGFycmF5KCk7CiAgICAgICAgICAgICR0aGlzLT5faW5mb1syXSA9ICR2OwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnc2F2ZWFscGhhJzoKICAgICAgICAgICAgJHRoaXMtPl9zYWx2ZWFscGhhID0gKGJvb2wpJHY7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdmaWxlbmFtZSc6CiAgICAgICAgY2FzZSAnbmFtZSc6CiAgICAgICAgICAgICR0aGlzLT5fc3JjbmFtZSA9ICR2OwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CgoKICAgIHB1YmxpYyBmdW5jdGlvbiBzYXZlKCRmaWxlbmFtZSwkcXVhbGl0eSA9IDc1LCRwcm9ncmVzc2l2ZSA9IDApCiAgICB7CiAgICAgICAgaWYoICEkdGhpcy0+X2RpcnR5ICkgcmV0dXJuOwoKICAgICAgICAkdHlwZSA9ICR0aGlzWyd0eXBlJ107CiAgICAgICAgJHJlcyA9ICcnOwogICAgICAgIHN3aXRjaCgkdHlwZSkgewogICAgICAgIGNhc2UgJ2ltYWdlL2pwZWcnOgogICAgICAgICAgICBpbWFnZWludGVybGFjZSgkdGhpc1sncnNyYyddLCRwcm9ncmVzc2l2ZSk7CiAgICAgICAgICAgICRyZXMgPSBpbWFnZWpwZWcoJHRoaXNbJ3JzcmMnXSwkZmlsZW5hbWUsKGludCkkcXVhbGl0eSk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdpbWFnZS9wbmcnOgogICAgICAgICAgICBpbWFnZXNhdmVhbHBoYSgkdGhpc1sncnNyYyddLFRSVUUpOwogICAgICAgICAgICAkcXVhbGl0eSA9IGNlaWwoKDEwMC4wIC0gKGZsb2F0KSRxdWFsaXR5KS8xMDAuMCoxMC4wKTsKICAgICAgICAgICAgJHJlcyA9IGltYWdlcG5nKCR0aGlzWydyc3JjJ10sJGZpbGVuYW1lLCRxdWFsaXR5KTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ2ltYWdlL2dpZic6CiAgICAgICAgICAgIGlmKCAkdGhpcy0+X3NhdmVhbHBoYSApIHsKICAgICAgICAgICAgICAgIGltYWdlc2F2ZWFscGhhKCR0aGlzWydyc3JjJ10sVFJVRSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBpbWFnZXNhdmVhbHBoYSgkdGhpc1sncnNyYyddLEZBTFNFKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkcmVzID0gaW1hZ2VnaWYoJHRoaXNbJ3JzcmMnXSwkZmlsZW5hbWUpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQ2Fubm90IHNhdmUgaW1hZ2Ugb2YgdHlwZSAnLiR0aGlzWyd0eXBlJ10pOwogICAgICAgIH0KCiAgICAgICAgaWYoICRyZXMgKSByZXR1cm47CiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignRXJyb3Igc2F2aW5nIGltYWdlIG9mIHR5cGUgJy4kdGhpc1sndHlwZSddLicgdG8gJy4kZmlsZW5hbWUpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzdXBwb3J0c190cmFuc3BhcmVuY3koKQogICAgewogICAgICAgIHN3aXRjaCggJHRoaXNbJ3R5cGUnXSApIHsKICAgICAgICBjYXNlICdpbWFnZS9naWYnOgogICAgICAgIGNhc2UgJ2ltYWdlL3BuZyc6CiAgICAgICAgICAgIHJldHVybiBUUlVFOwoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICByZXR1cm4gRkFMU0U7CiAgICAgICAgfQogICAgfQp9IC8vIGNsYXNzIENHSW1hZ2VCYXNlCgovLyAkaW1nMSA9IG5ldyBDR0ltYWdlKCRzb21lZmlsZW5hbWUpOwovLyAkZmlsdGVyID0gbmV3IENtc1NvbWV0aGluZ0ZpbHRlcigpOwovLyAkaW1nMiA9ICRmaWx0ZXItPnRyYW5zZm9ybSgkaW1nMSk7Ci8vICRpbWcyLT5zYXZlKCk7CiMKIyBFT0YKIwo/Pg==]]></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[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIENHSW1hZ2VfQmx1cl9GaWx0ZXIgZXh0ZW5kcyBDR0ltYWdlRmlsdGVyQmFzZQp7CiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkKICB7CiAgICAvLyBub3RoaW5nIGhlcmUuCiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShDR0ltYWdlQmFzZSAkc3JjKQogIHsKICAgICRfZGVzdCA9IG5ldyBDR0ltYWdlQmFzZSgkc3JjKTsKICAgICRyZXMgPSBpbWFnZWZpbHRlcigkX2Rlc3RbJ3JzcmMnXSxJTUdfRklMVEVSX0dBVVNTSUFOX0JMVVIpOwoKICAgIGlmKCAhJHJlcyApIHRocm93IG5ldyBFeGNlcHRpb24oJ0Vycm9yIGFwcGx5aW5nIGZpbHRlciAnLklNR19GSUxURVJfR0FVU1NJQU5fQkxVUik7CiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+]]></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[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgQ0dJbWFnZV9Dcm9wdG9maXRfRmlsdGVyIGV4dGVuZHMgQ0dJbWFnZUZpbHRlckJhc2UKewogICAgcHJpdmF0ZSAkX2Rlc3RfdyA9IDA7CiAgICBwcml2YXRlICRfZGVzdF9oID0gMDsKICAgIHByaXZhdGUgJF9sb2MgPSAnYyc7CiAgICBwcml2YXRlICRfdXBzY2FsZSA9IDA7CiAgICBzdGF0aWMgcHJpdmF0ZSAkX3ZhbGlkX2xvY3MgPSBhcnJheSgndGwnLCd0YycsJ3RyJywnY2wnLCdjJywnY3InLCdibCcsJ2JjJywnYnInKTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGlucHV0KQogICAgewogICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHU21hcnRJbWFnZScpOwogICAgICAgICR0aGlzLT5fbG9jID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnY3JvcHRvZml0X2RlZmF1bHRfbG9jJywnYycpOwogICAgICAgIGlmKCBjZ2VfYXJyYXk6OmlzX2hhc2goJGlucHV0KSApIHsKICAgICAgICAgICAgaWYoIGlzc2V0KCRpbnB1dFsnd2lkdGgnXSkgKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+X2Rlc3RfdyA9IChpbnQpJGlucHV0Wyd3aWR0aCddOwogICAgICAgICAgICAgICAgJHRoaXMtPl9kZXN0X2ggPSAoaW50KSRpbnB1dFsnaGVpZ2h0J107CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiAoIGlzc2V0KCRpbnB1dFsndyddKSApIHsKICAgICAgICAgICAgICAgICR0aGlzLT5fZGVzdF93ID0gKGludCkkaW5wdXRbJ3cnXTsKICAgICAgICAgICAgICAgICR0aGlzLT5fZGVzdF9oID0gKGludCkkaW5wdXRbJ2gnXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiggaXNzZXQoJGlucHV0Wydsb2MnXSkgJiYgaW5fYXJyYXkoJGlucHV0Wydsb2MnXSxzZWxmOjokX3ZhbGlkX2xvY3MpICkgJHRoaXMtPl9sb2MgPSAkaW5wdXRbJ2xvYyddOwogICAgICAgICAgICBpZiggaXNzZXQoJGlucHV0Wyd1cHNjYWxlJ10pICkgJHRoaXMtPl91cHNjYWxlID0gKGludCkkaW5wdXRbJ3Vwc2NhbGUnXTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggaXNfYXJyYXkoJGlucHV0KSAgKSB7CiAgICAgICAgICAgIGlmKCBjb3VudCgkaW5wdXQpID49IDIgKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+X2Rlc3RfdyA9IChpbnQpdHJpbSgkaW5wdXRbMF0pOwogICAgICAgICAgICAgICAgJHRoaXMtPl9kZXN0X2ggPSAoaW50KXRyaW0oJGlucHV0WzFdKTsKICAgICAgICAgICAgICAgIGlmKCBjb3VudCgkaW5wdXQpID49IDMgJiYgaW5fYXJyYXkoJGlucHV0WzJdLHNlbGY6OiRfdmFsaWRfbG9jcykgKSAkdGhpcy0+X2xvYyA9ICRpbnB1dFsyXTsKICAgICAgICAgICAgICAgIGlmKCBjb3VudCgkaW5wdXQpID49IDQgKSAkdGhpcy0+X3Vwc2NhbGUgPSAoaW50KSRpbnB1dFszXTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYoICEkdGhpcy0+X3Vwc2NhbGUgKSB7CiAgICAgICAgICAgICR0aGlzLT5fZGVzdF93ID0gY2dzaV91dGlsczo6dHJpbV90b19kZXZpY2UoJ3dpZHRoJywkdGhpcy0+X2Rlc3Rfdyk7CiAgICAgICAgICAgICR0aGlzLT5fZGVzdF9oID0gY2dzaV91dGlsczo6dHJpbV90b19kZXZpY2UoJ2hlaWdodCcsJHRoaXMtPl9kZXN0X2gpOwogICAgICAgIH0KCiAgICAgICAgaWYoICR0aGlzLT5fZGVzdF9oIDw9IDAgfHwgJHRoaXMtPl9kZXN0X3cgPD0gMCApIHRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgdmFsdWVzIHNwZWNpZmllZCBmb3IgQ3JvcHRvZml0IGZpbHRlciBjb25zdHJ1Y3RvcicpOwogICAgfQoKCiAgICBwdWJsaWMgZnVuY3Rpb24gdHJhbnNmb3JtKENHSW1hZ2VCYXNlICRzcmMpCiAgICB7CiAgICAgICAgaWYoICEkdGhpcy0+X3Vwc2NhbGUgKSB7CiAgICAgICAgICAgIC8vIHByZXZlbnQgYW55IHVwc2NhbGluZwogICAgICAgICAgICAkdGhpcy0+X2Rlc3RfdyA9IG1pbigkdGhpcy0+X2Rlc3Rfdywkc3JjWyd3aWR0aCddKTsKICAgICAgICAgICAgJHRoaXMtPl9kZXN0X2ggPSBtaW4oJHRoaXMtPl9kZXN0X2gsJHNyY1snaGVpZ2h0J10pOwogICAgICAgIH0KCiAgICAgICAgLy8KICAgICAgICAvLyBub3RlOiAgdGhpcyBjb2RlIGRldmVsb3BlZCBieSB1c2luZyB0aGUgZm9sbG93aW5nIHBhZ2UgYXMgYSByZWZlcmVuY2UKICAgICAgICAvLyBodHRwOi8vOTExLW5lZWQtY29kZS1oZWxwLmJsb2dzcG90LmNvbS8yMDA5LzA0L2Nyb3AtdG8tZml0LWltYWdlLXVzaW5nLWFzcHBocC5odG1sCiAgICAgICAgLy8KICAgICAgICAkc3JjX3JhdGlvID0gKGZsb2F0KSRzcmNbJ3dpZHRoJ10gLyAoZmxvYXQpJHNyY1snaGVpZ2h0J107CiAgICAgICAgJGRlc3RfcmF0aW8gPSAoZmxvYXQpJHRoaXMtPl9kZXN0X3cgLyAoZmxvYXQpJHRoaXMtPl9kZXN0X2g7CgogICAgICAgIC8vIGRldGVybWluZSB0aGUgc2l6ZSBvZiB0aGUgdGVtcCBpbWFnZSB0aGF0IGZpdHMgaW50bwogICAgICAgIC8vIHRoZSBkZXNpcmVkIGFyZWEgYnkgYXQgbGVhc3Qgb25lIGRpbWVuc2lvbi4KICAgICAgICAkbmV3X2ggPSAnJzsKICAgICAgICAkbmV3X3cgPSAnJzsKICAgICAgICBpZiggJHNyY19yYXRpbyA+PSAkZGVzdF9yYXRpbyApIHsKICAgICAgICAgICAgJG5ld19oID0gKGludCkgJHRoaXMtPl9kZXN0X2g7CiAgICAgICAgICAgICRuZXdfdyA9IChpbnQpIGNlaWwoJHRoaXMtPl9kZXN0X2ggKiAkc3JjX3JhdGlvKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIC8vZWxzZSBpZiggJHNyY19yYXRpbyA8ICRkZXN0X3JhdGlvICkgewogICAgICAgICAgICAkbmV3X3cgPSAoaW50KSAkdGhpcy0+X2Rlc3RfdzsKICAgICAgICAgICAgJG5ld19oID0gKGludCkgY2VpbCgkdGhpcy0+X2Rlc3RfdyAvICRzcmNfcmF0aW8gKTsKICAgICAgICB9CgogICAgICAgIC8vIGdldCB0aGUgdHJhbnNwYXJlbnQgY29sb3Igb2YgdGhlIHNvdXJjZSBpbWFnZS4KICAgICAgICAkdG1wX3JzcmMgPSBudWxsOwogICAgICAgICR0YyA9IGltYWdlY29sb3JhdCgkc3JjWydyc3JjJ10sMCwkc3JjWydoZWlnaHQnXS0xKTsKICAgICAgICAkdHIgPSAkdGcgPSAkdGIgPSAwOyAkdGEgPSAxMjc7CiAgICAgICAgaWYoICR0YyA+IDAgKSB7CiAgICAgICAgICAgICR0bXAgPSBpbWFnZWNvbG9yc2ZvcmluZGV4KCRzcmNbJ3JzcmMnXSwkdGMpOwogICAgICAgICAgICAkdHIgPSAkdG1wWydyZWQnXTsKICAgICAgICAgICAgJHRnID0gJHRtcFsnZ3JlZW4nXTsKICAgICAgICAgICAgJHRiID0gJHRtcFsnYmx1ZSddOwogICAgICAgICAgICAkdGEgPSAkdG1wWydhbHBoYSddOwogICAgICAgIH0KCiAgICAgICAgaWYoICRuZXdfdyA9PSAkc3JjWyd3aWR0aCddICYmICRuZXdfaCA9PSAkc3JjWydoZWlnaHQnXSApIHsKICAgICAgICAgICAgJHRtcF9yc3JjID0gJHNyY1sncnNyYyddOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgLy8gY3JlYXRlIHRlbXBvcmFyeSB0cmFuc3BhcmVudCBpbWFnZQogICAgICAgICAgICAkdG1wX3JzcmMgPSBpbWFnZWNyZWF0ZXRydWVjb2xvcigkbmV3X3csJG5ld19oKTsKICAgICAgICAgICAgaW1hZ2VhbHBoYWJsZW5kaW5nKCR0bXBfcnNyYywgVFJVRSk7CiAgICAgICAgICAgICR0cmFuc3BhcmVudCA9IGltYWdlY29sb3JhbGxvY2F0ZWFscGhhKCR0bXBfcnNyYywgJHRyLCAkdGcsICR0YiwgJHRhKTsKICAgICAgICAgICAgaW1hZ2Vjb2xvcnRyYW5zcGFyZW50KCR0bXBfcnNyYywkdHJhbnNwYXJlbnQpOwogICAgICAgICAgICBpbWFnZWZpbGwoJHRtcF9yc3JjLCAwLCAwLCAkdHJhbnNwYXJlbnQpOwogICAgICAgIH0KCiAgICAgICAgLy8gcmVzaXplIHRoZSBiaWcgaW1hZ2UgaW50byB0aGUgdGVtcG9yYXJ5IHRyYW5zcGFyZW50IGltYWdlCiAgICAgICAgJHJlcyA9IGltYWdlY29weXJlc2FtcGxlZCgkdG1wX3JzcmMsJHNyY1sncnNyYyddLDAsMCwwLDAsJG5ld193LCRuZXdfaCwkc3JjWyd3aWR0aCddLCRzcmNbJ2hlaWdodCddKTsKICAgICAgICBpZiggJHJlcyA9PT0gRkFMU0UgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdDcm9wdG9maXQgLSBzdGFnZSAxIC0gZmFpbGVkJyk7CgogICAgICAgIC8vIGNhbGN1bGF0ZSB0aGUgb2Zmc2V0IGludG8gdGhlIGRlc3RpbmF0aW9uIGlhbWdlLgogICAgICAgIHN3aXRjaCggc3RydG9sb3dlcigkdGhpcy0+X2xvYykgKSB7CiAgICAgICAgY2FzZSAndGwnOgogICAgICAgICAgICAkeDAgPSAwOwogICAgICAgICAgICAkeTAgPSAwOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAndGMnOgogICAgICAgICAgICAkeDAgPSAoaW50KSggJG5ld193IC0gJHRoaXMtPl9kZXN0X3cgKSAvIDI7CiAgICAgICAgICAgICR5MCA9IDA7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICd0cic6CiAgICAgICAgICAgICR4MCA9IChpbnQpKCAkbmV3X3cgLSAkdGhpcy0+X2Rlc3RfdyApOwogICAgICAgICAgICAkeTAgPSAwOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnY2wnOgogICAgICAgICAgICAkeDAgPSAwOwogICAgICAgICAgICAkeTAgPSAoaW50KSggJG5ld19oIC0gJHRoaXMtPl9kZXN0X2ggKSAvIDI7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdjcic6CiAgICAgICAgICAgICR4MCA9IChpbnQpKCAkbmV3X3cgLSAkdGhpcy0+X2Rlc3RfdyApOwogICAgICAgICAgICAkeTAgPSAoaW50KSggJG5ld19oIC0gJHRoaXMtPl9kZXN0X2ggKSAvIDI7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdibCc6CiAgICAgICAgICAgICR4MCA9IDA7CiAgICAgICAgICAgICR5MCA9IChpbnQpKCAkbmV3X2ggLSAkdGhpcy0+X2Rlc3RfaCApOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnYmMnOgogICAgICAgICAgICAkeDAgPSAoaW50KSggJG5ld193IC0gJHRoaXMtPl9kZXN0X3cgKSAvIDI7CiAgICAgICAgICAgICR5MCA9IChpbnQpKCAkbmV3X2ggLSAkdGhpcy0+X2Rlc3RfaCApOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnYnInOgogICAgICAgICAgICAkeDAgPSAoaW50KSggJG5ld193IC0gJHRoaXMtPl9kZXN0X3cgKTsKICAgICAgICAgICAgJHkwID0gKGludCkoICRuZXdfaCAtICR0aGlzLT5fZGVzdF9oICk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdjJzoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAvLyBjZW50ZXIKICAgICAgICAgICAgJHgwID0gKGludCkoICRuZXdfdyAtICR0aGlzLT5fZGVzdF93ICkgLyAyOwogICAgICAgICAgICAkeTAgPSAoaW50KSggJG5ld19oIC0gJHRoaXMtPl9kZXN0X2ggKSAvIDI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgLy8gY3JlYXRlIGRlc3RpbmF0aW9uIGltYWdlIGF0IHRoZSBkZXNpcmVkIHRodW1iIHNpemUuCiAgICAgICAgLy8kX2Rlc3QgPSBuZXcgQ0dJbWFnZUJhc2UoYXJyYXkoJ2ltYWdlL3BuZycsJHRoaXMtPl9kZXN0X3csJHRoaXMtPl9kZXN0X2gpKTsKICAgICAgICAkX2Rlc3QgPSBuZXcgQ0dJbWFnZUJhc2UoYXJyYXkoJHNyY1sndHlwZSddLCR0aGlzLT5fZGVzdF93LCR0aGlzLT5fZGVzdF9oKSk7CgogICAgICAgIC8vIHNldCB0aGlzIHRyYW5zcGFyZW50IGNvbG9yIGludG8gaW50byB0aGUgZGVzdCBpbWFnZS4KICAgICAgICAkdHJhbnNwYXJlbnQyID0gaW1hZ2Vjb2xvcmFsbG9jYXRlYWxwaGEoJF9kZXN0Wydyc3JjJ10sICR0ciwgJHRnLCAkdGIsICR0YSk7CiAgICAgICAgaW1hZ2Vjb2xvcnRyYW5zcGFyZW50KCRfZGVzdFsncnNyYyddLCR0cmFuc3BhcmVudDIpOwogICAgICAgIGltYWdlZmlsbCgkX2Rlc3RbJ3JzcmMnXSwgMCwgMCwgJHRyYW5zcGFyZW50Mik7CgogICAgICAgIC8vIGNvcHkgdGhlIHRlbXAgaW1hZ2UgaW50byB0aGUgZGVzdCBpbWFnZS4KICAgICAgICBpbWFnZWFscGhhYmxlbmRpbmcoJF9kZXN0Wydyc3JjJ10sVFJVRSk7CiAgICAgICAgJHJlcyA9IGltYWdlY29weSgkX2Rlc3RbJ3JzcmMnXSwkdG1wX3JzcmMsMCwwLCR4MCwkeTAsJG5ld193LCRuZXdfaCk7CiAgICAgICAgaWYoICRyZXMgPT09IEZBTFNFICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignQ3JvcHRvZml0IC0gc3RhZ2UgMiAtIGZhaWxlZCcpOwogICAgICAgIGltYWdlZGVzdHJveSgkdG1wX3JzcmMpOwogICAgICAgIHJldHVybiAkX2Rlc3Q7CiAgICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></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[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIENHSW1hZ2VfRW1ib3NzX0ZpbHRlciBleHRlbmRzIENHSW1hZ2VGaWx0ZXJCYXNlCnsKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQogIHsKICAgIC8vIG5vdGhpbmcgaGVyZS4KICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gdHJhbnNmb3JtKENHSW1hZ2VCYXNlICRzcmMpCiAgewogICAgJF9kZXN0ID0gbmV3IENHSW1hZ2VCYXNlKCRzcmMpOwogICAgJHJlcyA9IGltYWdlZmlsdGVyKCRfZGVzdFsncnNyYyddLElNR19GSUxURVJfRU1CT1NTKTsKCiAgICBpZiggISRyZXMgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdFcnJvciBhcHBseWluZyBmaWx0ZXIgJy5JTUdfRklMVEVSX0VNQk9TUyk7CiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+]]></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_NOOP_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgQ0dJbWFnZV9OT09QX0ZpbHRlciBleHRlbmRzIENHSW1hZ2VGaWx0ZXJCYXNlCnsKICAgIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2Zvcm0oQ0dJbWFnZUJhc2UgJHNyYykKICAgIHsKICAgICAgICByZXR1cm4gJHNyYzsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pg==]]></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[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgQ0dJbWFnZV9SZXNpemVfRmlsdGVyIGV4dGVuZHMgQ0dJbWFnZUZpbHRlckJhc2UKewogICAgcHJpdmF0ZSAkX3dpZHRoOyAgICAgICAgIC8vIGRlc3Qgd2lkdGgKICAgIHByaXZhdGUgJF9oZWlnaHQ7ICAgICAgICAvLyBkZXN0IGhlaWdodAogICAgcHJpdmF0ZSAkX2VkZ2UgPSAwOwkgICAgIC8vIGVkZ2Ugc2l6ZQogICAgcHJpdmF0ZSAkX3BlcmNlbnQgPSAwOyAgIC8vIHNjYWxlIHRvIHBlcmNlbnQKICAgIHByaXZhdGUgJF9yZXNhbXBsZSA9IDE7ICAvLyByZXNhbXBsZSwgdnMgcmVzaXplLgogICAgcHJpdmF0ZSAkX3Vwc2NhbGUgPSAxOyAgIC8vIGFsbG93IHVwc2NhbGUgYnkgZGVmYXVsdC4KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoLyogdmFyIGFyZ3MgKi8pCiAgICB7CiAgICAgICAgJGlucHV0ID0gZnVuY19nZXRfYXJncygpOwogICAgICAgIGlmKCBjb3VudCgkaW5wdXQpID09IDEgJiYgaXNfYXJyYXkoJGlucHV0WzBdKSApICRpbnB1dCA9ICRpbnB1dFswXTsKCiAgICAgICAgaWYoIGNnZV9hcnJheTo6aXNfaGFzaCgkaW5wdXQpICkgewogICAgICAgICAgICBpZiggaXNzZXQoJGlucHV0Wyd3aWR0aCddKSApICR0aGlzLT5fd2lkdGggPSAoaW50KSRpbnB1dFsnd2lkdGgnXTsKICAgICAgICAgICAgaWYoIGlzc2V0KCRpbnB1dFsnaGVpZ2h0J10pICkgJHRoaXMtPl9oZWlnaHQgPSAoaW50KSRpbnB1dFsnaGVpZ2h0J107CiAgICAgICAgICAgIGlmKCBpc3NldCgkaW5wdXRbJ3BlcmNlbnQnXSkgKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+X3BlcmNlbnQgPSAoaW50KSRpbnB1dFsncGVyY2VudCddOwogICAgICAgICAgICAgICAgJHRoaXMtPl9wZXJjZW50ID0gbWluKDEwMCxtYXgoMSwkdGhpcy0+X3BlcmNlbnQpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiggaXNzZXQoJGlucHV0WydyZXNhbXBsZSddKSApICR0aGlzLT5fcmVzYW1wbGUgPSAoaW50KSRpbnB1dFsncmVzYW1wbGUnXTsKICAgICAgICAgICAgaWYoIGlzc2V0KCRpbnB1dFsndXBzY2FsZSddKSApICR0aGlzLT5fdXBzY2FsZSA9IChpbnQpJGlucHV0Wyd1cHNjYWxlJ107CiAgICAgICAgICAgIGlmKCBpc3NldCgkaW5wdXRbJ2VkZ2UnXSkgKSAkdGhpcy0+X2VkZ2UgPSAoaW50KSRpbnB1dFsnZWRnZSddOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKCBpc19hcnJheSgkaW5wdXQpICYmIGNvdW50KCRpbnB1dCkgPj0gMiApIHsKICAgICAgICAgICAgJGlkeCA9IDI7CiAgICAgICAgICAgIHN3aXRjaCggJGlucHV0WzBdICkgewogICAgICAgICAgICBjYXNlICdwJzoKICAgICAgICAgICAgICAgICR0aGlzLT5fcGVyY2VudCA9IChpbnQpJGlucHV0WzFdOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ3cnOgogICAgICAgICAgICAgICAgJHRoaXMtPl93aWR0aCA9IChpbnQpJGlucHV0WzFdOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2gnOgogICAgICAgICAgICAgICAgJHRoaXMtPl9oZWlnaHQgPSAoaW50KSRpbnB1dFsxXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdlJzoKICAgICAgICAgICAgICAgICR0aGlzLT5fZWRnZSA9IChpbnQpJGlucHV0WzFdOwogICAgICAgICAgICBjYXNlICdjJzoKICAgICAgICAgICAgICAgICR0aGlzLT5fd2lkdGggPSAoaW50KSRpbnB1dFsxXTsKICAgICAgICAgICAgICAgICR0aGlzLT5faGVpZ2h0ID0gKGludCkkaW5wdXRbMl07CiAgICAgICAgICAgICAgICAkaWR4ID0gMzsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiggY291bnQoJGlucHV0KSA+ICRpZHggKSAkdGhpcy0+X3Vwc2NhbGUgPSAoaW50KSRpbnB1dFskaWR4XTsKICAgICAgICB9CgogICAgICAgIGlmKCAkdGhpcy0+X3dpZHRoID4gMCApICR0aGlzLT5fd2lkdGggPSBjZ3NpX3V0aWxzOjp0cmltX3RvX2RldmljZSgnd2lkdGgnLCR0aGlzLT5fd2lkdGgpOwogICAgICAgIGlmKCAkdGhpcy0+X2hlaWdodCA+IDAgKSAkdGhpcy0+X2hlaWdodCA9IGNnc2lfdXRpbHM6OnRyaW1fdG9fZGV2aWNlKCdoZWlnaHQnLCR0aGlzLT5faGVpZ2h0KTsKICAgICAgICBpZiggISgkdGhpcy0+X3BlcmNlbnQgPiAwIHx8ICR0aGlzLT5fd2lkdGggPiAwIHx8ICR0aGlzLT5faGVpZ2h0ID4gMCB8fCAkdGhpcy0+X2VkZ2UgPiAwKSApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQ291bGQgbm90IENyZWF0ZSBSZXNpemUgRmlsdGVyIC0gSW52YWxpZCBQYXJhbWV0ZXJzJyk7CiAgICAgICAgfQogIH0KCgogIHByaXZhdGUgZnVuY3Rpb24gX3RyYW5zZm9ybShDR0ltYWdlQmFzZSAkc3JjLCRuZXdfdywkbmV3X2gpCiAgewogICAgICBpZiggJG5ld193ID09ICRzcmNbJ3dpZHRoJ10gJiYgJG5ld19oID09ICRzcmNbJ2hlaWdodCddICkgcmV0dXJuICRzcmM7CgogICAgICAkX2Rlc3QgPSBuZXcgQ0dJbWFnZUJhc2UoYXJyYXkoJHNyY1sndHlwZSddLCRuZXdfdywkbmV3X2gpKTsKCiAgICAgICRyZXMgPSAnJzsKICAgICAgaWYoICR0aGlzLT5fcmVzYW1wbGUgKSB7CiAgICAgICAgICBpbWFnZWFscGhhYmxlbmRpbmcoJF9kZXN0Wydyc3JjJ10sRkFMU0UpOwogICAgICAgICAgJHJlcyA9IGltYWdlY29weXJlc2FtcGxlZCgkX2Rlc3RbJ3JzcmMnXSwkc3JjWydyc3JjJ10sMCwwLDAsMCwkbmV3X3csJG5ld19oLCRzcmNbJ3dpZHRoJ10sJHNyY1snaGVpZ2h0J10pOwogICAgICAgICAgaW1hZ2VhbHBoYWJsZW5kaW5nKCRfZGVzdFsncnNyYyddLFRSVUUpOwogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgICAgJHJlcyA9IGltYWdlY29weXJlc2l6ZWQoJF9kZXN0Wydyc3JjJ10sJHNyY1sncnNyYyddLDAsMCwwLDAsJG5ld193LCRuZXdfaCwkc3JjWyd3aWR0aCddLCRzcmNbJ2hlaWdodCddKTsKICAgICAgfQoKICAgICAgaWYoICEkcmVzICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignSW1hZ2UgVHJhbnNmb3JtIEZhaWxlZCcpOwogICAgICByZXR1cm4gJF9kZXN0OwogIH0KCgogIHByb3RlY3RlZCBmdW5jdGlvbiBfdHJhbnNmb3JtX3BlcmNlbnRhZ2UoQ0dJbWFnZUJhc2UgJHNyYykKICB7CiAgICAgICRuZXdfdyA9IChpbnQpKChmbG9hdCkkc3JjWyd3aWR0aCddICogKGZsb2F0KSR0aGlzLT5fcGVyY2VudCAvIDEwMC4wKTsKICAgICAgJG5ld19oID0gKGludCkoKGZsb2F0KSRzcmNbJ2hlaWdodCddICogKGZsb2F0KSR0aGlzLT5fcGVyY2VudCAvIDEwMC4wKTsKICAgICAgcmV0dXJuICR0aGlzLT5fdHJhbnNmb3JtKCRzcmMsJG5ld193LCRuZXdfaCk7CiAgfQoKCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIF90cmFuc2Zvcm1fd2lkdGgoQ0dJbWFnZUJhc2UgJHNyYykKICB7CiAgICAgIC8vIGNhbGN1bGF0ZSBuZXcgd2lkdGggYW5kIGhlaWdodCwgcHJlc2VydmluZyBhc3BlY3QgcmF0aW8KICAgICAgJG5ld193ID0gJHRoaXMtPl93aWR0aDsKICAgICAgJG5ld19oID0gKGludCkoJHRoaXMtPl93aWR0aCAqICRzcmNbJ2hlaWdodCddIC8gJHNyY1snd2lkdGgnXSk7CiAgICAgIHJldHVybiAkdGhpcy0+X3RyYW5zZm9ybSgkc3JjLCRuZXdfdywkbmV3X2gpOwogIH0KCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIF90cmFuc2Zvcm1faGVpZ2h0KENHSW1hZ2VCYXNlICRzcmMpCiAgewogICAgICAvLyBjYWxjdWxhdGUgbmV3IHdpZHRoIGFuZCBoZWlnaHQsIHByZXNlcnZpbmcgYXNwZWN0IHJhdGlvCiAgICAgICRuZXdfaCA9ICR0aGlzLT5faGVpZ2h0OwogICAgICAkbmV3X3cgPSAoaW50KSgkdGhpcy0+X2hlaWdodCAqICRzcmNbJ3dpZHRoJ10gLyAkc3JjWydoZWlnaHQnXSk7CiAgICAgIHJldHVybiAkdGhpcy0+X3RyYW5zZm9ybSgkc3JjLCRuZXdfdywkbmV3X2gpOwogIH0KCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIF90cmFuc2Zvcm1fZWRnZShDR0ltYWdlQmFzZSAkc3JjKQogIHsKICAgICAgLy9maW5kIHRoZSBsb25nZXN0IGVkZ2Ugb2YgaW1hZ2UgYW5kIHJlc2l6ZSBiYXNlZCBvbiBpdAogICAgICBpZigkc3JjWyd3aWR0aCddID4gJHNyY1snaGVpZ2h0J10pIHsKICAgICAgICAgICRuZXdfdyA9ICR0aGlzLT5fZWRnZTsKICAgICAgICAgICRuZXdfdyA9IGNnc2lfdXRpbHM6OnRyaW1fdG9fZGV2aWNlKCd3aWR0aCcsJG5ld193KTsKICAgICAgICAgICRuZXdfaCA9IChpbnQpKCR0aGlzLT5fZWRnZSAqICRzcmNbJ2hlaWdodCddIC8gJHNyY1snd2lkdGgnXSk7CiAgICAgICAgICByZXR1cm4gJHRoaXMtPl90cmFuc2Zvcm0oJHNyYywkbmV3X3csJG5ld19oKTsKICAgICAgfSBlbHNlIHsKICAgICAgICAgICRuZXdfaCA9ICR0aGlzLT5fZWRnZTsKICAgICAgICAgICRuZXdfaCA9IGNnc2lfdXRpbHM6OnRyaW1fdG9fZGV2aWNlKCdoZWlnaHQnLCRuZXdfaCk7CiAgICAgICAgICAkbmV3X3cgPSAoaW50KSgkdGhpcy0+X2VkZ2UgKiAkc3JjWyd3aWR0aCddIC8gJHNyY1snaGVpZ2h0J10pOwogICAgICAgICAgcmV0dXJuICR0aGlzLT5fdHJhbnNmb3JtKCRzcmMsJG5ld193LCRuZXdfaCk7CiAgICAgIH0KICB9CgogIHByb3RlY3RlZCBmdW5jdGlvbiBfdHJhbnNmb3JtX2N1c3RvbShDR0ltYWdlQmFzZSAkc3JjKQogIHsKICAgICAgLy8gdGhpcyBkb2VzIG5vdCBwcmVzZXJ2ZSBhc3BlY3QgcmF0aW8uCiAgICAgIHJldHVybiAkdGhpcy0+X3RyYW5zZm9ybSgkc3JjLCR0aGlzLT5fd2lkdGgsJHRoaXMtPl9oZWlnaHQpOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2Zvcm0oQ0dJbWFnZUJhc2UgJGltZykKICB7CiAgICAgIGlmKCAkdGhpcy0+X3BlcmNlbnQgPiAwICkgcmV0dXJuICR0aGlzLT5fdHJhbnNmb3JtX3BlcmNlbnRhZ2UoJGltZyk7IC8vIHBlcmNlbnRhZ2UgcmVzaXplLgogICAgICBpZiggJHRoaXMtPl9lZGdlID4gMCAmJiAoKCRpbWdbJ3dpZHRoJ10gPiAkdGhpcy0+X2VkZ2UgfHwgJGltZ1snaGVpZ2h0J10gPiAkdGhpcy0+X2VkZ2UpIHx8ICR0aGlzLT5fdXBzc2NhbGUpICkgewogICAgICAgICAgLy9yZXNpemUgYnkgbG9uZ2VzdCBlZGdlCiAgICAgICAgICByZXR1cm4gJHRoaXMtPl90cmFuc2Zvcm1fZWRnZSgkaW1nKTsKICAgICAgfQogICAgICBpZiggJHRoaXMtPl93aWR0aCA+IDAgJiYgJHRoaXMtPl9oZWlnaHQgPT0gMCAmJiAoKCRpbWdbJ3dpZHRoJ10gPiAkdGhpcy0+X3dpZHRoKSB8fCAkdGhpcy0+X3Vwc2NhbGUpICkgewogICAgICAgICAgcmV0dXJuICR0aGlzLT5fdHJhbnNmb3JtX3dpZHRoKCRpbWcpOwogICAgICB9CiAgICAgIGlmKCAkdGhpcy0+X3dpZHRoID09IDAgJiYgJHRoaXMtPl9oZWlnaHQgPiAwICYmICgoJGltZ1snaGVpZ2h0J10gPiAkdGhpcy0+X2hlaWdodCkgfHwgJHRoaXMtPl91cHNjYWxlKSApIHsKICAgICAgICAgIHJldHVybiAkdGhpcy0+X3RyYW5zZm9ybV9oZWlnaHQoJGltZyk7CiAgICAgIH0KICAgICAgaWYoICR0aGlzLT5fd2lkdGggPiAwICYmICR0aGlzLT5faGVpZ2h0ID4gMCApIHsKICAgICAgICAgIGlmKCAkaW1nWyd3aWR0aCddID09ICR0aGlzLT5fd2lkdGggJiYgJGltZ1snaGVpZ2h0J10gPT0gJHRoaXMtPl9oZWlnaHQgKSB7CiAgICAgICAgICAgICAgLy8gbm90aGluZyB0byBkby4uLiBidXQgdHJpY2sgdGhlIGltYWdlIHRvIGJlIGRpcnR5LgogICAgICAgICAgICAgICRpbWdbJ2hlaWdodCddID0gJGltZ1snaGVpZ2h0J107CiAgICAgICAgICAgICAgcmV0dXJuICRpbWc7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gJHRoaXMtPl90cmFuc2Zvcm1fY3VzdG9tKCRpbWcpOwogICAgICB9CgogICAgICAvLyBub3RoaW5nIHRvIGRvLi4uLiBidXQgdHJpY2sgdGhlIGltYWdlIHRvIGJlIGRpcnR5LgogICAgICAkaW1nWydoZWlnaHQnXSA9ICRpbWdbJ2hlaWdodCddOwogICAgICByZXR1cm4gJGltZzsKICB9Cn0KCiMKIyBFT0YKIwo/Pg==]]></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[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMyBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBDR0ltYWdlX1NoYXJwZW5fRmlsdGVyIGV4dGVuZHMgQ0dJbWFnZUZpbHRlckJhc2UKewpwcml2YXRlICRfbWF0cml4ID0gYXJyYXkoYXJyYXkoMCwtMywwKSxhcnJheSgtMywyMSwtMyksYXJyYXkoMCwtMywwKSk7Ci8vICAgIHByaXZhdGUgJF9tYXRyaXggPSBhcnJheShhcnJheSgwLC0xLjAgLDApLGFycmF5KC0xLjAsIDUuMCwgLTEuMCksYXJyYXkoMCwtMS4wLCAwKSk7CiAgICBwcml2YXRlICRfZGl2aXNvciA9IDk7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KC8qIHZhciBhcmdzICovKQogICAgewogICAgICAgICRpbnB1dCA9IGZ1bmNfZ2V0X2FyZ3MoKTsKICAgICAgICBpZiggaXNfYXJyYXkoJGlucHV0KSAmJiBjb3VudCgkaW5wdXQpID09IDEgKSAkaW5wdXQgPSAkaW5wdXRbMF07CiAgICAgICAgJHRoaXMtPl9kaXZpc29yID0gYXJyYXlfc3VtKGFycmF5X21hcCgnYXJyYXlfc3VtJywgJHRoaXMtPl9tYXRyaXgpKTsKCiAgICAgICAgJGFkaiA9IDA7CiAgICAgICAgaWYoIGNnZV9hcnJheTo6aXNfaGFzaCgkaW5wdXQpICYmIGlzc2V0KCRpbnB1dFsnZGl2aXNvciddKSApIHsKICAgICAgICAgICAgJGFkaiA9IChmbG9hdCkkaW5wdXRbJ2Rpdmlzb3InXTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggaXNfYXJyYXkoJGlucHV0KSAmJiBjb3VudCgkaW5wdXQpID49IDEgKSB7CiAgICAgICAgICAgICRhZGogPSAoZmxvYXQpJGlucHV0WzBdOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+X2Rpdmlzb3IgKz0gbWF4KC0xMCxtaW4oMTAsJGFkaikpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2Zvcm0oQ0dJbWFnZUJhc2UgJHNyYykKICAgIHsKICAgICAgICAvLyBjb3B5IHRoZSBpbWFnZSAocGl4ZWwgZm9yIHBpeGVsKQogICAgICAgICRfZGVzdCA9IG5ldyBDR0ltYWdlQmFzZSgkc3JjKTsKICAgICAgICBpbWFnZWNvcHkoJF9kZXN0Wydyc3JjJ10sJHNyY1sncnNyYyddLDAsMCwwLDAsJHNyY1snd2lkdGgnXSwkc3JjWydoZWlnaHQnXSk7CiAgICAgICAgaW1hZ2Vjb252b2x1dGlvbigkX2Rlc3RbJ3JzcmMnXSwkdGhpcy0+X21hdHJpeCwkdGhpcy0+X2Rpdmlzb3IsMCk7CiAgICAgICAgcmV0dXJuICRfZGVzdDsKICAgIH0KfQoKIwojIEVPRgojCj8+Cg==]]></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[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgQ0dJbWFnZV9XYXRlcm1hcmtfRmlsdGVyIGV4dGVuZHMgQ0dJbWFnZUZpbHRlckJhc2UKewogICAgcHJpdmF0ZSAkX3dtdGV4dDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoLyogdmFyIGFyZ3MgKi8pCiAgICB7CiAgICAgICAgJGlucHV0ID0gZnVuY19nZXRfYXJncygpOwogICAgICAgIGlmKCBjb3VudCgkaW5wdXQpID09IDEgJiYgaXNfYXJyYXkoJGlucHV0WzBdKSApICRpbnB1dCA9ICRpbnB1dFswXTsKCiAgICAgICAgaWYoIGNnZV9hcnJheTo6aXNfaGFzaCgkaW5wdXQpICkgewogICAgICAgICAgICAkdGhpcy0+X3dtdGV4dCA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJGlucHV0LCd0ZXh0Jyk7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoIGlzX2FycmF5KCRpbnB1dCkgJiYgY291bnQoJGlucHV0KSA+PSAxICkgewogICAgICAgICAgICAkdG1wID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkaW5wdXQsMCk7CiAgICAgICAgICAgIGlmKCBpc19zdHJpbmcoJHRtcCkgJiYgIWlzX251bWVyaWMoJHRtcCkgKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+X3dtdGV4dCA9ICR0bXA7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShDR0ltYWdlQmFzZSAkc3JjKQogICAgewogICAgICAgICRfZGVzdCA9IG5ldyBDR0ltYWdlQmFzZSgkc3JjKTsKCiAgICAgICAgJHdhdGVybWFya2VyID0gXGNnZV9zZXR1cDo6Z2V0X3dhdGVybWFya2VyKCk7CiAgICAgICAgaWYoICR0aGlzLT5fd210ZXh0ICkgewogICAgICAgICAgICAvLyBjbGVhbiB1cCB0aGUgdGV4dAogICAgICAgICAgICAkdGV4dCA9IHN0cmlwX3RhZ3MoJHRoaXMtPl93bXRleHQpOwogICAgICAgICAgICAkdGV4dCA9IHN1YnN0cigkdGV4dCwwLDUwKTsKICAgICAgICAgICAgJHRleHQgPSB0cmltKCR0ZXh0KTsKICAgICAgICAgICAgaWYoIGlzX251bGwoXGNnZV91dGlsczo6dG9fYm9vbCgkdGV4dCxUUlVFKSkgKSB7CiAgICAgICAgICAgICAgICAkd2F0ZXJtYXJrZXItPnNldF93YXRlcm1hcmtfdGV4dCgkdGV4dCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJF9kZXN0Wydyc3JjJ10gPSAkd2F0ZXJtYXJrZXItPmdldF93YXRlcm1hcmtlZF9pbWFnZSgkX2Rlc3RbJ3JzcmMnXSk7CiAgICAgICAgcmV0dXJuICRfZGVzdDsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsi_DeviceAtlasPersonal_client.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIGNnc2lfRGV2aWNlQXRsYXNQZXJzb25hbF9jbGllbnQgZXh0ZW5kcyBjZ3NpX2RldmljZWNhcGFiaWxpdGllc19jbGllbnQKewogIGNvbnN0IHJlcXVlc3RfdXJsID0gJ2h0dHA6Ly9kZXZpY2VhdGxhcy5hcHBzcG90LmNvbS9xdWVyeSc7CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGV2aWNlX3Jlc29sdXRpb24oKQogIHsKICAgICAgZGVidWdfYnVmZmVyKCdjYWxsaW5nIGRldmljZWF0bGFzIHRvIGdldCBicm93c2VyIGNhcGFiaWxpdGllcycpOwogICAgICAkY2xpZW50ID0gY2dlX2h0dHA6OmdldF9odHRwKCk7CiAgICAgICRjbGllbnQtPnNldE1ldGhvZCgnR0VUJyk7CiAgICAgICRjbGllbnQtPnNldHRpbWVvdXQoMyk7IC8vIG92ZXJyaWRlIHRoZSB0aW1lb3V0LgogICAgICAkY2xpZW50LT5zZXRUYXJnZXQoc2VsZjo6cmVxdWVzdF91cmwpOwogICAgICAkY2xpZW50LT5hZGRQYXJhbSgnVXNlci1BZ2VudCcsJHRoaXMtPmdldF9hZ2VudCgpKTsKICAgICAgJGpzb24gPSAkY2xpZW50LT5leGVjdXRlKCk7CiAgICAgICRzdGF0dXMgPSAkY2xpZW50LT5nZXRTdGF0dXMoKTsKCiAgICAgIGlmKCAkc3RhdHVzICE9IDIwMCB8fCAhJGpzb24gKSB7CiAgICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJ0NHU21hcnRJbWFnZTogIENvbm5lY3Rpb24gdG8gRGV2aWNlQXRsYXMgZmFpbGVkJyk7CiAgICAgIH0KCiAgICAgIC8vIGNvdWxkIGJlIHRyYWNraW5nIGZhaWx1cmVzIGhlcmUKCiAgICAgICRkYXRhID0ganNvbl9kZWNvZGUoJGpzb24sVFJVRSk7CiAgICAgIGlmKCAhaXNfYXJyYXkoJGRhdGEpICkgcmV0dXJuOwogICAgICBpZiggIWlzc2V0KCRkYXRhWydpc0Jyb3dzZXInXSkgKSByZXR1cm47CgogICAgICBpZiggIWlzc2V0KCRkYXRhWydkaXNwbGF5V2lkdGgnXSkgfHwgIWlzc2V0KCRkYXRhWydkaXNwbGF5SGVpZ2h0J10pICkgewogICAgICAgICAgZGVidWdfYnVmZmVyKCdjb25uZWN0aW9uIHRvIGRldmljZWF0bGFzIHN1Y2NlZGVkLCBidXQgbm8gcmVzb2x1dGlvbiBpbmZvcm1hdGlvbicpOwogICAgICAgICAgcmV0dXJuICRkYXRhOwogICAgICB9CgogICAgICAvLyB3b290LCBpdCB3b3JrZWQuCiAgICAgICRyZXMgPSBhcnJheSgpOwogICAgICAkcmVzWyd3aWR0aCddID0gJGRhdGFbJ2Rpc3BsYXlXaWR0aCddOwogICAgICAkcmVzWydoZWlnaHQnXSA9ICRkYXRhWydkaXNwbGF5SGVpZ2h0J107CiAgICAgIHJldHVybiAkcmVzOwogIH0KfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pg==]]></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[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgQ0dTSVN0b3BIZXJlRXhjZXB0aW9uIGV4dGVuZHMgXEV4Y2VwdGlvbiB7fQoKZmluYWwgY2xhc3MgY2dzaV91dGlscwp7CiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7fQogICAgc3RhdGljIHByaXZhdGUgJF9kZXZpY2VfZGF0YTsKCiAgICAvKioKICAgICAqIEdpdmVuIGEgZmFpcmx5IGxvb3NlIGltYWdlIHR5cGUgaWRlbnRpZmllciAoZWl0aGVyIGFuIGV4dGVuc2lvbiwgb3IgYSBtaW1lIHR5cGUgdGhhdCBjb3VsZCBiZSBzb21ld2hhdCBtaXMtc3BlbGxlZAogICAgICogYXR0ZW1wdCB0byByZXR1cm4gYSByZWFzb25hYmxlIG1pbWUgdHlwZQogICAgICovCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBwYXJzZV90eXBlKCRzdHIsJGRmbHQgPSAnaW1hZ2UvcG5nJykKICAgIHsKICAgICAgICAkc3RyID0gc3RydG9sb3dlcigkc3RyKTsKICAgICAgICB3aGlsZSggc3RhcnRzd2l0aCgkc3RyLCcuJykgKSAkc3RyID0gc3Vic3RyKCRzdHIsMSk7CgogICAgICAgIHN3aXRjaCggJHN0ciApIHsKICAgICAgICBjYXNlICdpbWFnZS9qcGVnJzoKICAgICAgICBjYXNlICdpbWFnZS9wbmcnOgogICAgICAgIGNhc2UgJ2ltYWdlL2dpZic6CiAgICAgICAgY2FzZSAnaW1hZ2UvYm1wJzoKICAgICAgICBjYXNlICdpbWFnZS93ZWJwJzoKICAgICAgICAgICAgcmV0dXJuICRzdHI7CiAgICAgICAgY2FzZSAnaW1hZ2UveC13aW5kb3dzLWJtcCc6CiAgICAgICAgY2FzZSAnaW1hZ2UveC1tcy1ibXAnOgogICAgICAgICAgICByZXR1cm4gJ2ltYWdlL2JtcCc7CiAgICAgICAgY2FzZSAnaW1hZ2UvanBnJzoKICAgICAgICBjYXNlICdqcGVnJzoKICAgICAgICBjYXNlICdqcGcnOgogICAgICAgICAgICByZXR1cm4gJ2ltYWdlL2pwZWcnOwogICAgICAgIGNhc2UgJ3BuZyc6CiAgICAgICAgICAgIHJldHVybiAnaW1hZ2UvcG5nJzsKICAgICAgICBjYXNlICdnaWYnOgogICAgICAgICAgICByZXR1cm4gJ2ltYWdlL2dpZic7CiAgICAgICAgY2FzZSAnYm1wJzoKICAgICAgICAgICAgcmV0dXJuICdpbWFnZS9ibXAnOwogICAgICAgIGNhc2UgJ3dlYnAnOgogICAgICAgICAgICByZXR1cm4gJ2ltYWdlL3dlYnAnOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHJldHVybiAkZGZsdDsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBHaXZlbiBhIG1pbWUgdHlwZSBmb3Igb3Iga25vd24gaW1hZ2UgZm9ybWF0cywgcmV0dXJuIGFuIGV4dGVuc2lvbgogICAgICovCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBnZXRfZXh0ZW5zaW9uKCRtaW1lX3R5cGUpCiAgICB7CiAgICAgICAgJG1hcCA9IGFycmF5KCdpbWFnZS9qcGVnJz0+Jy5qcGcnLAogICAgICAgICAgICAgICAgICAgICAnaW1hZ2UvcG5nJz0+Jy5wbmcnLAogICAgICAgICAgICAgICAgICAgICAnaW1hZ2UvYm1wJz0+Jy5ibXAnLAogICAgICAgICAgICAgICAgICAgICAnaW1hZ2UvZ2lmJz0+Jy5naWYnKTsKICAgICAgICBpZiggaXNzZXQoJG1hcFskbWltZV90eXBlXSkgKSByZXR1cm4gJG1hcFskbWltZV90eXBlXTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiB0aGUgb3B0aW9ucyBmb3IgYSBwYXJ0aWN1bGFyIGFsaWFzCiAgICAgKi8KICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIF9nZXRfYWxpYXNfb3B0aW9ucygkbmFtZSkKICAgIHsKICAgICAgICBzdGF0aWMgJGFsaWFzZXM7CiAgICAgICAgaWYoICEkYWxpYXNlcyApIHsKICAgICAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dTbWFydEltYWdlJyk7CiAgICAgICAgICAgICR0bXAgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdhbGlhc2VzJyk7CiAgICAgICAgICAgICRhbGlhc2VzID0gJ0ZBTFNFJzsKICAgICAgICAgICAgaWYoICR0bXAgKSAkYWxpYXNlcyA9IHVuc2VyaWFsaXplKCR0bXApOwogICAgICAgIH0KICAgICAgICBpZiggaXNfYXJyYXkoJGFsaWFzZXMpICkgewogICAgICAgICAgICAka2V5cyA9IGFycmF5X2tleXMoJGFsaWFzZXMpOwogICAgICAgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgka2V5cyk7ICRpKysgKSB7CiAgICAgICAgICAgICAgICAka2V5ID0gJGtleXNbJGldOwogICAgICAgICAgICAgICAgaWYoICRhbGlhc2VzWyRrZXldWyduYW1lJ10gPT0gJG5hbWUgKSByZXR1cm4gJGFsaWFzZXNbJGtleV1bJ29wdGlvbnMnXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBfZXhwYW5kX3F1b3RlZF9zdHJpbmcoJHN0cikKICAgIHsKICAgICAgICAkcmVzdWx0ID0gYXJyYXkoKTsKICAgICAgICAkY29sID0gJyc7CiAgICAgICAgJHNhZmUgPSAnJzsKICAgICAgICAkcHJldl9jaGFyID0gJyc7CiAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgc3RybGVuKCRzdHIpOyAkaSsrICkgewogICAgICAgICAgICBzd2l0Y2goICRzdHJbJGldICkgewogICAgICAgICAgICBjYXNlICcgJzoKICAgICAgICAgICAgICAgIGlmKCAhJHNhZmUgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoIHN0cnBvcygkY29sLCc9JykgIT09IEZBTFNFICkgewogICAgICAgICAgICAgICAgICAgICAgICBsaXN0KCRrLCR2KSA9IGV4cGxvZGUoJz0nLCRjb2wsMik7CiAgICAgICAgICAgICAgICAgICAgICAgICRyZXN1bHRbJGtdID0gJHY7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICRjb2wgPSAnJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRjb2wgLj0gJHN0clskaV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgIiciOgogICAgICAgICAgICBjYXNlICciJzoKICAgICAgICAgICAgICAgIGlmKCAkcHJldl9jaGFyICE9ICdcXCcgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoICRzdHJbJGldID09ICRzYWZlICkgewogICAgICAgICAgICAgICAgICAgICAgICAkc2FmZSA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkc2FmZSA9ICRzdHJbJGldOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgJGNvbCAuPSAkc3RyWyRpXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkcHJldl9jaGFyID0gJHN0clskaV07CiAgICAgICAgfQoKICAgICAgICBpZiggc3RybGVuKCRjb2wpICE9IDAgKSB7CiAgICAgICAgICAgIGlmKCBzdHJwb3MoJGNvbCwnPScpICE9PSBGQUxTRSApIHsKICAgICAgICAgICAgICAgIGxpc3QoJGssJHYpID0gZXhwbG9kZSgnPScsJGNvbCwyKTsKICAgICAgICAgICAgICAgICRyZXN1bHRbJGtdID0gJHY7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgfQoKCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBfaXNfc3R5bGVzaGVldCgpCiAgICB7CiAgICAgICAgJHRtcCA9IGRlYnVnX2JhY2t0cmFjZSgpOwogICAgICAgIGZvcmVhY2goICR0bXAgYXMgJGVsZW0gKSB7CiAgICAgICAgICAgIGlmKCBpc3NldCgkZWxlbVsnZnVuY3Rpb24nXSkgJiYgJGVsZW1bJ2Z1bmN0aW9uJ10gPT0gJ3NtYXJ0eV9jbXNfZnVuY3Rpb25fY21zX3N0eWxlc2hlZXQnICkgcmV0dXJuIFRSVUU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBfbWluX25vdDAoLyogdmFyIGFyZ3MgKi8pCiAgICB7CiAgICAgICAgJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7CiAgICAgICAgJHZhbCA9ICRhcmdzWzBdOwogICAgICAgIGZvciggJGkgPSAxOyAkaSA8IGNvdW50KCRhcmdzKTsgJGkrKyApIHsKICAgICAgICAgICAgaWYoICRhcmdzWyRpXSA+IDAgKSAkdmFsID0gbWluKCR2YWwsJGFyZ3NbJGldKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICR2YWw7CiAgICB9CgoKICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIF9hZGp1c3Rfc2l6ZXNfdG9fYXNwZWN0X3JhdGlvKCRpbl93LCRpbl9oLCRtYXhfc2l6ZSkKICAgIHsKICAgICAgICAvLyBjYWxjdWxhdGUgbmV3IGltYWdlIHNpemUgYmFzZWQgb24gbWF4IHNpemUgKGZvciByZXNwb25zaXZlIHN0dWZmKQogICAgICAgIC8vIGJ1dCBuZXZlciwgZXZlciBhbGxvdyB1cHNjYWxpbmcuCiAgICAgICAgJG5ld193ID0gJGluX3c7CiAgICAgICAgJG5ld19oID0gJGluX2g7CiAgICAgICAgaWYoICRpbl93ID4gJGluX2ggJiYgJG1heF9zaXplIDwgJGluX3cgKSB7CiAgICAgICAgICAgICRuZXdfdyA9ICRtYXhfc2l6ZTsKICAgICAgICAgICAgJG5ld19oID0gKGludCkoJG5ld193ICogJGluX2ggLyAkaW5fdyk7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoICRtYXhfc2l6ZSA8ICRpbl9oICkgewogICAgICAgICAgICAkbmV3X2ggPSAkbWF4X3NpemU7CiAgICAgICAgICAgICRuZXdfdyA9IChpbnQpKCRuZXdfaCAqICRpbl93IC8gJGluX2gpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gYXJyYXkoJG5ld193LCRuZXdfaCk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjb2xvcl90b19yZ2IoJHN0cikKICAgIHsKICAgICAgICAkc3RyID0gdHJpbSgkc3RyKTsKICAgICAgICAkcmVzID0gYXJyYXkoMCwwLDApOwoKICAgICAgICBpZiggc3RhcnRzd2l0aCgkc3RyLCcjJykgJiYgc3RybGVuKCRzdHIpID09IDQgKSB7CiAgICAgICAgICAgICRyID0gc3Vic3RyKCRzdHIsMSwxKTsgJHIgPSAkci4kcjsKICAgICAgICAgICAgJGcgPSBzdWJzdHIoJHN0ciwyLDEpOyAkZyA9ICRnLiRnOwogICAgICAgICAgICAkYiA9IHN1YnN0cigkc3RyLDMsMSk7ICRiID0gJGIuJGI7CiAgICAgICAgICAgICRyZXNbMF0gPSBoZXhkZWMoJHIpOwogICAgICAgICAgICAkcmVzWzFdID0gaGV4ZGVjKCRnKTsKICAgICAgICAgICAgJHJlc1syXSA9IGhleGRlYygkYik7CiAgICAgICAgICAgIHJldHVybiAkcmVzOwogICAgICAgIH0KCiAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJHN0ciwnIycpICYmIHN0cmxlbigkc3RyKSA9PSA3ICkgewogICAgICAgICAgICAkcmVzWzBdID0gaGV4ZGVjKHN1YnN0cigkc3RyLDEsMikpOwogICAgICAgICAgICAkcmVzWzFdID0gaGV4ZGVjKHN1YnN0cigkc3RyLDMsMikpOwogICAgICAgICAgICAkcmVzWzJdID0gaGV4ZGVjKHN1YnN0cigkc3RyLDUsMikpOwogICAgICAgICAgICByZXR1cm4gJHJlczsKICAgICAgICB9CgogICAgICAgICR0bXAgPSBleHBsb2RlKCc6Jywkc3RyLDMpOwogICAgICAgIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSA9PSAzICYmIGlzX251bWVyaWMoJHRtcFswXSkgJiYgaXNfbnVtZXJpYygkdG1wWzFdKSAmJiBpc19udW1lcmljKCR0bXBbMV0pICkgewogICAgICAgICAgICAkcmVzWzBdID0gKGludCkkdG1wWzBdOwogICAgICAgICAgICAkcmVzWzFdID0gKGludCkkdG1wWzFdOwogICAgICAgICAgICAkcmVzWzJdID0gKGludCkkdG1wWzJdOwogICAgICAgICAgICByZXR1cm4gJHJlczsKICAgICAgICB9CgogICAgICAgIC8vIGFzc3VtZSBpdCdzIGEgY29sb3IgbmFtZS4KICAgICAgICBzdGF0aWMgJF9jb2xvcnM7CiAgICAgICAgaWYoICFpc19hcnJheSgkX2NvbG9ycykgKSB7CiAgICAgICAgICAgICRmbiA9IF9fRElSX18uJy9jb2xvcnMuZGF0JzsKICAgICAgICAgICAgJGRhdGEgPSBmaWxlKCRmbik7CiAgICAgICAgICAgIGlmKCBjb3VudCgkZGF0YSkgKSB7CiAgICAgICAgICAgICAgICAkX2NvbG9ycyA9IGFycmF5KCk7CiAgICAgICAgICAgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkZGF0YSk7ICRpKysgKSB7CiAgICAgICAgICAgICAgICAgICAgbGlzdCgkcmdiLCRuYW1lKSA9IGV4cGxvZGUoJy0nLCRkYXRhWyRpXSwyKTsKICAgICAgICAgICAgICAgICAgICBpZiggIXN0YXJ0c3dpdGgoJHJnYiwnIycpIHx8IHN0cmxlbigkcmdiKSAhPSA3IHx8ICRuYW1lID09ICcnICkgY29udGludWU7CgogICAgICAgICAgICAgICAgICAgICR0bXAgPSBhcnJheSgpOwogICAgICAgICAgICAgICAgICAgICR0bXBbMF0gPSBoZXhkZWMoc3Vic3RyKCRyZ2IsMSwyKSk7CiAgICAgICAgICAgICAgICAgICAgJHRtcFsxXSA9IGhleGRlYyhzdWJzdHIoJHJnYiwzLDIpKTsKICAgICAgICAgICAgICAgICAgICAkdG1wWzJdID0gaGV4ZGVjKHN1YnN0cigkcmdiLDUsMikpOwoKICAgICAgICAgICAgICAgICAgICAkX2NvbG9yc1tzdHJ0b2xvd2VyKHRyaW0oJG5hbWUpKV0gPSAkdG1wOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmKCBpc19hcnJheSgkX2NvbG9ycykgJiYgaXNzZXQoJF9jb2xvcnNbJHN0cl0pICkgJHJlcyA9ICRfY29sb3JzWyRzdHJdOwogICAgICAgIHJldHVybiAkcmVzOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gJnByb2Nlc3NfaW1hZ2UoJHBhcmFtcykKICAgIHsKICAgICAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9DR1NNQVJUSU1BR0UpOwogICAgICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAgICAgICAkd2FudF90cmFuc2Zvcm0gPSAwOwogICAgICAgICRkb190cmFuc2Zvcm0gPSAwOwogICAgICAgICRoYXZlX3RyYW5zZm9ybSA9IDA7CiAgICAgICAgJGRlc3RfZm5hbWUgPSAnJzsKICAgICAgICAkZGVzdF91cmwgPSAnJzsKICAgICAgICAkaW1nID0gJyc7CiAgICAgICAgJHNyY2ZpbGUgPSAnJzsKICAgICAgICAkcmVsID0gMDsKICAgICAgICAkb3V0cCA9IGFycmF5KCk7ICAvLyBvdXRwdXQgcGFyYW1zCiAgICAgICAgJG91dHBbJ2lkJ10gPSAnJzsKICAgICAgICAkb3V0cFsnbmFtZSddID0gJyc7CiAgICAgICAgJG91dHBbJ2NsYXNzJ10gPSAnJzsKICAgICAgICAkb3V0cFsnc3R5bGUnXSA9ICcnOwogICAgICAgICRvdXRwWydzcmMnXSA9ICcnOwogICAgICAgICRvdXRwWydkZXN0X2ZpbGUnXSA9ICcnOwogICAgICAgICRvdXRwWyd3aWR0aCddID0gJyc7CiAgICAgICAgJG91dHBbJ2hlaWdodCddID0gJyc7CiAgICAgICAgJG91dHBbJ2Vycm9yJ10gPSAnJzsKICAgICAgICAkb3V0cFsnb3V0cHV0J10gPSBudWxsOwogICAgICAgICRvcHAgPSBhcnJheSgpOyAgLy8gb3BlcmF0aW9uIHBhcmFtcwogICAgICAgICRvcHBbJ292ZXJ3cml0ZSddID0gMDsKICAgICAgICAkb3BwWydub2JjYWNoZSddID0gMDsKICAgICAgICAkb3BwWydub3JlbW90ZSddID0gMDsKICAgICAgICAkb3BwWydub2VtYmVkJ10gPSAwOwogICAgICAgICRvcHBbJ25vYXV0byddID0gMDsKICAgICAgICAkb3BwWydub3BwcmFkanVzdCddID0gMDsKICAgICAgICAkb3BwWydub3JvdGF0ZSddID0gMDsKICAgICAgICAkb3BwWydub3RpbWVjaGVjayddID0gMDsKICAgICAgICAkb3BwWydub2F1dG9zY2FsZSddID0gMDsKICAgICAgICAkb3BwWydub3RhZyddID0gMDsKICAgICAgICAkb3BwWydub3Jlc3BvbnNpdmUnXSA9IDA7CiAgICAgICAgJG9wcFsnbm9kcHJhZGp1c3QnXSA9IDA7CiAgICAgICAgJG9wcFsnbm9icmVha3BvaW50cyddID0gMDsKICAgICAgICAkb3BwWydtYXhfd2lkdGgnXSA9IDA7CiAgICAgICAgJG9wcFsnbWF4X2hlaWdodCddID0gMDsKICAgICAgICAkb3BwWydkX21heF93aWR0aCddID0gMDsgIC8vIGRldmljZSBjYWxjdWxhdGVkIG1heCB3aWR0aCAoaW5jbHVkaW5nIGJyZWFrcG9pbnRzKQogICAgICAgICRvcHBbJ2RfbWF4X2hlaWdodCddID0gMDsgICAvLyBkZXZpY2UgY2FsY3VsYXRlZCBtYXggd2lkdGggKGluY2x1ZGluZyBicmVha3BvaW50cykKICAgICAgICAkb3BwWydzcmMnXSA9ICcnOwogICAgICAgICRvcHBbJ3F1YWxpdHknXSA9IDc1OwogICAgICAgICRvcHBbJ2ZpbHRlcnMnXSA9IGFycmF5KCk7CiAgICAgICAgJG9wcFsnZm9yY2VfdHlwZSddID0gJyc7CiAgICAgICAgJG9wcFsnZm9yY2VfZXh0J10gPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdmb3JjZV9leHRlbnNpb24nLDApOwogICAgICAgICRvcHBbJ3Byb2dyZXNzaXZlJ10gPSAoaW50KSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdwcm9ncmVzc2l2ZScsMCk7CiAgICAgICAgJG9wcFsnYXV0b3NjYWxlX29wJ10gPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdhdXRvc2NhbGVfb3AnLCdjcm9wdG9maXQnKTsKICAgICAgICAkY2dlID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9DR0VYVEVOU0lPTlMpOwogICAgICAgICRzcmNpbWdzaXplID0gJyc7IC8vIHNyYyBpbWFnZSBzaXplCiAgICAgICAgJGxhc3RmaWx0ZXIgPSBudWxsOwoKICAgICAgICB0cnkgewogICAgICAgICAgICAkdG1wID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnYWxpYXNlcycpOwogICAgICAgICAgICBpZiggJHRtcCApICRhbGlhc2VzID0gdW5zZXJpYWxpemUoJHRtcCk7CgogICAgICAgICAgICAvLyBmaXJzdCBwYXNzLi4uIGV4cGFuZCBhbGlhc2VzIGFuZCBidWlsZCBzcmMKICAgICAgICAgICAgJG5ld19wYXJhbXMgPSBhcnJheSgpOwogICAgICAgICAgICBmb3JlYWNoKCAkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlICkgewogICAgICAgICAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJGtleSwnYWxpYXMnKSApIHsKICAgICAgICAgICAgICAgICAgICAvLyBleHBhbmQgYWxpYXMKICAgICAgICAgICAgICAgICAgICAkb3B0aW9ucyA9IHNlbGY6Ol9nZXRfYWxpYXNfb3B0aW9ucygkdmFsdWUpOwogICAgICAgICAgICAgICAgICAgIGlmKCAkb3B0aW9ucyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGFyc2UgYSBzdHJpbmcgaW50byBhbiBhcnJheSBvZiBhcmd1bWVudHMuCiAgICAgICAgICAgICAgICAgICAgICAgICRkYXRhID0gc2VsZjo6X2V4cGFuZF9xdW90ZWRfc3RyaW5nKCRvcHRpb25zKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoIGlzX2FycmF5KCRkYXRhKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2goICRkYXRhIGFzICRrZXkgPT4gJHZhbHVlICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuZXdfcGFyYW1zWyRrZXldID0gJHZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2VpZiggc3RhcnRzd2l0aCgka2V5LCdzcmMnKSAmJiAka2V5ICE9ICdzcmMnICkgewogICAgICAgICAgICAgICAgICAgIC8vIGhhbmRsZSBzcmMxIHRocm91Z2ggc3JjOTkgYXJndW1lbnRzLgogICAgICAgICAgICAgICAgICAgIGlmKCAhaXNzZXQoJG5ld19wYXJhbXNbJ3NyYyddKSApICRuZXdfcGFyYW1zWydzcmMnXSA9ICcnOwogICAgICAgICAgICAgICAgICAgIGlmKCAhZW1wdHkoJG5ld19wYXJhbXNbJ3NyYyddKSAmJiAhZW5kc3dpdGgoJG5ld19wYXJhbXNbJ3NyYyddLCcvJykgKSAkbmV3X3BhcmFtc1snc3JjJ10gLj0gJy8nOwogICAgICAgICAgICAgICAgICAgICRuZXdfcGFyYW1zWydzcmMnXSAuPSAkdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gZXZlcnl0aGluZyBlbHNlIGp1c3QgZ2V0cyBhZGRlZC4KICAgICAgICAgICAgICAgICRuZXdfcGFyYW1zWyRrZXldID0gJHZhbHVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRwYXJhbXMgPSAkbmV3X3BhcmFtczsKCiAgICAgICAgICAgIC8vIHNlY29uZCBwYXNzLCBidWlsZCBvdXIgYXJyYXlzCiAgICAgICAgICAgICRwYXJzZV9wYXJhbXMgPSBmdW5jdGlvbigkcGFybXMsICRkZXB0aCA9IDApIHVzZSggJiRwYXJzZV9wYXJhbXMsICYkb3BwLCAmJG91dHAsICYkbW9kICkgewogICAgICAgICAgICAgICAgZm9yZWFjaCggJHBhcm1zIGFzICRrZXkgPT4gJHZhbHVlICkgewogICAgICAgICAgICAgICAgICAgICRtYXRjaGVzID0gYXJyYXkoKTsKICAgICAgICAgICAgICAgICAgICBpZiggcHJlZ19tYXRjaCgnL15maWx0ZXJfWzAtOV0uXy8nLCRrZXksJG1hdGNoZXMpICkgewogICAgICAgICAgICAgICAgICAgICAgICAka2V5ID0gc3Vic3RyKCRrZXksc3RybGVuKCRtYXRjaGVzWzBdKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICRmaWx0ZXIgPSB1Y3dvcmRzKCRrZXkpOwogICAgICAgICAgICAgICAgICAgICAgICAkYXJncyA9IGV4cGxvZGUoJywnLCR2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICRjbGFzc25hbWUgPSAnQ0dJbWFnZV8nLiRmaWx0ZXIuJ19GaWx0ZXInOwogICAgICAgICAgICAgICAgICAgICAgICBpZiggIWNsYXNzX2V4aXN0cygkY2xhc3NuYW1lKSApIHRocm93IG5ldyBFeGNlcHRpb24oJG1vZC0+TGFuZygnZXJyb3JfdW5rbm93bmZpbHRlcicsJGZpbHRlcikpOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWRkIGl0IHRvIHRoZSBvcHMuCiAgICAgICAgICAgICAgICAgICAgICAgICRvcHBbJ2ZpbHRlcnMnXVtdID0gYXJyYXkoJGNsYXNzbmFtZSwkYXJncyk7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvbmUuCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJGtleSwnZmlsdGVyXycpICkgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBoYW5kbGUgZmlsdGVyIGFyZ3VtZW50LgogICAgICAgICAgICAgICAgICAgICAgICAkZmlsdGVyID0gdWN3b3JkcyhzdWJzdHIoJGtleSxzdHJsZW4oJ2ZpbHRlcl8nKSkpOwogICAgICAgICAgICAgICAgICAgICAgICAkYXJncyA9IGV4cGxvZGUoJywnLCR2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICRjbGFzc25hbWUgPSAnQ0dJbWFnZV8nLiRmaWx0ZXIuJ19GaWx0ZXInOwogICAgICAgICAgICAgICAgICAgICAgICBpZiggIWNsYXNzX2V4aXN0cygkY2xhc3NuYW1lKSApIHRocm93IG5ldyBFeGNlcHRpb24oJG1vZC0+TGFuZygnZXJyb3JfdW5rbm93bmZpbHRlcicsJGZpbHRlcikpOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWRkIGl0IHRvIHRoZSBvcHMuCiAgICAgICAgICAgICAgICAgICAgICAgICRvcHBbJ2ZpbHRlcnMnXVtdID0gYXJyYXkoJGNsYXNzbmFtZSwkYXJncyk7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvbmUuCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2RhdGEnOgogICAgICAgICAgICAgICAgICAgIGlmKCAkZGVwdGggPT0gMCApICRwYXJzZV9wYXJhbXMoJHZhbHVlLCRkZXB0aCsxKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnY2xhc3MnOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2lkJzoKICAgICAgICAgICAgICAgICAgICBjYXNlICdzdHlsZSc6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbmFtZSc6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnYWx0JzoKICAgICAgICAgICAgICAgICAgICBjYXNlICdyZWwnOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3RpdGxlJzoKICAgICAgICAgICAgICAgICAgICBjYXNlICdhdXRvc2NhbGVfb3AnOgogICAgICAgICAgICAgICAgICAgICRvdXRwWyRrZXldID0gdHJpbSgkdmFsdWUpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICBjYXNlICd3aWR0aCc6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnaGVpZ2h0JzoKICAgICAgICAgICAgICAgICAgICAkb3V0cFska2V5XSA9IChpbnQpJHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICBjYXNlICdtYXhfd2lkdGgnOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ21heF9oZWlnaHQnOgogICAgICAgICAgICAgICAgICAgICRvcHBbJGtleV0gPSAoaW50KSR2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc3JjJzoKICAgICAgICAgICAgICAgICAgICBjYXNlICdmb3JjZV90eXBlJzoKICAgICAgICAgICAgICAgICAgICAkb3BwWyRrZXldID0gdHJpbSgkdmFsdWUpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICBjYXNlICdxdWFsaXR5JzoKICAgICAgICAgICAgICAgICAgICAkb3BwWydxdWFsaXR5J10gPSAoaW50KSR2YWx1ZTsKICAgICAgICAgICAgICAgICAgICAkb3BwWydxdWFsaXR5J10gPSBtaW4oMTAwLG1heCgwLCRvcHBbJ3F1YWxpdHknXSkpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICBjYXNlICdvdmVyd3JpdGUnOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ25vdGFnJzoKICAgICAgICAgICAgICAgICAgICBjYXNlICdub3JlbW90ZSc6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbm9yZXNwb25zaXZlJzoKICAgICAgICAgICAgICAgICAgICBjYXNlICdub2RwcmFkanVzdCc6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbm9icmVha3BvaW50cyc6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbm9iY2FjaGUnOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ25vZW1iZWQnOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ25vYXV0byc6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbm9yb3RhdGUnOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ25vdGltZWNoZWNrJzoKICAgICAgICAgICAgICAgICAgICBjYXNlICdmb3JjZV9leHQnOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3Byb2dyZXNzaXZlJzoKICAgICAgICAgICAgICAgICAgICAkb3BwWyRrZXldID0gY2dlX3V0aWxzOjp0b19ib29sKCR2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwoKICAgICAgICAgICAgJHBhcnNlX3BhcmFtcygkcGFyYW1zKTsKCiAgICAgICAgICAgIGlmKCAhJG9wcFsnc3JjJ10gKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCRtb2QtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXJhbScsJ3NyYycpKTsKCiAgICAgICAgICAgIC8vCiAgICAgICAgICAgIC8vIGZpbmQgdGhlIHNvdXJjZSBpbWFnZSAuLi4gdGhlIGFjdHVhbCBmaWxlbmFtZQogICAgICAgICAgICAvLyB1c2Ugc29tZSBhdXRvbWFnaWMgaW50ZWxsaWdlbmNlIHRvIGZpbmQgaXQuCiAgICAgICAgICAgIC8vCiAgICAgICAgICAgICRyZWxhdGl2ZV90byA9IG51bGw7CiAgICAgICAgICAgICRzcmNfZGVjb2RlZCA9IHVybGRlY29kZSgkb3BwWydzcmMnXSk7CiAgICAgICAgICAgIGlmKCAhJHNyY2ZpbGUgJiYgc3RhcnRzd2l0aCgkc3JjX2RlY29kZWQsJGNvbmZpZ1sndXBsb2Fkc191cmwnXSkgKSB7CiAgICAgICAgICAgICAgICAkdG1wID0gc3RyX3JlcGxhY2UoJGNvbmZpZ1sndXBsb2Fkc191cmwnXSwkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkc3JjX2RlY29kZWQpOwogICAgICAgICAgICAgICAgaWYoIGlzX2ZpbGUoJHRtcCkgKSB7CiAgICAgICAgICAgICAgICAgICAgJHJlbGF0aXZlX3RvID0gJ3VwbG9hZHMnOwogICAgICAgICAgICAgICAgICAgICRzcmNmaWxlID0gJHRtcDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiggISRzcmNmaWxlICYmIHN0YXJ0c3dpdGgoJHNyY19kZWNvZGVkLCRjb25maWdbJ3Jvb3RfdXJsJ10pICkgewogICAgICAgICAgICAgICAgJHRtcCA9IHN0cl9yZXBsYWNlKCRjb25maWdbJ3Jvb3RfdXJsJ10sJGNvbmZpZ1sncm9vdF9wYXRoJ10sJHNyY19kZWNvZGVkKTsKICAgICAgICAgICAgICAgIGlmKCBpc19maWxlKCR0bXApICkgewogICAgICAgICAgICAgICAgICAgICRyZWxhdGl2ZV90byA9ICdyb290JzsKICAgICAgICAgICAgICAgICAgICAkc3JjZmlsZSA9ICR0bXA7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoICEkc3JjZmlsZSAmJiBpc3NldCgkY29uZmlnWydzc2xfdXJsJ10pICYmIHN0YXJ0c3dpdGgoJHNyY19kZWNvZGVkLCRjb25maWdbJ3NzbF91cmwnXSkgKSB7CiAgICAgICAgICAgICAgICAkdG1wID0gc3RyX3JlcGxhY2UoJGNvbmZpZ1snc3NsX3VybCddLCRjb25maWdbJ3Jvb3RfcGF0aCddLCRzcmNfZGVjb2RlZCk7CiAgICAgICAgICAgICAgICBpZiggaXNfZmlsZSgkdG1wKSApIHsKICAgICAgICAgICAgICAgICAgICAkcmVsYXRpdmVfdG8gPSAncm9vdCc7CiAgICAgICAgICAgICAgICAgICAgJHNyY2ZpbGUgPSAkdG1wOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCAhJHNyY2ZpbGUgJiYgc3RhcnRzd2l0aCgkb3BwWydzcmMnXSwnLycpICkgewogICAgICAgICAgICAgICAgLy8gdHJlYXQgYXMgYWJzb2x1dGUgZmlsZW5hbWUKICAgICAgICAgICAgICAgICRycDEgPSByZWFscGF0aCgkY29uZmlnWydyb290X3BhdGgnXSk7CiAgICAgICAgICAgICAgICAkcnAyID0gcmVhbHBhdGgoJG9wcFsnc3JjJ10pOwogICAgICAgICAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJHJwMiwkcnAxKSAmJiBpc19maWxlKCRvcHBbJ3NyYyddKSApIHsKICAgICAgICAgICAgICAgICAgICAkcmVsYXRpdmVfdG8gPSAncm9vdCc7CiAgICAgICAgICAgICAgICAgICAgJHNyY2ZpbGUgPSAkb3BwWydzcmMnXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiggISRzcmNmaWxlICkgewogICAgICAgICAgICAgICAgLy8gY2hlY2sgcmVsYXRpdmUgcGF0aCB3cnQgdGhlIHVwbG9hZHMgZGlyLgogICAgICAgICAgICAgICAgJHRtcCA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJG9wcFsnc3JjJ10pOwogICAgICAgICAgICAgICAgJHJwMSA9IHJlYWxwYXRoKCRjb25maWdbJ3VwbG9hZHNfcGF0aCddKTsKICAgICAgICAgICAgICAgICRycDIgPSByZWFscGF0aCgkdG1wKTsKICAgICAgICAgICAgICAgIGlmKCBzdGFydHN3aXRoKCRycDIsJHJwMSkgJiYgaXNfZmlsZSgkdG1wKSApIHsKICAgICAgICAgICAgICAgICAgICAkcmVsYXRpdmVfdG8gPSAndXBsb2Fkcyc7CiAgICAgICAgICAgICAgICAgICAgJHNyY2ZpbGUgPSAkdG1wOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCAhJHNyY2ZpbGUgKSB7CiAgICAgICAgICAgICAgICAvLyBjaGVjayByZWxhdGl2ZSBwYXRoIHdydCB0aGUgcm9vdCBkaXIuCiAgICAgICAgICAgICAgICAkdG1wID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWydyb290X3BhdGgnXSwkb3BwWydzcmMnXSk7CiAgICAgICAgICAgICAgICAkcnAxID0gcmVhbHBhdGgoJGNvbmZpZ1sncm9vdF9wYXRoJ10pOwogICAgICAgICAgICAgICAgJHJwMiA9IHJlYWxwYXRoKCR0bXApOwogICAgICAgICAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJHJwMiwkcnAxKSAmJiBpc19maWxlKCR0bXApICkgewogICAgICAgICAgICAgICAgICAgICRyZWxhdGl2ZV90byA9ICdyb290JzsKICAgICAgICAgICAgICAgICAgICAkc3JjZmlsZSA9ICR0bXA7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoICEkc3JjZmlsZSAmJiAkb3BwWydub3JlbW90ZSddID09IDAgJiYKICAgICAgICAgICAgICAgIChzdGFydHN3aXRoKCRvcHBbJ3NyYyddLCdodHRwOicpIHx8IHN0YXJ0c3dpdGgoJG9wcFsnc3JjJ10sJ2h0dHBzOicpIHx8IHN0YXJ0c3dpdGgoJG9wcFsnc3JjJ10sJ2Z0cDonKSkpIHsKICAgICAgICAgICAgICAgIC8vIG9rYXksIGdvdHRhIGFzc3VtZSB0aGF0IHRocyBpcyBhIHJlbW90ZSBmaWxlCiAgICAgICAgICAgICAgICAvLyBnZXQgaXQsIGFuZCBjYWNoZSBpdC4KICAgICAgICAgICAgICAgICRjYWNoZWZpbGUgPSBUTVBfQ0FDSEVfTE9DQVRJT04uJy9jZ3NpXycubWQ1KCRvcHBbJ3NyYyddKS4nLmltZyc7CiAgICAgICAgICAgICAgICBpZiggIWlzX2ZpbGUoJGNhY2hlZmlsZSkgKSB7CiAgICAgICAgICAgICAgICAgICAgJGRhdGEgPSBAZmlsZV9nZXRfY29udGVudHMoJG9wcFsnc3JjJ10pOwogICAgICAgICAgICAgICAgICAgIGlmKCAkZGF0YSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgZmlsZV9wdXRfY29udGVudHMoJGNhY2hlZmlsZSwkZGF0YSk7CiAgICAgICAgICAgICAgICAgICAgICAgICRzcmNmaWxlID0gJGNhY2hlZmlsZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkc3JjZmlsZSA9ICRjYWNoZWZpbGU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmKCAhJHNyY2ZpbGUgKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCRtb2QtPkxhbmcoJ2Vycm9yX3NyY25vdGZvdW5kJywkb3BwWydzcmMnXSkpOwogICAgICAgICAgICAgICAgcmV0dXJuICRvdXRwOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBnZXQgdGhlIHNvdXJjZSBpbWFnZSBzaXplCiAgICAgICAgICAgICRzcmNpbmZvID0gZ2V0aW1hZ2VzaXplKCRzcmNmaWxlKTsKICAgICAgICAgICAgaWYoICFpc19hcnJheSgkc3JjaW5mbykgfHwgY291bnQoJHNyY2luZm8pIDwgMiApIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJG1vZC0+TGFuZygnZXJyb3Jfc3Jjbm90Zm91bmQnLCRvcHBbJ3NyYyddKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkc3JjaW1nc2l6ZSA9IGFycmF5KCd3aWR0aCc9PiRzcmNpbmZvWzBdLCdoZWlnaHQnPT4kc3JjaW5mb1sxXSk7CiAgICAgICAgICAgICAgICAkbWVtb3J5X25lZWRlZCA9IHJvdW5kKCAkc3JjaW5mb1swXSAqICRzcmNpbmZvWzFdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIChpc3NldCgkc3JjaW5mb1snYml0cyddKT8kc3JjaW5mb1snYml0cyddOjgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIChpc3NldCgkc3JjaW5mb1snY2hhbm5lbHMnXSk/JHNyY2luZm9bJ2NoYW5uZWxzJ106MykgLyA4ICsgNjU1MzUgKTsKICAgICAgICAgICAgICAgIGlmKCAkbW9kLT5HZXRQcmVmZXJlbmNlKCdjaGVja21lbW9yeScsMSkgJiYgIWNnZV91dGlsczo6aGF2ZV9lbm91Z2hfbWVtb3J5KCRtZW1vcnlfbmVlZGVkKSApIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCRtb2QtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudG1lbW9yeScpLic6ICcuKGludCkoJG1lbW9yeV9uZWVkZWQvMTAyNCkuJ2snKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gYXJlIHdlIGF1dG9tYWdpY2FsbHkgcm90YXRpbmc/CiAgICAgICAgICAgIGlmKCAhJG9wcFsnbm9yb3RhdGUnXSAmJiBmdW5jdGlvbl9leGlzdHMoJ2V4aWZfcmVhZF9kYXRhJykgKSB7CiAgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBhbHJlYWR5IGEgcm90YXRlIGZpbHRlciBpbiB0aGUgbGlzdCwgd2Ugd29uJ3Qgb3ZlcnJpZGUgdGhhdC4KICAgICAgICAgICAgICAgICRmbiA9IDA7CiAgICAgICAgICAgICAgICBmb3IoICRmID0gMDsgJGYgPCBjb3VudCgkb3BwWydmaWx0ZXJzJ10pOyAkZisrICkgewogICAgICAgICAgICAgICAgICAgIGlmKCAkb3BwWydmaWx0ZXJzJ11bJGZdWzBdID09ICdDR0ltYWdlX1JvdGF0ZV9GaWx0ZXInICkgewogICAgICAgICAgICAgICAgICAgICAgICAkZm4gPSAxOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYoICRmbiA9PSAwICkgewogICAgICAgICAgICAgICAgICAgIC8vIHdlIGNhbiB0cnkgdG8gcmVhZCB0aGUgZXhpZiBpbmZvcm1hdGlvbiB0byBmaW5kIGFuIG9yaWVudGF0aW9uLgogICAgICAgICAgICAgICAgICAgICRleGlmID0gQGV4aWZfcmVhZF9kYXRhKCRzcmNmaWxlLDAsVFJVRSk7CiAgICAgICAgICAgICAgICAgICAgaWYoIGlzX2FycmF5KCRleGlmKSAmJiBpc3NldCgkZXhpZlsnSUZEMCddKSAmJiBpc3NldCgkZXhpZlsnSUZEMCddWydPcmllbnRhdGlvbiddKSAmJgogICAgICAgICAgICAgICAgICAgICAgICBpc19pbnQoJGV4aWZbJ0lGRDAnXVsnT3JpZW50YXRpb24nXSkgKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3VuZCBhbiBvcmllbnRhdGlvbiwgbm93IHdlIGdvdHRhIGZpZ3VyZSBvdXQgd2hhdCBmaWx0ZXJzIHRvIGFkZC4KICAgICAgICAgICAgICAgICAgICAgICAgJG9yaWVudGF0aW9uID0gKGludCkkZXhpZlsnSUZEMCddWydPcmllbnRhdGlvbiddOwogICAgICAgICAgICAgICAgICAgICAgICAkbmV3X2ZpbHRlcnMgPSBhcnJheSgpOwogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2goICRvcmllbnRhdGlvbiApIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm90aGluZy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBob3Jpem9udGFsIGZsaXAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmV3X2ZpbHRlcnNbXSA9IGFycmF5KCdDR0ltYWdlX0ZsaXBfRmlsdGVyJywwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByb3RhdGUgMTgwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmV3X2ZpbHRlcnNbXSA9IGFycmF5KCdDR0ltYWdlX1JvdGF0ZV9GaWx0ZXInLGFycmF5KDE4MCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuZXdfZmlsdGVyc1tdID0gYXJyYXkoJ0NHSW1hZ2VfRmxpcF9GaWx0ZXInLDEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuZXdfZmlsdGVyc1tdID0gYXJyYXkoJ0NHSW1hZ2VfRmxpcF9GaWx0ZXInLDEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5ld19maWx0ZXJzW10gPSBhcnJheSgnQ0dJbWFnZV9Sb3RhdGVfRmlsdGVyJyxhcnJheSg5MCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuZXdfZmlsdGVyc1tdID0gYXJyYXkoJ0NHSW1hZ2VfUm90YXRlX0ZpbHRlcicsYXJyYXkoOTApKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmV3X2ZpbHRlcnNbXSA9IGFycmF5KCdDR0ltYWdlX0ZsaXBfRmlsdGVyJywwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuZXdfZmlsdGVyc1tdID0gYXJyYXkoJ0NHSW1hZ2VfUm90YXRlX0ZpbHRlcicsYXJyYXkoOTApKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDg6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmV3X2ZpbHRlcnNbXSA9IGFycmF5KCdDR0ltYWdlX1JvdGF0ZV9GaWx0ZXInLGFycmF5KC05MCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICRvcHBbJ2ZpbHRlcnMnXSA9IGFycmF5X21lcmdlKCRuZXdfZmlsdGVycywkb3BwWydmaWx0ZXJzJ10pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gZG9pbmcgcmVzcG9uc2l2ZSBpbWFnZXMuLi4gZ2V0IGRldmljZSB3aWR0aCBhbmQgaGVpZ2h0LgogICAgICAgICAgICAvLyBzZXQgaXQgaW50byBtYXhfd2lkdGggYW5kIG1heF9oZWlnaHQKICAgICAgICAgICAgJGRldmljZV9jYXBzID0gbnVsbDsKICAgICAgICAgICAgaWYoICEkb3BwWydub3Jlc3BvbnNpdmUnXSApIHsKICAgICAgICAgICAgICAgICRkZXZpY2VfY2FwcyA9IHNlbGY6OmdldF9kZXZpY2VfY2FwYWJpbGl0aWVzKCk7CgogICAgICAgICAgICAgICAgaWYoICEkZGV2aWNlX2NhcHMgJiYgJG1vZC0+R2V0UHJlZmVyZW5jZSgnYXNzdW1lX3Jlc3BvbnNpdmUnKSApIHsKICAgICAgICAgICAgICAgICAgICAvLyBpZiBhc3N1bWUgcmVzcG9uc2l2ZSBpcyBlbmFibGVkLiAgd2UgYXJlIGFzc3VtaW5nIHRoYXQgYSBjb29raWUgd2lsbCBiZSBwcmVzZW50IHByb3ZpZGluZyBkZXZpY2UgY2FwYWJpbGl0aWVzLi4uCiAgICAgICAgICAgICAgICAgICAgLy8gaWYgd2UgY291bGQgbm90IGZpbmQgdGhlIGNvb2tpZSB0aGVuIG91dHB1dCBub3RoaW5nIHNvIHRoYXQgd2UgZG8gbm90IGRvIHJlZHVuZGFudCBpbWFnZSBwcm9jZXNzaW5nLgogICAgICAgICAgICAgICAgICAgIC8vIHRoZSBuZXh0IHJlcXVlc3Qgd2lsbCBoYXZlIHRoZSBkZXZpY2UgY2FwYWJpbGl0aWVzICh0aGUgamF2YXNjcmlwdCB0aGF0IGdlbmVyYXRlcyB0aGUgY29va2llIGZvcmNlcyBhIHJlbG9hZCBpZiBpdCBoYXMgdG8gc2V0IHRoZSBjb29raWUpCiAgICAgICAgICAgICAgICAgICAgJG91dHBbJ291dHB1dCddID0gJzwhLS0gQ0dTbWFydEltYWdlIHByb2Nlc3Npbmcgc3RvcHBlZCBiZWNhdXNlIG9mIGFzc3VtZV9yZXNwb25zaXZlIHByZWZlcmVuY2UgYW5kIG5vIGRldmljZSBjYXBhYmlsaXRpZXMgZm91bmQgLS0+JzsKICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIHdheSBiZXR0ZXIgdGhhbiBhIGdvdG8uCiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxDR1NJU3RvcEhlcmVFeGNlcHRpb24oJ2ZvcmNlX3Jlc3BvbnNpdmUgZW5hYmxlZCcpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmKCBpc19hcnJheSgkZGV2aWNlX2NhcHMpICYmIGlzc2V0KCRkZXZpY2VfY2Fwc1snd2lkdGgnXSkgJiYgaXNzZXQoJGRldmljZV9jYXBzWydoZWlnaHQnXSkgKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gd2UgZm91bmQgZGV2aWNlIGNhcGFiaWxpdGllcy4KICAgICAgICAgICAgICAgICAgICAkZHByID0gbWF4KDEsXGNnZV9wYXJhbTo6Z2V0X2ludCgkZGV2aWNlX2NhcHMsJ2RwcicsMSkpOwoKICAgICAgICAgICAgICAgICAgICAvLyB3ZSBoYXZlIHRvIGRvIGF1dG8tc2NhbGluZyBub3csIHJlc3BvbnNpdmUgc3R1ZmYgdHJ1bXBzIHRoZSBzZXR0aW5nLgogICAgICAgICAgICAgICAgICAgICRvcHBbJ25vYXV0b3NjYWxlJ10gPSAwOwoKICAgICAgICAgICAgICAgICAgICAvLyBtZXJnZSB0aGF0IGRhdGEgd2l0aCBhbnkgbWF4X3dpZHRoIGFuZCBtYXhfaGVpZ2h0IHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gc3VwcGxpZWQuCiAgICAgICAgICAgICAgICAgICAgJG9wcFsnZF9tYXhfd2lkdGgnXSA9IChpbnQpICRkZXZpY2VfY2Fwc1snd2lkdGgnXTsKICAgICAgICAgICAgICAgICAgICAkb3BwWydkX21heF9oZWlnaHQnXSA9IChpbnQpICRkZXZpY2VfY2Fwc1snaGVpZ2h0J107CgogICAgICAgICAgICAgICAgICAgIC8vIGV4cGVyaW1lbnRhbC4uLiBjaGVjayBmb3IgYnJlYWtwb2ludHMKICAgICAgICAgICAgICAgICAgICAvLyBhbmQgaWYgYSBicmVha3BvaW50IGNhbiBiZSBmb3VuZCwgZnVydGhlciBhZGp1c3QgdGhlIG1heF93aWR0aCBhbmQgbWF4X2hlaWdodCBwYXJhbXMKICAgICAgICAgICAgICAgICAgICBpZiggKCR0bXAgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZXNwb25zaXZlX2JyZWFrcG9pbnRzJykpICAmJiAhJG9wcFsnbm9icmVha3BvaW50cyddICkgewogICAgICAgICAgICAgICAgICAgICAgICAkdG1wID0gZXhwbG9kZSgnLCcsJHRtcCk7CiAgICAgICAgICAgICAgICAgICAgICAgICRicCA9IGFycmF5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0bXApOyAkaSsrICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHQxID0gKGludCl0cmltKCR0bXBbJGldKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAkdDEgPiAwICkgJGJwW10gPSAkdDE7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBjb3VudCgkYnApICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSB2YWxpZCBicmVha3BvaW50cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZpbmQgdGhlIG1vc3Qgc3VpdGFibGUgb25lIGdpdmVuIG91ciBtYXggcmVzb2x1dGlvbi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzb3J0KCRicCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbHZhbCA9IG1heCgkb3BwWydkX21heF93aWR0aCddLCRvcHBbJ2RfbWF4X2hlaWdodCddKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciggJGkgPSBjb3VudCgkYnApLTE7ICRpID4gMDsgJGktLSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggJGJwWyRpXSA+ICRsdmFsICkgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCgkbWF4X3csJG1heF9oKSA9IHNlbGY6Ol9hZGp1c3Rfc2l6ZXNfdG9fYXNwZWN0X3JhdGlvKCRzcmNpbWdzaXplWyd3aWR0aCddLCRzcmNpbWdzaXplWydoZWlnaHQnXSwkYnBbJGldKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvcHBbJ2RfbWF4X3dpZHRoJ10gPSAoaW50KSAkbWF4X3c7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb3BwWydkX21heF9oZWlnaHQnXSA9IChpbnQpICRtYXhfaDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYoICEkb3BwWydub2F1dG9zY2FsZSddICkgewogICAgICAgICAgICAgICAgJGRlc3RpbWdzaXplWyd3aWR0aCddID0gc2VsZjo6X21pbl9ub3QwKCRzcmNpbWdzaXplWyd3aWR0aCddLCRvcHBbJ21heF93aWR0aCddLCRvcHBbJ2RfbWF4X3dpZHRoJ10sJG91dHBbJ3dpZHRoJ10pOwogICAgICAgICAgICAgICAgJGRlc3RpbWdzaXplWydoZWlnaHQnXSA9IHNlbGY6Ol9taW5fbm90MCgkc3JjaW1nc2l6ZVsnaGVpZ2h0J10sJG9wcFsnbWF4X2hlaWdodCddLCRvcHBbJ2RfbWF4X2hlaWdodCddLCRvdXRwWydoZWlnaHQnXSk7CgogICAgICAgICAgICAgICAgJGRvbWluYW50ID0gbnVsbDsKICAgICAgICAgICAgICAgIGlmKCAkb3BwWydtYXhfd2lkdGgnXSB8fCAkb3V0cFsnd2lkdGgnXSApICRkb21pbmFudCA9ICgkZG9taW5hbnQpID8gJ2InIDogJ3gnOwogICAgICAgICAgICAgICAgaWYoICRvcHBbJ21heF9oZWlnaHQnXSB8fCAkb3V0cFsnaGVpZ2h0J10gKSAkZG9taW5hbnQgPSAoJGRvbWluYW50KSA/ICdiJyA6ICd5JzsKICAgICAgICAgICAgICAgIGlmKCAkZG9taW5hbnQgPT0gJ2InICkgJGRvbWluYW50ID0gKCRkZXN0aW1nc2l6ZVsnd2lkdGgnXSA8ICRkZXN0aW1nc2l6ZVsnaGVpZ2h0J10pID8gJ3gnIDogJ3knOwoKICAgICAgICAgICAgICAgICRhc3BlY3RfcmF0aW8gPSAkc3JjaW1nc2l6ZVsnd2lkdGgnXSAvICRzcmNpbWdzaXplWydoZWlnaHQnXTsKICAgICAgICAgICAgICAgIHN3aXRjaCggJGRvbWluYW50ICkgewogICAgICAgICAgICAgICAgY2FzZSAneCc6IC8qIHggaXMgZG9taW5hbnQgKi8KICAgICAgICAgICAgICAgICAgICAvLyBhZGp1c3QgdG8geCBkaW1lbnNpb24sIHJldGFpbiBhc3BlY3QgcmF0aW8KICAgICAgICAgICAgICAgICAgICAkZGVzdGltZ3NpemVbJ2hlaWdodCddID0gKGludCkoJGRlc3RpbWdzaXplWyd3aWR0aCddIC8gJGFzcGVjdF9yYXRpbyk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICd5JzogLyogeSBpcyBkb21pbmFudCAqLwogICAgICAgICAgICAgICAgICAgIC8vIGFkanVzdCB0byB5IGRpbWVuc2lvbiwgcmV0YWluIGFzcGVjdCByYXRpbwogICAgICAgICAgICAgICAgICAgICRkZXN0aW1nc2l6ZVsnd2lkdGgnXSA9IChpbnQpKCRkZXN0aW1nc2l6ZVsnaGVpZ2h0J10gKiAkYXNwZWN0X3JhdGlvKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiggJGRldmljZV9jYXBzICYmICEkb3BwWydub2RwcmFkanVzdCddICYmIGlzc2V0KCRkZXZpY2VfY2Fwc1snZHByJ10pICYmICRkZXZpY2VfY2Fwc1snZHByJ10gPiAxICkgewogICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgd2lsbCBhZGp1c3QgdGhlIGRlc3RpbmF0aW9uIHdpZHRoIGFuZCBoZWlnaHQgYmFzZWQgb24gZHByCiAgICAgICAgICAgICAgICAgICAgJHRtcCA9ICRkZXN0aW1nc2l6ZTsKICAgICAgICAgICAgICAgICAgICAkdG1wWyd3aWR0aCddICo9ICRkcHI7CiAgICAgICAgICAgICAgICAgICAgJHRtcFsnaGVpZ2h0J10gKj0gJGRwcjsKICAgICAgICAgICAgICAgICAgICBpZiggJHRtcFsnd2lkdGgnXSA8PSAkc3JjaW1nc2l6ZVsnd2lkdGgnXSAmJiAkdG1wWydoZWlnaHQnXSA8PSAkc3JjaW1nc2l6ZVsnaGVpZ2h0J10gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldGFpbiB0aGUgb3JpZ2luYWwgc2l6ZSBvZiB0aGUgaW1hZ2UgaW4gdGhlIHdpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvZiB0aGUgaW1nIHRhZwogICAgICAgICAgICAgICAgICAgICAgICAvLyBidXQgZm9yIGhpZ2hlciBkcHIgZGV2aWNlcyBnZW5lcmF0ZSBhIGJpZ2dlciBpbWFnZS4KICAgICAgICAgICAgICAgICAgICAgICAgJG91dHBbJ3dpZHRoJ10gPSAkZGVzdGltZ3NpemVbJ3dpZHRoJ107CiAgICAgICAgICAgICAgICAgICAgICAgICRvdXRwWydoZWlnaHQnXSA9ICRkZXN0aW1nc2l6ZVsnaGVpZ2h0J107CiAgICAgICAgICAgICAgICAgICAgICAgICRvcHBbJ25vYXV0byddID0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgJGRlc3RpbWdzaXplID0gJHRtcDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHdlJ3JlIGFjdHVhbGx5IGRvaW5nIHNvbWV0aGluZwogICAgICAgICAgICAgICAgaWYoICRkZXN0aW1nc2l6ZSAhPSAkc3JjaW1nc2l6ZSApIHsKICAgICAgICAgICAgICAgICAgICBzd2l0Y2goc3RydG9sb3dlcigkb3BwWydhdXRvc2NhbGVfb3AnXSkpIHsKICAgICAgICAgICAgICAgICAgICBjYXNlICdyZXNpemUnOgogICAgICAgICAgICAgICAgICAgICAgICAkZmlsdGVyID0gJ0NHSW1hZ2VfUmVzaXplX0ZpbHRlcic7CiAgICAgICAgICAgICAgICAgICAgICAgICR0bXAgPSAkZGVzdGltZ3NpemU7CiAgICAgICAgICAgICAgICAgICAgICAgICR0bXBbJ3Jlc2FtcGxlJ10gPSAxOwogICAgICAgICAgICAgICAgICAgICAgICAkbGFzdGZpbHRlciA9IGFycmF5KCRmaWx0ZXIsJHRtcCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICBjYXNlICdjcm9wdG9maXQnOgogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICRmaWx0ZXIgPSAnQ0dJbWFnZV9Dcm9wdG9maXRfRmlsdGVyJzsKICAgICAgICAgICAgICAgICAgICAgICAgJHRtcCA9ICRkZXN0aW1nc2l6ZTsKICAgICAgICAgICAgICAgICAgICAgICAgJHRtcFsnbG9jJ10gPSAnYyc7CiAgICAgICAgICAgICAgICAgICAgICAgICR0bXBbJ3Vwc2NhbGUnXSA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICRsYXN0ZmlsdGVyID0gYXJyYXkoJGZpbHRlciwkdG1wKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZiggISRvcHBbJ25vYXV0byddICkgewogICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBhcmUgYWxsb3dpbmcgYXV0byB0YWdzLi4uIHNvIHdlIGFkanVzdCB0aGUgb3V0cCBzdHVmZiB0byBvdXIgZmluaXNoZWQgcmVzb2x1dGlvbgogICAgICAgICAgICAgICAgICAgICAgICAkb3V0cFsnd2lkdGgnXSA9ICRkZXN0aW1nc2l6ZVsnd2lkdGgnXTsKICAgICAgICAgICAgICAgICAgICAgICAgJG91dHBbJ2hlaWdodCddID0gJGRlc3RpbWdzaXplWydoZWlnaHQnXTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCgogICAgICAgICAgICAvLwogICAgICAgICAgICAvLyBjaGVjayBpZiB3ZSBhcmUgYWN0dWFsbHkgZG9pbmcgYW55dGhpbmcKICAgICAgICAgICAgLy8KCiAgICAgICAgICAgIC8vIGlmIHdlIGFyZSBmb3JjaW5nIGEgdHlwZSBhbmQgdGhhdCB0eXBlIGlzIG5vdCB0aGUgc2FtZSBhcyBvdXIgY3VycmVudCB0eXBlLgogICAgICAgICAgICBpZiggJG9wcFsnZm9yY2VfdHlwZSddICkgewogICAgICAgICAgICAgICAgJHRtcF9hID0gc2VsZjo6cGFyc2VfdHlwZSgkb3BwWydmb3JjZV90eXBlJ10pOwogICAgICAgICAgICAgICAgaWYoICR0bXBfYSAhPSAkc3JjaW5mb1snbWltZSddICkgJHdhbnRfdHJhbnNmb3JtID0gMTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gaWYgd2UgZ290IHRoZSBpbWFnZSBmcm9tIGEgcmVtb3RlIGxvY2F0aW9uLCBidXQgdGhlcmUgYXJlIG5vIG90aGVyIGZpbHRlcnMsIHdlIHdpbGwgZG8gYSBzaW1wbGUgdHJhbnNmb3JtCiAgICAgICAgICAgIGlmKCAhJHJlbGF0aXZlX3RvICkgewogICAgICAgICAgICAgICAgJHdhbnRfdHJhbnNmb3JtID0gMTsKICAgICAgICAgICAgICAgIGlmKCAhY291bnQoJG9wcFsnZmlsdGVycyddKSApIHsKICAgICAgICAgICAgICAgICAgICAkZmlsdGVyID0gJ0NHSW1hZ2VfTk9PUF9GaWx0ZXInOwogICAgICAgICAgICAgICAgICAgICRvcHBbJ2ZpbHRlcnMnXVtdID0gYXJyYXkoJGZpbHRlcixhcnJheSgpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gaWYgd2UgaGF2ZSBhIGxhc3QgZmlsdGVyLi4uIGFkZCBpdC4KICAgICAgICAgICAgaWYoICRsYXN0ZmlsdGVyICkgJG9wcFsnZmlsdGVycyddW10gPSAkbGFzdGZpbHRlcjsKCiAgICAgICAgICAgIC8vIGlmIHRoZXJlIGFyZSBhbnkgZmlsdGVycy4uLiB0aGVuIHdlIGhhdmUgdG8gdHJhbnNmb3JtIHRoaXMgaW1hZ2UKICAgICAgICAgICAgaWYoIGNvdW50KGFycmF5X2tleXMoJG9wcFsnZmlsdGVycyddKSkgKSAkd2FudF90cmFuc2Zvcm0gPSAxOwoKCiAgICAgICAgICAgIC8vCiAgICAgICAgICAgIC8vIGVuZCBvZiBzbWFydG5lc3Mgc3R1ZmYuLi4gbm93IGJlZ2luIHRoZSB3b3JrCiAgICAgICAgICAgIC8vCiAgICAgICAgICAgIGlmKCAkd2FudF90cmFuc2Zvcm0gKSB7CiAgICAgICAgICAgICAgICAvLyBjYWxjdWxhdGUgb3VyIGRlc3RpbmF0aW9uIG5hbWUgYW5kIHVybC4KICAgICAgICAgICAgICAgICR0bXAgPSBiYXNlbmFtZSgkc3JjZmlsZSk7CiAgICAgICAgICAgICAgICBpZiggIWlzc2V0KCRvdXRwWydhbHQnXSkgKSAkb3V0cFsnYWx0J10gPSAkdG1wOwogICAgICAgICAgICAgICAgJGV4dCA9IHN0cnJjaHIoJHRtcCwnLicpOwogICAgICAgICAgICAgICAgJHQyID0gbWQ1KHNlcmlhbGl6ZSgkb3BwKSk7CiAgICAgICAgICAgICAgICAvLyAkdDIgLj0gJy0nLm11bmdlX3N0cmluZ190b191cmwoJHRtcCk7IGFkZCBmaWxlbmFtZSBzdHVmZgogICAgICAgICAgICAgICAgJGRlc3RuYW1lID0gJ2ltZy0nLiR0MjsKICAgICAgICAgICAgICAgICR0MyA9IHNlbGY6OnBhcnNlX3R5cGUoKCRvcHBbJ2ZvcmNlX3R5cGUnXSk/JG9wcFsnZm9yY2VfdHlwZSddOiRzcmNpbmZvWydtaW1lJ10pOwogICAgICAgICAgICAgICAgaWYoICRvcHBbJ2ZvcmNlX2V4dCddICkgJGRlc3RuYW1lIC49IHNlbGY6OmdldF9leHRlbnNpb24oJHQzKTsKCiAgICAgICAgICAgICAgICAkZGVzdGRpciA9ICRtb2QtPmdldF9jYWNoZV9wYXRoKCk7CiAgICAgICAgICAgICAgICBpZiggIWlzX2RpcigkZGVzdGRpcikgKSB7CiAgICAgICAgICAgICAgICAgICAgQG1rZGlyKCRkZXN0ZGlyLCAwNzc3LCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICB0b3VjaCgkZGVzdGRpci4nL2luZGV4Lmh0bWwnKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiggIWlzX2RpcigkZGVzdGRpcikgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCRtb2QtPkxhbmcoJ2Vycm9yX21rZGlyJywkZGVzdGRpcikpOwoKICAgICAgICAgICAgICAgIC8vIHNlZSBpZiBpdCBleGlzdHMKICAgICAgICAgICAgICAgICRkZXN0X2ZuYW1lID0gJGRlc3RkaXIuJy8nLiRkZXN0bmFtZTsKCiAgICAgICAgICAgICAgICAkZGVzdF91cmwgPSAkbW9kLT5nZXRfY2FjaGVkX2ltYWdlX3VybCgkZGVzdG5hbWUpOwogICAgICAgICAgICAgICAgJHQxID0gZmlsZW10aW1lKCRzcmNmaWxlKTsKICAgICAgICAgICAgICAgICR0MiA9IGlzX2ZpbGUoJGRlc3RfZm5hbWUpID8gZmlsZW10aW1lKCRkZXN0X2ZuYW1lKSA6IDA7CiAgICAgICAgICAgICAgICBpZiggIWlzX2ZpbGUoJGRlc3RfZm5hbWUpIHx8ICgoJHQyIDwgJHQxKSAmJiAhJG9wcFsnbm90aW1lY2hlY2snXSkgfHwgJG9wcFsnb3ZlcndyaXRlJ10gICkgJGRvX3RyYW5zZm9ybSA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAvLyBubyB0cmFuc29mbXJhdGlvbi4uLiBqdXN0IHVzZSB0aGUgc3JjIGltYWdlCiAgICAgICAgICAgICAgICAvLyBidXQgbWFrZSBpdCBpbnRvIGFuIGFic29sdXRlIFVSTAogICAgICAgICAgICAgICAgJGRlc3RfZm5hbWUgPSAkc3JjZmlsZTsKICAgICAgICAgICAgICAgIHN3aXRjaCggJHJlbGF0aXZlX3RvICkgewogICAgICAgICAgICAgICAgY2FzZSAncm9vdCc6CiAgICAgICAgICAgICAgICAgICAgJF9zcmMgPSAkc3JjZmlsZTsKICAgICAgICAgICAgICAgICAgICBpZiggc3RhcnRzd2l0aCgkX3NyYywkY29uZmlnWydyb290X3BhdGgnXSkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRfc3JjID0gc3Vic3RyKCRfc3JjLHN0cmxlbigkY29uZmlnWydyb290X3BhdGgnXSkpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkZGVzdF91cmwgPSAkY29uZmlnWydyb290X3VybCddLiRfc3JjOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAndXBsb2Fkcyc6CiAgICAgICAgICAgICAgICAgICAgJF9zcmMgPSAkc3JjZmlsZTsKICAgICAgICAgICAgICAgICAgICBpZiggc3RhcnRzd2l0aCgkc3JjZmlsZSwkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRfc3JjID0gc3Vic3RyKCRzcmNmaWxlLHN0cmxlbigkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSkpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkZGVzdF91cmwgPSAkY29uZmlnWyd1cGxvYWRzX3VybCddLiRfc3JjOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiggJGRvX3RyYW5zZm9ybSApIHsKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgLy8gbG9hZCB0aGUgaW1hZ2UuCiAgICAgICAgICAgICAgICAgICAgJGltZyA9IG5ldyBDR0ltYWdlQmFzZSgkc3JjZmlsZSk7CgogICAgICAgICAgICAgICAgICAgIC8vIHByb2Nlc3MgZmlsdGVycwogICAgICAgICAgICAgICAgICAgICRpID0gMDsKICAgICAgICAgICAgICAgICAgICB3aGlsZSggJGkgPCBjb3VudCgkb3BwWydmaWx0ZXJzJ10pICkgewogICAgICAgICAgICAgICAgICAgICAgICAkZmlsdGVyID0gJG9wcFsnZmlsdGVycyddWyRpXVswXTsKICAgICAgICAgICAgICAgICAgICAgICAgJGZpbHRlcl9vYmogPSBuZXcgJGZpbHRlcigkb3BwWydmaWx0ZXJzJ11bJGldWzFdKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGltZyA9ICRmaWx0ZXJfb2JqLT50cmFuc2Zvcm0oJGltZyk7CiAgICAgICAgICAgICAgICAgICAgICAgICRpbWdbJ2RpcnR5J10gPSAxOyAvLyBmb3JjZSB0aGUgaW1hZ2UgZGlydHksIGp1c3Qgc28gdGhhdCB3ZSBjYW4gc2F2ZSBpdC4KICAgICAgICAgICAgICAgICAgICAgICAgJGkrKzsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIC8vIGNoZWNrIHNvbWUgc3R1ZmYKICAgICAgICAgICAgICAgICAgICBpZiggJG9wcFsnbm9hdXRvJ10gPT0gMCAmJiAoKCRvdXRwWyd3aWR0aCddICYmICRpbWdbJ3dpZHRoJ10gPCAkb3V0cFsnd2lkdGgnXSkgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCRvdXRwWydoZWlnaHQnXSAmJiAkaW1nWydoZWlnaHQnXSA8ICRvdXRwWydoZWlnaHQnXSkpICkgewogICAgICAgICAgICAgICAgICAgICAgICAvLyB1c2VyIHNwZWNpZmllZCBhIHdpZHRoLCBhbmQvb3IgaGVpZ2h0Li4uYnV0IHRoZXkgYXJlIHNtYWxsZXIgdGhhbiB0aGUgb3V0cHV0IG9mIHRoZSBmaWx0ZXJpbmcuCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgd2lsbCBlbnN1cmUgdGhhdCB0aGUgdGFnIHdpbGwgbWF0Y2ggdGhlIGltYWdlLgogICAgICAgICAgICAgICAgICAgICAgICAkb3V0cFsnd2lkdGgnXSA9ICRpbWdbJ3dpZHRoJ107CiAgICAgICAgICAgICAgICAgICAgICAgICRvdXRwWydoZWlnaHQnXSA9ICRpbWdbJ2hlaWdodCddOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHdyaXRlIHRoZSB0aGluZy4KICAgICAgICAgICAgICAgICAgICBpZiggaXNfb2JqZWN0KCRpbWcpICkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiggJG9wcFsnZm9yY2VfdHlwZSddICkgJGltZ1sndHlwZSddID0gc2VsZjo6cGFyc2VfdHlwZSgkb3BwWydmb3JjZV90eXBlJ10pOwogICAgICAgICAgICAgICAgICAgICAgICBpZiggJGltZ1snZGlydHknXSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnX3RvX2xvZygnc2F2aW5nIGltYWdlIHRvICcuJGRlc3RfZm5hbWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltZy0+c2F2ZSgkZGVzdF9mbmFtZSwkb3BwWydxdWFsaXR5J10sJG9wcFsncHJvZ3Jlc3NpdmUnXSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb3V0cFsnZGVzdF9maWxlJ10gPSAkZGVzdF9mbmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgICAgICAgICAgYXVkaXQoJycsJ0NHU21hcnRJbWFnZScsJ0Vycm9yIGVuY291bnRlcmVkIG9uICcuJG9wcFsnc3JjJ10uJzogJy4kZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICAgICAgICAgICAgICB0aHJvdyAkZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSAvLyBpZgoKICAgICAgICAgICAgLy8gbm93LCB3ZSBoYXZlIGEgY2FjaGVkIGZpbGVuYW1lIC4uLiBuZWVkIHRvIGdldCBpdHMgZGltZW5zaW9ucy4KICAgICAgICAgICAgLy8gYW5kIG1ha2Ugc3VyZSB0aGF0IHdlJ3JlIG5ldmVyIG91dHB1dHRpbmcgYW55dGhpbmcgYmlnZ2VyIHRoYW4gdGhlIGNhY2hlZCBkaW1lbnNpb25zCiAgICAgICAgICAgIC8vIHVubGVzcyBub2F1dG8gaXMgc2V0CiAgICAgICAgICAgIGlmKCAkb3BwWydub2F1dG8nXSA9PSAwICkgewogICAgICAgICAgICAgICAgaWYoICgkb3V0cFsnd2lkdGgnXSAmJiAkc3JjaW1nc2l6ZVsnd2lkdGgnXSA8ICRvdXRwWyd3aWR0aCddKSB8fCAoJG91dHBbJ2hlaWdodCddICYmICRzcmNpbWdzaXplWydoZWlnaHQnXSA8ICRvdXRwWydoZWlnaHQnXSkgKSB7CiAgICAgICAgICAgICAgICAgICAgJG91dHBbJ3dpZHRoJ10gPSAkdF93aWR0aDsKICAgICAgICAgICAgICAgICAgICAkb3V0cFsnaGVpZ2h0J10gPSAkdF9oZWlnaHQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIGF0IHRoaXMgcG9pbnQsIHdlJ3JlIHJlYWR5IHRvIGhhbmRsZSBidWlsZGluZyB0aGUgdGFnLgogICAgICAgICAgICBpZiggJG9wcFsnbm9iY2FjaGUnXSApICRkZXN0X3VybCAuPSAnP3g9Jy50aW1lKCk7CgogICAgICAgICAgICBpZiggIWlzc2V0KCRvdXRwWydhbHQnXSkgKSB7CiAgICAgICAgICAgICAgICBpZiggJGRlc3RfZm5hbWUgKSB7CiAgICAgICAgICAgICAgICAgICAgJG91dHBbJ2FsdCddID0gYmFzZW5hbWUoJGRlc3RfZm5hbWUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSBpZiggJHNyY2ZpbGUgKSB7CiAgICAgICAgICAgICAgICAgICAgJG91dHBbJ2FsdCddID0gYmFzZW5hbWUoJHNyY2ZpbGUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJG91dHBbJ2FsdCddID0gYmFzZW5hbWUoJG9wcFsnc3JjJ10pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBidWlsZCB0aGUgb3V0cHV0LgogICAgICAgICAgICBpZiggJG9wcFsnbm90YWcnXSB8fCBzZWxmOjpfaXNfc3R5bGVzaGVldCgpICkgewogICAgICAgICAgICAgICAgJG91dHBbJ3NyYyddID0gJGRlc3RfdXJsOwogICAgICAgICAgICAgICAgaWYoICEkb3BwWydub2VtYmVkJ10gJiYgJG1vZC0+Y2FuX2VtYmVkKCRkZXN0X2ZuYW1lKSApIHsKICAgICAgICAgICAgICAgICAgICAkdHlwZSA9IGNnZV91dGlsczo6Z2V0X21pbWVfdHlwZSgkZGVzdF9mbmFtZSk7CiAgICAgICAgICAgICAgICAgICAgaWYoICR0eXBlICYmICR0eXBlICE9ICd1bmtub3duJyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHRtcCA9IGJhc2U2NF9lbmNvZGUoZmlsZV9nZXRfY29udGVudHMoJGRlc3RfZm5hbWUpKTsKICAgICAgICAgICAgICAgICAgICAgICAgJG91dHBbJ3NyYyddID0gJ2RhdGE6Jy4kdHlwZS4nO2Jhc2U2NCwnLiR0bXA7CiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2V0KCR0bXApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRvdXRwWydzcmMnXSA9ICRkZXN0X3VybDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiggIWlzc2V0KCRvdXRwWydvdXRwdXQnXSkgKSAkb3V0cFsnb3V0cHV0J10gPSAkb3V0cFsnc3JjJ107CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAvLwogICAgICAgICAgICAgICAgLy8gZ290dGEgYnVpbGQgYSB0YWcuCiAgICAgICAgICAgICAgICAvLwogICAgICAgICAgICAgICAgLy8gZ2V0IHRoZSBzcmMgZmlyc3QuCiAgICAgICAgICAgICAgICBpZiggISRvcHBbJ25vZW1iZWQnXSAmJiAkbW9kLT5jYW5fZW1iZWQoJGRlc3RfZm5hbWUpICkgewogICAgICAgICAgICAgICAgICAgICR0eXBlID0gY2dlX3V0aWxzOjpnZXRfbWltZV90eXBlKCRkZXN0X2ZuYW1lKTsKICAgICAgICAgICAgICAgICAgICBpZiggJHR5cGUgJiYgJHR5cGUgIT0gJ3Vua25vd24nICkgewogICAgICAgICAgICAgICAgICAgICAgICAkdG1wID0gYmFzZTY0X2VuY29kZShmaWxlX2dldF9jb250ZW50cygkZGVzdF9mbmFtZSkpOwogICAgICAgICAgICAgICAgICAgICAgICAkb3V0cFsnc3JjJ10gPSAnZGF0YTonLiR0eXBlLic7YmFzZTY0LCcuJHRtcDsKICAgICAgICAgICAgICAgICAgICAgICAgdW5zZXQoJHRtcCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmKCAhaXNzZXQoJG91dHBbJ3NyYyddKSB8fCAhJG91dHBbJ3NyYyddICkgewogICAgICAgICAgICAgICAgICAgIC8vIGZhbGxiYWNrIHRvIHRoZSBkZXN0aW5hdGlvbiB1cmwuCiAgICAgICAgICAgICAgICAgICAgJG91dHBbJ3NyYyddID0gJGRlc3RfdXJsOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmKCAkZGVzdF9mbmFtZSAmJiAhJG9wcFsnbm9hdXRvJ10gKSB7CiAgICAgICAgICAgICAgICAgICAgJGRldGFpbHMgPSBnZXRpbWFnZXNpemUoJGRlc3RfZm5hbWUpOwogICAgICAgICAgICAgICAgICAgIGlmKCBpc19hcnJheSgkZGV0YWlscykgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRvdXRwWyd3aWR0aCddICA9IChpbnQpJGRldGFpbHNbMF07CiAgICAgICAgICAgICAgICAgICAgICAgICRvdXRwWydoZWlnaHQnXSA9IChpbnQpJGRldGFpbHNbMV07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIG5vdyB3ZSBjYW4gYnVpbGQgdGhlIHRhZy4KICAgICAgICAgICAgICAgICRvdXRwdXQgPSAnPGltZyc7CiAgICAgICAgICAgICAgICBmb3JlYWNoKCAkb3V0cCBhcyAka2V5ID0+ICR2YWx1ZSApIHsKICAgICAgICAgICAgICAgICAgICBpZiggISR2YWx1ZSAmJiAka2V5ICE9ICdhbHQnICkgY29udGludWU7IC8vIGVtcHR5IGFsdCBpcyB2YWxpZC4uLiBzdHVwaWQsIGJ1dCB2YWxpZC4KICAgICAgICAgICAgICAgICAgICAkb3V0cHV0IC49ICcgJy4ka2V5Lic9IicuJHZhbHVlLiciJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRvdXRwdXQgLj0gJy8+JzsKICAgICAgICAgICAgICAgICRvdXRwWydvdXRwdXQnXSA9ICRvdXRwdXQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxDR1NJU3RvcEhlcmVFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgIC8vIHdlIHdlcmUgZm9yY2VkIHRvIHN0b3AKICAgICAgICAgICAgaWYoICEkb3V0cFsnb3V0cHV0J10gKSAkb3V0cFsnZXJyb3InXSA9ICdObyBvdXRwdXQgZnJvbSBDR1NJU3RvcEhlcmVFeGNlcHRpb24nOwogICAgICAgIH0KICAgICAgICBjYXRjaCggRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAkb3V0cFsnZXJyb3InXSA9ICRlLT5HZXRNZXNzYWdlKCk7CiAgICAgICAgfQoKICAgICAgICAvLyBoZXJlIHdlJ3JlIGdvbm5hIHJldHVybiBzb21ldGhpbmcKICAgICAgICByZXR1cm4gJG91dHA7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2dzaV9jb252ZXJ0KCRwYXJhbXMsJGNvbnRlbnQsJiRzbWFydHksJHJlcGVhdCkKICAgIHsKICAgICAgICBpZiggISRjb250ZW50ICkgcmV0dXJuOwogICAgICAgICRtYXhfd2lkdGggPSAtMTsKICAgICAgICAkbWF4X2hlaWdodCA9IC0xOwogICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydtYXhfaGVpZ2h0J10pICkgJG1heF9oZWlnaHQgPSBtYXgoMCwoaW50KSRwYXJhbXNbJ21heF9oZWlnaHQnXSk7CiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ21heF93aWR0aCddKSApICRtYXhfd2lkdGggPSBtYXgoMCwoaW50KSRwYXJhbXNbJ21heF93aWR0aCddKTsKCiAgICAgICAgJGRpZF9tb2RpZnkgPSBGQUxTRTsKICAgICAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR1NtYXJ0SW1hZ2UnKTsKICAgICAgICAkb2xkX2Vycm9ydmFsID0gbGlieG1sX3VzZV9pbnRlcm5hbF9lcnJvcnModHJ1ZSk7CiAgICAgICAgJGRvbSA9IG5ldyBDR0RvbURvY3VtZW50KCk7CiAgICAgICAgJGRvbS0+c3RyaWN0RXJyb3JDaGVja2luZyA9IEZBTFNFOwogICAgICAgICRkb20tPnZhbGlkYXRlT25QYXJzZSA9IEZBTFNFOwogICAgICAgIGlmKCBmdW5jdGlvbl9leGlzdHMoJ21iX2NvbnZlcnRfZW5jb2RpbmcnKSApICRjb250ZW50ID0gbWJfY29udmVydF9lbmNvZGluZygkY29udGVudCwgJ0hUTUwtRU5USVRJRVMnLCAnVVRGLTgnKTsKICAgICAgICAkZG9tLT5sb2FkSFRNTCgkY29udGVudCk7CgogICAgICAgICRpbWdzID0gJGRvbS0+R2V0RWxlbWVudHNCeVRhZ05hbWUoJ2ltZycpOwogICAgICAgIGlmKCBpc19vYmplY3QoJGltZ3MpICYmICRpbWdzLT5sZW5ndGggKSB7CiAgICAgICAgICAgIGZvciggJGkgPSAwOyAkaSA8ICRpbWdzLT5sZW5ndGg7ICRpKysgKSB7CiAgICAgICAgICAgICAgICAkbm9kZSA9ICRpbWdzLT5pdGVtKCRpKTsKICAgICAgICAgICAgICAgICRzeGUgPSBzaW1wbGV4bWxfaW1wb3J0X2RvbSgkbm9kZSk7CgogICAgICAgICAgICAgICAgJHBhcm1zID0gJHBhcmFtczsKICAgICAgICAgICAgICAgICRwcm9jZXNzID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGZvcmVhY2goICRzeGUtPmF0dHJpYnV0ZXMoKSBhcyAkbmFtZSA9PiAkdmFsdWUgKSB7CiAgICAgICAgICAgICAgICAgICAgJHZhbHVlID0gKHN0cmluZykkdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgaWYoICR2YWx1ZSA9PSAnJyApIGNvbnRpbnVlOwoKICAgICAgICAgICAgICAgICAgICBzd2l0Y2goICRuYW1lICkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3dpZHRoJzoKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICRtYXhfd2lkdGggPiAwICkgJHZhbHVlID0gbWluKCRtYXhfd2lkdGgsKGludCkkdmFsdWUpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnaGVpZ2h0JzoKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICRtYXhfaGVpZ2h0ID4gMCApICR2YWx1ZSA9IG1pbigkbWF4X2hlaWdodCwoaW50KSR2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICBjYXNlICdjbGFzcyc6CiAgICAgICAgICAgICAgICAgICAgICAgICR3b3JkcyA9IGV4cGxvZGUoJyAnLCR2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBpbl9hcnJheSgnbm9jZ3NpJywkd29yZHMpICkgJHByb2Nlc3MgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICRwYXJtc1skbmFtZV0gPSAkdmFsdWU7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYoICEkcHJvY2VzcyApIGNvbnRpbnVlOyAvLyBmb3VuZCBhIHJlYXNvbiBub3QgZG8gdG8gYW55dGhpbmcgd2l0aCB0aGlzIGltYWdlLgogICAgICAgICAgICAgICAgaWYoICFpc3NldCgkcGFybXNbJ3NyYyddKSApIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJHBhcm1zWydzcmMnXSwnZGF0YTonKSApIGNvbnRpbnVlOyAgIC8vIGFscmVhZHkgZW1iZWRkZWQsIGNhbid0IGRvIGFueXRoaW5nLgoKICAgICAgICAgICAgICAgICRwYXJtc1snbm90YWcnXSA9IDE7CiAgICAgICAgICAgICAgICAkb3V0cCA9IHNlbGY6OnByb2Nlc3NfaW1hZ2UoJHBhcm1zKTsKICAgICAgICAgICAgICAgIGZvcmVhY2goICRvdXRwIGFzICRrZXkgPT4gJHZhbHVlICkgewogICAgICAgICAgICAgICAgICAgICRkaWRfbW9kaWZ5ID0gVFJVRTsKICAgICAgICAgICAgICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnd2lkdGgnOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2hlaWdodCc6CiAgICAgICAgICAgICAgICAgICAgICAgICRzeGVbJGtleV0gPSAoaW50KSAkdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3NyYyc6CiAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZSA9IHRyaW0oJHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICR2YWx1ZSkgJHN4ZVska2V5XSA9IHRyaW0oJHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IC8vIGZvciBlYWNoIGltYWdlCiAgICAgICAgfQoKICAgICAgICAvLyBnZXQgdGhlIGNvbnRlbnRzLgogICAgICAgIGlmKCAkZGlkX21vZGlmeSApIHsKICAgICAgICAgICAgJG5vZGUgPSAkZG9tLT5kb2N1bWVudEVsZW1lbnQ7CiAgICAgICAgICAgICRjb250ZW50ID0gJG5vZGUtPmlubmVySFRNTDsKICAgICAgICAgICAgJGNvbnRlbnQgPSBzdHJfcmVwbGFjZShjaHIoMTMpLCcnLCRjb250ZW50KTsKICAgICAgICAgICAgJGNvbnRlbnQgPSBzdHJfcmVwbGFjZSgnJiMxMzsnLCcnLCRjb250ZW50KTsKICAgICAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJGNvbnRlbnQsJzxodG1sPicpICkgewogICAgICAgICAgICAgICAgJGNvbnRlbnQgPSBzdHJfcmVwbGFjZSgnPGh0bWw+JywnJywkY29udGVudCk7CiAgICAgICAgICAgICAgICAkY29udGVudCA9IHN0cl9yZXBsYWNlKCc8L2h0bWw+JywnJywkY29udGVudCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJGNvbnRlbnQsJzxib2R5PicpICkgewogICAgICAgICAgICAgICAgJGNvbnRlbnQgPSBzdHJfcmVwbGFjZSgnPGJvZHk+JywnJywkY29udGVudCk7CiAgICAgICAgICAgICAgICAkY29udGVudCA9IHN0cl9yZXBsYWNlKCc8L2JvZHk+JywnJywkY29udGVudCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRjb250ZW50OwogICAgfQoKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9kZXZpY2VfY2FwYWJpbGl0aWVzKCkKICAgIHsKICAgICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfQ0dTTUFSVElNQUdFKTsKICAgICAgICBpZiggJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVzcG9uc2l2ZScpICkgewogICAgICAgICAgICAkY29va2llX2VuYyA9IGNtc19jb29raWVzOjpnZXQoY2dzaV91dGlsczo6Z2V0X3Jlc3BvbnNpdmVfY29va2llbmFtZSgpKTsKICAgICAgICAgICAgaWYoICRjb29raWVfZW5jICkgewogICAgICAgICAgICAgICAgJGRhdGEgPSBqc29uX2RlY29kZSgkY29va2llX2VuYyxUUlVFKTsKICAgICAgICAgICAgICAgIHJldHVybiAkZGF0YTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHRyaW1fdG9fZGV2aWNlKCRmbGFnLCR2YWx1ZSkKICAgIHsKICAgICAgICAkZmxhZyA9IHN0cnRvbG93ZXIoJGZsYWcpOwogICAgICAgIGlmKCAkdmFsdWUgPiAwICYmIGlzX2FycmF5KHNlbGY6OiRfZGV2aWNlX2RhdGEpICYmIGlzc2V0KHNlbGY6OiRfZGV2aWNlX2RhdGFbJGZsYWddKSApIHsKICAgICAgICAgICAgcmV0dXJuIG1pbigkdmFsdWUsc2VsZjo6JF9kZXZpY2VfZGF0YVskZmxhZ10pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHZhbHVlOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3RyYW5zcGFyZW50X2NvbG9yKENHSW1hZ2VCYXNlICRpbWcpCiAgICB7CiAgICAgICAgaWYoICRpbWdbJ3RyYW5zcGFyZW50J10gIT0gJycgKSByZXR1cm4gJGltZ1sndHJhbnNwYXJlbnQnXTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGZpbmRfdW51c2VkX2NvbG9yKENHSW1hZ2VCYXNlICRpbWcpCiAgICB7CiAgICAgICAgLy8gZG9udCBoYXZlIGEgdHJhbnNwYXJlbmN5IGNvbG9yLi4uIHNvIGd1ZXNzIG9uZS4KICAgICAgICAvLyBmaW5kIGEgcmFuZG9tIHVudXNlZCBjb2xvciBmb3IgdHJhbnNwYXJlbmN5LgogICAgICAgICRyID0gJGcgPSAkYiA9IDI1NTsKICAgICAgICAkZm91bmQgPSAwOwogICAgICAgIHdoaWxlKCAkZm91bmQgPCAxMDAgKSB7CiAgICAgICAgICAgICRyID0gcmFuZCgwLDI1NSk7CiAgICAgICAgICAgICRnID0gcmFuZCgwLDI1NSk7CiAgICAgICAgICAgICRiID0gcmFuZCgwLDI1NSk7CiAgICAgICAgICAgIGlmKCBpbWFnZWNvbG9yZXhhY3QoJGltZ1sncnNyYyddLCRyLCRnLCRiKSAhPSAtMSApIGJyZWFrOwogICAgICAgICAgICAkZm91bmQrKzsKICAgICAgICB9CgogICAgICAgIGlmKCAkZm91bmQgPT0gNTAgKSBhdWRpdCgnJywnQ0dTbWFydEltYWdlJywnTm8gdW51c2VkIGNvbG9yIGZvdW5kJyk7CiAgICAgICAgcmV0dXJuIGFycmF5KCRyLCRnLCRiKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9yZXNwb25zaXZlX2Nvb2tpZW5hbWUoKQogICAgewogICAgICAgIHJldHVybiAnY2MnLm1kNShfX0ZJTEVfXyk7CiAgICB9Cn0KCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CGSmartImage_ClearCacheTask.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgQ0dTbWFydEltYWdlX0NsZWFyQ2FjaGVUYXNrIGltcGxlbWVudHMgQ21zUmVndWxhclRhc2sKewogICAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gZ2V0X2NsYXNzKCR0aGlzKTsKICAgIH0KCgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9kZXNjcmlwdGlvbigpCiAgICB7CiAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dTbWFydEltYWdlJyk7CiAgICAgICAgcmV0dXJuICRtb2QtPkxhbmcoJ2NsZWFyY2FjaGV0YXNrX2Rlc2NyaXB0aW9uJyk7CiAgICB9CgoKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0KCR0aW1lID0gJycpCiAgICB7CiAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dTbWFydEltYWdlJyk7CiAgICAgICAgJGFnZSA9IChpbnQpJG1vZC0+R2V0UHJlZmVyZW5jZSgnY2FjaGVfYWdlJyk7CiAgICAgICAgaWYoICRhZ2UgPD0gMCApIHJldHVybiBGQUxTRTsKCiAgICAgICAgLy8gd2Ugb25seSBhdHRlbXB0IHRvIGNsZWFyIGNhY2hlZCBmaWxlcyBvbmNlIHBlciBkYXkKICAgICAgICBpZiggISR0aW1lICkgJHRpbWUgPSB0aW1lKCk7CiAgICAgICAgJGxhc3RfZXhlY3V0ZSA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ2NsZWFyY2FjaGVfbGFzdHJ1bicpOwogICAgICAgIGlmKCAoJHRpbWUgLSAyNCo2MCo2MCApID49ICRsYXN0X2V4ZWN1dGUgKSByZXR1cm4gVFJVRTsKICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgoKICAgIHB1YmxpYyBmdW5jdGlvbiBleGVjdXRlKCR0aW1lID0gJycpCiAgICB7CiAgICAgICAgaWYoICEkdGltZSApICR0aW1lID0gdGltZSgpOwoKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIC8vIGNsZWFyIGNhY2hlZCBmaWxlcy4KICAgICAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dTbWFydEltYWdlJyk7CiAgICAgICAgICAgICRuX3JlbW92ZWQgPSAkbW9kLT5jbGVhcl9jYWNoZWRfZmlsZXMoKTsKICAgICAgICAgICAgJG1vZC0+QXVkaXQoJycsJG1vZC0+TGFuZygnYWN0X2NhY2hlY2xlYW5lZCcpLCRtb2QtPkxhbmcoJ21zZ19jYWNoZWNsZWFuZWQnLCRuX3JlbW92ZWQpKTsKICAgICAgICAgICAgcmV0dXJuIFRSVUU7CiAgICAgICAgfQogICAgICAgIGNhdGNoKCBFeGNlcHRpb24gJGUgKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgIH0KICAgIH0KCgogICAgcHVibGljIGZ1bmN0aW9uIG9uX3N1Y2Nlc3MoJHRpbWUgPSAnJykKICAgIHsKICAgICAgICBpZiggISR0aW1lICkgJHRpbWUgPSB0aW1lKCk7CiAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dTbWFydEltYWdlJyk7CiAgICAgICAgJG1vZC0+U2V0UHJlZmVyZW5jZSgnY2xlYXJjYWNoZV9sYXN0cnVuJywkdGltZSk7CiAgICB9CgoKICAgIHB1YmxpYyBmdW5jdGlvbiBvbl9mYWlsdXJlKCR0aW1lID0gJycpCiAgICB7CiAgICAgICAgLy8gbm90aGluZyBoZXJlLgogICAgfQoKfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pgo=]]></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[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMSBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKaWYoIHZlcnNpb25fY29tcGFyZShwaHB2ZXJzaW9uKCksJzUuNC4xMScpIDwgMCApIHsKICAgIHJldHVybiAiTWluaW11bSBQSFAgdmVyc2lvbiBvZiA1LjQuMTEgcmVxdWlyZWQiOwp9CgokY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdlbWJlZF9tb2RlJywnc21hcnQnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2VtYmVkX3NpemUnLDMyKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2VtYmVkX3R5cGUnLCdwbmcsanBnLGdpZicpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1hZ2VfdXJsX2hhc2NhY2hlZGlyJywwKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2NhY2hlX2FnZScsMCk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdyZXNwb25zaXZlJywwKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Byb2dyZXNzaXZlJywwKTsKCiRhbGlhc2VzID0gYXJyYXkoKTsKJGFsaWFzZXNbXSA9IGFycmF5KCduYW1lJz0+J3N0ZF90aHVtYm5haWwnLCdvcHRpb25zJz0+J2ZpbHRlcl93YXRlcm1hcms9MSB3aWR0aD0xNTAgaGVpZ2h0PTE1MCcpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWxpYXNlcycsc2VyaWFsaXplKCRhbGlhc2VzKSk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmKCB2ZXJzaW9uX2NvbXBhcmUocGhwdmVyc2lvbigpLCc1LjQuMTEnKSA8IDAgKSB7CiAgICByZXR1cm4gIk1pbmltdW0gUEhQIHZlcnNpb24gb2YgNS40LjExIHJlcXVpcmVkIjsKfQoKJGNhY2hlX3BhdGggPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY2FjaGVfcGF0aCcpOwokdGVzdCA9IGNtc19qb2luX3BhdGgoJ3VwbG9hZHMnLCdfJy4kdGhpcy0+R2V0TmFtZSgpKTsKaWYoICRjYWNoZV9wYXRoID09ICR0ZXN0IHx8ICRjYWNoZV9wYXRoID09ICd1cGxvYWRzL19DR1NtYXJ0SW1hZ2UnICkgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2NhY2hlX3BhdGgnLCcnKTsKICAgIGF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ0ludmFsaWQgY2FjaGUgcGF0aCByZXNldCB0byB1cGxvYWRzL19DR1NtYXJ0SW1hZ2Ugb24gdXBncmFkZScpOwp9Cj8+]]></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_autoprocessing_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JG1vZC0+TGFuZygnaW5mb19hdXRvcHJvY2Vzc2luZycpfTwvZGl2Pgo8ZGl2PgoKPGRpdiBjbGFzcz0iY19mdWxsIj4KICA8ZGl2IGNsYXNzPSJncmlkXzIiPiZuYnNwOzwvZGl2PgogIDxkaXYgY2xhc3M9ImdyaWRfMTAiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgICB7aWYgJHByZWZzLT5lbmFibGVkfQogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1iZWdpbl9hdXRvcHJvY2VzcyIgdmFsdWU9InskbW9kLT5MYW5nKCdiZWdpbl9hdXRvcHJvY2VzcycpfSIvPgogICAgey9pZn0KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgPGRpdiBjbGFzcz0iZ3JpZF8yIHRleHQtcmlnaHQiPnskbW9kLT5MYW5nKCdhdXRvcHJvY2Vzc19lbmFibGVkJyl9OjwvZGl2PgogIDxkaXYgY2xhc3M9ImdyaWRfMTAiPgogICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1hcF9lbmFibGVkIHNlbGVjdGVkPSRwcmVmcy0+ZW5hYmxlZH0KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgPGRpdiBjbGFzcz0iZ3JpZF8yIHRleHQtcmlnaHQiPnskbW9kLT5MYW5nKCdhdXRvcHJvY2Vzc19pZ25vcmVfZXh0ZW5zaW9ucycpfTo8L2Rpdj4KICA8ZGl2IGNsYXNzPSJncmlkXzEwIj4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWFwX2lnbm9yZV9leHRlbnNpb25zIiB2YWx1ZT0ieyRwcmVmcy0+aWdub3JlX2V4dGVuc2lvbnN9Ii8+CiAgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwiPgogIDxkaXYgY2xhc3M9ImdyaWRfMiB0ZXh0LXJpZ2h0Ij57JG1vZC0+TGFuZygnYXV0b3Byb2Nlc3NfaWdub3JlX2RpcnMnKX06PC9kaXY+CiAgPGRpdiBjbGFzcz0iZ3JpZF8xMCI+CiAgICA8dGV4dGFyZWEgbmFtZT0ieyRhY3Rpb25pZH1hcF9pZ25vcmVfZGlycyIgcm93cz0iNSIgY29scz0iNTAiLz57JHByZWZzLT5pZ25vcmVfZGlyc308L3RleHRhcmVhPgogICAgPGJyLz57JG1vZC0+TGFuZygnaGVscF9hcF9pZ25vcmVfZGlycycpfQogIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIj4KICA8ZGl2IGNsYXNzPSJncmlkXzIgdGV4dC1yaWdodCI+eyRtb2QtPkxhbmcoJ2F1dG9wcm9jZXNzX2luY2x1ZGVfZGlycycpfTo8L2Rpdj4KICA8ZGl2IGNsYXNzPSJncmlkXzEwIj4KICAgIDx0ZXh0YXJlYSBuYW1lPSJ7JGFjdGlvbmlkfWFwX2luY2x1ZGVfZGlycyIgcm93cz0iNSIgY29scz0iNTAiLz57JHByZWZzLT5pbmNsdWRlX2RpcnN9PC90ZXh0YXJlYT4KICAgIDxici8+eyRtb2QtPkxhbmcoJ2hlbHBfYXBfaW5jbHVkZV9kaXJzJyl9CiAgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwiPgogIDxkaXYgY2xhc3M9ImdyaWRfMiB0ZXh0LXJpZ2h0Ij57JG1vZC0+TGFuZygnYXV0b3Byb2Nlc3NfbWF4X3NpemUnKX06PC9kaXY+CiAgPGRpdiBjbGFzcz0iZ3JpZF8xMCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1hcF9tYXhfc2l6ZSIgc2l6ZT0iNSIgbWF4bGVuZ3RoPSI1IiB2YWx1ZT0ieyRwcmVmcy0+bWF4X3NpemV9Ii8+CiAgICA8YnIvPnskbW9kLT5MYW5nKCdoZWxwX2FwX21heF9zaXplJyl9CiAgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwiPgogIDxkaXYgY2xhc3M9ImdyaWRfMiB0ZXh0LXJpZ2h0Ij57JG1vZC0+TGFuZygnYXV0b3Byb2Nlc3NfYXV0b3JvdGF0ZScpfTo8L2Rpdj4KICA8ZGl2IGNsYXNzPSJncmlkXzEwIj4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9YXBfYXV0b3JvdGF0ZSBzZWxlY3RlZD0kcHJlZnMtPmF1dG9yb3RhdGV9CiAgICA8YnIvPnskbW9kLT5MYW5nKCdoZWxwX2FwX2F1dG9yb3RhdGUnKX0KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgPGRpdiBjbGFzcz0iZ3JpZF8yIHRleHQtcmlnaHQiPnskbW9kLT5MYW5nKCdhdXRvcHJvY2Vzc193YXRlcm1hcmsnKX06PC9kaXY+CiAgPGRpdiBjbGFzcz0iZ3JpZF8xMCI+CiAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWFwX3dhdGVybWFyayBzZWxlY3RlZD0kcHJlZnMtPndhdGVybWFya30KICA8L2Rpdj4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2Pgo8L2Rpdj4KeyRmb3JtZW5kfQ==]]></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+TGFuZygncHJvbXB0X2F1dG9zY2FsZV9vcCcpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7JHRtcD1bICdyZXNpemUnPT4gJG1vZC0+TGFuZygncmVzaXplJyksICdjcm9wdG9maXQnID0+ICRtb2QtPkxhbmcoJ2Nyb3B0b2ZpdCcpIF19CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9YXV0b2ZpdF9vcCI+CiAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHRtcCBzZWxlY3RlZD0kYXV0b2ZpdF9vcH0KICAgIDwvc2VsZWN0PgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2F1dG9zY2FsZV9vcCcpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2Nyb3B0b2ZpdF9kZWZhdWx0X2xvYycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y3JvcHRvZml0X2RlZmF1bHRfbG9jIj4KICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kY3JvcHRvZml0X2xvY3Mgc2VsZWN0ZWQ9JGNyb3B0b2ZpdF9kZWZhdWx0X2xvY30KICAgIDwvc2VsZWN0PgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2Nyb3B0b2ZpdF9kZWZhdWx0X2xvYycpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X3Byb2dyZXNzaXZlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9J3Byb2dyZXNzaXZlJyBzZWxlY3RlZD0kcHJvZ3Jlc3NpdmV9CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fcHJvZ3Jlc3NpdmUnKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9mb3JjZV9leHRlbnNpb24nKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT0nZm9yY2VfZXh0ZW5zaW9uJyBzZWxlY3RlZD0kZm9yY2VfZXh0ZW5zaW9ufQogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2ZvcmNlX2V4dGVuc2lvbicpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnbWF4X2NhY2hlX2FnZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jYWNoZV9hZ2UiIHZhbHVlPSJ7JGNhY2hlX2FnZX0iIHNpemU9IjMiIG1heGxlbmd0aD0iMyIvPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jbGVhcl9ub3ciIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2xlYXJfbm93Jyl9Ii8+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNsZWFyX2FsbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjbGVhcl9hbGwnKX0iIG9uY2xpY2s9InJldHVybiBjb25maXJtKCd7JG1vZC0+TGFuZygnYXNrX2NsZWFyX2ltYWdlX2NhY2hlJyl9Jyk7Ii8+CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fY2FjaGVfYWdlJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdjYWNoZV9wYXRoJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhY2hlX3BhdGgiIHZhbHVlPSJ7JGNhY2hlX3BhdGh9IiBzaXplPSI0MCIgbWF4bGVuZ3RoPSIyNTUiLz4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19jYWNoZV9wYXRoJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdpbWFnZV91cmxfcHJlZml4Jyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWltYWdlX3VybF9wcmVmaXgiIHZhbHVlPSJ7JGltYWdlX3VybF9wcmVmaXh9IiBzaXplPSI0MCIgbWF4bGVuZ3RoPSIyNTUiLz4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19pbWFnZV91cmxfcHJlZml4Jyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdpbWFnZV91cmxfaGFzY2FjaGVkaXInKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT0naW1hZ2VfdXJsX2hhc2NhY2hlZGlyJyBzZWxlY3RlZD0kaW1hZ2VfdXJsX2hhc2NhY2hlZGlyfQogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2ltYWdlX3VybF9oYXNjYWNoZWRpcicpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnc3VwcHJlc3NfZXJyb3JzJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9J3NpbGVudCcgc2VsZWN0ZWQ9JHNpbGVudH0KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19zdXBwcmVzc19lcnJvcnMnKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2NoZWNrX21lbW9yeScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPSdjaGVja21lbW9yeScgc2VsZWN0ZWQ9JGNoZWNrbWVtb3J5fQogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2NoZWNrX21lbW9yeScpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8L3A+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_responsive_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnZW5hYmxlX3Jlc3BvbnNpdmUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfXJlc3BvbnNpdmUiPgogICAgICB7Y2dlX3llc25vX29wdGlvbnMgc2VsZWN0ZWQ9JHJlc3BvbnNpdmV9CiAgICA8L3NlbGVjdD4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19yZXNwb25zaXZlJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdhc3N1bWVfcmVzcG9uc2l2ZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9YXNzdW1lX3Jlc3BvbnNpdmUiPgogICAgICB7Y2dlX3llc25vX29wdGlvbnMgc2VsZWN0ZWQ9JGFzc3VtZV9yZXNwb25zaXZlfQogICAgPC9zZWxlY3Q+CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fYXNzdW1lX3Jlc3BvbnNpdmUnKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Jlc3BvbnNpdmVfYnJlYWtwb2ludHMnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9cmVzcG9uc2l2ZV9icmVha3BvaW50cyIgdmFsdWU9InskcmVzcG9uc2l2ZV9icmVha3BvaW50c30iIHNpemU9IjUwIiBtYXhsZW5ndGg9IjI1NSIvPgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX3Jlc3BvbnNpdmVfYnJlYWtwb2ludHMnKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgPC9wPgo8L2Rpdj4KeyRmb3JtZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/responsive.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPntqc21pbn0KeyogdGhpcyBqYXZhc2NyaXB0IHdpbGwgc2V0IGEgY29va2llIHdpdGggdGhlIGRldmljZSBoZWlnaHQsIHdpZHRoLCBhbmQgcGl4ZWwgcmF0aW8gZm9yIHVzZSBpbiBDR1NtYXJ0SW1hZ2UgcmVzcG9uc2l2ZSBpbWFnZSBoYW5kbGluZyAqfQppZiggZG9jdW1lbnQuY29va2llLmluZGV4T2YoJ3skY29va2llbmFtZX0nKSA8IDAgKSB7CiAgdmFyIF9leCA9IG5ldyBEYXRlOwogIF9leC5zZXRGdWxsWWVhcihfZXguZ2V0RnVsbFllYXIoKSArIDEpOwogIHZhciBfZCA9IHt9OwogIF9kLndpZHRoID0gc2NyZWVuLndpZHRoOwogIF9kLmhlaWdodCA9IHNjcmVlbi5oZWlnaHQ7CiAgX2QuZHByID0gd2luZG93LmRldmljZVBpeGVsUmF0aW87CiAgZG9jdW1lbnQuY29va2llID0gInskY29va2llbmFtZX09IitKU09OLnN0cmluZ2lmeShfZCkrIjsgZXhwaXJlcz0nK19leC50b0dNVFN0cmluZygpLic7IHBhdGg9LzsiOwogIGlmKCBkb2N1bWVudC5jb29raWUuaW5kZXhPZigneyRjb29raWVuYW1lfScpID49IDAgKSB7CiAgICB3aW5kb3cuc3RvcCgpOwogICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpOwogIH0KfQp7L2pzbWlufTwvc2NyaXB0Pg==]]></data>
	</file>
</module>
