<?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>SmartImage</name>
	<version>1.0</version>
    <mincmsversion>2.2.9</mincmsversion>
	<help><![CDATA[PHNjcmlwdCBzcmM9Imh0dHA6Ly9sb2NhbGhvc3QvY21zbXMyMjE0bWFtcy9tb2R1bGVzL1NtYXJ0SW1hZ2UvanMvanMuY29va2llLmpzIj48L3NjcmlwdD4KPHNjcmlwdD4KalF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogIHZhciBhY3RpdmVfdGFiID0gQ29va2llcy5nZXQoJ3NpX2FjdGl2ZScpOwoKICBpZih0eXBlb2YgYWN0aXZlX3RhYiA9PT0gInVuZGVmaW5lZCIpCiAgewogICAgX3NldF9hY3RpdmVfdGFiKCdnZW5lcmFsJyk7CiAgfQogIGVsc2UKICB7CiAgICBfc2V0X2FjdGl2ZV90YWIoYWN0aXZlX3RhYik7CiAgfQoKICAkKCcjcGFnZV90YWJzID4gZGl2JykKICAgIC5lYWNoKGZ1bmN0aW9uKCkKICAgIHsKICAgICAgJCh0aGlzKS5jbGljayhmdW5jdGlvbigpCiAgICAgIHsKICAgICAgICBDb29raWVzLnNldCgnc2lfYWN0aXZlJywgdGhpcy5pZCk7CiAgICAgIH0pOwogICAgfSk7Cn0pOwoKCmZ1bmN0aW9uIF9zZXRfYWN0aXZlX3RhYih0YWJfbmFtZSkKewogICQoJyNwYWdlX3RhYnMgPiBkaXYnKQogICAgLmVhY2goZnVuY3Rpb24oKQogICAgewogICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTsKICAgIH0pOwoKICAkKCcjcGFnZV9jb250ZW50ID4gZGl2JykKICAgIC5lYWNoKGZ1bmN0aW9uKCkKICAgIHsKICAgICAgJCh0aGlzKS5oaWRlKCk7CiAgICB9KTsKCiAgJCgnIycgKyB0YWJfbmFtZSkuYWRkQ2xhc3MoJ2FjdGl2ZScpOwogICQoJyMnICsgdGFiX25hbWUgKyAnX2MnKS5zaG93KCk7CiAgQ29va2llcy5zZXQoJ3NpX2FjdGl2ZScsIHRhYl9uYW1lKTsKCn0KPC9zY3JpcHQ+Cgo8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+Cgo8ZGl2IGlkPSJwYWdlX3RhYnMiPgoKICA8ZGl2ICBpZD0iZ2VuZXJhbCI+CiAgICBHZW5lcmFsCiAgPC9kaXY+CiAgPGRpdiBpZD0idXNpbmciPgogICAgSG93IERvIEkgVXNlIEl0CiAgPC9kaXY+CiAgPGRpdiBpZD0icGFyYW1ldGVycyI+CiAgICBQYXJhbWV0ZXJzCiAgPC9kaXY+CiAgPGRpdiBpZD0ic21hcnR5Ij4KICAgIFNtYXJ0eSBQbHVnaW5zCiAgPC9kaXY+CiAgPGRpdiBpZD0iYWR2Ij4KICAgIEFkdmFuY2VkCiAgPC9kaXY+CiAgPGRpdiBpZD0iYWJvdXQiPgogICAgQWJvdXQKICA8L2Rpdj4KCjwvZGl2PgoKPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4KPGRpdiBpZD0icGFnZV9jb250ZW50Ij4KCiAgPGRpdiBpZD0iZ2VuZXJhbF9jIj4KICAgIDxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPgo8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBhIHNpbXBsZSB3YXkgdG8gcHJvY2VzcywgYW5kIGRpc3BsYXkgaW1hZ2VzIG9uIHlvdXIgd2ViIHBhZ2UuICBJdCBhbGxvd3Mgc2ltcGxlIGltYWdlIHByb2Nlc3NpbmcsIGFuZCB3YXRlcm1hcmtpbmcuICBUaGlzIG1vZHVsZSBtYWtlcyBkaXNwbGF5aW5nIHByb2Nlc3NlZCBpbWFnZXMgb24geW91ciB3ZWJzaXRlIHRyaXZpYWwuICBJdCBhbHNvIHByb3ZpZGVzIGZlYXR1cmVzIHRvIGltcHJvdmUgdGhlIHBlcmZvcm1hbmNlIHJhdGluZyBvZiB5b3VyIHdlYnNpdGUsIG1ha2luZyB5b3VyIHdlYnNpdGUgcG93ZXJmdWwgYW5kIGZhc3QgYXQgdGhlIHNhbWUgdGltZS48L3A+CiAgPGg0PkZlYXR1cmVzOjwvaDQ+Cjx1bD4KICA8bGk+UG93ZXJmdWwsIHNpbXBsZSB0byB1c2UgaW1hZ2UgPHN0cm9uZz5maWx0ZXJpbmc8L3N0cm9uZz4gYW5kIDxzdHJvbmc+cHJvY2Vzc2luZzo8L3N0cm9uZz4KICAgIDx1bD4KICAgICAgPGxpPjxzdHJvbmc+Qmx1cjwvc3Ryb25nPjwvbGk+CiAgICAgIDxsaT48c3Ryb25nPkJyaWdodG5lc3M8L3N0cm9uZz48L2xpPgogICAgICA8bGk+PHN0cm9uZz5Db2xvcml6ZTwvc3Ryb25nPjwvbGk+CiAgICAgIDxsaT48c3Ryb25nPkNvbnRyYXN0PC9zdHJvbmc+PC9saT4KICAgICAgPGxpPjxzdHJvbmc+Q3JvcDwvc3Ryb25nPjwvbGk+CiAgICAgIDxsaT48c3Ryb25nPkNyb3AgVG8gRml0PC9zdHJvbmc+PC9saT4KICAgICAgPGxpPjxzdHJvbmc+UmVzaXplIFRvIEZpdDwvc3Ryb25nPjwvbGk+CiAgICAgIDxsaT48c3Ryb25nPkVkZ2UgRGV0ZWN0aW9uPC9zdHJvbmc+PC9saT4KICAgICAgPGxpPjxzdHJvbmc+U2hhcnBlbjwvc3Ryb25nPjwvbGk+CiAgICAgIDxsaT48c3Ryb25nPkVtYm9zczwvc3Ryb25nPjwvbGk+CiAgICAgIDxsaT48c3Ryb25nPkdyYXlzY2FsZTwvc3Ryb25nPjwvbGk+CiAgICAgIDxsaT48c3Ryb25nPk1lYW4gUmVtb3ZhbDwvc3Ryb25nPjwvbGk+CiAgICAgIDxsaT48c3Ryb25nPk5lZ2F0ZTwvc3Ryb25nPjwvbGk+CiAgICAgIDxsaT48c3Ryb25nPlBpeGVsYXRlPC9zdHJvbmc+PC9saT4KICAgICAgPGxpPjxzdHJvbmc+UmVmbGVjdGlvbjwvc3Ryb25nPjwvbGk+CiAgICAgIDxsaT48c3Ryb25nPlJlc2l6ZTwvc3Ryb25nPjwvbGk+CiAgICAgIDxsaT48c3Ryb25nPlJvdW5kZWQgQ29ybmVyczwvc3Ryb25nPjwvbGk+CiAgICAgIDxsaT48c3Ryb25nPlJvdGF0ZTwvc3Ryb25nPjwvbGk+CiAgICAgIDxsaT48c3Ryb25nPlNlbGljdGl2ZSBCbHVyPC9zdHJvbmc+PC9saT4KICAgICAgPGxpPjxzdHJvbmc+U21vb3RoPC9zdHJvbmc+PC9saT4KICAgICAgPGxpPjxzdHJvbmc+V2F0ZXJtYXJrPC9zdHJvbmc+PC9saT4KICAgICAgPGxpPjxzdHJvbmc+Tk9PUCA8ZW0+KG5vb3ApPC9lbT48L3N0cm9uZz48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT48c3Ryb25nPlJlc3BvbnNpdmUgaW1hZ2UgaGFuZGxpbmc8L3N0cm9uZz4gd2l0aCBicmVha3BvaW50czogcmVzaXplIGltYWdlcyB0byBiZSBzdWl0YWJsZSBmb3Igc21hbGxlciBkZXZpY2VzIHN1Y2ggYXMgbW9iaWxlIHBob25lcyBvciB0YWJsZXRzOzwvbGk+CiAgPGxpPjxzdHJvbmc+U21hcnQgZGV0ZWN0aW9uIG9mIGltYWdlczwvc3Ryb25nPjogIHNwZWNpZnkgYWJzb2x1dGUgVVJMUywgYWJzb2x1dGUgcGF0aHMsIG9yIGZpbGVzIHJlbGF0aXZlIHRvIHlvdXIgcm9vdCBpbnN0YWxsYXRpb247PC9saT4KICA8bGk+PHN0cm9uZz5BdXRvbWF0aWMgaGFuZGxpbmcgb2YgZXh0ZXJuYWwgaW1hZ2VzPC9zdHJvbmc+OiBkb3dubG9hZGluZywgY2FjaGluZywgcHJvY2Vzc2luZywgYW5kIHJlLWNhY2hpbmcgb2YgaW1hZ2VzIGZyb20gcmVtb3RlIHdlYnNpdGVzOzwvbGk+CiAgPGxpPjxzdHJvbmc+U21hcnQgYXV0b21hdGljIHJlc2l6aW5nPC9zdHJvbmc+OiBhdXRvbWF0aWNhbGx5IHJlc2l6ZSB0byBkZXNpcmVkIHdpZHRoIGFuZCBoZWlnaHQgYmVmb3JlIHNlcnZpbmcgdGhlIGltYWdlOzwvbGk+CiAgPGxpPjxzdHJvbmc+RVhJRiBhdXRvLXByb2Nlc3Npbmc8L3N0cm9uZz46IGF1dG9tYXRpY2FsbHkgcmVhZHMgaW1hZ2UgRVhJRiBpbmZvcm1hdGlvbiBhbmQgY29ycmVjdHMgdGhlIG9yaWVudGF0aW9uOzwvbGk+CiAgPGxpPjxzdHJvbmc+U291cmNlIGNoYW5nZSBkZXRlY3Rpb248L3N0cm9uZz46IGlmIHRoZSBtYXN0ZXIgaW1hZ2UgaXMgY2hhbmdlZCBzY2FsZWQgaW1hZ2VzIHdpbGwgYmUgcmVnZW5lcmF0ZWQgKHNlZSB0aGUgPHN0cm9uZz5ub3RpbWVjaGVjazwvc3Ryb25nPiBwYXJhbWV0ZXIgdG8gZGlzYWJsZSB0aGlzIGJlaGF2aW9yKTs8L2xpPgogIDxsaT48c3Ryb25nPlNtYXJ0IGF0dHJpYnV0ZSBnZW5lcmF0aW9uPC9zdHJvbmc+IGZvciBpbWFnZSB0YWdzOzwvbGk+CiAgPGxpPjxzdHJvbmc+SW1hZ2UgY2FjaGluZzwvc3Ryb25nPjogcHJvY2Vzc2VkIGltYWdlcyBhcmUgY2FjaGVkIG9uIHRoZSBzZXJ2ZXIgZm9yIGZhc3RlciBzZXJ2aW5nOzwvbEk+CiAgPGxpPjxzdHJvbmc+Q0ROIHN1cHBvcnQ8L3N0cm9uZz46IHVzZSBhIHNlcGFyYXRlIFVSTCAoPHN0cm9uZz5DRE48L3N0cm9uZz4pPHN1cD4xPC9zdXA+IGZvciBzZXJ2aW5nIGltYWdlczs8L2xpPgogIDxsaT48c3Ryb25nPlNlcXVlbnRpYWwgcHJvY2Vzc2luZzwvc3Ryb25nPjogaW1hZ2UgZmlsdGVycyBhbmQgcHJvY2Vzc29ycyBjYW4gYmUgY29tYmluZWQsIGJlaW5nIGV4ZWN1dGVkIGluIG9yZGVyOzwvbGk+CiAgPGxpPjxzdHJvbmc+RW1iZWRkaW5nPC9zdHJvbmc+OiAgZW1iZWQgaW1hZ2VzIGRpcmVjdGx5IGludG8gdGhlIGNvbnRlbnQgb2YgdGhlIHdlYiBwYWdlIHRvIG1pbmltaXplIHNwYWNlOzwvbGk+CiAgPGxpPjxzdHJvbmc+U2VsZWN0aXZlIGVtYmVkZGluZzwvc3Ryb25nPjogIGxpbWl0IGVtYmVkZGluZyBpbWFnZXMgc21hcnRseSBvbmx5IHRvIGJyb3dzZXJzIHRoYXQgYXJlIGNhcGFibGUgb2YgdW5kZXJzdGFuZGluZyB0aGVtOzwvbGk+CiAgPGxpPjxzdHJvbmc+UGFyYW1ldGVycyBhbGlhc2luZzwvc3Ryb25nPjogY29tYmluZSBjb21tb25seSB1c2VkIGFyZ3VtZW50cyBpbnRvIG5hbWVkIGFsaWFzZXM7PC9saT4KICA8bGk+PHN0cm9uZz5TdHlsZXNoZWV0cyBzdXBwb3J0PC9zdHJvbmc+OiB3b3JrcyB3aXRoaW4gc3R5bGVzaGVldHMgdmlhIHRoZSAmIzEyMztjbXNfc3R5bGVzaGVldH0gdGFnOzwvbGk+CiAgPGxpPjxzdHJvbmc+U21hcnR5IGJsb2NrIHBsdWdpbjwvc3Ryb25nPjogYXV0b21hdGljYWxseSBwcm9jZXNzIGltYWdlcyBpbnNpZGUgYSBibG9jayBvZiBodG1sIGNvZGUgdXNpbmcgdGhlIDxzdHJvbmc+JiMxMjM7c2lfY29udmVydH08L3N0cm9uZz4gYmxvY2sgdGFnOzwvbGk+CiAgPGxpPjxzdHJvbmc+QmxvY2sgZXh0cmFjdGlvbjwvc3Ryb25nPjogZXh0cmFjdCBpbWFnZXMgZnJvbSBhIGJsb2NrIG9mIGh0bWwgY29kZTs8L2xpPgogIDxsaT48c3Ryb25nPlByb3BvcnRpb25zIHByZXNlcnZhdGlvbjwvc3Ryb25nPjogYXV0b21hdGljYWxseSByZXNpemUgdXBsb2FkZWQgaW1hZ2VzIHRvIGEgbWF4aW11bSBlZGdlIHNpemU7PC9saT4KICA8bGk+TW9yZS4uLjwvbGk+CjwvdWw+Cgo8aDQ+V2h5IHNob3VsZCBJIHVzZSBpdD88L2g0Pgo8cD5UaGVyZSBhcmUgZm91ciB2ZXJ5IGltcG9ydGFudCByZWFzb25zIHRvIHVzZSB0aGlzIHBsdWdpbjo8L3A+Cjx1bD4KICA8bGk+PHN0cm9uZz5QZXJmb3JtYW5jZTwvc3Ryb25nPjogIFVzaW5nIGltYWdlIGVtYmVkZGluZyAoZXZlbiBpZiBubyBvdGhlciBmdW5jdGlvbnMgYXJlIHVzZWQpIHJlc3VsdHMgaW4gZmV3ZXIgcmVxdWVzdHMuICBNb3N0IGJyb3dzZXJzIG9ubHkgcGVyZm9ybSB0d28gdG8gZm91ciBzaW11bHRhbmVvdXMgcmVxdWVzdHMgdG8gdGhlIHNhbWUgZG9tYWluIGF0IHRoZSBzYW1lIHRpbWUuICBGb3Igd2ViIHBhZ2VzIHdpdGggbG90cyBvZiBpbWFnZXMgdGhpcyBjYW4gc2VyaW91c2x5IHNsb3cgZG93biB5b3VyIHNpdGU7PC9saT4KICA8bGk+PHN0cm9uZz5QZXJmb3JtYW5jZTwvc3Ryb25nPjogIEV2ZW4gaWYgbm90IHVzaW5nIGVtYmVkZGluZywgc2VuZGluZyBsYXJnZSBpbWFnZXMgdG8geW91ciB2aXNpdG9ycywgYW5kIGFza2luZyB0aGVpciBicm93c2VyIHRvIHNjYWxlIHRoZSBpbWFnZSBpcyB2ZXJ5IHZlcnkgc2xvdzs8L2xpPgogIDxsaT48c3Ryb25nPlNlY3VyaXR5PC9zdHJvbmc+OiAgU21hcnRJbWFnZSBjYWNoZXMgaXRzIGltYWdlcyBpbiBhIHNlcGFyYXRlIGRpcmVjdG9yeSwgdGhlcmVieSBoaWRpbmcgdGhlIG9yaWdpbmFsIChwZXJoYXBzIGNvcHlyaWdodGVkKSBpbWFnZXMgZnJvbSB5b3VyIHVzZXJzLiAgSWYgZW1iZWRkaW5nIGlzIHVzZWQgdGhleSBjYW4gbm90IGV2ZW4gZmluZCB0aGUgY2FjaGVkIGxvY2F0aW9uOzwvbGk+CiAgPGxpPjxzdHJvbmc+U2ltcGxpY2l0eTwvc3Ryb25nPjogIFRoZSBmaWx0ZXJpbmcgY2FwYWJpbGl0aWVzIG9mIFNtYXJ0SW1hZ2UgYWxsb3cgeW91IHRvIGF1dG9tYXRpY2FsbHkgcHJvY2VzcyBpbWFnZXMgZm9yIGNvbnNpc3RlbnQgYW5kIHNlY3VyZSBkaXNwbGF5LCB3aXRob3V0IHNpdGUgZWRpdG9ycyBoYXZpbmcgdG8gcGxheSB3aXRoIHRoZW0uICBUaGV5IGNhbiB1cGxvYWQgbGFyZ2VyIGltYWdlcywgYW5kIHlvdXIgc2l0ZSB3aWxsIGp1c3QgaGFuZGxlIHRoZW0gcHJvcGVybHkuPC9saT4KICA8bGk+PHN0cm9uZz5EaXNrIHNwYWNlIHNhdmluZzwvc3Ryb25nPjogVGhlIGF1dG9tYXRpYyBpbWFnZSBwcm9jZXNzaW5nIG9wdGlvbiBhbGxvd3MgcmVzaXppbmcgaW1hZ2VzIHRvIGEgbWF4aW11bSBzaXplLCBhbmQgZGVsZXRpbmcgdGhlIG9yaWdpbmFsLCB0aGlzIHNhdmVzIGRpc2sgc3BhY2Ugd2hlbiB1c2VycyBhcmUgdXBsb2FkaW5nIHRvbm5lcyBvZiBpbWFnZXMuPC9saT4KPC91bD4KCjxoND5JbWFnZSBFbWJlZGRpbmc8L2g0PgogIDxwPkltYWdlIGVtYmVkZGluZyBlbmNvZGVzIHRoZSBpbWFnZSBpbnRvIGEgZGF0YSA8c3Ryb25nPlVSSTwvc3Ryb25nPiB3aGljaCBpcyBlbWJlZGRlZCBkaXJlY3RseSBpbiB0aGUgcGFnZSAob3Igc3R5bGVzaGVldCkgY29udGVudC4gIFRoaXMgcmVkdWNlcyByZXF1ZXN0cyB0aGF0IHRoZSBicm93c2VyIG11c3QgbWFrZSB0byByZWNlaXZlIGltYWdlcyBmcm9tIHlvdXIgc2l0ZS4gIEhvd2V2ZXIgaXQgZG9lcyBpbmNyZWFzZSB0aGUgc2l6ZSBvZiB0aGUgSFRNTCBwYWdlLiAgT24gaW1hZ2UgaGVhdnkgcGFnZXMgeW91IHNob3VsZCBtaXggdGhlIHVzZSBvZiBlbWJlZGRlZCBpbWFnZXMuPC9wPgogIDwvZGl2PgogIDxkaXYgaWQ9InVzaW5nX2MiPgogICAgPGgzPkhvdyBkbyBJIFVzZSBpdDwvaDM+CjxwPlRoZSBzaW1wbGVzdCB3YXkgdG8gdXNlIHRoaXMgbW9kdWxlIGlzIHRvIHVzZSBpdCBpbiB0aGUgc2FtZSBwbGFjZSB5b3Ugd291bGQgdGhlICYjMTIzO2ltYWdlfSB0YWcuICBJLmU6IFNvbWV0aGluZyBsaWtlOjwvcD4KPHByZT48Y29kZT4mIzEyMztTbWFydEltYWdlIHNyYz0ndXBsb2Fkcy9pbWFnZXMvcGljdHVyZS5qcGcnfTwvY29kZT48L3ByZT4uICA8cD5UaGlzIHdpbGwgZ2VuZXJhdGUgdGhlIGltYWdlIHRhZyBmb3IgeW91IHdpdGggbm8gcHJvY2Vzc2luZy4gIEFuZCBpZiBwb3NzaWJsZSwgZW1iZWQgdGhlIGltYWdlIGRpcmVjdGx5IGludG8geW91ciBodG1sIG91dHB1dC48L3A+Cgo8cD5PZnRlbiBwZW9wbGUgd2FudCB0byBkaXNwbGF5IGEgd2F0ZXJtYXJrIG9uIHRoZSBpbWFnZXMgdGhhdCB0aGV5IGRpc3BsYXkgb24gdGhlIGZyb250ZW5kIHRvIHByZXZlbnQgaW1hZ2UgdGhlZnQuICBUaGUgQ01TTVNFeHQgbW9kdWxlIHByb3ZpZGVzIHNldHRpbmdzIGZvciB5b3UgdG8gY29uZmlndXJlIHdhdGVybWFya2luZyBhbmQgeW91IGNhbiBlbmFibGUgdGhhdCB3aXRoIGFueSBpbWFnZSB3aXRoIGEgdGFnIGxpa2UgdGhpczo8L3A+CjxwcmU+PGNvZGU+JiMxMjM7U21hcnRJbWFnZSBzcmM9J3VwbG9hZHMvaW1hZ2VzL3BpY3R1cmUuanBnJyBmaWx0ZXJfd2F0ZXJtYXJrPTF9PC9jb2RlPjwvcHJlPgo8cD5UaGlzIHdpbGwgcmVhZCB0aGUgaW1hZ2UsIGFwcGx5IHRoZSB3YXRlcm1hcmsgYWNjb3JkaW5nIHRvIHRoZSBzZXR0aW5ncyBpbiBDTVNNU0V4dCwgY2FjaGUgdGhlIGFsdGVyZWQgaW1hZ2UsIGFuZCB0aGVuIGVtYmVkIGl0IGludG8geW91ciBvdXRwdXQuPC9wPgo8cD5QaWN0dXJlcyB0YWtlbiBieSBtb2Rlcm4gZGlnaXRhbCBjYW1lcmFzIGFyZSBvZnRlbiB0b28gbGFyZ2UgZm9yIHVzZSBvbiBhIHdlYnNpdGUsIHRoZXJlZm9yZSB0aGV5IG5lZWQgdG8gYmUgc2NhbGVkIGJlZm9yZSBkaXNwbGF5ZWQgb24geW91ciBwYWdlLiAgVGhpcyBjYW4gYmUgZG9uZSBxdWl0ZSBlYXNpbHkgd2l0aCBhIHRhZyBsaWtlOjwvcD4KPHByZT48Y29kZT4mIzEyMztTbWFydEltYWdlIHNyYz0ndXBsb2Fkcy9pbWFnZXMvcGljdHVyZS5qcGcnIGZpbHRlcl93YXRlcm1hcms9MSBmaWx0ZXJfcmVzaXplPSd3LDM1MCd9PC9jb2RlPjwvcHJlPgo8cD5UaGlzIHRhZyB3aWxsIHdhdGVybWFyayB0aGUgaW1hZ2UgYmVmb3JlIGl0IGlzIHJlc2l6ZWQgdG8gYSBtYXhpbXVtIHdpZHRoIG9mIDM1MCBwaXhlbHMgKHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgVGhlbiB0aGUgYWRqdXN0ZWQgaW1hZ2Ugd2lsbCBiZSBjYWNoZWQsIGFuZCBpZiB0aGUgYnJvd3NlciBhbGxvd3MgdGhlIGltYWdlIHdpbGwgYmUgZW1iZWRkZWQgaW50byB0aGUgPHN0cm9uZz5IVE1MPC9zdHJvbmc+IG91dHB1dC4gIElmIGVtYmVkZGluZyBpcyBub3QgcG9zc2libGUsIHRoZSA8c3Ryb25nPmltZzwvc3Ryb25nPiB0YWcgd2lsbCBjb250YWluIHRoZSA8c3Ryb25nPlVSTDwvc3Ryb25nPiB0byB0aGUgY2FjaGVkIGltYWdlLjwvcD4KPHA+WW91IGNhbiBjb21iaW5lIHRoZSBvcHRpb25zIGxpc3RlZCBpbiB0aGUgPHN0cm9uZz5QYXJhbWV0ZXJzPC9zdHJvbmc+IHRhYiB0byBwZXJmb3JtIGEgbG90IG9mIGRpZmZlcmVudCBlZmZlY3RzIHRvIHlvdXIgaW1hZ2VzLCBidWlsZCBzaW1wbGUgZ2FsbGVyaWVzLCBhbmQgaW1wcm92ZSB5b3VyIHNpdGUgcGVyZm9ybWFuY2UgYXQgdGhlIHNhbWUgdGltZS48L3A+CiAgPC9kaXY+CiAgPGRpdiBpZD0icGFyYW1ldGVyc19jIj4KICAgIDxoMz5QYXJhbWV0ZXJzPC9oMz4KPHVsPgo8bGk+CiAgPHN0cm9uZz5hY3Rpb248L3N0cm9uZz4gPGVtPihvcHRpb25hbCk8L2VtPjogVGhlIGFjdGlvbiBmb3IgdGhlIG1vZHVsZSB0byBwZXJmb3JtLgogIDxicj5Qb3NzaWJsZSB2YWx1ZXMgYXJlOgogIDx1bD4KICAgIDxsaT48c3Ryb25nPmRlZmF1bHQ8L3N0cm9uZz4gLSBwZXJmb3JtIG1hbmlwdWxhdGlvbiBvbiBhIHNpbmdsZSBpbWFnZTs8L2xpPgogICAgPGxpPjxzdHJvbmc+cmVzcG9uc2l2ZTwvc3Ryb25nPiAtIG91dHB1dCBhIGphdmFzY3JpcHQgY29kZSBzbmlwcGV0IHRoYXQgd2lsbCBjcmVhdGUgYSBjb29raWUgcHJvdmlkaW5nIHRoZSBTbWFydEltYWdlIG1vZHVsZSB3aXRoIGRldmljZSBzY3JlZW4gc2l6ZSBhbmQgcGl4ZWwgcmF0aW87PC9saT4KICA8L3VsPgo8L2xpPgo8bGk+PHN0cm9uZz5zaWxlbnQ8L3N0cm9uZz4gPGVtPihvcHRpb25hbCk8L2VtPiAtIFNpbGVudGx5IGlnbm9yZSBlcnJvcnMgKHBvc3NpYmxlIHZhbHVlczogMCwxICk7PC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gYWxpYXMgLSBUaGUgU21hcnRJbWFnZSBhZG1pbiBwYW5lbCBhbGxvd3MgY3JlYXRpbmcgbnVtZXJvdXMgY29tbWFuZCBhbGlhc2VzIHRvIGNvbWJpbmUgYSBmcmVxdWVudGx5IHVzZWQgcGF0dGVybiBvZiBhcmd1bWVudHMgaW50byBvbmUgbmFtZS4gIFRvIHVzZSB0aGVzZSBhbGlhc2VzIHVzZSBhbiBhcmd1bWVudCBvZiB0aGUgZm9ybSBhbGlhcyMjPWFsaWFzX25hbWUgaS5lOiAgYWxpYXMxPWZvbyBhbGlhczI9Zm9vLjwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vYXV0b3NjYWxlPSIiIC0gSWYgd2lkdGggYW5kIGhlaWdodCBwYXJhbWV0ZXJzIGFyZSBzcGVjaWZpZWQsIHRoaXMgcGFyYW1ldGVyIHdpbGwgZGlzYWJsZSBhdXRvbWF0aWMgc2NhbGluZyBvZiB0aGUgaW1hZ2UuICBUaGlzIHBhcmFtZXRlciB3aWxsIGJlIGRpc2FibGVkIGZvciBtb2JpbGUgYnJvd3NlcnM8L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub2JjYWNoZT0iIiAtIERvIG5vdCBhbGxvdyB0aGUgcmVzaXplZCBpbWFnZSB0byBjYWNoZSBpbiB0aGUgYnJvd3NlciAodXNlZnVsIGZvciBkZXZlbG9wbWVudCBwdXJwb3NlcykgdGhpcyBhZGRzIGEgdW5pcXVlIG51bWJlciBhcyBhIHBhcmFtZXRlciB0byB0aGUgaW1hZ2Ugd2hpY2ggd2lsbCBmb3JjZSB0aGUgYnJvd3NlciBub3QgdG8gY2FjaGUgdGhlIGltYWdlLjwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vZW1iZWQ9IiIgLSBGb3JjZSB0aGUgaW1hZ2UgdG8gbm90IGVtYmVkLiAgUmVnYXJkbGVzcyBvZiBzZXR0aW5ncyBpbiB0aGUgYWRtaW4gcGFuZWwsIHRoZSBVUkwgYW5kIHRhZyBnZW5lcmF0ZWQgd2lsbCBiZSB0byBhIGZpbGUgb24gdGhlIHNlcnZlci4gIE5vIGVtYmVkZGluZyB3aWxsIGJlIHBlcmZvcm1lZDwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vYXV0bz0iIiAtIERvIG5vdCBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZSBwYXJhbWV0ZXJzIGZvciB0aGUgaW1nIHRhZy4gIFRoaXMgbWF5IGNhdXNlIHlvdXIgc2l0ZSB0byBmYWlsIHZhbGlkYXRpb24gaWYgc29tZSByZXF1aXJlZCBwYXJhbWV0ZXJzICh3aWR0aCxoZWlnaHQsYWx0KSBhcmUgbm90IHNwZWNpZmllZC4gIEFkZGl0aW9uYWxseSwgaWYgdGhlIHdpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBhcmUgc3BlY2lmaWVkLCB0aGlzIHBhcmFtZXRlciB3aWxsIGVuc3VyZSB0aGF0IHRoZXkgd2lsbCBub3QgYmUgb3ZlcnJpZGRlbiBieSB0aGUgYWN0dWFsIHNpemUgb2YgdGhlIHByb2Nlc3NlZCBpbWFnZS48L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub3JvdGF0ZT0iIiAtIERvIG5vdCBhdHRlbXB0IHRvIHJlYWQgZXhpZiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBmaWxlIGFuZCBjb3JyZWN0IGltYWdlIHJvdGF0aW9uPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbm90YWc9IiIgLSBEbyBub3Qgb3V0cHV0IGFuIGltZyB0YWcsIG9ubHkgdGhlIHVybCB0byB0aGUgY2FjaGVkIGltYWdlLiAgVGhpcyBoYXMgbm8gZWZmZWN0IHdoZW4gU21hcnRJbWFnZSBpcyB1c2VkIGZyb20gd2l0aGluIGEgc3R5bGVzaGVldC48L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub3Jlc3BvbnNpdmU9IiIgLSBUdXJuIG9mZiBhbGwgcmVzcG9uc2l2ZSBpbWFnZSBoYW5kbGluZyBmb3IgdGhpcyBvcGVyYXRpb24uPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbm9kcHJhZGp1c3Q9IiIgLSBGb3IgcmVzcG9uc2l2ZSBpbWFnZSBoYW5kbGluZywgZG8gbm90IGFkanVzdCB0aGUgc2l6ZSBvZiBhIHNjYWxlZCBpbWFnZSBiYXNlZCBvbiB0aGUgZGV2aWNlIHBpeGVsIHJhdGlvIGZyb20gdGhlIHJlc3BvbnNpdmUgaW5mb3JtYXRpb24uPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbm9icmVha3BvaW50cz0iIiAtIEZvciByZXNwb25zaXZlIGltYWdlIGhhbmRsaW5nLCBkaXNhYmxlIGJyZWFrcG9pbnRzIGFuZCBmb3JjZSByZWd1bGFyIHJlc2l6ZSBoYW5kbGluZyBmb3IgaW1hZ2VzIG9uIG1vYmlsZSBicm93c2Vycy48L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub3JlbW90ZT0iIiAtIERvIG5vdCBhbGxvdyByZXRyaWV2aW5nIHNvdXJjZXMgZnJvbSByZW1vdGUgVVJMUzwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZvcmNlX3R5cGU9IiIgLSAoc3RyaW5nKSBGb3JjZSB0aGUgb3V0cHV0IGltYWdlIHRvIGJlIHNhdmVkIGluIHRoZSBzcGVjaWZpZWQgaW1hZ2UgdHlwZSwgaW5kZXBlbmRlbnQgb2YgdGhlIHNvdXJjZSBpbWFnZSwgZmlsdGVycywgYW5kIHBhcmFtZXRlcnMuICBWYWxpZCB2YWx1ZXMgYXJlOiBqcGVnLHBuZyxnaWYuIE5vdGU6IER1ZSB0byB0aGUgY2FwYWJpbGl0aWVzIG9mIHNvbWUgaW1hZ2UgZm9ybWF0cywgc3VycHJpc2luZyBlZmZlY3RzIGNhbiBvY2N1ci4gIFBhcnRpY3VsYXJseSwgZm9yY2luZyBhIHRyYW5zcGFyZW50IFBORyB0byBzYXZlIGluIEpQRUcgZm9ybWF0IHdpbGwgcmVzdWx0IGluIGFsbCB0cmFuc3BhcmVuY3kgYmVpbmcgbG9zdC48L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmb3JjZV9leHQ9IiIgLSAoaW50ZWdlcikgRW5hYmxlIChvciBkaXNhYmxlZCkgdGhlIGZvcmNpbmcgb2YgYWxsIGdlbmVyYXRlZCBpbWFnZSBmaWxlcyB0byBoYXZlIGZpbGUgZXh0ZW5zaW9ucy4gIERlcGVuZGluZyB1cG9uIHRoZSBzb3VyY2UgaW1hZ2UsIGFuZCB0aGUgZmlsdGVycyBhbmQgcGFyYW1ldGVycyB1c2VkLCB0aGUgZ2VuZXJhdGVkIGV4dGVuc2lvbiBtYXkgbm90IGFjY3VyYXRlbHkgcmVwcmVzZW50IHRoZSBhY3R1YWwgY29udGVudHMgb2YgdGhlIGZpbGU8L2xpPgo8bGk+CiAgc3JjPSIiIC0gU3BlY2lmeSB0aGUgc291cmNlIGZvciB0aGUgaW1hZ2UgcHJvY2Vzc2luZyAoaWYgYW55KSBvciB0aGUgZ2VuZXJhdGVkIGltZyB0YWcuICBOb3RlLCB0aGlzIHBhcmFtZXRlciBpcyBmbGV4aWJsZSwgYW5kIHRoZSBtb2R1bGUgd2lsbCBhdHRlbXB0IG1hbnkgbWV0aG9kcyB0byBmaW5kIHRoZSBzb3VyY2UgaW1hZ2UgZmlsZSBvbiB0aGUgd2ViIHNlcnZlciBhcyBmb2xsb3dzOgogIDx1bD4KICAgIDxsaT5GaXJzdCBsb29rIHRvIHNlZSBpZiB0aGUgc3BlY2lmaWVkIHNyYyB2YWx1ZSBleGlzdHMgYXMgYSBmaWxlIG9uIHRoZSBmaWxlc3lzdGVtIDxzdHJvbmc+QmVsb3cgdGhlIENNU01TIHJvb3QgVVJMPC9zdHJvbmc+PC9saT4KICAgIDxsaT5OZXh0LCBjaGVjayBpZiB0aGUgdmFsdWUgc3BlY2lmaWVkIGZvciB0aGUgc3JjIHBhcmFtZXRlciBpcyBhIFVSTCBhbmQgYmVnaW5zIHdpdGggdGhlIHVwbG9hZHNfdXJsIChhcyBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZy5waHApPC9saT4KICAgIDxsaT5OZXh0LCBjaGVjayBpZiB0aGUgdmFsdWUgc3BlY2lmaWVkIGZvciB0aGUgc3JjIHBhcmFtZXRlciBpcyBhIFVSTCBhbmQgYmVnaW5zIHdpdGggdGhlIHJvb3RfdXJsIChhcyBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZy5waHApPC9saT4KICAgIDxsaT5OZXh0LCBjaGVjayBpZiB0aGUgdmFsdWUgc3BlY2lmaWVkIGZvciB0aGUgc3JjIHBhcmFtZXRlciBpcyBhIFVSTCBhbmQgYmVnaW5zIHdpdGggdGhlIHNzbF91cmwgKGFzIHNwZWNpZmllZCBpbiB0aGUgY29uZmlnLnBocCk8L2xpPgogIDwvdWw+CiAgSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBzcGxpdCB0aGUgc3JjIHBhcmFtZXRlciBpbnRvIG11bHRpcGxlIGFyZ3VtZW50cywgd2hpY2ggaXMgdXNlZnVsIGZvciBleGFtcGxlIHdoZW4gdGhlIHBhdGggdG8gdGhlIGZpbGUsIGFuZCB0aGUgZmlsZW5hbWUgYXJlIHN0b3JlZCBpbiBzZXBhcmF0ZSBzbWFydHkgdmFyaWFibGVzLiAgIFlvdSBjYW4gc3BlY2lmeSB0aGUgc3JjIGFzIHNyYzE9XCR0aGVfcGF0aCBzcmMyPVwkdGhlX2ZpbGVuYW1lLiAgVGhlIHN5c3RlbSB3aWxsIGF1dG9tYXRpY2FsbHkgYWRkIGEgLyBpbiBiZXR3ZWVuIGVhY2ggYXJndW1lbnQuICBUaGVyZSBpcyBubyBsaW1pdCB0byB0aGUgbnVtYmVyIG9mIHNyYyBwYXJhbWV0ZXJzLgo8L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBvdmVyd3JpdGU9IiIgLSBEaXNhYmxlIGFsbCBjYWNoaW5nIGFuZCBmb3JjZSByZS1jYWxjdWxhdGlvbiBvZiBhbGwgZmlsdGVyczwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGlkPSIiIC0gVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIGFsbG93cyBzcGVjaWZ5aW5nIGFuIGlkIGF0dHJpYnV0ZSB0byBpbmNsdWRlIG9uIHRoZSB0YWcuICBpLmU6IGlkPSJzb21ldGFnIjwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGNsYXNzPSIiIC0gVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIGFsbG93cyBzcGVjaWZ5aW5nIG9uZSBvciBtb3JlIGNsYXNzZXMgdG8gaW5jbHVkZSBvbiB0aGUgdGFnLiAgaS5lOiBjbGFzcz0iZmFuY3lib3ggdGh1bWJuYWlsIjwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHN0eWxlPSIiIC0gVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIGFsbG93cyBzcGVjaWZ5aW5nIGFsdGVybmF0ZSBzdHlsZXMgZm9yIHRoZSB0YWcuICBpLmU6IHN0eWxlPSJib3JkZXI6IDFweCBzb2xpZCBibGFjazsiPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gdGl0bGU9IiIgLSBTcGVjaWZ5IGFuIG9wdGlvbmFsIHRpdGxlIGF0dHJpYnV0ZSBmb3IgdGhlIGltZyB0YWcuICBpLmU6IHRpdGxlPSJUaGlzIGlzIHRoZSB0b29sdGlwIjwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGFsdD0iIiAtIFVzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBzcGVjaWZ5IHRoZSB2YWx1ZSBmb3IgdGhlIGFsdCBhdHRyaWJ1dGUuICBOb3RlLCBpZiB0aGlzIGlzIG5vdCBzcGVjaWZpZWQgYSB2YWx1ZSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY2FsY3VsYXRlZCBmb3IgdGhpcyBhdHRyaWJ1dGUgc28gdGhhdCBtb3N0IGdlbmVyYXRlZCBpbWcgdGFncyB3aWxsIHZhbGlkYXRlLiAgWW91IGNhbiBvdmVycmlkZSB0aGlzIGF1dG8gY2FsY3VsYXRpb24gd2l0aCB0aGUgIm5vYXV0byIgcGFyYW1ldGVyPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbmFtZT0iIiAtIFVzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBzcGVjaWZ5IHRoZSB2YWx1ZSBmb3IgdGhlIG5hbWUgYXR0cmlidXRlLjwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGhlaWdodD0iIiAtIFVzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBzcGVjaWZ5IHRoZSB2YWx1ZSBmb3IgdGhlIGhlaWdodCBhdHRyaWJ1dGUuICBOb3RlLCBpZiB0aGlzIGlzIG5vdCBzcGVjaWZpZWQgYSB2YWx1ZSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY2FsY3VsYXRlZCBmb3IgdGhpcyBhdHRyaWJ1dGUgc28gdGhhdCBtb3N0IGdlbmVyYXRlZCBpbWcgdGFncyB3aWxsIHZhbGlkYXRlLiAgWW91IGNhbiBvdmVycmlkZSB0aGlzIGF1dG8gY2FsY3VsYXRpb24gd2l0aCB0aGUgIm5vYXV0byIgcGFyYW1ldGVyLiAgVGhpcyBwYXJhbWV0ZXIgd2lsbCBhbHNvIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgIndpZHRoIiBwYXJhbWV0ZXIgdG8gcGVyZm9ybSBhIGZpbmFsIHJlc2l6aW5nIG9yIGNyb3B0b2ZpdCBmaWx0ZXIgKHVubGVzcyB0aGUgIm5vYXV0b3NjYWxlIiBwYXJhbWV0ZXIgaXMgYWxzbyBzdXBwbGllZCk8L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiB3aWR0aD0iIiAtIFVzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBzcGVjaWZ5IHRoZSB2YWx1ZSBmb3IgdGhlIHdpZHRoIGF0dHJpYnV0ZS4gICBOb3RlLCBpZiB0aGlzIGlzIG5vdCBzcGVjaWZpZWQgYSB2YWx1ZSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY2FsY3VsYXRlZCBmb3IgdGhpcyBhdHRyaWJ1dGUgc28gdGhhdCBtb3N0IGdlbmVyYXRlZCBpbWcgdGFncyB3aWxsIHZhbGlkYXRlLiAgWW91IGNhbiBvdmVycmlkZSB0aGlzIGF1dG8gY2FsY3VsYXRpb24gd2l0aCB0aGUgIm5vYXV0byIgcGFyYW1ldGVyLiAgVGhpcyBwYXJhbWV0ZXIgd2lsbCBhbHNvIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgImhlaWdodCIgcGFyYW1ldGVyIHRvIHBlcmZvcm0gYSBmaW5hbCByZXNpemluZyBvciBjcm9wdG9maXQgZmlsdGVyICh1bmxlc3MgdGhlICJub2F1dG9zY2FsZSIgcGFyYW1ldGVyIGlzIGFsc28gc3VwcGxpZWQpPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gcXVhbGl0eT0iNzUiIC0gU3BlY2lmeSB0aGUgcXVhbGl0eSBvZiB0aGUgb3V0cHV0IGltYWdlLiAgQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEwMC4gIFRoZSBkZWZhdWx0IHZhbHVlIGlmIG5vdCBzcGVjaWZpZWQgaXMgNzUuPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gcmVsPSI3NSIgLSBVc2VkIHdoZW4gYnVpbGRpbmcgYW4gaW1hZ2UgdGFnIGFsbG93cyBzcGVjaWZ5aW5nIGFuIG9wdGlvbmFsIHJlbCBhdHRyaWJ1dGUgKHR5cGljYWxseSB1c2VkIHdpdGggamF2YXNjcmlwdCB0eXBlIGFsYnVtcykuIGkuZTogcmVsPSJhbGJ1bSI8L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBtYXhfd2lkdGg9IiIgLSBUaGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG1heGltdW0gd2lkdGggZm9yIHRoZSBjb252ZXJ0ZWQgaW1hZ2VzLjwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG1heF9oZWlnaHQ9IiIgLSBUaGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG1heGltdW0gaGVpZ2h0IGZvciB0aGUgY29udmVydGVkIGltYWdlcy48L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBwcm9ncmVzc2l2ZT0iIiAtIChib29sZWFuKSBUb2dnbGUgc2F2aW5nIGpwZWcgaW1hZ2VzIGluIHByb2dyZXNzaXZlIGZvcm1hdC4gIFRoaXMgcGFyYW1ldGVyIHdpbGwgb3ZlcnJpZGUgdGhlIHByZWZlcmVuY2UgaW4gdGhlIG1vZHVsZXMgYWRtaW4gcGFuZWwuICBBcHBsaWVzIG9ubHkgdG8gSlBFRyBpbWFnZXMuPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gYXV0b3NjYWxlX29wPSJjcm9wdG9maXQiIC0gT3ZlcnJpZGUgdGhlIGRlZmF1bHQgZmlsdGVyIHRvIGJlIHVzZWQgd2hlbiBhdXRvc2NhbGluZy4gIFBvc3NpYmxlIHZhbHVlcyBhcmUgInJlc2l6ZSIgYW5kICJjcm9wdG9maXQiPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX2JsdXI9IiIgLSAoYW55dGhpbmcpIFNwZWNpZnkgYW55IHZhbHVlIGZvciB0aGlzIHBhcmFtZXRlciB0byBhZGQgYSBibHVyIGZpbHRlciB0byB0aGUgaW1hZ2U8L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfYnJpZ2h0bmVzcz0iIiAtIChpbnRlZ2VyKSBJbmNyZWFzZSB0aGUgYnJpZ2h0bmVzcyBvZiB0aGUgcHJvY2Vzc2VkIGltYWdlIGJ5IHRoZSBpbnRlZ2VyIHZhbHVlIHNwZWNpZmllZDwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9jb2xvcml6ZT0iIiAtIChyLGcsYlssYWxwaGFdKSAtIExpa2UgZmlsdGVyX2dyYXlzY2FsZSBob3dldmVyIHlvdSBjYW4gc3BlY2lmeSB0aGUgY29sb3IgYW5kIGFscGhhIHZhbHVlPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX2NvbnRyYXN0PSIiIC0gKGludGVnZXIpIENoYW5nZSB0aGUgY29udHJhc3Qgb2YgdGhlIGltYWdlIGJ5IHRoZSBpbnRlZ2VyIHZhbHVlIHNwZWNpZmllZDwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9jcm9wPSIiIC0gKHBlcmNlbnRbLGhfYWxpZ24sdl9hbGlnbl0pIC0gUGVyZm9ybSBjcm9wcGluZyBvbiB0aGUgaW1hZ2Ugc3BlY2lmaWVkLiBDcm9wIHBhcmFtZXRlcnMgYXJlIHNwZWNpZmllZCBhcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHBhcmFtZXRlcnMuICBUaGUgZmlyc3QgKHJlcXVpcmVkKSB2YWx1ZSBpcyBhbiBpbnRlZ2VyIHBlcmNlbnRhZ2Ugb2YgdGhlIG9yaWdpbmFsIGltYWdlIHNpemUuICBUaGUgb3B0aW9uYWwgc2Vjb25kIGFuZCB0aGlyZCBwYXJhbWV0ZXJzIGFyZSBvbmUgb2YgbCxjLHIgKGxlZnQsY2VudGVyLHJpZ2h0KSBhbmQgdCxjLGIgKHRvcCxjZW50ZXIsYm90dG9tKSBzcGVjaWZ5aW5nIHdoZXJlIHRoZSBsb2NhdGlvbiB3aXRoaW4gdGhlIHNvdXJjZSBpbWFnZSB0byBjcm9wIGZyb20uICBpLmU6IGNyb3A9MzMsYixyIHRvIGdyYWIgYSBjcm9wIG9mIDMzJSBmcm9tIHRoZSBib3R0b20gcmlnaHQgb2YgdGhlIHNvdXJjZSBpbWFnZS48L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfY3JvcDJzaXplPSIiIC0gKHdpZHRoLGhlaWdodFssbG9jYXRpb25dKSAtIFBlcmZvcm0gYSBjcm9wIG9uIHRoZSBpbWFnZSBzcGVjaWZpZWQuICBUaGlzIGZpbHRlciB3aWxsIGNvcHkgdGhlIHBvcnRpb24gb2YgdGhlIHNvdXJjZSBpbWFnZSBzcGVjaWZpZWQgaW50byB0aGUgZGVzdGluYXRpb24gaW1hZ2UuICBUaGUgd2lkdGggYW5kIGhlaWdodCBwYXJhbWV0ZXJzIGNhbiBiZSBubyBsYXJnZXIgdGhhbiB0aGUgc2l6ZSBvZiB0aGUgc291cmNlIGltYWdlIChhbmQgd2lsbCBiZSB0cmltbWVkIGFzIHN1Y2guICBOZWdhdGl2ZSB2YWx1ZXMgYXJlIG5vdCBwZXJtaXR0ZWQuICBWYWxpZCBsb2NhdGlvbnMgYXJlOiB0bCx0Yyx0cixjbCxjLGNyLGJsLGJjLGJyIGZvciB0aGUgOSByZWxhdGl2ZSBwb3NpdGlvbnMgd2l0aGluIHRoZSBpbWFnZS48L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfY3JvcHRvZml0PSIiIC0gKHdpZHRoLGhlaWdodFssbG9jYXRpb25bLHVwc2NhbGVdXSkgLSBQZXJmb3JtIGEgY3JvcHRvZml0IG9uIHRoZSBpbWFnZSBzcGVjaWZpZWQuIFRoaXMgYXR0ZW1wdHMgdG8gcmVzY2FsZSB0aGUgaW1hZ2UgdG8gdGhlIGRlc3RpbmF0aW9uIHNpemUgd2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbywgdGhlbiBmb2N1cyBvbiB0aGUgc2VsZWN0ZWQgYXJlYSBvZiB0aGUgcmVzaXplZCBpbWFnZS4gIENyb3AgdG8gZml0IHBhcmFtZXRlcnMgYXJlIHNwZWNpZmllZCBhcyB0aGUgZGVzaXJlZCB3aWR0aCBhbmQgaGVpZ2h0IGZvciB0aGUgZGVzdGluYXRpb24gaW1hZ2UgYWxvbmcgd2l0aCBhbiAob3B0aW9uYWwpIGxvY2F0aW9uIGNvZGUsIGFuZCB1cHNjYWxlIGZsYWcuICB2YWxpZCBsb2NhdGlvbiBjb2RlcyBhcmUgdGwsdGMsdHIsY2wsYyxjcixibCxiLGJyIGZvciB0aGUgOSByZWxhdGl2ZSBwb3NpdGlvbnMgd2l0aGluIHRoZSBpbWFnZS4gIElmIGEgbG9jYXRpb24gaXMgbm90IHNwZWNpZmllZCBhIHByZWZlcmVuY2Ugd2lsbCBiZSB1c2VkLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgImMiIHRvIGNyb3AtdG8tZml0IGZyb20gdGhlIGNlbnRlciBvZiB0aGUgc291cmNlIGltYWdlLiAgQnkgZGVmYXVsdCB1cHNjYWxpbmcgaXMgZGlzYWJsZWQgb24gdGhpcyBmaWx0ZXIuPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX2VkZ2VkZXRlY3Q9IiIgLSAoYW55dGhpbmcpIEhpbGlnaHQgdGhlIGVkZ2VzIGluIHRoZSBpbWFnZTwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9lbWJvc3M9IiIgLSAoYW55dGhpbmcpIEVtYm9zcyB0aGUgaW1hZ2U8L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfZmxpcD0iIiAtIChtb2RlKSAtIFBlcmZvcm0gYSBmbGlwIG9uIHRoZSBzcGVjaWZpZWQgaW1hZ2UuICBTcGVjaWZ5IDAgZm9yIGhvcml6b250YWwsIDEgZm9yIHZlcnRpY2FsLCBhbmQgMiBmb3IgZmxpcCBpbiBib3RoIGRpcmVjdGlvbnMuPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX2dyYXlzY2FsZT0iIiAtIChhbnl0aGluZykgQ29udmVydCB0aGUgaW1hZ2UgdG8gZ3JheXNjYWxlPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX21lYW5yZW1vdmFsPSIiIC0gKGFueXRoaW5nKSBBdHRlbXB0IHRvIGFjaGlldmUgYSAic2tldGNoeSIgZWZmZWN0PC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX25lZ2F0ZT0iIiAtIChhbnl0aGluZykgTmVnYXRlIHRoZSBpbWFnZTwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9ub29wPSIiIC0gKGFueXRoaW5nKSBEbyBubyBwcm9jZXNzaW5nIChidXQgdHJpZ2dlcnMgYSBjYWNoZWQgaW1hZ2UpPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX3BpeGVsYXRlPSIiIC0gKHNpemVbLGFkdmFuY2VkXSkgUGl4ZWxhdGUgdGhlIGltYWdlLCBzcGVjaWZ5IGFuIGludGVnZXIgc2l6ZSBhbmQgYW4gb3B0aW9uYWwgYm9vbGVhbiAoZGVmYXVsdCBpcyBmYWxzZSkgdG8gZW5hYmxlIGFkdmFuY2VkIHBpeGVsYXRpb248L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfcmVmbGVjdD0iIiAtIChbcmVmbGVjdGlvbl9oZWlnaHRbLHJlZmxlY3Rpb25fb3BhY2l0eVssZGl2aWRlcl9oZWlnaHRdXV0pLCBDcmVhdGVzIHJlZmxlY3Rpb24gb2YgaW1hZ2UsIGN1cnJlbnRseSB3b3JraW5nIG9ubHkgd2l0aCBqcGcsanBlZyBpbWFnZXMgYWdhaW5zdCB3aGl0ZSBiYWNrZ3JvdW5kLjwvbGk+CjxsaT4KICA8ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9yZXNpemU9IiIgLSB0eXBlLG51bWJlclssbnVtYmVyWyx1cHNjYWxlXV0gLSBQZXJmb3JtIGEgcmVzaXplIG9mIHRoZSBzb3VyY2UgaW1hZ2UuICBCeSBkZWZhdWx0LCB0aGUgcmVzaXplIGZpbHRlciBhbGxvd3MgdXBzY2FsaW5nLiAgUG9zc2libGUgdmFsdWVzIGFyZToKICA8dWw+CiAgICA8bGk+cCxudW1iZXIgLSBQZXJmb3JtIGEgc2ltcGxlIHJlc2NhbGUgdG8gYSBjZXJ0YWluIHBlcmNlbnRhZ2UuICBpLmU6ICByZXNpemU9cCw1MCB0byByZXNpemUgdG8gNTAlIG9mIHRoZSBvcmlnaW5hbCBzaXplLjwvbGk+CiAgICA8bGk+cCxudW1iZXIsMCAtIFBlcmZvcm0gYSBzaW1wbGUgcmVzY2FsZSB0byBhIGNlcnRhaW4gcGVyY2VudGFnZS4gIGkuZTogIHJlc2l6ZT1wLDUwIHRvIHJlc2l6ZSB0byA1MCUgb2YgdGhlIG9yaWdpbmFsIHNpemUuIERvIG5vdCBhbGxvdyB1cHNjYWxpbmc8L2xpPgogICAgPGxpPncsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCB3aWR0aCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPXcsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIHdpZHRoIG9mIDgwIHBpeGVscy48L2xpPgogICAgPGxpPncsbnVtYmVyLDAgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgc3BlY2lmaWVkIHdpZHRoICh3aGlsZSByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gaS5lOiByZXNpemU9dyw4MCB0byBjcmVhdGUgYSB0aHVtYm5haWwgd2l0aCBhIG1heGltdW0gd2lkdGggb2YgODAgcGl4ZWxzLiBEbyBub3QgYWxsb3cgdXBzY2FsaW5nPC9saT4KICAgIDxsaT5oLG51bWJlciAtIFBlcmZvcm0gYSByZXNpemUgdG8gYSBzcGVjaWZpZWQgaGVpZ2h0ICh3aGlsZSByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gaS5lOiByZXNpemU9aCw4MCB0byBjcmVhdGUgYSB0aHVtYm5haWwgd2l0aCBhIG1heGltdW0gaGVpZ2h0IG9mIDgwIHBpeGVscy48L2xpPgogICAgPGxpPmgsbnVtYmVyLDAgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgc3BlY2lmaWVkIGhlaWdodCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPWgsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIGhlaWdodCBvZiA4MCBwaXhlbHMuIERvIG5vdCBhbGxvdyB1cHNjYWxpbmc8L2xpPgogICAgPGxpPmUsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSByZXNpemluZyB0aGUgbGFyZ2VzdCBlZGdlIHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUgKHdoaWxlIHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiBpLmU6IHJlc2l6ZT1lLDEwMCB0byBjcmVhdGUgYSB0aHVtYm5haWwgd2hvcyBsYXJnZXN0IGVkZ2UgaXMgMTAwIHBpeGVscy48L2xpPgogICAgPGxpPmUsbnVtYmVyLDAgLSBQZXJmb3JtIGEgcmVzaXplIHJlc2l6aW5nIHRoZSBsYXJnZXN0IGVkZ2UgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZSAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPWUsMTAwIHRvIGNyZWF0ZSBhIHRodW1ibmFpbCB3aG9zIGxhcmdlc3QgZWRnZSBpcyAxMDAgcGl4ZWxzLiAgRG8gbm90IGFsbG93IHVwc2NhbGluZy48L2xpPgogICAgPGxpPmMseCx5IC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIGN1c3RvbSBzaXplICh3aXRob3V0IHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgaS5lOiBmaWx0ZXJfcmVzaXplPWMsNTAsNzUgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHRoYXQgaXMgNTB4NzUgcGl4ZWxzLjwvbGk+CiAgICAuCiAgICA8bGk+Yyx4LHksMCAtIFBlcmZvcm0gYSByZXNpemUgdG8gYSBjdXN0b20gc2l6ZSAod2l0aG91dCByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gIGkuZTogZmlsdGVyX3Jlc2l6ZT1jLDUwLDc1IHRvIGNyZWF0ZSBhIHRodW1ibmFpbCB0aGF0IGlzIDUweDc1IHBpeGVscy4gRG8gbm90IGFsbG93IHVwc2NhbGluZy48L2xpPgogICAgLgogIDwvdWw+CjwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9yZXNpemV0b2ZpdD0iIiAtICh3aWR0aCxoZWlnaHRbLGNvbG9yWyxhbHBoYV1dKSAtIFBlcmZvcm0gYSByZXNpemUgb24gdGhlIGltYWdlIHNwZWNpZmllZC4gVGhpcyBhdHRlbXB0cyB0byByZXNjYWxlIHRoZSBpbWFnZSB0byB0aGUgZGVzdGluYXRpb24gc2l6ZSB3aGlsZSByZWF0aW5pbmcgYXNwZWN0IHJhdGlvLCB0aGUgaW1hZ2UgaXMgY2VudGVyZWQgaW4gdGhlIGJveCBzcGVjaWZpZWQgKGVpdGhlciBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBkZXBlbmRpbmcgdXBvbiBhc3BlY3QgcmF0aW8gYW5kIHRoZSBkZXN0aW5hdGlvbiBzaXplLCBhbmQgdGhlIGltYWdlIGlzIHN1cnJvdW5kZWQgYnkgdGhlIHN1cHBsaWVkIGNvbG9yLiAgQ29sb3JzIGNhbiBiZSBzcGVjaWZpZWQgYnkgbmFtZSAoc2VlIHRoZSBYMTEgY29sb3IgbmFtZXMpLCBvciBieSAjbm5ubm5uIGhleGFkZWNpbWFsIGZvcm1hdCwgb3IgYXMgcmdiIHZhbHVlcyBzZXBhcmF0ZWQgYnkgYSA6IGkuZTogIGZpbHRlcl9jcm9wdG9maXQ9NjAwLDQwMCwjZmYwMDAwLiAgVGhlIHNwZWNpYWwgY29sb3IgdmFsdWUgInRyYW5zcGFyZW50IiBjYW4gYmUgc3BlY2lmaWVkIHRvIGZvcmNlIHRoZSBiYWNrZ3JvdW5kIHRvIGJlIHRyYW5zcGFyZW50IChmb3IgaW1hZ2UgdHlwZXMgdGhhdCBzdXBwb3J0IGl0KS4gICBBbiBhbHBoYSB2YWx1ZSBtYXkgYmUgc3BlY2lmaWVkIGJldHdlZW4gMCBhbmQgMTI3IHRvIHNwZWNpZnkgZGlmZmVyZW50IGRlZ3JlZXMgb2YgdHJhbnNsdWNlbmN5IGZvciB0aGUgYmFja2dyb3VuZC4gICBBdCBubyB0aW1lIHdpbGwgdGhpcyBwbHVnaW4gcGVyZm9ybSBhbnkgdXBzY2FsaW5nLjwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9yb3RhdGU9IiIgLSAoYW5nbGUpIFNwZWNpZnkgdGhlIGludGVnZXIgYW5nbGUgKGNvdW50ZXIgY2xvY2t3aXNlKSB0byByb3RhdGUgdGhlIGltYWdlLCBUaGUgaW1hZ2UgaXMgcm90YXRlZCBhYm91dCBpdHMgY2VudGVyLjwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9yb3VuZGVkY29ybmVycz0iIiAtIChyYWRpdXNbLGNvbG9yXSkgU3BlY2lmeSBhbiBpbnRlZ2VyIHJhZGl1cyAoaW4gcGl4ZWxzKSBmb3Igcm91bmRpbmcgdGhlIGNvcm5lcnMuICBPcHRpb25hbGx5IHNwZWNpZnkgYSBjb2xvciBmb3IgdGhlIHJvdW5kZWQgY29ybmVycy4gIFRoZSBzcGVjaWFsIHZhbHVlIGlmICJ0cmFuc3BhcmVudCIgZm9yIHRoZSBjb2xvciB3aWxsIGZvcmNlIHRoZSBpbWFnZSB0byBiZSBjb252ZXJ0ZWQgdG8gYSBwbmcgYW5kIGEgdHJhbnNwYXJlbnQgY29sb3IgdXNlZC48L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfc2hhcnBlbj0iIiAtIChpbnRlZ2VyKSBTcGVjaWZ5IGFuIGFkanVzdG1lbnQgKGJldHdlZW4gLTEwIGFuZCAxMCkgdG8gdGhlIHNoYXJwZW4gZmlsdGVyLiAgTG93ZXIgdmFsdWVzIHdpbGwgbGlnaHRlbiB0aGUgc2hhcnBlbmluZyBlZmZlY3QuICBIaWdoZXIgdmFsdWVzIGluY3JlYXNlIGl0LiAgTm90ZTogc2hhcnBlbmluZyBtYXkgaGF2ZSBhZHZlcnNlIGVmZmVjdHMgb24gc29tZSBpbWFnZXMsIGFuZCBzaG91bGQgdXN1YWxseSBiZSBzcGVjaWZpZWQgYXMgdGhlIGxhc3QgZmlsdGVyLCB1bmxlc3MgdGhlIGZpbHRlciBtYXkgYWRkIGJvcmRlcnMgdG8gdGhlIGltYWdlLjwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl90cmFuc3BhcmVudD0iIiAtIChjb2xvclssYWxwaGFdKSBDb252ZXJ0cyBhIGpwZWcgaW1hZ2UgdG8gdHJhbnNwYXJlbnQgUE5HIGJ5IGNvbnZlcnRpbmcgYWxsIG9mIHRoZSBwaXhlbHMgb2YgdGhlIHNwZWNpZmllZCBjb2xvciB0byB0aGUgdHJhbnNwYXJlbnQgY29sb3IuICBPcHRpb25hbGx5LCBhbiBhbHBoYSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEyNyBjYW4gYmUgc3BlY2lmaWVkIHRvIGluZGljYXRlIHNvbWUgYWxwaGEgbGV2ZWwgYmxlbmRpbmc8L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfdW50cmFuc3BhcmVudD0iIiAtIChjb2xvclsscGVyY2VudF0pIENvbnZlcnRzIGEgdHJhbnNwYXJlbnQgcG5nIGltYWdlIHRvIGEganBlZyBpbWFnZSBieSBjb3B5aW5nIGEgdHJhbnNwYXJlbnQvYWxwaGEgYmxlbmRlZCBwbmcgb3ZlcnRvcCBvZiBhbiBpbWFnZSBvZiB0aGUgYXBwcm9wcmlhdGUgY29sb3IuPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX3dhdGVybWFyaz0iIiAtIChib29sfHN0cmluZyksIFNwZWNpZnkgdGhhdCB0aGUgd2F0ZXJtYXJrIChhcyBzcGVjaWZpZWQgaW4gdGhlIENNU01TRXh0IGFkbWluIHBhbmVsKSBzaG91bGQgYmUgYXBwbGllZCB0byB0aGUgaW1hZ2UuICBBbiBvcHRpb25hbCBzdHJpbmcgY2FuIGJlIHNwZWNpZmllZCB0byBhbGxvdyBjdXN0b21pemluZyB0aGUgdGV4dCBpbiB0aGUgd2F0ZXJtYXJrLiAgVGhlIHN0cmluZyBjYW5ub3QgY29udGFpbiBIVE1MIGNoYXJhY3RlcnMsIGFuZCBjYW5ub3QgYmUgbW9yZSB0aGFuIDUwIGNoYXJhY3RlcnMgaW4gbGVuZ3RoIChpdCB3aWxsIGJlIHRyaW1tZWQpLiAgTm90ZSwgIGRlcGVuZGluZyBvbiBpbWFnZSBzaXplLCBhbmQgd2F0ZXJtYXJrIHNldHRpbmdzIHRoZSB0ZXh0IG1heSBub3QgYmUgdmlzaWJsZSBvciBtYXkgYmUgY2xpcHBlZCBieSB0aGUgaW1hZ2UuPC9saT4KCiAgPC9kaXY+CiAgPGRpdiBpZD0ic21hcnR5X2MiPgogICAgPGg0PkF1dG9tYXRpYyBQcm9jZXNzaW5nOjwvaDQ+CjxwPlRoaXMgbW9kdWxlIGluY2x1ZGVzIGEgc21hcnR5IGJsb2NrIHRhZyBjYWxsZWQgPGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+JiMxMjM7c2lfY29udmVydH08L2NvZGU+IHRoYXQgY2FuIHN1cnJvdW5kIGEgYmxvY2sgb2YgaHRtbCwgb3Igb3RoZXIgc21hcnR5IHRhZ3MgdG8gYWxsb3cgYXV0b21hdGljIGltYWdlIHByb2Nlc3NpbmcuICBUaGlzIHRhZyBjYW4gYmUgdXNlZCBsaWtlOiAoZm9yIGV4YW1wbGUpOjwvcD4KPHByZT48Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij4mIzEyMztzaV9jb252ZXJ0fSYjMTIzO2NvbnRlbnR9JiMxMjM7L3NpX2NvbnZlcnR9PC9jb2RlPjwvcHJlPgo8cD5UaGlzIHdpbGwgYWxsb3cgeW91ciB1c2VycyB0byBpbmNsdWRlIGltYWdlcyBpbnRvIHBhZ2VzIHVzaW5nIHRoZSBub3JtYWwgd3lzaXd5ZyB0b29scywgYW5kIHRvIGhhdmUgdGhlbSBhdXRvbWF0aWNhbGx5IHByb2Nlc3NlZCBhbmQgZW1iZWRkZWQgaW50byB0aGUgcGFnZSB1c2luZyB0aGUgbWFnaWMgb2YgJiMxMjM7U21hcnRJbWFnZX0uIGkuZTogU2VlIHRoZSBmb2xsb3dpbmcgY29kZTo8L3A+CjxwcmU+PGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+JiMxMjM7c2lfY29udmVydCBmaWx0ZXJfZ3JheXNjYWxlPTEgZmlsdGVyX3dhdGVybWFyaz0xfSYjMTIzO2NvbnRlbnR9JiMxMjM7L3NpX2NvbnZlcnR9PC9jb2RlPjwvcHJlPgo8cD5UaGUgYWJvdmUgY29kZSB3aWxsIGNhcHR1cmUgYWxsIGltYWdlIHRhZ3MsIGFuZCBjb252ZXJ0IHRoZW0gdG8gZ3JheXNjYWxlIGFuZCB0aGVuIGFwcGx5IHRoZSB3YXRlcm1hcmsgKGFjY29yZGluZyB0byB0aGUgc2V0dGluZ3MgaW4gdGhlIENHRXh0ZW5zaW9ucyBtb2R1bGUpLiAgQWxsIG9mIHRoZSBmaWx0ZXJpbmcgcGFyYW1ldGVycyBhdmFpbGFibGUgdG8gdGhlIDxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPiYjMTIzO1NtYXJ0SW1hZ2V9PC9jb2RlPiB0YWcgYXJlIGF2YWlsYWJsZSB0byB0aGlzIHRhZyAoZm9yIGltYWdlIHNjYWxpbmcgZXRjLikuICBBZGRpdGlvbmFsbHksIHR3byBuZXcgcGFyYW1ldGVycyBoYXZlIGJlZW4gaW50cm9kdWNlZDogPHN0cm9uZz5tYXhfd2lkdGg8L3N0cm9uZz4gYW5kIDxzdHJvbmc+bWF4X2hlaWdodDwvc3Ryb25nPiB3aGljaCBjYW4gYmUgdXNlZCB0byBzZXQgYSBtYXhpbXVtIHNpemUgZm9yIGltYWdlcy4uPC9wPgo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogM2VtOyI+CiAgPHN0cm9uZyBzdHlsZT0iY29sb3I6IHJlZDsiPk5vdGU6PC9zdHJvbmc+CiAgPHA+MS4gVGhpcyB0YWcgcGFyc2VzIHRoZSBIVE1MIGNvbnRlbnQgYmV0d2VlbiB0aGUgc3RhcnQgYW5kIGVuZCB0YWdzIHRvIGZpbmQgdGhlIDxpbWc+IHRhZ3MuICBJdCB0aGVuIHdpbGwgb3V0cHV0IHN5bnRhY3RpY2FsbHkgdmFsaWQgSFRNTCBmb3IgdGhlIHN1YnNldCBvZiBjb2RlIGl0IHdhcyBwcm92aWRlZC4gIFRoZXJlZm9yZSBpdCBpcyBpbXBvcnRhbnQgdGhhdCB0aGUgc25pcHBldCBvZiBIVE1MIHBhc3NlZCB0byB0aGlzIHRhZyBiZSBpbnRhY3QgYW5kIGFzIGNsb3NlIHRvIHZhbGlkIGFzIHBvc3NpYmxlLiAgPHN0cm9uZz5Vc2Ugd2l0aCBjYXV0aW9uLjwvc3Ryb25nPgogIDxwPjIuICBpbWFnZSB0YWdzIHdpdGggdGhlIGNsYXNzICZxdW90O25vc2kmcXVvdDsgd2lsbCBiZSBpZ25vcmVkIGJ5IHRoZSAmIzEyMztzaV9jb252ZXJ0fSB0YWcuLjwvcD4KICA8cD4zLiAgQXR0cmlidXRlcyBsaWtlIGFsdCBhbmQgdGl0bGUgb24gdGhlIGlucHV0IGltYWdlcyB3aWxsIG5vdCBiZSBvdmVycmlkZGVuIGlmIHRoZXkgZXhpc3QuPC9wPgo8L2Rpdj4KCjxoND5BZHZhbmNlZCBVdGlsaXRpZXM6PC9oND4KPHVsPgogIDxsaT4KICAgIDxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPiYjMTIzO3NpX2dldGltYWdlc308L2NvZGU+CiAgICA8cD5BIHBsdWdpbiB0byBleHRyYWN0IGltYWdlcyBmcm9tIGEgYmxvY2sgb2YgSFRNTCBjb2RlIGZvciBmdXJ0aGVyIHByb2Nlc3Npbmcgb3V0c2lkZSBvZiBzaS48L3A+CiAgICA8cD48c3Ryb25nPkFyZ3VtZW50czo8L3N0cm9uZz4KICAgIDx1bD4KICAgICAgPGxpPmltYWdlc29ubHk6IHRoZSBjb250ZW50IHJldHVybmVkIHdpbGwgY29udGFpbiBvbmx5ICZsdDtpbWcmZ3Q7IHRhZ3MuICBBbGwgb3RoZXIgdGFncyB3aWxsIGJlIHJlbW92ZWQuICBOb3QgYXBwbGljYWJsZSBpZiB0aGUgbm9jb250ZW50IHBhcmFtZXRlciBpcyBzcGVjaWZpZWQuPC9saT4KICAgICAgPGxpPm5vY29udGVudDogZG8gbm90IG91dHB1dCBhbnkgY29udGVudCB3aGF0c29ldmVyLjwvbGk+CiAgICAgIDxsaT5hc3NpZ246IGNyZWF0ZSBhbiBhcnJheSByZXByZXNlaW50aW5nIGFsbCBvZiB0aGUgYXZhaWxhYmxlIGluZm9ybWF0aW9uIGZvciB0aGUgZm91bmQgJmx0O2ltZyZndDsgdGFncyBhbmQgYXNzaWduIGl0IHRvIHRoZSBuYW1lZCBzbWFydHkgdmFyaWFibGUuPC9saT4KICAgIDwvdWw+CiAgICA8L3A+CiAgICA8cD48c3Ryb25nPlVzYWdlOjwvc3Ryb25nPgogICAgPHVsPgogICAgICA8bGk+CiAgICAgICAgUmVtb3ZlIGFsbCBidXQgdGhlIGltYWdlIHRhZ3MgaW4gdGhlIGVuY2xvc2VkIEhUTUw6PGJyLz4KICAgICAgICA8cHJlPjxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPiYjMTIzO3NpX2dldGltYWdlcyBpbWFnZXNvbmx5PTF9JiMxMjM7Y29udGVudH0mIzEyMzsvc2lfZ2V0aW1hZ2VzfTwvY29kZT48L3ByZT4KICAgICAgPC9saT4KICAgICAgPGxpPgogICAgICAgIFJldHVybiBhIGxpc3Qgb2YgdGhlIGltYWdlIHRhZ3MgaW4gdGhlIGVuY2xvc2VkIEhUTUwgY29udGVudCwgYnV0IGxlYXZlIHRoZSBjb250ZW50IHVudG91Y2hlZDo8YnIvPgogICAgICAgIDxwcmU+PGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+JiMxMjM7c2lfZ2V0aW1hZ2VzIGFzc2lnbj0naW1hZ2VpbmZvJ30mIzEyMztjb250ZW50fSYjMTIzOy9zaV9nZXRpbWFnZXN9PC9jb2RlPjwvcHJlPgogICAgICA8L2xpPgogICAgICA8bGk+CiAgICAgICAgUmV0dXJuIGEgbGlzdCBvZiB0aGUgaW1hZ2UgdGFncyBpbiB0aGUgZW5jbG9zZWQgSFRNTCBjb250ZW50LCBhbmQgZG8gbm90IG91dHB1dCBhbnkgb2YgdGhlIG9yaWdpbmFsIGNvbnRlbnQ6PGJyLz4KICAgICAgICA8cHJlPjxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPiYjMTIzO3NpX2dldGltYWdlcyBhc3NpZ249J2ltYWdlaW5mbycgbm9jb250ZW50PTF9JiMxMjM7Y29udGVudH0mIzEyMzsvc2lfZ2V0aW1hZ2VzfTwvY29kZT48L3ByZT4KICAgICAgPC9saT4KICAgIDwvdWw+CiAgICA8L3A+CiAgPC9saT4KPC91bD4KICA8L2Rpdj4KICA8ZGl2IGlkPSJhZHZfYyI+CiAgICA8aDM+QWR2YW5jZWQ8L2gzPgo8aDQ+SW1hZ2UgRW1iZWRkaW5nPC9oND4KPHA+SW1hZ2UgZW1iZWRkaW5nIGVuY29kZXMgdGhlIGltYWdlIGludG8gYSBkYXRhIDxzdHJvbmc+VVJJPC9zdHJvbmc+IHdoaWNoIGlzIGVtYmVkZGVkIGRpcmVjdGx5IGluIHRoZSBwYWdlIChvciBzdHlsZXNoZWV0KSBjb250ZW50LiAgVGhpcyByZWR1Y2VzIHJlcXVlc3RzIHRoYXQgdGhlIGJyb3dzZXIgbXVzdCBtYWtlIHRvIHJlY2VpdmUgaW1hZ2VzIGZyb20geW91ciBzaXRlLiAgSG93ZXZlciBpdCBkb2VzIGluY3JlYXNlIHRoZSBzaXplIG9mIHRoZSA8c3Ryb25nPkhUTUw8L3N0cm9uZz4gcGFnZS4gIE9uIGltYWdlIGhlYXZ5IHBhZ2VzIHlvdSBzaG91bGQgbWl4IHRoZSB1c2Ugb2YgZW1iZWRkZWQgaW1hZ2VzLjwvcD4KCjxoND5BIFNpbXBsZSBHYWxsZXJ5PC9oND4KPHA+VGhlIGNvZGUgYmVsb3cgdXNlcyB0aGUgPHN0cm9uZz4mIzEyMztTbWFydEltYWdlfTwvc3Ryb25nPiBtb2R1bGUsIGZhbmN5Ym94LCBhbmQgYSBiaXQgb2Ygc21hcnR5IG1hZ2ljIHRvIGdlbmVyYXRlIGEgc2ltcGxlIGxpZ2h0Ym94IHN0eWxlIGFsYnVtIGZyb20gYSBzdWJkaXJlY3Rvcnkgb24geW91ciB3ZWJzaXRlLCB3aGlsZSBwcm9jZXNzaW5nIHRoZSBpbWFnZXMgZm9yIHdlYiBzdGFuZGFyZHMsIGFuZCBjcmVhdGluZyB0aHVtYm5haWxzLjwvcD4KPHByZSBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2RkZDsgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Ij4KICA8Y29kZT4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDE6PC9zcGFuPiAmbHQ7c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCImZ3Q7JiMxMjM7bGl0ZXJhbH0KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDI6PC9zcGFuPiBqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkmIzEyMzsKICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDM6PC9zcGFuPiAgalF1ZXJ5KCdhLmZhbmN5Ym94JykuZmFuY3lib3goKTsKICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDQ6PC9zcGFuPiB9KTsKICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDU6PC9zcGFuPiAmIzEyMzsvbGl0ZXJhbH0mbHQ7L3NjcmlwdCZndDsKICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDY6PC9zcGFuPiAmIzEyMzthc3NpZ24gdmFyPSdmaWxlcycgdmFsdWU9J3VwbG9hZHMvYWxidW0vKi5qcGcnfGdsb2J9CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiA3Ojwvc3Bhbj4gJiMxMjM7aWYgY291bnQoJGZpbGVzKX0KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDg6PC9zcGFuPiAmbHQ7ZGl2IHN0eWxlPSJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxNTBweDsgb3ZlcmZsb3c6IGF1dG87IiZndDsKICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDk6PC9zcGFuPiAmIzEyMztmb3JlYWNoIGZyb209JGZpbGVzIGl0ZW09J2ZpbGUnfQogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4xMDo8L3NwYW4+ICAmbHQ7YSByZWw9J3NpbXBsZV9hbGJ1bScgY2xhc3M9ImZhbmN5Ym94IiBocmVmPSI8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij4mIzEyMztTbWFydEltYWdlIHNyYz0kZmlsZSBmaWx0ZXJfcm90YXRlPTkwIGZpbHRlcl93YXRlcm1hcms9MSBmaWx0ZXJfcmVzaXplPSdoLDUwMCcgbm90YWc9MSBub2VtYmVkPTF9PC9zcGFuPiImZ3Q7CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPjExOjwvc3Bhbj4gIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPiYjMTIzO1NtYXJ0SW1hZ2Ugc3JjPSRmaWxlIGZpbHRlcl9yb3RhdGU9OTAgZmlsdGVyX2dyYXlzY2FsZT0xIGZpbHRlcl93YXRlcm1hcms9MSBmaWx0ZXJfcmVzaXplPSdoLDE1MCd9PC9zcGFuPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4xMjo8L3NwYW4+ICAmbHQ7L2EmZ3Q7CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPjEzOjwvc3Bhbj4gJiMxMjM7L2ZvcmVhY2h9CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPjE0Ojwvc3Bhbj4gJmx0Oy9kaXYmZ3Q7CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPjE1Ojwvc3Bhbj4gJiMxMjM7L2lmfQogIDwvY29kZT4KPC9wcmU+Cjxici8+CjxwPkxpbmVzIDEgdGhyb3VnaCA1IHV0aWxpemUgalF1ZXJ5IHRvIGNhbGwgZmFuY3lib3ggb24gYW55IGxpbmtzIHRoYXQgaGF2ZSB0aGUgJnF1b3Q7ZmFuY3lib3gmcXVvdDsgY2xhc3MuICBUaGUgZmFuY3lib3ggalF1ZXJ5IHBsdWdpbiBpcyBpbmNsdWRlZCB3aXRoIHRoZSBKUXVlcnlUb29scyBtb2R1bGUuPC9wPgo8cD5MaW5lIDYgdXNlcyBhIGJ1aWx0IGluIHBocCBmdW5jdGlvbiBjYWxsZWQgZ2xvYiwgYW5kIHNvbWUgc21hcnR5IG1hZ2ljIHRvIGZpbmQgYWxsIG9mIHRoZSBKUEcgZmlsZXMgaW4gdGhlIHVwbG9hZHMvYWxidW0gZGlyZWN0b3J5IGJlbG93IG91ciBpbnN0YWxsYXRpb24gcm9vdC48L3A+CjxwPkxpbmUgNyBpcyBhIHRlc3QgdG8gc2VlIGlmIGFueSBmaWxlcyB3ZXJlIGFjdHVhbGx5IGZvdW5kIGluIHRoZSBhc3NpZ24gbGluZSBzdGF0ZWQgYWJvdmUuICBUaGlzIGlmIHN0YXRlbWVudCBpcyBjbG9zZWQgb24gbGluZSAxNS48L3A+CjxwPkxpbmUgOCBvcGVucyB1cCBhIGRpdiB0byBjb250YWluIG91ciBhbGJ1bS4gIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBleGFtcGxlIHRoZSBzdHlsZXMgd2VyZSBpbmNsdWRlZCBpbmxpbmUsIGhvd2V2ZXIgYSBjbGFzcyB0aGF0IHdhcyBkZWZpbmVkIGluIHRoZSBzdHlsZXNoZWV0IHNob3VsZCBiZSB1c2VkIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzLiAgVGhlIGNsb3NpbmcgdGFnIGZvciB0aGlzIGRpdiBpcyBvbiBsaW5lIDE0LCBqdXN0IGJlZm9yZSB0aGUgPGNvZGU+JiMxMjM7L2lmfTwvY29kZT4uPC9wPgo8cD5MaW5lIDkgYmVnaW5zIGEgbG9vcCB0aHJvdWdoIGFsbCBvZiB0aGUgZmlsZXMgdGhhdCB3ZSBmb3VuZCBpbiB0aGUgZGlyZWN0b3J5LiAgVGhpcyBsb29wIGlzIGNsb3NlZCBvbiBsaW5lIDEzLjwvcD4KPGJyLz4KPHA+TGluZXMgMTAgYW5kIDExIGFyZSB0aGUgcmVhbCBtYWdpYy4gIEhlcmUgd2UgY3JlYXRlIGEgbGluayB3aXRoIGNsYXNzICZxdW90O2ZhbmN5Ym94JnF1b3Q7IGFuZCBhZGRzIHRoZSA8Y29kZT5yZWw8L2NvZGU+IGF0dHJpYnV0ZSBzbyB0aGF0IGZhbmN5Ym94IGtub3dzIHRoYXQgYWxsIG9mIHRoZXNlIGltYWdlcyBzaG91bGQgYmUgZ3JvdXBlZCB0b2dldGhlciBhcyBvbmUgYWxidW0gYW5kIGFsbG93IGNsaWNraW5nIGJldHdlZW4gdGhlIGltYWdlcy4gIFRoZW4gY29tZXMgdGhlIHBhcnQgd2hlcmUgd2UgZGVmaW5lIG91ciBpbWFnZXMuCjxwPldlIHN1cHBseSB0aGUgJGZpbGUgdmFyaWFibGUgdG8gdGhlIHNyYyBhcmd1bWVudCBvZiB0aGUgPGNvZGU+JiMxMjM7U21hcnRJbWFnZX08L2NvZGU+IHRhZyBzbyB0aGF0IGl0IHdpbGwgZ2V0IHRoZSBuYW1lIG9mIGVhY2ggbWF0Y2hlZCBqcGVnIGFzIHRoZSBsb29wIGlzIGV4ZWN1dGVkLjwvcD4KPHA+VGhlIGltYWdlcyBJIHdhcyB0ZXN0aW5nIHdpdGggd2VyZSB1cGxvYWRlZCBmcm9tIG15IGlwb2QsIGFuZCBhbGwgc2VlbWVkIHRvIGJlIHJvdGF0ZWQgOTAgZGVncmVlcyBjb3VudGVyIGNsb2NrZWlzLiAgU28gdGhlIGZpcnN0IGZpbHRlciBJIGFkZGVkIHdhcyB0byByb3RhdGUgdGhlIGltYWdlIDkwIGRlZ3JlZXMgY2xvY2t3aXNlIHZpYSB0aGUgPGNvZGU+ZmlsdGVyX3JvdGF0ZT05MDwvY29kZT4gYXJndW1lbnQuIFRoZSBpbWFnZXMgdGhlbiBuZWVkZWQgdG8gaGF2ZSB0aGUgd2F0ZXJtYXJrIG9uIHRoZW0gPGVtPih0aGlzIGlzIGp1c3QgZm9yIGV4YW1wbGUgcHVycG9zZXMsIEkgZG9udCB0aGluayBhbnlib2R5IHdvdWxkIHJlYWxseSBzdGVhbCB0aGUgYmx1cnJ5IHBpY3R1cmVzIGZyb20gbXkgaXBvZCBmb3IgY29tbWVyY2lhbCBwdXJwb3Nlcyk8L2VtPiwgc28gSSBhZGRlZCB0aGUgPGNvZGU+ZmlsdGVyX3dhdGVybWFyaz0xPC9jb2RlPiBwYXJhbWV0ZXIuICBBbmQgZmluYWxseSwgYmVjYXVzZSBldmVuIHRoZSBpcG9kIHRvdWNoIGNhbiB0YWtlIHBpY3R1cmVzIHRoYXQgYXJlIHRvbyBiaWcgdG8gZGlzcGxheSBvbiB0aGUgc2NyZWVuIEkgd2FudGVkIHRvIHJlc2l6ZSB0aGVtIHRvIGEgbWF4aW11bSBoZWlnaHQgb2YgNTAwIHBpeGVscy4gIFRoaXMgd2FzIGFjY29tcGxpc2hlZCB2aWEgdGhlIDxjb2RlPmZpbHRlcl9yZXNpemU9aCw1MDA8L2NvZGU+IGFyZ3VtZW50LiAgV2UgYWRkIHRoZSA8Y29kZT5ub2VtYmVkPTE8L2NvZGU+IGFyZ3VtZW50IGJlY2F1c2UgZmFuY3lib3ggZG9lcyBub3QgdW5kZXJzdGFuZCBob3cgdG8gZGlzcGxheSBlbWJlZGRlZCBpbWFnZXMgaW4gaXRzIHBvcHVwIHdpbmRvdy4gIFRoaXMgZGVmaW5lZCB0aGUgaW1hZ2UgdGhhdCB3ZSB3ZXJlIGdvaW5nIHRvIGxpbmsgdG8uPC9wPgo8cD5OZXh0IHdlIG5lZWRlZCB0byBkZWZpbmUgdGhlIHRodW1ibmFpbCBpbWFnZSB0aGF0IHdlIGFyZSBnb2luZyB0byB1c2UgaW4gdGhlIGdhbGxlcnkuICBUaGlzIGNhbGwgdG8gPGNvZGU+JiMxMjM7U21hcnRJbWFnZX08L2NvZGU+IGlzIGFsbW9zdCBpZGVudGljYWwgdG8gdGhlIGZpcnN0IGNhbGwsIGV4Y2VwdCB0aGF0IHdlIHVzZSBhIGRpZmZlcmVudCBoZWlnaHQgdmFsdWUgKDE1MCBwaXhlbHMpIGZvciB0aGUgdGh1bWJuYWlsLCBhbmQgZm9yIGtpY2tzIEkgY29udmVydGVkIHRoZSB0aHVtYm5haWwgdG8gZ3JheXNjYWxlIDxzdHJvbmc+YmVmb3JlPC9zdHJvbmc+IGFwcGx5aW5nIHRoZSB3YXRlcm1hcmsuICBJIGFsc28gcmVtb3ZlZCB0aGUgbm9lbWJlZD0xIGFyZ3VtZW50IHNvIHRoYXQgdGhlIHN5c3RlbSBjb3VsZCBlbWJlZCB0aGUgaW1hZ2UgaW4gdGhlIEhUTUwgb3V0cHV0IGlmIHRoZSBicm93c2VyIHN1cHBvcnRlZCBpdC48L3A+Cgo8aDQ+UmVzcG9uc2l2ZSBJbWFnZXM8L2g0Pgo8cD5TbWFydEltYWdlIGlzIGNhcGFibGUgb2YgYXV0b21hdGljYWxseSBzY2FsaW5nIGltYWdlcyBkb3duIHRvIGEgc2l6ZSB0aGF0IGlzIHN1aXRhYmxlIGZvciBtb2JpbGUgZGV2aWNlcy4gIFRoaXMgYm9vc3RzIHBlcmZvcm1hbmNlIGJ5IG1pbmltaXppbmcgdGhlIGltYWdlIHNpemUgZm9yIG1vYmlsZSBkZXZpY2VzLCBhbmQgdGhlcmVmb3JlIGltcHJvdmVzIHBlcmZvcm1hbmNlIGFuZCB0aGUgZ2VuZXJhbCB1c2VyIGV4cGVyaWVuY2UuICBUaGlzIGFjdGlvbiBtdXN0IGJlIGVuYWJsZWQgaW4gdHdvIHdheXM6PC9wPgo8b2w+CiAgPGxpPgogICAgQWRkIDxjb2RlPiYjMTIzO1NtYXJ0SW1hZ2UgYWN0aW9uPXJlc3BvbnNpdmV9PC9jb2RlPiBqdXN0IGFmdGVyIHRoZSA8Y29kZT4mbHQ7aGVhZCZndDs8L2NvZGU+IHRhZyBpbiB5b3VyIHBhZ2UgdGVtcGxhdGUuCiAgICA8cD5UaGlzIHdpbGwgb3V0cHV0IGphdmFzY3JpcHQgdGhhdCB3aWxsIGRldGVjdCB0aGUgZGV2aWNlcyBzY3JlZW4gcmVzb2x1dGlvbiBhbmQgcGl4ZWwgcmF0aW8sIGFuZCBjcmVhdGUgYSBjb29raWUsIGFuZCB0aGVuIHJlZGlyZWN0IGFnYWluIGJhY2sgdG8gdGhlIHNhbWUgVVJMIHNvIHRoYXQgdGhlIHNlcnZlciBjYW4gZ2V0IHRoZSBjb29raWUgaW5mb3JtYXRpb24uICAgVGhlIGNvb2tpZSBpcyBzZXQgdG8gZXhwaXJlIGluIG9uZSB5ZWFyLiAgIElmIHRoZSBjb29raWUgZG9lcyBub3QgZXhpc3QsIHRoZW4gU21hcnRJbWFnZSBjYW5ub3QgcGVyZm9ybSByZXNwb25zaXZlIGltYWdlIHJlc2l6aW5nLjwvcD4KICA8L2xpPgogIDxsaT4KICAgIEVuc3VyZSB0aGF0ICZxdW90O1Jlc3BvbnNpdmUgSW1hZ2VzJnF1b3Q7IGlzIGVuYWJsZWQgaW4gdGhlIFNtYXJ0SW1hZ2UgbW9kdWxlIGFkbWluIHBhbmVsLgogICAgPHA+SWYgZGlzYWJsZWQsIHRoZSBzeXN0ZW0gd2lsbCBub3QgcGVyZm9ybSByZXNwb25zaXZlIHNjYWxpbmcuICBFdmVuIGlmIHRoZSBjb29raWUgZXhpc3RzIGZyb20gdXNlIG9mIDxjb2RlPiYjMTIzO1NtYXJ0SW1hZ2UgYWN0aW9uPXJlc3BvbnNpdmV9PC9jb2RlPjwvcD4KICA8L2xpPgo8L29sPgo8cD5TbWFydEltYWdlIGFsbG93cyBzcGVjaWZ5aW5nIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgYnJlYWtwb2ludHMgaW4gdGhlIGFkbWluIHBhbmVsLiAgSWYgYnJlYWtwb2ludHMgYXJlIHNwZWNpZmllZCBhbmQgdGhlIHN5c3RlbSBmb3VuZCBkZXZpY2UgY2FwYWJpbGl0aWVzIDxlbT4oYW5kIHJlc3BvbnNpdmUgYmVoYXZpb3IgaXMgbm90IGRpc2FibGVkKTwvZW0+IFRoZW4gdGhlIHN5c3RlbSB3aWxsIGZpbmQgdGhlIGNsb3Nlc3QgbWF0Y2hpbmcgYnJlYWtwb2ludCB0byB0aGUgZGV2aWNlIHdpZHRoIGFuZCBoZWlnaHQgYW5kIHVzZSB0aGUgYnJlYWtwb2ludCB2YWx1ZSB0byBjYWxjdWxhdGUgYSBuZXcgbWF4aW11bSBzaXplIGZvciB0aGUgaW1hZ2Ugd2hpbHN0IHN0aWxsIHJldGFpbmluZyBhc3BlY3QgcmF0aW8uPC9wPgo8cD5UaGUgZGV0ZWN0aW9uIG9mIGEgbW9iaWxlIGRldmljZSwgYW5kIGVuYWJsaW5nIHJlc3BvbnNpdmUgYmVoYXZpb3Igd2lsbCBvdmVycmlkZSB0aGUgbm9hdXRvc2NhbGUgcGFyYW1ldGVyLiAgVGhlIHJlc3BvbnNpdmUgYmVoYXZpb3IgY2FuIGJlIGRpc2FibGVkIGVpdGhlciBpbiB0aGUgbW9kdWxlcyBhZG1pbiBwYW5lbCwgb3IgdmlhIHRoZSBub3Jlc3BvbnNpdmUgcGFyYW1ldGVyLjwvcD4KPHA+U21hcnRJbWFnZSBpcyBjYXBhYmxlIG9mIGRldGVjdGluZyB0aGUgZHByIDxlbT4oZGV2aWNlIHBpeGVsIHJhdGlvKTwvZW0+IG9mIG1vYmlsZSBkZXZpY2VzLiAgSWYgbm90IGRpc2FibGVkLCBhbmQgYSBkcHIgaGlnaGVyIHRoYW4gMSBpcyBkZXRlY3RlZCB0aGUgYXV0by1zY2FsZWQgaW1hZ2Ugc2l6ZSB3aWxsIGJlIGluY3JlYXNlZCBieSB0aGUgZHByIG9mIHRoZSBkZXZpY2UuICBIb3dldmVyIHRoZSBvdXRwdXQgaW1nIHRhZyB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMgd2lsbCBub3QuICBUaGlzIGZvcmNlcyB0aGUgYnJvd3NlciB3aXRoIGEgaGlnaGVyIGRwciB0byBkb3dubG9hZCBhIGxhcmdlciBpbWFnZSwgYW5kIHNxdWVlemUgaXQgaW50byB0aGUgc2FtZSBzaXplIGJveCwgdGh1cyBnaXZpbmcgYSBoaWdoZXIgcXVhbGl0eSBvdXRwdXQuPC9wPgo8aDQ+QXV0b1NjYWxpbmc8L2g0Pgo8cD5BdXRvIHNjYWxpbmcgaXMgYSBmZWF0dXJlIHRoYXQgd2lsbCBhZGp1c3QgdGhlIG91dHB1dCBpbWFnZSBzaXplIGJhc2VkIG9uIHRoZSBzb3VyY2UgaW1hZ2Ugc2l6ZSwgdGhlIGRldmljZSBjYXBhYmlsaXRpZXMgPGVtPihpZiByZXNwb25zaXZlIGJlaGF2aW9yIGlzIGVuYWJsZWQpPC9lbT4sIGJyZWFrcG9pbnRzIDxlbT4oaWYgZW5hYmxlZCk8L2VtPiwgdGhlLCB0aGUgd2lkdGggYW5kIGhlaWdodCBwYXJhbWV0ZXJzLCBhbmQgdGhlIG1heF93aWR0aCBhbmQgbWF4X2hlaWdodCBwYXJhbWV0ZXJzLiAgVGhlIHN5c3RlbSB3aWxsIGNvbWJpbmUgYWxsIG9mIHRoaXMgaW5mb3JtYXRpb24gYW5kIGFkanVzdCB0aGUgbWF4X3dpZHRoIGFuZCBtYXhfaGVpZ2h0IHZhbHVlcyB0byB0aGUgc21hbGxlc3QgcG9zc2libGUgdmFsdWVzIHdpdGhvdXQgZWZmZWN0aW5nIGltYWdlIGFzcGVjdCByYXRpby48L3A+CjxwPklmIHJlc3BvbnNpdmUgZnVuY3Rpb25hbGl0eSBpcyBlbmFibGVkLCBhbmQgZGV2aWNlIGNhcGFiaWxpdGllcyBhcmUgZGV0ZWN0ZWQsICB0aGVuIGF1dG9zY2FsaW5nIGlzIGZvcmNlZCB0byBiZSBhY3RpdmUuPC9wPgo8aDQ+U3R5bGVzaGVldHM6PC9oND4KPHA+VGhpcyBtb2R1bGUgYWxzbyB3b3JrcyB3aXRoaW4gc3R5bGVzaGVldHMsIGlmIHVzaW5nIHRoZSAmIzEyMztjbXNfc3R5bGVzaGVldH0gdGFnIGluIHlvdXIgcGFnZSB0ZW1wbGF0ZS4gIEJlY2F1c2UgdGhlIHNtYXJ0eSBzeW50YXggaXMgc2xpZ2h0bHkgZGlmZmVyZW50IGluc2lkZSB0aGUgJiMxMjM7Y21zX3N0eWxlc2hlZXR9IHRhZyB5b3UgdXRpbGl6ZSB0aGUgbW9kdWxlIHVzaW5nIHRoZSBbWyBhbmQgXV0gZGVsaW1pdGVycy4gIGkuZTogPGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+ZGl2LmhlYWRlciAmIzEyMzsgYmFja2dyb3VuZDogdXJsKFtbU21hcnRJbWFnZSBzcmM9J3VwbG9hZHMvcGljdHVyZS5qcGcnIG5vdGFnPTFdXSk7IH08L2NvZGU+PC9wPgo8cD5CZWNhdXNlIHN0eWxlc2hlZXRzIGFyZSBnZW5lcmF0ZWQgb24gbW9kaWZpY2F0aW9uIGFuZCBzdG9yZWQgaW4gdGhlIGZpbGVzeXN0ZW0gdGhlcmUgaXMgbm8gd2F5IHRvIGRldGVybWluZSBkdXJpbmcgdGhlIHJlcXVlc3Qgd2hpY2ggYnJvd3NlciBpcyByZXF1ZXN0aW5nIHRoZSBzdHlsZXNoZWV0LCB0aGVyZWZvcmUgZW1iZWRkaW5nIHdpbGwgYmUgZG9uZSBzdHJpY3RseSBiYXNlZCB1cG9uIHRoZSBwcmVzZW5jZSBvZiB0aGUgbm9lbWJlZCBwYXJhbWV0ZXIuICBJZiB5b3UgaGF2ZSBjaG9zZW4gdG8gZW1iZWQgaW1hZ2VzIGRpcmVjdGx5IGludG8geW91ciBzdHlsZXNoZWV0cywgWW91IG1heSBuZWVkIHRvIGFkZCBhZGRpdGlvbmFsIHN0eWxlc2hlZXQgc3VwcG9ydCBmb3IgdGhlIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgZW1iZWRkZWQgaW1hZ2VzLiAgaS5lOiAgSUU2LjwvcD4KCjxoND5NdWx0aXBsZSBhcmd1bWVudHM6PC9oND4KPHA+U21hcnRJbWFnZSBzdXBwb3J0cyBhIHBsZXRob3JhIG9mIG9wdGlvbnMgYW5kIGFyZ3VtZW50cy4gIFRlbXBsYXRlIGxheW91dCBjYW4gYmUgY2xlYW5lZCBieSB1c2luZyB0aGUgPGNvZGU+JiMxMjM7eHRfbW9kdWxlX2hpbnR9PC9jb2RlPiB0YWcgYXQgdGhlIHRvcCBvZiB0aGUgcGFnZSB0ZW1wbGF0ZSwgb3IgaW4gdGhlIHBhZ2UgbWV0YWRhdGEgYXJlYSBzdWNoIHRoYXQgcGFyYW1ldGVycyBmb3IgYWxsIGNhbGxzIFNtYXJ0SW1hZ2Ugb24gYSBwYWdlIGFyZSBzcGVjaWZpZWQgb25jZS4gIE92ZXJyaWRpbmcgdGhlIHBhcmFtZXRlcnMgZm9yIGEgc2luZ2xlIGNhbGwgaXMgc3RpbGwgcG9zc2libGUuPC9wPgo8cD5TZWUgdGhlIDxjb2RlPiYjMTIzO3h0X21vZHVsZV9oaW50fTwvY29kZT4gdGFnIGluIHRoZSBDR0V4dGVuc2lvbnMgaGVscCBmb3IgbW9yZSBpbmZvcm1hdGlvbi48L3A+Cgo8aDQ+QmFja2dyb3VuZCBJbWFnZSBSZXNpemluZzwvaDQ+CjxwPlRoaXMgbW9kdWxlIGhhcyB0aGUgYWJpbGl0eSB0byBjcmVhdGUgYmFja2dyb3VuZCBqb2JzIHRoYXQgd2lsbCBhdXRvbWF0aWNhbGx5IHJlc2l6ZSBhbGwgdXBsb2FkZWQgaW1hZ2VzIHRvIGEgbWF4aW11bSBlZGdlIHNpemUuICBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgdXNlZnVsIHRvIHJlZHVjZSBkaXNrIHNwYWNlIHJlcXVpcmVtZW50cywgYW5kIHRvIGFpZGUgaW4gcGVyZm9ybWFuY2UuPC9wPgo8cD5Vc2luZyB0aGUgYnVpbHQgaW4gQ01TTVMgcHNldWRvY3JvbiBtZWNoYW5pc20gdGhlIHN5c3RlbSB3aWxsIHBlcmlvZGljYWxseSBzY2FuIGZvciBmaWxlcyB0aGF0IGV4Y2VlZCB0aGUgbWF4aW11bSBzaXplLiAgVGhlbiwgdXNpbmcgYSBmdXJ0aGVyIGFzeW5jaHJvbm91cyBwcm9jZXNzIG1hdGNoaW5nIGZpbGVzIGFyZSBzbG93bHkgcmVzaXplZCBpbiBiYXRjaGVzLCB0aHVzIG1pbmltaXppbmcgaW1wYWN0IG9uIHNlcnZlciByZXNvdXJjZXMuICBBZGRpdGlvbmFsbHksIGlmIGEgZmlsZSBpcyB0byBiZSByZXNpemVkLCBpdCBjYW4gYmUgYXV0by1yb3RhdGVkLCBhbmQgd2F0ZXJtYXJrZWQuPC9wPgogIDwvZGl2PgogIDxkaXYgaWQ9ImFib3V0X2MiPgogICAgPGgzPkFib3V0IHRoaXMgbW9kdWxlPC9oMz4KCiAgPHA+VGhpcyBtb2R1bGUgaXMgYSBmb3JrIG9mIDxzdHJvbmc+Q2FsZ3V5J3MgU21hcnQgSW1hZ2UgVG9vbGtpdCAoQ0dTbWFydEltYWdlKTwvc3Ryb25nPiBkZXZlbG9wZWQgYnkgPHN0cm9uZz5Sb2JlcnQgQ2FtcGJlbGwgJmx0O2NhbGd1eTEwMDAmZ3Q7PC9zdHJvbmc+LjxiciAvPgogICAgICBUaGlzIGlzIGEgMXN0IGdlbmVyYXRpb24gZm9yayBvZiB0aGUgbW9kdWxlLiBDb25zaWRlciB0aGlzIGFzIGFub3RoZXIgZmxhdm91ciBvZiB0aGUgb3JpZ2luYWwgbW9kdWxlLjxiciAvPgoKICBJZiB5b3UgZmluZCBhbnkgYnVncyBwbGVhc2UgZmVlbCBmcmVlIHRvIHN1Ym1pdCBhIGJ1ZyByZXBvcnQgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9idWcvbGlzdC8xNDY0IiB0YXJnZXQ9Il9ibGFuayI+aGVyZTwvYT4gb3IgZm9yIGFueSBnb29kIGlkZWFzIGNvbnNpZGVyIHN1Ym1pdGluZyBhIGZlYXR1cmUgcmVxdWVzdCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL2ZlYXR1cmVfcmVxdWVzdC9saXN0LzE0NjQiIHRhcmdldD0iX2JsYW5rIj5oZXJlPC9hPi48L3A+CiAgPHA+UGxlYXNlIGtlZXAgaW4gbWluZCB0aGF0IGRldmVsb3BlcnMgZG8gaGF2ZSB0aGVpciBkYWlseSBqb2JzIHdoaWNoIG1lYW5zIHRoYXQgZmVhdHVyZSByZXF1ZXN0cyBhcmUgY29uc2lkZXJlZCBhbmQgZG9uZSBhcyB0aW1lIGFsbG93cy4gSWYgeW91IG5lZWQgYSBmZWF0dXJlIHJlYWxseSBiYWRseSBjb25zaWRlciBjb250YWN0aW5nIG9uZSBvZiB0aGUgZGV2ZWxvcGVycyBmb3IgYSBzcG9uc29yZWQgZGV2ZWxvcG1lbnQuCiAgPC9wPgoKPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGUgbW9kdWxlIGF1dGhvciAvIG1haW50YWluZXJzIG9yIHByb2plY3QgbWFuYWdlcnMgYXJlIGluIG5vIHdheSBvYmxpZ2F0ZWQgdG8gcHJvdmlkZSBzdXBwb3J0IGZvciB0aGlzIGNvZGUgaW4gYW55IGZhc2hpb24uICBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+QSBidWcgdHJhY2tpbmcgYW5kIGZlYXR1cmUgcmVxdWVzdCBzeXN0ZW0gaGFzIGJlZW4gY3JlYXRlZCBmb3IgdGhpcyBtb2R1bGUgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbWFydGltYWdlIj5oZXJlPC9hPi4gUGxlYXNlIGJlIHZlcmJvc2UgYW5kIGRlc2NyaXB0aXZlIHdoZW4gc3VibWl0dGluZyBidWcgcmVwb3J0cyBhbmQgZmVhdHVyZSByZXF1ZXN0cywgYW5kIGZvciBidWcgcmVwb3J0cyBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBwcm92aWRlZCBzdWZmaWNpZW50IGluZm9ybWF0aW9uIHRvIHJlbGlhYmx5IHJlcHJvZHVjZSB0aGUgaXNzdWUuPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi4gIFdoZW4gZGVzY3JpYmluZyBhbiBpc3N1ZSBwbGVhc2UgbWFrZSBhbiBlZmZvcnQgdG8gcHJvdmlkZSBhbGwgcmVsZXZhbnQgaW5mb3JtYXRpb24sIGEgdGhvcm91Z2ggZGVzY3JpcHRpb24gb2YgeW91ciBpc3N1ZSwgYW5kIHN0ZXBzIHRvIHJlcHJvZHVjZSBpdCBvciB5b3VyIGRpc2N1c3Npb24gbWF5IGJlIGlnbm9yZWQuPC9saT4KPC91bD4KCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMjAgLSAyMDIxLCBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbiA8YSBocmVmPSJtYWlsdG86aW5mb0BjbXNtYWRlc2ltcGxlLm9yZyI+Jmx0O2luZm9AY21zbWFkZXNpbXBsZS5vcmcmZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgtMjAxOSwgUm9iZXJ0IENhbXBiZWxsICZsdDtjYWxndXkxMDAwJmd0Oy4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8aHI+CjxwPjxzdHJvbmc+U21hcnRJbWFnZTwvc3Ryb25nPiBpcyBmcmVlIHNvZnR3YXJlOzxiciAvPiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgPHN0cm9uZz5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZTwvc3Ryb25nPiBhcyBwdWJsaXNoZWQgYnkgdGhlIDxzdHJvbmc+RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uPC9zdHJvbmc+OzxiciAvPiBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4KPHA+PHN0cm9uZz5TbWFydEltYWdlPC9zdHJvbmc+IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCA8c3Ryb25nPldJVEhPVVQgQU5ZIFdBUlJBTlRZPC9zdHJvbmc+OzxiciAvPiB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgPHN0cm9uZz5NRVJDSEFOVEFCSUxJVFk8L3N0cm9uZz4gb3IgPHN0cm9uZz5GSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRTwvc3Ryb25nPi48L3A+CjxwPlNlZSB0aGVHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLjwvcD4KIDxwPllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIDxzdHJvbmc+R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2U8L3N0cm9uZz4gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07PGJyIC8+IGlmIG5vdCwgd3JpdGUgdG8gdGhlIDxzdHJvbmc+RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQTwvc3Ryb25nPiBvciA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5yZWFkIGl0IG9ubGluZTwvYT4uPC9wPgo8cD48c3Ryb25nPllvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgPHN0cm9uZz5Gcm9udEVuZFVzZXJzPC9zdHJvbmc+Ljwvc3Ryb25nPjwvcD4KPGhyPgo8aDQ+Q3VycmVudCBNYWludGFpbmVyczwvaDQ+Cjx1bD4KICA8bGkgY2xhc3M9InBfYm90dG9tXzE1Ij48c3Ryb25nPkZlcm5hbmRvIE1vcmdhZG8gKEpvIE1vcmcpPC9zdHJvbmc+PC9saT4KPC91bD4KCjxoND5QYXN0IE1haW50YWluZXJzPC9oND4KPHVsPgogIDxsaT48c3Ryb25nPlJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMCk8L3N0cm9uZz4gPGJyIC8+d3d3LmNhbGd1eTEwMDAuY29tPC9saT4KPC91bD4KCjxoND5Lbm93biBDb250cmlidXRvcnM8L2g0Pgo8dWw+CiAgPGxpPjxzdHJvbmc+Um9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwKTwvc3Ryb25nPjxiciAvPnd3dy5jYWxndXkxMDAwLmNvbTwvbGk+CjwvdWw+CgoKICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4KPC9kaXY+PGgzPkRlcGVuZGVuY2llczwvaDM+PHVsPjxsaT5DTVNNU0V4dCA9Jmd0OyAxLjA8L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBKb01vcmcgJmx0O2pvbW9yZ0BjbXNtYWRlc2ltcGxlLm9yZyZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAxLjA8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz48dWw+CiAgPGxpPlZlcnNpb24gMS4wIC0gSW5pdGlhbCBSZWxlYXNlPC9saT4KPC91bD48YnIgLz4=]]></about>
	<description><![CDATA[A smart image tag generation module for CMSMS]]></description>
	<requires>
	  <requiredname>CMSMSExt</requiredname>
	  <requiredversion>1.0</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/.moduledata/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/.moduledata/moduledata.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxtb2R1bGVkYXRhIHZlcnNpb249JzEuMCc+DQo8TW9kdWxlTmFtZT5TbWFydEltYWdlPC9Nb2R1bGVOYW1lPg0KPE1vZHVsZUZyaWVuZGx5TmFtZT48L01vZHVsZUZyaWVuZGx5TmFtZT4NCjxWZXJzaW9uPjEuMC5iLjE8L1ZlcnNpb24+DQo8QXV0aG9yPkpvTW9yZzwvQXV0aG9yPg0KPEF1dGhvckVtYWlsPmpvbW9yZ0BjbXNtYWRlc2ltcGxlLm9yZzwvQXV0aG9yRW1haWw+DQo8U3RhcnREYXRlPjwvU3RhcnREYXRlPg0KPFBIUEhlYWRlcj48IVtDREFUQVtJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBOQ2lNZ2V5UnRiMlIxYkdWZmJtRnRaWDBnTFNCN0pHMXZaSFZzWlY5bWNtbGxibVJzZVY5dVlXMWxmUTBLSXlCV1pYSnphVzl1SUhza2JXOWtkV3hsWDNabGNuTnBiMjU5RFFvaklIc2tiVzlrZFd4bFgyUmxjMk55YVhCMGFXOXVmUTBLSXlBb1l5a2dleVJ6ZEdGeWRHUmhkR1Y5TFhza1pXNWtaR0YwWlgwZ1lua2dleVJ0YjJSMWJHVmZZWFYwYUc5eWZRMEtJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBOQ2lNTkNpTWdleVJ0YjJSMWJHVmZibUZ0WlgwZ2FYTWdZU0JEVFZNZ1RXRmtaU0JUYVcxd2JHVWdiVzlrZFd4bElIUm9ZWFFnWlc1aFlteGxjeUIwYUdVZ2QyVmlJR1JsZG1Wc2IzQmxjaUIwYnlCamNtVmhkR1VOQ2lNZ2JYVnNkR2x3YkdVZ2JHbHpkSE1nZEdoeWIzVm5hRzkxZENCaElITnBkR1V1SUVsMElHTmhiaUJpWlNCa2RYQnNhV05oZEdWa0lHRnVaQ0JuYVhabGJpQm1jbWxsYm1Sc2VRMEtJeUJ1WVcxbGN5Qm1iM0lnWldGemFXVnlJR05zYVdWdWRDQnRZV2x1ZEdWdVlXNWpaUzROQ2lNTkNpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHREUW9qSUVOTlV5QXRJRU5OVXlCTllXUmxJRk5wYlhCc1pTQnBjeUFvWXlrZ01qQXdOU0JpZVNCVVpXUWdTM1ZzY0NBb2QybHphSGxBWTIxemJXRmtaWE5wYlhCc1pTNXZjbWNwRFFvaklGWnBjMmwwSUhSb1pTQkRUVk5OVXlCb2IyMWxjR0ZuWlNCaGREb2dhSFIwY0RvdkwzZDNkeTVqYlhOdFlXUmxjMmx0Y0d4bExtOXladzBLSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwTkNpTWdRa1ZIU1U1ZlRFbERSVTVUUlEwS0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTME5DaU1nVkdocGN5Qm1hV3hsSUdseklIQmhjblFnYjJZZ2V5UnRiMlIxYkdWZmJtRnRaWDBOQ2lNZ2V5UnRiMlIxYkdWZmJtRnRaWDBnY0hKdlozSmhiU0JwY3lCbWNtVmxJSE52Wm5SM1lYSmxPeUI1YjNVZ1kyRnVJSEpsWkdsemRISnBZblYwWlNCcGRDQmhibVF2YjNJZ2JXOWthV1o1RFFvaklHbDBJSFZ1WkdWeUlIUm9aU0IwWlhKdGN5QnZaaUIwYUdVZ1IwNVZJRWRsYm1WeVlXd2dVSFZpYkdsaklFeHBZMlZ1YzJVZ1lYTWdjSFZpYkdsemFHVmtJR0o1RFFvaklIUm9aU0JHY21WbElGTnZablIzWVhKbElFWnZkVzVrWVhScGIyNDdJR1ZwZEdobGNpQjJaWEp6YVc5dUlESWdiMllnZEdobElFeHBZMlZ1YzJVc0lHOXlEUW9qSUNoaGRDQjViM1Z5SUc5d2RHbHZiaWtnWVc1NUlHeGhkR1Z5SUhabGNuTnBiMjR1RFFvakRRb2pJSHNrYlc5a2RXeGxYMjVoYldWOUlIQnliMmR5WVcwZ2FYTWdaR2x6ZEhKcFluVjBaV1FnYVc0Z2RHaGxJR2h2Y0dVZ2RHaGhkQ0JwZENCM2FXeHNJR0psSUhWelpXWjFiQ3dOQ2lNZ1luVjBJRmRKVkVoUFZWUWdRVTVaSUZkQlVsSkJUbFJaT3lCM2FYUm9iM1YwSUdWMlpXNGdkR2hsSUdsdGNHeHBaV1FnZDJGeWNtRnVkSGtnYjJZTkNpTWdUVVZTUTBoQlRsUkJRa2xNU1ZSWklHOXlJRVpKVkU1RlUxTWdSazlTSUVFZ1VFRlNWRWxEVlV4QlVpQlFWVkpRVDFORkxpQWdVMlZsSUhSb1pRMEtJeUJIVGxVZ1IyVnVaWEpoYkNCUWRXSnNhV01nVEdsalpXNXpaU0JtYjNJZ2JXOXlaU0JrWlhSaGFXeHpMZzBLSXlCWmIzVWdjMmh2ZFd4a0lHaGhkbVVnY21WalpXbDJaV1FnWVNCamIzQjVJRzltSUhSb1pTQkhUbFVnUjJWdVpYSmhiQ0JRZFdKc2FXTWdUR2xqWlc1elpRMEtJeUJoYkc5dVp5QjNhWFJvSUhSb2FYTWdjSEp2WjNKaGJUc2dhV1lnYm05MExDQjNjbWwwWlNCMGJ5QjBhR1VnUm5KbFpTQlRiMlowZDJGeVpRMEtJeUJHYjNWdVpHRjBhVzl1TENCSmJtTXVMQ0ExT1NCVVpXMXdiR1VnVUd4aFkyVXNJRk4xYVhSbElETXpNQ3dnUW05emRHOXVMQ0JOUVNBd01qRXhNUzB4TXpBM0lGVlRRUTBLSXlCUGNpQnlaV0ZrSUdsMElHOXViR2x1WlRvZ2FIUjBjRG92TDNkM2R5NW5iblV1YjNKbkwyeHBZMlZ1YzJWekwyeHBZMlZ1YzJWekxtaDBiV3dqUjFCTURRb2pEUW9qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFEwS0l5QkZUa1JmVEVsRFJVNVRSUTBLSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwPV1dPjwvUEhQSGVhZGVyPg0KPExpY2VuY2U+R1BMIFYzPC9MaWNlbmNlPg0KPEZpbGxIZWFkZXI+MDwvRmlsbEhlYWRlcj4NCjwvbW9kdWxlZGF0YT4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_autoprocessing_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTYgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IGNyZWF0aW5nIGltYWdlIHRhZ3MgaW4gYSBzbWFydAojICB3YXkgdG8gb3B0aW1pemUgcGVyZm9ybWFuY2UuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwokdGhpcy0+U2V0Q3VycmVudFRhYignYXV0b3Byb2Nlc3NpbmcnKTsKCmlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKSB7CiAgICAkcHJlZnMgPSBcU21hcnRJbWFnZVxhdXRvcHJvY2Vzc19vcHRpb25zOjpsb2FkKCk7CiAgICAkcHJlZnMtPmVuYWJsZWQgPSBceHRfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnYXBfZW5hYmxlZCcpOwogICAgJHByZWZzLT5pZ25vcmVfZXh0ZW5zaW9ucyA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdhcF9pZ25vcmVfZXh0ZW5zaW9ucycpOwogICAgJHByZWZzLT5pZ25vcmVfZGlycyA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdhcF9pZ25vcmVfZGlycycpOwogICAgJHByZWZzLT5pbmNsdWRlX2RpcnMgPSBceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnYXBfaW5jbHVkZV9kaXJzJyk7CiAgICAkcHJlZnMtPm1heF9zaXplID0gXHh0X3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2FwX21heF9zaXplJyk7CiAgICAkcHJlZnMtPmF1dG9yb3RhdGUgPSBceHRfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnYXBfYXV0b3JvdGF0ZScpOwogICAgJHByZWZzLT53YXRlcm1hcmsgPSBceHRfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnYXBfd2F0ZXJtYXJrJyk7CiAgICAkcHJlZnMtPnNhdmUoKTsKICAgICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfcHJlZnN1cGRhdGVkJykpOwp9CmVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ2JlZ2luX2F1dG9wcm9jZXNzJ10pICkgewogICAgJG9iaiA9IG5ldyBcU21hcnRJbWFnZVxBdXRvUHJvY2Vzc01hc3RlclRhc2soKTsKICAgICRvYmotPmZvcmNlKCk7CiAgICBpZiggISRvYmotPnRlc3QoKSApIHsKICAgICAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ21zZ190YXNrbm90cmVhZHknKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAkb2JqLT5leGVjdXRlKCk7CiAgICB9Cn0KCiR0aGlzLT5SZWRpcmVjdFRvVGFiKCk7]]></data>
	</file>
	<file>
	  <filename>/action.admin_embedding_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICAKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIHJldHVybjsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2VtYmVkZGluZycpOwoKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2VtYmVkX21vZGUnLHRyaW0oJHBhcmFtc1snZW1iZWRfbW9kZSddKSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdlbWJlZF9zaXplbGltaXQnLChpbnQpJHBhcmFtc1snZW1iZWRfc2l6ZWxpbWl0J10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZW1iZWRfdHlwZXMnLHRyaW0oJHBhcmFtc1snZW1iZWRfdHlwZXMnXSkpOwoKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_general_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IGNyZWF0aW5nIGltYWdlIHRhZ3MgaW4gYSBzbWFydAojICB3YXkgdG8gb3B0aW1pemUgcGVyZm9ybWFuY2UuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIHJldHVybjsKCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdnZW5lcmFsJyk7CiRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKCnRyeSB7CiAgICBpZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkgewogICAgICAgIC8vIHZhbGlkYXRlIHRoZSBjYWNoZSBwYXRoLgogICAgICAgICRjYWNoZV9wYXRoID0gdHJpbSgkcGFyYW1zWydjYWNoZV9wYXRoJ10pOwogICAgICAgIGlmKCAkY2FjaGVfcGF0aCApIHsKICAgICAgICAgICAgJHRwMSA9ICRjYWNoZV9wYXRoOwogICAgICAgICAgICBpZiggIWlzX2RpcigkdHAxKSApICR0cDEgPSAkY29uZmlnWydyb290X3BhdGgnXS4nLycuJHRwMTsKICAgICAgICAgICAgJHAxID0gcmVhbHBhdGgoJHRwMSk7CiAgICAgICAgICAgICRwMiA9IHJlYWxwYXRoKCRjb25maWdbJ3Jvb3RfcGF0aCddKTsKICAgICAgICAgICAgaWYoICRwMSA9PSAkcDIgfHwgIXN0YXJ0c3dpdGgoJHAxLCRwMikgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9jYWNoZXBhdGhfaW52YWxpZCcpKTsKICAgICAgICB9CgogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjcm9wdG9maXRfZGVmYXVsdF9sb2MnLHRyaW0oJHBhcmFtc1snY3JvcHRvZml0X2RlZmF1bHRfbG9jJ10pKTsKICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnY2FjaGVfYWdlJywoaW50KSRwYXJhbXNbJ2NhY2hlX2FnZSddKTsKICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnY2FjaGVfcGF0aCcsJGNhY2hlX3BhdGgpOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbWFnZV91cmxfcHJlZml4Jyx0cmltKCRwYXJhbXNbJ2ltYWdlX3VybF9wcmVmaXgnXSkpOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzaWxlbnQnLChpbnQpJHBhcmFtc1snc2lsZW50J10pOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbWFnZV91cmxfaGFzY2FjaGVkaXInLChpc3NldCgkcGFyYW1zWydpbWFnZV91cmxfaGFzY2FjaGVkaXInXSkpPyhpbnQpJHBhcmFtc1snaW1hZ2VfdXJsX2hhc2NhY2hlZGlyJ106MCk7CiAgICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2NoZWNrbWVtb3J5JywoaW50KSRwYXJhbXNbJ2NoZWNrbWVtb3J5J10pOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdmb3JjZV9leHRlbnNpb24nLChpbnQpJHBhcmFtc1snZm9yY2VfZXh0ZW5zaW9uJ10pOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwcm9ncmVzc2l2ZScsKGludCkkcGFyYW1zWydwcm9ncmVzc2l2ZSddKTsKICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnYXV0b3NjYWxlX29wJyxceHRfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnYXV0b3NjYWxlX29wJykpOwogICAgICAgICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfcHJlZnN1cGRhdGVkJykpOwogICAgfQogICAgZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snY2xlYXJfbm93J10pICkgewogICAgICAgIC8vIGNsZWFyIGFsbCBmaWxlcyBmcm9tIGNhY2hlIGRpciBvbGRlciB0aGFuIE4gZGF5cwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjYWNoZV9hZ2UnLChpbnQpJHBhcmFtc1snY2FjaGVfYWdlJ10pOwogICAgICAgICRuX3JlbW92ZWQgPSAkdGhpcy0+Y2xlYXJfY2FjaGVkX2ZpbGVzKCk7CiAgICAgICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19jYWNoZWNsZWFuZWQnLCRuX3JlbW92ZWQpKTsKICAgICAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCRuX3JlbW92ZWQuJyBmaWxlcyBjbGVhbmVkIGZyb20gY2FjaGUgZGlyZWN0b3J5Jyk7CiAgICB9CiAgICBlbHNlIGlmKCBpc3NldCgkcGFyYW1zWydjbGVhcl9hbGwnXSkgKSB7CiAgICAgICAgLy8ganVzdCBudWtlIHRoZSBjYWNoZSBkaXJlY3RvcnkgY29tcGxldGVseS4KICAgICAgICAkY2FjaGVfcGF0aCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjYWNoZV9wYXRoJywgY21zX2pvaW5fcGF0aCgndXBsb2FkcycsICdfJy4kdGhpcy0+R2V0TmFtZSgpKSk7CiAgICAgICAgJGRpciA9ICRjYWNoZV9wYXRoOwogICAgICAgIGlmKCAhc3RhcnRzd2l0aCgkZGlyLCcvJykgKSAkZGlyID0gJGNvbmZpZ1sncm9vdF9wYXRoJ10uJy8nLiRjYWNoZV9wYXRoOwogICAgICAgICRwMSA9IHJlYWxwYXRoKCRkaXIpOwogICAgICAgICRwMiA9IHJlYWxwYXRoKCRjb25maWdbJ3Jvb3RfcGF0aCddKTsKICAgICAgICBpZiggIXN0YXJ0c3dpdGgoJHAxLCRwMikgfHwgJHAxID09ICRwMiApIHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2NhY2hlcGF0aF9pbnZhbGlkJykpOwogICAgICAgIHh0X2Rpcjo6cmVjdXJzaXZlX3JtZGlyKCRkaXIpOwogICAgICAgIG1rZGlyKCRkaXIpOwogICAgICAgIEB0b3VjaCgkZGlyLicvaW5kZXguaHRtbCcpOwogICAgICAgICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfY2FjaGVyZW1vdmVkJykpOwogICAgICAgIGF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ0FsbCBjYWNoZWQgZmlsZXMgcmVtb3ZlZCcpOwogICAgfQp9CmNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CiAgICAkdGhpcy0+U2V0RXJyb3IoJGUtPmdldE1lc3NhZ2UoKSk7Cn0KCiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_responsive_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTIgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IGNyZWF0aW5nIGltYWdlIHRhZ3MgaW4gYSBzbWFydAojICB3YXkgdG8gb3B0aW1pemUgcGVyZm9ybWFuY2UuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwokdGhpcy0+U2V0Q3VycmVudFRhYigncmVzcG9uc2l2ZScpOwoKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Jlc3BvbnNpdmUnLChpbnQpJHBhcmFtc1sncmVzcG9uc2l2ZSddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2Fzc3VtZV9yZXNwb25zaXZlJywoaW50KSRwYXJhbXNbJ2Fzc3VtZV9yZXNwb25zaXZlJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgncmVzcG9uc2l2ZV9icmVha3BvaW50cycsdHJpbSgkcGFyYW1zWydyZXNwb25zaXZlX2JyZWFrcG9pbnRzJ10pKTsKCiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_savealiases.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICAKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIHsgZXhpdDsgfQppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSB7IHJldHVybjsgfQoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2FsaWFzZXMnKTsKCiRhbGlhc2VzID0gW107CiRlcnJvciAgID0gRkFMU0U7CmZvcigkaSA9IDAsICRpTWF4ID0gY291bnQoJHBhcmFtc1snYWxpYXNfbmFtZSddKTsgJGkgPCAkaU1heDsgJGkrKykKewogICRuYW1lICAgID0gdHJpbSgkcGFyYW1zWydhbGlhc19uYW1lJ11bJGldKTsKICAkb3B0aW9ucyA9IHRyaW0oJHBhcmFtc1snYWxpYXNfb3B0aW9ucyddWyRpXSk7CiAgCiAgaWYoJG5hbWUgPT0gJycgJiYgJG9wdGlvbnMgPT0gJycpCiAgewogICAgY29udGludWU7CiAgfQogIGlmKCRvcHRpb25zID09ICcnKQogIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfYWxpYXNfbm9vcHRpb25zX2F0cm93JywgJGkgKyAxKSk7CiAgICAkZXJyb3IgPSBUUlVFOwogICAgY29udGludWU7CiAgfQogIGlmKCEkbmFtZSkKICB7CiAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2FsaWFzX25vbmFtZV9hdHJvdycsICRpICsgMSkpOwogICAgJGVycm9yID0gVFJVRTsKICAgIGNvbnRpbnVlOwogIH0KICBpZihpc3NldCgkYWxpYXNlc1skbmFtZV0pKQogIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfYWxpYXNfZHVwbGljYXRlbmFtZV9hdHJvdycsICRpICsgMSkpOwogICAgJGVycm9yID0gVFJVRTsKICAgIGNvbnRpbnVlOwogIH0KICAKICAkYWxpYXNlc1skbmFtZV0gPSBbJ25hbWUnID0+ICRuYW1lLCAnb3B0aW9ucycgPT4gJG9wdGlvbnNdOwp9CgppZigkZXJyb3IpCnsKICAkX1NFU1NJT05bJHRoaXMtPkdldE5hbWUoKSAuICdfYWxpYXNfbmFtZXMnXSAgID0gJHBhcmFtc1snYWxpYXNfbmFtZSddOwogICRfU0VTU0lPTlskdGhpcy0+R2V0TmFtZSgpIC4gJ19hbGlhc19vcHRpb25zJ10gPSAkcGFyYW1zWydhbGlhc19vcHRpb25zJ107Cn0KZWxzZQp7CiAgdW5zZXQoJF9TRVNTSU9OWyR0aGlzLT5HZXROYW1lKCkgLiAnX2FsaWFzX25hbWVzJ10pOwogIHVuc2V0KCRfU0VTU0lPTlskdGhpcy0+R2V0TmFtZSgpIC4gJ19hbGlhc19vcHRpb25zJ10pOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhbGlhc2VzJywgc2VyaWFsaXplKCRhbGlhc2VzKSk7CiAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19hbGlhc2VzX3VwZGF0ZWQnKSk7Cn0KJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IGNyZWF0aW5nIGltYWdlIHRhZ3MgaW4gYSBzbWFydAojICB3YXkgdG8gb3B0aW1pemUgcGVyZm9ybWFuY2UuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgcmV0dXJuOwoKJG91dHAgPSBzaV91dGlsczo6cHJvY2Vzc19pbWFnZSgkcGFyYW1zKTsKJHNpbGVudCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzaWxlbnQnLCAwKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ3NpbGVudCddKSApICRzaWxlbnQgPSAoaW50KSRwYXJhbXNbJ3NpbGVudCddOwoKaWYoIGlzc2V0KCRvdXRwWydlcnJvciddKSAmJiAkb3V0cFsnZXJyb3InXSAhPSAnJyApIHsKICBpZiggISRzaWxlbnQgKSB0cmlnZ2VyX2Vycm9yKCRvdXRwWydlcnJvciddKTsKICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCRvdXRwWydlcnJvciddKTsKICByZXR1cm47Cn0KCmlmKCBpc3NldCgkb3V0cFsnb3V0cHV0J10pICkgZWNobyAkb3V0cFsnb3V0cHV0J107CgojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IGNyZWF0aW5nIGltYWdlIHRhZ3MgaW4gYSBzbWFydAojICB3YXkgdG8gb3B0aW1pemUgcGVyZm9ybWFuY2UuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgeyBleGl0OyB9CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIHsgcmV0dXJuOyB9CgplY2hvICR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdhbGlhc2VzJywkdGhpcy0+TGFuZygnYWxpYXNlcycpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdyZXNwb25zaXZlJywkdGhpcy0+TGFuZygncmVzcG9uc2l2ZScpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdlbWJlZGRpbmcnLCR0aGlzLT5MYW5nKCdlbWJlZGRpbmcnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignYXV0b3Byb2Nlc3NpbmcnLCR0aGlzLT5MYW5nKCdhdXRvcHJvY2Vzc2luZycpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdnZW5lcmFsJywkdGhpcy0+TGFuZygnZ2VuZXJhbCcpKTsKZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CgplY2hvICR0aGlzLT5TdGFydFRhYignYWxpYXNlcycsJHBhcmFtcyk7CmluY2x1ZGUoX19ESVJfXy4nL2Z1bmN0aW9uLmFkbWluX2FsaWFzZXNfdGFiLnBocCcpOwplY2hvICR0aGlzLT5FbmRUYWIoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdyZXNwb25zaXZlJywkcGFyYW1zKTsKaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fcmVzcG9uc2l2ZV90YWIucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2VtYmVkZGluZycsJHBhcmFtcyk7CmluY2x1ZGUoX19ESVJfXy4nL2Z1bmN0aW9uLmFkbWluX2VtYmVkZGluZ190YWIucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2F1dG9wcm9jZXNzaW5nJywkcGFyYW1zKTsKaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fYXV0b3Byb2Nlc3NpbmdfdGFiLnBocCcpOwplY2hvICR0aGlzLT5FbmRUYWIoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdnZW5lcmFsJywkcGFyYW1zKTsKaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fZ2VuZXJhbF90YWIucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOwojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/action.responsive.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogQ0dTbWFydEltYWdlIChjKSAyMDExLTIwMjEgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgcmV0dXJuOwoKaWYoICEkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmVzcG9uc2l2ZScpICkgcmV0dXJuOwokY24gPSBzaV91dGlsczo6Z2V0X3Jlc3BvbnNpdmVfY29va2llbmFtZSgpOwppZiggIWlzc2V0KCRfQ09PS0lFWyRjbl0pICkgewogICAgJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgncmVzcG9uc2l2ZS50cGwnKTsKICAgICR0cGwtPmFzc2lnbignY29va2llbmFtZScsJGNuKTsKICAgICR0cGwtPmRpc3BsYXkoKTsKfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/data/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/data/colors.dat</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[I0YwRjhGRi1BbGljZUJsdWUKI0ZBRUJENy1BbnRpcXVlV2hpdGUKIzAwRkZGRi1BcXVhCiM3RkZGRDQtQXF1YW1hcmluZQojRjBGRkZGLUF6dXJlCiNGNUY1REMtQmVpZ2UKI0ZGRTRDNC1CaXNxdWUKI0ZGRUJDRC1CbGFuY2hlZEFsbW9uZAojMDAwMDAwLUJsYWNrCiMwMDAwRkYtQmx1ZQojOEEyQkUyLUJsdWVWaW9sZXQKI0E1MkEyQS1Ccm93bgojREVCODg3LUJ1cmx5V29vZAojNUY5RUEwLUNhZGV0Qmx1ZQojN0ZGRjAwLUNoYXJ0cmV1c2UKI0QyNjkxRS1DaG9jb2xhdGUKI0ZGN0Y1MC1Db3JhbAojNjQ5NUVELUNvcm5mbG93ZXJCbHVlCiNGRkY4REMtQ29ybnNpbGsKI0RDMTQzQy1Dcmltc29uCiMwMEZGRkYtQ3lhbgojMDAwMDhCLURhcmtCbHVlCiMwMDhCOEItRGFya0N5YW4KI0I4ODYwQi1EYXJrR29sZGVuUm9kCiNBOUE5QTktRGFya0dyYXkKIzAwNjQwMC1EYXJrR3JlZW4KI0JEQjc2Qi1EYXJrS2hha2kKIzhCMDA4Qi1EYXJrTWFnZW50YQojNTU2QjJGLURhcmtPbGl2ZUdyZWVuCiNGRjhDMDAtRGFya29yYW5nZQojOTkzMkNDLURhcmtPcmNoaWQKIzhCMDAwMC1EYXJrUmVkCiNFOTk2N0EtRGFya1NhbG1vbgojOEZCQzhGLURhcmtTZWFHcmVlbgojNDgzRDhCLURhcmtTbGF0ZUJsdWUKIzJGNEY0Ri1EYXJrU2xhdGVHcmF5CiMwMENFRDEtRGFya1R1cnF1b2lzZQojOTQwMEQzLURhcmtWaW9sZXQKI0ZGMTQ5My1EZWVwUGluawojMDBCRkZGLURlZXBTa3lCbHVlCiM2OTY5NjktRGltR3JheQojMUU5MEZGLURvZGdlckJsdWUKI0QxOTI3NS1GZWxkc3BhcgojQjIyMjIyLUZpcmVCcmljawojRkZGQUYwLUZsb3JhbFdoaXRlCiMyMjhCMjItRm9yZXN0R3JlZW4KI0ZGMDBGRi1GdWNoc2lhCiNEQ0RDREMtR2FpbnNib3JvCiNGOEY4RkYtR2hvc3RXaGl0ZQojRkZENzAwLUdvbGQKI0RBQTUyMC1Hb2xkZW5Sb2QKIzgwODA4MC1HcmF5CiMwMDgwMDAtR3JlZW4KI0FERkYyRi1HcmVlblllbGxvdwojRjBGRkYwLUhvbmV5RGV3CiNGRjY5QjQtSG90UGluawojQ0Q1QzVDLUluZGlhblJlZAojNEIwMDgyLUluZGlnbwojRkZGRkYwLUl2b3J5CiNGMEU2OEMtS2hha2kKI0U2RTZGQS1MYXZlbmRlcgojRkZGMEY1LUxhdmVuZGVyQmx1c2gKIzdDRkMwMC1MYXduR3JlZW4KI0ZGRkFDRC1MZW1vbkNoaWZmb24KI0FERDhFNi1MaWdodEJsdWUKI0YwODA4MC1MaWdodENvcmFsCiNFMEZGRkYtTGlnaHRDeWFuCiNGQUZBRDItTGlnaHRHb2xkZW5Sb2RZZWxsb3cKI0QzRDNEMy1MaWdodEdyZXkKIzkwRUU5MC1MaWdodEdyZWVuCiNGRkI2QzEtTGlnaHRQaW5rCiNGRkEwN0EtTGlnaHRTYWxtb24KIzIwQjJBQS1MaWdodFNlYUdyZWVuCiM4N0NFRkEtTGlnaHRTa3lCbHVlCiM4NDcwRkYtTGlnaHRTbGF0ZUJsdWUKIzc3ODg5OS1MaWdodFNsYXRlR3JheQojQjBDNERFLUxpZ2h0U3RlZWxCbHVlCiNGRkZGRTAtTGlnaHRZZWxsb3cKIzAwRkYwMC1MaW1lCiMzMkNEMzItTGltZUdyZWVuCiNGQUYwRTYtTGluZW4KI0ZGMDBGRi1NYWdlbnRhCiM4MDAwMDAtTWFyb29uCiM2NkNEQUEtTWVkaXVtQXF1YU1hcmluZQojMDAwMENELU1lZGl1bUJsdWUKI0JBNTVEMy1NZWRpdW1PcmNoaWQKIzkzNzBEOC1NZWRpdW1QdXJwbGUKIzNDQjM3MS1NZWRpdW1TZWFHcmVlbgojN0I2OEVFLU1lZGl1bVNsYXRlQmx1ZQojMDBGQTlBLU1lZGl1bVNwcmluZ0dyZWVuCiM0OEQxQ0MtTWVkaXVtVHVycXVvaXNlCiNDNzE1ODUtTWVkaXVtVmlvbGV0UmVkCiMxOTE5NzAtTWlkbmlnaHRCbHVlCiNGNUZGRkEtTWludENyZWFtCiNGRkU0RTEtTWlzdHlSb3NlCiNGRkU0QjUtTW9jY2FzaW4KI0ZGREVBRC1OYXZham9XaGl0ZQojMDAwMDgwLU5hdnkKI0ZERjVFNi1PbGRMYWNlCiM4MDgwMDAtT2xpdmUKIzZCOEUyMy1PbGl2ZURyYWIKI0ZGQTUwMC1PcmFuZ2UKI0ZGNDUwMC1PcmFuZ2VSZWQKI0RBNzBENi1PcmNoaWQKI0VFRThBQS1QYWxlR29sZGVuUm9kCiM5OEZCOTgtUGFsZUdyZWVuCiNBRkVFRUUtUGFsZVR1cnF1b2lzZQojRDg3MDkzLVBhbGVWaW9sZXRSZWQKI0ZGRUZENS1QYXBheWFXaGlwCiNGRkRBQjktUGVhY2hQdWZmCiNDRDg1M0YtUGVydQojRkZDMENCLVBpbmsKI0REQTBERC1QbHVtCiNCMEUwRTYtUG93ZGVyQmx1ZQojODAwMDgwLVB1cnBsZQojRkYwMDAwLVJlZAojQkM4RjhGLVJvc3lCcm93bgojNDE2OUUxLVJveWFsQmx1ZQojOEI0NTEzLVNhZGRsZUJyb3duCiNGQTgwNzItU2FsbW9uCiNGNEE0NjAtU2FuZHlCcm93bgojMkU4QjU3LVNlYUdyZWVuCiNGRkY1RUUtU2VhU2hlbGwKI0EwNTIyRC1TaWVubmEKI0MwQzBDMC1TaWx2ZXIKIzg3Q0VFQi1Ta3lCbHVlCiM2QTVBQ0QtU2xhdGVCbHVlCiM3MDgwOTAtU2xhdGVHcmF5CiNGRkZBRkEtU25vdwojMDBGRjdGLVNwcmluZ0dyZWVuCiM0NjgyQjQtU3RlZWxCbHVlCiNEMkI0OEMtVGFuCiMwMDgwODAtVGVhbAojRDhCRkQ4LVRoaXN0bGUKI0ZGNjM0Ny1Ub21hdG8KIzQwRTBEMC1UdXJxdW9pc2UKI0VFODJFRS1WaW9sZXQKI0QwMjA5MC1WaW9sZXRSZWQKI0Y1REVCMy1XaGVhdAojRkZGRkZGLVdoaXRlCiNGNUY1RjUtV2hpdGVTbW9rZQojRkZGRjAwLVllbGxvdwojOUFDRDMyLVllbGxvd0dyZWVuCg==]]></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[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICAKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIHsgZXhpdDsgfQppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSB7IHJldHVybjsgfQoKLy8KLy8gYnVpbGQgdGhlIGZvcm0KLy8KJGFsaWFzZXMgPSBbXTsKaWYoaXNzZXQoJF9TRVNTSU9OWyR0aGlzLT5HZXROYW1lKCkgLiAnX2FsaWFzX25hbWVzJ10pKQp7CiAgZm9yKCRpID0gMCwgJGlNYXggPSBjb3VudCgkX1NFU1NJT05bJHRoaXMtPkdldE5hbWUoKSAuICdfYWxpYXNfbmFtZXMnXSk7ICRpIDwgJGlNYXg7ICRpKyspCiAgewogICAgJG5hbWUgICAgICA9ICRfU0VTU0lPTlskdGhpcy0+R2V0TmFtZSgpIC4gJ19hbGlhc19uYW1lcyddWyRpXTsKICAgICRvcHRzICAgICAgPSAkX1NFU1NJT05bJHRoaXMtPkdldE5hbWUoKSAuICdfYWxpYXNfb3B0aW9ucyddWyRpXTsKICAgICRhbGlhc2VzW10gPSBbJ25hbWUnID0+ICRuYW1lLCAnb3B0aW9ucycgPT4gJG9wdHNdOwogIH0KICB1bnNldCgKICAgICRfU0VTU0lPTlskdGhpcy0+R2V0TmFtZSgpIC4gJ19hbGlhc19uYW1lcyddLAogICAgJF9TRVNTSU9OWyR0aGlzLT5HZXROYW1lKCkgLiAnX2FsaWFzX29wdGlvbnMnXQogICk7Cn0KZWxzZQp7CiAgJHRtcCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGlhc2VzJyk7CiAgaWYoJHRtcCkKICB7CiAgICAkYWxpYXNlcyA9IHVuc2VyaWFsaXplKCR0bXApOwogIH0KfQoKJGFzc2lnbiA9IFsKICAgICAgICAgICAgJ2FsaWFzZXMnICAgPT4gJGFsaWFzZXMsCiAgICAgICAgICAgICdmb3Jtc3RhcnQnID0+ICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fc2F2ZWFsaWFzZXMnLCAkcmV0dXJuaWQpLAogICAgICAgICAgICAnZm9ybWVuZCcgICA9PiAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpCiAgICAgICAgICBdOwoKJHNtYXJ0eS0+YXNzaWduKCRhc3NpZ24pOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9hbGlhc2VzX3RhYi50cGwnKTsKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_autoprocessing_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTYgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IGNyZWF0aW5nIGltYWdlIHRhZ3MgaW4gYSBzbWFydAojICB3YXkgdG8gb3B0aW1pemUgcGVyZm9ybWFuY2UuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwoKJHByZWZzID0gXFNtYXJ0SW1hZ2VcYXV0b3Byb2Nlc3Nfb3B0aW9uczo6bG9hZCgpOwoKJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fYXV0b3Byb2Nlc3NpbmdfdGFiLnRwbCcpOwokdHBsLT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX2F1dG9wcm9jZXNzaW5nX3RhYicpKTsKJHRwbC0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHRwbC0+YXNzaWduKCdwcmVmcycsJHByZWZzKTsKJHRwbC0+ZGlzcGxheSgpOw==]]></data>
	</file>
	<file>
	  <filename>/function.admin_embedding_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICAKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIHJldHVybjsKCiRlbWJlZF9tb2RlcyA9IGFycmF5KCk7CiRlbWJlZF9tb2Rlc1snbm9uZSddID0gJHRoaXMtPkxhbmcoJ25vbmUnKTsKJGVtYmVkX21vZGVzWydzbWFydCddID0gJHRoaXMtPkxhbmcoJ3NtYXJ0Jyk7CiRlbWJlZF9tb2Rlc1snc2l6ZWxpbWl0J10gPSAkdGhpcy0+TGFuZygncHJvbXB0X2VtYmVkX3NpemVsaW1pdCcpOwokZW1iZWRfbW9kZXNbJ3NtYXJ0X2xpbWl0ZWQnXSA9ICR0aGlzLT5MYW5nKCdwcm9tcHRfZW1iZWRfc21hcnRsaW1pdGVkJyk7CiRlbWJlZF9tb2Rlc1sndHlwZSddID0gJHRoaXMtPkxhbmcoJ3Byb21wdF9lbWJlZF90eXBlJyk7CiRzbWFydHktPmFzc2lnbignZW1iZWRfbW9kZXMnLCRlbWJlZF9tb2Rlcyk7CiRzbWFydHktPmFzc2lnbignZW1iZWRfbW9kZScsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2VtYmVkX21vZGUnKSk7CiRzbWFydHktPmFzc2lnbignZW1iZWRfc2l6ZWxpbWl0JywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZW1iZWRfc2l6ZWxpbWl0JykpOwokc21hcnR5LT5hc3NpZ24oJ2VtYmVkX3R5cGVzJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZW1iZWRfdHlwZXMnKSk7Cgokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNyZWF0ZUZvcm1TVGFydCgkaWQsJ2FkbWluX2VtYmVkZGluZ190YWInKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fZW1iZWRkaW5nX3RhYi50cGwnKTsKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_general_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IGNyZWF0aW5nIGltYWdlIHRhZ3MgaW4gYSBzbWFydAojICB3YXkgdG8gb3B0aW1pemUgcGVyZm9ybWFuY2UuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwoKCiR0bXAgPSBhcnJheSgpOwokdG1wWyd0bCddID0gJHRoaXMtPkxhbmcoJ3Byb21wdF9sb2NfdG9wbGVmdCcpOwokdG1wWyd0YyddID0gJHRoaXMtPkxhbmcoJ3Byb21wdF9sb2NfdG9wY2VudGVyJyk7CiR0bXBbJ3RyJ10gPSAkdGhpcy0+TGFuZygncHJvbXB0X2xvY190b3ByaWdodCcpOwokdG1wWydjbCddID0gJHRoaXMtPkxhbmcoJ3Byb21wdF9sb2NfY2VudGVybGVmdCcpOwokdG1wWydjJ10gPSAkdGhpcy0+TGFuZygncHJvbXB0X2xvY19jZW50ZXInKTsKJHRtcFsnY3InXSA9ICR0aGlzLT5MYW5nKCdwcm9tcHRfbG9jX2NlbnRlcnJpZ2h0Jyk7CiR0bXBbJ2JsJ10gPSAkdGhpcy0+TGFuZygncHJvbXB0X2xvY19ib3R0b21sZWZ0Jyk7CiR0bXBbJ2JjJ10gPSAkdGhpcy0+TGFuZygncHJvbXB0X2xvY19ib3R0b21jZW50ZXInKTsKJHRtcFsnYnInXSA9ICR0aGlzLT5MYW5nKCdwcm9tcHRfbG9jX2JvdHRvbXJpZ2h0Jyk7CiRzbWFydHktPmFzc2lnbignY3JvcHRvZml0X2xvY3MnLCR0bXApOwokc21hcnR5LT5hc3NpZ24oJ2NhY2hlX2FnZScsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NhY2hlX2FnZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYWNoZV9wYXRoJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY2FjaGVfcGF0aCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbWFnZV91cmxfcHJlZml4JywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VfdXJsX3ByZWZpeCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdjcm9wdG9maXRfZGVmYXVsdF9sb2MnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjcm9wdG9maXRfZGVmYXVsdF9sb2MnLCdjJykpOwokc21hcnR5LT5hc3NpZ24oJ2ltYWdlX3VybF9oYXNjYWNoZWRpcicsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltYWdlX3VybF9oYXNjYWNoZWRpcicpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9nZW5lcmFsX3RhYicpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCdzaWxlbnQnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzaWxlbnQnLDApKTsKJHNtYXJ0eS0+YXNzaWduKCdjaGVja21lbW9yeScsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NoZWNrbWVtb3J5JywxKSk7CiRzbWFydHktPmFzc2lnbignZm9yY2VfZXh0ZW5zaW9uJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZm9yY2VfZXh0ZW5zaW9uJywwKSk7CiRzbWFydHktPmFzc2lnbigncHJvZ3Jlc3NpdmUnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwcm9ncmVzc2l2ZScsMCkpOwokc21hcnR5LT5hc3NpZ24oJ2F1dG9zY2FsZV9vcCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2F1dG9zY2FsZV9vcCcsJ2Nyb3B0b2ZpdCcpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fZ2VuZXJhbF90YWIudHBsJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_responsive_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IGNyZWF0aW5nIGltYWdlIHRhZ3MgaW4gYSBzbWFydAojICB3YXkgdG8gb3B0aW1pemUgcGVyZm9ybWFuY2UuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwoKJHNtYXJ0eS0+YXNzaWduKCdyZXNwb25zaXZlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmVzcG9uc2l2ZScsMCkpOwokc21hcnR5LT5hc3NpZ24oJ2Fzc3VtZV9yZXNwb25zaXZlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYXNzdW1lX3Jlc3BvbnNpdmUnLDApKTsKJHNtYXJ0eS0+YXNzaWduKCdyZXNwb25zaXZlX2JyZWFrcG9pbnRzJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmVzcG9uc2l2ZV9icmVha3BvaW50cycpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9yZXNwb25zaXZlX3RhYicpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9yZXNwb25zaXZlX3RhYi50cGwnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/js.cookie.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohCiAqIEphdmFTY3JpcHQgQ29va2llIHYyLjIuMQogKiBodHRwczovL2dpdGh1Yi5jb20vanMtY29va2llL2pzLWNvb2tpZQogKgogKiBDb3B5cmlnaHQgMjAwNiwgMjAxNSBLbGF1cyBIYXJ0bCAmIEZhZ25lciBCcmFjawogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UKICovCjsoZnVuY3Rpb24gKGZhY3RvcnkpIHsKCXZhciByZWdpc3RlcmVkSW5Nb2R1bGVMb2FkZXI7CglpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7CgkJZGVmaW5lKGZhY3RvcnkpOwoJCXJlZ2lzdGVyZWRJbk1vZHVsZUxvYWRlciA9IHRydWU7Cgl9CglpZiAodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKSB7CgkJbW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7CgkJcmVnaXN0ZXJlZEluTW9kdWxlTG9hZGVyID0gdHJ1ZTsKCX0KCWlmICghcmVnaXN0ZXJlZEluTW9kdWxlTG9hZGVyKSB7CgkJdmFyIE9sZENvb2tpZXMgPSB3aW5kb3cuQ29va2llczsKCQl2YXIgYXBpID0gd2luZG93LkNvb2tpZXMgPSBmYWN0b3J5KCk7CgkJYXBpLm5vQ29uZmxpY3QgPSBmdW5jdGlvbiAoKSB7CgkJCXdpbmRvdy5Db29raWVzID0gT2xkQ29va2llczsKCQkJcmV0dXJuIGFwaTsKCQl9OwoJfQp9KGZ1bmN0aW9uICgpIHsKCWZ1bmN0aW9uIGV4dGVuZCAoKSB7CgkJdmFyIGkgPSAwOwoJCXZhciByZXN1bHQgPSB7fTsKCQlmb3IgKDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgewoJCQl2YXIgYXR0cmlidXRlcyA9IGFyZ3VtZW50c1sgaSBdOwoJCQlmb3IgKHZhciBrZXkgaW4gYXR0cmlidXRlcykgewoJCQkJcmVzdWx0W2tleV0gPSBhdHRyaWJ1dGVzW2tleV07CgkJCX0KCQl9CgkJcmV0dXJuIHJlc3VsdDsKCX0KCglmdW5jdGlvbiBkZWNvZGUgKHMpIHsKCQlyZXR1cm4gcy5yZXBsYWNlKC8oJVswLTlBLVpdezJ9KSsvZywgZGVjb2RlVVJJQ29tcG9uZW50KTsKCX0KCglmdW5jdGlvbiBpbml0IChjb252ZXJ0ZXIpIHsKCQlmdW5jdGlvbiBhcGkoKSB7fQoKCQlmdW5jdGlvbiBzZXQgKGtleSwgdmFsdWUsIGF0dHJpYnV0ZXMpIHsKCQkJaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHsKCQkJCXJldHVybjsKCQkJfQoKCQkJYXR0cmlidXRlcyA9IGV4dGVuZCh7CgkJCQlwYXRoOiAnLycKCQkJfSwgYXBpLmRlZmF1bHRzLCBhdHRyaWJ1dGVzKTsKCgkJCWlmICh0eXBlb2YgYXR0cmlidXRlcy5leHBpcmVzID09PSAnbnVtYmVyJykgewoJCQkJYXR0cmlidXRlcy5leHBpcmVzID0gbmV3IERhdGUobmV3IERhdGUoKSAqIDEgKyBhdHRyaWJ1dGVzLmV4cGlyZXMgKiA4NjRlKzUpOwoJCQl9CgoJCQkvLyBXZSdyZSB1c2luZyAiZXhwaXJlcyIgYmVjYXVzZSAibWF4LWFnZSIgaXMgbm90IHN1cHBvcnRlZCBieSBJRQoJCQlhdHRyaWJ1dGVzLmV4cGlyZXMgPSBhdHRyaWJ1dGVzLmV4cGlyZXMgPyBhdHRyaWJ1dGVzLmV4cGlyZXMudG9VVENTdHJpbmcoKSA6ICcnOwoKCQkJdHJ5IHsKCQkJCXZhciByZXN1bHQgPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7CgkJCQlpZiAoL15bXHtcW10vLnRlc3QocmVzdWx0KSkgewoJCQkJCXZhbHVlID0gcmVzdWx0OwoJCQkJfQoJCQl9IGNhdGNoIChlKSB7fQoKCQkJdmFsdWUgPSBjb252ZXJ0ZXIud3JpdGUgPwoJCQkJY29udmVydGVyLndyaXRlKHZhbHVlLCBrZXkpIDoKCQkJCWVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcodmFsdWUpKQoJCQkJCS5yZXBsYWNlKC8lKDIzfDI0fDI2fDJCfDNBfDNDfDNFfDNEfDJGfDNGfDQwfDVCfDVEfDVFfDYwfDdCfDdEfDdDKS9nLCBkZWNvZGVVUklDb21wb25lbnQpOwoKCQkJa2V5ID0gZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhrZXkpKQoJCQkJLnJlcGxhY2UoLyUoMjN8MjR8MjZ8MkJ8NUV8NjB8N0MpL2csIGRlY29kZVVSSUNvbXBvbmVudCkKCQkJCS5yZXBsYWNlKC9bXChcKV0vZywgZXNjYXBlKTsKCgkJCXZhciBzdHJpbmdpZmllZEF0dHJpYnV0ZXMgPSAnJzsKCQkJZm9yICh2YXIgYXR0cmlidXRlTmFtZSBpbiBhdHRyaWJ1dGVzKSB7CgkJCQlpZiAoIWF0dHJpYnV0ZXNbYXR0cmlidXRlTmFtZV0pIHsKCQkJCQljb250aW51ZTsKCQkJCX0KCQkJCXN0cmluZ2lmaWVkQXR0cmlidXRlcyArPSAnOyAnICsgYXR0cmlidXRlTmFtZTsKCQkJCWlmIChhdHRyaWJ1dGVzW2F0dHJpYnV0ZU5hbWVdID09PSB0cnVlKSB7CgkJCQkJY29udGludWU7CgkJCQl9CgoJCQkJLy8gQ29uc2lkZXJzIFJGQyA2MjY1IHNlY3Rpb24gNS4yOgoJCQkJLy8gLi4uCgkJCQkvLyAzLiAgSWYgdGhlIHJlbWFpbmluZyB1bnBhcnNlZC1hdHRyaWJ1dGVzIGNvbnRhaW5zIGEgJXgzQiAoIjsiKQoJCQkJLy8gICAgIGNoYXJhY3RlcjoKCQkJCS8vIENvbnN1bWUgdGhlIGNoYXJhY3RlcnMgb2YgdGhlIHVucGFyc2VkLWF0dHJpYnV0ZXMgdXAgdG8sCgkJCQkvLyBub3QgaW5jbHVkaW5nLCB0aGUgZmlyc3QgJXgzQiAoIjsiKSBjaGFyYWN0ZXIuCgkJCQkvLyAuLi4KCQkJCXN0cmluZ2lmaWVkQXR0cmlidXRlcyArPSAnPScgKyBhdHRyaWJ1dGVzW2F0dHJpYnV0ZU5hbWVdLnNwbGl0KCc7JylbMF07CgkJCX0KCgkJCXJldHVybiAoZG9jdW1lbnQuY29va2llID0ga2V5ICsgJz0nICsgdmFsdWUgKyBzdHJpbmdpZmllZEF0dHJpYnV0ZXMpOwoJCX0KCgkJZnVuY3Rpb24gZ2V0IChrZXksIGpzb24pIHsKCQkJaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHsKCQkJCXJldHVybjsKCQkJfQoKCQkJdmFyIGphciA9IHt9OwoJCQkvLyBUbyBwcmV2ZW50IHRoZSBmb3IgbG9vcCBpbiB0aGUgZmlyc3QgcGxhY2UgYXNzaWduIGFuIGVtcHR5IGFycmF5CgkJCS8vIGluIGNhc2UgdGhlcmUgYXJlIG5vIGNvb2tpZXMgYXQgYWxsLgoJCQl2YXIgY29va2llcyA9IGRvY3VtZW50LmNvb2tpZSA/IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOyAnKSA6IFtdOwoJCQl2YXIgaSA9IDA7CgoJCQlmb3IgKDsgaSA8IGNvb2tpZXMubGVuZ3RoOyBpKyspIHsKCQkJCXZhciBwYXJ0cyA9IGNvb2tpZXNbaV0uc3BsaXQoJz0nKTsKCQkJCXZhciBjb29raWUgPSBwYXJ0cy5zbGljZSgxKS5qb2luKCc9Jyk7CgoJCQkJaWYgKCFqc29uICYmIGNvb2tpZS5jaGFyQXQoMCkgPT09ICciJykgewoJCQkJCWNvb2tpZSA9IGNvb2tpZS5zbGljZSgxLCAtMSk7CgkJCQl9CgoJCQkJdHJ5IHsKCQkJCQl2YXIgbmFtZSA9IGRlY29kZShwYXJ0c1swXSk7CgkJCQkJY29va2llID0gKGNvbnZlcnRlci5yZWFkIHx8IGNvbnZlcnRlcikoY29va2llLCBuYW1lKSB8fAoJCQkJCQlkZWNvZGUoY29va2llKTsKCgkJCQkJaWYgKGpzb24pIHsKCQkJCQkJdHJ5IHsKCQkJCQkJCWNvb2tpZSA9IEpTT04ucGFyc2UoY29va2llKTsKCQkJCQkJfSBjYXRjaCAoZSkge30KCQkJCQl9CgoJCQkJCWphcltuYW1lXSA9IGNvb2tpZTsKCgkJCQkJaWYgKGtleSA9PT0gbmFtZSkgewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9IGNhdGNoIChlKSB7fQoJCQl9CgoJCQlyZXR1cm4ga2V5ID8gamFyW2tleV0gOiBqYXI7CgkJfQoKCQlhcGkuc2V0ID0gc2V0OwoJCWFwaS5nZXQgPSBmdW5jdGlvbiAoa2V5KSB7CgkJCXJldHVybiBnZXQoa2V5LCBmYWxzZSAvKiByZWFkIGFzIHJhdyAqLyk7CgkJfTsKCQlhcGkuZ2V0SlNPTiA9IGZ1bmN0aW9uIChrZXkpIHsKCQkJcmV0dXJuIGdldChrZXksIHRydWUgLyogcmVhZCBhcyBqc29uICovKTsKCQl9OwoJCWFwaS5yZW1vdmUgPSBmdW5jdGlvbiAoa2V5LCBhdHRyaWJ1dGVzKSB7CgkJCXNldChrZXksICcnLCBleHRlbmQoYXR0cmlidXRlcywgewoJCQkJZXhwaXJlczogLTEKCQkJfSkpOwoJCX07CgoJCWFwaS5kZWZhdWx0cyA9IHt9OwoKCQlhcGkud2l0aENvbnZlcnRlciA9IGluaXQ7CgoJCXJldHVybiBhcGk7Cgl9CgoJcmV0dXJuIGluaXQoZnVuY3Rpb24gKCkge30pOwp9KSk7Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBBCiRsYW5nWydhY3RfY2FjaGVjbGVhbmVkJ10gPSAnQ2FjaGUgQ2xlYW5lZCc7CiRsYW5nWydhZGRfcm93J10gPSAnQWRkIFJvdyc7CiRsYW5nWydhbGlhcyddID0gJ0FsaWFzJzsKJGxhbmdbJ2FsaWFzZXMnXSA9ICdBbGlhc2VzJzsKJGxhbmdbJ2Fza19jbGVhcl9pbWFnZV9jYWNoZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZW1vdmUgQUxMIGZpbGVzIGZyb20gdGhlIGltYWdlIGNhY2hlPyc7CiRsYW5nWydhc3N1bWVfcmVzcG9uc2l2ZSddID0gJ0Fzc3VtZSByZXNwb25zaXZlIGNvb2tpZSBlbmFibGVkJzsKJGxhbmdbJ2F1dG9wcm9jZXNzaW5nJ10gPSAnQXV0b21hdGljIFByb2Nlc3NpbmcnOwokbGFuZ1snYXV0b3Byb2Nlc3NfYXV0b3JvdGF0ZSddID0gJ0F1dG9tYXRpY2FsbHkgT3JpZW50IEltYWdlcyc7CiRsYW5nWydhdXRvcHJvY2Vzc19lbmFibGVkJ10gPSAnRW5hYmxlZCc7CiRsYW5nWydhdXRvcHJvY2Vzc19pbmNsdWRlX2RpcnMnXSA9ICdJbmNsdWRlIERpcnMnOwokbGFuZ1snYXV0b3Byb2Nlc3NfaWdub3JlX2RpcnMnXSA9ICdJZ25vcmUgRGlycyc7CiRsYW5nWydhdXRvcHJvY2Vzc19pZ25vcmVfZXh0ZW5zaW9ucyddID0gJ0lnbm9yZSBFeHRlbnNpb25zJzsKJGxhbmdbJ2F1dG9wcm9jZXNzX21heF9zaXplJ10gPSAnTWF4aW11bSBJbWFnZSBTaXplJzsKJGxhbmdbJ2F1dG9wcm9jZXNzX3dhdGVybWFyayddID0gJ1dhdGVybWFyayBJbWFnZXMnOwoKIyBCCiRsYW5nWydiZWdpbl9hdXRvcHJvY2VzcyddID0gJ0JlZ2luIEF1dG9wcm9jY2VzcyBOb3cnOwoKIyBDCiRsYW5nWydjbGVhcl9hbGwnXSA9ICdDbGVhciBBbGwgRmlsZXMnOwokbGFuZ1snY2xlYXJfbm93J10gPSAnQ2xlYXIgTm93JzsKJGxhbmdbJ2NhY2hlX3BhdGgnXSA9ICdDYWNoZSBQYXRoJzsKJGxhbmdbJ2NoZWNrX21lbW9yeSddID0gJ0RvIHByZWVtcHRpdmUgbWVtb3J5IGNoZWNrJzsKJGxhbmdbJ2NsZWFyanVua3Bob3Rvc19kZXNjcmlwdGlvbiddID0gJ0NsZWFyIHRlbXBvcmFyeSBwaG90b3MgbW9yZSB0aGFuIG9uZSBkYXkgb2xkJzsKJGxhbmdbJ2Nyb3B0b2ZpdCddID0gJ0Nyb3AgdG8gRml0JzsKCiMgRAokbGFuZ1snZGVsZXRlJ10gPSAnRGVsZXRlJzsKCiMgRQokbGFuZ1snZW1iZWRkaW5nJ10gPSAnRW1iZWRkZWQgSW1hZ2VzJzsKJGxhbmdbJ2VtYmVkZGluZ19tb2RlJ10gPSAnSW1hZ2UgRW1iZWRkaW5nIE1vZGUnOwokbGFuZ1snZW1iZWRfc2l6ZWxpbWl0J10gPSAnRW1iZWRkYWJsZSBpbWFnZSBzaXplIGxpbWl0IChrYiknOwokbGFuZ1snZW1iZWRfdHlwZXMnXSA9ICdFbWJlZGRhYmxlIGltYWdlIHR5cGUnOwokbGFuZ1snZW5hYmxlX3Jlc3BvbnNpdmUnXSA9ICdFbmFibGUgUmVzcG9uc2l2ZSBJbWFnZXMnOwokbGFuZ1snZXJyb3JfYWxpYXNfZHVwbGljYXRlbmFtZV9hdHJvdyddID0gJ0R1cGxpY2F0ZSBhbGlhcyBuYW1lIHNwZWNpZmllZCBmb3IgYWxpYXMgYXQgcm93ICVkJzsKJGxhbmdbJ2Vycm9yX2FsaWFzX25vbmFtZV9hdHJvdyddID0gJ05vIG5hbWUgc3BlY2lmaWVkIGZvciBhbGlhcyBhdCByb3cgJWQnOwokbGFuZ1snZXJyb3JfYWxpYXNfbm9vcHRpb25zX2F0cm93J10gPSAnTm8gb3B0aW9ucyBzcGVjaWZpZWQgZm9yIGFsaWFzIGF0IHJvdyAlZCc7CiRsYW5nWydlcnJvcl9jYWNoZXBhdGhfaW52YWxpZCddID0gJ1RoZSBjYWNoZSBwYXRoIHNwZWNpZmllZCBpcyBpbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX2Rlc3Rub3Rmb3VuZCddID0gJ0ZvciBzb21lIHJlYXNvbiB0aGUgb3V0cHV0IGZpbGUgJXMgY291bGQgbm90IGJlIGZvdW5kIChvciBjb3VsZCBub3QgYmUgcmVhZCknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9hZ2UnXSA9ICdBZ2UgcHJlZmVyZW5jZSBpbnZhbGlkLi4uIE5vIG9wZXJhdGlvbiBwZXJmb3JtZWQnOwokbGFuZ1snZXJyb3JfaW5zdWZmaWNpZW50bWVtb3J5J10gPSAnV2UgaGF2ZSBlc3RpbWF0ZWQgdGhhdCBQSFAgcHJvYmFibHkgZG9lcyBub3QgaGF2ZSBlbm91Z2ggbWVtb3J5IHRvIHByb2Nlc3MgdGhpcyBpbWFnZSc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdBIHJlcXVpcmVkIHBhcmFtZXRlciB3YXMgbWlzc2luZyBvciBpbnZhbGlkOiAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyYW0nXSA9ICdJbnZhbGlkIHBhcmFtZXRlciBpbiBjYWxsOiAlcyc7CiRsYW5nWydlcnJvcl9zcmNub3Rmb3VuZCddID0gJ0NvdWxkIG5vdCBmaW5kIGEgZmlsZSBhdDogJXMnOwokbGFuZ1snZXJyb3JfcmVtb3RlZmlsZSddID0gJ1Byb2JsZW0gcmV0cmlldmluZyByZW1vdGUgZmlsZSBhdCAlcyc7CiRsYW5nWydlcnJvcl91bmtub3duZmlsdGVyJ10gPSAnU21hcnRJbWFnZSAtIFVua25vd24gRmlsdGVyOiAlcyc7CgojIEYKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0NNU01TIFNtYXJ0IEltYWdlIFRvb2xraXQnOwoKIyBHCiRsYW5nWydnZW5lcmFsJ10gPSAnR2VuZXJhbCc7CgojIEgKJGxhbmdbJ2hlbHBfYXBfaW5jbHVkZV9kaXJzJ10gPSAnU3BlY2lmeSBhIGxpc3Qgb2YgZGlyZWN0b3JpZXMgKHJlbGF0aXZlIHRvIHRoZSB1cGxvYWRzcyBkaXJlY3RvcnkpIHRoYXQgc2hvdWxkIGJlIGV4cGxpY2l0bHkgaW5jbHVkZWQgaW4gdGhlIGF1dG8gcHJvY2Vzc2luZy4gIElmIHRoaXMgb3B0aW9uIGlzIG5vdCBzcGVjaWZpZWQgYWxsIG5vbiBoaWRkZW4gZGlyZWN0b3JpZXMgd2lsbCBiZSBwcm9jZXNzZWQuICBTcGVjaWZ5IG9ubHkgb25lIGRpcmVjdG9yeSBwZXIgbGluZS4nOwokbGFuZ1snaGVscF9hcF9pZ25vcmVfZGlycyddID0gJ1NwZWNpZnkgYSBsaXN0IG9mIGRpcmVjdG9yaWVzIChyZWxhdGl2ZSB0byB0aGUgdXBsb2FkcyBkaXJlY3RvcnkpIHRoYXQgc2hvdWxkIGJlIGlnbm9yZWQgZHVyaW5nIHByb2Nlc3NpbmcuICBTcGVjaWZ5IG9ubHkgb25lIGRpcmVjdG9yeSBwZXIgbGluZSc7CiRsYW5nWydoZWxwX2FwX21heF9zaXplJ10gPSAnU3BlY2lmeSB0aGUgbWF4aW11bSBzaXplIChpbiBwaXhlbHMpIGluIGFueSBkaXJlY3Rpb24gb2YgYW55IGltYWdlIHRoYXQgaXMgYXV0byBwcm9jZXNzZWQuICBUaGUgYXV0b3Byb2Nlc3NpbmcgZnVuY3Rpb25hbGl0eSB3aWxsIHJlc2l6ZSBpbWFnZXMgc28gdGhhdCB0aGUgbG9uZ2VzdCBkaW1lbnNpb24gaXMgc21hbGxlciB0byBvciBlcXVhbCB0byB0aGlzIHNpemUuJzsKJGxhbmdbJ2hlbHBfYXBfYXV0b3JvdGF0ZSddID0gJ0lmIGVuYWJsZWQsIEpQRUcgaW1hZ2VzIHRoYXQgYXJlIG92ZXIgdGhlIG1heGltdW0gc2l6ZSBjYW4gYmUgcm90YXRlZCB0byBjb3JyZWN0IHRoZWlyIG9yaWVudGF0aW9uIGJlZm9yZSByZXNpemluZyc7CgojIEkKJGxhbmdbJ2luZm9fYWxpYXNlcyddID0gJ0FsaWFlcyBjYW4gYmUgdXNlZCB2aWEgdGhlIGFsaWFzMSB0aHJvdWdoIGFsaWFzNSBvcHRpb25zIG9uIHRoZSBTbWFydEltYWdlIHRhZyB0byBjb21iaW5lIG51bWVyb3VzIGZyZXF1ZW50bHkgdXNlZCBvcHRpb25zJzsKJGxhbmdbJ2luZm9fYXNzdW1lX3Jlc3BvbnNpdmUnXSA9ICdUaGlzIG9wdGlvbiBpcyBvbmx5IGFwcGxpY2FibGUgd2hlbiByZXNwb25zaXZlIGltYWdlcyBhcmUgaW5jbHVkZWQuICBJdCBpbnN0cnVjdHMgU21hcnRJbWFnZSB0byBvdXRwdXQgb25seSBhbiBIVE1MIGNvbW1lbnQgaWYgdGhlIGNvb2tpZSBjb250YWluaW5nIGRldmljZSBjaGFyYWN0ZXJpc3RpY3MgZG9lcyBub3QgZXhpc3QuICBUaGlzIGlzIGFuIG9wdGltaXphdGlvbiAoYXMgaXQgc2F2ZXMgU21hcnRJbWFnZSBmcm9tIHBlcmZvcm1pbmcgZG91YmxlIHByb2Nlc3Npbmcgb24gdGhlIHNhbWUgaW1hZ2VzIGZvciB0aGUgaW5pdGlhbCByZXF1ZXN0IG9mIGEgcmVzcG9uc2l2ZSBwYWdlLiAgSG93ZXZlciwgaWYgYSB1c2VyIGhhcyBjb29raWVzIGRpc2FibGVkIG9uIHRoZWlyIGJyb3dzZXIgdGhlbiB0aGV5IG1heSBzZWUgYSBicm9rZW4gd2ViIHBhZ2UgKG1pc3NpbmcgaW1hZ2VzIG9yIGJyb2tlbiBqYXZhc2NyaXB0LiknOwokbGFuZ1snaW5mb19hdXRvcHJvY2Vzc2luZyddID0gJzxwPkluIG9yZGVyIHRvIGNvbnNlcnZlIHN0b3JhZ2Ugc3BhY2UsIHRoaXMgZnVuY3Rpb25hbGl0eSwgaWYgZW5hYmxlZCB3aWxsIHJlc2l6ZSBhbGwgaW1hZ2UgZmlsZXMgdGhhdCBhcmUgbG9jYXRlZCBiZW5lYXRoIHRoZSB1cGxvYWRzIGRpcmVjdG9yeSBhbmQgdGhhdCBhcmUgbGFyZ2VyIGluIGFueSBkaW1lbnNpb24gdGhhbiB0aGUgc3BlY2lmaWVkIG1heGltdW0gaW1hZ2Ugc2l6ZS4gIFRoaXMgZnVuY3Rpb25hbGl0eSBXSUxMIG92ZXJ3cml0ZSB0aGUgb3JpZ2luYWwgZmlsZS48L3A+JzsKJGxhbmdbJ2luZm9fYXV0b3NjYWxlX29wJ10gPSAnV2hlbiBhdXRvc2NhbGluZyBpcyBhbGxvd2VkLCB0aGlzIHByZWZlcmVuY2Ugc2V0cyB0aGUgZGVmYXVsdCBmaWx0ZXIgdGhhdCB3aWxsIGJlIHVzZWQuICBUaGlzIGNhbiBiZSBvdmVycmlkZW4gYnkgdXNpbmcgdGhlIGF1dG9zY2FsZV9vcCBwYXJhbWV0ZXIuJzsKJGxhbmdbJ2luZm9fY2hlY2tfbWVtb3J5J10gPSAnSWYgZW5hYmxlZCwgdGhlIHN5c3RlbSB3aWxsIGF0dGVtcHQgdG8gZXN0aW1hdGUgbWVtb3J5IG5lZWRlZCBmb3IgYW4gaW1hZ2UgdHJhbnNmb3JtYXRpb24sIGFuZCB3aWxsIGZhaWwgaWYgaW5zdWZmaWNpZW50IGF2YWlsYWJsZSBtZW1vcnkgaXMgZGV0ZWN0ZWQnOwokbGFuZ1snaW5mb19jcm9wdG9maXRfZGVmYXVsdF9sb2MnXSA9ICdTcGVjaWZ5IHRoZSBkZWZhdWx0IGxvY2F0aW9uIGZyb20gd2hpY2ggdG8gJnF1b3Q7Y3JvcCB0byBmaXQmcXVvdDsgdGhpcyB3aWxsIGVmZmVjdCBhbGwgY3JvcCB0byBmaXQgb3BlcmF0aW9ucyB1bmxlc3MgdGhlIGxvY2F0aW9uIHBhcmFtZXRlciBvbiB0aGUgZmlsdGVyX2Nyb3B0b2ZpdCBhdHRyaWJ1dGUgb3ZlcnJpZGVzIGl0LiAgRGVmYXVsdCBsb2NhdGlvbiBpcyAmcXVvdDtjZW50ZXImcXVvdDsnOwokbGFuZ1snaW5mb19yZXNwb25zaXZlJ10gPSAnSWYgZW5hYmxlZCwgU21hcnRJbWFnZSB3aWxsIGF0dGVtcHQgdG8gZGV0ZWN0IHRoZSBtYXhpbXVtIHJlc29sdXRpb24gb2YgdGhlIHJlcXVlc3RpbmcgZGV2aWNlIGFuZCBhdXRvbWF0aWNhbGx5IHJlc2NhbGUgdGhlIGltYWdlIHNvIHRoYXQgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBjYW4gdGhlIG91dHB1dCBpbWFnZSBiZSB0b28gbGFyZ2UgZm9yIHRoZSBkaXNwbGF5LiAgVGhpcyBhc3Npc3RzIGluIHBlcmZvcm1hbmNlIHdoZW4gZGV2ZWxvcGluZyBtb2JpbGUgd2Vic2l0ZXMuJzsKJGxhbmdbJ2luZm9fZm9yY2VfZXh0ZW5zaW9uJ10gPSAnSWYgZW5hYmxlZCwgU21hcnRJbWFnZSB3aWxsIGZvcmNlIGFsbCBnZW5lcmF0ZWQgaW1hZ2VzIHRvIGhhdmUgYSBmaWxlIGV4dGVuc2lvbi4gPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaG91Z2ggYWxsIGVmZm9ydHMgYXJlIG1hZGUgdG8gZW5zdXJlIGNvcnJlY3RuZXNzLCB0aGUgZmlsZSBleHRlbnNpb24gZ2VuZXJhdGVkIG1heSBub3QgYWNjdXJhdGVseSByZXByZXNlbnQgdGhlIGFjdHVhbCBpbWFnZSB0eXBlLCBkZXBlbmRpbmcgdXBvbiB0aGUgZmlsdGVycyB1c2VkIGFuZCB0aGUgcGFyYW1ldGVycyB0byB0aG9zZSBmaWx0ZXJzLic7CiRsYW5nWydpbmZvX3Jlc3BvbnNpdmVfYnJlYWtwb2ludHMnXSA9ICdJZiBzcGVjaWZpZWQsIGFuZCBhIG1vYmlsZSBkZXZpY2UgaXMgZGV0ZWN0ZWQgdGhlIGJyZWFrcG9pbnRzIHdpbGwgYmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIG1heGltdW0gbGFyZ2VzdCBlZGdlIGZvciB0aGUgcmVzdWx0aW5nIGltYWdlLiAgU3BlY2lmeSBhIGxpc3Qgb2YgY29tbWEgc2VwYXJhdGVkIGluY3JlYXNpbmcgaW50ZWdlcnMgPGVtPihpLmU6IDIwMCw0MDAsNjAwLDgwMCk8L2VtPi4gVGhlIGRldmljZSBjYXBhYmlsdGllcyB3aWxsIGJlIHVzZWQgdG8gZmluZCB0aGUgY2xvc2VzdCBtYXRjaGluZyBicmVha3BvaW50IHZhbHVlLiAgVGhlIGltYWdlIHdpbGwgYmUgcmVzaXplZCBzbyB0aGF0IGl0cyBsYXJnZXN0IGVkZ2UgaXMgYXQgdGhhdCB2YWx1ZSB3aXRob3V0IHVwc2NhbGluZy4gIEFzcGVjdCByYXRpbyB3aWxsIGJlIG1haW50YWluZWQuJzsKJGxhbmdbJ2ltYWdlX3VybF9oYXNjYWNoZWRpciddID0gJ0RvZXMgdGhlIFVSTCBhYm92ZSBhY291bnQgZm9yIHRoZSBjYWNoZSBwYXRoPyBpZS4gKHVwbG9hZHMvX1NtYXJ0SW1hZ2UpJzsKJGxhbmdbJ2ltYWdlX3VybF9wcmVmaXgnXSA9ICdJbWFnZSBVcmwgUHJlZml4JzsKJGxhbmdbJ2luZm9fY2FjaGVfYWdlJ10gPSAnU3BlY2lmeSB0aGUgbWF4aW11bSBhZ2Ugb2YgYSBmaWxlIChpbiBkYXlzKSBiZWZvcmUgaXQgd2lsbCBiZSByZW1vdmVkIGFuZCBmb3JjZWQgdG8gcmVnZW5lcmF0ZS4gIFRoaXMgaXMgdXNlZnVsIGlmIHlvdSBoYXZlIGNoYW5nZWQgc29tZSBvZiB0aGUgcGFyYW1ldGVycyB1c2VkIHdoZW4gZ2VuZXJhdGluZyBpbWFnZXMsIG9yIHRvIGNvbnRyb2wgdGhlIGFtb3VudCBvZiBkaXNrIHNwYWNlIHVzZWQuICBFbnRlcmluZyAwIHdpbGwgZGlzYWJsZSBhdXRvbWF0aWMgZmlsZSBkZWxldGlvbic7CiRsYW5nWydpbmZvX2NhY2hlX3BhdGgnXSA9ICdDYWNoZSBwYXRoIGZvciBjYWNoZSBpbWFnZXMgdG8gYmUgc3RvcmVkLiBDYWNoZSBwYXRoIGlzIHJlbGF0aXZlIHRvIGNvbmZpZyByZWZlcmVuY2UgInJvb3RfcGF0aCIuJzsKJGxhbmdbJ2luZm9fZW1iZWRfbW9kZSddID0gJ1RoaXMgc2VsZWN0aW9uIGRldGVybWluZXMgaG93IHRoZSB7c21hcnRpbWd9IHRhZyB3aWxsIGdlbmVyYXRlIG91dHB1dC4gIElmICZxdW90O25vbmUmcXVvdDsgaXMgc2VsZWN0ZWQgbm8gaW1hZ2UgZW1iZWRkaW5nIHdpbGwgYmUgcGVyZm9ybWVkLiAgSWYgJnF1b3Q7c21hcnQmcXVvdDsgaXMgc2VsZWN0ZWQgdGhlbiB0aGUgc3lzdGVtIHdpbGwgZGVjaWRlIGJhc2VkIG9uIHRoZSBpbWFnZSBzaXplLCB0eXBlLCBhbmQgdGhlIGJyb3dzZXIgdGhhdCBpcyByZXF1ZXN0aW5nIHRoZSBpbWFnZS4gIE90aGVyIG9wdGlvbnMgaW5jbHVkZSBhbHdheXMgZW1iZWRkaW5nIGJhc2VkIG9uIHRoZSBpbWFnZSBzaXplLCBvciB0aGUgaW1hZ2UgdHlwZS4nOwokbGFuZ1snaW5mb19lbWJlZF9zaXplbGltaXQnXSA9ICdJZiB0aGUgZW1iZWRkaW5nIG9wdGlvbiBpcyBkZXRlcm1pZWQgYnkgdGhlIGltYWdlIHNpemUsIHNwZWNpZnkgdGhlIG1heGltdW0gc2l6ZSAoaW4ga2lsb2J5dGVzKSBmb3IgaW1hZ2VzIHRvIGJlIGVtYmVkZGVkICgzMiBpcyByZWNvbW1lbmRlZCkuJzsKJGxhbmdbJ2luZm9fZW1iZWRfdHlwZXMnXSA9ICdJZiB0aGUgZW1iZWRkaW5nIG9wdGlvbiBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBpbWFnZSB0eXBlLCBzcGVjaWZ5IHRoZSBleHRlbnNpb25zIG9mIHRoZSBmaWxlcyB0aGF0IHNob3VsZCBiZSBlbWJlZGRlZCBoZXJlIHNlcGFyYXRlZCBieSBjb21tYXMuICBUaGlzIG9wdGlvbiBpcyBub3QgY2FzZSBzZW5zaXRpdmUnOwokbGFuZ1snaW5mb19pbWFnZV91cmxfaGFzY2FjaGVkaXInXSA9ICdJZiB5b3VyIENETiBpcyBwb2ludGluZyBkaXJlY3RseSBhdCB0aGUgaW1hZ2UgY2FjaGUgZGlyZWN0b3J5IHRoZW4geW91IG1heSB3YW50IHRvIHR1cm4gdGhpcyBvcHRpb24gb24uJzsKJGxhbmdbJ2luZm9faW1hZ2VfdXJsX3ByZWZpeCddID0gJ1NwZWNpZnkgdGhlIFVSTCB0byBwcmVmaXggdG8gYWxsIGdlbmVyYXRlZCBpbWFnZXMuICBCeSBkZWZhdWx0IHRoaXMgaXMgdGhlIHVwbG9hZHMgVVJMLCBob3dldmVyIGlmIHlvdSBoYXZlIHlvdXIgb3duIENETiAob3IgbXVsdGlwbGUgZG9tYWlucyBwb2ludGluZyBhdCB0aGUgc2FtZSBkaXJlY3RvcnkpIFlvdSBtYXkgd2FudCB0byBzcGVjaWZ5IGEgZGlmZmVyZW50IG5hbWUgaGVyZSc7CiRsYW5nWydpbmZvX3Byb2dyZXNzaXZlJ10gPSAnSWYgZW5hYmxlZCwgSlBFRyBpbWFnZXMgd2lsbCBiZSBzYXZlZCBhcyBwcm9ncmVzc2l2ZSBpbWFnZXMuICBUaGlzIG9wdGlvbiBjYW4gYWxzbyBiZSBvdmVycmlkZGVuIHdpdGggdGhlIHByb2dyZXNzaXZlIHBhcmFtZXRlci4nOwokbGFuZ1snaW5mb19zdXBwcmVzc19lcnJvcnMnXSA9ICdTcGVjaWZ5IGEgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlICZxdW90O3NpbGVudCZxdW90OyBwYXJhbWV0ZXInOwoKIyBNCiRsYW5nWydtYXhfY2FjaGVfYWdlJ10gPSAnTWF4aW11bSBDYWNoZSBGaWxlIEFnZSAoZGF5cyknOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdBIHNtYXJ0IGltYWdlIHRhZyBnZW5lcmF0aW9uIG1vZHVsZSBmb3IgQ01TTVMnOwokbGFuZ1snbXNnX2FsaWFzZXNfdXBkYXRlZCddID0gJ0FsaWFzZXMgVXBkYXRlZCc7CiRsYW5nWydtc2dfY2FjaGVjbGVhbmVkJ10gPSAnQ2FjaGUgZGlyZWN0b3J5IGNsZWFuZWQuICVkIGZpbGVzIHJlbW92ZWQnOwokbGFuZ1snbXNnX2NhY2hlcmVtb3ZlZCddID0gJ0NhY2hlIGRpcmVjdG9yeSBjb21wbGV0ZWx5IGNsZWFuZWQnOwokbGFuZ1snbXNnX3ByZWZzdXBkYXRlZCddID0gJ1ByZWZlcmVuY2VzIFVwZGF0ZWQnOwokbGFuZ1snbXNnX3Rhc2tub3RyZWFkeSddID0gJ1Rhc2sgbm90IHJlYWR5JzsKCiMgTgokbGFuZ1snbm9uZSddID0gJ05vbmUnOwoKIyBPCiRsYW5nWydvcHRpb25zJ10gPSAnT3B0aW9ucyc7CgojIFAKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gPDw8RU9UClRoZSBhY3Rpb24gZm9yIHRoZSBtb2R1bGUgdG8gcGVyZm9ybS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6Cjx1bD4KICA8bGk+PHN0cm9uZz5kZWZhdWx0PC9zdHJvbmc+IC0gUGVyZm9ybSBtYW5pcHVsYXRpb24gb24gYSBzaW5nbGUgaW1hZ2UuPC9saT4KICA8bGk+cmVzcG9uc2l2ZSAtIE91dHB1dCBqYXZhc2NyaXB0IGNvZGUgdGhhdCB3aWxsIGNyZWF0ZSBhIGNvb2tpZSBwcm92aWRpbmcgdGhlIFNtYXJ0SW1hZ2UgbW9kdWxlIHdpdGggZGV2aWNlIHNjcmVlbiBzaXplIGFuZCBwaXhlbCByYXRpby48L2xpPgo8L3VsPgpFT1Q7CiRsYW5nWydwYXJhbV9hbGlhcyddID0gJ1RoZSBTbWFydEltYWdlIGFkbWluIHBhbmVsIGFsbG93cyBjcmVhdGluZyBudW1lcm91cyBjb21tYW5kIGFsaWFzIHRvIGNvbWJpbmUgYSBmcmVxdWVudGx5IHVzZWQgcGF0dGVybiBvZiBhcmd1bWVudHMgaW50byBvbmUgbmFtZS4gIFRvIHVzZSB0aGVzZSBhbGlhc2VzIHVzZSBhbiBhcmd1bWVudCBvZiB0aGUgZm9ybSBhbGlhcyMjPWFsaWFzX25hbWUgaS5lOiAgYWxpYXMxPWZvbyBhbGlhczI9Zm9vLic7CiRsYW5nWydwYXJhbV9hbHQnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSBhbHQgYXR0cmlidXRlLiAgTm90ZSwgaWYgdGhpcyBpcyBub3Qgc3BlY2lmaWVkIGEgdmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoaXMgYXR0cmlidXRlIHNvIHRoYXQgbW9zdCBnZW5lcmF0ZWQgaW1nIHRhZ3Mgd2lsbCB2YWxpZGF0ZS4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBhdXRvIGNhbGN1bGF0aW9uIHdpdGggdGhlICZxdW90O25vYXV0byZxdW90OyBwYXJhbWV0ZXInOwokbGFuZ1sncGFyYW1fYXV0b3NjYWxlX29wJ10gPSAnT3ZlcnJpZGUgdGhlIGRlZmF1bHQgZmlsdGVyIHRvIGJlIHVzZWQgd2hlbiBhdXRvc2NhbGluZy4gIFBvc3NpYmxlIHZhbHVlcyBhcmUgInJlc2l6ZSIgYW5kICJjcm9wdG9maXQiJzsKJGxhbmdbJ3BhcmFtX2NsYXNzJ10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIGFsbG93cyBzcGVjaWZ5aW5nIG9uZSBvciBtb3JlIGNsYXNzZXMgdG8gaW5jbHVkZSBvbiB0aGUgdGFnLiAgaS5lOiBjbGFzcz0iZmFuY3lib3ggdGh1bWJuYWlsIic7CiRsYW5nWydwYXJhbV9maWx0ZXJfYmx1ciddID0gJyhhbnl0aGluZykgU3BlY2lmeSBhbnkgdmFsdWUgZm9yIHRoaXMgcGFyYW1ldGVyIHRvIGFkZCBhIGJsdXIgZmlsdGVyIHRvIHRoZSBpbWFnZSc7CiRsYW5nWydwYXJhbV9maWx0ZXJfYnJpZ2h0bmVzcyddID0gJyhpbnRlZ2VyKSBJbmNyYXNlIHRoZSBicmlnaHRuZXNzIG9mIHRoZSBwcm9jZXNzZWQgaW1hZ2UgYnkgdGhlIGludGVnZXIgdmFsdWUgc3BlY2lmaWVkJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jb2xvcml6ZSddID0gJyhyLGcsYlssYWxwaGFdKSAtIExpa2UgZmlsdGVyX2dyYXlzY2FsZSBob3dldmVyIHlvdSBjYW4gc3BlY2lmeSB0aGUgY29sb3IgYW5kIGFscGhhIHZhbHVlJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jb250cmFzdCddID0gJyhpbnRlZ2VyKSBDaGFuZ2UgdGhlIGNvbnRyYXN0IG9mIHRoZSBpbWFnZSBieSB0aGUgaW50ZWdlciB2YWx1ZSBzcGVjaWZpZWQnOwokbGFuZ1sncGFyYW1fZmlsdGVyX2Nyb3AnXSA9ICcocGVyY2VudFssaF9hbGlnbix2X2FsaWduXSkgLSBQZXJmb3JtIGNyb3BwaW5nIG9uIHRoZSBpbWFnZSBzcGVjaWZpZWQuIENyb3AgcGFyYW1lZXRlcnMgYXJlIHNwZWNpZmllZCBhcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHBhcmFtZXRlcnMuICBUaGUgZmlyc3QgKHJlcXVpcmVkKSB2YWx1ZSBpcyBhbiBpbnRlZ2VyIHBlcmNlbnRhZ2Ugb2YgdGhlIG9yaWdpbmFsIGltYWdlIHNpemUuICBUaGUgb3B0aW9uYWwgc2Vjb25kIGFuZCB0aGlyZCBwYXJhbWV0ZXJzIGFyZSBvbmUgb2YgbCxjLHIgKGxlZnQsY2VudGVyLHJpZ2h0KSBhbmQgdCxjLGIgKHRvcCxjZW50ZXIsYm90dG9tKSBzcGVjaWZ5aW5nIHdoZXJlIHRoZSBsb2NhdGlvbiB3aXRoaW4gdGhlIHNvdXJjZSBpbWFnZSB0byBjcm9wIGZyb20uICBpLmU6IGNyb3A9MzMsYixyIHRvIGdyYWIgYSBjcm9wIG9mIDMzJSBmcm9tIHRoZSBib3R0b20gcmlnaHQgb2YgdGhlIHNvdXJjZSBpbWFnZS4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX2Nyb3B0b2ZpdCddID0gJyh3aWR0aCxoZWlnaHRbLGxvY2F0aW9uWyx1cHNjYWxlXV0pIC0gUGVyZm9ybSBhIGNyb3B0b2ZpdCBvbiB0aGUgaW1hZ2Ugc3BlY2lmaWVkLiBUaGlzIGF0dGVtcHRzIHRvIHJlc2NhbGUgdGhlIGltYWdlIHRvIHRoZSBkZXN0aW5hdGlvbiBzaXplIHdoaWxlIHJldGFpbmluZyBhc3BlY3QgcmF0aW8sIHRoZW4gZm9jdXMgb24gdGhlIHNlbGVjdGVkIGFyZWEgb2YgdGhlIHJlc2l6ZWQgaW1hZ2UuICBDcm9wIHRvIGZpdCBwYXJhbWV0ZXJzIGFyZSBzcGVjaWZpZWQgYXMgdGhlIGRlc2lyZWQgd2lkdGggYW5kIGhlaWdodCBmb3IgdGhlIGRlc3RpbmF0aW9uIGltYWdlIGFsb25nIHdpdGggYW4gKG9wdGlvbmFsKSBsb2NhdGlvbiBjb2RlLCBhbmQgdXBzY2FsZSBmbGFnLiAgdmFsaWQgbG9jYXRpb24gY29kZXMgYXJlIHRsLHRjLHRyLGNsLGMsY3IsYmwsYixiciBmb3IgdGhlIDkgcmVsYXRpdmUgcG9zaXRpb25zIHdpdGhpbiB0aGUgaW1hZ2UuICBJZiBhIGxvY2F0aW9uIGlzIG5vdCBzcGVjaWZpZWQgYSBwcmVmZXJlbmNlIHdpbGwgYmUgdXNlZC4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzICZxdW90O2MmcXVvdDsgdG8gY3JvcC10by1maXQgZnJvbSB0aGUgY2VudGVyIG9mIHRoZSBzb3VyY2UgaW1hZ2UuICBCeSBkZWZhdWx0IHVwc2NhbGluZyBpcyBkaXNhYmxlZCBvbiB0aGlzIGZpbHRlci4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX2Nyb3Ayc2l6ZSddID0gJyh3aWR0aCxoZWlnaHRbLGxvY2F0aW9uXSkgLSBQZXJmb3JtIGEgY3JvcCBvbiB0aGUgaW1hZ2Ugc3BlY2lmaWVkLiAgVGhpcyBmaWx0ZXIgd2lsbCBjb3B5IHRoZSBwb3J0aW9uIG9mIHRoZSBzb3VyY2UgaW1hZ2Ugc3BlY2lmaWVkIGludG8gdGhlIGRlc3RpbmF0aW9uIGltYWdlLiAgVGhlIHdpZHRoIGFuZCBoZWlnaHQgcGFyYW1ldGVycyBjYW4gYmUgbm8gbGFyZ2VyIHRoYW4gdGhlIHNpemUgb2YgdGhlIHNvdXJjZSBpbWFnZSAoYW5kIHdpbGwgYmUgdHJpbW1lZCBhcyBzdWNoLiAgTmVnYXRpdmUgdmFsdWVzIGFyZSBub3QgcGVybWl0dGVkLiAgVmFsaWQgbG9jYXRpb25zIGFyZTogdGwsdGMsdHIsY2wsYyxjcixibCxiYyxiciBmb3IgdGhlIDkgcmVsYXRpdmUgcG9zaXRpb25zIHdpdGhpbiB0aGUgaW1hZ2UuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9lZGdlZGV0ZWN0J10gPSAnKGFueXRoaW5nKSBIaWxpZ2h0IHRoZSBlZGdlcyBpbiB0aGUgaW1hZ2UnOwokbGFuZ1sncGFyYW1fZmlsdGVyX2VtYm9zcyddID0gJyhhbnl0aGluZykgRW1ib3NzIHRoZSBpbWFnZSc7CiRsYW5nWydwYXJhbV9maWx0ZXJfZmxpcCddID0gJyhtb2RlKSAtIFBlcmZvcm0gYSBmbGlwIG9uIHRoZSBzcGVjaWZpZWQgaW1hZ2UuICBTcGVjaWZ5IDAgZm9yIGhvcml6b250YWwsIDEgZm9yIHZlcnRpY2FsLCBhbmQgMiBmb3IgZmxpcCBpbiBib3RoIGRpcmVjdGlvbnMuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9ub29wJ10gPSAnKGFueXRoaW5nKSBEbyBubyBwcm9jZXNzaW5nIChidXQgdHJpZ2dlcnMgYSBjYWNoZWQgaW1hZ2UpJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9ncmF5c2NhbGUnXSA9ICcoYW55dGhpbmcpIENvbnZlcnQgdGhlIGltYWdlIHRvIGdyYXlzY2FsZSc7CiRsYW5nWydwYXJhbV9maWx0ZXJfbWVhbnJlbW92YWwnXSA9ICcoYW55dGhpbmcpIEF0dGVtcHQgdG8gYWNoaWV2ZSBhICZxdW90O3NrZXRjaHkmcXVvdDsgZWZmZWN0JzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9uZWdhdGUnXSA9ICcoYW55dGhpbmcpIE5lZ2F0ZSB0aGUgaW1hZ2UnOwokbGFuZ1sncGFyYW1fZmlsdGVyX3BpeGVsYXRlJ10gPSAnKHNpemVbLGFkdmFuY2VkXSkgUGl4ZWxhdGUgdGhlIGltYWdlLCBzcGVjaWZ5IGFuIGludGVnZXIgc2l6ZSBhbmQgYW4gb3B0aW9uYWwgYm9vbGVhbiAoZGVmYXVsdCBpcyBmYWxzZSkgdG8gZW5hYmxlIGFkdmFuY2VkIHBpeGVsYXRpb24nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3JlZmxlY3QnXSA9ICcoW3JlZmxlY3Rpb25faGVpZ2h0WyxyZWZsZWN0aW9uX29wYWNpdHlbLGRpdmlkZXJfaGVpZ2h0XV1dKSwgQ3JlYXRlcyByZWZsZWN0aW9uIG9mIGltYWdlLCBjdXJyZW50bHkgd29ya2luZyBvbmx5IHdpdGgganBnLGpwZWcgaW1hZ2VzIGFnYWluc3Qgd2hpdGUgYmFja2dyb3VuZC4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3Jlc2l6ZSddID0gJ3R5cGUsbnVtYmVyWyxudW1iZXJbLHVwc2NhbGVdXSAtIFBlcmZvcm0gYSByZXNpemUgb2YgdGhlIHNvdXJjZSBpbWFnZS4gIEJ5IGRlZmF1bHQsIHRoZSByZXNpemUgZmlsdGVyIGFsbG93cyB1cHNjYWxpbmcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOgo8dWw+CiAgPGxpPnAsbnVtYmVyIC0gUGVyZm9ybSBhIHNpbXBsZSByZXNjYWxlIHRvIGEgY2VydGFpbiBwZXJjZW50YWdlLiAgaS5lOiAgcmVzaXplPXAsNTAgdG8gcmVzaXplIHRvIDUwJSBvZiB0aGUgb3JpZ2luYWwgc2l6ZS48L2xpPgogIDxsaT5wLG51bWJlciwwIC0gUGVyZm9ybSBhIHNpbXBsZSByZXNjYWxlIHRvIGEgY2VydGFpbiBwZXJjZW50YWdlLiAgaS5lOiAgcmVzaXplPXAsNTAgdG8gcmVzaXplIHRvIDUwJSBvZiB0aGUgb3JpZ2luYWwgc2l6ZS4gRG8gbm90IGFsbG93IHVwc2NhbGluZzwvbGk+CiAgPGxpPncsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCB3aWR0aCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPXcsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIHdpZHRoIG9mIDgwIHBpeGVscy48L2xpPgogIDxsaT53LG51bWJlciwwIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCB3aWR0aCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPXcsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIHdpZHRoIG9mIDgwIHBpeGVscy4gRG8gbm90IGFsbG93IHVwc2NhbGluZzwvbGk+CiAgPGxpPmgsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCBoZWlnaHQgKHdoaWxlIHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiBpLmU6IHJlc2l6ZT1oLDgwIHRvIGNyZWF0ZSBhIHRodW1ibmFpbCB3aXRoIGEgbWF4aW11bSBoZWlnaHQgb2YgODAgcGl4ZWxzLjwvbGk+CiAgPGxpPmgsbnVtYmVyLDAgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgc3BlY2lmaWVkIGhlaWdodCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPWgsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIGhlaWdodCBvZiA4MCBwaXhlbHMuIERvIG5vdCBhbGxvdyB1cHNjYWxpbmc8L2xpPgogIDxsaT5lLG51bWJlciAtIFBlcmZvcm0gYSByZXNpemUgcmVzaXppbmcgdGhlIGxhcmdlc3QgZWRnZSB0byB0aGUgc3BlY2lmaWVkIHZhbHVlICh3aGlsZSByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gaS5lOiByZXNpemU9ZSwxMDAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdob3MgbGFyZ2VzdCBlZGdlIGlzIDEwMCBwaXhlbHMuPC9saT4KICA8bGk+ZSxudW1iZXIsMCAtIFBlcmZvcm0gYSByZXNpemUgcmVzaXppbmcgdGhlIGxhcmdlc3QgZWRnZSB0byB0aGUgc3BlY2lmaWVkIHZhbHVlICh3aGlsZSByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gaS5lOiByZXNpemU9ZSwxMDAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdob3MgbGFyZ2VzdCBlZGdlIGlzIDEwMCBwaXhlbHMuICBEbyBub3QgYWxsb3cgdXBzY2FsaW5nLjwvbGk+CiAgPGxpPmMseCx5IC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIGN1c3RvbSBzaXplICh3aXRob3V0IHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgaS5lOiBmaWx0ZXJfcmVzaXplPWMsNTAsNzUgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHRoYXQgaXMgNTB4NzUgcGl4ZWxzLjwvbGk+LgogIDxsaT5jLHgseSwwIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIGN1c3RvbSBzaXplICh3aXRob3V0IHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgaS5lOiBmaWx0ZXJfcmVzaXplPWMsNTAsNzUgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHRoYXQgaXMgNTB4NzUgcGl4ZWxzLiBEbyBub3QgYWxsb3cgdXBzY2FsaW5nLjwvbGk+Lgo8L3VsPic7CiRsYW5nWydwYXJhbV9maWx0ZXJfcmVzaXpldG9maXQnXSA9ICcod2lkdGgsaGVpZ2h0Wyxjb2xvclssYWxwaGFdXSkgLSBQZXJmb3JtIGEgcmVzaXplIG9uIHRoZSBpbWFnZSBzcGVjaWZpZWQuIFRoaXMgYXR0ZW1wdHMgdG8gcmVzY2FsZSB0aGUgaW1hZ2UgdG8gdGhlIGRlc3RpbmF0aW9uIHNpemUgd2hpbGUgcmVhdGluaW5nIGFzcGVjdCByYXRpbywgdGhlIGltYWdlIGlzIGNlbnRlcmVkIGluIHRoZSBib3ggc3BlY2lmaWVkIChlaXRoZXIgaG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgZGVwZW5kaW5nIHVwb24gYXNwZWN0IHJhdGlvIGFuZCB0aGUgZGVzdGluYXRpb24gc2l6ZSwgYW5kIHRoZSBpbWFnZSBpcyBzdXJyb3VuZGVkIGJ5IHRoZSBzdXBwbGllZCBjb2xvci4gIENvbG9ycyBjYW4gYmUgc3BlY2lmaWVkIGJ5IG5hbWUgKHNlZSB0aGUgWDExIGNvbG9yIG5hbWVzKSwgb3IgYnkgI25ubm5ubiBoZXhhZGVjaW1hbCBmb3JtYXQsIG9yIGFzIHJnYiB2YWx1ZXMgc2VwYXJhdGVkIGJ5IGEgOiBpLmU6ICBmaWx0ZXJfY3JvcHRvZml0PTYwMCw0MDAsI2ZmMDAwMC4gIFRoZSBzcGVjaWFsIGNvbG9yIHZhbHVlICZxdW90O3RyYW5zcGFyZW50JnF1b3Q7IGNhbiBiZSBzcGVjaWZpZWQgdG8gZm9yY2UgdGhlIGJhY2tncm91bmQgdG8gYmUgdHJhbnNwYXJlbnQgKGZvciBpbWFnZSB0eXBlcyB0aGF0IHN1cHBvcnQgaXQpLiAgIEFuIGFscGhhIHZhbHVlIG1heSBiZSBzcGVjaWZpZWQgYmV0d2VlbiAwIGFuZCAxMjcgdG8gc3BlY2lmeSBkaWZmZXJlbnQgZGVncmVlcyBvZiB0cmFuc2x1Y2VuY3kgZm9yIHRoZSBiYWNrZ3JvdW5kLiAgIEF0IG5vIHRpbWUgd2lsbCB0aGlzIHBsdWdpbiBwZXJmb3JtIGFueSB1cHNjYWxpbmcuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yb3RhdGUnXSA9ICcoYW5nbGUpIFNwZWNpZnkgdGhlIGludGVnZXIgYW5nbGUgKGNvdW50ZXIgY2xvY2t3aXNlKSB0byByb3RhdGUgdGhlIGltYWdlLCBUaGUgaW1hZ2UgaXMgcm90YXRlZCBhYm91dCBpdHMgY2VudGVyLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfcm91bmRlZGNvcm5lcnMnXSA9ICcocmFkaXVzWyxjb2xvcl0pIFNwZWNpZnkgYW4gaW50ZWdlciByYWRpdXMgKGluIHBpeGVscykgZm9yIHJvdW5kaW5nIHRoZSBjb3JuZXJzLiAgT3B0aW9uYWxseSBzcGVjaWZ5IGEgY29sb3IgZm9yIHRoZSByb3VuZGVkIGNvcm5lcnMuICBUaGUgc3BlY2lhbCB2YWx1ZSBpZiAmcXVvdDt0cmFuc3BhcmVudCZxdW90OyBmb3IgdGhlIGNvbG9yIHdpbGwgZm9yY2UgdGhlIGltYWdlIHRvIGJlIGNvbnZlcnRlZCB0byBhIHBuZyBhbmQgYSB0cmFuc3BhcmVudCBjb2xvciB1c2VkLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfc2hhcnBlbiddID0gJyhpbnRlZ2VyKSBTcGVjaWZ5IGFuIGFkanVzdG1lbnQgKGJldHdlZW4gLTEwIGFuZCAxMCkgdG8gdGhlIHNoYXJwZW4gZmlsdGVyLiAgTG93ZXIgdmFsdWVzIHdpbGwgbGlnaHRlbiB0aGUgc2hhcnBlbmluZyBlZmZlY3QuICBIaWdoZXIgdmFsdWVzIGluY3JlYXNlIGl0LiAgTm90ZTogc2hhcnBlbmluZyBtYXkgaGF2ZSBhZHZlcnNlIGVmZmVjdHMgb24gc29tZSBpbWFnZXMsIGFuZCBzaG91bGQgdXN1YWxseSBiZSBzcGVjaWZpZWQgYXMgdGhlIGxhc3QgZmlsdGVyLCB1bmxlc3MgdGhlIGZpbHRlciBtYXkgYWRkIGJvcmRlcnMgdG90aGUgaW1hZ2UuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl90cmFuc3BhcmVudCddID0gJyhjb2xvclssYWxwaGFdKSBDb252ZXJ0cyBhIGpwZWcgaW1hZ2UgdG8gdHJhbnNwYXJlbnQgUE5HIGJ5IGNvbnZlcnRpbmcgYWxsIG9mIHRoZSBwaXhlbHMgb2YgdGhlIHNwZWNpZmllZCBjb2xvciB0byB0aGUgdHJhbnNwYXJlbnQgY29sb3IuICBPcHRpb25hbGx5LCBhbiBhbHBoYSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEyNyBjYW4gYmUgc3BlY2lmaWVkIHRvIGluZGljYXRlIHNvbWUgYWxwaGEgbGV2ZWwgYmxlbmRpbmcnOwokbGFuZ1sncGFyYW1fZmlsdGVyX3VudHJhbnNwYXJlbnQnXSA9ICcoY29sb3JbLHBlcmNlbnRdKSBDb252ZXJ0cyBhIHRyYW5zcGFyZW50IHBuZyBpbWFnZSB0byBhIGpwZWcgaW1hZ2UgYnkgY29weWluZyBhIHRyYW5zcGFyZW50L2FscGhhIGJsZW5kZWQgcG5nIG92ZXJ0b3Agb2YgYW4gaW1hZ2Ugb2YgdGhlIGFwcHJvcHJpYXRlIGNvbG9yLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfd2F0ZXJtYXJrJ10gPSAnKGJvb2x8c3RyaW5nKSwgU3BlY2lmeSB0aGF0IHRoZSB3YXRlcm1hcmsgKGFzIHNwZWNpZmllZCBpbiB0aGUgQ0dFeHRlbnNpb25zIGFkbWluIHBhbmVsKSBzaG91bGQgYmUgYXBwbGllZCB0byB0aGUgaW1hZ2UuICBBbiBvcHRvbmFsIHN0cmluZyBjYW4gYmUgc3BlY2lmaWVkIHRvIGFsbG93IGN1c3RvbWl6aW5nIHRoZSB0ZXh0IGluIHRoZSB3YXRlcm1hcmsuICBUaGUgc3RyaW5nIGNhbm5vdCBjb250YWluIEhUTUwgY2hhcmFjdGVycywgYW5kIGNhbm5vdCBiZSBtb3JlIHRoYW4gNTAgY2hhcmFjdGVycyBpbiBsZW5ndGggKGl0IHdpbGwgYmUgdHJpbW1lZCkuICBOb3RlLCAgZGVwZW5kaW5nIG9uIGltYWdlIHNpemUsIGFuZCB3YXRlcm1hcmsgc2V0dGluZ3MgdGhlIHRleHQgbWF5IG5vdCBiZSB2aXNpYmxlIG9yIG1heSBiZSBjbGlwcGVkIGJ5IHRoZSBpbWFnZS4nOzsKJGxhbmdbJ3BhcmFtX2ZvcmNlZXh0J10gPSAnKGludGVnZXIpIEVuYWJsZSAob3IgZGlzYWJsZWQpIHRoZSBmb3JjaW5nIG9mIGFsbCBnZW5lcmF0ZWQgaW1hZ2UgZmlsZXMgdG8gaGF2ZSBmaWxlIGV4dGVuc2lvbnMuICBEZXBlbmRpbmcgdXBvbiB0aGUgc291cmNlIGltYWdlLCBhbmQgdGhlIGZpbHRlcnMgYW5kIHBhcmFtZXRlcnMgdXNlZCwgdGhlIGdlbmVyYXRlZCBleHRlbnNpb24gbWF5IG5vdCBhY2N1cmF0ZWx5IHJlcHJlc2VudCB0aGUgYWN0dWFsIGNvbnRlbnRzIG9mIHRoZSBmaWxlJzsKJGxhbmdbJ3BhcmFtX2ZvcmNldHlwZSddID0gJyhzdHJpbmcpIEZvcmNlIHRoZSBvdXRwdXQgaW1hZ2UgdG8gYmUgc2F2ZWQgaW4gdGhlIHNwZWNpZmllZCBpbWFnZSB0eXBlLCBpbmRlcGVuZGVudCBvZiB0aGUgc291cmNlIGltYWdlLCBmaWx0ZXJzLCBhbmQgcGFyYW1ldGVycy4gIFZhbGlkIHZhbHVlcyBhcmU6IGpwZWcscG5nLGdpZi4gTm90ZTogRHVlIHRvIHRoZSBjYXBhYmlsaXRpZXMgb2Ygc29tZSBpbWFnZSBmb3JtYXRzLCBzdXJwcmlzaW5nIGVmZmVjdHMgY2FuIG9jY3VyLiAgUGFydGljdWxhcmx5LCBmb3JjaW5nIGEgdHJhbnNwYXJlbnQgUE5HIHRvIHNhdmUgaW4gSlBFRyBmb3JtYXQgd2lsbCByZXN1bHQgaW4gYWxsIHRyYW5zcGFyZW5jeSBiZWluZyBsb3N0Lic7CiRsYW5nWydwYXJhbV9oZWlnaHQnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSBoZWlnaHQgYXR0cmlidXRlLiAgTm90ZSwgaWYgdGhpcyBpcyBub3Qgc3BlY2lmaWVkIGEgdmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoaXMgYXR0cmlidXRlIHNvIHRoYXQgbW9zdCBnZW5lcmF0ZWQgaW1nIHRhZ3Mgd2lsbCB2YWxpZGF0ZS4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBhdXRvIGNhbGN1bGF0aW9uIHdpdGggdGhlICZxdW90O25vYXV0byZxdW90OyBwYXJhbWV0ZXIuICBUaGlzIHBhcmFtZXRlciB3aWxsIGFsc28gYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAmcXVvdDt3aWR0aCZxdW90OyBwYXJhbWV0ZXIgdG8gcGVyZm9ybSBhIGZpbmFsIHJlc2l6aW5nIG9yIGNyb3B0b2ZpdCBmaWx0ZXIgKHVubGVzcyB0aGUgJnF1b3Q7bm9hdXRvc2NhbGUmcXVvdDsgcGFyYW1ldGVyIGlzIGFsc28gc3VwcGxpZWQpJzsKJGxhbmdbJ3BhcmFtX2lkJ10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIGFsbG93cyBzcGVjaWZ5aW5nIGFuIGlkIGF0dHJpYnV0ZSB0byBpbmNsdWRlIG9uIHRoZSB0YWcuICBpLmU6IGlkPSJzb21ldGFnIic7CiRsYW5nWydwYXJhbV9tYXhfaGVpZ2h0J10gPSAnVGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBtYXhpbXVtIGhlaWdodCBmb3IgdGhlIGNvbnZlcnRlZCBpbWFnZXMuJzsKJGxhbmdbJ3BhcmFtX21heF93aWR0aCddID0gJ1RoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbWF4aW11bSB3aWR0aCBmb3IgdGhlIGNvbnZlcnRlZCBpbWFnZXMuJzsKJGxhbmdbJ3BhcmFtX25hbWUnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSBuYW1lIGF0dHJpYnV0ZS4nOwokbGFuZ1sncGFyYW1fbm9hdXRvJ10gPSAnRG8gbm90IGF1dG9tYXRpY2FsbHkgY2FsY3VsYXRlIHBhcmFtZXRlcnMgZm9yIHRoZSBpbWcgdGFnLiAgVGhpcyBtYXkgY2F1c2UgeW91ciBzaXRlIHRvIGZhaWwgdmFsaWRhdGlvbiBpZiBzb21lIHJlcXVpcmVkIHBhcmFtZXRlcnMgKHdpZHRoLGhlaWdodCxhbHQpIGFyZSBub3Qgc3BlY2lmaWVkLiAgQWRkaXRpb25hbGx5LCBpZiB0aGUgd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIGFyZSBzcGVjaWZpZWQsIHRoaXMgcGFyYW1ldGVyIHdpbGwgZW5zdXJlIHRoYXQgdGhleSB3aWxsIG5vdCBiZSBvdmVycmlkZGVuIGJ5IHRoZSBhY3R1YWwgc2l6ZSBvZiB0aGUgcHJvY2Vzc2VkIGltYWdlLic7CiRsYW5nWydwYXJhbV9ub2F1dG9zY2FsZSddID0gJ0lmIHdpZHRoIGFuZCBoZWlnaHQgcGFyYW1ldGVycyBhcmUgc3BlY2lmaWVkLCB0aGlzIHBhcmFtZXRlciB3aWxsIGRpc2FibGUgYXV0b21hdGljIHNjYWxpbmcgb2YgdGhlIGltYWdlLiAgVGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBkaXNhYmxlZCBmb3IgbW9iaWxlIGJyb3dzZXJzJzsKJGxhbmdbJ3BhcmFtX25vYmNhY2hlJ10gPSAnRG8gbm90IGFsbG93IHRoZSByZXNpemVkIGltYWdlIHRvIGNhY2hlIGluIHRoZSBicm93c2VyICh1c2VmdWwgZm9yIGRldmVsb3BtZW50IHB1cnBvc2VzKSB0aGlzIGFkZHMgYSB1bmlxdWUgbnVtYmVyIGFzIGEgcGFyYW1ldGVyIHRvIHRoZSBpbWFnZSB3aGljaCB3aWxsIGZvcmNlIHRoZSBicm93c2VyIG5vdCB0byBjYWNoZSB0aGUgaW1hZ2UuJzsKJGxhbmdbJ3BhcmFtX25vYnJlYWtwb2ludHMnXSA9ICdGb3IgcmVzcG9uc2l2ZSBpbWFnZSBoYW5kbGluZywgZGlzYWJsZSBicmVha3BvaW50cyBhbmQgZm9yY2UgcmVndWxhciByZXNpemUgaGFuZGxpbmcgZm9yIGltYWdlcyBvbiBtb2JpbGUgYnJvd3NlcnMuJzsKJGxhbmdbJ3BhcmFtX25vZHByYWRqdXN0J10gPSAnRm9yIHJlc3BvbnNpdmUgaW1hZ2UgaGFuZGxpbmcsIGRvIG5vdCBhZGp1c3QgdGhlIHNpemUgb2YgYSBzY2FsZWQgaW1hZ2UgYmFzZWQgb24gdGhlIGRldmljZSBwaXhlbCByYXRpbyBmcm9tIHRoZSByZXNwb25zaXZlIGluZm9ybWF0aW9uLic7CiRsYW5nWydwYXJhbV9ub2VtYmVkJ10gPSAnRm9yY2UgdGhlIGltYWdlIHRvIG5vdCBlbWJlZC4gIFJlZ2FyZGxlc3Mgb2Ygc2V0dGluZ3MgaW4gdGhlIGFkbWluIHBhbmVsLCB0aGUgVVJMIGFuZCB0YWcgZ2VuZXJhdGVkIHdpbGwgYmUgdG8gYSBmaWxlIG9uIHRoZSBzZXJ2ZXIuICBObyBlbWJlZGRpbmcgd2lsbCBiZSBwZXJmb3JtZWQnOwokbGFuZ1sncGFyYW1fbm90aW1lY2hlY2snXSA9ICdEaXNhYmxlIHRpbWUgY2hlY2tpbmcgb2YgY2FjaGVkIGZpbGVzLic7CiRsYW5nWydwYXJhbV9ub3JlbW90ZSddID0gJ0RvIG5vdCBhbGxvdyByZXRyaWV2aW5nIHNvdXJjZXMgZnJvbSByZW1vdGUgVVJMUyc7CiRsYW5nWydwYXJhbV9ub3Jlc3BvbnNpdmUnXSA9ICdUdXJuIG9mZiBhbGwgcmVzcG9uc2l2ZSBpbWFnZSBoYW5kbGluZyBmb3IgdGhpcyBvcGVyYXRpb24uJzsKJGxhbmdbJ3BhcmFtX25vcm90YXRlJ10gPSAnRG8gbm90IGF0dGVtcHQgdG8gcmVhZCBleGlmIGluZm9ybWF0aW9uIGZyb20gdGhlIGZpbGUgYW5kIGNvcnJlY3QgaW1hZ2Ugcm90YXRpb24nOwokbGFuZ1sncGFyYW1fbm90YWcnXSA9ICdEbyBub3Qgb3V0cHV0IGFuIGltZyB0YWcsIG9ubHkgdGhlIHVybCB0byB0aGUgY2FjaGVkIGltYWdlLiAgVGhpcyBoYXMgbm8gZWZmZWN0IHdoZW4gU21hcnRJbWFnZSBpcyB1c2VkIGZyb20gd2l0aGluIGEgc3R5bGVzaGVldC4nOwokbGFuZ1sncGFyYW1fb3ZlcndyaXRlJ10gPSAnRGlzYWJsZSBhbGwgY2FjaGluZyBhbmQgZm9yY2UgcmUtY2FsY3VsYXRpb24gb2YgYWxsIGZpbHRlcnMnOwokbGFuZ1sncGFyYW1fcHJvZ3Jlc3NpdmUnXSA9ICcoYm9vbGVhbikgVG9nZ2xlIHNhdmluZyBqcGVnIGltYWdlcyBpbiBwcm9ncmVzc2l2ZSBmb3JtYXQuICBUaGlzIHBhcmFtZXRlciB3aWxsIG92ZXJyaWRlIHRoZSBwcmVmZXJlbmNlIGluIHRoZSBtb2R1bGVzIGFkbWluIHBhbmVsLiAgQXBwbGllcyBvbmx5IHRvIEpQRUcgaW1hZ2VzLic7CiRsYW5nWydwYXJhbV9xdWFsaXR5J10gPSAnU3BlY2lmeSB0aGUgcXVhbGl0eSBvZiB0aGUgb3V0cHV0IGltYWdlLiAgQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEwMC4gIFRoZSBkZWZhdWx0IHZhbHVlIGlmIG5vdCBzcGVjaWZpZWQgaXMgNzUuJzsKJGxhbmdbJ3BhcmFtX3JlbCddID0gJ1VzZWQgd2hlbiBidWlsZGluZyBhbiBpbWFnZSB0YWcgYWxsb3dzIHNwZWNpZnlpbmcgYW4gb3B0aW9uYWwgcmVsIGF0dHJpYnV0ZSAodHlwaWNhbGx5IHVzZWQgd2l0aCBqYXZhc2NyaXB0IHR5cGUgYWxidW1zKS4gaS5lOiByZWw9ImFsYnVtIic7CiRsYW5nWydwYXJhbV9zaWxlbnQnXSA9ICdTaWxlbnRseSBpZ25vcmUgZXJyb3JzJzsKJGxhbmdbJ3BhcmFtX3NyYyddID0gJ1NwZWNpZnkgdGhlIHNvdXJjZSBmb3IgdGhlIGltYWdlIHByb2Nlc3NpbmcgKGlmIGFueSkgb3IgdGhlIGdlbmVyYXRlZCBpbWcgdGFnLiAgTm90ZSwgdGhpcyBwYXJhbWV0ZXIgaXMgZmxleGlibGUsIGFuZCB0aGUgbW9kdWxlIHdpbGwgYXR0ZW1wdCBtYW55IG1ldGhvZHMgdG8gZmluZCB0aGUgc291cmNlIGltYWdlIGZpbGUgb24gdGhlIHdlYiBzZXJ2ZXIgYXMgZm9sbG93czoKPHVsPgogIDxsaT5GaXJzdCBsb29rIHRvIHNlZSBpZiB0aGUgc3BlY2lmaWVkIHNyYyB2YWx1ZSBleGlzdHMgYXMgYSBmaWxlIG9uIHRoZSBmaWxlc3lzdGVtIDxzdHJvbmc+QmVsb3cgdGhlIENNU01TIHJvb3QgVVJMPC9zdHJvbmc+PC9saT4KICA8bGk+TmV4dCwgY2hlY2sgaWYgdGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgdGhlIHNyYyBwYXJhbWV0ZXIgaXMgYSBVUkwgYW5kIGJlZ2lucyB3aXRoIHRoZSB1cGxvYWRzX3VybCAoYXMgc3BlY2lmaWVkIGluIHRoZSBjb25maWcucGhwKTwvbGk+CiAgPGxpPk5leHQsIGNoZWNrIGlmIHRoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yIHRoZSBzcmMgcGFyYW1ldGVyIGlzIGEgVVJMIGFuZCBiZWdpbnMgd2l0aCB0aGUgcm9vdF91cmwgKGFzIHNwZWNpZmllZCBpbiB0aGUgY29uZmlnLnBocCk8L2xpPgogIDxsaT5OZXh0LCBjaGVjayBpZiB0aGUgdmFsdWUgc3BlY2lmaWVkIGZvciB0aGUgc3JjIHBhcmFtZXRlciBpcyBhIFVSTCBhbmQgYmVnaW5zIHdpdGggdGhlIHNzbF91cmwgKGFzIHNwZWNpZmllZCBpbiB0aGUgY29uZmlnLnBocCk8L2xpPgo8L3VsPgpJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIHNwbGl0IHRoZSBzcmMgcGFyYW1ldGVyIGludG8gbXVsdGlwbGUgYXJndW1lbnRzLCB3aGljaCBpcyB1c2VmdWwgZm9yIGV4YW1wbGUgd2hlbiB0aGUgcGF0aCB0byB0aGUgZmlsZSwgYW5kIHRoZSBmaWxlbmFtZSBhcmUgc3RvcmVkIGluIHNlcGFyYXRlIHNtYXJ0eSB2YXJpYWJsZXMuICAgWW91IGNhbiBzcGVjaWZ5IHRoZSBzcmMgYXMgc3JjMT1cJHRoZV9wYXRoIHNyYzI9XCR0aGVfZmlsZW5hbWUuICBUaGUgc3lzdGVtIHdpbGwgYXV0b21hdGljYWxseSBhZGQgYSAvIGluIGJldHdlZW4gZWFjaCBhcmd1bWVudC4gIFRoZXJlIGlzIG5vIGxpbWl0IHRvIHRoZSBudW1iZXIgb2Ygc3JjIHBhcmFtZXRlcnMuJzsKJGxhbmdbJ3BhcmFtX3N0eWxlJ10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIGFsbG93cyBzcGVjaWZ5aW5nIGFsdGVybmF0ZSBzdHlsZXMgZm9yIHRoZSB0YWcuICBpLmU6IHN0eWxlPSJib3JkZXI6IDFweCBzb2xpZCBibGFjazsiJzsKJGxhbmdbJ3BhcmFtX3RpdGxlJ10gPSAnU3BlY2lmeSBhbiBvcHRpb25hbCB0aXRsZSBhdHRyaWJ1dGUgZm9yIHRoZSBpbWcgdGFnLiAgaS5lOiB0aXRsZT0iVGhpcyBpcyB0aGUgdG9vbHRpcCInOwokbGFuZ1sncGFyYW1fd2lkdGgnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSB3aWR0aCBhdHRyaWJ1dGUuICAgTm90ZSwgaWYgdGhpcyBpcyBub3Qgc3BlY2lmaWVkIGEgdmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoaXMgYXR0cmlidXRlIHNvIHRoYXQgbW9zdCBnZW5lcmF0ZWQgaW1nIHRhZ3Mgd2lsbCB2YWxpZGF0ZS4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBhdXRvIGNhbGN1bGF0aW9uIHdpdGggdGhlICZxdW90O25vYXV0byZxdW90OyBwYXJhbWV0ZXIuICBUaGlzIHBhcmFtZXRlciB3aWxsIGFsc28gYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAmcXVvdDtoZWlnaHQmcXVvdDsgcGFyYW1ldGVyIHRvIHBlcmZvcm0gYSBmaW5hbCByZXNpemluZyBvciBjcm9wdG9maXQgZmlsdGVyICh1bmxlc3MgdGhlICZxdW90O25vYXV0b3NjYWxlJnF1b3Q7IHBhcmFtZXRlciBpcyBhbHNvIHN1cHBsaWVkKSc7CgokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdNb2R1bGUgaW5zdGFsbGVkJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdBbGwgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVtb3ZlZCc7CiRsYW5nWydwcm9tcHRfYXV0b3NjYWxlX29wJ10gPSAnRGVmYXVsdCBhdXRvc2NhbGUgZmlsdGVyIG9wZXJhdGlvbic7CiRsYW5nWydwcm9tcHRfY3JvcHRvZml0X2RlZmF1bHRfbG9jJ10gPSAnRGVmYXVsdCBsb2NhdGlvbiBmcm9tIHdoaWNoIHRvICZxdW90O2Nyb3AgdG8gZml0JnF1b3Q7JzsKJGxhbmdbJ3Byb21wdF9lbWJlZF9zaXplbGltaXQnXSA9ICdCYXNlZCBvbiBpbWFnZSBzaXplJzsKJGxhbmdbJ3Byb21wdF9lbWJlZF9zbWFydGxpbWl0ZWQnXSA9ICdTbWFydCBtb2RlIGJ1dCBsaW1pdCBpbWFnZSBzaXplJzsKJGxhbmdbJ3Byb21wdF9lbWJlZF90eXBlJ10gPSAnQmFzZWQgb24gaW1hZ2UgdHlwZSc7CiRsYW5nWydwcm9tcHRfZm9yY2VfZXh0ZW5zaW9uJ10gPSAnRm9yY2UgYWxsIG91dHB1dCBmaWxlcyB0byBoYXZlIGEgZmlsZSBleHRlbnNpb24nOwokbGFuZ1sncHJvbXB0X2xvY19ib3R0b21sZWZ0J10gPSAnQm90dG9tIExlZnQgKGJsKSc7CiRsYW5nWydwcm9tcHRfbG9jX2JvdHRvbWNlbnRlciddID0gJ0JvdHRvbSBDZW50ZXIgKGJjKSc7CiRsYW5nWydwcm9tcHRfbG9jX2JvdHRvbXJpZ2h0J10gPSAnQm90dG9tIFJpZ2h0IChiciknOwokbGFuZ1sncHJvbXB0X2xvY19jZW50ZXJsZWZ0J10gPSAnQ2VudGVyIExlZnQgKGNsKSc7CiRsYW5nWydwcm9tcHRfbG9jX2NlbnRlciddID0gJ0NlbnRlciAoYyknOwokbGFuZ1sncHJvbXB0X2xvY19jZW50ZXJyaWdodCddID0gJ0NlbnRlciBSaWdodCAoY2wpJzsKJGxhbmdbJ3Byb21wdF9sb2NfdG9wbGVmdCddID0gJ1RvcCBMZWZ0ICh0bCknOwokbGFuZ1sncHJvbXB0X2xvY190b3BjZW50ZXInXSA9ICdUb3AgQ2VudGVyICh0YyknOwokbGFuZ1sncHJvbXB0X2xvY190b3ByaWdodCddID0gJ1RvcCBSaWdodCAodHIpJzsKJGxhbmdbJ3Byb21wdF9wcm9ncmVzc2l2ZSddID0gJ1NhdmUgSlBHIGltYWdlcyBhcyBwcm9ncmVzc2l2ZSc7CgojIFIKJGxhbmdbJ3Jlc2l6ZSddID0gJ1Jlc2l6ZSc7CiRsYW5nWydyZXNpemluZyddID0gJ1Jlc2l6aW5nJzsKJGxhbmdbJ3Jlc3BvbnNpdmUnXSA9ICdSZXNwb25zaXZlbmVzcyc7CiRsYW5nWydyZXNwb25zaXZlX2JyZWFrcG9pbnRzJ10gPSAnU3BlY2lmeSByZXNwb25zaXZlIGltYWdlIG1heGltdW0gZWRnZSBicmVha3BvaW50cyc7CgojIFMKJGxhbmdbJ3NtYXJ0J10gPSAnU21hcnQnOwokbGFuZ1snc3VibWl0J10gPSAnU3VibWl0JzsKJGxhbmdbJ3N1cHByZXNzX2Vycm9ycyddID0gJ1N1cHByZXNzIEVycm9ycyc7Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRsYW5nWydhY3RfY2FjaGVjbGVhbmVkJ10gPSAnWndpc2NoZW5zcGVpY2hlciBnZWxlZXJ0JzsNCiRsYW5nWydhZGRfcm93J10gPSAnWmVpbGUgaGluenVmJnV1bWw7Z2VuJzsNCiRsYW5nWydhbGlhcyddID0gJ0FsaWFzICc7DQokbGFuZ1snYWxpYXNlcyddID0gJ0FsaWFzZSc7DQokbGFuZ1snYXNrX2NsZWFyX2ltYWdlX2NhY2hlJ10gPSAnV29sbGVuIFNpZSB3aXJrbGljaCBBTExFIERhdGVpZW4gYXVzIGRlbSBad2lzY2hlbnNwZWljaGVyIGVudGZlcm5lbj8nOw0KJGxhbmdbJ2NsZWFyX2FsbCddID0gJ0FsbGUgRGF0ZWllbiBsJm91bWw7c2NoZW4nOw0KJGxhbmdbJ2NsZWFyX25vdyddID0gJ0pldHp0IGwmb3VtbDtzY2hlbic7DQokbGFuZ1snZGVsZXRlJ10gPSAnTCZvdW1sO3NjaGVuJzsNCiRsYW5nWydlbWJlZGRpbmcnXSA9ICdFaW5nZWJldHRldGUgQmlsZGVyJzsNCiRsYW5nWydlbWJlZGRpbmdfbW9kZSddID0gJ0JpbGRlaW5iZXR0dW5nc21vZHVzJzsNCiRsYW5nWydlbWJlZF9zaXplbGltaXQnXSA9ICdCaWxkZXIgZWluYmV0dGVuIGJpcyBtYXhpbWFsIChrYiknOw0KJGxhbmdbJ2VtYmVkX3R5cGVzJ10gPSAnQmlsZGVyIGRlcyBUeXBzIGVpbmJldHRlbic7DQokbGFuZ1snZXJyb3JfYWxpYXNfZHVwbGljYXRlbmFtZV9hdHJvdyddID0gJ0RlbiBBbGlhcy1OYW1lbiwgZGVyIGYmdXVtbDtyIEFsaWFzIGluIFplaWxlICVkIGFuZ2VnZWJlbiB3dXJkZSwgZHVwbGl6aWVyZW4uJzsNCiRsYW5nWydlcnJvcl9hbGlhc19ub25hbWVfYXRyb3cnXSA9ICdLZWluIE5hbWUgZiZ1dW1sO3IgZGVuIEFsaWFzIGluIFplaWxlICVkIGFuZ2VnZWJlbi4nOw0KJGxhbmdbJ2Vycm9yX2FsaWFzX25vb3B0aW9uc19hdHJvdyddID0gJ0tlaW5lIE9wdGlvbmVuIGYmdXVtbDtyIGRlbiBBbGlhcyBpbiBaZWlsZSAlZCBhbmdlZ2ViZW4uJzsNCiRsYW5nWydlcnJvcl9pbnZhbGlkX2FnZSddID0gJ0FsdGVyc2VpbnN0ZWxsdW5nIHVuZyZ1dW1sO2x0aWcgLi4uIGtlaW5lIEFrdGlvbiBhdXNnZWYmdXVtbDtocnQnOw0KJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0VpbiBlcmZvcmRlcmxpY2hlciBQYXJhbWV0ZXIgZmVobHQgb2RlciBpc3QgdW5nJnV1bWw7bHRpZzogJXMnOw0KJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXJhbSddID0gJ1VuZyZ1dW1sO2x0aWdlciBQYXJhbWV0ZXIgaW4gJXMnOw0KJGxhbmdbJ2Vycm9yX3NyY25vdGZvdW5kJ10gPSAnS29ubnRlIERhdGVpIGluICVzIG5pY2h0IGZpbmRlbic7DQokbGFuZ1snZXJyb3JfcmVtb3RlZmlsZSddID0gJ0VzIGdhYiBlaW4gUHJvYmxlbSwgZGllIGVudGZlcm50ZSBEYXRlaSBpbiAlcyB6dSBmaW5kZW4uJzsNCiRsYW5nWydlcnJvcl91bmtub3duZmlsdGVyJ10gPSAnU21hcnRJbWFnZSAmbmRhc2g7IFVuYmVrYW5udGVyIEZpbHRlcjogJXMnOw0KJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0NhbGd1eXMgU21hcnQtSW1hZ2UtV2Vya3pldWdlJzsNCiRsYW5nWydnZW5lcmFsJ10gPSAnQWxsZ2VtZWluJzsNCiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBhIHNpbXBsZSB3YXkgdG8gcHJvY2VzcywgYW5kIGRpc3BsYXkgaW1hZ2VzIG9uIHlvdXIgd2ViIHBhZ2UuICBJdCBhbGxvd3Mgc2ltcGxlIGltYWdlIHByb2Nlc3NpbmcsIGFuZCB3YXRlcm1hcmtpbmcuICBUaGlzIG1vZHVsZSBtYWtlcyBkaXNwbGF5aW5nIHByb2Nlc3NlZCBpbWFnZXMgb24geW91ciB3ZWJzaXRlIHRyaXZpYWwuICBJdCBhbHNvIHByb3ZpZGVzIGZlYXR1cmVzIHRvIGltcHJvdmUgdGhlIHBlcmZvcm1hbmNlIHJhdGluZyBvZiB5b3VyIHdlYnNpdGUsIG1ha2luZyB5b3VyIHdlYnNpdGUgcG93ZXJmdWwgYW5kIGZhc3QgYXQgdGhlIHNhbWUgdGltZS48L3A+DQo8aDM+RmVhdHVyZXM8L2gzPg0KPHVsPg0KPGxpPlBvd2VyZnVsLCBidXQgc2ltcGxlIHRvIHVzZSBpbWFnZSBmaWx0ZXJpbmcgYW5kIHByb2Nlc3NpbmcuIEZpbHRlcmluZyBpbmNsdWRlczoNCiAgPHVsPg0KICAgIDxsaT5CbHVyPC9saT4NCiAgICA8bGk+QnJpZ2h0bmVzczwvbGk+DQogICAgPGxpPkNvbG9yaXplPC9saT4NCiAgICA8bGk+Q29udHJhc3Q8L2xpPg0KICAgIDxsaT5Dcm9wPC9saT4NCiAgICA8bGk+PHN0cm9uZz5Dcm9wIFRvIEZpdDwvc3Ryb25nPjwvbGk+DQogICAgPGxpPkVkZ2UgRGV0ZWN0aW9uPC9saT4NCiAgICA8bGk+RW1ib3NzPC9saT4gDQogICAgPGxpPkdyYXlzY2FsZTwvbGk+DQogICAgPGxpPk1lYW4gUmVtb3ZhbDwvbGk+DQogICAgPGxpPk5lZ2F0ZTwvbGk+DQogICAgPGxpPlBpeGVsYXRlPC9saT4NCiAgICA8bGk+UmVzaXplPC9saT4NCiAgICA8bGk+Um90YXRlPC9saT4NCiAgICA8bGk+U2VsaWN0aXZlIEJsdXI8L2xpPg0KICAgIDxsaT5TbW9vdGg8L2xpPg0KICAgIDxsaT5XYXRlcm1hcms8L2xpPg0KICA8L3VsPg0KPC9saT48YnIvPg0KPGxpPlNtYXJ0IGRldGVjdGlvbiBvZiBpbWFnZXMuICBTcGVjaWZ5IGFic29sdXRlIFVSTFMsIGFic29sdXRlIHBhdGhzLCBvciBmaWxlcyByZWxhdGl2ZSB0byB5b3VyIHJvb3QgaW5zdGFsbGF0aW9uLjwvbGk+DQo8bGk+QXV0b21hdGljIGRvd25sb2FkaW5nLCBjYWNoaW5nLCBwcm9jZXNzaW5nLCBhbmQgcmUtY2FjaGluZyBvZiBpbWFnZXMgZnJvbSByZW1vdGUgd2Vic2l0ZXMuPC9saT4NCjxsaT5TbWFydCBhdXRvbWF0aWMgcmVzaXppbmcgKGF1dG9tYXRpY2FsbHkgcmVzaXplIHRvIGRlc2lyZWQgd2lkdGggYW5kIGhlaWdodCBiZWZvcmUgc2VydmluZyB0aGUgaW1hZ2UuLi4gcmVzaXppbmcgdG8gd2lkdGggQU5EIGhlaWdodCBkb2VzIGEgY3JvcCB0byBmaXQuIDxlbT4oanVzdCBzcGVjaWZ5IGEgd2lkdGgsIGFuZC9vciBoZWlnaHQgcGFyYW1ldGVyIHRvIHRoZSBTbWFydEltYWdlIHRhZy4pPC9lbT48L2xpPg0KPGxpPkF1dG9tYXRpY2FsbHkgcmVhZHMgaW1hZ2UgRVhJRiBpbmZvcm1hdGlvbiBhbmQgY29ycmVjdHMgdGhlIG9yaWVudGF0aW9uLjwvbGk+DQo8bGk+SW1hZ2UgY2hhbmdlIGRldGVjdGlvbiwgaWYgdGhlIG1hc3RlciBpbWFnZSBpcyBjaGFuZ2VkIHNjYWxlZCBpbWFnZXMgd2lsbCBiZSByZWdlbmVyYXRlZC4gKHNlZSB0aGUgbm90aW1lY2hlY2sgcGFyYW1ldGVyIHRvIGRpc2FibGUgdGhpcyBiZWhhdmlvcikuPC9saT4NCjxsaT5TbWFydCBhdHRyaWJ1dGUgZ2VuZXJhdGlvbiBmb3IgaW1hZ2VzLjwvbGk+DQo8bGk+UHJvY2Vzc2VkIGltYWdlcyBhcmUgY2FjaGVkIG9uIHRoZSBzZXJ2ZXIgZm9yIGZhc3RlciBzZXJ2aW5nLjwvbEk+DQo8bGk+VGhlIGFiaWxpdHkgdG8gdXNlIGEgc2VwYXJhdGUgVVJMIChDRE4pIGZvciBzZXJ2aW5nIGltYWdlczwvbGk+DQo8bGk+SW1hZ2UgcHJvY2Vzc2VzIGNhbiBiZSBjb21iaW5lZCwgYW5kIGFyZSBleGVjdXRlZCBpbiBvcmRlci48L2xpPg0KPGxpPlByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIGVtYmVkIGltYWdlcyBkaXJlY3RseSBpbnRvIHRoZSBjb250ZW50IG9mIHRoZSB3ZWIgcGFnZSB0byBtaW5pbWl6ZSBzcGFjZS48L2xpPg0KPGxpPlByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIGxpbWl0IGVtYmVkZGluZyBpbWFnZXMgc21hcnRseSwgb25seSB0byBicm93c2VycyB0aGF0IGFyZSBjYXBhYmxlIG9mIHVuZGVyc3RhbmRpbmcgdGhlbS48L2xpPg0KPGxpPkNvbWJpbmUgY29tbW9ubHkgdXNlZCBhcmd1bWVudHMgaW50byBuYW1lZCBhbGlhc2VzLjwvbGk+DQo8bGk+QWxzbyB3b3JrcyB3aXRoaW4gc3R5bGVzaGVldHMgdmlhIHRoZSB7Y21zX3N0eWxlc2hlZXR9IHRhZy48L2xpPg0KPGxpPlRoZSBhYmlsaXR5IHRvIGF1dG9tYXRpY2FsbHkgcHJvY2VzcyBpbWFnZXMgaW5zaWRlIGEgYmxvY2sgb2YgaHRtbCBjb2RlIHVzaW5nIHRoZSB7c2lfY29udmVydH0gYmxvY2sgdGFnLjwvbGk+DQo8bGk+TW9yZS4uLjwvbGk+DQo8L3VsPg0KPGgzPldoeSBzaG91bGQgSSB1c2UgaXQ/PC9oMz4NCjxwPlRoZXJlIGFyZSBmb3VyIHZlcnkgaW1wb3J0YW50IHJlYXNvbnMgdG8gdXNlIHRoaXMgcGx1Z2luOjwvcD4NCjx1bD4NCiAgPGxpPlBlcmZvcm1hbmNlOiAgVXNpbmcgaW1hZ2UgZW1iZWRkaW5nIChldmVuIGlmIG5vIG90aGVyIGZ1bmN0aW9ucyBhcmUgdXNlZCkgcmVzdWx0cyBpbiBmZXdlciByZXF1ZXN0cy4gIE1vc3QgYnJvd3NlcnMgb25seSBwZXJmb3JtIHR3byB0byBmb3VyIHNpbXVsdGFuZW91cyByZXF1ZXN0cyB0byB0aGUgc2FtZSBkb21haW4gYXQgdGhlIHNhbWUgdGltZS4gIEZvciB3ZWIgcGFnZXMgd2l0aCBsb3RzIG9mIGltYWdlcyB0aGlzIGNhbiBzZXJpb3VzbHkgc2xvdyBkb3duIHlvdXIgc2l0ZS48L2xpPg0KICA8bGk+UGVyZm9ybWFuY2U6ICBFdmVuIGlmIG5vdCB1c2luZyBlbWJlZGRpbmcsIHNlbmRpbmcgbGFyZ2UgaW1hZ2VzIHRvIHlvdXIgdmlzaXRvcnMsIGFuZCBhc2tpbmcgdGhlaXIgYnJvd3NlciB0byBzY2FsZSB0aGUgaW1hZ2UgaXMgdmVyeSB2ZXJ5IHNsb3cuPC9saT4NCiAgPGxpPlNlY3VyaXR5OiAgU21hcnRJbWFnZSBjYWNoZXMgaXRzIGltYWdlcyBpbiBhIHNlcGFyYXRlIGRpcmVjdG9yeSwgdGhlcmVieSBoaWRpbmcgdGhlIG9yaWdpbmFsIChwZXJoYXBzIGNvcHlyaWdodGVkKSBpbWFnZXMgZnJvbSB5b3VyIHVzZXJzLiAgSWYgZW1iZWRkaW5nIGlzIHVzZWQgdGhleSBjYW50IGV2ZW4gZmluZCB0aGUgY2FjaGVkIGxvY2F0aW9uKTwvbGk+DQogIDxsaT5TaW1wbGljaXR5OiAgVGhlIGZpbHRlcmluZyBjYXBhYmlsaXRpZXMgb2YgU21hcnRJbWFnZSBhbGxvdyB5b3UgdG8gYXV0b21hdGljYWxseSBwcm9jZXNzIGltYWdlcyBmb3IgY29uc2lzdGVudCBhbmQgc2VjdXJlIGRpc3BsYXksIHdpdGhvdXQgc2l0ZSBlZGl0b3JzIGhhdmluZyB0byBwbGF5IHdpdGggdGhlbS4gIFRoZXkgY2FuIHVwbG9hZCBsYXJnZXIgaW1hZ2VzLCBhbmQgeW91ciBzaXRlIHdpbGwganVzdCBoYW5kbGUgdGhlbSBwcm9wZXJseS48L2xpPg0KPC91bD4NCjxoMz5Ib3cgZG8gSSB1c2UgaXQ/PC9oMz4NCjxwPlRoZSBzaW1wbGVzdCB3YXkgdG8gdXNlIHRoaXMgbW9kdWxlIGlzIHRvIHVzZSBpdCBpbiB0aGUgc2FtZSBwbGFjZSB5b3Ugd291bGQgdGhlIHtpbWFnZX0gdGFnLiAgSS5lOiBTb21ldGhpbmcgbGlrZSA8Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e1NtYXJ0SW1hZ2Ugc3JjPSYjMDM5O3VwbG9hZHMvaW1hZ2VzL3BpY3R1cmUuanBnJiMwMzk7fTwvY29kZT4uICBUaGlzIHdpbGwgZ2VuZXJhdGUgdGhlIGltYWdlIHRhZyBmb3IgeW91IHdpdGggbm8gcHJvY2Vzc2luZy4gIEFuZCBpZiBwb3NzaWJsZSwgZW1iZWQgdGhlIGltYWdlIGRpcmVjdGx5IGludG8geW91ciBodG1sIG91dHB1dC48L3A+DQo8cD5PZnRlbiBwZW9wbGUgd2FudCB0byBkaXNwbGF5IGEgd2F0ZXJtYXJrIG9uIHRoZSBpbWFnZXMgdGhhdCB0aGV5IGRpc3BsYXkgb24gdGhlIGZyb250ZW5kIHRvIHByZXZlbnQgaW1hZ2UgdGhlZnQuICBUaGUgQ0dFeHRlbnNpb25zIG1vZHVsZSBwcm92aWRlcyBzZXR0aW5ncyBmb3IgeW91IHRvIGNvbmZpZ3VyZSB3YXRlcm1hcmtpbmcgYW5kIHlvdSBjYW4gZW5hYmxlIHRoYXQgd2l0aCBhbnkgaW1hZ2Ugd2l0aCBhIHRhZyBsaWtlIHRoaXM6IDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57U21hcnRJbWFnZSBzcmM9JiMwMzk7dXBsb2Fkcy9pbWFnZXMvcGljdHVyZS5qcGcmIzAzOTsgZmlsdGVyX3dhdGVybWFyaz0xfTwvY29kZT4uICBUaGlzIHdpbGwgcmVhZCB0aGUgaW1hZ2UsIGFwcGx5IHRoZSB3YXRlcm1hcmsgYWNjb3JkaW5nIHRvIHRoZSBzZXR0aW5ncyBpbiBDR0V4dGVuc2lvbnMsIGNhY2hlIHRoZSBhbHRlcmVkIGltYWdlLCBhbmQgdGhlbiBlbWJlZCBpdCBpbnRvIHlvdXIgb3V0cHV0LjwvcD4NCjxwPkFsc28sIFBpY3R1cmVzIHRha2VuIGJ5IG1vZGVybiBkaWdpdGFsIGNhbWVyYXMgYXJlIG9mdGVuIHRvbyBsYXJnZSBmb3IgdXNlIG9uIGEgd2Vic2l0ZSwgdGhlcmVmb3JlIHRoZXkgbmVlZCB0byBiZSBzY2FsZWQgYmVmb3JlIGRpc3BsYXllZCBvbiB5b3VyIHBhZ2UuICBUaGlzIGNhbiBiZSBkb25lIHF1aXRlIGVhc2lseSB3aXRoIGEgdGFnIGxpa2U6IDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57U21hcnRJbWFnZSBzcmM9JiMwMzk7dXBsb2Fkcy9pbWFnZXMvcGljdHVyZS5qcGcmIzAzOTsgZmlsdGVyX3dhdGVybWFyaz0xIGZpbHRlcl9yZXNpemU9JiMwMzk7dywzNTAmIzAzOTt9PC9jb2RlPi4gIEFzIHlvdSBtYXkgdGhpbmssIHRoZSB3YXRlcm1hcmsgd2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBpbWFnZSBiZWZvcmUgaXQgaXMgcmVzaXplZCB0byBhIG1heGltdW0gd2lkdGggb2YgMzAwIHBpeGVscyAocmV0YWluaW5nIGFzcGVjdCByYXRpbykuICBUaGVuIHRoZSBhZGp1c3RlZCBpbWFnZSB3aWxsIGJlIGNhY2hlZCwgYW5kIGlmIHRoZSBicm93c2VyIGFsbG93ZXMgdGhlIGltYWdlIHdpbGwgYmUgZW1iZWRkZWQgaW50byB0aGUgSFRNTCBvdXRwdXQuICBJZiBlbWJlZGRpbmcgaXMgbm90IHBvc3NpYmxlLCB0aGUgaW1nIHRhZyB3aWxsIGNvbnRhaW4gdGhlIFVSTCB0byB0aGUgY2FjaGVkIGltYWdlLjwvcD4NCjxwPkZyb20gaGVyZSB5b3UgY2FuIGNvbWJpbmUgdGhlIG9wdGlvbnMgYmVsb3cgdG8gcGVyZm9ybSBhbG90IG9mIGRpZmZlcmVudCBlZmZlY3RzIHRvIHlvdXIgaW1hZ2VzLCBidWlsZCBzaW1wbGUgZ2FsbGVyaWVzLCBhbmQgaW1wcm92ZSB5b3VyIHNpdGUgcGVyZm9ybWFuY2UgYXQgdGhlIHNhbWUgdGltZS4gIEVuam95ITwvcD4NCjxoMz5BdXRvbWF0aWMgaW1hZ2UgcmVzaXppbmc8L2gzPg0KICA8cD5JZiB5b3Ugc3BlY2lmeSBhIHdpZHRoLCBhbmQvb3IgYSBoZWlnaHQgcGFyYW1ldGVyLCBhbmQgZG8gbm90IHNwZWNpZnkgdGhlICZhbXA7cXVvdDtub2F1dG9zY2FsZSZhbXA7cXVvdDsgcGFyYW1ldGVyLCB0aGUgbW9kdWxlIHdpbGwgYW5hbHl6ZSB0aGUgZmlsdGVycyB5b3UgaGF2ZSBhbHJlYWR5IHNwZWNpZmllZCwgYW5kIGlmIHRoZXJlIGlzIG5vIHJlc2l6ZSBmaWx0ZXIgYWxyZWFkeSBzcGVjaWZpZWQgYXV0b21hdGljYWxseSBhZGQgYSBmaWx0ZXIgdG8gcmVzaXplIG9yIGNyb3B0b2ZpdCB0aGUgaW1hZ2Ugb24gb3V0cHV0LiAgVGhpcyBpcyB1c2VmdWwgdG8gZG8gYXV0b21hdGljIHRodW1ibmFpbGluZyBvbiB0aGUgc2VydmVyLCBhbmQgbm90IHJlcXVpcmUgdGhlIGJyb3dzZXIgdG8gcmVzaXplIHRoZSBpbWFnZS48L3A+DQogPGgzPkEgU2ltcGxlIEdhbGxlcnk8L2gzPg0KPHA+VGhlIGNvZGUgYmVsb3cgdXNlcyB0aGUge1NtYXJ0SW1hZ2V9IG1vZHVsZSwgZmFuY3lib3gsIGFuZCBhIGJpdCBvZiBzbWFydHkgbWFnaWMgdG8gZ2VuZXJhdGUgYSBzaW1wbGUgbGlnaHRib3ggc3R5bGUgYWxib20gZnJvbSBhIHN1YmRpcmVjdG9yeSBvbiB5b3VyIHdlYnNpdGUsIHdoaWxlIHByb2Nlc3NpbmcgdGhlIGltYWdlcyBmb3Igd2ViIHN0YW5kYXJkcywgYW5kIGNyZWF0aW5nIHRodW1ibmFpbHMuPC9wPg0KPHByZSBzdHlsZT0mcXVvdDtiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsmcXVvdDs+PGNvZGU+PHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDE6PC9zcGFuPiAmYW1wO2x0O3NjcmlwdCB0eXBlPSZxdW90O3RleHQvamF2YXNjcmlwdCZxdW90OyZhbXA7Z3Q7e2xpdGVyYWx9DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gMjo8L3NwYW4+IGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsNCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiAzOjwvc3Bhbj4gIGpRdWVyeSgmIzAzOTthLmZhbmN5Ym94JiMwMzk7KS5mYW5jeWJveCgpOw0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDQ6PC9zcGFuPiB9KTsNCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiA1Ojwvc3Bhbj4gey9saXRlcmFsfSZhbXA7bHQ7L3NjcmlwdCZhbXA7Z3Q7DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gNjo8L3NwYW4+IHthc3NpZ24gdmFyPSYjMDM5O2ZpbGVzJiMwMzk7IHZhbHVlPSYjMDM5O3VwbG9hZHMvYWxidW0vKi5qcGcmIzAzOTt8Z2xvYn0NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiA3Ojwvc3Bhbj4ge2lmIGNvdW50KCRmaWxlcyl9DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gODo8L3NwYW4+ICZhbXA7bHQ7ZGl2IHN0eWxlPSZxdW90O3dpZHRoOiAxMDAlOyBoZWlnaHQ6IDE1MHB4OyBvdmVyZmxvdzogYXV0bzsmcXVvdDsmYW1wO2d0Ow0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDk6PC9zcGFuPiB7Zm9yZWFjaCBmcm9tPSRmaWxlcyBpdGVtPSYjMDM5O2ZpbGUmIzAzOTt9DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xMDo8L3NwYW4+ICAmYW1wO2x0O2EgcmVsPSYjMDM5O3NpbXBsZV9hbGJ1bSYjMDM5OyBjbGFzcz0mcXVvdDtmYW5jeWJveCZxdW90OyBocmVmPSZxdW90OzxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57U21hcnRJbWFnZSBzcmM9JGZpbGUgZmlsdGVyX3JvdGF0ZT05MCBmaWx0ZXJfd2F0ZXJtYXJrPTEgZmlsdGVyX3Jlc2l6ZT0mIzAzOTtoLDUwMCYjMDM5OyBub3RhZz0xIG5vZW1iZWQ9MX08L3NwYW4+JnF1b3Q7JmFtcDtndDsNCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PjExOjwvc3Bhbj4gIDxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57U21hcnRJbWFnZSBzcmM9JGZpbGUgZmlsdGVyX3JvdGF0ZT05MCBmaWx0ZXJfZ3JheXNjYWxlPTEgZmlsdGVyX3dhdGVybWFyaz0xIGZpbHRlcl9yZXNpemU9JiMwMzk7aCwxNTAmIzAzOTt9PC9zcGFuPg0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+MTI6PC9zcGFuPiAgJmFtcDtsdDsvYSZhbXA7Z3Q7DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xMzo8L3NwYW4+IHsvZm9yZWFjaH0NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PjE0Ojwvc3Bhbj4gJmFtcDtsdDsvZGl2JmFtcDtndDsNCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PjE1Ojwvc3Bhbj4gey9pZn0NCjwvY29kZT48L3ByZT48YnIvPg0KPHA+TGV0cyB0YWxrIGFib3V0IHRoaXMuPC9wPg0KPHA+TGluZXMgMSB0aHJvdWdoIDUgdXRpbGl6ZSBqUXVlcnkgdG8gY2FsbCBmYW5jeWJveCBvbiBhbnkgbGlua3MgdGhhdCBoYXZlIHRoZSAmYW1wO3F1b3Q7ZmFuY3lib3gmYW1wO3F1b3Q7IGNsYXNzLiAgVGhlIGZhbmN5Ym94IGpRdWVyeSBwbHVnaW4gaXMgaW5jbHVkZWQgd2l0aCB0aGUgSlF1ZXJ5VG9vbHMgbW9kdWxlLjwvcD4NCjxwPkxpbmUgNiB1c2VzIGEgYnVpbHQgaW4gcGhwIGZ1bmN0aW9uIGNhbGxlZCBnbG9iLCBhbmQgc29tZSBzbWFydHkgbWFnaWMgdG8gZmluZCBhbGwgb2YgdGhlIEpQRyBmaWxlcyBpbiB0aGUgdXBsb2Fkcy9hbGJ1bSBkaXJlY3RvcnkgYmVsb3cgb3VyIGluc3RhbGxhdGlvbiByb290LjwvcD4NCjxwPkxpbmUgNyBpcyBhIHRlc3QgdG8gc2VlIGlmIGFueSBmaWxlcyB3ZXJlIGFjdHVhbGx5IGZvdW5kIGluIHRoZSBhc3NpZ24gbGluZSBzdGF0ZWQgYWJvdmUuICBUaGlzIGlmIHN0YXRlbWVudCBpcyBjbG9zZWQgb24gbGluZSAxNS48L3A+DQo8cD5MaW5lIDggb3BlbnMgdXAgYSBkaXYgdG8gY29udGFpbiBvdXIgYWxidW0uICBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZXhhbXBsZSB0aGUgc3R5bGVzIHdlcmUgaW5jbHVkZWQgaW5saW5lLCBob3dldmVyIGEgY2xhc3MgdGhhdCB3YXMgZGVmaW5lZCBpbiB0aGUgc3R5bGVzaGVldCBzaG91bGQgYmUgdXNlZCBpbiBwcm9kdWN0aW9uIGVudmlyb25tZW50cy4gIFRoZSBjbG9zaW5nIHRhZyBmb3IgdGhpcyBkaXYgaXMgb24gbGluZSAxNCwganVzdCBiZWZvcmUgdGhlIDxjb2RlPnsvaWZ9PC9jb2RlPi48L3A+DQo8cD5MaW5lIDkgYmVnaW5zIGEgbG9vcCB0aHJvdWdoIGFsbCBvZiB0aGUgZmlsZXMgdGhhdCB3ZSBmb3VuZCBpbiB0aGUgZGlyZWN0b3J5LiAgVGhpcyBsb29wIGlzIGNsb3NlZCBvbiBsaW5lIDEzLjwvcD48YnIvPg0KPHA+TGluZXMgMTAgYW5kIDExIGFyZSB0aGUgcmVhbCBtYWdpYy4gIEhlcmUgd2UgY3JlYXRlIGEgbGluayB3aXRoIGNsYXNzICZhbXA7cXVvdDtmYW5jeWJveCZhbXA7cXVvdDsgYW5kIGFkZHMgdGhlIDxjb2RlPnJlbDwvY29kZT4gYXR0cmlidXRlIHNvIHRoYXQgZmFuY3lib3gga25vd3MgdGhhdCBhbGwgb2YgdGhlc2UgaW1hZ2VzIHNob3VsZCBiZSBncm91cGVkIHRvZ2V0aGVyIGFzIG9uZSBhbGJ1bSBhbmQgYWxsb3cgY2xpY2tpbmcgYmV0d2VlbiB0aGUgaW1hZ2VzLiAgVGhlbiBjb21lcyB0aGUgcGFydCB3aGVyZSB3ZSBkZWZpbmUgb3VyIGltYWdlcy4NCjxwPldlIHN1cHBseSB0aGUgJGZpbGUgdmFyaWFibGUgdG8gdGhlIHNyYyBhcmd1bWVudCBvZiB0aGUgPGNvZGU+e1NtYXJ0SW1hZ2V9PC9jb2RlPiB0YWcgc28gdGhhdCBpdCB3aWxsIGdldCB0aGUgbmFtZSBvZiBlYWNoIG1hdGNoZWQganBlZyBhcyB0aGUgbG9vcCBpcyBleGVjdXRlZC48L3A+DQo8cD5UaGUgaW1hZ2VzIEkgd2FzIHRlc3Rpbmcgd2l0aCB3ZXJlIHVwbG9hZGVkIGZyb20gbXkgaXBvZCwgYW5kIGFsbCBzZWVtZWQgdG8gYmUgcm90YXRlZCA5MCBkZWdyZWVzIGNvdW50ZXIgY2xvY2tlaXMuICBTbyB0aGUgZmlyc3QgZmlsdGVyIEkgYWRkZWQgd2FzIHRvIHJvdGF0ZSB0aGUgaW1hZ2UgOTAgZGVncmVlcyBjbG9ja3dpc2UgdmlhIHRoZSA8Y29kZT5maWx0ZXJfcm90YXRlPTkwPC9jb2RlPiBhcmd1bWVudC4gVGhlIGltYWdlcyB0aGVuIG5lZWRlZCB0byBoYXZlIHRoZSB3YXRlcm1hcmsgb24gdGhlbSA8ZW0+KHRoaXMgaXMganVzdCBmb3IgZXhhbXBsZSBwdXJwb3NlcywgSSBkb250IHRoaW5rIGFueWJvZHkgd291bGQgcmVhbGx5IHN0ZWFsIHRoZSBibHVycnkgcGljdHVyZXMgZnJvbSBteSBpcG9kIGZvciBjb21tZXJjaWFsIHB1cnBvc2VzKTwvZW0+LCBzbyBJIGFkZGVkIHRoZSA8Y29kZT5maWx0ZXJfd2F0ZXJtYXJrPTE8L2NvZGU+IHBhcmFtZXRlci4gIEFuZCBmaW5hbGx5LCBiZWNhdXNlIGV2ZW4gdGhlIGlwb2QgdG91Y2ggY2FuIHRha2UgcGljdHVyZXMgdGhhdCBhcmUgdG9vIGJpZyB0byBkaXNwbGF5IG9uIHRoZSBzY3JlZW4gSSB3YW50ZWQgdG8gcmVzaXplIHRoZW0gdG8gYSBtYXhpbXVtIGhlaWdodCBvZiA1MDAgcGl4ZWxzLiAgVGhpcyB3YXMgYWNjb21wbGlzaGVkIHZpYSB0aGUgPGNvZGU+ZmlsdGVyX3Jlc2l6ZT1oLDUwMDwvY29kZT4gYXJndW1lbnQuICBXZSBhZGQgdGhlIDxjb2RlPm5vZW1iZWQ9MTwvY29kZT4gYXJndW1lbnQgYmVjYXVzZSBmYW5jeWJveCBkb2VzIG5vdCB1bmRlcnN0YW5kIGhvdyB0byBkaXNwbGF5IGVtYmVkZGVkIGltYWdlcyBpbiBpdHMgcG9wdXAgd2luZG93LiAgVGhpcyBkZWZpbmVkIHRoZSBpbWFnZSB0aGF0IHdlIHdlcmUgZ29pbmcgdG8gbGluayB0by48L3A+DQo8cD5OZXh0IHdlIG5lZWRlZCB0byBkZWZpbmUgdGhlIHRodW1ibmFpbCBpbWFnZSB0aGF0IHdlIGFyZSBnb2luZyB0byB1c2UgaW4gdGhlIGdhbGxlcnkuICBUaGlzIGNhbGwgdG8gPGNvZGU+e1NtYXJ0SW1hZ2V9PC9jb2RlPiBpcyBhbG1vc3QgaWRlbnRpY2FsIHRvIHRoZSBmaXJzdCBjYWxsLCBleGNlcHQgdGhhdCB3ZSB1c2UgYSBkaWZmZXJlbnQgaGVpZ2h0IHZhbHVlICgxNTAgcGl4ZWxzKSBmb3IgdGhlIHRodW1ibmFpbCwgYW5kIGZvciBraWNrcyBJIGNvbnZlcnRlZCB0aGUgdGh1bWJuYWlsIHRvIGdyYXlzY2FsZSA8c3Ryb25nPmJlZm9yZTwvc3Ryb25nPiBhcHBseWluZyB0aGUgd2F0ZXJtYXJrLiAgSSBhbHNvIHJlbW92ZWQgdGhlIG5vZW1iZWQ9MSBhcmd1bWVudCBzbyB0aGF0IHRoZSBzeXN0ZW0gY291bGQgZW1iZWQgdGhlIGltYWdlIGluIHRoZSBIVE1MIG91dHB1dCBpZiB0aGUgYnJvd3NlciBzdXBwb3J0ZWQgaXQuICBUaGUgc2NyZWVuIGNhcHR1cmUgYmVsb3cgc2hvd3MgdGhlIGVmZmVjdC48L3A+DQo8aW1nIHNyYz0mcXVvdDtkYXRhOmltYWdlL2pwZWc7YmFzZTY0LC85ai80QUFRU2taSlJnQUJBUUVBWUFCZ0FBRC8yd0JEQUFnR0JnY0dCUWdIQndjSkNRZ0tEQlFOREFzTERCa1NFdzhVSFJvZkhoMGFIQndnSkM0bklDSXNJeHdjS0RjcExEQXhORFEwSHljNVBUZ3lQQzR6TkRMLzJ3QkRBUWtKQ1F3TERCZ05EUmd5SVJ3aE1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakwvd0FBUkNBQ2hBZkFEQVNJQUFoRUJBeEVCLzhRQUhBQUFBUVFEQVFBQUFBQUFBQUFBQUFBQUFBUUZCZ2NCQWdNSS84UUFVQkFBQWdFREFnTUVCd1FHQndRSUJRVUFBUUlEQUFRUkJTRUdFakVUUVZGaEJ4UWljWUdSc1NNeW9kRVZNMEpTa3NFV0pUUmljblB3SkZXQzRSYzJRMU5XZzZMeEpqVkVZN0prazdQQzB2L0VBQmdCQVFFQkFRRUFBQUFBQUFBQUFBQUFBQUFCQWdNRS84UUFJeEVCQVFBQ0FnTUFBZ0lEQUFBQUFBQUFBQUVDRVNFeEF4SkJFeUlqUWxGaGtmL2FBQXdEQVFBQ0VRTVJBRDhBdGZXOVZ1Yks3MCt4c2tnOVp2cEdWWkxnbnMwQ2pKeUJ1VDRDdEx2VkxuVExGWTlRdk5NaTFHWitXREljUnVNZ2ROem5mNlYwNGhrMFgxYUtEV3d2WXlNZVJtVnNLdzcrWmZ1bnpxSjNNbDFKd3RJSGt1SnJOTldnV3ltdUFlMGVMbUhYTzVHZWhOQk5MclhOS3NaSGp1dFF0NFhSd2pLNzRJWWpPTWU0ZzF0SHJXbHkzd3NvOVF0bnVXR1JFc2dKTzJkdmhURkZESEp4THhnenhxeDdHTlFXWE8zWkhiOEJUWERFcWNKOEZ1c1lWeGVRSElYQjM1cy9PZ2xiOFM2SkhPME1tcVdxU3E1alpXZkJERFlnK0ZjNTlTdUU0dHNkT1JrOVduczVabTluSkxLUmpCOEtpOXJxZW1XMm44U1dkMkJKY1QzMXdFZ0VSWnBjN0FEQThmbFNxeml1TkwxbmhjNmh6b3cwNTdWcENDUUpTUmhTZTQwRW1tMTNTYmE5OVRtMUcyanVNZ2RtMGdCQlBjZkErK25DcTRza2dqMGU1MGJWdFFlMXVaSlhXZTNOaUhlUXMyenEyTXRuSU9lNnJCdG9SWjJVVURTczZ3eGhESS9VaFJqSitWQTJYZXZKYThTMldrbGNpZENYay9jWS9jSHg1Vy9DajlKWFA5THBOTnlucXk2ZjZ3Qnk3OC9QanI0WTdxaXp4NnZxK21hbHFWcnAwYkM3bkZ6Ynp0Y2Nyb3NSOWdCTWI5RDM3ODFPVnJxTVYxeGRaYWl3WklkUTBvSkV4VTRNbk1TVXozRVlOQXM0YjRwdGRSMHl6Vyt2N1VhbE1HekVDRkpQTVFCanh3QnRUN0hlVzAxeGNXOGN5Tk5iNDdaQjFUSXlNL0NxN3Q3aXp1ZlI3RG8wY2JTYXMvNnFFUXR6cTVmS3ZuR3d4dm5OUGR2Znc2THhOcmE2ZzdxOXpIQTBHSTJidGlJK1U4dUJ1YzkxQklQMDdwUXRvN2s2aGJpR1ZHZEhMWURLcHd4SHVKQXJtZUpORVdLS1E2cmFCSlNRaDdRYi9sOGFoMmdSaDI0TUVpQmdJN3RzTU00SUpJTkxCYnhmbzNqcjdGUDEwbVBZSGRIa2ZqdlFUa0hJeURrR2lrT2lrblFkT0p6bjFXTE9mOEFwZFFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZSbHVEcmZsNUZtRWtZVUtvbVZpUUFQN3JLUHdxVFVWWmRKWnN3YU53cGJhUGZldUxjU3lTQlpFUk9pSXJsU1FBY245Z2RTYWY2S0tpaWpyUlJRRkZId294NVVDRFM5TFRTeGRpT1Y1UFdibDdsdVlBY3BiR1FNZDIxTDZNZVZHRDRVQmsrTkZHRDRHakI4RFFGRkdENEdzNFBnYURHVFJtczRQZ2F4ZytCb0NpaWo0VUJSUjhLUGhRRkZHUEtqSGxRRkZHRDRHakI4RFFGRkdENEdqQjhEUUZGWndmQTFqQjhEUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVlQZ2FQaFFGRkZHQ1RqRzlBVVZua2I5MXZsUnl0KzYzeW9NVVZubGI5MXZsUmcrQitWQmlpakI4S3p5dCs2ZmxRWW9ySlVqcUNQZUtBckhvcFB3b01VVm5sYjkxdmxRVllkVkkrRkJpaXM0UGdmbFFBVDBCUHVGQmlpczhqZnVOOGpSeVA4QXVOOHFERkZaS3NPcWtlOFVjamZ1TjhxREZGWjVHL2NiNVVjai91TjhqUVlvclBJMzdyZktqbGI5MXZsUVlvclBLMzdwK1ZBQlBRRSs0VUdLS3p5dCs2M3lyRkFVVVVVRGJxVEVTeDRKR3g2ZStrWE8zN3pmT2xtcWZyWS84Sit0TitkOFVHNWtZayswM3pySE94L2FiNTFwbmV0U2FEY3lQbjd6Zk0xelozeHN6Zk0wWk5jM29NbVIvd0I5djRqWE15UC9BTjQvek5ZSnJVbnpvTU5KSisrMzhScmk4a20vMmoveEd0MkpwTzIxQmhwNWYrOGYrSTEzNFIxQTZrWTdqMmg5c3lZTEU3Q2tMdHYxeFhIZ2Vkb1dnanh6Q1Mra1FrZEIxTkJNN3gyRjNKN1J3Q05zK1ZjQzdkN0g1MTF2djdaSjhQcFNWajQwRzVkc2ZmYjUwZG8vZXpmT3RNNXJHZkhyUWJGMi9lYjUxb1pIejk5dm1heHpBSEhTdWJNRDMwR1drY2Z0dC9FYTBNci9BTDcvQU1SclJtM3JRbkZCc1paTWdjN2Z4R3VUelNEOXQvNGpRVzNyaTVvTlhta0EybGYrSTA2Y015TStxeWd1N0FRbnFTZjJoVExLZHMwNjhLSE9yVC81UFgvaUZBNE5JMlQ3UjZudnJIYXNQMm0rZEkzdVZEdm54SXJtYnRSM2lnY1JNM1RtYjUxbnRXL2ZiNTAwSFVZMUpIT3VSNG11YjZxbU5uWCtJVUQwWjNEWUxIR091YXdidmw2c2ZuVU4xRGlxMXNjbWFkVngzYzFNNDlJZWx6U2RuNnlBZk5xQ2YzZXNyYnFUemtudXFQM25GRndTUWtoSHVxTlhYRWxzOHFabVRzMzJEODJ3OTlJNU5Sc1pFa2NYMGFoY2tzUEx6OGFDUVcrdTZycWx6TGE2ZElKWm93REp6UHlyR1BNK1BsMXAxZy9TZk5PdDVxMGtUUTRMZGlBRkhtYzVxc0xUaTZiaEpCNnRINjI5eXJPc3pleUQvZS9HbUhVdUplSWJxNmFTU1M1UmdRU2U3STZIcFFYeHhScVY3b2NWcmNXY3N6cVVWbVNZaGxrQnh2dHZtbDNGRnk3ZWp2VVoxTEkvWnFSZ2tGZmJUYk5lZmh4VnhOcU4zSGMzZDllMzB3MjdObDJLZzVIZGo4S3Q1dFJ2TlU5Q21xM1Y3RDJOd1NReWs1eGgwL0dncW1hOHVocTh5aTl1VlJsQkdKbXh0OGFjOU92YmlPL1F0ZTNQSVJnODBySGMvR21KNVErcDI1WWMzUEVSdjFHS2NZbUNUeHR5SFBmZ1p6UUxkZXVydjlKVzBrZDVjc25aNC9YTU53VDRHckQwS0dhNnRyS2RwcHNQR3JIMno0ZStxMDFRbmxnd0NBR0lxenVDcHUwNGV0WE8rRTVDZWJPNFAvT2dsOHp4aUdPRnBDQzU1VkcrNXhucjhLcjdpeTJraTAvVXBVdnJxUDdGOHhpVEFKV1JRTURyakdjNzljVk43bXpudVJic3NUa0pNc2dJSFVqT0tZT0w5TmRyYWVOWXBoUExieW9pSW85dGh5bFYzQlBlZW1LQnI5RGR4SkpmYXJienlTeUV3Q1JTN2xzZHhHNTg2ZXVJN0N3dXRPbnVuRWd2WUxkbGlsRTdyZ0Rmb0RqeDZpbUQwVlc5M1k2enJFTWtiMjg2V1dNU2o3amMzZUtiTlZ0K0pGdG5lNTE3dG9TcEx4cGJnQWp3ejNVRFhwZGxkYXZxTUtHNHVKSTRvSkpHZ2E0ZE8xYktxTWtIb001cDhzMy9BS05tNGp1N3E1Z2dlUldRYzdTdEo3SUpVRTl3T2ZjTVo4YWplZ2F1TksxKzBGeElrY0VzVXFTTzdZQzQ1V0J6OEtjK09MUkxvMmVxMmM0bHQrVHNuTVc0eHpaRGVlYzQrVkJwcVhGa3BkaGJ6eXhZSjVGV1J1WWZIcDE4cWUvU1ZkM0k5SEhDY3l6VFJ5eU1wY3JLUVQ5ajNrSGVvQnlXNGtoY082QlR6TXJzRHlONDV4NUQzVk92U1NESjZOT0Q4a2trcGtucitwb0twdWI2K1ZWWVh0ME45L3QzL091OXRxVjdsVk43Y2tmNTcvblNmVUVUMUl5STJTa25LK0QwTmJSMkY0dW5SNmkxdko2bThuWnJNUjdKWWRSbnhvSDIxMWJVN1FPOXRxVjFFN3FWYmxsSnlwN3R6VGRjMzk2Y2tYdDF6WkhTZHQveG9pbEhZRGZwMXBIZGtOYnRuQjNIWHVvRjFyZGFnQzZTM04ydTNScG4yL0dzVFhsNHVDdDdjK1gyN2ZuU2ZRVlNXNVpaV2s3SUp6UHlBRmdNanBuclc5OHFMSTVoNSt5NWp5bDhaeDU0b085dHFOK2poeGUzSUtuS250VzJQZDMxS1JkU1hzU1gwTnhPZ2ZhV05aWDVZNVIxVWI5RDk0ZThqdXFGcElBdU5zK2RQWEQrcFIyRjhlM2FRV2N3NVprWHc3bUhtcDN4M2pidm9KYmFUM01EUlN0Y1RFZy90U3NmUHhxVmVtYTN1SDRTc2J5MW1sUnUxUldhTnl2VldJNmVkZDdQaHlEVkVpVG5WWmNZWWo5dndPZmRpczhjelQzR2cyL0RyV3J0Y0NOSnUxWmgreVN1QVBFanZvS2E0VTlmSEYyamM5NWNsUFhvUXl0T3h5T2NkUm12VXg2bXFRNFc0V2doMXF3bHVVbldlTzRSMVZtQzRJWUhjWS9uVjMwQlJSUlFOV3Jmcll2OEordE4yYWNkVy9XeGY0VDlhYkdvTWs3MXJ6WXJESEcrRFRGeEp4SEhvTm9za2tMdUh5QXk0d01VRDR6aXVaa3FwWDlLOTdISi9aN1J4MDNMQ2xOaDZXNFRJVjFHekNvVHMwQkpJK0JvTE5MZDlhTXh4MDJxUGFmeGxvdW9SSzZYcUt6ZnNObm1Id3BiK25OTnovYkkva2Z5b0hFbmF1RDBRM1VWMUVKWUpCSWhKQUkyNlZpUTBDVnp2aytOTE9BMkhxeXNla2wzS1ViOTRaNmp5cGoxMStUVGp1d1ZwRVZzSEhzbGdDS2t2REtCSnJlTlJoVmtPQjRiVUQzcUcxNUo4UHBTVW1sVi93RDJ5VDRmU2tob05RYTVUVGlDSjVDQ1FnemdkVFhUdjZWRk9OZFRGcHBndFJLWTN1VHlsaG5PUERieG9HRFdQU1JQYjNVaTJscUJHdTMyM1hQZjBwRkg2VkpTeW1TeWo1TSsxZzc0cUtYMXZEMlRNSCtZSk5Na2lvaWZmR2ZlYUM3ZE40MzBuVTVZNG8zWkpIemtQc0YyOGFrQ3lMSW9aR0RBOUNEWG0rRzRFYjVFcFUrSXF6dUJlSlJOYnpSMzE2QXNTaFkxT2ZuUVdFYTVPYXlraVNJcm9RVllBZ2p2clYrbEFua08xTHVESGVYaU8rTE9lUklBaXAveERKcEJKMHBad1IvMWoxTGJmc3gvK1FvRU05eTNhdnYrMGZyWEF6dTNmVGhQYXFKWC93QVI3dk91WXRvejF6OHFDQmErNS9TOHA3K1ZmcFVZMWpXVTArRXFwQm1ZWVVlRlRUaUMyUmRZbEFIUkY3dktxZzE2WnBOVG15YzRZZ2VWQWludTVaNUdlU1FsajFyZ0pDRDEzcFZZNlpQZnY3SUtvT3JHbiszNGJ0MEE3VExIem9JK2wwVlhCWThnT1N0U2ZUZUsyc2JVMjVnV2ExQTVsVmtCNVQ0MG9UaHV4ZGQ0K3ZoVzAzQ1RXMWxMTmJQekVEbUtONGVGWnl5OVhidytMOG1WM3hERGZUeWFuYytzRkVSVDkxUnNBTytuMjBqa0UwYlhISzBJeHpLaTRKSGhudXFMeHl5SmNNSFhsd1NDbmNLbWR1QklxTUNNRUN0T1Y0dkIzMUtmUnA5TVNMUzlNbXRieklMeXl6OW9wWHZITFV2MGRKbjlDR3NKSVVaek80SEt2S01jMGRRUlV3d3FmMlE1ZlFwckJIL2ZzZjhBMXgwUlY4Mm44aVcwalN4UWhIR1dkOXNIR054bWxDdU9ibDV3V1VuSjVlbEtOVFR0dERsbnhnUmNyYmVSeHZTT0VjLzNRY0FLVGdiRE85QXRuaWdsakwzSWtaWS9iUUkyTXQ1bnVGU3JTdFkxQzM0YWdzckJrdG1lY3pDU1JNcXVEakJKM09kc1kyNjFybzBPbmFUYlI2anFNQ1hEU1k3TzFLOHdPUDJpTzgrL2FwTnhYYmFYcmx2cDV0ZFNndEpvTVJzZ1FxRlhPY0FBYlk4S0NUYVJOZlhIQUthaGV4T05RZTM5dU1ObGNnNHlnN2dSdlNUakRTVTFPUWFmRXBTTmNaNUNRRkJVOVFPNDcvaFdxY1k2VG85dERwY1YzQklxUUJGREJ0Z1BJQ212V09KclM3N1NTMXZTSGxUSmVGQ3JOZ2JaUGRqZjUwRGI2T3JDYlMrSUxwR0VmYVBFNkdEbXc0UU9DR0k2WVB6MzZVbDF5V2U3bmx0b05QbWtjZG9nVmNEYmY2YlVxNEhuczlKdm52NysraVQxaUpvaXhKTGgyd2NIYnhGT1NUaTltdW9OT2pWaXhmTEp1OG96Z25KeHQzWUhrYUN2WHM3YlM5Y2dWclUzVitFUE5JUDFNQUtBNHdSN1RlZlFlZFMyR3dUVmJOOUpFVTBjMTRXajdjcjdJQklJT2V1QVBLbld5NFgxTFZManRncVF4TW5MMmpuYndJeDM5S2UrSU5HL1JIRGQ5ZTIxMUt0eEJiczZka2lvZVlEYkJHNCt0QkhyYjBNMjZ4cXI2cEtjOVNJODkvY1BuU0QwdjZkSHBmQnZEK20yNVl4VzF4MktGdXBDeEVETk1jTjdmUmNzOHVwNmpNN0wwbnZaR0ErR2FkL1NneGw5SDNERHNTeGFSU1NTU1Q5bDQ5YUNCMmQvcGIraXkvMGk0ZFUxT0NjTWlIN3o1Y0VGZmhrZkNtS0hUWTVMS0oxSlZtVUh5cHkxS09IOUR2eUFoeVl5YzV4MXJ0cDl1VFlRbkczTDNEem9HWDFlNmpRcmdPdmlLMHVVQnM4R1Q3Vmo3VVpVZ3JqdnowTldHbkRVYzJqTmNLd0VnT2ZlS2grcHJidlp1Qk1uTXFjd3dPNEhmZWc1OE1SdzV2OEF0V0MvN01lVFBlZVphMjFhSUpaaVJWMkw0NjF3ME80aEVWeUdtNUhiQzlPNy9RcGJxNndMb2lOMnZNL2Jia0gyY1lQZGpyOGFCdm5OcGNOYmVvd1N4dVVXTjBhVHRESkpucXV3d1BMZjMwT1d0eVZsVXF3T0dCR0NwSGlLSWpCQ3RzeVM4a29ZU2xsRytPdXhQUStGT0VrUDZVdFpQVitTWm1PWkpNYjh4OGM3NHgxTkJabm81MXUzaXRJYkc0dUlrZU1oNE9ZNE9DU1N1ZnhIdk5TdmpmVTdLM3RiTFZaQVhnQk1KQ1k1c25CSFh1MmFvYnc3Y2FGYldkcXNlaXlYVnpnTEpOT1ZTTmlPL09jNEh1M3dLbEVXcld1c3ZkMk54cE5vOGNaNW93NkNRRTQyM1B2T052SHBRTVdpOGM2TE5yRmxaTGFYWWtrbVNOQ1FtQXhJQXp2NTFhOVJ2VFlkQVRzNDR0THM0cm1KdGliWkFTZWJBS25IamlwSlFGRkZGQTA2dit0aUhkeW42MDFuNDA2YXgrdGkvd0FKK3ROWjZVR2puQnFyT0xZN2pXWmJ1ZEZra2lqMlJjN0lOaCtQV3JRbHh5Tm53cU5haERIRm9WMDBhY29lUEorWW9LUHU5TmxqY0ZsSThhUXZBUTJNR3BsZmhSTVJqclRQUEd2TWRobWdhTGQ1YmFaSkVZbzQ2RVZaa0VRR254UzlvT1lnYlp5Zm5VRWEzN1Fxd1haVHVlNFZMTkpuYWF3UlMyZXo5bkdUaXBlK0hYSDFtTnVTd09ITS9vWlA4eC9yVGk0ODZidUhCL1V5ZjQyK3RPTGdFSGI4YXJrWmRmWG0wcVVEWUJsT2Zjd3FVY040OVloem5QYS95cU5hK0IraHJueVhQeXFSOE5NUFc0UVJqRDVIbnRRUGQvajF1WFBYYjZVa2FsZC8vYkpQaDlLUm1nNW5yNVZEZU1vbzNFYmxjdXJydjhEVXlZVlgvSEYzSmFLNmtBa3lLd2J3SEsyMUJGTlFSVEdBUjVWSDdxM2pPNFhwV2JqV3BYY3h0SW1PblRGSTU5UUlJRFkzNmVZb05UYnFWSVZjazA4NkhCNm5kbFJKbm5UZGZBMHpRWGg1eElGd282SFBmVGhZVHl5YXBEZ0VnN2RlZ3JQMTEvV1lYYzVxNzdMK3dXMytVdjBGZEdyU3lIOVgyMytVdjBGZFdyVGtUUDVVcjRMMjRuMUlkM1lLZnhGSlpBQUNLWGNJUXNuRTE3SmoyWHRoZy84QUVLQjN2ckR0T2FXSmR4MVVkL25UTTBYS2NkL2hVbHM3dUM5amFTM2NNQXhVK0lOTWVrb3QzZFhuYW5PUHUrV1NhQ3VlTWJnV2wxZXpuYnM0VkkrVlZCWldqNnZxYkFraGM4OGpmSCtkVzU2U28xUnRUUnQyRUM0OStCVmU4TVFGTE9hWURMTytBZklmNk5BN0pIRmJ4aUtKUXFyMHhRWHlOcXkzS28zTzljeTRCMm9mNkxiWm43Uk1iYmpmd3A3am5rdVZWWlF2VWpQWEpxT1BxNjZkQVVtaFBpcHlDQ2ZFVnpzdUpBSkVMQWhBZXBGWW43WGw2TTkrUEgxbDc3YWNUYUY2dklidUpQWmMrMWl0ZEtjcEdJMk9lWGRUVTRTTzMxelJ5Z2JabDYrQnFMWHVpM1duWE1sbzY5bmRSdHlGVDQ3WVBoaXR2T1VEWnMvT3JDMGtjL29jMVVZNXN6UHQvd0FVZFFFOEtjWDIyR3VMYlR5V3dBbzFDSG1PU0FOdWJ6RldOQnBkOXBmb2gxVzF2b1ZpdURJWDVCSXNnd1dqNzFKSGNhQ0NROGhpbXQ1RVU5dEhnZ0FOdmpZSDYwaHRsWkpaYmRZZ29kVkRaSVBUd3g3dXRLWW9wU1F2WjgyUmhlWGJGS0xmVERhcEpQT3dSMlRFU25QdE4zWjhnTjZCWEU2cmFMRGRTaU9PTTg4Yk9jZXpqSkE5dzMrSGpTNWJxMjlabjVXSDN5YytOUjJTUDFobWt1dVdkMlVwbjkxY1l3TTlPcDZWR3A3MitzTHlkWUhWNGd4NWVja0hGQktOWGUyYWFXUVpEQkErVjd4bmNmS25xR2RKSVVhSWhrNWQ1Q05oL3dBK3RRcXdtTjFjb2JvODVaR0JDOUNRUWNWS2t2UnloVWpQZ2lLTmdLSFpWMlpGaXhtOWxSTUNHQzVMZTJOejhLZWVITlhXRFhKQ3FLd0VMY3VUdDFGUks1MUdVb1VrYkI4QWVuaUs3YUJMMnVxNFBzanN6amJPZW0xU2IyNjUrc2trN1hWbzJvUGZBOGlLcXFOZ293QlRocTFnZFMwaWF6OW5NcThwTFp4K0ZOWEMvSXRua1lDZzR5Y0NuMlc3aWpBQmRjOTI5VnlWamNlaTdWWkpTNjMxcmduY0htSkh1eUtSK2xpeWV4NEw0ZnNuWU0wRTNac3c2RWlPck11OVVhQjRZSWlzbHhPeFdOZTRZNnNmSVZYM3BrRGYwZDBydE1Pd3VtNWlCako3TTkxQlU5NHhmVG1EWXh5cjA4alVpNFhzbHV0T2pPZGxjanJVWVpKSnJjeFJSdTdFYktvejMxTCtGM0ZucEI3WnNFU09NQUZoM2Q0Mm9KYTVoZzAva1lBS1Y1QnNPdkthcWJWNDRrdFpsN1Vvd2hiS2pIdEU0cXo3aTFtdXRNTnd2TXNDRlpHZGxJQVVEYy9qVmNhdmJwQkZjckxLcXlzckRsRCs3RzFBaDRTdG9wa3Z6SkdyRkl3VnlPaDM2VXAxN21PbHFnZm1UdFZQSUVHM1hKejFQZlNmaGt6Slk2b1lPVHRERXZMemJqdnBMUE5xQ01UZFBHOGE3c3NhOVBPaXliNGpqSnBndW9wSm9yaHVhTUtFUmsrOE1maFVoNGV0clMyc3A1SmlWeVZPWGt3VzI2RlIxSHdwcjAvVWJaNVpVU1RITmpPVHNjZnUrWFNrNkxLbDdjckxNQVdZRU1CMUhsOUtrMjM1UFhpWW4rNzFGWGlNTnN5d0ZjNGtBNVd3VDVkUjEycEhhYXJjMnFSU2krbTNMS0ZTVTVqSndDVjMyUFRla2thSkVIYVhMQnp5L2YzQUh1N3FTdGFNSi9zeUFHR00vbWFybW12RFdzWE12RUduUXlYYnVHdm9seXpFNUhOdjhNbjVtdlFaNjE1ZjRXQ3J4WG9LQXZuMXVFNEorOTdZMzkxZW9EMU5BVVVVVURUckg2MkwvQ2ZyVFVUVHJySDYyTC9DZnJUVXd4UUl0UldXU3htV0VrU0ViWUdTZktxNzRrMVM4R2t5aFkzNU96d0RHZGh2MzFackRQeHFBY1MyeXRwdDdseWloU2NmSHBRVmFsMWMzSmZMTWVYR1NhUXlYa3BrSUdlYnBpbnEwQ1IyczdrQUsyVlhJd1dIalRWSENyM1piZnN3Y2xnTTcrRlMzVFdHRnp5bU1LTGU1bWloQ2xYVm5HZCtoSGpVaTRhU1QxT1IyUHNGdVZjL2pVZDUxa2taZ05pZHM5d3FiV0Z1TFd5aWhHZGh2NytwcFA4QUxYa3ZPcGVJblhEbi93QW1UL01mNjA0UG1rSERnL3FaUDh4L3JUaTQ4cXJtUVhsdWwxYnlRU1o1SkY1VGpyU2pnNzF1SFdPd3U1VmRReTlrNEdPYlk3ZStzU1lBeWVncmh3YWJxOTE2RyttQ3BBMjhVWWJQS044SDNtZ21kK00za253K2xJenZTMisvdGtudytsSW1vT2JiL09vVHg5RHoyMXN3d0NYNVNEM2pCcWJFVkVlT284NlpieWZ1ellQdXdhQ3BGdGdOVXdRcnVQYTZEQUhpYWJkVVFQZU1VR1FUZ0FkMVBmWnZHMDdySHpFa2d0bW1zeEdOMm5seWNiRHZ6VXQwNmVQRDN5MThjWXdVSFlaS3FQdkE3L0tuN2g2MTVwNWJrOUVYa1gzMHdSNTY3NVltcFp3OWhkT1lramR6dFNNNTVicTJyRWYxZmJmNVNmUVYwYXVka2Y2dnR1bjZwZm9LNnRWWkozL0duYmhUSDZVbUdSbnNmSCs4S2EzSGZTcmhZSCtsc3V3UCt4SEgvd0M0dEF5MjF6Tlkza2trRGxUenQzN0hlcER3NjY4bHc1NnV5ajZtb3FrOFU4a2p3eXBJdk93SlE1M3lkcWxHZ3FGdEZrQjNNaHlQSUQvblFWcDZVVTdUVXJ5TWQ4YS9IMmFyMjB2R3R0SWlTSWUwek4wOTlXVngycXpjU3pSbjdwaVg2VkFiblRQVTE1WThsUVNWQjh4UU5EWDl6SEw5bzJhbU9pYVdkU3MzbktrcXE5UE05S2hpV1V0MWVySHVjdGpIY0JWdGFFSXJQVGpBTURtMk9Lemxma2Vqd1lTMzJ6NmlwYnd5QzVkWExzcXNjYzFTUGhxUzBtamUzblRuNXdSeTh2bDFwOTEvaG0wdWgyc1dFbDhRZGpVZHRiSzQwNmJrNWNNZjJsTldUVGpsbHU3U0Rodk9uMzBsc0hab1RuQ3QzVk52U1BweGg0Z3RicjJSRHFGcUZaOGZkZU1ESHpCcUk2TGFZWXU0KzBPNUpxMitOOU9GNVk2UWVVRVJ1UTJlNVNneWZ3cXN2UGx0YlNyeEhQYnlNeElrVGNucGxoVm84Q0dOdlF2cUpseUU5YWtKNW01dStQdnFEYWJFMXh4azVrUE1RVUJJNzhIWS9HcHp3REMwM29ZMUNOVGt0ZHlBRWp6am9HaDdxSWpGdGJFSCsva2ZnS2oycVBkUGU5bzB6Y3lrTUN4T1BEcCtGU2RkS241ajdjWUhRblAwcEJxV2dYRnlyTEVFWTQzekpnbnYvbFFJYkNkSlFWZmxEamZCTk11cVdLU3JkeVNGUnlTK3dQMmp2OVBHbldYU05Sc0U5WWtXSUZSMUVneVBjTyttcVNVU1EzQW1MTkwyNHk1TzVKUFNnVGN5Mm5ZQUV2bHVWU09vNXUvOEsyZ2ttVWRwMnMyRng3U3YwTkpya3lLNVNLUE12TUFpNDZHbGN4UlVTRkRubFBNZHZHczIvSGJ4NGNYTzhhS2tsYVpRN2tsaU1ibW5qaHNFYXEyQjFRay9NVXhXMmV5VlI1NzFJdUdVSDZTWTlBSXljNTY3aXRPVnU3dFlkdnEzcWtJR1NGVTdLUDUxdEh4SGJ0QVZOdkk4eFAzKzEyMzhzVXh6bjJTQ1Jqdnp2U05XNUVYT1NPdXd4UkQ3ZTZuTmMzVnJjMjhpcGMyejlwRVhQc0U5NGJHK0RTbjBnYWxheDhQYUxmYXBZcmNxODNNOEtQdGtwdmhxanNYTXhWczRIbjFweTlKYWtjR2FDdWRoSUFjOS93Qm5RUUxWOVQwaThSalkyVTF1a2dPQWhBWlI3LzhBbHZTL2htZms0WldJTitzdVpsQkhUWll6VVhXUEpBd1FEMys2cEhwMXJjdzJOcmJ5eVFXcUxMSTZ1RjVtT1ZYSktuWWpBOHFDNFlMZU81NFdTTnlNUFpZeDQrem1xRzFhTHQzYVNhYU5VS01VOFNUanA1YlZQYmFXNWx0cFlSTThpeFd2TWp1TWtaeUQ1YmtlSFNvSEpwOGpLVEoyYXNRTjg3azBDWFFZemIyMm9kbGx5aWNyN2JFNzlQREZKWnJlZHJScHBrTnVqamFVNWJPTnNZRzVwKzBxd0ZySERHcmMvcmpCV0lIUWNySEsvR3RMN1Q1N2lYKzBDUWdZSE4wMjIrbFp0NTA3WVkrdVB2OEE4UmkwampnWjRvb21ZY3h6STRCWnZjZTRId0ZUUGgvaEdQaXBiaWRMdHJVd0ZVdzBlZWJJelhIVDlEakJaN2libWJtMkVaK3BwVGROYzZkeUpZVDNFVVR1VEl5VEZTZHRodDg2MDRuNWZRNHR4R3p2ckJTTWRBSVQ4ZSt1VGVqVzF0OVN0SUJQTE0xMHhpRGxUaFFCbm1ZZE01STc2ajdhenFEanN6cVY0Y2VNNzQrdGQ3Vzl2WUFadlhibFd4OS90V3lQZDRkOUJNckwwYXBwR3RhZmVSM1NUU1IzRWJIQ2xSeWc1eGpKcTBxb0xTTld2cHVKOUxFbDdkU0sxN0NDcG1adHVZZGQrbFg2ZXRBVVVVVURUcTQrMmkvd242MDF0MU5PbXIvcm92OEFDZnJUUFBMSENwWnpqYWdEc0RVSzR1aHhZYWl2UU5IbGNmNjhhMTRxNDhYU1VFTm5HajNMOU9ZbkNqeDg2YmZXZFExYmc1dFR2cEF6VGh5Z1ZRb1ZRUVBxQ2FDRVhGdTdXeW96S01nZE5zVTBYQ1BDQkVHWEJ3VGdZSTY3VktIYnNiZHBHSHRnWlRJLzFtb3hKekdWM2JxeHpXZTd3N3orUERjN3JNZUF5NU9BU0tuU1hNTDdKS3JmOFZRRE9XQTdxMDFKR1V4U2dlMFJ5azFwd1h4dzI0T2lwdjhBOW8zMXB6WTdud3FydUNiNjhrMGRVam1iMkhJTy9qdlUxaTFDNVFEdHZhWG9jamNVRHV3NXRxMDRDY0ZMRWVBSS9FaXRJWmttNVhRN1Z4OUhzM01iTmM3Q1dSZmt4b0p0ZkgvYlpQZVBwU1EwdnVJRExleW5jS0NOL2dLYTlTbkZxamN0QWt2dFN0ckNKNUo1TUtpbG14NENxeDFuamR1STVFc0xTMDdLSU1aREk3WmJsQUk2ZDNXdCtPdFVZV0poRGUxT2VYUGwzMUh1R3JWVGFYdW9NRHpSc3NTanVPUVNmajdOQjJFWmRYWEdmZFRCcU1oYTRNU2hWUkdJQVVZQnFVVHNscEZJUUQycFBMeWtkQjQrN3pxTno1bmxKVUU0OHF6M1hmTCtQQ1l6dWtHUXE3VjJFODhkbklZcFdRcnY3SnJUMWFSNU1jcEg4NmQvMFMwVm82djk1a0xINVZwd08vQzNHT3BtV08wbW5hVWNuc2N4NllIU3A5YjYxSXdIYXB0anVxbk9IM0Z0cmRtejdBU0JXOXgycTRvTFJKR1pCOTVlbm5RT0Vkd2s0eWh6VHR3dC93QlpXYnU5VlA4QS9JdFF1R2Q0Sm1HY0ZXd1JVeDRQbEUydE00UC9BTk1lNysrdEJDTkUwK1RTN0o0SmVYdE8ya1p1WHpZMU9kS3hIcDhEZDVWaWZuVVB2NzVMUjNabEp6Tnk0SGlUaXBaWmN5NmRIL2tEYnpvSzk0cmtFbkU4elo2SW4wcU5YNHlkcWZPSTJ6eERjKzVmcFRUS25OSW0yY2tESGpUcFpOM1J2dG1oMCtLU2FRTjJyZEdBNkR3cnRaNjFjcmF1OXFxdElTQXNiSGwybzFXWkk0eEFxZ2pxRjhLWTRnOFYwcmMyQjE2OUt4anpkdlI1c3JoSjRwZWt2djhBVjU1OU50cHV3YUtRT1ZsVFBkaXRiQjF2Z3ZNUGJCcmxCZHpYRnVlMVpKQXV3QXJhR2FDMlpaMFhra0RxQ21ldTliZVpJYmVMc21Ia0t0ZmlxSzZmUkltdFFHWlFBUm54QUg4NnE3MlRHc21lbzdxdUtlNTdEU25tNUE2eFFoK1h2SkFGQlN5Y00zV2xjZkd6V09TNGxoc29IbWtSZGl4NW1QeUdCOEtkZUI3bHRKOUN1cFhJREZvN3FSaHk1VTdtTWZ6cVIzdXAzVjNxTWx6RlBOQUh4N0VjaHdNREZaNGllVzQ5RitybVZ5N25BeTMrTktDdGhyK29jN01zaXV1VGd1bWUrdTBYRTJvR1ZWS1FGU1J6Zlo0eitOTWZPVzVjWkI1Um5Qald3a0FZQWpjQTlQR2drdHlXdVk1T1pzdVZiQXgwMnFFU1pqZTZpbldYTEVoQ2k1S3NEa1o5MVRMTE5HVzJ4eWcrT0Q0VkhaazdiVUpqSm5rRWhMRUR6cGJydGNjZmE2Y3dIa1QxaHhIa2NwM1hxZkh5TzFKMXM0MllBN0h4cFhLVWVRSkVDVVFZQjhhNWVJT2MxbVQ2NitXLzFuVGVLQkkxeHpad2NtbjdoMWsvU1RiNCt4YjZpbU9Od1VPMk1lRk9tZzUvU0xMak9ZaWVubUswNHBQZDlwY1FjdHVzYk5rZnJISTI3KzZ0QUpBUGI1U09tT3VhNXU3SS9Mc0FlN082MWxaWFZVQXdSbnczRkIzaTVvOEJJMDh5Um40VXU5STREY0ZjUDViQzg0SlAvbDAzd3VDZ0hMN1pPY0grVk9ucEpVRGd6UTR4SExJeGZDcEdoWmllejhQem9LdGdRTklNN2o5bW5hM203RndGQmRzNUJidUoyTzFJTFcxMUNXUm1PbDNNS29Nbm5YZmJ2cFhHUzBweDdJRGJzZWdvSFhTcDU1cjZmbmx5UkNNQmp0ako2Q200R0tLTUhtNTJDKzI3SEdQZFduTjZ2ZW1XS1J1UVF1cEo3OXRxajl0cURNcW00VWNvR3h5Y1pxVzZqV0dIdGxvL1RYWHFjVU1jTW1TaHlHSTNHTnR2S214N3VSMzJjazlkanRTV1M3ZTVQYUhBeUJzS3hHeHlvT05qM2Y2M3FTYTdiOHVXN3FkUktkTFZuaEJKSnlkcWxtbDhOUWE5WTNJbG5hSXE2Z0ZRRDNacUhXTjlIQkFGSXkzajRWTk9HYnFjV1YxTEpidXNIYUpsenN1Y2JiMXB5YlEraTJLS1VUbTllV01uY05GZ0g4YVhhandqcDB0bjZ2RTFyYnlNTUJzTVQzK2RLZEVuWFhkY3ZiU2VROWxib3JSVy9OZ01Ebm1ZK1BkN3FrRnZwRU50S3hNazl3enRrTEkyUXZ1SFFVRmU2VHdPbHRybG5jRFUyWm9MbEdLQzNJNXVWZ2NaejA4NnQzdnBMYlBod2lSQkZPZDhZUHVwVlFGRkZGQTNhb0FBcmtiaFNLZ2VzM2JoaXZON3FtdXV6Q0dOYzV4eU1mbFVBMXdOSHBrMXljZXhIbmZ4NWMwRlE4UVhSdWRadVhVN0tlVmZoVnEzVmlscHdwSHA4WVZUSGFZQ0h1SU9UOFNEVlY2TlpIVjlmdExVZ250NVJ6ZVF6ay9oVnY2dXZyZHNaL2FXTHRGTGN2WEJVQS9IMmFMTHE3VmxxMXc2ZllyOXhCN0pGTXpRTThZWVlESHhOV2ZxSEJGdmNNVEZQS2hYT2M0d2Z3cEphZWowdk1yVFRza1hMdVZJSkhsMHFTYVhQTzUzYUJhYnBKdVp2Yis2TjJJck92V2FycGtjcUFERG41ZEt0U3g0U3NBaEVVczRRSXo4MlZ5MlBoVFBxSENVRTNEWE9zc3hKU1U0T01aQjkxVmxHdlJ4Sm1hOHRpZnZSYzZEekIzL0FBcXhMbUlUYVBMY1JEMm84RnNlWGZWUmNQWEw2VnJsbE1qRUJaZ0c5eE9EVnhzeTJONkhVWnRMazhrcW5vcGJiUHUzb0dtMHVtaGRaQVRna1pBcFp3VE9MRFhyTFRwYzlwSmNTT2hBMlpXeVJqK2RNdHdodEw2VzF5ZnM1T1VlN2I4NmNOQzdTYmpEaDJSZDFodW1WaDRCa1A1VUZzM3NxeExudjYvaFVXMWhqTkp5QVpESXJaOTdFRDZVOTY2N0xDV1Q3eS96Rk1jTXhsa2FWUmtCVnhub1BaMno3aVNhQ25PT24vcldLMkJ6MmE1UGh2OEErMVBQRDFvZzRMdDFjQU5OZmRxYy90QUt5MUYrSlpEZWNUWGZaNWJNblpvRDEyMi9HclZ0TkV0cDdUUzdVODhjRUxsUFl4bmJidzh6VXMyMWpsNjNhRHo4MS9BR2NEbVhLQWp2eFRLMm0zQ3NRRXlmRVZZeThLMnlYdDliTE5NR2pKZGVuY2R4MDhLVmFid25ZM0Z4Mm5yRTVpWmViR1I3TzN1cEpxSmxsY3J1cS90ZE5XMllTU2dHUWRGRytQZlNtNFFpYVpjZElmcWFtdHZ3aGFTdVpqTk9VbGxFY2VDT2c2bnBXeWNKMlUrclh5R2E1NVVqeCt6NCs2cWluYisyTmhxUkFHQ09WeDhnYXR6VExzemFSWTZyRjFhTUNRZmhWZWNhUWlQVlZrakI1QWdRRTkrTnY1VkpPQk5RRXVoVFdya25zV3hrOUFEUVBHdEtrZDRzMFdPU2RBdzkvZlVoOUhrdmFhdGNlSFliZnhpb2pxTTJZRmladmFna0pIK0Uvd0R0VW45SERaMXFjZjhBNlhQL0FLMW9JbnJCTDNxeGdBZ08waitJOXJBL0hOV0V6Q0pKRjVsKzR2S3VSbkdLcjY0NVpkVHVEa0U5dXNYVHdiSit0VDdVWVkwRThySXBkQ1FqNDNBb0txMXVVdnJkd3hQZ052ZFhBWE5zbHE1TGp0VVBOaklCK0ZJdGRtWVhGOU1wWUZGMks5YzkxUUc4dW5hY2UwU3luZHM5YTU1YzMxajFlR1h4WS9sK3BMZUdhUzZKVWtrNzU4S1FlclN2S0FaVGttbHVuM0l1cmRKZjJpdUc5OUUwVEJ3M05qZXVrbW5tdHQ1cDZzTkZES015Uzh6WTZOakZhNmpwNzJlcFdrUWtaMGJHU3h6dm1uSFNXYnN3YzgzeDZVNFhWa1pKVXVEdnk3Z0dpRmtFNFdKVUo2REhTcmR1cHM2Sk9CbmxOdjMrNnFXdDNMU0VFWU9maFZ6VFdNbXBhSmVXU1N0RTh0cVVXVmVxa3IxK2xCR0VRTWVZSGFsV3VyemVqVFZWR01rLy93QjBxaDM0dTRvMFcvYTN1N21UbWpPQ3NneXB4NzZ0dlROY200azlDMnAzc2thUnlDUm95RTZIbFpOL3hvSzVueUlJK1Rvdk56TVc2QUhvSzR4eXJJd1lEQkIySnA0c2JSWjRnU0F5a25JWWVPS2NZOUd0MklMUktBTnhzQlFjYldUdFlJejNjdU1VMXpsb3BKeGtjenlIcDFJL2xVcWkwK0dQb3VCanBqYWtzdkRsdE5QSk9aWmdYSllnRVkrbFN6YmVHZnB0RmhrREkySGNLMkdDQnR2VWxYaHEyemd5VEtldTVINGJWbitqbHBnL2F6NDk0L0txd2krTUVuYnc2VTZhRDdWK3c1aUIyYmRCbndwMEhEbHBqUGJ6bkhka2JmaFhXMzBtQ3dtTWtja2pFakJERVlIVHdIamdVRzU1QTQ1ZVlkK2NaLzEvNzFvWHlwSVVxMiszVTQvMXY4YTZFRmlBRDdQZUNEbnIxcldRTUdIczV5TTV4OGYrVkIwaWN4bkNIZGpndVJ6ZjZIV3BoeEhJVHdsb3pqbVVFTGtFZjNPK29jaFVmWmxTTTVHMndQOEFyTlM3aVovL0FJUzBRZ2s4d0h4OWlnaXF1eXVHRGtNT2hCNmU2bSsvc0JNcGtoQUVneVNnR0ZmM2VCK3RLUXg5bzVHMk90YjU1d1ZCTzQ2MEVNdkpwWU96RXZNbVg1R1R2QUlOTWswbkxDa0ErNkFDU0RuTlQvVWRKZzFPTUpKN0VpYkNWUnY3ajVWRkp1RzVMZVF4dXpIQjJaUnN3OFJ0VXMyNlk1K3NzbjAyeEg3TVkrbEtJbFBObk85TzF0dy9IMmE4enljM2Z1TUNsUTBLM0EvV3krZU1WWE14dkt5cGhUVDNvZDlPdHRNaG5rS0YxeWhZNE8zaFhHYlNiWkdSV21sSE41ak5LYld5aXQxSVdTVGxmY2x0K2c4cUJ6aXVDMDZNWGtqbUI5bVdKK1YxejRFVllPajYzclN3a3oyMFdvUkQ3clJuc3BjWUdCeS9kUGZ2a0dxNnQzQ01DUU4vTDhLbk9nM2I4MjhtQXdJVXQreHQzZTdOQktkTjRnMC9VSkNycWJTNVJnaGh1MUtPR1BRTG5aaWZJbW5xbWkzbGpOd1N5eFNGbkdNWVBUdjkrNHAzb0NpaWlnalhFNnMweWdrOGpXNVhIbnpqUDRFMUJlUDUwc3VHVEVuM3BUZ0RmcWVwK1cxVDdYNWd1b1dzTHFBanhzUTU3am5wK0ZWaDZVNUdTMjA2Qm05cG1MRWVBd2NEOGFDTytqNnhNbXVldG5ZUWxVSGp6TWNmVE5XZXRzSDBhL2pQVkdWdmhrMUZ2UjVZTkhwOXRJdy9YenRQMDZCUnlqOFFhbjBVSVByY0lHZTFqUHpGQXhMUDJ0cmJ1K2VTWmV4Y2o5bHh0ekQ4S2NYak52dytrU2pNa2poRlB2cHFzMUUybjNsc3g5cU05b244eFR2cGg5ZnQ3UW5jdzdON3gzMEdVajlXdHJ0QVFSRGJpUElIei9HbXlmN0hoS054MWRtSHpOUFYwT1RUTlJrd1J6RHFmZUthTlZqeHduQUUvWWt5Y1VGR2FuQzFycVZ4R2RzT1NOL0hjZldyU2p2VGU2SGFOekQ3V0JlVnozUGpwOHh0NTFBdUw3VXhYc055QnRNbUNmTmFVY1AzNU9pdkF6WUNTSGxiUFR2K3RCSUh1dldyMkdadnZPTXllOWRqOUtmZURnVHhMWXR1VjdiYnkyTlEvVG05WXVwQzJ3UUZ2aWV2MHFjOEZBSFdiWTQyN1lFZkkwRmc2bmd4emc3N0FnZUpHLzhBS283YjRPa3U0VDdNb1dZamJtR09ueDZlNFV1NGgxU08ya25RRWN5akh4d0RUUGFYZ3V1Rkw0aHdJNHc0YkdOdHM0OHNENjBGUDhQeG05NHZ0cEpQYkFtTXplNFpQNVZkVm5iOW5ZV2hJM0I3VDRtcXo5R3RpTG5VYjJZNHlrS3hqL2pPK1BsVnZYRVlqVUFEQUEyOHFCazFGdlUrSlVtNkpLTW56RFZ0WU42cGVYbG9NZTE5ejNWbmlHTXZhMjF5QWVkY0thNE0vTk5hWGlBL2RBZWdmSUxZUm16aC9jR2NEdXBCWVplODFOaDNoZ1BoVDVibFpabzVWNzk4MHk2WkdSZTNhSHZsYjhhQ3ErTGJjU2FkSytEenhTQnMvR21UZy9VUFZkUW50MlljazBlNDh4MHFaNjViQ1VYMXZnRG1EZGZMSnF0Tk1mc05YakIyM0ttZ21WNWRNOHp4ZysyUUZCODg3VllQbzJCL1R0enpkZlZnUC9XdFZiTElFMUszTEhibUI2MWFYbzBmdE9JTHR1NHdELzhBTmFDS2FReVhXdDJ1UnRQZkZpUEhMWStnRlRuV3JneGFaS3g2NEpOVjd3UGROZmEvYnRLQUNzMDJBUDdwYkIvQ3BWeFBkbjlEdTJjY3lFMEZPYTlmOHR0S0FEenMzS0NQUC8ycUdrbGpudk5URFVMZUs4dG93eFZUejh6bnZJR2FRTERaMjQ1WUlBVy9mZmNtcEpJM2xuY3BKZmpscFRHM3NXbExjcDVzZ0h2cGNiZ3lFQW5wVGZmTWlSY29VYzNmU3pUcmZ0OU9TNFJBNTVpckR3eFZZT09tYW0xck1WNXRtNjFNbDFOWHNobjkzQkhmVUJFUDJvNW9nUGhVczBWclVxaXZiSVNUam1id29GdG8yL01Ua0hwVjU2ZmR4UVdEVFNON0tybmYzYjFVNlBvNndxb3RvUnlqZnI3UnJoclBHTTM2UDlVZ2ZCWVlPTzRlRkJIT0kxdGRVbXVXa1FNclNzeW53R1NhbWZCVmcwdm9QMVcwdCtkajZ6TVJqcnNVWS9TcXd2NzFsanhra21yajlGQTUvUmpjcXgyZTdtQko4d2dvSXBwRUhKcHNkeE12SzBqZlpMayswcDN6VHNwQU93N2hqek5NcVN1bW9pemtsYVZJQ1ZRRTdBS2U2bjhLckJteGhldWU3RkJqN294Z2sxaFpjdnlZSkFIVUdzeVJNRUxad2NaNVNLNTRPRHNjK1kvblFkK2R1aUhiNTFnRDJjWVB4RzljVWZBMlBYNFYwVml3emdzZS9Cb0FuR1FUeTR6Zy93QXF3VGhCdm5JNm5yOHFDZmNNYmN0YUFnRTV4bkI2MEdnNU04ekFnWS8wUGxYTW9TZnZnSGJyMThmeStWZE9YMmxBR1d5ZDY1OHc2a0gzWW9NdkNjOHlqR01mRDRWTHVJRlljSTZHR1BQeXF2TnQ5NzdPb2h6OXhiYnI0VktlSjc0V1hDL0RuTS9La3pDTWhoMSt6L0NnaXVPYlBOakhjTWRhMC9heHk4dWVnOGE3elFZNW5CQ2dmUEZKK1ZTVkkzeDMwR1ZsSDNOeGtlRmRTQThaamtCZFNjanhYekZDQk00T0NCMXdkeldIQWRSM1p4MzBDQ2Uza3R4a01YakoyZm9QY2ZDa3JTa0hMTm5hbmpsSlU1WEtzTjg5Q0tSWGVuaFVhYTN6MmY3UzR5VndOL2hRSkJjY25LTUFIdXJET25VYjRwT010c3B3TTV6L0FLOHEyRGN2VEhUT1Nlb0hoUUxyTzJrbmtRUSswVGpZSDRWTXRJMHk0aWdMU3pyR0NRQ3JibkgralVRc3B1eVFnQTV4MXowMzYvaFRzTlRsN1BzNHBlVlJsY0U5VHRRV0ZhV2lKTmJzMDZIMmc3RUlSa2dnZnpxUVZWT2hheGQvcExUb2VkaWhrVUU1OFdXcldvQ2lpaWdoM0Z0NExmWDlJUnNGU0dJQjhTY2Z6cXR2U3dXL1M5Z0dPY3dNMk0vM3F1KzYwdXh2YmlHNHVyV09hYUQ5VTdqZFBkU0xVT0ZOQjFhVkpOUTBtMnVYUmVWV2tCSkF6bkhXZ2luQittbTAwVzBSd2N4VzZyN3MrMGZ4YW5sWEVWekdjYlp3YWtVZGpheElFamdSVkFBQUE4TmhXRHA5bVRrMjZFMEZkbFRZNjJ5SFpYT0Q3alMvU3Y4QVk3MldJNTVHSklQdnFZVGFOcHR4SUpKcktKM0hSaURtdGhwVmdHREMwaXlPL0JvR1BWSS82a3ZQN3cvblRYY0tINFptSVhPQUdGVFY3TzJraU1Ud295SHFwNkd1UTBxd0Z1YmNXa2ZZa1lLWU9LRHoxeGRidE5wSWwzUFpPQUFPNFkzcU84T3lyL3ROdXgrOE9ZZWZqWHBtYmhIaDY0aWFLYlI3VjQyKzhwQndmeHBKRjZQZUVJSDU0dUhyRkd4aklWdnpvS0cwMlpvN3U0UW5ydHZWaThHNUd0V0FBeURMa240R3B3dkF2Q3F1WFhRYk1NVGtubGI4NmNMWFFkS3NwVWt0ckNHSjBPVlpRY2o4YUN0ZU03a3J4UmZRSzJBM0psZkU4b29VVFdmQytyUWNvN0pyQ1YyYi93QzZRUjlLc2U2NGMwYTl2R3ZMblRiZVc0WWdtUmdja2dZSGY1Q3QzMEhTcExlV0JyQ0V4U3J5eUlRY01QQTcwRldlaVcwUHF0OWRzdjJaa1ZRM2p5Zy8vd0NoVmdTL2FsaFRwcDJoYVZwTnMxdnA5aERiUXMzT1VqQkFKOGV2a0tVK3BXMmM5Z21hQ0xUeENhMmt0bXpuSkswMGFhQ3lTVzdkVU93cWZtd3RHZm1OdWhieHJrbWs2ZkhJMGlXa1N1M1VnSGVnYU5ObTVVQ01jWTJGSkxST1RYTGxjZFJ6VkpsMCswUTVXM1FIcnRRTlB0Qk9aaGJwMnBHQzNmaWdxSFhDWXRWdUF3TzVZVlZHclF0WmF0SU1FZTJHRmVxcmpoelJycVF5VDZiYnlPM1ZtQnlmeHBCYzhBOEpYa25hWEhEOWxJL1RMS2Z6b1BQRjVNWHU3WmxCUE1QNVZhdm9tbVY5WnVWTEF5QzNHUjRlMnRUUmVCT0ZWWkdYUWJJR1A3cDVUdCtOTGRNNGMwYlJydVM3MDNUWUxXNGxYbGVTTUVGaG5PT3ZpQWFEejk2UGJpNFhpMlZDVjdPRkxsK200M1A1MDljZGE5RGFXeHRZMlZwaUNHVWZzOUt0Mno0SzRhMCs0ZTR0TkZ0SVpuQkRPaW5KQjY5L2ZYSzU0QjRUdkpXa3VkQXNwWFk1TE1HSkorZEI1WmVSekdNbmRxd3VVeXhIUVorTmVvditqamczL3dBTjJIOExmblFmUnp3YVFRZUhMREI2K3kzNTBIa3FWbmxiY2UrcFJ3NE96MDREbFB0WlA0MTZLLzZNK0NmL0FBenAvd0RDMzUwcGg0QzRUdDBDUmFCWklvNkFLMzUwSG5xUzM5ck9EV1VrbGpHRkdLOURuZ25oZzlkRHMvNFQrZFkvb053di91S3ovaFA1MEhuczNFaWpkalNOM1krMWs1ODY5SG5nVGhWdXVnMlIvd0NGdnpyVThBOEpucncvWmZ3dCtkQjVjdW5hV2MrVzFYbjZObU52Nko3aHlOMXZITy8rS09wWi93QkhQQjJjL3dCSExEK0Z2enAzczlDMHV3MDF0T3RMQ0dHelppelFvRHlrbkcvWHlIeW9LVTFGUmFjWVhLdi9BTnBLV0JBMnczaFQxRTNNb3gwWFlaNmJISDhxc3E0NFcwSzZuN2VmU3JhU1hBSE93T2NaejQxMFRoN1I0MTVWMDZBTDRZUGpueG9LemxZeUFuQjJIK3Mxd0xkWFpXejRuWWtlWXEwMjRkMFp1dW13SDRIODZ4L1J6UnM1L1JzR2NZNkg4NkNxbFp6azVPRDM0N3ZBVjNMbGM4cnRrZXlEamIzMVozOUc5Ri8zYkI4aitkQjRiMFU5ZE50K21PaC9PZ3E1bUhRNUoyMno4cTJKQzdnRW56cTBEdzVveElKMDIzeU44NFA1MWdjT2FNQmdhYkJqM0g4NkNyMkF4bkJ5ZkRwV2tudDU3Z1J1ZkNyVEhEZWlnQURUYmZBNmJIODZEdzNvcE9UcHR2OEFJL25RVk5saVNDMmNIT01lRk92cEhCSEFYRFJ6dXJxYy93RGwxWVo0YTBRbkoweTN6N2orZGRiN1F0SzFLemhzNzJ3aG50NGYxVWJnNFRiRzIvaFFVenBlcEhWTE5lWVlsanh6QURxT2xLRUdIOGo0VmFkdHdmdzdac1d0dEh0WWkyeEtnNy9qWFgrakdoNHgraTdmSHVQNTBGVTU1R0tnTVQxSUhkVzRKS2hnblRwdGpOV24vUmpRL3dEZGR2OEFJL25XMzlHOUcvM2JiL0kvblFWZW9WUGFiMmxHQmcvNjZWaU15eG9Xa0lEQmlWWkQxWFBzOWZ4cTB2Nk9hTi91MjMrUi9Pc0hoelJqMTAyMytSL09ncVc1MHRMbFRMYkJJNVd6elJqbzNtRDNlNm1ZeE1qbm5SZ1ZQdEJ0aU1WZW45SGRIMi9xMjMyOGorZGFTOE1hSE8vUExwZHM3WXhrZzUrdEJTcUtwQUJCSTZEQjdqWFJuWitYbUJHQ0Q0K05YSC9SUGgvL0FIUmEvd0FKL09nOEo2QWV1a1d2eVA1MEZWNk5NejY1cGlndG4xbU1IdysrS3UwOWFhSWVGOUNnbWptaTB1M1NTTmc2TUFjZ2pvZXRPOUFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUWYvL1omcXVvdDsgYWx0PSZxdW90O1lvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IGVtYmVkZGVkIGltYWdlcywgc29ycnkmcXVvdDsvPg0KPGgzPlN0eWxlc2hlZXRzOjwvaDM+DQo8cD5UaGlzIG1vZHVsZSBhbHNvIHdvcmtzIHdpdGhpbiBzdHlsZXNoZWV0cywgaWYgdXNpbmcgdGhlIHtjbXNfc3R5bGVzaGVldH0gdGFnIGluIHlvdXIgcGFnZSB0ZW1wbGF0ZS4gIEJlY2F1c2UgdGhlIHNtYXJ0eSBzeW50YXggaXMgc2xpZ2h0bHkgZGlmZmVyZW50IGluc2lkZSB0aGUge2Ntc19zdHlsZXNoZWV0fSB0YWcgeW91IHV0aWxpemUgdGhlIG1vZHVsZSB1c2luZyB0aGUgW1sgYW5kIF1dIGRlbGltaXRlcnMuICBpLmU6IDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz5kaXYuaGVhZGVyIHsgYmFja2dyb3VuZDogdXJsKFtbU21hcnRJbWFnZSBzcmM9JiMwMzk7dXBsb2Fkcy9waWN0dXJlLmpwZyYjMDM5OyBub3RhZz0xXV0pOyB9PC9jb2RlPjwvcD4NCjxwPkJlY2F1c2Ugc3R5bGVzaGVldHMgYXJlIGdlbmVyYXRlZCBvbiBtb2RpZmljYXRpb24gYW5kIHN0b3JlZCBpbiB0aGUgZmlsZXN5c3RlbSB0aGVyZSBpcyBubyB3YXkgdG8gZGV0ZXJtaW5lIGR1cmluZyB0aGUgcmVxdWVzdCB3aGljaCBicm93c2VyIGlzIHJlcXVlc3RpbmcgdGhlIHN0eWxlc2hlZXQsIHRoZXJlZm9yZSBlbWJlZGRpbmcgd2lsbCBiZSBkb25lIHN0cmljdGx5IGJhc2VkIHVwb24gdGhlIHByZXNlbnNlIG9mIHRoZSBub2VtYmVkIHBhcmFtZXRlci4gIElmIHlvdSBoYXZlIGNob3NlbiB0byBlbWJlZCBpbWFnZXMgZGlyZWN0bHkgaW50byB5b3VyIHN0eWxlc2hlZXRzLCBZb3UgbWF5IG5lZWQgdG8gYWRkIGFkZGl0aW9uYWwgc3R5bGVzaGVldCBzdXBwb3J0IGZvciB0aGUgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBlbWJlZGRlZCBpbWFnZXMuICBpLmU6ICBJRTYuPC9wPg0KPGgzPkF1dG9tYXRpYyBQcm9jZXNzaW5nPC9oMz4NCjxwPlRoaXMgbW9kdWxlIGluY2x1ZGVzIGEgc21hcnR5IGJsb2NrIHRhZyBjYWxsZWQgPGNvZGUgc3R5bGU9JnF1b3Q7Y29sb3I6IGJsdWU7JnF1b3Q7PntzaV9jb252ZXJ0fTwvY29kZT4gdGhhdCBjYW4gc3Vycm91bmQgYSBibG9jayBvZiBodG1sLCBvciBvdGhlciBzbWFydHkgdGFncyB0byBhbGxvdyBhdXRvbWF0aWMgaW1hZ2UgcHJvY2Vzc2luZy4gIFRoaXMgdGFnIGNhbiBiZSB1c2VkIGxpa2U6IChmb3IgZXhhbXBsZSk6PC9wPg0KPHByZT48Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e3NpX2NvbnZlcnR9e2NvbnRlbnR9ey9zaV9jb252ZXJ0fTwvY29kZT48L3ByZT4NCjxwPlRoaXMgd2lsbCBhbGxvdyB5b3VyIHVzZXJzIHRvIGluY2x1ZGUgaW1hZ2VzIGludG8gcGFnZXMgdXNpbmcgdGhlIG5vcm1hbCB3eXNpd3lnIHRvb2xzLCBhbmQgdG8gaGF2ZSB0aGVtIGF1dG9tYXRpY2FsbHkgcHJvY2Vzc2VkIGFuZCBlbWJlZGRlZCBpbnRvIHRoZSBwYWdlIHVzaW5nIHRoZSBtYWdpYyBvZiB7U21hcnRJbWFnZX0uIGkuZTogU2VlIHRoZSBmb2xsb3dpbmcgY29kZTo8L3A+DQo8cHJlPjxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57c2lfY29udmVydCBmaWx0ZXJfZ3JheXNjYWxlPTEgZmlsdGVyX3dhdGVybWFyaz0xfXtjb250ZW50fXsvc2lfY29udmVydH08L2NvZGU+PC9wcmU+DQo8cD5UaGUgYWJvdmUgY29kZSB3aWxsIGNhcHR1cmUgYWxsIGltYWdlIHRhZ3MsIGFuZCBjb252ZXJ0IHRoZW0gdG8gZ3JheXNjYWxlIGFuZCB0aGVuIGFwcGx5IHRoZSB3YXRlcm1hcmsgKGFjY29yZGluZyB0byB0aGUgc2V0dGluZ3MgaW4gdGhlIENHRXh0ZW5zaW9ucyBtb2R1bGUpLiAgQWxsIG9mIHRoZSBwYXJldGVycyBhdmFpbGFibGUgdG8gdGhlIDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57U21hcnRJbWFnZX08L2NvZGU+IHRhZyBhcmUgYXZhaWxhYmxlIHRvIHRoaXMgdGFnIChmb3IgaW1hZ2Ugc2NhbGluZyBldGMuKS4gIEFkZGl0aW9uYWxseSwgdHdvIG5ldyBwYXJhbWV0ZXJzIGhhdmUgYmVlbiBpbnRyb2R1Y2VkOiA8c3Ryb25nPm1heF93aWR0aDwvc3Ryb25nPiBhbmQgPHN0cm9uZz5tYXhfaGVpZ2h0PC9zdHJvbmc+IHdoaWNoIGNhbiBiZSB1c2VkIHRvIHNldCBhIG1heGltdW0gc2l6ZSBmb3IgaW1hZ2VzLi48L3A+DQo8ZGl2IHN0eWxlPSZxdW90O21hcmdpbi1sZWZ0OiAzZW07JnF1b3Q7PjxzdHJvbmcgc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+Tm90ZTo8L3N0cm9uZz4NCjxwPlRoaXMgdGFnIHBhcnNlcyB0aGUgSFRNTCBjb250ZW50IGJldHdlZW4gdGhlIHN0YXJ0IGFuZCBlbmQgdGFncyB0byBmaW5kIHRoZSA8aW1nPiB0YWdzLiAgSXQgdGhlbiB3aWxsIG91dHB1dCBzeW50YWN0aWNhbGx5IHZhbGlkIEhUTUwgZm9yIHRoZSBzdWJzZXQgb2YgY29kZSBpdCB3YXMgcHJvdmlkZWQuICBUaGVyZWZvcmUgaXQgaXMgaW1wb3J0YW50IHRoYXQgdGhlIHNuaXBwZXQgb2YgSFRNTCBwYXNzZWQgdG8gdGhpcyB0YWcgYmUgaW50YWN0IGFuZCBhcyBjbG9zZSB0byB2YWxpZCBhcyBwb3NzaWJsZS4gIDxzdHJvbmc+VXNlIHdpdGggY2F1dGlvbi48L3N0cm9uZz4NCjwvZGl2Pg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0IG9yIGJ1eSBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSB2aXNpdCBjYWxndXkmIzAzOTtzDQptb2R1bGUgaG9tZXBhZ2UgYXQgPGEgaHJlZj0iaHR0cDovL2NhbGd1eTEwMDAuY29tIj5jYWxndXkxMDAwLmNvbTwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yLCBjYWxndXkxMDAwLCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LjwvbGk+ICANCjwvdWw+DQo8aDM+UmVxdWlyZW1lbnRzPC9oMz4NCjxwPlRoaXMgbW9kdWxlIG1ha2VzIGV2dGVuc2l2ZSB1c2Ugb2YgdGhlIEdEIEltYWdlIHByb2Nlc3NpbmcgbGlicmFyeSB0byBkbyBpbWFnZSBtYW5pcHVsYXRpb24uICBBZGRpdGlvbmFsbHksIHRoZSB7c2lfY29udmVydH0gcGx1Z2luIG1ha2VzIGV4dGVuc2l2ZSB1c2Ugb2YgdGhlIHNpbXBsZXhtbCBhbmQgWE1MRG9tIGNsYXNzZXMgYnVpbHQgaW4gdG8gcGhwLiAgVGhlcmUgbWF5IGJlIG90aGVyIGFkZGl0aW9uYWwgcmVxdWlyZW1lbnRzLiAgSWYgeW91IGFyZSBleHBlcmllbmNpbmcgZXJyb3JzIHlvdSBzaG91bGQgZW5zdXJlIHRoYXQgZXJyb3IgcmVwb3J0aW5nIGlzIGVuYWJsZWQsIGFuZCB0aGF0IHlvdSBoYXZlIGFuYWx5emVkIHlvdXIgZXJyb3IgbG9ncy48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmYW1wO2NvcHk7IDIwMDgsIFJvYmVydCBDYW1wYmVsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj4mYW1wO2x0O2NhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcmYW1wO2d0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPg0KPHA+SG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkDQphcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUNCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMNCk1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiANCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPg0KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQpidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCk9yIHJlYWQgaXQgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5vbmxpbmU8L2E+PC9wPic7DQokbGFuZ1snaW5mb19hbGlhc2VzJ10gPSAnVW0gemFobHJlaWNoZSB1bmQgaCZhdW1sO3VmaWcgdmVyd2VuZGV0ZSBPcHRpb25lbiB6dSBrb21iaW5pZXJlbiBrJm91bWw7bm5lbiBhbGlhc2Ugdm9uIGFsaWFzMSBiaXMgYWxpYXM1IGR1cmNoIFNtYXJ0SW1hZ2UgT3B0aW9uZW4gdmVyd2VuZGV0IHdlcmRlbi4nOw0KJGxhbmdbJ2luZm9fY3JvcHRvZml0X2RlZmF1bHRfbG9jJ10gPSAnU3RhbmRhcmQgcmljaHR1bmcsICBmJnV1bWw7ciAmcXVvdDtjcm9wIHRvIGZpdCZxdW90OywgZGllcyB3aXJrdCBzaWNoIGF1ZiBhbGxlICZxdW90O2Nyb3AgdG8gZml0JnF1b3Q7IG9wZXJhdGlvbmVuIGF1cywgYXVzZ2Vub21tZW4gZmlsdGVyX2Nyb3B0b2ZpdCBBdHRyaWJ1dCAmdXVtbDtiZXJzY2hyZWlidCBlcy4gU3RhbmRhcmQtRWluc3RlbGx1bmcgaXN0ICZxdW90O2NlbnRlciZxdW90Oy4nOw0KJGxhbmdbJ2ltYWdlX3VybF9oYXNjYWNoZWRpciddID0gJ1omYXVtbDtobHQgZGllIFVSTCBvYmVuIGYmdXVtbDtyIGRhcyBad2lzY2hlbnNwZWljaGVyLVZlcnplaWNobmlzIChfU21hcnRJbWFnZSknOw0KJGxhbmdbJ2ltYWdlX3VybF9wcmVmaXgnXSA9ICdCaWxkLVVSTC1QciZhdW1sO2ZpeCc7DQokbGFuZ1snaW5mb19jYWNoZV9hZ2UnXSA9ICdNYXhpbWFsZXMgQWx0ZXIgZWluZXIgRGF0ZWkgKGluIFRhZ2VuKSBiZXZvciBlcyBlbnRmZXJudCB1bmQgbmV1IGVyemV1Z3Qgd2lyZC4gTiZ1dW1sO3R6bGljaCwgd2VubiBkaWUgRWluc3RlbGx1bmdlbiB2ZXImYXVtbDtuZGVydCB3dXJkZW4gb2RlciB1bSBkaWUgR3Imb3VtbDsmc3psaWc7ZSBkZXMgZ2VudXR6dGVuIFNwZWljaGVycGxhdHplcyB6dSBrb250cm9sbGllcmVuLic7DQokbGFuZ1snaW5mb19lbWJlZF9tb2RlJ10gPSAnVGhpcyBzZWxlY3Rpb24gZGV0ZXJtaW5lcyBob3cgdGhlIHtzbWFydGltZ30gdGFnIHdpbGwgZ2VuZXJhdGUgb3V0cHV0LiAgSWYgJnF1b3Q7bm9uZSZxdW90OyBpcyBzZWxlY3RlZCBubyBpbWFnZSBlbWJlZGRpbmcgd2lsbCBiZSBwZXJmb3JtZWQuICBJZiAmcXVvdDtzbWFydCZxdW90OyBpcyBzZWxlY3RlZCB0aGVuIHRoZSBzeXN0ZW0gd2lsbCBkZWNpZGUgYmFzZWQgb24gdGhlIGltYWdlIHNpemUsIHR5cGUsIGFuZCB0aGUgYnJvd3NlciB0aGF0IGlzIHJlcXVlc3RpbmcgdGhlIGltYWdlLiAgT3RoZXIgb3B0aW9ucyBpbmNsdWRlIGFsd2F5cyBlbWJlZGRpbmcgYmFzZWQgb24gdGhlIGltYWdlIHNpemUsIG9yIHRoZSBpbWFnZSB0eXBlLic7DQokbGFuZ1snaW5mb19lbWJlZF9zaXplbGltaXQnXSA9ICdXZW5uIGRpZSBPcHRpb24gZiZ1dW1sO3IgQmlsZC1FaW5iZXR0dW5nIGR1cmNoIGRpZSBCaWxkZ3Imb3VtbDsmc3psaWc7ZSBiZXN0aW1tdCB3aXJkLCBnZWJlbiBTaWUgZGllIG1heGltYWxlIEdyJm91bWw7JnN6bGlnO2UgKGluIEtpbG9ieXRlKSBmJnV1bWw7ciBlaW5nZWJldHRldGUgQmlsZGVyIGFuICAoMzIgd2lyZCBlbXBmb2hsZW4pLic7DQokbGFuZ1snaW5mb19lbWJlZF90eXBlcyddID0gJ1dlbm4gZGllIE9wdGlvbiBmJnV1bWw7ciBCaWxkLUVpbmJldHR1bmcgZHVyY2ggQmlsZC1UeXAgYmVzdGltbXQgd2lyZCwgZ2ViZW4gU2llIGR1cmNoIEtvbW1hIGdldHJlbm50ZSBFcndlaXRlcnVuZ2VuIGRlciBEYXRlaWVuIGFuLCBkaWUgZWluZ2ViZXR0ZXQgd2VyZGVuIHNvbGxlbi4gR3JvJnN6bGlnOy0vS2xlaW5zY2hyZWlidW5nIHdpcmQgbmljaHQgYmVhY2h0ZXQuJzsNCiRsYW5nWydpbmZvX2ltYWdlX3VybF9oYXNjYWNoZWRpciddID0gJ1dlbm4gSWhyIENETiBkaXJla3QgYXVmIGRhcyBad2lzY2hlbnNwZWljaGVyLVZlcnplaWNobmlzIHZlcndlaXN0LCBrJm91bWw7bm50ZSBkaWVzZSBPcHRpb25lbiBoaWxmcmVpY2ggc2Vpbi4nOw0KJGxhbmdbJ2luZm9faW1hZ2VfdXJsX3ByZWZpeCddID0gJ1VSTCBkZXIgQmlsZGVyLiBTdGFuZGFyZG0mYXVtbDsmc3psaWc7aWcgaXN0IGRpZXMgZGllIFVwbG9hZC1VUkwuIFZlcndlbmRlbiBTaWUgZWluIENETiAob2RlciBtZWhyZXJlIERvbWFpbnMsIGRpZSBhdWYgZGFzIHNlbGJlIFZlcnplaWNobmlzIHZlcndlaXNlbikgayZvdW1sO25uZW4gU2llIGhpZXIgZWluIGVpbmUgYW5kZXJlIFVSTCBmZXN0bGVnZW4uJzsNCiRsYW5nWydtYXhfY2FjaGVfYWdlJ10gPSAnTWF4aW1hbGVzIEFsdGVyIGRlciBEYXRlaWVuIGltIFp3aXNjaGVuc3BlaWNoZXIgKFRhZ2UpJzsNCiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0VpbiBNb2R1bCB6dXIgc2NobGF1ZW4gRXJ6ZXVndW5nIHZvbiBCaWxkZXJuIGYmdXVtbDtyIENNUyBNYWRlIFNpbXBsZSc7DQokbGFuZ1snbXNnX2FsaWFzZXNfdXBkYXRlZCddID0gJ0FsaWFzZSBha3R1YWxpc2llcnQnOw0KJGxhbmdbJ21zZ19jYWNoZWNsZWFuZWQnXSA9ICdad2lzY2hlbnNwZWljaGVyIGdlbGVlcnQuICVkIERhdGVpZW4gZW50ZmVybnQuJzsNCiRsYW5nWydtc2dfY2FjaGVyZW1vdmVkJ10gPSAnWndpc2NoZW5zcGVpY2hlciBlbnRmZXJudCc7DQokbGFuZ1snbXNnX3ByZWZzdXBkYXRlZCddID0gJ0VpbnN0ZWxsdW5nZW4gYWt0dWFsaXNpZXJ0JzsNCiRsYW5nWydub25lJ10gPSAnS2VpbmVyJzsNCiRsYW5nWydvcHRpb25zJ10gPSAnT3B0aW9uZW4nOw0KJGxhbmdbJ3BhcmFtX2FsaWFzJ10gPSAnVGhlIFNtYXJ0SW1hZ2UgYWRtaW4gcGFuZWwgYWxsb3dzIGNyZWF0aW5nIG51bWVyb3VzIGNvbW1hbmQgYWxpYXMgdG8gY29tYmluZSBhIGZyZXF1ZW50bHkgdXNlZCBwYXR0ZXJuIG9mIGFyZ3VtZW50cyBpbnRvIG9uZSBuYW1lLiAgVG8gdXNlIHRoZXNlIGFsaWFzZXMgdXNlIGFuIGFyZ3VtZW50IG9mIHRoZSBmb3JtIGFsaWFzIyM9YWxpYXNfbmFtZSBpLmU6ICBhbGlhczE9Zm9vIGFsaWFzMj1mb28uJzsNCiRsYW5nWydwYXJhbV9hbHQnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSBhbHQgYXR0cmlidXRlLiAgTm90ZSwgaWYgdGhpcyBpcyBub3Qgc3BlY2lmaWVkIGEgdmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoaXMgYXR0cmlidXRlIHNvIHRoYXQgbW9zdCBnZW5lcmF0ZWQgaW1nIHRhZ3Mgd2lsbCB2YWxpZGF0ZS4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBhdXRvIGNhbGN1bGF0aW9uIHdpdGggdGhlICZxdW90O25vYXV0byZxdW90OyBwYXJhbWV0ZXInOw0KJGxhbmdbJ3BhcmFtX2NsYXNzJ10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIGFsbG93cyBzcGVjaWZ5aW5nIG9uZSBvciBtb3JlIGNsYXNzZXMgdG8gaW5jbHVkZSBvbiB0aGUgdGFnLiAgaS5lOiBjbGFzcz0mcXVvdDtmYW5jeWJveCB0aHVtYm5haWwmcXVvdDsnOw0KJGxhbmdbJ3BhcmFtX2ZpbHRlcl9ibHVyJ10gPSAnKGlyZ2VuZHdhcykgR2ViZW4gU2llIGVpbmVuIGJlbGllYmlnZW4gV2VydCBlaW4gZiZ1dW1sO3IgZGllc2VuIFBhcmFtZXRlciB6dW0gSGluenVmJnV1bWw7Z2VuIGVpbmVzIFdlaWNoemVpY2hudW5nc2ZpbHRlciBhdWYgZGFzIEJpbGQnOw0KJGxhbmdbJ3BhcmFtX2ZpbHRlcl9icmlnaHRuZXNzJ10gPSAnKEdhbnp6YWhsKSBFcmgmb3VtbDtoZW4gU2llIGRpZSBIZWxsaWdrZWl0IGRlcyBiZWFyYmVpdGV0ZW4gQmlsZGVzIGR1cmNoIGRlbiBhbmdlZ2ViZW4gR2FuenphaGwtV2VydCc7DQokbGFuZ1sncGFyYW1fZmlsdGVyX2NvbG9yaXplJ10gPSAnKHIsZyxiWyxhbHBoYV0pIC0gV2llIGZpbHRlcl9ncmV5c2NhbGUsIGplZG9jaCBrJm91bWw7bm5lbiBTaWUgZGllIEZhcmJlIHVuZCBkZW4gQWxwaGEtV2VydCBiZXN0aW1tZW4nOw0KJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jb250cmFzdCddID0gJyhHYW56emFobCkgVmVyJmF1bWw7bmRlcnQgZGVuIEtvbnN0cmFzdCBkZXMgQmlsZGVzIHVtIGRpZSBhbmdlZ2ViZW5lIEdhbnp6YWhsJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfY3JvcCddID0gJyhwZXJjZW50WyxoX2FsaWduLHZfYWxpZ25dKSAtIFBlcmZvcm0gY3JvcHBpbmcgb24gdGhlIGltYWdlIHNwZWNpZmllZC4gQ3JvcCBwYXJhbWVldGVycyBhcmUgc3BlY2lmaWVkIGFzIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgcGFyYW1ldGVycy4gIFRoZSBmaXJzdCAocmVxdWlyZWQpIHZhbHVlIGlzIGFuIGludGVnZXIgcGVyY2VudGFnZSBvZiB0aGUgb3JpZ2luYWwgaW1hZ2Ugc2l6ZS4gIFRoZSBvcHRpb25hbCBzZWNvbmQgYW5kIHRoaXJkIHBhcmFtZXRlcnMgYXJlIG9uZSBvZiBsLGMsciAobGVmdCxjZW50ZXIscmlnaHQpIGFuZCB0LGMsYiAodG9wLGNlbnRlcixib3R0b20pIHNwZWNpZnlpbmcgd2hlcmUgdGhlIGxvY2F0aW9uIHdpdGhpbiB0aGUgc291cmNlIGltYWdlIHRvIGNyb3AgZnJvbS4gIGkuZTogY3JvcD0zMyxiLHIgdG8gZ3JhYiBhIGNyb3Agb2YgMzMlIGZyb20gdGhlIGJvdHRvbSByaWdodCBvZiB0aGUgc291cmNlIGltYWdlLic7DQokbGFuZ1sncGFyYW1fZmlsdGVyX2Nyb3B0b2ZpdCddID0gJyh3aWR0aCxoZWlnaHQpIC0gUGVyZm9ybSBhIGNyb3B0b2ZpdCBvbiB0aGUgaW1hZ2Ugc3BlY2lmaWVkLiBUaGlzIGF0dGVtcHRzIHRvIHJlc2NhbGUgdGhlIGltYWdlIHRvIHRoZSBkZXN0aW5hdGlvbiBzaXplIHdoaWxlIHJlYXRpbmluZyBhc3BlY3QgcmF0aW8sIHRoZW4gZm9jdXMgb24gdGhlIGNlbnRlciBvZiB0aGUgcmVzaXplZCBpbWFnZS4gIENyb3AgdG8gZml0IHBhcmFtZXRlcnMgYXJlIHNwZWNpZmllZCBhcyB0aGUgZGVzaXJlZCB3aWR0aCBhbmQgaGVpZ2h0IGZvciB0aGUgZGVzdGluYXRpb24gaW1hZ2UuJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfZWRnZWRldGVjdCddID0gJyhpcmdlbmR3YXMpIEthbnRlbiBpbSBCaWxkIGhlcnZvcmhlYmVuLic7DQokbGFuZ1sncGFyYW1fZmlsdGVyX2VtYm9zcyddID0gJyhpcmdlbmR3YXMpIEJpbGQgcHImYXVtbDtnZW4nOw0KJGxhbmdbJ3BhcmFtX2ZpbHRlcl9mbGlwJ10gPSAnKG1vZGUpIC0gRiZ1dW1sO2hydCBlaW5lIERyZWh1bmcgYXVmIGRlbSBhbmdlZ2ViZW5lbiBCaWxkLiBHZWJlbiBTaWUgMCBmJnV1bWw7ciBob3Jpem9udGFsZSwgMSBmJnV1bWw7ciB2ZXJ0aWthbGUgdW5kIDIgZiZ1dW1sO3IgRHJlaHVuZyBpbiBiZWlkZSBSaWNodHVuZ2VuLic7DQokbGFuZ1sncGFyYW1fZmlsdGVyX2dyYXlzY2FsZSddID0gJyhhbnl0aGluZykgQmlsZCBpbiBHcmF1c3R1ZmVuIHVtd2FuZGVsbic7DQokbGFuZ1sncGFyYW1fZmlsdGVyX21lYW5yZW1vdmFsJ10gPSAnKGFueXRoaW5nKSBWZXJzdWNodCBlaW5lbiAmcXVvdDtnZXplaWNobmV0JnF1b3Q7LUVmZmVrdCc7DQokbGFuZ1sncGFyYW1fZmlsdGVyX25lZ2F0ZSddID0gJyhhbnl0aGluZykgQmlsZCBpbnMgTmVnYXRpdiB1bWtlaHJlbic7DQokbGFuZ1sncGFyYW1fZmlsdGVyX3BpeGVsYXRlJ10gPSAnKHNpemVbLGFkdmFuY2VkXSkgUGl4ZWxhdGUgdGhlIGltYWdlLCBzcGVjaWZ5IGFuIGludGVnZXIgc2l6ZSBhbmQgYW4gb3B0aW9uYWwgYm9vbGVhbiAoZGVmYXVsdCBpcyBmYWxzZSkgdG8gZW5hYmxlIGFkdmFuY2VkIHBpeGVsYXRpb24nOw0KJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yZXNpemUnXSA9ICd0eXBlLG51bWJlclssbnVtYmVyXSAtIFBlcmZvcm0gYSByZXNpemUgb2YgdGhlIHNvdXJjZSBpbWFnZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5wLG51bWJlciAtIFBlcmZvcm0gYSBzaW1wbGUgcmVzY2FsZSB0byBhIGNlcnRhaW4gcGVyY2VudGFnZS4gIGkuZTogIHJlc2l6ZT1wLDUwIHRvIHJlc2l6ZSB0byA1MCUgb2YgdGhlIG9yaWdpbmFsIHNpemUuPC9saT4NCiAgPGxpPncsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCB3aWR0aCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPXcsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIHdpZHRoIG9mIDgwIHBpeGVscy48L2xpPg0KICA8bGk+aCxudW1iZXIgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgc3BlY2lmaWVkIGhlaWdodCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPWgsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIGhlaWdodCBvZiA4MCBwaXhlbHMuPC9saT4NCiAgPGxpPmMseCx5IC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIGN1c3RvbSBzaXplICh3aXRob3V0IHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgaS5lOiByZXNpemU9Yyw1MCw3NSB0byBjcmVhdGUgYSB0aHVtYm5haWwgdGhhdCBpcyA1MHg3NSBwaXhlbHMuPC9saT4NCjwvdWw+JzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfcmVzaXpldG9maXQnXSA9ICcod2lkdGgsaGVpZ2h0Wyxjb2xvclssYWxwaGFdXSkgLSBQZXJmb3JtIGEgcmVzaXplIG9uIHRoZSBpbWFnZSBzcGVjaWZpZWQuIFRoaXMgYXR0ZW1wdHMgdG8gcmVzY2FsZSB0aGUgaW1hZ2UgdG8gdGhlIGRlc3RpbmF0aW9uIHNpemUgd2hpbGUgcmVhdGluaW5nIGFzcGVjdCByYXRpbywgdGhlIGltYWdlIGlzIGNlbnRlcmVkIGluIHRoZSBib3ggc3BlY2lmaWVkIChlaXRoZXIgaG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgZGVwZW5kaW5nIHVwb24gYXNwZWN0IHJhdGlvIGFuZCB0aGUgZGVzdGluYXRpb24gc2l6ZSwgYW5kIHRoZSBpbWFnZSBpcyBzdXJyb3VuZGVkIGJ5IHRoZSBzdXBwbGllZCBjb2xvci4gIENvbG9ycyBjYW4gYmUgc3BlY2lmaWVkIGJ5IG5hbWUgKHNlZSB0aGUgWDExIGNvbG9yIG5hbWVzKSwgb3IgYnkgI25ubm5ubiBoZXhhZGVjaW1hbCBmb3JtYXQsIG9yIGFzIHJnYiB2YWx1ZXMgc2VwYXJhdGVkIGJ5IGEgOiBpLmU6ICBmaWx0ZXJfY3JvcHRvZml0PTYwMCw0MDAsI2ZmMDAwMC4gIFRoZSBzcGVjaWFsIGNvbG9yIHZhbHVlICZxdW90O3RyYW5zcGFyZW50JnF1b3Q7IGNhbiBiZSBzcGVjaWZpZWQgdG8gZm9yY2UgdGhlIGJhY2tncm91bmQgdG8gYmUgdHJhbnNwYXJlbnQuICAgQW4gYWxwaGEgdmFsdWUgbWF5IGJlIHNwZWNpZmllZCBiZXR3ZWVuIDAgYW5kIDEyNyB0byBzcGVjaWZ5IGRpZmZlcmVudCBkZWdyZWVzIG9mIHRyYW5zbHVjZW5jeSBmb3IgdGhlIGJhY2tncm91bmQuICAgQXQgbm8gdGltZSB3aWxsIHRoaXMgcGx1Z2luIHBlcmZvcm0gYW55IHVwc2NhbGluZy4nOw0KJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yb3RhdGUnXSA9ICcoYW5nbGUsY29sb3IpIFNwZWNpZnkgdGhlIGludGVnZXIgYW5nbGUgKGNvdW50ZXIgY2xvY2t3aXNlKSB0byByb3RhdGUgdGhlIGltYWdlLCBhbmQgYSBjb2xvciB0byBmaWxsIHRoZSBlbXB0eSBwaXhlbHMgd2l0aC4gIFRoZSBpbWFnZSBpcyByb3RhdGVkIGFib3V0IGl0cyBjZW50ZXIuJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfcm91bmRlZGNvcm5lcnMnXSA9ICcocmFkaXVzKSBlaW5lbiBnYW56emFobGlnZW4gUmFkaXVzIChpbiBQaXhlbG4pIHp1bSBBYnJ1bmRlbiBkZXIgRWNrZW4gYW5nZWJlbic7DQokbGFuZ1sncGFyYW1fZmlsdGVyX3dhdGVybWFyayddID0gJyhpcmdlbmR3YXMpIFdhc3NlcnplaWNoZW4gKHdpZSBpbiBkZW4gRWluc3RlbGx1bmdlbiB2b24gQ0dFeHRlbnNpb25zIGRlZmluaWVydCkgYXVmIGRhcyBCaWxkIGFud2VuZGVuJzsNCiRsYW5nWydwYXJhbV9oZWlnaHQnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSBoZWlnaHQgYXR0cmlidXRlLiAgTm90ZSwgaWYgdGhpcyBpcyBub3Qgc3BlY2lmaWVkIGEgdmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoaXMgYXR0cmlidXRlIHNvIHRoYXQgbW9zdCBnZW5lcmF0ZWQgaW1nIHRhZ3Mgd2lsbCB2YWxpZGF0ZS4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBhdXRvIGNhbGN1bGF0aW9uIHdpdGggdGhlICZxdW90O25vYXV0byZxdW90OyBwYXJhbWV0ZXInOw0KJGxhbmdbJ3BhcmFtX2lkJ10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIGFsbG93cyBzcGVjaWZ5aW5nIGFuIGlkIGF0dHJpYnV0ZSB0byBpbmNsdWRlIG9uIHRoZSB0YWcuICBpLmU6IGlkPSZxdW90O3NvbWV0YWcmcXVvdDsnOw0KJGxhbmdbJ3BhcmFtX21heF9oZWlnaHQnXSA9ICdXaXJkIG51ciBmJnV1bWw7ciB7c2lfY29udmVydH0gdGFnIHZlcndlbmRldC4gRGllc2VyIFBhcmFtZXRlciBlcm0mb3VtbDtnbGljaHQgZGllIEFuZ2FiZSBlaW5lciBtYXhpbWFsZW4gSCZvdW1sO2hlIGYmdXVtbDtyIGRpZSBrb252ZXJ0aWVydGVuIEJpbGRlcic7DQokbGFuZ1sncGFyYW1fbWF4X3dpZHRoJ10gPSAnV2lyZCBudXIgZiZ1dW1sO3Ige3NpX2NvbnZlcnR9IHRhZyB2ZXJ3ZW5kZXQuIERpZXNlciBQYXJhbWV0ZXIgZXJtJm91bWw7Z2xpY2h0IGRpZSBBbmdhYmUgZWluZXIgbWF4aW1hbGVuIEJyZWl0ZSBmJnV1bWw7ciBkaWUga29udmVydGllcnRlbiBCaWxkZXInOw0KJGxhbmdbJ3BhcmFtX25hbWUnXSA9ICdWZXJ3ZW5kZXQgYmVpIGRlciBFcnN0ZWxsdW5nIGVpbmVzIGltZy1UYWdzLCBnZWJlbiBTaWUgZGVuIFdlcnQgZiZ1dW1sO3IgZGFzIG5hbWUgQXR0cmlidXQuJzsNCiRsYW5nWydwYXJhbV9ub2F1dG8nXSA9ICdBdHRyaWJ1dGUgZiZ1dW1sO3IgZGFzIGltZy1UYWcgbmljaHQgYXV0b21hdGlzY2ggYmVyZWNobmV0LiBEaWVzIGsmb3VtbDtubnRlIGRhenUgZiZ1dW1sO2hyZW4sIGRhc3MgSWhyZSBTZWl0ZSBuaWNodCBtZWhyIHZhbGlkaWVydCwgd2VubiB2ZXJwZmxpY2h0ZW5kZSBBdHRyaWJ1dGUgKHdpZHRoLCBoZWlnaHQsIGFsdCkgbmljaHQgYW5nZWdlYmVuIHNpbmQuJzsNCiRsYW5nWydwYXJhbV9ub2F1dG9zY2FsZSddID0gJ3dlbm4gQnJlaXRlIHVuZCBIJm91bWw7aGUgUGFyYW1ldGVyIGFuZ2VnZWJlbiB3ZXJkZW4sIHdpcmQgZGllc2VyIFBhcmFtZXRlciBkaWUgYXV0b21hdGlzY2hlIFNrYWxpZXJ1bmcgZGVzIEJpbGRlcyBkZWFrdGl2aWVyZW4uJzsNCiRsYW5nWydwYXJhbV9ub2JjYWNoZSddID0gJ0RvIG5vdCBhbGxvdyB0aGUgcmVzaXplZCBpbWFnZSB0byBjYWNoZSBpbiB0aGUgYnJvd3NlciAodXNlZnVsIGZvciBkZXZlbG9wbWVudCBwdXJwb3NlcykgdGhpcyBhZGRzIGEgdW5pcXVlIG51bWJlciBhcyBhIHBhcmFtZXRlciB0byB0aGUgaW1hZ2Ugd2hpY2ggd2lsbCBmb3JjZSB0aGUgYnJvd3NlciBub3QgdG8gY2FjaGUgdGhlIGltYWdlLic7DQokbGFuZ1sncGFyYW1fbm9lbWJlZCddID0gJ0ZvcmNlIHRoZSBpbWFnZSB0byBub3QgZW1iZWQuICBSZWdhcmRsZXNzIG9mIHNldHRpbmdzIGluIHRoZSBhZG1pbiBwYW5lbCwgdGhlIFVSTCBhbmQgdGFnIGdlbmVyYXRlZCB3aWxsIGJlIHRvIGEgZmlsZSBvbiB0aGUgc2VydmVyLiAgTm8gZW1iZWRkaW5nIHdpbGwgYmUgcGVyZm9ybWVkJzsNCiRsYW5nWydwYXJhbV9ub3RpbWVjaGVjayddID0gJ1plaXQmdXVtbDtiZXJwciZ1dW1sO2Z1bmcgZGVyIHp3aXNjaGVuZ2VzcGVpY2hlcnRlbiBEYXRlaWVuIGRlYWt0aXZpZXJlbi4nOw0KJGxhbmdbJ3BhcmFtX25vcmVtb3RlJ10gPSAnQXVmcnVmIHZvbiBleHRyZW5lbiBVUkwmIzAzOTtzIG5pY2h0IGVybGF1YmVuJzsNCiRsYW5nWydwYXJhbV9ub3JvdGF0ZSddID0gJ0V4aWYgSW5mb3JtYXRpb24gZGVyIERhdGVpIG5pY2h0IGF1c2xlc2VuIHVuZCBCaWxyb3RhdGlvbiBuaWNodCBrb3JyaWdpZXJlbic7DQokbGFuZ1sncGFyYW1fbm90YWcnXSA9ICdLZWluIGltZy1UYWcgYXVzZ2ViZW4sIG51ciBkaWUgVVJMIHp1bSBCaWxkLiBLZWluIEVmZmVrdCwgd2VubiBTbWFydEltYWdlcyBpbiBlaW5lbSBTdHlsZXNoZWV0IHZlcndlbmRldCB3aXJkLic7DQokbGFuZ1sncGFyYW1fb3ZlcndyaXRlJ10gPSAnWndpc2NoZW5zcGVpY2hlciBkZWFrdGl2aWVyZW4gdW5kIE5ldWJlcmVjaG51bmcgYWxsZXIgRmlsdGVyIGVyendpbmdlbic7DQokbGFuZ1sncGFyYW1fcXVhbGl0eSddID0gJ1F1YWxpdCZhdW1sO3QgZGVzIEJpbGRlcy4gRWluIFdlcnQgendpc2NoZW4gMCB1bmQgMTAwLiBEaWUgVm9yZWluc3RlbGx1bmcgaXN0IDc1Lic7DQokbGFuZ1sncGFyYW1fcmVsJ10gPSAnVXNlZCB3aGVuIGJ1aWxkaW5nIGFuIGltYWdlIHRhZyBhbGxvd3Mgc3BlY2lmeWluZyBhbiBvcHRpb25hbCByZWwgYXR0cmlidXRlICh0eXBpY2FsbHkgdXNlZCB3aXRoIGphdmFzY3JpcHQgdHlwZSBhbGJ1bXMpLiBpLmU6IHJlbD0mcXVvdDthbGJ1bSZxdW90Oyc7DQokbGFuZ1sncGFyYW1fc2lsZW50J10gPSAnRmVobGVyIHN0aWxsIGlnbm9yaWVyZW4nOw0KJGxhbmdbJ3BhcmFtX3NyYyddID0gJ1NwZWNpZnkgdGhlIHNvdXJjZSBmb3IgdGhlIGltYWdlIHByb2Nlc3NpbmcgKGlmIGFueSkgb3IgdGhlIGdlbmVyYXRlZCBpbWcgdGFnLiAgTm90ZSwgdGhpcyBwYXJhbWV0ZXIgaXMgZmxleGlibGUsIGFuZCB0aGUgbW9kdWxlIHdpbGwgYXR0ZW1wdCBtYW55IG1ldGhvZHMgdG8gZmluZCB0aGUgc291cmNlIGltYWdlIGZpbGUgb24gdGhlIHdlYiBzZXJ2ZXIgYXMgZm9sbG93czoNCjx1bD4NCiAgPGxpPkZpcnN0IGxvb2sgdG8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgc3JjIHZhbHVlIGV4aXN0cyBhcyBhIGZpbGUgb24gdGhlIGZpbGVzeXN0ZW0uPC9saT4NCiAgPGxpPk5leHQsIGNoZWNrIGlmIHRoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yIHRoZSBzcmMgcGFyYW1ldGVyIGlzIGEgVVJMIGFuZCBiZWdpbnMgd2l0aCB0aGUgdXBsb2Fkc191cmwgKGFzIHNwZWNpZmllZCBpbiB0aGUgY29uZmlnLnBocCk8L2xpPg0KICA8bGk+TmV4dCwgY2hlY2sgaWYgdGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgdGhlIHNyYyBwYXJhbWV0ZXIgaXMgYSBVUkwgYW5kIGJlZ2lucyB3aXRoIHRoZSByb290X3VybCAoYXMgc3BlY2lmaWVkIGluIHRoZSBjb25maWcucGhwKTwvbGk+DQogIDxsaT5OZXh0LCBjaGVjayBpZiB0aGUgdmFsdWUgc3BlY2lmaWVkIGZvciB0aGUgc3JjIHBhcmFtZXRlciBpcyBhIFVSTCBhbmQgYmVnaW5zIHdpdGggdGhlIHNzbF91cmwgKGFzIHNwZWNpZmllZCBpbiB0aGUgY29uZmlnLnBocCk8L2xpPg0KPC91bD4nOw0KJGxhbmdbJ3BhcmFtX3N0eWxlJ10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIGFsbG93cyBzcGVjaWZ5aW5nIGFsdGVybmF0ZSBzdHlsZXMgZm9yIHRoZSB0YWcuICBpLmU6IHN0eWxlPSZxdW90O2JvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyZxdW90Oyc7DQokbGFuZ1sncGFyYW1fdGl0bGUnXSA9ICdUaXRlbC1BdHRyaWJ1dCBmJnV1bWw7ciBkYXMgaW1nLVRhZyAob3B0aW9uYWwpLCB6LiBCLiA8Y29kZT50aXRsZT0mcXVvdDtEaWVzIGlzdCBkZXIgVG9vbHRpcCZxdW90OzwvY29kZT4nOw0KJGxhbmdbJ3BhcmFtX3dpZHRoJ10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIHNwZWNpZnkgdGhlIHZhbHVlIGZvciB0aGUgd2lkdGggYXR0cmlidXRlLiAgTm90ZSwgaWYgdGhpcyBpcyBub3Qgc3BlY2lmaWVkIGEgdmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoaXMgYXR0cmlidXRlIHNvIHRoYXQgbW9zdCBnZW5lcmF0ZWQgaW1nIHRhZ3Mgd2lsbCB2YWxpZGF0ZS4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBhdXRvIGNhbGN1bGF0aW9uIHdpdGggdGhlICZxdW90O25vYXV0byZxdW90OyBwYXJhbWV0ZXInOw0KJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTW9kdWwgd3VyZGUgaW5zdGFsbGllcnQnOw0KJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdBbGxlIERhdGVuIGRpZXNlcyBNb2R1bHMgd3VyZGVuIGVudGZlcm50Lic7DQokbGFuZ1sncHJvbXB0X2Nyb3B0b2ZpdF9kZWZhdWx0X2xvYyddID0gJ1N0YW5kYXJkYmVyZWljaCBmJnV1bWw7ciAmYmRxdW87QmVzY2huZWlkZW4gdW5kIEFucGFzc2VuJmxkcXVvOyc7DQokbGFuZ1sncHJvbXB0X2VtYmVkX3NpemVsaW1pdCddID0gJ0Jhc2llcmVuZCBhdWYgQmlsZGdyJm91bWw7JnN6bGlnO2UnOw0KJGxhbmdbJ3Byb21wdF9lbWJlZF9zbWFydGxpbWl0ZWQnXSA9ICdTbWFydC1Nb2R1cywgYWJlciBCaWxkZ3Imb3VtbDsmc3psaWc7ZSBiZXNjaHImYXVtbDtua2VuJzsNCiRsYW5nWydwcm9tcHRfZW1iZWRfdHlwZSddID0gJ0JpbGR0eXAtYmFzaWVyZW5kJzsNCiRsYW5nWydwcm9tcHRfbG9jX2JvdHRvbWxlZnQnXSA9ICd1bnRlbiBsaW5rcyc7DQokbGFuZ1sncHJvbXB0X2xvY19ib3R0b21jZW50ZXInXSA9ICd1bnRlbiBtaXR0aWcnOw0KJGxhbmdbJ3Byb21wdF9sb2NfYm90dG9tcmlnaHQnXSA9ICd1bnRlbiByZWNodHMnOw0KJGxhbmdbJ3Byb21wdF9sb2NfY2VudGVybGVmdCddID0gJ21pdHRpZyBsaW5rcyc7DQokbGFuZ1sncHJvbXB0X2xvY19jZW50ZXInXSA9ICdtaXR0aWcnOw0KJGxhbmdbJ3Byb21wdF9sb2NfY2VudGVycmlnaHQnXSA9ICdtaXR0aWcgcmVjaHRzJzsNCiRsYW5nWydwcm9tcHRfbG9jX3RvcGxlZnQnXSA9ICdvYmVuIGxpbmtzJzsNCiRsYW5nWydwcm9tcHRfbG9jX3RvcGNlbnRlciddID0gJ29iZW4gbWl0dGlnJzsNCiRsYW5nWydwcm9tcHRfbG9jX3RvcHJpZ2h0J10gPSAnb2JlbiByZWNodHMnOw0KJGxhbmdbJ3Jlc2l6aW5nJ10gPSAnR3Imb3VtbDsmc3psaWc7ZW4mYXVtbDtuZGVydW5nJzsNCiRsYW5nWydzbWFydCddID0gJ2F1dG9tYXRpc2NoJzsNCiRsYW5nWydzdWJtaXQnXSA9ICdBYnNlbmRlbic7DQokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4zMjY3MDA0NTAuMTM3MzgyNzM2Ny4xMzczODI3MzY3LjEzNzM4MjczNjcuMSc7DQokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7DQokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMzczODI3MzY3LjEuMS51dG1jY249KGRpcmVjdCl8dXRtY3NyPShkaXJlY3QpfHV0bWNtZD0obm9uZSknOw0KJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRsYW5nWydhY3RfY2FjaGVjbGVhbmVkJ10gPSAnQ2FjaGUgdmlkw6knOw0KJGxhbmdbJ2FkZF9yb3cnXSA9ICdBam91dGVyIHVuZSBsaWduZSc7DQokbGFuZ1snYWxpYXMnXSA9ICdBbGlhcyZuYnNwOyc7DQokbGFuZ1snYWxpYXNlcyddID0gJ0FsaWFzJm5ic3A7JzsNCiRsYW5nWydhc2tfY2xlYXJfaW1hZ2VfY2FjaGUnXSA9ICfDinRlcy12b3VzIHPDu3IgZGUgdm91bG9pciBzdXBwcmltZXIgVE9VVEVTIGxlcyBpbWFnZXMgZW4gY2FjaGUgPyc7DQokbGFuZ1snY2xlYXJfYWxsJ10gPSAnU3VwcHJpbWVyIHRvdXMgbGVzIGZpY2hpZXJzJzsNCiRsYW5nWydjbGVhcl9ub3cnXSA9ICdTdXBwcmltZXIgbWFpbnRlbmFudCc7DQokbGFuZ1snZGVsZXRlJ10gPSAnRWZmYWNlcic7DQokbGFuZ1snZW1iZWRkaW5nJ10gPSAnSW1hZ2VzIGludMOpZ3LDqWVzJzsNCiRsYW5nWydlbWJlZGRpbmdfbW9kZSddID0gJ01vZGUgZFwnaW50w6lncmF0aW9uIGRlcyBpbWFnZXMgKGF1IHNlaW4gZHUgY29kZSBIVE1MKSc7DQokbGFuZ1snZW1iZWRfc2l6ZWxpbWl0J10gPSAnVGFpbGxlIGxpbWl0ZSBkZXMgaW1hZ2VzIGludMOpZ3LDqWVzIChLbyknOw0KJGxhbmdbJ2VtYmVkX3R5cGVzJ10gPSAnVHlwZShzKSBkXCdpbWFnZShzKSBpbnTDqWdyYWJsZShzKSc7DQokbGFuZ1snZXJyb3JfYWxpYXNfZHVwbGljYXRlbmFtZV9hdHJvdyddID0gJ05vbSBkXCdhbGlhcyBkdXBsaXF1w6kgcG91ciBsXCdhbGlhcyBkZSBsYSBsaWduZSAlZCc7DQokbGFuZ1snZXJyb3JfYWxpYXNfbm9uYW1lX2F0cm93J10gPSAnQXVjdW4gbm9tIG5cJ2Egw6l0w6kgc3DDqWNpZmnDqSBwb3VyIGxcJ2FsaWFzIMOgIGxhIGxpZ25lICVkJzsNCiRsYW5nWydlcnJvcl9hbGlhc19ub29wdGlvbnNfYXRyb3cnXSA9ICdBdWN1bmUgb3B0aW9uIG5cJ2Egw6l0w6kgc3DDqWNpZmnDqWUgcG91ciBsXCdhbGlhcyDDoCBsYSBsaWduZSAlZCc7DQokbGFuZ1snZXJyb3JfaW52YWxpZF9hZ2UnXSA9ICdQcsOpZsOpcmVuY2UgZFwnw6JnZSBpbnZhbGlkZS4uLiBBdWN1bmUgb3DDqXJhdGlvbiByw6lhbGlzw6llJzsNCiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdVbiBwYXJhbcOodHJlIHJlcXVpcyBlc3QgbWFucXVhbnQgb3UgaW52YWxpZGUgOiAlcyc7DQokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmFtJ10gPSAnUGFyYW3DqHRyZSBpbnZhbGlkZSBkYW5zIGxcJ2FwcGVsIDogJXMnOw0KJGxhbmdbJ2Vycm9yX3NyY25vdGZvdW5kJ10gPSAnTGUgZmljaGllciBzdWl2YW50IG5cJ2EgcGFzIMOpdMOpIHRyb3V2w6kgOiAlcyc7DQokbGFuZ1snZXJyb3JfcmVtb3RlZmlsZSddID0gJ1Byb2Jsw6htZSBkZSByw6ljdXDDqXJhdGlvbiBkdSBmaWNoaWVyIGRpc3RhbnQgZGVwdWlzICVzJzsNCiRsYW5nWydlcnJvcl91bmtub3duZmlsdGVyJ10gPSAnVHJhaXRlbWVudCBkXCdpbWFnZXMgLSBGaWx0cmUgaW5jb25udSA6ICVzJzsNCiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdUcmFpdGVtZW50IGRcJ2ltYWdlcyAoQ0cpJzsNCiRsYW5nWydnZW5lcmFsJ10gPSAnR8OpbsOpcmFsJzsNCiRsYW5nWydoZWxwJ10gPSAnPGgzPlF1ZSBmYWl0IGNlIG1vZHVsZSA/PC9oMz4NCjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgc2ltcGxlIHdheSB0byBwcm9jZXNzLCBhbmQgZGlzcGxheSBpbWFnZXMgb24geW91ciB3ZWIgcGFnZS4gIEl0IGFsbG93cyBzaW1wbGUgaW1hZ2UgcHJvY2Vzc2luZywgYW5kIHdhdGVybWFya2luZy4gIFRoaXMgbW9kdWxlIG1ha2VzIGRpc3BsYXlpbmcgcHJvY2Vzc2VkIGltYWdlcyBvbiB5b3VyIHdlYnNpdGUgdHJpdmlhbC4gIEl0IGFsc28gcHJvdmlkZXMgZmVhdHVyZXMgdG8gaW1wcm92ZSB0aGUgcGVyZm9ybWFuY2UgcmF0aW5nIG9mIHlvdXIgd2Vic2l0ZSwgbWFraW5nIHlvdXIgd2Vic2l0ZSBwb3dlcmZ1bCBhbmQgZmFzdCBhdCB0aGUgc2FtZSB0aW1lLjwvcD4NCjxoMz5GZWF0dXJlczwvaDM+DQo8dWw+DQo8bGk+UG93ZXJmdWwsIGJ1dCBzaW1wbGUgdG8gdXNlIGltYWdlIGZpbHRlcmluZyBhbmQgcHJvY2Vzc2luZy4gRmlsdGVyaW5nIGluY2x1ZGVzOg0KICA8dWw+DQogICAgPGxpPkJsdXI8L2xpPg0KICAgIDxsaT5CcmlnaHRuZXNzPC9saT4NCiAgICA8bGk+Q29sb3JpemU8L2xpPg0KICAgIDxsaT5Db250cmFzdDwvbGk+DQogICAgPGxpPkNyb3A8L2xpPg0KICAgIDxsaT48c3Ryb25nPkNyb3AgVG8gRml0PC9zdHJvbmc+PC9saT4NCiAgICA8bGk+RWRnZSBEZXRlY3Rpb248L2xpPg0KICAgIDxsaT5FbWJvc3M8L2xpPiANCiAgICA8bGk+R3JheXNjYWxlPC9saT4NCiAgICA8bGk+TWVhbiBSZW1vdmFsPC9saT4NCiAgICA8bGk+TmVnYXRlPC9saT4NCiAgICA8bGk+UGl4ZWxhdGU8L2xpPg0KICAgIDxsaT5SZXNpemU8L2xpPg0KICAgIDxsaT5Sb3RhdGU8L2xpPg0KICAgIDxsaT5TZWxpY3RpdmUgQmx1cjwvbGk+DQogICAgPGxpPlNtb290aDwvbGk+DQogICAgPGxpPldhdGVybWFyazwvbGk+DQogIDwvdWw+DQo8L2xpPjxici8+DQo8bGk+U21hcnQgZGV0ZWN0aW9uIG9mIGltYWdlcy4gIFNwZWNpZnkgYWJzb2x1dGUgVVJMUywgYWJzb2x1dGUgcGF0aHMsIG9yIGZpbGVzIHJlbGF0aXZlIHRvIHlvdXIgcm9vdCBpbnN0YWxsYXRpb24uPC9saT4NCjxsaT5BdXRvbWF0aWMgZG93bmxvYWRpbmcsIGNhY2hpbmcsIHByb2Nlc3NpbmcsIGFuZCByZS1jYWNoaW5nIG9mIGltYWdlcyBmcm9tIHJlbW90ZSB3ZWJzaXRlcy48L2xpPg0KPGxpPlNtYXJ0IGF1dG9tYXRpYyByZXNpemluZyAoYXV0b21hdGljYWxseSByZXNpemUgdG8gZGVzaXJlZCB3aWR0aCBhbmQgaGVpZ2h0IGJlZm9yZSBzZXJ2aW5nIHRoZSBpbWFnZS4uLiByZXNpemluZyB0byB3aWR0aCBBTkQgaGVpZ2h0IGRvZXMgYSBjcm9wIHRvIGZpdC4gPGVtPihqdXN0IHNwZWNpZnkgYSB3aWR0aCwgYW5kL29yIGhlaWdodCBwYXJhbWV0ZXIgdG8gdGhlIFNtYXJ0SW1hZ2UgdGFnLik8L2VtPjwvbGk+DQo8bGk+QXV0b21hdGljYWxseSByZWFkcyBpbWFnZSBFWElGIGluZm9ybWF0aW9uIGFuZCBjb3JyZWN0cyB0aGUgb3JpZW50YXRpb24uPC9saT4NCjxsaT5JbWFnZSBjaGFuZ2UgZGV0ZWN0aW9uLCBpZiB0aGUgbWFzdGVyIGltYWdlIGlzIGNoYW5nZWQgc2NhbGVkIGltYWdlcyB3aWxsIGJlIHJlZ2VuZXJhdGVkLiAoc2VlIHRoZSBub3RpbWVjaGVjayBwYXJhbWV0ZXIgdG8gZGlzYWJsZSB0aGlzIGJlaGF2aW9yKS48L2xpPg0KPGxpPlNtYXJ0IGF0dHJpYnV0ZSBnZW5lcmF0aW9uIGZvciBpbWFnZXMuPC9saT4NCjxsaT5Qcm9jZXNzZWQgaW1hZ2VzIGFyZSBjYWNoZWQgb24gdGhlIHNlcnZlciBmb3IgZmFzdGVyIHNlcnZpbmcuPC9sST4NCjxsaT5UaGUgYWJpbGl0eSB0byB1c2UgYSBzZXBhcmF0ZSBVUkwgKENETikgZm9yIHNlcnZpbmcgaW1hZ2VzPC9saT4NCjxsaT5JbWFnZSBwcm9jZXNzZXMgY2FuIGJlIGNvbWJpbmVkLCBhbmQgYXJlIGV4ZWN1dGVkIGluIG9yZGVyLjwvbGk+DQo8bGk+UHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gZW1iZWQgaW1hZ2VzIGRpcmVjdGx5IGludG8gdGhlIGNvbnRlbnQgb2YgdGhlIHdlYiBwYWdlIHRvIG1pbmltaXplIHNwYWNlLjwvbGk+DQo8bGk+UHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gbGltaXQgZW1iZWRkaW5nIGltYWdlcyBzbWFydGx5LCBvbmx5IHRvIGJyb3dzZXJzIHRoYXQgYXJlIGNhcGFibGUgb2YgdW5kZXJzdGFuZGluZyB0aGVtLjwvbGk+DQo8bGk+Q29tYmluZSBjb21tb25seSB1c2VkIGFyZ3VtZW50cyBpbnRvIG5hbWVkIGFsaWFzZXMuPC9saT4NCjxsaT5BbHNvIHdvcmtzIHdpdGhpbiBzdHlsZXNoZWV0cyB2aWEgdGhlIHtjbXNfc3R5bGVzaGVldH0gdGFnLjwvbGk+DQo8bGk+VGhlIGFiaWxpdHkgdG8gYXV0b21hdGljYWxseSBwcm9jZXNzIGltYWdlcyBpbnNpZGUgYSBibG9jayBvZiBodG1sIGNvZGUgdXNpbmcgdGhlIHtzaV9jb252ZXJ0fSBibG9jayB0YWcuPC9saT4NCjxsaT5Nb3JlLi4uPC9saT4NCjwvdWw+DQo8aDM+V2h5IHNob3VsZCBJIHVzZSBpdD88L2gzPg0KPHA+VGhlcmUgYXJlIGZvdXIgdmVyeSBpbXBvcnRhbnQgcmVhc29ucyB0byB1c2UgdGhpcyBwbHVnaW46PC9wPg0KPHVsPg0KICA8bGk+UGVyZm9ybWFuY2U6ICBVc2luZyBpbWFnZSBlbWJlZGRpbmcgKGV2ZW4gaWYgbm8gb3RoZXIgZnVuY3Rpb25zIGFyZSB1c2VkKSByZXN1bHRzIGluIGZld2VyIHJlcXVlc3RzLiAgTW9zdCBicm93c2VycyBvbmx5IHBlcmZvcm0gdHdvIHRvIGZvdXIgc2ltdWx0YW5lb3VzIHJlcXVlc3RzIHRvIHRoZSBzYW1lIGRvbWFpbiBhdCB0aGUgc2FtZSB0aW1lLiAgRm9yIHdlYiBwYWdlcyB3aXRoIGxvdHMgb2YgaW1hZ2VzIHRoaXMgY2FuIHNlcmlvdXNseSBzbG93IGRvd24geW91ciBzaXRlLjwvbGk+DQogIDxsaT5QZXJmb3JtYW5jZTogIEV2ZW4gaWYgbm90IHVzaW5nIGVtYmVkZGluZywgc2VuZGluZyBsYXJnZSBpbWFnZXMgdG8geW91ciB2aXNpdG9ycywgYW5kIGFza2luZyB0aGVpciBicm93c2VyIHRvIHNjYWxlIHRoZSBpbWFnZSBpcyB2ZXJ5IHZlcnkgc2xvdy48L2xpPg0KICA8bGk+U2VjdXJpdHk6ICBTbWFydEltYWdlIGNhY2hlcyBpdHMgaW1hZ2VzIGluIGEgc2VwYXJhdGUgZGlyZWN0b3J5LCB0aGVyZWJ5IGhpZGluZyB0aGUgb3JpZ2luYWwgKHBlcmhhcHMgY29weXJpZ2h0ZWQpIGltYWdlcyBmcm9tIHlvdXIgdXNlcnMuICBJZiBlbWJlZGRpbmcgaXMgdXNlZCB0aGV5IGNhbnQgZXZlbiBmaW5kIHRoZSBjYWNoZWQgbG9jYXRpb24pPC9saT4NCiAgPGxpPlNpbXBsaWNpdHk6ICBUaGUgZmlsdGVyaW5nIGNhcGFiaWxpdGllcyBvZiBTbWFydEltYWdlIGFsbG93IHlvdSB0byBhdXRvbWF0aWNhbGx5IHByb2Nlc3MgaW1hZ2VzIGZvciBjb25zaXN0ZW50IGFuZCBzZWN1cmUgZGlzcGxheSwgd2l0aG91dCBzaXRlIGVkaXRvcnMgaGF2aW5nIHRvIHBsYXkgd2l0aCB0aGVtLiAgVGhleSBjYW4gdXBsb2FkIGxhcmdlciBpbWFnZXMsIGFuZCB5b3VyIHNpdGUgd2lsbCBqdXN0IGhhbmRsZSB0aGVtIHByb3Blcmx5LjwvbGk+DQo8L3VsPg0KPGgzPkhvdyBkbyBJIHVzZSBpdD88L2gzPg0KPHA+VGhlIHNpbXBsZXN0IHdheSB0byB1c2UgdGhpcyBtb2R1bGUgaXMgdG8gdXNlIGl0IGluIHRoZSBzYW1lIHBsYWNlIHlvdSB3b3VsZCB0aGUge2ltYWdlfSB0YWcuICBJLmU6IFNvbWV0aGluZyBsaWtlIDxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntTbWFydEltYWdlIHNyYz1cJ3VwbG9hZHMvaW1hZ2VzL3BpY3R1cmUuanBnXCd9PC9jb2RlPi4gIFRoaXMgd2lsbCBnZW5lcmF0ZSB0aGUgaW1hZ2UgdGFnIGZvciB5b3Ugd2l0aCBubyBwcm9jZXNzaW5nLiAgQW5kIGlmIHBvc3NpYmxlLCBlbWJlZCB0aGUgaW1hZ2UgZGlyZWN0bHkgaW50byB5b3VyIGh0bWwgb3V0cHV0LjwvcD4NCjxwPk9mdGVuIHBlb3BsZSB3YW50IHRvIGRpc3BsYXkgYSB3YXRlcm1hcmsgb24gdGhlIGltYWdlcyB0aGF0IHRoZXkgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQgdG8gcHJldmVudCBpbWFnZSB0aGVmdC4gIFRoZSBDR0V4dGVuc2lvbnMgbW9kdWxlIHByb3ZpZGVzIHNldHRpbmdzIGZvciB5b3UgdG8gY29uZmlndXJlIHdhdGVybWFya2luZyBhbmQgeW91IGNhbiBlbmFibGUgdGhhdCB3aXRoIGFueSBpbWFnZSB3aXRoIGEgdGFnIGxpa2UgdGhpczogPGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e1NtYXJ0SW1hZ2Ugc3JjPVwndXBsb2Fkcy9pbWFnZXMvcGljdHVyZS5qcGdcJyBmaWx0ZXJfd2F0ZXJtYXJrPTF9PC9jb2RlPi4gIFRoaXMgd2lsbCByZWFkIHRoZSBpbWFnZSwgYXBwbHkgdGhlIHdhdGVybWFyayBhY2NvcmRpbmcgdG8gdGhlIHNldHRpbmdzIGluIENHRXh0ZW5zaW9ucywgY2FjaGUgdGhlIGFsdGVyZWQgaW1hZ2UsIGFuZCB0aGVuIGVtYmVkIGl0IGludG8geW91ciBvdXRwdXQuPC9wPg0KPHA+QWxzbywgUGljdHVyZXMgdGFrZW4gYnkgbW9kZXJuIGRpZ2l0YWwgY2FtZXJhcyBhcmUgb2Z0ZW4gdG9vIGxhcmdlIGZvciB1c2Ugb24gYSB3ZWJzaXRlLCB0aGVyZWZvcmUgdGhleSBuZWVkIHRvIGJlIHNjYWxlZCBiZWZvcmUgZGlzcGxheWVkIG9uIHlvdXIgcGFnZS4gIFRoaXMgY2FuIGJlIGRvbmUgcXVpdGUgZWFzaWx5IHdpdGggYSB0YWcgbGlrZTogPGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e1NtYXJ0SW1hZ2Ugc3JjPVwndXBsb2Fkcy9pbWFnZXMvcGljdHVyZS5qcGdcJyBmaWx0ZXJfd2F0ZXJtYXJrPTEgZmlsdGVyX3Jlc2l6ZT1cJ3csMzUwXCd9PC9jb2RlPi4gIEFzIHlvdSBtYXkgdGhpbmssIHRoZSB3YXRlcm1hcmsgd2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBpbWFnZSBiZWZvcmUgaXQgaXMgcmVzaXplZCB0byBhIG1heGltdW0gd2lkdGggb2YgMzAwIHBpeGVscyAocmV0YWluaW5nIGFzcGVjdCByYXRpbykuICBUaGVuIHRoZSBhZGp1c3RlZCBpbWFnZSB3aWxsIGJlIGNhY2hlZCwgYW5kIGlmIHRoZSBicm93c2VyIGFsbG93ZXMgdGhlIGltYWdlIHdpbGwgYmUgZW1iZWRkZWQgaW50byB0aGUgSFRNTCBvdXRwdXQuICBJZiBlbWJlZGRpbmcgaXMgbm90IHBvc3NpYmxlLCB0aGUgaW1nIHRhZyB3aWxsIGNvbnRhaW4gdGhlIFVSTCB0byB0aGUgY2FjaGVkIGltYWdlLjwvcD4NCjxwPkZyb20gaGVyZSB5b3UgY2FuIGNvbWJpbmUgdGhlIG9wdGlvbnMgYmVsb3cgdG8gcGVyZm9ybSBhbG90IG9mIGRpZmZlcmVudCBlZmZlY3RzIHRvIHlvdXIgaW1hZ2VzLCBidWlsZCBzaW1wbGUgZ2FsbGVyaWVzLCBhbmQgaW1wcm92ZSB5b3VyIHNpdGUgcGVyZm9ybWFuY2UgYXQgdGhlIHNhbWUgdGltZS4gIEVuam95ITwvcD4NCjxoMz5BdXRvbWF0aWMgaW1hZ2UgcmVzaXppbmc8L2gzPg0KICA8cD5JZiB5b3Ugc3BlY2lmeSBhIHdpZHRoLCBhbmQvb3IgYSBoZWlnaHQgcGFyYW1ldGVyLCBhbmQgZG8gbm90IHNwZWNpZnkgdGhlICJub2F1dG9zY2FsZSIgcGFyYW1ldGVyLCB0aGUgbW9kdWxlIHdpbGwgYW5hbHl6ZSB0aGUgZmlsdGVycyB5b3UgaGF2ZSBhbHJlYWR5IHNwZWNpZmllZCwgYW5kIGlmIHRoZXJlIGlzIG5vIHJlc2l6ZSBmaWx0ZXIgYWxyZWFkeSBzcGVjaWZpZWQgYXV0b21hdGljYWxseSBhZGQgYSBmaWx0ZXIgdG8gcmVzaXplIG9yIGNyb3B0b2ZpdCB0aGUgaW1hZ2Ugb24gb3V0cHV0LiAgVGhpcyBpcyB1c2VmdWwgdG8gZG8gYXV0b21hdGljIHRodW1ibmFpbGluZyBvbiB0aGUgc2VydmVyLCBhbmQgbm90IHJlcXVpcmUgdGhlIGJyb3dzZXIgdG8gcmVzaXplIHRoZSBpbWFnZS48L3A+DQogPGgzPkEgU2ltcGxlIEdhbGxlcnk8L2gzPg0KPHA+VGhlIGNvZGUgYmVsb3cgdXNlcyB0aGUge1NtYXJ0SW1hZ2V9IG1vZHVsZSwgZmFuY3lib3gsIGFuZCBhIGJpdCBvZiBzbWFydHkgbWFnaWMgdG8gZ2VuZXJhdGUgYSBzaW1wbGUgbGlnaHRib3ggc3R5bGUgYWxib20gZnJvbSBhIHN1YmRpcmVjdG9yeSBvbiB5b3VyIHdlYnNpdGUsIHdoaWxlIHByb2Nlc3NpbmcgdGhlIGltYWdlcyBmb3Igd2ViIHN0YW5kYXJkcywgYW5kIGNyZWF0aW5nIHRodW1ibmFpbHMuPC9wPg0KPHByZSBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2RkZDsgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Ij48Y29kZT48c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiAxOjwvc3Bhbj4gPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPntsaXRlcmFsfQ0KPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4gMjo8L3NwYW4+IGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsNCjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDM6PC9zcGFuPiAgalF1ZXJ5KFwnYS5mYW5jeWJveFwnKS5mYW5jeWJveCgpOw0KPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4gNDo8L3NwYW4+IH0pOw0KPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4gNTo8L3NwYW4+IHsvbGl0ZXJhbH08L3NjcmlwdD4NCjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDY6PC9zcGFuPiB7YXNzaWduIHZhcj1cJ2ZpbGVzXCcgdmFsdWU9XCd1cGxvYWRzL2FsYnVtLyouanBnXCd8Z2xvYn0NCjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDc6PC9zcGFuPiB7aWYgY291bnQoJGZpbGVzKX0NCjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDg6PC9zcGFuPiA8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxNTBweDsgb3ZlcmZsb3c6IGF1dG87Ij4NCjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDk6PC9zcGFuPiB7Zm9yZWFjaCBmcm9tPSRmaWxlcyBpdGVtPVwnZmlsZVwnfQ0KPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4xMDo8L3NwYW4+ICA8YSByZWw9XCdzaW1wbGVfYWxidW1cJyBjbGFzcz0iZmFuY3lib3giIGhyZWY9IjxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntTbWFydEltYWdlIHNyYz0kZmlsZSBmaWx0ZXJfcm90YXRlPTkwIGZpbHRlcl93YXRlcm1hcms9MSBmaWx0ZXJfcmVzaXplPVwnaCw1MDBcJyBub3RhZz0xIG5vZW1iZWQ9MX08L3NwYW4+Ij4NCjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+MTE6PC9zcGFuPiAgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+e1NtYXJ0SW1hZ2Ugc3JjPSRmaWxlIGZpbHRlcl9yb3RhdGU9OTAgZmlsdGVyX2dyYXlzY2FsZT0xIGZpbHRlcl93YXRlcm1hcms9MSBmaWx0ZXJfcmVzaXplPVwnaCwxNTBcJ308L3NwYW4+DQo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPjEyOjwvc3Bhbj4gIDwvYT4NCjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+MTM6PC9zcGFuPiB7L2ZvcmVhY2h9DQo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPjE0Ojwvc3Bhbj4gPC9kaXY+DQo8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPjE1Ojwvc3Bhbj4gey9pZn0NCjwvY29kZT48L3ByZT48YnIvPg0KPHA+TGV0cyB0YWxrIGFib3V0IHRoaXMuPC9wPg0KPHA+TGluZXMgMSB0aHJvdWdoIDUgdXRpbGl6ZSBqUXVlcnkgdG8gY2FsbCBmYW5jeWJveCBvbiBhbnkgbGlua3MgdGhhdCBoYXZlIHRoZSAiZmFuY3lib3giIGNsYXNzLiAgVGhlIGZhbmN5Ym94IGpRdWVyeSBwbHVnaW4gaXMgaW5jbHVkZWQgd2l0aCB0aGUgSlF1ZXJ5VG9vbHMgbW9kdWxlLjwvcD4NCjxwPkxpbmUgNiB1c2VzIGEgYnVpbHQgaW4gcGhwIGZ1bmN0aW9uIGNhbGxlZCBnbG9iLCBhbmQgc29tZSBzbWFydHkgbWFnaWMgdG8gZmluZCBhbGwgb2YgdGhlIEpQRyBmaWxlcyBpbiB0aGUgdXBsb2Fkcy9hbGJ1bSBkaXJlY3RvcnkgYmVsb3cgb3VyIGluc3RhbGxhdGlvbiByb290LjwvcD4NCjxwPkxpbmUgNyBpcyBhIHRlc3QgdG8gc2VlIGlmIGFueSBmaWxlcyB3ZXJlIGFjdHVhbGx5IGZvdW5kIGluIHRoZSBhc3NpZ24gbGluZSBzdGF0ZWQgYWJvdmUuICBUaGlzIGlmIHN0YXRlbWVudCBpcyBjbG9zZWQgb24gbGluZSAxNS48L3A+DQo8cD5MaW5lIDggb3BlbnMgdXAgYSBkaXYgdG8gY29udGFpbiBvdXIgYWxidW0uICBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZXhhbXBsZSB0aGUgc3R5bGVzIHdlcmUgaW5jbHVkZWQgaW5saW5lLCBob3dldmVyIGEgY2xhc3MgdGhhdCB3YXMgZGVmaW5lZCBpbiB0aGUgc3R5bGVzaGVldCBzaG91bGQgYmUgdXNlZCBpbiBwcm9kdWN0aW9uIGVudmlyb25tZW50cy4gIFRoZSBjbG9zaW5nIHRhZyBmb3IgdGhpcyBkaXYgaXMgb24gbGluZSAxNCwganVzdCBiZWZvcmUgdGhlIDxjb2RlPnsvaWZ9PC9jb2RlPi48L3A+DQo8cD5MaW5lIDkgYmVnaW5zIGEgbG9vcCB0aHJvdWdoIGFsbCBvZiB0aGUgZmlsZXMgdGhhdCB3ZSBmb3VuZCBpbiB0aGUgZGlyZWN0b3J5LiAgVGhpcyBsb29wIGlzIGNsb3NlZCBvbiBsaW5lIDEzLjwvcD48YnIvPg0KPHA+TGluZXMgMTAgYW5kIDExIGFyZSB0aGUgcmVhbCBtYWdpYy4gIEhlcmUgd2UgY3JlYXRlIGEgbGluayB3aXRoIGNsYXNzICJmYW5jeWJveCIgYW5kIGFkZHMgdGhlIDxjb2RlPnJlbDwvY29kZT4gYXR0cmlidXRlIHNvIHRoYXQgZmFuY3lib3gga25vd3MgdGhhdCBhbGwgb2YgdGhlc2UgaW1hZ2VzIHNob3VsZCBiZSBncm91cGVkIHRvZ2V0aGVyIGFzIG9uZSBhbGJ1bSBhbmQgYWxsb3cgY2xpY2tpbmcgYmV0d2VlbiB0aGUgaW1hZ2VzLiAgVGhlbiBjb21lcyB0aGUgcGFydCB3aGVyZSB3ZSBkZWZpbmUgb3VyIGltYWdlcy4NCjxwPldlIHN1cHBseSB0aGUgJGZpbGUgdmFyaWFibGUgdG8gdGhlIHNyYyBhcmd1bWVudCBvZiB0aGUgPGNvZGU+e1NtYXJ0SW1hZ2V9PC9jb2RlPiB0YWcgc28gdGhhdCBpdCB3aWxsIGdldCB0aGUgbmFtZSBvZiBlYWNoIG1hdGNoZWQganBlZyBhcyB0aGUgbG9vcCBpcyBleGVjdXRlZC48L3A+DQo8cD5UaGUgaW1hZ2VzIEkgd2FzIHRlc3Rpbmcgd2l0aCB3ZXJlIHVwbG9hZGVkIGZyb20gbXkgaXBvZCwgYW5kIGFsbCBzZWVtZWQgdG8gYmUgcm90YXRlZCA5MCBkZWdyZWVzIGNvdW50ZXIgY2xvY2tlaXMuICBTbyB0aGUgZmlyc3QgZmlsdGVyIEkgYWRkZWQgd2FzIHRvIHJvdGF0ZSB0aGUgaW1hZ2UgOTAgZGVncmVlcyBjbG9ja3dpc2UgdmlhIHRoZSA8Y29kZT5maWx0ZXJfcm90YXRlPTkwPC9jb2RlPiBhcmd1bWVudC4gVGhlIGltYWdlcyB0aGVuIG5lZWRlZCB0byBoYXZlIHRoZSB3YXRlcm1hcmsgb24gdGhlbSA8ZW0+KHRoaXMgaXMganVzdCBmb3IgZXhhbXBsZSBwdXJwb3NlcywgSSBkb250IHRoaW5rIGFueWJvZHkgd291bGQgcmVhbGx5IHN0ZWFsIHRoZSBibHVycnkgcGljdHVyZXMgZnJvbSBteSBpcG9kIGZvciBjb21tZXJjaWFsIHB1cnBvc2VzKTwvZW0+LCBzbyBJIGFkZGVkIHRoZSA8Y29kZT5maWx0ZXJfd2F0ZXJtYXJrPTE8L2NvZGU+IHBhcmFtZXRlci4gIEFuZCBmaW5hbGx5LCBiZWNhdXNlIGV2ZW4gdGhlIGlwb2QgdG91Y2ggY2FuIHRha2UgcGljdHVyZXMgdGhhdCBhcmUgdG9vIGJpZyB0byBkaXNwbGF5IG9uIHRoZSBzY3JlZW4gSSB3YW50ZWQgdG8gcmVzaXplIHRoZW0gdG8gYSBtYXhpbXVtIGhlaWdodCBvZiA1MDAgcGl4ZWxzLiAgVGhpcyB3YXMgYWNjb21wbGlzaGVkIHZpYSB0aGUgPGNvZGU+ZmlsdGVyX3Jlc2l6ZT1oLDUwMDwvY29kZT4gYXJndW1lbnQuICBXZSBhZGQgdGhlIDxjb2RlPm5vZW1iZWQ9MTwvY29kZT4gYXJndW1lbnQgYmVjYXVzZSBmYW5jeWJveCBkb2VzIG5vdCB1bmRlcnN0YW5kIGhvdyB0byBkaXNwbGF5IGVtYmVkZGVkIGltYWdlcyBpbiBpdHMgcG9wdXAgd2luZG93LiAgVGhpcyBkZWZpbmVkIHRoZSBpbWFnZSB0aGF0IHdlIHdlcmUgZ29pbmcgdG8gbGluayB0by48L3A+DQo8cD5OZXh0IHdlIG5lZWRlZCB0byBkZWZpbmUgdGhlIHRodW1ibmFpbCBpbWFnZSB0aGF0IHdlIGFyZSBnb2luZyB0byB1c2UgaW4gdGhlIGdhbGxlcnkuICBUaGlzIGNhbGwgdG8gPGNvZGU+e1NtYXJ0SW1hZ2V9PC9jb2RlPiBpcyBhbG1vc3QgaWRlbnRpY2FsIHRvIHRoZSBmaXJzdCBjYWxsLCBleGNlcHQgdGhhdCB3ZSB1c2UgYSBkaWZmZXJlbnQgaGVpZ2h0IHZhbHVlICgxNTAgcGl4ZWxzKSBmb3IgdGhlIHRodW1ibmFpbCwgYW5kIGZvciBraWNrcyBJIGNvbnZlcnRlZCB0aGUgdGh1bWJuYWlsIHRvIGdyYXlzY2FsZSA8c3Ryb25nPmJlZm9yZTwvc3Ryb25nPiBhcHBseWluZyB0aGUgd2F0ZXJtYXJrLiAgSSBhbHNvIHJlbW92ZWQgdGhlIG5vZW1iZWQ9MSBhcmd1bWVudCBzbyB0aGF0IHRoZSBzeXN0ZW0gY291bGQgZW1iZWQgdGhlIGltYWdlIGluIHRoZSBIVE1MIG91dHB1dCBpZiB0aGUgYnJvd3NlciBzdXBwb3J0ZWQgaXQuICBUaGUgc2NyZWVuIGNhcHR1cmUgYmVsb3cgc2hvd3MgdGhlIGVmZmVjdC48L3A+DQo8aW1nIHNyYz0iZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwvOWovNEFBUVNrWkpSZ0FCQVFFQVlBQmdBQUQvMndCREFBZ0dCZ2NHQlFnSEJ3Y0pDUWdLREJRTkRBc0xEQmtTRXc4VUhSb2ZIaDBhSEJ3Z0pDNG5JQ0lzSXh3Y0tEY3BMREF4TkRRMEh5YzVQVGd5UEM0ek5ETC8yd0JEQVFrSkNRd0xEQmdORFJneUlSd2hNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpML3dBQVJDQUNoQWZBREFTSUFBaEVCQXhFQi84UUFIQUFBQVFRREFRQUFBQUFBQUFBQUFBQUFBQVFGQmdjQkFnTUkvOFFBVUJBQUFnRURBZ01FQndRR0J3UUlCUVVBQVFJREFBUVJCU0VHRWpFVFFWRmhCeFFpY1lHUnNTTXlvZEVWTTBKU2tzRVdKVFJpY25Qd0pGV0M0UmMyUTFOV2c2THhKalZFWTdKa2s3UEMwdi9FQUJnQkFRRUJBUUVBQUFBQUFBQUFBQUFBQUFBQkFnTUUvOFFBSXhFQkFRQUNBZ01BQWdJREFBQUFBQUFBQUFFQ0VTRXhBeEpCRXlJalFsRmhrZi9hQUF3REFRQUNFUU1SQUQ4QXRmVzlWdWJLNzAreHNrZzladnBHVlpMZ25zMENqSnlCdVQ0Q3RMdlZMblRMRlk5UXZOTWkxR1orV0RJY1J1TWdkTnpuZjZWMDRoazBYMWFLRFd3dll5TWVSbVZzS3c3K1pmdW56cUozTWwxSnd0SUhrdUpyTk5XZ1d5bXVBZTBlTG1IWE81R2VoTkJOTHJYTktzWkhqdXRRdDRYUndqSzc0SVlqT01lNGcxdEhyV2x5M3dzbzlRdG51V0dSRXNnSk8yZHZoVEZGREhKeEx4Z3p4cXg3R05RV1hPM1pIYjhCVFhERXFjSjhGdXNZVnhlUUhJWEIzNXMvT2dsYjhTNkpITzBNbXFXcVNxNWpaV2ZCRERZZytGYzU5U3VFNHRzZE9SazlXbnM1Wm05bkpMS1JqQjhLaTlycWVtVzJuOFNXZDJCSmNUMzF3RWdFUlpwYzdBREE4ZmxTcXppdU5MMW5oYzZoem93MDU3VnBDQ1FKU1JoU2U0MEVtbTEzU2JhOTlUbTFHMmp1TWdkbTBnQkJQY2ZBKytuQ3E0c2tnajBlNTBiVnRRZTF1WkpYV2UzTmlIZVFzMnpxMk10bklPZTZyQnRvUloyVVVEU3M2d3hoREkvVWhSakorVkEyWGV2SmE4UzJXa2xjaWRDWGsvY1kvY0h4NVcvQ2o5SlhQOUxwTk55bnF5NmY2d0J5NzgvUGpyNFk3cWl6eDZ2cSttYWxxVnJwMGJDN25GemJ6dGNjcm9zUjlnQk1iOUQzNzgxT1ZycU1WMXhkWmFpd1pJZFEwb0pFeFU0TW5NU1V6M0VZTkFzNGI0cHRkUjB5elcrdjdVYWxNR3pFQ0ZKUE1RQmp4d0J0VDdIZVcwMXhjVzhjeU5OYjQ3WkIxVEl5TS9DcTd0N2l6dWZSN0RvMGNiU2FzLzZxRVF0enE1Zkt2bkd3eHZuTlBkdmZ3Nkx4TnJhNmc3cTl6SEEwR0kyYnRpSStVOHVCdWM5MUJJUDA3cFF0bzdrNmhiaUdWR2RITFlES3B3eEh1SkFybWVKTkVXS0tRNnJhQkpTUWg3UWIvbDhhaDJnUmgyNE1FaUJnSTd0c01NNElKSU5MQmJ4Zm8zanI3RlAxMG1QWUhkSGtmanZRVGtISXlEa0dpa09pa25RZE9Kem4xV0xPZjhBcGRRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGUmx1RHJmbDVGbUVrWVVLb21WaVFBUDdyS1B3cVRVVlpkSlpzd2FOd3BiYVBmZXVMY1N5U0JaRVJPaUlybFNRQWNuOWdkU2FmNktLaWlqclJSUUZGSHdveDVVQ0RTOUxUU3hkaU9WNVBXYmw3bHVZQWNwYkdRTWQyMUw2TWVWR0Q0VUJrK05GR0Q0R2pCOERRRkZHRDRHczRQZ2FER1RSbXM0UGdheGcrQm9DaWlqNFVCUlI4S1BoUUZGR1BLakhsUUZGR0Q0R2pCOERRRkZHRDRHakI4RFFGRlp3ZkExakI4RFFGRkZGQVVVVVVCUlJSUUZGRkZBVVVZUGdhUGhRRkZGR0NUakc5QVVWbmtiOTF2bFJ5dCs2M3lvTVVWbmxiOTF2bFJnK0IrVkJpaWpCOEt6eXQrNmZsUVlvckpVanFDUGVLQXJIb3BQd29NVVZubGI5MXZsUVZZZFZJK0ZCaWlzNFBnZmxRQVQwQlB1RkJpaXM4amZ1TjhqUnlQOEF1TjhxREZGWktzT3FrZThVY2pmdU44cURGRlo1Ry9jYjVVY2ovdU44alFZb3JQSTM3cmZLamxiOTF2bFFZb3JQSzM3cCtWQUJQUUUrNFVHS0t6eXQrNjN5ckZBVVVVVURicVRFU3g0Skd4NmUra1hPMzd6Zk9sbXFmclkvOEordE4rZDhVRzVrWWsrMDN6ckhPeC9hYjUxcG5ldFNhRGN5UG43emZNMXpaM3hzemZNMFpOYzNvTW1SL3dCOXY0alhNeVAvQU40L3pOWUpyVW56b01OSkorKzM4UnJpOGttLzJqL3hHdDJKcE8yMUJocDVmKzhmK0kxMzRSMUE2a1k3ajJoOXN5WUxFN0NrTHR2MXhYSGdlZG9XZ2p4ekNTK2tRa2RCMU5CTTd4MkYzSjdSd0NOcytWY0M3ZDdINTExdnY3Wko4UHBTVmo0MEc1ZHNmZmI1MGRvL2V6Zk90TTVyR2ZIclFiRjIvZWI1MW9aSHo5OXZtYXh6QUhIU3ViTUQzMEdXa2NmdHQvRWEwTXIvQUw3L0FNUnJSbTNyUW5GQnNaWk1nYzdmeEd1VHpTRDl0LzRqUVczcmk1b05YbWtBMmxmK0kwNmNNeU0rcXlndTdBUW5xU2YyaFRMS2RzMDY4S0hPclQvNVBYL2lGQTROSTJUN1I2bnZySGFzUDJtK2RJM3VWRHZueElybWJ0UjNpZ2NSTTNUbWI1MW50Vy9mYjUwMEhVWTFKSE91UjRtdWI2cW1OblgrSVVEMFozRFlMSEdPdWF3YnZsNnNmblVOMURpcTFzY21hZFZ4M2MxTTQ5SWVselNkbjZ5QWZOcUNmM2VzcmJxVHprbnVxUDNuRkZ3U1FraEh1cU5YWEVsczhxWm1UczMyRDgydzk5STVOUnNaRWtjWDBhaGNrc1BMejhhQ1FXK3U2cnFsekxhNmRJSlpvd0RKelB5ckdQTStQbDFwMWcvU2ZOT3Q1cTBrVFE0TGRpQUZIbWM1cXNMVGk2YmhKQjZ0SDYyOXlyT3N6ZXlEL2UvR21IVXVKZUlicTZhU1NTNVJnUVNlN0k2SHBRWHh4UnFWN29jVnJjV2NzenFVVm1TWWhsa0J4dnR2bWwzRkZ5N2VqdlVaMUxJL1pxUmdrRmZiVGJOZWZoeFZ4TnFOM0hjM2Q5ZTMwdzI3TmwyS2c1SGRqOEt0NXRSdk5VOUNtcTNWN0QyTndTUXlrNXhoMC9HZ3FtYTh1aHE4eWk5dVZSbEJHSm14dDhhYzlPdmJpTy9RdGUzUElSZzgwckhjL0dtSjVRK3AyNVljM1BFUnYxR0tjWW1DVHh0eUhQZmdaelFMZGV1cnY5Slcwa2Q1Y3NuWjQvWE1Od1Q0R3JEMEtHYTZ0cktkcHBzUEdySDJ6NGUrcTAxUW5sZ3dDQUdJcXp1Q3B1MDRldFhPK0U1Q2ViTzRQL09nbDh6eGlHT0ZwQ0M1NVZHKzV4bnI4S3I3aXkya2kwL1VwVXZycVA3Rjh4aVRBSldSUU1EcmpHYzc5Y1ZON216bnVSYnNzVGtKTXNnSUhVak9LWU9MOU5kcmFlTllwaFBMYnlvaUlvOXRoeWxWM0JQZWVtS0JyOURkeEpKZmFyYnp5U3lFd0NSUzdsc2R4RzU4NmV1STdDd3V0T251bkVndllMZGxpbEU3cmdEZm9Eang2aW1EMFZXOTNZNnpyRU1rYjI4NldXTVNqN2pjM2VLYk5WdCtKRnRuZTUxN3RvU3BMeHBiZ0Fqd3ozVURYcGRsZGF2cU1LRzR1Skk0b0pKR2dhNGRPMWJLcU1rSG9NNXA4czMvQUtObTRqdTdxNWdnZVJXUWM3U3RKN0lKVUU5d09mY01aOGFqZWdhdU5LMSswRnhJa2NFc1VxU083WUM0NVdCejhLYytPTFJMbzJlcTJjNGx0K1Rzbk1XNHh6WkRlZWM0K1ZCcHFYRmtwZGhienl4WUo1RldSdVlmSHAxOHFlL1NWZDNJOUhIQ2N5elRSeXlNcGNyS1FUOWoza0hlb0J5VzRraGNPNkJUek1yc0R5TjQ1eDVEM1ZPdlNTREo2Tk9EOGtra3BrbnIrcG9LcHViNitWVllYdDBOOS90My9PdTl0cVY3bFZON2NrZjU3L25TZlVFVDFJeUkyU2tuSytEME5iUjJGNHVuUjZpMXZKNm04blpyTVI3SllkUm54b0gyMTFiVTdRTzl0cVYxRTdxVmJsbEp5cDd0elRkYzM5NmNrWHQxelpIU2R0L3hvaWxIWURmcDFwSGRrTmJ0bkIzSFh1b0YxcmRhZ0M2UzNOMnUzUnBuMi9Hc1RYbDR1Q3Q3YytYMjdmblNmUVZTVzVaWldrN0lKelB5QUZnTWpwbnJXOThxTEk1aDUreTVqeWw4Wng1NG9POXRxTitqaHhlM0lLbktudFcyUGQzMUtSZFNYc1NYME54T2dmYVdOWlg1WTVSMVViOUQ5NGU4anVxRnBJQXVOcytkUFhEK3BSMkY4ZTNhUVdjdzVaa1h3N21IbXAzeDNqYnZvSmJhVDNNRFJTdGNURWcvdFNzZlB4cVZlbWEzdUg0U3NieTFtbFJ1MVJXYU55dlZXSTZlZGQ3UGh5RFZFaVRuVlpjWVlqOXZ3T2ZkaXM4Y3pUM0dnMi9EcldydGNDTkp1MVpoK3lTdUFQRWp2b0thNFU5ZkhGMmpjOTVjbFBYb1F5dE94eU9jZFJtdlV4Nm1xUTRXNFdnaDFxd2x1VW5XZU80UjFWbUM0SVlIY1kvblYzMEJSUlJRTldyZnJZdjhKK3ROMmFjZFcvV3hmNFQ5YWJHb01rNzFyellyREhHK0RURnhKeEhIb05vc2trTHVIeUF5NHdNVUQ0eml1WmtxcFg5Szk3SEovWjdSeDAzTENsTmg2VzRUSVYxR3pDb1RzMEJKSStCb0xOTGQ5YU14eDAycVBhZnhsb3VvUks2WHFLemZzTm5tSHdwYituTk56L2JJL2tmeW9IRW5hdUQwUTNVVjFFSllKQkloSkFJMjZWaVEwQ1Z6dmsrTkxPQTJIcXlzZWtsM0tVYjk0WjZqeXBqMTErVFRqdXdWcEVWc0hIc2xnQ0trdkRLQkpyZU5SaFZrT0I0YlVEM3FHMTVKOFBwU1VtbFYvd0QyeVQ0ZlNraG9OUWE1VFRpQ0o1Q0NRZ3pnZFRYVHY2VkZPTmRURnBwZ3RSS1kzdVR5bGhuT1BEYnhvR0RXUFNSUGIzVWkybHFCR3UzMjNYUGYwcEZINlZKU3ltU3lqNU0rMWc3NHFLWDF2RDJUTUgrWUpOTWtpb2lmZkdmZWFDN2RONDMwblU1WTRvM1pKSHprUHNGMjhha0N5TElvWkdEQTlDRFhtK0c0RWI1RXBVK0lxenVCZUpSTmJ6UjMxNkFzU2hZMU9mblFXRWE1T2F5a2lTSXJvUVZZQWdqdnJWK2xBbmtPMUx1REhlWGlPK0xPZVJJQWlwL3hESnBCSjBwWndSLzFqMUxiZnN4LytRb0VNOXkzYXZ2KzBmclhBenUzZlRoUGFxSlgvd0FSN3ZPdVl0b3oxejhxQ0JhKzUvUzhwNytWZnBVWTFqV1UwK0VxcEJtWVlVZUZUVGlDMlJkWWxBSFJGN3ZLcWcxNlpwTlRteWM0WWdlVkFpbnU1WjVHZVNRbGoxcmdKQ0QxM3BWWTZaUGZ2N0lLb09yR24rMzRidDBBN1RMSHpvSStsMFZYQlk4Z09TdFNmVGVLMnNiVTI1Z1dhMUE1bFZrQjVUNDBvVGh1eGRkNCt2aFcwM0NUVzFsTE5iUHpFRG1LTjRlRlp5eTlYYncrTDhtVjN4RERmVHlhbmMrc0ZFUlQ5MVJzQU8rbjIwamtFMGJYSEswSXh6S2k0SkhobnVxTHh5eUpjTUhYbHdTQ25jS21kdUJJcU1DTUVDdE9WNHZCMzFLZlJwOU1TTFM5TW10YnpJTHl5ejlvcFh2SExVdjBkSm45Q0dzSklVWnpPNEhLdktNYzBkUVJVd3dxZjJRNWZRcHJCSC9mc2Y4QTF4MFJWODJuOGlXMGpTeFFoSEdXZDlzSEdOeG1sQ3VPYmw1d1dVbko1ZWxLTlRUdHREbG54Z1JjcmJlUnh2U09FYy8zUWNBS1RnYkRPOUF0bmlnbGpMM0lrWlkvYlFJMk10NW51RlNyU3RZMUMzNGFnc3JCa3RtZWN6Q1NSTXF1RGpCSjNPZHNZMjYxcm8wT25hVGJSNmpxTUNYRFNZN08xSzh3T1AyaU84Ky9hcE54WGJhWHJsdnA1dGRTZ3RKb01Sc2dRcUZYT2NBQWJZOEtDVGFSTmZYSEFLYWhleE9OUWUzOXVNTmxjZzR5ZzdnUnZTVGpEU1UxT1FhZkVwU05jWjVDUUZCVTlRTzQ3L2hXcWNZNlRvOXREcGNWM0JJcVFCRkRCdGdQSUNtdldPSnJTNzdTUzF2U0hsVEplRkNyTmdiWlBkamY1MERiNk9yQ2JTK0lMcEdFZmFQRTZHRG13NFFPQ0dJNllQejM2VWwxeVdlN25sdG9OUG1rY2RvZ1ZjRGJmNmJVcTRIbnM5SnZudjcrK2lUMWlKb2l4SkxoMndjSGJ4Rk9TVGk5bXVvTk9qVml4ZkxKdThvemduSnh0M1lIa2FDdlhzN2JTOWNnVnJVM1YrRVBOSVAxTUFLQTR3UjdUZWZRZWRTMkd3VFZiTjlKRVUwYzE0V2o3Y3I3SUJJSU9ldUFQS25XeTRYMUxWTGp0Z3FReE1uTDJqbmJ3SXgzOUtlK0lORy9SSERkOWUyMTFLdHhCYnM2ZGtpb2VZRGJCRzQrdEJIcmIwTTI2eHFyNnBLYzlTSTg5L2NQblNEMHY2ZEhwZkJ2RCttMjVZeFcxeDJLRnVwQ3hFRE5NY043ZlJjczh1cDZqTTdMMG52WkdBK0dhZC9TZ3hsOUgzRERzU3hhUlNTU1NUOWw0OWFDQjJkL3BiK2l5LzBpNGRVMU9DY01pSDd6NWNFRmZoa2ZDbUtIVFk1TEtKMUpWbVVIeXB5MUtPSDlEdnlBaHlZeWM1eDFydHA5dVRZUW5HM0wzRHpvR1gxZTZqUXJnT3ZpSzB1VUJzOEdUN1ZqN1VaVWdyanZ6ME5XR25EVWMyak5jS3dFZ09mZUtoK3ByYnZadUJNbk1xY3d3TzRIZmVnNThNUnc1djhBdFdDLzdNZVRQZWVaYTIxYUlKWmlSVjJMNDYxdzBPNGhFVnlHbTVIYkM5TzcvUXBicTZ3TG9pTjJ2TS9iYmtIMmNZUGRqcjhhQnZuTnBjTmJlb3dTeHVVV04wYVR0REpKbnF1d3dQTGYzME9XdHlWbFVxd09HQkdDcEhpS0lqQkN0c3lTOGtvWVNsbEcrT3V4UFErRk9Fa1A2VXRaUFYrU1ptT1pKTWI4eDhjNzR4MU5CWm5vNTF1M2l0SWJHNHVJa2VNaDRPWTRPQ1NTdWZ4SHZOU3ZqZlU3SzN0YkxWWkFYZ0JNSkNZNXNuQkhYdTJhb2J3N2NhRmJXZHFzZWl5WFZ6Z0xKTk9WU05pTy9PYzRIdTN3S2xFV3JXdXN2ZDJOeHBObzhjWjVvdzZDUUU0MjNQdk9OdkhwUU1XaThjNkxOckZsWkxhWFlra21TTkNRbUF4SUF6djUxYTlSdlRZZEFUczQ0dExzNHJtSnRpYlpBU2ViQUtuSGppcEpRRkZGRkEwNnYrdGlIZHluNjAxbjQwNmF4K3RpL3dBSit0Tlo2VUdqbkJxck9MWTdqV1pidWRGa2tpajJSYzdJTmgrUFdyUWx4eU5ud3FOYWhESEZvVjAwYWNvZVBKK1lvS1B1OU5samNGbEk4YVF2QVEyTUdwbGZoUk1SanJUUFBHdk1kaG1nYUxkNWJhWkpFWW80NkVWWmtFUUdueFM5b09ZZ2JaeWZuVUVhMzdRcXdYWlR1ZTRWTE5KbmFhd1JTMmV6OW5HVGlwZStIWEgxbU51U3dPSE0vb1pQOHgvclRpNDg2YnVIQi9VeWY0Mit0T0xnRUhiOGFya1pkZlhtMHFVRFlCbE9mY3dxVWNONDlZaHpuUGEveXFOYStCK2hybnlYUHlxUjhOTVBXNFFSakQ1SG50UVBkL2oxdVhQWGI2VWthbGQvL2JKUGg5S1JtZzVucjVWRGVNb28zRWJsY3VycnY4RFV5WVZYL0hGM0phSzZrQWt5S3did0hLMjFCRk5RUlRHQVI1Vkg3cTNqTzRYcFdialdwWGN4dEltT25URkk1OVFJSURZMzZlWW9OVGJxVklWY2swODZIQjZuZGxSSm5uVGRmQTB6UVhoNXhJRndvNkhQZlRoWVR5eWFwRGdFZzdkZWdyUDExL1dZWGM1cTc3TCt3VzMrVXYwRmRHclN5SDlYMjMrVXYwRmRXclRrVFA1VXI0TDI0bjFJZDNZS2Z4RkpaQUFDS1hjSVFzbkUxN0pqMlh0aGcvOEFFS0IzdnJEdE9hV0pkeDFVZC9uVE0wWEtjZC9oVWxzN3VDOWphUzNjTUF4VStJTk1la290M2RYbmFuT1B1K1dTYUN1ZU1iZ1dsMWV6bmJzNFZJK1ZWQlpXajZ2cWJBa2hjODhqZkgrZFc1NlNvMVJ0VFJ0MkVDNDkrQlZlOE1RRkxPYVlETE8rQWZJZjZOQTdKSEZieGlLSlFxcjB4UVh5TnF5M0tvM085Y3k0QjJvZjZMYlpuN1JNYmJqZndwN2pua3VWVlpRdlVqUFhKcU9QcTY2ZEFVbWhQaXB5Q0NmRVZ6c3VKQUpFTEFoQWVwRlluN1hsNk05K1BIMWw3N2FjVGFGNnZJYnVKUFpjKzFpdGRLY3BHSTJPZVhkVFU0U08zMXpSeWdiWmw2K0JxTFh1aTNXblhNbG82OW5kUnR5RlQ0N1lQaGl0dk9VRFpzL09yQzBrYy9vYzFVWTVzelB0L3dBVWRRRThLY1gyMkd1TGJUeVd3QW8xQ0htT1NBTnViekZXTkJwZDlwZm9oMVcxdm9WaXVESVg1QklzZ3dXajcxSkhjYUNDUThoaW10NUVVOXRIZ2dBTnZqWUg2MGh0bFpKWmJkWWdvZFZEWklQVHd4N3V0S1lvcFNRdlo4MlJoZVhiRktMZlREYXBKUE93UjJURVNuUHROM1o4Z042QlhFNnJhTERkU2lPT004OGJPY2V6akpBOXczK0hqUzVicTI5Wm41V0gzeWMrTlIyU1AxaG1rdXVXZDJVcG45MWNZd005T3A2VkdwNzIrc0x5ZFlIVjRneDVlY2tIRkJLTlhlMmFhV1FaREJBK1Y3eG5jZktucUdkSklVYUloazVkNUNOaC93QSt0UXF3bU4xY29ibzg1WkdCQzlDUVFjVktrdlJ5aFVqUGdpS05nS0haVjJaRml4bTlsUk1DR0M1TGUyTno4S2VlSE5YV0RYSkNxS3dFTGN1VHQxRlJLNTFHVW9Va2JCOEFlbmlLN2FCTDJ1cTRQc2pzempiT2VtMVNiMjY1K3NrazdYVm8yb1BmQThpS3FxTmdvd0JUaHExZ2RTMGlhejluTXE4cExaeCtGTlhDL0l0bmtZQ2c0eWNDbjJXN2lqQUJkYzkyOVZ5VmpjZWk3VlpKUzYzMXJnbmNIbUpIdXlLUitsaXlleDRMNGZzbllNMEUzWnN3NkVpT3JNdTlVYUI0WUlpc2x4T3hXTmU0WTZzZklWWDNwa0RmMGQwcnRNT3d1bTVpQmpKN005MUJVOTR4ZlRtRFl4eXIwOGpVaTRYc2x1dE9qT2RsY2pyVVlaSkpyY3hSUnU3RWJLb3ozMUwrRjNGbnBCN1pzRVNPTUFGaDNkNDJvSmE1aGcwL2tZQUtWNUJzT3ZLYXFiVjQ0a3RabDdVb3doYktqSHRFNHF6N2kxbXV0TU53dk1zQ0ZaR2RsSUFVRGMvalZjYXZicEJGY3JMS3F5c3JEbEQrN0cxQWg0U3RvcGt2ekpHckZJd1Z5T2gzNlVwMTdtT2xxZ2ZtVHRWUElFRzNYSnoxUGZTZmhrekpZNm9ZT1R0REV2THpianZwTFBOcUNNVGRQRzhhN3NzYTlQT2l5YjRqakpwZ3VvcEpvcmh1YU1LRVJrKzhNZmhVaDRldHJTMnNwNUppVnlWT1hrd1cyNkZSMUh3cHIwL1ViWjVaVVNUSE5qT1RzY2Z1K1hTazZMS2w3Y3JMTUFXWUVNQjFIbDlLazIzNVBYaVluKzcxRlhpTU5zeXdGYzRrQTVXd1Q1ZFIxMnBIYWFyYzJxUlNpK20zTEtGU1U1akp3Q1YzMlBUZWtrYUpFSGFYTEJ6eS9mM0FIdTdxU3RhTUovc3lBR0dNL21hcm1tdkRXc1hNdkVHblF5WGJ1R3ZvbHl6RTVITnY4TW41bXZRWjYxNWY0V0NyeFhvS0F2bjF1RTRKKzk3WTM5MWVvRDFOQVVVVVVEVHJINjJML0NmclRVVFRyckg2MkwvQ2ZyVFV3eFFJdFJXV1N4bVdFa1NFYllHU2ZLcTc0azFTOEdreWhZMzVPendER2RodjMxWnJEUHhxQWNTMnl0cHQ3bHlpaFNjZkhwUVZhbDFjM0pmTE1lWEdTYVF5WGtwa0lHZWJwaW5xMENSMnM3a0FLMlZYSXdXSGpUVkhDcjNaYmZzd2NsZ003K0ZTM1RXR0Z6eW1NS0xlNW1paENsWFZuR2QraEhqVWk0YVNUMU9SMlBzRnVWYy9qVWQ1MWtrWmdOaWRzOXdxYldGdUxXeWloR2RodjcrcHBQOEFMWGt2T3BlSW5YRG4vd0FtVC9NZjYwNFBta0hEZy9xWlA4eC9yVGk0OHFybVFYbHVsMWJ5UVNaNUpGNVRqclNqZzcxdUhXT3d1NVZkUXk5azRHT2JZN2Urc1NZQXllZ3Jod2FicTkxNkcrbUNwQTI4VVliUEtOOEgzbWdtZCtNM2tudytsSXp2UzIrL3RrbncrbEltb09iYi9Pb1R4OUR6MjFzd3dDWDVTRDNqQnFiRVZFZU9vODZaYnlmdXpZUHV3YUNwRnRnTlV3UXJ1UGE2REFIaWFiZFVRUGVNVUdRVGdBZDFQZlp2RzA3ckh6RWtndG1tc3hHTjJubHljYkR2elV0MDZlUEQzeTE4Y1l3VUhZWktxUHZBNy9LbjdoNjE1cDViazlFWGtYMzB3UjU2NzVZbXBadzloZE9Za2pkenRTTTU1YnEyckVmMWZiZjVTZlFWMGF1ZGtmNnZ0dW42cGZvSzZ0VlpKMy9HbmJoVEg2VW1HUm5zZkgrOEthM0hmU3JoWUgrbHN1d1AreEhIL3dDNHRBeTIxek5ZM2tra0RsVHp0MzdIZXBEdzY2OGx3NTZ1eWo2bW9xazhVOGtqd3lwSXZPd0pRNTN5ZHFsR2dxRnRGa0IzTWh5UElEL25RVnA2VVU3VFVyeU1kOGEvSDJhcjIwdkd0dElpU0llMHpOMDk5V1Z4MnF6Y1N6Um43cGlYNlZBYm5UUFUxNVk4bFFTVkI4eFFORFg5ekhMOW8yYW1PaWFXZFNzM25La3FxOVBNOUtoaVdVdDFlckh1Y3RqSGNCVnRhRUlyUFRqQU1EbTJPS3psZmtlandZUzMyejZpcGJ3eUM1ZFhMc3FzY2MxU1BocVMwbWplM25UbjV3Unk4dmwxcDkxL2htMHVoMnNXRWw4UWRqVWR0Yks0MDZiazVjTWYybE5XVFRqbGx1N1NEaHZPbjMwbHNIWm9UbkN0M1ZOdlNQcHhoNGd0YnIyUkRxRnFGWjhmZGVNREh6QnFJNkxhWVl1NCswTzVKcTIrTjlPRjVZNlFlVUVSdVEyZTVTZ3lmd3FzdlBsdGJTcnhIUGJ5TXhJa1RjbnBsaFZvOENHTnZRdnFKbHlFOWFrSjVtNXUrUHZxRGFiRTF4eGs1a1BNUVVCSTc4SFkvR3B6d0RDMDNvWTFDTlRrdGR5QUVqempvR2g3cUlqRnRiRUgrL2tmZ0tqMnFQZFBlOW8wemN5a01DeE9QRHArRlNkZEtuNWo3Y1lIUW5QMHBCcVdnWEZ5ckxFRVk0M3pKZ252L2xRSWJDZEpRVmZsRGpmQk5NdXFXS1NyZHlTRlJ5Uyt3UDJqdjlQR25XWFNOUnNFOVlrV0lGUjFFZ3lQY08rbXFTVVNRM0FtTE5MMjR5NU81SlBTZ1RjeTJuWUFFdmx1VlNPbzV1LzhLMmdrbVVkcDJzMkZ4N1N2ME5Kcmt5SzVTS1BNdk1BaTQ2R2xjeFJVU0ZEbmxQTWR2R3MyL0hieDRjWE84YUtrbGFaUTdrbGlNYm1uamhzRWFxMkIxUWsvTVV4VzJleVZSNTcxSXVHVUg2U1k5QUl5YzU2N2l0T1Z1N3RZZHZxM3FrSUdTRlU3S1A1MXRIeEhidEFWTnZJOHhQMysxMjM4c1V4em4yU0NSanZ6dlNOVzVFWE9TT3V3eFJEN2U2bk5jM1ZyYzI4aXBjMno5cEVYUHNFOTRiRytEU24wZ2FsYXg4UGFMZmFwWXJjcTgzTThLUHRrcHZocWpzWE14VnM0SG4xcHk5SmFrY0dhQ3VkaElBYzkvd0JuUVFMVjlUMGk4UmpZMlUxdWtnT0FoQVpSNy84QWx2Uy9obWZrNFpXSU4rc3VabEJIVFpZelVYV1BKQXdRRDMrNnBIcDFyY3cyTnJieXlRV3FMTEk2dUY1bU9WWEpLbllqQThxQzRZTGVPNTRXU055TVBaWXg0K3ptcUcxYUx0M2FTYWFOVUtNVThTVGpwNWJWUGJhVzVsdHBZUk04aXhXdk1qdU1rWnlENWJrZUhTb0hKcDhqS1RKMmFzUU44N2swQ1hRWXpiMjJvZGxseWljcjdiRTc5UERGSlpyZWRyUnBwa051amphVTViT05zWUc1cCswcXdGckhER3JjL3JqQldJSFFjckhLL0d0TDdUNTdpWCswQ1FnWUhOMDIyK2xadDUwN1lZK3VQdjhBOFJpMGpqZ1o0b29tWWN4ekk0Qlp2Y2U0SHdGVFBoL2hHUGlwYmlkTHRyVXdGVXcwZWViSXpYSFQ5RGpCWjdpYm1ibTJFWitwcFRkTmM2ZHlKWVQzRVVUdVRJeVRGU2R0aHQ4NjA0bjVmUTR0eEd6dnJCU01kQUlUOGUrdVRlalcxdDlTdElCUExNMTB4aURsVGhRQm5tWWRNNUk3Nmo3YXpxRGpzenFWNGNlTTc0K3RkN1c5dllBWnZYYmxXeDkvdFd5UGQ0ZDlCTXJMMGFwcEd0YWZlUjNTVFNSM0ViSENsUnlnNXhqSnEwcW9MU05XdnB1SjlMRWw3ZFNLMTdDQ3BtWnR1WWRkK2xYNmV0QVVVVVVEVHE0KzJpL3duNjAxdDFOT21yL3JvdjhBQ2ZyVFBQTEhDcFp6amFnRHNEVUs0dWh4WWFpdlFOSGxjZjY4YTE0cTQ4WFNVRU5uR2ozTDlPWW5Dang4NmJmV2RRMWJnNXRUdnBBelRoeWdWUW9WUVFQcUNhQ0VYRnU3V3lvektNZ2ROc1UwWENQQ0JFR1hCd1RnWUk2N1ZLSGJzYmRwR0h0Z1pUSS8xbW94SnpHVjNicXh6V2U3dzd6K1BEYzdyTWVBeTVPQVNLblNYTUw3SktyZjhWUURPV0E3cTAxSkdVeFNnZTBSeWsxcHdYeHcyNE9pcHY4QTlvMzFwelk3bndxcnVDYjY4azBkVWptYjJISU8vanZVMWkxQzVRRHR2YVhvY2pjVUR1dzV0cTA0Q2NGTEVlQUkvRWl0SVprbTVYUTdWeDlIczNNYk5jN0NXUmZreG9KdGZIL2JaUGVQcFNRMHZ1SURMZXluY0tDTi9nS2E5U25GcWpjdEFrdnRTdHJDSjVKNU1LaWxteDRDcXgxbmpkdUk1RXNMUzA3S0lNWkRJN1pibEFJNmQzV3QrT3RVWVdKaERlMU9lWFBsMzFIdUdyVlRhWHVvTUR6UnNzU2p1T1FTZmo3TkIyRVpkWFhHZmRUQnFNaGE0TVNoVlJHSUFVWUJxVVRzbHBGSVFEMnBQTHlrZEI0Kzd6cU56NW5sSlVFNDhxejNYZkwrUENZenVrR1FxN1YyRTg4ZG5JWXBXUXJ2N0pyVDFhUjVNY3BIODZkLzBTMFZvNnY5NWtMSDVWcHdPL0MzR09wbVdPMG1uYVVjbnNjeDZZSFNwOWI2MUl3SGFwdGp1cW5PSDNGdHJkbXo3QVNCVzl4MnE0b0xSSkdaQjk1ZW5uUU9FZHdrNHloelR0d3Qvd0JaV2J1OVZQOEEvSXRRdUdkNEptR2NGV3dSVXg0UGxFMnRNNFAvQU5NZTcrK3RCQ05FMCtUUzdKNEplWHRPMmtadVh6WTFPZEt4SHA4RGQ1VmlmblVQdjc1TFIzWmxKek55NEhpVGlwWlpjeTZkSC9rRGJ6b0s5NHJrRW5FOHpaNkluMHFOWDR5ZHFmT0kyenhEYys1ZnBUVEtuTkltMmNrREhqVHBaTjNSdnRtaDArS1NhUU4ycmRHQTZEd3J0WjYxY3JhdTlxcXRJU0FzYkhsMm8xV1pJNHhBcWdqcUY4S1k0ZzhWMHJjMkIxNjlLeGp6ZHZSNXNyaEo0cGVrdnY4QVY1NTlOdHB1d2FLUU9WbFRQZGl0YkIxdmd2TVBiQnJsQmR6WEZ1ZTFaSkF1d0FyYUdhQzJaWjBYa2tEcUNtZXU5YmVaSWJlTHNtSGtLdGZpcUs2ZlJJbXRRR1pRQVJueEFIODZxNzJUR3NtZW83cXVLZTU3RFNubTVBNnhRaCtYdkpBRkJTeWNNM1dsY2ZHeldPUzRsaHNvSG1rUmRpeDVtUHlHQjhLZGVCN2x0SjlDdXBYSURGbzdxUmh5NVU3bU1menFSM3VwM1YzcU1sekZQTkFIeDdFY2h3TURGWjRpZVc0OUYrcm1WeTduQXkzK05LQ3RocitvYzdNc2l1dVRndW1lK3UwWEUyb0dWVktRRlNSemZaNHorTk1mT1c1Y1pCNVJuUGpXd2tBWUFqY0E5UEdna3R5V3VZNU9ac3VWYkF4MDJxRVNaamU2aW5XWExFaENpNUtzRGtaOTFUTExOR1cyeHlnK09ENFZIWms3YlVKakpua0VoTEVEenBicnRjY2ZhNmN3SGtUMWh4SGtjcDNYcWZIeU8xSjFzNDJZQTdIeHBYS1VlUUpFQ1VRWUI4YTVlSU9jMW1UNjYrVy8xblRlS0JJMXh6WndjbW43aDFrL1NUYjQreGI2aW1PTndVTzJNZUZPbWc1L1NMTGpPWWllbm1LMDRwUGQ5cGNRY3R1c2JOa2ZySEkyNys2dEFKQVBiNVNPbU91YTV1N0kvTHNBZTdPNjFsWlhWVUF3Um53M0ZCM2k1bzhCSTA4eVJuNFV1OUk0RGNGY1A1YkM4NEpQL2wwM3d1Q2dITDdaT2NIK1ZPbnBKVURnelE0eEhMSXhmQ3BHaFppZXo4UHpvS3RnUU5JTTdqOW1uYTNtN0Z3RkJkczVCYnVKMk8xSUxXMTFDV1JtT2wzTUtvTW5uWGZidnBYR1MwcHg3SURic2Vnb0hYU3A1NXI2Zm5seVJDTUJqdGpKNkNtNEdLS01IbTUyQysyN0hHUGRXbk42dmVtV0tSdVFRdXBKNzl0cWo5dHFETXFtNFVjb0d4eWNacVc2aldHSHRsby9UWFhxY1VNY01tU2h5R0kzR050dktteDd1UjMyY2s5ZGp0U1dTN2U1UGFIQXlCc0t4R3h5b09OajNmNjNxU2E3Yjh1VzdxZFJLZExWbmhCSkp5ZHFsbWw4TlFhOVkzSWxuYUlxNmdGUUQzWnFIV045SEJBRkl5M2o0Vk5PR2JxY1dWMUxKYnVzSGFKbHpzdWNiYjFweWJRK2kyS0tVVG05ZVdNbmNORmdIOGFYYWp3anAwdG42dkUxcmJ5TU1Cc01UMytkS2RFblhYZGN2YlNlUTlsYm9yUlcvTmdNRG5tWStQZDdxa0Z2cEVOdEt4TWs5d3p0a0xJMlF2dUhRVUZlNlR3T2x0cmxuY0RVMlpvTGxHS0MzSTV1VmdjWnowODZ0M3ZwTGJQaHdpUkJGT2Q4WVB1cFZRRkZGRkEzYW9BQXJrYmhTS2dlczNiaGl2TjdxbXV1ekNHTmM1eHlNZmxVQTF3TkhwazF5Y2V4SG5meDVjMEZROFFYUnVkWnVYVTdLZVZmaFZxM1ZpbHB3cEhwOFlWVEhhWUNIdUlPVDhTRFZWNk5aSFY5ZnRMVWdudDVSemVRemsvaFZ2NnV2cmRzWi9hV0x0RkxjdlhCVUEvSDJhTExxN1ZscTF3NmZZcjl4QjdKRk16UU04WVlZREh4TldmcUhCRnZjTVRGUEtoWE9jNHdmd3BKYWVqMHZNclRUc2tYTHVWSUpIbDBxU2FYUE81M2FCYWJwSnVadmIrNk4ySXJPdldhcnBrY3FBRERuNWRLdFN4NFNzQWhFVXM0UUl6ODJWeTJQaFRQcUhDVUUzRFhPc3N4SlNVNE9NWkI5MVZsR3ZSeEptYTh0aWZ2UmM2RHpCMy9BQXF4TG1JVGFQTGNSRDJvOEZzZVhmVlJjUFhMNlZybGxNakVCWmdHOXhPRFZ4c3kyTjZIVVp0TGs4a3Fub3BiYlB1M29HbTB1bWhkWkFUZ2taQXBad1RPTERYckxUcGM5cEpjU09oQTJaV3lSaitkTXR3aHRMNlcxeWZzNU9VZTdiODZjTkM3U2JqRGgyUmQxaHVtVmg0QmtQNVVGczNzcXhMbnY2L2hVVzFoak5KeUFaRElyWjk3RUQ2VTk2NjdMQ1dUN3kvekZNY014bGthVlJrQlZ4bm9QWjJ6N2lTYUNuT09uL3JXSzJCejJhNVBodjhBKzFQUEQxb2c0THQxY0FOTmZkcWMvdEFLeTFGK0paRGVjVFhmWjViTW5ab0QxMjIvR3JWdE5FdHA3VFM3VTg4Y0VMbFBZeG5iYnc4elVzMjFqbDYzYUR6ODEvQUdjRG1YS0FqdnhUSzJtM0NzUUV5ZkVWWXk4SzJ5WHQ5YkxOTUdqSmRlbmNkeDA4S1ZhYnduWTNGeDJuckU1aVplYkdSN08zdXBKcUpsbGNydXEvdGROVzJZU1NnR1FkRkcrUGZTbTRRaWFaY2RJZnFhbXR2d2hhU3Vaak5PVWxsRWNlQ09nNm5wV3ljSjJVK3JYeUdhNTVVangrejQrNnFpbmIrMk5ocVJBR0NPVng4Z2F0elRMc3phUlk2ckYxYU1DUWZoVmVjYVFpUFZWa2pCNUFnUUU5K052NVZKT0JOUUV1aFRXcmtuc1d4azlBRFFQR3RLa2Q0czBXT1NkQXc5L2ZVaDlIa3ZhYXRjZUhZYmZ4aW9qcU0yWUZpWnZhZ2tKSCtFL3dEdFVuOUhEWjFxY2Y4QTZYUC9BSzFvSW5yQkwzcXhnQWdPMGorSTlyQS9ITldFekNKSkY1bCs0dkt1Um5HS3I2NDVaZFR1RGtFOXVzWFR3YkordFQ3VVlZMEU4cklwZENRajQzQW9LcTF1VXZyZHd4UGdOdmRYQVhOc2xxNUxqdFVQTmpJQitGSXRkbVlYRjlNcFlGRjJLOWM5MVFHOHVuYWNlMFN5bmRzOWE1NWMzMWoxZUdYeFkvbCtwTGVHYVM2SlVrazc1OEtRZXJTdktBWlRrbWx1bjNJdXJkSmYyaXVHOTlFMFRCdzNOamV1a21ubXR0NXA2c05GREtNeVM4elk2TmpGYTZqcDcyZXBXa1FrWjBiR1N4enZtbkhTV2Jzd2M4M3g2VTRYVmtaSlV1RHZ5N2dHaUZrRTRXSlVKNkRIU3JkdXBzNkpPQm5sTnYzKzZxV3QzTFNFRVlPZmhWelRXTW1wYUplV1NTdEU4dHFVV1ZlcWtyMStsQkdFUU1lWUhhbFd1cnplalRWVkdNay8vd0IwcWgzNHU0bzBXL2EzdTdtVG1qT0NzZ3lweDc2dHZUTmNtNGs5QzJwM3NrYVJ5Q1JveUU2SGxaTi94b0s1bnlJSStUb3ZOek1XNkFIb0s0eHlySXdZREJCMkpwNHNiUlo0Z1NBeWtuSVllT0tjWTlHdDJJTFJLQU54c0JRY2JXVHRZSXozY3VNVTF6bG9wSnhrY3p5SHAxSS9sVXFpMCtHUG91QmpwamFrc3ZEbHROUEpPWlpnWEpZZ0VZK2xTemJlR2ZwdEZoa0RJMkhjSzJHQ0J0dlVsWGhxMnpneVRLZXU1SDRiVm4ramxwZy9hejQ5NC9LcXdpK01FbmJ3NlU2YUQ3Vit3NWlCMmJkQm53cDBIRGxwalBiem5IZGtiZmhYVzMwbUN3bU1rY2tqRWpCREVZSFR3SGpnVUc1NUE0NWVZZCtjWi8xLzcxb1h5cElVcTIrM1U0LzF2OGE2RUZpQUQ3UGVDRG5yMXJXUU1HSHM1eU01eDhmK1ZCMGljeG5DSGRqZ3VSemY2SFdwaHhISVR3bG96am1VRUxrRWYzTytvY2hVZlpsU001RzJ3UDhBck5TN2laLy9BSVMwUWdrOHdIeDlpZ2lxdXl1R0RrTU9oQjZlNm0rL3NCTXBraEFFZ3lTZ0dGZjNlQit0S1F4OW81RzJPdGI1NXdWQk80NjBFTXZKcFlPekV2TW1YNUdUdkFJTk1rMG5MQ2tBKzZBQ1NEbk5UL1VkSmcxT01KSjdFaWJDVlJ2N2o1VkZKdUc1TGVReHV6SEIyWlJzdzhSdFVzMjZZNStzc24wMnhIN01ZK2xLSWxQTm5POU8xdHcvSDJhOHp5YzNmdU1DbFEwSzNBL1d5K2VNVlhNeHZLeXBoVFQzb2Q5T3R0TWhua0tGMXloWTRPM2hYR2JTYlpHUldtbEhONWpOS2JXeWl0MUlXU1RsZmNsdCtnOHFCeml1QzA2TVhram1COW1XSitWMXo0RVZZT2o2M3JTd2t6MjBXb1JEN3JSbnNwY1lHQnkvZFBmdmtHcTZ0M0NNQ1FOL0w4S25PZzNiODI4bUF3SVV0K3h0M2U3TkJLZE40ZzAvVUpDcnFiUzVSZ2hodTFLT0dQUUxuWmlmSW1ucW1pM2xqTndTeXhTRm5HTVlQVHY5KzRwM29DaWlpZ2pYRTZzMHlnazhqVzVYSG56alA0RTFCZVA1MHN1R1RFbjNwVGdEZnFlcCtXMVQ3WDVndW9Xc0xxQWp4c1E1N2pucCtGVmg2VTVHUzIwNkJtOXBtTEVlQXdjRDhhQ08rajZ4TW11ZXRuWVFsVUhqek1jZlROV2V0c0gwYS9qUFZHVnZoazFGdlI1WU5IcDl0SXcvWHp0UDA2QlJ5ajhRYW4wVUlQcmNJR2UxalB6RkF4TFAydHJidStlU1pleGNqOWx4dHpEOEtjWGpOdncra1NqTWtqaEZQdnBxczFFMm4zbHN4OXFNOW9uOHhUdnBoOWZ0N1FuY3c3Tjd4MzBHVWo5V3RydEFRUkRiaVBJSHovR215ZjdIaEtOeDFkbUh6TlBWME9UVE5Sa3dSekRxZmVLYU5Wanh3bkFFL1lreWNVRkdhbkMxcnFWeEdkc09TTi9IY2ZXclNqdlRlNkhhTnpEN1dCZVZ6M1BqcDh4dDUxQXVMN1V4WHNOeUJ0TW1DZk5hVWNQMzVPaXZBellDU0hsYlBUdit0QklIdXZXcjJHWnZ2T015ZTlkajlLZmVEZ1R4TFl0dVY3YmJ5Mk5RL1RtOVl1cEMyd1FGdmlldjBxYzhGQUhXYlk0MjdZRWZJMEZnNm5neHpnNzdBZ2VKRy84QUtvN2I0T2t1NFQ3TW9XWWpibUdPbng2ZTRVdTRoMVNPMmtuUUVjeWpIeHdEVFBhWGd1dUZMNGh3STR3NGJHTnRzNDhzRDYwRlA4UHhtOTR2dHBKUGJBbU16ZTRaUDVWZFZuYjluWVdoSTNCN1Q0bXF6OUd0aUxuVWIyWTR5a0t4ai9qTytQbFZ2WEVZalVBREFBMjhxQmsxRnZVK0pVbTZKS01uekRWdFlONnBlWGxvTWUxOXozVm5pR012YTIxeUFlZGNLYTRNL05OYVhpQS9kQWVnZklMWVJtemgvY0djRHVwQllaZTgxTmgzaGdQaFQ1YmxaWm81Vjc5ODB5NlpHUmUzYUh2bGI4YUNxK0xiY1NhZEsrRHp4U0JzL0dtVGcvVVBWZFFudDJZY2swZTQ4eDBxWjY1YkNVWDF2Z0RtRGRmTEpxdE5NZnNOWGpCMjNLbWdtVjVkTTh6eGcrMlFGQjg4N1ZZUG8yQi9UdHp6ZGZWZ1AvV3RWYkxJRTFLM0xIYm1CNjFhWG8wZnRPSUx0dTR3RC84QU5hQ0thUXlYV3QydVJ0UGZGaVBITFkrZ0ZUbldyZ3hhWkt4NjRKTlY3d1BkTmZhL2J0S0FDczAyQVA3cGJCL0NwVnhQZG45RHUyY2N5RTBGT2E5Zjh0dEtBRHpzM0tDUFAvMnFHa2xqbnZOVERVTGVLOHRvd3hWVHo4em52SUdhUUxEWjI0NVlJQVcvZmZjbXBKSTNsbmNwSmZqbHBURzNzV2xMY3A1c2dIdnBjYmd5RUFucFRmZk1pUmNvVWMzZlN6VHJmdDlPUzRSQTU1aXJEd3hWWU9PbWFtMXJNVjV0bTYxTWwxTlhzaG45M0JIZlVCRVAybzVvZ1BoVXMwVnJVcWl2YklTVGptYndvRnRvMi9NVGtIcFY1NmZkeFFXRFRTTjdLcm5mM2IxVTZQbzZ3cW90b1J5amZyN1JyaHJQR00zNlA5VWdmQllZT080ZUZCSE9JMXRkVW11V2tRTXJTc3lud0dTYW1mQlZnMHZvUDFXMHQrZGo2ek1SanJzVVkvU3F3djcxbGp4a2ttcmo5RkE1L1JqY3F4MmU3bUJKOHdnb0lwcEVISnBzZHhNdkswamZaTGsrMHAzelRzcEFPdzdoanpOTXFTdW1vaXprbGFWSUNWUUU3QUtlNm44S3JCbXhoZXVlN0ZCajdveGdrMWhaY3Z5WUpBSFVHc3lSTUVMWndjWjVTSzU0T0RzYytZL25RZCtkdWlIYjUxZ0QyY1lQeEc5Y1VmQTJQWDRWMFZpd3pnc2UvQm9BbkdRVHk0emcvd0Fxd1RoQnZuSTZucjhxQ2ZjTWJjdGFBZ0U1eG5CNjBHZzVNOHpBZ1kvMFBsWE1vU2Z2Z0hicjE4ZnkrVmRPWDJsQUdXeWQ2NTh3NmtIM1lvTXZDYzh5akdNZkQ0Vkx1SUZZY0k2R0dQUHlxdk50OTc3T29oejl4YmJyNFZLZUo3NFdYQy9Ebk0vS2t6Q01oaDErei9DZ2l1T2JQTmpIY01kYTAvYXh5OHVlZzhhN3pRWTVuQkNnZlBGSitWU1ZJM3gzMEdWbEgzTnhrZUZkU0E4WmprQmRTY2p4WHpGQ0JNNE9DQjF3ZHpXSEFkUjNaeDMwQ0NlM2t0eGtNWGpKMmZvUGNmQ2tyU2tITE5uYW5qbEpVNVhLc044OUNLUlhlbmhVYWEzejJmN1M0eVZ3Ti9oUUpCY2NuS01BSHVyRE9uVWI0cE9NdHNwd001ei9BSzhxMkRjdlRIVE9TZW9IaFFMck8ya25rUVErMFRqWUg0Vk10STB5NGlnTFN6ckdDUUNyYm5IK2pVUXNwdXlRZ0E1eDF6MDM2L2hUc05UbDdQczRwZVZSbGNFOVR0UVdGYVdpSk5iczA2SDJnN0VJUmtnZ2Z6cVFWVk9oYXhkL3BMVG9lZGloa1VFNThXV3JXb0NpaWlnaDNGdDRMZlg5SVJzRlNHSUI4U2NmenF0dlN3Vy9TOWdHT2N3TTJNLzNxdSs2MHV4dmJpRzR1cldPYWFEOVU3amRQZFNMVU9GTkIxYVZKTlEwbTJ1WFJlVldrQkpBem5IV2dpbkIrbW0wMFcwUndjeFc2cjdzKzBmeGFubFhFVnpHY2Jad2FrVWRqYXhJRWpnUlZBQUFBOE5oV0RwOW1UazI2RTBGZGxUWTYyeUhaWE9EN2pTL1N2OEFZNzJXSTU1R0pJUHZxWVRhTnB0eElKSnJLSjNIUmlEbXRocFZnR0RDMGl5Ty9Cb0dQVkkvNmt2UDd3L25UWGNLSDRabUlYT0FHRlRWN08ya2lNVHdveUhxcDZHdVEwcXdGdWJjV2tmWWtZS1lPS0R6MXhkYnROcElsM1BaT0FBTzRZM3FPOE95ci90TnV4KzhPWWVmalhwbWJoSGg2NGlhS2JSN1Y0Mis4cEJ3ZnhwSkY2UGVFSUg1NHVIckZHeGpJVnZ6b0tHMDJabzd1NFFucnR2Vmk4RzVHdFdBQXlETGtuNEdwd3ZBdkNxdVhYUWJNTVRrbmxiODZjTFhRZEtzcFVrdHJDR0owT1ZaUWNqOGFDdGVNN2tyeFJmUUsyQTNKbGZFOG9vVVRXZkMrclFjbzdKckNWMmIvd0M2UVI5S3NlNjRjMGE5dkd2TG5UYmVXNFlnbVJnY2tnWUhmNUN0MzBIU3BMZVdCckNFeFNyeXlJUWNNUEE3MEZXZWlXMFBxdDlkc3YyWmtWUTNqeWcvL3dDaFZnUy9hbGhUcHAyaGFWcE5zMXZwOWhEYlFzM09VakJBSjhldmtLVStwVzJjOWdtYUNMVHhDYTJrdG16bkpLMDBhYUN5U1c3ZFVPd3FmbXd0R2ZtTnVoYnhya21rNmZISTBpV2tTdTNVZ0hlZ2FOTm01VUNNY1kyRkpMUk9UWExsY2RSelZKbDArMFE1VzNRSHJ0UU5QdEJPWmhicDJwR0MzZmlncUhYQ1l0VnVBd081WVZWR3JRdFphdElNRWUyR0ZlcXJqaHpScnFReVQ2YmJ5TzNWbUJ5ZnhwQmM4QThKWGtuYVhIRDlsSS9UTEtmem9QUEY1TVh1N1psQlBNUDVWYXZvbW1WOVp1VkxBeUMzR1I0ZTJ0VFJlQk9GVlpHWFFiSUdQN3A1VHQrTkxkTTRjMGJScnVTNzAzVFlMVzRsWGxlU01FRmhuT092aUFhRHo5NlBiaTRYaTJWQ1Y3T0ZMbCttNDNQNTA5Y2RhOURhV3h0WTJWcGlDR1VmczlLdDJ6NEs0YTArNGU0dE5GdElabkJET2luSkI2OS9mWEs1NEI0VHZKV2t1ZEFzcFhZNUxNR0pKK2RCNVplUnpHTW5kcXd1VXl4SFFaK05lb3YrampnMy93QU4ySDhMZm5RZlJ6d2FRUWVITERCNit5MzUwSGtxVm5sYmNlK3BSdzRPejA0RGxQdFpQNDE2Sy82TStDZi9BQXpwL3dEQzM1MHBoNEM0VHQwQ1JhQlpJbzZBSzM1MEhucVMzOXJPRFdVa2xqR0ZHSzlEbmduaGc5ZERzLzRUK2RZL29Od3YvdUt6L2hQNTBIbnMzRWlqZGpTTjNZKzFrNTg2OUhuZ1RoVnV1ZzJSL3dDRnZ6clU4QThKbnJ3L1pmd3QrZEI1Y3VuYVdjK1cxWG42Tm1OdjZKN2h5TjF2SE8vK0tPcFovd0JIUEIyYy93QkhMRCtGdnpwM3M5QzB1dzAxdE90TENHR3paaXpRb0R5a25HL1h5SHlvS1UxRlJhY1lYS3YvQU5wS1dCQTJ3M2hUMUUzTW94MFhZWjZiSEg4cXNxNDRXMEs2bjdlZlNyYVNYQUhPd09jWno0MTBUaDdSNDE1VjA2QUw0WVBqbnhvS3psWXlBbkIySCtzMXdMZFhaV3o0bllrZVlxMDI0ZDBadXVtd0g0SDg2eC9SelJzNS9Sc0djWTZIODZDcWxaems1T0QzNDd2QVYzTGxjOHJ0a2V5RGpiMzFaMzlHOUYvM2JCOGorZEI0YjBVOWROdCttT2gvT2dxNW1IUTVKMjJ6OHEySkM3Z0VuenEwRHc1b3hJSjAyM3lOODRQNTFnY09hTUJnYWJCajNIODZDcjJBeG5CeWZEcFdrbnQ1N2dSdWZDclRIRGVpZ0FEVGJmQTZiSDg2RHczb3BPVHB0djhBSS9uUVZObGlTQzJjSE9NZUZPdnBIQkhBWERSenVycWMvd0RsMVlaNGEwUW5KMHkzejdqK2RkYjdRdEsxS3poczcyd2hudDRmMVViZzRUYkcyL2hRVXpwZXBIVkxOZVlZbGp4ekFEcU9sS0VHSDhqNFZhZHR3Znc3WnNXdHRIdFlpMnhLZzcvalhYK2pHaDR4K2k3Zkh1UDUwRlU1NUdLZ01UMUlIZFc0SktoZ25UcHRqTlduL1JqUS93RGRkdjhBSS9uVzM5RzlHLzNiYi9JL25RVmVvVlBhYjJsR0JnLzY2VmlNeXhvV2tJREJpVlpEMVhQczlmeHEwdjZPYU4vdTIzK1IvT3NIaHpSajEwMjMrUi9PZ3FXNTB0TGxUTGJCSTVXenpSam8zbUQzZTZtWXhNam5uUmdWUHRCdGlNVmVuOUhkSDIvcTIzMjhqK2RhUzhNYUhPL1BMcGRzN1l4a2c1K3RCU3FLcEFCQkk2REI3alhSblorWG1CR0NENCtOWEgvUlBoLy9BSFJhL3dBSi9PZzhKNkFldWtXdnlQNTBGVjZOTXo2NXBpZ3RuMW1NSHcrK0t1MDlhYUllRjlDZ21qbWkwdTNTU05nNk1BY2dqb2V0TzlBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFmLy9aIiBhbHQ9IllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IGVtYmVkZGVkIGltYWdlcywgc29ycnkiLz4NCjxoMz5TdHlsZXNoZWV0czo8L2gzPg0KPHA+VGhpcyBtb2R1bGUgYWxzbyB3b3JrcyB3aXRoaW4gc3R5bGVzaGVldHMsIGlmIHVzaW5nIHRoZSB7Y21zX3N0eWxlc2hlZXR9IHRhZyBpbiB5b3VyIHBhZ2UgdGVtcGxhdGUuICBCZWNhdXNlIHRoZSBzbWFydHkgc3ludGF4IGlzIHNsaWdodGx5IGRpZmZlcmVudCBpbnNpZGUgdGhlIHtjbXNfc3R5bGVzaGVldH0gdGFnIHlvdSB1dGlsaXplIHRoZSBtb2R1bGUgdXNpbmcgdGhlIFtbIGFuZCBdXSBkZWxpbWl0ZXJzLiAgaS5lOiA8Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij5kaXYuaGVhZGVyIHsgYmFja2dyb3VuZDogdXJsKFtbU21hcnRJbWFnZSBzcmM9XCd1cGxvYWRzL3BpY3R1cmUuanBnXCcgbm90YWc9MV1dKTsgfTwvY29kZT48L3A+DQo8cD5CZWNhdXNlIHN0eWxlc2hlZXRzIGFyZSBnZW5lcmF0ZWQgb24gbW9kaWZpY2F0aW9uIGFuZCBzdG9yZWQgaW4gdGhlIGZpbGVzeXN0ZW0gdGhlcmUgaXMgbm8gd2F5IHRvIGRldGVybWluZSBkdXJpbmcgdGhlIHJlcXVlc3Qgd2hpY2ggYnJvd3NlciBpcyByZXF1ZXN0aW5nIHRoZSBzdHlsZXNoZWV0LCB0aGVyZWZvcmUgZW1iZWRkaW5nIHdpbGwgYmUgZG9uZSBzdHJpY3RseSBiYXNlZCB1cG9uIHRoZSBwcmVzZW5zZSBvZiB0aGUgbm9lbWJlZCBwYXJhbWV0ZXIuICBJZiB5b3UgaGF2ZSBjaG9zZW4gdG8gZW1iZWQgaW1hZ2VzIGRpcmVjdGx5IGludG8geW91ciBzdHlsZXNoZWV0cywgWW91IG1heSBuZWVkIHRvIGFkZCBhZGRpdGlvbmFsIHN0eWxlc2hlZXQgc3VwcG9ydCBmb3IgdGhlIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgZW1iZWRkZWQgaW1hZ2VzLiAgaS5lOiAgSUU2LjwvcD4NCjxoMz5BdXRvbWF0aWMgUHJvY2Vzc2luZzwvaDM+DQo8cD5UaGlzIG1vZHVsZSBpbmNsdWRlcyBhIHNtYXJ0eSBibG9jayB0YWcgY2FsbGVkIDxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntzaV9jb252ZXJ0fTwvY29kZT4gdGhhdCBjYW4gc3Vycm91bmQgYSBibG9jayBvZiBodG1sLCBvciBvdGhlciBzbWFydHkgdGFncyB0byBhbGxvdyBhdXRvbWF0aWMgaW1hZ2UgcHJvY2Vzc2luZy4gIFRoaXMgdGFnIGNhbiBiZSB1c2VkIGxpa2U6IChmb3IgZXhhbXBsZSk6PC9wPg0KPHByZT48Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57c2lfY29udmVydH17Y29udGVudH17L3NpX2NvbnZlcnR9PC9jb2RlPjwvcHJlPg0KPHA+VGhpcyB3aWxsIGFsbG93IHlvdXIgdXNlcnMgdG8gaW5jbHVkZSBpbWFnZXMgaW50byBwYWdlcyB1c2luZyB0aGUgbm9ybWFsIHd5c2l3eWcgdG9vbHMsIGFuZCB0byBoYXZlIHRoZW0gYXV0b21hdGljYWxseSBwcm9jZXNzZWQgYW5kIGVtYmVkZGVkIGludG8gdGhlIHBhZ2UgdXNpbmcgdGhlIG1hZ2ljIG9mIHtTbWFydEltYWdlfS4gaS5lOiBTZWUgdGhlIGZvbGxvd2luZyBjb2RlOjwvcD4NCjxwcmU+PGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e3NpX2NvbnZlcnQgZmlsdGVyX2dyYXlzY2FsZT0xIGZpbHRlcl93YXRlcm1hcms9MX17Y29udGVudH17L3NpX2NvbnZlcnR9PC9jb2RlPjwvcHJlPg0KPHA+VGhlIGFib3ZlIGNvZGUgd2lsbCBjYXB0dXJlIGFsbCBpbWFnZSB0YWdzLCBhbmQgY29udmVydCB0aGVtIHRvIGdyYXlzY2FsZSBhbmQgdGhlbiBhcHBseSB0aGUgd2F0ZXJtYXJrIChhY2NvcmRpbmcgdG8gdGhlIHNldHRpbmdzIGluIHRoZSBDR0V4dGVuc2lvbnMgbW9kdWxlKS4gIEFsbCBvZiB0aGUgcGFyZXRlcnMgYXZhaWxhYmxlIHRvIHRoZSA8Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57U21hcnRJbWFnZX08L2NvZGU+IHRhZyBhcmUgYXZhaWxhYmxlIHRvIHRoaXMgdGFnIChmb3IgaW1hZ2Ugc2NhbGluZyBldGMuKS4gIEFkZGl0aW9uYWxseSwgdHdvIG5ldyBwYXJhbWV0ZXJzIGhhdmUgYmVlbiBpbnRyb2R1Y2VkOiA8c3Ryb25nPm1heF93aWR0aDwvc3Ryb25nPiBhbmQgPHN0cm9uZz5tYXhfaGVpZ2h0PC9zdHJvbmc+IHdoaWNoIGNhbiBiZSB1c2VkIHRvIHNldCBhIG1heGltdW0gc2l6ZSBmb3IgaW1hZ2VzLi48L3A+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogM2VtOyI+PHN0cm9uZyBzdHlsZT0iY29sb3I6IHJlZDsiPk5vdGU6PC9zdHJvbmc+DQo8cD5UaGlzIHRhZyBwYXJzZXMgdGhlIEhUTUwgY29udGVudCBiZXR3ZWVuIHRoZSBzdGFydCBhbmQgZW5kIHRhZ3MgdG8gZmluZCB0aGUgPGltZz4gdGFncy4gIEl0IHRoZW4gd2lsbCBvdXRwdXQgc3ludGFjdGljYWxseSB2YWxpZCBIVE1MIGZvciB0aGUgc3Vic2V0IG9mIGNvZGUgaXQgd2FzIHByb3ZpZGVkLiAgVGhlcmVmb3JlIGl0IGlzIGltcG9ydGFudCB0aGF0IHRoZSBzbmlwcGV0IG9mIEhUTUwgcGFzc2VkIHRvIHRoaXMgdGFnIGJlIGludGFjdCBhbmQgYXMgY2xvc2UgdG8gdmFsaWQgYXMgcG9zc2libGUuICA8c3Ryb25nPlVzZSB3aXRoIGNhdXRpb24uPC9zdHJvbmc+DQo8L2Rpdj4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCBvciBidXkgY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2UgdmlzaXQgY2FsZ3V5XCdzDQptb2R1bGUgaG9tZXBhZ2UgYXQgPGEgaHJlZj0iaHR0cDovL2NhbGd1eTEwMDAuY29tIj5jYWxndXkxMDAwLmNvbTwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yLCBjYWxndXkxMDAwLCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LjwvbGk+ICANCjwvdWw+DQo8aDM+UmVxdWlyZW1lbnRzPC9oMz4NCjxwPlRoaXMgbW9kdWxlIG1ha2VzIGV2dGVuc2l2ZSB1c2Ugb2YgdGhlIEdEIEltYWdlIHByb2Nlc3NpbmcgbGlicmFyeSB0byBkbyBpbWFnZSBtYW5pcHVsYXRpb24uICBBZGRpdGlvbmFsbHksIHRoZSB7c2lfY29udmVydH0gcGx1Z2luIG1ha2VzIGV4dGVuc2l2ZSB1c2Ugb2YgdGhlIHNpbXBsZXhtbCBhbmQgWE1MRG9tIGNsYXNzZXMgYnVpbHQgaW4gdG8gcGhwLiAgVGhlcmUgbWF5IGJlIG90aGVyIGFkZGl0aW9uYWwgcmVxdWlyZW1lbnRzLiAgSWYgeW91IGFyZSBleHBlcmllbmNpbmcgZXJyb3JzIHlvdSBzaG91bGQgZW5zdXJlIHRoYXQgZXJyb3IgcmVwb3J0aW5nIGlzIGVuYWJsZWQsIGFuZCB0aGF0IHlvdSBoYXZlIGFuYWx5emVkIHlvdXIgZXJyb3IgbG9ncy48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCDCqSAyMDA4LCBSb2JlcnQgQ2FtcGJlbCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+PGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmc+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQp0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+DQo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQNCmFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQ0KaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUw0KTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIA0Kc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS48L3A+DQo8cD5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQpNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCmFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQ0KT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+JzsNCiRsYW5nWydpbmZvX2FsaWFzZXMnXSA9ICdMZXMgYWxpYXMgcGV1dmVudCDDqnRyZSB1dGlsaXPDqXMgdmlhIGxlcyBvcHRpb25zIGFsaWFzMSDDoCBhbGlhczUgZGVzIGJhbGlzZXMgU21hcnRJbWFnZSBwb3VyIGNvbWJpbmVyIHBsdXNpZXVycyBvcHRpb25zIGZyw6lxdWVtbWVudCB1dGlsaXPDqWVzLic7DQokbGFuZ1snaW5mb19jcm9wdG9maXRfZGVmYXVsdF9sb2MnXSA9ICdTcMOpY2lmaWUgbGEgem9uZSBkZSBsXCdpbWFnZSDDoCBwYXJ0aXIgZGUgbGFxdWVsbGUgZMOpY291cGVyIHBvdXIgbGEgZm9uY3Rpb24gImNyb3AgdG8gZml0IiA7IGNlY2kgYWZmZWN0ZXJhIHRvdXRlcyBsZXMgb3DDqXJhdGlvbnMgZGUgZMOpY291cGFnZSAiY3JvcCB0byBmaXQiIMOgIG1vaW5zIHF1ZSBsZSBwYXJhbcOodHJlIGRlIHpvbmUgZGFucyBsXCdhdHRyaWJ1dCBkdSBmaWx0cmUgZmlsdGVyX2Nyb3B0b2ZpdCBuZSBsXCdhbm51bGUuIExhIHpvbmUgcGFyIGTDqWZhdXQgZXN0ICJjZW50ZXIiJzsNCiRsYW5nWydpbWFnZV91cmxfaGFzY2FjaGVkaXInXSA9ICdMXCdVUkwgY2ktZGVzc3VzIGVzdC1lbGxlIGxlIHLDqXBlcnRvaXJlIGRlIGNhY2hlIChfU21hcnRJbWFnZSkgPyc7DQokbGFuZ1snaW1hZ2VfdXJsX3ByZWZpeCddID0gJ1Byw6lmaXhlIGRlIGxcJ1VSTCBkZSBsXCdpbWFnZSc7DQokbGFuZ1snaW5mb19jYWNoZV9hZ2UnXSA9ICdTcMOpY2lmaWUgbFwnw6JnZSBtYXhpbXVtIGRcJ3VuIGZpY2hpZXItaW1hZ2UgKGVuIGpvdXJzKSBhdmFudCBxdVwnaWwgbmUgc29pdCBzdXBwcmltw6kgZXQgcmVnw6luw6lyw6kuIENlY2kgZXN0IHV0aWxlIHNpIHZvdXMgYXZleiBjaGFuZ8OpIGNlcnRhaW5zIHBhcmFtw6h0cmVzIGRlIGfDqW7DqXJhdGlvbiBkXCdpbWFnZXMsIG91IHBvdXIgcsOpZ3VsZXIgbFwnZXNwYWNlIGRpc3F1ZSB1dGlsaXPDqS4gVW5lIHZhbGV1ciBkZSAiMCIgZMOpc2FjdGl2ZSBsYSBzdXBwcmVzc2lvbiBhdXRvbWF0aXF1ZS4nOw0KJGxhbmdbJ2luZm9fZW1iZWRfbW9kZSddID0gJ0NlIHBhcmFtw6h0cmUgZMOpZmluaXQgbGEgbWFuacOocmUgZG9udCBsZSBtb2R1bGUgdmEgZ8OpbsOpcmVyIGxcJ2FmZmljaGFnZSA6DQoNCjx1bD48bGk+QXVjdW4gOiB1bmUgYmFsaXNlIEhUTUwgImltZyIgY2xhc3NpcXVlIHNlcmEgdXRpbGlzw6llIGV0IGxcJ2ltYWdlIG5lIHNlcmEgcGFzIGludMOpZ3LDqWUgZGFucyBsYSBzb3VyY2U8L2xpPg0KPGxpPlNtYXJ0IDogbGUgc3lzdMOobWUgdmEgaW50w6lncmVyIG91IG5vbiBsXCdpbWFnZSBkYW5zIGxlIGNvZGUgc2Vsb24gc29uIHBvaWRzLCBzb24gdHlwZSBldCBsZSBuYXZpZ2F0ZXVyIHF1aSBhZmZpY2hlIGxhIHBhZ2U8L2xpPg0KPC91bD48YnIgLz4NCkxlcyBhdXRyZXMgbW9kZXMgcsOpYWxpc2Vyb250IHVuZSBpbnTDqWdyYXRpb24gZGUgbFwnaW1hZ2UgYmFzw6llIHN1ciBsZSBwb2lkcyBvdSBsZSB0eXBlIGRlIGNlbGxlLWNpLic7DQokbGFuZ1snaW5mb19lbWJlZF9zaXplbGltaXQnXSA9ICdTaSBsXCdpbnTDqWdyYXRpb24gZXN0IGJhc8OpZSBzdXIgbGUgcG9pZHMgZGUgbFwnaW1hZ2UsIHByw6ljaXNleiBpY2kgbGUgcG9pZHMgbWF4aW11bSAoZW4ga2lsby1vY3RldHMpIHBvdXIgbGVzIGltYWdlcyDDoCBpbnTDqWdyZXIgKDMya28gZXN0IHVuZSB2YWxldXIgcmVjb21tYW5kw6llKS4nOw0KJGxhbmdbJ2luZm9fZW1iZWRfdHlwZXMnXSA9ICdTaSBsXCdpbnTDqWdyYXRpb24gZXN0IGJhc8OpZSBzdXIgbGUgdHlwZSBkZSBsXCdpbWFnZSwgcHLDqWNpc2V6IGljaSBsZXMgdHlwZXMgZFwnaW1hZ2VzIHF1aSBkZXZyb250IMOqdHJlIGludMOpZ3LDqWVzLCBlbiBsZXMgc8OpcGFyYW50IHBhciBkZXMgdmlyZ3VsZXMuIEV4ZW1wbGUgOiAiLmpwZywucG5nLC5naWYiLiBMYSBjYXNzZSAobWFqdXNjdWxlL21pbnVzY3VsZSkgblwnZXN0IHBhcyBwcmlzZSBlbiBjb21wdGUuJzsNCiRsYW5nWydpbmZvX2ltYWdlX3VybF9oYXNjYWNoZWRpciddID0gJ1NpIHZvdHJlIENETiAocsOpc2VhdSBkZSBjb250ZW51KSBwb2ludGUgZGlyZWN0ZW1lbnQgdmVycyBsZSByw6lwZXJ0b2lyZSBkZXMgaW1hZ2VzIGVuIGNhY2hlLCBhbG9ycyB2b3VzIGRldnJleiBwZXV0LcOqdHJlIHBhc3NlciBjZXR0ZSBvcHRpb24gw6AgIk91aSInOw0KJGxhbmdbJ2luZm9faW1hZ2VfdXJsX3ByZWZpeCddID0gJ1Nww6ljaWZpZSBsXCdVUkwgw6AgYWpvdXRlciBlbiBwcsOpZml4ZSBhdXggaW1hZ2VzIGfDqW7DqXLDqWVzLiBQYXIgZMOpZmF1dCwgY1wnZXN0IGxcJ1VSTCBkdSByw6lwZXJ0b2lyZSAidXBsb2FkcyIsIG1haXMgc2kgdm91cyBhdmV6IHZvdHJlIHByb3ByZSByw6lzZWF1IGRlIGNvbnRlbnUgKENvbnRlbnQgRGVsaXZlcnkgTmV0d29yayksIG91IHBsdXNpZXVycyBkb21haW5lcyBwb2ludGFudCB2ZXJzIGxlIG3Dqm1lIHLDqXBlcnRvaXJlLCB2b3VzIHZvdWRyZXogcGV1dC3DqnRyZSBzcMOpY2lmaWVyIHVuZSBhZHJlc3NlIGRpZmbDqXJlbnRlIGljaS4nOw0KJGxhbmdbJ21heF9jYWNoZV9hZ2UnXSA9ICfDgmdlIG1heGltdW0gZGVzIGZpY2hpZXJzIGVuIGNhY2hlIChlbiBqb3VycyknOw0KJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnVW4gbW9kdWxlIGRlIGfDqW7DqXJhdGlvbiBkXCdpbWFnZXMgZXQgZGUgYmFsaXNlcy1pbWFnZXMgcG91ciBDTVNNUyc7DQokbGFuZ1snbXNnX2FsaWFzZXNfdXBkYXRlZCddID0gJ0xlcyBhbGlhcyBvbnQgw6l0w6kgbWlzIMOgIGpvdXInOw0KJGxhbmdbJ21zZ19jYWNoZWNsZWFuZWQnXSA9ICdSw6lwZXJ0b2lyZSBjYWNoZSB2aWTDqS4gJWQgZmljaGllcnMgc3VwcHJpbcOpcyc7DQokbGFuZ1snbXNnX2NhY2hlcmVtb3ZlZCddID0gJ0NhY2hlIHN1cHByaW3DqSc7DQokbGFuZ1snbXNnX3ByZWZzdXBkYXRlZCddID0gJ1Byw6lmw6lyZW5jZXMgbW9kaWZpw6llcyc7DQokbGFuZ1snbm9uZSddID0gJ0F1Y3VuJzsNCiRsYW5nWydvcHRpb25zJ10gPSAnT3B0aW9ucyZuYnNwOyc7DQokbGFuZ1sncGFyYW1fYWxpYXMnXSA9ICdMZSBwYW5uZWF1IGRcJ2FkbWluaXN0cmF0aW9uIGR1IG1vZHVsZSB2b3VzIHBlcm1ldCBkZSBjcsOpZXIgcGx1c2lldXJzIGFsaWFzIGRlIGNvbW1hbmRlIHF1aSBjb21iaW5lbnQgZGVzIG1vZMOobGVzIGRcJ2FyZ3VtZW50cyBmcsOpcXVlbW1lbnQgdXRpbGlzw6lzLCBzb3VzIHVuIG5vbS4gUG91ciB1dGlsaXNlciBjZXMgYWxpYXMsIHV0aWxpc2V6IHVuIGFyZ3VtZW50IGRlIGxhIGZvcm1lIHN1aXZhbnRlIDogYWxpYXMjIz1taW5fYWxpYXMuIFBhciBleCA6IGFsaWFzMT1mb28gYWxpYXMyPWZvby4nOw0KJGxhbmdbJ3BhcmFtX2FsdCddID0gJ1V0aWxpc8OpIGxvcnMgZGUgbGEgY3LDqWF0aW9uIGRcJ3VuIHRhZyBpbWcsIHNww6ljaWZpZSBsYSB2YWxldXIgZGUgbFwnYXR0cmlidXQgYWx0LiBOb3RleiBxdWUsIHNpIGNlIG5cJ2VzdCBwYXMgc3DDqWNpZmnDqSwgdW5lIHZhbGV1ciBzZXJhIGF1dG9tYXRpcXVlbWVudCBjYWxjdWzDqWUgcG91ciBjZXQgYXR0cmlidXQgZGUgc29ydCBxdWUgbGEgcGx1cGFydCBkZXMgdGFncyBpbWcgc29pZW50IHZhbGlkZXMuIFZvdXMgcG91dmV6IGluaGliZXIgY2UgY2FsY3VsIGF1dG9tYXRpcXVlIGF2ZWMgbGEgcGFyYW3DqHRyZSAibm9hdXRvIic7DQokbGFuZ1sncGFyYW1fY2xhc3MnXSA9ICdVdGlsaXPDqSBsb3JzIGRlIGxhIGNyw6lhdGlvbiBkXCd1biB0YWcgPGltZz4uIFBlcm1ldCBkXCdham91dGVyIHVuZSBvdSBwbHVzaWV1cnMgY2xhc3NlcyBDU1MgYXUgdGFnLCBwYXIgZXhlbXBsZSA6IGNsYXNzPSJmYW5jeWJveCB0aHVtYm5haWwiJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfYmx1ciddID0gJyh0b3V0ZXMgdmFsZXVycykgU3DDqWNpZmlleiB1bmUgdmFsZXVyIHBvdXIgY2UgcGFyYW3DqHRyZSBwb3VyIGFqb3V0ZXIgdW4gZWZmZXQgZGUgZmxvdSBzdXIgbFwnaW1hZ2UnOw0KJGxhbmdbJ3BhcmFtX2ZpbHRlcl9icmlnaHRuZXNzJ10gPSAnKGVudGllcikgQXVnbWVudGUgbGEgbHVtaW5vc2l0w6kgZGUgbFwnaW1hZ2UgZ8OpbsOpcsOpZSBzZWxvbiBsXCdlbnRpZXIgc3DDqWNpZmnDqSc7DQokbGFuZ1sncGFyYW1fZmlsdGVyX2NvbG9yaXplJ10gPSAnKHIsZyxiWyxhbHBoYV0pIElkZW50aXF1ZSDDoCAiZmlsdGVyX2dyZXlzY2FsZSIgc2F1ZiBxdWUgdm91cyBwb3V2ZXogc3DDqWNpZmllciBsYSBjb3VsZXVyIGV0IGxhIHZhbGV1ciBhbHBoYSAodHJhbnNwYXJlbmNlKSc7DQokbGFuZ1sncGFyYW1fZmlsdGVyX2NvbnRyYXN0J10gPSAnKGVudGllcikgTW9kaWZpZSBsZSBjb250cmFzdGUgZGUgbFwnaW1hZ2UgZ8OpbsOpcsOpZSBzZWxvbiBsXCdlbnRpZXIgc3DDqWNpZmnDqSc7DQokbGFuZ1sncGFyYW1fZmlsdGVyX2Nyb3AnXSA9ICcocG91cmNlbnRhZ2VbLGFsaWduZW1lbnRfaG9yaXpvbnRhbCxhbGlnbmVtZW50X3ZlcnRpY2FsXSkgLSBFZmZlY3R1ZSB1biByZWNhZHJhZ2Ugc3VyIGxcJ2ltYWdlIHNww6ljaWZpw6llLiBMZXMgcGFyYW3DqHRyZXMgZGUgcmVjYWRyYWdlIHNvbnQgc3DDqWNpZmnDqXMgc291cyBmb3JtZSBkXCd1bmUgbGlzdGUgZGUgcGFyYW3DqHRyZXMgc8OpcGFyw6lzIHBhciB1bmUgdmlyZ3VsZS4gTGEgcHJlbWnDqHJlIHZhbGV1ciAob2JsaWdhdG9pcmUpIGVzdCB1biBwb3VyY2VudGFnZSBkZSBsYSB0YWlsbGUgb3JpZ2luYWxlIGRlIGxcJ2ltYWdlLiBMZSBzZWNvbmRzIHBhcmFtw6h0cmUgKG9wdGlvbm5lbCkgZG9pdCDDqnRyZSBjaG9pc2kgcGFybWkgXCdsXCcsIFwnY1wnLCBvdSBcJ3JcJyAocmVzcGVjdGl2ZW1lbnQgcG91ciBnYXVjaGUobGVmdCksIGNlbnRyZShjZW50ZXIpLCBkcm9pdChyaWdodCkpLiBMZSB0cm9pc2nDqG1lIHBhcmFtw6h0cmUgKG9wdGlvbm5lbCkgZG9pdCDDqnRyZSBjaG9pc2kgcGFybWkgXCd0XCcsIFwnY1wnLCBvdSBcJ2JcJyAocmVzcGVjdGl2ZW1lbnQgcG91ciBoYXV0KHRvcCksIGNlbnRyZShjZW50ZXIpLCBiYXMoYm90dG9tKSkuIENlcyBkZXV4IGRlcm5pZXJzIHBhcmFtw6h0cmVzIHNww6ljaWZpZW50IGxhIHBvc2l0aW9uIGF1IHNlaW4gZGUgbFwnaW1hZ2Ugb3JpZ2luYWxlIMOgIGxhcXVlbGxlIGFwcGxpcXVlciBsZSByZWNhZHJhZ2UuIGUuZy4gOiBjcm9wPTMzLGIsciBwb3VyIGVmZmVjdHVlciB1biByZWNhZHJhZ2UgZGUgMzMlIMOgIHBhcnRpciBkdSBiYXMgZHJvaXQgZGUgbFwnaW1hZ2Ugb3JpZ2luYWxlLic7DQokbGFuZ1sncGFyYW1fZmlsdGVyX2Nyb3B0b2ZpdCddID0gJyhsYXJnZXVyLGhhdXRldXIpIC0gRWZmZWN0dWUgdW4gcmVjYWRyYWdlIHN1ciBsXCdpbWFnZSBzcMOpY2lmacOpZSBwb3VyIGVuIGFkYXB0ZXIgbGEgdGFpbGxlLiBDZWxhIHRlbnRlIGRlIHJlZGltZW5zaW9ubmVyIGxcJ2ltYWdlIMOgIGxhIHRhaWxsZSBkw6lzaXLDqWUgZW4gZ2FyZGFudCBsZSByYXRpbyBkXCdhc3BlY3QsIHB1aXMgcmVjZW50cmUgbFwnaW1hZ2UgcmVkaW1lbnNpb25uw6llLiBMZXMgcGFyYW3DqHRyZXMgc3DDqWNpZmnDqXMgY29ycmVzcG9uZGVudCDDoCBsYSBoYXV0ZXVyIGV0IGxhIGxhcmdldXIgZMOpc2lyw6lzIHBvdXIgbFwnaW1hZ2UgZGUgZGVzdGluYXRpb24uJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfZWRnZWRldGVjdCddID0gJyh0b3V0ZXMgdmFsZXVycykgQWNjZW50dWUgbGVzIGJvcmRzIGRlIGxcJ2ltYWdlJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfZW1ib3NzJ10gPSAnKHRvdXRlcyB2YWxldXJzKSAiUmVwb3Vzc2UiIGxcJ2ltYWdlJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfZmxpcCddID0gJyhtb2RlKSAtIEFwcGxpcXVlIHVuZSByb3RhdGlvbiDDoCBsXCdpbWFnZS4gIDAgPSBob3Jpem9udGFsLCAxID0gdmVydGljYWwsIGV0IDIgPSBkYW5zIGxlcyBkZXV4IGRpcmVjdGlvbnMuJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfZ3JheXNjYWxlJ10gPSAnKHRvdXRlcyB2YWxldXJzKSBDb252ZXJ0aXQgbFwnaW1hZ2UgZW4gbml2ZWF1eCBkZSBncmlzJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfbWVhbnJlbW92YWwnXSA9ICcodG91dGVzIHZhbGV1cnMpIFRlbnRlIGRcJ2Fqb3V0ZXIgdW4gZWZmZXQgInNrZXRjaHkiJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfbmVnYXRlJ10gPSAnKHRvdXRlcyB2YWxldXJzKSBQYXNzZSBsXCdpbWFnZSBlbiBuw6lnYXRpZic7DQokbGFuZ1sncGFyYW1fZmlsdGVyX3BpeGVsYXRlJ10gPSAnKHRhaWxsZVssYXZhbmPDqV0pIFBpeGVsbGlzZSBsXCdpbWFnZS4gU3DDqWNpZmlleiB1biBlbnRpZXIgcG91ciBsZSBwb2lkcyBldCB1bmUgdmFsZXVyIGJvb2zDqWVubmUgb3B0aW9ubmVsbGUgKHRydWUvZmFsc2UgLSBmYWxzZSBwYXIgZMOpZmF1dCkgcG91ciBwZXJtZXR0cmUgdW5lIHBpeMOpbGlzYXRpb24gYXZhbmPDqWUuJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfcmVzaXplJ10gPSAndHlwZSxudW1iZXJbLG51bWJlcl0gLSBQZXJmb3JtIGEgcmVzaXplIG9mIHRoZSBzb3VyY2UgaW1hZ2UuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+cCxudW1iZXIgLSBQZXJmb3JtIGEgc2ltcGxlIHJlc2NhbGUgdG8gYSBjZXJ0YWluIHBlcmNlbnRhZ2UuICBpLmU6ICByZXNpemU9cCw1MCB0byByZXNpemUgdG8gNTAlIG9mIHRoZSBvcmlnaW5hbCBzaXplLjwvbGk+DQogIDxsaT53LG51bWJlciAtIFBlcmZvcm0gYSByZXNpemUgdG8gYSBzcGVjaWZpZWQgd2lkdGggKHdoaWxlIHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiBpLmU6IHJlc2l6ZT13LDgwIHRvIGNyZWF0ZSBhIHRodW1ibmFpbCB3aXRoIGEgbWF4aW11bSB3aWR0aCBvZiA4MCBwaXhlbHMuPC9saT4NCiAgPGxpPmgsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCBoZWlnaHQgKHdoaWxlIHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiBpLmU6IHJlc2l6ZT1oLDgwIHRvIGNyZWF0ZSBhIHRodW1ibmFpbCB3aXRoIGEgbWF4aW11bSBoZWlnaHQgb2YgODAgcGl4ZWxzLjwvbGk+DQogIDxsaT5jLHgseSAtIFBlcmZvcm0gYSByZXNpemUgdG8gYSBjdXN0b20gc2l6ZSAod2l0aG91dCByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gIGkuZTogcmVzaXplPWMsNTAsNzUgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHRoYXQgaXMgNTB4NzUgcGl4ZWxzLjwvbGk+DQo8L3VsPic7DQokbGFuZ1sncGFyYW1fZmlsdGVyX3Jlc2l6ZXRvZml0J10gPSAnKHdpZHRoLGhlaWdodFssY29sb3JbLGFscGhhXV0pIC0gUGVyZm9ybSBhIHJlc2l6ZSBvbiB0aGUgaW1hZ2Ugc3BlY2lmaWVkLiBUaGlzIGF0dGVtcHRzIHRvIHJlc2NhbGUgdGhlIGltYWdlIHRvIHRoZSBkZXN0aW5hdGlvbiBzaXplIHdoaWxlIHJlYXRpbmluZyBhc3BlY3QgcmF0aW8sIHRoZSBpbWFnZSBpcyBjZW50ZXJlZCBpbiB0aGUgYm94IHNwZWNpZmllZCAoZWl0aGVyIGhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5IGRlcGVuZGluZyB1cG9uIGFzcGVjdCByYXRpbyBhbmQgdGhlIGRlc3RpbmF0aW9uIHNpemUsIGFuZCB0aGUgaW1hZ2UgaXMgc3Vycm91bmRlZCBieSB0aGUgc3VwcGxpZWQgY29sb3IuICBDb2xvcnMgY2FuIGJlIHNwZWNpZmllZCBieSBuYW1lIChzZWUgdGhlIFgxMSBjb2xvciBuYW1lcyksIG9yIGJ5ICNubm5ubm4gaGV4YWRlY2ltYWwgZm9ybWF0LCBvciBhcyByZ2IgdmFsdWVzIHNlcGFyYXRlZCBieSBhIDogaS5lOiAgZmlsdGVyX2Nyb3B0b2ZpdD02MDAsNDAwLCNmZjAwMDAuICBUaGUgc3BlY2lhbCBjb2xvciB2YWx1ZSAidHJhbnNwYXJlbnQiIGNhbiBiZSBzcGVjaWZpZWQgdG8gZm9yY2UgdGhlIGJhY2tncm91bmQgdG8gYmUgdHJhbnNwYXJlbnQuICAgQW4gYWxwaGEgdmFsdWUgbWF5IGJlIHNwZWNpZmllZCBiZXR3ZWVuIDAgYW5kIDEyNyB0byBzcGVjaWZ5IGRpZmZlcmVudCBkZWdyZWVzIG9mIHRyYW5zbHVjZW5jeSBmb3IgdGhlIGJhY2tncm91bmQuICAgQXQgbm8gdGltZSB3aWxsIHRoaXMgcGx1Z2luIHBlcmZvcm0gYW55IHVwc2NhbGluZy4nOw0KJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yb3RhdGUnXSA9ICcoYW5nbGUsY291bGV1cikgU3DDqWNpZmllIGxcJ2FuZ2xlIChzZW5zIGRlcyBhaWd1aWxsZXMgZFwndW5lIG1vbnRyZSkgZGUgcm90YXRpb24gZGUgbFwnaW1hZ2UsIGV0IGxhIGNvdWxldXIgZGUgcmVtcGxpc3NhZ2UgcG91ciBsZXMgcGl4ZWxzIHZpZGVzLiBMYSByb3RhdGlvbiBzXCdlZmZlY3R1ZSDDoCBwYXJ0aXIgZHUgY2VudHJlIGRlIGxcJ2ltYWdlLic7DQokbGFuZ1sncGFyYW1fZmlsdGVyX3JvdW5kZWRjb3JuZXJzJ10gPSAnKHJheW9uKSBTcMOpY2lmaWUgdW5lIHZhbGV1ciBkZSByYXlvbiAoZW4gcGl4ZWxzKSBwb3VyIGFycm9uZGlyIGxlcyBhbmdsZXMuJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfd2F0ZXJtYXJrJ10gPSAnKHRvdXRlcyB2YWxldXJzKSBTcMOpY2lmaWUgcXVlIGxlIGZpbGlncmFuZSAocsOpZ2zDqSBkYW5zIGxlIG1vZHVsZSBDR0V4dGVuc2lvbnMpIGRvaXQgw6p0cmUgYXBwbGlxdcOpIMOgIGxcJ2ltYWdlJzsNCiRsYW5nWydwYXJhbV9oZWlnaHQnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSBoZWlnaHQgYXR0cmlidXRlLiAgTm90ZSwgaWYgdGhpcyBpcyBub3Qgc3BlY2lmaWVkIGEgdmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoaXMgYXR0cmlidXRlIHNvIHRoYXQgbW9zdCBnZW5lcmF0ZWQgaW1nIHRhZ3Mgd2lsbCB2YWxpZGF0ZS4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBhdXRvIGNhbGN1bGF0aW9uIHdpdGggdGhlICJub2F1dG8iIHBhcmFtZXRlci4gIFRoaXMgcGFyYW1ldGVyIHdpbGwgYWxzbyBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlICJ3aWR0aCIgcGFyYW1ldGVyIHRvIHBlcmZvcm0gYSBmaW5hbCByZXNpemluZyBvciBjcm9wdG9maXQgZmlsdGVyICh1bmxlc3MgdGhlICJub2F1dG9zY2FsZSIgcGFyYW1ldGVyIGlzIGFsc28gc3VwcGxpZWQpJzsNCiRsYW5nWydwYXJhbV9pZCddID0gJ1V0aWxpc8OpIGxvcnMgZGUgbGEgY3LDqWF0aW9uIGRcJ3VuIHRhZyBpbWcsIHBlcm1ldCBkZSBzcMOpY2lmaWVyIHVuIGF0dHJpYnV0IGlkIMOgIGluY2x1cmUgYXUgdGFnLiBQYXIgZXggOiBpZD0ibW9udGFnIic7DQokbGFuZ1sncGFyYW1fbWF4X2hlaWdodCddID0gJ1V0aWxpc8OpIHVuaXF1ZW1lbnQgYXZlYyBsYSBiYWxpc2Uge3NpX2NvbnZlcnR9LCBjZSBwYXJhbcOodHJlIHBlcm1ldCBkZSBzcMOpY2lmaWVyIGxhIGhhdXRldXIgbWF4LiBwb3VyIGxlcyBpbWFnZXMgY29udmVydGllcyc7DQokbGFuZ1sncGFyYW1fbWF4X3dpZHRoJ10gPSAnVXRpbGlzw6kgdW5pcXVlbWVudCBhdmVjIGxhIGJhbGlzZSB7c2lfY29udmVydH0sIGNlIHBhcmFtw6h0cmUgcGVybWV0IGRlIHNww6ljaWZpZXIgbGEgbGFyZ2V1ciBtYXguIHBvdXIgbGVzIGltYWdlcyBjb252ZXJ0aWVzJzsNCiRsYW5nWydwYXJhbV9uYW1lJ10gPSAnVXRpbGlzw6kgbG9ycyBkZSBsYSBjcsOpYXRpb24gZHUgdGFnIGltZywgc3DDqWNpZmllIGxhIHZhbGV1ciBwb3VyIGxcJ2F0dHJpYnV0IG5hbWUuJzsNCiRsYW5nWydwYXJhbV9ub2F1dG8nXSA9ICdOZSBwYXMgY2FsY3VsZXIgYXV0b21hdGlxdWVtZW50IGxlcyBhdHRyaWJ1dHMgKHdpZHRoLCBoZWlnaHQsIGFsdCkgcG91ciBsYSBiYWxpc2UgImltZyIuIENlY2kgcGV1dCBmYWlyZSBlbiBzb3J0ZSBxdWUgdm90cmUgY29kZSBuZSBzb2l0IHBhcyB2YWxpZGUgc2kgdm91cyBuZSBzcMOpY2lmaWV6IHBhcyBsZXMgYXR0cmlidXRzICJ3aWR0aCIsICJoZWlnaHQiIGV0ICJhbHQiLic7DQokbGFuZ1sncGFyYW1fbm9hdXRvc2NhbGUnXSA9ICdTaSBsZXMgcGFyYW3DqHRyZXMgaGF1dGV1ciBldCBsYXJnZXVyIHNvbnQgc3DDqWNpZmnDqXMsIGNlIHBhcmFtw6h0cmVzIGTDqXNhY3RpdmUgbGUgcmVkaW1lbnNpb25uZW1lbnQgYXV0b21hdGlxdWUgZGUgbFwnaW1hZ2UuJzsNCiRsYW5nWydwYXJhbV9ub2JjYWNoZSddID0gJ05lIHBhcyBhdXRvcmlzZXIgbFwnaW1hZ2UgcmVkaW1lbnNpb25uw6llIMOgIMOqdHJlIG1pc2UgZW4gY2FjaGUgZGFucyBsZSBuYXZpZ2F0ZXVyICh1dGlsZSBkdXJhbnQgbGUgZMOpdmVsb3BwZW1lbnQpIDsgY2VjaSBham91dGUgdW4gbnVtw6lybyB1bmlxdWUgZW4gcGFyYW3DqHRyZSBkZSBsXCdpbWFnZSBxdWkgZm9yY2VyYSBsZSBuYXZpZ2F0ZXVyIMOgIG5lIHBhcyBtZXR0cmUgbFwnaW1hZ2UgZW4gY2FjaGUuJzsNCiRsYW5nWydwYXJhbV9ub2VtYmVkJ10gPSAnRm9yY2UgbFwnaW1hZ2Ugw6AgbmUgcGFzIMOqdHJlIGludMOpZ3LDqWUgZW5jb2TDqWUgZGFucyBsZSBjb2RlIHNvdXJjZS4gRW4gZMOpcGl0IGRlIHNhIGNvbmZpZ3VyYXRpb24gZGFucyBsXCdhZG1pbiwgbGUgbW9kdWxlIHZhIGfDqW7DqXJlciB1biBmaWNoaWVyIGltYWdlIHN1ciBsZSBzZXJ2ZXVyLic7DQokbGFuZ1sncGFyYW1fbm90aW1lY2hlY2snXSA9ICdEw6lzYWN0aXZlciBsYSB2w6lyaWZpY2F0aW9uIGRlIHRlbXBvcmlzYXRpb24gZGVzIGZpY2hpZXJzIG1pcyBlbiBjYWNoZS4nOw0KJGxhbmdbJ3BhcmFtX25vcmVtb3RlJ10gPSAnTmUgcGFzIGF1dG9yaXNlciBsYSByw6ljdXDDqXJhdGlvbiBkZSBzb3VyY2UgZGVzIFVSTHMgZGlzdGFudGVzJzsNCiRsYW5nWydwYXJhbV9ub3JvdGF0ZSddID0gJ05lIHBhcyB0ZW50ZXIgZGUgbGlyZSBsZXMgaW5mb3JtYXRpb25zIGV4aWYgZGVwdWlzIGxlIGZpY2hpZXIgcG91ciBjb3JyaWdlciBsYSByb3RhdGlvbiBkZSBsXCdpbWFnZSc7DQokbGFuZ1sncGFyYW1fbm90YWcnXSA9ICdOZSBwYXMgZ8OpbsOpcmVyIGRlIGJhbGlzZSAiaW1nIiwgbWFpcyB1bmlxdWVtZW50IGxcJ1VSTCBkZSBsXCdpbWFnZSBlbiBjYWNoZS4gQ2VjaSBuXCdhIGF1Y3VuIGVmZmV0IHF1YW5kIFNtYXJ0SW1hZ2UgZXN0IHV0aWxpc8OpIGRlcHVpcyB1bmUgZmV1aWxsZSBkZSBzdHlsZXMuJzsNCiRsYW5nWydwYXJhbV9vdmVyd3JpdGUnXSA9ICdEw6lzYWN0aXZlIHRvdXQgbGUgY2FjaGUgZXQgZm9yY2Ugw6AgcmVjYWxjdWxlciBsZXMgZmlsdHJlcyc7DQokbGFuZ1sncGFyYW1fcXVhbGl0eSddID0gJ1Nww6ljaWZpZXIgbGEgcXVhbGl0w6kgZGUgbFwnaW1hZ2UgYWZmaWNow6llLiBNZXR0cmUgdW5lIHZhbGV1ciBlbnRyZSAwIGV0IDEwMC4nOw0KJGxhbmdbJ3BhcmFtX3JlbCddID0gJ1V0aWxpc8OpIGxvcnMgZGUgbGEgY3LDqWF0aW9uIGRcJ3VuZSBiYWxpc2UgZFwnaW1hZ2UsIGlsIHBlcm1ldCBkZSBzcMOpY2lmaWVyIHVuIGF0dHJpYnV0IHJlbCBvcHRpb25uZWwgKHV0aWxpc8OpIHR5cGlxdWVtZW50IGRhbnMgbGVzIGFsYnVtcyBqYXZhc2NyaXB0KS4gZS5nOiByZWw9ImFsYnVtIic7DQokbGFuZ1sncGFyYW1fc2lsZW50J10gPSAnSWdub3JlciBzaWxlbmNpZXVzZW1lbnQgbGVzIGVycmV1cnMnOw0KJGxhbmdbJ3BhcmFtX3NyYyddID0gJ1NwZWNpZnkgdGhlIHNvdXJjZSBmb3IgdGhlIGltYWdlIHByb2Nlc3NpbmcgKGlmIGFueSkgb3IgdGhlIGdlbmVyYXRlZCBpbWcgdGFnLiAgTm90ZSwgdGhpcyBwYXJhbWV0ZXIgaXMgZmxleGlibGUsIGFuZCB0aGUgbW9kdWxlIHdpbGwgYXR0ZW1wdCBtYW55IG1ldGhvZHMgdG8gZmluZCB0aGUgc291cmNlIGltYWdlIGZpbGUgb24gdGhlIHdlYiBzZXJ2ZXIgYXMgZm9sbG93czoNCjx1bD4NCiAgPGxpPkZpcnN0IGxvb2sgdG8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgc3JjIHZhbHVlIGV4aXN0cyBhcyBhIGZpbGUgb24gdGhlIGZpbGVzeXN0ZW0uPC9saT4NCiAgPGxpPk5leHQsIGNoZWNrIGlmIHRoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yIHRoZSBzcmMgcGFyYW1ldGVyIGlzIGEgVVJMIGFuZCBiZWdpbnMgd2l0aCB0aGUgdXBsb2Fkc191cmwgKGFzIHNwZWNpZmllZCBpbiB0aGUgY29uZmlnLnBocCk8L2xpPg0KICA8bGk+TmV4dCwgY2hlY2sgaWYgdGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgdGhlIHNyYyBwYXJhbWV0ZXIgaXMgYSBVUkwgYW5kIGJlZ2lucyB3aXRoIHRoZSByb290X3VybCAoYXMgc3BlY2lmaWVkIGluIHRoZSBjb25maWcucGhwKTwvbGk+DQogIDxsaT5OZXh0LCBjaGVjayBpZiB0aGUgdmFsdWUgc3BlY2lmaWVkIGZvciB0aGUgc3JjIHBhcmFtZXRlciBpcyBhIFVSTCBhbmQgYmVnaW5zIHdpdGggdGhlIHNzbF91cmwgKGFzIHNwZWNpZmllZCBpbiB0aGUgY29uZmlnLnBocCk8L2xpPg0KPC91bD4NCkl0IGlzIGFsc28gcG9zc2libGUgdG8gc3BsaXQgdGhlIHNyYyBwYXJhbWV0ZXIgaW50byBtdWx0aXBsZSBhcmd1bWVudHMsIHdoaWNoIGlzIHVzZWZ1bCBmb3IgZXhhbXBsZSB3aGVuIHRoZSBwYXRoIHRvIHRoZSBmaWxlLCBhbmQgdGhlIGZpbGVuYW1lIGFyZSBzdG9yZWQgaW4gc2VwYXJhdGUgc21hcnR5IHZhcmlhYmxlcy4gICBZb3UgY2FuIHNwZWNpZnkgdGhlIHNyYyBhcyBzcmMxPVwkdGhlX3BhdGggc3JjMj1cJHRoZV9maWxlbmFtZS4gIFRoZSBzeXN0ZW0gd2lsbCBhdXRvbWF0aWNhbGx5IGFkZCBhIC8gaW4gYmV0d2VlbiBlYWNoIGFyZ3VtZW50LiAgVGhlcmUgaXMgbm8gbGltaXQgdG8gdGhlIG51bWJlciBvZiBzcmMgcGFyYW1ldGVycy4nOw0KJGxhbmdbJ3BhcmFtX3N0eWxlJ10gPSAnVXRpbGlzw6kgcG91ciBsYSBiYWxpc2UgImltZyIsIHBlcm1ldCBkZSBzcMOpY2lmaWVyIHVuIHN0eWxlIGFsdGVybmF0aWYgcG91ciBsYSBiYWxpc2UuICBQYXIgZXggOiBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Iic7DQokbGFuZ1sncGFyYW1fdGl0bGUnXSA9ICdSZW5zZWlnbmV6IHVuIHRpdHJlIG9wdGlvbm5lbCBwb3VyIGxhIGJhbGlzZSAiaW1nIi4gIFBhciBleCA6IHRpdGxlPSJDZWNpIGVzdCB1bmUgYXN0dWNlIic7DQokbGFuZ1sncGFyYW1fd2lkdGgnXSA9ICdVdGlsaXPDqSBsb3JzIGRlIGxhIGNyw6lhdGlvbiBkXCd1bmUgYmFsaXNlICJpbWciIDogc3DDqWNpZmllIGxcJ2F0dHJpYnV0ICJ3aWR0aCIgKGxhcmdldXIpLiBOb3RlIDogc2kgY2V0dGUgdmFsZXVyIG5cJ2VzdCBwYXMgc3DDqWNpZmnDqWUsIHVuZSB2YWxldXIgdmEgw6p0cmUgYXV0b21hdGlxdWVtZW50IGNhbGN1bMOpZS4gVm91cyBwb3V2ZXogZMOpc2FjdGl2ZXIgY2UgY2FsY3VsIGF1dG9tYXRpcXVlIGF2ZWMgbGUgcGFyYW3DqHRyZSAibm9hdXRvIi4nOw0KJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTW9kdWxlIGluc3RhbGzDqSc7DQokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1RvdXRlcyBsZXMgZG9ubsOpZXMgcmVsYXRpdmVzIMOgIGNlIG1vZHVsZSBvbnQgw6l0w6kgc3VwcHJpbcOpZXMnOw0KJGxhbmdbJ3Byb21wdF9jcm9wdG9maXRfZGVmYXVsdF9sb2MnXSA9ICdQb3NpdGlvbiDDoCBwYXJ0aXIgZGUgbGFxdWVsbGUgcmVjYWRyZXIgOic7DQokbGFuZ1sncHJvbXB0X2VtYmVkX3NpemVsaW1pdCddID0gJ0ludMOpZ3JhdGlvbiBiYXPDqWUgc3VyIGxlIHBvaWRzIGRlIGxcJ2ltYWdlJzsNCiRsYW5nWydwcm9tcHRfZW1iZWRfc21hcnRsaW1pdGVkJ10gPSAnSW50w6lncmF0aW9uIGVuIG1vZGUgU21hcnQgbWFpcyBsaW1pdGUgbGUgcG9pZHMgZGUgbFwnaW1hZ2UnOw0KJGxhbmdbJ3Byb21wdF9lbWJlZF90eXBlJ10gPSAnSW50w6lncmF0aW9uIGJhc8OpZSBzdXIgbGUgdHlwZSBkZSBsXCdpbWFnZSc7DQokbGFuZ1sncHJvbXB0X2xvY19ib3R0b21sZWZ0J10gPSAnRW4gYmFzIMOgIGdhdWNoZSAoYmcpJzsNCiRsYW5nWydwcm9tcHRfbG9jX2JvdHRvbWNlbnRlciddID0gJ0VuIGJhcyBhdSBjZW50cmUgKGJjKSc7DQokbGFuZ1sncHJvbXB0X2xvY19ib3R0b21yaWdodCddID0gJ0VuIGJhcyDDoCBkcm9pdGUgKGJkKSc7DQokbGFuZ1sncHJvbXB0X2xvY19jZW50ZXJsZWZ0J10gPSAnQXUgY2VudHJlIMOgIGdhdWNoZSAoY2cpJzsNCiRsYW5nWydwcm9tcHRfbG9jX2NlbnRlciddID0gJ0F1IGNlbnRyZSc7DQokbGFuZ1sncHJvbXB0X2xvY19jZW50ZXJyaWdodCddID0gJ0F1IGNlbnRyZSDDoCBkcm9pdGUgKGNkKSc7DQokbGFuZ1sncHJvbXB0X2xvY190b3BsZWZ0J10gPSAnRW4gaGF1dCDDoCBnYXVjaGUgKGhnKSc7DQokbGFuZ1sncHJvbXB0X2xvY190b3BjZW50ZXInXSA9ICdFbiBoYXV0IGF1IGNlbnRyZSAoaGMpJzsNCiRsYW5nWydwcm9tcHRfbG9jX3RvcHJpZ2h0J10gPSAnRW4gaGF1dCDDoCBkcm9pdGUgKGhkKSc7DQokbGFuZ1sncmVzaXppbmcnXSA9ICdSZWRpbWVuc2lvbm5lbWVudCc7DQokbGFuZ1snc21hcnQnXSA9ICdJbnRlbGxpZ2VudCBbU21hcnRdJzsNCiRsYW5nWydzdWJtaXQnXSA9ICdFbnZveWVyJzsNCj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/it_IT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRsYW5nWydhY3RfY2FjaGVjbGVhbmVkJ10gPSAnQ2FjaGUgUHVsaXRhJzsNCiRsYW5nWydhZGRfcm93J10gPSAnQWdnaXVuZ2kgcmlnYSc7DQokbGFuZ1snYWxpYXMnXSA9ICdBbGlhcyc7DQokbGFuZ1snYWxpYXNlcyddID0gJ0FsaWFzJzsNCiRsYW5nWydhc2tfY2xlYXJfaW1hZ2VfY2FjaGUnXSA9ICdTaWN1cm8gZGkgdm9sZXIgcmltdW92ZXJlIFRVVFRJIGkgZmlsZSBkYWxsYSBjYWNoZSBkZWxsZSBpbW1hZ2luaT8nOw0KJGxhbmdbJ2NsZWFyX2FsbCddID0gJ0VsaW1pbmEgVHV0dGkgaSBGaWxlJzsNCiRsYW5nWydjbGVhcl9ub3cnXSA9ICdFbGltaW5hIE9yYSc7DQokbGFuZ1snZGVsZXRlJ10gPSAnQ2FuY2VsbGEnOw0KJGxhbmdbJ2VtYmVkZGluZyddID0gJ0ltbWFnaW5pIGluY29ycG9yYXRlJzsNCiRsYW5nWydlbWJlZGRpbmdfbW9kZSddID0gJ01vZGFsaXQmYWdyYXZlOyBJbmNvcnBvcmF6aW9uZSBJbW1hZ2luZSc7DQokbGFuZ1snZW1iZWRfc2l6ZWxpbWl0J10gPSAnTGltaXRlIGRpIGdyYW5kZXp6YSBwZXIgbCYjMDM5O2ltbWFnaW5lIGluY29ycG9yYWJpbGUgKGtiKSc7DQokbGFuZ1snZW1iZWRfdHlwZXMnXSA9ICdUaXBvIGRpIGltbWFnaW5lIGluY29ycG9yYWJpbGUnOw0KJGxhbmdbJ2Vycm9yX2FsaWFzX2R1cGxpY2F0ZW5hbWVfYXRyb3cnXSA9ICdEdXBsaWNhIGlsIG5vbWUgYWxpYXMgc3BlY2lmaWNhdG8gcGVyIGwmIzAzOTthbGlhcyBhbGxhIHJpZ2EgJWQnOw0KJGxhbmdbJ2Vycm9yX2FsaWFzX25vbmFtZV9hdHJvdyddID0gJ05lc3N1biBub21lIHNwZWNpZmljYXRvIHBlciBsJiMwMzk7YWxpYXMgYWxsYSByaWdhICVkJzsNCiRsYW5nWydlcnJvcl9hbGlhc19ub29wdGlvbnNfYXRyb3cnXSA9ICdOZXNzdW5hIG9wemlvbmUgc3BlY2lmaWNhdGEgcGVyIGwmIzAzOTthbGlhcyBhbGxhIHJpZ2EgJWQnOw0KJGxhbmdbJ2Vycm9yX2ludmFsaWRfYWdlJ10gPSAnRXQmYWdyYXZlOyBwcmVmZXJlbnphIG5vbiB2YWxpZG8gLi4uIE5lc3N1bmEgb3BlcmF6aW9uZSBlc2VndWl0YSc7DQokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnVW4gcGFyYW1ldHJvIHJpY2hpZXN0byBtYW5jYSBvIG5vbiAmZWdyYXZlOyB2YWxpZG86ICVzJzsNCiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyYW0nXSA9ICdQYXJhbWV0cm8gbm9uIHZhbGlkbyBuZWxsYSBjaGlhbWF0YTogJXMnOw0KJGxhbmdbJ2Vycm9yX3NyY25vdGZvdW5kJ10gPSAnSW1wb3NzaWJpbGUgdHJvdmFyZSB1biBmaWxlIGluOiAlcyc7DQokbGFuZ1snZXJyb3JfcmVtb3RlZmlsZSddID0gJ1Byb2JsZW1hIHJlY3VwZXJvIGZpbGUgcmVtb3RvIGluICVzJzsNCiRsYW5nWydlcnJvcl91bmtub3duZmlsdGVyJ10gPSAnU21hcnRJbWFnZSAtIEZpbHRybyBTY29ub3NjaXV0bzogJXMnOw0KJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0NhbGd1eXMgU21hcnQgSW1hZ2UgVG9vbGtpdCc7DQokbGFuZ1snZ2VuZXJhbCddID0gJ0dlbmVyYWxlJzsNCiRsYW5nWydoZWxwJ10gPSAnPGgzPkNvc2EgZmE/PC9oMz4NCjxwPlF1ZXN0byBtb2R1bG8gZmFjaWxpdGEgbCYjMDM5O2VsYWJvcmF6aW9uZSBlIGxhIHZpc3VhbGl6emF6aW9uZSBkZWxsZSBpbW1hZ2luaSBuZWwgdHVvIHNpdG8gd2ViLiBQZXJtZXR0ZSB1bmEgc2VtcGxpY2UgZWxhYm9yYXppb25lIGRlbGwmIzAzOTtpbW1hZ2luZSwgZSBsJiMwMzk7YWdnaXVudGEgZGkgZmlsaWdyYW5hLiBRdWVzdG8gbW9kdWxvIHJlbmRlIGJhbmFsZSBpbCBwcm9jZXNzbyBkaSB2aXN1YWxpenphemlvbmUgZGVsbGUgaW1tYWdpbmkgbmVsIHR1byBzaXRvLiBJbm9sdHJlIGZvcm5pc2NlIGZ1bnppb25hbGl0JmFncmF2ZTsgcGVyIG1pZ2xpb3JhcmUgbGEgdmFsdXRhemlvbmUgZGVsbGUgcHJlc3RhemlvbmkgZGVsIHR1byBzaXRvIHdlYiwgcmVuZGVuZG9sbyBwb3RlbnRlIGUgdmVsb2NlIGFsIHRlbXBvIHN0ZXNzby48L3A+DQo8aDM+Q2FyYXR0ZXJpc3RpY2hlPC9oMz4NCjx1bD4NCjxsaT5FbGFib3JhemlvbmUgZSBmaWx0cmFnZ2lvIGRlbGxlIGltbWFnaW5pIHBvdGVudGkgbWEgc2VtcGxpY2kgZGEgdXNhcmUuIElsIGZpbHRyYWdnaW8gY29tcHJlbmRlOg0KICA8dWw+DQogICAgPGxpPlNmb2NhdHVyYTwvbGk+DQogICAgPGxpPkx1bWlub3NpdCZhZ3JhdmU7PC9saT4NCiAgICA8bGk+Q29sb3JhemlvbmU8L2xpPg0KICAgIDxsaT5Db250cmFzdG88L2xpPg0KICAgIDxsaT5SaXRhZ2xpbzwvbGk+DQogICAgPGxpPjxzdHJvbmc+Uml0YWdsaW8gZSBhZGF0dGFtZW50bzwvc3Ryb25nPjwvbGk+DQogICAgPGxpPlJpbGV2YW1lbnRvIGRlaSBib3JkaTwvbGk+DQogICAgPGxpPlJpbGlldm88L2xpPiANCiAgICA8bGk+U2NhbGEgZGkgZ3JpZ2k8L2xpPg0KICAgIDxsaT5SaW1vemlvbmUgbWVkaWE8L2xpPg0KICAgIDxsaT5OZWdhdGl2bzwvbGk+DQogICAgPGxpPkVmZmV0dG8gcGl4ZWw8L2xpPg0KICAgIDxsaT5SaWRpbWVuc2lvbmFtZW50bzwvbGk+DQogICAgPGxpPlJvdGF6aW9uZTwvbGk+DQogICAgPGxpPlNmb2NhdHVyYSBzZWxldHRpdmE8L2xpPg0KICAgIDxsaT5TbXVzc2FtZW50bzwvbGk+DQogICAgPGxpPkZpbGlncmFuYTwvbGk+DQogIDwvdWw+DQo8L2xpPjxici8+DQo8bGk+UmlsZXZhbWVudG8gaW50ZWxsaWdlbnRlIGRpIGltbWFnaW5pLiBTcGVjaWZpY2FyZSBVUkwgYXNzb2x1dGksIHBlcmNvcnNpIGFzc29sdXRpIG8gcmVsYXRpdmkgYWkgZmlsZSBuZWxsYSBjYXJ0ZWxsYSBwcmluY2lwYWxlIGRlbCBzaXRvLjwvbGk+DQo8bGk+U2NhcmljYW1lbnRvIGF1dG9tYXRpY28sIG1lbW9yaXp6YXppb25lIGluIGNhY2hlLCBlbGFib3JhemlvbmUsIGUgcmltZW1vcml6emF6aW9uZSBpbiBjYWNoZSBkaSBpbW1hZ2luaSBkaSBzaXRpIHJlbW90aS48L2xpPg0KPGxpPlJpZGltZW5zaW9uYW1lbnRvIGludGVsbGlnZW50ZSBhdXRvbWF0aWNvIChyaWRpbWVuc2lvbmEgYXV0b21hdGljYW1lbnRlIGFsbGEgbGFyZ2hlenphIGVkIGFsdGV6emEgZGVzaWRlcmF0ZSBwcmltYSBkaSBzZXJ2aXJlIGwmIzAzOTtpbW1hZ2luZS4uLiByaWRpbWVuc2lvbmFuZG8gYSBsYXJnaGV6emEgRSBhbHRlenphIHByb3ZvY2EgdW4gcml0YWdsaW8gYWRhdHRhdG8pLiA8ZW0+KEJhc3RhIHNwZWNpZmljYXJlIHVuIHBhcmFtZXRybyBwZXIgbGEgbGFyZ2hlenphIGUvbyB1bm8gcGVyIGwmIzAzOTthbHRlenphIG5lbCB0YWcgU21hcnRJbWFnZSkuPC9lbT48L2xpPg0KPGxpPkxlZ2dlIGF1dG9tYXRpY2FtZW50ZSBsZSBpbmZvcm1hemlvbmkgRVhJRiBkZWxsJiMwMzk7aW1tYWdpbmUgZSBjb3JyZWdnZSBsJiMwMzk7b3JpZW50YW1lbnRvLjwvbGk+DQo8bGk+UmlsZXZhbWVudG8gZGVsIGNhbWJpYW1lbnRvIGRlbGwmIzAzOTtpbW1hZ2luZSwgc2UgbCYjMDM5O2ltbWFnaW5lIHByaW5jaXBhbGUgJmVncmF2ZTsgY2FtYmlhdGEgdmVycmFubm8gZ2VuZXJhdGUgaW1tYWdpbmkgc2NhbGF0ZS4gKHBlciBkaXNhYmlsaXRhcmUgcXVlc3RvIGNvbXBvcnRhbWVudG8sIHZlZGkgaWwgcGFyYW1ldHJvIG5vdGltZWNoZWNrKS48L2xpPg0KPGxpPkdlbmVyYXppb25lIGludGVsbGlnZW50ZSBhdXRvbWF0aWNhIGRlZ2xpIGF0dHJpYnV0aSBkZWxsZSBpbW1hZ2luaS48L2xpPg0KPGxpPkxlIGltbWFnaW5pIGVsYWJvcmF0ZSB2ZW5nb25vIG1lbW9yaXp6YXRlIG5lbGxhIGNhY2hlIGRlbCBzZXJ2ZXIgcGVyIHZlbG9jaXp6YXJuZSBsYSBmcnVpemlvbmUuPC9sST4NCjxsaT5Qb3NzaWJpbGl0JmFncmF2ZTsgZGkgdXRpbGl6emFyZSB1biBVUkwgc2VwYXJhdG8gKENETikgcGVyIHNlcnZpcmUgbGUgaW1tYWdpbmk8L2xpPg0KPGxpPkxlIGVsYWJvcmF6aW9uaSBkZWxsJiMwMzk7aW1tYWdpbmUgcG9zc29ubyBlc3NlcmUgY29tYmluYXRlIGUgdmVuZ29ubyBlc2VndWl0ZSBpbiBvcmRpbmUuPC9saT4NCjxsaT5PZmZyZSBsYSBwb3NzaWJpbGl0JmFncmF2ZTsgZGkgaW5zZXJpcmUgbGUgaW1tYWdpbmkgZGlyZXR0YW1lbnRlIG5lbCBjb250ZW51dG8gZGVsbGEgcGFnaW5hIHdlYiwgcGVyIG1pbmltaXp6YXJlIGxvIHNwYXppby48L2xpPg0KPGxpPkZvcm5pc2NlIGxhIGNhcGFjaXQmYWdyYXZlOyBkaSBsaW1pdGFyZSBlbGVnYW50ZW1lbnRlIGwmIzAzOTtpbmNsdXNpb25lIGRlbGxlIGltbWFnaW5pLCBzb2xvIHBlciBxdWVpIGJyb3dzZXIgaW4gZ3JhZG8gZGkgZ2VzdGlybGUuPC9saT4NCjxsaT5Db21iaW5hIGdsaSBhcmdvbWVudGkgY29tdW5lbWVudGUgdXNhdGkgaW4gYWxpYXMgZGVub21pbmF0aS48L2xpPg0KPGxpPkZ1bnppb25hIGFuY2hlIG5laSBmb2xnaSBkaSBzdGlsZSBjb24gaWwgdGFnIHtjbXNfc3R5bGVzaGVldH0uPC9saT4NCjxsaT5Qb3NzaWJpbGl0JmFncmF2ZTsgZGkgZWxhYm9yYXJlIGF1dG9tYXRpY2FtZW50ZSBsZSBpbW1hZ2luaSBhbGwmIzAzOTtpbnRlcm5vIGRpIHVuIGJsb2NjbyBodG1sIHVzYW5kbyBpbCB0YWcgcGVyIGkgYmxvY2NoaSB7c2lfY29udmVydH0uPC9saT4NCjxsaT5BbHRyby4uLjwvbGk+DQo8L3VsPg0KPGgzPlBlcmNoJmVhY3V0ZTsgdXNhcmxvPzwvaDM+DQo8cD5DaSBzb25vIHF1YXR0cm8gbW90aXZpIG1vbHRvIGltcG9ydGFudGkgcGVyIHV0aWxpenphcmUgcXVlc3RvIHBsdWdpbjo8L3A+DQo8dWw+DQogIDxsaT5QcmVzdGF6aW9uaTogbCYjMDM5O3V0aWxpenpvIGRlbGxhIGluY29ycG9yYW1lbnRvIGRlbGxlIGltbWFnaW5pIChhbmNoZSBub24gdXNhbmRvIGFsdHJlIGZ1bnppb25pKSBzaSB0cmFkdWNlIGluIHVuIG1pbm9yIG51bWVybyBkaSByaWNoaWVzdGUpLiBMYSBtYWdnaW9yIHBhcnRlIGRlaSBicm93c2VyIGVmZmV0dHVhIGRhbGxlIGR1ZSBhbGxlIHF1YXR0cm8gcmljaGllc3RlIHNpbXVsdGFuZWUgcGVyIHZvbHRhIHZlcnNvIGxvIHN0ZXNzbyBkb21pbmlvLiBRdWVzdG8gcHUmb2dyYXZlOyByYWxsZW50YXJlIHNlcmlhbWVudGUgcGFnaW5lIHdlYiBjb24gdW4gYWx0byBudW1lcm8gZGkgaW1tYWdpbmkuPC9saT4NCiAgPGxpPlByZXN0YXppb25pOiBhbmNoZSBub24gdXNhbmRvIGwmIzAzOTtpbmNvcnBvcmFtZW50bywgbCYjMDM5O2ludmlvIGRpIGdyYW5kaSBpbW1hZ2luaSBhaSB0dW9pIHZpc2l0YXRvcmksIGNoaWVkZW5kbyBhaSBsb3JvIGJyb3dzZXIgZGkgc2NhbGFybGUsICZlZ3JhdmU7IG1vbHRvIG1vbHRvIGxlbnRvLjwvbGk+DQogIDxsaT5TaWN1cmV6emE6IFNtYXJ0SW1hZ2UgbWVtb3JpenphIGluIGNhY2hlIGxlIHByb3ByaWUgaW1tYWdpbmkgaW4gdW5hIGNhcnRlbGxhIHNlcGFyYXRhLCBuYWNvbmRlbmRvIHF1aW5kaSBhZ2xpIHV0ZW50aSBsZSBpbW1hZ2luaSBvcmlnaW5hbGkgKG1hZ2FyaSBwcm90ZXR0byBkYSBjb3B5cmlnaHQpLiBTZSB2aWVuZSB1c2F0byBsJiMwMzk7aW5jb3Jwb3JhbWVudG8gbm9uIHBvdHJhbm5vIHRyb3ZhcmUgbGEgcG9zaXppb25lIG9yaWdpbmFsZSBkZWxsJiMwMzk7aW1tYWdpbmU8L2xpPg0KICA8bGk+U2VtcGxpY2l0JmFncmF2ZTs6IGxlIGNhcGFjaXQmYWdyYXZlOyBkaSBmaWx0cmFnZ2lvIGRpIFNtYXJ0SW1hZ2UgcGVybWV0dG9ubyBkaSBlbGFib3JhcmUgYXV0b21hdGljYW1lbnRlIGxlIGltbWFnaW5pIHBlciB1bmEgbG9ybyB2aXN1YWxpenphemlvbmUgYXJtb25pb3NhIGUgc2ljdXJhLCBzZW56YSBjaGUgZ2xpIGVkaXRvcmkgZGVsIHNpdG8gZGViYmFubyBtb2RpZmljYXJsZS4gUG9zc29ubyBjYXJpY2FyZSBpbW1hZ2luaSBwaSZ1Z3JhdmU7IGdyYW5kaSwgZWQgaWwgdHVvIHNpdG8gbGUgdHJhdHRlciZhZ3JhdmU7IGluIG1vZG8gYXBwcm9wcmlhdG8uPC9saT4NCjwvdWw+DQo8aDM+Q29tZSBzaSB1c2E/PC9oMz4NCjxwPklsIG1vZG8gcGkmdWdyYXZlOyBzZW1wbGljZSBkaSB1c2FyZSBxdWVzdG8gbW9kdWxvICZlZ3JhdmU7IGRpIGNvbGxvY2FybG8gbmVsbG8gc3Rlc3NvIHBvc3RvIGluIGN1aSBhdnJlc3RpIGNvbGxvY2F0byBpbCB0YWcge2ltYWdlfS4gIEFkIGVzZW1waW86IHF1YWxjb3NhIGRpIHNpbWlsZSBhIDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57U21hcnRJbWFnZSBzcmM9JiMwMzk7dXBsb2Fkcy9pbWFnZXMvcGljdHVyZS5qcGcmIzAzOTt9PC9jb2RlPi4gUXVlc3RvIGdlbmVyZXImYWdyYXZlOyBpbCB0YWcgaW1tYWdpbmUgc2VuemEgYWxjdW5hIGVsYWJvcmF6aW9uZS4gRSwgc2UgcG9zc2liaWxlLCBpbmNvcnBvcmVyJmFncmF2ZTsgbCYjMDM5O2ltbWFnaW5lIGRpcmV0dGFtZW50ZSBuZWxsJiMwMzk7b3V0cHV0IGh0bWwuPC9wPg0KPHA+U3Blc3NvIHNpIHZ1b2xlIGFwcGxpY2FyZSB1bmEgZmlsaWdyYW5hIGFsbGUgaW1tYWdpbmkgdmlzdWFsaXp6YXRlIG5lbCBmcm9udGVuZCBwZXIgZXZpdGFybmUgaWwgZnVydG8uIElsIG1vZHVsbyBDR0V4dGVuc2lvbnMgcGVybWV0dGUgZm9ybmlzY2UgaW1wb3N0YXppb25pIGRpIGNvbmZpZ3VyYXppb25lIGRlbGxlIGZpbGlncmFuZSBjaGUgcG9zc29ubyBlc3NlcmUgYWJpbGl0YXRlIHBlciBxdWFsc2lhc2kgaW1tYWdpbmUgY29uIHVuIHRhZyBzaW1pbGUgYSBxdWVzdG86IDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57U21hcnRJbWFnZSBzcmM9JiMwMzk7dXBsb2Fkcy9pbWFnZXMvcGljdHVyZS5qcGcmIzAzOTsgZmlsdGVyX3dhdGVybWFyaz0xfTwvY29kZT4uIFF1ZXN0byBwcm92b2NoZXImYWdyYXZlOyBsYSBsZXR0dXJhIGRlbGwmIzAzOTtpbW1hZ2luZSwgbCYjMDM5O2FwcGxpY2F6aW9uZSBkZWxsYSBmaWxpZ3JhbmEgc2Vjb25kbyBsZSBpbXBvc3RhemlvbmkgZGkgQ0dFeHRlbnNpb25zLCBsYSBtZW1vcml6emF6aW9uZSBpbiBjYWNoZSBkZWxsJiMwMzk7aW1tYWdpbmUgYWx0ZXJhdGEsIHF1aW5kaSBpbCBzdW8gaW5jb3Jwb3JhbWVudG8gbmVsIHR1byBvdXRwdXQ8L3A+DQo8cD5FIGFuY29yYSwgZm90b2dyYWZpZSByaXByZXNlIGRhbGxlIG1vZGVybmUgbWFjY2hpbmUgZm90b2dyYWZpY2hlIGRpZ2l0YWxpIHNvbm8gc3Blc3NvIHRyb3BwbyBncmFuZGkgcGVyIHBvdGVyIGVzc2VyZSB1dGlsaXp6YXRlIGluIHVuIHNpdG8gd2ViLCBxdWluZGkgZGV2b25vIGVzc2VyZSBzY2FsYXRlIHByaW1hIGRpIGVzc2VyZSB2aXN1YWxpenphdGUgbmVsbGEgcGFnaW5hIHdlYi4gUXVlc3RvIHNpIHB1Jm9ncmF2ZTsgZmFyZSBhYmJhc3RhbnphIGZhY2lsbWVudGUgY29uIHVuIHRhZyBjb21lOiA8Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e1NtYXJ0SW1hZ2Ugc3JjPSYjMDM5O3VwbG9hZHMvaW1hZ2VzL3BpY3R1cmUuanBnJiMwMzk7IGZpbHRlcl93YXRlcm1hcms9MSBmaWx0ZXJfcmVzaXplPSYjMDM5O3csMzUwJiMwMzk7fTwvY29kZT4uICBDb21lIHNpIHB1Jm9ncmF2ZTsgaW1tYWdpbmFyZSwgbGEgZmlsaWdyYW5hIHZpZW5lIGFwcGxpY2F0YSBhbGwmIzAzOTtpbW1hZ2luZSBwcmltYSBjaGUgcXVlc3RhIHZlbmdhIHNjYWxhdGEgYWQgdW5hIGxhcmdoZXp6YSBtYXNzaW1hIGRpIDMwMCBwaXhlbCAobWFudGVuZW5kbyBsZSBwcm9wb3J6aW9uaSkuIFF1aW5kaSBsJiMwMzk7aW1tYWdpbmUgYWRhdHRhdGEgdmVyciZhZ3JhdmU7IG1lbW9yaXp6YXRhIGluIGNhY2hlLCBlIHNlIGlsIGJyb3dzZXIgbG8gcGVybWV0dGUgbCYjMDM5O2ltbWFnaW5lIHZlcnImYWdyYXZlOyBpbmNvcnBvcmF0YSBuZWxsJiMwMzk7b3V0cHV0IEhUTUwuIFNlIGwmIzAzOTtpbmNvcnBvcmFtZW50byBub24gJmVncmF2ZTsgcG9zc2liaWxlLCBpbCB0YWcgaW1nIGNvbnRlcnImYWdyYXZlOyBsJiMwMzk7VVJMIGFsbCYjMDM5O2ltbWFnaW5lIG5lbGxhIGNhY2hlLjwvcD4NCjxwPk9yYSBwdW9pIGNvbWJpbmFyZSB0cmEgbG9ybyBsZSBvcHppb25pIHF1aSBzb3R0byBwZXIgb3R0ZW5lcmUgbW9sdGkgZWZmZXR0aSBkaWZmZXJlbnRpIHN1bGxlIHR1ZSBpbW1hZ2luaSwgcmVhbGl6emFyZSBzZW1wbGljaSBnYWxsZXJpZSwgZWQgYWxsbyBzdGVzc28gdGVtcG8gbWlnbGlvcmFyZSBsZSBwcmVzdGF6aW9uaSBkZWwgdHVvIHNpdG8uIERpdmVydGl0aSE8L3A+DQo8aDM+UmlkaW1lbnNpb25hbWVudG8gaW1tYWdpbmUgYXV0b21hdGljbzwvaDM+DQogIDxwPlNlIHNpIHNwZWNpZmljYSB1biBwYXJhbWV0cm8gcGVyIGxhIGxhcmdoZXp6YSwgZS9vIHBlciBsJiMwMzk7YWx0ZXp6YSwgZSBub24gc2kgc3BlY2lmaWNhIGlsIHBhcmFtZXRybyAmcXVvdDtub2F1dG9zY2FsZSZxdW90OywgaWwgbW9kdWxvIGFuYWxpenphciZhZ3JhdmU7IGkgZmlsdHJpIGNoZSBoYWkgYXBwZW5hIHNwZWNpZmljYXRvLCBlIHNlIGFuY29yYSBub24gYyYjMDM5OyZlZ3JhdmU7IG5lc3N1biBmaWx0cm8gZGkgcmlkaW1lbnNpb25hbWVudG8sIGFnZ2l1bmdlIGF1dG9tYXRpY2FtZW50ZSB1biBmaWx0cm8gcGVyIHJpZGltZW5zaW9uYXJlIG8gcml0YWdsaWFyZSBhZGF0dGFuZG9sYSBsJiMwMzk7aW1tYWdpbmUgbmVsbCYjMDM5O291dHB1dC4gUXVlc3RvICZlZ3JhdmU7IHV0aWxlIHBlciBnZW5lcmFyZSBhdXRvbWF0aWNhbWVudGUgbGUgbWluaWF0dXJlIHN1bCBzZXJ2ZXIsIGV2aXRhbmRvIGFsIGJyb3dzZXIgZGkgcmlkaW1lbnNpb25hcmUgbCYjMDM5O2ltbWFnaW5lLjwvcD4NCiA8aDM+VW5hIFNlbXBsaWNlIEdhbGxlcmlhPC9oMz4NCjxwPklsIGNvZGljZSBzb3R0b3N0YW50ZSB1dGlsaXp6YSBpbCBtb2R1bG8ge1NtYXJ0SW1hZ2V9LCBmYW5jeWJveCwgZSB1biBwbyYjMDM5OyBkaSB0cnVjY2hpIHNtYXJ0eSBwZXIgZ2VuZXJhcmUgdW4gc2VtcGxpY2UgYWxidW0gbGlnaHRib3ggZGEgdW5hIHNvdHRvY2FydGVsbGEgZGVsIHNpdG8gd2ViLCBlbGFib3JhbmRvIGNvbnRlbXBvcmFuZWFtZW50ZSBsZSBpbW1hZ2luaSBzZWNvbmRvIGdsaSBzdGFuZGFyZCB3ZWIsIGUgY3JlYW5kbyBsZSBtaW5pYXR1cmUuPC9wPg0KPHByZSBzdHlsZT0mcXVvdDtiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsmcXVvdDs+PGNvZGU+PHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDE6PC9zcGFuPiA8c2NyaXB0IHR5cGU9JnF1b3Q7dGV4dC9qYXZhc2NyaXB0JnF1b3Q7PntsaXRlcmFsfQ0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDI6PC9zcGFuPiBqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gMzo8L3NwYW4+ICBqUXVlcnkoJiMwMzk7YS5mYW5jeWJveCYjMDM5OykuZmFuY3lib3goKTsNCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiA0Ojwvc3Bhbj4gfSk7DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gNTo8L3NwYW4+IHsvbGl0ZXJhbH08L3NjcmlwdD4NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiA2Ojwvc3Bhbj4ge2Fzc2lnbiB2YXI9JiMwMzk7ZmlsZXMmIzAzOTsgdmFsdWU9JiMwMzk7dXBsb2Fkcy9hbGJ1bS8qLmpwZyYjMDM5O3xnbG9ifQ0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDc6PC9zcGFuPiB7aWYgY291bnQoJGZpbGVzKX0NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiA4Ojwvc3Bhbj4gPGRpdiBzdHlsZT0mcXVvdDt3aWR0aDogMTAwJTsgaGVpZ2h0OiAxNTBweDsgb3ZlcmZsb3c6IGF1dG87JnF1b3Q7Pg0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDk6PC9zcGFuPiB7Zm9yZWFjaCBmcm9tPSRmaWxlcyBpdGVtPSYjMDM5O2ZpbGUmIzAzOTt9DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xMDo8L3NwYW4+ICA8YSByZWw9JiMwMzk7c2ltcGxlX2FsYnVtJiMwMzk7IGNsYXNzPSJmYW5jeWJveCIgaHJlZj0iPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+e1NtYXJ0SW1hZ2Ugc3JjPSRmaWxlIGZpbHRlcl9yb3RhdGU9OTAgZmlsdGVyX3dhdGVybWFyaz0xIGZpbHRlcl9yZXNpemU9JiMwMzk7aCw1MDAmIzAzOTsgbm90YWc9MSBub2VtYmVkPTF9PC9zcGFuPiZxdW90Oz4NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PjExOjwvc3Bhbj4gIDxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57U21hcnRJbWFnZSBzcmM9JGZpbGUgZmlsdGVyX3JvdGF0ZT05MCBmaWx0ZXJfZ3JheXNjYWxlPTEgZmlsdGVyX3dhdGVybWFyaz0xIGZpbHRlcl9yZXNpemU9JiMwMzk7aCwxNTAmIzAzOTt9PC9zcGFuPg0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+MTI6PC9zcGFuPiAgPC9hPg0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+MTM6PC9zcGFuPiB7L2ZvcmVhY2h9DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xNDo8L3NwYW4+IDwvZGl2Pg0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+MTU6PC9zcGFuPiB7L2lmfQ0KPC9jb2RlPjwvcHJlPjxici8+DQo8cD5Fc2FtaW5pYW1vbG8uPC9wPg0KPHA+TGUgcmlnaGUgZGFsbGEgMSBhbGxhIDUgdXNhbm8galF1ZXJ5IHBlciBjYXJpY2FyZSBmYW5jeWJveCBtZWRpYW50ZSBvZ25pIGxpbmsgY29uIGNsYXNzZSAmcXVvdDtmYW5jeWJveCZxdW90Oy4gSWwgcGx1Z2luIGZhbmN5Ym94IGRpIGpRdWVyeSAmZWdyYXZlOyBpbmNsdXNvIG5lbCBtb2R1bG8gSlF1ZXJ5VG9vbHMuPC9wPg0KPHA+TGEgcmlnYSA2IHVzYSB1bmEgZnVuemlvbmUgcHJvcHJpYSBkaSBwaHAgY2hpYW1hdGEgZ2xvYiwgZWQgYWxjdW5pIHRydWNjaGkgc21hcnR5IHBlciB0cm92YXJlIHR1dHRpIGkgZmlsZSBKUEcgbmVsbGEgY2FydGVsbGEgdXBsb2Fkcy9hbGJ1bSBzb3R0byBsYSBjYXJ0ZWxsYSBwcmluY2lwYWxlIGRlbCBzaXRvLjwvcD4NCjxwPkxhIHJpZ2EgNyBlZmZldHR1YSB1biB0ZXN0IHBlciB2ZWRlcmUgc2Ugc29ubyBzdGF0aSBlZmZldHRpdmFtZW50ZSB0cm92YXRpIHR1dHRpIGkgZmlsZSBuZWxsYSBsaW5lYSBkaSBhc3NlZ25hemlvbmUgZGkgY3VpIHNvcHJhLiBRdWVzdGEgaXN0cnV6aW9uZSBpZiBzaSBjaGl1ZGUgYWxsYSByaWdhIDE1LjwvcD4NCjxwPkxhIHJpZ2EgOCBjcmVhIHVuIGRpdiBwZXIgY29udGVuZXJlIGlsIG5vc3RybyBhbGJ1bS4gUGVyIGdsaSBzY29waSBkaSBxdWVzdG8gZXNlbXBpbyBnbGkgc3RpbGkgc29ubyBzdGF0aSBpbmNsdXNpIGlubGluZSwgbWEgaW4gdW4gYW1iaWVudGUgZGkgcHJvZHV6aW9uZSBzaSBkb3ZyZWJiZSB1c2FyZSB1bmEgY2xhc3NlIGRlZmluaXRhIG5lbCBmb2dsaW8gZGkgc3RpbGUuIElsIHRhZyBkaSBjaGl1c3VyYSBkaSBxdWVzdG8gZGl2ICZlZ3JhdmU7IGFsbGEgcmlnYSAxNCwgYXBwZW5hIHByaW1hIGRpIDxjb2RlPnsvaWZ9PC9jb2RlPi48L3A+DQo8cD5MYSByaWdhIDkgaW5pemlhIHVuIGNpY2xvIHN1IHR1dHRpIGkgZmlsZSB0cm92YXRpIG5lbGxhIGNhcnRlbGxhLiBRdWVzdG8gY2ljbG8gc2kgY2hpdWRlIGFsbGEgcmlnYSAxMy48L3A+PGJyLz4NCjxwPkxlIHJpZ2hlIDEwIGUgMTEgZmFubm8gaWwgdmVybyBwcm9kaWdpby4gUXVpIHZpZW5lIGNyZWF0byB1biBsaW5rIGNvbiBjbGFzc2UgJnF1b3Q7ZmFuY3lib3gmcXVvdDsgZSB2aWVuZSBhZ2dpdW50byBsJiMwMzk7YXR0cmlidXRvIDxjb2RlPnJlbDwvY29kZT4gaW4gbW9kbyBjaGUgZmFuY3lib3ggc2FwcGlhIGNoZSB0dXR0ZSBxdWVzdGUgaW1tYWdpbmkgZG92cmFubm8gZXNzZXJlIHJhZ2dydXBwYXRlIGluc2llbWUgY29tZSB1biBzaW5nb2xvIGFsYnVtIGUgbmUgcGVybWV0dGEgbG8gc2NvcnJpbWVudG8gY29uIGlsIGNsaWNrIGRlbCBtb3VzZS4gUXVpbmRpLCB2aWVuZSBsYSBwYXJ0ZSBpbiBjdWkgZGVmaW5pYW1vIGxlIG5vc3RyZSBpbW1hZ2luaS48L3A+DQo8cD5Gb3JuaWFtbyBsYSB2YXJpYWJpbGUgJGZpbGUgYWxsJiMwMzk7YXJnb21lbnRvIHNyYyBkZWwgdGFnIDxjb2RlPntTbWFydEltYWdlfTwvY29kZT4gaW4gbW9kbyBjaGUgcHJlbmRhIGlsIG5vbWUgZGkgb2duaSBqcGcgdHJvdmF0byBkdXJhbnRlIGlsIGNpY2xvLjwvcD4NCjxwPkxlIGltbWFnaW5pIGNvbiBsZSBxdWFsaSBobyBjb25kb3R0byBpbCB0ZXN0IHNvbm8gc3RhdGUgY2FyaWNhdGUgZGFsIG1pbyBpcG9kLCBlIHR1dHRlIHNlbWJyYXZhbm8gcnVvdGF0ZSBkaSA5MCBncmFkaSBpbiBzZW5zbyBhbnRpb3JhcmlvLiBQZXJjaSZvZ3JhdmU7IGlsIHByaW1vIGZpbHRybyBjaGUgaG8gYWdnaXVudG8gJmVncmF2ZTsgc3RhdGEgbGEgcm90YXppb25lIGRpIDkwIGdyYWRpIGluIHNlbnNvIG9yYXJpbyBjb24gbCYjMDM5O2FyZ29tZW50byA8Y29kZT5maWx0ZXJfcm90YXRlPTkwPC9jb2RlPi4gSW4gc2VndWl0byBsZSBpbW1hZ2luaSBuZWNlc3NpdGF2YW5vIGRpIHVuYSBmaWxpZ3JhbmEgPGVtPigmZWdyYXZlOyBzb2xvIHVuIGVzZW1waW8sIG5vbiBjcmVkbyBwcm9wcmlvIGNoZSBxdWFsY3VubyBydWJlcmViYmUgcGVyIGZpbmkgY29tbWVyY2lhbGkgbGUgaW1tYWdpbmkgc2ZvY2F0ZSBkZWwgbWlvIGlwb2QpPC9lbT4sIGNvcyZpZ3JhdmU7IGhvIGFnZ2l1bnRvIGlsIHBhcmFtZXRybyA8Y29kZT5maWx0ZXJfd2F0ZXJtYXJrPTE8L2NvZGU+LiBFZCBpbmZpbmUsIHBvaWNoJmVhY3V0ZTsgYW5jaGUgY29uIGwmIzAzOTtpcG9kIHRvdWNoICZlZ3JhdmU7IHBvc3NpYmlsZSBzY2F0dGFyZSBmb3RvIHRyb3BwbyBncmFuZGkgcGVyIGVzc2VyZSB2aXN1YWxpenphdGUgc3VsbG8gc2NoZXJtbywgbGUgaG8gdm9sdXRlIHJpZGltZW5zaW9uYXJlIGFkIHVuYSBhbHRlenphIG1hc3NpbWEgZGkgNTAwIHBpeGVscy4gUXVlc3RvICZlZ3JhdmU7IHN0YXRvIGZhdHRvIGNvbiBsJiMwMzk7YXJnb21lbnRvIDxjb2RlPmZpbHRlcl9yZXNpemU9aCw1MDA8L2NvZGU+LiBBYmJpYW1vIGFnZ2l1bnRvIGwmIzAzOTthcmdvbWVudG8gPGNvZGU+bm9lbWJlZD0xPC9jb2RlPiBwZXJjaCZlYWN1dGU7IGZhbmN5Ym94IG5vbiBzYSB2aXN1YWxpenphcmUgaW1tYWdpbmkgaW5jb3Jwb3JhdGUgbmVsbGEgc3VhIGZpbmVzdHJhIHBvcHVwLiBRdWVzdG8gaGEgZGVmaW5pdG8gbCYjMDM5O2ltbWFnaW5lIGNoZSBzdGF2YW1vIGNvbGxlZ2FuZG8uPC9wPg0KPHA+UG9pIGRvYmJpYW1vIGRlZmluaXJlIGxhIG1pbmlhdHVyYSBkZWxsJiMwMzk7aW1tYWdpbmUgY2hlIGFiYmlhbW8gaW50ZW56aW9uZSBkaSB1dGlsaXp6YXJlIG5lbGxhIGdhbGxlcmlhLiBRdWVzdG8gbW9kbyBkaSByaWNoaWFtYXJlIDxjb2RlPntTbWFydEltYWdlfTwvY29kZT4gJmVncmF2ZTsgcXVhc2kgaWRlbnRpY28gYWwgcHJpbW8gbW9kbywgdHJhbm5lIGNoZSBwZXIgaWwgZmF0dG8gY2hlIHVzaWFtbyB1biBkaWZmZXJlbnRlIHZhbG9yZSBwZXIgbCYjMDM5O2FsdGV6emEgZGVsbGEgbWluaWF0dXJhICgxNTAgcGl4ZWxzKSwgZSBwZXIgZGl2ZXJ0aXJtaSBobyBjb252ZXJ0aXRvIGxhIG1pbmlhdHVyYSBpbiBzY2FsYSBkaSBncmlnaSA8c3Ryb25nPnByaW1hPC9zdHJvbmc+IGRpIGFwcGxpY2FyZSBsYSBmaWxpZ3JhbmEuIEhvIGFuY2hlIHJpbW9zc28gbCYjMDM5O2FyZ29tZW50byBub2VtYmVkPTEgaW4gbW9kbyBjaGUgaWwgc2lzdGVtYSBwb3NzYSBpbmNvcnBvcmFyZSBsJiMwMzk7aW1tYWdpbmUgbmVsbCYjMDM5O291dHB1dCBIVE1MIHBlciBpIGJyb3dzZXIgY29tcGF0aWJpbGkuIEwmIzAzOTtpc3RhbnRhbmVhIGRlbGxvIHNjaGVybW8gcXVpIHNvdHRvIG1vc3RyYSBpbCByaXN1bHRhdG8uPC9wPg0KPGltZyBzcmM9JnF1b3Q7ZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwvOWovNEFBUVNrWkpSZ0FCQVFFQVlBQmdBQUQvMndCREFBZ0dCZ2NHQlFnSEJ3Y0pDUWdLREJRTkRBc0xEQmtTRXc4VUhSb2ZIaDBhSEJ3Z0pDNG5JQ0lzSXh3Y0tEY3BMREF4TkRRMEh5YzVQVGd5UEM0ek5ETC8yd0JEQVFrSkNRd0xEQmdORFJneUlSd2hNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpML3dBQVJDQUNoQWZBREFTSUFBaEVCQXhFQi84UUFIQUFBQVFRREFRQUFBQUFBQUFBQUFBQUFBQVFGQmdjQkFnTUkvOFFBVUJBQUFnRURBZ01FQndRR0J3UUlCUVVBQVFJREFBUVJCU0VHRWpFVFFWRmhCeFFpY1lHUnNTTXlvZEVWTTBKU2tzRVdKVFJpY25Qd0pGV0M0UmMyUTFOV2c2THhKalZFWTdKa2s3UEMwdi9FQUJnQkFRRUJBUUVBQUFBQUFBQUFBQUFBQUFBQkFnTUUvOFFBSXhFQkFRQUNBZ01BQWdJREFBQUFBQUFBQUFFQ0VTRXhBeEpCRXlJalFsRmhrZi9hQUF3REFRQUNFUU1SQUQ4QXRmVzlWdWJLNzAreHNrZzladnBHVlpMZ25zMENqSnlCdVQ0Q3RMdlZMblRMRlk5UXZOTWkxR1orV0RJY1J1TWdkTnpuZjZWMDRoazBYMWFLRFd3dll5TWVSbVZzS3c3K1pmdW56cUozTWwxSnd0SUhrdUpyTk5XZ1d5bXVBZTBlTG1IWE81R2VoTkJOTHJYTktzWkhqdXRRdDRYUndqSzc0SVlqT01lNGcxdEhyV2x5M3dzbzlRdG51V0dSRXNnSk8yZHZoVEZGREhKeEx4Z3p4cXg3R05RV1hPM1pIYjhCVFhERXFjSjhGdXNZVnhlUUhJWEIzNXMvT2dsYjhTNkpITzBNbXFXcVNxNWpaV2ZCRERZZytGYzU5U3VFNHRzZE9SazlXbnM1Wm05bkpMS1JqQjhLaTlycWVtVzJuOFNXZDJCSmNUMzF3RWdFUlpwYzdBREE4ZmxTcXppdU5MMW5oYzZoem93MDU3VnBDQ1FKU1JoU2U0MEVtbTEzU2JhOTlUbTFHMmp1TWdkbTBnQkJQY2ZBKytuQ3E0c2tnajBlNTBiVnRRZTF1WkpYV2UzTmlIZVFzMnpxMk10bklPZTZyQnRvUloyVVVEU3M2d3hoREkvVWhSakorVkEyWGV2SmE4UzJXa2xjaWRDWGsvY1kvY0h4NVcvQ2o5SlhQOUxwTk55bnF5NmY2d0J5NzgvUGpyNFk3cWl6eDZ2cSttYWxxVnJwMGJDN25GemJ6dGNjcm9zUjlnQk1iOUQzNzgxT1ZycU1WMXhkWmFpd1pJZFEwb0pFeFU0TW5NU1V6M0VZTkFzNGI0cHRkUjB5elcrdjdVYWxNR3pFQ0ZKUE1RQmp4d0J0VDdIZVcwMXhjVzhjeU5OYjQ3WkIxVEl5TS9DcTd0N2l6dWZSN0RvMGNiU2FzLzZxRVF0enE1Zkt2bkd3eHZuTlBkdmZ3Nkx4TnJhNmc3cTl6SEEwR0kyYnRpSStVOHVCdWM5MUJJUDA3cFF0bzdrNmhiaUdWR2RITFlES3B3eEh1SkFybWVKTkVXS0tRNnJhQkpTUWg3UWIvbDhhaDJnUmgyNE1FaUJnSTd0c01NNElKSU5MQmJ4Zm8zanI3RlAxMG1QWUhkSGtmanZRVGtISXlEa0dpa09pa25RZE9Kem4xV0xPZjhBcGRRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGUmx1RHJmbDVGbUVrWVVLb21WaVFBUDdyS1B3cVRVVlpkSlpzd2FOd3BiYVBmZXVMY1N5U0JaRVJPaUlybFNRQWNuOWdkU2FmNktLaWlqclJSUUZGSHdveDVVQ0RTOUxUU3hkaU9WNVBXYmw3bHVZQWNwYkdRTWQyMUw2TWVWR0Q0VUJrK05GR0Q0R2pCOERRRkZHRDRHczRQZ2FER1RSbXM0UGdheGcrQm9DaWlqNFVCUlI4S1BoUUZGR1BLakhsUUZGR0Q0R2pCOERRRkZHRDRHakI4RFFGRlp3ZkExakI4RFFGRkZGQVVVVVVCUlJSUUZGRkZBVVVZUGdhUGhRRkZGR0NUakc5QVVWbmtiOTF2bFJ5dCs2M3lvTVVWbmxiOTF2bFJnK0IrVkJpaWpCOEt6eXQrNmZsUVlvckpVanFDUGVLQXJIb3BQd29NVVZubGI5MXZsUVZZZFZJK0ZCaWlzNFBnZmxRQVQwQlB1RkJpaXM4amZ1TjhqUnlQOEF1TjhxREZGWktzT3FrZThVY2pmdU44cURGRlo1Ry9jYjVVY2ovdU44alFZb3JQSTM3cmZLamxiOTF2bFFZb3JQSzM3cCtWQUJQUUUrNFVHS0t6eXQrNjN5ckZBVVVVVURicVRFU3g0Skd4NmUra1hPMzd6Zk9sbXFmclkvOEordE4rZDhVRzVrWWsrMDN6ckhPeC9hYjUxcG5ldFNhRGN5UG43emZNMXpaM3hzemZNMFpOYzNvTW1SL3dCOXY0alhNeVAvQU40L3pOWUpyVW56b01OSkorKzM4UnJpOGttLzJqL3hHdDJKcE8yMUJocDVmKzhmK0kxMzRSMUE2a1k3ajJoOXN5WUxFN0NrTHR2MXhYSGdlZG9XZ2p4ekNTK2tRa2RCMU5CTTd4MkYzSjdSd0NOcytWY0M3ZDdINTExdnY3Wko4UHBTVmo0MEc1ZHNmZmI1MGRvL2V6Zk90TTVyR2ZIclFiRjIvZWI1MW9aSHo5OXZtYXh6QUhIU3ViTUQzMEdXa2NmdHQvRWEwTXIvQUw3L0FNUnJSbTNyUW5GQnNaWk1nYzdmeEd1VHpTRDl0LzRqUVczcmk1b05YbWtBMmxmK0kwNmNNeU0rcXlndTdBUW5xU2YyaFRMS2RzMDY4S0hPclQvNVBYL2lGQTROSTJUN1I2bnZySGFzUDJtK2RJM3VWRHZueElybWJ0UjNpZ2NSTTNUbWI1MW50Vy9mYjUwMEhVWTFKSE91UjRtdWI2cW1OblgrSVVEMFozRFlMSEdPdWF3YnZsNnNmblVOMURpcTFzY21hZFZ4M2MxTTQ5SWVselNkbjZ5QWZOcUNmM2VzcmJxVHprbnVxUDNuRkZ3U1FraEh1cU5YWEVsczhxWm1UczMyRDgydzk5STVOUnNaRWtjWDBhaGNrc1BMejhhQ1FXK3U2cnFsekxhNmRJSlpvd0RKelB5ckdQTStQbDFwMWcvU2ZOT3Q1cTBrVFE0TGRpQUZIbWM1cXNMVGk2YmhKQjZ0SDYyOXlyT3N6ZXlEL2UvR21IVXVKZUlicTZhU1NTNVJnUVNlN0k2SHBRWHh4UnFWN29jVnJjV2NzenFVVm1TWWhsa0J4dnR2bWwzRkZ5N2VqdlVaMUxJL1pxUmdrRmZiVGJOZWZoeFZ4TnFOM0hjM2Q5ZTMwdzI3TmwyS2c1SGRqOEt0NXRSdk5VOUNtcTNWN0QyTndTUXlrNXhoMC9HZ3FtYTh1aHE4eWk5dVZSbEJHSm14dDhhYzlPdmJpTy9RdGUzUElSZzgwckhjL0dtSjVRK3AyNVljM1BFUnYxR0tjWW1DVHh0eUhQZmdaelFMZGV1cnY5Slcwa2Q1Y3NuWjQvWE1Od1Q0R3JEMEtHYTZ0cktkcHBzUEdySDJ6NGUrcTAxUW5sZ3dDQUdJcXp1Q3B1MDRldFhPK0U1Q2ViTzRQL09nbDh6eGlHT0ZwQ0M1NVZHKzV4bnI4S3I3aXkya2kwL1VwVXZycVA3Rjh4aVRBSldSUU1EcmpHYzc5Y1ZON216bnVSYnNzVGtKTXNnSUhVak9LWU9MOU5kcmFlTllwaFBMYnlvaUlvOXRoeWxWM0JQZWVtS0JyOURkeEpKZmFyYnp5U3lFd0NSUzdsc2R4RzU4NmV1STdDd3V0T251bkVndllMZGxpbEU3cmdEZm9Eang2aW1EMFZXOTNZNnpyRU1rYjI4NldXTVNqN2pjM2VLYk5WdCtKRnRuZTUxN3RvU3BMeHBiZ0Fqd3ozVURYcGRsZGF2cU1LRzR1Skk0b0pKR2dhNGRPMWJLcU1rSG9NNXA4czMvQUtObTRqdTdxNWdnZVJXUWM3U3RKN0lKVUU5d09mY01aOGFqZWdhdU5LMSswRnhJa2NFc1VxU083WUM0NVdCejhLYytPTFJMbzJlcTJjNGx0K1Rzbk1XNHh6WkRlZWM0K1ZCcHFYRmtwZGhienl4WUo1RldSdVlmSHAxOHFlL1NWZDNJOUhIQ2N5elRSeXlNcGNyS1FUOWoza0hlb0J5VzRraGNPNkJUek1yc0R5TjQ1eDVEM1ZPdlNTREo2Tk9EOGtra3BrbnIrcG9LcHViNitWVllYdDBOOS90My9PdTl0cVY3bFZON2NrZjU3L25TZlVFVDFJeUkyU2tuSytEME5iUjJGNHVuUjZpMXZKNm04blpyTVI3SllkUm54b0gyMTFiVTdRTzl0cVYxRTdxVmJsbEp5cDd0elRkYzM5NmNrWHQxelpIU2R0L3hvaWxIWURmcDFwSGRrTmJ0bkIzSFh1b0YxcmRhZ0M2UzNOMnUzUnBuMi9Hc1RYbDR1Q3Q3YytYMjdmblNmUVZTVzVaWldrN0lKelB5QUZnTWpwbnJXOThxTEk1aDUreTVqeWw4Wng1NG9POXRxTitqaHhlM0lLbktudFcyUGQzMUtSZFNYc1NYME54T2dmYVdOWlg1WTVSMVViOUQ5NGU4anVxRnBJQXVOcytkUFhEK3BSMkY4ZTNhUVdjdzVaa1h3N21IbXAzeDNqYnZvSmJhVDNNRFJTdGNURWcvdFNzZlB4cVZlbWEzdUg0U3NieTFtbFJ1MVJXYU55dlZXSTZlZGQ3UGh5RFZFaVRuVlpjWVlqOXZ3T2ZkaXM4Y3pUM0dnMi9EcldydGNDTkp1MVpoK3lTdUFQRWp2b0thNFU5ZkhGMmpjOTVjbFBYb1F5dE94eU9jZFJtdlV4Nm1xUTRXNFdnaDFxd2x1VW5XZU80UjFWbUM0SVlIY1kvblYzMEJSUlJRTldyZnJZdjhKK3ROMmFjZFcvV3hmNFQ5YWJHb01rNzFyellyREhHK0RURnhKeEhIb05vc2trTHVIeUF5NHdNVUQ0eml1WmtxcFg5Szk3SEovWjdSeDAzTENsTmg2VzRUSVYxR3pDb1RzMEJKSStCb0xOTGQ5YU14eDAycVBhZnhsb3VvUks2WHFLemZzTm5tSHdwYituTk56L2JJL2tmeW9IRW5hdUQwUTNVVjFFSllKQkloSkFJMjZWaVEwQ1Z6dmsrTkxPQTJIcXlzZWtsM0tVYjk0WjZqeXBqMTErVFRqdXdWcEVWc0hIc2xnQ0trdkRLQkpyZU5SaFZrT0I0YlVEM3FHMTVKOFBwU1VtbFYvd0QyeVQ0ZlNraG9OUWE1VFRpQ0o1Q0NRZ3pnZFRYVHY2VkZPTmRURnBwZ3RSS1kzdVR5bGhuT1BEYnhvR0RXUFNSUGIzVWkybHFCR3UzMjNYUGYwcEZINlZKU3ltU3lqNU0rMWc3NHFLWDF2RDJUTUgrWUpOTWtpb2lmZkdmZWFDN2RONDMwblU1WTRvM1pKSHprUHNGMjhha0N5TElvWkdEQTlDRFhtK0c0RWI1RXBVK0lxenVCZUpSTmJ6UjMxNkFzU2hZMU9mblFXRWE1T2F5a2lTSXJvUVZZQWdqdnJWK2xBbmtPMUx1REhlWGlPK0xPZVJJQWlwL3hESnBCSjBwWndSLzFqMUxiZnN4LytRb0VNOXkzYXZ2KzBmclhBenUzZlRoUGFxSlgvd0FSN3ZPdVl0b3oxejhxQ0JhKzUvUzhwNytWZnBVWTFqV1UwK0VxcEJtWVlVZUZUVGlDMlJkWWxBSFJGN3ZLcWcxNlpwTlRteWM0WWdlVkFpbnU1WjVHZVNRbGoxcmdKQ0QxM3BWWTZaUGZ2N0lLb09yR24rMzRidDBBN1RMSHpvSStsMFZYQlk4Z09TdFNmVGVLMnNiVTI1Z1dhMUE1bFZrQjVUNDBvVGh1eGRkNCt2aFcwM0NUVzFsTE5iUHpFRG1LTjRlRlp5eTlYYncrTDhtVjN4RERmVHlhbmMrc0ZFUlQ5MVJzQU8rbjIwamtFMGJYSEswSXh6S2k0SkhobnVxTHh5eUpjTUhYbHdTQ25jS21kdUJJcU1DTUVDdE9WNHZCMzFLZlJwOU1TTFM5TW10YnpJTHl5ejlvcFh2SExVdjBkSm45Q0dzSklVWnpPNEhLdktNYzBkUVJVd3dxZjJRNWZRcHJCSC9mc2Y4QTF4MFJWODJuOGlXMGpTeFFoSEdXZDlzSEdOeG1sQ3VPYmw1d1dVbko1ZWxLTlRUdHREbG54Z1JjcmJlUnh2U09FYy8zUWNBS1RnYkRPOUF0bmlnbGpMM0lrWlkvYlFJMk10NW51RlNyU3RZMUMzNGFnc3JCa3RtZWN6Q1NSTXF1RGpCSjNPZHNZMjYxcm8wT25hVGJSNmpxTUNYRFNZN08xSzh3T1AyaU84Ky9hcE54WGJhWHJsdnA1dGRTZ3RKb01Sc2dRcUZYT2NBQWJZOEtDVGFSTmZYSEFLYWhleE9OUWUzOXVNTmxjZzR5ZzdnUnZTVGpEU1UxT1FhZkVwU05jWjVDUUZCVTlRTzQ3L2hXcWNZNlRvOXREcGNWM0JJcVFCRkRCdGdQSUNtdldPSnJTNzdTUzF2U0hsVEplRkNyTmdiWlBkamY1MERiNk9yQ2JTK0lMcEdFZmFQRTZHRG13NFFPQ0dJNllQejM2VWwxeVdlN25sdG9OUG1rY2RvZ1ZjRGJmNmJVcTRIbnM5SnZudjcrK2lUMWlKb2l4SkxoMndjSGJ4Rk9TVGk5bXVvTk9qVml4ZkxKdThvemduSnh0M1lIa2FDdlhzN2JTOWNnVnJVM1YrRVBOSVAxTUFLQTR3UjdUZWZRZWRTMkd3VFZiTjlKRVUwYzE0V2o3Y3I3SUJJSU9ldUFQS25XeTRYMUxWTGp0Z3FReE1uTDJqbmJ3SXgzOUtlK0lORy9SSERkOWUyMTFLdHhCYnM2ZGtpb2VZRGJCRzQrdEJIcmIwTTI2eHFyNnBLYzlTSTg5L2NQblNEMHY2ZEhwZkJ2RCttMjVZeFcxeDJLRnVwQ3hFRE5NY043ZlJjczh1cDZqTTdMMG52WkdBK0dhZC9TZ3hsOUgzRERzU3hhUlNTU1NUOWw0OWFDQjJkL3BiK2l5LzBpNGRVMU9DY01pSDd6NWNFRmZoa2ZDbUtIVFk1TEtKMUpWbVVIeXB5MUtPSDlEdnlBaHlZeWM1eDFydHA5dVRZUW5HM0wzRHpvR1gxZTZqUXJnT3ZpSzB1VUJzOEdUN1ZqN1VaVWdyanZ6ME5XR25EVWMyak5jS3dFZ09mZUtoK3ByYnZadUJNbk1xY3d3TzRIZmVnNThNUnc1djhBdFdDLzdNZVRQZWVaYTIxYUlKWmlSVjJMNDYxdzBPNGhFVnlHbTVIYkM5TzcvUXBicTZ3TG9pTjJ2TS9iYmtIMmNZUGRqcjhhQnZuTnBjTmJlb3dTeHVVV04wYVR0REpKbnF1d3dQTGYzME9XdHlWbFVxd09HQkdDcEhpS0lqQkN0c3lTOGtvWVNsbEcrT3V4UFErRk9Fa1A2VXRaUFYrU1ptT1pKTWI4eDhjNzR4MU5CWm5vNTF1M2l0SWJHNHVJa2VNaDRPWTRPQ1NTdWZ4SHZOU3ZqZlU3SzN0YkxWWkFYZ0JNSkNZNXNuQkhYdTJhb2J3N2NhRmJXZHFzZWl5WFZ6Z0xKTk9WU05pTy9PYzRIdTN3S2xFV3JXdXN2ZDJOeHBObzhjWjVvdzZDUUU0MjNQdk9OdkhwUU1XaThjNkxOckZsWkxhWFlra21TTkNRbUF4SUF6djUxYTlSdlRZZEFUczQ0dExzNHJtSnRpYlpBU2ViQUtuSGppcEpRRkZGRkEwNnYrdGlIZHluNjAxbjQwNmF4K3RpL3dBSit0Tlo2VUdqbkJxck9MWTdqV1pidWRGa2tpajJSYzdJTmgrUFdyUWx4eU5ud3FOYWhESEZvVjAwYWNvZVBKK1lvS1B1OU5samNGbEk4YVF2QVEyTUdwbGZoUk1SanJUUFBHdk1kaG1nYUxkNWJhWkpFWW80NkVWWmtFUUdueFM5b09ZZ2JaeWZuVUVhMzdRcXdYWlR1ZTRWTE5KbmFhd1JTMmV6OW5HVGlwZStIWEgxbU51U3dPSE0vb1pQOHgvclRpNDg2YnVIQi9VeWY0Mit0T0xnRUhiOGFya1pkZlhtMHFVRFlCbE9mY3dxVWNONDlZaHpuUGEveXFOYStCK2hybnlYUHlxUjhOTVBXNFFSakQ1SG50UVBkL2oxdVhQWGI2VWthbGQvL2JKUGg5S1JtZzVucjVWRGVNb28zRWJsY3VycnY4RFV5WVZYL0hGM0phSzZrQWt5S3did0hLMjFCRk5RUlRHQVI1Vkg3cTNqTzRYcFdialdwWGN4dEltT25URkk1OVFJSURZMzZlWW9OVGJxVklWY2swODZIQjZuZGxSSm5uVGRmQTB6UVhoNXhJRndvNkhQZlRoWVR5eWFwRGdFZzdkZWdyUDExL1dZWGM1cTc3TCt3VzMrVXYwRmRHclN5SDlYMjMrVXYwRmRXclRrVFA1VXI0TDI0bjFJZDNZS2Z4RkpaQUFDS1hjSVFzbkUxN0pqMlh0aGcvOEFFS0IzdnJEdE9hV0pkeDFVZC9uVE0wWEtjZC9oVWxzN3VDOWphUzNjTUF4VStJTk1la290M2RYbmFuT1B1K1dTYUN1ZU1iZ1dsMWV6bmJzNFZJK1ZWQlpXajZ2cWJBa2hjODhqZkgrZFc1NlNvMVJ0VFJ0MkVDNDkrQlZlOE1RRkxPYVlETE8rQWZJZjZOQTdKSEZieGlLSlFxcjB4UVh5TnF5M0tvM085Y3k0QjJvZjZMYlpuN1JNYmJqZndwN2pua3VWVlpRdlVqUFhKcU9QcTY2ZEFVbWhQaXB5Q0NmRVZ6c3VKQUpFTEFoQWVwRlluN1hsNk05K1BIMWw3N2FjVGFGNnZJYnVKUFpjKzFpdGRLY3BHSTJPZVhkVFU0U08zMXpSeWdiWmw2K0JxTFh1aTNXblhNbG82OW5kUnR5RlQ0N1lQaGl0dk9VRFpzL09yQzBrYy9vYzFVWTVzelB0L3dBVWRRRThLY1gyMkd1TGJUeVd3QW8xQ0htT1NBTnViekZXTkJwZDlwZm9oMVcxdm9WaXVESVg1QklzZ3dXajcxSkhjYUNDUThoaW10NUVVOXRIZ2dBTnZqWUg2MGh0bFpKWmJkWWdvZFZEWklQVHd4N3V0S1lvcFNRdlo4MlJoZVhiRktMZlREYXBKUE93UjJURVNuUHROM1o4Z042QlhFNnJhTERkU2lPT004OGJPY2V6akpBOXczK0hqUzVicTI5Wm41V0gzeWMrTlIyU1AxaG1rdXVXZDJVcG45MWNZd005T3A2VkdwNzIrc0x5ZFlIVjRneDVlY2tIRkJLTlhlMmFhV1FaREJBK1Y3eG5jZktucUdkSklVYUloazVkNUNOaC93QSt0UXF3bU4xY29ibzg1WkdCQzlDUVFjVktrdlJ5aFVqUGdpS05nS0haVjJaRml4bTlsUk1DR0M1TGUyTno4S2VlSE5YV0RYSkNxS3dFTGN1VHQxRlJLNTFHVW9Va2JCOEFlbmlLN2FCTDJ1cTRQc2pzempiT2VtMVNiMjY1K3NrazdYVm8yb1BmQThpS3FxTmdvd0JUaHExZ2RTMGlhejluTXE4cExaeCtGTlhDL0l0bmtZQ2c0eWNDbjJXN2lqQUJkYzkyOVZ5VmpjZWk3VlpKUzYzMXJnbmNIbUpIdXlLUitsaXlleDRMNGZzbllNMEUzWnN3NkVpT3JNdTlVYUI0WUlpc2x4T3hXTmU0WTZzZklWWDNwa0RmMGQwcnRNT3d1bTVpQmpKN005MUJVOTR4ZlRtRFl4eXIwOGpVaTRYc2x1dE9qT2RsY2pyVVlaSkpyY3hSUnU3RWJLb3ozMUwrRjNGbnBCN1pzRVNPTUFGaDNkNDJvSmE1aGcwL2tZQUtWNUJzT3ZLYXFiVjQ0a3RabDdVb3doYktqSHRFNHF6N2kxbXV0TU53dk1zQ0ZaR2RsSUFVRGMvalZjYXZicEJGY3JMS3F5c3JEbEQrN0cxQWg0U3RvcGt2ekpHckZJd1Z5T2gzNlVwMTdtT2xxZ2ZtVHRWUElFRzNYSnoxUGZTZmhrekpZNm9ZT1R0REV2THpianZwTFBOcUNNVGRQRzhhN3NzYTlQT2l5YjRqakpwZ3VvcEpvcmh1YU1LRVJrKzhNZmhVaDRldHJTMnNwNUppVnlWT1hrd1cyNkZSMUh3cHIwL1ViWjVaVVNUSE5qT1RzY2Z1K1hTazZMS2w3Y3JMTUFXWUVNQjFIbDlLazIzNVBYaVluKzcxRlhpTU5zeXdGYzRrQTVXd1Q1ZFIxMnBIYWFyYzJxUlNpK20zTEtGU1U1akp3Q1YzMlBUZWtrYUpFSGFYTEJ6eS9mM0FIdTdxU3RhTUovc3lBR0dNL21hcm1tdkRXc1hNdkVHblF5WGJ1R3ZvbHl6RTVITnY4TW41bXZRWjYxNWY0V0NyeFhvS0F2bjF1RTRKKzk3WTM5MWVvRDFOQVVVVVVEVHJINjJML0NmclRVVFRyckg2MkwvQ2ZyVFV3eFFJdFJXV1N4bVdFa1NFYllHU2ZLcTc0azFTOEdreWhZMzVPendER2RodjMxWnJEUHhxQWNTMnl0cHQ3bHlpaFNjZkhwUVZhbDFjM0pmTE1lWEdTYVF5WGtwa0lHZWJwaW5xMENSMnM3a0FLMlZYSXdXSGpUVkhDcjNaYmZzd2NsZ003K0ZTM1RXR0Z6eW1NS0xlNW1paENsWFZuR2QraEhqVWk0YVNUMU9SMlBzRnVWYy9qVWQ1MWtrWmdOaWRzOXdxYldGdUxXeWloR2RodjcrcHBQOEFMWGt2T3BlSW5YRG4vd0FtVC9NZjYwNFBta0hEZy9xWlA4eC9yVGk0OHFybVFYbHVsMWJ5UVNaNUpGNVRqclNqZzcxdUhXT3d1NVZkUXk5azRHT2JZN2Urc1NZQXllZ3Jod2FicTkxNkcrbUNwQTI4VVliUEtOOEgzbWdtZCtNM2tudytsSXp2UzIrL3RrbncrbEltb09iYi9Pb1R4OUR6MjFzd3dDWDVTRDNqQnFiRVZFZU9vODZaYnlmdXpZUHV3YUNwRnRnTlV3UXJ1UGE2REFIaWFiZFVRUGVNVUdRVGdBZDFQZlp2RzA3ckh6RWtndG1tc3hHTjJubHljYkR2elV0MDZlUEQzeTE4Y1l3VUhZWktxUHZBNy9LbjdoNjE1cDViazlFWGtYMzB3UjU2NzVZbXBadzloZE9Za2pkenRTTTU1YnEyckVmMWZiZjVTZlFWMGF1ZGtmNnZ0dW42cGZvSzZ0VlpKMy9HbmJoVEg2VW1HUm5zZkgrOEthM0hmU3JoWUgrbHN1d1AreEhIL3dDNHRBeTIxek5ZM2tra0RsVHp0MzdIZXBEdzY2OGx3NTZ1eWo2bW9xazhVOGtqd3lwSXZPd0pRNTN5ZHFsR2dxRnRGa0IzTWh5UElEL25RVnA2VVU3VFVyeU1kOGEvSDJhcjIwdkd0dElpU0llMHpOMDk5V1Z4MnF6Y1N6Um43cGlYNlZBYm5UUFUxNVk4bFFTVkI4eFFORFg5ekhMOW8yYW1PaWFXZFNzM25La3FxOVBNOUtoaVdVdDFlckh1Y3RqSGNCVnRhRUlyUFRqQU1EbTJPS3psZmtlandZUzMyejZpcGJ3eUM1ZFhMc3FzY2MxU1BocVMwbWplM25UbjV3Unk4dmwxcDkxL2htMHVoMnNXRWw4UWRqVWR0Yks0MDZiazVjTWYybE5XVFRqbGx1N1NEaHZPbjMwbHNIWm9UbkN0M1ZOdlNQcHhoNGd0YnIyUkRxRnFGWjhmZGVNREh6QnFJNkxhWVl1NCswTzVKcTIrTjlPRjVZNlFlVUVSdVEyZTVTZ3lmd3FzdlBsdGJTcnhIUGJ5TXhJa1RjbnBsaFZvOENHTnZRdnFKbHlFOWFrSjVtNXUrUHZxRGFiRTF4eGs1a1BNUVVCSTc4SFkvR3B6d0RDMDNvWTFDTlRrdGR5QUVqempvR2g3cUlqRnRiRUgrL2tmZ0tqMnFQZFBlOW8wemN5a01DeE9QRHArRlNkZEtuNWo3Y1lIUW5QMHBCcVdnWEZ5ckxFRVk0M3pKZ252L2xRSWJDZEpRVmZsRGpmQk5NdXFXS1NyZHlTRlJ5Uyt3UDJqdjlQR25XWFNOUnNFOVlrV0lGUjFFZ3lQY08rbXFTVVNRM0FtTE5MMjR5NU81SlBTZ1RjeTJuWUFFdmx1VlNPbzV1LzhLMmdrbVVkcDJzMkZ4N1N2ME5Kcmt5SzVTS1BNdk1BaTQ2R2xjeFJVU0ZEbmxQTWR2R3MyL0hieDRjWE84YUtrbGFaUTdrbGlNYm1uamhzRWFxMkIxUWsvTVV4VzJleVZSNTcxSXVHVUg2U1k5QUl5YzU2N2l0T1Z1N3RZZHZxM3FrSUdTRlU3S1A1MXRIeEhidEFWTnZJOHhQMysxMjM4c1V4em4yU0NSanZ6dlNOVzVFWE9TT3V3eFJEN2U2bk5jM1ZyYzI4aXBjMno5cEVYUHNFOTRiRytEU24wZ2FsYXg4UGFMZmFwWXJjcTgzTThLUHRrcHZocWpzWE14VnM0SG4xcHk5SmFrY0dhQ3VkaElBYzkvd0JuUVFMVjlUMGk4UmpZMlUxdWtnT0FoQVpSNy84QWx2Uy9obWZrNFpXSU4rc3VabEJIVFpZelVYV1BKQXdRRDMrNnBIcDFyY3cyTnJieXlRV3FMTEk2dUY1bU9WWEpLbllqQThxQzRZTGVPNTRXU055TVBaWXg0K3ptcUcxYUx0M2FTYWFOVUtNVThTVGpwNWJWUGJhVzVsdHBZUk04aXhXdk1qdU1rWnlENWJrZUhTb0hKcDhqS1RKMmFzUU44N2swQ1hRWXpiMjJvZGxseWljcjdiRTc5UERGSlpyZWRyUnBwa051amphVTViT05zWUc1cCswcXdGckhER3JjL3JqQldJSFFjckhLL0d0TDdUNTdpWCswQ1FnWUhOMDIyK2xadDUwN1lZK3VQdjhBOFJpMGpqZ1o0b29tWWN4ekk0Qlp2Y2U0SHdGVFBoL2hHUGlwYmlkTHRyVXdGVXcwZWViSXpYSFQ5RGpCWjdpYm1ibTJFWitwcFRkTmM2ZHlKWVQzRVVUdVRJeVRGU2R0aHQ4NjA0bjVmUTR0eEd6dnJCU01kQUlUOGUrdVRlalcxdDlTdElCUExNMTB4aURsVGhRQm5tWWRNNUk3Nmo3YXpxRGpzenFWNGNlTTc0K3RkN1c5dllBWnZYYmxXeDkvdFd5UGQ0ZDlCTXJMMGFwcEd0YWZlUjNTVFNSM0ViSENsUnlnNXhqSnEwcW9MU05XdnB1SjlMRWw3ZFNLMTdDQ3BtWnR1WWRkK2xYNmV0QVVVVVVEVHE0KzJpL3duNjAxdDFOT21yL3JvdjhBQ2ZyVFBQTEhDcFp6amFnRHNEVUs0dWh4WWFpdlFOSGxjZjY4YTE0cTQ4WFNVRU5uR2ozTDlPWW5Dang4NmJmV2RRMWJnNXRUdnBBelRoeWdWUW9WUVFQcUNhQ0VYRnU3V3lvektNZ2ROc1UwWENQQ0JFR1hCd1RnWUk2N1ZLSGJzYmRwR0h0Z1pUSS8xbW94SnpHVjNicXh6V2U3dzd6K1BEYzdyTWVBeTVPQVNLblNYTUw3SktyZjhWUURPV0E3cTAxSkdVeFNnZTBSeWsxcHdYeHcyNE9pcHY4QTlvMzFwelk3bndxcnVDYjY4azBkVWptYjJISU8vanZVMWkxQzVRRHR2YVhvY2pjVUR1dzV0cTA0Q2NGTEVlQUkvRWl0SVprbTVYUTdWeDlIczNNYk5jN0NXUmZreG9KdGZIL2JaUGVQcFNRMHZ1SURMZXluY0tDTi9nS2E5U25GcWpjdEFrdnRTdHJDSjVKNU1LaWxteDRDcXgxbmpkdUk1RXNMUzA3S0lNWkRJN1pibEFJNmQzV3QrT3RVWVdKaERlMU9lWFBsMzFIdUdyVlRhWHVvTUR6UnNzU2p1T1FTZmo3TkIyRVpkWFhHZmRUQnFNaGE0TVNoVlJHSUFVWUJxVVRzbHBGSVFEMnBQTHlrZEI0Kzd6cU56NW5sSlVFNDhxejNYZkwrUENZenVrR1FxN1YyRTg4ZG5JWXBXUXJ2N0pyVDFhUjVNY3BIODZkLzBTMFZvNnY5NWtMSDVWcHdPL0MzR09wbVdPMG1uYVVjbnNjeDZZSFNwOWI2MUl3SGFwdGp1cW5PSDNGdHJkbXo3QVNCVzl4MnE0b0xSSkdaQjk1ZW5uUU9FZHdrNHloelR0d3Qvd0JaV2J1OVZQOEEvSXRRdUdkNEptR2NGV3dSVXg0UGxFMnRNNFAvQU5NZTcrK3RCQ05FMCtUUzdKNEplWHRPMmtadVh6WTFPZEt4SHA4RGQ1VmlmblVQdjc1TFIzWmxKek55NEhpVGlwWlpjeTZkSC9rRGJ6b0s5NHJrRW5FOHpaNkluMHFOWDR5ZHFmT0kyenhEYys1ZnBUVEtuTkltMmNrREhqVHBaTjNSdnRtaDArS1NhUU4ycmRHQTZEd3J0WjYxY3JhdTlxcXRJU0FzYkhsMm8xV1pJNHhBcWdqcUY4S1k0ZzhWMHJjMkIxNjlLeGp6ZHZSNXNyaEo0cGVrdnY4QVY1NTlOdHB1d2FLUU9WbFRQZGl0YkIxdmd2TVBiQnJsQmR6WEZ1ZTFaSkF1d0FyYUdhQzJaWjBYa2tEcUNtZXU5YmVaSWJlTHNtSGtLdGZpcUs2ZlJJbXRRR1pRQVJueEFIODZxNzJUR3NtZW83cXVLZTU3RFNubTVBNnhRaCtYdkpBRkJTeWNNM1dsY2ZHeldPUzRsaHNvSG1rUmRpeDVtUHlHQjhLZGVCN2x0SjlDdXBYSURGbzdxUmh5NVU3bU1menFSM3VwM1YzcU1sekZQTkFIeDdFY2h3TURGWjRpZVc0OUYrcm1WeTduQXkzK05LQ3RocitvYzdNc2l1dVRndW1lK3UwWEUyb0dWVktRRlNSemZaNHorTk1mT1c1Y1pCNVJuUGpXd2tBWUFqY0E5UEdna3R5V3VZNU9ac3VWYkF4MDJxRVNaamU2aW5XWExFaENpNUtzRGtaOTFUTExOR1cyeHlnK09ENFZIWms3YlVKakpua0VoTEVEenBicnRjY2ZhNmN3SGtUMWh4SGtjcDNYcWZIeU8xSjFzNDJZQTdIeHBYS1VlUUpFQ1VRWUI4YTVlSU9jMW1UNjYrVy8xblRlS0JJMXh6WndjbW43aDFrL1NUYjQreGI2aW1PTndVTzJNZUZPbWc1L1NMTGpPWWllbm1LMDRwUGQ5cGNRY3R1c2JOa2ZySEkyNys2dEFKQVBiNVNPbU91YTV1N0kvTHNBZTdPNjFsWlhWVUF3Um53M0ZCM2k1bzhCSTA4eVJuNFV1OUk0RGNGY1A1YkM4NEpQL2wwM3d1Q2dITDdaT2NIK1ZPbnBKVURnelE0eEhMSXhmQ3BHaFppZXo4UHpvS3RnUU5JTTdqOW1uYTNtN0Z3RkJkczVCYnVKMk8xSUxXMTFDV1JtT2wzTUtvTW5uWGZidnBYR1MwcHg3SURic2Vnb0hYU3A1NXI2Zm5seVJDTUJqdGpKNkNtNEdLS01IbTUyQysyN0hHUGRXbk42dmVtV0tSdVFRdXBKNzl0cWo5dHFETXFtNFVjb0d4eWNacVc2aldHSHRsby9UWFhxY1VNY01tU2h5R0kzR050dktteDd1UjMyY2s5ZGp0U1dTN2U1UGFIQXlCc0t4R3h5b09OajNmNjNxU2E3Yjh1VzdxZFJLZExWbmhCSkp5ZHFsbWw4TlFhOVkzSWxuYUlxNmdGUUQzWnFIV045SEJBRkl5M2o0Vk5PR2JxY1dWMUxKYnVzSGFKbHpzdWNiYjFweWJRK2kyS0tVVG05ZVdNbmNORmdIOGFYYWp3anAwdG42dkUxcmJ5TU1Cc01UMytkS2RFblhYZGN2YlNlUTlsYm9yUlcvTmdNRG5tWStQZDdxa0Z2cEVOdEt4TWs5d3p0a0xJMlF2dUhRVUZlNlR3T2x0cmxuY0RVMlpvTGxHS0MzSTV1VmdjWnowODZ0M3ZwTGJQaHdpUkJGT2Q4WVB1cFZRRkZGRkEzYW9BQXJrYmhTS2dlczNiaGl2TjdxbXV1ekNHTmM1eHlNZmxVQTF3TkhwazF5Y2V4SG5meDVjMEZROFFYUnVkWnVYVTdLZVZmaFZxM1ZpbHB3cEhwOFlWVEhhWUNIdUlPVDhTRFZWNk5aSFY5ZnRMVWdudDVSemVRemsvaFZ2NnV2cmRzWi9hV0x0RkxjdlhCVUEvSDJhTExxN1ZscTF3NmZZcjl4QjdKRk16UU04WVlZREh4TldmcUhCRnZjTVRGUEtoWE9jNHdmd3BKYWVqMHZNclRUc2tYTHVWSUpIbDBxU2FYUE81M2FCYWJwSnVadmIrNk4ySXJPdldhcnBrY3FBRERuNWRLdFN4NFNzQWhFVXM0UUl6ODJWeTJQaFRQcUhDVUUzRFhPc3N4SlNVNE9NWkI5MVZsR3ZSeEptYTh0aWZ2UmM2RHpCMy9BQXF4TG1JVGFQTGNSRDJvOEZzZVhmVlJjUFhMNlZybGxNakVCWmdHOXhPRFZ4c3kyTjZIVVp0TGs4a3Fub3BiYlB1M29HbTB1bWhkWkFUZ2taQXBad1RPTERYckxUcGM5cEpjU09oQTJaV3lSaitkTXR3aHRMNlcxeWZzNU9VZTdiODZjTkM3U2JqRGgyUmQxaHVtVmg0QmtQNVVGczNzcXhMbnY2L2hVVzFoak5KeUFaRElyWjk3RUQ2VTk2NjdMQ1dUN3kvekZNY014bGthVlJrQlZ4bm9QWjJ6N2lTYUNuT09uL3JXSzJCejJhNVBodjhBKzFQUEQxb2c0THQxY0FOTmZkcWMvdEFLeTFGK0paRGVjVFhmWjViTW5ab0QxMjIvR3JWdE5FdHA3VFM3VTg4Y0VMbFBZeG5iYnc4elVzMjFqbDYzYUR6ODEvQUdjRG1YS0FqdnhUSzJtM0NzUUV5ZkVWWXk4SzJ5WHQ5YkxOTUdqSmRlbmNkeDA4S1ZhYnduWTNGeDJuckU1aVplYkdSN08zdXBKcUpsbGNydXEvdGROVzJZU1NnR1FkRkcrUGZTbTRRaWFaY2RJZnFhbXR2d2hhU3Vaak5PVWxsRWNlQ09nNm5wV3ljSjJVK3JYeUdhNTVVangrejQrNnFpbmIrMk5ocVJBR0NPVng4Z2F0elRMc3phUlk2ckYxYU1DUWZoVmVjYVFpUFZWa2pCNUFnUUU5K052NVZKT0JOUUV1aFRXcmtuc1d4azlBRFFQR3RLa2Q0czBXT1NkQXc5L2ZVaDlIa3ZhYXRjZUhZYmZ4aW9qcU0yWUZpWnZhZ2tKSCtFL3dEdFVuOUhEWjFxY2Y4QTZYUC9BSzFvSW5yQkwzcXhnQWdPMGorSTlyQS9ITldFekNKSkY1bCs0dkt1Um5HS3I2NDVaZFR1RGtFOXVzWFR3YkordFQ3VVlZMEU4cklwZENRajQzQW9LcTF1VXZyZHd4UGdOdmRYQVhOc2xxNUxqdFVQTmpJQitGSXRkbVlYRjlNcFlGRjJLOWM5MVFHOHVuYWNlMFN5bmRzOWE1NWMzMWoxZUdYeFkvbCtwTGVHYVM2SlVrazc1OEtRZXJTdktBWlRrbWx1bjNJdXJkSmYyaXVHOTlFMFRCdzNOamV1a21ubXR0NXA2c05GREtNeVM4elk2TmpGYTZqcDcyZXBXa1FrWjBiR1N4enZtbkhTV2Jzd2M4M3g2VTRYVmtaSlV1RHZ5N2dHaUZrRTRXSlVKNkRIU3JkdXBzNkpPQm5sTnYzKzZxV3QzTFNFRVlPZmhWelRXTW1wYUplV1NTdEU4dHFVV1ZlcWtyMStsQkdFUU1lWUhhbFd1cnplalRWVkdNay8vd0IwcWgzNHU0bzBXL2EzdTdtVG1qT0NzZ3lweDc2dHZUTmNtNGs5QzJwM3NrYVJ5Q1JveUU2SGxaTi94b0s1bnlJSStUb3ZOek1XNkFIb0s0eHlySXdZREJCMkpwNHNiUlo0Z1NBeWtuSVllT0tjWTlHdDJJTFJLQU54c0JRY2JXVHRZSXozY3VNVTF6bG9wSnhrY3p5SHAxSS9sVXFpMCtHUG91QmpwamFrc3ZEbHROUEpPWlpnWEpZZ0VZK2xTemJlR2ZwdEZoa0RJMkhjSzJHQ0J0dlVsWGhxMnpneVRLZXU1SDRiVm4ramxwZy9hejQ5NC9LcXdpK01FbmJ3NlU2YUQ3Vit3NWlCMmJkQm53cDBIRGxwalBiem5IZGtiZmhYVzMwbUN3bU1rY2tqRWpCREVZSFR3SGpnVUc1NUE0NWVZZCtjWi8xLzcxb1h5cElVcTIrM1U0LzF2OGE2RUZpQUQ3UGVDRG5yMXJXUU1HSHM1eU01eDhmK1ZCMGljeG5DSGRqZ3VSemY2SFdwaHhISVR3bG96am1VRUxrRWYzTytvY2hVZlpsU001RzJ3UDhBck5TN2laLy9BSVMwUWdrOHdIeDlpZ2lxdXl1R0RrTU9oQjZlNm0rL3NCTXBraEFFZ3lTZ0dGZjNlQit0S1F4OW81RzJPdGI1NXdWQk80NjBFTXZKcFlPekV2TW1YNUdUdkFJTk1rMG5MQ2tBKzZBQ1NEbk5UL1VkSmcxT01KSjdFaWJDVlJ2N2o1VkZKdUc1TGVReHV6SEIyWlJzdzhSdFVzMjZZNStzc24wMnhIN01ZK2xLSWxQTm5POU8xdHcvSDJhOHp5YzNmdU1DbFEwSzNBL1d5K2VNVlhNeHZLeXBoVFQzb2Q5T3R0TWhua0tGMXloWTRPM2hYR2JTYlpHUldtbEhONWpOS2JXeWl0MUlXU1RsZmNsdCtnOHFCeml1QzA2TVhram1COW1XSitWMXo0RVZZT2o2M3JTd2t6MjBXb1JEN3JSbnNwY1lHQnkvZFBmdmtHcTZ0M0NNQ1FOL0w4S25PZzNiODI4bUF3SVV0K3h0M2U3TkJLZE40ZzAvVUpDcnFiUzVSZ2hodTFLT0dQUUxuWmlmSW1ucW1pM2xqTndTeXhTRm5HTVlQVHY5KzRwM29DaWlpZ2pYRTZzMHlnazhqVzVYSG56alA0RTFCZVA1MHN1R1RFbjNwVGdEZnFlcCtXMVQ3WDVndW9Xc0xxQWp4c1E1N2pucCtGVmg2VTVHUzIwNkJtOXBtTEVlQXdjRDhhQ08rajZ4TW11ZXRuWVFsVUhqek1jZlROV2V0c0gwYS9qUFZHVnZoazFGdlI1WU5IcDl0SXcvWHp0UDA2QlJ5ajhRYW4wVUlQcmNJR2UxalB6RkF4TFAydHJidStlU1pleGNqOWx4dHpEOEtjWGpOdncra1NqTWtqaEZQdnBxczFFMm4zbHN4OXFNOW9uOHhUdnBoOWZ0N1FuY3c3Tjd4MzBHVWo5V3RydEFRUkRiaVBJSHovR215ZjdIaEtOeDFkbUh6TlBWME9UVE5Sa3dSekRxZmVLYU5Wanh3bkFFL1lreWNVRkdhbkMxcnFWeEdkc09TTi9IY2ZXclNqdlRlNkhhTnpEN1dCZVZ6M1BqcDh4dDUxQXVMN1V4WHNOeUJ0TW1DZk5hVWNQMzVPaXZBellDU0hsYlBUdit0QklIdXZXcjJHWnZ2T015ZTlkajlLZmVEZ1R4TFl0dVY3YmJ5Mk5RL1RtOVl1cEMyd1FGdmlldjBxYzhGQUhXYlk0MjdZRWZJMEZnNm5neHpnNzdBZ2VKRy84QUtvN2I0T2t1NFQ3TW9XWWpibUdPbng2ZTRVdTRoMVNPMmtuUUVjeWpIeHdEVFBhWGd1dUZMNGh3STR3NGJHTnRzNDhzRDYwRlA4UHhtOTR2dHBKUGJBbU16ZTRaUDVWZFZuYjluWVdoSTNCN1Q0bXF6OUd0aUxuVWIyWTR5a0t4ai9qTytQbFZ2WEVZalVBREFBMjhxQmsxRnZVK0pVbTZKS01uekRWdFlONnBlWGxvTWUxOXozVm5pR012YTIxeUFlZGNLYTRNL05OYVhpQS9kQWVnZklMWVJtemgvY0djRHVwQllaZTgxTmgzaGdQaFQ1YmxaWm81Vjc5ODB5NlpHUmUzYUh2bGI4YUNxK0xiY1NhZEsrRHp4U0JzL0dtVGcvVVBWZFFudDJZY2swZTQ4eDBxWjY1YkNVWDF2Z0RtRGRmTEpxdE5NZnNOWGpCMjNLbWdtVjVkTTh6eGcrMlFGQjg4N1ZZUG8yQi9UdHp6ZGZWZ1AvV3RWYkxJRTFLM0xIYm1CNjFhWG8wZnRPSUx0dTR3RC84QU5hQ0thUXlYV3QydVJ0UGZGaVBITFkrZ0ZUbldyZ3hhWkt4NjRKTlY3d1BkTmZhL2J0S0FDczAyQVA3cGJCL0NwVnhQZG45RHUyY2N5RTBGT2E5Zjh0dEtBRHpzM0tDUFAvMnFHa2xqbnZOVERVTGVLOHRvd3hWVHo4em52SUdhUUxEWjI0NVlJQVcvZmZjbXBKSTNsbmNwSmZqbHBURzNzV2xMY3A1c2dIdnBjYmd5RUFucFRmZk1pUmNvVWMzZlN6VHJmdDlPUzRSQTU1aXJEd3hWWU9PbWFtMXJNVjV0bTYxTWwxTlhzaG45M0JIZlVCRVAybzVvZ1BoVXMwVnJVcWl2YklTVGptYndvRnRvMi9NVGtIcFY1NmZkeFFXRFRTTjdLcm5mM2IxVTZQbzZ3cW90b1J5amZyN1JyaHJQR00zNlA5VWdmQllZT080ZUZCSE9JMXRkVW11V2tRTXJTc3lud0dTYW1mQlZnMHZvUDFXMHQrZGo2ek1SanJzVVkvU3F3djcxbGp4a2ttcmo5RkE1L1JqY3F4MmU3bUJKOHdnb0lwcEVISnBzZHhNdkswamZaTGsrMHAzelRzcEFPdzdoanpOTXFTdW1vaXprbGFWSUNWUUU3QUtlNm44S3JCbXhoZXVlN0ZCajdveGdrMWhaY3Z5WUpBSFVHc3lSTUVMWndjWjVTSzU0T0RzYytZL25RZCtkdWlIYjUxZ0QyY1lQeEc5Y1VmQTJQWDRWMFZpd3pnc2UvQm9BbkdRVHk0emcvd0Fxd1RoQnZuSTZucjhxQ2ZjTWJjdGFBZ0U1eG5CNjBHZzVNOHpBZ1kvMFBsWE1vU2Z2Z0hicjE4ZnkrVmRPWDJsQUdXeWQ2NTh3NmtIM1lvTXZDYzh5akdNZkQ0Vkx1SUZZY0k2R0dQUHlxdk50OTc3T29oejl4YmJyNFZLZUo3NFdYQy9Ebk0vS2t6Q01oaDErei9DZ2l1T2JQTmpIY01kYTAvYXh5OHVlZzhhN3pRWTVuQkNnZlBGSitWU1ZJM3gzMEdWbEgzTnhrZUZkU0E4WmprQmRTY2p4WHpGQ0JNNE9DQjF3ZHpXSEFkUjNaeDMwQ0NlM2t0eGtNWGpKMmZvUGNmQ2tyU2tITE5uYW5qbEpVNVhLc044OUNLUlhlbmhVYWEzejJmN1M0eVZ3Ti9oUUpCY2NuS01BSHVyRE9uVWI0cE9NdHNwd001ei9BSzhxMkRjdlRIVE9TZW9IaFFMck8ya25rUVErMFRqWUg0Vk10STB5NGlnTFN6ckdDUUNyYm5IK2pVUXNwdXlRZ0E1eDF6MDM2L2hUc05UbDdQczRwZVZSbGNFOVR0UVdGYVdpSk5iczA2SDJnN0VJUmtnZ2Z6cVFWVk9oYXhkL3BMVG9lZGloa1VFNThXV3JXb0NpaWlnaDNGdDRMZlg5SVJzRlNHSUI4U2NmenF0dlN3Vy9TOWdHT2N3TTJNLzNxdSs2MHV4dmJpRzR1cldPYWFEOVU3amRQZFNMVU9GTkIxYVZKTlEwbTJ1WFJlVldrQkpBem5IV2dpbkIrbW0wMFcwUndjeFc2cjdzKzBmeGFubFhFVnpHY2Jad2FrVWRqYXhJRWpnUlZBQUFBOE5oV0RwOW1UazI2RTBGZGxUWTYyeUhaWE9EN2pTL1N2OEFZNzJXSTU1R0pJUHZxWVRhTnB0eElKSnJLSjNIUmlEbXRocFZnR0RDMGl5Ty9Cb0dQVkkvNmt2UDd3L25UWGNLSDRabUlYT0FHRlRWN08ya2lNVHdveUhxcDZHdVEwcXdGdWJjV2tmWWtZS1lPS0R6MXhkYnROcElsM1BaT0FBTzRZM3FPOE95ci90TnV4KzhPWWVmalhwbWJoSGg2NGlhS2JSN1Y0Mis4cEJ3ZnhwSkY2UGVFSUg1NHVIckZHeGpJVnZ6b0tHMDJabzd1NFFucnR2Vmk4RzVHdFdBQXlETGtuNEdwd3ZBdkNxdVhYUWJNTVRrbmxiODZjTFhRZEtzcFVrdHJDR0owT1ZaUWNqOGFDdGVNN2tyeFJmUUsyQTNKbGZFOG9vVVRXZkMrclFjbzdKckNWMmIvd0M2UVI5S3NlNjRjMGE5dkd2TG5UYmVXNFlnbVJnY2tnWUhmNUN0MzBIU3BMZVdCckNFeFNyeXlJUWNNUEE3MEZXZWlXMFBxdDlkc3YyWmtWUTNqeWcvL3dDaFZnUy9hbGhUcHAyaGFWcE5zMXZwOWhEYlFzM09VakJBSjhldmtLVStwVzJjOWdtYUNMVHhDYTJrdG16bkpLMDBhYUN5U1c3ZFVPd3FmbXd0R2ZtTnVoYnhya21rNmZISTBpV2tTdTNVZ0hlZ2FOTm01VUNNY1kyRkpMUk9UWExsY2RSelZKbDArMFE1VzNRSHJ0UU5QdEJPWmhicDJwR0MzZmlncUhYQ1l0VnVBd081WVZWR3JRdFphdElNRWUyR0ZlcXJqaHpScnFReVQ2YmJ5TzNWbUJ5ZnhwQmM4QThKWGtuYVhIRDlsSS9UTEtmem9QUEY1TVh1N1psQlBNUDVWYXZvbW1WOVp1VkxBeUMzR1I0ZTJ0VFJlQk9GVlpHWFFiSUdQN3A1VHQrTkxkTTRjMGJScnVTNzAzVFlMVzRsWGxlU01FRmhuT092aUFhRHo5NlBiaTRYaTJWQ1Y3T0ZMbCttNDNQNTA5Y2RhOURhV3h0WTJWcGlDR1VmczlLdDJ6NEs0YTArNGU0dE5GdElabkJET2luSkI2OS9mWEs1NEI0VHZKV2t1ZEFzcFhZNUxNR0pKK2RCNVplUnpHTW5kcXd1VXl4SFFaK05lb3YrampnMy93QU4ySDhMZm5RZlJ6d2FRUWVITERCNit5MzUwSGtxVm5sYmNlK3BSdzRPejA0RGxQdFpQNDE2Sy82TStDZi9BQXpwL3dEQzM1MHBoNEM0VHQwQ1JhQlpJbzZBSzM1MEhucVMzOXJPRFdVa2xqR0ZHSzlEbmduaGc5ZERzLzRUK2RZL29Od3YvdUt6L2hQNTBIbnMzRWlqZGpTTjNZKzFrNTg2OUhuZ1RoVnV1ZzJSL3dDRnZ6clU4QThKbnJ3L1pmd3QrZEI1Y3VuYVdjK1cxWG42Tm1OdjZKN2h5TjF2SE8vK0tPcFovd0JIUEIyYy93QkhMRCtGdnpwM3M5QzB1dzAxdE90TENHR3paaXpRb0R5a25HL1h5SHlvS1UxRlJhY1lYS3YvQU5wS1dCQTJ3M2hUMUUzTW94MFhZWjZiSEg4cXNxNDRXMEs2bjdlZlNyYVNYQUhPd09jWno0MTBUaDdSNDE1VjA2QUw0WVBqbnhvS3psWXlBbkIySCtzMXdMZFhaV3o0bllrZVlxMDI0ZDBadXVtd0g0SDg2eC9SelJzNS9Sc0djWTZIODZDcWxaems1T0QzNDd2QVYzTGxjOHJ0a2V5RGpiMzFaMzlHOUYvM2JCOGorZEI0YjBVOWROdCttT2gvT2dxNW1IUTVKMjJ6OHEySkM3Z0VuenEwRHc1b3hJSjAyM3lOODRQNTFnY09hTUJnYWJCajNIODZDcjJBeG5CeWZEcFdrbnQ1N2dSdWZDclRIRGVpZ0FEVGJmQTZiSDg2RHczb3BPVHB0djhBSS9uUVZObGlTQzJjSE9NZUZPdnBIQkhBWERSenVycWMvd0RsMVlaNGEwUW5KMHkzejdqK2RkYjdRdEsxS3poczcyd2hudDRmMVViZzRUYkcyL2hRVXpwZXBIVkxOZVlZbGp4ekFEcU9sS0VHSDhqNFZhZHR3Znc3WnNXdHRIdFlpMnhLZzcvalhYK2pHaDR4K2k3Zkh1UDUwRlU1NUdLZ01UMUlIZFc0SktoZ25UcHRqTlduL1JqUS93RGRkdjhBSS9uVzM5RzlHLzNiYi9JL25RVmVvVlBhYjJsR0JnLzY2VmlNeXhvV2tJREJpVlpEMVhQczlmeHEwdjZPYU4vdTIzK1IvT3NIaHpSajEwMjMrUi9PZ3FXNTB0TGxUTGJCSTVXenpSam8zbUQzZTZtWXhNam5uUmdWUHRCdGlNVmVuOUhkSDIvcTIzMjhqK2RhUzhNYUhPL1BMcGRzN1l4a2c1K3RCU3FLcEFCQkk2REI3alhSblorWG1CR0NENCtOWEgvUlBoLy9BSFJhL3dBSi9PZzhKNkFldWtXdnlQNTBGVjZOTXo2NXBpZ3RuMW1NSHcrK0t1MDlhYUllRjlDZ21qbWkwdTNTU05nNk1BY2dqb2V0TzlBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFmLy9aJnF1b3Q7IGFsdD0mcXVvdDtJbCB0dW8gYnJvd3NlciBub24gJmVncmF2ZTsgY29tcGF0aWJpbGUgY29uIGxlIGltbWFnaW5pIGluY29ycG9yYXRlLCBtaSBzcGlhY2UmcXVvdDsvPg0KPGgzPkZvZ2xpIGRpIFN0aWxlOjwvaDM+DQo8cD5RdWVzdG8gbW9kdWxvIGZ1bnppb25hIGFuY2hlIGNvbiBpIGZsb2dsaSBkaSBzdGlsZSwgc2Ugc2kgdXNhIGlsIHRhZyB7Y21zX3N0eWxlc2hlZXR9IG5lbCBtb2RlbGxvIGRlbGxhIHBhZ2luYS4gUG9pY2gmZWFjdXRlOyBsYSBzaW50YXNzaSBkaSBzbWFydHkgJmVncmF2ZTsgbGVnZ2VybWVudGUgZGl2ZXJzYSBhbGwmIzAzOTtpbnRlcm5vIGRlbCB0YWcge2Ntc19zdHlsZXNoZWV0fSBzaSB1dGlsaXp6YSBpbCBtb2R1bG8gdXNhbmRvIGkgZGVsaW1pdGF0b3JpICBbWyBlIF1dLiAgT3Z2ZXJvOiA8Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+ZGl2LmhlYWRlciB7IGJhY2tncm91bmQ6IHVybChbW1NtYXJ0SW1hZ2Ugc3JjPSYjMDM5O3VwbG9hZHMvcGljdHVyZS5qcGcmIzAzOTsgbm90YWc9MV1dKTsgfTwvY29kZT48L3A+DQo8cD5BIGNhdXNhIGRlbCBmYXR0byBjaGUgaSBmb2dsaSBkaSBzdGlsZSB2ZW5nb25vIGdlbmVyYXRpIGRvcG8gbGEgbG9ybyBtb2RpZmljYXRpIGUgbWVtb3JpenphdGkgbmVsIGZpbGVzeXN0ZW0gbm9uIHZpICZlZ3JhdmU7IGFsY3VuIG1vZG8gcGVyIGRldGVybWluYXJlIGR1cmFudGUgbGEgcmljaGllc3RhIHF1YWxlIGJyb3dzZXIgc3RhIHJpY2hpZWRlbmRvIGlsIGZvZ2xpbyBkaSBzdGlsZSwgcGVyY2kmb2dyYXZlOyBsJiMwMzk7aW5jb3Jwb3JhbWVudG8gdmVyciZhZ3JhdmU7IGVmZmV0dHVhdG8gYmFzYW5kb3NpIHN0cmV0dGFtZW50ZSBzdWxsYSByaWxldmF6aW9uZSBhbnRpY2lwYXRhIGRlbCBwYXJhbWV0cm8gbm9lbWJlZC4gU2Ugc2kgJmVncmF2ZTsgZGVjaXNvIGRpIGluY29ycG9yYXJlIGxlIGltbWFnaW5pIGRpcmV0dGFtZW50ZSBuZWkgZm9sZ2kgZGkgc3RpbGUsIHBvdHJlYmJlIGVzc2VyZSBuZWNlc3NhcmlvIGFnZ2l1bmdlcmUgYXNzaXN0ZW56YSBhZGRpemlvbmFsZSBwZXIgaSBmb2dsaSBkaSBzdGlsZSBwZXIgaSBicm93c2VyIG5vbiBjb21wYXRpYmlsaSBjb24gbGUgaW1tYWdpbmkgaW5jb3Jwb3JhdGUuIE92dmVybzogIElFNi48L3A+DQo8aDM+RWxhYm9yYXppb25lIGF1dG9tYXRpY2E8L2gzPg0KPHA+UXVlc3RvIG1vZHVsbyBpbmNsdWRlIHVuIHRhZyBkaSBibG9jY28gc21hcnR5IGNoaWFtYXRvIDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57c2lfY29udmVydH08L2NvZGU+IGNoZSBwdSZvZ3JhdmU7IHJhY2NoaXVkZXJlIHVuIGJsb2NjbyBodG1sLCBvIGFsdHJpIHRhZyBzbWFydHkgcGVyIGNvbnNlbnRpcmUgbCYjMDM5O2VsYWJvcmF6aW9uZSBhdXRvbWF0aWNhIGRlbGxlIGltbWFnaW5pLiBRdWVzdG8gdGFnIHB1Jm9ncmF2ZTsgZXNzZXJlIHVzYXRvIGluIHF1ZXN0byBtb2RvOiAoYWQgZXNlbXBpbyk6PC9wPg0KPHByZT48Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e3NpX2NvbnZlcnR9e2NvbnRlbnR9ey9zaV9jb252ZXJ0fTwvY29kZT48L3ByZT4NCjxwPlF1ZXN0byBwZXJtZXR0ZXImYWdyYXZlOyBhZ2xpIHV0ZW50aSBkaSBpbmNsdWRlcmUgaW1tYWdpbmkgbmVsbGUgcGFnaW5lIHVzYW5kbyBpIG5vcm1hbGkgc3RydW1lbnRpIHd5c2l3eWcsIHByb2Nlc3NhbmRvbGUgIGVkIGluY29ycG9yYW5kb2xlIGF1dG9tYXRpY2FtZW50ZSBuZWxsYSBwYWdpbmEgdXRpbGl6emFuZG8gbGEgbWFnaWEgZGkge1NtYXJ0SW1hZ2V9LiAgRXNlbXBpbzogVmVkaSBpbCBzZWd1ZW50ZSBjb2RpY2U6PC9wPg0KPHByZT48Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e3NpX2NvbnZlcnQgZmlsdGVyX2dyYXlzY2FsZT0xIGZpbHRlcl93YXRlcm1hcms9MX17Y29udGVudH17L3NpX2NvbnZlcnR9PC9jb2RlPjwvcHJlPg0KPHA+SWwgY29kaWNlIHF1aSBzb3ByYSBjYXR0dXJlciZhZ3JhdmU7IHR1dHRpIGkgdGFnIGltbWFnaW5lLCBlIGxlIGNvbnZlcnRpciZhZ3JhdmU7IGluIHNjYWxhIGRpIGdyaWdpbywgcXVpbmRpIGFwcGxpY2hlciZhZ3JhdmU7IGxhIGZpbGlncmFuYSAoc2Vjb25kbyBsZSBpbXBvc3RhemlvbmkgcHJlc2VudGkgbmVsIG1vZHVsbyBDR0V4dGVuc2lvbnMpLiBUdXR0aSBpIHBhcmFtZXRyaSBkaXNwb25pYmlsaSBuZWwgdGFnIDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57U21hcnRJbWFnZX08L2NvZGU+IHNvbm8gZGlzcG9uaWJpbGkgaW4gcXVlc3RvIHRhZyAocGVyIGxhIHNjYWxhdHVyYSBkZWxsZSBpbW1hZ2luaSBlY2MuKS4gSW4gcGkmdWdyYXZlOywgc29ubyBzdGF0aSBpbnRyb2RvdHRpIGR1ZSBudW92aSBwYXJhbWV0cmk6IDxzdHJvbmc+bWF4X3dpZHRoPC9zdHJvbmc+IGUgPHN0cm9uZz5tYXhfaGVpZ2h0PC9zdHJvbmc+IGNoZSBwb3Nzb25vIGVzc2VyZSB1c2F0aSBwZXIgaW1wb3N0YXJlIGxhIGdyYW5kZXp6YSBtYXNzaW1hIGRlbGxlIGltbWFnaW5pLjwvcD4NCjxkaXYgc3R5bGU9JnF1b3Q7bWFyZ2luLWxlZnQ6IDNlbTsmcXVvdDs+PHN0cm9uZyBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz5Ob3RhOjwvc3Ryb25nPg0KPHA+UXVlc3RvIHRhZyBhbmFsaXp6YSBpbCBjb250ZW51dG8gSFRNTCBjb21wcmVzbyB0cmEgaSB0YWcgZGkgaW5pemlvIGUgZmluZSBwZXIgdHJvdmFyZSBpIHRhZyA8aW1nPi4gUXVpbmRpIGdlbmVyZXImYWdyYXZlOyB1biBvdXRwdXQgSFRNTCBzaW50YXR0aWNhbWVudGUgdmFsaWRvIHBlciBpbCBzb3R0b2luc2llbWUgZGkgY29kaWNlIHByZXZpc3RvLiAgUGVydGFudG8gJmVncmF2ZTsgaW1wb3J0YW50ZSBjaGUgaWwgZnJhbW1lbnRvIGRpIEhUTUwgcGFzc2F0byBhbCB0YWcgZXNzZXJlIGludGF0dG8gZSBpbCBwaSZ1Z3JhdmU7IHZpY2lubyBwb3NzaWJpbGUgYWkgdmFsaWRlLiBQZXJ0YW50byAmZWdyYXZlOyBpbXBvcnRhbnRlIGNoZSBpbCBmcmFtbWVudG8gZGkgSFRNTCBwYXNzYXRvIGFsIHRhZyBzaWEgaWwgcGkmdWdyYXZlOyBpbnRhdHRvIGUgdmFsaWRvIHBvc3NpYmlsZS4gIDxzdHJvbmc+VXNhcmUgY29uIGNhdXRlbGEuPC9zdHJvbmc+DQo8L2Rpdj4NCjxoMz5Bc3Npc3RlbnphPC9oMz4NCjxwPlF1ZXN0byBtb2R1bG8gbm9uIGluY2x1ZGUgYXNzaXN0ZW56YSBjb21tZXJjaWFsZS4gQ29tdW5xdWUsIHNvbm8gZGlzcG9uaWJpbGkgbnVtZXJvc2Ugcmlzb3JzZSBkaSBhaXV0bzo8L3A+DQo8dWw+DQo8bGk+UGVyIGwmIzAzOTt1bHRpbWEgdmVyc2lvbmUgZGkgcXVlc3RvIG1vZHVsbywgRkFRcywgbyBwZXIgc2VnbmFsYXJlIHVuIEJ1ZyBvIHBlciBhY3F1aXN0YXJlIGFzc2lzdGVuemEgY29tbWVyY2lhbGUsIHNlaSBwcmVnYXRvIGRpIHZpc2l0YXJlIGwmIzAzOTtob21lIHBhZ2UgZGVsIG1vZHVsbyBkaSBjYWxndXkgYSA8YSBocmVmPSJodHRwOi8vY2FsZ3V5MTAwMC5jb20iPnRlY2hjb20uZHluZG5zLm9yZzwvYT4uPC9saT4NCjxsaT5VbHRlcmlvcmkgZGlzY3Vzc2lvbmkgc3UgcXVlc3RvIG1vZHVsbyBwb3Nzb25vIGVzc2VyZSB0cm92YXRlIG5laSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkZvcnVtIGRpIENNUyBNYWRlIFNpbXBsZTwvYT4uPC9saT4NCjxsaT5MJiMwMzk7YXV0b3JlLCBjYWxndXkxMDAwLCBwdSZvZ3JhdmU7IGVzc2VyZSByYWdnaXVudG8gc3Blc3NvIG5lbCA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPmNhbmFsZSBJUkMgQ01TPC9hPi48L2xpPg0KPGxpPkluZmluZSwgcHUmb2dyYXZlOyBhbmNoZSBkYXJzaSBjaGUgbCYjMDM5O2F1dG9yZSByaXNwb25kYSBhZCB1bmEgcmljaGllc3RhIGRpcmV0dGEgdmlhIGVtYWlsLjwvbGk+ICANCjwvdWw+DQo8aDM+UmVxdWlzaXRpPC9oMz4NCjxwPlBlciBsYSBtYW5pcG9sYXppb25lIGRlbGxlIGltbWFnaW5pLCBxdWVzdG8gbW9kdWxvIGZhIGxhcmdvIHVzbyBkZWxsYSBsaWJyZXJpYSBHRCBwZXIgbCYjMDM5O2VsYWJvcmF6aW9uZSBkZWxsZSBpbW1hZ2luaS4gIEluIGFnZ2l1bnRhLCBpbCBwbHVnaW4ge3NpX2NvbnZlcnR9IHVzYSBpbiBtb2RvIGVzdGVzbyBsZSBjbGFzc2kgc2ltcGxleG1sICBlIFhNTERvbSBwcm9wcmllIGRpIHBocC4gUG9zc29ubyBlc3NlcmVjaSBhbHRyaSByZXF1aXNpdGkgc3VwcGxlbWVudGFyaS4gSW4gY2FzbyBkaSBlcnJvcmksIGFzc2ljdXJhdGkgY2hlIGxhIHNlZ25hbGF6aW9uZSBkZWdsaSBlcnJvcmkgc2lhIGFiaWxpdGF0YSwgZSBkaSBhdmVyIGFuYWxpenphdG8gaSB0dW9pIGZpbGUgZGkgbG9nLiBkZWdsaSBlcnJvcmkuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFJvYmVydCBDYW1wYmVsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj48Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZz48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQooYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4NCjxwPkhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZA0KYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlDQppbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TDQpNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gDQpzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4NCjxwPlRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCkZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQpPciByZWFkIGl0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+b25saW5lPC9hPjwvcD4nOw0KJGxhbmdbJ2luZm9fYWxpYXNlcyddID0gJ0dsaSBhbGlhcyBwb3Nzb25vIGVzc2VyZSB1c2F0aSBuZWwgdGFnIFNtYXJ0SW1hZ2UsIGRhbGwmIzAzOTtvcHppb25lIGFsaWFzMSBhbGwmIzAzOTthbGlhczUsIHBlciBjb21iaW5hcmUgdHJhIGxvcm8gb3B6aW9uaSB1c2F0ZSBkaSBmcmVxdWVudGUnOw0KJGxhbmdbJ2luZm9fY3JvcHRvZml0X2RlZmF1bHRfbG9jJ10gPSAnU3BlY2lmaWNhcmUgbGEgcG9zaXppb25lIHByZWRlZmluaXRhIGRhIGN1aSAmcXVvdDtSaXRhZ2xpYXJlIGVkIEFkYXR0YXJlJnF1b3Q7OyBhdnImYWdyYXZlOyBlZmZldHRvIHN1IHR1dHRlIGxlIG9wZXJhemlvbmkgZGkgcml0YWdsaW8gZWQgYWRhdHRhbWVudG8gc2Ugbm9uIGRpdmVyc2FtZW50ZSBzcGVjaWZpY2F0byBuZWwgcGFyYW1ldHJvIGRpIHBvc2l6aW9uYW1lbnRvIGRlbGwmIzAzOTthdHRyaWJ1dG8gZGVsIGZpbHRybyBmaWx0ZXJfY3JvcHRvZml0LiBMYSBwb3NpemlvbmUgcHJlZGVmaW5pdGEgJmVncmF2ZTsgJnF1b3Q7Y2VudGVyJnF1b3Q7JzsNCiRsYW5nWydpbWFnZV91cmxfaGFzY2FjaGVkaXInXSA9ICdMJiMwMzk7VVJMIHF1aSBzb3ByYSB0aWVuZSBjb250byBkZWxsYSBjYXJ0ZWxsYSBjYWNoZSAoX1NtYXJ0SW1hZ2UpJzsNCiRsYW5nWydpbWFnZV91cmxfcHJlZml4J10gPSAnUHJlZmlzc28gVVJMIEltbWFnaW5lJzsNCiRsYW5nWydpbmZvX2NhY2hlX2FnZSddID0gJ1NwZWNpZmljYXJlIGwmIzAzOTtldCZhZ3JhdmU7IG1hc3NpbWEgZGkgdW4gZmlsZSAoaW4gZ2lvcm5pKSBwcmltYSBjaGUgc2lhIHJpbW9zc28gZSByaWdlbmVyYXRvLiBRdWVzdG8gJmVncmF2ZTsgdXRpbGUgbmVsIGNhc28gaW4gY3VpIHNpYW5vIHN0YXRpIG1vZGlmaWNhdGkgYWxjdW5pIGRlaSBwYXJhbWV0cmkgdXNhdGkgbmVsbGEgZ2VuZXJhemlvbmUgZGVsbGUgaW1tYWdpbmksIG9wcHVyZSBwZXIgY29udHJvbGxhcmUgbGEgcXVvdGEgZGkgc3BhemlvIGRpc2NvIHVzYXRvLiBJbXBvc3RhbmRvIDAgbGEgY2FuY2VsbGF6aW9uZSBhdXRvbWF0aWNhIGRlbCBmaWxlICZlZ3JhdmU7IGRpc2FiaWxpdGF0YSc7DQokbGFuZ1snaW5mb19lbWJlZF9tb2RlJ10gPSAnUXVlc3RhIHNlbGV6aW9uZSBkZXRlcm1pbmEgaWwgbW9kbyBpbiBjdWkgaWwgdGFnIHtzbWFydGltZ30gZ2VuZXJlciZhZ3JhdmU7IGwmIzAzOTtvdXRwdXQuIFNlIHZpZW5lIHNlbGV6aW9uYXRvICZxdW90O25vbmUmcXVvdDsgbm9uIHZlcnImYWdyYXZlOyBlc2VndWl0YSBuZXNzdW5hIGluY29ycG9yYXppb25lIGRlbGwmIzAzOTtpbW1hZ2luZS4gU2VsZXppb25hbmRvICZxdW90O3NtYXJ0JnF1b3Q7IGlsIHNpc3RlbWEgZGVjaWRlciZhZ3JhdmU7IGluIGJhc2UgYWxsYSBncmFuZGV6emEgZGVsbCYjMDM5O2ltbWFnaW5lLCBhbCB0aXBvLCBlZCBhbCBicm93c2VyIGNoZSBzdGEgcmljaGllZGVuZG8gbCYjMDM5O2ltbWFnaW5lLiBMZSBhbHRyZSBvcHppb25pIGluY2x1ZG9ubyBzZW1wcmUgbCYjMDM5O2luY29ycG9yYW1lbnRvIGJhc2F0byBzdWxsYSBncmFuZGV6emEgZGVsbCYjMDM5O2ltbWFnaW5lLCBvIGlsIHRpcG8gZGkgaW1tYWdpbmUuJzsNCiRsYW5nWydpbmZvX2VtYmVkX3NpemVsaW1pdCddID0gJ1NlIGwmIzAzOTtvcHppb25lIGRpIGluY29ycG9yYW1lbnRvICZlZ3JhdmU7IGRldGVybWluYXRhIGRhbGxhIGdyYW5kZXp6YSBkZWxsJiMwMzk7aW1tYWdpbmUsIHNwZWNpZmljYXJlIGxhIGdyYW5kZXp6YSBtYXNzaW1hIGRlbGxlIGltbWFnaW5pIGRhIGluY29ycG9yYXJlIChpbiAga2lsb2J5dGVzLiBSYWNjb21hbmRhdG8gMzIpLic7DQokbGFuZ1snaW5mb19lbWJlZF90eXBlcyddID0gJ1NlIGwmIzAzOTtvcHppb25lIGRpIGluY29ycG9yYW1lbnRvICZlZ3JhdmU7IGRldGVybWluYXRhIGRhbCB0aXBvIGRpIGltbWFnaW5lLCBzcGVjaWZpY2FyZSBxdWkgbGUgZXN0ZW5zaW9uaSBkZWkgZmlsZSBkYSBpbmNvcnBvcmFyZSwgc2VwYXJhdGUgZGEgdmlyZ29sYS4gUXVlc3RhIG9wemlvbmUgbm9uIGZhIGRpc3Rpbnppb25lIHRyYSBtYWl1c2NvbGUgZSBtaW51c2NvbGUuJzsNCiRsYW5nWydpbmZvX2ltYWdlX3VybF9oYXNjYWNoZWRpciddID0gJ1NlIGxhIHByb3ByaWEgQ0ROIHB1bnRhIGRpcmV0dGFtZW50ZSBhbGxhIGNhcnRlbGxhIGNhY2hlIGRlbGxlIGltbWFnaW5pLCBzaSBwb3RyZWJiZSB2b2xlciBhdHRpdmFyZSBxdWVzdGEgb3B6aW9uZS4nOw0KJGxhbmdbJ2luZm9faW1hZ2VfdXJsX3ByZWZpeCddID0gJ1NwZWNpZmljYXJlIGwmIzAzOTtVUkwgZGEgYW50ZXBvcnJlIGEgdHV0dGUgbGUgaW1tYWdpbmkgZ2VuZXJhdGUuIEwmIzAzOTtVUkwgZGkgdXBsb2FkcyAmZWdyYXZlOyBsJiMwMzk7aW1wb3N0YXppb25lIHByZWRlZmluaXRhLCBjb211bnF1ZSBzZSBzaSBoYSB1bmEgcHJvcHJpYSBDRE4gKG8gZG9taW5pIG11bHRpcGxpIGNoZSBwdW50YW5vIGFsbGEgc3Rlc3NhIGNhcnRlbGxhKSwgc2kgcG90cmViYmUgdm9sZXIgc3BlY2lmaWNhcmUgdW4gbm9tZSBkaXZlcnNvLic7DQokbGFuZ1snbWF4X2NhY2hlX2FnZSddID0gJ0V0JmFncmF2ZTsgbWFzc2ltYSBkZWkgZmlsZSBuZWxsYSBjYWNoZSAoZ2lvcm5pKSc7DQokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdNb2R1bG8gcGVyIENNU01TIHBlciBsYSBnZW5lcmF6aW9uZSBpbnRlbGxpZ2VudGUgZGVsIHRhZyBpbWFnZSc7DQokbGFuZ1snbXNnX2FsaWFzZXNfdXBkYXRlZCddID0gJ0FsaWFzIEFnZ2lvcm5hdGknOw0KJGxhbmdbJ21zZ19jYWNoZWNsZWFuZWQnXSA9ICdDYXJ0ZWxsYSBDYWNoZSBwdWxpdGEuIFJpbW9zc2kgJWQgZmlsZSc7DQokbGFuZ1snbXNnX2NhY2hlcmVtb3ZlZCddID0gJ0NhY2hlIFJpbW9zc2EnOw0KJGxhbmdbJ21zZ19wcmVmc3VwZGF0ZWQnXSA9ICdQcmVmZXJlbnplIEFnZ2lvcm5hdGUnOw0KJGxhbmdbJ25vbmUnXSA9ICdOZXNzdW5vJzsNCiRsYW5nWydvcHRpb25zJ10gPSAnT3B6aW9uaSc7DQokbGFuZ1sncGFyYW1fYWxpYXMnXSA9ICdJbCBwYW5uZWxsbyBkaSBhbW1pbmlzdHJhemlvbmUgU21hcnRJbWFnZSBjb25zZW50ZSBsYSBjcmVhemlvbmUgZGkgbnVtZXJvc2kgYWxpYXMgZGkgY29tYW5kbyBwZXIgY29tYmluYXJlIGluIHVuIHVuaWNvIG5vbWUgYXJnb21lbnRpIHVzYXRpIGRpIGZyZXF1ZW50ZS4gUGVyIHV0aWxpenphcmUgcXVlc3RpIGFsaWFzLCB1c2FyZSB1biBhcmdvbWVudG8gZGVsIG1vZHVsbyBhbGlhcyMjPWFsaWFzX25hbWUsIGNvbWUgYWxpYXMxPWZvbyBhbGlhczI9Zm9vLic7DQokbGFuZ1sncGFyYW1fYWx0J10gPSAnVXNhdG8gbmVsbGEgY3JlYXppb25lIGRpIHVuIHRhZyBpbWcsIHNwZWNpZmljYSBpbCB2YWxvcmUgZGVsbCYjMDM5O2F0dHJpYnV0byBhbHQuIE5vdGE6IHNlIG5vbiBzcGVjaWZpY2F0bywgc2FyJmFncmF2ZTsgYXV0b21hdGljYW1lbnRlIGNhbGNvbGF0byB1biB2YWxvcmUgcGVyIHF1ZXN0byBhdHRyaWJ1dG8gcGVyIGNvbnNlbnRpcmUgbGEgdmFsaWRhemlvbmUgZGVsbGEgbWFnZ2lvciBwYXJ0ZSBkZWkgdGFnIGltZy4gJkVncmF2ZTsgcG9zc2liaWxlIGluaWJpcmUgcXVlc3RvIGF1dG9tYXRpc21vIG1lZGlhbnRlIGlsIHBhcmFtZXRybyAmcXVvdDtub2F1dG8mcXVvdDsnOw0KJGxhbmdbJ3BhcmFtX2NsYXNzJ10gPSAnVXNhdG8gbmVsbGEgY3JlYXppb25lIGRpIHVuIHRhZyBpbWcsIHBlcm1ldHRlIGRpIHNwZWNpZmljYXJlIHVuYSBvIHBpJnVncmF2ZTsgY2xhc3NpIGRhIGluY2x1ZGVyZSBuZWwgdGFnLiBBZCBlc2VtcGlvOiBjbGFzcz0mcXVvdDtmYW5jeWJveCx0aHVtYm5haWwmcXVvdDsnOw0KJGxhbmdbJ3BhcmFtX2ZpbHRlcl9ibHVyJ10gPSAnKHF1YWxzaWFzaSkgU3BlY2lmaWNhcmUgdW4gdmFsb3JlIHBlciBxdWVzdG8gcGFyYW1ldHJvIHBlciBhZ2dpdW5nZXJlIHVuIGZpbHRybyBzZm9jYXR1cmEgYWxsJiMwMzk7aW1tYWdpbmUnOw0KJGxhbmdbJ3BhcmFtX2ZpbHRlcl9icmlnaHRuZXNzJ10gPSAnKGludGVybykgQXVtZW50YSBsYSBsdW1pbm9zaXQmYWdyYXZlOyBkZWxsJiMwMzk7aW1tYWdpbmUgZWxhYm9yYXRhIGRlbCB2YWxvcmUgaW50ZXJvIHNwZWNpZmljYXRvJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfY29sb3JpemUnXSA9ICcocixnLGJbLGFscGhhXSkgLSBDb21lIGZpbHRlcl9ncmF5c2NhbGUgJmVncmF2ZTsgY29tdW5xdWUgcG9zc2liaWxlIHNwZWNpZmljYXJlIGlsIGNvbG9yZSBlZCBpbCB2YWxvcmUgYWxmYSc7DQokbGFuZ1sncGFyYW1fZmlsdGVyX2NvbnRyYXN0J10gPSAnKGludGVybykgTW9kaWZpY2EgaWwgY29udHJhc3RvIGRlbGwmIzAzOTtpbW1hZ2luZSBpbiBiYXNlIGFsbCYjMDM5O2ludGVybyBzcGVjaWZpY2F0byc7DQokbGFuZ1sncGFyYW1fZmlsdGVyX2Nyb3AnXSA9ICcocGVyY2VudHVhbGVbLGhfYWxpZ24sdl9hbGlnbl0pIC0gRWZmZXR0dWEgaWwgcml0YWdsaW8gZGVsbCYjMDM5O2ltbWFnaW5lIHNwZWNpZmljYXRhLiBJIHZhbG9yaSBwZXIgaWwgcml0YWdsaW8gc29ubyBzcGVjaWZpY2F0aSBjb21lIHVuYSBsaXN0YSBkaSBwYXJhbWV0cmkgc2VwYXJhdGkgZGEgdmlyZ29sYS4gSWwgcHJpbW8gdmFsb3JlIChyaWNoaWVzdG8pICZlZ3JhdmU7IHVuIGludGVybyBwZXJjZW50dWFsZSBkZWxsYSBncmFuZGV6emEgb3JpZ2luYWxlIGRlbGwmIzAzOTtpbW1hZ2luZS4gSWwgc2Vjb25kbyBlZCBpbCB0ZXJ6byBwYXJhbWV0cm8sIG9wemlvbmFsaSwgc29ubyByZWxhdGl2aSBhIGwsYyxyIChsZWZ0LGNlbnRlcixyaWdodCkgZSB0LGMsYiAodG9wLGNlbnRlcixib3R0b20pIGUgc3BlY2lmaWNhbm8gaWwgcHVudG8gZGVsbCYjMDM5O2ltbWFnaW5lIGRhIGN1aSBpbml6aWFyZSBpbCByaXRhZ2xpby4gRXNlbXBpbzogY3JvcD0zMyxiLHIgcGVyIGVmZmV0dHVhcmUgdW4gcml0YWdsaW8gZGVsMzMlIHBhcnRlbmRvIGRhbCBtYXJnaW5lIGluZmVyaW9yZSBkZXN0cm8gZGVsbCYjMDM5O2ltbWFnaW5lIG9yaWdpbmFsZS4nOw0KJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jcm9wdG9maXQnXSA9ICcobGFyZ2hlenphLGFsdGV6emEsWyxwb3NpemlvbmVdKSAtIEVmZmV0dHVhIHVuIHJpdGFnbGlvIGVkIHVuIGFkYXR0YW1lbnRvIGRlbGwmIzAzOTtpbW1hZ2luZSBzcGVjaWZpY2F0YS4gVGVudGEgZGkgc2NhbGFyZSBsJiMwMzk7aW1tYWdpbmUgYWxsYSBncmFuZGV6emEgZGVzaWRlcmF0YSBtYW50ZW5lbmRvbmUgaWwgcmFwcG9ydG8gdHJhIGxhcmdoZXp6YSBlZCBhbHRlenphLCBxdWluZGkgZm9jYWxpenphIGwmIzAzOTthcmVhIHNlbGV6aW9uYXRhIGRlbGwmIzAzOTtpbW1hZ2luZSBzY2FsYXRhLiBQYXJhbWV0cmkgZGkgcml0YWdsaW8gZWQgYWRhdHRhbWVudG8gc29ubyBzcGVjaWZpY2F0aSBjb21lIGxhcmdoZXp6YSBlZCBhbHRlenphIGRlc2lkZXJhdGUgcGVyIGwmIzAzOTtpbW1hZ2luZSBmaW5hbGUsIGluc2llbWUgY29uIHVuIGNvZGljZSAob3B6aW9uYWxlKSBkaSBwb3NpemlvbmUuIENvZGljaSBkaSBwb3NpemlvbmUgdmFsaWRpIHNvbm8gdGwsdGMsdHIsY2wsYyxjcixibCxiLGJyIHJlbGF0aXZpIGFsbGUgOSBwb3NpemlvbmkgYWxsJiMwMzk7aW50ZXJubyBkZWxsJiMwMzk7aW1tYWdpbmUuIFNlIHVuYSBwb3NpemlvbmUgbm9uIHZpZW5lIHNwZWNpZmljYXRhIHZlcnImYWdyYXZlOyB1c2F0YSB1bmEgcHJlZmVyZW56YS4gSWwgdmFsb3JlIHByZWRlZmluaXRvICZlZ3JhdmU7ICZxdW90O2MmcXVvdDsgcGVyIHJpdGFnbGlhcmUtZWQtYWRhdHRhcmUgcGFydGVuZG8gZGFsIGNlbnRybyBkZWxsJiMwMzk7aW1tYWdpbmUgb3JpZ2luYWxlLiBRdWVzdG8gZmlsdHJvIG5vbiBlc2VndWlyJmFncmF2ZTsgaW4gbmVzc3VuIGNhc28gdW4gaW5ncmFuZGltZW50byAodXBzY2FsaW5nKS4nOw0KJGxhbmdbJ3BhcmFtX2ZpbHRlcl9lZGdlZGV0ZWN0J10gPSAnKG5pZW50ZSkgRXZpZGVuemlhIGkgYm9yZGkgZGVsbCYjMDM5O2ltbWFnaW5lJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfZW1ib3NzJ10gPSAnKG5pZW50ZSkgQXBwbGljYSB1biByaWxpZXZvIGFsbCYjMDM5O2ltbWFnaW5lJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfZmxpcCddID0gJyhtb2RlKSAtIFJpZmxldHRlIGwmIzAzOTtpbW1hZ2luZSBzcGVjaWZpY2F0YS4gU3BlY2lmaWNhcmUgMCBwZXIgb3JpenpvbmF0bGUsIDEgcGVyIHZlcnRpY2FsZSwgZSAyIHBlciByaWZsZXR0ZXJlIGluIGVudHJhbWJlIGxlIGRpcmV6aW9uaS4nOw0KJGxhbmdbJ3BhcmFtX2ZpbHRlcl9ncmF5c2NhbGUnXSA9ICcobmllbnRlKSBDb252ZXJ0ZSBsJiMwMzk7aW1tYWdpbmUgaW4gc2NhbGEgZGkgZ3JpZ2lvJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfbWVhbnJlbW92YWwnXSA9ICcobmllbnRlKSBUZW50YSBkaSBvdHRlbmVyZSB1biBlZmZldHRvICZxdW90O1NjaGl6em8mcXVvdDsnOw0KJGxhbmdbJ3BhcmFtX2ZpbHRlcl9uZWdhdGUnXSA9ICcobmllbnRlKSBSZW5kZSBsJiMwMzk7aW1tYWdpbmUgaW4gbmVnYXRpdm8nOw0KJGxhbmdbJ3BhcmFtX2ZpbHRlcl9waXhlbGF0ZSddID0gJyhncmFuZGV6emFbLGF2YW56YXRvXSkgRWZmZXR0byBwaXhlbCBzdWxsJiMwMzk7aW1tYWdpbmUsIHNwZWNpZmljYXJlIHVuYSBncmFuZGV6emEgaW50ZXJhIGVkIHVuIGJvb2xlYW5vIG9wemlvbmFsZSAoaWwgcHJlZGVmaW5pdG8gJmVncmF2ZTsgZmFsc2UpIHBlciBhYmlsaXRhcmUgdW4gZWZmZXR0byBwaXhlbCBhdmFuemF0byc7DQokbGFuZ1sncGFyYW1fZmlsdGVyX3Jlc2l6ZSddID0gJ3RpcG8sbnVtZXJvWyxudW1lcm9dIC0gUmlkaW1lbnNpb25hIGwmIzAzOTtpbW1hZ2luZSBvcmlnaW5hbGUuIElsIGZpbHRybyBkaSByaWRpbWVuc2lvbmFtZW50byBub24gZWZmZXR0dWEgbmVzc3VuIGNvbnRyb2xsbyBkaSBpbmdyYW5kaW1lbnRvLg0KSSBwb3NzaWJpbGkgdmFsb3JpIHNvbm86DQo8dWw+DQogIDxsaT5wLG51bWVybyAtIEVzZWd1ZSB1biByaWRpbWVuc2lvbmFtZW50byBzZW1wbGljZSBhZCB1bmEgZGV0ZXJtaW5hdGEgcGVyY2VudHVhbGUuIEVzZW1waW86IHJlc2l6ZT1wLDUwIHBlciByaWR1cnJlIGRlbCA1MCUgbGEgZ3JhbmRlenphIG9yaWdpbmFsZTwvbGk+DQogIDxsaT53LG51bWVybyAtIEVzZWd1ZSBpbCByaWRpbWVuc2lvbmFtZW50byBhbGxhIGxhcmdoZXp6YSBzcGVjaWZpY2F0YSAobWFudGVuZW5kbyBpbCByYXBwb3J0byB0cmEgbGFyZ2hlenphIGVkIGFsdGV6emEpLiBFc2VtcGlvOiByZXNpemU9dyw4MCBwZXIgY3JlYXJlIHVuYSBtaW5pYXR1cmEgY29uIGxhcmdoZXp6YSBtYXNzaW1hIGRpIDgwIHBpeGVsLjwvbGk+DQogIDxsaT5oLG51bWVybyAtIEVzZWd1ZSBpbCByaWRpbWVuc2lvbmFtZW50byBhbGwmIzAzOTthbHRlenphIHNwZWNpZmljYXRhIChtYW50ZW5lbmRvIGlsIHJhcHBvcnRvIHRyYSBsYXJnaGV6emEgZWQgYWx0ZXp6YSkuIEVzZW1waW86IHJlc2l6ZT1oLDgwIHBlciBjcmVhcmUgdW5hIG1pbmlhdHVyYSBjb24gYWx0ZXp6YSBtYXNzaW1hIGRpIDgwIHBpeGVsLjwvbGk+DQogIDxsaT5lLG51bWVybyAtIEVzZWd1ZSBpbCByaWRpbWVuc2lvbmFtZW50byBpbXBvc3RhbmRvIGlsIGxhdG8gbWFnZ2lvcmUgYWwgdmFsb3JlIHNwZWNpZmljYXRvIChtYW50ZW5lbmRvIGlsIHJhcHBvcnRvIHRyYSBsYXJnaGV6emEgZWQgYWx0ZXp6YSkuIEVzZW1waW86IHJlc2l6ZT1lLDEwMCBwZXIgY3JlYXJlIHVuYSBtaW5pYXR1cmEgaWwgY3VpIGxhdG8gbWFnZ2lvcmUgc2lhIGRpIDEwMCBwaXhlbC4NCiAgPGxpPmMseCx5IC0gRXNlZ3VlIGlsIHJpZGltZW5zaW9uYW1lbnRvIGFkIHVuYSBncmFuZGV6emEgcGVyc29uYWxpenphdGEgKHNlbnphIG1hbnRlbmVyZSBpbCByYXBwb3J0byB0cmEgbGFyZ2hlenphIGVkIGFsdGV6emEpLiBFc2VtcGlvOiBmaWx0ZXJfcmVzaXplPWMsNTAsNzUgcGVyIGNyZWFyZSB1bmEgbWluaWF0dXJhIGRpIDUweDc1IHBpeGVsLjwvbGk+Lg0KPC91bD4nOw0KJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yZXNpemV0b2ZpdCddID0gJyhsYXJnaGV6emEsYWx0ZXp6YVssY29sb3JlWyx0cmFzcGFyZW56YV1dKSAtIEVzZWd1ZSB1biByaWRpbWVuc2lvbmFtZW50byBkZWxsJiMwMzk7aW1tYWdpbmUgc3BlY2lmaWNhdGEuIFRlbnRhIGRpIHNjYWxhcmUgbCYjMDM5O2ltbWFnaW5lIGFsbGEgZ3JhbmRlenphIGRpIGRlc3RpbmF6aW9uZSBzcGVjaWZpY2F0YSBtYW50ZW5lbmRvbmUgaWwgcmFwcG9ydG8gdHJhIGxhcmdoZXp6YSBlZCBhbHRlenphLCBsJiMwMzk7aW1tYWdpbmUgJmVncmF2ZTsgY2VudHJhdGEgcmlzcGV0dG8gYWxsJiMwMzk7YXJlYSBzcGVjaWZpY2F0YSAob3JpenpvbnRhbG1lbnRlIG8gdmVydGljYWxtZW50ZSBpbiBiYXNlIGFsIHJhcHBvcnRvIGxhcmdoZXp6YS9hbHRlenphIGVkIGFsbGEgZ3JhbmRlenphIGZpbmFsZSksIGUgY2lyY29uZGF0YSBkYWwgY29sb3JlIHNwZWNpZmljYXRvLiBJIGNvbG9yaSBwb3Nzb25vIGVzc2VyZSBzcGVjaWZpY2F0aSBwZXIgbm9tZSAodmVkZXJlIGkgbm9taSBkaSBjb2xvcmUgWDExKSwgbyBjb24gaWwgZm9ybWF0byBlc2FkZWNpbWFsZSAjbm5ubm5uLCBvIGNvbWUgdmFsb3JpIHJnYiBzZXBhcmF0aSBkYSA6IEVzZW1waW86IGZpbHRlcl9jcm9wdG9maXQ9NjAwLDQwMCwjZmYwMDAwLiBJbCB2YWxvcmUgc3BlY2lhbGUgJnF1b3Q7dHJhbnNwYXJlbnQmcXVvdDsgcHUmb2dyYXZlOyBlc3NlcmUgc3BlY2lmaWNhdG8gcGVyIGZvcnphcmUgdW5vIHNmb25kbyB0cmFzcGFyZW50ZS4gSWwgdmFsb3JlIGFscGhhIHB1Jm9ncmF2ZTsgdmFyaWFyZSB0cmEgMCBlIDEyNyBwZXIgc3BlY2lmaWNhcmUgdmFyaSBncmFkaSBkaSB0cmFzcGFyZW56YSBkZWxsbyBzZm9uZG8uIFF1ZXN0byBmaWx0cm8gbm9uIGVzZWd1aXImYWdyYXZlOyBpbiBuZXNzdW4gY2FzbyB1biBpbmdyYW5kaW1lbnRvICh1cHNjYWxpbmcpLic7DQokbGFuZ1sncGFyYW1fZmlsdGVyX3JvdGF0ZSddID0gJyhhbmdvbG8pIFNwZWNpZmljYXJlIHVuIGFuZ29sbyBpbnRlcm8gKGluIHNlbnNvIGFudGlvcmFyaW8pIHBlciBydW90YXJlIGwmIzAzOTtpbW1hZ2luZS4gTCYjMDM5O2ltbWFnaW5lIHZpZW5lIHJ1b3RhdGEgc3VsIHN1byBjZW50cm8uJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfcm91bmRlZGNvcm5lcnMnXSA9ICcocmFkaWFsZSkgU3BlY2lmaWNhcmUgdW4gdmFsb3JlIHJhZGlhbGUgaW50ZXJvIChpbiBwaXhlbCkgcGVyIGFycm90b25kYXJlIGdsaSBhbmdvbGkuJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfd2F0ZXJtYXJrJ10gPSAnKG5pbmV0ZSksIEltcG9zdGFyZSBsJiMwMzk7YXBwbGljYXppb25lIGRlbGxhIGZpbGlncmFuYSBhbGwmIzAzOTtpbW1hZ2luZSAoY29tZSBzcGVjaWZpY2F0byBuZWwgcGFubmVsbG8gZGkgYW1taW5pc3RyYXppb25lIGRpIENHRXh0ZW5zaW9ucyApJzsNCiRsYW5nWydwYXJhbV9oZWlnaHQnXSA9ICdVc2F0byBuZWxsYSBjcmVhemlvbmUgZGkgdW4gdGFnIGltZywgc3BlY2lmaWNhIGlsIHZhbG9yZSBwZXIgbCYjMDM5O2F0dHJpYnV0byBoZWlnaHQgLiBOb3RhLCBzZSBub24gdmllbmUgc3BlY2lmaWNhdG8gdW4gdmFsb3JlLCBuZSB2ZXJyJmFncmF2ZTsgY2FsY29sYXRvIGF1dG9tYXRpY2FtZW50ZSB1bm8gcGVyIHF1ZXN0byBhdHRyaWJ1dG8gaW4gbW9kbyBjaGUgbGEgbWFnZ2lvciBwYXJ0ZSBkZWkgdGFnIGltZyBzaWFubyB2YWxpZGF0aS4NCiAmRWdyYXZlOyBwb3NzaWJpbGUgc292cmFzY3JpdmVyZSBxdWVzdG8gY2FsY29sbyBhdXRvbWF0aWNvIG1lZGlhbnRlIGlsIHBhcmFtZXRybyAmcXVvdDtub2F1dG8mcXVvdDsuIFF1ZXN0byBwYXJhbWV0cm8gc2FyJmFncmF2ZTsgaW5vbHRyZSB1c2F0byBpbnNpZW1lIGNvbiBpbCBwYXJhbWV0cm8gJnF1b3Q7d2lkdGgmcXVvdDsgcGVyIGVmZmV0dHVhcmUgdW4gcmlkaW1lbnNpb25hbWVudG8gZmluYWxlIG8gdW4gZmlsdHJvIGRpIHJpdGFnbGlvIGVkIGFkYXR0YW1lbnRvIChhIG1lbm8gY2hlIG5vbiBzaWEgc3RhdG8gc3BlY2lmaWNhdG8gYW5jaGUgaWwgcGFyYW1ldHJvICZxdW90O25vYXV0b3NjYWxlJnF1b3Q7ICknOw0KJGxhbmdbJ3BhcmFtX2lkJ10gPSAnVXNhdG8gbmVsbGEgY3JlYXppb25lIGRpIHVuIHRhZyBpbWcsIHBlcm1ldHRlIGRpIHNwZWNpZmljYXJlIHVuIGF0dHJpYnV0byBpZCBkYSBpbmNsdWRlcmUgbmVsIHRhZy4gRXNlbXBpbzogaWQ9JnF1b3Q7dHVvaWQmcXVvdDsnOw0KJGxhbmdbJ3BhcmFtX21heF9oZWlnaHQnXSA9ICdBcHBsaWNhYmlsZSBzb2xvIGFsIHRhZyAge3NpX2NvbnZlcnR9LCBxdWVzdG8gcGFyYW1ldHJvIHBlcm1ldHRlIHNpIHNwZWNpZmljYXJlIHVuJiMwMzk7YWx0ZXp6YSBtYXNzaW1hIHBlciBsZSBpbW1hZ2luZSBjb252ZXJ0aXRlJzsNCiRsYW5nWydwYXJhbV9tYXhfd2lkdGgnXSA9ICdBcHBsaWNhYmlsZSBzb2xvIGFsIHRhZyAge3NpX2NvbnZlcnR9LCBxdWVzdG8gcGFyYW1ldHJvIHBlcm1ldHRlIHNpIHNwZWNpZmljYXJlIHVuYSBsYXJnaGV6emEgbWFzc2ltYSBwZXIgbGUgaW1tYWdpbmUgY29udmVydGl0ZSc7DQokbGFuZ1sncGFyYW1fbmFtZSddID0gJ1VzYXRvIG5lbGxhIGNyZWF6aW9uZSBkaSB1biB0YWcgaW1nLCAgc3BlY2lmaWNhIGlsIHZhbG9yZSBkZWxsJiMwMzk7YXR0cmlidXRvIG5hbWUuJzsNCiRsYW5nWydwYXJhbV9ub2F1dG8nXSA9ICdOb24gY2FsY29sYXJlIGF1dG9tYXRpY2FtZW50ZSBpIHBhcmFtZXRyaSBwZXIgaWwgdGFnIGltZy4gUXVlc3RvIHB1Jm9ncmF2ZTsgY29tcG9ydGFyZSBsYSBtYW5jYXRhIHZhbGlkYXppb25lIGRlbCBzaXRvIG5lbCBjYXNvIGluIGN1aSBhbGN1bmkgcGFyYW1ldHJpIHJpY2hpZXN0aSAod2lkdGgsaGVpZ2h0LGFsdCkgbm9uIHNpYW5vIHNwZWNpZmljYXRpJzsNCiRsYW5nWydwYXJhbV9ub2F1dG9zY2FsZSddID0gJ1NlIHNvbm8gc3BlY2lmaWNhdGkgaSBwYXJhbWV0cmkgd2lkdGggZSBoZWlnaHQsIHF1ZXN0byBwYXJhbWV0cm8gZGlzYWJpbGl0ZXImYWdyYXZlOyBsYSBzY2FsYXR1cmEgYXV0b21hdGljYSBkZWxsJiMwMzk7aW1tYWdpbmUuJzsNCiRsYW5nWydwYXJhbV9ub2JjYWNoZSddID0gJ05vbiBwZXJtZXR0ZSBsYSBtZW1vcml6emF6aW9uZSBuZWxsYSBjYWNoZSBkZWwgYnJvd3NlciBkZWxsJiMwMzk7aW1tYWdpbmUgcmlkaW1lbnNpb25hdGEgKHV0aWxlIGluIGZhc2UgZGkgc3ZpbHVwcG8pLCBhZ2dpdW5nZSB1biBudW1lcm8gdW5pdm9jbyBjb21lIHBhcmFtZXRybyBkZWxsJiMwMzk7aW1tYWdpbmUgY2hlIGZvcnplciZhZ3JhdmU7IGlsIGJyb3dzZXIgYSBub24gbWVtb3JpenphcmxhIG5lbGxhIGNhY2hlLic7DQokbGFuZ1sncGFyYW1fbm9lbWJlZCddID0gJ0ZvcnphIGxhIG5vbiBpbmNsdXNpb25lIGRlbGwmIzAzOTtpbW1hZ2luZS4gSW5kaXBlbmRlbnRlbWVudGUgZGFsbGUgaW1wb3N0YXppb25pIG5lbCBwYW5uZWxsbyBkaSBhbW1pbmlzdHJhemlvbmUsIGwmIzAzOTtVUkwgZWQgaWwgdGFnIGdlbmVyYXRpIHB1bnRlcmFubm8gYWQgdW4gZmlsZSBzdWwgc2VydmVyLiBOZXNzdW5hIGluY2x1c2lvbmUgKGVtYmVkZGluZykgc2FyJmFncmF2ZTsgZXNlZ3VpdGEnOw0KJGxhbmdbJ3BhcmFtX25vdGltZWNoZWNrJ10gPSAnRGlzYWJpbGl0YXJlIGlsIGNvbnRyb2xsbyB0ZW1wb3JhbGUgZGVpIGZpbGUgbmVsbGEgY2FjaGUuJzsNCiRsYW5nWydwYXJhbV9ub3JlbW90ZSddID0gJ05vbiBwZXJtZXR0ZXJlIGlsIHJlY3VwZXJvIGRpIGZvbnRpIGRhIFVSTCByZW1vdGknOw0KJGxhbmdbJ3BhcmFtX25vcm90YXRlJ10gPSAnTm9uIHRlbnRhcmUgZGkgbGVnZ2VyZSBsZSBpbmZvcm1hemlvbmkgZXhpZiBkYWwgZmlsZSBlIGNvcnJlZ2dlcmUgbGEgcm90YXppb25lIGltbWFnaW5lJzsNCiRsYW5nWydwYXJhbV9ub3RhZyddID0gJ05vbiBnZW5lcmFyZSB1biB0YWcgaW1nLCBzb2xvIGwmIzAzOTt1cmwgZGVsbCYjMDM5O2ltbWFnaW5lIG1lbW9yaXp6YXRhIG5lbGxhIGNhY2hlLiBRdWVzdG8gbm9uIGhhIGFsY3VuIGVmZmV0dG8gc2UgU21hcnRJbWFnZSB2aWVuZSB1dGlsaXp6YXRvIGFsbCYjMDM5O2ludGVybm8gZGkgdW4gZm9nbGlvIGRpIHN0aWxlLic7DQokbGFuZ1sncGFyYW1fb3ZlcndyaXRlJ10gPSAnRGlzYXR0aXZhcmUgbGEgbWVtb3JpenphemlvbmUgbmVsbGEgY2FjaGUgZSBmb3J6YXJlIGlsIHJpY2FsY29sbyBkaSB0dXR0aSBpIGZpbHRyaSc7DQokbGFuZ1sncGFyYW1fcXVhbGl0eSddID0gJ1NwZWNpZmljYXJlIGxhIHF1YWxpdCZhZ3JhdmU7IGRlbGwmIzAzOTtpbW1hZ2luZSBwcm9kb3R0YS4gVW4gdmFsb3JlIHRyYSAwIGUgMTAwLiBJbCB2YWxvcmUgcHJlZGVmaW5pdG8sIHNlIG5vbiBzcGVjaWZpY2F0bywgJmVncmF2ZTsgZGkgNzUuJzsNCiRsYW5nWydwYXJhbV9yZWwnXSA9ICdVc2F0byBkdXJhbnRlIGxhIGNyZWF6aW9uZSBkaSB1biB0YWcgZGkgaW1tYWdpbmUgcGVybWV0dGUgZGkgc3BlY2lmaWNhcmUgdW4gYXR0cmlidXRvIG9wemlvbmFsZSByZWwgKGluIGdlbmVyZSB1dGlsaXp6YXRvIGNvbiBnbGkgYWxidW0gZGkgdGlwbyBqYXZhc2NyaXB0KS4gRXNlbXBpbzogcmVsPSZxdW90O2FsYnVtJnF1b3Q7JzsNCiRsYW5nWydwYXJhbV9zaWxlbnQnXSA9ICdJZ25vcmFyZSBzaWxlbnppb3NhbWVudGUgZ2xpIGVycm9yaSc7DQokbGFuZ1sncGFyYW1fc3JjJ10gPSAnU3BlY2lmaWNhcmUgbCYjMDM5O29yaWdpbmUgcGVyIGwmIzAzOTtlbGFib3JhemlvbmUgZGVsbGUgaW1tYWdpbmkgKHNlIHByZXNlbnRlKSBvIGlsIHRhZyBpbWcgZ2VuZXJhdG8uIE5vdGEsIHF1ZXN0byBwYXJhbWV0cm8gJmVncmF2ZTsgZmxlc3NpYmlsZSwgZSBpbCBtb2R1bG8gdGVudGVyJmFncmF2ZTsgbW9sdGkgbWV0b2RpIHBlciB0cm92YXJlIGlsIGZpbGUgaW1tYWdpbmUgc29yZ2VudGUgc3VsIHNlcnZlciB3ZWIgY29tZSBzZWd1ZToNCjx1bD4NCiAgIDxsaT4gUHJpbWEgY29udHJvbGxhIHNlIGlsIHZhbG9yZSBzcmMgc3BlY2lmaWNhdG8gY29ycmlzcG9uZGUgYWQgdW4gZmlsZSBlc2lzdGVudGUgbmVsIGZpbGVzeXN0ZW0uPC8gbGk+DQogICA8bGk+SW4gc2VndWl0bywgdmVyaWZpY2Egc2UgaWwgdmFsb3JlIHNwZWNpZmljYXRvIHBlciBpbCBwYXJhbWV0cm8gc3JjICZlZ3JhdmU7IHVuIFVSTCBlIGluaXppYSBjb24gdXBsb2Fkc191cmwgKGNvbWUgc3BlY2lmaWNhdG8gbmVsIGNvbmZpZy5waHApPC8gbGk+DQogICA8bGk+UG9pLCB2ZXJpZmljYSBzZSBpbCB2YWxvcmUgc3BlY2lmaWNhdG8gcGVyIGlsIHBhcmFtZXRybyBzcmMgJmVncmF2ZTsgdW4gVVJMIGUgaW5pemlhIGNvbiByb290X3VybCAoY29tZSBzcGVjaWZpY2F0byBuZWwgY29uZmlnLnBocCk8LyBsaT4NCiAgIDxsaT5RdWluZGksIHZlcmlmaWNhIHNlIGlsIHZhbG9yZSBzcGVjaWZpY2F0byBwZXIgaWwgcGFyYW1ldHJvIHNyYyAmZWdyYXZlOyB1biBVUkwgZSBpbml6aWEgY29uIHNzbF91cmwgKGNvbWUgc3BlY2lmaWNhdG8gbmVsIGNvbmZpZy5waHApPC8gbGk+DQo8LyB1bD4NCiAmRWdyYXZlOyBhbmNoZSBwb3NzaWJpbGUgc3VkZGl2aWRlcmUgaWwgcGFyYW1ldHJvIHNyYyBpbiBwaSZ1Z3JhdmU7IGFyZ29tZW50aSwgaWwgY2hlICZlZ3JhdmU7IHV0aWxlIHBlciBlc2VtcGlvIHF1YW5kbyBpbCBwZXJjb3JzbyBkZWwgZmlsZSBlIGlsIG5vbWUgZGVsIGZpbGUgc29ubyBtZW1vcml6emF0aSBpbiB2YXJpYWJpbGkgc21hcnR5IHNlcGFyYXRlLiAmRWdyYXZlOyBwb3NzaWJpbGUgc3BlY2lmaWNhcmUgc3JjIGNvbWUgc3JjMSA9IFwgJCB0aGVfcGF0aCBzcmMyID0gXCAkIHRoZV9maWxlbmFtZS4gSWwgc2lzdGVtYSBhZ2dpdW5nZSBhdXRvbWF0aWNhbWVudGUgdW4gLyB0cmEgb2duaSBhcmdvbWVudG8uIE5vbiB2aSAmZWdyYXZlOyBhbGN1biBsaW1pdGUgYWwgbnVtZXJvIGRpIHBhcmFtZXRyaSBzcmMuJzsNCiRsYW5nWydwYXJhbV9zdHlsZSddID0gJ1VzYXRvIGR1cmFudGUgbGEgY3JlYXppb25lIGRpIHVuIHRhZyBpbWcsIHBlcm1ldHRlIGRpIHNwZWNpZmljYXJlIGdsaSBzdGlsaSBhbHRlcm5hdGl2aSBwZXIgaWwgdGFnLiBFc2VtcGlvOiBzdHlsZSA9ICZxdW90O2JvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyZxdW90Oyc7DQokbGFuZ1sncGFyYW1fdGl0bGUnXSA9ICdTcGVjaWZpY2FyZSB1biBhdHRyaWJ1dG8gb3B6aW9uYWxlIHRpdGxlIHBlciBpbCB0YWcgaW1nLiBFc2VtcGlvOiB0aXRsZT0mcXVvdDtRdWVzdG8gJmVncmF2ZTsgaWwgdG9vbHRpcCZxdW90Oyc7DQokbGFuZ1sncGFyYW1fd2lkdGgnXSA9ICdVc2F0byBkdXJhbnRlIGxhIGNyZWF6aW9uZSBkaSB1biB0YWcgaW1nLCBzcGVjaWZpY2EgaWwgdmFsb3JlIHBlciBsJiMwMzk7YXR0cmlidXRvIHdpZHRoLiBOb3RhLCBzZSBub24gdmllbmUgc3BlY2lmaWNhdG8gdW4gdmFsb3JlLCBuZSB2ZXJyJmFncmF2ZTsgY2FsY29sYXRvIGF1dG9tYXRpY2FtZW50ZSB1bm8gcGVyIHF1ZXN0byBhdHRyaWJ1dG8gaW4gbW9kbyBjaGUgbGEgbWFnZ2lvciBwYXJ0ZSBkZWkgdGFnIGltZyBzaWFubyB2YWxpZGF0aS4gJkVncmF2ZTsgcG9zc2liaWxlIHNvdnJhc2NyaXZlcmUgcXVlc3RvIGNhbGNvbG8gYXV0b21hdGljbyBtZWRpYW50ZSBpbCBwYXJhbWV0cm8gJnF1b3Q7bm9hdXRvJnF1b3Q7LiBRdWVzdG8gcGFyYW1ldHJvIHNhciZhZ3JhdmU7IGlub2x0cmUgdXNhdG8gaW5zaWVtZSBjb24gaWwgcGFyYW1ldHJvICZxdW90O2hlaWdodCZxdW90OyBwZXIgZWZmZXR0dWFyZSB1biByaWRpbWVuc2lvbmFtZW50byBmaW5hbGUgbyB1biBmaWx0cm8gZGkgcml0YWdsaW8gZWQgYWRhdHRhbWVudG8gKGEgbWVubyBjaGUgbm9uIHNpYSBzdGF0byBzcGVjaWZpY2F0byBhbmNoZSBpbCBwYXJhbWV0cm8gJnF1b3Q7bm9hdXRvc2NhbGUmcXVvdDsgKSc7DQokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdNb2R1bG8gaW5zdGFsbGF0byc7DQokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1R1dHRpIGkgZGF0aSBhc3NvY2lhdGkgYSBxdWVzdG8gbW9kdWxvIHNvbm8gc3RhdGkgcmltb3Nzc2knOw0KJGxhbmdbJ3Byb21wdF9jcm9wdG9maXRfZGVmYXVsdF9sb2MnXSA9ICdQdW50byBwcmVkZWZpbml0byBkYWwgcXVhbGUgZWZmZXR0dWFyZSB1biByaWRpdGFnbGlvIGVkIGFkYXR0YW1lbnRvICgmcXVvdDtjcm9wIHRvIGZpdCZxdW90OyknOw0KJGxhbmdbJ3Byb21wdF9lbWJlZF9zaXplbGltaXQnXSA9ICdCYXNhdG8gc3VsbGEgZ3JhbmRlenphIGRlbGwmIzAzOTtpbW1hZ2luZSc7DQokbGFuZ1sncHJvbXB0X2VtYmVkX3NtYXJ0bGltaXRlZCddID0gJ01vZGFsaXQmYWdyYXZlOyBJbnRlbGxpZ2VudGUgbWEgbGltaXRhIGxhIGRpbWVuc2lvbmUgZGVsbCYjMDM5O2ltbWFnaW5lJzsNCiRsYW5nWydwcm9tcHRfZW1iZWRfdHlwZSddID0gJ0Jhc2F0byBzdWwgdGlwbyBkaSBpbW1hZ2luZSc7DQokbGFuZ1sncHJvbXB0X2xvY19ib3R0b21sZWZ0J10gPSAnSW4gQmFzc28gYSBTaW5pc3RyYSAoYmwpJzsNCiRsYW5nWydwcm9tcHRfbG9jX2JvdHRvbWNlbnRlciddID0gJ0luIEJhc3NvIGFsIENlbnRybyAoYmMpJzsNCiRsYW5nWydwcm9tcHRfbG9jX2JvdHRvbXJpZ2h0J10gPSAnSW4gQmFzc28gYSBEZXN0cmEgKGJyKSc7DQokbGFuZ1sncHJvbXB0X2xvY19jZW50ZXJsZWZ0J10gPSAnQ2VudHJvIFNpbmlzdHJhIChjbCknOw0KJGxhbmdbJ3Byb21wdF9sb2NfY2VudGVyJ10gPSAnQ2VudHJvIChjKSc7DQokbGFuZ1sncHJvbXB0X2xvY19jZW50ZXJyaWdodCddID0gJ0NlbnRybyBEZXN0cmEgKGNsKSc7DQokbGFuZ1sncHJvbXB0X2xvY190b3BsZWZ0J10gPSAnSW4gQWx0byBhIFNpbmlzdHJhICh0bCknOw0KJGxhbmdbJ3Byb21wdF9sb2NfdG9wY2VudGVyJ10gPSAnSW4gQWx0byBhbCBDZW50cm8gKHRjKSc7DQokbGFuZ1sncHJvbXB0X2xvY190b3ByaWdodCddID0gJ0luIEFsdG8gYSBEZXN0cmEgKHRyKSc7DQokbGFuZ1sncmVzaXppbmcnXSA9ICdSaWRpbWVuc2lvbmFtZW50byc7DQokbGFuZ1snc21hcnQnXSA9ICdJbnRlbGxpZ2VudGUnOw0KJGxhbmdbJ3N1Ym1pdCddID0gJ0ludmlhJzsNCiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjE5MDk1MzY1MTYuMTM1ODE2NTIzMi4xMzU4MTY1MjMyLjEzNTgxNjUyMzIuMSc7DQokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMzU4MTY1MjMyLjEuMS51dG1jY249KGRpcmVjdCl8dXRtY3NyPShkaXJlY3QpfHV0bWNtZD0obm9uZSknOw0KJGxhbmdbJ3FjYSddID0gJzEyMDk5MTcyNjYtMzY0NjQ2MzgtMzE2ODc4Nyc7DQokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7DQokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7DQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRsYW5nWydhY3RfY2FjaGVjbGVhbmVkJ10gPSAnTWVsbG9tbGFnZXIgdCZvc2xhc2g7bXQnOw0KJGxhbmdbJ2FkZF9yb3cnXSA9ICdMZWdnIHRpbCByYWQnOw0KJGxhbmdbJ2FsaWFzJ10gPSAnQWxpYXMnOw0KJGxhbmdbJ2FsaWFzZXMnXSA9ICdBbGlhc2VyJzsNCiRsYW5nWydhc2tfY2xlYXJfaW1hZ2VfY2FjaGUnXSA9ICdFciBkdSBzaWtrZXIgcCZhcmluZzsgYXQgZHUgJm9zbGFzaDtuc2tlciAmYXJpbmc7IGZqZXJuZSBBTExFIGZpbGVyIGZyYSBtZWxsb21sYWdlcmV0Pyc7DQokbGFuZ1snY2xlYXJfYWxsJ10gPSAnVCZvc2xhc2g7bSBhbGxlIGZpbGVyJzsNCiRsYW5nWydjbGVhcl9ub3cnXSA9ICdUJm9zbGFzaDttIG4mYXJpbmc7JzsNCiRsYW5nWydkZWxldGUnXSA9ICdTbGV0dCc7DQokbGFuZ1snZW1iZWRkaW5nJ10gPSAnSW5rbHVkZXJ0ZSBiaWxkZXInOw0KJGxhbmdbJ2VtYmVkZGluZ19tb2RlJ10gPSAnSW5rbHVkZXJpbmdzbWV0b2RlJzsNCiRsYW5nWydlbWJlZF9zaXplbGltaXQnXSA9ICdJbmtsdWRlciBldHRlciBmaWxzdCZvc2xhc2g7cnJlbHNlIChrYiknOw0KJGxhbmdbJ2VtYmVkX3R5cGVzJ10gPSAnSW5rbHVkZXIgZmlsdHlwZXInOw0KJGxhbmdbJ2Vycm9yX2FsaWFzX2R1cGxpY2F0ZW5hbWVfYXRyb3cnXSA9ICdEdXBsaWNhdGUgYWxpYXMgbmFtZSBzcGVjaWZpZWQgZm9yIGFsaWFzIGF0IHJvdyAlZCc7DQokbGFuZ1snZXJyb3JfYWxpYXNfbm9uYW1lX2F0cm93J10gPSAnTm8gbmFtZSBzcGVjaWZpZWQgZm9yIGFsaWFzIGF0IHJvdyAlZCc7DQokbGFuZ1snZXJyb3JfYWxpYXNfbm9vcHRpb25zX2F0cm93J10gPSAnTm8gb3B0aW9ucyBzcGVjaWZpZWQgZm9yIGFsaWFzIGF0IHJvdyAlZCc7DQokbGFuZ1snZXJyb3JfaW52YWxpZF9hZ2UnXSA9ICdBZ2UgcHJlZmVyZW5jZSBpbnZhbGlkLi4uIE5vIG9wZXJhdGlvbiBwZXJmb3JtZWQnOw0KJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0EgcmVxdWlyZWQgcGFyYW1ldGVyIHdhcyBtaXNzaW5nIG9yIGludmFsaWQ6ICVzJzsNCiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyYW0nXSA9ICdJbnZhbGlkIHBhcmFtZXRlciBpbiBjYWxsOiAlcyc7DQokbGFuZ1snZXJyb3Jfc3Jjbm90Zm91bmQnXSA9ICdDb3VsZCBub3QgZmluZCBhIGZpbGUgYXQ6ICVzJzsNCiRsYW5nWydlcnJvcl9yZW1vdGVmaWxlJ10gPSAnUHJvYmxlbSByZXRyaWV2aW5nIHJlbW90ZSBmaWxlIGF0ICVzJzsNCiRsYW5nWydlcnJvcl91bmtub3duZmlsdGVyJ10gPSAnU21hcnRJbWFnZSAtIFVua25vd24gRmlsdGVyOiAlcyc7DQokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnQ2FsZ3V5cyBTbWFydCBJbWFnZSBUb29sa2l0JzsNCiRsYW5nWydnZW5lcmFsJ10gPSAnR2VuZXJlbHQnOw0KJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgc2ltcGxlIHdheSB0byBwcm9jZXNzLCBhbmQgZGlzcGxheSBpbWFnZXMgb24geW91ciB3ZWIgcGFnZS4gIEl0IGFsbG93cyBzaW1wbGUgaW1hZ2UgcHJvY2Vzc2luZywgYW5kIHdhdGVybWFya2luZy4gIFRoaXMgbW9kdWxlIG1ha2VzIGRpc3BsYXlpbmcgcHJvY2Vzc2VkIGltYWdlcyBvbiB5b3VyIHdlYnNpdGUgdHJpdmlhbC4gIEl0IGFsc28gcHJvdmlkZXMgZmVhdHVyZXMgdG8gaW1wcm92ZSB0aGUgcGVyZm9ybWFuY2UgcmF0aW5nIG9mIHlvdXIgd2Vic2l0ZSwgbWFraW5nIHlvdXIgd2Vic2l0ZSBwb3dlcmZ1bCBhbmQgZmFzdCBhdCB0aGUgc2FtZSB0aW1lLjwvcD4NCjxoMz5GZWF0dXJlczwvaDM+DQo8dWw+DQo8bGk+UG93ZXJmdWwsIGJ1dCBzaW1wbGUgdG8gdXNlIGltYWdlIGZpbHRlcmluZyBhbmQgcHJvY2Vzc2luZy4gRmlsdGVyaW5nIGluY2x1ZGVzOg0KICA8dWw+DQogICAgPGxpPkJsdXI8L2xpPg0KICAgIDxsaT5CcmlnaHRuZXNzPC9saT4NCiAgICA8bGk+Q29sb3JpemU8L2xpPg0KICAgIDxsaT5Db250cmFzdDwvbGk+DQogICAgPGxpPkNyb3A8L2xpPg0KICAgIDxsaT48c3Ryb25nPkNyb3AgVG8gRml0PC9zdHJvbmc+PC9saT4NCiAgICA8bGk+RWRnZSBEZXRlY3Rpb248L2xpPg0KICAgIDxsaT5FbWJvc3M8L2xpPiANCiAgICA8bGk+R3JheXNjYWxlPC9saT4NCiAgICA8bGk+TWVhbiBSZW1vdmFsPC9saT4NCiAgICA8bGk+TmVnYXRlPC9saT4NCiAgICA8bGk+UGl4ZWxhdGU8L2xpPg0KICAgIDxsaT5SZXNpemU8L2xpPg0KICAgIDxsaT5Sb3RhdGU8L2xpPg0KICAgIDxsaT5TZWxpY3RpdmUgQmx1cjwvbGk+DQogICAgPGxpPlNtb290aDwvbGk+DQogICAgPGxpPldhdGVybWFyazwvbGk+DQogIDwvdWw+DQo8L2xpPjxici8+DQo8bGk+U21hcnQgZGV0ZWN0aW9uIG9mIGltYWdlcy4gIFNwZWNpZnkgYWJzb2x1dGUgVVJMUywgYWJzb2x1dGUgcGF0aHMsIG9yIGZpbGVzIHJlbGF0aXZlIHRvIHlvdXIgcm9vdCBpbnN0YWxsYXRpb24uPC9saT4NCjxsaT5BdXRvbWF0aWMgZG93bmxvYWRpbmcsIGNhY2hpbmcsIHByb2Nlc3NpbmcsIGFuZCByZS1jYWNoaW5nIG9mIGltYWdlcyBmcm9tIHJlbW90ZSB3ZWJzaXRlcy48L2xpPg0KPGxpPlNtYXJ0IGF1dG9tYXRpYyByZXNpemluZyAoYXV0b21hdGljYWxseSByZXNpemUgdG8gZGVzaXJlZCB3aWR0aCBhbmQgaGVpZ2h0IGJlZm9yZSBzZXJ2aW5nIHRoZSBpbWFnZS4uLiByZXNpemluZyB0byB3aWR0aCBBTkQgaGVpZ2h0IGRvZXMgYSBjcm9wIHRvIGZpdC4gPGVtPihqdXN0IHNwZWNpZnkgYSB3aWR0aCwgYW5kL29yIGhlaWdodCBwYXJhbWV0ZXIgdG8gdGhlIFNtYXJ0SW1hZ2UgdGFnLik8L2VtPjwvbGk+DQo8bGk+QXV0b21hdGljYWxseSByZWFkcyBpbWFnZSBFWElGIGluZm9ybWF0aW9uIGFuZCBjb3JyZWN0cyB0aGUgb3JpZW50YXRpb24uPC9saT4NCjxsaT5JbWFnZSBjaGFuZ2UgZGV0ZWN0aW9uLCBpZiB0aGUgbWFzdGVyIGltYWdlIGlzIGNoYW5nZWQgc2NhbGVkIGltYWdlcyB3aWxsIGJlIHJlZ2VuZXJhdGVkLiAoc2VlIHRoZSBub3RpbWVjaGVjayBwYXJhbWV0ZXIgdG8gZGlzYWJsZSB0aGlzIGJlaGF2aW9yKS48L2xpPg0KPGxpPlNtYXJ0IGF0dHJpYnV0ZSBnZW5lcmF0aW9uIGZvciBpbWFnZXMuPC9saT4NCjxsaT5Qcm9jZXNzZWQgaW1hZ2VzIGFyZSBjYWNoZWQgb24gdGhlIHNlcnZlciBmb3IgZmFzdGVyIHNlcnZpbmcuPC9sST4NCjxsaT5UaGUgYWJpbGl0eSB0byB1c2UgYSBzZXBhcmF0ZSBVUkwgKENETikgZm9yIHNlcnZpbmcgaW1hZ2VzPC9saT4NCjxsaT5JbWFnZSBwcm9jZXNzZXMgY2FuIGJlIGNvbWJpbmVkLCBhbmQgYXJlIGV4ZWN1dGVkIGluIG9yZGVyLjwvbGk+DQo8bGk+UHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gZW1iZWQgaW1hZ2VzIGRpcmVjdGx5IGludG8gdGhlIGNvbnRlbnQgb2YgdGhlIHdlYiBwYWdlIHRvIG1pbmltaXplIHNwYWNlLjwvbGk+DQo8bGk+UHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gbGltaXQgZW1iZWRkaW5nIGltYWdlcyBzbWFydGx5LCBvbmx5IHRvIGJyb3dzZXJzIHRoYXQgYXJlIGNhcGFibGUgb2YgdW5kZXJzdGFuZGluZyB0aGVtLjwvbGk+DQo8bGk+Q29tYmluZSBjb21tb25seSB1c2VkIGFyZ3VtZW50cyBpbnRvIG5hbWVkIGFsaWFzZXMuPC9saT4NCjxsaT5BbHNvIHdvcmtzIHdpdGhpbiBzdHlsZXNoZWV0cyB2aWEgdGhlIHtjbXNfc3R5bGVzaGVldH0gdGFnLjwvbGk+DQo8bGk+VGhlIGFiaWxpdHkgdG8gYXV0b21hdGljYWxseSBwcm9jZXNzIGltYWdlcyBpbnNpZGUgYSBibG9jayBvZiBodG1sIGNvZGUgdXNpbmcgdGhlIHtzaV9jb252ZXJ0fSBibG9jayB0YWcuPC9saT4NCjxsaT5Nb3JlLi4uPC9saT4NCjwvdWw+DQo8aDM+V2h5IHNob3VsZCBJIHVzZSBpdD88L2gzPg0KPHA+VGhlcmUgYXJlIGZvdXIgdmVyeSBpbXBvcnRhbnQgcmVhc29ucyB0byB1c2UgdGhpcyBwbHVnaW46PC9wPg0KPHVsPg0KICA8bGk+UGVyZm9ybWFuY2U6ICBVc2luZyBpbWFnZSBlbWJlZGRpbmcgKGV2ZW4gaWYgbm8gb3RoZXIgZnVuY3Rpb25zIGFyZSB1c2VkKSByZXN1bHRzIGluIGZld2VyIHJlcXVlc3RzLiAgTW9zdCBicm93c2VycyBvbmx5IHBlcmZvcm0gdHdvIHRvIGZvdXIgc2ltdWx0YW5lb3VzIHJlcXVlc3RzIHRvIHRoZSBzYW1lIGRvbWFpbiBhdCB0aGUgc2FtZSB0aW1lLiAgRm9yIHdlYiBwYWdlcyB3aXRoIGxvdHMgb2YgaW1hZ2VzIHRoaXMgY2FuIHNlcmlvdXNseSBzbG93IGRvd24geW91ciBzaXRlLjwvbGk+DQogIDxsaT5QZXJmb3JtYW5jZTogIEV2ZW4gaWYgbm90IHVzaW5nIGVtYmVkZGluZywgc2VuZGluZyBsYXJnZSBpbWFnZXMgdG8geW91ciB2aXNpdG9ycywgYW5kIGFza2luZyB0aGVpciBicm93c2VyIHRvIHNjYWxlIHRoZSBpbWFnZSBpcyB2ZXJ5IHZlcnkgc2xvdy48L2xpPg0KICA8bGk+U2VjdXJpdHk6ICBTbWFydEltYWdlIGNhY2hlcyBpdHMgaW1hZ2VzIGluIGEgc2VwYXJhdGUgZGlyZWN0b3J5LCB0aGVyZWJ5IGhpZGluZyB0aGUgb3JpZ2luYWwgKHBlcmhhcHMgY29weXJpZ2h0ZWQpIGltYWdlcyBmcm9tIHlvdXIgdXNlcnMuICBJZiBlbWJlZGRpbmcgaXMgdXNlZCB0aGV5IGNhbnQgZXZlbiBmaW5kIHRoZSBjYWNoZWQgbG9jYXRpb24pPC9saT4NCiAgPGxpPlNpbXBsaWNpdHk6ICBUaGUgZmlsdGVyaW5nIGNhcGFiaWxpdGllcyBvZiBTbWFydEltYWdlIGFsbG93IHlvdSB0byBhdXRvbWF0aWNhbGx5IHByb2Nlc3MgaW1hZ2VzIGZvciBjb25zaXN0ZW50IGFuZCBzZWN1cmUgZGlzcGxheSwgd2l0aG91dCBzaXRlIGVkaXRvcnMgaGF2aW5nIHRvIHBsYXkgd2l0aCB0aGVtLiAgVGhleSBjYW4gdXBsb2FkIGxhcmdlciBpbWFnZXMsIGFuZCB5b3VyIHNpdGUgd2lsbCBqdXN0IGhhbmRsZSB0aGVtIHByb3Blcmx5LjwvbGk+DQo8L3VsPg0KPGgzPkhvdyBkbyBJIHVzZSBpdD88L2gzPg0KPHA+VGhlIHNpbXBsZXN0IHdheSB0byB1c2UgdGhpcyBtb2R1bGUgaXMgdG8gdXNlIGl0IGluIHRoZSBzYW1lIHBsYWNlIHlvdSB3b3VsZCB0aGUge2ltYWdlfSB0YWcuICBJLmU6IFNvbWV0aGluZyBsaWtlIDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57U21hcnRJbWFnZSBzcmM9JiMwMzk7dXBsb2Fkcy9pbWFnZXMvcGljdHVyZS5qcGcmIzAzOTt9PC9jb2RlPi4gIFRoaXMgd2lsbCBnZW5lcmF0ZSB0aGUgaW1hZ2UgdGFnIGZvciB5b3Ugd2l0aCBubyBwcm9jZXNzaW5nLiAgQW5kIGlmIHBvc3NpYmxlLCBlbWJlZCB0aGUgaW1hZ2UgZGlyZWN0bHkgaW50byB5b3VyIGh0bWwgb3V0cHV0LjwvcD4NCjxwPk9mdGVuIHBlb3BsZSB3YW50IHRvIGRpc3BsYXkgYSB3YXRlcm1hcmsgb24gdGhlIGltYWdlcyB0aGF0IHRoZXkgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQgdG8gcHJldmVudCBpbWFnZSB0aGVmdC4gIFRoZSBDR0V4dGVuc2lvbnMgbW9kdWxlIHByb3ZpZGVzIHNldHRpbmdzIGZvciB5b3UgdG8gY29uZmlndXJlIHdhdGVybWFya2luZyBhbmQgeW91IGNhbiBlbmFibGUgdGhhdCB3aXRoIGFueSBpbWFnZSB3aXRoIGEgdGFnIGxpa2UgdGhpczogPGNvZGUgc3R5bGU9JnF1b3Q7Y29sb3I6IGJsdWU7JnF1b3Q7PntTbWFydEltYWdlIHNyYz0mIzAzOTt1cGxvYWRzL2ltYWdlcy9waWN0dXJlLmpwZyYjMDM5OyBmaWx0ZXJfd2F0ZXJtYXJrPTF9PC9jb2RlPi4gIFRoaXMgd2lsbCByZWFkIHRoZSBpbWFnZSwgYXBwbHkgdGhlIHdhdGVybWFyayBhY2NvcmRpbmcgdG8gdGhlIHNldHRpbmdzIGluIENHRXh0ZW5zaW9ucywgY2FjaGUgdGhlIGFsdGVyZWQgaW1hZ2UsIGFuZCB0aGVuIGVtYmVkIGl0IGludG8geW91ciBvdXRwdXQuPC9wPg0KPHA+QWxzbywgUGljdHVyZXMgdGFrZW4gYnkgbW9kZXJuIGRpZ2l0YWwgY2FtZXJhcyBhcmUgb2Z0ZW4gdG9vIGxhcmdlIGZvciB1c2Ugb24gYSB3ZWJzaXRlLCB0aGVyZWZvcmUgdGhleSBuZWVkIHRvIGJlIHNjYWxlZCBiZWZvcmUgZGlzcGxheWVkIG9uIHlvdXIgcGFnZS4gIFRoaXMgY2FuIGJlIGRvbmUgcXVpdGUgZWFzaWx5IHdpdGggYSB0YWcgbGlrZTogPGNvZGUgc3R5bGU9JnF1b3Q7Y29sb3I6IGJsdWU7JnF1b3Q7PntTbWFydEltYWdlIHNyYz0mIzAzOTt1cGxvYWRzL2ltYWdlcy9waWN0dXJlLmpwZyYjMDM5OyBmaWx0ZXJfd2F0ZXJtYXJrPTEgZmlsdGVyX3Jlc2l6ZT0mIzAzOTt3LDM1MCYjMDM5O308L2NvZGU+LiAgQXMgeW91IG1heSB0aGluaywgdGhlIHdhdGVybWFyayB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIGltYWdlIGJlZm9yZSBpdCBpcyByZXNpemVkIHRvIGEgbWF4aW11bSB3aWR0aCBvZiAzMDAgcGl4ZWxzIChyZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gIFRoZW4gdGhlIGFkanVzdGVkIGltYWdlIHdpbGwgYmUgY2FjaGVkLCBhbmQgaWYgdGhlIGJyb3dzZXIgYWxsb3dlcyB0aGUgaW1hZ2Ugd2lsbCBiZSBlbWJlZGRlZCBpbnRvIHRoZSBIVE1MIG91dHB1dC4gIElmIGVtYmVkZGluZyBpcyBub3QgcG9zc2libGUsIHRoZSBpbWcgdGFnIHdpbGwgY29udGFpbiB0aGUgVVJMIHRvIHRoZSBjYWNoZWQgaW1hZ2UuPC9wPg0KPHA+RnJvbSBoZXJlIHlvdSBjYW4gY29tYmluZSB0aGUgb3B0aW9ucyBiZWxvdyB0byBwZXJmb3JtIGFsb3Qgb2YgZGlmZmVyZW50IGVmZmVjdHMgdG8geW91ciBpbWFnZXMsIGJ1aWxkIHNpbXBsZSBnYWxsZXJpZXMsIGFuZCBpbXByb3ZlIHlvdXIgc2l0ZSBwZXJmb3JtYW5jZSBhdCB0aGUgc2FtZSB0aW1lLiAgRW5qb3khPC9wPg0KPGgzPkF1dG9tYXRpYyBpbWFnZSByZXNpemluZzwvaDM+DQogIDxwPklmIHlvdSBzcGVjaWZ5IGEgd2lkdGgsIGFuZC9vciBhIGhlaWdodCBwYXJhbWV0ZXIsIGFuZCBkbyBub3Qgc3BlY2lmeSB0aGUgJnF1b3Q7bm9hdXRvc2NhbGUmcXVvdDsgcGFyYW1ldGVyLCB0aGUgbW9kdWxlIHdpbGwgYW5hbHl6ZSB0aGUgZmlsdGVycyB5b3UgaGF2ZSBhbHJlYWR5IHNwZWNpZmllZCwgYW5kIGlmIHRoZXJlIGlzIG5vIHJlc2l6ZSBmaWx0ZXIgYWxyZWFkeSBzcGVjaWZpZWQgYXV0b21hdGljYWxseSBhZGQgYSBmaWx0ZXIgdG8gcmVzaXplIG9yIGNyb3B0b2ZpdCB0aGUgaW1hZ2Ugb24gb3V0cHV0LiAgVGhpcyBpcyB1c2VmdWwgdG8gZG8gYXV0b21hdGljIHRodW1ibmFpbGluZyBvbiB0aGUgc2VydmVyLCBhbmQgbm90IHJlcXVpcmUgdGhlIGJyb3dzZXIgdG8gcmVzaXplIHRoZSBpbWFnZS48L3A+DQogPGgzPkEgU2ltcGxlIEdhbGxlcnk8L2gzPg0KPHA+VGhlIGNvZGUgYmVsb3cgdXNlcyB0aGUge1NtYXJ0SW1hZ2V9IG1vZHVsZSwgZmFuY3lib3gsIGFuZCBhIGJpdCBvZiBzbWFydHkgbWFnaWMgdG8gZ2VuZXJhdGUgYSBzaW1wbGUgbGlnaHRib3ggc3R5bGUgYWxib20gZnJvbSBhIHN1YmRpcmVjdG9yeSBvbiB5b3VyIHdlYnNpdGUsIHdoaWxlIHByb2Nlc3NpbmcgdGhlIGltYWdlcyBmb3Igd2ViIHN0YW5kYXJkcywgYW5kIGNyZWF0aW5nIHRodW1ibmFpbHMuPC9wPg0KPHByZSBzdHlsZT0mcXVvdDtiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsmcXVvdDs+PGNvZGU+PHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDE6PC9zcGFuPiA8c2NyaXB0IHR5cGU9JnF1b3Q7dGV4dC9qYXZhc2NyaXB0JnF1b3Q7PntsaXRlcmFsfQ0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDI6PC9zcGFuPiBqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gMzo8L3NwYW4+ICBqUXVlcnkoJiMwMzk7YS5mYW5jeWJveCYjMDM5OykuZmFuY3lib3goKTsNCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiA0Ojwvc3Bhbj4gfSk7DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gNTo8L3NwYW4+IHsvbGl0ZXJhbH08L3NjcmlwdD4NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiA2Ojwvc3Bhbj4ge2Fzc2lnbiB2YXI9JiMwMzk7ZmlsZXMmIzAzOTsgdmFsdWU9JiMwMzk7dXBsb2Fkcy9hbGJ1bS8qLmpwZyYjMDM5O3xnbG9ifQ0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDc6PC9zcGFuPiB7aWYgY291bnQoJGZpbGVzKX0NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiA4Ojwvc3Bhbj4gPGRpdiBzdHlsZT0mcXVvdDt3aWR0aDogMTAwJTsgaGVpZ2h0OiAxNTBweDsgb3ZlcmZsb3c6IGF1dG87JnF1b3Q7Pg0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDk6PC9zcGFuPiB7Zm9yZWFjaCBmcm9tPSRmaWxlcyBpdGVtPSYjMDM5O2ZpbGUmIzAzOTt9DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xMDo8L3NwYW4+ICA8YSByZWw9JiMwMzk7c2ltcGxlX2FsYnVtJiMwMzk7IGNsYXNzPSJmYW5jeWJveCIgaHJlZj0iPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+e1NtYXJ0SW1hZ2Ugc3JjPSRmaWxlIGZpbHRlcl9yb3RhdGU9OTAgZmlsdGVyX3dhdGVybWFyaz0xIGZpbHRlcl9yZXNpemU9JiMwMzk7aCw1MDAmIzAzOTsgbm90YWc9MSBub2VtYmVkPTF9PC9zcGFuPiZxdW90Oz4NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PjExOjwvc3Bhbj4gIDxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57U21hcnRJbWFnZSBzcmM9JGZpbGUgZmlsdGVyX3JvdGF0ZT05MCBmaWx0ZXJfZ3JheXNjYWxlPTEgZmlsdGVyX3dhdGVybWFyaz0xIGZpbHRlcl9yZXNpemU9JiMwMzk7aCwxNTAmIzAzOTt9PC9zcGFuPg0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+MTI6PC9zcGFuPiAgPC9hPg0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+MTM6PC9zcGFuPiB7L2ZvcmVhY2h9DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xNDo8L3NwYW4+IDwvZGl2Pg0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+MTU6PC9zcGFuPiB7L2lmfQ0KPC9jb2RlPjwvcHJlPjxici8+DQo8cD5MZXRzIHRhbGsgYWJvdXQgdGhpcy48L3A+DQo8cD5MaW5lcyAxIHRocm91Z2ggNSB1dGlsaXplIGpRdWVyeSB0byBjYWxsIGZhbmN5Ym94IG9uIGFueSBsaW5rcyB0aGF0IGhhdmUgdGhlICZxdW90O2ZhbmN5Ym94JnF1b3Q7IGNsYXNzLiAgVGhlIGZhbmN5Ym94IGpRdWVyeSBwbHVnaW4gaXMgaW5jbHVkZWQgd2l0aCB0aGUgSlF1ZXJ5VG9vbHMgbW9kdWxlLjwvcD4NCjxwPkxpbmUgNiB1c2VzIGEgYnVpbHQgaW4gcGhwIGZ1bmN0aW9uIGNhbGxlZCBnbG9iLCBhbmQgc29tZSBzbWFydHkgbWFnaWMgdG8gZmluZCBhbGwgb2YgdGhlIEpQRyBmaWxlcyBpbiB0aGUgdXBsb2Fkcy9hbGJ1bSBkaXJlY3RvcnkgYmVsb3cgb3VyIGluc3RhbGxhdGlvbiByb290LjwvcD4NCjxwPkxpbmUgNyBpcyBhIHRlc3QgdG8gc2VlIGlmIGFueSBmaWxlcyB3ZXJlIGFjdHVhbGx5IGZvdW5kIGluIHRoZSBhc3NpZ24gbGluZSBzdGF0ZWQgYWJvdmUuICBUaGlzIGlmIHN0YXRlbWVudCBpcyBjbG9zZWQgb24gbGluZSAxNS48L3A+DQo8cD5MaW5lIDggb3BlbnMgdXAgYSBkaXYgdG8gY29udGFpbiBvdXIgYWxidW0uICBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZXhhbXBsZSB0aGUgc3R5bGVzIHdlcmUgaW5jbHVkZWQgaW5saW5lLCBob3dldmVyIGEgY2xhc3MgdGhhdCB3YXMgZGVmaW5lZCBpbiB0aGUgc3R5bGVzaGVldCBzaG91bGQgYmUgdXNlZCBpbiBwcm9kdWN0aW9uIGVudmlyb25tZW50cy4gIFRoZSBjbG9zaW5nIHRhZyBmb3IgdGhpcyBkaXYgaXMgb24gbGluZSAxNCwganVzdCBiZWZvcmUgdGhlIDxjb2RlPnsvaWZ9PC9jb2RlPi48L3A+DQo8cD5MaW5lIDkgYmVnaW5zIGEgbG9vcCB0aHJvdWdoIGFsbCBvZiB0aGUgZmlsZXMgdGhhdCB3ZSBmb3VuZCBpbiB0aGUgZGlyZWN0b3J5LiAgVGhpcyBsb29wIGlzIGNsb3NlZCBvbiBsaW5lIDEzLjwvcD48YnIvPg0KPHA+TGluZXMgMTAgYW5kIDExIGFyZSB0aGUgcmVhbCBtYWdpYy4gIEhlcmUgd2UgY3JlYXRlIGEgbGluayB3aXRoIGNsYXNzICZxdW90O2ZhbmN5Ym94JnF1b3Q7IGFuZCBhZGRzIHRoZSA8Y29kZT5yZWw8L2NvZGU+IGF0dHJpYnV0ZSBzbyB0aGF0IGZhbmN5Ym94IGtub3dzIHRoYXQgYWxsIG9mIHRoZXNlIGltYWdlcyBzaG91bGQgYmUgZ3JvdXBlZCB0b2dldGhlciBhcyBvbmUgYWxidW0gYW5kIGFsbG93IGNsaWNraW5nIGJldHdlZW4gdGhlIGltYWdlcy4gIFRoZW4gY29tZXMgdGhlIHBhcnQgd2hlcmUgd2UgZGVmaW5lIG91ciBpbWFnZXMuDQo8cD5XZSBzdXBwbHkgdGhlICRmaWxlIHZhcmlhYmxlIHRvIHRoZSBzcmMgYXJndW1lbnQgb2YgdGhlIDxjb2RlPntTbWFydEltYWdlfTwvY29kZT4gdGFnIHNvIHRoYXQgaXQgd2lsbCBnZXQgdGhlIG5hbWUgb2YgZWFjaCBtYXRjaGVkIGpwZWcgYXMgdGhlIGxvb3AgaXMgZXhlY3V0ZWQuPC9wPg0KPHA+VGhlIGltYWdlcyBJIHdhcyB0ZXN0aW5nIHdpdGggd2VyZSB1cGxvYWRlZCBmcm9tIG15IGlwb2QsIGFuZCBhbGwgc2VlbWVkIHRvIGJlIHJvdGF0ZWQgOTAgZGVncmVlcyBjb3VudGVyIGNsb2NrZWlzLiAgU28gdGhlIGZpcnN0IGZpbHRlciBJIGFkZGVkIHdhcyB0byByb3RhdGUgdGhlIGltYWdlIDkwIGRlZ3JlZXMgY2xvY2t3aXNlIHZpYSB0aGUgPGNvZGU+ZmlsdGVyX3JvdGF0ZT05MDwvY29kZT4gYXJndW1lbnQuIFRoZSBpbWFnZXMgdGhlbiBuZWVkZWQgdG8gaGF2ZSB0aGUgd2F0ZXJtYXJrIG9uIHRoZW0gPGVtPih0aGlzIGlzIGp1c3QgZm9yIGV4YW1wbGUgcHVycG9zZXMsIEkgZG9udCB0aGluayBhbnlib2R5IHdvdWxkIHJlYWxseSBzdGVhbCB0aGUgYmx1cnJ5IHBpY3R1cmVzIGZyb20gbXkgaXBvZCBmb3IgY29tbWVyY2lhbCBwdXJwb3Nlcyk8L2VtPiwgc28gSSBhZGRlZCB0aGUgPGNvZGU+ZmlsdGVyX3dhdGVybWFyaz0xPC9jb2RlPiBwYXJhbWV0ZXIuICBBbmQgZmluYWxseSwgYmVjYXVzZSBldmVuIHRoZSBpcG9kIHRvdWNoIGNhbiB0YWtlIHBpY3R1cmVzIHRoYXQgYXJlIHRvbyBiaWcgdG8gZGlzcGxheSBvbiB0aGUgc2NyZWVuIEkgd2FudGVkIHRvIHJlc2l6ZSB0aGVtIHRvIGEgbWF4aW11bSBoZWlnaHQgb2YgNTAwIHBpeGVscy4gIFRoaXMgd2FzIGFjY29tcGxpc2hlZCB2aWEgdGhlIDxjb2RlPmZpbHRlcl9yZXNpemU9aCw1MDA8L2NvZGU+IGFyZ3VtZW50LiAgV2UgYWRkIHRoZSA8Y29kZT5ub2VtYmVkPTE8L2NvZGU+IGFyZ3VtZW50IGJlY2F1c2UgZmFuY3lib3ggZG9lcyBub3QgdW5kZXJzdGFuZCBob3cgdG8gZGlzcGxheSBlbWJlZGRlZCBpbWFnZXMgaW4gaXRzIHBvcHVwIHdpbmRvdy4gIFRoaXMgZGVmaW5lZCB0aGUgaW1hZ2UgdGhhdCB3ZSB3ZXJlIGdvaW5nIHRvIGxpbmsgdG8uPC9wPg0KPHA+TmV4dCB3ZSBuZWVkZWQgdG8gZGVmaW5lIHRoZSB0aHVtYm5haWwgaW1hZ2UgdGhhdCB3ZSBhcmUgZ29pbmcgdG8gdXNlIGluIHRoZSBnYWxsZXJ5LiAgVGhpcyBjYWxsIHRvIDxjb2RlPntTbWFydEltYWdlfTwvY29kZT4gaXMgYWxtb3N0IGlkZW50aWNhbCB0byB0aGUgZmlyc3QgY2FsbCwgZXhjZXB0IHRoYXQgd2UgdXNlIGEgZGlmZmVyZW50IGhlaWdodCB2YWx1ZSAoMTUwIHBpeGVscykgZm9yIHRoZSB0aHVtYm5haWwsIGFuZCBmb3Iga2lja3MgSSBjb252ZXJ0ZWQgdGhlIHRodW1ibmFpbCB0byBncmF5c2NhbGUgPHN0cm9uZz5iZWZvcmU8L3N0cm9uZz4gYXBwbHlpbmcgdGhlIHdhdGVybWFyay4gIEkgYWxzbyByZW1vdmVkIHRoZSBub2VtYmVkPTEgYXJndW1lbnQgc28gdGhhdCB0aGUgc3lzdGVtIGNvdWxkIGVtYmVkIHRoZSBpbWFnZSBpbiB0aGUgSFRNTCBvdXRwdXQgaWYgdGhlIGJyb3dzZXIgc3VwcG9ydGVkIGl0LiAgVGhlIHNjcmVlbiBjYXB0dXJlIGJlbG93IHNob3dzIHRoZSBlZmZlY3QuPC9wPg0KPGltZyBzcmM9JnF1b3Q7ZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwvOWovNEFBUVNrWkpSZ0FCQVFFQVlBQmdBQUQvMndCREFBZ0dCZ2NHQlFnSEJ3Y0pDUWdLREJRTkRBc0xEQmtTRXc4VUhSb2ZIaDBhSEJ3Z0pDNG5JQ0lzSXh3Y0tEY3BMREF4TkRRMEh5YzVQVGd5UEM0ek5ETC8yd0JEQVFrSkNRd0xEQmdORFJneUlSd2hNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpML3dBQVJDQUNoQWZBREFTSUFBaEVCQXhFQi84UUFIQUFBQVFRREFRQUFBQUFBQUFBQUFBQUFBQVFGQmdjQkFnTUkvOFFBVUJBQUFnRURBZ01FQndRR0J3UUlCUVVBQVFJREFBUVJCU0VHRWpFVFFWRmhCeFFpY1lHUnNTTXlvZEVWTTBKU2tzRVdKVFJpY25Qd0pGV0M0UmMyUTFOV2c2THhKalZFWTdKa2s3UEMwdi9FQUJnQkFRRUJBUUVBQUFBQUFBQUFBQUFBQUFBQkFnTUUvOFFBSXhFQkFRQUNBZ01BQWdJREFBQUFBQUFBQUFFQ0VTRXhBeEpCRXlJalFsRmhrZi9hQUF3REFRQUNFUU1SQUQ4QXRmVzlWdWJLNzAreHNrZzladnBHVlpMZ25zMENqSnlCdVQ0Q3RMdlZMblRMRlk5UXZOTWkxR1orV0RJY1J1TWdkTnpuZjZWMDRoazBYMWFLRFd3dll5TWVSbVZzS3c3K1pmdW56cUozTWwxSnd0SUhrdUpyTk5XZ1d5bXVBZTBlTG1IWE81R2VoTkJOTHJYTktzWkhqdXRRdDRYUndqSzc0SVlqT01lNGcxdEhyV2x5M3dzbzlRdG51V0dSRXNnSk8yZHZoVEZGREhKeEx4Z3p4cXg3R05RV1hPM1pIYjhCVFhERXFjSjhGdXNZVnhlUUhJWEIzNXMvT2dsYjhTNkpITzBNbXFXcVNxNWpaV2ZCRERZZytGYzU5U3VFNHRzZE9SazlXbnM1Wm05bkpMS1JqQjhLaTlycWVtVzJuOFNXZDJCSmNUMzF3RWdFUlpwYzdBREE4ZmxTcXppdU5MMW5oYzZoem93MDU3VnBDQ1FKU1JoU2U0MEVtbTEzU2JhOTlUbTFHMmp1TWdkbTBnQkJQY2ZBKytuQ3E0c2tnajBlNTBiVnRRZTF1WkpYV2UzTmlIZVFzMnpxMk10bklPZTZyQnRvUloyVVVEU3M2d3hoREkvVWhSakorVkEyWGV2SmE4UzJXa2xjaWRDWGsvY1kvY0h4NVcvQ2o5SlhQOUxwTk55bnF5NmY2d0J5NzgvUGpyNFk3cWl6eDZ2cSttYWxxVnJwMGJDN25GemJ6dGNjcm9zUjlnQk1iOUQzNzgxT1ZycU1WMXhkWmFpd1pJZFEwb0pFeFU0TW5NU1V6M0VZTkFzNGI0cHRkUjB5elcrdjdVYWxNR3pFQ0ZKUE1RQmp4d0J0VDdIZVcwMXhjVzhjeU5OYjQ3WkIxVEl5TS9DcTd0N2l6dWZSN0RvMGNiU2FzLzZxRVF0enE1Zkt2bkd3eHZuTlBkdmZ3Nkx4TnJhNmc3cTl6SEEwR0kyYnRpSStVOHVCdWM5MUJJUDA3cFF0bzdrNmhiaUdWR2RITFlES3B3eEh1SkFybWVKTkVXS0tRNnJhQkpTUWg3UWIvbDhhaDJnUmgyNE1FaUJnSTd0c01NNElKSU5MQmJ4Zm8zanI3RlAxMG1QWUhkSGtmanZRVGtISXlEa0dpa09pa25RZE9Kem4xV0xPZjhBcGRRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGUmx1RHJmbDVGbUVrWVVLb21WaVFBUDdyS1B3cVRVVlpkSlpzd2FOd3BiYVBmZXVMY1N5U0JaRVJPaUlybFNRQWNuOWdkU2FmNktLaWlqclJSUUZGSHdveDVVQ0RTOUxUU3hkaU9WNVBXYmw3bHVZQWNwYkdRTWQyMUw2TWVWR0Q0VUJrK05GR0Q0R2pCOERRRkZHRDRHczRQZ2FER1RSbXM0UGdheGcrQm9DaWlqNFVCUlI4S1BoUUZGR1BLakhsUUZGR0Q0R2pCOERRRkZHRDRHakI4RFFGRlp3ZkExakI4RFFGRkZGQVVVVVVCUlJSUUZGRkZBVVVZUGdhUGhRRkZGR0NUakc5QVVWbmtiOTF2bFJ5dCs2M3lvTVVWbmxiOTF2bFJnK0IrVkJpaWpCOEt6eXQrNmZsUVlvckpVanFDUGVLQXJIb3BQd29NVVZubGI5MXZsUVZZZFZJK0ZCaWlzNFBnZmxRQVQwQlB1RkJpaXM4amZ1TjhqUnlQOEF1TjhxREZGWktzT3FrZThVY2pmdU44cURGRlo1Ry9jYjVVY2ovdU44alFZb3JQSTM3cmZLamxiOTF2bFFZb3JQSzM3cCtWQUJQUUUrNFVHS0t6eXQrNjN5ckZBVVVVVURicVRFU3g0Skd4NmUra1hPMzd6Zk9sbXFmclkvOEordE4rZDhVRzVrWWsrMDN6ckhPeC9hYjUxcG5ldFNhRGN5UG43emZNMXpaM3hzemZNMFpOYzNvTW1SL3dCOXY0alhNeVAvQU40L3pOWUpyVW56b01OSkorKzM4UnJpOGttLzJqL3hHdDJKcE8yMUJocDVmKzhmK0kxMzRSMUE2a1k3ajJoOXN5WUxFN0NrTHR2MXhYSGdlZG9XZ2p4ekNTK2tRa2RCMU5CTTd4MkYzSjdSd0NOcytWY0M3ZDdINTExdnY3Wko4UHBTVmo0MEc1ZHNmZmI1MGRvL2V6Zk90TTVyR2ZIclFiRjIvZWI1MW9aSHo5OXZtYXh6QUhIU3ViTUQzMEdXa2NmdHQvRWEwTXIvQUw3L0FNUnJSbTNyUW5GQnNaWk1nYzdmeEd1VHpTRDl0LzRqUVczcmk1b05YbWtBMmxmK0kwNmNNeU0rcXlndTdBUW5xU2YyaFRMS2RzMDY4S0hPclQvNVBYL2lGQTROSTJUN1I2bnZySGFzUDJtK2RJM3VWRHZueElybWJ0UjNpZ2NSTTNUbWI1MW50Vy9mYjUwMEhVWTFKSE91UjRtdWI2cW1OblgrSVVEMFozRFlMSEdPdWF3YnZsNnNmblVOMURpcTFzY21hZFZ4M2MxTTQ5SWVselNkbjZ5QWZOcUNmM2VzcmJxVHprbnVxUDNuRkZ3U1FraEh1cU5YWEVsczhxWm1UczMyRDgydzk5STVOUnNaRWtjWDBhaGNrc1BMejhhQ1FXK3U2cnFsekxhNmRJSlpvd0RKelB5ckdQTStQbDFwMWcvU2ZOT3Q1cTBrVFE0TGRpQUZIbWM1cXNMVGk2YmhKQjZ0SDYyOXlyT3N6ZXlEL2UvR21IVXVKZUlicTZhU1NTNVJnUVNlN0k2SHBRWHh4UnFWN29jVnJjV2NzenFVVm1TWWhsa0J4dnR2bWwzRkZ5N2VqdlVaMUxJL1pxUmdrRmZiVGJOZWZoeFZ4TnFOM0hjM2Q5ZTMwdzI3TmwyS2c1SGRqOEt0NXRSdk5VOUNtcTNWN0QyTndTUXlrNXhoMC9HZ3FtYTh1aHE4eWk5dVZSbEJHSm14dDhhYzlPdmJpTy9RdGUzUElSZzgwckhjL0dtSjVRK3AyNVljM1BFUnYxR0tjWW1DVHh0eUhQZmdaelFMZGV1cnY5Slcwa2Q1Y3NuWjQvWE1Od1Q0R3JEMEtHYTZ0cktkcHBzUEdySDJ6NGUrcTAxUW5sZ3dDQUdJcXp1Q3B1MDRldFhPK0U1Q2ViTzRQL09nbDh6eGlHT0ZwQ0M1NVZHKzV4bnI4S3I3aXkya2kwL1VwVXZycVA3Rjh4aVRBSldSUU1EcmpHYzc5Y1ZON216bnVSYnNzVGtKTXNnSUhVak9LWU9MOU5kcmFlTllwaFBMYnlvaUlvOXRoeWxWM0JQZWVtS0JyOURkeEpKZmFyYnp5U3lFd0NSUzdsc2R4RzU4NmV1STdDd3V0T251bkVndllMZGxpbEU3cmdEZm9Eang2aW1EMFZXOTNZNnpyRU1rYjI4NldXTVNqN2pjM2VLYk5WdCtKRnRuZTUxN3RvU3BMeHBiZ0Fqd3ozVURYcGRsZGF2cU1LRzR1Skk0b0pKR2dhNGRPMWJLcU1rSG9NNXA4czMvQUtObTRqdTdxNWdnZVJXUWM3U3RKN0lKVUU5d09mY01aOGFqZWdhdU5LMSswRnhJa2NFc1VxU083WUM0NVdCejhLYytPTFJMbzJlcTJjNGx0K1Rzbk1XNHh6WkRlZWM0K1ZCcHFYRmtwZGhienl4WUo1RldSdVlmSHAxOHFlL1NWZDNJOUhIQ2N5elRSeXlNcGNyS1FUOWoza0hlb0J5VzRraGNPNkJUek1yc0R5TjQ1eDVEM1ZPdlNTREo2Tk9EOGtra3BrbnIrcG9LcHViNitWVllYdDBOOS90My9PdTl0cVY3bFZON2NrZjU3L25TZlVFVDFJeUkyU2tuSytEME5iUjJGNHVuUjZpMXZKNm04blpyTVI3SllkUm54b0gyMTFiVTdRTzl0cVYxRTdxVmJsbEp5cDd0elRkYzM5NmNrWHQxelpIU2R0L3hvaWxIWURmcDFwSGRrTmJ0bkIzSFh1b0YxcmRhZ0M2UzNOMnUzUnBuMi9Hc1RYbDR1Q3Q3YytYMjdmblNmUVZTVzVaWldrN0lKelB5QUZnTWpwbnJXOThxTEk1aDUreTVqeWw4Wng1NG9POXRxTitqaHhlM0lLbktudFcyUGQzMUtSZFNYc1NYME54T2dmYVdOWlg1WTVSMVViOUQ5NGU4anVxRnBJQXVOcytkUFhEK3BSMkY4ZTNhUVdjdzVaa1h3N21IbXAzeDNqYnZvSmJhVDNNRFJTdGNURWcvdFNzZlB4cVZlbWEzdUg0U3NieTFtbFJ1MVJXYU55dlZXSTZlZGQ3UGh5RFZFaVRuVlpjWVlqOXZ3T2ZkaXM4Y3pUM0dnMi9EcldydGNDTkp1MVpoK3lTdUFQRWp2b0thNFU5ZkhGMmpjOTVjbFBYb1F5dE94eU9jZFJtdlV4Nm1xUTRXNFdnaDFxd2x1VW5XZU80UjFWbUM0SVlIY1kvblYzMEJSUlJRTldyZnJZdjhKK3ROMmFjZFcvV3hmNFQ5YWJHb01rNzFyellyREhHK0RURnhKeEhIb05vc2trTHVIeUF5NHdNVUQ0eml1WmtxcFg5Szk3SEovWjdSeDAzTENsTmg2VzRUSVYxR3pDb1RzMEJKSStCb0xOTGQ5YU14eDAycVBhZnhsb3VvUks2WHFLemZzTm5tSHdwYituTk56L2JJL2tmeW9IRW5hdUQwUTNVVjFFSllKQkloSkFJMjZWaVEwQ1Z6dmsrTkxPQTJIcXlzZWtsM0tVYjk0WjZqeXBqMTErVFRqdXdWcEVWc0hIc2xnQ0trdkRLQkpyZU5SaFZrT0I0YlVEM3FHMTVKOFBwU1VtbFYvd0QyeVQ0ZlNraG9OUWE1VFRpQ0o1Q0NRZ3pnZFRYVHY2VkZPTmRURnBwZ3RSS1kzdVR5bGhuT1BEYnhvR0RXUFNSUGIzVWkybHFCR3UzMjNYUGYwcEZINlZKU3ltU3lqNU0rMWc3NHFLWDF2RDJUTUgrWUpOTWtpb2lmZkdmZWFDN2RONDMwblU1WTRvM1pKSHprUHNGMjhha0N5TElvWkdEQTlDRFhtK0c0RWI1RXBVK0lxenVCZUpSTmJ6UjMxNkFzU2hZMU9mblFXRWE1T2F5a2lTSXJvUVZZQWdqdnJWK2xBbmtPMUx1REhlWGlPK0xPZVJJQWlwL3hESnBCSjBwWndSLzFqMUxiZnN4LytRb0VNOXkzYXZ2KzBmclhBenUzZlRoUGFxSlgvd0FSN3ZPdVl0b3oxejhxQ0JhKzUvUzhwNytWZnBVWTFqV1UwK0VxcEJtWVlVZUZUVGlDMlJkWWxBSFJGN3ZLcWcxNlpwTlRteWM0WWdlVkFpbnU1WjVHZVNRbGoxcmdKQ0QxM3BWWTZaUGZ2N0lLb09yR24rMzRidDBBN1RMSHpvSStsMFZYQlk4Z09TdFNmVGVLMnNiVTI1Z1dhMUE1bFZrQjVUNDBvVGh1eGRkNCt2aFcwM0NUVzFsTE5iUHpFRG1LTjRlRlp5eTlYYncrTDhtVjN4RERmVHlhbmMrc0ZFUlQ5MVJzQU8rbjIwamtFMGJYSEswSXh6S2k0SkhobnVxTHh5eUpjTUhYbHdTQ25jS21kdUJJcU1DTUVDdE9WNHZCMzFLZlJwOU1TTFM5TW10YnpJTHl5ejlvcFh2SExVdjBkSm45Q0dzSklVWnpPNEhLdktNYzBkUVJVd3dxZjJRNWZRcHJCSC9mc2Y4QTF4MFJWODJuOGlXMGpTeFFoSEdXZDlzSEdOeG1sQ3VPYmw1d1dVbko1ZWxLTlRUdHREbG54Z1JjcmJlUnh2U09FYy8zUWNBS1RnYkRPOUF0bmlnbGpMM0lrWlkvYlFJMk10NW51RlNyU3RZMUMzNGFnc3JCa3RtZWN6Q1NSTXF1RGpCSjNPZHNZMjYxcm8wT25hVGJSNmpxTUNYRFNZN08xSzh3T1AyaU84Ky9hcE54WGJhWHJsdnA1dGRTZ3RKb01Sc2dRcUZYT2NBQWJZOEtDVGFSTmZYSEFLYWhleE9OUWUzOXVNTmxjZzR5ZzdnUnZTVGpEU1UxT1FhZkVwU05jWjVDUUZCVTlRTzQ3L2hXcWNZNlRvOXREcGNWM0JJcVFCRkRCdGdQSUNtdldPSnJTNzdTUzF2U0hsVEplRkNyTmdiWlBkamY1MERiNk9yQ2JTK0lMcEdFZmFQRTZHRG13NFFPQ0dJNllQejM2VWwxeVdlN25sdG9OUG1rY2RvZ1ZjRGJmNmJVcTRIbnM5SnZudjcrK2lUMWlKb2l4SkxoMndjSGJ4Rk9TVGk5bXVvTk9qVml4ZkxKdThvemduSnh0M1lIa2FDdlhzN2JTOWNnVnJVM1YrRVBOSVAxTUFLQTR3UjdUZWZRZWRTMkd3VFZiTjlKRVUwYzE0V2o3Y3I3SUJJSU9ldUFQS25XeTRYMUxWTGp0Z3FReE1uTDJqbmJ3SXgzOUtlK0lORy9SSERkOWUyMTFLdHhCYnM2ZGtpb2VZRGJCRzQrdEJIcmIwTTI2eHFyNnBLYzlTSTg5L2NQblNEMHY2ZEhwZkJ2RCttMjVZeFcxeDJLRnVwQ3hFRE5NY043ZlJjczh1cDZqTTdMMG52WkdBK0dhZC9TZ3hsOUgzRERzU3hhUlNTU1NUOWw0OWFDQjJkL3BiK2l5LzBpNGRVMU9DY01pSDd6NWNFRmZoa2ZDbUtIVFk1TEtKMUpWbVVIeXB5MUtPSDlEdnlBaHlZeWM1eDFydHA5dVRZUW5HM0wzRHpvR1gxZTZqUXJnT3ZpSzB1VUJzOEdUN1ZqN1VaVWdyanZ6ME5XR25EVWMyak5jS3dFZ09mZUtoK3ByYnZadUJNbk1xY3d3TzRIZmVnNThNUnc1djhBdFdDLzdNZVRQZWVaYTIxYUlKWmlSVjJMNDYxdzBPNGhFVnlHbTVIYkM5TzcvUXBicTZ3TG9pTjJ2TS9iYmtIMmNZUGRqcjhhQnZuTnBjTmJlb3dTeHVVV04wYVR0REpKbnF1d3dQTGYzME9XdHlWbFVxd09HQkdDcEhpS0lqQkN0c3lTOGtvWVNsbEcrT3V4UFErRk9Fa1A2VXRaUFYrU1ptT1pKTWI4eDhjNzR4MU5CWm5vNTF1M2l0SWJHNHVJa2VNaDRPWTRPQ1NTdWZ4SHZOU3ZqZlU3SzN0YkxWWkFYZ0JNSkNZNXNuQkhYdTJhb2J3N2NhRmJXZHFzZWl5WFZ6Z0xKTk9WU05pTy9PYzRIdTN3S2xFV3JXdXN2ZDJOeHBObzhjWjVvdzZDUUU0MjNQdk9OdkhwUU1XaThjNkxOckZsWkxhWFlra21TTkNRbUF4SUF6djUxYTlSdlRZZEFUczQ0dExzNHJtSnRpYlpBU2ViQUtuSGppcEpRRkZGRkEwNnYrdGlIZHluNjAxbjQwNmF4K3RpL3dBSit0Tlo2VUdqbkJxck9MWTdqV1pidWRGa2tpajJSYzdJTmgrUFdyUWx4eU5ud3FOYWhESEZvVjAwYWNvZVBKK1lvS1B1OU5samNGbEk4YVF2QVEyTUdwbGZoUk1SanJUUFBHdk1kaG1nYUxkNWJhWkpFWW80NkVWWmtFUUdueFM5b09ZZ2JaeWZuVUVhMzdRcXdYWlR1ZTRWTE5KbmFhd1JTMmV6OW5HVGlwZStIWEgxbU51U3dPSE0vb1pQOHgvclRpNDg2YnVIQi9VeWY0Mit0T0xnRUhiOGFya1pkZlhtMHFVRFlCbE9mY3dxVWNONDlZaHpuUGEveXFOYStCK2hybnlYUHlxUjhOTVBXNFFSakQ1SG50UVBkL2oxdVhQWGI2VWthbGQvL2JKUGg5S1JtZzVucjVWRGVNb28zRWJsY3VycnY4RFV5WVZYL0hGM0phSzZrQWt5S3did0hLMjFCRk5RUlRHQVI1Vkg3cTNqTzRYcFdialdwWGN4dEltT25URkk1OVFJSURZMzZlWW9OVGJxVklWY2swODZIQjZuZGxSSm5uVGRmQTB6UVhoNXhJRndvNkhQZlRoWVR5eWFwRGdFZzdkZWdyUDExL1dZWGM1cTc3TCt3VzMrVXYwRmRHclN5SDlYMjMrVXYwRmRXclRrVFA1VXI0TDI0bjFJZDNZS2Z4RkpaQUFDS1hjSVFzbkUxN0pqMlh0aGcvOEFFS0IzdnJEdE9hV0pkeDFVZC9uVE0wWEtjZC9oVWxzN3VDOWphUzNjTUF4VStJTk1la290M2RYbmFuT1B1K1dTYUN1ZU1iZ1dsMWV6bmJzNFZJK1ZWQlpXajZ2cWJBa2hjODhqZkgrZFc1NlNvMVJ0VFJ0MkVDNDkrQlZlOE1RRkxPYVlETE8rQWZJZjZOQTdKSEZieGlLSlFxcjB4UVh5TnF5M0tvM085Y3k0QjJvZjZMYlpuN1JNYmJqZndwN2pua3VWVlpRdlVqUFhKcU9QcTY2ZEFVbWhQaXB5Q0NmRVZ6c3VKQUpFTEFoQWVwRlluN1hsNk05K1BIMWw3N2FjVGFGNnZJYnVKUFpjKzFpdGRLY3BHSTJPZVhkVFU0U08zMXpSeWdiWmw2K0JxTFh1aTNXblhNbG82OW5kUnR5RlQ0N1lQaGl0dk9VRFpzL09yQzBrYy9vYzFVWTVzelB0L3dBVWRRRThLY1gyMkd1TGJUeVd3QW8xQ0htT1NBTnViekZXTkJwZDlwZm9oMVcxdm9WaXVESVg1QklzZ3dXajcxSkhjYUNDUThoaW10NUVVOXRIZ2dBTnZqWUg2MGh0bFpKWmJkWWdvZFZEWklQVHd4N3V0S1lvcFNRdlo4MlJoZVhiRktMZlREYXBKUE93UjJURVNuUHROM1o4Z042QlhFNnJhTERkU2lPT004OGJPY2V6akpBOXczK0hqUzVicTI5Wm41V0gzeWMrTlIyU1AxaG1rdXVXZDJVcG45MWNZd005T3A2VkdwNzIrc0x5ZFlIVjRneDVlY2tIRkJLTlhlMmFhV1FaREJBK1Y3eG5jZktucUdkSklVYUloazVkNUNOaC93QSt0UXF3bU4xY29ibzg1WkdCQzlDUVFjVktrdlJ5aFVqUGdpS05nS0haVjJaRml4bTlsUk1DR0M1TGUyTno4S2VlSE5YV0RYSkNxS3dFTGN1VHQxRlJLNTFHVW9Va2JCOEFlbmlLN2FCTDJ1cTRQc2pzempiT2VtMVNiMjY1K3NrazdYVm8yb1BmQThpS3FxTmdvd0JUaHExZ2RTMGlhejluTXE4cExaeCtGTlhDL0l0bmtZQ2c0eWNDbjJXN2lqQUJkYzkyOVZ5VmpjZWk3VlpKUzYzMXJnbmNIbUpIdXlLUitsaXlleDRMNGZzbllNMEUzWnN3NkVpT3JNdTlVYUI0WUlpc2x4T3hXTmU0WTZzZklWWDNwa0RmMGQwcnRNT3d1bTVpQmpKN005MUJVOTR4ZlRtRFl4eXIwOGpVaTRYc2x1dE9qT2RsY2pyVVlaSkpyY3hSUnU3RWJLb3ozMUwrRjNGbnBCN1pzRVNPTUFGaDNkNDJvSmE1aGcwL2tZQUtWNUJzT3ZLYXFiVjQ0a3RabDdVb3doYktqSHRFNHF6N2kxbXV0TU53dk1zQ0ZaR2RsSUFVRGMvalZjYXZicEJGY3JMS3F5c3JEbEQrN0cxQWg0U3RvcGt2ekpHckZJd1Z5T2gzNlVwMTdtT2xxZ2ZtVHRWUElFRzNYSnoxUGZTZmhrekpZNm9ZT1R0REV2THpianZwTFBOcUNNVGRQRzhhN3NzYTlQT2l5YjRqakpwZ3VvcEpvcmh1YU1LRVJrKzhNZmhVaDRldHJTMnNwNUppVnlWT1hrd1cyNkZSMUh3cHIwL1ViWjVaVVNUSE5qT1RzY2Z1K1hTazZMS2w3Y3JMTUFXWUVNQjFIbDlLazIzNVBYaVluKzcxRlhpTU5zeXdGYzRrQTVXd1Q1ZFIxMnBIYWFyYzJxUlNpK20zTEtGU1U1akp3Q1YzMlBUZWtrYUpFSGFYTEJ6eS9mM0FIdTdxU3RhTUovc3lBR0dNL21hcm1tdkRXc1hNdkVHblF5WGJ1R3ZvbHl6RTVITnY4TW41bXZRWjYxNWY0V0NyeFhvS0F2bjF1RTRKKzk3WTM5MWVvRDFOQVVVVVVEVHJINjJML0NmclRVVFRyckg2MkwvQ2ZyVFV3eFFJdFJXV1N4bVdFa1NFYllHU2ZLcTc0azFTOEdreWhZMzVPendER2RodjMxWnJEUHhxQWNTMnl0cHQ3bHlpaFNjZkhwUVZhbDFjM0pmTE1lWEdTYVF5WGtwa0lHZWJwaW5xMENSMnM3a0FLMlZYSXdXSGpUVkhDcjNaYmZzd2NsZ003K0ZTM1RXR0Z6eW1NS0xlNW1paENsWFZuR2QraEhqVWk0YVNUMU9SMlBzRnVWYy9qVWQ1MWtrWmdOaWRzOXdxYldGdUxXeWloR2RodjcrcHBQOEFMWGt2T3BlSW5YRG4vd0FtVC9NZjYwNFBta0hEZy9xWlA4eC9yVGk0OHFybVFYbHVsMWJ5UVNaNUpGNVRqclNqZzcxdUhXT3d1NVZkUXk5azRHT2JZN2Urc1NZQXllZ3Jod2FicTkxNkcrbUNwQTI4VVliUEtOOEgzbWdtZCtNM2tudytsSXp2UzIrL3RrbncrbEltb09iYi9Pb1R4OUR6MjFzd3dDWDVTRDNqQnFiRVZFZU9vODZaYnlmdXpZUHV3YUNwRnRnTlV3UXJ1UGE2REFIaWFiZFVRUGVNVUdRVGdBZDFQZlp2RzA3ckh6RWtndG1tc3hHTjJubHljYkR2elV0MDZlUEQzeTE4Y1l3VUhZWktxUHZBNy9LbjdoNjE1cDViazlFWGtYMzB3UjU2NzVZbXBadzloZE9Za2pkenRTTTU1YnEyckVmMWZiZjVTZlFWMGF1ZGtmNnZ0dW42cGZvSzZ0VlpKMy9HbmJoVEg2VW1HUm5zZkgrOEthM0hmU3JoWUgrbHN1d1AreEhIL3dDNHRBeTIxek5ZM2tra0RsVHp0MzdIZXBEdzY2OGx3NTZ1eWo2bW9xazhVOGtqd3lwSXZPd0pRNTN5ZHFsR2dxRnRGa0IzTWh5UElEL25RVnA2VVU3VFVyeU1kOGEvSDJhcjIwdkd0dElpU0llMHpOMDk5V1Z4MnF6Y1N6Um43cGlYNlZBYm5UUFUxNVk4bFFTVkI4eFFORFg5ekhMOW8yYW1PaWFXZFNzM25La3FxOVBNOUtoaVdVdDFlckh1Y3RqSGNCVnRhRUlyUFRqQU1EbTJPS3psZmtlandZUzMyejZpcGJ3eUM1ZFhMc3FzY2MxU1BocVMwbWplM25UbjV3Unk4dmwxcDkxL2htMHVoMnNXRWw4UWRqVWR0Yks0MDZiazVjTWYybE5XVFRqbGx1N1NEaHZPbjMwbHNIWm9UbkN0M1ZOdlNQcHhoNGd0YnIyUkRxRnFGWjhmZGVNREh6QnFJNkxhWVl1NCswTzVKcTIrTjlPRjVZNlFlVUVSdVEyZTVTZ3lmd3FzdlBsdGJTcnhIUGJ5TXhJa1RjbnBsaFZvOENHTnZRdnFKbHlFOWFrSjVtNXUrUHZxRGFiRTF4eGs1a1BNUVVCSTc4SFkvR3B6d0RDMDNvWTFDTlRrdGR5QUVqempvR2g3cUlqRnRiRUgrL2tmZ0tqMnFQZFBlOW8wemN5a01DeE9QRHArRlNkZEtuNWo3Y1lIUW5QMHBCcVdnWEZ5ckxFRVk0M3pKZ252L2xRSWJDZEpRVmZsRGpmQk5NdXFXS1NyZHlTRlJ5Uyt3UDJqdjlQR25XWFNOUnNFOVlrV0lGUjFFZ3lQY08rbXFTVVNRM0FtTE5MMjR5NU81SlBTZ1RjeTJuWUFFdmx1VlNPbzV1LzhLMmdrbVVkcDJzMkZ4N1N2ME5Kcmt5SzVTS1BNdk1BaTQ2R2xjeFJVU0ZEbmxQTWR2R3MyL0hieDRjWE84YUtrbGFaUTdrbGlNYm1uamhzRWFxMkIxUWsvTVV4VzJleVZSNTcxSXVHVUg2U1k5QUl5YzU2N2l0T1Z1N3RZZHZxM3FrSUdTRlU3S1A1MXRIeEhidEFWTnZJOHhQMysxMjM4c1V4em4yU0NSanZ6dlNOVzVFWE9TT3V3eFJEN2U2bk5jM1ZyYzI4aXBjMno5cEVYUHNFOTRiRytEU24wZ2FsYXg4UGFMZmFwWXJjcTgzTThLUHRrcHZocWpzWE14VnM0SG4xcHk5SmFrY0dhQ3VkaElBYzkvd0JuUVFMVjlUMGk4UmpZMlUxdWtnT0FoQVpSNy84QWx2Uy9obWZrNFpXSU4rc3VabEJIVFpZelVYV1BKQXdRRDMrNnBIcDFyY3cyTnJieXlRV3FMTEk2dUY1bU9WWEpLbllqQThxQzRZTGVPNTRXU055TVBaWXg0K3ptcUcxYUx0M2FTYWFOVUtNVThTVGpwNWJWUGJhVzVsdHBZUk04aXhXdk1qdU1rWnlENWJrZUhTb0hKcDhqS1RKMmFzUU44N2swQ1hRWXpiMjJvZGxseWljcjdiRTc5UERGSlpyZWRyUnBwa051amphVTViT05zWUc1cCswcXdGckhER3JjL3JqQldJSFFjckhLL0d0TDdUNTdpWCswQ1FnWUhOMDIyK2xadDUwN1lZK3VQdjhBOFJpMGpqZ1o0b29tWWN4ekk0Qlp2Y2U0SHdGVFBoL2hHUGlwYmlkTHRyVXdGVXcwZWViSXpYSFQ5RGpCWjdpYm1ibTJFWitwcFRkTmM2ZHlKWVQzRVVUdVRJeVRGU2R0aHQ4NjA0bjVmUTR0eEd6dnJCU01kQUlUOGUrdVRlalcxdDlTdElCUExNMTB4aURsVGhRQm5tWWRNNUk3Nmo3YXpxRGpzenFWNGNlTTc0K3RkN1c5dllBWnZYYmxXeDkvdFd5UGQ0ZDlCTXJMMGFwcEd0YWZlUjNTVFNSM0ViSENsUnlnNXhqSnEwcW9MU05XdnB1SjlMRWw3ZFNLMTdDQ3BtWnR1WWRkK2xYNmV0QVVVVVVEVHE0KzJpL3duNjAxdDFOT21yL3JvdjhBQ2ZyVFBQTEhDcFp6amFnRHNEVUs0dWh4WWFpdlFOSGxjZjY4YTE0cTQ4WFNVRU5uR2ozTDlPWW5Dang4NmJmV2RRMWJnNXRUdnBBelRoeWdWUW9WUVFQcUNhQ0VYRnU3V3lvektNZ2ROc1UwWENQQ0JFR1hCd1RnWUk2N1ZLSGJzYmRwR0h0Z1pUSS8xbW94SnpHVjNicXh6V2U3dzd6K1BEYzdyTWVBeTVPQVNLblNYTUw3SktyZjhWUURPV0E3cTAxSkdVeFNnZTBSeWsxcHdYeHcyNE9pcHY4QTlvMzFwelk3bndxcnVDYjY4azBkVWptYjJISU8vanZVMWkxQzVRRHR2YVhvY2pjVUR1dzV0cTA0Q2NGTEVlQUkvRWl0SVprbTVYUTdWeDlIczNNYk5jN0NXUmZreG9KdGZIL2JaUGVQcFNRMHZ1SURMZXluY0tDTi9nS2E5U25GcWpjdEFrdnRTdHJDSjVKNU1LaWxteDRDcXgxbmpkdUk1RXNMUzA3S0lNWkRJN1pibEFJNmQzV3QrT3RVWVdKaERlMU9lWFBsMzFIdUdyVlRhWHVvTUR6UnNzU2p1T1FTZmo3TkIyRVpkWFhHZmRUQnFNaGE0TVNoVlJHSUFVWUJxVVRzbHBGSVFEMnBQTHlrZEI0Kzd6cU56NW5sSlVFNDhxejNYZkwrUENZenVrR1FxN1YyRTg4ZG5JWXBXUXJ2N0pyVDFhUjVNY3BIODZkLzBTMFZvNnY5NWtMSDVWcHdPL0MzR09wbVdPMG1uYVVjbnNjeDZZSFNwOWI2MUl3SGFwdGp1cW5PSDNGdHJkbXo3QVNCVzl4MnE0b0xSSkdaQjk1ZW5uUU9FZHdrNHloelR0d3Qvd0JaV2J1OVZQOEEvSXRRdUdkNEptR2NGV3dSVXg0UGxFMnRNNFAvQU5NZTcrK3RCQ05FMCtUUzdKNEplWHRPMmtadVh6WTFPZEt4SHA4RGQ1VmlmblVQdjc1TFIzWmxKek55NEhpVGlwWlpjeTZkSC9rRGJ6b0s5NHJrRW5FOHpaNkluMHFOWDR5ZHFmT0kyenhEYys1ZnBUVEtuTkltMmNrREhqVHBaTjNSdnRtaDArS1NhUU4ycmRHQTZEd3J0WjYxY3JhdTlxcXRJU0FzYkhsMm8xV1pJNHhBcWdqcUY4S1k0ZzhWMHJjMkIxNjlLeGp6ZHZSNXNyaEo0cGVrdnY4QVY1NTlOdHB1d2FLUU9WbFRQZGl0YkIxdmd2TVBiQnJsQmR6WEZ1ZTFaSkF1d0FyYUdhQzJaWjBYa2tEcUNtZXU5YmVaSWJlTHNtSGtLdGZpcUs2ZlJJbXRRR1pRQVJueEFIODZxNzJUR3NtZW83cXVLZTU3RFNubTVBNnhRaCtYdkpBRkJTeWNNM1dsY2ZHeldPUzRsaHNvSG1rUmRpeDVtUHlHQjhLZGVCN2x0SjlDdXBYSURGbzdxUmh5NVU3bU1menFSM3VwM1YzcU1sekZQTkFIeDdFY2h3TURGWjRpZVc0OUYrcm1WeTduQXkzK05LQ3RocitvYzdNc2l1dVRndW1lK3UwWEUyb0dWVktRRlNSemZaNHorTk1mT1c1Y1pCNVJuUGpXd2tBWUFqY0E5UEdna3R5V3VZNU9ac3VWYkF4MDJxRVNaamU2aW5XWExFaENpNUtzRGtaOTFUTExOR1cyeHlnK09ENFZIWms3YlVKakpua0VoTEVEenBicnRjY2ZhNmN3SGtUMWh4SGtjcDNYcWZIeU8xSjFzNDJZQTdIeHBYS1VlUUpFQ1VRWUI4YTVlSU9jMW1UNjYrVy8xblRlS0JJMXh6WndjbW43aDFrL1NUYjQreGI2aW1PTndVTzJNZUZPbWc1L1NMTGpPWWllbm1LMDRwUGQ5cGNRY3R1c2JOa2ZySEkyNys2dEFKQVBiNVNPbU91YTV1N0kvTHNBZTdPNjFsWlhWVUF3Um53M0ZCM2k1bzhCSTA4eVJuNFV1OUk0RGNGY1A1YkM4NEpQL2wwM3d1Q2dITDdaT2NIK1ZPbnBKVURnelE0eEhMSXhmQ3BHaFppZXo4UHpvS3RnUU5JTTdqOW1uYTNtN0Z3RkJkczVCYnVKMk8xSUxXMTFDV1JtT2wzTUtvTW5uWGZidnBYR1MwcHg3SURic2Vnb0hYU3A1NXI2Zm5seVJDTUJqdGpKNkNtNEdLS01IbTUyQysyN0hHUGRXbk42dmVtV0tSdVFRdXBKNzl0cWo5dHFETXFtNFVjb0d4eWNacVc2aldHSHRsby9UWFhxY1VNY01tU2h5R0kzR050dktteDd1UjMyY2s5ZGp0U1dTN2U1UGFIQXlCc0t4R3h5b09OajNmNjNxU2E3Yjh1VzdxZFJLZExWbmhCSkp5ZHFsbWw4TlFhOVkzSWxuYUlxNmdGUUQzWnFIV045SEJBRkl5M2o0Vk5PR2JxY1dWMUxKYnVzSGFKbHpzdWNiYjFweWJRK2kyS0tVVG05ZVdNbmNORmdIOGFYYWp3anAwdG42dkUxcmJ5TU1Cc01UMytkS2RFblhYZGN2YlNlUTlsYm9yUlcvTmdNRG5tWStQZDdxa0Z2cEVOdEt4TWs5d3p0a0xJMlF2dUhRVUZlNlR3T2x0cmxuY0RVMlpvTGxHS0MzSTV1VmdjWnowODZ0M3ZwTGJQaHdpUkJGT2Q4WVB1cFZRRkZGRkEzYW9BQXJrYmhTS2dlczNiaGl2TjdxbXV1ekNHTmM1eHlNZmxVQTF3TkhwazF5Y2V4SG5meDVjMEZROFFYUnVkWnVYVTdLZVZmaFZxM1ZpbHB3cEhwOFlWVEhhWUNIdUlPVDhTRFZWNk5aSFY5ZnRMVWdudDVSemVRemsvaFZ2NnV2cmRzWi9hV0x0RkxjdlhCVUEvSDJhTExxN1ZscTF3NmZZcjl4QjdKRk16UU04WVlZREh4TldmcUhCRnZjTVRGUEtoWE9jNHdmd3BKYWVqMHZNclRUc2tYTHVWSUpIbDBxU2FYUE81M2FCYWJwSnVadmIrNk4ySXJPdldhcnBrY3FBRERuNWRLdFN4NFNzQWhFVXM0UUl6ODJWeTJQaFRQcUhDVUUzRFhPc3N4SlNVNE9NWkI5MVZsR3ZSeEptYTh0aWZ2UmM2RHpCMy9BQXF4TG1JVGFQTGNSRDJvOEZzZVhmVlJjUFhMNlZybGxNakVCWmdHOXhPRFZ4c3kyTjZIVVp0TGs4a3Fub3BiYlB1M29HbTB1bWhkWkFUZ2taQXBad1RPTERYckxUcGM5cEpjU09oQTJaV3lSaitkTXR3aHRMNlcxeWZzNU9VZTdiODZjTkM3U2JqRGgyUmQxaHVtVmg0QmtQNVVGczNzcXhMbnY2L2hVVzFoak5KeUFaRElyWjk3RUQ2VTk2NjdMQ1dUN3kvekZNY014bGthVlJrQlZ4bm9QWjJ6N2lTYUNuT09uL3JXSzJCejJhNVBodjhBKzFQUEQxb2c0THQxY0FOTmZkcWMvdEFLeTFGK0paRGVjVFhmWjViTW5ab0QxMjIvR3JWdE5FdHA3VFM3VTg4Y0VMbFBZeG5iYnc4elVzMjFqbDYzYUR6ODEvQUdjRG1YS0FqdnhUSzJtM0NzUUV5ZkVWWXk4SzJ5WHQ5YkxOTUdqSmRlbmNkeDA4S1ZhYnduWTNGeDJuckU1aVplYkdSN08zdXBKcUpsbGNydXEvdGROVzJZU1NnR1FkRkcrUGZTbTRRaWFaY2RJZnFhbXR2d2hhU3Vaak5PVWxsRWNlQ09nNm5wV3ljSjJVK3JYeUdhNTVVangrejQrNnFpbmIrMk5ocVJBR0NPVng4Z2F0elRMc3phUlk2ckYxYU1DUWZoVmVjYVFpUFZWa2pCNUFnUUU5K052NVZKT0JOUUV1aFRXcmtuc1d4azlBRFFQR3RLa2Q0czBXT1NkQXc5L2ZVaDlIa3ZhYXRjZUhZYmZ4aW9qcU0yWUZpWnZhZ2tKSCtFL3dEdFVuOUhEWjFxY2Y4QTZYUC9BSzFvSW5yQkwzcXhnQWdPMGorSTlyQS9ITldFekNKSkY1bCs0dkt1Um5HS3I2NDVaZFR1RGtFOXVzWFR3YkordFQ3VVlZMEU4cklwZENRajQzQW9LcTF1VXZyZHd4UGdOdmRYQVhOc2xxNUxqdFVQTmpJQitGSXRkbVlYRjlNcFlGRjJLOWM5MVFHOHVuYWNlMFN5bmRzOWE1NWMzMWoxZUdYeFkvbCtwTGVHYVM2SlVrazc1OEtRZXJTdktBWlRrbWx1bjNJdXJkSmYyaXVHOTlFMFRCdzNOamV1a21ubXR0NXA2c05GREtNeVM4elk2TmpGYTZqcDcyZXBXa1FrWjBiR1N4enZtbkhTV2Jzd2M4M3g2VTRYVmtaSlV1RHZ5N2dHaUZrRTRXSlVKNkRIU3JkdXBzNkpPQm5sTnYzKzZxV3QzTFNFRVlPZmhWelRXTW1wYUplV1NTdEU4dHFVV1ZlcWtyMStsQkdFUU1lWUhhbFd1cnplalRWVkdNay8vd0IwcWgzNHU0bzBXL2EzdTdtVG1qT0NzZ3lweDc2dHZUTmNtNGs5QzJwM3NrYVJ5Q1JveUU2SGxaTi94b0s1bnlJSStUb3ZOek1XNkFIb0s0eHlySXdZREJCMkpwNHNiUlo0Z1NBeWtuSVllT0tjWTlHdDJJTFJLQU54c0JRY2JXVHRZSXozY3VNVTF6bG9wSnhrY3p5SHAxSS9sVXFpMCtHUG91QmpwamFrc3ZEbHROUEpPWlpnWEpZZ0VZK2xTemJlR2ZwdEZoa0RJMkhjSzJHQ0J0dlVsWGhxMnpneVRLZXU1SDRiVm4ramxwZy9hejQ5NC9LcXdpK01FbmJ3NlU2YUQ3Vit3NWlCMmJkQm53cDBIRGxwalBiem5IZGtiZmhYVzMwbUN3bU1rY2tqRWpCREVZSFR3SGpnVUc1NUE0NWVZZCtjWi8xLzcxb1h5cElVcTIrM1U0LzF2OGE2RUZpQUQ3UGVDRG5yMXJXUU1HSHM1eU01eDhmK1ZCMGljeG5DSGRqZ3VSemY2SFdwaHhISVR3bG96am1VRUxrRWYzTytvY2hVZlpsU001RzJ3UDhBck5TN2laLy9BSVMwUWdrOHdIeDlpZ2lxdXl1R0RrTU9oQjZlNm0rL3NCTXBraEFFZ3lTZ0dGZjNlQit0S1F4OW81RzJPdGI1NXdWQk80NjBFTXZKcFlPekV2TW1YNUdUdkFJTk1rMG5MQ2tBKzZBQ1NEbk5UL1VkSmcxT01KSjdFaWJDVlJ2N2o1VkZKdUc1TGVReHV6SEIyWlJzdzhSdFVzMjZZNStzc24wMnhIN01ZK2xLSWxQTm5POU8xdHcvSDJhOHp5YzNmdU1DbFEwSzNBL1d5K2VNVlhNeHZLeXBoVFQzb2Q5T3R0TWhua0tGMXloWTRPM2hYR2JTYlpHUldtbEhONWpOS2JXeWl0MUlXU1RsZmNsdCtnOHFCeml1QzA2TVhram1COW1XSitWMXo0RVZZT2o2M3JTd2t6MjBXb1JEN3JSbnNwY1lHQnkvZFBmdmtHcTZ0M0NNQ1FOL0w4S25PZzNiODI4bUF3SVV0K3h0M2U3TkJLZE40ZzAvVUpDcnFiUzVSZ2hodTFLT0dQUUxuWmlmSW1ucW1pM2xqTndTeXhTRm5HTVlQVHY5KzRwM29DaWlpZ2pYRTZzMHlnazhqVzVYSG56alA0RTFCZVA1MHN1R1RFbjNwVGdEZnFlcCtXMVQ3WDVndW9Xc0xxQWp4c1E1N2pucCtGVmg2VTVHUzIwNkJtOXBtTEVlQXdjRDhhQ08rajZ4TW11ZXRuWVFsVUhqek1jZlROV2V0c0gwYS9qUFZHVnZoazFGdlI1WU5IcDl0SXcvWHp0UDA2QlJ5ajhRYW4wVUlQcmNJR2UxalB6RkF4TFAydHJidStlU1pleGNqOWx4dHpEOEtjWGpOdncra1NqTWtqaEZQdnBxczFFMm4zbHN4OXFNOW9uOHhUdnBoOWZ0N1FuY3c3Tjd4MzBHVWo5V3RydEFRUkRiaVBJSHovR215ZjdIaEtOeDFkbUh6TlBWME9UVE5Sa3dSekRxZmVLYU5Wanh3bkFFL1lreWNVRkdhbkMxcnFWeEdkc09TTi9IY2ZXclNqdlRlNkhhTnpEN1dCZVZ6M1BqcDh4dDUxQXVMN1V4WHNOeUJ0TW1DZk5hVWNQMzVPaXZBellDU0hsYlBUdit0QklIdXZXcjJHWnZ2T015ZTlkajlLZmVEZ1R4TFl0dVY3YmJ5Mk5RL1RtOVl1cEMyd1FGdmlldjBxYzhGQUhXYlk0MjdZRWZJMEZnNm5neHpnNzdBZ2VKRy84QUtvN2I0T2t1NFQ3TW9XWWpibUdPbng2ZTRVdTRoMVNPMmtuUUVjeWpIeHdEVFBhWGd1dUZMNGh3STR3NGJHTnRzNDhzRDYwRlA4UHhtOTR2dHBKUGJBbU16ZTRaUDVWZFZuYjluWVdoSTNCN1Q0bXF6OUd0aUxuVWIyWTR5a0t4ai9qTytQbFZ2WEVZalVBREFBMjhxQmsxRnZVK0pVbTZKS01uekRWdFlONnBlWGxvTWUxOXozVm5pR012YTIxeUFlZGNLYTRNL05OYVhpQS9kQWVnZklMWVJtemgvY0djRHVwQllaZTgxTmgzaGdQaFQ1YmxaWm81Vjc5ODB5NlpHUmUzYUh2bGI4YUNxK0xiY1NhZEsrRHp4U0JzL0dtVGcvVVBWZFFudDJZY2swZTQ4eDBxWjY1YkNVWDF2Z0RtRGRmTEpxdE5NZnNOWGpCMjNLbWdtVjVkTTh6eGcrMlFGQjg4N1ZZUG8yQi9UdHp6ZGZWZ1AvV3RWYkxJRTFLM0xIYm1CNjFhWG8wZnRPSUx0dTR3RC84QU5hQ0thUXlYV3QydVJ0UGZGaVBITFkrZ0ZUbldyZ3hhWkt4NjRKTlY3d1BkTmZhL2J0S0FDczAyQVA3cGJCL0NwVnhQZG45RHUyY2N5RTBGT2E5Zjh0dEtBRHpzM0tDUFAvMnFHa2xqbnZOVERVTGVLOHRvd3hWVHo4em52SUdhUUxEWjI0NVlJQVcvZmZjbXBKSTNsbmNwSmZqbHBURzNzV2xMY3A1c2dIdnBjYmd5RUFucFRmZk1pUmNvVWMzZlN6VHJmdDlPUzRSQTU1aXJEd3hWWU9PbWFtMXJNVjV0bTYxTWwxTlhzaG45M0JIZlVCRVAybzVvZ1BoVXMwVnJVcWl2YklTVGptYndvRnRvMi9NVGtIcFY1NmZkeFFXRFRTTjdLcm5mM2IxVTZQbzZ3cW90b1J5amZyN1JyaHJQR00zNlA5VWdmQllZT080ZUZCSE9JMXRkVW11V2tRTXJTc3lud0dTYW1mQlZnMHZvUDFXMHQrZGo2ek1SanJzVVkvU3F3djcxbGp4a2ttcmo5RkE1L1JqY3F4MmU3bUJKOHdnb0lwcEVISnBzZHhNdkswamZaTGsrMHAzelRzcEFPdzdoanpOTXFTdW1vaXprbGFWSUNWUUU3QUtlNm44S3JCbXhoZXVlN0ZCajdveGdrMWhaY3Z5WUpBSFVHc3lSTUVMWndjWjVTSzU0T0RzYytZL25RZCtkdWlIYjUxZ0QyY1lQeEc5Y1VmQTJQWDRWMFZpd3pnc2UvQm9BbkdRVHk0emcvd0Fxd1RoQnZuSTZucjhxQ2ZjTWJjdGFBZ0U1eG5CNjBHZzVNOHpBZ1kvMFBsWE1vU2Z2Z0hicjE4ZnkrVmRPWDJsQUdXeWQ2NTh3NmtIM1lvTXZDYzh5akdNZkQ0Vkx1SUZZY0k2R0dQUHlxdk50OTc3T29oejl4YmJyNFZLZUo3NFdYQy9Ebk0vS2t6Q01oaDErei9DZ2l1T2JQTmpIY01kYTAvYXh5OHVlZzhhN3pRWTVuQkNnZlBGSitWU1ZJM3gzMEdWbEgzTnhrZUZkU0E4WmprQmRTY2p4WHpGQ0JNNE9DQjF3ZHpXSEFkUjNaeDMwQ0NlM2t0eGtNWGpKMmZvUGNmQ2tyU2tITE5uYW5qbEpVNVhLc044OUNLUlhlbmhVYWEzejJmN1M0eVZ3Ti9oUUpCY2NuS01BSHVyRE9uVWI0cE9NdHNwd001ei9BSzhxMkRjdlRIVE9TZW9IaFFMck8ya25rUVErMFRqWUg0Vk10STB5NGlnTFN6ckdDUUNyYm5IK2pVUXNwdXlRZ0E1eDF6MDM2L2hUc05UbDdQczRwZVZSbGNFOVR0UVdGYVdpSk5iczA2SDJnN0VJUmtnZ2Z6cVFWVk9oYXhkL3BMVG9lZGloa1VFNThXV3JXb0NpaWlnaDNGdDRMZlg5SVJzRlNHSUI4U2NmenF0dlN3Vy9TOWdHT2N3TTJNLzNxdSs2MHV4dmJpRzR1cldPYWFEOVU3amRQZFNMVU9GTkIxYVZKTlEwbTJ1WFJlVldrQkpBem5IV2dpbkIrbW0wMFcwUndjeFc2cjdzKzBmeGFubFhFVnpHY2Jad2FrVWRqYXhJRWpnUlZBQUFBOE5oV0RwOW1UazI2RTBGZGxUWTYyeUhaWE9EN2pTL1N2OEFZNzJXSTU1R0pJUHZxWVRhTnB0eElKSnJLSjNIUmlEbXRocFZnR0RDMGl5Ty9Cb0dQVkkvNmt2UDd3L25UWGNLSDRabUlYT0FHRlRWN08ya2lNVHdveUhxcDZHdVEwcXdGdWJjV2tmWWtZS1lPS0R6MXhkYnROcElsM1BaT0FBTzRZM3FPOE95ci90TnV4KzhPWWVmalhwbWJoSGg2NGlhS2JSN1Y0Mis4cEJ3ZnhwSkY2UGVFSUg1NHVIckZHeGpJVnZ6b0tHMDJabzd1NFFucnR2Vmk4RzVHdFdBQXlETGtuNEdwd3ZBdkNxdVhYUWJNTVRrbmxiODZjTFhRZEtzcFVrdHJDR0owT1ZaUWNqOGFDdGVNN2tyeFJmUUsyQTNKbGZFOG9vVVRXZkMrclFjbzdKckNWMmIvd0M2UVI5S3NlNjRjMGE5dkd2TG5UYmVXNFlnbVJnY2tnWUhmNUN0MzBIU3BMZVdCckNFeFNyeXlJUWNNUEE3MEZXZWlXMFBxdDlkc3YyWmtWUTNqeWcvL3dDaFZnUy9hbGhUcHAyaGFWcE5zMXZwOWhEYlFzM09VakJBSjhldmtLVStwVzJjOWdtYUNMVHhDYTJrdG16bkpLMDBhYUN5U1c3ZFVPd3FmbXd0R2ZtTnVoYnhya21rNmZISTBpV2tTdTNVZ0hlZ2FOTm01VUNNY1kyRkpMUk9UWExsY2RSelZKbDArMFE1VzNRSHJ0UU5QdEJPWmhicDJwR0MzZmlncUhYQ1l0VnVBd081WVZWR3JRdFphdElNRWUyR0ZlcXJqaHpScnFReVQ2YmJ5TzNWbUJ5ZnhwQmM4QThKWGtuYVhIRDlsSS9UTEtmem9QUEY1TVh1N1psQlBNUDVWYXZvbW1WOVp1VkxBeUMzR1I0ZTJ0VFJlQk9GVlpHWFFiSUdQN3A1VHQrTkxkTTRjMGJScnVTNzAzVFlMVzRsWGxlU01FRmhuT092aUFhRHo5NlBiaTRYaTJWQ1Y3T0ZMbCttNDNQNTA5Y2RhOURhV3h0WTJWcGlDR1VmczlLdDJ6NEs0YTArNGU0dE5GdElabkJET2luSkI2OS9mWEs1NEI0VHZKV2t1ZEFzcFhZNUxNR0pKK2RCNVplUnpHTW5kcXd1VXl4SFFaK05lb3YrampnMy93QU4ySDhMZm5RZlJ6d2FRUWVITERCNit5MzUwSGtxVm5sYmNlK3BSdzRPejA0RGxQdFpQNDE2Sy82TStDZi9BQXpwL3dEQzM1MHBoNEM0VHQwQ1JhQlpJbzZBSzM1MEhucVMzOXJPRFdVa2xqR0ZHSzlEbmduaGc5ZERzLzRUK2RZL29Od3YvdUt6L2hQNTBIbnMzRWlqZGpTTjNZKzFrNTg2OUhuZ1RoVnV1ZzJSL3dDRnZ6clU4QThKbnJ3L1pmd3QrZEI1Y3VuYVdjK1cxWG42Tm1OdjZKN2h5TjF2SE8vK0tPcFovd0JIUEIyYy93QkhMRCtGdnpwM3M5QzB1dzAxdE90TENHR3paaXpRb0R5a25HL1h5SHlvS1UxRlJhY1lYS3YvQU5wS1dCQTJ3M2hUMUUzTW94MFhZWjZiSEg4cXNxNDRXMEs2bjdlZlNyYVNYQUhPd09jWno0MTBUaDdSNDE1VjA2QUw0WVBqbnhvS3psWXlBbkIySCtzMXdMZFhaV3o0bllrZVlxMDI0ZDBadXVtd0g0SDg2eC9SelJzNS9Sc0djWTZIODZDcWxaems1T0QzNDd2QVYzTGxjOHJ0a2V5RGpiMzFaMzlHOUYvM2JCOGorZEI0YjBVOWROdCttT2gvT2dxNW1IUTVKMjJ6OHEySkM3Z0VuenEwRHc1b3hJSjAyM3lOODRQNTFnY09hTUJnYWJCajNIODZDcjJBeG5CeWZEcFdrbnQ1N2dSdWZDclRIRGVpZ0FEVGJmQTZiSDg2RHczb3BPVHB0djhBSS9uUVZObGlTQzJjSE9NZUZPdnBIQkhBWERSenVycWMvd0RsMVlaNGEwUW5KMHkzejdqK2RkYjdRdEsxS3poczcyd2hudDRmMVViZzRUYkcyL2hRVXpwZXBIVkxOZVlZbGp4ekFEcU9sS0VHSDhqNFZhZHR3Znc3WnNXdHRIdFlpMnhLZzcvalhYK2pHaDR4K2k3Zkh1UDUwRlU1NUdLZ01UMUlIZFc0SktoZ25UcHRqTlduL1JqUS93RGRkdjhBSS9uVzM5RzlHLzNiYi9JL25RVmVvVlBhYjJsR0JnLzY2VmlNeXhvV2tJREJpVlpEMVhQczlmeHEwdjZPYU4vdTIzK1IvT3NIaHpSajEwMjMrUi9PZ3FXNTB0TGxUTGJCSTVXenpSam8zbUQzZTZtWXhNam5uUmdWUHRCdGlNVmVuOUhkSDIvcTIzMjhqK2RhUzhNYUhPL1BMcGRzN1l4a2c1K3RCU3FLcEFCQkk2REI3alhSblorWG1CR0NENCtOWEgvUlBoLy9BSFJhL3dBSi9PZzhKNkFldWtXdnlQNTBGVjZOTXo2NXBpZ3RuMW1NSHcrK0t1MDlhYUllRjlDZ21qbWkwdTNTU05nNk1BY2dqb2V0TzlBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFmLy9aJnF1b3Q7IGFsdD0mcXVvdDtZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBlbWJlZGRlZCBpbWFnZXMsIHNvcnJ5JnF1b3Q7Lz4NCjxoMz5TdHlsZXNoZWV0czo8L2gzPg0KPHA+VGhpcyBtb2R1bGUgYWxzbyB3b3JrcyB3aXRoaW4gc3R5bGVzaGVldHMsIGlmIHVzaW5nIHRoZSB7Y21zX3N0eWxlc2hlZXR9IHRhZyBpbiB5b3VyIHBhZ2UgdGVtcGxhdGUuICBCZWNhdXNlIHRoZSBzbWFydHkgc3ludGF4IGlzIHNsaWdodGx5IGRpZmZlcmVudCBpbnNpZGUgdGhlIHtjbXNfc3R5bGVzaGVldH0gdGFnIHlvdSB1dGlsaXplIHRoZSBtb2R1bGUgdXNpbmcgdGhlIFtbIGFuZCBdXSBkZWxpbWl0ZXJzLiAgaS5lOiA8Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+ZGl2LmhlYWRlciB7IGJhY2tncm91bmQ6IHVybChbW1NtYXJ0SW1hZ2Ugc3JjPSYjMDM5O3VwbG9hZHMvcGljdHVyZS5qcGcmIzAzOTsgbm90YWc9MV1dKTsgfTwvY29kZT48L3A+DQo8cD5CZWNhdXNlIHN0eWxlc2hlZXRzIGFyZSBnZW5lcmF0ZWQgb24gbW9kaWZpY2F0aW9uIGFuZCBzdG9yZWQgaW4gdGhlIGZpbGVzeXN0ZW0gdGhlcmUgaXMgbm8gd2F5IHRvIGRldGVybWluZSBkdXJpbmcgdGhlIHJlcXVlc3Qgd2hpY2ggYnJvd3NlciBpcyByZXF1ZXN0aW5nIHRoZSBzdHlsZXNoZWV0LCB0aGVyZWZvcmUgZW1iZWRkaW5nIHdpbGwgYmUgZG9uZSBzdHJpY3RseSBiYXNlZCB1cG9uIHRoZSBwcmVzZW5zZSBvZiB0aGUgbm9lbWJlZCBwYXJhbWV0ZXIuICBJZiB5b3UgaGF2ZSBjaG9zZW4gdG8gZW1iZWQgaW1hZ2VzIGRpcmVjdGx5IGludG8geW91ciBzdHlsZXNoZWV0cywgWW91IG1heSBuZWVkIHRvIGFkZCBhZGRpdGlvbmFsIHN0eWxlc2hlZXQgc3VwcG9ydCBmb3IgdGhlIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgZW1iZWRkZWQgaW1hZ2VzLiAgaS5lOiAgSUU2LjwvcD4NCjxoMz5BdXRvbWF0aWMgUHJvY2Vzc2luZzwvaDM+DQo8cD5UaGlzIG1vZHVsZSBpbmNsdWRlcyBhIHNtYXJ0eSBibG9jayB0YWcgY2FsbGVkIDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57c2lfY29udmVydH08L2NvZGU+IHRoYXQgY2FuIHN1cnJvdW5kIGEgYmxvY2sgb2YgaHRtbCwgb3Igb3RoZXIgc21hcnR5IHRhZ3MgdG8gYWxsb3cgYXV0b21hdGljIGltYWdlIHByb2Nlc3NpbmcuICBUaGlzIHRhZyBjYW4gYmUgdXNlZCBsaWtlOiAoZm9yIGV4YW1wbGUpOjwvcD4NCjxwcmU+PGNvZGUgc3R5bGU9JnF1b3Q7Y29sb3I6IGJsdWU7JnF1b3Q7PntzaV9jb252ZXJ0fXtjb250ZW50fXsvc2lfY29udmVydH08L2NvZGU+PC9wcmU+DQo8cD5UaGlzIHdpbGwgYWxsb3cgeW91ciB1c2VycyB0byBpbmNsdWRlIGltYWdlcyBpbnRvIHBhZ2VzIHVzaW5nIHRoZSBub3JtYWwgd3lzaXd5ZyB0b29scywgYW5kIHRvIGhhdmUgdGhlbSBhdXRvbWF0aWNhbGx5IHByb2Nlc3NlZCBhbmQgZW1iZWRkZWQgaW50byB0aGUgcGFnZSB1c2luZyB0aGUgbWFnaWMgb2Yge1NtYXJ0SW1hZ2V9LiBpLmU6IFNlZSB0aGUgZm9sbG93aW5nIGNvZGU6PC9wPg0KPHByZT48Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e3NpX2NvbnZlcnQgZmlsdGVyX2dyYXlzY2FsZT0xIGZpbHRlcl93YXRlcm1hcms9MX17Y29udGVudH17L3NpX2NvbnZlcnR9PC9jb2RlPjwvcHJlPg0KPHA+VGhlIGFib3ZlIGNvZGUgd2lsbCBjYXB0dXJlIGFsbCBpbWFnZSB0YWdzLCBhbmQgY29udmVydCB0aGVtIHRvIGdyYXlzY2FsZSBhbmQgdGhlbiBhcHBseSB0aGUgd2F0ZXJtYXJrIChhY2NvcmRpbmcgdG8gdGhlIHNldHRpbmdzIGluIHRoZSBDR0V4dGVuc2lvbnMgbW9kdWxlKS4gIEFsbCBvZiB0aGUgcGFyZXRlcnMgYXZhaWxhYmxlIHRvIHRoZSA8Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e1NtYXJ0SW1hZ2V9PC9jb2RlPiB0YWcgYXJlIGF2YWlsYWJsZSB0byB0aGlzIHRhZyAoZm9yIGltYWdlIHNjYWxpbmcgZXRjLikuICBBZGRpdGlvbmFsbHksIHR3byBuZXcgcGFyYW1ldGVycyBoYXZlIGJlZW4gaW50cm9kdWNlZDogPHN0cm9uZz5tYXhfd2lkdGg8L3N0cm9uZz4gYW5kIDxzdHJvbmc+bWF4X2hlaWdodDwvc3Ryb25nPiB3aGljaCBjYW4gYmUgdXNlZCB0byBzZXQgYSBtYXhpbXVtIHNpemUgZm9yIGltYWdlcy4uPC9wPg0KPGRpdiBzdHlsZT0mcXVvdDttYXJnaW4tbGVmdDogM2VtOyZxdW90Oz48c3Ryb25nIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7Pk5vdGU6PC9zdHJvbmc+DQo8cD5UaGlzIHRhZyBwYXJzZXMgdGhlIEhUTUwgY29udGVudCBiZXR3ZWVuIHRoZSBzdGFydCBhbmQgZW5kIHRhZ3MgdG8gZmluZCB0aGUgPGltZz4gdGFncy4gIEl0IHRoZW4gd2lsbCBvdXRwdXQgc3ludGFjdGljYWxseSB2YWxpZCBIVE1MIGZvciB0aGUgc3Vic2V0IG9mIGNvZGUgaXQgd2FzIHByb3ZpZGVkLiAgVGhlcmVmb3JlIGl0IGlzIGltcG9ydGFudCB0aGF0IHRoZSBzbmlwcGV0IG9mIEhUTUwgcGFzc2VkIHRvIHRoaXMgdGFnIGJlIGludGFjdCBhbmQgYXMgY2xvc2UgdG8gdmFsaWQgYXMgcG9zc2libGUuICA8c3Ryb25nPlVzZSB3aXRoIGNhdXRpb24uPC9zdHJvbmc+DQo8L2Rpdj4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCBvciBidXkgY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2UgdmlzaXQgY2FsZ3V5JiMwMzk7cw0KbW9kdWxlIGhvbWVwYWdlIGF0IDxhIGhyZWY9Imh0dHA6Ly9jYWxndXkxMDAwLmNvbSI+Y2FsZ3V5MTAwMC5jb208L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciwgY2FsZ3V5MTAwMCwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseS48L2xpPiAgDQo8L3VsPg0KPGgzPlJlcXVpcmVtZW50czwvaDM+DQo8cD5UaGlzIG1vZHVsZSBtYWtlcyBldnRlbnNpdmUgdXNlIG9mIHRoZSBHRCBJbWFnZSBwcm9jZXNzaW5nIGxpYnJhcnkgdG8gZG8gaW1hZ2UgbWFuaXB1bGF0aW9uLiAgQWRkaXRpb25hbGx5LCB0aGUge3NpX2NvbnZlcnR9IHBsdWdpbiBtYWtlcyBleHRlbnNpdmUgdXNlIG9mIHRoZSBzaW1wbGV4bWwgYW5kIFhNTERvbSBjbGFzc2VzIGJ1aWx0IGluIHRvIHBocC4gIFRoZXJlIG1heSBiZSBvdGhlciBhZGRpdGlvbmFsIHJlcXVpcmVtZW50cy4gIElmIHlvdSBhcmUgZXhwZXJpZW5jaW5nIGVycm9ycyB5b3Ugc2hvdWxkIGVuc3VyZSB0aGF0IGVycm9yIHJlcG9ydGluZyBpcyBlbmFibGVkLCBhbmQgdGhhdCB5b3UgaGF2ZSBhbmFseXplZCB5b3VyIGVycm9yIGxvZ3MuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFJvYmVydCBDYW1wYmVsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj48Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZz48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQooYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4NCjxwPkhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZA0KYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlDQppbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TDQpNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gDQpzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4NCjxwPlRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCkZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQpPciByZWFkIGl0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+b25saW5lPC9hPjwvcD4nOw0KJGxhbmdbJ2luZm9fYWxpYXNlcyddID0gJ0FsaWFlcyBjYW4gYmUgdXNlZCB2aWEgdGhlIGFsaWFzMSB0aHJvdWdoIGFsaWFzNSBvcHRpb25zIG9uIHRoZSBTbWFydEltYWdlIHRhZyB0byBjb21iaW5lIG51bWVyb3VzIGZyZXF1ZW50bHkgdXNlZCBvcHRpb25zJzsNCiRsYW5nWydpbmZvX2Nyb3B0b2ZpdF9kZWZhdWx0X2xvYyddID0gJ1NwZWNpZnkgdGhlIGRlZmF1bHQgbG9jYXRpb24gZnJvbSB3aGljaCB0byAmcXVvdDtjcm9wIHRvIGZpdCZxdW90OyB0aGlzIHdpbGwgZWZmZWN0IGFsbCBjcm9wIHRvIGZpdCBvcGVyYXRpb25zIHVubGVzcyB0aGUgbG9jYXRpb24gcGFyYW1ldGVyIG9uIHRoZSBmaWx0ZXJfY3JvcHRvZml0IGF0dHJpYnV0ZSBvdmVycmlkZXMgaXQuICBEZWZhdWx0IGxvY2F0aW9uIGlzICZxdW90O2NlbnRlciZxdW90Oyc7DQokbGFuZ1snaW1hZ2VfdXJsX2hhc2NhY2hlZGlyJ10gPSAnRG9lcyB0aGUgVVJMIGFib3ZlIGFjb3VudCBmb3IgdGhlIGNhY2hlIGRpcmVjdG9yeSAoX1NtYXJ0SW1hZ2UpJzsNCiRsYW5nWydpbWFnZV91cmxfcHJlZml4J10gPSAnSW1hZ2UgVXJsIFByZWZpeCc7DQokbGFuZ1snaW5mb19jYWNoZV9hZ2UnXSA9ICdTcGVjaWZ5IHRoZSBtYXhpbXVtIGFnZSBvZiBhIGZpbGUgKGluIGRheXMpIGJlZm9yZSBpdCB3aWxsIGJlIHJlbW92ZWQgYW5kIGZvcmNlZCB0byByZWdlbmVyYXRlLiAgVGhpcyBpcyB1c2VmdWwgaWYgeW91IGhhdmUgY2hhbmdlZCBzb21lIG9mIHRoZSBwYXJhbWV0ZXJzIHVzZWQgd2hlbiBnZW5lcmF0aW5nIGltYWdlcywgb3IgdG8gY29udHJvbCB0aGUgYW1vdW50IG9mIGRpc2sgc3BhY2UgdXNlZC4gIEVudGVyaW5nIDAgd2lsbCBkaXNhYmxlIGF1dG9tYXRpYyBmaWxlIGRlbGV0aW9uJzsNCiRsYW5nWydpbmZvX2VtYmVkX21vZGUnXSA9ICdUaGlzIHNlbGVjdGlvbiBkZXRlcm1pbmVzIGhvdyB0aGUge3NtYXJ0aW1nfSB0YWcgd2lsbCBnZW5lcmF0ZSBvdXRwdXQuICBJZiAmcXVvdDtub25lJnF1b3Q7IGlzIHNlbGVjdGVkIG5vIGltYWdlIGVtYmVkZGluZyB3aWxsIGJlIHBlcmZvcm1lZC4gIElmICZxdW90O3NtYXJ0JnF1b3Q7IGlzIHNlbGVjdGVkIHRoZW4gdGhlIHN5c3RlbSB3aWxsIGRlY2lkZSBiYXNlZCBvbiB0aGUgaW1hZ2Ugc2l6ZSwgdHlwZSwgYW5kIHRoZSBicm93c2VyIHRoYXQgaXMgcmVxdWVzdGluZyB0aGUgaW1hZ2UuICBPdGhlciBvcHRpb25zIGluY2x1ZGUgYWx3YXlzIGVtYmVkZGluZyBiYXNlZCBvbiB0aGUgaW1hZ2Ugc2l6ZSwgb3IgdGhlIGltYWdlIHR5cGUuJzsNCiRsYW5nWydpbmZvX2VtYmVkX3NpemVsaW1pdCddID0gJ0lmIHRoZSBlbWJlZGRpbmcgb3B0aW9uIGlzIGRldGVybWllZCBieSB0aGUgaW1hZ2Ugc2l6ZSwgc3BlY2lmeSB0aGUgbWF4aW11bSBzaXplIChpbiBraWxvYnl0ZXMpIGZvciBpbWFnZXMgdG8gYmUgZW1iZWRkZWQgKDMyIGlzIHJlY29tbWVuZGVkKS4nOw0KJGxhbmdbJ2luZm9fZW1iZWRfdHlwZXMnXSA9ICdJZiB0aGUgZW1iZWRkaW5nIG9wdGlvbiBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBpbWFnZSB0eXBlLCBzcGVjaWZ5IHRoZSBleHRlbnNpb25zIG9mIHRoZSBmaWxlcyB0aGF0IHNob3VsZCBiZSBlbWJlZGRlZCBoZXJlIHNlcGFyYXRlZCBieSBjb21tYXMuICBUaGlzIG9wdGlvbiBpcyBub3QgY2FzZSBzZW5zaXRpdmUnOw0KJGxhbmdbJ2luZm9faW1hZ2VfdXJsX2hhc2NhY2hlZGlyJ10gPSAnSWYgeW91ciBDRE4gaXMgcG9pbnRpbmcgZGlyZWN0bHkgYXQgdGhlIGltYWdlIGNhY2hlIGRpcmVjdG9yeSB0aGVuIHlvdSBtYXkgd2FudCB0byB0dXJuIHRoaXMgb3B0aW9uIG9uLic7DQokbGFuZ1snaW5mb19pbWFnZV91cmxfcHJlZml4J10gPSAnU3BlY2lmeSB0aGUgVVJMIHRvIHByZWZpeCB0byBhbGwgZ2VuZXJhdGVkIGltYWdlcy4gIEJ5IGRlZmF1bHQgdGhpcyBpcyB0aGUgdXBsb2FkcyBVUkwsIGhvd2V2ZXIgaWYgeW91IGhhdmUgeW91ciBvd24gQ0ROIChvciBtdWx0aXBsZSBkb21haW5zIHBvaW50aW5nIGF0IHRoZSBzYW1lIGRpcmVjdG9yeSkgWW91IG1heSB3YW50IHRvIHNwZWNpZnkgYSBkaWZmZXJlbnQgbmFtZSBoZXJlJzsNCiRsYW5nWydtYXhfY2FjaGVfYWdlJ10gPSAnQW50YWxsIGRhZ2VyICZhcmluZzsgbWVsbG9tbGFncmUgZmlsZXInOw0KJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnQSBzbWFydCBpbWFnZSB0YWcgZ2VuZXJhdGlvbiBtb2R1bGUgZm9yIENNU01TJzsNCiRsYW5nWydtc2dfYWxpYXNlc191cGRhdGVkJ10gPSAnQWxpYXNlciBvcHBkYXRlcnQnOw0KJGxhbmdbJ21zZ19jYWNoZWNsZWFuZWQnXSA9ICdNZWxsb21sYWdlciB0Jm9zbGFzaDttdC4gJWQgZmlsZXIgZmplcm5ldCc7DQokbGFuZ1snbXNnX2NhY2hlcmVtb3ZlZCddID0gJ01lbGxvbWxhZ2VyIGZqZXJuZXQnOw0KJGxhbmdbJ21zZ19wcmVmc3VwZGF0ZWQnXSA9ICdJbm5zdGlsbGluZ2VuZSBvcHBkYXRlcnQnOw0KJGxhbmdbJ25vbmUnXSA9ICdJbmdlbic7DQokbGFuZ1snb3B0aW9ucyddID0gJ1ZhbGcnOw0KJGxhbmdbJ3BhcmFtX2FsaWFzJ10gPSAnVGhlIFNtYXJ0SW1hZ2UgYWRtaW4gcGFuZWwgYWxsb3dzIGNyZWF0aW5nIG51bWVyb3VzIGNvbW1hbmQgYWxpYXMgdG8gY29tYmluZSBhIGZyZXF1ZW50bHkgdXNlZCBwYXR0ZXJuIG9mIGFyZ3VtZW50cyBpbnRvIG9uZSBuYW1lLiAgVG8gdXNlIHRoZXNlIGFsaWFzZXMgdXNlIGFuIGFyZ3VtZW50IG9mIHRoZSBmb3JtIGFsaWFzIyM9YWxpYXNfbmFtZSBpLmU6ICBhbGlhczE9Zm9vIGFsaWFzMj1mb28uJzsNCiRsYW5nWydwYXJhbV9hbHQnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSBhbHQgYXR0cmlidXRlLiAgTm90ZSwgaWYgdGhpcyBpcyBub3Qgc3BlY2lmaWVkIGEgdmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoaXMgYXR0cmlidXRlIHNvIHRoYXQgbW9zdCBnZW5lcmF0ZWQgaW1nIHRhZ3Mgd2lsbCB2YWxpZGF0ZS4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBhdXRvIGNhbGN1bGF0aW9uIHdpdGggdGhlICZxdW90O25vYXV0byZxdW90OyBwYXJhbWV0ZXInOw0KJGxhbmdbJ3BhcmFtX2NsYXNzJ10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIGFsbG93cyBzcGVjaWZ5aW5nIG9uZSBvciBtb3JlIGNsYXNzZXMgdG8gaW5jbHVkZSBvbiB0aGUgdGFnLiAgaS5lOiBjbGFzcz0mcXVvdDtmYW5jeWJveCx0aHVtYm5haWwmcXVvdDsnOw0KJGxhbmdbJ3BhcmFtX2ZpbHRlcl9ibHVyJ10gPSAnKGFueXRoaW5nKSBTcGVjaWZ5IGFueSB2YWx1ZSBmb3IgdGhpcyBwYXJhbWV0ZXIgdG8gYWRkIGEgYmx1ciBmaWx0ZXIgdG8gdGhlIGltYWdlJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfYnJpZ2h0bmVzcyddID0gJyhpbnRlZ2VyKSBJbmNyYXNlIHRoZSBicmlnaHRuZXNzIG9mIHRoZSBwcm9jZXNzZWQgaW1hZ2UgYnkgdGhlIGludGVnZXIgdmFsdWUgc3BlY2lmaWVkJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfY29sb3JpemUnXSA9ICcocixnLGJbLGFscGhhXSkgLSBMaWtlIGZpbHRlcl9ncmF5c2NhbGUgaG93ZXZlciB5b3UgY2FuIHNwZWNpZnkgdGhlIGNvbG9yIGFuZCBhbHBoYSB2YWx1ZSc7DQokbGFuZ1sncGFyYW1fZmlsdGVyX2NvbnRyYXN0J10gPSAnKGludGVnZXIpIENoYW5nZSB0aGUgY29udHJhc3Qgb2YgdGhlIGltYWdlIGJ5IHRoZSBpbnRlZ2VyIHZhbHVlIHNwZWNpZmllZCc7DQokbGFuZ1sncGFyYW1fZmlsdGVyX2Nyb3AnXSA9ICcocGVyY2VudFssaF9hbGlnbix2X2FsaWduXSkgLSBQZXJmb3JtIGNyb3BwaW5nIG9uIHRoZSBpbWFnZSBzcGVjaWZpZWQuIENyb3AgcGFyYW1lZXRlcnMgYXJlIHNwZWNpZmllZCBhcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHBhcmFtZXRlcnMuICBUaGUgZmlyc3QgKHJlcXVpcmVkKSB2YWx1ZSBpcyBhbiBpbnRlZ2VyIHBlcmNlbnRhZ2Ugb2YgdGhlIG9yaWdpbmFsIGltYWdlIHNpemUuICBUaGUgb3B0aW9uYWwgc2Vjb25kIGFuZCB0aGlyZCBwYXJhbWV0ZXJzIGFyZSBvbmUgb2YgbCxjLHIgKGxlZnQsY2VudGVyLHJpZ2h0KSBhbmQgdCxjLGIgKHRvcCxjZW50ZXIsYm90dG9tKSBzcGVjaWZ5aW5nIHdoZXJlIHRoZSBsb2NhdGlvbiB3aXRoaW4gdGhlIHNvdXJjZSBpbWFnZSB0byBjcm9wIGZyb20uICBpLmU6IGNyb3A9MzMsYixyIHRvIGdyYWIgYSBjcm9wIG9mIDMzJSBmcm9tIHRoZSBib3R0b20gcmlnaHQgb2YgdGhlIHNvdXJjZSBpbWFnZS4nOw0KJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jcm9wdG9maXQnXSA9ICcod2lkdGgsaGVpZ2h0Wyxsb2NhdGlvbl0pIC0gUGVyZm9ybSBhIGNyb3B0b2ZpdCBvbiB0aGUgaW1hZ2Ugc3BlY2lmaWVkLiBUaGlzIGF0dGVtcHRzIHRvIHJlc2NhbGUgdGhlIGltYWdlIHRvIHRoZSBkZXN0aW5hdGlvbiBzaXplIHdoaWxlIHJlYXRpbmluZyBhc3BlY3QgcmF0aW8sIHRoZW4gZm9jdXMgb24gdGhlIHNlbGVjdGVkIGFyZWEgb2YgdGhlIHJlc2l6ZWQgaW1hZ2UuICBDcm9wIHRvIGZpdCBwYXJhbWV0ZXJzIGFyZSBzcGVjaWZpZWQgYXMgdGhlIGRlc2lyZWQgd2lkdGggYW5kIGhlaWdodCBmb3IgdGhlIGRlc3RpbmF0aW9uIGltYWdlIGFsb25nIHdpdGggYW4gKG9wdGlvbmFsKSBsb2NhdGlvbiBjb2RlLiAgdmFsaWQgbG9jYXRpb24gY29kZXMgYXJlIHRsLHRjLHRyLGNsLGMsY3IsYmwsYixiciBmb3IgdGhlIDkgcmVsYXRpdmUgcG9zaXRpb25zIHdpdGhpbiB0aGUgaW1hZ2UuICBJZiBhIGxvY2F0aW9uIGlzIG5vdCBzcGVjaWZpZWQgYSBwcmVmZXJlbmNlIHdpbGwgYmUgdXNlZC4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzICZxdW90O2MmcXVvdDsgdG8gY3JvcC10by1maXQgZnJvbSB0aGUgY2VudGVyIG9mIHRoZSBzb3VyY2UgaW1hZ2UuICBBdCBubyB0aW1lIHdpbGwgdGhpcyBmaWx0ZXIgcGVyZm9ybSBhbnkgdXBzY2FsaW5nLic7DQokbGFuZ1sncGFyYW1fZmlsdGVyX2VkZ2VkZXRlY3QnXSA9ICcoYW55dGhpbmcpIEhpbGlnaHQgdGhlIGVkZ2VzIGluIHRoZSBpbWFnZSc7DQokbGFuZ1sncGFyYW1fZmlsdGVyX2VtYm9zcyddID0gJyhhbnl0aGluZykgRW1ib3NzIHRoZSBpbWFnZSc7DQokbGFuZ1sncGFyYW1fZmlsdGVyX2ZsaXAnXSA9ICcobW9kZSkgLSBQZXJmb3JtIGEgZmxpcCBvbiB0aGUgc3BlY2lmaWVkIGltYWdlLiAgU3BlY2lmeSAwIGZvciBob3Jpem9udGFsLCAxIGZvciB2ZXJ0aWNhbCwgYW5kIDIgZm9yIGZsaXAgaW4gYm90aCBkaXJlY3Rpb25zLic7DQokbGFuZ1sncGFyYW1fZmlsdGVyX2dyYXlzY2FsZSddID0gJyhhbnl0aGluZykgQ29udmVydCB0aGUgaW1hZ2UgdG8gZ3JheXNjYWxlJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfbWVhbnJlbW92YWwnXSA9ICcoYW55dGhpbmcpIEF0dGVtcHQgdG8gYWNoaWV2ZSBhICZxdW90O3NrZXRjaHkmcXVvdDsgZWZmZWN0JzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfbmVnYXRlJ10gPSAnKGFueXRoaW5nKSBOZWdhdGUgdGhlIGltYWdlJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfcGl4ZWxhdGUnXSA9ICcoc2l6ZVssYWR2YW5jZWRdKSBQaXhlbGF0ZSB0aGUgaW1hZ2UsIHNwZWNpZnkgYW4gaW50ZWdlciBzaXplIGFuZCBhbiBvcHRpb25hbCBib29sZWFuIChkZWZhdWx0IGlzIGZhbHNlKSB0byBlbmFibGUgYWR2YW5jZWQgcGl4ZWxhdGlvbic7DQokbGFuZ1sncGFyYW1fZmlsdGVyX3Jlc2l6ZSddID0gJ3R5cGUsbnVtYmVyWyxudW1iZXJdIC0gUGVyZm9ybSBhIHJlc2l6ZSBvZiB0aGUgc291cmNlIGltYWdlLiAgVGhlIHJlc2l6ZSBmaWx0ZXIgZG9lcyBub3QgcGVyZm9ybSBhbnkgdXBzY2FsZSBjaGVja2luZy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5wLG51bWJlciAtIFBlcmZvcm0gYSBzaW1wbGUgcmVzY2FsZSB0byBhIGNlcnRhaW4gcGVyY2VudGFnZS4gIGkuZTogIHJlc2l6ZT1wLDUwIHRvIHJlc2l6ZSB0byA1MCUgb2YgdGhlIG9yaWdpbmFsIHNpemUuPC9saT4NCiAgPGxpPncsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCB3aWR0aCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPXcsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIHdpZHRoIG9mIDgwIHBpeGVscy48L2xpPg0KICA8bGk+aCxudW1iZXIgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgc3BlY2lmaWVkIGhlaWdodCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPWgsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIGhlaWdodCBvZiA4MCBwaXhlbHMuPC9saT4NCiAgPGxpPmUsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSByZXNpemluZyB0aGUgbGFyZ2VzdCBlZGdlIHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUgKHdoaWxlIHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiBpLmU6IHJlc2l6ZT1lLDEwMCB0byBjcmVhdGUgYSB0aHVtYm5haWwgd2hvcyBsYXJnZXN0IGVkZ2UgaXMgMTAwIHBpeGVscy4NCiAgPGxpPmMseCx5IC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIGN1c3RvbSBzaXplICh3aXRob3V0IHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgaS5lOiBmaWx0ZXJfcmVzaXplPWMsNTAsNzUgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHRoYXQgaXMgNTB4NzUgcGl4ZWxzLjwvbGk+Lg0KPC91bD4nOw0KJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yZXNpemV0b2ZpdCddID0gJyh3aWR0aCxoZWlnaHRbLGNvbG9yWyxhbHBoYV1dKSAtIFBlcmZvcm0gYSByZXNpemUgb24gdGhlIGltYWdlIHNwZWNpZmllZC4gVGhpcyBhdHRlbXB0cyB0byByZXNjYWxlIHRoZSBpbWFnZSB0byB0aGUgZGVzdGluYXRpb24gc2l6ZSB3aGlsZSByZWF0aW5pbmcgYXNwZWN0IHJhdGlvLCB0aGUgaW1hZ2UgaXMgY2VudGVyZWQgaW4gdGhlIGJveCBzcGVjaWZpZWQgKGVpdGhlciBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBkZXBlbmRpbmcgdXBvbiBhc3BlY3QgcmF0aW8gYW5kIHRoZSBkZXN0aW5hdGlvbiBzaXplLCBhbmQgdGhlIGltYWdlIGlzIHN1cnJvdW5kZWQgYnkgdGhlIHN1cHBsaWVkIGNvbG9yLiAgQ29sb3JzIGNhbiBiZSBzcGVjaWZpZWQgYnkgbmFtZSAoc2VlIHRoZSBYMTEgY29sb3IgbmFtZXMpLCBvciBieSAjbm5ubm5uIGhleGFkZWNpbWFsIGZvcm1hdCwgb3IgYXMgcmdiIHZhbHVlcyBzZXBhcmF0ZWQgYnkgYSA6IGkuZTogIGZpbHRlcl9jcm9wdG9maXQ9NjAwLDQwMCwjZmYwMDAwLiAgVGhlIHNwZWNpYWwgY29sb3IgdmFsdWUgJnF1b3Q7dHJhbnNwYXJlbnQmcXVvdDsgY2FuIGJlIHNwZWNpZmllZCB0byBmb3JjZSB0aGUgYmFja2dyb3VuZCB0byBiZSB0cmFuc3BhcmVudC4gICBBbiBhbHBoYSB2YWx1ZSBtYXkgYmUgc3BlY2lmaWVkIGJldHdlZW4gMCBhbmQgMTI3IHRvIHNwZWNpZnkgZGlmZmVyZW50IGRlZ3JlZXMgb2YgdHJhbnNsdWNlbmN5IGZvciB0aGUgYmFja2dyb3VuZC4gICBBdCBubyB0aW1lIHdpbGwgdGhpcyBwbHVnaW4gcGVyZm9ybSBhbnkgdXBzY2FsaW5nLic7DQokbGFuZ1sncGFyYW1fZmlsdGVyX3JvdGF0ZSddID0gJyhhbmdsZSkgU3BlY2lmeSB0aGUgaW50ZWdlciBhbmdsZSAoY291bnRlciBjbG9ja3dpc2UpIHRvIHJvdGF0ZSB0aGUgaW1hZ2UsIFRoZSBpbWFnZSBpcyByb3RhdGVkIGFib3V0IGl0cyBjZW50ZXIuJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfcm91bmRlZGNvcm5lcnMnXSA9ICcocmFkaXVzKSBTcGVjaWZ5IGFuIGludGVnZXIgcmFkaXVzIChpbiBwaXhlbHMpIGZvciByb3VuZGluZyB0aGUgY29ybmVycy4nOw0KJGxhbmdbJ3BhcmFtX2ZpbHRlcl93YXRlcm1hcmsnXSA9ICcoYW55dGhpbmcpLCBTcGVjaWZ5IHRoYXQgdGhlIHdhdGVybWFyayAoYXMgc3BlY2lmaWVkIGluIHRoZSBDR0V4dGVuc2lvbnMgYWRtaW4gcGFuZWwpIHNob3VsZCBiZSBhcHBsaWVkIHRvIHRoZSBpbWFnZSc7DQokbGFuZ1sncGFyYW1faGVpZ2h0J10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIHNwZWNpZnkgdGhlIHZhbHVlIGZvciB0aGUgaGVpZ2h0IGF0dHJpYnV0ZS4gIE5vdGUsIGlmIHRoaXMgaXMgbm90IHNwZWNpZmllZCBhIHZhbHVlIHdpbGwgYmUgYXV0b21hdGljYWxseSBjYWxjdWxhdGVkIGZvciB0aGlzIGF0dHJpYnV0ZSBzbyB0aGF0IG1vc3QgZ2VuZXJhdGVkIGltZyB0YWdzIHdpbGwgdmFsaWRhdGUuICBZb3UgY2FuIG92ZXJyaWRlIHRoaXMgYXV0byBjYWxjdWxhdGlvbiB3aXRoIHRoZSAmcXVvdDtub2F1dG8mcXVvdDsgcGFyYW1ldGVyLiAgVGhpcyBwYXJhbWV0ZXIgd2lsbCBhbHNvIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgJnF1b3Q7d2lkdGgmcXVvdDsgcGFyYW1ldGVyIHRvIHBlcmZvcm0gYSBmaW5hbCByZXNpemluZyBvciBjcm9wdG9maXQgZmlsdGVyICh1bmxlc3MgdGhlICZxdW90O25vYXV0b3NjYWxlJnF1b3Q7IHBhcmFtZXRlciBpcyBhbHNvIHN1cHBsaWVkKSc7DQokbGFuZ1sncGFyYW1faWQnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgYWxsb3dzIHNwZWNpZnlpbmcgYW4gaWQgYXR0cmlidXRlIHRvIGluY2x1ZGUgb24gdGhlIHRhZy4gIGkuZTogaWQ9JnF1b3Q7c29tZXRhZyZxdW90Oyc7DQokbGFuZ1sncGFyYW1fbWF4X2hlaWdodCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUge3NpX2NvbnZlcnR9IHRhZyB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG1heGltdW0gaGVpZ2h0IGZvciB0aGUgY29udmVydGVkIGltYWdlcyc7DQokbGFuZ1sncGFyYW1fbWF4X3dpZHRoJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSB7c2lfY29udmVydH0gdGFnIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbWF4aW11bSB3aWR0aCBmb3IgdGhlIGNvbnZlcnRlZCBpbWFnZXMnOw0KJGxhbmdbJ3BhcmFtX25hbWUnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSBuYW1lIGF0dHJpYnV0ZS4nOw0KJGxhbmdbJ3BhcmFtX25vYXV0byddID0gJ0RvIG5vdCBhdXRvbWF0aWNhbGx5IGNhbGN1YWx0ZSBwYXJhbWV0ZXJzIGZvciB0aGUgaW1nIHRhZy4gIFRoaXMgbWF5IGNhdXNlIHlvdXIgc2l0ZSB0byBmYWlsIHZhbGlkYXRpb24gaWYgc29tZSByZXF1aXJlZCBwYXJhbWV0ZXJzICh3aWR0aCxoZWlnaHQsYWx0KSBhcmUgbm90IHNwZWNpZmllZCc7DQokbGFuZ1sncGFyYW1fbm9hdXRvc2NhbGUnXSA9ICdpZiB3aWR0aCBhbmQgaGVpZ2h0IHBhcmFtZXRlcnMgYXJlIHNwZWNpZmllZCwgdGhpcyBwYXJhbWV0ZXIgd2lsbCBkaXNhYmxlIGF1dG9tYXRpYyBzY2FsaW5nIG9mIHRoZSBpbWFnZS4nOw0KJGxhbmdbJ3BhcmFtX25vYmNhY2hlJ10gPSAnRG8gbm90IGFsbG93IHRoZSByZXNpemVkIGltYWdlIHRvIGNhY2hlIGluIHRoZSBicm93c2VyICh1c2VmdWwgZm9yIGRldmVsb3BtZW50IHB1cnBvc2VzKSB0aGlzIGFkZHMgYSB1bmlxdWUgbnVtYmVyIGFzIGEgcGFyYW1ldGVyIHRvIHRoZSBpbWFnZSB3aGljaCB3aWxsIGZvcmNlIHRoZSBicm93c2VyIG5vdCB0byBjYWNoZSB0aGUgaW1hZ2UuJzsNCiRsYW5nWydwYXJhbV9ub2VtYmVkJ10gPSAnRm9yY2UgdGhlIGltYWdlIHRvIG5vdCBlbWJlZC4gIFJlZ2FyZGxlc3Mgb2Ygc2V0dGluZ3MgaW4gdGhlIGFkbWluIHBhbmVsLCB0aGUgVVJMIGFuZCB0YWcgZ2VuZXJhdGVkIHdpbGwgYmUgdG8gYSBmaWxlIG9uIHRoZSBzZXJ2ZXIuICBObyBlbWJlZGRpbmcgd2lsbCBiZSBwZXJmb3JtZWQnOw0KJGxhbmdbJ3BhcmFtX25vdGltZWNoZWNrJ10gPSAnRGlzYWJsZSB0aW1lIGNoZWNraW5nIG9mIGNhY2hlZCBmaWxlcy4nOw0KJGxhbmdbJ3BhcmFtX25vcmVtb3RlJ10gPSAnRG8gbm90IGFsbG93IHJldHJpZXZpbmcgc291cmNlcyBmcm9tIHJlbW90ZSBVUkxTJzsNCiRsYW5nWydwYXJhbV9ub3JvdGF0ZSddID0gJ0RvIG5vdCBhdHRlbXB0IHRvIHJlYWQgZXhpZiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBmaWxlIGFuZCBjb3JyZWN0IGltYWdlIHJvdGF0aW9uJzsNCiRsYW5nWydwYXJhbV9ub3RhZyddID0gJ0RvIG5vdCBvdXRwdXQgYW4gaW1nIHRhZywgb25seSB0aGUgdXJsIHRvIHRoZSBjYWNoZWQgaW1hZ2UuICBUaGlzIGhhcyBubyBlZmZlY3Qgd2hlbiBTbWFydEltYWdlIGlzIHVzZWQgZnJvbSB3aXRoaW4gYSBzdHlsZXNoZWV0Lic7DQokbGFuZ1sncGFyYW1fb3ZlcndyaXRlJ10gPSAnRGlzYWJsZSBhbGwgY2FjaGluZyBhbmQgZm9yY2UgcmUtY2FsY3VsYXRpb24gb2YgYWxsIGZpbHRlcnMnOw0KJGxhbmdbJ3BhcmFtX3F1YWxpdHknXSA9ICdTcGVjaWZ5IHRoZSBxdWFsaXR5IG9mIHRoZSBvdXRwdXQgaW1hZ2UuICBBIHZhbHVlIGJldHdlZW4gMCBhbmQgMTAwLiAgVGhlIGRlZmF1bHQgdmFsdWUgaWYgbm90IHNwZWNpZmllZCBpcyA3NS4nOw0KJGxhbmdbJ3BhcmFtX3JlbCddID0gJ1VzZWQgd2hlbiBidWlsZGluZyBhbiBpbWFnZSB0YWcgYWxsb3dzIHNwZWNpZnlpbmcgYW4gb3B0aW9uYWwgcmVsIGF0dHJpYnV0ZSAodHlwaWNhbGx5IHVzZWQgd2l0aCBqYXZhc2NyaXB0IHR5cGUgYWxidW1zKS4gaS5lOiByZWw9JnF1b3Q7YWxidW0mcXVvdDsnOw0KJGxhbmdbJ3BhcmFtX3NpbGVudCddID0gJ1NpbGVudGx5IGlnbm9yZSBlcnJvcnMnOw0KJGxhbmdbJ3BhcmFtX3NyYyddID0gJ1NwZWNpZnkgdGhlIHNvdXJjZSBmb3IgdGhlIGltYWdlIHByb2Nlc3NpbmcgKGlmIGFueSkgb3IgdGhlIGdlbmVyYXRlZCBpbWcgdGFnLiAgTm90ZSwgdGhpcyBwYXJhbWV0ZXIgaXMgZmxleGlibGUsIGFuZCB0aGUgbW9kdWxlIHdpbGwgYXR0ZW1wdCBtYW55IG1ldGhvZHMgdG8gZmluZCB0aGUgc291cmNlIGltYWdlIGZpbGUgb24gdGhlIHdlYiBzZXJ2ZXIgYXMgZm9sbG93czoNCjx1bD4NCiAgPGxpPkZpcnN0IGxvb2sgdG8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgc3JjIHZhbHVlIGV4aXN0cyBhcyBhIGZpbGUgb24gdGhlIGZpbGVzeXN0ZW0uPC9saT4NCiAgPGxpPk5leHQsIGNoZWNrIGlmIHRoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yIHRoZSBzcmMgcGFyYW1ldGVyIGlzIGEgVVJMIGFuZCBiZWdpbnMgd2l0aCB0aGUgdXBsb2Fkc191cmwgKGFzIHNwZWNpZmllZCBpbiB0aGUgY29uZmlnLnBocCk8L2xpPg0KICA8bGk+TmV4dCwgY2hlY2sgaWYgdGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgdGhlIHNyYyBwYXJhbWV0ZXIgaXMgYSBVUkwgYW5kIGJlZ2lucyB3aXRoIHRoZSByb290X3VybCAoYXMgc3BlY2lmaWVkIGluIHRoZSBjb25maWcucGhwKTwvbGk+DQogIDxsaT5OZXh0LCBjaGVjayBpZiB0aGUgdmFsdWUgc3BlY2lmaWVkIGZvciB0aGUgc3JjIHBhcmFtZXRlciBpcyBhIFVSTCBhbmQgYmVnaW5zIHdpdGggdGhlIHNzbF91cmwgKGFzIHNwZWNpZmllZCBpbiB0aGUgY29uZmlnLnBocCk8L2xpPg0KPC91bD4NCkl0IGlzIGFsc28gcG9zc2libGUgdG8gc3BsaXQgdGhlIHNyYyBwYXJhbWV0ZXIgaW50byBtdWx0aXBsZSBhcmd1bWVudHMsIHdoaWNoIGlzIHVzZWZ1bCBmb3IgZXhhbXBsZSB3aGVuIHRoZSBwYXRoIHRvIHRoZSBmaWxlLCBhbmQgdGhlIGZpbGVuYW1lIGFyZSBzdG9yZWQgaW4gc2VwYXJhdGUgc21hcnR5IHZhcmlhYmxlcy4gICBZb3UgY2FuIHNwZWNpZnkgdGhlIHNyYyBhcyBzcmMxPVwkdGhlX3BhdGggc3JjMj1cJHRoZV9maWxlbmFtZS4gIFRoZSBzeXN0ZW0gd2lsbCBhdXRvbWF0aWNhbGx5IGFkZCBhIC8gaW4gYmV0d2VlbiBlYWNoIGFyZ3VtZW50LiAgVGhlcmUgaXMgbm8gbGltaXQgdG8gdGhlIG51bWJlciBvZiBzcmMgcGFyYW1ldGVycy4nOw0KJGxhbmdbJ3BhcmFtX3N0eWxlJ10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIGFsbG93cyBzcGVjaWZ5aW5nIGFsdGVybmF0ZSBzdHlsZXMgZm9yIHRoZSB0YWcuICBpLmU6IHN0eWxlPSZxdW90O2JvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyZxdW90Oyc7DQokbGFuZ1sncGFyYW1fdGl0bGUnXSA9ICdTcGVjaWZ5IGFuIG9wdGlvbmFsIHRpdGxlIGF0dHJpYnV0ZSBmb3IgdGhlIGltZyB0YWcuICBpLmU6IHRpdGxlPSZxdW90O1RoaXMgaXMgdGhlIHRvb2x0aXAmcXVvdDsnOw0KJGxhbmdbJ3BhcmFtX3dpZHRoJ10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIHNwZWNpZnkgdGhlIHZhbHVlIGZvciB0aGUgd2lkdGggYXR0cmlidXRlLiAgIE5vdGUsIGlmIHRoaXMgaXMgbm90IHNwZWNpZmllZCBhIHZhbHVlIHdpbGwgYmUgYXV0b21hdGljYWxseSBjYWxjdWxhdGVkIGZvciB0aGlzIGF0dHJpYnV0ZSBzbyB0aGF0IG1vc3QgZ2VuZXJhdGVkIGltZyB0YWdzIHdpbGwgdmFsaWRhdGUuICBZb3UgY2FuIG92ZXJyaWRlIHRoaXMgYXV0byBjYWxjdWxhdGlvbiB3aXRoIHRoZSAmcXVvdDtub2F1dG8mcXVvdDsgcGFyYW1ldGVyLiAgVGhpcyBwYXJhbWV0ZXIgd2lsbCBhbHNvIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgJnF1b3Q7aGVpZ2h0JnF1b3Q7IHBhcmFtZXRlciB0byBwZXJmb3JtIGEgZmluYWwgcmVzaXppbmcgb3IgY3JvcHRvZml0IGZpbHRlciAodW5sZXNzIHRoZSAmcXVvdDtub2F1dG9zY2FsZSZxdW90OyBwYXJhbWV0ZXIgaXMgYWxzbyBzdXBwbGllZCknOw0KJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTW9kdWxlbiBibGUgaW5zdGFsbGVydCc7DQokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0FsbGxlIGRhdGEgdGlsaCZvc2xhc2g7cmVuZGUgZGVubmUgbW9kdWxlbiBlciBmamVybmV0Lic7DQokbGFuZ1sncHJvbXB0X2Nyb3B0b2ZpdF9kZWZhdWx0X2xvYyddID0gJ1N0YW5kYXJkIHV0Z2FuZ3NwdW5rdCBmb3IgJnF1b3Q7Y3JvcCB0byBmaXQmcXVvdDsnOw0KJGxhbmdbJ3Byb21wdF9lbWJlZF9zaXplbGltaXQnXSA9ICdCYXNlcnQgcCZhcmluZzsgYmlsZGUgc3Qmb3NsYXNoO3JyZWxzZSc7DQokbGFuZ1sncHJvbXB0X2VtYmVkX3NtYXJ0bGltaXRlZCddID0gJ1NtYXJ0IG1vZHVzIGJlZ3JlbnNldCB0aWwgYmlsZGUgc3Qmb3NsYXNoO3JyZWxzZSc7DQokbGFuZ1sncHJvbXB0X2VtYmVkX3R5cGUnXSA9ICdCYXNlcnQgcCZhcmluZzsgZmlsdHlwZSc7DQokbGFuZ1sncHJvbXB0X2xvY19ib3R0b21sZWZ0J10gPSAnQm90dG9tIExlZnQgKGJsKSc7DQokbGFuZ1sncHJvbXB0X2xvY19ib3R0b21jZW50ZXInXSA9ICdCb3R0b20gQ2VudGVyIChiYyknOw0KJGxhbmdbJ3Byb21wdF9sb2NfYm90dG9tcmlnaHQnXSA9ICdCb3R0b20gUmlnaHQgKGJyKSc7DQokbGFuZ1sncHJvbXB0X2xvY19jZW50ZXJsZWZ0J10gPSAnQ2VudGVyIExlZnQgKGNsKSc7DQokbGFuZ1sncHJvbXB0X2xvY19jZW50ZXInXSA9ICdDZW50ZXIgKGMpJzsNCiRsYW5nWydwcm9tcHRfbG9jX2NlbnRlcnJpZ2h0J10gPSAnQ2VudGVyIFJpZ2h0IChjbCknOw0KJGxhbmdbJ3Byb21wdF9sb2NfdG9wbGVmdCddID0gJ1RvcCBMZWZ0ICh0bCknOw0KJGxhbmdbJ3Byb21wdF9sb2NfdG9wY2VudGVyJ10gPSAnVG9wIENlbnRlciAodGMpJzsNCiRsYW5nWydwcm9tcHRfbG9jX3RvcHJpZ2h0J10gPSAnVG9wIFJpZ2h0ICh0ciknOw0KJGxhbmdbJ3Jlc2l6aW5nJ10gPSAnU2thbGVyaW5nJzsNCiRsYW5nWydzbWFydCddID0gJ1NtYXJ0JzsNCiRsYW5nWydzdWJtaXQnXSA9ICdMYWdyZSc7DQokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xNzc5Mzg1ODkwLjEzNzQyMzMyMTkuMTM3NDIzMzIxOS4xMzc0MjMzMjE5LjEnOw0KJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTM3NDIzMzIxOS4xLjEudXRtY3NyPWdvb2dsZXx1dG1jY249KG9yZ2FuaWMpfHV0bWNtZD1vcmdhbmljfHV0bWN0cj0obm90IHByb3ZpZGVkKSc7DQokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7DQokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1My4xLjEwLjEzNzQyMzMyMTknOw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FjdF9jYWNoZWNsZWFuZWQnXSA9ICdDYWNoZSBvcGdlc2Nob29uZCc7CiRsYW5nWydhZGRfcm93J10gPSAnUmlqIHRvZXZvZWdlbic7CiRsYW5nWydhbGlhc2VzJ10gPSAnQWxpYXNzZW4nOwokbGFuZ1snYXNrX2NsZWFyX2ltYWdlX2NhY2hlJ10gPSAnV2VldCB1IHpla2VyIGRhdCB1IEFMTEUgYmVzdGFuZGVuIHdpbHQgdmVyd2lqZGVyZW4gdWl0IGRlIGFmYmVlbGRpbmdlbiBidWZmZXI/JzsKJGxhbmdbJ2NsZWFyX2FsbCddID0gJ1NjaG9vbiBhbGxlIGJlc3RhbmRlbiBvcCc7CiRsYW5nWydjbGVhcl9ub3cnXSA9ICdOdSBvcHNjaG9uZW4nOwokbGFuZ1snZGVsZXRlJ10gPSAnVmVyd2lqZGVyZW4nOwokbGFuZ1snZW1iZWRkaW5nJ10gPSAnR2UmZXVtbDttYmVkZGUgYWZiZWVsZGluZ2VuJzsKJGxhbmdbJ2VtYmVkZGluZ19tb2RlJ10gPSAnQWZiZWVsZGluZyBpbnNsdWl0bW9kdXMnOwokbGFuZ1snZW1iZWRfc2l6ZWxpbWl0J10gPSAnSW5zbHVpdGJhcmUgYWZiZWVsZGluZ3Nncm9vdHRlIGxpbWlldCAoa2IpJzsKJGxhbmdbJ2VtYmVkX3R5cGVzJ10gPSAnSW5zbHVpdGJhcmUgYWZiZWVsZGluZyB0eXBlJzsKJGxhbmdbJ2Vycm9yX2FsaWFzX2R1cGxpY2F0ZW5hbWVfYXRyb3cnXSA9ICdEZXplbGZkZSBhbGlhc25hYW0gb3BnZWdldmVuIHZvb3IgZGUgYWxpYXMgb3AgcmlqICVkJzsKJGxhbmdbJ2Vycm9yX2FsaWFzX25vbmFtZV9hdHJvdyddID0gJ0dlZW4gbmFhbSBvcGdlZ2V2ZW4gdm9vciBkZSBhbGlhcyBvcCByaWogJWQnOwokbGFuZ1snZXJyb3JfYWxpYXNfbm9vcHRpb25zX2F0cm93J10gPSAnR2VlbiBvcHRpZXMgb3BnZWdldmVuIHZvb3IgZGUgYWxpYXMgb3AgcmlqICVkJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfYWdlJ10gPSAnTGVlZnRpamRzaW5zdGVsbGluZyBvbmdlbGRpZy4uLiBCZXdlcmtpbmcgbmlldCB1aXRnZXZvZXJkJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0VlbiB2ZXJwbGljaHRlIHBhcmFtZXRlciBpcyBuaWV0IChjb3JyZWN0KSBpbmdldnVsZDogJXMnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmFtJ10gPSAnT25nZWxkaWdlIHBhcmFtZXRlciBpbiBvcHJvZXA6ICVzJzsKJGxhbmdbJ2Vycm9yX3NyY25vdGZvdW5kJ10gPSAnS2FuIGdlZW4gYmVzdGFuZCB2aW5kZW4gaW46ICVzJzsKJGxhbmdbJ2Vycm9yX3JlbW90ZWZpbGUnXSA9ICdQcm9ibGVlbSBtZXQgaGV0IG9udHZhbmdlbiB2YW4gZWVuIGV4dGVybiBiZXN0YW5kIGluOiAlcyc7CiRsYW5nWydlcnJvcl91bmtub3duZmlsdGVyJ10gPSAnU21hcnRJbWFnZSAtIE9uYmVrZW5kIEZpbHRlcjogJXMnOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnQ2FsZ3V5JiMwMzk7cyBTbWFydCBJbWFnZSBUb29sa2l0JzsKJGxhbmdbJ2dlbmVyYWwnXSA9ICdBbGdlbWVlbic7CiRsYW5nWydpbmZvX2FsaWFzZXMnXSA9ICdBbGlhc3NlbiBrdW5uZW4gd29yZGVuIGdlYnJ1aWt0IG1ldCBkZSBhbGlhczEgdG90IGVuIG1ldCBhbGlhczUgb3B0aWVzIGluIGRlIFNtYXJ0SW1hZ2UtdGFnIHZvb3IgdmVyc2NoaWxsZW5kZSByZWdlbG1hdGlnIGdlYnJ1aWt0ZSBvcHRpZXMnOwokbGFuZ1snaW1hZ2VfdXJsX2hhc2NhY2hlZGlyJ10gPSAnSXMgZGUgYm92ZW5zdGFhbmRlIFVSTCBpbiBnZWJydWlrIHZvb3IgZGUgY2FjaGUgZGlyZWN0b3J5IChfU21hcnRJbWFnZSknOwokbGFuZ1snaW1hZ2VfdXJsX3ByZWZpeCddID0gJ0FmYmVlbGRpbmcgVXJsIFByZWZpeCc7CiRsYW5nWydpbmZvX2NhY2hlX2FnZSddID0gJ0dlZWYgZGUgbWF4aW1hbGUgbGVlZnRpamQgb3AgdmFuIGVlbiBiZXN0YW5kIChpbiBkYWdlbikgdm9vcmRhdCBoZXQgbW9ldCB3b3JkZW4gdmVyd2lqZGVyZCBlbiBvcG5pZXV3IGdlZ2VuZXJlZXJkIG1vZXQgd29yZGVuICBEaXQgaXMgaGFuZGlnIGFscyB1IHNvbW1pZ2UgcGFyYW1ldGVycyBoZWVmdCBnZXdpanppZ2Qgdm9vciBoZXQgZ2VuZXJlcmVuIHZhbiBhZmJlZWxkaW5nZW4gb2Ygb20gZGUgZ2VicnVpa3RlIHNjaGlqZnJ1aW10ZSB0ZSBiZWhlcmVuLiAgQWxzIHUgMCBpbnZvZXJ0IGRhbiB6YWwgZGUgYXV0b21hdGlzY2hlIGJlc3RhbmRzZGV0ZWN0aWUgdWl0IHN0YWFuLic7CiRsYW5nWydpbmZvX2VtYmVkX21vZGUnXSA9ICdEZXplIHNlY3RpZSBiZXBhYWxkIGhvZSBkZSB7c21hcnRpbWd9LXRhZyBlZW4gb3V0cHV0IGdlbmVyZWVyZC4gQWxzICYjMDM5O25pZXRzJiMwMzk7IGlzIGdlc2VsZWN0ZWVyZCwgZGFuIHphbCBlciBnZWVuIGFmYmVlbGRpbmcgaW5nZXNsb3RlbiB3b3JkZW4uIEFscyB1ICYjMDM5O3NsaW0mIzAzOTsgc2VsZWN0ZWVydCBkYW4gemFsIGhldCBzeXN0ZWVtIGhldCB6ZWxmIGJlcGFsZW4gYWFuIGRlIGhhbmQgdmFuIGRlIGFmYmVlbGRpbmdzZ3Jvb3R0ZSwgdHlwZSBlbiBkZSBicm93c2VyIGRpZSBkZSBhZmJlZWxkaW5nIGFmYmVlbGRpbmcgb3B2cmFhZ3QuIEFuZGVyZSBvcHRpZXMgenVsbGVuIGFsdGlqZCBkZSBhZmJlZWxkaW5nIGluc2x1aXRlbiBvcCBiYXNpcyB2YW4gZGUgYWZiZWVsZGluZ3Nncm9vdHRlIGVuIGFmYmVlbGRpbmdzdHlwZS4nOwokbGFuZ1snaW5mb19lbWJlZF9zaXplbGltaXQnXSA9ICdBbHMgZGUgaW5zbHVpdGluZ3NvcHRpZSBiZXBhYWx0IHdvcmQgZG9vciBhZmJlZWxkaW5nc2dyb290dGUsIGdlZWYgdmFuIGVlbiBtYXhpbXVtIGJlc3RhbmRzZ3Jvb3R0ZSBvcCAoaW4ga2lsb2J5dGVzKSB2b29yIGFmYmVlbGRpbmdlbiBvbSBkZXplIGluIHRlIHNsdWl0ZW4gKDMyIGlzIGFhbmJldm9sZW4pLic7CiRsYW5nWydpbmZvX2VtYmVkX3R5cGVzJ10gPSAnQWxzIGRlIGluc2x1aXRpbmdzb3B0aWUgYmVwYWFsdCB3b3JkIGRvb3IgaGV0IGFmYmVlbGRpbmdzdHlwZSwgZ2VlZiBkYW4gaGllciBkZSBleHRlbnNpZXMgb3AgdmFuIGJlc3RhbmRlbiBkaWUgaW5nZXNsb3RlbiBtb2dlbiB3b3JkZW4sIGdlc2NoaWVkZW4gZG9vciBjb21tYSYjMDM5O3MuIERlemUgb3B0aWUgaXMgbmlldCBob29mZGxldHRlcmdldm9lbGlnLic7CiRsYW5nWydpbmZvX2ltYWdlX3VybF9oYXNjYWNoZWRpciddID0gJ0FscyB1dyBDRE4gZGlyZWN0IHZlcndpanN0IG5hYXIgZGUgYWZiZWVsZGluZ3NjYWNoZSBkYW4gd2lsdCB1IG1pc3NjaGllbiBkZXplIGZ1bmN0aWUgaW5zY2hha2VsZW4uJzsKJGxhbmdbJ2luZm9faW1hZ2VfdXJsX3ByZWZpeCddID0gJ1NwZWNpZmljZWVyIGRlIFVSTCBtZXQgZWVuIHByZWZpeCB2b29yIGFsbGUgZ2VnZW5lcmVlcmRlIGFmYmVlbGRpbmdlbi4gU3RhbmRhYXJkIGlzIGRpdCBkZSB1cGxvYWRzIFVSTCwgbWFhciBoZXQgbWFnIG9vayB1dyBlaWdlbiBDRE4gemlqbiAob2YgbWVlcmRlcmUgZG9tZWluZW4gZGllIGdlYnJ1aWsgbWFrZW4gdmFuIGRlemVsZmRlIG1hcCkuIFUga3VudCBoaWVyIGVlbiBhbmRlcmUgbmFhbSBvcGdlZ2V2ZW4uJzsKJGxhbmdbJ21heF9jYWNoZV9hZ2UnXSA9ICdNYXhpbXVtIGJlc3RhbmRzbGVlZnRpamQgaW4gY2FjaGUgKGRhZ2VuKSc7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0VlbiBzbGltbWUgYWZiZWVsZGluZ3N0YWcgbW9kdWxlIHZvb3IgQ01TTVMnOwokbGFuZ1snbXNnX2FsaWFzZXNfdXBkYXRlZCddID0gJ0FsaWFzc2VuIGJpamdld2Vya3QnOwokbGFuZ1snbXNnX2NhY2hlY2xlYW5lZCddID0gJ0NhY2hlbWFwIG9wZ2VzY2hvb25kLiAlZCBiZXN0YW5kZW4gdmVyd2lqZGVyZCc7CiRsYW5nWydtc2dfY2FjaGVyZW1vdmVkJ10gPSAnQ2FjaGUgdmVyd2lqZGVyZCc7CiRsYW5nWydtc2dfcHJlZnN1cGRhdGVkJ10gPSAnVm9vcmtldXJlbiBiaWpnZXdlcmt0JzsKJGxhbmdbJ25vbmUnXSA9ICdHZWVuJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICdPcHRpZXMnOwokbGFuZ1sncGFyYW1fYWxpYXMnXSA9ICdIZXQgU21hcnRJbWFnZSBhZG1pbnBhbmVlbCBzdGFhdCB0b2Ugb20gdmVyc2NoaWxsZW5kZSBjb21tYW5kby1hbGlhc3NlbiB0b2UgdGUgd2lqemVuIGFhbiByZWdlbG1hdGlnIGdlYnJ1aWt0ZSBwYXRyb25lbiB2YW4gcmVnZWxzIGluIGVlbiBuYWFtLiBPbSBkZXplIGFsaWFzc2VuIHRlIGdlYnJ1aWtlbiBnZWJydWlrIGVlbiByZWdlbCBpbiBkZSB2b2xnZW5kZSB2b3JtOiBhbGlhcyMjPWFsaWFzX25hbWUuIEJpanZvb3JiZWVsZDogYWxpYXMxPWZvbywgYWxpYXMyPWZvby4nOwokbGFuZ1sncGFyYW1fYWx0J10gPSAnVm9vciBiaWogaGV0IGdlYnJ1aWsgdmFuIGRlIGltZy10YWcgbW9ldCB1IGhpZXIgZGUgd2FhcmRlIHZvb3IgaGV0IGFsdC1hdHRyaWJ1dXQgb3BnZWdldmVuLiAgT3BtZXJraW5nOiBhbHMgdSBoaWVyIGdlZW4gd2FhcmRlIGludm9lcnQgZGFuIHphbCBkZXplIHdhYXJkZSBhdXRvbWF0aXNjaCBiZXJla2VuZCB3b3JkZW4gem9kYXQgZGUgbWVlc3RlIGltZy10YWdzIGp1aXN0IHppam4uICBVIGt1bnQgZGV6ZSBhdXRvbWF0aXNjaGUgYmVyZWtlbmluZyB1aXRzY2hha2VsZW4gbWV0IGRlICZxdW90O25vYXV0byZxdW90OyBwYXJhbWV0ZXInOwokbGFuZ1sncGFyYW1fY2xhc3MnXSA9ICdXb3JkdCBnZWJydWlrdCBiaWogaGV0IGdlbmVyZXJlbiB2YW4gZWVuIGltZy10YWcsIHN0YWF0IHRvZSBvbSBlZW4gb2YgbWVlcmRlcmUgY2xhc3NlcyB0b2UgdGUgdm9lZ2VuIGFhbiBkZSB0YWcuICBiaWp2b29yYmVlbGQ6IGNsYXNzPSZxdW90O2ZhbmN5Ym94IHRodW1ibmFpbCZxdW90Oyc7CiRsYW5nWydwYXJhbV9maWx0ZXJfYmx1ciddID0gJyhpZXRzKSBHZWVmIGVlbiB3YWFyZGUgb3Agdm9vciBkZXplIHBhcmFtZXRlciBvbSBlZW4gYmx1ciBmaWx0ZXIgdG9lIHRlIHZvZWdlbiBhYW4gZGUgYWZiZWVsZGluZyc7CiRsYW5nWydwYXJhbV9maWx0ZXJfYnJpZ2h0bmVzcyddID0gJyhoZWVsIGdldGFsKSBWZXJiZXRlcmQgZGUgaGVsZGVyaGVpZCB2YW4gZGUgYWZiZWVsZGluZyBtZXQgZGUgZ2VoZWxlIHdhYXJkZSBkaWUgd29yZHQgb3BnZWdldmVuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jb2xvcml6ZSddID0gJyhyLGcsYlssYWxwaGFdKSAtIExpamt0IG9wIGhldCBmaWx0ZXIgX2dyZXlzY2FsZSBtYWFyIHUga3VudCBoaWVyIGRlIGtsZXVyIGVuIGRlIGFscGhhd2FhcmRlIG9wZ2VnZXZlbic7CiRsYW5nWydwYXJhbV9maWx0ZXJfY29udHJhc3QnXSA9ICcoaGVlbCBnZXRhbCkgV2lqemlnIGhldCBjb250cmFzdCB2YW4gZGUgYWZiZWVsZGluZyBkb29yIGRlIHdhYXJkZSBtZXQgZWVuIGhlZWwgZ2V0YWwgdGUgd2lqemlnZW4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX2Nyb3AnXSA9ICcocGVyY2VudGFnZVssaF9hbGlnbix2X2FsaWduXSkgLSBWb2VyIGJpanNuaWpkZW4gdWl0IG9wIGRlIG9wZ2VnZXZlbiBhZmJlZWxkaW5nLiBEZSBwYXJhbWV0ZXJzIHZvb3IgaGV0IGJpanNuaWpkZW4gemlqbiBvcGdlZ2V2ZW4gYWxzIGVlbiBrb21tYWdlc2NoZWlkZW4gbGlqc3QuICBEZSBlZXJzdGUgd2FhcmRlIGlzIGVlbiBnZWhlZWwgcGVyY2VudGFnZSB2YW4gZGUgYWZiZWVsZGluZyBvcCBvcmlnaW5lbGUgZ3Jvb3R0ZS4gIERlemUgdHdlZWRlIGVuIGRlcmRlIChvcHRpdGlvbmVsZSkgcGFyYW1ldGVycyB6aWpuOiBsLGMsciAobGlua3MsZ2VjZW50cmVlcmQscmVjaHRzKSBlbiB0LGMsYiAodG9wLGdlY2VudHJlZXJkLGJlbmVkZW4pIG9tIGRlIGxvY2F0aWUgb3AgdGUgZ2VnZXZlbiB2YW5hZiB3YWFyIGVyIGJpamdlc25lZGVuIG1vZXQgd29yZGVuLiAgYmlqdm9vcmJlZWxkOiBjcm9wPTMzLGIsciBvbSBlZW4ga25pcHNlbCB0ZSBuZW1lbiB2YW4gMzMlIHZhbmFmIGRlIHJlY2h0ZXIgb25kZXJrYW50IHZhbiBkZSBicm9uYWZiZWVsZGluZyc7CiRsYW5nWydwYXJhbV9maWx0ZXJfZWRnZWRldGVjdCddID0gJyhpZXRzKSBNYXJrZWVyIGRlIHJhbmRlbiBpbiBkZSBhZmJlZWxkaW5nJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9lbWJvc3MnXSA9ICcoaWV0cykgR2VlZiBkZSBhZmJlZWxkaW5nIHJlbGkmZXVtbDtmJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9mbGlwJ10gPSAnKG1vZGUpIC0gRHJhYWkgZGUgb3BnZWdldmVuIGFmYmVlbGRpbmcuICBHZWVmIDAgb3Agdm9vciBob3Jpem9udGFhbCwgMSB2b29yIHZlcnRpY2FhbCBlbiAyIHZvb3IgYmVpZGUgcmljaHRpbmdlbi4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX2dyYXlzY2FsZSddID0gJyhpZXRzKSBDb252ZXJ0ZWVyIGRlIGFmYmVlbGRpbmcgbmFhciBncmlqc3dhYXJkZW4nOwokbGFuZ1sncGFyYW1fZmlsdGVyX21lYW5yZW1vdmFsJ10gPSAnKGlldHMpIEJlZG9lbGQgdm9vciBlZW4gJnF1b3Q7dGVrZW4mcXVvdDstZWZmZWN0JzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9uZWdhdGUnXSA9ICcoaWV0cykgT250a2VuIGRlIGFmYmVlbGRpbmcnOwokbGFuZ1sncGFyYW1fZmlsdGVyX3BpeGVsYXRlJ10gPSAnKGdyb290dGVbLGdlYXZhbmNlZXJkXSkgUGl4ZWxhdGUgdGhlIGltYWdlLCBzcGVjaWZ5IGFuIGludGVnZXIgc2l6ZSBhbmQgYW4gb3B0aW9uYWwgYm9vbGVhbiAoZGVmYXVsdCBpcyBmYWxzZSkgdG8gZW5hYmxlIGFkdmFuY2VkIHBpeGVsYXRpb24nOwokbGFuZ1sncGFyYW1fZmlsdGVyX3JvdGF0ZSddID0gJyhhbmdsZSxjb2xvcikgR2VlZiBtZXQgZWVuIGdlaGVlbCBnZXRhbCBkZSBkcmFhaWhvZWsgb3AgKGRyYWFpZW4gZ2FhdCBtZXQgZGUga2xvayBtZWUpIG9tIGRlIGFmYmVlbGRpbmcgdGUgZHJhYWllbi4gRGFhcm5hYXN0IG1vZXQgdSBlZW4ga2xldXIgb3BnZWdldmVuIHdhYXJtZWUgZGUgb3ZlcmlnZSBwaXhlbHMgd29yZGVuIG9wZ2V2dWxkLiAgRGUgYWZiZWVsZGluZyBkcmFhaXQgb20gemlqbiBlaWdlbiBtaWRkZW4uJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yb3VuZGVkY29ybmVycyddID0gJyhyYWRpdXMpIFNwZWNpZmljZWVyIGVlbiBoZWVsIGdldGFsIHZvb3IgZGUgc3RyYWFsIChpbiBwaXhlbHMpIHZhbiBkZSBhZmdlcm9uZGUgaG9la2VuLic7CiRsYW5nWydwYXJhbV9maWx0ZXJfd2F0ZXJtYXJrJ10gPSAnKGlldHMpIEdlZWYgZWVuIHdhdGVybWVyayBvcCAoem9hbHMgb3BnZWdldmVuIGluIGRlIENHRXh0ZW50aW9ucyBtb2R1bGUpIGRpZSBtb2V0IHdvcmRlbiB0b2VnZXBhc3Qgb3AgZGUgYWZiZWVsZGluZyc7CiRsYW5nWydwYXJhbV9tYXhfaGVpZ2h0J10gPSAnVmFuIHRvZXBhc3Npbmcgb3AgZGUge3NpX2NvbnZlcnR9IHRhZywgZGV6ZSBwYXJhbWV0ZXIgc3RhYXQgdG9lIG9tIGVlbiBtYXhpbXVtIGhvb2d0ZSBvcCB0ZSBnZXZlbiB2b29yIGdlY29udmVydGVlcmRlIGFmYmVlbGRpbmdlbic7CiRsYW5nWydwYXJhbV9tYXhfd2lkdGgnXSA9ICdWYW4gdG9lcGFzc2luZyBvcCBkZSB7c2lfY29udmVydH0gdGFnLCBkZXplIHBhcmFtZXRlciBzdGFhdCB0b2Ugb20gZWVuIG1heGltdW0gaG9vZ3RlIG9wIHRlIGdldmVuIHZvb3IgZ2Vjb252ZXJ0ZWVyZGUgYWZiZWVsZGluZ2VuJzsKJGxhbmdbJ3BhcmFtX25hbWUnXSA9ICdHZWJydWlrdCBiaWogaGV0IG1ha2VuIHZhbiBkZSBpbWcgdGFnLCBiZW5vZW0gZWVuIHdhYXJkZSB2b29yIGRlIG5hYW0gYXR0cmlidXV0Lic7CiRsYW5nWydwYXJhbV9ub2F1dG8nXSA9ICdCZXJla2VuIG5pZXQgYXV0b21hdGlzY2ggZGUgcGFyYW1hdGVycyB2b29yIGRlIGltZy10YWcuICBEaXQga2FuIGVyIG1vZ2VsaWprIHZvb3Igem9yZ2VuIGRhdCB1dyBzaXRlIG5pZXQganVpc3QgZ2V2YWxpZGVlcmQgd29yZHQgaW5kaWVuIGRlIHZlcmVpc3RlIHBhcmFtZXRlcnMgKHdpZHRoLGhlaWdodCxhbHQpIG5pZXQgemlqbiBvcGdlZ2V2ZW4nOwokbGFuZ1sncGFyYW1fbm9hdXRvc2NhbGUnXSA9ICdpbmRpZW4gZXIgZWVuIGJyZWVkdGUgZW4gaG9vZ3RlIHBhcmFtZXRlciBpcyBvcCBnZWdldmVuLCBkYW4gemFsIGRlemUgcGFyYW1ldGVyIGhldCBhdXRvbWF0aXNjaGUgc2NoYWxlbiB2YW4gZGUgYWZiZWVsZGluZyB1aXRzY2hha2VsZW4uJzsKJGxhbmdbJ3BhcmFtX25vYmNhY2hlJ10gPSAnU3RhIG5pZXQgdG9lIGRhdCBkZSBoZXJzY2hhYWxkZSBhZmJlZWxkaW5nIGluIGRlIGJyb3dzZXIgZ2VjYWNoZWQgd29yZHQgKGhhbmRpZyB2b29yIG9udHdpa2tlbGRvZWxlaW5kZW4pIERpdCB2b2VndCBlZW4gdW5pZWsgbnVtbWVyIGFscyBwYXJhbWV0ZXIgdG9lIGFhbiBkZSBhZmJlZWxkaW5nLic7CiRsYW5nWydwYXJhbV9ub2VtYmVkJ10gPSAnRGV6ZSBhZmJlZWxkaW5nIG1hZyBuaWV0IGluZ2VzbG90ZW4gd29yZGVuLiBPbmdlYWNodCBkZSBpbnN0ZWxsaW5nZW4gaW4gaGV0IGJlaGVlcmRlcnNwYW5lZWwsIGRlIFVSTCBlbiBkZSBnZWdlbmVyZWVyZGUgdGFncyB6dWxsZW4gZGUgYmVzdGFuZGVuIG9wIGRlIHNlcnZlciB3b3JkZW4gb3BnZXJvZXBlbi4gRXIgemFsIGdlZW4gaW5zbHVpdGluZyBwbGFhdHMgdmluZGVuLic7CiRsYW5nWydwYXJhbV9ub3RpbWVjaGVjayddID0gJ1RpamRjb250cm9sZSB2b29yIGdlYnVmZmVyZGUgYmVzdGFuZGVuIHVpdHNjaGFrZWxlbi4nOwokbGFuZ1sncGFyYW1fbm9yZW1vdGUnXSA9ICdFeHRlcm5lIGJyb25uZW4gdm9vciBVUkwmIzAzOTtzIG5pZXQgdG9lc3RhYW4nOwokbGFuZ1sncGFyYW1fbm9yb3RhdGUnXSA9ICdOaWV0IHByb2JlcmVuIG9tIGRlIGV4aWYtaW5mb3JtYXRpZSB0ZSBsZXplbiB2YW4gaGV0IGJlc3RhbmQgb20gdmVydm9sZ2VucyBkZSBhZmJlZWxkaW5nIGp1aXN0IHRlIHJvdGVyZW4nOwokbGFuZ1sncGFyYW1fbm90YWcnXSA9ICdHZWVmIGdlZW4gaW1nLXRhZyBtZWUgaW4gZGUgb3V0cHV0LCBhbGxlZW4gZGUgVVJMIHZhbiBkZSBnZWNhY2hlZGUgYWZiZWVsZGluZy4gRGl0IGhlZWZ0IGdlZW4gZWZmZWN0IHdhbm5lZXIgU21hcnRJbWFnZSB3b3JkdCBnZWJydWlrdCBpbiBlZW4gc3R5bGVzaGVldC4nOwokbGFuZ1sncGFyYW1fb3ZlcndyaXRlJ10gPSAnU2NoYWtlbCBhbGxlIGNhY2hpbmcgdWl0IGVuIGZvcmNlZXIgaGVyYmVyZWtlbmluZyB2b29yIGFsbGUgZmlsdGVycyc7CiRsYW5nWydwYXJhbV9xdWFsaXR5J10gPSAnU3BlY2lmaWNlZXIgZGUga3dhbGl0ZWl0IHZhbiBkZSBvdXRwdXRhZmJlZWxkaW5nLiBVIG1vZXQgZWVuIHdhYXJkZSBpbnZ1bGxlbiB0dXNzZW4gZGUgMCBlbiAxMDAuJzsKJGxhbmdbJ3BhcmFtX3JlbCddID0gJ1VzZWQgd2hlbiBidWlsZGluZyBhbiBpbWFnZSB0YWcgYWxsb3dzIHNwZWNpZnlpbmcgYW4gb3B0aW9uYWwgcmVsIGF0dHJpYnV0ZSAodHlwaWNhbGx5IHVzZWQgd2l0aCBqYXZhc2NyaXB0IHR5cGUgYWxidW1zKS4gaS5lOiByZWw9JnF1b3Q7YWxidW0mcXVvdDsnOwokbGFuZ1sncGFyYW1fc2lsZW50J10gPSAnTmVnZWVyIGZvdXRlbic7CiRsYW5nWydwYXJhbV9zdHlsZSddID0gJ0dlYnJ1aWt0IGJpaiBoZXQgbWFrZW4gdmFuIGRlIGltZyB0YWcsIGdlYnJ1aWt0IHZvb3IgZWVuIGFsdGVybmF0aWV2ZSBzdHlsaW5nLiAgYmlqdi46IHN0eWxlPSZxdW90O2JvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyZxdW90Oyc7CiRsYW5nWydwYXJhbV90aXRsZSddID0gJ0dlZWYgaGV0IG9wdGlvbmVsZSB0aXRlbCBhdHRyaWJ1dXQgb3Agdm9vciBkZSBpbWctdGFnLiAgYmlqdm9vcmJlZWxkOiB0aXRsZT0mcXVvdDtEaXQgaXMgZWVuIHRvb2x0aXAmcXVvdDsnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdNb2R1bGUgZ2UmaXVtbDtuc3RhbGxlZXJkJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdBbGxlIG1ldCBkZXplIG1vZHVsZSBnZWFzc29jaWVlcmRlIGRhdGEgaXMgdmVyd2lqZGVyZCc7CiRsYW5nWydwcm9tcHRfY3JvcHRvZml0X2RlZmF1bHRfbG9jJ10gPSAnU3RhbmRhYXJkIHBsYWF0cyB2b29yICZxdW90O2Nyb3AgdG8gZml0JnF1b3Q7JzsKJGxhbmdbJ3Byb21wdF9lbWJlZF9zaXplbGltaXQnXSA9ICdHZWJhc2VlcmQgb3AgYWZiZWVsZGluZ3Nncm9vdHRlJzsKJGxhbmdbJ3Byb21wdF9lbWJlZF9zbWFydGxpbWl0ZWQnXSA9ICdTbGltbWUgbW9kdXMsIG1hYXIgYmVwZXJrIGRlIGFmYmVlbGRpbmdzZ3Jvb3R0ZSc7CiRsYW5nWydwcm9tcHRfZW1iZWRfdHlwZSddID0gJ0dlYmFzZWVyZCBvcCBhZmJlZWxkaW5nc3R5cGUnOwokbGFuZ1sncHJvbXB0X2xvY19ib3R0b21sZWZ0J10gPSAnQmVuZWRlbiBMaW5rcyAoYmwpJzsKJGxhbmdbJ3Byb21wdF9sb2NfYm90dG9tY2VudGVyJ10gPSAnQmVuZWRlbiBDZW50cmVlciAoYmMpJzsKJGxhbmdbJ3Byb21wdF9sb2NfYm90dG9tcmlnaHQnXSA9ICdCZW5lZGVuIFJlY2h0cyAoYnIpJzsKJGxhbmdbJ3Byb21wdF9sb2NfY2VudGVybGVmdCddID0gJ0NlbnRyZWVyIExpbmtzIChjbCknOwokbGFuZ1sncHJvbXB0X2xvY19jZW50ZXInXSA9ICdDZW50cmVlciAoYyknOwokbGFuZ1sncHJvbXB0X2xvY19jZW50ZXJyaWdodCddID0gJ0NlbnRyZWVyIFJlY2h0cyAoY2wpJzsKJGxhbmdbJ3Byb21wdF9sb2NfdG9wbGVmdCddID0gJ1RvcCBMaW5rcyAodGwpJzsKJGxhbmdbJ3Byb21wdF9sb2NfdG9wY2VudGVyJ10gPSAnVG9wIENlbnRyZWVyICh0YyknOwokbGFuZ1sncHJvbXB0X2xvY190b3ByaWdodCddID0gJ1RvcCBSZWNodHMgKHRyKSc7CiRsYW5nWydyZXNpemluZyddID0gJ0hlcnNjaGFsZW4nOwokbGFuZ1snc21hcnQnXSA9ICdTbGltJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ09wc2xhYW4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My42MDYwMTY0MzQuMTM4NTkxNzEwNy4xMzg1OTE3MTA3LjEzODU5MTcxMDcuMSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEzODU5MTcxMDcuMS4xLnV0bWNjbj0oZGlyZWN0KXx1dG1jc3I9KGRpcmVjdCl8dXRtY21kPShub25lKSc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pt_PT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiRsYW5nWydhY3RfY2FjaGVjbGVhbmVkJ10gPSAnQ2FjaGUgTGltcGEnOw0KJGxhbmdbJ2FkZF9yb3cnXSA9ICdBZGljaW9uYXIgTGluaGEnOw0KJGxhbmdbJ2FsaWFzJ10gPSAnQWxpJmFhY3V0ZTtzJzsNCiRsYW5nWydhbGlhc2VzJ10gPSAnQWxpJmFhY3V0ZTtzJzsNCiRsYW5nWydhc2tfY2xlYXJfaW1hZ2VfY2FjaGUnXSA9ICdSZW1vdmVyIFRPRE9TIG9zIGZpY2hlaXJvcyBkYSBjYWNoZSBkZSBpbWFnZW5zOiB0ZW0gYSBjZXJ0ZXphPyc7DQokbGFuZ1snY2xlYXJfYWxsJ10gPSAnTGltcGFyIHRvZG9zIG9zIGZpY2hlaXJvcyc7DQokbGFuZ1snY2xlYXJfbm93J10gPSAnTGltcGFyIEltZWRpYXRhbWVudGUnOw0KJGxhbmdbJ2RlbGV0ZSddID0gJ0FwYWdhcic7DQokbGFuZ1snZW1iZWRkaW5nJ10gPSAnSW1hZ2VucyBFbWJlYmlkYXMnOw0KJGxhbmdbJ2VtYmVkZGluZ19tb2RlJ10gPSAnTW9kbyBkZSBJbWFnZW0gRW1iZWJpZGEnOw0KJGxhbmdbJ2VtYmVkX3NpemVsaW1pdCddID0gJ1RhbWFuaG8gbGltaXRlIGRhIGltYWdlbSBhIGVtYmViZXIgKGtiKSc7DQokbGFuZ1snZW1iZWRfdHlwZXMnXSA9ICdUaXBvIGRhIGltYWdlbSBhIGVtYmViZXInOw0KJGxhbmdbJ2Vycm9yX2FsaWFzX2R1cGxpY2F0ZW5hbWVfYXRyb3cnXSA9ICdGb2kgZXNwZWNpZmljYWRvIHVtIGFsaSZhYWN1dGU7cyBkdXBsaWNhZG8gbmEgbGluaGEgJWQnOw0KJGxhbmdbJ2Vycm9yX2FsaWFzX25vbmFtZV9hdHJvdyddID0gJ04mYXRpbGRlO28gZm9pIGVzcGVjaWZpY2FkbyB1bSBub21lIHBhcmEgbyBhbGkmYWFjdXRlO3MgbmEgbGluaGEgJWQnOw0KJGxhbmdbJ2Vycm9yX2FsaWFzX25vb3B0aW9uc19hdHJvdyddID0gJ04mYXRpbGRlO28gZm9yYW0gZXNwZWNpZmljYWRhcyBvcCZjY2VkaWw7Jm90aWxkZTtlcyBwYXJhIG8gYWxpJmFhY3V0ZTtzIG5hIGxpbmhhICVkJzsNCiRsYW5nWydlcnJvcl9pbnZhbGlkX2FnZSddID0gJ1ByZWZlciZlY2lyYztuY2lhIGRlIGlkYWRlIGludiZhYWN1dGU7bGlkYS4uLiBuZW5odW1hIG9wZXJhJmNjZWRpbDsmYXRpbGRlO28gZWZlY3R1YWRhJzsNCiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdVbSBwYXImYWNpcmM7bWV0cm8gcmVxdWVyaWRvIGVzdCZhYWN1dGU7IGVtIGZhbHRhIG91IG4mYXRpbGRlO28gJmVhY3V0ZTsgdiZhYWN1dGU7bGlkbzogJXMnOw0KJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXJhbSddID0gJ1BhciZhY2lyYzttZXRybyBpbnYmYWFjdXRlO2xpZG8gbmEgY2hhbWFkYTogJXMnOw0KJGxhbmdbJ2Vycm9yX3NyY25vdGZvdW5kJ10gPSAnTiZhdGlsZGU7byBmb2kgZW5jb250cmFkbyBuZW5odW0gZmljaGVpcm8gZW06ICVzJzsNCiRsYW5nWydlcnJvcl9yZW1vdGVmaWxlJ10gPSAnUHJvYmxlbWEgbmEgb2J0ZW4mY2NlZGlsOyZhdGlsZGU7byBkZSB1bSBmaWNoZWlybyByZW1vdG8gZW0gICVzJzsNCiRsYW5nWydlcnJvcl91bmtub3duZmlsdGVyJ10gPSAnU21hcnRJbWFnZSAtIEZpbHRybyBEZXNjb25oZWNpZG86ICVzJzsNCiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdDYWxndXlzIFNtYXJ0IEltYWdlIFRvb2xraXQgLSBGZXJyYW1lbnRhcyBkZSBJbWFnZW0nOw0KJGxhbmdbJ2dlbmVyYWwnXSA9ICdHZXJhbCc7DQokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgYSBzaW1wbGUgd2F5IHRvIHByb2Nlc3MsIGFuZCBkaXNwbGF5IGltYWdlcyBvbiB5b3VyIHdlYiBwYWdlLiAgSXQgYWxsb3dzIHNpbXBsZSBpbWFnZSBwcm9jZXNzaW5nLCBhbmQgd2F0ZXJtYXJraW5nLiAgVGhpcyBtb2R1bGUgbWFrZXMgZGlzcGxheWluZyBwcm9jZXNzZWQgaW1hZ2VzIG9uIHlvdXIgd2Vic2l0ZSB0cml2aWFsLiAgSXQgYWxzbyBwcm92aWRlcyBmZWF0dXJlcyB0byBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSByYXRpbmcgb2YgeW91ciB3ZWJzaXRlLCBtYWtpbmcgeW91ciB3ZWJzaXRlIHBvd2VyZnVsIGFuZCBmYXN0IGF0IHRoZSBzYW1lIHRpbWUuPC9wPg0KPGgzPkZlYXR1cmVzPC9oMz4NCjx1bD4NCjxsaT5Qb3dlcmZ1bCwgYnV0IHNpbXBsZSB0byB1c2UgaW1hZ2UgZmlsdGVyaW5nIGFuZCBwcm9jZXNzaW5nLiBGaWx0ZXJpbmcgaW5jbHVkZXM6DQogIDx1bD4NCiAgICA8bGk+Qmx1cjwvbGk+DQogICAgPGxpPkJyaWdodG5lc3M8L2xpPg0KICAgIDxsaT5Db2xvcml6ZTwvbGk+DQogICAgPGxpPkNvbnRyYXN0PC9saT4NCiAgICA8bGk+Q3JvcDwvbGk+DQogICAgPGxpPjxzdHJvbmc+Q3JvcCBUbyBGaXQ8L3N0cm9uZz48L2xpPg0KICAgIDxsaT5FZGdlIERldGVjdGlvbjwvbGk+DQogICAgPGxpPkVtYm9zczwvbGk+IA0KICAgIDxsaT5HcmF5c2NhbGU8L2xpPg0KICAgIDxsaT5NZWFuIFJlbW92YWw8L2xpPg0KICAgIDxsaT5OZWdhdGU8L2xpPg0KICAgIDxsaT5QaXhlbGF0ZTwvbGk+DQogICAgPGxpPlJlc2l6ZTwvbGk+DQogICAgPGxpPlJvdGF0ZTwvbGk+DQogICAgPGxpPlNlbGljdGl2ZSBCbHVyPC9saT4NCiAgICA8bGk+U21vb3RoPC9saT4NCiAgICA8bGk+V2F0ZXJtYXJrPC9saT4NCiAgPC91bD4NCjwvbGk+PGJyLz4NCjxsaT5TbWFydCBkZXRlY3Rpb24gb2YgaW1hZ2VzLiAgU3BlY2lmeSBhYnNvbHV0ZSBVUkxTLCBhYnNvbHV0ZSBwYXRocywgb3IgZmlsZXMgcmVsYXRpdmUgdG8geW91ciByb290IGluc3RhbGxhdGlvbi48L2xpPg0KPGxpPkF1dG9tYXRpYyBkb3dubG9hZGluZywgY2FjaGluZywgcHJvY2Vzc2luZywgYW5kIHJlLWNhY2hpbmcgb2YgaW1hZ2VzIGZyb20gcmVtb3RlIHdlYnNpdGVzLjwvbGk+DQo8bGk+U21hcnQgYXV0b21hdGljIHJlc2l6aW5nIChhdXRvbWF0aWNhbGx5IHJlc2l6ZSB0byBkZXNpcmVkIHdpZHRoIGFuZCBoZWlnaHQgYmVmb3JlIHNlcnZpbmcgdGhlIGltYWdlLi4uIHJlc2l6aW5nIHRvIHdpZHRoIEFORCBoZWlnaHQgZG9lcyBhIGNyb3AgdG8gZml0LiA8ZW0+KGp1c3Qgc3BlY2lmeSBhIHdpZHRoLCBhbmQvb3IgaGVpZ2h0IHBhcmFtZXRlciB0byB0aGUgU21hcnRJbWFnZSB0YWcuKTwvZW0+PC9saT4NCjxsaT5BdXRvbWF0aWNhbGx5IHJlYWRzIGltYWdlIEVYSUYgaW5mb3JtYXRpb24gYW5kIGNvcnJlY3RzIHRoZSBvcmllbnRhdGlvbi48L2xpPg0KPGxpPkltYWdlIGNoYW5nZSBkZXRlY3Rpb24sIGlmIHRoZSBtYXN0ZXIgaW1hZ2UgaXMgY2hhbmdlZCBzY2FsZWQgaW1hZ2VzIHdpbGwgYmUgcmVnZW5lcmF0ZWQuIChzZWUgdGhlIG5vdGltZWNoZWNrIHBhcmFtZXRlciB0byBkaXNhYmxlIHRoaXMgYmVoYXZpb3IpLjwvbGk+DQo8bGk+U21hcnQgYXR0cmlidXRlIGdlbmVyYXRpb24gZm9yIGltYWdlcy48L2xpPg0KPGxpPlByb2Nlc3NlZCBpbWFnZXMgYXJlIGNhY2hlZCBvbiB0aGUgc2VydmVyIGZvciBmYXN0ZXIgc2VydmluZy48L2xJPg0KPGxpPlRoZSBhYmlsaXR5IHRvIHVzZSBhIHNlcGFyYXRlIFVSTCAoQ0ROKSBmb3Igc2VydmluZyBpbWFnZXM8L2xpPg0KPGxpPkltYWdlIHByb2Nlc3NlcyBjYW4gYmUgY29tYmluZWQsIGFuZCBhcmUgZXhlY3V0ZWQgaW4gb3JkZXIuPC9saT4NCjxsaT5Qcm92aWRlcyB0aGUgYWJpbGl0eSB0byBlbWJlZCBpbWFnZXMgZGlyZWN0bHkgaW50byB0aGUgY29udGVudCBvZiB0aGUgd2ViIHBhZ2UgdG8gbWluaW1pemUgc3BhY2UuPC9saT4NCjxsaT5Qcm92aWRlcyB0aGUgYWJpbGl0eSB0byBsaW1pdCBlbWJlZGRpbmcgaW1hZ2VzIHNtYXJ0bHksIG9ubHkgdG8gYnJvd3NlcnMgdGhhdCBhcmUgY2FwYWJsZSBvZiB1bmRlcnN0YW5kaW5nIHRoZW0uPC9saT4NCjxsaT5Db21iaW5lIGNvbW1vbmx5IHVzZWQgYXJndW1lbnRzIGludG8gbmFtZWQgYWxpYXNlcy48L2xpPg0KPGxpPkFsc28gd29ya3Mgd2l0aGluIHN0eWxlc2hlZXRzIHZpYSB0aGUge2Ntc19zdHlsZXNoZWV0fSB0YWcuPC9saT4NCjxsaT5UaGUgYWJpbGl0eSB0byBhdXRvbWF0aWNhbGx5IHByb2Nlc3MgaW1hZ2VzIGluc2lkZSBhIGJsb2NrIG9mIGh0bWwgY29kZSB1c2luZyB0aGUge3NpX2NvbnZlcnR9IGJsb2NrIHRhZy48L2xpPg0KPGxpPk1vcmUuLi48L2xpPg0KPC91bD4NCjxoMz5XaHkgc2hvdWxkIEkgdXNlIGl0PzwvaDM+DQo8cD5UaGVyZSBhcmUgZm91ciB2ZXJ5IGltcG9ydGFudCByZWFzb25zIHRvIHVzZSB0aGlzIHBsdWdpbjo8L3A+DQo8dWw+DQogIDxsaT5QZXJmb3JtYW5jZTogIFVzaW5nIGltYWdlIGVtYmVkZGluZyAoZXZlbiBpZiBubyBvdGhlciBmdW5jdGlvbnMgYXJlIHVzZWQpIHJlc3VsdHMgaW4gZmV3ZXIgcmVxdWVzdHMuICBNb3N0IGJyb3dzZXJzIG9ubHkgcGVyZm9ybSB0d28gdG8gZm91ciBzaW11bHRhbmVvdXMgcmVxdWVzdHMgdG8gdGhlIHNhbWUgZG9tYWluIGF0IHRoZSBzYW1lIHRpbWUuICBGb3Igd2ViIHBhZ2VzIHdpdGggbG90cyBvZiBpbWFnZXMgdGhpcyBjYW4gc2VyaW91c2x5IHNsb3cgZG93biB5b3VyIHNpdGUuPC9saT4NCiAgPGxpPlBlcmZvcm1hbmNlOiAgRXZlbiBpZiBub3QgdXNpbmcgZW1iZWRkaW5nLCBzZW5kaW5nIGxhcmdlIGltYWdlcyB0byB5b3VyIHZpc2l0b3JzLCBhbmQgYXNraW5nIHRoZWlyIGJyb3dzZXIgdG8gc2NhbGUgdGhlIGltYWdlIGlzIHZlcnkgdmVyeSBzbG93LjwvbGk+DQogIDxsaT5TZWN1cml0eTogIFNtYXJ0SW1hZ2UgY2FjaGVzIGl0cyBpbWFnZXMgaW4gYSBzZXBhcmF0ZSBkaXJlY3RvcnksIHRoZXJlYnkgaGlkaW5nIHRoZSBvcmlnaW5hbCAocGVyaGFwcyBjb3B5cmlnaHRlZCkgaW1hZ2VzIGZyb20geW91ciB1c2Vycy4gIElmIGVtYmVkZGluZyBpcyB1c2VkIHRoZXkgY2FudCBldmVuIGZpbmQgdGhlIGNhY2hlZCBsb2NhdGlvbik8L2xpPg0KICA8bGk+U2ltcGxpY2l0eTogIFRoZSBmaWx0ZXJpbmcgY2FwYWJpbGl0aWVzIG9mIFNtYXJ0SW1hZ2UgYWxsb3cgeW91IHRvIGF1dG9tYXRpY2FsbHkgcHJvY2VzcyBpbWFnZXMgZm9yIGNvbnNpc3RlbnQgYW5kIHNlY3VyZSBkaXNwbGF5LCB3aXRob3V0IHNpdGUgZWRpdG9ycyBoYXZpbmcgdG8gcGxheSB3aXRoIHRoZW0uICBUaGV5IGNhbiB1cGxvYWQgbGFyZ2VyIGltYWdlcywgYW5kIHlvdXIgc2l0ZSB3aWxsIGp1c3QgaGFuZGxlIHRoZW0gcHJvcGVybHkuPC9saT4NCjwvdWw+DQo8aDM+SG93IGRvIEkgdXNlIGl0PzwvaDM+DQo8cD5UaGUgc2ltcGxlc3Qgd2F5IHRvIHVzZSB0aGlzIG1vZHVsZSBpcyB0byB1c2UgaXQgaW4gdGhlIHNhbWUgcGxhY2UgeW91IHdvdWxkIHRoZSB7aW1hZ2V9IHRhZy4gIEkuZTogU29tZXRoaW5nIGxpa2UgPGNvZGUgc3R5bGU9JnF1b3Q7Y29sb3I6IGJsdWU7JnF1b3Q7PntTbWFydEltYWdlIHNyYz0mIzAzOTt1cGxvYWRzL2ltYWdlcy9waWN0dXJlLmpwZyYjMDM5O308L2NvZGU+LiAgVGhpcyB3aWxsIGdlbmVyYXRlIHRoZSBpbWFnZSB0YWcgZm9yIHlvdSB3aXRoIG5vIHByb2Nlc3NpbmcuICBBbmQgaWYgcG9zc2libGUsIGVtYmVkIHRoZSBpbWFnZSBkaXJlY3RseSBpbnRvIHlvdXIgaHRtbCBvdXRwdXQuPC9wPg0KPHA+T2Z0ZW4gcGVvcGxlIHdhbnQgdG8gZGlzcGxheSBhIHdhdGVybWFyayBvbiB0aGUgaW1hZ2VzIHRoYXQgdGhleSBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZCB0byBwcmV2ZW50IGltYWdlIHRoZWZ0LiAgVGhlIENHRXh0ZW5zaW9ucyBtb2R1bGUgcHJvdmlkZXMgc2V0dGluZ3MgZm9yIHlvdSB0byBjb25maWd1cmUgd2F0ZXJtYXJraW5nIGFuZCB5b3UgY2FuIGVuYWJsZSB0aGF0IHdpdGggYW55IGltYWdlIHdpdGggYSB0YWcgbGlrZSB0aGlzOiA8Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e1NtYXJ0SW1hZ2Ugc3JjPSYjMDM5O3VwbG9hZHMvaW1hZ2VzL3BpY3R1cmUuanBnJiMwMzk7IGZpbHRlcl93YXRlcm1hcms9MX08L2NvZGU+LiAgVGhpcyB3aWxsIHJlYWQgdGhlIGltYWdlLCBhcHBseSB0aGUgd2F0ZXJtYXJrIGFjY29yZGluZyB0byB0aGUgc2V0dGluZ3MgaW4gQ0dFeHRlbnNpb25zLCBjYWNoZSB0aGUgYWx0ZXJlZCBpbWFnZSwgYW5kIHRoZW4gZW1iZWQgaXQgaW50byB5b3VyIG91dHB1dC48L3A+DQo8cD5BbHNvLCBQaWN0dXJlcyB0YWtlbiBieSBtb2Rlcm4gZGlnaXRhbCBjYW1lcmFzIGFyZSBvZnRlbiB0b28gbGFyZ2UgZm9yIHVzZSBvbiBhIHdlYnNpdGUsIHRoZXJlZm9yZSB0aGV5IG5lZWQgdG8gYmUgc2NhbGVkIGJlZm9yZSBkaXNwbGF5ZWQgb24geW91ciBwYWdlLiAgVGhpcyBjYW4gYmUgZG9uZSBxdWl0ZSBlYXNpbHkgd2l0aCBhIHRhZyBsaWtlOiA8Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e1NtYXJ0SW1hZ2Ugc3JjPSYjMDM5O3VwbG9hZHMvaW1hZ2VzL3BpY3R1cmUuanBnJiMwMzk7IGZpbHRlcl93YXRlcm1hcms9MSBmaWx0ZXJfcmVzaXplPSYjMDM5O3csMzUwJiMwMzk7fTwvY29kZT4uICBBcyB5b3UgbWF5IHRoaW5rLCB0aGUgd2F0ZXJtYXJrIHdpbGwgYmUgYXBwbGllZCB0byB0aGUgaW1hZ2UgYmVmb3JlIGl0IGlzIHJlc2l6ZWQgdG8gYSBtYXhpbXVtIHdpZHRoIG9mIDMwMCBwaXhlbHMgKHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgVGhlbiB0aGUgYWRqdXN0ZWQgaW1hZ2Ugd2lsbCBiZSBjYWNoZWQsIGFuZCBpZiB0aGUgYnJvd3NlciBhbGxvd2VzIHRoZSBpbWFnZSB3aWxsIGJlIGVtYmVkZGVkIGludG8gdGhlIEhUTUwgb3V0cHV0LiAgSWYgZW1iZWRkaW5nIGlzIG5vdCBwb3NzaWJsZSwgdGhlIGltZyB0YWcgd2lsbCBjb250YWluIHRoZSBVUkwgdG8gdGhlIGNhY2hlZCBpbWFnZS48L3A+DQo8cD5Gcm9tIGhlcmUgeW91IGNhbiBjb21iaW5lIHRoZSBvcHRpb25zIGJlbG93IHRvIHBlcmZvcm0gYWxvdCBvZiBkaWZmZXJlbnQgZWZmZWN0cyB0byB5b3VyIGltYWdlcywgYnVpbGQgc2ltcGxlIGdhbGxlcmllcywgYW5kIGltcHJvdmUgeW91ciBzaXRlIHBlcmZvcm1hbmNlIGF0IHRoZSBzYW1lIHRpbWUuICBFbmpveSE8L3A+DQo8aDM+QXV0b21hdGljIGltYWdlIHJlc2l6aW5nPC9oMz4NCiAgPHA+SWYgeW91IHNwZWNpZnkgYSB3aWR0aCwgYW5kL29yIGEgaGVpZ2h0IHBhcmFtZXRlciwgYW5kIGRvIG5vdCBzcGVjaWZ5IHRoZSAmcXVvdDtub2F1dG9zY2FsZSZxdW90OyBwYXJhbWV0ZXIsIHRoZSBtb2R1bGUgd2lsbCBhbmFseXplIHRoZSBmaWx0ZXJzIHlvdSBoYXZlIGFscmVhZHkgc3BlY2lmaWVkLCBhbmQgaWYgdGhlcmUgaXMgbm8gcmVzaXplIGZpbHRlciBhbHJlYWR5IHNwZWNpZmllZCBhdXRvbWF0aWNhbGx5IGFkZCBhIGZpbHRlciB0byByZXNpemUgb3IgY3JvcHRvZml0IHRoZSBpbWFnZSBvbiBvdXRwdXQuICBUaGlzIGlzIHVzZWZ1bCB0byBkbyBhdXRvbWF0aWMgdGh1bWJuYWlsaW5nIG9uIHRoZSBzZXJ2ZXIsIGFuZCBub3QgcmVxdWlyZSB0aGUgYnJvd3NlciB0byByZXNpemUgdGhlIGltYWdlLjwvcD4NCiA8aDM+QSBTaW1wbGUgR2FsbGVyeTwvaDM+DQo8cD5UaGUgY29kZSBiZWxvdyB1c2VzIHRoZSB7U21hcnRJbWFnZX0gbW9kdWxlLCBmYW5jeWJveCwgYW5kIGEgYml0IG9mIHNtYXJ0eSBtYWdpYyB0byBnZW5lcmF0ZSBhIHNpbXBsZSBsaWdodGJveCBzdHlsZSBhbGJvbSBmcm9tIGEgc3ViZGlyZWN0b3J5IG9uIHlvdXIgd2Vic2l0ZSwgd2hpbGUgcHJvY2Vzc2luZyB0aGUgaW1hZ2VzIGZvciB3ZWIgc3RhbmRhcmRzLCBhbmQgY3JlYXRpbmcgdGh1bWJuYWlscy48L3A+DQo8cHJlIHN0eWxlPSZxdW90O2JhY2tncm91bmQtY29sb3I6ICNkZGQ7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyZxdW90Oz48Y29kZT48c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gMTo8L3NwYW4+IDxzY3JpcHQgdHlwZT0mcXVvdDt0ZXh0L2phdmFzY3JpcHQmcXVvdDs+e2xpdGVyYWx9DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gMjo8L3NwYW4+IGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsNCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiAzOjwvc3Bhbj4gIGpRdWVyeSgmIzAzOTthLmZhbmN5Ym94JiMwMzk7KS5mYW5jeWJveCgpOw0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDQ6PC9zcGFuPiB9KTsNCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PiA1Ojwvc3Bhbj4gey9saXRlcmFsfTwvc2NyaXB0Pg0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDY6PC9zcGFuPiB7YXNzaWduIHZhcj0mIzAzOTtmaWxlcyYjMDM5OyB2YWx1ZT0mIzAzOTt1cGxvYWRzL2FsYnVtLyouanBnJiMwMzk7fGdsb2J9DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gNzo8L3NwYW4+IHtpZiBjb3VudCgkZmlsZXMpfQ0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+IDg6PC9zcGFuPiA8ZGl2IHN0eWxlPSZxdW90O3dpZHRoOiAxMDAlOyBoZWlnaHQ6IDE1MHB4OyBvdmVyZmxvdzogYXV0bzsmcXVvdDs+DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4gOTo8L3NwYW4+IHtmb3JlYWNoIGZyb209JGZpbGVzIGl0ZW09JiMwMzk7ZmlsZSYjMDM5O30NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PjEwOjwvc3Bhbj4gIDxhIHJlbD0mIzAzOTtzaW1wbGVfYWxidW0mIzAzOTsgY2xhc3M9ImZhbmN5Ym94IiBocmVmPSI8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij57U21hcnRJbWFnZSBzcmM9JGZpbGUgZmlsdGVyX3JvdGF0ZT05MCBmaWx0ZXJfd2F0ZXJtYXJrPTEgZmlsdGVyX3Jlc2l6ZT0mIzAzOTtoLDUwMCYjMDM5OyBub3RhZz0xIG5vZW1iZWQ9MX08L3NwYW4+JnF1b3Q7Pg0KPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+MTE6PC9zcGFuPiAgPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IGJsdWU7JnF1b3Q7PntTbWFydEltYWdlIHNyYz0kZmlsZSBmaWx0ZXJfcm90YXRlPTkwIGZpbHRlcl9ncmF5c2NhbGU9MSBmaWx0ZXJfd2F0ZXJtYXJrPTEgZmlsdGVyX3Jlc2l6ZT0mIzAzOTtoLDE1MCYjMDM5O308L3NwYW4+DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xMjo8L3NwYW4+ICA8L2E+DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xMzo8L3NwYW4+IHsvZm9yZWFjaH0NCjxzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiByZWQ7JnF1b3Q7PjE0Ojwvc3Bhbj4gPC9kaXY+DQo8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz4xNTo8L3NwYW4+IHsvaWZ9DQo8L2NvZGU+PC9wcmU+PGJyLz4NCjxwPkxldHMgdGFsayBhYm91dCB0aGlzLjwvcD4NCjxwPkxpbmVzIDEgdGhyb3VnaCA1IHV0aWxpemUgalF1ZXJ5IHRvIGNhbGwgZmFuY3lib3ggb24gYW55IGxpbmtzIHRoYXQgaGF2ZSB0aGUgJnF1b3Q7ZmFuY3lib3gmcXVvdDsgY2xhc3MuICBUaGUgZmFuY3lib3ggalF1ZXJ5IHBsdWdpbiBpcyBpbmNsdWRlZCB3aXRoIHRoZSBKUXVlcnlUb29scyBtb2R1bGUuPC9wPg0KPHA+TGluZSA2IHVzZXMgYSBidWlsdCBpbiBwaHAgZnVuY3Rpb24gY2FsbGVkIGdsb2IsIGFuZCBzb21lIHNtYXJ0eSBtYWdpYyB0byBmaW5kIGFsbCBvZiB0aGUgSlBHIGZpbGVzIGluIHRoZSB1cGxvYWRzL2FsYnVtIGRpcmVjdG9yeSBiZWxvdyBvdXIgaW5zdGFsbGF0aW9uIHJvb3QuPC9wPg0KPHA+TGluZSA3IGlzIGEgdGVzdCB0byBzZWUgaWYgYW55IGZpbGVzIHdlcmUgYWN0dWFsbHkgZm91bmQgaW4gdGhlIGFzc2lnbiBsaW5lIHN0YXRlZCBhYm92ZS4gIFRoaXMgaWYgc3RhdGVtZW50IGlzIGNsb3NlZCBvbiBsaW5lIDE1LjwvcD4NCjxwPkxpbmUgOCBvcGVucyB1cCBhIGRpdiB0byBjb250YWluIG91ciBhbGJ1bS4gIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBleGFtcGxlIHRoZSBzdHlsZXMgd2VyZSBpbmNsdWRlZCBpbmxpbmUsIGhvd2V2ZXIgYSBjbGFzcyB0aGF0IHdhcyBkZWZpbmVkIGluIHRoZSBzdHlsZXNoZWV0IHNob3VsZCBiZSB1c2VkIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzLiAgVGhlIGNsb3NpbmcgdGFnIGZvciB0aGlzIGRpdiBpcyBvbiBsaW5lIDE0LCBqdXN0IGJlZm9yZSB0aGUgPGNvZGU+ey9pZn08L2NvZGU+LjwvcD4NCjxwPkxpbmUgOSBiZWdpbnMgYSBsb29wIHRocm91Z2ggYWxsIG9mIHRoZSBmaWxlcyB0aGF0IHdlIGZvdW5kIGluIHRoZSBkaXJlY3RvcnkuICBUaGlzIGxvb3AgaXMgY2xvc2VkIG9uIGxpbmUgMTMuPC9wPjxici8+DQo8cD5MaW5lcyAxMCBhbmQgMTEgYXJlIHRoZSByZWFsIG1hZ2ljLiAgSGVyZSB3ZSBjcmVhdGUgYSBsaW5rIHdpdGggY2xhc3MgJnF1b3Q7ZmFuY3lib3gmcXVvdDsgYW5kIGFkZHMgdGhlIDxjb2RlPnJlbDwvY29kZT4gYXR0cmlidXRlIHNvIHRoYXQgZmFuY3lib3gga25vd3MgdGhhdCBhbGwgb2YgdGhlc2UgaW1hZ2VzIHNob3VsZCBiZSBncm91cGVkIHRvZ2V0aGVyIGFzIG9uZSBhbGJ1bSBhbmQgYWxsb3cgY2xpY2tpbmcgYmV0d2VlbiB0aGUgaW1hZ2VzLiAgVGhlbiBjb21lcyB0aGUgcGFydCB3aGVyZSB3ZSBkZWZpbmUgb3VyIGltYWdlcy4NCjxwPldlIHN1cHBseSB0aGUgJGZpbGUgdmFyaWFibGUgdG8gdGhlIHNyYyBhcmd1bWVudCBvZiB0aGUgPGNvZGU+e1NtYXJ0SW1hZ2V9PC9jb2RlPiB0YWcgc28gdGhhdCBpdCB3aWxsIGdldCB0aGUgbmFtZSBvZiBlYWNoIG1hdGNoZWQganBlZyBhcyB0aGUgbG9vcCBpcyBleGVjdXRlZC48L3A+DQo8cD5UaGUgaW1hZ2VzIEkgd2FzIHRlc3Rpbmcgd2l0aCB3ZXJlIHVwbG9hZGVkIGZyb20gbXkgaXBvZCwgYW5kIGFsbCBzZWVtZWQgdG8gYmUgcm90YXRlZCA5MCBkZWdyZWVzIGNvdW50ZXIgY2xvY2tlaXMuICBTbyB0aGUgZmlyc3QgZmlsdGVyIEkgYWRkZWQgd2FzIHRvIHJvdGF0ZSB0aGUgaW1hZ2UgOTAgZGVncmVlcyBjbG9ja3dpc2UgdmlhIHRoZSA8Y29kZT5maWx0ZXJfcm90YXRlPTkwPC9jb2RlPiBhcmd1bWVudC4gVGhlIGltYWdlcyB0aGVuIG5lZWRlZCB0byBoYXZlIHRoZSB3YXRlcm1hcmsgb24gdGhlbSA8ZW0+KHRoaXMgaXMganVzdCBmb3IgZXhhbXBsZSBwdXJwb3NlcywgSSBkb250IHRoaW5rIGFueWJvZHkgd291bGQgcmVhbGx5IHN0ZWFsIHRoZSBibHVycnkgcGljdHVyZXMgZnJvbSBteSBpcG9kIGZvciBjb21tZXJjaWFsIHB1cnBvc2VzKTwvZW0+LCBzbyBJIGFkZGVkIHRoZSA8Y29kZT5maWx0ZXJfd2F0ZXJtYXJrPTE8L2NvZGU+IHBhcmFtZXRlci4gIEFuZCBmaW5hbGx5LCBiZWNhdXNlIGV2ZW4gdGhlIGlwb2QgdG91Y2ggY2FuIHRha2UgcGljdHVyZXMgdGhhdCBhcmUgdG9vIGJpZyB0byBkaXNwbGF5IG9uIHRoZSBzY3JlZW4gSSB3YW50ZWQgdG8gcmVzaXplIHRoZW0gdG8gYSBtYXhpbXVtIGhlaWdodCBvZiA1MDAgcGl4ZWxzLiAgVGhpcyB3YXMgYWNjb21wbGlzaGVkIHZpYSB0aGUgPGNvZGU+ZmlsdGVyX3Jlc2l6ZT1oLDUwMDwvY29kZT4gYXJndW1lbnQuICBXZSBhZGQgdGhlIDxjb2RlPm5vZW1iZWQ9MTwvY29kZT4gYXJndW1lbnQgYmVjYXVzZSBmYW5jeWJveCBkb2VzIG5vdCB1bmRlcnN0YW5kIGhvdyB0byBkaXNwbGF5IGVtYmVkZGVkIGltYWdlcyBpbiBpdHMgcG9wdXAgd2luZG93LiAgVGhpcyBkZWZpbmVkIHRoZSBpbWFnZSB0aGF0IHdlIHdlcmUgZ29pbmcgdG8gbGluayB0by48L3A+DQo8cD5OZXh0IHdlIG5lZWRlZCB0byBkZWZpbmUgdGhlIHRodW1ibmFpbCBpbWFnZSB0aGF0IHdlIGFyZSBnb2luZyB0byB1c2UgaW4gdGhlIGdhbGxlcnkuICBUaGlzIGNhbGwgdG8gPGNvZGU+e1NtYXJ0SW1hZ2V9PC9jb2RlPiBpcyBhbG1vc3QgaWRlbnRpY2FsIHRvIHRoZSBmaXJzdCBjYWxsLCBleGNlcHQgdGhhdCB3ZSB1c2UgYSBkaWZmZXJlbnQgaGVpZ2h0IHZhbHVlICgxNTAgcGl4ZWxzKSBmb3IgdGhlIHRodW1ibmFpbCwgYW5kIGZvciBraWNrcyBJIGNvbnZlcnRlZCB0aGUgdGh1bWJuYWlsIHRvIGdyYXlzY2FsZSA8c3Ryb25nPmJlZm9yZTwvc3Ryb25nPiBhcHBseWluZyB0aGUgd2F0ZXJtYXJrLiAgSSBhbHNvIHJlbW92ZWQgdGhlIG5vZW1iZWQ9MSBhcmd1bWVudCBzbyB0aGF0IHRoZSBzeXN0ZW0gY291bGQgZW1iZWQgdGhlIGltYWdlIGluIHRoZSBIVE1MIG91dHB1dCBpZiB0aGUgYnJvd3NlciBzdXBwb3J0ZWQgaXQuICBUaGUgc2NyZWVuIGNhcHR1cmUgYmVsb3cgc2hvd3MgdGhlIGVmZmVjdC48L3A+DQo8aW1nIHNyYz0mcXVvdDtkYXRhOmltYWdlL2pwZWc7YmFzZTY0LC85ai80QUFRU2taSlJnQUJBUUVBWUFCZ0FBRC8yd0JEQUFnR0JnY0dCUWdIQndjSkNRZ0tEQlFOREFzTERCa1NFdzhVSFJvZkhoMGFIQndnSkM0bklDSXNJeHdjS0RjcExEQXhORFEwSHljNVBUZ3lQQzR6TkRMLzJ3QkRBUWtKQ1F3TERCZ05EUmd5SVJ3aE1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakwvd0FBUkNBQ2hBZkFEQVNJQUFoRUJBeEVCLzhRQUhBQUFBUVFEQVFBQUFBQUFBQUFBQUFBQUFBUUZCZ2NCQWdNSS84UUFVQkFBQWdFREFnTUVCd1FHQndRSUJRVUFBUUlEQUFRUkJTRUdFakVUUVZGaEJ4UWljWUdSc1NNeW9kRVZNMEpTa3NFV0pUUmljblB3SkZXQzRSYzJRMU5XZzZMeEpqVkVZN0prazdQQzB2L0VBQmdCQVFFQkFRRUFBQUFBQUFBQUFBQUFBQUFCQWdNRS84UUFJeEVCQVFBQ0FnTUFBZ0lEQUFBQUFBQUFBQUVDRVNFeEF4SkJFeUlqUWxGaGtmL2FBQXdEQVFBQ0VRTVJBRDhBdGZXOVZ1Yks3MCt4c2tnOVp2cEdWWkxnbnMwQ2pKeUJ1VDRDdEx2VkxuVExGWTlRdk5NaTFHWitXREljUnVNZ2ROem5mNlYwNGhrMFgxYUtEV3d2WXlNZVJtVnNLdzcrWmZ1bnpxSjNNbDFKd3RJSGt1SnJOTldnV3ltdUFlMGVMbUhYTzVHZWhOQk5MclhOS3NaSGp1dFF0NFhSd2pLNzRJWWpPTWU0ZzF0SHJXbHkzd3NvOVF0bnVXR1JFc2dKTzJkdmhURkZESEp4THhnenhxeDdHTlFXWE8zWkhiOEJUWERFcWNKOEZ1c1lWeGVRSElYQjM1cy9PZ2xiOFM2SkhPME1tcVdxU3E1alpXZkJERFlnK0ZjNTlTdUU0dHNkT1JrOVduczVabTluSkxLUmpCOEtpOXJxZW1XMm44U1dkMkJKY1QzMXdFZ0VSWnBjN0FEQThmbFNxeml1TkwxbmhjNmh6b3cwNTdWcENDUUpTUmhTZTQwRW1tMTNTYmE5OVRtMUcyanVNZ2RtMGdCQlBjZkErK25DcTRza2dqMGU1MGJWdFFlMXVaSlhXZTNOaUhlUXMyenEyTXRuSU9lNnJCdG9SWjJVVURTczZ3eGhESS9VaFJqSitWQTJYZXZKYThTMldrbGNpZENYay9jWS9jSHg1Vy9DajlKWFA5THBOTnlucXk2ZjZ3Qnk3OC9QanI0WTdxaXp4NnZxK21hbHFWcnAwYkM3bkZ6Ynp0Y2Nyb3NSOWdCTWI5RDM3ODFPVnJxTVYxeGRaYWl3WklkUTBvSkV4VTRNbk1TVXozRVlOQXM0YjRwdGRSMHl6Vyt2N1VhbE1HekVDRkpQTVFCanh3QnRUN0hlVzAxeGNXOGN5Tk5iNDdaQjFUSXlNL0NxN3Q3aXp1ZlI3RG8wY2JTYXMvNnFFUXR6cTVmS3ZuR3d4dm5OUGR2Znc2THhOcmE2ZzdxOXpIQTBHSTJidGlJK1U4dUJ1YzkxQklQMDdwUXRvN2s2aGJpR1ZHZEhMWURLcHd4SHVKQXJtZUpORVdLS1E2cmFCSlNRaDdRYi9sOGFoMmdSaDI0TUVpQmdJN3RzTU00SUpJTkxCYnhmbzNqcjdGUDEwbVBZSGRIa2ZqdlFUa0hJeURrR2lrT2lrblFkT0p6bjFXTE9mOEFwZFFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZSbHVEcmZsNUZtRWtZVUtvbVZpUUFQN3JLUHdxVFVWWmRKWnN3YU53cGJhUGZldUxjU3lTQlpFUk9pSXJsU1FBY245Z2RTYWY2S0tpaWpyUlJRRkZId294NVVDRFM5TFRTeGRpT1Y1UFdibDdsdVlBY3BiR1FNZDIxTDZNZVZHRDRVQmsrTkZHRDRHakI4RFFGRkdENEdzNFBnYURHVFJtczRQZ2F4ZytCb0NpaWo0VUJSUjhLUGhRRkZHUEtqSGxRRkZHRDRHakI4RFFGRkdENEdqQjhEUUZGWndmQTFqQjhEUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVlQZ2FQaFFGRkZHQ1RqRzlBVVZua2I5MXZsUnl0KzYzeW9NVVZubGI5MXZsUmcrQitWQmlpakI4S3p5dCs2ZmxRWW9ySlVqcUNQZUtBckhvcFB3b01VVm5sYjkxdmxRVllkVkkrRkJpaXM0UGdmbFFBVDBCUHVGQmlpczhqZnVOOGpSeVA4QXVOOHFERkZaS3NPcWtlOFVjamZ1TjhxREZGWjVHL2NiNVVjai91TjhqUVlvclBJMzdyZktqbGI5MXZsUVlvclBLMzdwK1ZBQlBRRSs0VUdLS3p5dCs2M3lyRkFVVVVVRGJxVEVTeDRKR3g2ZStrWE8zN3pmT2xtcWZyWS84Sit0TitkOFVHNWtZayswM3pySE94L2FiNTFwbmV0U2FEY3lQbjd6Zk0xelozeHN6Zk0wWk5jM29NbVIvd0I5djRqWE15UC9BTjQvek5ZSnJVbnpvTU5KSisrMzhScmk4a20vMmoveEd0MkpwTzIxQmhwNWYrOGYrSTEzNFIxQTZrWTdqMmg5c3lZTEU3Q2tMdHYxeFhIZ2Vkb1dnanh6Q1Mra1FrZEIxTkJNN3gyRjNKN1J3Q05zK1ZjQzdkN0g1MTF2djdaSjhQcFNWajQwRzVkc2ZmYjUwZG8vZXpmT3RNNXJHZkhyUWJGMi9lYjUxb1pIejk5dm1heHpBSEhTdWJNRDMwR1drY2Z0dC9FYTBNci9BTDcvQU1SclJtM3JRbkZCc1paTWdjN2Z4R3VUelNEOXQvNGpRVzNyaTVvTlhta0EybGYrSTA2Y015TStxeWd1N0FRbnFTZjJoVExLZHMwNjhLSE9yVC81UFgvaUZBNE5JMlQ3UjZudnJIYXNQMm0rZEkzdVZEdm54SXJtYnRSM2lnY1JNM1RtYjUxbnRXL2ZiNTAwSFVZMUpIT3VSNG11YjZxbU5uWCtJVUQwWjNEWUxIR091YXdidmw2c2ZuVU4xRGlxMXNjbWFkVngzYzFNNDlJZWx6U2RuNnlBZk5xQ2YzZXNyYnFUemtudXFQM25GRndTUWtoSHVxTlhYRWxzOHFabVRzMzJEODJ3OTlJNU5Sc1pFa2NYMGFoY2tzUEx6OGFDUVcrdTZycWx6TGE2ZElKWm93REp6UHlyR1BNK1BsMXAxZy9TZk5PdDVxMGtUUTRMZGlBRkhtYzVxc0xUaTZiaEpCNnRINjI5eXJPc3pleUQvZS9HbUhVdUplSWJxNmFTU1M1UmdRU2U3STZIcFFYeHhScVY3b2NWcmNXY3N6cVVWbVNZaGxrQnh2dHZtbDNGRnk3ZWp2VVoxTEkvWnFSZ2tGZmJUYk5lZmh4VnhOcU4zSGMzZDllMzB3MjdObDJLZzVIZGo4S3Q1dFJ2TlU5Q21xM1Y3RDJOd1NReWs1eGgwL0dncW1hOHVocTh5aTl1VlJsQkdKbXh0OGFjOU92YmlPL1F0ZTNQSVJnODBySGMvR21KNVErcDI1WWMzUEVSdjFHS2NZbUNUeHR5SFBmZ1p6UUxkZXVydjlKVzBrZDVjc25aNC9YTU53VDRHckQwS0dhNnRyS2RwcHNQR3JIMno0ZStxMDFRbmxnd0NBR0lxenVDcHUwNGV0WE8rRTVDZWJPNFAvT2dsOHp4aUdPRnBDQzU1VkcrNXhucjhLcjdpeTJraTAvVXBVdnJxUDdGOHhpVEFKV1JRTURyakdjNzljVk43bXpudVJic3NUa0pNc2dJSFVqT0tZT0w5TmRyYWVOWXBoUExieW9pSW85dGh5bFYzQlBlZW1LQnI5RGR4SkpmYXJienlTeUV3Q1JTN2xzZHhHNTg2ZXVJN0N3dXRPbnVuRWd2WUxkbGlsRTdyZ0Rmb0RqeDZpbUQwVlc5M1k2enJFTWtiMjg2V1dNU2o3amMzZUtiTlZ0K0pGdG5lNTE3dG9TcEx4cGJnQWp3ejNVRFhwZGxkYXZxTUtHNHVKSTRvSkpHZ2E0ZE8xYktxTWtIb001cDhzMy9BS05tNGp1N3E1Z2dlUldRYzdTdEo3SUpVRTl3T2ZjTVo4YWplZ2F1TksxKzBGeElrY0VzVXFTTzdZQzQ1V0J6OEtjK09MUkxvMmVxMmM0bHQrVHNuTVc0eHpaRGVlYzQrVkJwcVhGa3BkaGJ6eXhZSjVGV1J1WWZIcDE4cWUvU1ZkM0k5SEhDY3l6VFJ5eU1wY3JLUVQ5ajNrSGVvQnlXNGtoY082QlR6TXJzRHlONDV4NUQzVk92U1NESjZOT0Q4a2trcGtucitwb0twdWI2K1ZWWVh0ME45L3QzL091OXRxVjdsVk43Y2tmNTcvblNmVUVUMUl5STJTa25LK0QwTmJSMkY0dW5SNmkxdko2bThuWnJNUjdKWWRSbnhvSDIxMWJVN1FPOXRxVjFFN3FWYmxsSnlwN3R6VGRjMzk2Y2tYdDF6WkhTZHQveG9pbEhZRGZwMXBIZGtOYnRuQjNIWHVvRjFyZGFnQzZTM04ydTNScG4yL0dzVFhsNHVDdDdjK1gyN2ZuU2ZRVlNXNVpaV2s3SUp6UHlBRmdNanBuclc5OHFMSTVoNSt5NWp5bDhaeDU0b085dHFOK2poeGUzSUtuS250VzJQZDMxS1JkU1hzU1gwTnhPZ2ZhV05aWDVZNVIxVWI5RDk0ZThqdXFGcElBdU5zK2RQWEQrcFIyRjhlM2FRV2N3NVprWHc3bUhtcDN4M2pidm9KYmFUM01EUlN0Y1RFZy90U3NmUHhxVmVtYTN1SDRTc2J5MW1sUnUxUldhTnl2VldJNmVkZDdQaHlEVkVpVG5WWmNZWWo5dndPZmRpczhjelQzR2cyL0RyV3J0Y0NOSnUxWmgreVN1QVBFanZvS2E0VTlmSEYyamM5NWNsUFhvUXl0T3h5T2NkUm12VXg2bXFRNFc0V2doMXF3bHVVbldlTzRSMVZtQzRJWUhjWS9uVjMwQlJSUlFOV3Jmcll2OEordE4yYWNkVy9XeGY0VDlhYkdvTWs3MXJ6WXJESEcrRFRGeEp4SEhvTm9za2tMdUh5QXk0d01VRDR6aXVaa3FwWDlLOTdISi9aN1J4MDNMQ2xOaDZXNFRJVjFHekNvVHMwQkpJK0JvTE5MZDlhTXh4MDJxUGFmeGxvdW9SSzZYcUt6ZnNObm1Id3BiK25OTnovYkkva2Z5b0hFbmF1RDBRM1VWMUVKWUpCSWhKQUkyNlZpUTBDVnp2aytOTE9BMkhxeXNla2wzS1ViOTRaNmp5cGoxMStUVGp1d1ZwRVZzSEhzbGdDS2t2REtCSnJlTlJoVmtPQjRiVUQzcUcxNUo4UHBTVW1sVi93RDJ5VDRmU2tob05RYTVUVGlDSjVDQ1FnemdkVFhUdjZWRk9OZFRGcHBndFJLWTN1VHlsaG5PUERieG9HRFdQU1JQYjNVaTJscUJHdTMyM1hQZjBwRkg2VkpTeW1TeWo1TSsxZzc0cUtYMXZEMlRNSCtZSk5Na2lvaWZmR2ZlYUM3ZE40MzBuVTVZNG8zWkpIemtQc0YyOGFrQ3lMSW9aR0RBOUNEWG0rRzRFYjVFcFUrSXF6dUJlSlJOYnpSMzE2QXNTaFkxT2ZuUVdFYTVPYXlraVNJcm9RVllBZ2p2clYrbEFua08xTHVESGVYaU8rTE9lUklBaXAveERKcEJKMHBad1IvMWoxTGJmc3gvK1FvRU05eTNhdnYrMGZyWEF6dTNmVGhQYXFKWC93QVI3dk91WXRvejF6OHFDQmErNS9TOHA3K1ZmcFVZMWpXVTArRXFwQm1ZWVVlRlRUaUMyUmRZbEFIUkY3dktxZzE2WnBOVG15YzRZZ2VWQWludTVaNUdlU1FsajFyZ0pDRDEzcFZZNlpQZnY3SUtvT3JHbiszNGJ0MEE3VExIem9JK2wwVlhCWThnT1N0U2ZUZUsyc2JVMjVnV2ExQTVsVmtCNVQ0MG9UaHV4ZGQ0K3ZoVzAzQ1RXMWxMTmJQekVEbUtONGVGWnl5OVhidytMOG1WM3hERGZUeWFuYytzRkVSVDkxUnNBTytuMjBqa0UwYlhISzBJeHpLaTRKSGhudXFMeHl5SmNNSFhsd1NDbmNLbWR1QklxTUNNRUN0T1Y0dkIzMUtmUnA5TVNMUzlNbXRieklMeXl6OW9wWHZITFV2MGRKbjlDR3NKSVVaek80SEt2S01jMGRRUlV3d3FmMlE1ZlFwckJIL2ZzZjhBMXgwUlY4Mm44aVcwalN4UWhIR1dkOXNIR054bWxDdU9ibDV3V1VuSjVlbEtOVFR0dERsbnhnUmNyYmVSeHZTT0VjLzNRY0FLVGdiRE85QXRuaWdsakwzSWtaWS9iUUkyTXQ1bnVGU3JTdFkxQzM0YWdzckJrdG1lY3pDU1JNcXVEakJKM09kc1kyNjFybzBPbmFUYlI2anFNQ1hEU1k3TzFLOHdPUDJpTzgrL2FwTnhYYmFYcmx2cDV0ZFNndEpvTVJzZ1FxRlhPY0FBYlk4S0NUYVJOZlhIQUthaGV4T05RZTM5dU1ObGNnNHlnN2dSdlNUakRTVTFPUWFmRXBTTmNaNUNRRkJVOVFPNDcvaFdxY1k2VG85dERwY1YzQklxUUJGREJ0Z1BJQ212V09KclM3N1NTMXZTSGxUSmVGQ3JOZ2JaUGRqZjUwRGI2T3JDYlMrSUxwR0VmYVBFNkdEbXc0UU9DR0k2WVB6MzZVbDF5V2U3bmx0b05QbWtjZG9nVmNEYmY2YlVxNEhuczlKdm52NysraVQxaUpvaXhKTGgyd2NIYnhGT1NUaTltdW9OT2pWaXhmTEp1OG96Z25KeHQzWUhrYUN2WHM3YlM5Y2dWclUzVitFUE5JUDFNQUtBNHdSN1RlZlFlZFMyR3dUVmJOOUpFVTBjMTRXajdjcjdJQklJT2V1QVBLbld5NFgxTFZManRncVF4TW5MMmpuYndJeDM5S2UrSU5HL1JIRGQ5ZTIxMUt0eEJiczZka2lvZVlEYkJHNCt0QkhyYjBNMjZ4cXI2cEtjOVNJODkvY1BuU0QwdjZkSHBmQnZEK20yNVl4VzF4MktGdXBDeEVETk1jTjdmUmNzOHVwNmpNN0wwbnZaR0ErR2FkL1NneGw5SDNERHNTeGFSU1NTU1Q5bDQ5YUNCMmQvcGIraXkvMGk0ZFUxT0NjTWlIN3o1Y0VGZmhrZkNtS0hUWTVMS0oxSlZtVUh5cHkxS09IOUR2eUFoeVl5YzV4MXJ0cDl1VFlRbkczTDNEem9HWDFlNmpRcmdPdmlLMHVVQnM4R1Q3Vmo3VVpVZ3JqdnowTldHbkRVYzJqTmNLd0VnT2ZlS2grcHJidlp1Qk1uTXFjd3dPNEhmZWc1OE1SdzV2OEF0V0MvN01lVFBlZVphMjFhSUpaaVJWMkw0NjF3ME80aEVWeUdtNUhiQzlPNy9RcGJxNndMb2lOMnZNL2Jia0gyY1lQZGpyOGFCdm5OcGNOYmVvd1N4dVVXTjBhVHRESkpucXV3d1BMZjMwT1d0eVZsVXF3T0dCR0NwSGlLSWpCQ3RzeVM4a29ZU2xsRytPdXhQUStGT0VrUDZVdFpQVitTWm1PWkpNYjh4OGM3NHgxTkJabm81MXUzaXRJYkc0dUlrZU1oNE9ZNE9DU1N1ZnhIdk5TdmpmVTdLM3RiTFZaQVhnQk1KQ1k1c25CSFh1MmFvYnc3Y2FGYldkcXNlaXlYVnpnTEpOT1ZTTmlPL09jNEh1M3dLbEVXcld1c3ZkMk54cE5vOGNaNW93NkNRRTQyM1B2T052SHBRTVdpOGM2TE5yRmxaTGFYWWtrbVNOQ1FtQXhJQXp2NTFhOVJ2VFlkQVRzNDR0THM0cm1KdGliWkFTZWJBS25IamlwSlFGRkZGQTA2dit0aUhkeW42MDFuNDA2YXgrdGkvd0FKK3ROWjZVR2puQnFyT0xZN2pXWmJ1ZEZra2lqMlJjN0lOaCtQV3JRbHh5Tm53cU5haERIRm9WMDBhY29lUEorWW9LUHU5TmxqY0ZsSThhUXZBUTJNR3BsZmhSTVJqclRQUEd2TWRobWdhTGQ1YmFaSkVZbzQ2RVZaa0VRR254UzlvT1lnYlp5Zm5VRWEzN1Fxd1haVHVlNFZMTkpuYWF3UlMyZXo5bkdUaXBlK0hYSDFtTnVTd09ITS9vWlA4eC9yVGk0ODZidUhCL1V5ZjQyK3RPTGdFSGI4YXJrWmRmWG0wcVVEWUJsT2Zjd3FVY040OVloem5QYS95cU5hK0IraHJueVhQeXFSOE5NUFc0UVJqRDVIbnRRUGQvajF1WFBYYjZVa2FsZC8vYkpQaDlLUm1nNW5yNVZEZU1vbzNFYmxjdXJydjhEVXlZVlgvSEYzSmFLNmtBa3lLd2J3SEsyMUJGTlFSVEdBUjVWSDdxM2pPNFhwV2JqV3BYY3h0SW1PblRGSTU5UUlJRFkzNmVZb05UYnFWSVZjazA4NkhCNm5kbFJKbm5UZGZBMHpRWGg1eElGd282SFBmVGhZVHl5YXBEZ0VnN2RlZ3JQMTEvV1lYYzVxNzdMK3dXMytVdjBGZEdyU3lIOVgyMytVdjBGZFdyVGtUUDVVcjRMMjRuMUlkM1lLZnhGSlpBQUNLWGNJUXNuRTE3SmoyWHRoZy84QUVLQjN2ckR0T2FXSmR4MVVkL25UTTBYS2NkL2hVbHM3dUM5amFTM2NNQXhVK0lOTWVrb3QzZFhuYW5PUHUrV1NhQ3VlTWJnV2wxZXpuYnM0VkkrVlZCWldqNnZxYkFraGM4OGpmSCtkVzU2U28xUnRUUnQyRUM0OStCVmU4TVFGTE9hWURMTytBZklmNk5BN0pIRmJ4aUtKUXFyMHhRWHlOcXkzS28zTzljeTRCMm9mNkxiWm43Uk1iYmpmd3A3am5rdVZWWlF2VWpQWEpxT1BxNjZkQVVtaFBpcHlDQ2ZFVnpzdUpBSkVMQWhBZXBGWW43WGw2TTkrUEgxbDc3YWNUYUY2dklidUpQWmMrMWl0ZEtjcEdJMk9lWGRUVTRTTzMxelJ5Z2JabDYrQnFMWHVpM1duWE1sbzY5bmRSdHlGVDQ3WVBoaXR2T1VEWnMvT3JDMGtjL29jMVVZNXN6UHQvd0FVZFFFOEtjWDIyR3VMYlR5V3dBbzFDSG1PU0FOdWJ6RldOQnBkOXBmb2gxVzF2b1ZpdURJWDVCSXNnd1dqNzFKSGNhQ0NROGhpbXQ1RVU5dEhnZ0FOdmpZSDYwaHRsWkpaYmRZZ29kVkRaSVBUd3g3dXRLWW9wU1F2WjgyUmhlWGJGS0xmVERhcEpQT3dSMlRFU25QdE4zWjhnTjZCWEU2cmFMRGRTaU9PTTg4Yk9jZXpqSkE5dzMrSGpTNWJxMjlabjVXSDN5YytOUjJTUDFobWt1dVdkMlVwbjkxY1l3TTlPcDZWR3A3MitzTHlkWUhWNGd4NWVja0hGQktOWGUyYWFXUVpEQkErVjd4bmNmS25xR2RKSVVhSWhrNWQ1Q05oL3dBK3RRcXdtTjFjb2JvODVaR0JDOUNRUWNWS2t2UnloVWpQZ2lLTmdLSFpWMlpGaXhtOWxSTUNHQzVMZTJOejhLZWVITlhXRFhKQ3FLd0VMY3VUdDFGUks1MUdVb1VrYkI4QWVuaUs3YUJMMnVxNFBzanN6amJPZW0xU2IyNjUrc2trN1hWbzJvUGZBOGlLcXFOZ293QlRocTFnZFMwaWF6OW5NcThwTFp4K0ZOWEMvSXRua1lDZzR5Y0NuMlc3aWpBQmRjOTI5VnlWamNlaTdWWkpTNjMxcmduY0htSkh1eUtSK2xpeWV4NEw0ZnNuWU0wRTNac3c2RWlPck11OVVhQjRZSWlzbHhPeFdOZTRZNnNmSVZYM3BrRGYwZDBydE1Pd3VtNWlCako3TTkxQlU5NHhmVG1EWXh5cjA4alVpNFhzbHV0T2pPZGxjanJVWVpKSnJjeFJSdTdFYktvejMxTCtGM0ZucEI3WnNFU09NQUZoM2Q0Mm9KYTVoZzAva1lBS1Y1QnNPdkthcWJWNDRrdFpsN1Vvd2hiS2pIdEU0cXo3aTFtdXRNTnd2TXNDRlpHZGxJQVVEYy9qVmNhdmJwQkZjckxLcXlzckRsRCs3RzFBaDRTdG9wa3Z6SkdyRkl3VnlPaDM2VXAxN21PbHFnZm1UdFZQSUVHM1hKejFQZlNmaGt6Slk2b1lPVHRERXZMemJqdnBMUE5xQ01UZFBHOGE3c3NhOVBPaXliNGpqSnBndW9wSm9yaHVhTUtFUmsrOE1maFVoNGV0clMyc3A1SmlWeVZPWGt3VzI2RlIxSHdwcjAvVWJaNVpVU1RITmpPVHNjZnUrWFNrNkxLbDdjckxNQVdZRU1CMUhsOUtrMjM1UFhpWW4rNzFGWGlNTnN5d0ZjNGtBNVd3VDVkUjEycEhhYXJjMnFSU2krbTNMS0ZTVTVqSndDVjMyUFRla2thSkVIYVhMQnp5L2YzQUh1N3FTdGFNSi9zeUFHR00vbWFybW12RFdzWE12RUduUXlYYnVHdm9seXpFNUhOdjhNbjVtdlFaNjE1ZjRXQ3J4WG9LQXZuMXVFNEorOTdZMzkxZW9EMU5BVVVVVURUckg2MkwvQ2ZyVFVUVHJySDYyTC9DZnJUVXd4UUl0UldXU3htV0VrU0ViWUdTZktxNzRrMVM4R2t5aFkzNU96d0RHZGh2MzFackRQeHFBY1MyeXRwdDdseWloU2NmSHBRVmFsMWMzSmZMTWVYR1NhUXlYa3BrSUdlYnBpbnEwQ1IyczdrQUsyVlhJd1dIalRWSENyM1piZnN3Y2xnTTcrRlMzVFdHRnp5bU1LTGU1bWloQ2xYVm5HZCtoSGpVaTRhU1QxT1IyUHNGdVZjL2pVZDUxa2taZ05pZHM5d3FiV0Z1TFd5aWhHZGh2NytwcFA4QUxYa3ZPcGVJblhEbi93QW1UL01mNjA0UG1rSERnL3FaUDh4L3JUaTQ4cXJtUVhsdWwxYnlRU1o1SkY1VGpyU2pnNzF1SFdPd3U1VmRReTlrNEdPYlk3ZStzU1lBeWVncmh3YWJxOTE2RyttQ3BBMjhVWWJQS044SDNtZ21kK00za253K2xJenZTMisvdGtudytsSW1vT2JiL09vVHg5RHoyMXN3d0NYNVNEM2pCcWJFVkVlT284NlpieWZ1ellQdXdhQ3BGdGdOVXdRcnVQYTZEQUhpYWJkVVFQZU1VR1FUZ0FkMVBmWnZHMDdySHpFa2d0bW1zeEdOMm5seWNiRHZ6VXQwNmVQRDN5MThjWXdVSFlaS3FQdkE3L0tuN2g2MTVwNWJrOUVYa1gzMHdSNTY3NVltcFp3OWhkT1lramR6dFNNNTVicTJyRWYxZmJmNVNmUVYwYXVka2Y2dnR1bjZwZm9LNnRWWkozL0duYmhUSDZVbUdSbnNmSCs4S2EzSGZTcmhZSCtsc3V3UCt4SEgvd0M0dEF5MjF6Tlkza2trRGxUenQzN0hlcER3NjY4bHc1NnV5ajZtb3FrOFU4a2p3eXBJdk93SlE1M3lkcWxHZ3FGdEZrQjNNaHlQSUQvblFWcDZVVTdUVXJ5TWQ4YS9IMmFyMjB2R3R0SWlTSWUwek4wOTlXVngycXpjU3pSbjdwaVg2VkFiblRQVTE1WThsUVNWQjh4UU5EWDl6SEw5bzJhbU9pYVdkU3MzbktrcXE5UE05S2hpV1V0MWVySHVjdGpIY0JWdGFFSXJQVGpBTURtMk9Lemxma2Vqd1lTMzJ6NmlwYnd5QzVkWExzcXNjYzFTUGhxUzBtamUzblRuNXdSeTh2bDFwOTEvaG0wdWgyc1dFbDhRZGpVZHRiSzQwNmJrNWNNZjJsTldUVGpsbHU3U0Rodk9uMzBsc0hab1RuQ3QzVk52U1BweGg0Z3RicjJSRHFGcUZaOGZkZU1ESHpCcUk2TGFZWXU0KzBPNUpxMitOOU9GNVk2UWVVRVJ1UTJlNVNneWZ3cXN2UGx0YlNyeEhQYnlNeElrVGNucGxoVm84Q0dOdlF2cUpseUU5YWtKNW01dStQdnFEYWJFMXh4azVrUE1RVUJJNzhIWS9HcHp3REMwM29ZMUNOVGt0ZHlBRWp6am9HaDdxSWpGdGJFSCsva2ZnS2oycVBkUGU5bzB6Y3lrTUN4T1BEcCtGU2RkS241ajdjWUhRblAwcEJxV2dYRnlyTEVFWTQzekpnbnYvbFFJYkNkSlFWZmxEamZCTk11cVdLU3JkeVNGUnlTK3dQMmp2OVBHbldYU05Sc0U5WWtXSUZSMUVneVBjTyttcVNVU1EzQW1MTkwyNHk1TzVKUFNnVGN5Mm5ZQUV2bHVWU09vNXUvOEsyZ2ttVWRwMnMyRng3U3YwTkpya3lLNVNLUE12TUFpNDZHbGN4UlVTRkRubFBNZHZHczIvSGJ4NGNYTzhhS2tsYVpRN2tsaU1ibW5qaHNFYXEyQjFRay9NVXhXMmV5VlI1NzFJdUdVSDZTWTlBSXljNTY3aXRPVnU3dFlkdnEzcWtJR1NGVTdLUDUxdEh4SGJ0QVZOdkk4eFAzKzEyMzhzVXh6bjJTQ1Jqdnp2U05XNUVYT1NPdXd4UkQ3ZTZuTmMzVnJjMjhpcGMyejlwRVhQc0U5NGJHK0RTbjBnYWxheDhQYUxmYXBZcmNxODNNOEtQdGtwdmhxanNYTXhWczRIbjFweTlKYWtjR2FDdWRoSUFjOS93Qm5RUUxWOVQwaThSalkyVTF1a2dPQWhBWlI3LzhBbHZTL2htZms0WldJTitzdVpsQkhUWll6VVhXUEpBd1FEMys2cEhwMXJjdzJOcmJ5eVFXcUxMSTZ1RjVtT1ZYSktuWWpBOHFDNFlMZU81NFdTTnlNUFpZeDQrem1xRzFhTHQzYVNhYU5VS01VOFNUanA1YlZQYmFXNWx0cFlSTThpeFd2TWp1TWtaeUQ1YmtlSFNvSEpwOGpLVEoyYXNRTjg3azBDWFFZemIyMm9kbGx5aWNyN2JFNzlQREZKWnJlZHJScHBrTnVqamFVNWJPTnNZRzVwKzBxd0ZySERHcmMvcmpCV0lIUWNySEsvR3RMN1Q1N2lYKzBDUWdZSE4wMjIrbFp0NTA3WVkrdVB2OEE4UmkwampnWjRvb21ZY3h6STRCWnZjZTRId0ZUUGgvaEdQaXBiaWRMdHJVd0ZVdzBlZWJJelhIVDlEakJaN2libWJtMkVaK3BwVGROYzZkeUpZVDNFVVR1VEl5VEZTZHRodDg2MDRuNWZRNHR4R3p2ckJTTWRBSVQ4ZSt1VGVqVzF0OVN0SUJQTE0xMHhpRGxUaFFCbm1ZZE01STc2ajdhenFEanN6cVY0Y2VNNzQrdGQ3Vzl2WUFadlhibFd4OS90V3lQZDRkOUJNckwwYXBwR3RhZmVSM1NUU1IzRWJIQ2xSeWc1eGpKcTBxb0xTTld2cHVKOUxFbDdkU0sxN0NDcG1adHVZZGQrbFg2ZXRBVVVVVURUcTQrMmkvd242MDF0MU5PbXIvcm92OEFDZnJUUFBMSENwWnpqYWdEc0RVSzR1aHhZYWl2UU5IbGNmNjhhMTRxNDhYU1VFTm5HajNMOU9ZbkNqeDg2YmZXZFExYmc1dFR2cEF6VGh5Z1ZRb1ZRUVBxQ2FDRVhGdTdXeW96S01nZE5zVTBYQ1BDQkVHWEJ3VGdZSTY3VktIYnNiZHBHSHRnWlRJLzFtb3hKekdWM2JxeHpXZTd3N3orUERjN3JNZUF5NU9BU0tuU1hNTDdKS3JmOFZRRE9XQTdxMDFKR1V4U2dlMFJ5azFwd1h4dzI0T2lwdjhBOW8zMXB6WTdud3FydUNiNjhrMGRVam1iMkhJTy9qdlUxaTFDNVFEdHZhWG9jamNVRHV3NXRxMDRDY0ZMRWVBSS9FaXRJWmttNVhRN1Z4OUhzM01iTmM3Q1dSZmt4b0p0ZkgvYlpQZVBwU1EwdnVJRExleW5jS0NOL2dLYTlTbkZxamN0QWt2dFN0ckNKNUo1TUtpbG14NENxeDFuamR1STVFc0xTMDdLSU1aREk3WmJsQUk2ZDNXdCtPdFVZV0poRGUxT2VYUGwzMUh1R3JWVGFYdW9NRHpSc3NTanVPUVNmajdOQjJFWmRYWEdmZFRCcU1oYTRNU2hWUkdJQVVZQnFVVHNscEZJUUQycFBMeWtkQjQrN3pxTno1bmxKVUU0OHF6M1hmTCtQQ1l6dWtHUXE3VjJFODhkbklZcFdRcnY3SnJUMWFSNU1jcEg4NmQvMFMwVm82djk1a0xINVZwd08vQzNHT3BtV08wbW5hVWNuc2N4NllIU3A5YjYxSXdIYXB0anVxbk9IM0Z0cmRtejdBU0JXOXgycTRvTFJKR1pCOTVlbm5RT0Vkd2s0eWh6VHR3dC93QlpXYnU5VlA4QS9JdFF1R2Q0Sm1HY0ZXd1JVeDRQbEUydE00UC9BTk1lNysrdEJDTkUwK1RTN0o0SmVYdE8ya1p1WHpZMU9kS3hIcDhEZDVWaWZuVVB2NzVMUjNabEp6Tnk0SGlUaXBaWmN5NmRIL2tEYnpvSzk0cmtFbkU4elo2SW4wcU5YNHlkcWZPSTJ6eERjKzVmcFRUS25OSW0yY2tESGpUcFpOM1J2dG1oMCtLU2FRTjJyZEdBNkR3cnRaNjFjcmF1OXFxdElTQXNiSGwybzFXWkk0eEFxZ2pxRjhLWTRnOFYwcmMyQjE2OUt4anpkdlI1c3JoSjRwZWt2djhBVjU1OU50cHV3YUtRT1ZsVFBkaXRiQjF2Z3ZNUGJCcmxCZHpYRnVlMVpKQXV3QXJhR2FDMlpaMFhra0RxQ21ldTliZVpJYmVMc21Ia0t0ZmlxSzZmUkltdFFHWlFBUm54QUg4NnE3MlRHc21lbzdxdUtlNTdEU25tNUE2eFFoK1h2SkFGQlN5Y00zV2xjZkd6V09TNGxoc29IbWtSZGl4NW1QeUdCOEtkZUI3bHRKOUN1cFhJREZvN3FSaHk1VTdtTWZ6cVIzdXAzVjNxTWx6RlBOQUh4N0VjaHdNREZaNGllVzQ5RitybVZ5N25BeTMrTktDdGhyK29jN01zaXV1VGd1bWUrdTBYRTJvR1ZWS1FGU1J6Zlo0eitOTWZPVzVjWkI1Um5Qald3a0FZQWpjQTlQR2drdHlXdVk1T1pzdVZiQXgwMnFFU1pqZTZpbldYTEVoQ2k1S3NEa1o5MVRMTE5HVzJ4eWcrT0Q0VkhaazdiVUpqSm5rRWhMRUR6cGJydGNjZmE2Y3dIa1QxaHhIa2NwM1hxZkh5TzFKMXM0MllBN0h4cFhLVWVRSkVDVVFZQjhhNWVJT2MxbVQ2NitXLzFuVGVLQkkxeHpad2NtbjdoMWsvU1RiNCt4YjZpbU9Od1VPMk1lRk9tZzUvU0xMak9ZaWVubUswNHBQZDlwY1FjdHVzYk5rZnJISTI3KzZ0QUpBUGI1U09tT3VhNXU3SS9Mc0FlN082MWxaWFZVQXdSbnczRkIzaTVvOEJJMDh5Um40VXU5STREY0ZjUDViQzg0SlAvbDAzd3VDZ0hMN1pPY0grVk9ucEpVRGd6UTR4SExJeGZDcEdoWmllejhQem9LdGdRTklNN2o5bW5hM203RndGQmRzNUJidUoyTzFJTFcxMUNXUm1PbDNNS29Nbm5YZmJ2cFhHUzBweDdJRGJzZWdvSFhTcDU1cjZmbmx5UkNNQmp0ako2Q200R0tLTUhtNTJDKzI3SEdQZFduTjZ2ZW1XS1J1UVF1cEo3OXRxajl0cURNcW00VWNvR3h5Y1pxVzZqV0dIdGxvL1RYWHFjVU1jTW1TaHlHSTNHTnR2S214N3VSMzJjazlkanRTV1M3ZTVQYUhBeUJzS3hHeHlvT05qM2Y2M3FTYTdiOHVXN3FkUktkTFZuaEJKSnlkcWxtbDhOUWE5WTNJbG5hSXE2Z0ZRRDNacUhXTjlIQkFGSXkzajRWTk9HYnFjV1YxTEpidXNIYUpsenN1Y2JiMXB5YlEraTJLS1VUbTllV01uY05GZ0g4YVhhandqcDB0bjZ2RTFyYnlNTUJzTVQzK2RLZEVuWFhkY3ZiU2VROWxib3JSVy9OZ01Ebm1ZK1BkN3FrRnZwRU50S3hNazl3enRrTEkyUXZ1SFFVRmU2VHdPbHRybG5jRFUyWm9MbEdLQzNJNXVWZ2NaejA4NnQzdnBMYlBod2lSQkZPZDhZUHVwVlFGRkZGQTNhb0FBcmtiaFNLZ2VzM2JoaXZON3FtdXV6Q0dOYzV4eU1mbFVBMXdOSHBrMXljZXhIbmZ4NWMwRlE4UVhSdWRadVhVN0tlVmZoVnEzVmlscHdwSHA4WVZUSGFZQ0h1SU9UOFNEVlY2TlpIVjlmdExVZ250NVJ6ZVF6ay9oVnY2dXZyZHNaL2FXTHRGTGN2WEJVQS9IMmFMTHE3VmxxMXc2ZllyOXhCN0pGTXpRTThZWVlESHhOV2ZxSEJGdmNNVEZQS2hYT2M0d2Z3cEphZWowdk1yVFRza1hMdVZJSkhsMHFTYVhQTzUzYUJhYnBKdVp2Yis2TjJJck92V2FycGtjcUFERG41ZEt0U3g0U3NBaEVVczRRSXo4MlZ5MlBoVFBxSENVRTNEWE9zc3hKU1U0T01aQjkxVmxHdlJ4Sm1hOHRpZnZSYzZEekIzL0FBcXhMbUlUYVBMY1JEMm84RnNlWGZWUmNQWEw2VnJsbE1qRUJaZ0c5eE9EVnhzeTJONkhVWnRMazhrcW5vcGJiUHUzb0dtMHVtaGRaQVRna1pBcFp3VE9MRFhyTFRwYzlwSmNTT2hBMlpXeVJqK2RNdHdodEw2VzF5ZnM1T1VlN2I4NmNOQzdTYmpEaDJSZDFodW1WaDRCa1A1VUZzM3NxeExudjYvaFVXMWhqTkp5QVpESXJaOTdFRDZVOTY2N0xDV1Q3eS96Rk1jTXhsa2FWUmtCVnhub1BaMno3aVNhQ25PT24vcldLMkJ6MmE1UGh2OEErMVBQRDFvZzRMdDFjQU5OZmRxYy90QUt5MUYrSlpEZWNUWGZaNWJNblpvRDEyMi9HclZ0TkV0cDdUUzdVODhjRUxsUFl4bmJidzh6VXMyMWpsNjNhRHo4MS9BR2NEbVhLQWp2eFRLMm0zQ3NRRXlmRVZZeThLMnlYdDliTE5NR2pKZGVuY2R4MDhLVmFid25ZM0Z4Mm5yRTVpWmViR1I3TzN1cEpxSmxsY3J1cS90ZE5XMllTU2dHUWRGRytQZlNtNFFpYVpjZElmcWFtdHZ3aGFTdVpqTk9VbGxFY2VDT2c2bnBXeWNKMlUrclh5R2E1NVVqeCt6NCs2cWluYisyTmhxUkFHQ09WeDhnYXR6VExzemFSWTZyRjFhTUNRZmhWZWNhUWlQVlZrakI1QWdRRTkrTnY1VkpPQk5RRXVoVFdya25zV3hrOUFEUVBHdEtrZDRzMFdPU2RBdzkvZlVoOUhrdmFhdGNlSFliZnhpb2pxTTJZRmladmFna0pIK0Uvd0R0VW45SERaMXFjZjhBNlhQL0FLMW9JbnJCTDNxeGdBZ08waitJOXJBL0hOV0V6Q0pKRjVsKzR2S3VSbkdLcjY0NVpkVHVEa0U5dXNYVHdiSit0VDdVWVkwRThySXBkQ1FqNDNBb0txMXVVdnJkd3hQZ052ZFhBWE5zbHE1TGp0VVBOaklCK0ZJdGRtWVhGOU1wWUZGMks5YzkxUUc4dW5hY2UwU3luZHM5YTU1YzMxajFlR1h4WS9sK3BMZUdhUzZKVWtrNzU4S1FlclN2S0FaVGttbHVuM0l1cmRKZjJpdUc5OUUwVEJ3M05qZXVrbW5tdHQ1cDZzTkZES015Uzh6WTZOakZhNmpwNzJlcFdrUWtaMGJHU3h6dm1uSFNXYnN3YzgzeDZVNFhWa1pKVXVEdnk3Z0dpRmtFNFdKVUo2REhTcmR1cHM2Sk9CbmxOdjMrNnFXdDNMU0VFWU9maFZ6VFdNbXBhSmVXU1N0RTh0cVVXVmVxa3IxK2xCR0VRTWVZSGFsV3VyemVqVFZWR01rLy93QjBxaDM0dTRvMFcvYTN1N21UbWpPQ3NneXB4NzZ0dlROY200azlDMnAzc2thUnlDUm95RTZIbFpOL3hvSzVueUlJK1Rvdk56TVc2QUhvSzR4eXJJd1lEQkIySnA0c2JSWjRnU0F5a25JWWVPS2NZOUd0MklMUktBTnhzQlFjYldUdFlJejNjdU1VMXpsb3BKeGtjenlIcDFJL2xVcWkwK0dQb3VCanBqYWtzdkRsdE5QSk9aWmdYSllnRVkrbFN6YmVHZnB0RmhrREkySGNLMkdDQnR2VWxYaHEyemd5VEtldTVINGJWbitqbHBnL2F6NDk0L0txd2krTUVuYnc2VTZhRDdWK3c1aUIyYmRCbndwMEhEbHBqUGJ6bkhka2JmaFhXMzBtQ3dtTWtja2pFakJERVlIVHdIamdVRzU1QTQ1ZVlkK2NaLzEvNzFvWHlwSVVxMiszVTQvMXY4YTZFRmlBRDdQZUNEbnIxcldRTUdIczV5TTV4OGYrVkIwaWN4bkNIZGpndVJ6ZjZIV3BoeEhJVHdsb3pqbVVFTGtFZjNPK29jaFVmWmxTTTVHMndQOEFyTlM3aVovL0FJUzBRZ2s4d0h4OWlnaXF1eXVHRGtNT2hCNmU2bSsvc0JNcGtoQUVneVNnR0ZmM2VCK3RLUXg5bzVHMk90YjU1d1ZCTzQ2MEVNdkpwWU96RXZNbVg1R1R2QUlOTWswbkxDa0ErNkFDU0RuTlQvVWRKZzFPTUpKN0VpYkNWUnY3ajVWRkp1RzVMZVF4dXpIQjJaUnN3OFJ0VXMyNlk1K3NzbjAyeEg3TVkrbEtJbFBObk85TzF0dy9IMmE4enljM2Z1TUNsUTBLM0EvV3krZU1WWE14dkt5cGhUVDNvZDlPdHRNaG5rS0YxeWhZNE8zaFhHYlNiWkdSV21sSE41ak5LYld5aXQxSVdTVGxmY2x0K2c4cUJ6aXVDMDZNWGtqbUI5bVdKK1YxejRFVllPajYzclN3a3oyMFdvUkQ3clJuc3BjWUdCeS9kUGZ2a0dxNnQzQ01DUU4vTDhLbk9nM2I4MjhtQXdJVXQreHQzZTdOQktkTjRnMC9VSkNycWJTNVJnaGh1MUtPR1BRTG5aaWZJbW5xbWkzbGpOd1N5eFNGbkdNWVBUdjkrNHAzb0NpaWlnalhFNnMweWdrOGpXNVhIbnpqUDRFMUJlUDUwc3VHVEVuM3BUZ0RmcWVwK1cxVDdYNWd1b1dzTHFBanhzUTU3am5wK0ZWaDZVNUdTMjA2Qm05cG1MRWVBd2NEOGFDTytqNnhNbXVldG5ZUWxVSGp6TWNmVE5XZXRzSDBhL2pQVkdWdmhrMUZ2UjVZTkhwOXRJdy9YenRQMDZCUnlqOFFhbjBVSVByY0lHZTFqUHpGQXhMUDJ0cmJ1K2VTWmV4Y2o5bHh0ekQ4S2NYak52dytrU2pNa2poRlB2cHFzMUUybjNsc3g5cU05b244eFR2cGg5ZnQ3UW5jdzdON3gzMEdVajlXdHJ0QVFSRGJpUElIei9HbXlmN0hoS054MWRtSHpOUFYwT1RUTlJrd1J6RHFmZUthTlZqeHduQUUvWWt5Y1VGR2FuQzFycVZ4R2RzT1NOL0hjZldyU2p2VGU2SGFOekQ3V0JlVnozUGpwOHh0NTFBdUw3VXhYc055QnRNbUNmTmFVY1AzNU9pdkF6WUNTSGxiUFR2K3RCSUh1dldyMkdadnZPTXllOWRqOUtmZURnVHhMWXR1VjdiYnkyTlEvVG05WXVwQzJ3UUZ2aWV2MHFjOEZBSFdiWTQyN1lFZkkwRmc2bmd4emc3N0FnZUpHLzhBS283YjRPa3U0VDdNb1dZamJtR09ueDZlNFV1NGgxU08ya25RRWN5akh4d0RUUGFYZ3V1Rkw0aHdJNHc0YkdOdHM0OHNENjBGUDhQeG05NHZ0cEpQYkFtTXplNFpQNVZkVm5iOW5ZV2hJM0I3VDRtcXo5R3RpTG5VYjJZNHlrS3hqL2pPK1BsVnZYRVlqVUFEQUEyOHFCazFGdlUrSlVtNkpLTW56RFZ0WU42cGVYbG9NZTE5ejNWbmlHTXZhMjF5QWVkY0thNE0vTk5hWGlBL2RBZWdmSUxZUm16aC9jR2NEdXBCWVplODFOaDNoZ1BoVDVibFpabzVWNzk4MHk2WkdSZTNhSHZsYjhhQ3ErTGJjU2FkSytEenhTQnMvR21UZy9VUFZkUW50MlljazBlNDh4MHFaNjViQ1VYMXZnRG1EZGZMSnF0Tk1mc05YakIyM0ttZ21WNWRNOHp4ZysyUUZCODg3VllQbzJCL1R0enpkZlZnUC9XdFZiTElFMUszTEhibUI2MWFYbzBmdE9JTHR1NHdELzhBTmFDS2FReVhXdDJ1UnRQZkZpUEhMWStnRlRuV3JneGFaS3g2NEpOVjd3UGROZmEvYnRLQUNzMDJBUDdwYkIvQ3BWeFBkbjlEdTJjY3lFMEZPYTlmOHR0S0FEenMzS0NQUC8ycUdrbGpudk5URFVMZUs4dG93eFZUejh6bnZJR2FRTERaMjQ1WUlBVy9mZmNtcEpJM2xuY3BKZmpscFRHM3NXbExjcDVzZ0h2cGNiZ3lFQW5wVGZmTWlSY29VYzNmU3pUcmZ0OU9TNFJBNTVpckR3eFZZT09tYW0xck1WNXRtNjFNbDFOWHNobjkzQkhmVUJFUDJvNW9nUGhVczBWclVxaXZiSVNUam1id29GdG8yL01Ua0hwVjU2ZmR4UVdEVFNON0tybmYzYjFVNlBvNndxb3RvUnlqZnI3UnJoclBHTTM2UDlVZ2ZCWVlPTzRlRkJIT0kxdGRVbXVXa1FNclNzeW53R1NhbWZCVmcwdm9QMVcwdCtkajZ6TVJqcnNVWS9TcXd2NzFsanhra21yajlGQTUvUmpjcXgyZTdtQko4d2dvSXBwRUhKcHNkeE12SzBqZlpMayswcDN6VHNwQU93N2hqek5NcVN1bW9pemtsYVZJQ1ZRRTdBS2U2bjhLckJteGhldWU3RkJqN294Z2sxaFpjdnlZSkFIVUdzeVJNRUxad2NaNVNLNTRPRHNjK1kvblFkK2R1aUhiNTFnRDJjWVB4RzljVWZBMlBYNFYwVml3emdzZS9Cb0FuR1FUeTR6Zy93QXF3VGhCdm5JNm5yOHFDZmNNYmN0YUFnRTV4bkI2MEdnNU04ekFnWS8wUGxYTW9TZnZnSGJyMThmeStWZE9YMmxBR1d5ZDY1OHc2a0gzWW9NdkNjOHlqR01mRDRWTHVJRlljSTZHR1BQeXF2TnQ5NzdPb2h6OXhiYnI0VktlSjc0V1hDL0RuTS9La3pDTWhoMSt6L0NnaXVPYlBOakhjTWRhMC9heHk4dWVnOGE3elFZNW5CQ2dmUEZKK1ZTVkkzeDMwR1ZsSDNOeGtlRmRTQThaamtCZFNjanhYekZDQk00T0NCMXdkeldIQWRSM1p4MzBDQ2Uza3R4a01YakoyZm9QY2ZDa3JTa0hMTm5hbmpsSlU1WEtzTjg5Q0tSWGVuaFVhYTN6MmY3UzR5VndOL2hRSkJjY25LTUFIdXJET25VYjRwT010c3B3TTV6L0FLOHEyRGN2VEhUT1Nlb0hoUUxyTzJrbmtRUSswVGpZSDRWTXRJMHk0aWdMU3pyR0NRQ3JibkgralVRc3B1eVFnQTV4MXowMzYvaFRzTlRsN1BzNHBlVlJsY0U5VHRRV0ZhV2lKTmJzMDZIMmc3RUlSa2dnZnpxUVZWT2hheGQvcExUb2VkaWhrVUU1OFdXcldvQ2lpaWdoM0Z0NExmWDlJUnNGU0dJQjhTY2Z6cXR2U3dXL1M5Z0dPY3dNMk0vM3F1KzYwdXh2YmlHNHVyV09hYUQ5VTdqZFBkU0xVT0ZOQjFhVkpOUTBtMnVYUmVWV2tCSkF6bkhXZ2luQittbTAwVzBSd2N4VzZyN3MrMGZ4YW5sWEVWekdjYlp3YWtVZGpheElFamdSVkFBQUE4TmhXRHA5bVRrMjZFMEZkbFRZNjJ5SFpYT0Q3alMvU3Y4QVk3MldJNTVHSklQdnFZVGFOcHR4SUpKcktKM0hSaURtdGhwVmdHREMwaXlPL0JvR1BWSS82a3ZQN3cvblRYY0tINFptSVhPQUdGVFY3TzJraU1Ud295SHFwNkd1UTBxd0Z1YmNXa2ZZa1lLWU9LRHoxeGRidE5wSWwzUFpPQUFPNFkzcU84T3lyL3ROdXgrOE9ZZWZqWHBtYmhIaDY0aWFLYlI3VjQyKzhwQndmeHBKRjZQZUVJSDU0dUhyRkd4aklWdnpvS0cwMlpvN3U0UW5ydHZWaThHNUd0V0FBeURMa240R3B3dkF2Q3F1WFhRYk1NVGtubGI4NmNMWFFkS3NwVWt0ckNHSjBPVlpRY2o4YUN0ZU03a3J4UmZRSzJBM0psZkU4b29VVFdmQytyUWNvN0pyQ1YyYi93QzZRUjlLc2U2NGMwYTl2R3ZMblRiZVc0WWdtUmdja2dZSGY1Q3QzMEhTcExlV0JyQ0V4U3J5eUlRY01QQTcwRldlaVcwUHF0OWRzdjJaa1ZRM2p5Zy8vd0NoVmdTL2FsaFRwcDJoYVZwTnMxdnA5aERiUXMzT1VqQkFKOGV2a0tVK3BXMmM5Z21hQ0xUeENhMmt0bXpuSkswMGFhQ3lTVzdkVU93cWZtd3RHZm1OdWhieHJrbWs2ZkhJMGlXa1N1M1VnSGVnYU5ObTVVQ01jWTJGSkxST1RYTGxjZFJ6VkpsMCswUTVXM1FIcnRRTlB0Qk9aaGJwMnBHQzNmaWdxSFhDWXRWdUF3TzVZVlZHclF0WmF0SU1FZTJHRmVxcmpoelJycVF5VDZiYnlPM1ZtQnlmeHBCYzhBOEpYa25hWEhEOWxJL1RMS2Z6b1BQRjVNWHU3WmxCUE1QNVZhdm9tbVY5WnVWTEF5QzNHUjRlMnRUUmVCT0ZWWkdYUWJJR1A3cDVUdCtOTGRNNGMwYlJydVM3MDNUWUxXNGxYbGVTTUVGaG5PT3ZpQWFEejk2UGJpNFhpMlZDVjdPRkxsK200M1A1MDljZGE5RGFXeHRZMlZwaUNHVWZzOUt0Mno0SzRhMCs0ZTR0TkZ0SVpuQkRPaW5KQjY5L2ZYSzU0QjRUdkpXa3VkQXNwWFk1TE1HSkorZEI1WmVSekdNbmRxd3VVeXhIUVorTmVvditqamczL3dBTjJIOExmblFmUnp3YVFRZUhMREI2K3kzNTBIa3FWbmxiY2UrcFJ3NE96MDREbFB0WlA0MTZLLzZNK0NmL0FBenAvd0RDMzUwcGg0QzRUdDBDUmFCWklvNkFLMzUwSG5xUzM5ck9EV1VrbGpHRkdLOURuZ25oZzlkRHMvNFQrZFkvb053di91S3ovaFA1MEhuczNFaWpkalNOM1krMWs1ODY5SG5nVGhWdXVnMlIvd0NGdnpyVThBOEpucncvWmZ3dCtkQjVjdW5hV2MrVzFYbjZObU52Nko3aHlOMXZITy8rS09wWi93QkhQQjJjL3dCSExEK0Z2enAzczlDMHV3MDF0T3RMQ0dHelppelFvRHlrbkcvWHlIeW9LVTFGUmFjWVhLdi9BTnBLV0JBMnczaFQxRTNNb3gwWFlaNmJISDhxc3E0NFcwSzZuN2VmU3JhU1hBSE93T2NaejQxMFRoN1I0MTVWMDZBTDRZUGpueG9LemxZeUFuQjJIK3Mxd0xkWFpXejRuWWtlWXEwMjRkMFp1dW13SDRIODZ4L1J6UnM1L1JzR2NZNkg4NkNxbFp6azVPRDM0N3ZBVjNMbGM4cnRrZXlEamIzMVozOUc5Ri8zYkI4aitkQjRiMFU5ZE50K21PaC9PZ3E1bUhRNUoyMno4cTJKQzdnRW56cTBEdzVveElKMDIzeU44NFA1MWdjT2FNQmdhYkJqM0g4NkNyMkF4bkJ5ZkRwV2tudDU3Z1J1ZkNyVEhEZWlnQURUYmZBNmJIODZEdzNvcE9UcHR2OEFJL25RVk5saVNDMmNIT01lRk92cEhCSEFYRFJ6dXJxYy93RGwxWVo0YTBRbkoweTN6N2orZGRiN1F0SzFLemhzNzJ3aG50NGYxVWJnNFRiRzIvaFFVenBlcEhWTE5lWVlsanh6QURxT2xLRUdIOGo0VmFkdHdmdzdac1d0dEh0WWkyeEtnNy9qWFgrakdoNHgraTdmSHVQNTBGVTU1R0tnTVQxSUhkVzRKS2hnblRwdGpOV24vUmpRL3dEZGR2OEFJL25XMzlHOUcvM2JiL0kvblFWZW9WUGFiMmxHQmcvNjZWaU15eG9Xa0lEQmlWWkQxWFBzOWZ4cTB2Nk9hTi91MjMrUi9Pc0hoelJqMTAyMytSL09ncVc1MHRMbFRMYkJJNVd6elJqbzNtRDNlNm1ZeE1qbm5SZ1ZQdEJ0aU1WZW45SGRIMi9xMjMyOGorZGFTOE1hSE8vUExwZHM3WXhrZzUrdEJTcUtwQUJCSTZEQjdqWFJuWitYbUJHQ0Q0K05YSC9SUGgvL0FIUmEvd0FKL09nOEo2QWV1a1d2eVA1MEZWNk5NejY1cGlndG4xbU1IdysrS3UwOWFhSWVGOUNnbWptaTB1M1NTTmc2TUFjZ2pvZXRPOUFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUUZGRkZBVVVVVUJSUlJRRkZGRkFVVVVVQlJSUlFGRkZGQVVVVVVCUlJSUWYvL1omcXVvdDsgYWx0PSZxdW90O1lvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IGVtYmVkZGVkIGltYWdlcywgc29ycnkmcXVvdDsvPg0KPGgzPlN0eWxlc2hlZXRzOjwvaDM+DQo8cD5UaGlzIG1vZHVsZSBhbHNvIHdvcmtzIHdpdGhpbiBzdHlsZXNoZWV0cywgaWYgdXNpbmcgdGhlIHtjbXNfc3R5bGVzaGVldH0gdGFnIGluIHlvdXIgcGFnZSB0ZW1wbGF0ZS4gIEJlY2F1c2UgdGhlIHNtYXJ0eSBzeW50YXggaXMgc2xpZ2h0bHkgZGlmZmVyZW50IGluc2lkZSB0aGUge2Ntc19zdHlsZXNoZWV0fSB0YWcgeW91IHV0aWxpemUgdGhlIG1vZHVsZSB1c2luZyB0aGUgW1sgYW5kIF1dIGRlbGltaXRlcnMuICBpLmU6IDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz5kaXYuaGVhZGVyIHsgYmFja2dyb3VuZDogdXJsKFtbU21hcnRJbWFnZSBzcmM9JiMwMzk7dXBsb2Fkcy9waWN0dXJlLmpwZyYjMDM5OyBub3RhZz0xXV0pOyB9PC9jb2RlPjwvcD4NCjxwPkJlY2F1c2Ugc3R5bGVzaGVldHMgYXJlIGdlbmVyYXRlZCBvbiBtb2RpZmljYXRpb24gYW5kIHN0b3JlZCBpbiB0aGUgZmlsZXN5c3RlbSB0aGVyZSBpcyBubyB3YXkgdG8gZGV0ZXJtaW5lIGR1cmluZyB0aGUgcmVxdWVzdCB3aGljaCBicm93c2VyIGlzIHJlcXVlc3RpbmcgdGhlIHN0eWxlc2hlZXQsIHRoZXJlZm9yZSBlbWJlZGRpbmcgd2lsbCBiZSBkb25lIHN0cmljdGx5IGJhc2VkIHVwb24gdGhlIHByZXNlbnNlIG9mIHRoZSBub2VtYmVkIHBhcmFtZXRlci4gIElmIHlvdSBoYXZlIGNob3NlbiB0byBlbWJlZCBpbWFnZXMgZGlyZWN0bHkgaW50byB5b3VyIHN0eWxlc2hlZXRzLCBZb3UgbWF5IG5lZWQgdG8gYWRkIGFkZGl0aW9uYWwgc3R5bGVzaGVldCBzdXBwb3J0IGZvciB0aGUgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBlbWJlZGRlZCBpbWFnZXMuICBpLmU6ICBJRTYuPC9wPg0KPGgzPkF1dG9tYXRpYyBQcm9jZXNzaW5nPC9oMz4NCjxwPlRoaXMgbW9kdWxlIGluY2x1ZGVzIGEgc21hcnR5IGJsb2NrIHRhZyBjYWxsZWQgPGNvZGUgc3R5bGU9JnF1b3Q7Y29sb3I6IGJsdWU7JnF1b3Q7PntzaV9jb252ZXJ0fTwvY29kZT4gdGhhdCBjYW4gc3Vycm91bmQgYSBibG9jayBvZiBodG1sLCBvciBvdGhlciBzbWFydHkgdGFncyB0byBhbGxvdyBhdXRvbWF0aWMgaW1hZ2UgcHJvY2Vzc2luZy4gIFRoaXMgdGFnIGNhbiBiZSB1c2VkIGxpa2U6IChmb3IgZXhhbXBsZSk6PC9wPg0KPHByZT48Y29kZSBzdHlsZT0mcXVvdDtjb2xvcjogYmx1ZTsmcXVvdDs+e3NpX2NvbnZlcnR9e2NvbnRlbnR9ey9zaV9jb252ZXJ0fTwvY29kZT48L3ByZT4NCjxwPlRoaXMgd2lsbCBhbGxvdyB5b3VyIHVzZXJzIHRvIGluY2x1ZGUgaW1hZ2VzIGludG8gcGFnZXMgdXNpbmcgdGhlIG5vcm1hbCB3eXNpd3lnIHRvb2xzLCBhbmQgdG8gaGF2ZSB0aGVtIGF1dG9tYXRpY2FsbHkgcHJvY2Vzc2VkIGFuZCBlbWJlZGRlZCBpbnRvIHRoZSBwYWdlIHVzaW5nIHRoZSBtYWdpYyBvZiB7U21hcnRJbWFnZX0uIGkuZTogU2VlIHRoZSBmb2xsb3dpbmcgY29kZTo8L3A+DQo8cHJlPjxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57c2lfY29udmVydCBmaWx0ZXJfZ3JheXNjYWxlPTEgZmlsdGVyX3dhdGVybWFyaz0xfXtjb250ZW50fXsvc2lfY29udmVydH08L2NvZGU+PC9wcmU+DQo8cD5UaGUgYWJvdmUgY29kZSB3aWxsIGNhcHR1cmUgYWxsIGltYWdlIHRhZ3MsIGFuZCBjb252ZXJ0IHRoZW0gdG8gZ3JheXNjYWxlIGFuZCB0aGVuIGFwcGx5IHRoZSB3YXRlcm1hcmsgKGFjY29yZGluZyB0byB0aGUgc2V0dGluZ3MgaW4gdGhlIENHRXh0ZW5zaW9ucyBtb2R1bGUpLiAgQWxsIG9mIHRoZSBwYXJldGVycyBhdmFpbGFibGUgdG8gdGhlIDxjb2RlIHN0eWxlPSZxdW90O2NvbG9yOiBibHVlOyZxdW90Oz57U21hcnRJbWFnZX08L2NvZGU+IHRhZyBhcmUgYXZhaWxhYmxlIHRvIHRoaXMgdGFnIChmb3IgaW1hZ2Ugc2NhbGluZyBldGMuKS4gIEFkZGl0aW9uYWxseSwgdHdvIG5ldyBwYXJhbWV0ZXJzIGhhdmUgYmVlbiBpbnRyb2R1Y2VkOiA8c3Ryb25nPm1heF93aWR0aDwvc3Ryb25nPiBhbmQgPHN0cm9uZz5tYXhfaGVpZ2h0PC9zdHJvbmc+IHdoaWNoIGNhbiBiZSB1c2VkIHRvIHNldCBhIG1heGltdW0gc2l6ZSBmb3IgaW1hZ2VzLi48L3A+DQo8ZGl2IHN0eWxlPSZxdW90O21hcmdpbi1sZWZ0OiAzZW07JnF1b3Q7PjxzdHJvbmcgc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+Tm90ZTo8L3N0cm9uZz4NCjxwPlRoaXMgdGFnIHBhcnNlcyB0aGUgSFRNTCBjb250ZW50IGJldHdlZW4gdGhlIHN0YXJ0IGFuZCBlbmQgdGFncyB0byBmaW5kIHRoZSA8aW1nPiB0YWdzLiAgSXQgdGhlbiB3aWxsIG91dHB1dCBzeW50YWN0aWNhbGx5IHZhbGlkIEhUTUwgZm9yIHRoZSBzdWJzZXQgb2YgY29kZSBpdCB3YXMgcHJvdmlkZWQuICBUaGVyZWZvcmUgaXQgaXMgaW1wb3J0YW50IHRoYXQgdGhlIHNuaXBwZXQgb2YgSFRNTCBwYXNzZWQgdG8gdGhpcyB0YWcgYmUgaW50YWN0IGFuZCBhcyBjbG9zZSB0byB2YWxpZCBhcyBwb3NzaWJsZS4gIDxzdHJvbmc+VXNlIHdpdGggY2F1dGlvbi48L3N0cm9uZz4NCjwvZGl2Pg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0IG9yIGJ1eSBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSB2aXNpdCBjYWxndXkmIzAzOTtzDQptb2R1bGUgaG9tZXBhZ2UgYXQgPGEgaHJlZj0iaHR0cDovL2NhbGd1eTEwMDAuY29tIj5jYWxndXkxMDAwLmNvbTwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yLCBjYWxndXkxMDAwLCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LjwvbGk+ICANCjwvdWw+DQo8aDM+UmVxdWlyZW1lbnRzPC9oMz4NCjxwPlRoaXMgbW9kdWxlIG1ha2VzIGV2dGVuc2l2ZSB1c2Ugb2YgdGhlIEdEIEltYWdlIHByb2Nlc3NpbmcgbGlicmFyeSB0byBkbyBpbWFnZSBtYW5pcHVsYXRpb24uICBBZGRpdGlvbmFsbHksIHRoZSB7c2lfY29udmVydH0gcGx1Z2luIG1ha2VzIGV4dGVuc2l2ZSB1c2Ugb2YgdGhlIHNpbXBsZXhtbCBhbmQgWE1MRG9tIGNsYXNzZXMgYnVpbHQgaW4gdG8gcGhwLiAgVGhlcmUgbWF5IGJlIG90aGVyIGFkZGl0aW9uYWwgcmVxdWlyZW1lbnRzLiAgSWYgeW91IGFyZSBleHBlcmllbmNpbmcgZXJyb3JzIHlvdSBzaG91bGQgZW5zdXJlIHRoYXQgZXJyb3IgcmVwb3J0aW5nIGlzIGVuYWJsZWQsIGFuZCB0aGF0IHlvdSBoYXZlIGFuYWx5emVkIHlvdXIgZXJyb3IgbG9ncy48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwOCwgUm9iZXJ0IENhbXBiZWwgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPjxjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPg0KPHA+SG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkDQphcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUNCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMNCk1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiANCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPg0KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQpidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCk9yIHJlYWQgaXQgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5vbmxpbmU8L2E+PC9wPic7DQokbGFuZ1snaW5mb19hbGlhc2VzJ10gPSAnT3MgQWxpJmFhY3V0ZTtzIHBvZGVtIHNlciB1c2Fkb3MgbmEgdGFnIFNtYXJ0SW1hZ2UgYXRyYXYmZWFjdXRlO3MgZGFzIG9wJmNjZWRpbDsmb3RpbGRlO2VzIGFsaWFzMSBhIGFsaWFzNSBwYXJhIGNvbWJpbmFyIGFzIG9wJmNjZWRpbDsmb3RpbGRlO2VzIG1haXMgZnJlcXVlbnRlbWVudGUgdXNhZGFzJzsNCiRsYW5nWydpbmZvX2Nyb3B0b2ZpdF9kZWZhdWx0X2xvYyddID0gJ0VzcGVjaWZpcXVlIGEgbG9jYWxpemEmY2NlZGlsOyZhdGlsZGU7byBwb3IgZGVmZWl0byBhIHBhcnRpciBkYSBxdWFsICZhbXA7cXVvdDtjb3J0YXIgcGFyYSBjYWJlciAoY3JvcCB0byBmaXQpJmFtcDtxdW90Oy4gRXN0YSBvcCZjY2VkaWw7JmF0aWxkZTtvIGFmZWN0YXImYWFjdXRlOyB0b2RhcyBhcyBvcGVyYSZjY2VkaWw7Jm90aWxkZTtlcyBjb3J0YXIgcGFyYSBjYWJlciBhIG1lbm9zIHF1ZSBvIHBhciZhY2lyYzttZXRybyAmYW1wO3F1b3Q7bG9jYXRpb24mYW1wO3F1b3Q7IG5vIGF0cmlidXRvICZhbXA7cXVvdDtmaWx0ZXJfY3JvcHRvZml0JmFtcDtxdW90OyBzZSBzb2JyZXBvbmhhLiBQb3IgZGVmZWl0byBvIHZhbG9yICZlYWN1dGU7ICZhbXA7cXVvdDtjZW50ZXImYW1wO3F1b3Q7IChjZW50cm8pICc7DQokbGFuZ1snaW1hZ2VfdXJsX2hhc2NhY2hlZGlyJ10gPSAnTyBVUkwgYWNpbWEgdGVtIGVtIGNvbnRhIG8gZGlyJmVhY3V0ZTtjdG9yaW8gZGUgY2FjaGUgKF9TbWFydEltYWdlKSc7DQokbGFuZ1snaW1hZ2VfdXJsX3ByZWZpeCddID0gJ1ByZWZpeG8gVXJsIGRlICBJbWFnZW0nOw0KJGxhbmdbJ2luZm9fY2FjaGVfYWdlJ10gPSAnRXNwZWNpZmlxdWUgdW1hIGlkYWRlIG0mYWFjdXRlO3hpbWEgKGVtIGRpYXMpIHBhcmEgdW0gZmljaGVpcm8gYW50ZXMgZGUgc2VyIHJlbW92aWRvIGUgcmVnZW5lcmFkbyBmb3ImY2NlZGlsO29zYW1lbnRlLiBFc3RhIG9wJmNjZWRpbDsmYXRpbGRlO28gJmVhY3V0ZTsgJnVhY3V0ZTt0aWwgc2UgdGl2ZXIgYWx0ZXJhZG8gYWxndW5zIGRvcyBwYXImYWNpcmM7bWV0cm9zIHVzYWRvcyBhbyBnZXJhciBpbWFnZW5zLCBvdSBwYXJhIGNvbnRyb2xhciBhIHF1YW50aWRhZGUgZGUgZXNwYSZjY2VkaWw7byB1c2FkbyBlbSBkaXNjby4gTyB2YWxvciB6ZXJvICgwKSBkZXNhY3RpdmEgbyBhcGFnYW1lbnRvIGF1dG9tJmFhY3V0ZTt0aWNvIGRlIGZpY2hlaXJvcyc7DQokbGFuZ1snaW5mb19lbWJlZF9tb2RlJ10gPSAnRXN0YSBzZWxlYyZjY2VkaWw7JmF0aWxkZTtvIGRldGVybWluYSBjb21vIGEgdGFnIHtzbWFydGltZ30gaXImYWFjdXRlOyBnZXJhciBhIHNhJmlhY3V0ZTtkYS4gU2UgZXN0aXZlciBzZWxlY2Npb25hZG8gJnF1b3Q7bm9uZSZxdW90OyAobmVuaHVtKSwgc2VyJmFhY3V0ZTsgZWZlY3R1YWRhIG8gJnF1b3Q7ZW1iZWRkaW5nJnF1b3Q7IGRhIGltYWdlbS4gc2UgZXN0aXZlciBzZWxlY2Npb25hZG8gJnF1b3Q7c21hcnQmcXVvdDsgKGludGVsaWdlbnRlKSBlbnQmYXRpbGRlO28gbyBzaXN0ZW1hIGlyJmFhY3V0ZTsgZGVjaWRpciBiYXNlYWRvIG5vIHRhbWFuaG8gZSB0aXBvIGRlIGltYWdlbSwgYmVtIGNvbW8gbm8gYnJvd3NlciBxdWUgZXN0aXZlciBhIGVmZWN0dWFyIG8gcGVkaWRvIHBhcmEgdmVyIGEgaW1hZ2VtLiBhcyBvdXRyYXMgb3AmY2NlZGlsOyZvdGlsZGU7ZXMgaW5jbHVlbSBmYXplciAmcXVvdDtlbWJlZGRpbmcmcXVvdDsgZGEgaW1hZ2VtIGJhc2VhZG8gbm8gc2V1IHRhbWFuaG8gb3UgdGlwby4nOw0KJGxhbmdbJ2luZm9fZW1iZWRfc2l6ZWxpbWl0J10gPSAnU2UgYSBvcCZjY2VkaWw7JmF0aWxkZTtvICZxdW90O2VtYmVkZGluZyZxdW90OyBmb3IgZGV0ZXJtaW5hZGEgcGVsbyB0YW1hbmhvIGRlIGltYWdlbSwgZXNwZWNpZmljYXIgbyB0YW1hbmhvIG0mYWFjdXRlO3hpbW8gKGVtIGtpbG9ieXRlcykgcGFyYSBhcyBpbWFnZW5zIGEgc2VyZW0gJnF1b3Q7ZW1iZWRkZWQmcXVvdDsgKHJlY29tZW5kYWRvIDMyKSc7DQokbGFuZ1snaW5mb19lbWJlZF90eXBlcyddID0gJ1NlIGEgb3AmY2NlZGlsOyZhdGlsZGU7byAmcXVvdDtlbWJlZGRpbmcmcXVvdDsgZm9yIGRldGVybWluYWRhIHBlbG8gdGlwbyBkZSBpbWFnZW0sIGVzcGVjaWZpY2FyIGFzIGV4dGVucyZvdGlsZGU7ZXMgYSBzZXJlbSAmcXVvdDtlbWJlZGRlZCZxdW90Oywgc2VwYXJhZGFzIHBvciB2aXJndWxhcy4gRXN0YSBvcCZjY2VkaWw7JmF0aWxkZTtvIG4mYXRpbGRlO28gJmVhY3V0ZTsgc2VucyZpYWN1dGU7dmVsICZhZ3JhdmU7IGNhcGl0YWxpemEmY2NlZGlsOyZhdGlsZGU7byc7DQokbGFuZ1snaW5mb19pbWFnZV91cmxfaGFzY2FjaGVkaXInXSA9ICdTZSBvIHNldSBDRE4gYXBvbnRhIGRpcmVjdGFtZW50ZSBhbyBkaXJlY3Qmb2FjdXRlO3JpbyBkZSBjYWNoZSBwb2RlciZhYWN1dGU7IHF1ZXJlciBlc3RhIG9wJmNjZWRpbDsmYXRpbGRlO28gYWN0aXZhLic7DQokbGFuZ1snaW5mb19pbWFnZV91cmxfcHJlZml4J10gPSAnRXNwZWNpZmljYXIgbyBVUkwgYSBzZXIgdXNhZG8gY29tbyBwcmVmaXhvIHBhcmEgdG9kYXMgYXMgaW1hZ2VucyBnZXJhZGFzLiBQb3IgZGVmZWl0byBlc3RlICZlYWN1dGU7IG8gVVJMIGRvcyAmcXVvdDt1cGxvYWRzJnF1b3Q7LCBubyBlbnRhbnRvLCBzZSB0aXZlciBvIHNldSBwciZvYWN1dGU7cHJpbyBDRE4gKG91IG0mdWFjdXRlO2x0aXBsb3MgZG9tJmlhY3V0ZTtuaW9zIGEgYXBvbnRhciBwYXJhIG8gbWVzbW8gZGlyZWN0Jm9hY3V0ZTtyaW8pLCBwb2RlciZhYWN1dGU7IHF1ZXJlciBlc3BlY2lmaWNhciB1bSBub21lIGRpZmVyZW50ZSBhcXVpLic7DQokbGFuZ1snbWF4X2NhY2hlX2FnZSddID0gJ0lkYWRlIE0mYWFjdXRlO3hpbWEgZG9zIEZpY2hlaXJvcyBlbSBDYWNoZSAoZGlhcyknOw0KJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnVW0gbSZvYWN1dGU7ZHVsbyBpbnRlbGlnZW50ZSBwYXJhIGdlcmFyIHRhZ3MgZGUgaW1hZ2VucyBwYXJhIG8gQ01TTVMnOw0KJGxhbmdbJ21zZ19hbGlhc2VzX3VwZGF0ZWQnXSA9ICdBbGlhc2VzIGFjdHVhbGl6YWRvcyc7DQokbGFuZ1snbXNnX2NhY2hlY2xlYW5lZCddID0gJ0RpcmVjdCZvYWN1dGU7cmlvIGRhIGNhY2hlIExpbXBvLiAlZCBmaWNoZWlyb3MgcmVtb3ZpZG9zJzsNCiRsYW5nWydtc2dfY2FjaGVyZW1vdmVkJ10gPSAnQ2FjaGUgUmVtb3ZpZGEnOw0KJGxhbmdbJ21zZ19wcmVmc3VwZGF0ZWQnXSA9ICdQcmVmZXJlbmNpYXMgQWN0dWFsaXphZGFzJzsNCiRsYW5nWydub25lJ10gPSAnTmVuaHVtJzsNCiRsYW5nWydvcHRpb25zJ10gPSAnT3AmY2NlZGlsOyZvdGlsZGU7ZXMnOw0KJGxhbmdbJ3BhcmFtX2FsaWFzJ10gPSAnVGhlIFNtYXJ0SW1hZ2UgYWRtaW4gcGFuZWwgYWxsb3dzIGNyZWF0aW5nIG51bWVyb3VzIGNvbW1hbmQgYWxpYXMgdG8gY29tYmluZSBhIGZyZXF1ZW50bHkgdXNlZCBwYXR0ZXJuIG9mIGFyZ3VtZW50cyBpbnRvIG9uZSBuYW1lLiAgVG8gdXNlIHRoZXNlIGFsaWFzZXMgdXNlIGFuIGFyZ3VtZW50IG9mIHRoZSBmb3JtIGFsaWFzIyM9YWxpYXNfbmFtZSBpLmU6ICBhbGlhczE9Zm9vIGFsaWFzMj1mb28uJzsNCiRsYW5nWydwYXJhbV9hbHQnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSBhbHQgYXR0cmlidXRlLiAgTm90ZSwgaWYgdGhpcyBpcyBub3Qgc3BlY2lmaWVkIGEgdmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoaXMgYXR0cmlidXRlIHNvIHRoYXQgbW9zdCBnZW5lcmF0ZWQgaW1nIHRhZ3Mgd2lsbCB2YWxpZGF0ZS4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBhdXRvIGNhbGN1bGF0aW9uIHdpdGggdGhlICZxdW90O25vYXV0byZxdW90OyBwYXJhbWV0ZXInOw0KJGxhbmdbJ3BhcmFtX2NsYXNzJ10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIGFsbG93cyBzcGVjaWZ5aW5nIG9uZSBvciBtb3JlIGNsYXNzZXMgdG8gaW5jbHVkZSBvbiB0aGUgdGFnLiAgaS5lOiBjbGFzcz0mcXVvdDtmYW5jeWJveCx0aHVtYm5haWwmcXVvdDsnOw0KJGxhbmdbJ3BhcmFtX2ZpbHRlcl9ibHVyJ10gPSAnKGFueXRoaW5nKSBTcGVjaWZ5IGFueSB2YWx1ZSBmb3IgdGhpcyBwYXJhbWV0ZXIgdG8gYWRkIGEgYmx1ciBmaWx0ZXIgdG8gdGhlIGltYWdlJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfYnJpZ2h0bmVzcyddID0gJyhpbnRlZ2VyKSBJbmNyYXNlIHRoZSBicmlnaHRuZXNzIG9mIHRoZSBwcm9jZXNzZWQgaW1hZ2UgYnkgdGhlIGludGVnZXIgdmFsdWUgc3BlY2lmaWVkJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfY29sb3JpemUnXSA9ICcocixnLGJbLGFscGhhXSkgLSBMaWtlIGZpbHRlcl9ncmF5c2NhbGUgaG93ZXZlciB5b3UgY2FuIHNwZWNpZnkgdGhlIGNvbG9yIGFuZCBhbHBoYSB2YWx1ZSc7DQokbGFuZ1sncGFyYW1fZmlsdGVyX2NvbnRyYXN0J10gPSAnKGludGVnZXIpIENoYW5nZSB0aGUgY29udHJhc3Qgb2YgdGhlIGltYWdlIGJ5IHRoZSBpbnRlZ2VyIHZhbHVlIHNwZWNpZmllZCc7DQokbGFuZ1sncGFyYW1fZmlsdGVyX2Nyb3AnXSA9ICcocGVyY2VudFssaF9hbGlnbix2X2FsaWduXSkgLSBQZXJmb3JtIGNyb3BwaW5nIG9uIHRoZSBpbWFnZSBzcGVjaWZpZWQuIENyb3AgcGFyYW1lZXRlcnMgYXJlIHNwZWNpZmllZCBhcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHBhcmFtZXRlcnMuICBUaGUgZmlyc3QgKHJlcXVpcmVkKSB2YWx1ZSBpcyBhbiBpbnRlZ2VyIHBlcmNlbnRhZ2Ugb2YgdGhlIG9yaWdpbmFsIGltYWdlIHNpemUuICBUaGUgb3B0aW9uYWwgc2Vjb25kIGFuZCB0aGlyZCBwYXJhbWV0ZXJzIGFyZSBvbmUgb2YgbCxjLHIgKGxlZnQsY2VudGVyLHJpZ2h0KSBhbmQgdCxjLGIgKHRvcCxjZW50ZXIsYm90dG9tKSBzcGVjaWZ5aW5nIHdoZXJlIHRoZSBsb2NhdGlvbiB3aXRoaW4gdGhlIHNvdXJjZSBpbWFnZSB0byBjcm9wIGZyb20uICBpLmU6IGNyb3A9MzMsYixyIHRvIGdyYWIgYSBjcm9wIG9mIDMzJSBmcm9tIHRoZSBib3R0b20gcmlnaHQgb2YgdGhlIHNvdXJjZSBpbWFnZS4nOw0KJGxhbmdbJ3BhcmFtX2ZpbHRlcl9jcm9wdG9maXQnXSA9ICcod2lkdGgsaGVpZ2h0Wyxsb2NhdGlvbl0pIC0gUGVyZm9ybSBhIGNyb3B0b2ZpdCBvbiB0aGUgaW1hZ2Ugc3BlY2lmaWVkLiBUaGlzIGF0dGVtcHRzIHRvIHJlc2NhbGUgdGhlIGltYWdlIHRvIHRoZSBkZXN0aW5hdGlvbiBzaXplIHdoaWxlIHJlYXRpbmluZyBhc3BlY3QgcmF0aW8sIHRoZW4gZm9jdXMgb24gdGhlIHNlbGVjdGVkIGFyZWEgb2YgdGhlIHJlc2l6ZWQgaW1hZ2UuICBDcm9wIHRvIGZpdCBwYXJhbWV0ZXJzIGFyZSBzcGVjaWZpZWQgYXMgdGhlIGRlc2lyZWQgd2lkdGggYW5kIGhlaWdodCBmb3IgdGhlIGRlc3RpbmF0aW9uIGltYWdlIGFsb25nIHdpdGggYW4gKG9wdGlvbmFsKSBsb2NhdGlvbiBjb2RlLiAgdmFsaWQgbG9jYXRpb24gY29kZXMgYXJlIHRsLHRjLHRyLGNsLGMsY3IsYmwsYixiciBmb3IgdGhlIDkgcmVsYXRpdmUgcG9zaXRpb25zIHdpdGhpbiB0aGUgaW1hZ2UuICBJZiBhIGxvY2F0aW9uIGlzIG5vdCBzcGVjaWZpZWQgYSBwcmVmZXJlbmNlIHdpbGwgYmUgdXNlZC4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzICZxdW90O2MmcXVvdDsgdG8gY3JvcC10by1maXQgZnJvbSB0aGUgY2VudGVyIG9mIHRoZSBzb3VyY2UgaW1hZ2UuICBBdCBubyB0aW1lIHdpbGwgdGhpcyBmaWx0ZXIgcGVyZm9ybSBhbnkgdXBzY2FsaW5nLic7DQokbGFuZ1sncGFyYW1fZmlsdGVyX2VkZ2VkZXRlY3QnXSA9ICcoYW55dGhpbmcpIEhpbGlnaHQgdGhlIGVkZ2VzIGluIHRoZSBpbWFnZSc7DQokbGFuZ1sncGFyYW1fZmlsdGVyX2VtYm9zcyddID0gJyhhbnl0aGluZykgRW1ib3NzIHRoZSBpbWFnZSc7DQokbGFuZ1sncGFyYW1fZmlsdGVyX2ZsaXAnXSA9ICcobW9kZSkgLSBQZXJmb3JtIGEgZmxpcCBvbiB0aGUgc3BlY2lmaWVkIGltYWdlLiAgU3BlY2lmeSAwIGZvciBob3Jpem9udGFsLCAxIGZvciB2ZXJ0aWNhbCwgYW5kIDIgZm9yIGZsaXAgaW4gYm90aCBkaXJlY3Rpb25zLic7DQokbGFuZ1sncGFyYW1fZmlsdGVyX2dyYXlzY2FsZSddID0gJyhhbnl0aGluZykgQ29udmVydCB0aGUgaW1hZ2UgdG8gZ3JheXNjYWxlJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfbWVhbnJlbW92YWwnXSA9ICcoYW55dGhpbmcpIEF0dGVtcHQgdG8gYWNoaWV2ZSBhICZxdW90O3NrZXRjaHkmcXVvdDsgZWZmZWN0JzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfbmVnYXRlJ10gPSAnKGFueXRoaW5nKSBOZWdhdGUgdGhlIGltYWdlJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfcGl4ZWxhdGUnXSA9ICcoc2l6ZVssYWR2YW5jZWRdKSBQaXhlbGF0ZSB0aGUgaW1hZ2UsIHNwZWNpZnkgYW4gaW50ZWdlciBzaXplIGFuZCBhbiBvcHRpb25hbCBib29sZWFuIChkZWZhdWx0IGlzIGZhbHNlKSB0byBlbmFibGUgYWR2YW5jZWQgcGl4ZWxhdGlvbic7DQokbGFuZ1sncGFyYW1fZmlsdGVyX3Jlc2l6ZSddID0gJ3R5cGUsbnVtYmVyWyxudW1iZXJdIC0gUGVyZm9ybSBhIHJlc2l6ZSBvZiB0aGUgc291cmNlIGltYWdlLiAgVGhlIHJlc2l6ZSBmaWx0ZXIgZG9lcyBub3QgcGVyZm9ybSBhbnkgdXBzY2FsZSBjaGVja2luZy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5wLG51bWJlciAtIFBlcmZvcm0gYSBzaW1wbGUgcmVzY2FsZSB0byBhIGNlcnRhaW4gcGVyY2VudGFnZS4gIGkuZTogIHJlc2l6ZT1wLDUwIHRvIHJlc2l6ZSB0byA1MCUgb2YgdGhlIG9yaWdpbmFsIHNpemUuPC9saT4NCiAgPGxpPncsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCB3aWR0aCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPXcsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIHdpZHRoIG9mIDgwIHBpeGVscy48L2xpPg0KICA8bGk+aCxudW1iZXIgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgc3BlY2lmaWVkIGhlaWdodCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPWgsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIGhlaWdodCBvZiA4MCBwaXhlbHMuPC9saT4NCiAgPGxpPmUsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSByZXNpemluZyB0aGUgbGFyZ2VzdCBlZGdlIHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUgKHdoaWxlIHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiBpLmU6IHJlc2l6ZT1lLDEwMCB0byBjcmVhdGUgYSB0aHVtYm5haWwgd2hvcyBsYXJnZXN0IGVkZ2UgaXMgMTAwIHBpeGVscy4NCiAgPGxpPmMseCx5IC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIGN1c3RvbSBzaXplICh3aXRob3V0IHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgaS5lOiBmaWx0ZXJfcmVzaXplPWMsNTAsNzUgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHRoYXQgaXMgNTB4NzUgcGl4ZWxzLjwvbGk+Lg0KPC91bD4nOw0KJGxhbmdbJ3BhcmFtX2ZpbHRlcl9yZXNpemV0b2ZpdCddID0gJyh3aWR0aCxoZWlnaHRbLGNvbG9yWyxhbHBoYV1dKSAtIFBlcmZvcm0gYSByZXNpemUgb24gdGhlIGltYWdlIHNwZWNpZmllZC4gVGhpcyBhdHRlbXB0cyB0byByZXNjYWxlIHRoZSBpbWFnZSB0byB0aGUgZGVzdGluYXRpb24gc2l6ZSB3aGlsZSByZWF0aW5pbmcgYXNwZWN0IHJhdGlvLCB0aGUgaW1hZ2UgaXMgY2VudGVyZWQgaW4gdGhlIGJveCBzcGVjaWZpZWQgKGVpdGhlciBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBkZXBlbmRpbmcgdXBvbiBhc3BlY3QgcmF0aW8gYW5kIHRoZSBkZXN0aW5hdGlvbiBzaXplLCBhbmQgdGhlIGltYWdlIGlzIHN1cnJvdW5kZWQgYnkgdGhlIHN1cHBsaWVkIGNvbG9yLiAgQ29sb3JzIGNhbiBiZSBzcGVjaWZpZWQgYnkgbmFtZSAoc2VlIHRoZSBYMTEgY29sb3IgbmFtZXMpLCBvciBieSAjbm5ubm5uIGhleGFkZWNpbWFsIGZvcm1hdCwgb3IgYXMgcmdiIHZhbHVlcyBzZXBhcmF0ZWQgYnkgYSA6IGkuZTogIGZpbHRlcl9jcm9wdG9maXQ9NjAwLDQwMCwjZmYwMDAwLiAgVGhlIHNwZWNpYWwgY29sb3IgdmFsdWUgJnF1b3Q7dHJhbnNwYXJlbnQmcXVvdDsgY2FuIGJlIHNwZWNpZmllZCB0byBmb3JjZSB0aGUgYmFja2dyb3VuZCB0byBiZSB0cmFuc3BhcmVudC4gICBBbiBhbHBoYSB2YWx1ZSBtYXkgYmUgc3BlY2lmaWVkIGJldHdlZW4gMCBhbmQgMTI3IHRvIHNwZWNpZnkgZGlmZmVyZW50IGRlZ3JlZXMgb2YgdHJhbnNsdWNlbmN5IGZvciB0aGUgYmFja2dyb3VuZC4gICBBdCBubyB0aW1lIHdpbGwgdGhpcyBwbHVnaW4gcGVyZm9ybSBhbnkgdXBzY2FsaW5nLic7DQokbGFuZ1sncGFyYW1fZmlsdGVyX3JvdGF0ZSddID0gJyhhbmdsZSkgU3BlY2lmeSB0aGUgaW50ZWdlciBhbmdsZSAoY291bnRlciBjbG9ja3dpc2UpIHRvIHJvdGF0ZSB0aGUgaW1hZ2UsIFRoZSBpbWFnZSBpcyByb3RhdGVkIGFib3V0IGl0cyBjZW50ZXIuJzsNCiRsYW5nWydwYXJhbV9maWx0ZXJfcm91bmRlZGNvcm5lcnMnXSA9ICcocmFkaXVzKSBTcGVjaWZ5IGFuIGludGVnZXIgcmFkaXVzIChpbiBwaXhlbHMpIGZvciByb3VuZGluZyB0aGUgY29ybmVycy4nOw0KJGxhbmdbJ3BhcmFtX2ZpbHRlcl93YXRlcm1hcmsnXSA9ICcoYW55dGhpbmcpLCBTcGVjaWZ5IHRoYXQgdGhlIHdhdGVybWFyayAoYXMgc3BlY2lmaWVkIGluIHRoZSBDR0V4dGVuc2lvbnMgYWRtaW4gcGFuZWwpIHNob3VsZCBiZSBhcHBsaWVkIHRvIHRoZSBpbWFnZSc7DQokbGFuZ1sncGFyYW1faGVpZ2h0J10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIHNwZWNpZnkgdGhlIHZhbHVlIGZvciB0aGUgaGVpZ2h0IGF0dHJpYnV0ZS4gIE5vdGUsIGlmIHRoaXMgaXMgbm90IHNwZWNpZmllZCBhIHZhbHVlIHdpbGwgYmUgYXV0b21hdGljYWxseSBjYWxjdWxhdGVkIGZvciB0aGlzIGF0dHJpYnV0ZSBzbyB0aGF0IG1vc3QgZ2VuZXJhdGVkIGltZyB0YWdzIHdpbGwgdmFsaWRhdGUuICBZb3UgY2FuIG92ZXJyaWRlIHRoaXMgYXV0byBjYWxjdWxhdGlvbiB3aXRoIHRoZSAmcXVvdDtub2F1dG8mcXVvdDsgcGFyYW1ldGVyLiAgVGhpcyBwYXJhbWV0ZXIgd2lsbCBhbHNvIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgJnF1b3Q7d2lkdGgmcXVvdDsgcGFyYW1ldGVyIHRvIHBlcmZvcm0gYSBmaW5hbCByZXNpemluZyBvciBjcm9wdG9maXQgZmlsdGVyICh1bmxlc3MgdGhlICZxdW90O25vYXV0b3NjYWxlJnF1b3Q7IHBhcmFtZXRlciBpcyBhbHNvIHN1cHBsaWVkKSc7DQokbGFuZ1sncGFyYW1faWQnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgYWxsb3dzIHNwZWNpZnlpbmcgYW4gaWQgYXR0cmlidXRlIHRvIGluY2x1ZGUgb24gdGhlIHRhZy4gIGkuZTogaWQ9JnF1b3Q7c29tZXRhZyZxdW90Oyc7DQokbGFuZ1sncGFyYW1fbWF4X2hlaWdodCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUge3NpX2NvbnZlcnR9IHRhZyB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG1heGltdW0gaGVpZ2h0IGZvciB0aGUgY29udmVydGVkIGltYWdlcyc7DQokbGFuZ1sncGFyYW1fbWF4X3dpZHRoJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSB7c2lfY29udmVydH0gdGFnIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbWF4aW11bSB3aWR0aCBmb3IgdGhlIGNvbnZlcnRlZCBpbWFnZXMnOw0KJGxhbmdbJ3BhcmFtX25hbWUnXSA9ICdVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSBuYW1lIGF0dHJpYnV0ZS4nOw0KJGxhbmdbJ3BhcmFtX25vYXV0byddID0gJ0RvIG5vdCBhdXRvbWF0aWNhbGx5IGNhbGN1YWx0ZSBwYXJhbWV0ZXJzIGZvciB0aGUgaW1nIHRhZy4gIFRoaXMgbWF5IGNhdXNlIHlvdXIgc2l0ZSB0byBmYWlsIHZhbGlkYXRpb24gaWYgc29tZSByZXF1aXJlZCBwYXJhbWV0ZXJzICh3aWR0aCxoZWlnaHQsYWx0KSBhcmUgbm90IHNwZWNpZmllZCc7DQokbGFuZ1sncGFyYW1fbm9hdXRvc2NhbGUnXSA9ICdpZiB3aWR0aCBhbmQgaGVpZ2h0IHBhcmFtZXRlcnMgYXJlIHNwZWNpZmllZCwgdGhpcyBwYXJhbWV0ZXIgd2lsbCBkaXNhYmxlIGF1dG9tYXRpYyBzY2FsaW5nIG9mIHRoZSBpbWFnZS4nOw0KJGxhbmdbJ3BhcmFtX25vYmNhY2hlJ10gPSAnRG8gbm90IGFsbG93IHRoZSByZXNpemVkIGltYWdlIHRvIGNhY2hlIGluIHRoZSBicm93c2VyICh1c2VmdWwgZm9yIGRldmVsb3BtZW50IHB1cnBvc2VzKSB0aGlzIGFkZHMgYSB1bmlxdWUgbnVtYmVyIGFzIGEgcGFyYW1ldGVyIHRvIHRoZSBpbWFnZSB3aGljaCB3aWxsIGZvcmNlIHRoZSBicm93c2VyIG5vdCB0byBjYWNoZSB0aGUgaW1hZ2UuJzsNCiRsYW5nWydwYXJhbV9ub2VtYmVkJ10gPSAnRm9yY2UgdGhlIGltYWdlIHRvIG5vdCBlbWJlZC4gIFJlZ2FyZGxlc3Mgb2Ygc2V0dGluZ3MgaW4gdGhlIGFkbWluIHBhbmVsLCB0aGUgVVJMIGFuZCB0YWcgZ2VuZXJhdGVkIHdpbGwgYmUgdG8gYSBmaWxlIG9uIHRoZSBzZXJ2ZXIuICBObyBlbWJlZGRpbmcgd2lsbCBiZSBwZXJmb3JtZWQnOw0KJGxhbmdbJ3BhcmFtX25vdGltZWNoZWNrJ10gPSAnRGlzYWJsZSB0aW1lIGNoZWNraW5nIG9mIGNhY2hlZCBmaWxlcy4nOw0KJGxhbmdbJ3BhcmFtX25vcmVtb3RlJ10gPSAnRG8gbm90IGFsbG93IHJldHJpZXZpbmcgc291cmNlcyBmcm9tIHJlbW90ZSBVUkxTJzsNCiRsYW5nWydwYXJhbV9ub3JvdGF0ZSddID0gJ0RvIG5vdCBhdHRlbXB0IHRvIHJlYWQgZXhpZiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBmaWxlIGFuZCBjb3JyZWN0IGltYWdlIHJvdGF0aW9uJzsNCiRsYW5nWydwYXJhbV9ub3RhZyddID0gJ0RvIG5vdCBvdXRwdXQgYW4gaW1nIHRhZywgb25seSB0aGUgdXJsIHRvIHRoZSBjYWNoZWQgaW1hZ2UuICBUaGlzIGhhcyBubyBlZmZlY3Qgd2hlbiBTbWFydEltYWdlIGlzIHVzZWQgZnJvbSB3aXRoaW4gYSBzdHlsZXNoZWV0Lic7DQokbGFuZ1sncGFyYW1fb3ZlcndyaXRlJ10gPSAnRGlzYWJsZSBhbGwgY2FjaGluZyBhbmQgZm9yY2UgcmUtY2FsY3VsYXRpb24gb2YgYWxsIGZpbHRlcnMnOw0KJGxhbmdbJ3BhcmFtX3F1YWxpdHknXSA9ICdTcGVjaWZ5IHRoZSBxdWFsaXR5IG9mIHRoZSBvdXRwdXQgaW1hZ2UuICBBIHZhbHVlIGJldHdlZW4gMCBhbmQgMTAwLiAgVGhlIGRlZmF1bHQgdmFsdWUgaWYgbm90IHNwZWNpZmllZCBpcyA3NS4nOw0KJGxhbmdbJ3BhcmFtX3JlbCddID0gJ1VzZWQgd2hlbiBidWlsZGluZyBhbiBpbWFnZSB0YWcgYWxsb3dzIHNwZWNpZnlpbmcgYW4gb3B0aW9uYWwgcmVsIGF0dHJpYnV0ZSAodHlwaWNhbGx5IHVzZWQgd2l0aCBqYXZhc2NyaXB0IHR5cGUgYWxidW1zKS4gaS5lOiByZWw9JnF1b3Q7YWxidW0mcXVvdDsnOw0KJGxhbmdbJ3BhcmFtX3NpbGVudCddID0gJ1NpbGVudGx5IGlnbm9yZSBlcnJvcnMnOw0KJGxhbmdbJ3BhcmFtX3NyYyddID0gJ1NwZWNpZnkgdGhlIHNvdXJjZSBmb3IgdGhlIGltYWdlIHByb2Nlc3NpbmcgKGlmIGFueSkgb3IgdGhlIGdlbmVyYXRlZCBpbWcgdGFnLiAgTm90ZSwgdGhpcyBwYXJhbWV0ZXIgaXMgZmxleGlibGUsIGFuZCB0aGUgbW9kdWxlIHdpbGwgYXR0ZW1wdCBtYW55IG1ldGhvZHMgdG8gZmluZCB0aGUgc291cmNlIGltYWdlIGZpbGUgb24gdGhlIHdlYiBzZXJ2ZXIgYXMgZm9sbG93czoNCjx1bD4NCiAgPGxpPkZpcnN0IGxvb2sgdG8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgc3JjIHZhbHVlIGV4aXN0cyBhcyBhIGZpbGUgb24gdGhlIGZpbGVzeXN0ZW0uPC9saT4NCiAgPGxpPk5leHQsIGNoZWNrIGlmIHRoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yIHRoZSBzcmMgcGFyYW1ldGVyIGlzIGEgVVJMIGFuZCBiZWdpbnMgd2l0aCB0aGUgdXBsb2Fkc191cmwgKGFzIHNwZWNpZmllZCBpbiB0aGUgY29uZmlnLnBocCk8L2xpPg0KICA8bGk+TmV4dCwgY2hlY2sgaWYgdGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgdGhlIHNyYyBwYXJhbWV0ZXIgaXMgYSBVUkwgYW5kIGJlZ2lucyB3aXRoIHRoZSByb290X3VybCAoYXMgc3BlY2lmaWVkIGluIHRoZSBjb25maWcucGhwKTwvbGk+DQogIDxsaT5OZXh0LCBjaGVjayBpZiB0aGUgdmFsdWUgc3BlY2lmaWVkIGZvciB0aGUgc3JjIHBhcmFtZXRlciBpcyBhIFVSTCBhbmQgYmVnaW5zIHdpdGggdGhlIHNzbF91cmwgKGFzIHNwZWNpZmllZCBpbiB0aGUgY29uZmlnLnBocCk8L2xpPg0KPC91bD4NCkl0IGlzIGFsc28gcG9zc2libGUgdG8gc3BsaXQgdGhlIHNyYyBwYXJhbWV0ZXIgaW50byBtdWx0aXBsZSBhcmd1bWVudHMsIHdoaWNoIGlzIHVzZWZ1bCBmb3IgZXhhbXBsZSB3aGVuIHRoZSBwYXRoIHRvIHRoZSBmaWxlLCBhbmQgdGhlIGZpbGVuYW1lIGFyZSBzdG9yZWQgaW4gc2VwYXJhdGUgc21hcnR5IHZhcmlhYmxlcy4gICBZb3UgY2FuIHNwZWNpZnkgdGhlIHNyYyBhcyBzcmMxPVwkdGhlX3BhdGggc3JjMj1cJHRoZV9maWxlbmFtZS4gIFRoZSBzeXN0ZW0gd2lsbCBhdXRvbWF0aWNhbGx5IGFkZCBhIC8gaW4gYmV0d2VlbiBlYWNoIGFyZ3VtZW50LiAgVGhlcmUgaXMgbm8gbGltaXQgdG8gdGhlIG51bWJlciBvZiBzcmMgcGFyYW1ldGVycy4nOw0KJGxhbmdbJ3BhcmFtX3N0eWxlJ10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIGFsbG93cyBzcGVjaWZ5aW5nIGFsdGVybmF0ZSBzdHlsZXMgZm9yIHRoZSB0YWcuICBpLmU6IHN0eWxlPSZxdW90O2JvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyZxdW90Oyc7DQokbGFuZ1sncGFyYW1fdGl0bGUnXSA9ICdTcGVjaWZ5IGFuIG9wdGlvbmFsIHRpdGxlIGF0dHJpYnV0ZSBmb3IgdGhlIGltZyB0YWcuICBpLmU6IHRpdGxlPSZxdW90O1RoaXMgaXMgdGhlIHRvb2x0aXAmcXVvdDsnOw0KJGxhbmdbJ3BhcmFtX3dpZHRoJ10gPSAnVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIHNwZWNpZnkgdGhlIHZhbHVlIGZvciB0aGUgd2lkdGggYXR0cmlidXRlLiAgIE5vdGUsIGlmIHRoaXMgaXMgbm90IHNwZWNpZmllZCBhIHZhbHVlIHdpbGwgYmUgYXV0b21hdGljYWxseSBjYWxjdWxhdGVkIGZvciB0aGlzIGF0dHJpYnV0ZSBzbyB0aGF0IG1vc3QgZ2VuZXJhdGVkIGltZyB0YWdzIHdpbGwgdmFsaWRhdGUuICBZb3UgY2FuIG92ZXJyaWRlIHRoaXMgYXV0byBjYWxjdWxhdGlvbiB3aXRoIHRoZSAmcXVvdDtub2F1dG8mcXVvdDsgcGFyYW1ldGVyLiAgVGhpcyBwYXJhbWV0ZXIgd2lsbCBhbHNvIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgJnF1b3Q7aGVpZ2h0JnF1b3Q7IHBhcmFtZXRlciB0byBwZXJmb3JtIGEgZmluYWwgcmVzaXppbmcgb3IgY3JvcHRvZml0IGZpbHRlciAodW5sZXNzIHRoZSAmcXVvdDtub2F1dG9zY2FsZSZxdW90OyBwYXJhbWV0ZXIgaXMgYWxzbyBzdXBwbGllZCknOw0KJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTSZvYWN1dGU7ZHVsbyBpbnN0YWxhZG8nOw0KJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdUb2RvcyBvcyBkYWRvcyBhc3NvY2lhZG9zIGEgZXN0ZSBtJm9hY3V0ZTtkdWxvIGZvcmFtIHJlbW92aWRvcyc7DQokbGFuZ1sncHJvbXB0X2Nyb3B0b2ZpdF9kZWZhdWx0X2xvYyddID0gJ1Bvc2kmY2NlZGlsOyZhdGlsZGU7byBwb3IgZGVmZWl0byBhcGFydGlyIGRlIG9uZGUgZmF6ZXIgJnF1b3Q7Y3JvcCB0byBmaXQmcXVvdDsgKGNvcnRhciBwYXJhIGNhYmVyKSc7DQokbGFuZ1sncHJvbXB0X2VtYmVkX3NpemVsaW1pdCddID0gJ0Jhc2VhZG8gbm8gdGFtYW5obyBkYSBpbWFnZW0nOw0KJGxhbmdbJ3Byb21wdF9lbWJlZF9zbWFydGxpbWl0ZWQnXSA9ICdNb2RvIGludGVsaWdlbnRlIG1hcyBsaW1pdGFkbyBhbyB0YW1hbmhvIGRlIGltYWdlbSc7DQokbGFuZ1sncHJvbXB0X2VtYmVkX3R5cGUnXSA9ICdCYXNlYWRvIG5vIHRhbWFuaG8gZGUgaW1hZ2VtJzsNCiRsYW5nWydwcm9tcHRfbG9jX2JvdHRvbWxlZnQnXSA9ICdCYWl4byBFc3F1ZXJkYSAoYmwpJzsNCiRsYW5nWydwcm9tcHRfbG9jX2JvdHRvbWNlbnRlciddID0gJ0JhaXhvIENlbnRybyAoYmMpJzsNCiRsYW5nWydwcm9tcHRfbG9jX2JvdHRvbXJpZ2h0J10gPSAnQmFpeG8gRGlyZWl0YSAoYnIpJzsNCiRsYW5nWydwcm9tcHRfbG9jX2NlbnRlcmxlZnQnXSA9ICdDZW50cm8gRXNxdWVyZGEgKGNsKSc7DQokbGFuZ1sncHJvbXB0X2xvY19jZW50ZXInXSA9ICdDZW50cm8gKGMpJzsNCiRsYW5nWydwcm9tcHRfbG9jX2NlbnRlcnJpZ2h0J10gPSAnQ2VudHJvIERpcmVpdGEgKGNyKSc7DQokbGFuZ1sncHJvbXB0X2xvY190b3BsZWZ0J10gPSAnVG9wbyBFc3F1ZXJkYSAodGwpJzsNCiRsYW5nWydwcm9tcHRfbG9jX3RvcGNlbnRlciddID0gJ1RvcG8gQ2VudHJvICh0YyknOw0KJGxhbmdbJ3Byb21wdF9sb2NfdG9wcmlnaHQnXSA9ICdUb3BvIERpcmVpdGEgKHRyKSc7DQokbGFuZ1sncmVzaXppbmcnXSA9ICdSZWRpbWVuc2lvbmFuZG8nOw0KJGxhbmdbJ3NtYXJ0J10gPSAnSW50ZWxpZ2VudGUnOw0KJGxhbmdbJ3N1Ym1pdCddID0gJ1N1Ym1ldGVyJzsNCiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjIxMzY4MDk4NjIuMTM3NDE2Mjc1MS4xMzc0MTYyNzUxLjEzNzQxNjI3NTEuMSc7DQokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7DQokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMzc0MTYyNzUxLjEuMS51dG1jY249KGRpcmVjdCl8dXRtY3NyPShkaXJlY3QpfHV0bWNtZD0obm9uZSknOw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ru_RU.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FjdF9jYWNoZWNsZWFuZWQnXSA9ICfQmtGN0Ygg0L7Rh9C40YnQtdC9JzsKJGxhbmdbJ2FkZF9yb3cnXSA9ICfQlNC+0LHQsNCy0LjRgtGMINGB0YLRgNC+0LrRgyc7CiRsYW5nWydhbGlhcyddID0gJ9CQ0LvQuNCw0YEnOwokbGFuZ1snYWxpYXNlcyddID0gJ9CQ0LvQuNCw0YHRiyc7CiRsYW5nWydhc2tfY2xlYXJfaW1hZ2VfY2FjaGUnXSA9ICfQktGLINC00LXQudGB0YLQstC40YLQtdC70YzQvdC+INGF0L7RgtC40YLQtSDRg9C00LDQu9C40YLRjCDQktCh0JUg0YTQsNC50LvRiyDQuNC3INC60LXRiNCwINC40LfQvtCx0YDQsNC20LXQvdC40Lk/JzsKJGxhbmdbJ2F1dG9wcm9jZXNzaW5nJ10gPSAn0JDQstGC0L7QvNCw0YLQuNGH0LXRgdC60LDRjyDQvtCx0YDQsNCx0L7RgtC60LAnOwokbGFuZ1snYXV0b3Byb2Nlc3NfYXV0b3JvdGF0ZSddID0gJ9CQ0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4INC+0YDQuNC10L3RgtCw0YbQuNGPINC40LfQvtCx0YDQsNC20LXQvdC40Y8nOwokbGFuZ1snYXV0b3Byb2Nlc3NfZW5hYmxlZCddID0gJ9CS0LrQu9GO0YfQtdC90L4nOwokbGFuZ1snYXV0b3Byb2Nlc3NfbWF4X3NpemUnXSA9ICfQnNCw0LrRgdC40LzQsNC70YzQvdGL0Lkg0YDQsNC30LzQtdGAINC40LfQvtCx0YDQsNC20LXQvdC40Y8nOwokbGFuZ1snYXV0b3Byb2Nlc3Nfd2F0ZXJtYXJrJ10gPSAn0JLQvtC00Y/QvdGL0LUg0LfQvdCw0LrQuCc7CiRsYW5nWydjbGVhcl9hbGwnXSA9ICfQntGH0LjRgdGC0LjRgtGMINCy0YHQtSDRhNCw0LnQu9GLJzsKJGxhbmdbJ2NsZWFyX25vdyddID0gJ9Ce0YfQuNGB0YLQuNGC0Ywg0YHQtdC50YfQsNGBJzsKJGxhbmdbJ2NhY2hlX3BhdGgnXSA9ICfQn9GD0YLRjCDQutGN0YjQsCc7CiRsYW5nWydjaGVja19tZW1vcnknXSA9ICfQktGL0L/QvtC70L3QtdC90LjQtSDQv9GA0LXQtNCy0LDRgNC40YLQtdC70YzQvdC+0Lkg0L/RgNC+0LLQtdGA0LrQuCDQv9Cw0LzRj9GC0LgnOwokbGFuZ1snY3JvcHRvZml0J10gPSAn0JrQsNC00YDQuNGA0L7QstCw0YLRjCc7CiRsYW5nWydkZWxldGUnXSA9ICfQo9C00LDQu9C40YLRjCc7CiRsYW5nWydlbWJlZGRpbmcnXSA9ICfQktGB0YLRgNC+0LXQvdC90YvQtSDQuNC30L7QsdGA0LDQttC10L3QuNGPJzsKJGxhbmdbJ2VuYWJsZV9yZXNwb25zaXZlJ10gPSAn0JLQutC70Y7Rh9C40YLRjCDQsNC00LDQv9GC0LjQstC90YvQtSDQuNC30L7QsdGA0LDQttC10L3QuNGPJzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NtYXJ0SW1hZ2UnOwokbGFuZ1snZ2VuZXJhbCddID0gJ9Ce0LHRidC40LUg0L3QsNGB0YLRgNC+0LnQutC4JzsKJGxhbmdbJ2luZm9fYWxpYXNlcyddID0gJ9CSIFNtYXJ0SW1hZ2Ug0LLQvtC30LzQvtC20L3QviDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0LDQu9C40LDRgdGLINC00LvRjyDQvtCx0YrQtdC00LjQvdC10L3QuNGPINC80L3QvtCz0L7Rh9C40YHQu9C10L3QvdGL0YUg0YfQsNGB0YLQviDQuNGB0L/QvtC70YzQt9GD0LXQvNGL0YUg0L7Qv9GG0LjQuSc7CiRsYW5nWydpbmZvX2F1dG9zY2FsZV9vcCddID0gJ9Ca0L7Qs9C00LAg0LDQstGC0L7QvNCw0YHRiNGC0LDQsdC40YDQvtCy0LDQvdC40LUg0YDQsNC30YDQtdGI0LXQvdC+LCDRjdGC0LAg0L3QsNGB0YLRgNC+0LnQutCwINGD0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINC00LXQudGB0YLQstC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4sINC60L7RgtC+0YDRi9C5INCx0YPQtNC10YIg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGM0YHRjy4g0JTQtdC50YHRgtCy0LjQtSDQvNC+0LbQvdC+INC/0LXRgNC10L7Qv9GA0LXQtNC10LvQuNGC0Ywg0YEg0L/QvtC80L7RidGM0Y4g0L/QsNGA0LDQvNC10YLRgNCwIGF1dG9zY2FsZV9vcC4nOwokbGFuZ1snaW5mb19jaGVja19tZW1vcnknXSA9ICfQldGB0LvQuCDRjdGC0L7RgiDQv9Cw0YDQsNC80LXRgtGAINCy0LrQu9GO0YfQtdC9LCDRgdC40YHRgtC10LzQsCDQv9C+0L/Ri9GC0LDQtdGC0YHRjyDQvtGG0LXQvdC40YLRjCDQv9Cw0LzRj9GC0YwsINC90LXQvtCx0YXQvtC00LjQvNGD0Y4g0LTQu9GPINC/0YDQtdC+0LHRgNCw0LfQvtCy0LDQvdC40Y8g0LjQt9C+0LHRgNCw0LbQtdC90LjRjywg0Lgg0LfQsNCy0LXRgNGI0LjRgtGB0Y8g0YHQsdC+0LXQvCDQv9GA0Lgg0L7QsdC90LDRgNGD0LbQtdC90LjQuCDQvdC10LTQvtGB0YLQsNGC0L7Rh9C90L7QuSDQtNC+0YHRgtGD0L/QvdC+0Lkg0L/QsNC80Y/RgtC4JzsKJGxhbmdbJ2luZm9fY3JvcHRvZml0X2RlZmF1bHRfbG9jJ10gPSAn0KPQutCw0LbQuNGC0LUg0LzQtdGB0YLQvtC/0L7Qu9C+0LbQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiwg0LjQtyDQutC+0YLQvtGA0L7Qs9C+INC90YPQttC90L4gJnF1b3Q70L7QsdGA0LXQt9Cw0YLRjCZxdW90Oywg0Y3RgtC+INC/0YDQuNCy0LXQtNC10YIg0Log0YLQvtC80YMsINGH0YLQviDQstGB0LUg0LrQsNC00YDRiyDQsdGD0LTRg9GCINGB0L7QvtGC0LLQtdGC0YHRgtCy0L7QstCw0YLRjCDQvtC/0LXRgNCw0YbQuNGP0LwsINC10YHQu9C4INC/0LDRgNCw0LzQtdGC0YAgbG9jYXRpb24g0LIg0LDRgtGA0LjQsdGD0YLQtSBmaWx0ZXJfY3JvcHRvZml0INC90LUg0L/QtdGA0LXQvtC/0YDQtdC00LXQu9GP0LXRgiDQtdCz0L4uINCc0LXRgdGC0L4g0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4gLSAmcXVvdDvRhtC10L3RgtGAJnF1b3Q7JzsKJGxhbmdbJ2luZm9fcmVzcG9uc2l2ZSddID0gJ9CV0YHQu9C4INCy0LrQu9GO0YfQtdC90L4sIFNtYXJ0SW1hZ2Ug0L/QvtC/0YvRgtCw0LXRgtGB0Y8g0L7Qv9GA0LXQtNC10LvQuNGC0Ywg0LzQsNC60YHQuNC80LDQu9GM0L3QvtC1INGA0LDQt9GA0LXRiNC10L3QuNC1INGD0YHRgtGA0L7QudGB0YLQstCwINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDQuCDQsNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuCDQv9C10YDQtdC80LDRgdGI0YLQsNCx0LjRgNC+0LLQsNGC0Ywg0LjQt9C+0LHRgNCw0LbQtdC90LjQtSwg0YfRgtC+0LHRiyDQvdC4INC/0YDQuCDQutCw0LrQuNGFINC+0LHRgdGC0L7Rj9GC0LXQu9GM0YHRgtCy0LDRhSDQstGL0YXQvtC00L3QvtC1INC40LfQvtCx0YDQsNC20LXQvdC40LUg0L3QtSDQsdGL0LvQviDRgdC70LjRiNC60L7QvCDQsdC+0LvRjNGI0LjQvCDQtNC70Y8g0L7RgtC+0LHRgNCw0LbQtdC90LjRjy4g0K3RgtC+INGB0L/QvtGB0L7QsdGB0YLQstGD0LXRgiDQv9C+0LLRi9GI0LXQvdC40Y4g0L/RgNC+0LjQt9Cy0L7QtNC40YLQtdC70YzQvdC+0YHRgtC4INC/0YDQuCDRgNCw0LfRgNCw0LHQvtGC0LrQtSDQvNC+0LHQuNC70YzQvdGL0YUg0LLQtdGA0YHQuNC5INGB0LDQudGC0L7Qsi4nOwokbGFuZ1snaW5mb19mb3JjZV9leHRlbnNpb24nXSA9ICfQldGB0LvQuCDQstC60LvRjtGH0LXQvdC+LCBTbWFydEltYWdlINC30LDRgdGC0LDQstC40YIg0LLRgdC1INGB0LPQtdC90LXRgNC40YDQvtCy0LDQvdC90YvQtSDQuNC30L7QsdGA0LDQttC10L3QuNGPINC40LzQtdGC0Ywg0YDQsNGB0YjQuNGA0LXQvdC40LUg0YTQsNC50LvQsC4g0J/RgNC40LzQtdGH0LDQvdC40LUuINCd0LXRgdC80L7RgtGA0Y8g0L3QsCDQstGB0LUg0YPRgdC40LvQuNGPINC/0L4g0L7QsdC10YHQv9C10YfQtdC90LjRjiDQv9GA0LDQstC40LvRjNC90L7RgdGC0LgsINGB0L7Qt9C00LDQvdC90L7QtSDRgNCw0YHRiNC40YDQtdC90LjQtSDRhNCw0LnQu9CwINC80L7QttC10YIg0L3QtSDRgtC+0YfQvdC+INC+0YLQvtCx0YDQsNC20LDRgtGMINGE0LDQutGC0LjRh9C10YHQutC40Lkg0YLQuNC/INC40LfQvtCx0YDQsNC20LXQvdC40Y8g0LIg0LfQsNCy0LjRgdC40LzQvtGB0YLQuCDQvtGCINC40YHQv9C+0LvRjNC30YPQtdC80YvRhSDRhNC40LvRjNGC0YDQvtCyINC4INC/0LDRgNCw0LzQtdGC0YDQvtCyINGN0YLQuNGFINGE0LjQu9GM0YLRgNC+0LIuJzsKJGxhbmdbJ2ltYWdlX3VybF9oYXNjYWNoZWRpciddID0gJ9Ch0L7QtNC10YDQttC40YIg0LvQuCBVUkwg0LLRi9GI0LUgINC/0YPRgtGMINC60Y3RiNCwPyAodXBsb2Fkcy9fU21hcnRJbWFnZSknOwokbGFuZ1snaW1hZ2VfdXJsX3ByZWZpeCddID0gJ9Cf0YDQtdGE0LjQutGBIFVSTC3QsNC00YDQtdGB0LAg0LjQt9C+0LHRgNCw0LbQtdC90LjRjyc7CiRsYW5nWydpbmZvX2NhY2hlX2FnZSddID0gJ9Cj0LrQsNC20LjRgtC1INC80LDQutGB0LjQvNCw0LvRjNC90YvQuSDQstC+0LfRgNCw0YHRgiDRhNCw0LnQu9CwICjQsiDQtNC90Y/RhSkg0LTQviDQtdCz0L4g0YPQtNCw0LvQtdC90LjRjyDQuCDQv9GA0LjQvdGD0LTQuNGC0LXQu9GM0L3QvtC5INGA0LXQs9C10L3QtdGA0LDRhtC40LguINCt0YLQviDQv9C+0LvQtdC30L3Qviwg0LXRgdC70Lgg0LLRiyDQuNC30LzQtdC90LjQu9C4INC90LXQutC+0YLQvtGA0YvQtSDQv9Cw0YDQsNC80LXRgtGA0YssINC40YHQv9C+0LvRjNC30YPQtdC80YvQtSDQv9GA0Lgg0YHQvtC30LTQsNC90LjQuCDQuNC30L7QsdGA0LDQttC10L3QuNC5LCDQuNC70Lgg0LTQu9GPINGD0L/RgNCw0LLQu9C10L3QuNGPINC+0LHRitC10LzQvtC8INC40YHQv9C+0LvRjNC30YPQtdC80L7Qs9C+INC00LjRgdC60L7QstC+0LPQviDQv9GA0L7RgdGC0YDQsNC90YHRgtCy0LAuINCU0LvRjyDQvtGC0LrQu9GO0YfQtdC90LjRjyDQsNCy0YLQvtC80LDRgtC40YfQtdGB0LrQvtCz0L4g0YPQtNCw0LvQtdC90LjQtSDRhNCw0LnQu9C+0LIg0LLQstC10LTQuNGC0LUgMCc7CiRsYW5nWydpbmZvX2NhY2hlX3BhdGgnXSA9ICfQn9GD0YLRjCDQtNC70Y8g0YXRgNCw0L3QtdC90LjRjyDQuNC30L7QsdGA0LDQttC10L3QuNC5INCyINC60Y3RiNC1LiDQmtGN0Ygt0L/Rg9GC0Ywg0L7RgtC90L7RgdC40YLRgdGPINC6INGB0YHRi9C70LrQtSDQvdCwINC60L7QvdGE0LjQs9GD0YDQsNGG0LjRjiAmcXVvdDtyb290X3BhdGgmcXVvdDsnOwokbGFuZ1snaW5mb19pbWFnZV91cmxfaGFzY2FjaGVkaXInXSA9ICfQldGB0LvQuCDQstCw0YggQ0ROINGD0LrQsNC30YvQstCw0LXRgiDQv9GA0Y/QvNC+INC90LAg0LrQsNGC0LDQu9C+0LMg0LrQtdGI0LAsINCy0Ysg0LzQvtC20LXRgtC1INCy0LrQu9GO0YfQuNGC0Ywg0Y3RgtGDINC+0L/RhtC40Y4uJzsKJGxhbmdbJ2luZm9faW1hZ2VfdXJsX3ByZWZpeCddID0gJ9Cj0LrQsNC20LjRgtC1INC/0YDQtdGE0LjQutGBIFVSTC3QsNC00YDQtdGB0LAgINC00LvRjyDQstGB0LXRhSDRgdCz0LXQvdC10YDQuNGA0L7QstCw0L3QvdGL0YUg0LjQt9C+0LHRgNCw0LbQtdC90LjQuS4g0J/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0Y3RgtC+IFVSTC3QsNC00YDQtdGBINC30LDQs9GA0YPQt9C+0LosINC+0LTQvdCw0LrQviDQtdGB0LvQuCDRgyDQstCw0YEg0LXRgdGC0Ywg0YHQvtCx0YHRgtCy0LXQvdC90YvQuSBDRE4gKNC40LvQuCDQvdC10YHQutC+0LvRjNC60L4g0LTQvtC80LXQvdC+0LIsINGD0LrQsNC30YvQstCw0Y7RidC40YUg0L3QsCDQvtC00LjQvSDQuCDRgtC+0YIg0LbQtSDQutCw0YLQsNC70L7QsyksINCy0Ysg0LzQvtC20LXRgtC1INGD0LrQsNC30LDRgtGMINC30LTQtdGB0Ywg0LTRgNGD0LPQvtC1INC40LzRjyc7CiRsYW5nWydpbmZvX3Byb2dyZXNzaXZlJ10gPSAn0JXRgdC70Lgg0LLQutC70Y7Rh9C10L3Qviwg0LjQt9C+0LHRgNCw0LbQtdC90LjRjyBKUEVHINCx0YPQtNGD0YIg0YHQvtGF0YDQsNC90LXQvdGLINCyINCy0LjQtNC1INC/0YDQvtCz0YDQtdGB0YHQuNCy0L3Ri9GFINC40LfQvtCx0YDQsNC20LXQvdC40LkuINCt0YLQvtGCINC/0LDRgNCw0LzQtdGC0YAg0YLQsNC60LbQtSDQvNC+0LbQvdC+INC/0LXRgNC10L7Qv9GA0LXQtNC10LvQuNGC0Ywg0YEg0L/QvtC80L7RidGM0Y4g0L/RgNC+0LPRgNC10YHRgdC40LLQvdC+0LPQviDQv9Cw0YDQsNC80LXRgtGA0LAuJzsKJGxhbmdbJ2luZm9fc3VwcHJlc3NfZXJyb3JzJ10gPSAn0KPQutCw0LbQuNGC0LUg0LfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0L/QsNGA0LDQvNC10YLRgNCwICZxdW90O3NpbGVudCZxdW90Oyc7CiRsYW5nWydtYXhfY2FjaGVfYWdlJ10gPSAn0JzQsNC60YHQuNC80LDQu9GM0L3Ri9C5INGA0LDQt9C80LXRgCDRhNCw0LnQu9CwINC60Y3RiNCwICjQtNC90LXQuSknOwokbGFuZ1snbXNnX2FsaWFzZXNfdXBkYXRlZCddID0gJ9Ce0LHQvdC+0LLQu9C10L3RiyDQsNC70LjQsNGB0YsnOwokbGFuZ1snbXNnX2NhY2hlY2xlYW5lZCddID0gJ9Ce0YfQuNGB0YLQutCwINC60LXRiNCwINC30LDQstC10YDRiNC10L3QsC4g0KPQtNCw0LvQtdC90L4gJWQg0YTQsNC50LvQvtCyJzsKJGxhbmdbJ21zZ19jYWNoZXJlbW92ZWQnXSA9ICfQmtGN0Ygg0L/QvtC70L3QvtGB0YLRjNGOINC+0YfQuNGJ0LXQvSc7CiRsYW5nWydtc2dfcHJlZnN1cGRhdGVkJ10gPSAn0J3QsNGB0YLRgNC+0LnQutC4INC+0LHQvdC+0LLQu9C10L3Riyc7CiRsYW5nWydub25lJ10gPSAn0J3QuNC60YLQvic7CiRsYW5nWydvcHRpb25zJ10gPSAn0J7Qv9GG0LjQuCc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ9Cc0L7QtNGD0LvRjCDRg9GB0YLQsNC90L7QstC70LXQvSc7CiRsYW5nWydwcm9tcHRfYXV0b3NjYWxlX29wJ10gPSAn0JTQtdC50YHRgtCy0LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQtNC70Y8g0LDQstGC0L7QvNCw0YHRiNGC0LDQsdC40YDQvtCy0LDQvdC40Y8nOwokbGFuZ1sncHJvbXB0X2Nyb3B0b2ZpdF9kZWZhdWx0X2xvYyddID0gJ9Cg0LDRgdC/0L7Qu9C+0LbQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQv9GA0Lgg0LrQsNC00YDQuNGA0L7QstCw0L3QuNC1IChjcm9wIHRvIGZpdCknOwokbGFuZ1sncHJvbXB0X2ZvcmNlX2V4dGVuc2lvbiddID0gJ9CS0YHQtSDRhNCw0LnQu9GLINC00L7Qu9C20L3RiyDQuNC80LXRgtGMINGA0LDRgdGI0LjRgNC10L3QuNC1INGE0LDQudC70LAnOwokbGFuZ1sncHJvbXB0X2xvY19ib3R0b21sZWZ0J10gPSAn0JLQvdC40LfRgyDRgdC70LXQstCwIChibCknOwokbGFuZ1sncHJvbXB0X2xvY19ib3R0b21jZW50ZXInXSA9ICfQktC90LjQt9GDINCyINGG0LXQvdGC0YDQtSAoYmMpJzsKJGxhbmdbJ3Byb21wdF9sb2NfYm90dG9tcmlnaHQnXSA9ICfQktC90LjQt9GDINGB0L/RgNCw0LLQsCAoYnIpJzsKJGxhbmdbJ3Byb21wdF9sb2NfY2VudGVybGVmdCddID0gJ9CSINGG0LXQvdGC0YDQtSDRgdC70LXQstCwIChjbCknOwokbGFuZ1sncHJvbXB0X2xvY19jZW50ZXInXSA9ICfQkiDRhtC10L3RgtGA0LUgKGMpJzsKJGxhbmdbJ3Byb21wdF9sb2NfY2VudGVycmlnaHQnXSA9ICfQkiDRhtC10L3RgtGA0LUg0YHQv9GA0LDQstCwIChjbCknOwokbGFuZ1sncHJvbXB0X2xvY190b3BsZWZ0J10gPSAn0JLQstC10YDRhdGDINGB0LvQtdCy0LAgKHRsKSc7CiRsYW5nWydwcm9tcHRfbG9jX3RvcGNlbnRlciddID0gJ9CS0LLQtdGA0YXRgyDQsiDRhtC10L3RgtGA0LUgKHRjKSc7CiRsYW5nWydwcm9tcHRfbG9jX3RvcHJpZ2h0J10gPSAn0JLQstC10YDRhdGDINGB0L/RgNCw0LLQsCAodHIpJzsKJGxhbmdbJ3Byb21wdF9wcm9ncmVzc2l2ZSddID0gJ9Ch0L7RhdGA0LDQvdGP0YLRjCDQuNC30L7QsdGA0LDQttC10L3QuNGPIEpQRyDQutCw0Log0L/RgNC+0LPRgNC10YHRgdC40LLQvdGL0LUnOwokbGFuZ1sncmVzaXplJ10gPSAn0JjQt9C80LXQvdC40YLRjCDRgNCw0LfQvNC10YAnOwokbGFuZ1sncmVzaXppbmcnXSA9ICfQmNC30LzQtdC90LXQvdC40LUg0YDQsNC30LzQtdGA0LAnOwokbGFuZ1sncmVzcG9uc2l2ZSddID0gJ9CQ0LTQsNC/0YLQuNCy0L3QvtGB0YLRjCc7CiRsYW5nWydzbWFydCddID0gJ9Cj0LzQvdGL0LknOwokbGFuZ1snc3VibWl0J10gPSAn0J7RgtC/0YDQsNCy0LjRgtGMJzsKJGxhbmdbJ3N1cHByZXNzX2Vycm9ycyddID0gJ9Cf0L7QtNCw0LLQu9GP0YLRjCDQvtGI0LjQsdC60LgnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.AutoProcessMasterTask.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTUgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IGNyZWF0aW5nIGltYWdlIHRhZ3MgaW4gYSBzbWFydAojICB3YXkgdG8gb3B0aW1pemUgcGVyZm9ybWFuY2UuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0cyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCm5hbWVzcGFjZSBTbWFydEltYWdlOwoKY2xhc3MgQXV0b1Byb2Nlc3NNYXN0ZXJUYXNrIGltcGxlbWVudHMgXENtc1JlZ3VsYXJUYXNrCnsKICAgIGNvbnN0IFBSRUZfTEFTVFJVTiA9ICdhdXRvcHJvY2Vzc19sYXN0cnVuJzsKICAgIHByaXZhdGUgJF9wcmVmczsKICAgIHByaXZhdGUgJF9mb3JjZTsKCiAgICBwcml2YXRlIGZ1bmN0aW9uICZnZXRfcHJlZnMoKQogICAgewogICAgICAgIGlmKCAhJHRoaXMtPl9wcmVmcyApICR0aGlzLT5fcHJlZnMgPSBhdXRvcHJvY2Vzc19vcHRpb25zOjpsb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fcHJlZnM7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGZvcmNlKCkKICAgIHsKICAgICAgICAkdGhpcy0+X2ZvcmNlID0gdHJ1ZTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKQogICAgewogICAgICAgIHJldHVybiBiYXNlbmFtZShnZXRfY2xhc3MoJHRoaXMpKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rlc2NyaXB0aW9uKCkKICAgIHsKICAgICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfU01BUlRJTUFHRSk7CiAgICAgICAgcmV0dXJuICRtb2QtPkxhbmcoJ2F1dG9wcm9jZXNzdGFza19kZXNjcmlwdGlvbicpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0KCR0aW1lID0gJycpCiAgICB7CiAgICAgICAgaWYoICEkdGltZSApICR0aW1lID0gdGltZSgpOwoKICAgICAgICAkb3B0cyA9ICR0aGlzLT5nZXRfcHJlZnMoKTsKICAgICAgICBpZiggISAkb3B0cy0+ZW5hYmxlZCApIHJldHVybiBGQUxTRTsKICAgICAgICBpZiggJHRoaXMtPl9mb3JjZSApIHJldHVybiBUUlVFOwoKICAgICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfU01BUlRJTUFHRSk7CiAgICAgICAgJGxhc3RydW4gPSAkbW9kLT5HZXRQcmVmZXJlbmNlKHNlbGY6OlBSRUZfTEFTVFJVTik7CiAgICAgICAgaWYoIHRpbWUoKSAtICRsYXN0cnVuIDwgMzYwMCAqIDYgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9maWxlcygkZGlyKQogICAgewogICAgICAgICRwcmVmcyA9ICR0aGlzLT5nZXRfcHJlZnMoKTsKICAgICAgICBpZiggISRwcmVmcy0+aXNfZGlyX3NjYW5uYWJsZSgkZGlyKSApIHJldHVybjsKCiAgICAgICAgJG91dCA9IGFycmF5KCk7CiAgICAgICAgJGRoID0gb3BlbmRpcigkZGlyKTsKICAgICAgICB3aGlsZSggZmFsc2UgIT09ICgkZmlsZSA9IHJlYWRkaXIoJGRoKSkgKSB7CiAgICAgICAgICAgICRmaWxlc3BlYyA9ICRkaXIuJy8nLiRmaWxlOwogICAgICAgICAgICBpZiggc3RhcnRzd2l0aCgkZmlsZSwnLicpICkgY29udGludWU7CgogICAgICAgICAgICBpZiggaXNfZmlsZSgkZmlsZXNwZWMpICYmICRwcmVmcy0+aXNfZmlsZV9zY2FubmFibGUoJGZpbGVzcGVjKSApIHsKICAgICAgICAgICAgICAgICRzaXplaW5mbyA9IGdldGltYWdlc2l6ZSgkZmlsZXNwZWMpOwogICAgICAgICAgICAgICAgaWYoICFpc19hcnJheSgkc2l6ZWluZm8pIHx8IGNvdW50KCRzaXplaW5mbykgPCAyICkgY29udGludWU7CiAgICAgICAgICAgICAgICBpZiggJHNpemVpbmZvWzBdIDw9ICRwcmVmcy0+bWF4X3NpemUgJiYgJHNpemVpbmZvWzFdIDw9ICRwcmVmcy0+bWF4X3NpemUgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICRvdXRbXSA9ICRmaWxlc3BlYzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKCBpc19kaXIoJGZpbGVzcGVjKSApIHsKICAgICAgICAgICAgICAgICR0bXAgPSAkdGhpcy0+Z2V0X2ZpbGVzKCRmaWxlc3BlYyk7CiAgICAgICAgICAgICAgICBpZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgKSAkb3V0ID0gYXJyYXlfbWVyZ2UoJG91dCwkdG1wKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gb25fc3VjY2VzcygkdGltZSA9ICcnKQogICAgewogICAgICAgIGlmKCAhJHRpbWUgKSAkdGltZSA9IHRpbWUoKTsKICAgICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfU01BUlRJTUFHRSk7CiAgICAgICAgJG1vZC0+U2V0UHJlZmVyZW5jZShzZWxmOjpQUkVGX0xBU1RSVU4sJHRpbWUpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBvbl9mYWlsdXJlKCR0aW1lID0gJycpIHt9CgogICAgcHVibGljIGZ1bmN0aW9uIHNjYW5fZm9yX2ZpbGVzKCkKICAgIHsKICAgICAgICAkb3B0cyA9ICR0aGlzLT5nZXRfcHJlZnMoKTsKICAgICAgICAkaW5jID0gJG9wdHMtPmdldF9pbmNsdWRlX2RpcnMoKTsKICAgICAgICAkY29uZmlnID0gXGNtc19jb25maWc6OmdldF9pbnN0YW5jZSgpOwogICAgICAgICRvdXQgPSBhcnJheSgpOwogICAgICAgIGlmKCBjb3VudCgkaW5jKSApIHsKICAgICAgICAgICAgZm9yZWFjaCggJGluYyBhcyAkZGlyICkgewogICAgICAgICAgICAgICAgJHRtcCA9ICR0aGlzLT5nZXRfZmlsZXMoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uJy8nLiRkaXIpOwogICAgICAgICAgICAgICAgaWYoIGNvdW50KCR0bXApICkgJG91dCA9IGFycmF5X21lcmdlKCRvdXQsJHRtcCk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkb3V0ID0gJHRoaXMtPmdldF9maWxlcygkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBleGVjdXRlKCR0aW1lID0gJycpCiAgICB7CiAgICAgICAgaWYoICEkdGltZSApICR0aW1lID0gdGltZSgpOwoKICAgICAgICAkZmlsZXMgPSAkdGhpcy0+c2Nhbl9mb3JfZmlsZXMoKTsKICAgICAgICBpZiggY291bnQoJGZpbGVzKSApIHsKICAgICAgICAgICAgLy8gZGV2aWRlIHRoZSBmaWxlIGxpc3QgaW50byBjaHVua3MKICAgICAgICAgICAgJGNodW5rX3NpemUgPSA1OyAvLyB0b2RvOiBzZXR0aW5nCiAgICAgICAgICAgICRjaHVua3MgPSBhcnJheV9jaHVuaygkZmlsZXMsJGNodW5rX3NpemUpOwogICAgICAgICAgICBmb3JlYWNoKCAkY2h1bmtzIGFzICRjaHVuayApIHsKICAgICAgICAgICAgICAgICRtc2cgPSBuZXcgQXV0b1Byb2Nlc3NNZXNzYWdlKCRjaHVuayk7CiAgICAgICAgICAgICAgICAkbXNnLT5zYXZlKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/class.AutoProcessMessage.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCm5hbWVzcGFjZSBTbWFydEltYWdlOwoKZmluYWwgY2xhc3MgQXV0b1Byb2Nlc3NNZXNzYWdlIGV4dGVuZHMgXENNU01TXEFzeW5jXEpvYgp7CiAgICBwcml2YXRlICRfZmlsZXM7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRmaWxlcykKICAgIHsKICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCk7CiAgICAgICAgJHRoaXMtPl9maWxlcyA9ICRmaWxlczsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gJmdldF9wcmVmcygpCiAgICB7CiAgICAgICAgc3RhdGljICRfcHJlZnM7CiAgICAgICAgaWYoICEkX3ByZWZzICkgJF9wcmVmcyA9IGF1dG9wcm9jZXNzX29wdGlvbnM6OmxvYWQoKTsKICAgICAgICByZXR1cm4gJF9wcmVmczsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYXV0b2NvbnZlcnRfZmlsZSgkZmlsZW5hbWUpCiAgICB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgaWYoICFpc19maWxlKCRmaWxlbmFtZSkgKSB0aHJvdyBuZXcgXEV4Y2VwdGlvbignRmlsZSBub3QgZm91bmQnKTsKICAgICAgICAgICAgaWYoICFpc193cml0YWJsZSgkZmlsZW5hbWUpICkgdGhyb3cgbmV3IFxFeGNlcHRpb24oJ0ZpbGUgbm90IHdyaXRhYmxlJyk7CiAgICAgICAgICAgICRwcmVmcyA9ICR0aGlzLT5nZXRfcHJlZnMoKTsKICAgICAgICAgICAgaWYoICEkcHJlZnMtPmlzX2ZpbGVfc2Nhbm5hYmxlKCRmaWxlbmFtZSkgKSByZXR1cm47CgogICAgICAgICAgICAkc2l6ZWluZm8gPSBnZXRpbWFnZXNpemUoJGZpbGVuYW1lKTsKICAgICAgICAgICAgaWYoICFpc19hcnJheSgkc2l6ZWluZm8pIHx8IGNvdW50KCRzaXplaW5mbykgPCAyICkgdGhyb3cgbmV3IFxFeGNlcHRpb24oJ1Byb2JsZW0gZ2V0dGluZyBpbWFnZSBkZXRhaWxzJyk7CiAgICAgICAgICAgIGlmKCAkc2l6ZWluZm9bMF0gPD0gJHByZWZzLT5tYXhfc2l6ZSAmJiAkc2l6ZWluZm9bMV0gPD0gJHByZWZzLT5tYXhfc2l6ZSkgcmV0dXJuOyAvLyBub3RoaW5nIHRvIGRvLgoKICAgICAgICAgICAgJG9wdHMgPSBhcnJheSgpOwogICAgICAgICAgICAkb3B0c1snc3JjJ10gPSAkZmlsZW5hbWU7CiAgICAgICAgICAgICRvcHRzWydub3RhZyddID0gMTsKICAgICAgICAgICAgJG9wdHNbJ25vZW1iZWQnXSA9IDE7CiAgICAgICAgICAgICRvcHRzWydvdmVyd3JpdGUnXSA9IDE7CiAgICAgICAgICAgIGlmKCAhJHByZWZzLT5hdXRvcm90YXRlICkgJG9wdHNbJ25vcm90YXRlJ10gPSAxOwogICAgICAgICAgICAkb3B0c1snZmlsdGVyX3Jlc2l6ZSddID0gJ2UsJy4kcHJlZnMtPm1heF9zaXplOwogICAgICAgICAgICBpZiggJHByZWZzLT53YXRlcm1hcmsgKSAkb3B0c1snZmlsdGVyX3dhdGVybWFyayddID0gMTsKCiAgICAgICAgICAgICRvdXQgPSBcc2lfdXRpbHM6OnByb2Nlc3NfaW1hZ2UoJG9wdHMpOwogICAgICAgICAgICBpZiggJG91dFsnZXJyb3InXSApIHRocm93IG5ldyBcRXhjZXB0aW9uKCRvdXRbJ2Vycm9yJ10pOwogICAgICAgICAgICBpZiggIWlzc2V0KCRvdXRbJ2Rlc3RfZmlsZSddKSB8fCAhJG91dFsnZGVzdF9maWxlJ10gKSB0aHJvdyBuZXcgXEV4Y2VwdGlvbignTm8gY2FjaGVkIGltYWdlIGdlbmVyYXRlZCcpOwogICAgICAgICAgICBpZiggIWlzX2ZpbGUoJG91dFsnZGVzdF9maWxlJ10pICkgdGhyb3cgbmV3IFxFeGNlcHRpb24oJ091dHB1dCBmaWxlIG5vdCBmb3VuZCcpOwogICAgICAgICAgICBAcmVuYW1lKCRvdXRbJ2Rlc3RfZmlsZSddLCRmaWxlbmFtZSk7CiAgICAgICAgICAgIEB1bmxpbmsoJG91dFsnZGVzdF9maWxlJ10pOwogICAgICAgIH0KICAgICAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgXHh0X3V0aWxzOjpsb2dfZXhjZXB0aW9uKCAkZSApOwogICAgICAgICAgICBhdWRpdCgnJywnU21hcnRJbWFnZSBBdXRvUHJvY2VzcycsJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAgICAgICAgIGF1ZGl0KCcnLCdTbWFydEltYWdlIEF1dG9Qcm9jZXNzJywnRmFpbGVkIGNvbnZlcnRpbmcgJy4kZmlsZW5hbWUpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZXhlY3V0ZSgpCiAgICB7CiAgICAgICAgZm9yZWFjaCggJHRoaXMtPl9maWxlcyBhcyAkZmlsZSApIHsKICAgICAgICAgICAgJHRoaXMtPmF1dG9jb252ZXJ0X2ZpbGUoJGZpbGUpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KfSAvLyBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.autoprocess_options.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCm5hbWVzcGFjZSBTbWFydEltYWdlOwoKZmluYWwgY2xhc3MgYXV0b3Byb2Nlc3Nfb3B0aW9ucwp7CiAgICBwcml2YXRlICRfZGF0YSA9IGFycmF5KCdlbmFibGVkJz0+MCwnaWdub3JlX2RpcnMnPT5udWxsLCdpZ25vcmVfZXh0ZW5zaW9ucyc9Pm51bGwsJ2luY2x1ZGVfZGlycyc9Pm51bGwsJ21heF9zaXplJz0+MTAyNCwnYXV0b3JvdGF0ZSc9PjEsJ3dhdGVybWFyayc9PjApOwoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHt9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgaWYoIGFycmF5X2tleV9leGlzdHMoJGtleSwkdGhpcy0+X2RhdGEpICkgcmV0dXJuICR0aGlzLT5fZGF0YVska2V5XTsKICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCIka2V5IGlzIG5vdCBhIGdldHRhYmxlIG1lbWJlciBvZiAiLl9fQ0xBU1NfXyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fc2V0KCRrZXksJHZhbCkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAnaWdub3JlX2RpcnMnOgogICAgICAgIGNhc2UgJ2lnbm9yZV9leHRlbnNpb25zJzoKICAgICAgICBjYXNlICdpbmNsdWRlX2RpcnMnOgogICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSB0cmltKCR2YWwpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnbWF4X3NpemUnOgogICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSBtYXgoMTAwLChpbnQpICR2YWwpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnZW5hYmxlZCc6CiAgICAgICAgY2FzZSAnYXV0b3JvdGF0ZSc6CiAgICAgICAgY2FzZSAnd2F0ZXJtYXJrJzoKICAgICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gXHh0X3V0aWxzOjp0b19ib29sKCR2YWwpOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF9kaXJsaXN0KCRzdHIpCiAgICB7CiAgICAgICAgJHRtcCA9IHRyaW0oJHN0cik7CiAgICAgICAgaWYoICEkdG1wICkgcmV0dXJuOwoKICAgICAgICAkbGlzdF8xID0gZXhwbG9kZSgiXG4iLCRzdHIpOwogICAgICAgICRvdXQgPSBhcnJheSgpOwogICAgICAgIGZvcmVhY2goICRsaXN0XzEgYXMgJGxpc3RfaXRlbSApIHsKICAgICAgICAgICAgJGxpc3RfaXRlbSA9IHRyaW0oJGxpc3RfaXRlbSk7CiAgICAgICAgICAgIGlmKCAhJGxpc3RfaXRlbSApIGNvbnRpbnVlOwogICAgICAgICAgICBpZiggIWluX2FycmF5KCRsaXN0X2l0ZW0sJG91dCkgKSAkb3V0W10gPSAkbGlzdF9pdGVtOwogICAgICAgIH0KICAgICAgICBpZiggY291bnQoJG91dCkgKSByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2luY2x1ZGVfZGlycygpCiAgICB7CiAgICAgICAgc3RhdGljICRfb3V0OwogICAgICAgIGlmKCAhJF9vdXQgKSAkX291dCA9ICR0aGlzLT5nZXRfZGlybGlzdCgkdGhpcy0+aW5jbHVkZV9kaXJzKTsKICAgICAgICByZXR1cm4gJF9vdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9leGNsdWRlX2RpcnMoKQogICAgewogICAgICAgIHN0YXRpYyAkX291dDsKICAgICAgICBpZiggISRfb3V0ICkgJF9vdXQgPSAkdGhpcy0+Z2V0X2Rpcmxpc3QoJHRoaXMtPmlnbm9yZV9kaXJzKTsKICAgICAgICByZXR1cm4gJF9vdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGlzX2ltYWdlZmlsZSgkZmlsZW5hbWUpCiAgICB7CiAgICAgICAgJHR5cGUgPSBceHRfdXRpbHM6OmdldF9taW1lX3R5cGUoJGZpbGVuYW1lKTsKICAgICAgICAkdHlwZSA9IHN0cnRvbG93ZXIoJHR5cGUpOwogICAgICAgIGlmKCAhc3RhcnRzd2l0aCgkdHlwZSwnaW1hZ2UvJykgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGlzX2ZpbGVfZXhjbHVkZWQoJGZpbGVuYW1lKQogICAgewogICAgICAgIGlmKCAhJHRoaXMtPmlnbm9yZV9leHRlbnNpb25zICkgcmV0dXJuIEZBTFNFOwoKICAgICAgICBzdGF0aWMgJF9leHQ7CiAgICAgICAgaWYoICEkX2V4dCApIHsKICAgICAgICAgICAgJF9saXN0ID0gYXJyYXkoKTsKICAgICAgICAgICAgJGxpc3RfYSA9IGV4cGxvZGUoJywnLCR0aGlzLT5pZ25vcmVfZXh0ZW5zaW9ucyk7CiAgICAgICAgICAgIGZvcmVhY2goICRsaXN0X2EgYXMgJGV4dCApIHsKICAgICAgICAgICAgICAgICRleHQgPSBzdHJ0b2xvd2VyKHRyaW0oJGV4dCkpOwogICAgICAgICAgICAgICAgaWYoICEkZXh0ICkgY29udGludWU7CiAgICAgICAgICAgICAgICBpZiggIWluX2FycmF5KCRleHQsJF9saXN0KSApICRfbGlzdFtdID0gJGV4dDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJGV4dCA9IHN0cnRvbG93ZXIoc3Vic3RyKHN0cnJjaHIoJGZpbGVuYW1lLCAnLicpLCAxKSk7CiAgICAgICAgaWYoICEkZXh0ICkgcmV0dXJuIEZBTFNFOwoKICAgICAgICBpZiggaW5fYXJyYXkoJGV4dCwkX2xpc3QpICkgcmV0dXJuIFRSVUU7CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBpc19maWxlX3NjYW5uYWJsZShzdHJpbmcgJGZpbGVuYW1lKQogICAgewogICAgICAgIGlmKCAhaXNfZmlsZSgkZmlsZW5hbWUpICkgcmV0dXJuIEZBTFNFOwoKICAgICAgICAkYm4gPSBiYXNlbmFtZSgkZmlsZW5hbWUpOwogICAgICAgIGlmKCBzdGFydHN3aXRoKCRibiwnLicpICkgcmV0dXJuIEZBTFNFOwogICAgICAgIGlmKCAhaXNfd3JpdGFibGUoJGZpbGVuYW1lKSApIHJldHVybiBGQUxTRTsKICAgICAgICBpZiggISR0aGlzLT5pc19pbWFnZWZpbGUoJGZpbGVuYW1lKSApIHJldHVybiBGQUxTRTsKICAgICAgICAkbXRpbWUgPSBmaWxlbXRpbWUoJGZpbGVuYW1lKTsKICAgICAgICAkbGltaXQgPSB0aW1lKCkgLSAzMCAqIDI0ICogMzYwMDsKICAgICAgICBpZiggJG10aW1lIDwgJGxpbWl0ICkgcmV0dXJuIEZBTFNFOyAvLyBPTEQgZmlsZXMKICAgICAgICBpZiggJHRoaXMtPmlzX2ZpbGVfZXhjbHVkZWQoJGZpbGVuYW1lKSApIHJldHVybiBGQUxTRTsKICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaXNfZGlyX3NjYW5uYWJsZShzdHJpbmcgJGRpcikKICAgIHsKICAgICAgICAkZGlyID0gdHJpbSgkZGlyKTsKICAgICAgICBpZiggISRkaXIgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgJGJuID0gYmFzZW5hbWUoJGRpcik7CiAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJGJuLCcuJykgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgaWYoIGlzX2ZpbGUoJGRpci4iLy5ub3NpIikgKSByZXR1cm4gRkFMU0U7CgogICAgICAgICRjb25maWcgPSBcY21zX2NvbmZpZzo6Z2V0X2luc3RhbmNlKCk7CiAgICAgICAgJHVwID0gJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ107CiAgICAgICAgaWYoIHN0YXJ0c3dpdGgoICRkaXIsICR1cCkgKSAkZGlyID0gc3Vic3RyKCRkaXIsc3RybGVuKCR1cCkpOwogICAgICAgICRkaXIgPSBsdHJpbSgkZGlyLCcvJy5ESVJFQ1RPUllfU0VQQVJBVE9SKTsKICAgICAgICBpZiggIWlzX2RpcigkdXAuJy8nLiRkaXIpICkgcmV0dXJuIEZBTFNFOyAvLyBtdXN0IGJlIGEgcmVhbCBkaXJlY3RvcnkgaW5zaWRlIHVwbG9hZHMgcGF0aAoKICAgICAgICAkaW5jbHVkZV9kaXJzID0gJHRoaXMtPmdldF9pbmNsdWRlX2RpcnMoKTsKICAgICAgICBpZiggIWVtcHR5KCRpbmNsdWRlX2RpcnMpICkgewogICAgICAgICAgICAkZm5kID0gZmFsc2U7CiAgICAgICAgICAgIGZvcmVhY2goICRpbmNsdWRlX2RpcnMgYXMgJG9uZWRpciApIHsKICAgICAgICAgICAgICAgIGlmKCBzdGFydHN3aXRoKCRkaXIsJG9uZWRpcikgKSB7CiAgICAgICAgICAgICAgICAgICAgJGZuZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoICEkZm5kICkgcmV0dXJuIEZBTFNFOwogICAgICAgIH0KCiAgICAgICAgJGV4Y2x1ZGVfZGlycyA9ICR0aGlzLT5nZXRfZXhjbHVkZV9kaXJzKCk7CiAgICAgICAgaWYoIGVtcHR5KCRleGNsdWRlX2RpcnMpICkgcmV0dXJuIFRSVUU7CgogICAgICAgIGZvcmVhY2goICRleGNsdWRlX2RpcnMgYXMgJG9uZWRpciApIHsKICAgICAgICAgICAgaWYoIHN0YXJ0c3dpdGgoICRkaXIsICRvbmVkaXIgKSApIHJldHVybiBGQUxTRTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiAmbG9hZCgpCiAgICB7CiAgICAgICAgc3RhdGljICRfb2JqOwogICAgICAgIGlmKCAhJF9vYmogKSB7CiAgICAgICAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9TTUFSVElNQUdFKTsKICAgICAgICAgICAgJHRtcCA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ2FwX3NldHRpbmdzJyk7CiAgICAgICAgICAgIGlmKCAkdG1wICkgewogICAgICAgICAgICAgICAgJF9vYmogPSB1bnNlcmlhbGl6ZSgkdG1wKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRfb2JqID0gbmV3IHNlbGYoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJF9vYmo7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNhdmUoKQogICAgewogICAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9TTUFSVElNQUdFKTsKICAgICAgICAkbW9kLT5TZXRQcmVmZXJlbmNlKCdhcF9zZXR0aW5ncycsc2VyaWFsaXplKCR0aGlzKSk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBkZWxldGUoKQogICAgewogICAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9TTUFSVElNQUdFKTsKICAgICAgICAkbW9kLT5SZW1vdmVQcmVmZXJlbmNlKCdhcF9zZXR0aW5ncycpOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.ImageBase.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IGNyZWF0aW5nIGltYWdlIHRhZ3MgaW4gYSBzbWFydAojICB3YXkgdG8gb3B0aW1pemUgcGVyZm9ybWFuY2UuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgSW1hZ2VCYXNlIGltcGxlbWVudHMgQXJyYXlBY2Nlc3MKewogICAgcHJpdmF0ZSAgICAgICAgJF90cmFuc3BhcmVudDsKICAgIHByaXZhdGUgICAgICAgICRfcnNyYzsKICAgIHByaXZhdGUgICAgICAgICRfc3JjbmFtZTsKICAgIHByaXZhdGUgICAgICAgICRfZGlydHk7CiAgICBwcml2YXRlICAgICAgICAkX2luZm87CiAgICBwcml2YXRlIHN0YXRpYyAkX2tleXMgPSBbJ2RpcnR5JywgJ3JzcmMnLCAnd2lkdGgnLCAnaGVpZ2h0JywgJ3R5cGUnLCAnZmlsZW5hbWUnLCAnbmFtZScsICd0cmFuc3BhcmVudCddOwogICAgCiAgICBwcml2YXRlIGZ1bmN0aW9uIGNyZWF0ZV9uZXdfcnNyYygkbWltZXR5cGUsICR3aWR0aCwgJGhlaWdodCkKICAgIHsKICAgICAgICBzd2l0Y2goJG1pbWV0eXBlKQogICAgICAgIHsKICAgICAgICAgICAgY2FzZSAnaW1hZ2UvanBlZyc6CiAgICAgICAgICAgICAgICAkX3JzcmMgPSBpbWFnZWNyZWF0ZXRydWVjb2xvcigkd2lkdGgsICRoZWlnaHQpOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICByZXR1cm4gJF9yc3JjOwogICAgICAgICAgICAKICAgICAgICAgICAgY2FzZSAnaW1hZ2UvcG5nJzoKICAgICAgICAgICAgY2FzZSAnaW1hZ2Uvd2VicCc6CiAgICAgICAgICAgICAgICAvLyBmcm9tIHN1cGVyc2l6ZXIKICAgICAgICAgICAgICAgICRfcnNyYyA9IGltYWdlY3JlYXRldHJ1ZWNvbG9yKCR3aWR0aCwgJGhlaWdodCk7CiAgICAgICAgICAgICAgICAkY29sb3IgPSBpbWFnZWNvbG9yYWxsb2NhdGVhbHBoYSgkX3JzcmMsIDI1NSwgMjU1LCAyNTUsIDEyNyk7CiAgICAgICAgICAgICAgICBpbWFnZWNvbG9ydHJhbnNwYXJlbnQoJF9yc3JjLCAkY29sb3IpOwogICAgICAgICAgICAgICAgJHRoaXMtPl90cmFuc3BhcmVudCA9ICRjb2xvcjsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgcmV0dXJuICRfcnNyYzsKICAgICAgICAgICAgCiAgICAgICAgICAgIGNhc2UgJ2ltYWdlL2dpZic6CiAgICAgICAgICAgICAgICAkX3JzcmMgPSBpbWFnZWNyZWF0ZXRydWVjb2xvcigkd2lkdGgsICRoZWlnaHQpOwogICAgICAgICAgICAgICAgaW1hZ2V0cnVlY29sb3J0b3BhbGV0dGUoJF9yc3JjLCBUUlVFLCAyNTYpOwogICAgICAgICAgICAgICAgaW1hZ2VhbHBoYWJsZW5kaW5nKCRfcnNyYywgRkFMU0UpOwogICAgICAgICAgICAgICAgJHRyYW5zcGFyZW50ID0gaW1hZ2Vjb2xvcmFsbG9jYXRlYWxwaGEoJF9yc3JjLCAyNTUsIDI1NSwgMjU1LCAxMjcpOwogICAgICAgICAgICAgICAgaW1hZ2VmaWxsZWRyZWN0YW5nbGUoJF9yc3JjLCAwLCAwLCAkd2lkdGgsICRoZWlnaHQsICR0cmFuc3BhcmVudCk7CiAgICAgICAgICAgICAgICBpbWFnZWNvbG9ydHJhbnNwYXJlbnQoJF9yc3JjLCAkdHJhbnNwYXJlbnQpOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICByZXR1cm4gJF9yc3JjOwogICAgICAgICAgICAKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0Nhbm5vdCBjcmVhdGUgbmV3IGltYWdlIG9mIHR5cGUgJyAuICRtaW1ldHlwZSk7CiAgICAgICAgfQogICAgfQogICAgCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGlucHV0KQogICAgewogICAgICAgIGlmKCBpc19vYmplY3QoJGlucHV0KSAmJiAkaW5wdXQgaW5zdGFuY2VvZiBJbWFnZUJhc2UgICkgewogICAgICAgICAgICAvLyBjb3B5IGNvbnN0cnVjdG9yCiAgICAgICAgICAgICR0aGlzLT5fdHJhbnNwYXJlbnQgPSAkaW5wdXQtPl90cmFuc3BhcmVudDsKICAgICAgICAgICAgJHRoaXMtPl9yc3JjID0gJGlucHV0LT5fcnNyYzsKICAgICAgICAgICAgJHRoaXMtPl9zcmNuYW1lID0gJGlucHV0LT5fc3JjbmFtZTsKICAgICAgICAgICAgJHRoaXMtPl9pbmZvID0gJGlucHV0LT5faW5mbzsKICAgICAgICAgICAgJHRoaXMtPl9kaXJ0eSA9IDE7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoIGlzX3N0cmluZygkaW5wdXQpICYmIGlzX3JlYWRhYmxlKCRpbnB1dCkgJiYgaXNfZmlsZSgkaW5wdXQpICkgewogICAgICAgICAgICAkZGF0YSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRpbnB1dCk7CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiggJGRhdGEgIT09IEZBTFNFICkgewogICAgICAgICAgICAgICAgJHRoaXMtPl9yc3JjID0gaW1hZ2VjcmVhdGVmcm9tc3RyaW5nKCRkYXRhKTsKICAgICAgICAgICAgICAgICR0aGlzLT5fc3JjbmFtZSA9ICRpbnB1dDsKICAgICAgICAgICAgICAgICR0aGlzLT5faW5mbyA9IGdldGltYWdlc2l6ZSgkaW5wdXQpOwogICAgICAgICAgICAgICAgJHRtcCA9IGltYWdlY29sb3J0cmFuc3BhcmVudCgkdGhpcy0+X3JzcmMpOwogICAgICAgICAgICAgICAgaWYoICR0bXAgIT0gLTEgKSAkdGhpcy0+X3RyYW5zcGFyZW50ID0gJHRtcDsKICAgICAgICAgICAgICAgICR0aGlzLT5faW5mb1syXSA9IGltYWdlX3R5cGVfdG9fbWltZV90eXBlKCR0aGlzLT5faW5mb1syXSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignUHJvYmxlbSBjcmVhdGluZyBuZXcgSW1hZ2VCYXNlIG9iamVjdCBmcm9tICcuJGlucHV0KTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggaXNfYXJyYXkoJGlucHV0KSAmJiBjb3VudCgkaW5wdXQpID49IDMgKSB7CiAgICAgICAgICAgICR0aGlzLT5fcnNyYyA9ICR0aGlzLT5jcmVhdGVfbmV3X3JzcmMoJGlucHV0WzBdLCRpbnB1dFsxXSwkaW5wdXRbMl0pOwogICAgICAgICAgICAkdGhpcy0+X2luZm8gPSBhcnJheSgkaW5wdXRbMV0sJGlucHV0WzJdLCRpbnB1dFswXSk7CiAgICAgICAgICAgICR0aGlzLT5fZGlydHkgPSAxOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQXR0ZW1wdCB0byBjcmVhdGUgYSBJbWFnZUJhc2Ugb2JqZWN0IHdpdGggaW52YWxpZCBpbnB1dCcpOwogICAgICAgIH0KICAgIH0KCgogICAgcHVibGljIGZ1bmN0aW9uIG9mZnNldEV4aXN0cygkaykKICAgIHsKICAgICAgICByZXR1cm4gaW5fYXJyYXkoJGssSW1hZ2VCYXNlOjokX2tleXMpOwogICAgfQoKCiAgICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0VW5zZXQoJGspCiAgICB7CiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQXR0ZW1wdCB0byB1bnNldCBhbiBhdHRyaWJ1dGUgb2YgYSBJbWFnZUJhc2Ugb2JqZWN0Jyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIG9mZnNldEdldCgkaykKICAgIHsKICAgICAgICAkayA9IHN0cnRvbG93ZXIoJGspOwogICAgICAgIGlmKCAhaW5fYXJyYXkoJGssSW1hZ2VCYXNlOjokX2tleXMpICkKICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQXR0ZW1wdCB0byBnZXQgaW52YWxpZCBhdHRyaWJ1dGUgJy4kay4nIEZyb20gSW1hZ2VCYXNlJyk7CgogICAgICAgIHN3aXRjaCggJGsgKSB7CiAgICAgICAgY2FzZSAncnNyYyc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X3JzcmM7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICd3aWR0aCc6CiAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoJHRoaXMtPl9pbmZvKSApIHRocm93IG5ldyBFeGNlcHRpb24oJ0F0dGVtcHQgdG8gZ2V0IGluZm9ybWF0aW9uIG9uIHVuaW5pdGlhbGl6ZWQgb2JqZWN0Jyk7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2luZm9bMF07CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdoZWlnaHQnOgogICAgICAgICAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5faW5mbykgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBdHRlbXB0IHRvIGdldCBpbmZvcm1hdGlvbiBvbiB1bmluaXRpYWxpemVkIG9iamVjdCcpOwogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9pbmZvWzFdOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAndHlwZSc6CiAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoJHRoaXMtPl9pbmZvKSApIHRocm93IG5ldyBFeGNlcHRpb24oJ0F0dGVtcHQgdG8gZ2V0IGluZm9ybWF0aW9uIG9uIHVuaW5pdGlhbGl6ZWQgb2JqZWN0Jyk7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2luZm9bMl07CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdkaXJ0eSc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2RpcnR5OwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAndHJhbnNwYXJlbnQnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl90cmFuc3BhcmVudDsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ2ZpbGVuYW1lJzoKICAgICAgICBjYXNlICduYW1lJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fc3JjbmFtZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQoKCiAgICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0U2V0KCRrLCR2KQogICAgewogICAgICAgIGlmKCAhaW5fYXJyYXkoJGssSW1hZ2VCYXNlOjokX2tleXMpICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignSW52YWxpZCBBdHRlbXB0IHRvIG1vZGlmeSB0aGUgYXR0cmlidXRlIG9mIEltYWdlQmFzZScpOwoKICAgICAgICAkdGhpcy0+X2RpcnR5ID0gMTsKICAgICAgICBzd2l0Y2goJGspIHsKICAgICAgICBjYXNlICdyc3JjJzoKICAgICAgICBjYXNlICdkaXJ0eSc6CiAgICAgICAgY2FzZSAndHJhbnNwYXJlbnQnOgogICAgICAgICAgICAkayA9ICdfJy4kazsKICAgICAgICAgICAgJHRoaXMtPiRrID0gJHY7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICd3aWR0aCc6CiAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoJHRoaXMtPl9pbmZvKSApICR0aGlzLT5faW5mbyA9IGFycmF5KCk7CiAgICAgICAgICAgICR0aGlzLT5faW5mb1swXSA9ICR2OwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnaGVpZ2h0JzoKICAgICAgICAgICAgaWYoICFpc19hcnJheSgkdGhpcy0+X2luZm8pICkgJHRoaXMtPl9pbmZvID0gYXJyYXkoKTsKICAgICAgICAgICAgJHRoaXMtPl9pbmZvWzFdID0gJHY7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICd0eXBlJzoKICAgICAgICAgICAgaWYoICFpc19hcnJheSgkdGhpcy0+X2luZm8pICkgJHRoaXMtPl9pbmZvID0gYXJyYXkoKTsKICAgICAgICAgICAgJHRoaXMtPl9pbmZvWzJdID0gJHY7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdmaWxlbmFtZSc6CiAgICAgICAgY2FzZSAnbmFtZSc6CiAgICAgICAgICAgICR0aGlzLT5fc3JjbmFtZSA9ICR2OwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CgoKICAgIHB1YmxpYyBmdW5jdGlvbiBzYXZlKCRmaWxlbmFtZSwkcXVhbGl0eSA9IDc1LCRwcm9ncmVzc2l2ZSA9IDApCiAgICB7CiAgICAgICAgaWYoICEkdGhpcy0+X2RpcnR5ICkgcmV0dXJuOwoKICAgICAgICAkdHlwZSA9ICR0aGlzWyd0eXBlJ107CiAgICAgICAgJHJlcyA9ICcnOwogICAgICAgIHN3aXRjaCgkdHlwZSkgewogICAgICAgIGNhc2UgJ2ltYWdlL2pwZWcnOgogICAgICAgICAgICBpbWFnZWludGVybGFjZSgkdGhpc1sncnNyYyddLCRwcm9ncmVzc2l2ZSk7CiAgICAgICAgICAgICRyZXMgPSBpbWFnZWpwZWcoJHRoaXNbJ3JzcmMnXSwkZmlsZW5hbWUsKGludCkkcXVhbGl0eSk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdpbWFnZS9wbmcnOgoJICAgICAgICAgIGltYWdlc2F2ZWFscGhhKCR0aGlzWydyc3JjJ10sVFJVRSk7CiAgICAgICAgICAgICRxdWFsaXR5ID0gY2VpbCgoMTAwLjAgLSAoZmxvYXQpJHF1YWxpdHkpLzEwMC4wKjEwLjApOwogICAgICAgICAgICAkcmVzID0gaW1hZ2VwbmcoJHRoaXNbJ3JzcmMnXSwkZmlsZW5hbWUsJHF1YWxpdHkpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnaW1hZ2UvZ2lmJzoKICAgICAgICAgICAgLy9pbWFnZXNhdmVhbHBoYSgkdGhpc1sncnNyYyddLEZBTFNFKTsKICAgICAgICAgICAgJHJlcyA9IGltYWdlZ2lmKCR0aGlzWydyc3JjJ10sJGZpbGVuYW1lKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ2ltYWdlL3dlYnAnOgogICAgICAgICAgICBpbWFnZXNhdmVhbHBoYSgkdGhpc1sncnNyYyddLEZBTFNFKTsKICAgICAgICAgICAgJHJlcyA9IGltYWdld2VicCAoJHRoaXNbJ3JzcmMnXSwkZmlsZW5hbWUpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQ2Fubm90IHNhdmUgaW1hZ2Ugb2YgdHlwZSAnLiR0aGlzWyd0eXBlJ10pOwogICAgICAgIH0KCiAgICAgICAgaWYoICRyZXMgKSByZXR1cm47CiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignRXJyb3Igc2F2aW5nIGltYWdlIG9mIHR5cGUgJy4kdGhpc1sndHlwZSddLicgdG8gJy4kZmlsZW5hbWUpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzdXBwb3J0c190cmFuc3BhcmVuY3koKQogICAgewogICAgICAgIHN3aXRjaCggJHRoaXNbJ3R5cGUnXSApIHsKICAgICAgICBjYXNlICdpbWFnZS9naWYnOgogICAgICAgIGNhc2UgJ2ltYWdlL3BuZyc6CiAgICAgICAgY2FzZSAnaW1hZ2Uvd2VicCc6CiAgICAgICAgICAgIHJldHVybiBUUlVFOwoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICByZXR1cm4gRkFMU0U7CiAgICAgICAgfQogICAgfQp9IC8vIGNsYXNzIEltYWdlQmFzZQoKLy8gJGltZzEgPSBuZXcgSW1hZ2UoJHNvbWVmaWxlbmFtZSk7Ci8vICRmaWx0ZXIgPSBuZXcgQ21zU29tZXRoaW5nRmlsdGVyKCk7Ci8vICRpbWcyID0gJGZpbHRlci0+dHJhbnNmb3JtKCRpbWcxKTsKLy8gJGltZzItPnNhdmUoKTsKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.ImageFilterBase.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICAKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKYWJzdHJhY3QgY2xhc3MgSW1hZ2VGaWx0ZXJCYXNlCnsKICAvLyByZXR1cm5zIGEgSW1hZ2VCYXNlIG9iamVjdAogIGFic3RyYWN0IGZ1bmN0aW9uIHRyYW5zZm9ybShJbWFnZUJhc2UgJGltYWdlKTsKfQoKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_Blur_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IGNyZWF0aW5nIGltYWdlIHRhZ3MgaW4gYSBzbWFydAojICB3YXkgdG8gb3B0aW1pemUgcGVyZm9ybWFuY2UuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBJbWFnZV9CbHVyX0ZpbHRlciBleHRlbmRzIEltYWdlRmlsdGVyQmFzZQp7CiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkKICB7CiAgICAvLyBub3RoaW5nIGhlcmUuCiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShJbWFnZUJhc2UgJHNyYykKICB7CiAgICAkX2Rlc3QgPSBuZXcgSW1hZ2VCYXNlKCRzcmMpOwogICAgJHJlcyA9IGltYWdlZmlsdGVyKCRfZGVzdFsncnNyYyddLElNR19GSUxURVJfR0FVU1NJQU5fQkxVUik7CgogICAgaWYoICEkcmVzICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignRXJyb3IgYXBwbHlpbmcgZmlsdGVyICcuSU1HX0ZJTFRFUl9HQVVTU0lBTl9CTFVSKTsKICAgIHJldHVybiAkX2Rlc3Q7CiAgfQp9CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_Brightness_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICAKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgSW1hZ2VfQnJpZ2h0bmVzc19GaWx0ZXIgZXh0ZW5kcyBJbWFnZUZpbHRlckJhc2UKewogIHByaXZhdGUgJF9icmlnaHRuZXNzID0gMDsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KC8qIHZhcmlhYmxlIGFyZ3VtZW50cyAqLykKICB7CiAgICBpZiggZnVuY19udW1fYXJncygpICE9IDEgKQogICAgICB7Cgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIGFyZ3VtZW50cyB0byAnLmdldF9jbGFzcygkdGhpcykpOwogICAgICB9CgogICAgJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7CiAgICAkYXJncyA9ICRhcmdzWzBdOwogICAgaWYoIGlzX2FycmF5KCRhcmdzKSApCiAgICAgIHsKCSR0aGlzLT5fYnJpZ2h0bmVzcyA9IChpbnQpJGFyZ3NbMF07CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHRoaXMtPl9icmlnaHRuZXNzID0gJGFyZ3M7CiAgICAgIH0KICAgIC8vIG5vdGhpbmcgaGVyZS4KICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gdHJhbnNmb3JtKEltYWdlQmFzZSAkc3JjKQogIHsKICAgICRfZGVzdCA9IG5ldyBJbWFnZUJhc2UoJHNyYyk7CiAgICAkcmVzID0gaW1hZ2VmaWx0ZXIoJF9kZXN0Wydyc3JjJ10sSU1HX0ZJTFRFUl9CUklHSFRORVNTLCR0aGlzLT5fYnJpZ2h0bmVzcyk7CgogICAgaWYoICEkcmVzICkKICAgICAgewoJdGhyb3cgbmV3IEV4Y2VwdGlvbignRXJyb3IgYXBwbHlpbmcgZmlsdGVyICcuSU1HX0ZJTFRFUl9CUklHSFRORVNTKTsKICAgICAgfQogICAgcmV0dXJuICRfZGVzdDsKICB9Cn0KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_Colorize_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICAKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgSW1hZ2VfQ29sb3JpemVfRmlsdGVyIGV4dGVuZHMgSW1hZ2VGaWx0ZXJCYXNlCnsKICBwcml2YXRlICRfYXJncyA9IGFycmF5KDAsMCwwLDApOwoKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoLyogdmFyaWFibGUgYXJndW1lbnRzICovKQogIHsKICAgICRhcmdzID0gZnVuY19nZXRfYXJncygpOwogICAgaWYoIGlzX2FycmF5KCRhcmdzWzBdKSApCiAgICAgIHsKCSRhcmdzID0gJGFyZ3NbMF07CiAgICAgIH0KCiAgICBmb3IoICRpID0gMDsgJGkgPCBtaW4oY291bnQoJHRoaXMtPl9hcmdzKSxjb3VudCgkYXJncykpOyAkaSsrICkKICAgICAgewoJJHRoaXMtPl9hcmdzWyRpXSA9IG1pbigyNTUsbWF4KDAsKGludCkkYXJnc1skaV0pKTsKICAgICAgfQogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2Zvcm0oSW1hZ2VCYXNlICRzcmMpCiAgewogICAgJF9kZXN0ID0gbmV3IEltYWdlQmFzZSgkc3JjKTsKICAgICR0bXAgPSAkdGhpcy0+X2FyZ3M7CiAgICAkcmVzID0gaW1hZ2VmaWx0ZXIoJF9kZXN0Wydyc3JjJ10sSU1HX0ZJTFRFUl9DT0xPUklaRSwkdG1wWzBdLCR0bXBbMV0sJHRtcFsyXSwkdG1wWzNdKTsKCiAgICBpZiggISRyZXMgKQogICAgICB7Cgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdFcnJvciBhcHBseWluZyBmaWx0ZXIgJy5JTUdfRklMVEVSX0NPTE9SSVpFKTsKICAgICAgfQogICAgcmV0dXJuICRfZGVzdDsKICB9Cn0KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_Contrast_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICAKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgSW1hZ2VfQ29udHJhc3RfRmlsdGVyIGV4dGVuZHMgSW1hZ2VGaWx0ZXJCYXNlCnsKICBwcml2YXRlICRfY29udHJhc3QgPSAwOwoKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoLyogdmFyaWFibGUgYXJndW1lbnRzICovKQogIHsKICAgIGlmKCBmdW5jX251bV9hcmdzKCkgIT0gMSApCiAgICAgIHsKCXRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgYXJndW1lbnRzIHRvICcuZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgIH0KCiAgICAkYXJncyA9IGZ1bmNfZ2V0X2FyZ3MoKTsKICAgICRhcmdzID0gJGFyZ3NbMF07CiAgICBpZiggaXNfYXJyYXkoJGFyZ3MpICkKICAgICAgewoJJHRoaXMtPl9jb250cmFzdCA9IChpbnQpJGFyZ3NbMF07CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHRoaXMtPl9jb250cmFzdCA9ICRhcmdzOwogICAgICB9CiAgICAvLyBub3RoaW5nIGhlcmUuCiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShJbWFnZUJhc2UgJHNyYykKICB7CiAgICAkX2Rlc3QgPSBuZXcgSW1hZ2VCYXNlKCRzcmMpOwogICAgJHJlcyA9IGltYWdlZmlsdGVyKCRfZGVzdFsncnNyYyddLElNR19GSUxURVJfQ09OVFJBU1QsJHRoaXMtPl9jb250cmFzdCk7CgogICAgaWYoICEkcmVzICkKICAgICAgewoJdGhyb3cgbmV3IEV4Y2VwdGlvbignRXJyb3IgYXBwbHlpbmcgZmlsdGVyICcuSU1HX0ZJTFRFUl9DT05UUkFTVCk7CiAgICAgIH0KICAgIHJldHVybiAkX2Rlc3Q7CiAgfQp9CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_Crop2size_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICAKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgSW1hZ2VfQ3JvcDJzaXplX0ZpbHRlciBleHRlbmRzIEltYWdlRmlsdGVyQmFzZQp7CiAgcHJpdmF0ZSAkX2Rlc3RfdyA9IDA7CiAgcHJpdmF0ZSAkX2Rlc3RfaCA9IDA7CiAgcHJpdmF0ZSAkX2xvYyA9ICdjJzsKICBzdGF0aWMgcHJpdmF0ZSAkX3ZhbGlkX2xvY3MgPSBhcnJheSgndGwnLCd0YycsJ3RyJywnY2wnLCdjJywnY2MnLCdjcicsJ2JsJywnYmMnLCdicicpOwoKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGlucHV0KQogIHsKICAgIGlmKCB4dF9hcnJheTo6aXNfaGFzaCgkaW5wdXQpICkgewogICAgICBpZiggaXNzZXQoJGlucHV0Wyd3aWR0aCddKSApIHsKCSR0aGlzLT5fZGVzdF93ID0gKGludCkkaW5wdXRbJ3dpZHRoJ107CgkkdGhpcy0+X2Rlc3RfaCA9IChpbnQpJGlucHV0WydoZWlnaHQnXTsKICAgICAgfQogICAgICBlbHNlIGlmICggaXNzZXQoJGlucHV0Wyd3J10pICkgewoJJHRoaXMtPl9kZXN0X3cgPSAoaW50KSRpbnB1dFsndyddOwoJJHRoaXMtPl9kZXN0X2ggPSAoaW50KSRpbnB1dFsnaCddOwogICAgICB9CiAgICAgIGlmKCBpc3NldCgkaW5wdXRbJ2xvYyddKSAmJiBpbl9hcnJheSgkaW5wdXRbJ2xvYyddLHNlbGY6OiRfdmFsaWRfbG9jcykgKSAkdGhpcy0+X2xvYyA9IHRyaW0oJGlucHV0Wydsb2MnXSk7CiAgICB9CiAgICBlbHNlIGlmKCBpc19hcnJheSgkaW5wdXQpICApIHsKICAgICAgaWYoIGNvdW50KCRpbnB1dCkgPj0gMiApIHsKCSR0aGlzLT5fZGVzdF93ID0gKGludCl0cmltKCRpbnB1dFswXSk7CgkkdGhpcy0+X2Rlc3RfaCA9IChpbnQpdHJpbSgkaW5wdXRbMV0pOwoJaWYoIGNvdW50KCRpbnB1dCkgPj0gMyAmJiBpbl9hcnJheSgkaW5wdXRbMl0sc2VsZjo6JF92YWxpZF9sb2NzKSApICR0aGlzLT5fbG9jID0gdHJpbSgkaW5wdXRbMl0pOwogICAgICB9CiAgICB9CgogICAgaWYoICR0aGlzLT5fZGVzdF9oIDw9IDAgfHwgJHRoaXMtPl9kZXN0X3cgPD0gMCApIHRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgdmFsdWVzIHNwZWNpZmllZCBmb3IgQ3JvcHRvZml0IGZpbHRlciBjb25zdHJ1Y3RvcicpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShJbWFnZUJhc2UgJHNyYykKICB7CiAgICAkZGVzdF93ID0gKGludCkkdGhpcy0+X2Rlc3RfdzsKICAgICRkZXN0X2ggPSAoaW50KSR0aGlzLT5fZGVzdF9oOwogICAgJHNyY193ICA9IChpbnQpJHNyY1snd2lkdGgnXTsKICAgICRzcmNfaCAgPSAoaW50KSRzcmNbJ2hlaWdodCddOwoKICAgICRkZXN0X3cgPSBtaW4oJHNyY193LCRkZXN0X3cpOwogICAgJGRlc3RfaCA9IG1pbigkc3JjX2gsJGRlc3RfaCk7CiAgICAKICAgIGlmKCAkZGVzdF93IDw9IDAgfHwgJGRlc3RfaCA8PSAwICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignSW52YWxpZCB2YWx1ZXMgc3BlY2lmaWVkIGZvciBDcm9wMiBmaWx0ZXInKTsKICAgIGlmKCAkZGVzdF93ID09ICRzcmNfdyAmJiAkZGVzdF9oID09ICRzcmNfaCApIHJldHVybiAkc3JjOwoKICAgICR4MCA9ICR5MCA9IDA7CiAgICBzd2l0Y2goIHN0cnRvbG93ZXIoJHRoaXMtPl9sb2MpICkgewogICAgY2FzZSAndGwnOgogICAgICAvLyB1c2UgZGVmYXVsdHMuCiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ3RjJzoKICAgICAgJHgwID0gZmxvb3IoICgkc3JjX3cgLSAkZGVzdF93KSAvIDIgKTsKICAgICAgYnJlYWs7CgogICAgY2FzZSAndHInOgogICAgICAkeDAgPSAkc3JjX3cgLSAkZGVzdF93OwogICAgICBicmVhazsKCiAgICBjYXNlICdjbCc6CiAgICAgICR5MCA9IGZsb29yKCAoJHNyY19oIC0gJGRlc3RfaCkgLyAyICk7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ2MnOgogICAgY2FzZSAnY2MnOgogICAgICAkeDAgPSBmbG9vciggKCRzcmNfdyAtICRkZXN0X3cpIC8gMiApOwogICAgICAkeTAgPSBmbG9vciggKCRzcmNfaCAtICRkZXN0X2gpIC8gMiApOwogICAgICBicmVhazsKCiAgICBjYXNlICdjcic6CiAgICAgICR4MCA9ICRzcmNfdyAtICRkZXN0X3c7CiAgICAgICR5MCA9IGZsb29yKCAoJHNyY19oIC0gJGRlc3RfaCkgLyAyICk7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ2JsJzoKICAgICAgJHkwID0gJHNyY19oIC0gJGRlc3RfaDsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnYmMnOgogICAgICAkeDAgPSBmbG9vciggKCRzcmNfdyAtICRkZXN0X3cpIC8gMiApOwogICAgICAkeTAgPSAkc3JjX2ggLSAkZGVzdF9oOwogICAgICBicmVhazsKCiAgICBjYXNlICdicic6CiAgICAgICR4MCA9ICRzcmNfdyAtICRkZXN0X3c7CiAgICAgICR5MCA9ICRzcmNfaCAtICRkZXN0X2g7CiAgICAgIGJyZWFrOwogICAgfQoKICAgICRfZGVzdCA9IG5ldyBJbWFnZUJhc2UoYXJyYXkoJHNyY1sndHlwZSddLCRkZXN0X3csJGRlc3RfaCkpOwogICAgJHJlcyA9IGltYWdlY29weSgkX2Rlc3RbJ3JzcmMnXSwkc3JjWydyc3JjJ10sMCwwLCR4MCwkeTAsJGRlc3RfdywkZGVzdF9oKTsKICAgIGlmKCAkcmVzID09PSBGQUxTRSApIHRocm93IG5ldyBFeGNlcHRpb24oJ2Nyb3AyIGZhaWxlZCcpOwogICAgcmV0dXJuICRfZGVzdDsKICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_Croptofit_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTIgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IGNyZWF0aW5nIGltYWdlIHRhZ3MgaW4gYSBzbWFydAojICB3YXkgdG8gb3B0aW1pemUgcGVyZm9ybWFuY2UuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0cyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIEltYWdlX0Nyb3B0b2ZpdF9GaWx0ZXIgZXh0ZW5kcyBJbWFnZUZpbHRlckJhc2UKewogICAgcHJpdmF0ZSAkX2Rlc3RfdyA9IDA7CiAgICBwcml2YXRlICRfZGVzdF9oID0gMDsKICAgIHByaXZhdGUgJF9sb2MgPSAnYyc7CiAgICBwcml2YXRlICRfdXBzY2FsZSA9IDA7CiAgICBzdGF0aWMgcHJpdmF0ZSAkX3ZhbGlkX2xvY3MgPSBhcnJheSgndGwnLCd0YycsJ3RyJywnY2wnLCdjJywnY3InLCdibCcsJ2JjJywnYnInKTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGlucHV0KQogICAgewogICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1NtYXJ0SW1hZ2UnKTsKICAgICAgICAkdGhpcy0+X2xvYyA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ2Nyb3B0b2ZpdF9kZWZhdWx0X2xvYycsJ2MnKTsKICAgICAgICBpZiggeHRfYXJyYXk6OmlzX2hhc2goJGlucHV0KSApIHsKICAgICAgICAgICAgaWYoIGlzc2V0KCRpbnB1dFsnd2lkdGgnXSkgKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+X2Rlc3RfdyA9IChpbnQpJGlucHV0Wyd3aWR0aCddOwogICAgICAgICAgICAgICAgJHRoaXMtPl9kZXN0X2ggPSAoaW50KSRpbnB1dFsnaGVpZ2h0J107CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiAoIGlzc2V0KCRpbnB1dFsndyddKSApIHsKICAgICAgICAgICAgICAgICR0aGlzLT5fZGVzdF93ID0gKGludCkkaW5wdXRbJ3cnXTsKICAgICAgICAgICAgICAgICR0aGlzLT5fZGVzdF9oID0gKGludCkkaW5wdXRbJ2gnXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiggaXNzZXQoJGlucHV0Wydsb2MnXSkgJiYgaW5fYXJyYXkoJGlucHV0Wydsb2MnXSxzZWxmOjokX3ZhbGlkX2xvY3MpICkgJHRoaXMtPl9sb2MgPSAkaW5wdXRbJ2xvYyddOwogICAgICAgICAgICBpZiggaXNzZXQoJGlucHV0Wyd1cHNjYWxlJ10pICkgJHRoaXMtPl91cHNjYWxlID0gKGludCkkaW5wdXRbJ3Vwc2NhbGUnXTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggaXNfYXJyYXkoJGlucHV0KSAgKSB7CiAgICAgICAgICAgIGlmKCBjb3VudCgkaW5wdXQpID49IDIgKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+X2Rlc3RfdyA9IChpbnQpdHJpbSgkaW5wdXRbMF0pOwogICAgICAgICAgICAgICAgJHRoaXMtPl9kZXN0X2ggPSAoaW50KXRyaW0oJGlucHV0WzFdKTsKICAgICAgICAgICAgICAgIGlmKCBjb3VudCgkaW5wdXQpID49IDMgJiYgaW5fYXJyYXkoJGlucHV0WzJdLHNlbGY6OiRfdmFsaWRfbG9jcykgKSAkdGhpcy0+X2xvYyA9ICRpbnB1dFsyXTsKICAgICAgICAgICAgICAgIGlmKCBjb3VudCgkaW5wdXQpID49IDQgKSAkdGhpcy0+X3Vwc2NhbGUgPSAoaW50KSRpbnB1dFszXTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYoICEkdGhpcy0+X3Vwc2NhbGUgKSB7CiAgICAgICAgICAgICR0aGlzLT5fZGVzdF93ID0gc2lfdXRpbHM6OnRyaW1fdG9fZGV2aWNlKCd3aWR0aCcsJHRoaXMtPl9kZXN0X3cpOwogICAgICAgICAgICAkdGhpcy0+X2Rlc3RfaCA9IHNpX3V0aWxzOjp0cmltX3RvX2RldmljZSgnaGVpZ2h0JywkdGhpcy0+X2Rlc3RfaCk7CiAgICAgICAgfQoKICAgICAgICBpZiggJHRoaXMtPl9kZXN0X2ggPD0gMCB8fCAkdGhpcy0+X2Rlc3RfdyA8PSAwICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignSW52YWxpZCB2YWx1ZXMgc3BlY2lmaWVkIGZvciBDcm9wdG9maXQgZmlsdGVyIGNvbnN0cnVjdG9yJyk7CiAgICB9CgoKICAgIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2Zvcm0oSW1hZ2VCYXNlICRzcmMpCiAgICB7CiAgICAgICAgaWYoICEkdGhpcy0+X3Vwc2NhbGUgKSB7CiAgICAgICAgICAgIC8vIHByZXZlbnQgYW55IHVwc2NhbGluZwogICAgICAgICAgICAkdGhpcy0+X2Rlc3RfdyA9IG1pbigkdGhpcy0+X2Rlc3Rfdywkc3JjWyd3aWR0aCddKTsKICAgICAgICAgICAgJHRoaXMtPl9kZXN0X2ggPSBtaW4oJHRoaXMtPl9kZXN0X2gsJHNyY1snaGVpZ2h0J10pOwogICAgICAgIH0KCiAgICAgICAgLy8KICAgICAgICAvLyBub3RlOiAgdGhpcyBjb2RlIGRldmVsb3BlZCBieSB1c2luZyB0aGUgZm9sbG93aW5nIHBhZ2UgYXMgYSByZWZlcmVuY2UKICAgICAgICAvLyBodHRwOi8vOTExLW5lZWQtY29kZS1oZWxwLmJsb2dzcG90LmNvbS8yMDA5LzA0L2Nyb3AtdG8tZml0LWltYWdlLXVzaW5nLWFzcHBocC5odG1sCiAgICAgICAgLy8KICAgICAgICAkc3JjX3JhdGlvID0gKGZsb2F0KSRzcmNbJ3dpZHRoJ10gLyAoZmxvYXQpJHNyY1snaGVpZ2h0J107CiAgICAgICAgJGRlc3RfcmF0aW8gPSAoZmxvYXQpJHRoaXMtPl9kZXN0X3cgLyAoZmxvYXQpJHRoaXMtPl9kZXN0X2g7CgogICAgICAgIC8vIGRldGVybWluZSB0aGUgc2l6ZSBvZiB0aGUgdGVtcCBpbWFnZSB0aGF0IGZpdHMgaW50bwogICAgICAgIC8vIHRoZSBkZXNpcmVkIGFyZWEgYnkgYXQgbGVhc3Qgb25lIGRpbWVuc2lvbi4KICAgICAgICAkbmV3X2ggPSAnJzsKICAgICAgICAkbmV3X3cgPSAnJzsKICAgICAgICBpZiggJHNyY19yYXRpbyA+PSAkZGVzdF9yYXRpbyApIHsKICAgICAgICAgICAgJG5ld19oID0gKGludCkgJHRoaXMtPl9kZXN0X2g7CiAgICAgICAgICAgICRuZXdfdyA9IChpbnQpIGNlaWwoJHRoaXMtPl9kZXN0X2ggKiAkc3JjX3JhdGlvKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIC8vZWxzZSBpZiggJHNyY19yYXRpbyA8ICRkZXN0X3JhdGlvICkgewogICAgICAgICAgICAkbmV3X3cgPSAoaW50KSAkdGhpcy0+X2Rlc3RfdzsKICAgICAgICAgICAgJG5ld19oID0gKGludCkgY2VpbCgkdGhpcy0+X2Rlc3RfdyAvICRzcmNfcmF0aW8gKTsKICAgICAgICB9CgogICAgICAgIC8vIGdldCB0aGUgdHJhbnNwYXJlbnQgY29sb3Igb2YgdGhlIHNvdXJjZSBpbWFnZS4KICAgICAgICAkdG1wX3JzcmMgPSBudWxsOwogICAgICAgICR0YyA9IGltYWdlY29sb3JhdCgkc3JjWydyc3JjJ10sMCwkc3JjWydoZWlnaHQnXS0xKTsKICAgICAgICAkdHIgPSAkdGcgPSAkdGIgPSAwOyAkdGEgPSAxMjc7CiAgICAgICAgaWYoICR0YyA+IDAgKSB7CiAgICAgICAgICAgICR0bXAgPSBpbWFnZWNvbG9yc2ZvcmluZGV4KCRzcmNbJ3JzcmMnXSwkdGMpOwogICAgICAgICAgICAkdHIgPSAkdG1wWydyZWQnXTsKICAgICAgICAgICAgJHRnID0gJHRtcFsnZ3JlZW4nXTsKICAgICAgICAgICAgJHRiID0gJHRtcFsnYmx1ZSddOwogICAgICAgICAgICAkdGEgPSAkdG1wWydhbHBoYSddOwogICAgICAgIH0KCiAgICAgICAgaWYoICRuZXdfdyA9PSAkc3JjWyd3aWR0aCddICYmICRuZXdfaCA9PSAkc3JjWydoZWlnaHQnXSApIHsKICAgICAgICAgICAgJHRtcF9yc3JjID0gJHNyY1sncnNyYyddOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgLy8gY3JlYXRlIHRlbXBvcmFyeSB0cmFuc3BhcmVudCBpbWFnZQogICAgICAgICAgICAkdG1wX3JzcmMgPSBpbWFnZWNyZWF0ZXRydWVjb2xvcigkbmV3X3csJG5ld19oKTsKICAgICAgICAgICAgaW1hZ2VhbHBoYWJsZW5kaW5nKCR0bXBfcnNyYywgVFJVRSk7CiAgICAgICAgICAgICR0cmFuc3BhcmVudCA9IGltYWdlY29sb3JhbGxvY2F0ZWFscGhhKCR0bXBfcnNyYywgJHRyLCAkdGcsICR0YiwgJHRhKTsKICAgICAgICAgICAgaW1hZ2Vjb2xvcnRyYW5zcGFyZW50KCR0bXBfcnNyYywkdHJhbnNwYXJlbnQpOwogICAgICAgICAgICBpbWFnZWZpbGwoJHRtcF9yc3JjLCAwLCAwLCAkdHJhbnNwYXJlbnQpOwogICAgICAgIH0KCiAgICAgICAgLy8gcmVzaXplIHRoZSBiaWcgaW1hZ2UgaW50byB0aGUgdGVtcG9yYXJ5IHRyYW5zcGFyZW50IGltYWdlCiAgICAgICAgJHJlcyA9IGltYWdlY29weXJlc2FtcGxlZCgkdG1wX3JzcmMsJHNyY1sncnNyYyddLDAsMCwwLDAsJG5ld193LCRuZXdfaCwkc3JjWyd3aWR0aCddLCRzcmNbJ2hlaWdodCddKTsKICAgICAgICBpZiggJHJlcyA9PT0gRkFMU0UgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdDcm9wdG9maXQgLSBzdGFnZSAxIC0gZmFpbGVkJyk7CgogICAgICAgIC8vIGNhbGN1bGF0ZSB0aGUgb2Zmc2V0IGludG8gdGhlIGRlc3RpbmF0aW9uIGlhbWdlLgogICAgICAgIHN3aXRjaCggc3RydG9sb3dlcigkdGhpcy0+X2xvYykgKSB7CiAgICAgICAgY2FzZSAndGwnOgogICAgICAgICAgICAkeDAgPSAwOwogICAgICAgICAgICAkeTAgPSAwOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAndGMnOgogICAgICAgICAgICAkeDAgPSAoaW50KSggJG5ld193IC0gJHRoaXMtPl9kZXN0X3cgKSAvIDI7CiAgICAgICAgICAgICR5MCA9IDA7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICd0cic6CiAgICAgICAgICAgICR4MCA9IChpbnQpKCAkbmV3X3cgLSAkdGhpcy0+X2Rlc3RfdyApOwogICAgICAgICAgICAkeTAgPSAwOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnY2wnOgogICAgICAgICAgICAkeDAgPSAwOwogICAgICAgICAgICAkeTAgPSAoaW50KSggJG5ld19oIC0gJHRoaXMtPl9kZXN0X2ggKSAvIDI7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdjcic6CiAgICAgICAgICAgICR4MCA9IChpbnQpKCAkbmV3X3cgLSAkdGhpcy0+X2Rlc3RfdyApOwogICAgICAgICAgICAkeTAgPSAoaW50KSggJG5ld19oIC0gJHRoaXMtPl9kZXN0X2ggKSAvIDI7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdibCc6CiAgICAgICAgICAgICR4MCA9IDA7CiAgICAgICAgICAgICR5MCA9IChpbnQpKCAkbmV3X2ggLSAkdGhpcy0+X2Rlc3RfaCApOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnYmMnOgogICAgICAgICAgICAkeDAgPSAoaW50KSggJG5ld193IC0gJHRoaXMtPl9kZXN0X3cgKSAvIDI7CiAgICAgICAgICAgICR5MCA9IChpbnQpKCAkbmV3X2ggLSAkdGhpcy0+X2Rlc3RfaCApOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnYnInOgogICAgICAgICAgICAkeDAgPSAoaW50KSggJG5ld193IC0gJHRoaXMtPl9kZXN0X3cgKTsKICAgICAgICAgICAgJHkwID0gKGludCkoICRuZXdfaCAtICR0aGlzLT5fZGVzdF9oICk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdjJzoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAvLyBjZW50ZXIKICAgICAgICAgICAgJHgwID0gKGludCkoICRuZXdfdyAtICR0aGlzLT5fZGVzdF93ICkgLyAyOwogICAgICAgICAgICAkeTAgPSAoaW50KSggJG5ld19oIC0gJHRoaXMtPl9kZXN0X2ggKSAvIDI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgLy8gY3JlYXRlIGRlc3RpbmF0aW9uIGltYWdlIGF0IHRoZSBkZXNpcmVkIHRodW1iIHNpemUuCiAgICAgICAgLy8kX2Rlc3QgPSBuZXcgSW1hZ2VCYXNlKGFycmF5KCdpbWFnZS9wbmcnLCR0aGlzLT5fZGVzdF93LCR0aGlzLT5fZGVzdF9oKSk7CiAgICAgICAgJF9kZXN0ID0gbmV3IEltYWdlQmFzZShhcnJheSgkc3JjWyd0eXBlJ10sJHRoaXMtPl9kZXN0X3csJHRoaXMtPl9kZXN0X2gpKTsKCiAgICAgICAgLy8gc2V0IHRoaXMgdHJhbnNwYXJlbnQgY29sb3IgaW50byBpbnRvIHRoZSBkZXN0IGltYWdlLgogICAgICAgICR0cmFuc3BhcmVudDIgPSBpbWFnZWNvbG9yYWxsb2NhdGVhbHBoYSgkX2Rlc3RbJ3JzcmMnXSwgJHRyLCAkdGcsICR0YiwgJHRhKTsKICAgICAgICBpbWFnZWNvbG9ydHJhbnNwYXJlbnQoJF9kZXN0Wydyc3JjJ10sJHRyYW5zcGFyZW50Mik7CiAgICAgICAgaW1hZ2VmaWxsKCRfZGVzdFsncnNyYyddLCAwLCAwLCAkdHJhbnNwYXJlbnQyKTsKCiAgICAgICAgLy8gY29weSB0aGUgdGVtcCBpbWFnZSBpbnRvIHRoZSBkZXN0IGltYWdlLgogICAgICAgIGltYWdlYWxwaGFibGVuZGluZygkX2Rlc3RbJ3JzcmMnXSxUUlVFKTsKICAgICAgICAkcmVzID0gaW1hZ2Vjb3B5KCRfZGVzdFsncnNyYyddLCR0bXBfcnNyYywwLDAsJHgwLCR5MCwkbmV3X3csJG5ld19oKTsKICAgICAgICBpZiggJHJlcyA9PT0gRkFMU0UgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdDcm9wdG9maXQgLSBzdGFnZSAyIC0gZmFpbGVkJyk7CiAgICAgICAgaW1hZ2VkZXN0cm95KCR0bXBfcnNyYyk7CiAgICAgICAgcmV0dXJuICRfZGVzdDsKICAgIH0KCn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_Crop_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICAKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgSW1hZ2VfQ3JvcF9GaWx0ZXIgZXh0ZW5kcyBJbWFnZUZpbHRlckJhc2UKewogIGNvbnN0IEFMSUdOX1RPUCAgICA9ICd0b3AnOwogIGNvbnN0IEFMSUdOX0NFTlRFUiA9ICdjZW50ZXInOwogIGNvbnN0IEFMSUdOX0JPVFRPTSA9ICdib3R0b20nOwogIGNvbnN0IEFMSUdOX0xFRlQgICA9ICdsZWZ0JzsKICBjb25zdCBBTElHTl9SSUdIVCAgPSAncmlnaHQnOwoKICBwcml2YXRlICRfcGVyY2VudCA9IDUwOwogIHByaXZhdGUgJF9oX2FsaWduID0gc2VsZjo6QUxJR05fQ0VOVEVSOwogIHByaXZhdGUgJF92X2FsaWduID0gc2VsZjo6QUxJR05fQ0VOVEVSOwogICAgCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRpbnB1dCkKICB7CiAgICAkcGVyY2VudCA9IDUwOwogICAgJGhfYWxpZ24gPSBJbWFnZV9Dcm9wX0ZpbHRlcjo6QUxJR05fQ0VOVEVSOwogICAgJHZfYWxpZ24gPSBJbWFnZV9Dcm9wX0ZpbHRlcjo6QUxJR05fQ0VOVEVSOwoKICAgIGlmKCB4dF9hcnJheTo6aXNfaGFzaCgkaW5wdXQpICkgewogICAgICAkcGVyY2VudCA9IChpbnQpJGlucHV0WydwZXJjZW50J107CiAgICAgICRoX2FsaWduID0gdHJpbSgkcGFyYW1zWydoJ10pOwogICAgICAkdl9hbGlnbiA9IHRyaW0oJHBhcmFtc1sndiddKTsKICAgIH0KICAgIGVsc2UgaWYoIGlzX2FycmF5KCRpbnB1dCkgKSB7CiAgICAgIGlmKCBjb3VudCgkaW5wdXQpID4gMSApICRwZXJjZW50ID0gKGludCkkaW5wdXRbMF07CiAgICAgIGlmKCBjb3VudCgkaW5wdXQpID09IDMgKSB7CgkkaF9hbGlnbiA9IHRyaW0oJGlucHV0WzFdKTsKCSR2X2FsaWduID0gdHJpbSgkaW5wdXRbMl0pOwogICAgICB9CiAgICB9CiAgICAKICAgICR0aGlzLT5fcGVyY2VudCA9IG1pbigxMDAsbWF4KDEsJHBlcmNlbnQpKTsKICAgIHN3aXRjaCgkaF9hbGlnbikgewogICAgY2FzZSAnLTEnOgogICAgY2FzZSAnbGVmdCc6CiAgICBjYXNlICdsJzoKICAgICAgJHRoaXMtPl9oX2FsaWduID0gc2VsZjo6QUxJR05fTEVGVDsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnMCc6CiAgICBjYXNlICdjJzoKICAgIGNhc2UgJ2NlbnRlcic6CiAgICAgICR0aGlzLT5faF9hbGlnbiA9IHNlbGY6OkFMSUdOX0NFTlRFUjsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnMSc6CiAgICBjYXNlICdyJzoKICAgIGNhc2UgJ3JpZ2h0JzoKICAgICAgJHRoaXMtPl9oX2FsaWduID0gc2VsZjo6QUxJR05fUklHSFQ7CiAgICAgIGJyZWFrOwoKICAgIGRlZmF1bHQ6CiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgdmFsdWUgJy4kaF9hbGlnbi4nIGZvciBob3Jpem9udGFsIGFsaWdubWVudCcpOwogICAgfQoKICAgIHN3aXRjaCgkdl9hbGlnbikgewogICAgY2FzZSAnLTEnOgogICAgY2FzZSAndCc6CiAgICBjYXNlICd0b3AnOgogICAgICAkdGhpcy0+X3ZfYWxpZ24gPSBzZWxmOjpBTElHTl9UT1A7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJzAnOgogICAgY2FzZSAnYyc6CiAgICBjYXNlICdjZW50ZXInOgogICAgICAkdGhpcy0+X3ZfYWxpZ24gPSBzZWxmOjpBTElHTl9DRU5URVI7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJzEnOgogICAgY2FzZSAnYic6CiAgICBjYXNlICdib3R0b20nOgogICAgICAkdGhpcy0+X3ZfYWxpZ24gPSBzZWxmOjpBTElHTl9CT1RUT007CiAgICAgIGJyZWFrOwoKICAgIGRlZmF1bHQ6CiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgdmFsdWUgJy4kaF9hbGlnbi4nIGZvciBob3Jpem9udGFsIGFsaWdubWVudCcpOwogICAgfQogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2Zvcm0oSW1hZ2VCYXNlICRzcmMpCiAgewogICAgJG5ld193ID0gKGludCkoJHNyY1snd2lkdGgnXSAqICR0aGlzLT5fcGVyY2VudCAvIDEwMC4wKTsKICAgICRuZXdfaCA9IChpbnQpKCRzcmNbJ2hlaWdodCddICogJHRoaXMtPl9wZXJjZW50IC8gMTAwLjApOwoKICAgICRzcmNfeCA9IDA7CiAgICBzd2l0Y2goICR0aGlzLT5faF9hbGlnbiApIHsKICAgIGNhc2Ugc2VsZjo6QUxJR05fTEVGVDoKICAgICAgJHNyY194ID0gMDsKICAgICAgYnJlYWs7CgogICAgY2FzZSBzZWxmOjpBTElHTl9DRU5URVI6CiAgICAgICRzcmNfeCA9IChpbnQpKCgkc3JjWyd3aWR0aCddIC0gJG5ld193KSAvIDIpOwogICAgICBicmVhazsKCiAgICBjYXNlIHNlbGY6OkFMSUdOX1JJR0hUOgogICAgICAkc3JjX3ggPSAkc3JjWyd3aWR0aCddIC0gJG5ld193OwogICAgICBicmVhazsKICAgIH0KCiAgICAkc3JjX3kgPSAwOwogICAgc3dpdGNoKCAkdGhpcy0+X3ZfYWxpZ24gKSB7CiAgICBjYXNlIHNlbGY6OkFMSUdOX1RPUDoKICAgICAgJHNyY195ID0gMDsKICAgICAgYnJlYWs7CgogICAgY2FzZSBzZWxmOjpBTElHTl9DRU5URVI6CiAgICAgICRzcmNfeSA9IChpbnQpKCgkc3JjWydoZWlnaHQnXSAtICRuZXdfaCkgLyAyKTsKICAgICAgYnJlYWs7CgogICAgY2FzZSBzZWxmOjpBTElHTl9CT1RUT006CiAgICAgICRzcmNfeSA9ICRzcmNbJ2hlaWdodCddID0gJG5ld19oOwogICAgICBicmVhazsKICAgIH0KCiAgICAkX2Rlc3QgPSBuZXcgSW1hZ2VCYXNlKGFycmF5KCRzcmNbJ3R5cGUnXSwkbmV3X3csJG5ld19oKSk7CiAgICAkcmVzID0gaW1hZ2Vjb3B5cmVzYW1wbGVkKCRfZGVzdFsncnNyYyddLCRzcmNbJ3JzcmMnXSwwLDAsJHNyY194LCRzcmNfeSwkbmV3X3csJG5ld19oLCRuZXdfdywkbmV3X2gpOwogICAgaWYoICRyZXMgPT09IEZBTFNFICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignY3JvcCBmYWlsZWQnKTsKCiAgICByZXR1cm4gJF9kZXN0OwogIH0KCn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_Edgedetect_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICAKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgSW1hZ2VfRWRnZWRldGVjdF9GaWx0ZXIgZXh0ZW5kcyBJbWFnZUZpbHRlckJhc2UKewogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgewogICAgLy8gbm90aGluZyBoZXJlLgogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2Zvcm0oSW1hZ2VCYXNlICRzcmMpCiAgewogICAgJF9kZXN0ID0gbmV3IEltYWdlQmFzZSgkc3JjKTsKICAgICRyZXMgPSBpbWFnZWZpbHRlcigkX2Rlc3RbJ3JzcmMnXSxJTUdfRklMVEVSX0VER0VERVRFQ1QpOwoKICAgIGlmKCAhJHJlcyApCiAgICAgIHsKCXRocm93IG5ldyBFeGNlcHRpb24oJ0Vycm9yIGFwcGx5aW5nIGZpbHRlciAnLklNR19GSUxURVJfRURHRURFVEVDVCk7CiAgICAgIH0KICAgIHJldHVybiAkX2Rlc3Q7CiAgfQp9CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_Emboss_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IGNyZWF0aW5nIGltYWdlIHRhZ3MgaW4gYSBzbWFydAojICB3YXkgdG8gb3B0aW1pemUgcGVyZm9ybWFuY2UuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBJbWFnZV9FbWJvc3NfRmlsdGVyIGV4dGVuZHMgSW1hZ2VGaWx0ZXJCYXNlCnsKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQogIHsKICAgIC8vIG5vdGhpbmcgaGVyZS4KICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gdHJhbnNmb3JtKEltYWdlQmFzZSAkc3JjKQogIHsKICAgICRfZGVzdCA9IG5ldyBJbWFnZUJhc2UoJHNyYyk7CiAgICAkcmVzID0gaW1hZ2VmaWx0ZXIoJF9kZXN0Wydyc3JjJ10sSU1HX0ZJTFRFUl9FTUJPU1MpOwoKICAgIGlmKCAhJHJlcyApIHRocm93IG5ldyBFeGNlcHRpb24oJ0Vycm9yIGFwcGx5aW5nIGZpbHRlciAnLklNR19GSUxURVJfRU1CT1NTKTsKICAgIHJldHVybiAkX2Rlc3Q7CiAgfQp9CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_Flip_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICAKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKLyoqCiAqIEZpbHRlciBjbGFzcyBmb3IgaG9yaXpvbnRhbGx5IGZsaXBwaW5nIGFuIGltYWdlLgogKiAKICogQGF1dGhvciBSb2JlcnQgQ2FtcGJlbGwgPGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmc+CiAqIEBwYWNrYWdlIFNtYXJ0SW1hZ2UKICovCmNsYXNzIEltYWdlX0ZsaXBfRmlsdGVyIGV4dGVuZHMgSW1hZ2VGaWx0ZXJCYXNlCnsKICBwcml2YXRlICRfbW9kZTsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkKICB7CiAgICBpZiggZnVuY19udW1fYXJncygpICE9IDEgKSB7CiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgYXJndW1lbnRzIHRvICcuZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICB9CgogICAgJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7CiAgICAkYXJncyA9ICRhcmdzWzBdOwogICAgaWYoIGlzX2FycmF5KCRhcmdzKSApIHsKICAgICAgJHRoaXMtPl9tb2RlID0gKGludCkkYXJnc1swXTsKICAgIH0KICAgIGVsc2UgewogICAgICAkdGhpcy0+X21vZGUgPSAkYXJnczsKICAgIH0KICAgICR0aGlzLT5fbW9kZSA9IG1heCgwLCR0aGlzLT5fbW9kZSk7CiAgICAkdGhpcy0+X21vZGUgPSBtaW4oMiwkdGhpcy0+X21vZGUpOwogIH0KCiAgLyoqCiAgICogVHJhbnNmb3JtIHRoZSBzcGVjaWZpZWQgaW1hZ2UgdXNpbmcgdGhlIHBhcmFtZXRlcnMgc2V0CiAgICoKICAgKiBAcGFyYW0gSW1hZ2VCYXNlIFRoZSBpbWFnZSB0byB0cmFuc2Zvcm0KICAgKiBAcmV0dXJuIEltYWdlQmFzZSBUaGUgdHJhbnNmb3JtZWQgaW1hZ2UuCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShJbWFnZUJhc2UgJHNyYykKICB7CiAgICAkd2lkdGggICAgICAgPSAkc3JjWyd3aWR0aCddOwogICAgJGhlaWdodCAgICAgID0gJHNyY1snaGVpZ2h0J107CgogICAgJHNyY194ICAgICAgID0gMDsKICAgICRzcmNfeSAgICAgICA9IDA7CiAgICAkc3JjX3dpZHRoICAgPSAkd2lkdGg7CiAgICAkc3JjX2hlaWdodCAgPSAkaGVpZ2h0OwoKICAgIHN3aXRjaCAoIChpbnQpICR0aGlzLT5fbW9kZSApIHsKICAgIGNhc2UgMDoKICAgICAgJHNyY195ICAgICAgICAgICAgICAgID0gICAgJGhlaWdodDsKICAgICAgJHNyY19oZWlnaHQgICAgICAgICAgID0gICAgLSRoZWlnaHQ7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgMToKICAgICAgJHNyY194ICAgICAgICAgICAgICAgID0gICAgJHdpZHRoOwogICAgICAkc3JjX3dpZHRoICAgICAgICAgICAgPSAgICAtJHdpZHRoOwogICAgICBicmVhazsKCiAgICBjYXNlIDI6CiAgICAgICRzcmNfeCAgICAgICAgICAgICAgICA9ICAgICR3aWR0aDsKICAgICAgJHNyY195ICAgICAgICAgICAgICAgID0gICAgJGhlaWdodDsKICAgICAgJHNyY193aWR0aCAgICAgICAgICAgID0gICAgLSR3aWR0aDsKICAgICAgJHNyY19oZWlnaHQgICAgICAgICAgID0gICAgLSRoZWlnaHQ7CiAgICAgIGJyZWFrOwoKICAgIGRlZmF1bHQ6CiAgICAgIHJldHVybiAkaW1nc3JjOwogICAgfQoKICAgICRfZGVzdCA9IG5ldyBJbWFnZUJhc2UoYXJyYXkoJHNyY1sndHlwZSddLCR3aWR0aCwkaGVpZ2h0KSk7CiAgICAkcmVzID0gaW1hZ2Vjb3B5cmVzYW1wbGVkICggJF9kZXN0Wydyc3JjJ10sICRzcmNbJ3JzcmMnXSwgMCwgMCwgJHNyY194LCAkc3JjX3ksICR3aWR0aCwgJGhlaWdodCwgJHNyY193aWR0aCwgJHNyY19oZWlnaHQgKTsKICAgIGlmKCAhJHJlcyApCXRocm93IG5ldyBFeGNlcHRpb24oJ0ltYWdlIFRyYW5zZm9ybSBGYWlsZWQnKTsKCiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_Grayscale_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICAKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgSW1hZ2VfR3JheXNjYWxlX0ZpbHRlciBleHRlbmRzIEltYWdlRmlsdGVyQmFzZQp7CiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkKICB7CiAgICAvLyBub3RoaW5nIGhlcmUuCiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShJbWFnZUJhc2UgJHNyYykKICB7CiAgICAkX2Rlc3QgPSBuZXcgSW1hZ2VCYXNlKCRzcmMpOwogICAgJHJlcyA9IGltYWdlZmlsdGVyKCRfZGVzdFsncnNyYyddLElNR19GSUxURVJfR1JBWVNDQUxFKTsKCiAgICBpZiggISRyZXMgKQl0aHJvdyBuZXcgRXhjZXB0aW9uKCdFcnJvciBhcHBseWluZyBmaWx0ZXIgJy5JTUdfRklMVEVSX0dSQVlTQ0FMRSk7CiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_Meanremoval_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICAKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgSW1hZ2VfTWVhblJlbW92YWxfRmlsdGVyIGV4dGVuZHMgSW1hZ2VGaWx0ZXJCYXNlCnsKICBwcml2YXRlICRfYXJncyA9IGFycmF5KDAsMCwwLDApOwoKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQogIHsKICAgIC8vIG5vdGhpbmcgaGVyZS4KICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gdHJhbnNmb3JtKEltYWdlQmFzZSAkc3JjKQogIHsKICAgICRfZGVzdCA9IG5ldyBJbWFnZUJhc2UoJHNyYyk7CiAgICAkdG1wID0gJHRoaXMtPl9hcmdzOwogICAgJHJlcyA9IGltYWdlZmlsdGVyKCRfZGVzdFsncnNyYyddLElNR19GSUxURVJfTUVBTl9SRU1PVkFMKTsKCiAgICBpZiggISRyZXMgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdFcnJvciBhcHBseWluZyBmaWx0ZXIgJy5JTUdfRklMVEVSX01FQU5fUkVNT1ZBTCk7CiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_Negate_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICAKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgSW1hZ2VfTmVnYXRlX0ZpbHRlciBleHRlbmRzIEltYWdlRmlsdGVyQmFzZQp7CiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkKICB7CiAgICAvLyBub3RoaW5nIGhlcmUuCiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShJbWFnZUJhc2UgJHNyYykKICB7CiAgICAkX2Rlc3QgPSBuZXcgSW1hZ2VCYXNlKCRzcmMpOwogICAgJHRjb2xvciA9IGltYWdlY29sb3JhdCgkc3JjWydyc3JjJ10sMCwkc3JjWydoZWlnaHQnXS0xKTsKICAgICRyZXMgPSBpbWFnZWZpbHRlcigkX2Rlc3RbJ3JzcmMnXSxJTUdfRklMVEVSX05FR0FURSk7CiAgICBpbWFnZWNvbG9ydHJhbnNwYXJlbnQoJF9kZXN0Wydyc3JjJ10sJHRjb2xvcik7CgogICAgaWYoICEkcmVzICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignRXJyb3IgYXBwbHlpbmcgZmlsdGVyICcuSU1HX0ZJTFRFUl9ORUdBVEUpOwogICAgcmV0dXJuICRfZGVzdDsKICB9Cn0KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_NOOP_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogQ0dTbWFydEltYWdlIChjKSAyMDExLTIwMjEgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBJbWFnZV9OT09QX0ZpbHRlciBleHRlbmRzIEltYWdlRmlsdGVyQmFzZQp7CiAgICBwdWJsaWMgZnVuY3Rpb24gdHJhbnNmb3JtKEltYWdlQmFzZSAkc3JjKQogICAgewogICAgICAgIHJldHVybiAkc3JjOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_Pixelate_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICAKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgSW1hZ2VfUGl4ZWxhdGVfRmlsdGVyIGV4dGVuZHMgSW1hZ2VGaWx0ZXJCYXNlCnsKICBwcml2YXRlICRfc2l6ZSA9IDM7CiAgcHJpdmF0ZSAkX3BpeGVsYXRlID0gMDsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KC8qIHZhcmlhYmxlIGFyZ3VtZW50cyAqLykKICB7CiAgICAkYXJncyA9IGZ1bmNfZ2V0X2FyZ3MoKTsKICAgIGlmKCBpc19hcnJheSgkYXJnc1swXSkgJiYgY291bnQoJGFyZ3MpID09IDEgKQogICAgICAkYXJncyA9ICRhcmdzWzBdOwoKICAgIGlmKCBjb3VudCgkYXJncykgIT0gMiApCiAgICAgIHsKCXRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgYXJndW1lbnRzIHRvICcuZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgIH0KCiAgICAkdGhpcy0+X3NpemUgPSAoaW50KSRhcmdzWzBdOwogICAgJHRoaXMtPl9waXhlbGF0ZSA9IChpbnQpJGFyZ3NbMV07CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShJbWFnZUJhc2UgJHNyYykKICB7CiAgICAkX2Rlc3QgPSBuZXcgSW1hZ2VCYXNlKCRzcmMpOwogICAgJHJlcyA9IGltYWdlZmlsdGVyKCRfZGVzdFsncnNyYyddLElNR19GSUxURVJfUElYRUxBVEUsJHRoaXMtPl9waXhlbGF0ZSk7CgogICAgaWYoICEkcmVzICkKICAgICAgewoJdGhyb3cgbmV3IEV4Y2VwdGlvbignRXJyb3IgYXBwbHlpbmcgZmlsdGVyICcuSU1HX0ZJTFRFUl9QSVhFTEFURSk7CiAgICAgIH0KICAgIHJldHVybiAkX2Rlc3Q7CiAgfQp9CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_Reflect_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IGNyZWF0aW5nIGltYWdlIHRhZ3MgaW4gYSBzbWFydAojICB3YXkgdG8gb3B0aW1pemUgcGVyZm9ybWFuY2UuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovKioKICogRmlsdGVyIGNsYXNzIGZvciBtYWtpbmcgcmVmbGVjdGlvbiBmb3IgaW1hZ2UuCiAqCiAqIEBhdXRob3IgVGFwaW8gTO+/vXl0dHkgPHN0aWtraUBjbXNtYWRlc2ltcGxlLm9yZz4KICogQHBhY2thZ2UgU21hcnRJbWFnZQogKi8KY2xhc3MgSW1hZ2VfUmVmbGVjdF9GaWx0ZXIgZXh0ZW5kcyBJbWFnZUZpbHRlckJhc2UKewogIHByaXZhdGUgJF9yZWZsZWN0aW9uX2hlaWdodAkJCQk9IDEwMDsKICBwcml2YXRlICRfcmVmbGVjdGlvbl90cmFuc3BhcmVuY3kJCQk9IDA7CiAgcHJpdmF0ZSAkX2Rpdl9oZWlnaHQJCQkJCQk9IDA7CgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgewogICAgaWYoZnVuY19udW1fYXJncygpID4gMCkgewoKCQkkYXJncyA9IGZ1bmNfZ2V0X2FyZ3MoKTsKCQkkYXJncyA9IChhcnJheSkkYXJnc1swXTsKCgkJaWYoaXNzZXQoJGFyZ3NbMF0pKQoJCQkkdGhpcy0+X3JlZmxlY3Rpb25faGVpZ2h0ID0gKGludCkkYXJnc1swXTsKCgkJaWYoaXNzZXQoJGFyZ3NbMV0pKQoJCQkkdGhpcy0+X3JlZmxlY3Rpb25fdHJhbnNwYXJlbmN5ID0gKGludCkkYXJnc1sxXTsKCgkJaWYoaXNzZXQoJGFyZ3NbMl0pKQoJCQkkdGhpcy0+X2Rpdl9oZWlnaHQgPSAoaW50KSRhcmdzWzJdOwoJfQogIH0KCiAgLyoqCiAgICogVHJhbnNmb3JtIHRoZSBzcGVjaWZpZWQgaW1hZ2UgdXNpbmcgdGhlIHBhcmFtZXRlcnMgc2V0CiAgICoKICAgKiBAcGFyYW0gSW1hZ2VCYXNlIFRoZSBpbWFnZSB0byB0cmFuc2Zvcm0KICAgKiBAcmV0dXJuIEltYWdlQmFzZSBUaGUgdHJhbnNmb3JtZWQgaW1hZ2UuCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShJbWFnZUJhc2UgJHNyYykKICB7CiAgICAkd2lkdGggICAgICA9ICRzcmNbJ3dpZHRoJ107CiAgICAkaGVpZ2h0ICAgICA9ICRzcmNbJ2hlaWdodCddOwoJJHR5cGUgCQk9ICRzcmNbJ3R5cGUnXTsKCgkvLyBDcmVhdGUgX2Rlc3QgaW1hZ2UgYW5kIGNvcHkgb3JnaW5hbCBpbWFnZSBpbnRvIGl0CiAgICAkX2Rlc3QgPSBuZXcgSW1hZ2VCYXNlKGFycmF5KCR0eXBlLCAkd2lkdGgsICRoZWlnaHQgKyAkdGhpcy0+X3JlZmxlY3Rpb25faGVpZ2h0KSk7CgkkcmVzID0gaW1hZ2Vjb3B5cmVzYW1wbGVkKCRfZGVzdFsncnNyYyddLCAkc3JjWydyc3JjJ10sIDAsIDAsIDAsIDAsICR3aWR0aCwgJGhlaWdodCwgJHdpZHRoLCAkaGVpZ2h0KTsKCiAgICBpZigkcmVzID09PSBGQUxTRSkKCQl0aHJvdyBuZXcgRXhjZXB0aW9uKCdDcmVhdGlvbiBvZiBkZXN0aW5hdGlvbiBpbWFnZSBmYWlsZWQnKTsKCgkvLyBNYWtlIHdoaXRlIG1hc2sKCSRtYXNrID0gaW1hZ2VjcmVhdGV0cnVlY29sb3IoJHdpZHRoLCAkaGVpZ2h0KTsKCSRiZ2MgPSBpbWFnZWNvbG9yYWxsb2NhdGUoJG1hc2ssIDI1NSwgMjU1LCAyNTUpOyAvLyBCYWNrZ3JvdW5kIGNvbG9yCglpbWFnZWZpbGxlZHJlY3RhbmdsZSgkbWFzaywgMCwgMCwgJHdpZHRoLCAkaGVpZ2h0LCAkYmdjKTsKCgkvLyBGbGlwIG9yZ2luYWwgaW1hZ2UgYW5kIGR1bXAgaXQgdG8gbmV3IHBpY3R1cmUgKCRkdW1waW1hZ2UpCgkkZHVtcGltYWdlID0gaW1hZ2VjcmVhdGV0cnVlY29sb3IoJHdpZHRoLCAkdGhpcy0+X3JlZmxlY3Rpb25faGVpZ2h0KTsKCSRiZ2MgPSBpbWFnZWNvbG9yYWxsb2NhdGUoJHNyY1sncnNyYyddLCAyNTUsIDI1NSwgMjU1KTsgLy8gQmFja2dyb3VuZCBjb2xvcgoJJHNyY1sncnNyYyddID0gaW1hZ2Vyb3RhdGUoJHNyY1sncnNyYyddLCAtMTgwLCAkYmdjKTsKCWltYWdlY29weXJlc2FtcGxlZCgkZHVtcGltYWdlLCAkc3JjWydyc3JjJ10sIDAsIDAsIDAsIDAsICR3aWR0aCwgJGhlaWdodCwgJHdpZHRoLCAkaGVpZ2h0KTsKCgkvLyBTZXQgT3JnaW5hbCBpbWFnZSBhcyBkdW1waW1hZ2UgYW5kIGNyZWF0ZSBuZXcgJGR1bXBpbWFnZQoJJHNyY1sncnNyYyddID0gJGR1bXBpbWFnZTsKCSRkdW1waW1hZ2UgPSBpbWFnZWNyZWF0ZXRydWVjb2xvcigkd2lkdGgsICR0aGlzLT5fcmVmbGVjdGlvbl9oZWlnaHQpOwoKCS8vIE1ha2UgbWlycm9yIGltYWdlIG9mIGN1cnJlbnQgT3JnaW5hbCBpbWFnZSBhbmQgZHVtcCBpdCB0byAkZHVtcGltYWdlLiBTZXQgJGR1bXBpbWFnZSB0byAkc3JjWydyc3JjJ10KCWZvciAoJHggPSAwOyAkeCA8ICR3aWR0aDsgJHgrKykgewoKCQlpbWFnZWNvcHkoJGR1bXBpbWFnZSwgJHNyY1sncnNyYyddLCAkeCwgMCwgJHdpZHRoLSR4LTEsIDAsICR3aWR0aCwgJHRoaXMtPl9yZWZsZWN0aW9uX2hlaWdodCk7Cgl9Cgkkc3JjWydyc3JjJ10gPSAkZHVtcGltYWdlOwoKCS8vIFNldCAkbWFzayBvbiAkc3JjWydyc3JjJ10gYW5kIG1ha2UgYWN0dWFsIHJlZmxlY3Rpb24KCSRpbiA9IDEwMC8kdGhpcy0+X3JlZmxlY3Rpb25faGVpZ2h0OwoJZm9yKCRpPTA7ICRpIDw9ICR0aGlzLT5fcmVmbGVjdGlvbl9oZWlnaHQ7ICRpKyspewoKCQlpZigkdGhpcy0+X3JlZmxlY3Rpb25fdHJhbnNwYXJlbmN5ID4gMTAwKSAkdGhpcy0+X3JlZmxlY3Rpb25fdHJhbnNwYXJlbmN5ID0gMTAwOwoKCQlpbWFnZWNvcHltZXJnZSgkc3JjWydyc3JjJ10sICRtYXNrLCAwLCAkaSwgMCwgMCwgJHdpZHRoLCAxLCAkdGhpcy0+X3JlZmxlY3Rpb25fdHJhbnNwYXJlbmN5KTsKCgkJJHRoaXMtPl9yZWZsZWN0aW9uX3RyYW5zcGFyZW5jeSArPSAkaW47Cgl9CgoJLy8gU2V0IERpdmlkZXIgbGluZSBmb3IgJHNyY1sncnNyYyddCgkkcmVzID0gaW1hZ2Vjb3B5bWVyZ2UoJHNyY1sncnNyYyddLCAkbWFzaywgMCwgMCwgMCwgMCwgJHdpZHRoLCAkdGhpcy0+X2Rpdl9oZWlnaHQsIDEwMCk7CgogICAgaWYoJHJlcyA9PT0gRkFMU0UpCgkJdGhyb3cgbmV3IEV4Y2VwdGlvbignQ3JlYXRpb24gb2YgbWFzayBjb3B5IGZhaWxlZCcpOwoKCS8vIENvcHkgcmVmbGVjdGlvbiB0byAkX2Rlc3QgaW1hZ2UKCSRyZXMgPSBpbWFnZWNvcHltZXJnZSgkX2Rlc3RbJ3JzcmMnXSwgJHNyY1sncnNyYyddLCAwLCAkaGVpZ2h0LCAwLCAwLCAkd2lkdGgsICR0aGlzLT5fcmVmbGVjdGlvbl9oZWlnaHQsIDEwMCk7CgogICAgaWYoIGlzX3Jlc291cmNlKCRtYXNrKSApIGltYWdlZGVzdHJveSgkbWFzayk7CiAgICBpZiggaXNfcmVzb3VyY2UoJGR1bXBpbWFnZSkgKSBpbWFnZWRlc3Ryb3koJGR1bXBpbWFnZSk7CgogICAgaWYoJHJlcyA9PT0gRkFMU0UpCgkJdGhyb3cgbmV3IEV4Y2VwdGlvbignQ3JlYXRpb24gb2YgZmluYWwgaW1hZ2UgZmFpbGVkJyk7CgogICAgcmV0dXJuICRfZGVzdDsKICB9Cn0KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_Resizetofit_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICAKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgSW1hZ2VfUmVzaXpldG9maXRfRmlsdGVyIGV4dGVuZHMgSW1hZ2VGaWx0ZXJCYXNlCnsKICBwcml2YXRlICRfZGVzdF93ID0gMDsKICBwcml2YXRlICRfZGVzdF9oID0gMDsKICBwcml2YXRlICRfY29sb3I7CiAgcHJpdmF0ZSAkX2FscGhhID0gMDsKICAgIAogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkaW5wdXQpCiAgewogICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnU21hcnRJbWFnZScpOwogICAgJHRoaXMtPl9sb2MgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdjcm9wdG9maXRfZGVmYXVsdF9sb2MnLCdjJyk7CiAgICBpZiggeHRfYXJyYXk6OmlzX2hhc2goJGlucHV0KSApIHsKICAgICAgaWYoIGlzc2V0KCRpbnB1dFsnd2lkdGgnXSkgKSB7CgkkdGhpcy0+X2Rlc3RfdyA9IChpbnQpJGlucHV0Wyd3aWR0aCddOwoJJHRoaXMtPl9kZXN0X2ggPSAoaW50KSRpbnB1dFsnaGVpZ2h0J107CiAgICAgIH0KICAgICAgZWxzZSBpZiAoIGlzc2V0KCRpbnB1dFsndyddKSApIHsKCSR0aGlzLT5fZGVzdF93ID0gKGludCkkaW5wdXRbJ3cnXTsKCSR0aGlzLT5fZGVzdF9oID0gKGludCkkaW5wdXRbJ2gnXTsKICAgICAgfQogICAgICBpZiggaXNzZXQoJGlucHV0Wydjb2xvciddKSAmJiAkaW5wdXRbJ2NvbG9yJ10gIT0gJycpICR0aGlzLT5fY29sb3IgPSBzdHJ0b2xvd2VyKCRpbnB1dFsnY29sb3InXSk7CiAgICAgIGlmKCBpc3NldCgkaW5wdXRbJ2FscGhhJ10pICkgJHRoaXMtPl9hbHBoYSA9IChpbnQpJGlucHV0WydhbHBoYSddOwogICAgfQogICAgZWxzZSBpZiggaXNfYXJyYXkoJGlucHV0KSAgKSB7CiAgICAgIGlmKCBjb3VudCgkaW5wdXQpID49IDIgKSB7CgkkdGhpcy0+X2Rlc3RfdyA9IChpbnQpdHJpbSgkaW5wdXRbMF0pOwoJJHRoaXMtPl9kZXN0X2ggPSAoaW50KXRyaW0oJGlucHV0WzFdKTsKCWlmKCBjb3VudCgkaW5wdXQpID49IDMgKSB7CgkgIGlmKCAkaW5wdXRbMl0gIT0gJycgKSAkdGhpcy0+X2NvbG9yID0gc3RydG9sb3dlcigkaW5wdXRbMl0pOwoJICBpZiggY291bnQoJGlucHV0KSA+PSA0ICkgaWYoICRpbnB1dFszXSAhPSAnJyApICR0aGlzLT5fYWxwaGEgPSAoaW50KSRpbnB1dFszXTsKCX0KICAgICAgfQogICAgfQoKICAgICR0aGlzLT5fZGVzdF93ID0gc2lfdXRpbHM6OnRyaW1fdG9fZGV2aWNlKCd3aWR0aCcsJHRoaXMtPl9kZXN0X3cpOwogICAgJHRoaXMtPl9kZXN0X2ggPSBzaV91dGlsczo6dHJpbV90b19kZXZpY2UoJ2hlaWdodCcsJHRoaXMtPl9kZXN0X2gpOwogICAgJHRoaXMtPl9hbHBoYSA9IG1heCgwLG1pbigxMjcsJHRoaXMtPl9hbHBoYSkpOwoKICAgIC8vIHRvZG86IGNvbnZlcnQgY29sb3IgbmFtZSBpbnRvIHJnYi4KICAgIGlmKCAkdGhpcy0+X2Rlc3RfaCA8PSAwIHx8ICR0aGlzLT5fZGVzdF93IDw9IDAgKSB7CiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgdmFsdWVzIHNwZWNpZmllZCBmb3IgQ3JvcHRvZml0IGZpbHRlciBjb25zdHJ1Y3RvcicpOwogICAgfQogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShJbWFnZUJhc2UgJHNyYykKICB7CiAgICAvLyBxdWljayBvcHRpbWl6YXRpb24gKG5vdGhpbmcgdG8gZG8pCiAgICBpZiggJHRoaXMtPl9kZXN0X3cgPT0gJHNyY1snd2lkdGgnXSAmJiAkdGhpcy0+X2Rlc3RfaCA9PSAkc3JjWydoZWlnaHQnXSApIHJldHVybiAkc3JjOwoKICAgICR0eXBlID0gJHNyY1sndHlwZSddOwogICAgaWYoICR0aGlzLT5fYWxwaGEgPT0gMTI3ICkgJHRoaXMtPl9jb2xvciA9ICd0cmFuc3BhcmVudCc7CiAgICBpZiggJHNyYy0+c3VwcG9ydHNfdHJhbnNwYXJlbmN5KCkgJiYgISR0aGlzLT5fY29sb3IgKSAkdGhpcy0+X2NvbG9yID0gJ3RyYW5zcGFyZW50JzsKICAgIGlmKCAkdGhpcy0+X2NvbG9yID09ICd0cmFuc3BhcmVudCcgfHwgJHRoaXMtPl9hbHBoYSA+IDAgKSAkdHlwZSA9ICdpbWFnZS9wbmcnOwogICAgaWYoICR0aGlzLT5fY29sb3IgPT0gJ3RyYW5zcGFyZW50JyApICR0aGlzLT5fYWxwaGEgPSAxMjc7CgogICAgLy8gY3JlYXRlIG91ciBkZXN0aW5hdGlvbiBpbWFnZS4KICAgICRfZGVzdCA9IG5ldyBJbWFnZUJhc2UoYXJyYXkoJHR5cGUsJHRoaXMtPl9kZXN0X3csJHRoaXMtPl9kZXN0X2gpKTsKCiAgICAvLyBmaWxsIG91ciBpbWFnZSB3aXRoIGEgY29sb3IgKG9yIHRyYW5zcGFyZW50KQogICAgJGNvbG9yID0gbnVsbDsKICAgIGlmKCAkdGhpcy0+X2NvbG9yICkgewogICAgICBpZiggJHRoaXMtPl9jb2xvciA9PSAndHJhbnNwYXJlbnQnICkgewoJLy8gbmVlZCB0byBnZXQgYSB0cmFuc3BhcmVudCBjb2xvciBmcm9tIHNvbWVwbGFjZQoJJGNvbG9yID0gJF9kZXN0Wyd0cmFuc3BhcmVudCddOwogICAgICB9CiAgICAgIGVsc2UgewoJJF9yID0gJF9nID0gJF9iID0gMjU1OwoJbGlzdCgkX3IsJF9nLCRfYikgPSBzaV91dGlsczo6Y29sb3JfdG9fcmdiKCR0aGlzLT5fY29sb3IpOwoJJGNvbG9yID0gaW1hZ2Vjb2xvcmFsbG9jYXRlYWxwaGEoJF9kZXN0Wydyc3JjJ10sICRfciwgJF9nLCAkX2IsICR0aGlzLT5fYWxwaGEpOwogICAgICB9CiAgICB9CiAgICAKICAgIGlmKCAkdGhpcy0+X2FscGhhID4gMCAmJiAkdGhpcy0+X2FscGhhIDwgMTI3KSB7CiAgICAgIGltYWdlYWxwaGFibGVuZGluZygkX2Rlc3RbJ3JzcmMnXSxUUlVFKTsKICAgIH0gaWYoICR0aGlzLT5fY29sb3IgPT0gJ3RyYW5zcGFyZW50JyApIHsKICAgICAgaW1hZ2Vjb2xvcnRyYW5zcGFyZW50KCRfZGVzdFsncnNyYyddLCRjb2xvcik7CiAgICAgIGltYWdlYWxwaGFibGVuZGluZygkX2Rlc3RbJ3JzcmMnXSxGQUxTRSk7CiAgICB9CgogICAgaW1hZ2VmaWxsKCRfZGVzdFsncnNyYyddLCAwLCAwLCAkY29sb3IpOwoKICAgIGlmKCAoJHRoaXMtPl9kZXN0X3cgLyAkdGhpcy0+X2Rlc3RfaCkgPiAoJHNyY1snd2lkdGgnXS8kc3JjWydoZWlnaHQnXSkgKSB7CiAgICAgIC8vIGhlaWdodCBpcyBncmVhdGVyLi4uIAogICAgICAkbmV3X2ggPSAkdGhpcy0+X2Rlc3RfaDsKICAgICAgJG5ld193ID0gcm91bmQoKCRuZXdfaCAvICRzcmNbJ2hlaWdodCddKSAqICRzcmNbJ3dpZHRoJ10sIDApOwogICAgfQogICAgZWxzZSB7CiAgICAgIC8vIHdpZHRoIGlzIGdyZWF0ZXIuCiAgICAgICRuZXdfdyA9ICR0aGlzLT5fZGVzdF93OwogICAgICAkbmV3X2ggPSByb3VuZCgoJG5ld193IC8gJHNyY1snd2lkdGgnXSkgKiAkc3JjWydoZWlnaHQnXSwgMCk7CiAgICB9CgogICAgJHgwID0gKGludCkoKCR0aGlzLT5fZGVzdF93IC0gJG5ld193KSAvIDIpOwogICAgJHkwID0gKGludCkoKCR0aGlzLT5fZGVzdF9oIC0gJG5ld19oKSAvIDIpOwoKICAgIC8vIHJlc2l6ZSB0aGUgYmlnIGltYWdlIGludG8gdGhlIHRlbXBvcmFyeSB0cmFuc3BhcmVudCBpbWFnZQogICAgJHJlcyA9IGltYWdlY29weXJlc2FtcGxlZCgkX2Rlc3RbJ3JzcmMnXSwkc3JjWydyc3JjJ10sJHgwLCR5MCwwLDAsJG5ld193LCRuZXdfaCwkc3JjWyd3aWR0aCddLCRzcmNbJ2hlaWdodCddKTsKICAgIGlmKCAkcmVzID09PSBGQUxTRSApIHRocm93IG5ldyBFeGNlcHRpb24oJ1Jlc2l6ZXRvZml0IC0gc3RhZ2UgMSAtIGZhaWxlZCcpOwogICAgcmV0dXJuICRfZGVzdDsKICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_Resize_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogQ0dTbWFydEltYWdlIChjKSAyMDExLTIwMjEgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBJbWFnZV9SZXNpemVfRmlsdGVyIGV4dGVuZHMgSW1hZ2VGaWx0ZXJCYXNlCnsKICAgIHByaXZhdGUgJF93aWR0aDsgICAgICAgICAvLyBkZXN0IHdpZHRoCiAgICBwcml2YXRlICRfaGVpZ2h0OyAgICAgICAgLy8gZGVzdCBoZWlnaHQKICAgIHByaXZhdGUgJF9lZGdlID0gMDsJICAgICAvLyBlZGdlIHNpemUKICAgIHByaXZhdGUgJF9wZXJjZW50ID0gMDsgICAvLyBzY2FsZSB0byBwZXJjZW50CiAgICBwcml2YXRlICRfcmVzYW1wbGUgPSAxOyAgLy8gcmVzYW1wbGUsIHZzIHJlc2l6ZS4KICAgIHByaXZhdGUgJF91cHNjYWxlID0gMTsgICAvLyBhbGxvdyB1cHNjYWxlIGJ5IGRlZmF1bHQuCgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KC8qIHZhciBhcmdzICovKQogICAgewogICAgICAgICRpbnB1dCA9IGZ1bmNfZ2V0X2FyZ3MoKTsKICAgICAgICBpZiggY291bnQoJGlucHV0KSA9PSAxICYmIGlzX2FycmF5KCRpbnB1dFswXSkgKSAkaW5wdXQgPSAkaW5wdXRbMF07CgogICAgICAgIGlmKCB4dF9hcnJheTo6aXNfaGFzaCgkaW5wdXQpICkgewogICAgICAgICAgICBpZiggaXNzZXQoJGlucHV0Wyd3aWR0aCddKSApICR0aGlzLT5fd2lkdGggPSAoaW50KSRpbnB1dFsnd2lkdGgnXTsKICAgICAgICAgICAgaWYoIGlzc2V0KCRpbnB1dFsnaGVpZ2h0J10pICkgJHRoaXMtPl9oZWlnaHQgPSAoaW50KSRpbnB1dFsnaGVpZ2h0J107CiAgICAgICAgICAgIGlmKCBpc3NldCgkaW5wdXRbJ3BlcmNlbnQnXSkgKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+X3BlcmNlbnQgPSAoaW50KSRpbnB1dFsncGVyY2VudCddOwogICAgICAgICAgICAgICAgJHRoaXMtPl9wZXJjZW50ID0gbWluKDEwMCxtYXgoMSwkdGhpcy0+X3BlcmNlbnQpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiggaXNzZXQoJGlucHV0WydyZXNhbXBsZSddKSApICR0aGlzLT5fcmVzYW1wbGUgPSAoaW50KSRpbnB1dFsncmVzYW1wbGUnXTsKICAgICAgICAgICAgaWYoIGlzc2V0KCRpbnB1dFsndXBzY2FsZSddKSApICR0aGlzLT5fdXBzY2FsZSA9IChpbnQpJGlucHV0Wyd1cHNjYWxlJ107CiAgICAgICAgICAgIGlmKCBpc3NldCgkaW5wdXRbJ2VkZ2UnXSkgKSAkdGhpcy0+X2VkZ2UgPSAoaW50KSRpbnB1dFsnZWRnZSddOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKCBpc19hcnJheSgkaW5wdXQpICYmIGNvdW50KCRpbnB1dCkgPj0gMiApIHsKICAgICAgICAgICAgJGlkeCA9IDI7CiAgICAgICAgICAgIHN3aXRjaCggJGlucHV0WzBdICkgewogICAgICAgICAgICBjYXNlICdwJzoKICAgICAgICAgICAgICAgICR0aGlzLT5fcGVyY2VudCA9IChpbnQpJGlucHV0WzFdOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ3cnOgogICAgICAgICAgICAgICAgJHRoaXMtPl93aWR0aCA9IChpbnQpJGlucHV0WzFdOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2gnOgogICAgICAgICAgICAgICAgJHRoaXMtPl9oZWlnaHQgPSAoaW50KSRpbnB1dFsxXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdlJzoKICAgICAgICAgICAgICAgICR0aGlzLT5fZWRnZSA9IChpbnQpJGlucHV0WzFdOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2MnOgogICAgICAgICAgICAgICAgJHRoaXMtPl93aWR0aCA9IChpbnQpJGlucHV0WzFdOwogICAgICAgICAgICAgICAgJHRoaXMtPl9oZWlnaHQgPSAoaW50KSRpbnB1dFsyXTsKICAgICAgICAgICAgICAgICRpZHggPSAzOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmKCBjb3VudCgkaW5wdXQpID4gJGlkeCApICR0aGlzLT5fdXBzY2FsZSA9IChpbnQpJGlucHV0WyRpZHhdOwogICAgICAgIH0KCiAgICAgICAgaWYoICR0aGlzLT5fd2lkdGggPiAwICkgJHRoaXMtPl93aWR0aCA9IHNpX3V0aWxzOjp0cmltX3RvX2RldmljZSgnd2lkdGgnLCR0aGlzLT5fd2lkdGgpOwogICAgICAgIGlmKCAkdGhpcy0+X2hlaWdodCA+IDAgKSAkdGhpcy0+X2hlaWdodCA9IHNpX3V0aWxzOjp0cmltX3RvX2RldmljZSgnaGVpZ2h0JywkdGhpcy0+X2hlaWdodCk7CiAgICAgICAgaWYoICEoJHRoaXMtPl9wZXJjZW50ID4gMCB8fCAkdGhpcy0+X3dpZHRoID4gMCB8fCAkdGhpcy0+X2hlaWdodCA+IDAgfHwgJHRoaXMtPl9lZGdlID4gMCkgKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0NvdWxkIG5vdCBDcmVhdGUgUmVzaXplIEZpbHRlciAtIEludmFsaWQgUGFyYW1ldGVycycpOwogICAgICAgIH0KICB9CgoKICBwcml2YXRlIGZ1bmN0aW9uIF90cmFuc2Zvcm0oSW1hZ2VCYXNlICRzcmMsJG5ld193LCRuZXdfaCkKICB7CiAgICAgIGlmKCAkbmV3X3cgPT0gJHNyY1snd2lkdGgnXSAmJiAkbmV3X2ggPT0gJHNyY1snaGVpZ2h0J10gKSByZXR1cm4gJHNyYzsKCiAgICAgICRfZGVzdCA9IG5ldyBJbWFnZUJhc2UoYXJyYXkoJHNyY1sndHlwZSddLCRuZXdfdywkbmV3X2gpKTsKCiAgICAgICRyZXMgPSAnJzsKICAgICAgaWYoICR0aGlzLT5fcmVzYW1wbGUgKSB7CiAgICAgICAgICBpbWFnZWFscGhhYmxlbmRpbmcoJF9kZXN0Wydyc3JjJ10sRkFMU0UpOwogICAgICAgICAgJHJlcyA9IGltYWdlY29weXJlc2FtcGxlZCgkX2Rlc3RbJ3JzcmMnXSwkc3JjWydyc3JjJ10sMCwwLDAsMCwkbmV3X3csJG5ld19oLCRzcmNbJ3dpZHRoJ10sJHNyY1snaGVpZ2h0J10pOwogICAgICAgICAgaW1hZ2VhbHBoYWJsZW5kaW5nKCRfZGVzdFsncnNyYyddLFRSVUUpOwogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgICAgJHJlcyA9IGltYWdlY29weXJlc2l6ZWQoJF9kZXN0Wydyc3JjJ10sJHNyY1sncnNyYyddLDAsMCwwLDAsJG5ld193LCRuZXdfaCwkc3JjWyd3aWR0aCddLCRzcmNbJ2hlaWdodCddKTsKICAgICAgfQoKICAgICAgaWYoICEkcmVzICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignSW1hZ2UgVHJhbnNmb3JtIEZhaWxlZCcpOwogICAgICByZXR1cm4gJF9kZXN0OwogIH0KCgogIHByb3RlY3RlZCBmdW5jdGlvbiBfdHJhbnNmb3JtX3BlcmNlbnRhZ2UoSW1hZ2VCYXNlICRzcmMpCiAgewogICAgICAkbmV3X3cgPSAoaW50KSgoZmxvYXQpJHNyY1snd2lkdGgnXSAqIChmbG9hdCkkdGhpcy0+X3BlcmNlbnQgLyAxMDAuMCk7CiAgICAgICRuZXdfaCA9IChpbnQpKChmbG9hdCkkc3JjWydoZWlnaHQnXSAqIChmbG9hdCkkdGhpcy0+X3BlcmNlbnQgLyAxMDAuMCk7CiAgICAgIHJldHVybiAkdGhpcy0+X3RyYW5zZm9ybSgkc3JjLCRuZXdfdywkbmV3X2gpOwogIH0KCgogIHByb3RlY3RlZCBmdW5jdGlvbiBfdHJhbnNmb3JtX3dpZHRoKEltYWdlQmFzZSAkc3JjKQogIHsKICAgICAgLy8gY2FsY3VsYXRlIG5ldyB3aWR0aCBhbmQgaGVpZ2h0LCBwcmVzZXJ2aW5nIGFzcGVjdCByYXRpbwogICAgICAkbmV3X3cgPSAkdGhpcy0+X3dpZHRoOwogICAgICAkbmV3X2ggPSAoaW50KSgkdGhpcy0+X3dpZHRoICogJHNyY1snaGVpZ2h0J10gLyAkc3JjWyd3aWR0aCddKTsKICAgICAgcmV0dXJuICR0aGlzLT5fdHJhbnNmb3JtKCRzcmMsJG5ld193LCRuZXdfaCk7CiAgfQoKICBwcm90ZWN0ZWQgZnVuY3Rpb24gX3RyYW5zZm9ybV9oZWlnaHQoSW1hZ2VCYXNlICRzcmMpCiAgewogICAgICAvLyBjYWxjdWxhdGUgbmV3IHdpZHRoIGFuZCBoZWlnaHQsIHByZXNlcnZpbmcgYXNwZWN0IHJhdGlvCiAgICAgICRuZXdfaCA9ICR0aGlzLT5faGVpZ2h0OwogICAgICAkbmV3X3cgPSAoaW50KSgkdGhpcy0+X2hlaWdodCAqICRzcmNbJ3dpZHRoJ10gLyAkc3JjWydoZWlnaHQnXSk7CiAgICAgIHJldHVybiAkdGhpcy0+X3RyYW5zZm9ybSgkc3JjLCRuZXdfdywkbmV3X2gpOwogIH0KCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIF90cmFuc2Zvcm1fZWRnZShJbWFnZUJhc2UgJHNyYykKICB7CiAgICAgIC8vZmluZCB0aGUgbG9uZ2VzdCBlZGdlIG9mIGltYWdlIGFuZCByZXNpemUgYmFzZWQgb24gaXQKICAgICAgaWYoJHNyY1snd2lkdGgnXSA+ICRzcmNbJ2hlaWdodCddKSB7CiAgICAgICAgICAkbmV3X3cgPSAkdGhpcy0+X2VkZ2U7CiAgICAgICAgICAkbmV3X3cgPSBzaV91dGlsczo6dHJpbV90b19kZXZpY2UoJ3dpZHRoJywkbmV3X3cpOwogICAgICAgICAgJG5ld19oID0gKGludCkoJHRoaXMtPl9lZGdlICogJHNyY1snaGVpZ2h0J10gLyAkc3JjWyd3aWR0aCddKTsKICAgICAgICAgIHJldHVybiAkdGhpcy0+X3RyYW5zZm9ybSgkc3JjLCRuZXdfdywkbmV3X2gpOwogICAgICB9IGVsc2UgewogICAgICAgICAgJG5ld19oID0gJHRoaXMtPl9lZGdlOwogICAgICAgICAgJG5ld19oID0gc2lfdXRpbHM6OnRyaW1fdG9fZGV2aWNlKCdoZWlnaHQnLCRuZXdfaCk7CiAgICAgICAgICAkbmV3X3cgPSAoaW50KSgkdGhpcy0+X2VkZ2UgKiAkc3JjWyd3aWR0aCddIC8gJHNyY1snaGVpZ2h0J10pOwogICAgICAgICAgcmV0dXJuICR0aGlzLT5fdHJhbnNmb3JtKCRzcmMsJG5ld193LCRuZXdfaCk7CiAgICAgIH0KICB9CgogIHByb3RlY3RlZCBmdW5jdGlvbiBfdHJhbnNmb3JtX2N1c3RvbShJbWFnZUJhc2UgJHNyYykKICB7CiAgICAgIC8vIHRoaXMgZG9lcyBub3QgcHJlc2VydmUgYXNwZWN0IHJhdGlvLgogICAgICByZXR1cm4gJHRoaXMtPl90cmFuc2Zvcm0oJHNyYywkdGhpcy0+X3dpZHRoLCR0aGlzLT5faGVpZ2h0KTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gdHJhbnNmb3JtKEltYWdlQmFzZSAkaW1nKQogIHsKICAgICAgaWYoICR0aGlzLT5fcGVyY2VudCA+IDAgKSByZXR1cm4gJHRoaXMtPl90cmFuc2Zvcm1fcGVyY2VudGFnZSgkaW1nKTsgLy8gcGVyY2VudGFnZSByZXNpemUuCiAgICAgIGlmKCAkdGhpcy0+X2VkZ2UgPiAwICYmICgoJGltZ1snd2lkdGgnXSA+ICR0aGlzLT5fZWRnZSB8fCAkaW1nWydoZWlnaHQnXSA+ICR0aGlzLT5fZWRnZSkgfHwgJHRoaXMtPl91cHNzY2FsZSkgKSB7CiAgICAgICAgICAvL3Jlc2l6ZSBieSBsb25nZXN0IGVkZ2UKICAgICAgICAgIHJldHVybiAkdGhpcy0+X3RyYW5zZm9ybV9lZGdlKCRpbWcpOwogICAgICB9CiAgICAgIGlmKCAkdGhpcy0+X3dpZHRoID4gMCAmJiAkdGhpcy0+X2hlaWdodCA9PSAwICYmICgoJGltZ1snd2lkdGgnXSA+ICR0aGlzLT5fd2lkdGgpIHx8ICR0aGlzLT5fdXBzY2FsZSkgKSB7CiAgICAgICAgICByZXR1cm4gJHRoaXMtPl90cmFuc2Zvcm1fd2lkdGgoJGltZyk7CiAgICAgIH0KICAgICAgaWYoICR0aGlzLT5fd2lkdGggPT0gMCAmJiAkdGhpcy0+X2hlaWdodCA+IDAgJiYgKCgkaW1nWydoZWlnaHQnXSA+ICR0aGlzLT5faGVpZ2h0KSB8fCAkdGhpcy0+X3Vwc2NhbGUpICkgewogICAgICAgICAgcmV0dXJuICR0aGlzLT5fdHJhbnNmb3JtX2hlaWdodCgkaW1nKTsKICAgICAgfQogICAgICBpZiggJHRoaXMtPl93aWR0aCA+IDAgJiYgJHRoaXMtPl9oZWlnaHQgPiAwICkgewogICAgICAgICAgaWYoICRpbWdbJ3dpZHRoJ10gPT0gJHRoaXMtPl93aWR0aCAmJiAkaW1nWydoZWlnaHQnXSA9PSAkdGhpcy0+X2hlaWdodCApIHsKICAgICAgICAgICAgICAvLyBub3RoaW5nIHRvIGRvLi4uIGJ1dCB0cmljayB0aGUgaW1hZ2UgdG8gYmUgZGlydHkuCiAgICAgICAgICAgICAgJGltZ1snaGVpZ2h0J10gPSAkaW1nWydoZWlnaHQnXTsKICAgICAgICAgICAgICByZXR1cm4gJGltZzsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiAkdGhpcy0+X3RyYW5zZm9ybV9jdXN0b20oJGltZyk7CiAgICAgIH0KCiAgICAgIC8vIG5vdGhpbmcgdG8gZG8uLi4uIGJ1dCB0cmljayB0aGUgaW1hZ2UgdG8gYmUgZGlydHkuCiAgICAgICRpbWdbJ2hlaWdodCddID0gJGltZ1snaGVpZ2h0J107CiAgICAgIHJldHVybiAkaW1nOwogIH0KfQoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_Rotate_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICAKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKLyoqCiAqIEltYWdlIHJvdGF0aW9uIGZpbHRlciBjbGFzcwogKiAKICogQWxsb3dzIHJvdGF0aW5nIGFuIGltYWdlIGEgc3BlY2lmaWVkIG51bWJlciBvZiBkZWdyZWVzLgogKgogKiBAYXV0aG9yIFJvYmVydCBDYW1wYmVsbCA8Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZz4KICogQHBhY2thZ2UgU21hcnRJbWFnZQogKi8KY2xhc3MgSW1hZ2VfUm90YXRlX0ZpbHRlciBleHRlbmRzIEltYWdlRmlsdGVyQmFzZQp7CiAgLyoqCiAgICogVGhlIG51bWJlciBvZiBkZWdyZWVzIHRvIHJvdGF0ZQogICAqCiAgICogQGFjY2VzcyBwcml2YXRlCiAgICogQHZhciBpbnRlZ2VyCiAgICovCiAgcHJpdmF0ZSAkX2FuZ2xlID0gMDsKICBwcml2YXRlICRfY29sb3I7CiAgcHJpdmF0ZSAkX2FscGhhID0gMDsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KC8qIHZhcmlhYmxlIGFyZ3VtZW50cyAqLykKICB7CiAgICAkYXJncyA9IGZ1bmNfZ2V0X2FyZ3MoKTsKICAgIGlmKCBpc19hcnJheSgkYXJnc1swXSkgJiYgY291bnQoJGFyZ3MpID09IDEpICRhcmdzID0gJGFyZ3NbMF07CiAgICBpZiggY291bnQoJGFyZ3MpID49IDEgKSAkdGhpcy0+X2FuZ2xlID0gKGludCkkYXJnc1swXSAlIDM2MDsKICAgIGlmKCBjb3VudCgkYXJncykgPj0gMiApICR0aGlzLT5fY29sb3IgPSAkYXJnc1sxXTsKICAgIGlmKCBjb3VudCgkYXJncykgPj0gMyApICR0aGlzLT5fYWxwaGEgPSAoaW50KSRhcmdzWzJdOwoKICAgICR0aGlzLT5fYWxwaGEgPSBtYXgoMCxtaW4oMTI3LCR0aGlzLT5fYWxwaGEpKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2Zvcm0oSW1hZ2VCYXNlICRzcmMpCiAgewogICAgaWYoICR0aGlzLT5fYW5nbGUgPT0gMCApIHJldHVybiAkc3JjOyAvLyBub3RoaW5nIHRvIGRvLgogICAgJHR5cGUgPSAkc3JjWyd0eXBlJ107CiAgICBpZiggJHRoaXMtPl9hbHBoYSAhPSAwICkgJHR5cGUgPSAnaW1hZ2UvcG5nJzsKICAgIGlmKCAkdGhpcy0+X2FscGhhID09IDEyNyApICR0aGlzLT5fY29sb3IgPSAndHJhbnNwYXJlbnQnOwogICAgaWYoICR0aGlzLT5fY29sb3IgPT0gJ3RyYW5zcGFyZW50JyApICR0eXBlID0gJ2ltYWdlL3BuZyc7CgogICAgaWYoICFmdW5jdGlvbl9leGlzdHMoJ2ltYWdlcm90YXRlJykgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdpbWFnZXJvdGF0ZSBmdW5jdGlvbiBub3QgZm91bmQnKTsKCiAgICAkX2Rlc3QgPSBuZXcgSW1hZ2VCYXNlKGFycmF5KCR0eXBlLCRzcmNbJ3dpZHRoJ10sJHNyY1snaGVpZ2h0J10pKTsKCiAgICBpZiggISR0aGlzLT5fY29sb3IgfHwgJHRoaXMtPl9jb2xvciA9PSAndHJhbnNwYXJlbnQnICkgewogICAgICAkdGNvbG9yID0gc2lfdXRpbHM6OmdldF90cmFuc3BhcmVudF9jb2xvcigkc3JjKTsKICAgIH0KICAgIGVsc2UgewogICAgICBsaXN0KCRfciwkX2csJF9iKSA9IHNpX3V0aWxzOjpjb2xvcl90b19yZ2IoJHRoaXMtPl9jb2xvcik7CiAgICAgICR0Y29sb3IgPSBpbWFnZWNvbG9yYWxsb2NhdGVhbHBoYSgkX2Rlc3RbJ3JzcmMnXSwkX3IsJF9nLCRfYiwkdGhpcy0+X2FscGhhKTsKICAgIH0KICAgICRyZXMgPSBpbWFnZXJvdGF0ZSgkc3JjWydyc3JjJ10sJHRoaXMtPl9hbmdsZSAqIC0xLCR0Y29sb3IpOwogICAgaWYoICRyZXMgPT09IEZBTFNFICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignRXJyb3IgYXBwbHlpbmcgZmlsdGVyICcuSU1HX0ZJTFRFUl9DT0xPUklaRSk7CgogICAgaW1hZ2Vjb2xvcnRyYW5zcGFyZW50KCRyZXMsJHRjb2xvcik7CiAgICAkX2Rlc3RbJ3JzcmMnXSA9ICRyZXM7CiAgICAkX2Rlc3RbJ3dpZHRoJ10gPSBpbWFnZXN4KCRyZXMpOwogICAgJF9kZXN0WydoZWlnaHQnXSA9IGltYWdlc3koJHJlcyk7CiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_Roundedcorners_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICAKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgSW1hZ2VfUm91bmRlZGNvcm5lcnNfRmlsdGVyIGV4dGVuZHMgSW1hZ2VGaWx0ZXJCYXNlCnsKICBwcml2YXRlICRfcmFkaXVzOwogIHByaXZhdGUgJF9jb2xvcjsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRpbnB1dCkKICB7CiAgICBpZiggeHRfYXJyYXk6OmlzX2hhc2goJGlucHV0KSApIHsKICAgICAgaWYoIGlzc2V0KCRpbnB1dFsncmFkaXVzJ10pICkgJHRoaXMtPl9yYWRpdXMgPSAoaW50KSRpbnB1dFsncmFkaXVzJ107CiAgICAgIGlmKCBpc3NldCgkaW5wdXRbJ2NvbG9yJ10pICkgJHRoaXMtPl9jb2xvciA9ICRpbnB1dFsnY29sb3InXTsKICAgIH0KICAgIGVsc2UgaWYoIGlzX2FycmF5KCRpbnB1dCkgKSB7CiAgICAgIGlmKCBjb3VudCgkaW5wdXQpID49IDEgKSAkdGhpcy0+X3JhZGl1cyA9IChpbnQpJGlucHV0WzBdOwogICAgICBpZiggY291bnQoJGlucHV0KSA+PSAyICkgJHRoaXMtPl9jb2xvciAgPSAkaW5wdXRbMV07CiAgICB9CgogICAgaWYoICR0aGlzLT5fcmFkaXVzIDw9IDEgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIHZhbHVlcyBzcGVjaWZpZWQgZm9yIFJvdW5kZWRjb3JuZXJzIGZpbHRlciBjb25zdHJ1Y3RvcicpOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2Zvcm0oSW1hZ2VCYXNlICRzcmMpCiAgewogICAgJHdpZHRoID0gJHNyY1snd2lkdGgnXTsKICAgICRoZWlnaHQgPSAkc3JjWydoZWlnaHQnXTsKICAgICRyYWRpdXMgPSAkdGhpcy0+X3JhZGl1czsKICAgICR0eXBlID0gJHNyY1sndHlwZSddOwogICAgJGNvbG9yID0gbnVsbDsKICAgICRyID0gJGcgPSAkYiA9IDI1NTsKCiAgICBpZiggJHNyYy0+c3VwcG9ydHNfdHJhbnNwYXJlbmN5KCkgJiYgISR0aGlzLT5fY29sb3IgKSAkdGhpcy0+X2NvbG9yID0gJ3RyYW5zcGFyZW50JzsKICAgIGlmKCAkdGhpcy0+X2NvbG9yID09ICd0cmFuc3BhcmVudCcgKSAkdHlwZSA9ICdpbWFnZS9wbmcnOwoKICAgICRfZGVzdCA9IG5ldyBJbWFnZUJhc2UoYXJyYXkoJHR5cGUsJHdpZHRoLCRoZWlnaHQpKTsKICAgIGltYWdlY29weSgkX2Rlc3RbJ3JzcmMnXSwkc3JjWydyc3JjJ10sMCwwLDAsMCwkd2lkdGgsJGhlaWdodCk7CgogICAgaWYoICR0aGlzLT5fY29sb3IgKSB7CiAgICAgIGlmKCAkdGhpcy0+X2NvbG9yID09ICd0cmFuc3BhcmVudCcgKSB7CgkvLyBnZXQgdGhlIGRlc3QgaW1hZ2FnZXMgdHJhbnNwYXJlbnQgY29sb3IuCgkkY29sb3IgPSAkX2Rlc3RbJ3RyYW5zcGFyZW50J107CglpZiggISRjb2xvciApIGxpc3QoJHIsJGcsJGIpID0gc2lfdXRpbHM6OmZpbmRfdW51c2VkX2NvbG9yKCRfZGVzdCk7CiAgICAgIH0KICAgICAgZWxzZSB7CgkvLyB1c2UgdGhlIHNwZWNpZmllZCByZ2IuCglsaXN0KCRyLCRnLCRiKSA9IHNpX3V0aWxzOjpjb2xvcl90b19yZ2IoJHRoaXMtPl9jb2xvcik7CiAgICAgIH0KICAgIH0KCiAgICBpZiggISRjb2xvciApIHsKICAgICAgaWYoICR0aGlzLT5fY29sb3IgPT0gJ3RyYW5zcGFyZW50JyApIHsKCSRjb2xvciA9IGltYWdlY29sb3JhbGxvY2F0ZWFscGhhKCRfZGVzdFsncnNyYyddLCRyLCRnLCRiLDEyNyk7CiAgICAgIH0KICAgICAgZWxzZSB7CgkkY29sb3IgPSBpbWFnZWNvbG9yYWxsb2NhdGUoJF9kZXN0Wydyc3JjJ10sJHIsJGcsJGIpOwogICAgICB9CiAgICB9CgogICAgaWYoICR0aGlzLT5fY29sb3IgPT0gJ3RyYW5zcGFyZW50JyApIHsKICAgICAgJF9kZXN0Wyd0cmFuc3BhcmVudCddID0gJGNvbG9yOwogICAgICBpbWFnZWNvbG9ydHJhbnNwYXJlbnQoJF9kZXN0Wydyc3JjJ10sJGNvbG9yKTsKICAgICAgaW1hZ2VhbHBoYWJsZW5kaW5nKCRfZGVzdFsncnNyYyddLEZBTFNFKTsKICAgIH0KCiAgICAvLyByb3VuZCB0aGUgY29ybmVycy4KICAgIGltYWdlYXJjKCRfZGVzdFsncnNyYyddLCRyYWRpdXMtMSwkcmFkaXVzLTEsJHJhZGl1cyoyLCRyYWRpdXMqMiwgMTgwLCAyNzAsICRjb2xvcik7CiAgICBpbWFnZWZpbGx0b2JvcmRlcigkX2Rlc3RbJ3JzcmMnXSwwLDAsJGNvbG9yLCRjb2xvcik7CiAgICAKICAgIGltYWdlYXJjKCRfZGVzdFsncnNyYyddLCAkd2lkdGgtJHJhZGl1cywgJHJhZGl1cy0xLCAkcmFkaXVzKjIsICRyYWRpdXMqMiwgMjcwLCAwLCAkY29sb3IpOyAKICAgIGltYWdlZmlsbHRvYm9yZGVyKCRfZGVzdFsncnNyYyddLCAkd2lkdGgtMSwgMCwgJGNvbG9yLCAkY29sb3IpOwoKICAgIGltYWdlYXJjKCRfZGVzdFsncnNyYyddLCAkcmFkaXVzLTEsICRoZWlnaHQtJHJhZGl1cywgJHJhZGl1cyoyLCAkcmFkaXVzKjIsIDkwLCAxODAsICRjb2xvcik7IAogICAgaW1hZ2VmaWxsdG9ib3JkZXIoJF9kZXN0Wydyc3JjJ10sIDAsICRoZWlnaHQtMSwgJGNvbG9yLCAkY29sb3IpOwoKICAgIGltYWdlYXJjKCRfZGVzdFsncnNyYyddLCAkd2lkdGgtJHJhZGl1cywgJGhlaWdodC0kcmFkaXVzLCAkcmFkaXVzKjIsICRyYWRpdXMqMiwgMCwgOTAsICRjb2xvcik7IAogICAgaW1hZ2VmaWxsdG9ib3JkZXIoJF9kZXN0Wydyc3JjJ10sICR3aWR0aC0xLCAkaGVpZ2h0LTEsICRjb2xvciwgJGNvbG9yKTsKCiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_Selectiveblur_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICAKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKLyoqCiAqIFNlbGVjdGl2ZSBCbHVyIGltYWdlIGZpbHRlciBjbGFzcwogKgogKiBQZXJmb3JtcyBhIHNlbGVjdGl2ZSBibHVyIG9uIHRoZSBwcm92aWRlZCBpbWFnZS4KICogVGhlcmUgYXJlIG5vIHBhcmFtZXRlcnMgdG8gdGhpcyBmaWx0ZXJpbmcgbWV0aG9kLgogKgogKiBAYXV0aG9yIFJvYmVydCBDYW1wYmVsbCA8Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZz4KICogQHBhY2thZ2UgU21hcnRJbWFnZQogKi8KY2xhc3MgSW1hZ2VfU2VsZWN0aXZlYmx1cl9GaWx0ZXIgZXh0ZW5kcyBJbWFnZUZpbHRlckJhc2UKewogIAogIC8qKgogICAqIFRyYW5zZm9ybSB0aGUgc3BlY2lmaWVkIGltYWdlCiAgICoKICAgKiBAcGFyYW0gSW1hZ2VCYXNlIFRoZSBpbWFnZSB0byB0cmFuc2Zvcm0KICAgKiBAcmV0dXJuIEltYWdlQmFzZSBUaGUgdHJhbnNmb3JtZWQgaW1hZ2UuCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShJbWFnZUJhc2UgJHNyYykKICB7CiAgICAkX2Rlc3QgPSBuZXcgSW1hZ2VCYXNlKCRzcmMpOwogICAgJHRtcCA9ICR0aGlzLT5fYXJnczsKICAgICRyZXMgPSBpbWFnZWZpbHRlcigkX2Rlc3RbJ3JzcmMnXSxJTUdfRklMVEVSX1NFTEVDVElWRV9CTFVSKTsKCiAgICBpZiggISRyZXMgKQogICAgICB7Cgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdFcnJvciBhcHBseWluZyBmaWx0ZXIgJy5JTUdfRklMVEVSX1NFTEVDVElWRV9CTFVSKTsKICAgICAgfQogICAgcmV0dXJuICRfZGVzdDsKICB9Cn0KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_Sharpen_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTMgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IGNyZWF0aW5nIGltYWdlIHRhZ3MgaW4gYSBzbWFydAojICB3YXkgdG8gb3B0aW1pemUgcGVyZm9ybWFuY2UuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgSW1hZ2VfU2hhcnBlbl9GaWx0ZXIgZXh0ZW5kcyBJbWFnZUZpbHRlckJhc2UKewpwcml2YXRlICRfbWF0cml4ID0gYXJyYXkoYXJyYXkoMCwtMywwKSxhcnJheSgtMywyMSwtMyksYXJyYXkoMCwtMywwKSk7Ci8vICAgIHByaXZhdGUgJF9tYXRyaXggPSBhcnJheShhcnJheSgwLC0xLjAgLDApLGFycmF5KC0xLjAsIDUuMCwgLTEuMCksYXJyYXkoMCwtMS4wLCAwKSk7CiAgICBwcml2YXRlICRfZGl2aXNvciA9IDk7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KC8qIHZhciBhcmdzICovKQogICAgewogICAgICAgICRpbnB1dCA9IGZ1bmNfZ2V0X2FyZ3MoKTsKICAgICAgICBpZiggaXNfYXJyYXkoJGlucHV0KSAmJiBjb3VudCgkaW5wdXQpID09IDEgKSAkaW5wdXQgPSAkaW5wdXRbMF07CiAgICAgICAgJHRoaXMtPl9kaXZpc29yID0gYXJyYXlfc3VtKGFycmF5X21hcCgnYXJyYXlfc3VtJywgJHRoaXMtPl9tYXRyaXgpKTsKCiAgICAgICAgJGFkaiA9IDA7CiAgICAgICAgaWYoIHh0X2FycmF5Ojppc19oYXNoKCRpbnB1dCkgJiYgaXNzZXQoJGlucHV0WydkaXZpc29yJ10pICkgewogICAgICAgICAgICAkYWRqID0gKGZsb2F0KSRpbnB1dFsnZGl2aXNvciddOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKCBpc19hcnJheSgkaW5wdXQpICYmIGNvdW50KCRpbnB1dCkgPj0gMSApIHsKICAgICAgICAgICAgJGFkaiA9IChmbG9hdCkkaW5wdXRbMF07CiAgICAgICAgfQogICAgICAgICR0aGlzLT5fZGl2aXNvciArPSBtYXgoLTEwLG1pbigxMCwkYWRqKSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShJbWFnZUJhc2UgJHNyYykKICAgIHsKICAgICAgICAvLyBjb3B5IHRoZSBpbWFnZSAocGl4ZWwgZm9yIHBpeGVsKQogICAgICAgICRfZGVzdCA9IG5ldyBJbWFnZUJhc2UoJHNyYyk7CiAgICAgICAgaW1hZ2Vjb3B5KCRfZGVzdFsncnNyYyddLCRzcmNbJ3JzcmMnXSwwLDAsMCwwLCRzcmNbJ3dpZHRoJ10sJHNyY1snaGVpZ2h0J10pOwogICAgICAgIGltYWdlY29udm9sdXRpb24oJF9kZXN0Wydyc3JjJ10sJHRoaXMtPl9tYXRyaXgsJHRoaXMtPl9kaXZpc29yLDApOwogICAgICAgIHJldHVybiAkX2Rlc3Q7CiAgICB9Cn0KCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_Smooth_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICAKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKLyoqCiAqIFNtb290aGluZyBJbWFnZSBpbWFnZSBmaWx0ZXIgY2xhc3MKICogCiAqIFBlcmZvcm1zIGEgc21vb3RoaW5nIGZpbHRlciBvbiB0aGUgc3VwcGxpZWQgaW1hZ2UuCiAqCiAqIEBhdXRob3IgUm9iZXJ0IENhbXBiZWxsIDxjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnPgogKiBAcGFja2FnZSBTbWFydEltYWdlCiAqLwpjbGFzcyBJbWFnZV9TbW9vdGhfRmlsdGVyIGV4dGVuZHMgSW1hZ2VGaWx0ZXJCYXNlCnsKICAvKioKICAgKiBUaGUgU21vb3RoaW5nIFNpY2UKICAgKiBAYWNjZXNzIHByaXZhdGUKICAgKi8KICBwcml2YXRlICRfc21vb3RoID0gMDsKCiAgLyoqCiAgICogQ29uc3RydWN0b3IuCiAgICoKICAgKiBUaGlzIG1ldGhvZCBhY2NlcHRzIGEgdmFyaWV0eSBvZiB3YXlzIG9mIHNwZWNpZnlpbmcgdGhlIHNtb290aG5lc3MgZmFjdG9yLgogICAqIGkuZTogICRvYmogPSBuZXcgSW1hZ2VfU21vb3RoX0ZpbHRlcigzKTsKICAgKiBpLmU6ICAkb2JqID0gbmV3IEltYWdlX1Ntb290aF9GaWx0ZXIoYXJyYXkoMykpOwogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgvKiB2YXJpYWJsZSBhcmd1bWVudHMgKi8pCiAgewogICAgaWYoIGZ1bmNfbnVtX2FyZ3MoKSAhPSAxICkKICAgICAgewoJdGhyb3cgbmV3IEV4Y2VwdGlvbignSW52YWxpZCBhcmd1bWVudHMgdG8gJy5nZXRfY2xhc3MoJHRoaXMpKTsKICAgICAgfQoKICAgICRhcmdzID0gZnVuY19nZXRfYXJncygpOwogICAgJGFyZ3MgPSAkYXJnc1swXTsKICAgIGlmKCBpc19hcnJheSgkYXJncykgKQogICAgICB7CgkkdGhpcy0+X3Ntb290aCA9IChpbnQpJGFyZ3NbMF07CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHRoaXMtPl9zbW9vdGggPSAkYXJnczsKICAgICAgfQogIH0KCgogIC8qKgogICAqIFRyYW5zZm9ybSB0aGUgc3BlY2lmaWVkIGltYWdlIHVzaW5nIHRoZSBwYXJhbWV0ZXJzIHNldAogICAqCiAgICogQHBhcmFtIEltYWdlQmFzZSBUaGUgaW1hZ2UgdG8gdHJhbnNmb3JtCiAgICogQHJldHVybiBJbWFnZUJhc2UgVGhlIHRyYW5zZm9ybWVkIGltYWdlLgogICAqLwogIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2Zvcm0oSW1hZ2VCYXNlICRzcmMpCiAgewogICAgJF9kZXN0ID0gbmV3IEltYWdlQmFzZSgkc3JjKTsKICAgICRyZXMgPSBpbWFnZWZpbHRlcigkX2Rlc3RbJ3JzcmMnXSxJTUdfRklMVEVSX1NNT09USCwkdGhpcy0+X3Ntb290aCk7CgogICAgaWYoICEkcmVzICkKICAgICAgewoJdGhyb3cgbmV3IEV4Y2VwdGlvbignRXJyb3IgYXBwbHlpbmcgZmlsdGVyICcuSU1HX0ZJTFRFUl9TTU9PVEgpOwogICAgICB9CiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_Transparent_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICAKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKLyoqCiAqIENvbnZlcnRzIGFuIGltYWdlIHRvIHRyYW5zcGFyZW50LCBieSBzcGVjaWZ5aW5nIGEgY29sb3IgdGhhdCBzaG91bGQgYmVjb21lIHRoZSB0cmFuc3BhcmVudCBjb2xvci4KICogCiAqIEBhdXRob3IgUm9iZXJ0IENhbXBiZWxsIDxjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnPgogKiBAcGFja2FnZSBTbWFydEltYWdlCiAqLwpjbGFzcyBJbWFnZV9UcmFuc3BhcmVudF9GaWx0ZXIgZXh0ZW5kcyBJbWFnZUZpbHRlckJhc2UKewogIC8qKgogICAqIFRoZSBudW1iZXIgb2YgZGVncmVlcyB0byByb3RhdGUKICAgKgogICAqIEBhY2Nlc3MgcHJpdmF0ZQogICAqIEB2YXIgaW50ZWdlcgogICAqLwogIHByaXZhdGUgJF9jb2xvcjsKICBwcml2YXRlICRfYWxwaGEgPSAxMjc7CgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgvKiB2YXJpYWJsZSBhcmd1bWVudHMgKi8pCiAgewogICAgJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7CiAgICBpZiggaXNfYXJyYXkoJGFyZ3NbMF0pICYmIGNvdW50KCRhcmdzKSA9PSAxKSAkYXJncyA9ICRhcmdzWzBdOwogICAgaWYoIGNvdW50KCRhcmdzKSA+PSAxICkgJHRoaXMtPl9jb2xvciA9ICRhcmdzWzBdOwogICAgaWYoIGNvdW50KCRhcmdzKSA+PSAyICkgJHRoaXMtPl9hbHBoYSA9IChpbnQpJGFyZ3NbMV07CgogICAgJHRoaXMtPl9hbHBoYSA9IG1heCgwLG1pbigxMjcsJHRoaXMtPl9hbHBoYSkpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShJbWFnZUJhc2UgJHNyYykKICB7CiAgICAkdHlwZSA9ICdpbWFnZS9wbmcnOwogICAgJF9kZXN0ID0gbmV3IEltYWdlQmFzZShhcnJheSgkdHlwZSwkc3JjWyd3aWR0aCddLCRzcmNbJ2hlaWdodCddKSk7CiAgICBpbWFnZWNvcHkoJF9kZXN0Wydyc3JjJ10sJHNyY1sncnNyYyddLDAsMCwwLDAsJHNyY1snd2lkdGgnXSwkc3JjWydoZWlnaHQnXSk7CiAgICBsaXN0KCRfciwkX2csJF9iKSA9IHNpX3V0aWxzOjpjb2xvcl90b19yZ2IoJHRoaXMtPl9jb2xvcik7CiAgICAkY29sb3IgPSBpbWFnZWNvbG9yYWxsb2NhdGVhbHBoYSgkX2Rlc3RbJ3JzcmMnXSwkX3IsJF9nLCRfYiwkdGhpcy0+X2FscGhhKTsKICAgIGltYWdlY29sb3J0cmFuc3BhcmVudCgkX2Rlc3RbJ3JzcmMnXSwkY29sb3IpOwogICAgJF9kZXN0Wyd0cmFuc3BhcmVudCddID0gJGNvbG9yOwogICAgcmV0dXJuICRfZGVzdDsKICB9Cn0KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_Untransparent_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICAKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKLyoqCiAqIENvbnZlcnRzIGEgdHJhbnNwYXJlbnQgaW1hZ2UgdG8gdW50cmFuc3BhcmVudCwgYnkgc3BlY2lmeWluZyBhIGNvbG9yIHRoYXQgc2hvdWxkIGJlY29tZSB0aGUgYmFja2dyb3VuZCBjb2xvci4KICogCiAqIEBhdXRob3IgUm9iZXJ0IENhbXBiZWxsIDxjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnPgogKiBAcGFja2FnZSBTbWFydEltYWdlCiAqLwpjbGFzcyBJbWFnZV9VbnRyYW5zcGFyZW50X0ZpbHRlciBleHRlbmRzIEltYWdlRmlsdGVyQmFzZQp7CiAgLyoqCiAgICogVGhlIG51bWJlciBvZiBkZWdyZWVzIHRvIHJvdGF0ZQogICAqCiAgICogQGFjY2VzcyBwcml2YXRlCiAgICogQHZhciBpbnRlZ2VyCiAgICovCiAgcHJpdmF0ZSAkX2NvbG9yOwogIHByaXZhdGUgJF9wY3QgPSAxMDA7CgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgvKiB2YXJpYWJsZSBhcmd1bWVudHMgKi8pCiAgewogICAgJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7CiAgICBpZiggaXNfYXJyYXkoJGFyZ3NbMF0pICYmIGNvdW50KCRhcmdzKSA9PSAxKSAkYXJncyA9ICRhcmdzWzBdOwogICAgaWYoIGNvdW50KCRhcmdzKSA+PSAxICkgJHRoaXMtPl9jb2xvciA9ICRhcmdzWzBdOwogICAgaWYoIGNvdW50KCRhcmdzKSA+PSAyICkgJHRoaXMtPl9wY3QgPSAoaW50KSRhcmdzWzFdOwoKICAgICR0aGlzLT5fcGN0ID0gbWF4KDAsbWluKDEwMCwkdGhpcy0+X3BjdCkpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHRyYW5zZm9ybShJbWFnZUJhc2UgJHNyYykKICB7CiAgICAkdHlwZSA9ICdpbWFnZS9qcGVnJzsKICAgIGlmKCAhZnVuY3Rpb25fZXhpc3RzKCdpbWFnZXJvdGF0ZScpICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignaW1hZ2Vyb3RhdGUgZnVuY3Rpb24gbm90IGZvdW5kJyk7CiAgICAkX2Rlc3QgPSBuZXcgSW1hZ2VCYXNlKGFycmF5KCR0eXBlLCRzcmNbJ3dpZHRoJ10sJHNyY1snaGVpZ2h0J10pKTsKICAgIGxpc3QoJF9yLCRfZywkX2IpID0gc2lfdXRpbHM6OmNvbG9yX3RvX3JnYigkdGhpcy0+X2NvbG9yKTsKICAgICRjb2xvciA9IGltYWdlY29sb3JhbGxvY2F0ZSgkX2Rlc3RbJ3JzcmMnXSwkX3IsJF9nLCRfYik7CiAgICBpbWFnZWZpbGwoJF9kZXN0Wydyc3JjJ10sMCwwLCRjb2xvcik7CiAgICBpZiggJHRoaXMtPl9wY3QgPT0gMTAwICkgewogICAgICBpbWFnZWNvcHkoJF9kZXN0Wydyc3JjJ10sJHNyY1sncnNyYyddLCAwLCAwLCAwLCAwLCAkc3JjWyd3aWR0aCddLCAkc3JjWydoZWlnaHQnXSk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgaW1hZ2Vjb3B5bWVyZ2UoJF9kZXN0Wydyc3JjJ10sJHNyY1sncnNyYyddLCAwLCAwLCAwLCAwLCAkc3JjWyd3aWR0aCddLCAkc3JjWydoZWlnaHQnXSwkdGhpcy0+X3BjdCk7CiAgICB9CiAgICByZXR1cm4gJF9kZXN0OwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.Image_Watermark_Filter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogQ0dTbWFydEltYWdlIChjKSAyMDExLTIwMjEgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBJbWFnZV9XYXRlcm1hcmtfRmlsdGVyIGV4dGVuZHMgSW1hZ2VGaWx0ZXJCYXNlCnsKICAgIHByaXZhdGUgJF93bXRleHQ7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KC8qIHZhciBhcmdzICovKQogICAgewogICAgICAgICRpbnB1dCA9IGZ1bmNfZ2V0X2FyZ3MoKTsKICAgICAgICBpZiggY291bnQoJGlucHV0KSA9PSAxICYmIGlzX2FycmF5KCRpbnB1dFswXSkgKSAkaW5wdXQgPSAkaW5wdXRbMF07CgogICAgICAgIGlmKCB4dF9hcnJheTo6aXNfaGFzaCgkaW5wdXQpICkgewogICAgICAgICAgICAkdGhpcy0+X3dtdGV4dCA9IFx4dF9wYXJhbTo6Z2V0X3N0cmluZygkaW5wdXQsJ3RleHQnKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggaXNfYXJyYXkoJGlucHV0KSAmJiBjb3VudCgkaW5wdXQpID49IDEgKSB7CiAgICAgICAgICAgICR0bXAgPSBceHRfcGFyYW06OmdldF9zdHJpbmcoJGlucHV0LDApOwogICAgICAgICAgICBpZiggaXNfc3RyaW5nKCR0bXApICYmICFpc19udW1lcmljKCR0bXApICkgewogICAgICAgICAgICAgICAgJHRoaXMtPl93bXRleHQgPSAkdG1wOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2Zvcm0oSW1hZ2VCYXNlICRzcmMpCiAgICB7CiAgICAgICAgJF9kZXN0ID0gbmV3IEltYWdlQmFzZSgkc3JjKTsKCiAgICAgICAgJHdhdGVybWFya2VyID0gXHh0X3NldHVwOjpnZXRfd2F0ZXJtYXJrZXIoKTsKICAgICAgICBpZiggJHRoaXMtPl93bXRleHQgKSB7CiAgICAgICAgICAgIC8vIGNsZWFuIHVwIHRoZSB0ZXh0CiAgICAgICAgICAgICR0ZXh0ID0gc3RyaXBfdGFncygkdGhpcy0+X3dtdGV4dCk7CiAgICAgICAgICAgICR0ZXh0ID0gc3Vic3RyKCR0ZXh0LDAsNTApOwogICAgICAgICAgICAkdGV4dCA9IHRyaW0oJHRleHQpOwogICAgICAgICAgICBpZiggaXNfbnVsbChceHRfdXRpbHM6OnRvX2Jvb2woJHRleHQsVFJVRSkpICkgewogICAgICAgICAgICAgICAgJHdhdGVybWFya2VyLT5zZXRfd2F0ZXJtYXJrX3RleHQoJHRleHQpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICRfZGVzdFsncnNyYyddID0gJHdhdGVybWFya2VyLT5nZXRfd2F0ZXJtYXJrZWRfaW1hZ2UoJF9kZXN0Wydyc3JjJ10pOwogICAgICAgIHJldHVybiAkX2Rlc3Q7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/class.si_DeviceAtlasPersonal_client.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTIgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IGNyZWF0aW5nIGltYWdlIHRhZ3MgaW4gYSBzbWFydAojICB3YXkgdG8gb3B0aW1pemUgcGVyZm9ybWFuY2UuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBzaV9EZXZpY2VBdGxhc1BlcnNvbmFsX2NsaWVudCBleHRlbmRzIHNpX2RldmljZWNhcGFiaWxpdGllc19jbGllbnQKewogIGNvbnN0IHJlcXVlc3RfdXJsID0gJ2h0dHA6Ly9kZXZpY2VhdGxhcy5hcHBzcG90LmNvbS9xdWVyeSc7CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGV2aWNlX3Jlc29sdXRpb24oKQogIHsKICAgICAgZGVidWdfYnVmZmVyKCdjYWxsaW5nIGRldmljZWF0bGFzIHRvIGdldCBicm93c2VyIGNhcGFiaWxpdGllcycpOwogICAgICAkY2xpZW50ID0geHRfaHR0cDo6Z2V0X2h0dHAoKTsKICAgICAgJGNsaWVudC0+c2V0TWV0aG9kKCdHRVQnKTsKICAgICAgJGNsaWVudC0+c2V0dGltZW91dCgzKTsgLy8gb3ZlcnJpZGUgdGhlIHRpbWVvdXQuCiAgICAgICRjbGllbnQtPnNldFRhcmdldChzZWxmOjpyZXF1ZXN0X3VybCk7CiAgICAgICRjbGllbnQtPmFkZFBhcmFtKCdVc2VyLUFnZW50JywkdGhpcy0+Z2V0X2FnZW50KCkpOwogICAgICAkanNvbiA9ICRjbGllbnQtPmV4ZWN1dGUoKTsKICAgICAgJHN0YXR1cyA9ICRjbGllbnQtPmdldFN0YXR1cygpOwoKICAgICAgaWYoICRzdGF0dXMgIT0gMjAwIHx8ICEkanNvbiApIHsKICAgICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignU21hcnRJbWFnZTogIENvbm5lY3Rpb24gdG8gRGV2aWNlQXRsYXMgZmFpbGVkJyk7CiAgICAgIH0KCiAgICAgIC8vIGNvdWxkIGJlIHRyYWNraW5nIGZhaWx1cmVzIGhlcmUKCiAgICAgICRkYXRhID0ganNvbl9kZWNvZGUoJGpzb24sVFJVRSk7CiAgICAgIGlmKCAhaXNfYXJyYXkoJGRhdGEpICkgcmV0dXJuOwogICAgICBpZiggIWlzc2V0KCRkYXRhWydpc0Jyb3dzZXInXSkgKSByZXR1cm47CgogICAgICBpZiggIWlzc2V0KCRkYXRhWydkaXNwbGF5V2lkdGgnXSkgfHwgIWlzc2V0KCRkYXRhWydkaXNwbGF5SGVpZ2h0J10pICkgewogICAgICAgICAgZGVidWdfYnVmZmVyKCdjb25uZWN0aW9uIHRvIGRldmljZWF0bGFzIHN1Y2NlZGVkLCBidXQgbm8gcmVzb2x1dGlvbiBpbmZvcm1hdGlvbicpOwogICAgICAgICAgcmV0dXJuICRkYXRhOwogICAgICB9CgogICAgICAvLyB3b290LCBpdCB3b3JrZWQuCiAgICAgICRyZXMgPSBhcnJheSgpOwogICAgICAkcmVzWyd3aWR0aCddID0gJGRhdGFbJ2Rpc3BsYXlXaWR0aCddOwogICAgICAkcmVzWydoZWlnaHQnXSA9ICRkYXRhWydkaXNwbGF5SGVpZ2h0J107CiAgICAgIHJldHVybiAkcmVzOwogIH0KfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.si_devicecapabilities_client.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICAKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKYWJzdHJhY3QgY2xhc3Mgc2lfZGV2aWNlY2FwYWJpbGl0aWVzX2NsaWVudAp7CiAgcHJpdmF0ZSAkX2FnZW50OwoKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHVzZXJfYWdlbnQpCiAgewogICAgJHRoaXMtPl9hZ2VudCA9ICR1c2VyX2FnZW50OwogIH0KCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF9hZ2VudCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5fYWdlbnQ7CiAgfQoKICAvLyByZXR1cm4gYXJyYXkgb2Ygd2lkdGgsIGhlaWdodCAoaW4gcGl4ZWxzKSwgb3IgbnVsbAogIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBnZXRfZGV2aWNlX3Jlc29sdXRpb24oKTsKfSAvLyBlbmQgb2YgaW50ZXJmYWNlCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.si_extended.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTMgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICAKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKZmluYWwgY2xhc3Mgc2lfZXh0ZW5kZWQKewogIHByaXZhdGUgZnVuY3Rpb24gX19jb25zc3RydWN0KCkge30KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzaV9nZXRpbWFnZXMoJHBhcmFtcywkY29udGVudCwmJHNtYXJ0eSwkcmVwZWF0KQogIHsKICAgIGlmKCAhJGNvbnRlbnQgKSByZXR1cm47CgogICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnU21hcnRJbWFnZScpOwogICAgJG9sZF9lcnJvcnZhbCA9IGxpYnhtbF91c2VfaW50ZXJuYWxfZXJyb3JzKHRydWUpOwogICAgJGRvbSA9IG5ldyBEb21Eb2N1bWVudCgpOwogICAgJGRvbS0+c3RyaWN0RXJyb3JDaGVja2luZyA9IEZBTFNFOwogICAgJGRvbS0+dmFsaWRhdGVPblBhcnNlID0gRkFMU0U7CiAgICBpZiggZnVuY3Rpb25fZXhpc3RzKCdtYl9jb252ZXJ0X2VuY29kaW5nJykgKSAkY29udGVudCA9IG1iX2NvbnZlcnRfZW5jb2RpbmcoJGNvbnRlbnQsICdIVE1MLUVOVElUSUVTJywgJ1VURi04Jyk7CiAgICAkZG9tLT5sb2FkSFRNTCgkY29udGVudCk7CgogICAgJGltZ3MgPSAkZG9tLT5HZXRFbGVtZW50c0J5VGFnTmFtZSgnaW1nJyk7CiAgICBpZiggaXNfb2JqZWN0KCRpbWdzKSAmJiAkaW1ncy0+bGVuZ3RoICkgewogICAgICAkb3V0ID0gYXJyYXkoKTsKICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgJGltZ3MtPmxlbmd0aDsgJGkrKyApIHsKCSRub2RlID0gJGltZ3MtPml0ZW0oJGkpOwoJJHN4ZSA9IHNpbXBsZXhtbF9pbXBvcnRfZG9tKCRub2RlKTsKCgkkcmVjID0gYXJyYXkoKTsKCSRyZWNbJ3RhZyddID0gJHN4ZS0+YXNYTUwoKTsKCWZvcmVhY2goICRzeGUtPmF0dHJpYnV0ZXMoKSBhcyAkbmFtZSA9PiAkdmFsdWUgKSB7CgkgICR2YWx1ZSA9IChzdHJpbmcpJHZhbHVlOwoJICBpZiggJHZhbHVlID09ICcnICkgY29udGludWU7CgkgICRyZWNbJG5hbWVdID0gJHZhbHVlOwoJfQoJJG91dFtdID0gJHJlYzsKICAgICAgfQoKICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2Fzc2lnbiddKSApICRzbWFydHktPmFzc2lnbigkcGFyYW1zWydhc3NpZ24nXSwkb3V0KTsKICAgIH0KCiAgICAkaW1hZ2Vzb25seSA9IGNtc190b19ib29sKGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywnaW1hZ2Vzb25seScpKTsKICAgICRub2NvbnRlbnQgPSBjbXNfdG9fYm9vbChnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsJ25vY29udGVudCcpKTs7CiAgICBpZiggISRub2NvbnRlbnQgKSB7CiAgICAgIGlmKCAkaW1hZ2Vzb25seSApIHsKCSRjb250ZW50ID0gJyc7Cglmb3JlYWNoKCAkb3V0IGFzICRyZWMgKSB7CgkgICRjb250ZW50IC49ICRyZWNbJ3RhZyddOwoJfQogICAgICB9CiAgICAgIHJldHVybiAkY29udGVudDsKICAgIH0KICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.si_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTIgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IGNyZWF0aW5nIGltYWdlIHRhZ3MgaW4gYSBzbWFydAojICB3YXkgdG8gb3B0aW1pemUgcGVyZm9ybWFuY2UuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0cyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIFNJU3RvcEhlcmVFeGNlcHRpb24gZXh0ZW5kcyBcRXhjZXB0aW9uCnsKfQoKZmluYWwgY2xhc3Mgc2lfdXRpbHMKewogIHByb3RlY3RlZCBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHsgfQogIAogIHN0YXRpYyBwcml2YXRlICRfZGV2aWNlX2RhdGE7CiAgCiAgLyoqCiAgICogR2l2ZW4gYSBmYWlybHkgbG9vc2UgaW1hZ2UgdHlwZSBpZGVudGlmaWVyCiAgICogKGVpdGhlciBhbiBleHRlbnNpb24gb3IgYSBtaW1lIHR5cGUpCiAgICogdGhhdCBjb3VsZCBiZSBzb21ld2hhdCBtaXMtc3BlbGxlZAogICAqIGF0dGVtcHQgdG8gcmV0dXJuIGEgcmVhc29uYWJsZSBtaW1lIHR5cGUKICAgKi8KICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBwYXJzZV90eXBlKCRzdHIsICRkZmx0ID0gJ2ltYWdlL3BuZycpCiAgewogICAgJHN0ciA9IHN0cnRvbG93ZXIoJHN0cik7CiAgICB3aGlsZShzdGFydHN3aXRoKCRzdHIsICcuJykpCiAgICB7CiAgICAgICRzdHIgPSBzdWJzdHIoJHN0ciwgMSk7CiAgICB9CiAgICAKICAgIHN3aXRjaCgkc3RyKQogICAgewogICAgICBjYXNlICdpbWFnZS9qcGVnJzoKICAgICAgY2FzZSAnaW1hZ2UvcG5nJzoKICAgICAgY2FzZSAnaW1hZ2UvZ2lmJzoKICAgICAgY2FzZSAnaW1hZ2UvYm1wJzoKICAgICAgY2FzZSAnaW1hZ2Uvd2VicCc6CiAgICAgICAgcmV0dXJuICRzdHI7CiAgICAgIGNhc2UgJ2ltYWdlL3gtd2luZG93cy1ibXAnOgogICAgICBjYXNlICdpbWFnZS94LW1zLWJtcCc6CiAgICAgICAgcmV0dXJuICdpbWFnZS9ibXAnOwogICAgICBjYXNlICdpbWFnZS9qcGcnOgogICAgICBjYXNlICdqcGVnJzoKICAgICAgY2FzZSAnanBnJzoKICAgICAgICByZXR1cm4gJ2ltYWdlL2pwZWcnOwogICAgICBjYXNlICdwbmcnOgogICAgICAgIHJldHVybiAnaW1hZ2UvcG5nJzsKICAgICAgY2FzZSAnZ2lmJzoKICAgICAgICByZXR1cm4gJ2ltYWdlL2dpZic7CiAgICAgIGNhc2UgJ2JtcCc6CiAgICAgICAgcmV0dXJuICdpbWFnZS9ibXAnOwogICAgICBjYXNlICd3ZWJwJzoKICAgICAgICByZXR1cm4gJ2ltYWdlL3dlYnAnOwogICAgICBkZWZhdWx0OgogICAgICAgIHJldHVybiAkZGZsdDsKICAgIH0KICB9CiAgCiAgLyoqCiAgICogR2l2ZW4gYSBtaW1lIHR5cGUgZm9yIG91ciBrbm93biBpbWFnZSBmb3JtYXRzLCByZXR1cm4gYW4gZXh0ZW5zaW9uCiAgICovCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gZ2V0X2V4dGVuc2lvbigkbWltZV90eXBlKQogIHsKICAgICRtYXAgPSBbCiAgICAgICdpbWFnZS9qcGVnJyAgICAgICAgICAgICAgID0+ICcuanBnJywKICAgICAgJ2ltYWdlL3BuZycgICAgICAgICAgICAgICAgPT4gJy5wbmcnLAogICAgICAnaW1hZ2UvYm1wJyAgICAgICAgICAgICAgICA9PiAnLmJtcCcsCiAgICAgICdpbWFnZS9naWYnICAgICAgICAgICAgICAgID0+ICcuZ2lmJywKICAgICAgJ2ltYWdlL3BzZCcgICAgICAgICAgICAgICAgPT4gJy5wc2QnLAogICAgICAnaW1hZ2UvdGlmZicgICAgICAgICAgICAgICA9PiAnLnRpZmYnLAogICAgICAnaW1hZ2UvanAyJyAgICAgICAgICAgICAgICA9PiAnLmdpZicsCiAgICAgICdpbWFnZS9pZmYnICAgICAgICAgICAgICAgID0+ICcuanAyJywKICAgICAgJ2ltYWdlL3ZuZC53YXAud2JtcCcgICAgICAgPT4gJy53Ym1wJywKICAgICAgJ2ltYWdlL3hibScgICAgICAgICAgICAgICAgPT4gJy54Ym0nLAogICAgICAnaW1hZ2Uvdm5kLm1pY3Jvc29mdC5pY29uJyA9PiAnLmljb24nLAogICAgICAnaW1hZ2Uvd2VicCcgICAgICAgICAgICAgICA9PiAnLmljb24nCiAgICBdOwogIAogICAgcmV0dXJuICRtYXBbJG1pbWVfdHlwZV0gPz8gTlVMTDsKICB9CiAgCiAgLyoqCiAgICogUmV0dXJuIHRoZSBvcHRpb25zIGZvciBhIHBhcnRpY3VsYXIgYWxpYXMKICAgKi8KICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBfZ2V0X2FsaWFzX29wdGlvbnMoJG5hbWUpCiAgewogICAgc3RhdGljICRhbGlhc2VzOwogICAgaWYoISRhbGlhc2VzKQogICAgewogICAgICAkbW9kICAgICA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnU21hcnRJbWFnZScpOwogICAgICAkdG1wICAgICA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ2FsaWFzZXMnKTsKICAgICAgJGFsaWFzZXMgPSAnRkFMU0UnOwogICAgICBpZigkdG1wKQogICAgICB7CiAgICAgICAgJGFsaWFzZXMgPSB1bnNlcmlhbGl6ZSgkdG1wKTsKICAgICAgfQogICAgfQogICAgaWYoaXNfYXJyYXkoJGFsaWFzZXMpKQogICAgewogICAgICAka2V5cyA9IGFycmF5X2tleXMoJGFsaWFzZXMpOwogICAgICBmb3IoJGkgPSAwLCAkaU1heCA9IGNvdW50KCRrZXlzKTsgJGkgPCAkaU1heDsgJGkrKykKICAgICAgewogICAgICAgICRrZXkgPSAka2V5c1skaV07CiAgICAgICAgaWYoJGFsaWFzZXNbJGtleV1bJ25hbWUnXSA9PSAkbmFtZSkKICAgICAgICB7CiAgICAgICAgICByZXR1cm4gJGFsaWFzZXNbJGtleV1bJ29wdGlvbnMnXTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9CiAgCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX2V4cGFuZF9xdW90ZWRfc3RyaW5nKCRzdHIpCiAgewogICAgJHJlc3VsdCAgICA9IFtdOwogICAgJGNvbCAgICAgICA9ICcnOwogICAgJHNhZmUgICAgICA9ICcnOwogICAgJHByZXZfY2hhciA9ICcnOwogICAgZm9yKCRpID0gMCwgJGlNYXggPSBzdHJsZW4oJHN0cik7ICRpIDwgJGlNYXg7ICRpKyspCiAgICB7CiAgICAgIHN3aXRjaCgkc3RyWyRpXSkKICAgICAgewogICAgICAgIGNhc2UgJyAnOgogICAgICAgICAgaWYoISRzYWZlKQogICAgICAgICAgewogICAgICAgICAgICBpZihzdHJwb3MoJGNvbCwgJz0nKSAhPT0gRkFMU0UpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICBbJGssICR2XSA9IGV4cGxvZGUoJz0nLCAkY29sLCAyKTsKICAgICAgICAgICAgICAkcmVzdWx0WyRrXSA9ICR2OwogICAgICAgICAgICB9CiAgICAgICAgICAgICRjb2wgPSAnJzsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UKICAgICAgICAgIHsKICAgICAgICAgICAgJGNvbCAuPSAkc3RyWyRpXTsKICAgICAgICAgIH0KICAgICAgICBicmVhazsKICAgICAgICAKICAgICAgICBjYXNlICInIjoKICAgICAgICBjYXNlICciJzoKICAgICAgICAgIGlmKCRwcmV2X2NoYXIgIT0gJ1xcJykKICAgICAgICAgIHsKICAgICAgICAgICAgaWYoJHN0clskaV0gPT0gJHNhZmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAkc2FmZSA9IE5VTEw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgJHNhZmUgPSAkc3RyWyRpXTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIGJyZWFrOwogICAgICAgIAogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAkY29sIC49ICRzdHJbJGldOwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIAogICAgICAkcHJldl9jaGFyID0gJHN0clskaV07CiAgICB9CiAgICAKICAgIGlmKCRjb2wgIT09ICcnKQogICAgewogICAgICBpZihzdHJwb3MoJGNvbCwgJz0nKSAhPT0gRkFMU0UpCiAgICAgIHsKICAgICAgICBbJGssICR2XSA9IGV4cGxvZGUoJz0nLCAkY29sLCAyKTsKICAgICAgICAkcmVzdWx0WyRrXSA9ICR2OwogICAgICB9CiAgICB9CiAgICAKICAgIHJldHVybiAkcmVzdWx0OwogIH0KICAKICAKICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBfaXNfc3R5bGVzaGVldCgpCiAgewogICAgJHRtcCA9IGRlYnVnX2JhY2t0cmFjZSgpOwogICAgZm9yZWFjaCgkdG1wIGFzICRlbGVtKQogICAgewogICAgICBpZihpc3NldCgkZWxlbVsnZnVuY3Rpb24nXSkgJiYgJGVsZW1bJ2Z1bmN0aW9uJ10gPT0gJ3NtYXJ0eV9jbXNfZnVuY3Rpb25fY21zX3N0eWxlc2hlZXQnKQogICAgICB7CiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICAgIH0KICAgIH0KICAgIAogICAgcmV0dXJuIEZBTFNFOwogIH0KICAKICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBfbWluX25vdDAoLyogdmFyIGFyZ3MgKi8pCiAgewogICAgJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7CiAgICAkdmFsICA9ICRhcmdzWzBdOwogICAgZm9yKCRpID0gMSwgJGlNYXggPSBjb3VudCgkYXJncyk7ICRpIDwgJGlNYXg7ICRpKyspCiAgICB7CiAgICAgIGlmKCRhcmdzWyRpXSA+IDApCiAgICAgIHsKICAgICAgICAkdmFsID0gbWluKCR2YWwsICRhcmdzWyRpXSk7CiAgICAgIH0KICAgIH0KICAgIAogICAgcmV0dXJuICR2YWw7CiAgfQogIAogIAogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIF9hZGp1c3Rfc2l6ZXNfdG9fYXNwZWN0X3JhdGlvKCRpbl93LCAkaW5faCwgJG1heF9zaXplKQogIHsKICAgIC8vIGNhbGN1bGF0ZSBuZXcgaW1hZ2Ugc2l6ZSBiYXNlZCBvbiBtYXggc2l6ZSAoZm9yIHJlc3BvbnNpdmUgc3R1ZmYpCiAgICAvLyBidXQgbmV2ZXIsIGV2ZXIgYWxsb3cgdXBzY2FsaW5nLgogICAgJG5ld193ID0gJGluX3c7CiAgICAkbmV3X2ggPSAkaW5faDsKICAgIGlmKCRpbl93ID4gJGluX2ggJiYgJG1heF9zaXplIDwgJGluX3cpCiAgICB7CiAgICAgICRuZXdfdyA9ICRtYXhfc2l6ZTsKICAgICAgJG5ld19oID0gKGludCkoJG5ld193ICogJGluX2ggLyAkaW5fdyk7CiAgICB9CiAgICBlbHNlIGlmKCRtYXhfc2l6ZSA8ICRpbl9oKQogICAgewogICAgICAkbmV3X2ggPSAkbWF4X3NpemU7CiAgICAgICRuZXdfdyA9IChpbnQpKCRuZXdfaCAqICRpbl93IC8gJGluX2gpOwogICAgfQogICAgCiAgICByZXR1cm4gWyRuZXdfdywgJG5ld19oXTsKICB9CiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjb2xvcl90b19yZ2IoJHN0cikKICB7CiAgICAkc3RyID0gdHJpbSgkc3RyKTsKICAgICRyZXMgPSBbMCwgMCwgMF07CiAgICAKICAgIGlmKHN0YXJ0c3dpdGgoJHN0ciwgJyMnKSAmJiBzdHJsZW4oJHN0cikgPT0gNCkKICAgIHsKICAgICAgJHIgICAgICA9IHN1YnN0cigkc3RyLCAxLCAxKTsKICAgICAgJHIgICAgICA9ICRyIC4gJHI7CiAgICAgICRnICAgICAgPSBzdWJzdHIoJHN0ciwgMiwgMSk7CiAgICAgICRnICAgICAgPSAkZyAuICRnOwogICAgICAkYiAgICAgID0gc3Vic3RyKCRzdHIsIDMsIDEpOwogICAgICAkYiAgICAgID0gJGIgLiAkYjsKICAgICAgJHJlc1swXSA9IGhleGRlYygkcik7CiAgICAgICRyZXNbMV0gPSBoZXhkZWMoJGcpOwogICAgICAkcmVzWzJdID0gaGV4ZGVjKCRiKTsKICAgICAgCiAgICAgIHJldHVybiAkcmVzOwogICAgfQogICAgCiAgICBpZihzdGFydHN3aXRoKCRzdHIsICcjJykgJiYgc3RybGVuKCRzdHIpID09IDcpCiAgICB7CiAgICAgICRyZXNbMF0gPSBoZXhkZWMoc3Vic3RyKCRzdHIsIDEsIDIpKTsKICAgICAgJHJlc1sxXSA9IGhleGRlYyhzdWJzdHIoJHN0ciwgMywgMikpOwogICAgICAkcmVzWzJdID0gaGV4ZGVjKHN1YnN0cigkc3RyLCA1LCAyKSk7CiAgICAgIAogICAgICByZXR1cm4gJHJlczsKICAgIH0KICAgIAogICAgJHRtcCA9IGV4cGxvZGUoJzonLCAkc3RyLCAzKTsKICAgIGlmKGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApID09IDMgJiYgaXNfbnVtZXJpYygkdG1wWzBdKSAmJiBpc19udW1lcmljKCR0bXBbMV0pICYmIGlzX251bWVyaWMoJHRtcFsxXSkpCiAgICB7CiAgICAgICRyZXNbMF0gPSAoaW50KSR0bXBbMF07CiAgICAgICRyZXNbMV0gPSAoaW50KSR0bXBbMV07CiAgICAgICRyZXNbMl0gPSAoaW50KSR0bXBbMl07CiAgICAgIAogICAgICByZXR1cm4gJHJlczsKICAgIH0KICAgIAogICAgLy8gYXNzdW1lIGl0J3MgYSBjb2xvciBuYW1lLgogICAgc3RhdGljICRfY29sb3JzOwogICAgaWYoIWlzX2FycmF5KCRfY29sb3JzKSkKICAgIHsKICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX1NNQVJUSU1BR0UpOwogICAgICAkZm4gID0gXGNtc19qb2luX3BhdGgoCiAgICAgICAgJG1vZC0+R2V0TW9kdWxlUGF0aCgpLAogICAgICAgICdkYXRhJywKICAgICAgICAnY29sb3JzLmRhdCcKICAgICAgKTsKICAgICAgCiAgICAgICRkYXRhID0gZmlsZSgkZm4pOwogICAgICBpZihjb3VudCgkZGF0YSkpCiAgICAgIHsKICAgICAgICAkX2NvbG9ycyA9IFtdOwogICAgICAgIGZvcigkaSA9IDAsICRpTWF4ID0gY291bnQoJGRhdGEpOyAkaSA8ICRpTWF4OyAkaSsrKQogICAgICAgIHsKICAgICAgICAgIFskcmdiLCAkbmFtZV0gPSBleHBsb2RlKCctJywgJGRhdGFbJGldLCAyKTsKICAgICAgICAgIGlmKCFzdGFydHN3aXRoKCRyZ2IsICcjJykgfHwgc3RybGVuKCRyZ2IpICE9IDcgfHwgJG5hbWUgPT0gJycpCiAgICAgICAgICB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgCiAgICAgICAgICAkdG1wICAgID0gW107CiAgICAgICAgICAkdG1wWzBdID0gaGV4ZGVjKHN1YnN0cigkcmdiLCAxLCAyKSk7CiAgICAgICAgICAkdG1wWzFdID0gaGV4ZGVjKHN1YnN0cigkcmdiLCAzLCAyKSk7CiAgICAgICAgICAkdG1wWzJdID0gaGV4ZGVjKHN1YnN0cigkcmdiLCA1LCAyKSk7CiAgICAgICAgICAKICAgICAgICAgICRfY29sb3JzW3N0cnRvbG93ZXIodHJpbSgkbmFtZSkpXSA9ICR0bXA7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICBpZihpc19hcnJheSgkX2NvbG9ycykgJiYgaXNzZXQoJF9jb2xvcnNbJHN0cl0pKQogICAgewogICAgICAkcmVzID0gJF9jb2xvcnNbJHN0cl07CiAgICB9CiAgICAKICAgIHJldHVybiAkcmVzOwogIH0KICAKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uICZwcm9jZXNzX2ltYWdlKCRwYXJhbXMpCiAgewogICAgJG1vZCAgICAgICAgICAgICAgICAgID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9TTUFSVElNQUdFKTsKICAgICRjb25maWcgICAgICAgICAgICAgICA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgJHdhbnRfdHJhbnNmb3JtICAgICAgID0gMDsKICAgICRkb190cmFuc2Zvcm0gICAgICAgICA9IDA7CiAgICAkaGF2ZV90cmFuc2Zvcm0gICAgICAgPSAwOwogICAgJGRlc3RfZm5hbWUgICAgICAgICAgID0gJyc7CiAgICAkZGVzdF91cmwgICAgICAgICAgICAgPSAnJzsKICAgICRpbWcgICAgICAgICAgICAgICAgICA9ICcnOwogICAgJHNyY2ZpbGUgICAgICAgICAgICAgID0gJyc7CiAgICAkcmVsICAgICAgICAgICAgICAgICAgPSAwOwogIAogICAgLy8gb3V0cHV0IHBhcmFtcwogICAgJG91dHAgICAgICAgICAgICAgICAgID0gW107CiAgICAkb3V0cFsnaWQnXSAgICAgICAgICAgPSAnJzsKICAgICRvdXRwWyduYW1lJ10gICAgICAgICA9ICcnOwogICAgJG91dHBbJ2NsYXNzJ10gICAgICAgID0gJyc7CiAgICAkb3V0cFsnc3R5bGUnXSAgICAgICAgPSAnJzsKICAgICRvdXRwWydzcmMnXSAgICAgICAgICA9ICcnOwogICAgJG91dHBbJ3dpZHRoJ10gICAgICAgID0gJyc7CiAgICAkb3V0cFsnaGVpZ2h0J10gICAgICAgPSAnJzsKICAgICRvdXRwWydlcnJvciddICAgICAgICA9ICcnOwogICAgJG91dHBbJ291dHB1dCddICAgICAgID0gTlVMTDsKICAgICRvdXRwWydkZXN0X2ZpbGUnXSAgICA9IE5VTEw7CiAgICAKICAgIC8vIG9wZXJhdGlvbiBwYXJhbXMKICAgICRvcHAgICAgICAgICAgICAgICAgICA9IFtdOwogICAgJG9wcFsnb3ZlcndyaXRlJ10gICAgID0gMDsKICAgICRvcHBbJ25vYmNhY2hlJ10gICAgICA9IDA7CiAgICAkb3BwWydub3JlbW90ZSddICAgICAgPSAwOwogICAgJG9wcFsnbm9lbWJlZCddICAgICAgID0gMDsKICAgICRvcHBbJ25vYXV0byddICAgICAgICA9IDA7CiAgICAkb3BwWydub3BwcmFkanVzdCddICAgPSAwOwogICAgJG9wcFsnbm9yb3RhdGUnXSAgICAgID0gMDsKICAgICRvcHBbJ25vdGltZWNoZWNrJ10gICA9IDA7CiAgICAkb3BwWydub2F1dG9zY2FsZSddICAgPSAwOwogICAgJG9wcFsnbm90YWcnXSAgICAgICAgID0gMDsKICAgICRvcHBbJ25vcmVzcG9uc2l2ZSddICA9IDA7CiAgICAkb3BwWydub2RwcmFkanVzdCddICAgPSAwOwogICAgJG9wcFsnbm9icmVha3BvaW50cyddID0gMDsKICAgICRvcHBbJ21heF93aWR0aCddICAgICA9IDA7CiAgICAkb3BwWydtYXhfaGVpZ2h0J10gICAgPSAwOwogICAgJG9wcFsnZF9tYXhfd2lkdGgnXSAgID0gMDsgIC8vIGRldmljZSBjYWxjdWxhdGVkIG1heCB3aWR0aCAoaW5jbHVkaW5nIGJyZWFrcG9pbnRzKQogICAgJG9wcFsnZF9tYXhfaGVpZ2h0J10gID0gMDsgICAvLyBkZXZpY2UgY2FsY3VsYXRlZCBtYXggd2lkdGggKGluY2x1ZGluZyBicmVha3BvaW50cykKICAgICRvcHBbJ3NyYyddICAgICAgICAgICA9ICcnOwogICAgJG9wcFsncXVhbGl0eSddICAgICAgID0gNzU7CiAgICAkb3BwWydmaWx0ZXJzJ10gICAgICAgPSBbXTsKICAgICRvcHBbJ2ZvcmNlX3R5cGUnXSAgICA9ICcnOwogICAgJG9wcFsnZm9yY2VfZXh0J10gICAgID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnZm9yY2VfZXh0ZW5zaW9uJywgMCk7CiAgICAkb3BwWydwcm9ncmVzc2l2ZSddICAgPSAoaW50KSRtb2QtPkdldFByZWZlcmVuY2UoJ3Byb2dyZXNzaXZlJywgMCk7CiAgICAkb3BwWydhdXRvc2NhbGVfb3AnXSAgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdhdXRvc2NhbGVfb3AnLCAnY3JvcHRvZml0Jyk7CiAgICAkeHQgICAgICAgICAgICAgICAgICAgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NNU01TRXh0Jyk7CiAgICAkc3JjaW1nc2l6ZSAgICAgICAgICAgPSAnJzsgLy8gc3JjIGltYWdlIHNpemUKICAgICRsYXN0ZmlsdGVyICAgICAgICAgICA9IE5VTEw7CiAgICAKICAgIHRyeQogICAgewogICAgICAkdG1wID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnYWxpYXNlcycpOwogICAgICAKICAgICAgaWYoJHRtcCkgeyAkYWxpYXNlcyA9IHVuc2VyaWFsaXplKCR0bXApOyB9CiAgICAgIAogICAgICAvLyBmaXJzdCBwYXNzLi4uIGV4cGFuZCBhbGlhc2VzIGFuZCBidWlsZCBzcmMKICAgICAgJG5ld19wYXJhbXMgPSBbXTsKICAgICAgCiAgICAgIGZvcmVhY2goJHBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSkKICAgICAgewogICAgICAgIGlmKHN0YXJ0c3dpdGgoJGtleSwgJ2FsaWFzJykpCiAgICAgICAgewogICAgICAgICAgLy8gZXhwYW5kIGFsaWFzCiAgICAgICAgICAkb3B0aW9ucyA9IHNlbGY6Ol9nZXRfYWxpYXNfb3B0aW9ucygkdmFsdWUpOwogICAgICAgICAgCiAgICAgICAgICBpZigkb3B0aW9ucykKICAgICAgICAgIHsKICAgICAgICAgICAgLy8gcGFyc2UgYSBzdHJpbmcgaW50byBhbiBhcnJheSBvZiBhcmd1bWVudHMuCiAgICAgICAgICAgICRkYXRhID0gc2VsZjo6X2V4cGFuZF9xdW90ZWRfc3RyaW5nKCRvcHRpb25zKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmKGlzX2FycmF5KCRkYXRhKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgIGZvcmVhY2goJGRhdGEgYXMgJGtleTIgPT4gJHZhbHVlMikKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkbmV3X3BhcmFtc1ska2V5Ml0gPSAkdmFsdWUyOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIAogICAgICAgIH0KICAgICAgICBlbHNlIGlmKHN0YXJ0c3dpdGgoJGtleSwgJ3NyYycpICYmICRrZXkgIT0gJ3NyYycpCiAgICAgICAgewogICAgICAgICAgLy8gaGFuZGxlIHNyYzEgdGhyb3VnaCBzcmM5OSBhcmd1bWVudHMuCiAgICAgICAgICBpZighaXNzZXQoJG5ld19wYXJhbXNbJ3NyYyddKSkKICAgICAgICAgIHsKICAgICAgICAgICAgJG5ld19wYXJhbXNbJ3NyYyddID0gJyc7CiAgICAgICAgICB9CiAgICAgICAgICAKICAgICAgICAgIC8vaWYoIWVtcHR5KCRuZXdfcGFyYW1zWydzcmMnXSkgJiYgIWVuZHN3aXRoKCRuZXdfcGFyYW1zWydzcmMnXSwgJy8nKSkKICAgICAgICAgIGlmKCFlbXB0eSgkbmV3X3BhcmFtc1snc3JjJ10pICYmICFlbmRzd2l0aCgkbmV3X3BhcmFtc1snc3JjJ10sIERJUkVDVE9SWV9TRVBBUkFUT1IpKQogICAgICAgICAgewogICAgICAgICAgICAkbmV3X3BhcmFtc1snc3JjJ10gLj0gRElSRUNUT1JZX1NFUEFSQVRPUjsKICAgICAgICAgIH0KICAgICAgICAgIAogICAgICAgICAgJG5ld19wYXJhbXNbJ3NyYyddIC49ICR2YWx1ZTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBldmVyeXRoaW5nIGVsc2UganVzdCBnZXRzIGFkZGVkLgogICAgICAgICRuZXdfcGFyYW1zWyRrZXldID0gJHZhbHVlOwogICAgICB9CiAgICAgIAogICAgICAkcGFyYW1zID0gJG5ld19wYXJhbXM7CiAgICAgIAogICAgICAvLyBzZWNvbmQgcGFzcywgYnVpbGQgb3VyIGFycmF5cwogICAgICAkcGFyc2VfcGFyYW1zID0gZnVuY3Rpb24oJHBhcm1zLCAkZGVwdGggPSAwKSB1c2UgKCYkcGFyc2VfcGFyYW1zLCAmJG9wcCwgJiRvdXRwLCAmJG1vZCkKICAgICAgewogICAgICAgIGZvcmVhY2goJHBhcm1zIGFzICRrZXkgPT4gJHZhbHVlKQogICAgICAgIHsKICAgICAgICAgICRtYXRjaGVzID0gW107CiAgICAgICAgICAKICAgICAgICAgIGlmKCBwcmVnX21hdGNoKCcvXmZpbHRlcl9bMC05XS5fLycsICRrZXksICRtYXRjaGVzKSApCiAgICAgICAgICB7CiAgICAgICAgICAgICRrZXkgICAgICAgPSBzdWJzdHIoJGtleSwgc3RybGVuKCRtYXRjaGVzWzBdKSk7CiAgICAgICAgICAgICRmaWx0ZXIgICAgPSB1Y3dvcmRzKCRrZXkpOwogICAgICAgICAgICAkYXJncyAgICAgID0gZXhwbG9kZSgnLCcsICR2YWx1ZSk7CiAgICAgICAgICAgICRjbGFzc25hbWUgPSAnSW1hZ2VfJyAuICRmaWx0ZXIgLiAnX0ZpbHRlcic7CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiggIWNsYXNzX2V4aXN0cygkY2xhc3NuYW1lKSApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCAkbW9kLT5MYW5nKCdlcnJvcl91bmtub3duZmlsdGVyJywgJGZpbHRlcikgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgLy8gYWRkIGl0IHRvIHRoZSBvcHMuCiAgICAgICAgICAgICRvcHBbJ2ZpbHRlcnMnXVtdID0gWyRjbGFzc25hbWUsICRhcmdzXTsKICAgICAgICAgICAgLy8gZG9uZS4KICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICAKICAgICAgICAgIGlmKHN0YXJ0c3dpdGgoJGtleSwgJ2ZpbHRlcl8nKSkKICAgICAgICAgIHsKICAgICAgICAgICAgLy8gaGFuZGxlIGZpbHRlciBhcmd1bWVudC4KICAgICAgICAgICAgJGZpbHRlciAgICA9IHVjd29yZHMoc3Vic3RyKCRrZXksIHN0cmxlbignZmlsdGVyXycpKSk7CiAgICAgICAgICAgICRhcmdzICAgICAgPSBleHBsb2RlKCcsJywgJHZhbHVlKTsKICAgICAgICAgICAgJGNsYXNzbmFtZSA9ICdJbWFnZV8nIC4gJGZpbHRlciAuICdfRmlsdGVyJzsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmKCFjbGFzc19leGlzdHMoJGNsYXNzbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCRtb2QtPkxhbmcoJ2Vycm9yX3Vua25vd25maWx0ZXInLCAkZmlsdGVyKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIGFkZCBpdCB0byB0aGUgb3BzLgogICAgICAgICAgICAkb3BwWydmaWx0ZXJzJ11bXSA9IFskY2xhc3NuYW1lLCAkYXJnc107CiAgICAgICAgICAgIC8vIGRvbmUuCiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgCiAgICAgICAgICBzd2l0Y2goJGtleSkKICAgICAgICAgIHsKICAgICAgICAgICAgY2FzZSAnZGF0YSc6CiAgICAgICAgICAgICAgaWYoJGRlcHRoID09IDApCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJHBhcnNlX3BhcmFtcygkdmFsdWUsICRkZXB0aCArIDEpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIAogICAgICAgICAgICBjYXNlICdjbGFzcyc6CiAgICAgICAgICAgIGNhc2UgJ2lkJzoKICAgICAgICAgICAgY2FzZSAnc3R5bGUnOgogICAgICAgICAgICBjYXNlICduYW1lJzoKICAgICAgICAgICAgY2FzZSAnYWx0JzoKICAgICAgICAgICAgY2FzZSAncmVsJzoKICAgICAgICAgICAgY2FzZSAndGl0bGUnOgogICAgICAgICAgICAgICRvdXRwWyRrZXldID0gdHJpbSgkdmFsdWUpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgCiAgICAgICAgICAgIGNhc2UgJ3dpZHRoJzoKICAgICAgICAgICAgY2FzZSAnaGVpZ2h0JzoKICAgICAgICAgICAgICAkb3V0cFska2V5XSA9IChpbnQpJHZhbHVlOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgCiAgICAgICAgICAgIGNhc2UgJ21heF93aWR0aCc6CiAgICAgICAgICAgIGNhc2UgJ21heF9oZWlnaHQnOgogICAgICAgICAgICAgICRvcHBbJGtleV0gPSAoaW50KSR2YWx1ZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIAogICAgICAgICAgICBjYXNlICdzcmMnOgogICAgICAgICAgICBjYXNlICdmb3JjZV90eXBlJzoKICAgICAgICAgICAgY2FzZSAnYXV0b3NjYWxlX29wJzoKICAgICAgICAgICAgICAkb3BwWyRrZXldID0gdHJpbSgkdmFsdWUpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgCiAgICAgICAgICAgIGNhc2UgJ3F1YWxpdHknOgogICAgICAgICAgICAgICRvcHBbJ3F1YWxpdHknXSA9IChpbnQpJHZhbHVlOwogICAgICAgICAgICAgICRvcHBbJ3F1YWxpdHknXSA9IG1pbiggMTAwLCBtYXgoMCwgJG9wcFsncXVhbGl0eSddKSApOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgCiAgICAgICAgICAgIGNhc2UgJ292ZXJ3cml0ZSc6CiAgICAgICAgICAgIGNhc2UgJ25vdGFnJzoKICAgICAgICAgICAgY2FzZSAnbm9yZW1vdGUnOgogICAgICAgICAgICBjYXNlICdub3Jlc3BvbnNpdmUnOgogICAgICAgICAgICBjYXNlICdub2RwcmFkanVzdCc6CiAgICAgICAgICAgIGNhc2UgJ25vYnJlYWtwb2ludHMnOgogICAgICAgICAgICBjYXNlICdub2JjYWNoZSc6CiAgICAgICAgICAgIGNhc2UgJ25vZW1iZWQnOgogICAgICAgICAgICBjYXNlICdub2F1dG8nOgogICAgICAgICAgICBjYXNlICdub3JvdGF0ZSc6CiAgICAgICAgICAgIGNhc2UgJ25vdGltZWNoZWNrJzoKICAgICAgICAgICAgY2FzZSAnZm9yY2VfZXh0JzoKICAgICAgICAgICAgY2FzZSAncHJvZ3Jlc3NpdmUnOgogICAgICAgICAgICAgICRvcHBbJGtleV0gPSB4dF91dGlsczo6dG9fYm9vbCgkdmFsdWUpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH07CiAgICAgIAogICAgICAkcGFyc2VfcGFyYW1zKCRwYXJhbXMpOwogICAgICAKICAgICAgaWYoISRvcHBbJ3NyYyddKQogICAgICB7CiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkbW9kLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nLCAnc3JjJykpOwogICAgICB9CiAgICAgIAogICAgICAvLwogICAgICAvLyBmaW5kIHRoZSBzb3VyY2UgaW1hZ2UgLi4uIHRoZSBhY3R1YWwgZmlsZW5hbWUKICAgICAgLy8gdXNlIHNvbWUgYXV0byBtYWdpYyBpbnRlbGxpZ2VuY2UgdG8gZmluZCBpdC4KICAgICAgLy8KICAgICAgJHJlbGF0aXZlX3RvID0gTlVMTDsKICAgICAgJHMgPSBzZWxmOjpub3JtYWxpemVfcGF0aCgkb3BwWydzcmMnXSk7CiAgICAgICRzcmNfZGVjb2RlZCA9IHVybGRlY29kZSgkcyk7CiAgICAgIAogICAgICAjIG5vdGU6ICRzcmNmaWxlIElTIGVtcHR5IGF0IHRoaXMgcG9pbnQuLi4uLi4uCiAgICAgIAogICAgICBpZiggKCRwb3MgPSBzdHJwb3MoJHNyY19kZWNvZGVkLCAnPycpICkgIT09IEZBTFNFKQogICAgICB7CiAgICAgICAgJHNyY19kZWNvZGVkID0gc3Vic3RyKCRzcmNfZGVjb2RlZCwgMCwgJHBvcyk7CiAgICAgIH0KICAKICAgICAgIyBub3RlOiAkc3JjZmlsZSBJUyBzdGlsbCBlbXB0eSBhdCB0aGlzIHBvaW50Li4uLgogICAgICAKICAgICAgIyBkZXRlcm1pbmUgaWYgaXQgaXMgdXBsb2FkcwogICAgICAKICAgICAgLy9pZighJHNyY2ZpbGUgJiYgc3RhcnRzd2l0aCgkc3JjX2RlY29kZWQsICRjb25maWdbJ3VwbG9hZHNfdXJsJ10pKQogICAgICBpZiggc3RhcnRzd2l0aCgkc3JjX2RlY29kZWQsICRjb25maWdbJ3VwbG9hZHNfdXJsJ10pICkKICAgICAgewogICAgICAgICR0bXAgPSBzdHJfcmVwbGFjZSgkY29uZmlnWyd1cGxvYWRzX3VybCddLCAkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwgJHNyY19kZWNvZGVkKTsKICAgICAgICAKICAgICAgICBpZiggaXNfZmlsZSgkdG1wKSApCiAgICAgICAgewogICAgICAgICAgJHJlbGF0aXZlX3RvID0gJ3VwbG9hZHMnOwogICAgICAgICAgJHNyY2ZpbGUgICAgID0gJHRtcDsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgICMgZGV0ZXJtaW5lIGlmIGl0IGlzIHJvb3QKICAgICAgaWYoICEkc3JjZmlsZSAmJiBzdGFydHN3aXRoKCRzcmNfZGVjb2RlZCwgJGNvbmZpZ1sncm9vdF91cmwnXSkgKQogICAgICB7CiAgICAgICAgJHRtcCA9IHN0cl9yZXBsYWNlKCRjb25maWdbJ3Jvb3RfdXJsJ10sICRjb25maWdbJ3Jvb3RfcGF0aCddLCAkc3JjX2RlY29kZWQpOwogICAgICAgIAogICAgICAgIGlmKCBpc19maWxlKCR0bXApICkKICAgICAgICB7CiAgICAgICAgICAkcmVsYXRpdmVfdG8gPSAncm9vdCc7CiAgICAgICAgICAkc3JjZmlsZSAgICAgPSAkdG1wOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgaWYoCiAgICAgICAgICAhJHNyY2ZpbGUKICAgICAgICAgICYmIGlzc2V0KCRjb25maWdbJ3NzbF91cmwnXSkKICAgICAgICAgICYmIHN0YXJ0c3dpdGgoICRzcmNfZGVjb2RlZCwgJGNvbmZpZ1snc3NsX3VybCddKSApCiAgICAgIHsKICAgICAgICAkdG1wID0gc3RyX3JlcGxhY2UoJGNvbmZpZ1snc3NsX3VybCddLCAkY29uZmlnWydyb290X3BhdGgnXSwgJHNyY19kZWNvZGVkKTsKICAgICAgICBpZihpc19maWxlKCR0bXApKQogICAgICAgIHsKICAgICAgICAgICRyZWxhdGl2ZV90byA9ICdyb290JzsKICAgICAgICAgICRzcmNmaWxlICAgICA9ICR0bXA7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICBpZigKICAgICAgICAhJHNyY2ZpbGUgJiYKICAgICAgICAoc3RhcnRzd2l0aCgkc3JjX2RlY29kZWQsICcvJykgfHwgc3RhcnRzd2l0aCgkc3JjX2RlY29kZWQsICdcXCcpKQogICAgICApCiAgICAgIHsKICAgICAgICAvLyBpcyBpdCByZWxhdGl2ZT8KICAgICAgICAkc291cmNlID0gc3RyX3JlcGxhY2UoJ1xcJywgJy8nLCAkc3JjX2RlY29kZWQpOwogICAgICAgICR0bXAgPSAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXTsKICAgICAgICAkdGVzdF9zb3VyY2UgPSByZWFscGF0aCAoICRjb25maWdbJ3Jvb3RfcGF0aCddIC4gJy8nIC4gc3RyX3JlcGxhY2UoJHRtcCwgJycsICRzb3VyY2UpICk7CiAgICAgICAgCiAgICAgICAgaWYoIGlzX2ZpbGUoJHRlc3Rfc291cmNlKSApCiAgICAgICAgewogICAgICAgICAgJHJlbGF0aXZlX3RvID0gJ3Jvb3QnOwogICAgICAgICAgJHNyY2ZpbGUgICAgID0gJHRlc3Rfc291cmNlOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgLy8gdHJlYXQgYXMgYWJzb2x1dGUgZmlsZW5hbWUKICAgICAgICAgICRycDEgPSByZWFscGF0aCgkY29uZmlnWydyb290X3BhdGgnXSk7CiAgICAgICAgICAkcnAyID0gcmVhbHBhdGgoJHNyY19kZWNvZGVkKTsKICAKICAgICAgICAgIGlmKHN0YXJ0c3dpdGgoJHJwMiwgJHJwMSkgJiYgaXNfZmlsZSgkc3JjX2RlY29kZWQpKQogICAgICAgICAgewogICAgICAgICAgICAkcmVsYXRpdmVfdG8gPSAncm9vdCc7CiAgICAgICAgICAgICRzcmNmaWxlICAgICA9ICRzcmNfZGVjb2RlZDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgIH0KICAgICAgCiAgICAgIGlmKCEkc3JjZmlsZSkKICAgICAgewogICAgICAgIC8vIGNoZWNrIHJlbGF0aXZlIHBhdGggd3J0IHRoZSB1cGxvYWRzIGRpci4KICAgICAgICAkdG1wID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwgJHNyY19kZWNvZGVkKTsKICAgICAgICAkcnAxID0gcmVhbHBhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10pOwogICAgICAgICRycDIgPSByZWFscGF0aCgkdG1wKTsKICAgICAgICAKICAgICAgICBpZihzdGFydHN3aXRoKCRycDIsICRycDEpICYmIGlzX2ZpbGUoJHRtcCkpCiAgICAgICAgewogICAgICAgICAgJHJlbGF0aXZlX3RvID0gJ3VwbG9hZHMnOwogICAgICAgICAgJHNyY2ZpbGUgICAgID0gJHRtcDsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIGlmKCEkc3JjZmlsZSkKICAgICAgewogICAgICAgIC8vIGNoZWNrIHJlbGF0aXZlIHBhdGggd3J0IHRoZSByb290IGRpci4KICAgICAgICAkdG1wID0gY21zX2pvaW5fcGF0aCggdHJpbSgkY29uZmlnWydyb290X3BhdGgnXSwgRElSRUNUT1JZX1NFUEFSQVRPUiksICRzcmNfZGVjb2RlZCk7CiAgICAgICAgJHJwMSA9IHJlYWxwYXRoKCRjb25maWdbJ3Jvb3RfcGF0aCddKTsKICAgICAgICAkcnAyID0gcmVhbHBhdGgoJHRtcCk7CiAgICAgICAgCiAgICAgICAgaWYoc3RhcnRzd2l0aCgkcnAyLCAkcnAxKSAmJiBpc19maWxlKCR0bXApKQogICAgICAgIHsKICAgICAgICAgICRyZWxhdGl2ZV90byA9ICdyb290JzsKICAgICAgICAgICRzcmNmaWxlICAgICA9ICR0bXA7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICBpZigKICAgICAgICAhJHNyY2ZpbGUgJiYgJG9wcFsnbm9yZW1vdGUnXSA9PSAwICYmCiAgICAgICAgKCBzdGFydHN3aXRoKCRvcHBbJ3NyYyddLCAnaHR0cDonKSB8fCBzdGFydHN3aXRoKCRvcHBbJ3NyYyddLCAnaHR0cHM6JykgfHwgc3RhcnRzd2l0aCgkb3BwWydzcmMnXSwgJ2Z0cDonKSApCiAgICAgICkKICAgICAgewogICAgICAgIC8vIGFzc3VtZSB0aGF0IHRoaXMgaXMgYSByZW1vdGUgZmlsZQogICAgICAgIC8vIGdldCBpdCwgYW5kIGNhY2hlIGl0LgogICAgICAgICRzcmMgICAgICAgPSBodG1sX2VudGl0eV9kZWNvZGUoJG9wcFsnc3JjJ10pOwogICAgICAgICRjYWNoZWZpbGUgPSBUTVBfQ0FDSEVfTE9DQVRJT04gLiAnL3NpXycgLiBtZDUoJG9wcFsnc3JjJ10pIC4gJy5pbWcnOwogICAgICAgIAogICAgICAgIGlmKCAhaXNfZmlsZSgkY2FjaGVmaWxlKSApCiAgICAgICAgewogICAgICAgICAgJGRhdGEgPSBAZmlsZV9nZXRfY29udGVudHMoJHNyYyk7CiAgICAgICAgICAKICAgICAgICAgIGlmKCRkYXRhKQogICAgICAgICAgewogICAgICAgICAgICBmaWxlX3B1dF9jb250ZW50cygkY2FjaGVmaWxlLCAkZGF0YSk7CiAgICAgICAgICAgICRzcmNmaWxlID0gJGNhY2hlZmlsZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICRzcmNmaWxlID0gJGNhY2hlZmlsZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIGlmKCEkc3JjZmlsZSkKICAgICAgewogICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oICRtb2QtPkxhbmcoJ2Vycm9yX3NyY25vdGZvdW5kJywgJG9wcFsnc3JjJ10pICk7CiAgICAgICAgCiAgICAgICAgcmV0dXJuICRvdXRwOwogICAgICB9CiAgICAgIAogICAgICAvLyBnZXQgdGhlIHNvdXJjZSBpbWFnZSBzaXplCiAgICAgICRzcmNpbmZvID0gZ2V0aW1hZ2VzaXplKCRzcmNmaWxlKTsKICAgICAgCiAgICAgIGlmKCFpc19hcnJheSgkc3JjaW5mbykgfHwgY291bnQoJHNyY2luZm8pIDwgMikKICAgICAgewogICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJG1vZC0+TGFuZygnZXJyb3Jfc3Jjbm90Zm91bmQnLCAkb3BwWydzcmMnXSkpOwogICAgICB9CiAgICAgIGVsc2UKICAgICAgewogICAgICAgICRzcmNpbWdzaXplICAgID0gWyd3aWR0aCcgPT4gJHNyY2luZm9bMF0sICdoZWlnaHQnID0+ICRzcmNpbmZvWzFdXTsKICAgICAgICAKICAgICAgICAkbWVtb3J5X25lZWRlZCA9IHJvdW5kKAogICAgICAgICAgJHNyY2luZm9bMF0gKiAkc3JjaW5mb1sxXQogICAgICAgICAgKiAoaXNzZXQoJHNyY2luZm9bJ2JpdHMnXSkgPyAkc3JjaW5mb1snYml0cyddIDogOCkKICAgICAgICAgICogKGlzc2V0KCRzcmNpbmZvWydjaGFubmVscyddKSA/ICRzcmNpbmZvWydjaGFubmVscyddIDogMykgLyA4ICsgNjU1MzUKICAgICAgICApOwogICAgICAgIAogICAgICAgIGlmKCRtb2QtPkdldFByZWZlcmVuY2UoJ2NoZWNrbWVtb3J5JywgMSkgJiYgIXh0X3V0aWxzOjpoYXZlX2Vub3VnaF9tZW1vcnkoJG1lbW9yeV9uZWVkZWQpKQogICAgICAgIHsKICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudG1lbW9yeScpIC4gJzogJyAuIChpbnQpKCRtZW1vcnlfbmVlZGVkIC8gMTAyNCkgLiAnaycKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAvLyBhcmUgd2UgYXV0b21hZ2ljYWxseSByb3RhdGluZz8KICAgICAgaWYoISRvcHBbJ25vcm90YXRlJ10gJiYgZnVuY3Rpb25fZXhpc3RzKCdleGlmX3JlYWRfZGF0YScpKQogICAgICB7CiAgICAgICAgLy8gaWYgdGhlcmUgaXMgYWxyZWFkeSBhIHJvdGF0ZSBmaWx0ZXIgaW4gdGhlIGxpc3QsIHdlIHdvbid0IG92ZXJyaWRlIHRoYXQuCiAgICAgICAgJGZuID0gMDsKICAgICAgICBmb3IoJGYgPSAwLCAkZk1heCA9IGNvdW50KCRvcHBbJ2ZpbHRlcnMnXSk7ICRmIDwgJGZNYXg7ICRmKyspCiAgICAgICAgewogICAgICAgICAgaWYoJG9wcFsnZmlsdGVycyddWyRmXVswXSA9PSAnSW1hZ2VfUm90YXRlX0ZpbHRlcicpCiAgICAgICAgICB7CiAgICAgICAgICAgICRmbiA9IDE7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICBpZigkZm4gPT0gMCkKICAgICAgICB7CiAgICAgICAgICAvLyB3ZSBjYW4gdHJ5IHRvIHJlYWQgdGhlIGV4aWYgaW5mb3JtYXRpb24gdG8gZmluZCBhbiBvcmllbnRhdGlvbi4KICAgICAgICAgICRleGlmID0gQGV4aWZfcmVhZF9kYXRhKCRzcmNmaWxlLCAwLCBUUlVFKTsKICAgICAgICAgIGlmKAogICAgICAgICAgICBpc19hcnJheSgkZXhpZikgJiYgaXNzZXQoJGV4aWZbJ0lGRDAnXSkgJiYgaXNzZXQoJGV4aWZbJ0lGRDAnXVsnT3JpZW50YXRpb24nXSkgJiYKICAgICAgICAgICAgaXNfaW50KCRleGlmWydJRkQwJ11bJ09yaWVudGF0aW9uJ10pCiAgICAgICAgICApCiAgICAgICAgICB7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBmb3VuZCBhbiBvcmllbnRhdGlvbiwgbm93IHdlIGdvdHRhIGZpZ3VyZSBvdXQgd2hhdCBmaWx0ZXJzIHRvIGFkZC4KICAgICAgICAgICAgJG9yaWVudGF0aW9uID0gKGludCkkZXhpZlsnSUZEMCddWydPcmllbnRhdGlvbiddOwogICAgICAgICAgICAkbmV3X2ZpbHRlcnMgPSBbXTsKICAgICAgICAgICAgc3dpdGNoKCRvcmllbnRhdGlvbikKICAgICAgICAgICAgewogICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgIC8vIG5vdGhpbmcuCiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgLy8gaG9yaXpvbnRhbCBmbGlwLgogICAgICAgICAgICAgICAgJG5ld19maWx0ZXJzW10gPSBbJ0ltYWdlX0ZsaXBfRmlsdGVyJywgMF07CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgLy8gcm90YXRlIDE4MAogICAgICAgICAgICAgICAgJG5ld19maWx0ZXJzW10gPSBbJ0ltYWdlX1JvdGF0ZV9GaWx0ZXInLCBbMTgwXV07CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgICAgJG5ld19maWx0ZXJzW10gPSBbJ0ltYWdlX0ZsaXBfRmlsdGVyJywgMV07CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICAgICAgJG5ld19maWx0ZXJzW10gPSBbJ0ltYWdlX0ZsaXBfRmlsdGVyJywgMV07CiAgICAgICAgICAgICAgICAkbmV3X2ZpbHRlcnNbXSA9IFsnSW1hZ2VfUm90YXRlX0ZpbHRlcicsIFs5MF1dOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgNjoKICAgICAgICAgICAgICAgICRuZXdfZmlsdGVyc1tdID0gWydJbWFnZV9Sb3RhdGVfRmlsdGVyJywgWzkwXV07CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgICAgJG5ld19maWx0ZXJzW10gPSBbJ0ltYWdlX0ZsaXBfRmlsdGVyJywgMF07CiAgICAgICAgICAgICAgICAkbmV3X2ZpbHRlcnNbXSA9IFsnSW1hZ2VfUm90YXRlX0ZpbHRlcicsIFs5MF1dOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgODoKICAgICAgICAgICAgICAgICRuZXdfZmlsdGVyc1tdID0gWydJbWFnZV9Sb3RhdGVfRmlsdGVyJywgWy05MF1dOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAkb3BwWydmaWx0ZXJzJ10gPSBhcnJheV9tZXJnZSgkbmV3X2ZpbHRlcnMsICRvcHBbJ2ZpbHRlcnMnXSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAvLyBkb2luZyByZXNwb25zaXZlIGltYWdlcy4uLiBnZXQgZGV2aWNlIHdpZHRoIGFuZCBoZWlnaHQuCiAgICAgIC8vIHNldCBpdCBpbnRvIG1heF93aWR0aCBhbmQgbWF4X2hlaWdodAogICAgICAkZGV2aWNlX2NhcHMgPSBOVUxMOwogICAgICBpZighJG9wcFsnbm9yZXNwb25zaXZlJ10pCiAgICAgIHsKICAgICAgICAkZGV2aWNlX2NhcHMgPSBzZWxmOjpnZXRfZGV2aWNlX2NhcGFiaWxpdGllcygpOwogICAgICAgIAogICAgICAgIGlmKCEkZGV2aWNlX2NhcHMgJiYgJG1vZC0+R2V0UHJlZmVyZW5jZSgnYXNzdW1lX3Jlc3BvbnNpdmUnKSkKICAgICAgICB7CiAgICAgICAgICAvLyBpZiBhc3N1bWUgcmVzcG9uc2l2ZSBpcyBlbmFibGVkLiAgd2UgYXJlIGFzc3VtaW5nIHRoYXQgYSBjb29raWUgd2lsbCBiZSBwcmVzZW50IHByb3ZpZGluZyBkZXZpY2UgY2FwYWJpbGl0aWVzLi4uCiAgICAgICAgICAvLyBpZiB3ZSBjb3VsZCBub3QgZmluZCB0aGUgY29va2llIHRoZW4gb3V0cHV0IG5vdGhpbmcgc28gdGhhdCB3ZSBkbyBub3QgZG8gcmVkdW5kYW50IGltYWdlIHByb2Nlc3NpbmcuCiAgICAgICAgICAvLyB0aGUgbmV4dCByZXF1ZXN0IHdpbGwgaGF2ZSB0aGUgZGV2aWNlIGNhcGFiaWxpdGllcyAodGhlIGphdmFzY3JpcHQgdGhhdCBnZW5lcmF0ZXMgdGhlIGNvb2tpZSBmb3JjZXMgYSByZWxvYWQgaWYgaXQgaGFzIHRvIHNldCB0aGUgY29va2llKQogICAgICAgICAgJG91dHBbJ291dHB1dCddID0gJzwhLS0gU21hcnRJbWFnZSBwcm9jZXNzaW5nIHN0b3BwZWQgYmVjYXVzZSBvZiBhc3N1bWVfcmVzcG9uc2l2ZSBwcmVmZXJlbmNlIGFuZCBubyBkZXZpY2UgY2FwYWJpbGl0aWVzIGZvdW5kIC0tPic7CiAgICAgICAgICAvLyB0aGlzIGlzIHdheSBiZXR0ZXIgdGhhbiBhIGdvdG8uCiAgICAgICAgICB0aHJvdyBuZXcgXFNJU3RvcEhlcmVFeGNlcHRpb24oJ2ZvcmNlX3Jlc3BvbnNpdmUgZW5hYmxlZCcpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBpZihpc19hcnJheSgkZGV2aWNlX2NhcHMpICYmIGlzc2V0KCRkZXZpY2VfY2Fwc1snd2lkdGgnXSkgJiYgaXNzZXQoJGRldmljZV9jYXBzWydoZWlnaHQnXSkpCiAgICAgICAgewogICAgICAgICAgLy8gd2UgZm91bmQgZGV2aWNlIGNhcGFiaWxpdGllcy4KICAgICAgICAgICRkcHIgPSBtYXgoMSwgXHh0X3BhcmFtOjpnZXRfaW50KCRkZXZpY2VfY2FwcywgJ2RwcicsIDEpKTsKICAgICAgICAgIAogICAgICAgICAgLy8gd2UgaGF2ZSB0byBkbyBhdXRvLXNjYWxpbmcgbm93LCByZXNwb25zaXZlIHN0dWZmIHRydW1wcyB0aGUgc2V0dGluZy4KICAgICAgICAgICRvcHBbJ25vYXV0b3NjYWxlJ10gPSAwOwogICAgICAgICAgCiAgICAgICAgICAvLyBtZXJnZSB0aGF0IGRhdGEgd2l0aCBhbnkgbWF4X3dpZHRoIGFuZCBtYXhfaGVpZ2h0IHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gc3VwcGxpZWQuCiAgICAgICAgICAkb3BwWydkX21heF93aWR0aCddICA9IChpbnQpJGRldmljZV9jYXBzWyd3aWR0aCddOwogICAgICAgICAgJG9wcFsnZF9tYXhfaGVpZ2h0J10gPSAoaW50KSRkZXZpY2VfY2Fwc1snaGVpZ2h0J107CiAgICAgICAgICAKICAgICAgICAgIC8vIGV4cGVyaW1lbnRhbC4uLiBjaGVjayBmb3IgYnJlYWtwb2ludHMKICAgICAgICAgIC8vIGFuZCBpZiBhIGJyZWFrcG9pbnQgY2FuIGJlIGZvdW5kLCBmdXJ0aGVyIGFkanVzdCB0aGUgbWF4X3dpZHRoIGFuZCBtYXhfaGVpZ2h0IHBhcmFtcwogICAgICAgICAgaWYoKCR0bXAgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZXNwb25zaXZlX2JyZWFrcG9pbnRzJykpICYmICEkb3BwWydub2JyZWFrcG9pbnRzJ10pCiAgICAgICAgICB7CiAgICAgICAgICAgICR0bXAgPSBleHBsb2RlKCcsJywgJHRtcCk7CiAgICAgICAgICAgICRicCAgPSBbXTsKICAgICAgICAgICAgZm9yKCRpID0gMCwgJGlNYXggPSBjb3VudCgkdG1wKTsgJGkgPCAkaU1heDsgJGkrKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICR0MSA9IChpbnQpdHJpbSgkdG1wWyRpXSk7CiAgICAgICAgICAgICAgaWYoJHQxID4gMCkKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkYnBbXSA9ICR0MTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIGlmKGNvdW50KCRicCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAvLyB3ZSBoYXZlIHZhbGlkIGJyZWFrcG9pbnRzLgogICAgICAgICAgICAgIC8vIGZpbmQgdGhlIG1vc3Qgc3VpdGFibGUgb25lIGdpdmVuIG91ciBtYXggcmVzb2x1dGlvbi4KICAgICAgICAgICAgICBhc29ydCgkYnApOwogICAgICAgICAgICAgICRsdmFsID0gbWF4KCRvcHBbJ2RfbWF4X3dpZHRoJ10sICRvcHBbJ2RfbWF4X2hlaWdodCddKTsKICAgICAgICAgICAgICBmb3IoJGkgPSBjb3VudCgkYnApIC0gMTsgJGkgPiAwOyAkaS0tKQogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKCRicFskaV0gPiAkbHZhbCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgWyRtYXhfdywgJG1heF9oXSA9IHNlbGY6Ol9hZGp1c3Rfc2l6ZXNfdG9fYXNwZWN0X3JhdGlvKAogICAgICAgICAgICAgICAgJHNyY2ltZ3NpemVbJ3dpZHRoJ10sICRzcmNpbWdzaXplWydoZWlnaHQnXSwgJGJwWyRpXQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgJG9wcFsnZF9tYXhfd2lkdGgnXSAgPSAoaW50KSRtYXhfdzsKICAgICAgICAgICAgICAkb3BwWydkX21heF9oZWlnaHQnXSA9IChpbnQpJG1heF9oOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICBpZighJG9wcFsnbm9hdXRvc2NhbGUnXSkKICAgICAgewogICAgICAgICRkZXN0aW1nc2l6ZVsnd2lkdGgnXSAgPSBzZWxmOjpfbWluX25vdDAoCiAgICAgICAgICAkc3JjaW1nc2l6ZVsnd2lkdGgnXSwgJG9wcFsnbWF4X3dpZHRoJ10sICRvcHBbJ2RfbWF4X3dpZHRoJ10sICRvdXRwWyd3aWR0aCddCiAgICAgICAgKTsKICAgICAgICAkZGVzdGltZ3NpemVbJ2hlaWdodCddID0gc2VsZjo6X21pbl9ub3QwKAogICAgICAgICAgJHNyY2ltZ3NpemVbJ2hlaWdodCddLCAkb3BwWydtYXhfaGVpZ2h0J10sICRvcHBbJ2RfbWF4X2hlaWdodCddLCAkb3V0cFsnaGVpZ2h0J10KICAgICAgICApOwogICAgICAgIAogICAgICAgICRkb21pbmFudCA9IE5VTEw7CiAgICAgICAgCiAgICAgICAgaWYoJG9wcFsnbWF4X3dpZHRoJ10gfHwgJG91dHBbJ3dpZHRoJ10pCiAgICAgICAgewogICAgICAgICAgJGRvbWluYW50ID0gKCRkb21pbmFudCkgPyAnYicgOiAneCc7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGlmKCRvcHBbJ21heF9oZWlnaHQnXSB8fCAkb3V0cFsnaGVpZ2h0J10pCiAgICAgICAgewogICAgICAgICAgJGRvbWluYW50ID0gKCRkb21pbmFudCkgPyAnYicgOiAneSc7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGlmKCRkb21pbmFudCA9PSAnYicpCiAgICAgICAgewogICAgICAgICAgJGRvbWluYW50ID0gKCRkZXN0aW1nc2l6ZVsnd2lkdGgnXSA8ICRkZXN0aW1nc2l6ZVsnaGVpZ2h0J10pID8gJ3gnIDogJ3knOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAkYXNwZWN0X3JhdGlvID0gJHNyY2ltZ3NpemVbJ3dpZHRoJ10gLyAkc3JjaW1nc2l6ZVsnaGVpZ2h0J107CiAgICAgICAgCiAgICAgICAgc3dpdGNoKCRkb21pbmFudCkKICAgICAgICB7CiAgICAgICAgICBjYXNlICd4JzogLyogeCBpcyBkb21pbmFudCAqLwogICAgICAgICAgICAvLyBhZGp1c3QgdG8geCBkaW1lbnNpb24sIHJldGFpbiBhc3BlY3QgcmF0aW8KICAgICAgICAgICAgJGRlc3RpbWdzaXplWydoZWlnaHQnXSA9IChpbnQpKCRkZXN0aW1nc2l6ZVsnd2lkdGgnXSAvICRhc3BlY3RfcmF0aW8pOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgICAKICAgICAgICAgIGNhc2UgJ3knOiAvKiB5IGlzIGRvbWluYW50ICovCiAgICAgICAgICAgIC8vIGFkanVzdCB0byB5IGRpbWVuc2lvbiwgcmV0YWluIGFzcGVjdCByYXRpbwogICAgICAgICAgICAkZGVzdGltZ3NpemVbJ3dpZHRoJ10gPSAoaW50KSgkZGVzdGltZ3NpemVbJ2hlaWdodCddICogJGFzcGVjdF9yYXRpbyk7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgaWYoJGRldmljZV9jYXBzICYmICEkb3BwWydub2RwcmFkanVzdCddICYmIGlzc2V0KCRkZXZpY2VfY2Fwc1snZHByJ10pICYmICRkZXZpY2VfY2Fwc1snZHByJ10gPiAxKQogICAgICAgIHsKICAgICAgICAgIC8vIHRoaXMgd2lsbCBhZGp1c3QgdGhlIGRlc3RpbmF0aW9uIHdpZHRoIGFuZCBoZWlnaHQgYmFzZWQgb24gZHByCiAgICAgICAgICAkdG1wICAgICAgICAgICA9ICRkZXN0aW1nc2l6ZTsKICAgICAgICAgICR0bXBbJ3dpZHRoJ10gICo9ICRkcHI7CiAgICAgICAgICAkdG1wWydoZWlnaHQnXSAqPSAkZHByOwogICAgICAgICAgaWYoJHRtcFsnd2lkdGgnXSA8PSAkc3JjaW1nc2l6ZVsnd2lkdGgnXSAmJiAkdG1wWydoZWlnaHQnXSA8PSAkc3JjaW1nc2l6ZVsnaGVpZ2h0J10pCiAgICAgICAgICB7CiAgICAgICAgICAgIC8vIHJldGFpbiB0aGUgb3JpZ2luYWwgc2l6ZSBvZiB0aGUgaW1hZ2UgaW4gdGhlIHdpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvZiB0aGUgaW1nIHRhZwogICAgICAgICAgICAvLyBidXQgZm9yIGhpZ2hlciBkcHIgZGV2aWNlcyBnZW5lcmF0ZSBhIGJpZ2dlciBpbWFnZS4KICAgICAgICAgICAgJG91dHBbJ3dpZHRoJ10gICAgICA9ICRkZXN0aW1nc2l6ZVsnd2lkdGgnXTsKICAgICAgICAgICAgJG91dHBbJ2hlaWdodCddICAgICA9ICRkZXN0aW1nc2l6ZVsnaGVpZ2h0J107CiAgICAgICAgICAgICRvcHBbJ25vYXV0b3NjYWxlJ10gPSAxOwogICAgICAgICAgICAkZGVzdGltZ3NpemUgICAgICAgID0gJHRtcDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gbWFrZSBzdXJlIHdlJ3JlIGFjdHVhbGx5IGRvaW5nIHNvbWV0aGluZwogICAgICAgIGlmKCRkZXN0aW1nc2l6ZSAhPSAkc3JjaW1nc2l6ZSkKICAgICAgICB7CiAgICAgICAgICBzd2l0Y2goIHN0cnRvbG93ZXIoJG9wcFsnYXV0b3NjYWxlX29wJ10pICkKICAgICAgICAgIHsKICAgICAgICAgICAgY2FzZSAncmVzaXplJzoKICAgICAgICAgICAgICAkZmlsdGVyICAgICAgICAgID0gJ0ltYWdlX1Jlc2l6ZV9GaWx0ZXInOwogICAgICAgICAgICAgICR0bXAgICAgICAgICAgICAgPSAkZGVzdGltZ3NpemU7CiAgICAgICAgICAgICAgJHRtcFsncmVzYW1wbGUnXSA9IDE7CiAgICAgICAgICAgICAgJGxhc3RmaWx0ZXIgICAgICA9IFskZmlsdGVyLCAkdG1wXTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIAogICAgICAgICAgICBjYXNlICdjcm9wdG9maXQnOgogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICRmaWx0ZXIgICAgICAgICA9ICdJbWFnZV9Dcm9wdG9maXRfRmlsdGVyJzsKICAgICAgICAgICAgICAkdG1wICAgICAgICAgICAgPSAkZGVzdGltZ3NpemU7CiAgICAgICAgICAgICAgJHRtcFsnbG9jJ10gICAgID0gJ2MnOwogICAgICAgICAgICAgICR0bXBbJ3Vwc2NhbGUnXSA9IDA7CiAgICAgICAgICAgICAgJGxhc3RmaWx0ZXIgICAgID0gWyRmaWx0ZXIsICR0bXBdOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIAogICAgICAgICAgaWYoISRvcHBbJ25vYXV0byddKQogICAgICAgICAgewogICAgICAgICAgICAvLyB3ZSBhcmUgYWxsb3dpbmcgYXV0byB0YWdzLi4uIHNvIHdlIGFkanVzdCB0aGUgb3V0cCBzdHVmZiB0byBvdXIgZmluaXNoZWQgcmVzb2x1dGlvbgogICAgICAgICAgICAkb3V0cFsnd2lkdGgnXSAgPSAkZGVzdGltZ3NpemVbJ3dpZHRoJ107CiAgICAgICAgICAgICRvdXRwWydoZWlnaHQnXSA9ICRkZXN0aW1nc2l6ZVsnaGVpZ2h0J107CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAvLwogICAgICAvLyBjaGVjayBpZiB3ZSBhcmUgYWN0dWFsbHkgZG9pbmcgYW55dGhpbmcKICAgICAgLy8KICAgICAgCiAgICAgIC8vIGlmIHdlIGFyZSBmb3JjaW5nIGEgdHlwZSBhbmQgdGhhdCB0eXBlIGlzIG5vdCB0aGUgc2FtZSBhcyBvdXIgY3VycmVudCB0eXBlLgogICAgICBpZigkb3BwWydmb3JjZV90eXBlJ10pCiAgICAgIHsKICAgICAgICAkdG1wX2EgPSBzZWxmOjpwYXJzZV90eXBlKCRvcHBbJ2ZvcmNlX3R5cGUnXSk7CiAgICAgICAgCiAgICAgICAgaWYoJHRtcF9hICE9ICRzcmNpbmZvWydtaW1lJ10pCiAgICAgICAgewogICAgICAgICAgJHdhbnRfdHJhbnNmb3JtID0gMTsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIC8vIGlmIHdlIGdvdCB0aGUgaW1hZ2UgZnJvbSBhIHJlbW90ZSBsb2NhdGlvbiwgYnV0IHRoZXJlIGFyZSBubyBvdGhlciBmaWx0ZXJzLCB3ZSB3aWxsIGRvIGEgc2ltcGxlIHRyYW5zZm9ybQogICAgICBpZighJHJlbGF0aXZlX3RvKQogICAgICB7CiAgICAgICAgJHdhbnRfdHJhbnNmb3JtID0gMTsKICAgICAgICBpZiggIWNvdW50KCRvcHBbJ2ZpbHRlcnMnXSkgKQogICAgICAgIHsKICAgICAgICAgICRmaWx0ZXIgICAgICAgICAgID0gJ0ltYWdlX05PT1BfRmlsdGVyJzsKICAgICAgICAgICRvcHBbJ2ZpbHRlcnMnXVtdID0gWyRmaWx0ZXIsIFtdXTsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIC8vIGlmIHdlIGhhdmUgYSBsYXN0IGZpbHRlci4uLiBhZGQgaXQuCiAgICAgIGlmKCRsYXN0ZmlsdGVyKQogICAgICB7CiAgICAgICAgJG9wcFsnZmlsdGVycyddW10gPSAkbGFzdGZpbHRlcjsKICAgICAgfQogICAgICAKICAgICAgLy8gaWYgdGhlcmUgYXJlIGFueSBmaWx0ZXJzLi4uIHRoZW4gd2UgaGF2ZSB0byB0cmFuc2Zvcm0gdGhpcyBpbWFnZQogICAgICBpZiggY291bnQoIGFycmF5X2tleXMoJG9wcFsnZmlsdGVycyddKSApICkKICAgICAgewogICAgICAgICR3YW50X3RyYW5zZm9ybSA9IDE7CiAgICAgIH0KICAgICAgCiAgICAgIC8vCiAgICAgIC8vIGVuZCBvZiBzbWFydG5lc3Mgc3R1ZmYuLi4gbm93IGJlZ2luIHRoZSB3b3JrCiAgICAgIC8vCiAgICAgIGlmKCR3YW50X3RyYW5zZm9ybSkKICAgICAgewogICAgICAgIC8vIGNhbGN1bGF0ZSBvdXIgZGVzdGluYXRpb24gbmFtZSBhbmQgdXJsLgogICAgICAgICR0bXAgPSBiYXNlbmFtZSgkc3JjZmlsZSk7CiAgICAgICAgCiAgICAgICAgaWYoIWlzc2V0KCRvdXRwWydhbHQnXSkpCiAgICAgICAgewogICAgICAgICAgJG91dHBbJ2FsdCddID0gJHRtcDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgJGV4dCA9IHN0cnJjaHIoJHRtcCwgJy4nKTsKICAgICAgICAkdDIgID0gbWQ1KCBzZXJpYWxpemUoJG9wcCkgKTsKICAgICAgICAvLyAkdDIgLj0gJy0nLm11bmdlX3N0cmluZ190b191cmwoJHRtcCk7IGFkZCBmaWxlbmFtZSBzdHVmZgogICAgICAgICRkZXN0bmFtZSA9ICdpbWctJyAuICR0MjsKICAgICAgICAkdDMgICAgICAgPSBzZWxmOjpwYXJzZV90eXBlKCgkb3BwWydmb3JjZV90eXBlJ10pID8gJG9wcFsnZm9yY2VfdHlwZSddIDogJHNyY2luZm9bJ21pbWUnXSk7CiAgICAgICAgCiAgICAgICAgaWYoJG9wcFsnZm9yY2VfZXh0J10pCiAgICAgICAgewogICAgICAgICAgJGRlc3RuYW1lIC49IHNlbGY6OmdldF9leHRlbnNpb24oJHQzKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgJGRlc3RkaXIgPSAkbW9kLT5nZXRfY2FjaGVfcGF0aCgpOwogICAgICAgIGlmKCFpc19kaXIoJGRlc3RkaXIpKQogICAgICAgIHsKICAgICAgICAgIGlmKCFta2RpcigkZGVzdGRpciwgMDc3NywgVFJVRSkgJiYgIWlzX2RpcigkZGVzdGRpcikpCiAgICAgICAgICB7CiAgICAgICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbihzcHJpbnRmKCdEaXJlY3RvcnkgIiVzIiB3YXMgbm90IGNyZWF0ZWQnLCAkZGVzdGRpcikpOwogICAgICAgICAgfQogICAgICAgICAgdG91Y2goJGRlc3RkaXIgLiAnL2luZGV4Lmh0bWwnKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgaWYoICFpc19kaXIoJGRlc3RkaXIpICkKICAgICAgICB7CiAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCRtb2QtPkxhbmcoJ2Vycm9yX21rZGlyJywgJGRlc3RkaXIpKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gc2VlIGlmIGl0IGV4aXN0cwogICAgICAgICRkZXN0X2ZuYW1lID0gJGRlc3RkaXIgLiAnLycgLiAkZGVzdG5hbWU7CiAgICAgICAgCiAgICAgICAgJGRlc3RfdXJsID0gJG1vZC0+Z2V0X2NhY2hlZF9pbWFnZV91cmwoJGRlc3RuYW1lKTsKICAgICAgICAkdDEgICAgICAgPSBmaWxlbXRpbWUoJHNyY2ZpbGUpOwogICAgICAgICR0MiAgICAgICA9IGlzX2ZpbGUoJGRlc3RfZm5hbWUpID8gZmlsZW10aW1lKCRkZXN0X2ZuYW1lKSA6IDA7CiAgICAgICAgaWYoICggKCR0MiA8ICR0MSkgJiYgISRvcHBbJ25vdGltZWNoZWNrJ10gKSB8fCAkb3BwWydvdmVyd3JpdGUnXSB8fCAhaXNfZmlsZSgkZGVzdF9mbmFtZSkgKQogICAgICAgIHsKICAgICAgICAgICRkb190cmFuc2Zvcm0gPSAxOwogICAgICAgIH0KICAgICAgfQogICAgICBlbHNlCiAgICAgIHsKICAgICAgICAvLyBubyB0cmFuc29mbXJhdGlvbi4uLiBqdXN0IHVzZSB0aGUgc3JjIGltYWdlCiAgICAgICAgLy8gYnV0IG1ha2UgaXQgaW50byBhbiBhYnNvbHV0ZSBVUkwKICAgICAgICAkZGVzdF9mbmFtZSA9ICRzcmNmaWxlOwogICAgICAgIAogICAgICAgIHN3aXRjaCgkcmVsYXRpdmVfdG8pCiAgICAgICAgewogICAgICAgICAgY2FzZSAncm9vdCc6CiAgICAgICAgICAgICRfc3JjID0gJHNyY2ZpbGU7CiAgICAgICAgICAgIGlmKHN0YXJ0c3dpdGgoJF9zcmMsICRjb25maWdbJ3Jvb3RfcGF0aCddKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICRfc3JjID0gc3Vic3RyKCRfc3JjLCBzdHJsZW4oJGNvbmZpZ1sncm9vdF9wYXRoJ10pKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkZGVzdF91cmwgPSAkY29uZmlnWydyb290X3VybCddIC4gJF9zcmM7CiAgICAgICAgICBicmVhazsKICAgICAgICAgIAogICAgICAgICAgY2FzZSAndXBsb2Fkcyc6CiAgICAgICAgICAgICRfc3JjID0gJHNyY2ZpbGU7CiAgICAgICAgICAgIGlmKHN0YXJ0c3dpdGgoJHNyY2ZpbGUsICRjb25maWdbJ3VwbG9hZHNfcGF0aCddKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICRfc3JjID0gc3Vic3RyKCRzcmNmaWxlLCBzdHJsZW4oJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10pKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkZGVzdF91cmwgPSAkY29uZmlnWyd1cGxvYWRzX3VybCddIC4gJF9zcmM7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIGlmKCRkb190cmFuc2Zvcm0pCiAgICAgIHsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAvLyBsb2FkIHRoZSBpbWFnZS4KICAgICAgICAgICRpbWcgPSBuZXcgSW1hZ2VCYXNlKCRzcmNmaWxlKTsKICAgICAgICAgIAogICAgICAgICAgLy8gcHJvY2VzcyBmaWx0ZXJzCiAgICAgICAgICAkaSA9IDA7CiAgICAgICAgICB3aGlsZSgkaSA8IGNvdW50KCRvcHBbJ2ZpbHRlcnMnXSkpCiAgICAgICAgICB7CiAgICAgICAgICAgICRmaWx0ZXIgICAgICAgPSAkb3BwWydmaWx0ZXJzJ11bJGldWzBdOwogICAgICAgICAgICAkZmlsdGVyX29iaiAgID0gbmV3ICRmaWx0ZXIoJG9wcFsnZmlsdGVycyddWyRpXVsxXSk7CiAgICAgICAgICAgICRpbWcgICAgICAgICAgPSAkZmlsdGVyX29iai0+dHJhbnNmb3JtKCRpbWcpOwogICAgICAgICAgICAkaW1nWydkaXJ0eSddID0gMTsgLy8gZm9yY2UgdGhlIGltYWdlIGRpcnR5LCBqdXN0IHNvIHRoYXQgd2UgY2FuIHNhdmUgaXQuCiAgICAgICAgICAgICRpKys7CiAgICAgICAgICB9CiAgICAgICAgICAKICAgICAgICAgIC8vIGNoZWNrIHNvbWUgc3R1ZmYKICAgICAgICAgIGlmKAogICAgICAgICAgICAkb3BwWydub2F1dG8nXSA9PSAwICYmICgoJG91dHBbJ3dpZHRoJ10gJiYgJGltZ1snd2lkdGgnXSA8ICRvdXRwWyd3aWR0aCddKSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJG91dHBbJ2hlaWdodCddICYmICRpbWdbJ2hlaWdodCddIDwgJG91dHBbJ2hlaWdodCddKSkKICAgICAgICAgICkKICAgICAgICAgIHsKICAgICAgICAgICAgLy8gdXNlciBzcGVjaWZpZWQgYSB3aWR0aCwgYW5kL29yIGhlaWdodC4uLmJ1dCB0aGV5IGFyZSBzbWFsbGVyIHRoYW4gdGhlIG91dHB1dCBvZiB0aGUgZmlsdGVyaW5nLgogICAgICAgICAgICAvLyB0aGlzIHdpbGwgZW5zdXJlIHRoYXQgdGhlIHRhZyB3aWxsIG1hdGNoIHRoZSBpbWFnZS4KICAgICAgICAgICAgJG91dHBbJ3dpZHRoJ10gID0gJGltZ1snd2lkdGgnXTsKICAgICAgICAgICAgJG91dHBbJ2hlaWdodCddID0gJGltZ1snaGVpZ2h0J107CiAgICAgICAgICB9CiAgICAgICAgICAKICAgICAgICAgIC8vIGFuZCB3cml0ZSB0aGUgdGhpbmcuCiAgICAgICAgICBpZihpc19vYmplY3QoJGltZykpCiAgICAgICAgICB7CiAgICAgICAgICAgIGlmKCRvcHBbJ2ZvcmNlX3R5cGUnXSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICRpbWdbJ3R5cGUnXSA9IHNlbGY6OnBhcnNlX3R5cGUoJG9wcFsnZm9yY2VfdHlwZSddKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZigkaW1nWydkaXJ0eSddKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgJGltZy0+c2F2ZSgkZGVzdF9mbmFtZSwgJG9wcFsncXVhbGl0eSddLCAkb3BwWydwcm9ncmVzc2l2ZSddKTsKICAgICAgICAgICAgICAkb3V0cFsnZGVzdF9maWxlJ10gPSAkZGVzdF9mbmFtZTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaChFeGNlcHRpb24gJGUpCiAgICAgICAgewogICAgICAgICAgYXVkaXQoJycsICdTbWFydEltYWdlJywgJ0Vycm9yIGVuY291bnRlcmVkIG9uICcgLiAkb3BwWydzcmMnXSAuICc6ICcgLiAkZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICAgIHRocm93ICRlOwogICAgICAgIH0KICAgICAgfSAvLyBpZgogICAgICAKICAgICAgLy8gbm93LCB3ZSBoYXZlIGEgY2FjaGVkIGZpbGVuYW1lIC4uLiBuZWVkIHRvIGdldCBpdHMgZGltZW5zaW9ucy4KICAgICAgLy8gYW5kIG1ha2Ugc3VyZSB0aGF0IHdlJ3JlIG5ldmVyIG91dHB1dHRpbmcgYW55dGhpbmcgYmlnZ2VyIHRoYW4gdGhlIGNhY2hlZCBkaW1lbnNpb25zCiAgICAgIC8vIHVubGVzcyBub2F1dG8gaXMgc2V0CiAgICAgIGlmKCRvcHBbJ25vYXV0byddID09IDApCiAgICAgIHsKICAgICAgICBpZigKICAgICAgICAgICgkb3V0cFsnd2lkdGgnXSAmJiAkc3JjaW1nc2l6ZVsnd2lkdGgnXSA8ICRvdXRwWyd3aWR0aCddKSB8fAogICAgICAgICAgKCRvdXRwWydoZWlnaHQnXSAmJiAkc3JjaW1nc2l6ZVsnaGVpZ2h0J10gPCAkb3V0cFsnaGVpZ2h0J10pCiAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICRvdXRwWyd3aWR0aCddICA9ICRzcmNpbWdzaXplWyd3aWR0aCddOwogICAgICAgICAgJG91dHBbJ2hlaWdodCddID0gJHNyY2ltZ3NpemVbJ2hlaWdodCddOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgLy8gYXQgdGhpcyBwb2ludCwgd2UncmUgcmVhZHkgdG8gaGFuZGxlIGJ1aWxkaW5nIHRoZSB0YWcuCiAgICAgIGlmKCRvcHBbJ25vYmNhY2hlJ10pCiAgICAgIHsKICAgICAgICAkZGVzdF91cmwgLj0gJz94PScgLiB0aW1lKCk7CiAgICAgIH0KICAgICAgCiAgICAgIGlmKCFpc3NldCgkb3V0cFsnYWx0J10pKQogICAgICB7CiAgICAgICAgaWYoJGRlc3RfZm5hbWUpCiAgICAgICAgewogICAgICAgICAgJG91dHBbJ2FsdCddID0gYmFzZW5hbWUoJGRlc3RfZm5hbWUpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKCRzcmNmaWxlKQogICAgICAgIHsKICAgICAgICAgICRvdXRwWydhbHQnXSA9IGJhc2VuYW1lKCRzcmNmaWxlKTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICRvdXRwWydhbHQnXSA9IGJhc2VuYW1lKCRvcHBbJ3NyYyddKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIC8vIGJ1aWxkIHRoZSBvdXRwdXQuCiAgICAgIGlmKCRvcHBbJ25vdGFnJ10gfHwgc2VsZjo6X2lzX3N0eWxlc2hlZXQoKSkKICAgICAgewogICAgICAgICRvdXRwWydzcmMnXSA9ICRkZXN0X3VybDsKICAgICAgICAKICAgICAgICBpZighJG9wcFsnbm9lbWJlZCddICYmICRtb2QtPmNhbl9lbWJlZCgkZGVzdF9mbmFtZSkpCiAgICAgICAgewogICAgICAgICAgJHR5cGUgPSB4dF91dGlsczo6Z2V0X21pbWVfdHlwZSgkZGVzdF9mbmFtZSk7CiAgICAgICAgICAKICAgICAgICAgIGlmKCR0eXBlICYmICR0eXBlICE9ICd1bmtub3duJykKICAgICAgICAgIHsKICAgICAgICAgICAgJHRtcCAgICAgICAgID0gYmFzZTY0X2VuY29kZSggZmlsZV9nZXRfY29udGVudHMoJGRlc3RfZm5hbWUpICk7CiAgICAgICAgICAgICRvdXRwWydzcmMnXSA9ICdkYXRhOicgLiAkdHlwZSAuICc7YmFzZTY0LCcgLiAkdG1wOwogICAgICAgICAgICB1bnNldCgkdG1wKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICRvdXRwWydzcmMnXSA9ICRkZXN0X3VybDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgaWYoIWlzc2V0KCRvdXRwWydvdXRwdXQnXSkpCiAgICAgICAgewogICAgICAgICAgJG91dHBbJ291dHB1dCddID0gJG91dHBbJ3NyYyddOwogICAgICAgIH0KICAgICAgfQogICAgICBlbHNlCiAgICAgIHsKICAgICAgICAvLwogICAgICAgIC8vIGdvdHRhIGJ1aWxkIGEgdGFnLgogICAgICAgIC8vCiAgICAgICAgLy8gZ2V0IHRoZSBzcmMgZmlyc3QuCiAgICAgICAgaWYoISRvcHBbJ25vZW1iZWQnXSAmJiAkbW9kLT5jYW5fZW1iZWQoJGRlc3RfZm5hbWUpKQogICAgICAgIHsKICAgICAgICAgICR0eXBlID0geHRfdXRpbHM6OmdldF9taW1lX3R5cGUoJGRlc3RfZm5hbWUpOwogICAgICAgICAgCiAgICAgICAgICBpZigkdHlwZSAmJiAkdHlwZSAhPSAndW5rbm93bicpCiAgICAgICAgICB7CiAgICAgICAgICAgICR0bXAgICAgICAgICA9IGJhc2U2NF9lbmNvZGUoZmlsZV9nZXRfY29udGVudHMoJGRlc3RfZm5hbWUpKTsKICAgICAgICAgICAgJG91dHBbJ3NyYyddID0gJ2RhdGE6JyAuICR0eXBlIC4gJztiYXNlNjQsJyAuICR0bXA7CiAgICAgICAgICAgIHVuc2V0KCR0bXApOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICBpZighaXNzZXQoJG91dHBbJ3NyYyddKSB8fCAhJG91dHBbJ3NyYyddKQogICAgICAgIHsKICAgICAgICAgIC8vIGZhbGxiYWNrIHRvIHRoZSBkZXN0aW5hdGlvbiB1cmwuCiAgICAgICAgICAkb3V0cFsnc3JjJ10gPSAkZGVzdF91cmw7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qCiAgICAgICAgICBub3QgbmVlZGVkIG5vdy4KICAgICAgICBpZiggJGRlc3RfZm5hbWUgJiYgISRvcHBbJ25vYXV0byddICkgewogICAgICAgICAgICAkZGV0YWlscyA9IGdldGltYWdlc2l6ZSgkZGVzdF9mbmFtZSk7CiAgICAgICAgICAgIGlmKCBpc19hcnJheSgkZGV0YWlscykgKSB7CiAgICAgICAgICAgICAgICAkb3V0cFsnd2lkdGgnXSAgPSAoaW50KSRkZXRhaWxzWzBdOwogICAgICAgICAgICAgICAgJG91dHBbJ2hlaWdodCddID0gKGludCkkZGV0YWlsc1sxXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAqLwogICAgICAgIAogICAgICAgIC8vIG5vdyB3ZSBjYW4gYnVpbGQgdGhlIHRhZy4KICAgICAgICAkb3V0cHV0ID0gJzxpbWcnOwogICAgICAgIGZvcmVhY2goJG91dHAgYXMgJGtleSA9PiAkdmFsdWUpCiAgICAgICAgewogICAgICAgICAgaWYoJGtleSA9PSAnZGVzdF9maWxlJykKICAgICAgICAgIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZigkb3BwWydub2F1dG8nXSAmJiAoJGtleSA9PSAnd2lkdGgnIHx8ICRrZXkgPT0gJ2hlaWdodCcpKQogICAgICAgICAgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmKCEkdmFsdWUgJiYgJGtleSAhPSAnYWx0JykKICAgICAgICAgIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9IC8vIGVtcHR5IGFsdCBpcyB2YWxpZC4uLiBzdHVwaWQsIGJ1dCB2YWxpZC4KICAgICAgICAgICRvdXRwdXQgLj0gJyAnIC4gJGtleSAuICc9IicgLiAkdmFsdWUgLiAnIic7CiAgICAgICAgfQogICAgICAgICRvdXRwdXQgICAgICAgICAuPSAnLz4nOwogICAgICAgICRvdXRwWydvdXRwdXQnXSA9ICRvdXRwdXQ7CiAgICAgIH0KICAgIH0KICAgIGNhdGNoKFxTSVN0b3BIZXJlRXhjZXB0aW9uICRlKQogICAgewogICAgICAvLyB3ZSB3ZXJlIGZvcmNlZCB0byBzdG9wCiAgICAgIGlmKCEkb3V0cFsnb3V0cHV0J10pCiAgICAgIHsKICAgICAgICAkb3V0cFsnZXJyb3InXSA9ICdObyBvdXRwdXQgZnJvbSBTSVN0b3BIZXJlRXhjZXB0aW9uJzsKICAgICAgfQogICAgfQogICAgY2F0Y2goRXhjZXB0aW9uICRlKQogICAgewogICAgICAkb3V0cFsnZXJyb3InXSA9ICRlLT5HZXRNZXNzYWdlKCk7CiAgICB9CiAgICAKICAgIC8vIGhlcmUgd2UncmUgZ29ubmEgcmV0dXJuIHNvbWV0aGluZwogICAgcmV0dXJuICRvdXRwOwogIH0KICAKICAKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNpX2NvbnZlcnQoJHBhcmFtcywgJGNvbnRlbnQsICYkc21hcnR5LCAkcmVwZWF0KQogIHsKICAgIGlmKCEkY29udGVudCkgeyByZXR1cm47IH0KICAgIAogICAgJG1heF93aWR0aCAgPSAtMTsKICAgICRtYXhfaGVpZ2h0ID0gLTE7CiAgICAKICAgIGlmKGlzc2V0KCRwYXJhbXNbJ21heF9oZWlnaHQnXSkpCiAgICB7CiAgICAgICRtYXhfaGVpZ2h0ID0gbWF4KDAsIChpbnQpJHBhcmFtc1snbWF4X2hlaWdodCddKTsKICAgIH0KICAgIAogICAgaWYoaXNzZXQoJHBhcmFtc1snbWF4X3dpZHRoJ10pKQogICAgewogICAgICAkbWF4X3dpZHRoID0gbWF4KDAsIChpbnQpJHBhcmFtc1snbWF4X3dpZHRoJ10pOwogICAgfQogICAgCiAgICAkZGlkX21vZGlmeSAgICAgICAgICAgICAgID0gRkFMU0U7CiAgICAkbW9kICAgICAgICAgICAgICAgICAgICAgID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdTbWFydEltYWdlJyk7CiAgICAkb2xkX2Vycm9ydmFsICAgICAgICAgICAgID0gbGlieG1sX3VzZV9pbnRlcm5hbF9lcnJvcnMoVFJVRSk7CiAgICAkZG9tICAgICAgICAgICAgICAgICAgICAgID0gbmV3IERvbURvY3VtZW50KCk7CiAgICAkZG9tLT5zdHJpY3RFcnJvckNoZWNraW5nID0gRkFMU0U7CiAgICAkZG9tLT52YWxpZGF0ZU9uUGFyc2UgICAgID0gRkFMU0U7CiAgICAKICAgIGlmKGZ1bmN0aW9uX2V4aXN0cygnbWJfY29udmVydF9lbmNvZGluZycpKQogICAgewogICAgICAkY29udGVudCA9IG1iX2NvbnZlcnRfZW5jb2RpbmcoJGNvbnRlbnQsICdIVE1MLUVOVElUSUVTJywgJ1VURi04Jyk7CiAgICB9CiAgICAKICAgICRkb20tPmxvYWRIVE1MKCRjb250ZW50KTsKICAgIAogICAgJGltZ3MgPSAkZG9tLT5HZXRFbGVtZW50c0J5VGFnTmFtZSgnaW1nJyk7CiAgICAKICAgIGlmKGlzX29iamVjdCgkaW1ncykgJiYgJGltZ3MtPmxlbmd0aCkKICAgIHsKICAgICAgZm9yKCRpID0gMDsgJGkgPCAkaW1ncy0+bGVuZ3RoOyAkaSsrKQogICAgICB7CiAgICAgICAgJG5vZGUgICAgPSAkaW1ncy0+aXRlbSgkaSk7CiAgICAgICAgJHN4ZSAgICAgPSBzaW1wbGV4bWxfaW1wb3J0X2RvbSgkbm9kZSk7CiAgICAgICAgJHBhcm1zICAgPSAkcGFyYW1zOwogICAgICAgICRwcm9jZXNzID0gVFJVRTsKICAgICAgICAKICAgICAgICBmb3JlYWNoKCRzeGUtPmF0dHJpYnV0ZXMoKSBhcyAkbmFtZSA9PiAkdmFsdWUpCiAgICAgICAgewogICAgICAgICAgJHZhbHVlID0gKHN0cmluZykkdmFsdWU7CiAgICAgICAgICBpZigkdmFsdWUgPT0gJycpIHsgY29udGludWU7IH0KICAgICAgICAgIAogICAgICAgICAgc3dpdGNoKCRuYW1lKQogICAgICAgICAgewogICAgICAgICAgICBjYXNlICd3aWR0aCc6CiAgICAgICAgICAgICAgaWYoJG1heF93aWR0aCA+IDApCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJHZhbHVlID0gbWluKCRtYXhfd2lkdGgsIChpbnQpJHZhbHVlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAKICAgICAgICAgICAgY2FzZSAnaGVpZ2h0JzoKICAgICAgICAgICAgICBpZigkbWF4X2hlaWdodCA+IDApCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJHZhbHVlID0gbWluKCRtYXhfaGVpZ2h0LCAoaW50KSR2YWx1ZSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgCiAgICAgICAgICAgIGNhc2UgJ2NsYXNzJzoKICAgICAgICAgICAgICAkd29yZHMgPSBleHBsb2RlKCcgJywgJHZhbHVlKTsKICAgICAgICAgICAgICBpZihpbl9hcnJheSgnbm9zaScsICR3b3JkcykpCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJHByb2Nlc3MgPSBGQUxTRTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgCiAgICAgICAgICAkcGFybXNbJG5hbWVdID0gJHZhbHVlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBpZighJHByb2Nlc3MpIHsgY29udGludWU7IH0gLy8gZm91bmQgYSByZWFzb24gbm90IGRvIHRvIGFueXRoaW5nIHdpdGggdGhpcyBpbWFnZS4KICAgICAgICBpZighaXNzZXQoJHBhcm1zWydzcmMnXSkpIHsgY29udGludWU7IH0KICAgICAgICBpZihzdGFydHN3aXRoKCRwYXJtc1snc3JjJ10sICdkYXRhOicpKSB7IGNvbnRpbnVlOyB9ICAgLy8gYWxyZWFkeSBlbWJlZGRlZCwgY2FuJ3QgZG8gYW55dGhpbmcuCiAgICAgICAgCiAgICAgICAgJHBhcm1zWydub3RhZyddID0gMTsKICAgICAgICAKICAgICAgICAkb3V0cCAgICAgICAgICAgPSBzZWxmOjpwcm9jZXNzX2ltYWdlKCRwYXJtcyk7CiAgICAgICAgCiAgICAgICAgZm9yZWFjaCgkb3V0cCBhcyAka2V5ID0+ICR2YWx1ZSkKICAgICAgICB7CiAgICAgICAgICAkZGlkX21vZGlmeSA9IFRSVUU7CiAgICAgICAgICAKICAgICAgICAgIHN3aXRjaCgka2V5KQogICAgICAgICAgewogICAgICAgICAgICBjYXNlICd3aWR0aCc6CiAgICAgICAgICAgIGNhc2UgJ2hlaWdodCc6CiAgICAgICAgICAgICAgJHZhbHVlID0gdHJpbSgkdmFsdWUpOwogICAgICAgICAgICAgIAogICAgICAgICAgICAgIGlmKCR2YWx1ZSkKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkc3hlWyRrZXldID0gKGludCkkdmFsdWU7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB1bnNldCgkc3hlWyRrZXldKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdhbHQnOgogICAgICAgICAgICBjYXNlICdzcmMnOgogICAgICAgICAgICAgICR2YWx1ZSA9IHRyaW0oJHZhbHVlKTsKICAgICAgICAgICAgICAKICAgICAgICAgICAgICBpZigkdmFsdWUpCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJHN4ZVska2V5XSA9IHRyaW0oJHZhbHVlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdjbGFzcyc6CiAgICAgICAgICAgICAgJHZhbHVlID0gdHJpbSgkdmFsdWUpOwogICAgICAgICAgICAgIGlmKCR2YWx1ZSAmJiBzdWJzdHIoJHZhbHVlLCAwLCAxKSA9PSAiKyIpCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJHN4ZVska2V5XSA9IHRyaW0oJHN4ZVska2V5XSAuICIgIiAuIHN1YnN0cigkdmFsdWUsIDEpKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZWxzZSBpZigkdmFsdWUpCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJHN4ZVska2V5XSA9ICR2YWx1ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0gLy8gZm9yIGVhY2ggaW1hZ2UKICAgIH0KICAgIAogICAgLy8gZ2V0IHRoZSBjb250ZW50cy4KICAgIGlmKCRkaWRfbW9kaWZ5KQogICAgewogICAgICAvLyB0YWdzIHdlIGRvIG5vdCB3YW50IHRvIHNlbGYgY2xvc2UgaWYgZW1wdHkuCiAgICAgICRjYW5zZWxmY2xvc2UgPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICdhcmVhJywKICAgICAgICAgICAgICAgICAgICAgICAgJ2Jhc2UnLAogICAgICAgICAgICAgICAgICAgICAgICAnYnInLAogICAgICAgICAgICAgICAgICAgICAgICAnY29sJywKICAgICAgICAgICAgICAgICAgICAgICAgJ2VtYmVkJywKICAgICAgICAgICAgICAgICAgICAgICAgJ2hyJywKICAgICAgICAgICAgICAgICAgICAgICAgJ2ltZycsCiAgICAgICAgICAgICAgICAgICAgICAgICdpbnB1dCcsCiAgICAgICAgICAgICAgICAgICAgICAgICdrZXlnZW4nLAogICAgICAgICAgICAgICAgICAgICAgICAnbGluaycsCiAgICAgICAgICAgICAgICAgICAgICAgICdtZW51aXRlbScsCiAgICAgICAgICAgICAgICAgICAgICAgICdtZXRhJywKICAgICAgICAgICAgICAgICAgICAgICAgJ3BhcmFtJywKICAgICAgICAgICAgICAgICAgICAgICAgJ3NvdXJjZScsCiAgICAgICAgICAgICAgICAgICAgICAgICd0cmFjaycsCiAgICAgICAgICAgICAgICAgICAgICAgICd3YnInCiAgICAgICAgICAgICAgICAgICAgICBdOwogICAgICAKICAgICAgLy8gZ2V0IGFsbCBlbXB0eSBub2Rlcy4uLgogICAgICAkcXVlcnkgPSAnLy8qW25vdChub2RlKCkpXSc7CiAgICAgICRub2RlcyA9ICggbmV3IERPTVhQYXRoKCRkb20pICktPnF1ZXJ5KCRxdWVyeSk7CiAgICAgIAogICAgICBmb3JlYWNoKCRub2RlcyBhcyAkbikKICAgICAgewogICAgICAgIGlmKCFpbl9hcnJheSgkbi0+bm9kZU5hbWUsICRjYW5zZWxmY2xvc2UpKQogICAgICAgIHsKICAgICAgICAgICRuLT5hcHBlbmRDaGlsZChuZXcgRE9NQ29tbWVudCgnTk9UX1ZPSUQnKSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAkdG1wID0gJGRvbS0+Z2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKTsKICAgICAgCiAgICAgIGlmKCR0bXAgJiYgJHRtcC0+bGVuZ3RoID09IDEpCiAgICAgIHsKICAgICAgICAkbm9kZSAgICA9ICR0bXAtPml0ZW0oMCk7CiAgICAgICAgJGNvbnRlbnQgPSBOVUxMOwogICAgICAgIAogICAgICAgIGZvcmVhY2goJG5vZGUtPmNoaWxkTm9kZXMgYXMgJGNoaWxkKQogICAgICAgIHsKICAgICAgICAgICRjb250ZW50IC49ICRub2RlLT5vd25lckRvY3VtZW50LT5zYXZlWE1MKCRjaGlsZCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgICRjb250ZW50ID0gc3RyX3JlcGxhY2UoY2hyKDEzKSwgJycsICRjb250ZW50KTsKICAgICAgICAkY29udGVudCA9IHN0cl9yZXBsYWNlKCcmIzEzOycsICcnLCAkY29udGVudCk7CiAgICAgICAgJGNvbnRlbnQgPSBzdHJfcmVwbGFjZSgnPCEtLU5PVF9WT0lELS0+JywgJycsICRjb250ZW50KTsKICAgICAgfQogICAgfQogICAgCiAgICByZXR1cm4gJGNvbnRlbnQ7CiAgfQogIAogIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2RldmljZV9jYXBhYmlsaXRpZXMoKQogIHsKICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9TTUFSVElNQUdFKTsKICAgIGlmKCRtb2QtPkdldFByZWZlcmVuY2UoJ3Jlc3BvbnNpdmUnKSkKICAgIHsKICAgICAgJGNvb2tpZV9lbmMgPSBjbXNfY29va2llczo6Z2V0KCBzaV91dGlsczo6Z2V0X3Jlc3BvbnNpdmVfY29va2llbmFtZSgpICk7CiAgICAgIGlmKCRjb29raWVfZW5jKQogICAgICB7CiAgICAgICAgJGRhdGEgPSBqc29uX2RlY29kZSgkY29va2llX2VuYywgVFJVRSk7CiAgICAgICAgCiAgICAgICAgcmV0dXJuICRkYXRhOwogICAgICB9CiAgICB9CiAgfQogIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gdHJpbV90b19kZXZpY2UoJGZsYWcsICR2YWx1ZSkKICB7CiAgICAkZmxhZyA9IHN0cnRvbG93ZXIoJGZsYWcpOwogICAgaWYoJHZhbHVlID4gMCAmJiBpc19hcnJheShzZWxmOjokX2RldmljZV9kYXRhKSAmJiBpc3NldChzZWxmOjokX2RldmljZV9kYXRhWyRmbGFnXSkpCiAgICB7CiAgICAgIHJldHVybiBtaW4oJHZhbHVlLCBzZWxmOjokX2RldmljZV9kYXRhWyRmbGFnXSk7CiAgICB9CiAgICAKICAgIHJldHVybiAkdmFsdWU7CiAgfQogIAogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3RyYW5zcGFyZW50X2NvbG9yKEltYWdlQmFzZSAkaW1nKQogIHsKICAgIGlmKCRpbWdbJ3RyYW5zcGFyZW50J10gIT0gJycpCiAgICB7CiAgICAgIHJldHVybiAkaW1nWyd0cmFuc3BhcmVudCddOwogICAgfQogIH0KICAKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGZpbmRfdW51c2VkX2NvbG9yKEltYWdlQmFzZSAkaW1nKQogIHsKICAgIC8vIGRvbnQgaGF2ZSBhIHRyYW5zcGFyZW5jeSBjb2xvci4uLiBzbyBndWVzcyBvbmUuCiAgICAvLyBmaW5kIGEgcmFuZG9tIHVudXNlZCBjb2xvciBmb3IgdHJhbnNwYXJlbmN5LgogICAgJHIgICAgID0gJGcgPSAkYiA9IDI1NTsKICAgICRmb3VuZCA9IDA7CiAgICB3aGlsZSgkZm91bmQgPCAxMDApCiAgICB7CiAgICAgICRyID0gcmFuZCgwLCAyNTUpOwogICAgICAkZyA9IHJhbmQoMCwgMjU1KTsKICAgICAgJGIgPSByYW5kKDAsIDI1NSk7CiAgICAgIGlmKGltYWdlY29sb3JleGFjdCgkaW1nWydyc3JjJ10sICRyLCAkZywgJGIpICE9IC0xKQogICAgICB7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgJGZvdW5kKys7CiAgICB9CiAgICAKICAgIGlmKCRmb3VuZCA9PSA1MCkKICAgIHsKICAgICAgYXVkaXQoJycsICdTbWFydEltYWdlJywgJ05vIHVudXNlZCBjb2xvciBmb3VuZCcpOwogICAgfQogICAgCiAgICByZXR1cm4gWyRyLCAkZywgJGJdOwogIH0KICAKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9yZXNwb25zaXZlX2Nvb2tpZW5hbWUoKQogIHsKICAgIHJldHVybiAnY2MnIC4gbWQ1KF9fRklMRV9fKTsKICB9CiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBub3JtYWxpemVfcGF0aCgkcGF0aCA9ICcnKQogIHsKICAgICRzdHIgPSBzdHJfcmVwbGFjZSgnLycsIERJUkVDVE9SWV9TRVBBUkFUT1IsICRwYXRoKTsKICAgICRzdHIgPSBzdHJfcmVwbGFjZSgnXFwnLCBESVJFQ1RPUllfU0VQQVJBVE9SLCAkc3RyKTsKICAgICRzdHIgPSBwcmVnX3JlcGxhY2UoJ3soLylcMSt9JywnJDEnLCAkc3RyKTsKICAgICRzdHIgPSBwcmVnX3JlcGxhY2UoJ3soXFxcKVwxK30nLCckMScsICRzdHIpOwogICAgCiAgICByZXR1cm4gJHN0cjsKICB9Cn0KCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.SmartImage_ClearCacheTask.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogQ0dTbWFydEltYWdlIChjKSAyMDExLTIwMjEgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBTbWFydEltYWdlX0NsZWFyQ2FjaGVUYXNrIGltcGxlbWVudHMgQ21zUmVndWxhclRhc2sKewogICAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gZ2V0X2NsYXNzKCR0aGlzKTsKICAgIH0KCgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9kZXNjcmlwdGlvbigpCiAgICB7CiAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnU21hcnRJbWFnZScpOwogICAgICAgIHJldHVybiAkbW9kLT5MYW5nKCdjbGVhcmNhY2hldGFza19kZXNjcmlwdGlvbicpOwogICAgfQoKCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdCgkdGltZSA9ICcnKQogICAgewogICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1NtYXJ0SW1hZ2UnKTsKICAgICAgICAkYWdlID0gKGludCkkbW9kLT5HZXRQcmVmZXJlbmNlKCdjYWNoZV9hZ2UnKTsKICAgICAgICBpZiggJGFnZSA8PSAwICkgcmV0dXJuIEZBTFNFOwoKICAgICAgICAvLyB3ZSBvbmx5IGF0dGVtcHQgdG8gY2xlYXIgY2FjaGVkIGZpbGVzIG9uY2UgcGVyIGRheQogICAgICAgIGlmKCAhJHRpbWUgKSAkdGltZSA9IHRpbWUoKTsKICAgICAgICAkbGFzdF9leGVjdXRlID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnY2xlYXJjYWNoZV9sYXN0cnVuJyk7CiAgICAgICAgaWYoICgkdGltZSAtIDI0ICogNjAgKiA2MCApID49ICRsYXN0X2V4ZWN1dGUgKSByZXR1cm4gVFJVRTsKICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgoKICAgIHB1YmxpYyBmdW5jdGlvbiBleGVjdXRlKCR0aW1lID0gJycpCiAgICB7CiAgICAgICAgaWYoICEkdGltZSApICR0aW1lID0gdGltZSgpOwoKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIC8vIGNsZWFyIGNhY2hlZCBmaWxlcy4KICAgICAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnU21hcnRJbWFnZScpOwogICAgICAgICAgICAkbl9yZW1vdmVkID0gJG1vZC0+Y2xlYXJfY2FjaGVkX2ZpbGVzKCk7CiAgICAgICAgICAgICRtb2QtPkF1ZGl0KCcnLCRtb2QtPkxhbmcoJ2FjdF9jYWNoZWNsZWFuZWQnKSwkbW9kLT5MYW5nKCdtc2dfY2FjaGVjbGVhbmVkJywkbl9yZW1vdmVkKSk7CiAgICAgICAgICAgIHJldHVybiBUUlVFOwogICAgICAgIH0KICAgICAgICBjYXRjaCggRXhjZXB0aW9uICRlICkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBGQUxTRTsKICAgICAgICB9CiAgICB9CgoKICAgIHB1YmxpYyBmdW5jdGlvbiBvbl9zdWNjZXNzKCR0aW1lID0gJycpCiAgICB7CiAgICAgICAgaWYoICEkdGltZSApICR0aW1lID0gdGltZSgpOwogICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1NtYXJ0SW1hZ2UnKTsKICAgICAgICAkbW9kLT5TZXRQcmVmZXJlbmNlKCdjbGVhcmNhY2hlX2xhc3RydW4nLCR0aW1lKTsKICAgIH0KCgogICAgcHVibGljIGZ1bmN0aW9uIG9uX2ZhaWx1cmUoJHRpbWUgPSAnJykKICAgIHsKICAgICAgICAvLyBub3RoaW5nIGhlcmUuCiAgICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+Cg==]]></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[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IGNyZWF0aW5nIGltYWdlIHRhZ3MgaW4gYSBzbWFydAojICB3YXkgdG8gb3B0aW1pemUgcGVyZm9ybWFuY2UuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAxMCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCmlmKCB2ZXJzaW9uX2NvbXBhcmUocGhwdmVyc2lvbigpLCc1LjQuMTEnKSA8IDAgKSB7CiAgICByZXR1cm4gIk1pbmltdW0gUEhQIHZlcnNpb24gb2YgNS40LjExIHJlcXVpcmVkIjsKfQoKJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZW1iZWRfbW9kZScsJ3NtYXJ0Jyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdlbWJlZF9zaXplJywzMik7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdlbWJlZF90eXBlJywncG5nLGpwZyxnaWYnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltYWdlX3VybF9oYXNjYWNoZWRpcicsMCk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjYWNoZV9hZ2UnLDApOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgncmVzcG9uc2l2ZScsMCk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwcm9ncmVzc2l2ZScsMCk7CgokYWxpYXNlcyA9IGFycmF5KCk7CiRhbGlhc2VzW10gPSBhcnJheSgnbmFtZSc9PidzdGRfdGh1bWJuYWlsJywnb3B0aW9ucyc9PidmaWx0ZXJfd2F0ZXJtYXJrPTEgd2lkdGg9MTUwIGhlaWdodD0xNTAnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FsaWFzZXMnLHNlcmlhbGl6ZSgkYWxpYXNlcykpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmKCB2ZXJzaW9uX2NvbXBhcmUocGhwdmVyc2lvbigpLCc1LjQuMTEnKSA8IDAgKSB7CiAgICByZXR1cm4gIk1pbmltdW0gUEhQIHZlcnNpb24gb2YgNS40LjExIHJlcXVpcmVkIjsKfQoKJGNhY2hlX3BhdGggPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY2FjaGVfcGF0aCcpOwokdGVzdCA9IGNtc19qb2luX3BhdGgoJ3VwbG9hZHMnLCdfJy4kdGhpcy0+R2V0TmFtZSgpKTsKaWYoICRjYWNoZV9wYXRoID09ICR0ZXN0IHx8ICRjYWNoZV9wYXRoID09ICd1cGxvYWRzL19TbWFydEltYWdlJyApIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjYWNoZV9wYXRoJywnJyk7CiAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdJbnZhbGlkIGNhY2hlIHBhdGggcmVzZXQgdG8gdXBsb2Fkcy9fU21hcnRJbWFnZSBvbiB1cGdyYWRlJyk7Cn0KPz4=]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9ICJTbWFydEltYWdlIg0KdmVyc2lvbiA9IDEuMA0KYXV0aG9yID0gIkpvTW9yZyINCmF1dGhvcmVtYWlsID0gImpvbW9yZ0BjbXNtYWRlc2ltcGxlLm9yZyINCm1pbmNtc3ZlcnNpb24gPSAiMi4yLjkiDQpsYXp5bG9hZGFkbWluID0gMA0KbGF6eWxvYWRmcm9udGVuZCA9IDANCltkZXBlbmRzXQpDTVNNU0V4dCA9IDEuMA0K]]></data>
	</file>
	<file>
	  <filename>/SmartImage.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNtYXJ0SW1hZ2UgKGMpIDIwMjAtMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBjcmVhdGluZyBpbWFnZSB0YWdzIGluIGEgc21hcnQKIyAgd2F5IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEEgZm9yayBvZjoKIwojIE1vZHVsZTogQ0dTbWFydEltYWdlIChjKSAyMDExLTIwMjEgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA2IC0gMjAyMSBieSBDTVMgTWFkZSBTaW1wbGUgRm91bmRhdGlvbgojIENNU01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCnVzZSBDTVNNU0V4dFxCcm93c2VyOwoKY2xhc3MgU21hcnRJbWFnZSBleHRlbmRzIFxDTVNNU0V4dFxYVE1vZHVsZQp7CiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkKICB7CiAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCk7CiAgICAKICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsKICAgIAogICAgaWYoISRzbWFydHkpIHsgcmV0dXJuOyB9CiAgICAKICAgIHN0YXRpYyAkX2luaXQ7CiAgICAKICAgIGlmKCRfaW5pdCkgeyByZXR1cm47IH0KICAgIAogICAgJF9pbml0ID0gVFJVRTsKICAgIAogICAgLy8gbW9yZSBzbWFydHkgcGx1Z2lucwogICAgJHNtYXJ0eS0+cmVnaXN0ZXJfYmxvY2soJ3NpX2NvbnZlcnQnLCBbJ3NpX3V0aWxzJywgJ3NpX2NvbnZlcnQnXSk7CiAgICAkc21hcnR5LT5yZWdpc3Rlcl9ibG9jaygnc2lfZ2V0aW1hZ2VzJywgWydzaV9leHRlbmRlZCcsICdzaV9nZXRpbWFnZXMnXSk7CiAgICAkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsgLy8gdGhpcyBpcyBoZXJlIHNvIHRoZSBtb2R1bGUgY2FuIGJlIHVzZWQgZnJvbSB0aGUgYWRtaW4uCiAgfQogIAogIGZ1bmN0aW9uIExhenlMb2FkQWRtaW4oKSB7IHJldHVybiBGQUxTRTsgfQogIAogIGZ1bmN0aW9uIExhenlMb2FkRnJvbnRlbmQoKSB7IHJldHVybiBGQUxTRTsgfQogIAogIGZ1bmN0aW9uIEdldE5hbWUoKSB7IHJldHVybiBnZXRfY2xhc3MoJHRoaXMpOyB9CiAgCiAgZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpOyB9CiAgCiAgZnVuY3Rpb24gR2V0VmVyc2lvbigpIHsgcmV0dXJuICcxLjAnOyB9CiAgCiAgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKSB7IHJldHVybiAnMi4yLjknOyB9CiAgCiAgZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkgeyByZXR1cm4gWydDTVNNU0V4dCcgPT4gJzEuMCddOyB9CiAgCiAgZnVuY3Rpb24gR2V0QXV0aG9yKCkgeyByZXR1cm4gJ0pvTW9yZyc7IH0KICAKICBmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpIHsgcmV0dXJuICdqb21vcmdAY21zbWFkZXNpbXBsZS5vcmcnOyB9CiAgCiAgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKSB7IHJldHVybiBUUlVFOyB9CiAgCiAgZnVuY3Rpb24gR2V0QWRtaW5TZWN0aW9uKCkgeyByZXR1cm4gJ2V4dGVuc2lvbnMnOyB9CiAgCiAgZnVuY3Rpb24gSGFuZGxlc0V2ZW50cygpIHsgcmV0dXJuIEZBTFNFOyB9CiAgCiAgZnVuY3Rpb24gSGFzQWRtaW4oKSB7IHJldHVybiBUUlVFOyB9CiAgCiAgZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkgeyByZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKTsgfQogIAogIGZ1bmN0aW9uIEFsbG93QXV0b0luc3RhbGwoKSB7IHJldHVybiBGQUxTRTsgfQogIAogIGZ1bmN0aW9uIEFsbG93QXV0b1VwZ3JhZGUoKSB7IHJldHVybiBGQUxTRTsgfQogIAogIGZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24oKSB7IHJldHVybiAkdGhpcy0+TGFuZygnbW9kZGVzY3JpcHRpb24nKTsgfQogIAogIGZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpOyB9CiAgCiAgZnVuY3Rpb24gVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKSB7IHJldHVybiAkdGhpcy0+TGFuZygncG9zdHVuaW5zdGFsbCcpOyB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIEluaXRpYWxpemVGcm9udGVuZCgpCiAgewogICAgcGFyZW50OjpTZXRQYXJhbWV0ZXJzKCk7CiAgICAkdGhpcy0+UmVzdHJpY3RVbmtub3duUGFyYW1zKCk7CiAgICAKICAgIC8vIG9wZXJhdGlvbmFsIHBhcmFtcyAod2hhdCB0byBkbyB3aXRoIHdoYXQuLi4pCiAgICAKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdub2F1dG9zY2FsZScsIENMRUFOX0lOVCk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9iY2FjaGUnLCBDTEVBTl9JTlQpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ25vZW1iZWQnLCBDTEVBTl9JTlQpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ25vYXV0bycsIENMRUFOX0lOVCk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9yb3RhdGUnLCBDTEVBTl9JTlQpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ25vdGFnJywgQ0xFQU5fSU5UKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdub3Jlc3BvbnNpdmUnLCBDTEVBTl9JTlQpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ25vcmVtb3RlJywgQ0xFQU5fSU5UKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzcmMnLCBDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ292ZXJ3cml0ZScsIENMRUFOX0lOVCk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZm9yY2VfZXh0JywgQ0xFQU5fSU5UKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdmb3JjZV90eXBlJywgQ0xFQU5fU1RSSU5HKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdwcm9ncmVzc2l2ZScsIENMRUFOX0lOVCk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnYXV0b3NjYWxlX29wJywgQ0xFQU5fU1RSSU5HKTsKICAgIAogICAgLy8gcGFyYW1zIGZvciB0aGUgb3V0cHV0IHRhZyAoaWYgb3V0cHV0dGluZyBhbiBpbWcgdGFnKQogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2lkJywgQ0xFQU5fU1RSSU5HKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdjbGFzcycsIENMRUFOX1NUUklORyk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc3R5bGUnLCBDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3RpdGxlJywgQ0xFQU5fU1RSSU5HKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdhbHQnLCBDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ25hbWUnLCBDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2hlaWdodCcsIENMRUFOX0lOVCk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnd2lkdGgnLCBDTEVBTl9JTlQpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ21heF9oZWlnaHQnLCBDTEVBTl9JTlQpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ21heF93aWR0aCcsIENMRUFOX0lOVCk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncXVhbGl0eScsIENMRUFOX0lOVCk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncmVsJywgQ0xFQU5fU1RSSU5HKTsKICAgIAogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoQ0xFQU5fUkVHRVhQIC4gJy9zcmNcZCovJywgQ0xFQU5fU1RSSU5HKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKENMRUFOX1JFR0VYUCAuICcvYWxpYXNcZCovJywgQ0xFQU5fU1RSSU5HKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKENMRUFOX1JFR0VYUCAuICcvZmlsdGVyX1x3Ki8nLCBDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NpbGVudCcsIENMRUFOX0lOVCk7CiAgfQogIAogIC8vZnVuY3Rpb24gSW5pdGlhbGl6ZUFkbWluKCkge30KICAKICBwcm90ZWN0ZWQgZnVuY3Rpb24gY2FuX3NtYXJ0X2VtYmVkKCRzcmMpCiAgewogICAgZ2xvYmFsICRDTVNfQURNSU5fUEFHRTsKICAgIGdsb2JhbCAkQ01TX1NUWUxFU0hFRVQ7CiAgICAKICAgICRpbWFnc2l6ZSA9IGZpbGVzaXplKCRzcmMpOwogICAgCiAgICAkYnJvd3NlciA9IHh0X3V0aWxzOjpnZXRfYnJvd3NlcigpOwogICAgc3dpdGNoKCRicm93c2VyLT5nZXRCcm93c2VyKCkpCiAgICB7CiAgICAgIGNhc2UgQnJvd3Nlcjo6QlJPV1NFUl9JRToKICAgICAgICAkdmVyID0gJGJyb3dzZXItPmdldFZlcnNpb24oKTsKICAgICAgICBpZigkdmVyIDw9IDcpCiAgICAgICAgewogICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgIH0KICAgICAgICBpZigkQ01TX1NUWUxFU0hFRVQgJiYgJHZlciA8IDgpCiAgICAgICAgewogICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgIH0KICAgICAgICBpZigkdmVyID09IDggJiYgJGltYWdzaXplID49IDMyICogMTAyNCkKICAgICAgICB7CiAgICAgICAgICByZXR1cm4gRkFMU0U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHJldHVybiBUUlVFOwogICAgICAKICAgICAgZGVmYXVsdDoKICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KICB9CiAgCiAgcHVibGljIGZ1bmN0aW9uIGNhbl9lbWJlZCgkc3JjKQogIHsKICAgIGlmKCAhaXNfcmVhZGFibGUoJHNyYykgKSB7IHJldHVybiBGQUxTRTsgfQogICAgCiAgICAkZV9tb2RlICAgICAgID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2VtYmVkX21vZGUnKTsKICAgICRlX3NpemVfbGltaXQgPSAoaW50KSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdlbWJlZF9zaXplbGltaXQnKTsKICAgICRlX3R5cGVzICAgICAgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZW1iZWRfdHlwZXMnKTsKICAgIAogICAgc3dpdGNoKCRlX21vZGUpCiAgICB7CiAgICAgIGNhc2UgJ3NtYXJ0JzoKICAgICAgICByZXR1cm4gJHRoaXMtPmNhbl9zbWFydF9lbWJlZCgkc3JjKTsKICAgICAgCiAgICAgIGNhc2UgJ3NtYXJ0X2xpbWl0ZWQnOgogICAgICAgIGlmKCRlX3NpemVfbGltaXQgPD0gMCB8fCAkZV9zaXplX2xpbWl0ID4gMTAwMDApCiAgICAgICAgewogICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgIH0KICAgICAgICAkZV9zaXplX2xpbWl0ICo9IDEwMjQ7CiAgICAgICAgJHRtcCAgICAgICAgICA9IGZpbGVzaXplKCRzcmMpOwogICAgICAgIGlmKCR0bXAgPiAkZV9zaXplX2xpbWl0KQogICAgICAgIHsKICAgICAgICAgIHJldHVybiBGQUxTRTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgcmV0dXJuICR0aGlzLT5jYW5fc21hcnRfZW1iZWQoJHNyYyk7CiAgICAgIGJyZWFrOwogICAgICAKICAgICAgY2FzZSAnc2l6ZWxpbWl0JzoKICAgICAgICAvLyBjaGVjayB0aGUgbGltaXQuCiAgICAgICAgaWYoJGVfc2l6ZV9saW1pdCA8PSAwIHx8ICRlX3NpemVfbGltaXQgPiAxMDAwMCkKICAgICAgICB7CiAgICAgICAgICByZXR1cm4gRkFMU0U7CiAgICAgICAgfQogICAgICAgICRlX3NpemVfbGltaXQgKj0gMTAyNDsKICAgICAgICAvLyBnZXQgdGhlIGZpbGVzaXplCiAgICAgICAgJHRtcCA9IGZpbGVzaXplKCRzcmMpOwogICAgICAgIGlmKCR0bXAgPiAkZV9zaXplX2xpbWl0KQogICAgICAgIHsKICAgICAgICAgIHJldHVybiBGQUxTRTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICAgIAogICAgICBjYXNlICd0eXBlJzoKICAgICAgICBpZighJGVfdHlwZXMpIHsgcmV0dXJuIEZBTFNFOyB9CiAgICAgICAgCiAgICAgICAgJHR5cGVzID0gZXhwbG9kZSgnLCcsICRlX3R5cGVzKTsKICAgICAgICAkZXh0ICAgPSBzdHJyY2hyKCRzcmMsICcuJyk7CiAgICAgICAgCiAgICAgICAgaWYoISRleHQpIHsgcmV0dXJuIEZBTFNFOyB9CiAgICAgICAgCiAgICAgICAgZm9yZWFjaCgkdHlwZXMgYXMgJHR5cGUpCiAgICAgICAgewogICAgICAgICAgaWYoICcuJyAuIHN0cnRvbG93ZXIoJHR5cGUpID09PSBzdHJ0b2xvd2VyKCRleHQpICkKICAgICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIFRSVUU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHJldHVybiBGQUxTRTsKICAgICAgYnJlYWs7CiAgICAgIAogICAgICBjYXNlICdub25lJzoKICAgICAgZGVmYXVsdDoKICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBnZXRfY2FjaGVfcGF0aCgpCiAgewogICAgJGNvbmZpZyAgICAgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAgICRjYWNoZV9wYXRoID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NhY2hlX3BhdGgnKTsKICAgIGlmKCEkY2FjaGVfcGF0aCkKICAgIHsKICAgICAgJGNhY2hlX3BhdGggPSBjbXNfam9pbl9wYXRoKCd1cGxvYWRzJywgJ18nIC4gJHRoaXMtPkdldE5hbWUoKSk7CiAgICB9CiAgICAkY2FjaGVfcGF0aCA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sncm9vdF9wYXRoJ10sICRjYWNoZV9wYXRoKTsKICAgIAogICAgcmV0dXJuICRjYWNoZV9wYXRoOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gY2xlYXJfY2FjaGVkX2ZpbGVzKCkKICB7CiAgICAkY29uZmlnICAgICA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgJGNhY2hlX3BhdGggPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY2FjaGVfcGF0aCcsIGNtc19qb2luX3BhdGgoJ3VwbG9hZHMnLCAnXycgLiAkdGhpcy0+R2V0TmFtZSgpKSk7CiAgICAkdHAxICAgICAgICA9ICRjYWNoZV9wYXRoOwogICAgaWYoIWlzX2RpcigkdHAxKSkKICAgIHsKICAgICAgJHRwMSA9ICRjb25maWdbJ3Jvb3RfcGF0aCddIC4gJy8nIC4gJHRwMTsKICAgIH0KICAgICRwMSA9IHJlYWxwYXRoKCR0cDEpOwogICAgJHAyID0gcmVhbHBhdGgoJGNvbmZpZ1sncm9vdF9wYXRoJ10pOwogICAgaWYoJHAxID09ICRwMiB8fCAhc3RhcnRzd2l0aCgkcDEsICRwMikpCiAgICB7CiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2NhY2hlcGF0aF9pbnZhbGlkJykpOwogICAgfQogICAgJGRpciA9ICR0cDE7CiAgICAKICAgICRhZ2VfZGF5cyA9IChpbnQpJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NhY2hlX2FnZScpOwogICAgaWYoJGFnZV9kYXlzIDw9IDApCiAgICB7CiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRfYWdlJykpOwogICAgfQogICAgCiAgICAkdGhlZGF0ZSAgID0gdGltZSgpIC0gJGFnZV9kYXlzICogMjQgKiA2MCAqIDYwOwogICAgJG5fcmVtb3ZlZCA9IDA7CiAgICBpZigkZGggPSBvcGVuZGlyKCRkaXIpKQogICAgewogICAgICB3aGlsZSggKCAkZmlsZSA9IHJlYWRkaXIoJGRoKSApICE9PSBGQUxTRSApCiAgICAgIHsKICAgICAgICBpZihzdGFydHN3aXRoKCRmaWxlLCAnLicpKQogICAgICAgIHsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0gLy8gaWdub3JlIGhpZGRlbiBmaWxlcy4KICAgICAgICAkZm4gPSBjbXNfam9pbl9wYXRoKCRkaXIsICRmaWxlKTsKICAgICAgICAKICAgICAgICBpZihpc19maWxlKCRmbikgJiYgZmlsZW10aW1lKCRmbikgPCAkdGhlZGF0ZSkKICAgICAgICB7CiAgICAgICAgICBAdW5saW5rKCRmbik7CiAgICAgICAgICAkbl9yZW1vdmVkKys7CiAgICAgICAgfQogICAgICB9CiAgICAgIGNsb3NlZGlyKCRkaCk7CiAgICB9CiAgICAKICAgIHJldHVybiAkbl9yZW1vdmVkOwogIH0KICAKICBwdWJsaWMgZnVuY3Rpb24gSGFzQ2FwYWJpbGl0eSgkY2FwYWJpbGl0eSwgJHBhcmFtcyA9IFtdKQogIHsKICAgIGlmKCRjYXBhYmlsaXR5ID09ICd0YXNrcycpCiAgICB7CiAgICAgIHJldHVybiBUUlVFOwogICAgfQogICAgCiAgICByZXR1cm4gRkFMU0U7CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBnZXRfdGFza3MoKQogIHsKICAgICRvdXQgICA9IFtdOwogICAgJG91dFtdID0gbmV3IFNtYXJ0SW1hZ2VfQ2xlYXJDYWNoZVRhc2soKTsKICAgICRwcmVmcyA9IFxTbWFydEltYWdlXGF1dG9wcm9jZXNzX29wdGlvbnM6OmxvYWQoKTsKICAgIGlmKCRwcmVmcyAmJiAkcHJlZnMtPmVuYWJsZWQpCiAgICB7CiAgICAgICRvdXRbXSA9IG5ldyBcU21hcnRJbWFnZVxBdXRvUHJvY2Vzc01hc3RlclRhc2soKTsKICAgIH0KICAgIAogICAgcmV0dXJuICRvdXQ7CiAgfQogIAogIHB1YmxpYyBmdW5jdGlvbiBnZXRfY2FjaGVkX2ltYWdlX3VybCgkZmlsZW5hbWUpCiAgewogICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgJHByZWZpeCA9IHRyaW0oJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltYWdlX3VybF9wcmVmaXgnKSk7CiAgICBpZighJHByZWZpeCkKICAgIHsKICAgICAgJHByZWZpeCA9ICRjb25maWdbJ3Jvb3RfdXJsJ107CiAgICB9CiAgICAkaGFzY2FjaGVkaXIgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VfdXJsX2hhc2NhY2hlZGlyJyk7CiAgICAKICAgICR1cmwgPSAkcHJlZml4OwogICAgCiAgICBpZighZW5kc3dpdGgoJHVybCwgJy8nKSkKICAgIHsKICAgICAgJHVybCAuPSAnLyc7CiAgICB9CiAgICAKICAgIGlmKCEkaGFzY2FjaGVkaXIpCiAgICB7CiAgICAgICRjYWNoZV91cmwgPSB0cmltKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjYWNoZV9wYXRoJykpOwogICAgICBpZighJGNhY2hlX3VybCkKICAgICAgewogICAgICAgICRjYWNoZV91cmwgPSAndXBsb2Fkcy9fJyAuICR0aGlzLT5HZXROYW1lKCk7CiAgICAgIH0KICAgICAgJGNhY2hlX3VybCA9IHN0cl9yZXBsYWNlKERJUkVDVE9SWV9TRVBBUkFUT1IsICcvJywgJGNhY2hlX3VybCk7IC8vIDwtIEVuc3VyZSBjb3JyZWN0IHNsYXNoZXMgZm9yIFVSTAogICAgICAkdXJsICAgICAgIC49ICRjYWNoZV91cmw7CiAgICB9CiAgICBpZighZW5kc3dpdGgoJHVybCwgJy8nKSkKICAgIHsKICAgICAgJHVybCAuPSAnLyc7CiAgICB9CiAgICAkdXJsIC49ICRmaWxlbmFtZTsKICAgIAogICAgcmV0dXJuICR1cmw7CiAgfQogIAp9IC8vIGVuZCBvZiBjbGFzcwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_aliases_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHA+eyRtb2QtPkxhbmcoJ2luZm9fYWxpYXNlcycpfTwvcD4KCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICAkKCcjYWxpYXNfdGFibGUgdHI6bGFzdCcpLmZpbmQoJ2ltZycpLmhpZGUoKTsKICAkKCcjYWRkX3JvdycpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICB2YXIgbmV3X3JvdyA9ICQoJyNhbGlhc190YWJsZSB0cjpsYXN0JykuY2xvbmUodHJ1ZSk7CiAgICAkKCcjYWxpYXNfdGFibGUgdHI6bGFzdCcpLmZpbmQoJ2ltZycpLnNob3coKTsKICAgIG5ld19yb3cuZmluZCgnOmlucHV0JykuZWFjaChmdW5jdGlvbigpewogICAgICAkKHRoaXMpLnZhbCgnJyk7CiAgICB9KTsKICAgICQoJyNhbGlhc190YWJsZSB0Ym9keScpLmFwcGVuZChuZXdfcm93KTsKICAgIHJldHVybiBmYWxzZTsKICB9KTsKCiAgJCgnaW1nLmRlbGV0ZXJvdycpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICBpZiggJCgnI2FsaWFzX3RhYmxlIHRyJykubGVuZ3RoIDw9IDIgKSByZXR1cm4gZmFsc2U7CiAgICAkKHRoaXMpLmNsb3Nlc3QoJ3RyJykucmVtb3ZlKCk7ICAgCiAgfSk7Cn0pOwo8L3NjcmlwdD4KCnskZm9ybXN0YXJ0fQo8dGFibGUgY2xhc3M9InBhZ2V0YWJsZSBwYWdlaW5wdXQiIGNlbGxzcGFjaW5nPSIwIiBpZD0iYWxpYXNfdGFibGUiPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPnskbW9kLT5MYW5nKCdhbGlhcycpfTwvdGg+CiAgICAgIDx0aD57JG1vZC0+TGFuZygnb3B0aW9ucycpfTwvdGg+CiAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPjwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5Pgp7aWYgaXNzZXQoJGFsaWFzZXMpfQp7Zm9yZWFjaCBmcm9tPSRhbGlhc2VzIGl0ZW09J2FsaWFzJ30KICAgIDx0cj4KICAgICAgPHRkPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWFsaWFzX25hbWVbXSIgdmFsdWU9InskYWxpYXMubmFtZXxodG1sc3BlY2lhbGNoYXJzfSIgc2l6ZT0iMjAiIG1heGxlbmd0aD0iNTAiLz4KICAgICAgPC90ZD4KICAgICAgPHRkPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWFsaWFzX29wdGlvbnNbXSIgdmFsdWU9InskYWxpYXMub3B0aW9uc3xodG1sc3BlY2lhbGNoYXJzfSIgc2l6ZT0iNjAiIG1heGxlbmd0aD0iMjU1Ii8+CiAgICAgIDwvdGQ+CiAgICAgIDx0ZD4KICAgICAgICB7eHRpbWFnZSBjbGFzcz0nZGVsZXRlcm93JyBpbWFnZT0naWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnIGFsdD0kbW9kLT5MYW5nKCdkZWxldGUnKX0KICAgICAgPC90ZD4KICAgIDwvdHI+CnsvZm9yZWFjaH0Key9pZn0KICAgIHsqIGVtcHR5IHJvdyAqfQogICAgPHRyPgogICAgICA8dGQ+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9YWxpYXNfbmFtZVtdIiB2YWx1ZT0iIiBzaXplPSIyMCIgbWF4bGVuZ3RoPSI1MCIvPgogICAgICA8L3RkPgogICAgICA8dGQ+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9YWxpYXNfb3B0aW9uc1tdIiB2YWx1ZT0iIiBzaXplPSI2MCIgbWF4bGVuZ3RoPSIyNTUiLz4KICAgICAgPC90ZD4KICAgICAgPHRkPgogICAgICAgIHt4dGltYWdlIGNsYXNzPSdkZWxldGVyb3cnIGltYWdlPSdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicgYWx0PSRtb2QtPkxhbmcoJ2RlbGV0ZScpfQogICAgICA8L3RkPgogICAgPC90cj4KICA8L3Rib2R5Pgo8L3RhYmxlPgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgaWQ9ImFkZF9yb3ciIG5hbWU9InskYWN0aW9uaWR9YWRkX3JvdyIgdmFsdWU9InskbW9kLT5MYW5nKCdhZGRfcm93Jyl9Ii8+CiAgPC9wPgo8L2Rpdj4KeyRmb3JtZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_autoprocessing_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JG1vZC0+TGFuZygnaW5mb19hdXRvcHJvY2Vzc2luZycpfTwvZGl2Pgo8ZGl2PgoKPGRpdiBjbGFzcz0iY19mdWxsIj4KICA8ZGl2IGNsYXNzPSJncmlkXzIiPiZuYnNwOzwvZGl2PgogIDxkaXYgY2xhc3M9ImdyaWRfMTAiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgICB7aWYgJHByZWZzLT5lbmFibGVkfQogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1iZWdpbl9hdXRvcHJvY2VzcyIgdmFsdWU9InskbW9kLT5MYW5nKCdiZWdpbl9hdXRvcHJvY2VzcycpfSIvPgogICAgey9pZn0KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgPGRpdiBjbGFzcz0iZ3JpZF8yIHRleHQtcmlnaHQiPnskbW9kLT5MYW5nKCdhdXRvcHJvY2Vzc19lbmFibGVkJyl9OjwvZGl2PgogIDxkaXYgY2xhc3M9ImdyaWRfMTAiPgogICAge3h0X3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWFwX2VuYWJsZWQgc2VsZWN0ZWQ9JHByZWZzLT5lbmFibGVkfQogIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIj4KICA8ZGl2IGNsYXNzPSJncmlkXzIgdGV4dC1yaWdodCI+eyRtb2QtPkxhbmcoJ2F1dG9wcm9jZXNzX2lnbm9yZV9leHRlbnNpb25zJyl9OjwvZGl2PgogIDxkaXYgY2xhc3M9ImdyaWRfMTAiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9YXBfaWdub3JlX2V4dGVuc2lvbnMiIHZhbHVlPSJ7JHByZWZzLT5pZ25vcmVfZXh0ZW5zaW9uc30iLz4KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgPGRpdiBjbGFzcz0iZ3JpZF8yIHRleHQtcmlnaHQiPnskbW9kLT5MYW5nKCdhdXRvcHJvY2Vzc19pZ25vcmVfZGlycycpfTo8L2Rpdj4KICA8ZGl2IGNsYXNzPSJncmlkXzEwIj4KICAgIDx0ZXh0YXJlYSBuYW1lPSJ7JGFjdGlvbmlkfWFwX2lnbm9yZV9kaXJzIiByb3dzPSI1IiBjb2xzPSI1MCIvPnskcHJlZnMtPmlnbm9yZV9kaXJzfTwvdGV4dGFyZWE+CiAgICA8YnIvPnskbW9kLT5MYW5nKCdoZWxwX2FwX2lnbm9yZV9kaXJzJyl9CiAgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwiPgogIDxkaXYgY2xhc3M9ImdyaWRfMiB0ZXh0LXJpZ2h0Ij57JG1vZC0+TGFuZygnYXV0b3Byb2Nlc3NfaW5jbHVkZV9kaXJzJyl9OjwvZGl2PgogIDxkaXYgY2xhc3M9ImdyaWRfMTAiPgogICAgPHRleHRhcmVhIG5hbWU9InskYWN0aW9uaWR9YXBfaW5jbHVkZV9kaXJzIiByb3dzPSI1IiBjb2xzPSI1MCIvPnskcHJlZnMtPmluY2x1ZGVfZGlyc308L3RleHRhcmVhPgogICAgPGJyLz57JG1vZC0+TGFuZygnaGVscF9hcF9pbmNsdWRlX2RpcnMnKX0KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgPGRpdiBjbGFzcz0iZ3JpZF8yIHRleHQtcmlnaHQiPnskbW9kLT5MYW5nKCdhdXRvcHJvY2Vzc19tYXhfc2l6ZScpfTo8L2Rpdj4KICA8ZGl2IGNsYXNzPSJncmlkXzEwIj4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWFwX21heF9zaXplIiBzaXplPSI1IiBtYXhsZW5ndGg9IjUiIHZhbHVlPSJ7JHByZWZzLT5tYXhfc2l6ZX0iLz4KICAgIDxici8+eyRtb2QtPkxhbmcoJ2hlbHBfYXBfbWF4X3NpemUnKX0KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgPGRpdiBjbGFzcz0iZ3JpZF8yIHRleHQtcmlnaHQiPnskbW9kLT5MYW5nKCdhdXRvcHJvY2Vzc19hdXRvcm90YXRlJyl9OjwvZGl2PgogIDxkaXYgY2xhc3M9ImdyaWRfMTAiPgogICAge3h0X3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWFwX2F1dG9yb3RhdGUgc2VsZWN0ZWQ9JHByZWZzLT5hdXRvcm90YXRlfQogICAgPGJyLz57JG1vZC0+TGFuZygnaGVscF9hcF9hdXRvcm90YXRlJyl9CiAgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwiPgogIDxkaXYgY2xhc3M9ImdyaWRfMiB0ZXh0LXJpZ2h0Ij57JG1vZC0+TGFuZygnYXV0b3Byb2Nlc3Nfd2F0ZXJtYXJrJyl9OjwvZGl2PgogIDxkaXYgY2xhc3M9ImdyaWRfMTAiPgogICAge3h0X3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWFwX3dhdGVybWFyayBzZWxlY3RlZD0kcHJlZnMtPndhdGVybWFya30KICA8L2Rpdj4KPC9kaXY+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+ICRtb2QtPkxhbmcoJ2Nyb3B0b2ZpdCcpIF19CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9YXV0b3NjYWxlX29wIj4KICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kdG1wIHNlbGVjdGVkPSRhdXRvc2NhbGVfb3B9CiAgICA8L3NlbGVjdD4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19hdXRvc2NhbGVfb3AnKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9jcm9wdG9maXRfZGVmYXVsdF9sb2MnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWNyb3B0b2ZpdF9kZWZhdWx0X2xvYyI+CiAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGNyb3B0b2ZpdF9sb2NzIHNlbGVjdGVkPSRjcm9wdG9maXRfZGVmYXVsdF9sb2N9CiAgICA8L3NlbGVjdD4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19jcm9wdG9maXRfZGVmYXVsdF9sb2MnKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9wcm9ncmVzc2l2ZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7eHRfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9J3Byb2dyZXNzaXZlJyBzZWxlY3RlZD0kcHJvZ3Jlc3NpdmV9CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fcHJvZ3Jlc3NpdmUnKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9mb3JjZV9leHRlbnNpb24nKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge3h0X3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPSdmb3JjZV9leHRlbnNpb24nIHNlbGVjdGVkPSRmb3JjZV9leHRlbnNpb259CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fZm9yY2VfZXh0ZW5zaW9uJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdtYXhfY2FjaGVfYWdlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhY2hlX2FnZSIgdmFsdWU9InskY2FjaGVfYWdlfSIgc2l6ZT0iMyIgbWF4bGVuZ3RoPSIzIi8+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNsZWFyX25vdyIgdmFsdWU9InskbW9kLT5MYW5nKCdjbGVhcl9ub3cnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2xlYXJfYWxsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NsZWFyX2FsbCcpfSIgb25jbGljaz0icmV0dXJuIGNvbmZpcm0oJ3skbW9kLT5MYW5nKCdhc2tfY2xlYXJfaW1hZ2VfY2FjaGUnKX0nKTsiLz4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19jYWNoZV9hZ2UnKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2NhY2hlX3BhdGgnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y2FjaGVfcGF0aCIgdmFsdWU9InskY2FjaGVfcGF0aH0iIHNpemU9IjQwIiBtYXhsZW5ndGg9IjI1NSIvPgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2NhY2hlX3BhdGgnKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2ltYWdlX3VybF9wcmVmaXgnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9aW1hZ2VfdXJsX3ByZWZpeCIgdmFsdWU9InskaW1hZ2VfdXJsX3ByZWZpeH0iIHNpemU9IjQwIiBtYXhsZW5ndGg9IjI1NSIvPgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2ltYWdlX3VybF9wcmVmaXgnKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2ltYWdlX3VybF9oYXNjYWNoZWRpcicpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7eHRfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9J2ltYWdlX3VybF9oYXNjYWNoZWRpcicgc2VsZWN0ZWQ9JGltYWdlX3VybF9oYXNjYWNoZWRpcn0KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19pbWFnZV91cmxfaGFzY2FjaGVkaXInKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3N1cHByZXNzX2Vycm9ycycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7eHRfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9J3NpbGVudCcgc2VsZWN0ZWQ9JHNpbGVudH0KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19zdXBwcmVzc19lcnJvcnMnKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2NoZWNrX21lbW9yeScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7eHRfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9J2NoZWNrbWVtb3J5JyBzZWxlY3RlZD0kY2hlY2ttZW1vcnl9CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fY2hlY2tfbWVtb3J5Jyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_responsive_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnZW5hYmxlX3Jlc3BvbnNpdmUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfXJlc3BvbnNpdmUiPgogICAgICB7eHRfeWVzbm9fb3B0aW9ucyBzZWxlY3RlZD0kcmVzcG9uc2l2ZX0KICAgIDwvc2VsZWN0PgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX3Jlc3BvbnNpdmUnKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2Fzc3VtZV9yZXNwb25zaXZlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1hc3N1bWVfcmVzcG9uc2l2ZSI+CiAgICAgIHt4dF95ZXNub19vcHRpb25zIHNlbGVjdGVkPSRhc3N1bWVfcmVzcG9uc2l2ZX0KICAgIDwvc2VsZWN0PgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2Fzc3VtZV9yZXNwb25zaXZlJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdyZXNwb25zaXZlX2JyZWFrcG9pbnRzJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXJlc3BvbnNpdmVfYnJlYWtwb2ludHMiIHZhbHVlPSJ7JHJlc3BvbnNpdmVfYnJlYWtwb2ludHN9IiBzaXplPSI1MCIgbWF4bGVuZ3RoPSIyNTUiLz4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19yZXNwb25zaXZlX2JyZWFrcG9pbnRzJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/changelog.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPg0KICA8bGk+VmVyc2lvbiAxLjAgLSBJbml0aWFsIFJlbGVhc2U8L2xpPg0KPC91bD4=]]></data>
	</file>
	<file>
	  <filename>/templates/help.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCBzcmM9InskbW9kLT5HZXRNb2R1bGVVUkxQYXRoKCl9L2pzL2pzLmNvb2tpZS5qcyI+PC9zY3JpcHQ+DQo8c2NyaXB0Pg0KalF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpew0KICB2YXIgYWN0aXZlX3RhYiA9IENvb2tpZXMuZ2V0KCdzaV9hY3RpdmUnKTsNCg0KICBpZih0eXBlb2YgYWN0aXZlX3RhYiA9PT0gInVuZGVmaW5lZCIpDQogIHsNCiAgICBfc2V0X2FjdGl2ZV90YWIoJ2dlbmVyYWwnKTsNCiAgfQ0KICBlbHNlDQogIHsNCiAgICBfc2V0X2FjdGl2ZV90YWIoYWN0aXZlX3RhYik7DQogIH0NCg0KICAkKCcjcGFnZV90YWJzID4gZGl2JykNCiAgICAuZWFjaChmdW5jdGlvbigpDQogICAgew0KICAgICAgJCh0aGlzKS5jbGljayhmdW5jdGlvbigpDQogICAgICB7DQogICAgICAgIENvb2tpZXMuc2V0KCdzaV9hY3RpdmUnLCB0aGlzLmlkKTsNCiAgICAgIH0pOw0KICAgIH0pOw0KfSk7DQoNCg0KZnVuY3Rpb24gX3NldF9hY3RpdmVfdGFiKHRhYl9uYW1lKQ0Kew0KICAkKCcjcGFnZV90YWJzID4gZGl2JykNCiAgICAuZWFjaChmdW5jdGlvbigpDQogICAgew0KICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7DQogICAgfSk7DQoNCiAgJCgnI3BhZ2VfY29udGVudCA+IGRpdicpDQogICAgLmVhY2goZnVuY3Rpb24oKQ0KICAgIHsNCiAgICAgICQodGhpcykuaGlkZSgpOw0KICAgIH0pOw0KDQogICQoJyMnICsgdGFiX25hbWUpLmFkZENsYXNzKCdhY3RpdmUnKTsNCiAgJCgnIycgKyB0YWJfbmFtZSArICdfYycpLnNob3coKTsNCiAgQ29va2llcy5zZXQoJ3NpX2FjdGl2ZScsIHRhYl9uYW1lKTsNCg0KfQ0KPC9zY3JpcHQ+DQoNCjxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4NCg0KPGRpdiBpZD0icGFnZV90YWJzIj4NCg0KICA8ZGl2ICBpZD0iZ2VuZXJhbCI+DQogICAgR2VuZXJhbA0KICA8L2Rpdj4NCiAgPGRpdiBpZD0idXNpbmciPg0KICAgIEhvdyBEbyBJIFVzZSBJdA0KICA8L2Rpdj4NCiAgPGRpdiBpZD0icGFyYW1ldGVycyI+DQogICAgUGFyYW1ldGVycw0KICA8L2Rpdj4NCiAgPGRpdiBpZD0ic21hcnR5Ij4NCiAgICBTbWFydHkgUGx1Z2lucw0KICA8L2Rpdj4NCiAgPGRpdiBpZD0iYWR2Ij4NCiAgICBBZHZhbmNlZA0KICA8L2Rpdj4NCiAgPGRpdiBpZD0iYWJvdXQiPg0KICAgIEFib3V0DQogIDwvZGl2Pg0KDQo8L2Rpdj4NCg0KPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4NCjxkaXYgaWQ9InBhZ2VfY29udGVudCI+DQoNCiAgPGRpdiBpZD0iZ2VuZXJhbF9jIj4NCiAgICB7aW5jbHVkZSBmaWxlPSdtb2R1bGVfZmlsZV90cGw6U21hcnRJbWFnZTtoZWxwX2dlbmVyYWxfdGFiLnRwbCd9DQogIDwvZGl2Pg0KICA8ZGl2IGlkPSJ1c2luZ19jIj4NCiAgICB7aW5jbHVkZSBmaWxlPSdtb2R1bGVfZmlsZV90cGw6U21hcnRJbWFnZTtoZWxwX3VzaW5nX3RhYi50cGwnfQ0KICA8L2Rpdj4NCiAgPGRpdiBpZD0icGFyYW1ldGVyc19jIj4NCiAgICB7aW5jbHVkZSBmaWxlPSdtb2R1bGVfZmlsZV90cGw6U21hcnRJbWFnZTtoZWxwX3BhcmFtZXRlcnNfdGFiLnRwbCd9DQogIDwvZGl2Pg0KICA8ZGl2IGlkPSJzbWFydHlfYyI+DQogICAge2luY2x1ZGUgZmlsZT0nbW9kdWxlX2ZpbGVfdHBsOlNtYXJ0SW1hZ2U7aGVscF9zbWFydHlfdGFiLnRwbCd9DQogIDwvZGl2Pg0KICA8ZGl2IGlkPSJhZHZfYyI+DQogICAge2luY2x1ZGUgZmlsZT0nbW9kdWxlX2ZpbGVfdHBsOlNtYXJ0SW1hZ2U7aGVscF9hZHZhbmNlZF90YWIudHBsJ30NCiAgPC9kaXY+DQogIDxkaXYgaWQ9ImFib3V0X2MiPg0KICAgIHtpbmNsdWRlIGZpbGU9J21vZHVsZV9maWxlX3RwbDpTbWFydEltYWdlO2hlbHBfYWJvdXRfdGFiLnRwbCd9DQogIDwvZGl2Pg0KDQogIDxkaXYgY2xhc3M9ImNsZWFyYiI+PC9kaXY+DQo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/templates/help_about_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPkFib3V0IHRoaXMgbW9kdWxlPC9oMz4NCg0KICA8cD5UaGlzIG1vZHVsZSBpcyBhIGZvcmsgb2YgPHN0cm9uZz5DYWxndXkncyBTbWFydCBJbWFnZSBUb29sa2l0IChDR1NtYXJ0SW1hZ2UpPC9zdHJvbmc+IGRldmVsb3BlZCBieSA8c3Ryb25nPlJvYmVydCBDYW1wYmVsbCAmbHQ7Y2FsZ3V5MTAwMCZndDs8L3N0cm9uZz4uPGJyIC8+DQogICAgICBUaGlzIGlzIGEgMXN0IGdlbmVyYXRpb24gZm9yayBvZiB0aGUgbW9kdWxlLiBDb25zaWRlciB0aGlzIGFzIGFub3RoZXIgZmxhdm91ciBvZiB0aGUgb3JpZ2luYWwgbW9kdWxlLjxiciAvPg0KDQogIElmIHlvdSBmaW5kIGFueSBidWdzIHBsZWFzZSBmZWVsIGZyZWUgdG8gc3VibWl0IGEgYnVnIHJlcG9ydCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL2J1Zy9saXN0LzE0NjQiIHRhcmdldD0iX2JsYW5rIj5oZXJlPC9hPiBvciBmb3IgYW55IGdvb2QgaWRlYXMgY29uc2lkZXIgc3VibWl0aW5nIGEgZmVhdHVyZSByZXF1ZXN0IDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvZmVhdHVyZV9yZXF1ZXN0L2xpc3QvMTQ2NCIgdGFyZ2V0PSJfYmxhbmsiPmhlcmU8L2E+LjwvcD4NCiAgPHA+UGxlYXNlIGtlZXAgaW4gbWluZCB0aGF0IGRldmVsb3BlcnMgZG8gaGF2ZSB0aGVpciBkYWlseSBqb2JzIHdoaWNoIG1lYW5zIHRoYXQgZmVhdHVyZSByZXF1ZXN0cyBhcmUgY29uc2lkZXJlZCBhbmQgZG9uZSBhcyB0aW1lIGFsbG93cy4gSWYgeW91IG5lZWQgYSBmZWF0dXJlIHJlYWxseSBiYWRseSBjb25zaWRlciBjb250YWN0aW5nIG9uZSBvZiB0aGUgZGV2ZWxvcGVycyBmb3IgYSBzcG9uc29yZWQgZGV2ZWxvcG1lbnQuDQogIDwvcD4NCg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhlIG1vZHVsZSBhdXRob3IgLyBtYWludGFpbmVycyBvciBwcm9qZWN0IG1hbmFnZXJzIGFyZSBpbiBubyB3YXkgb2JsaWdhdGVkIHRvIHByb3ZpZGUgc3VwcG9ydCBmb3IgdGhpcyBjb2RlIGluIGFueSBmYXNoaW9uLiAgSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+QSBidWcgdHJhY2tpbmcgYW5kIGZlYXR1cmUgcmVxdWVzdCBzeXN0ZW0gaGFzIGJlZW4gY3JlYXRlZCBmb3IgdGhpcyBtb2R1bGUgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9zbWFydGltYWdlIj5oZXJlPC9hPi4gUGxlYXNlIGJlIHZlcmJvc2UgYW5kIGRlc2NyaXB0aXZlIHdoZW4gc3VibWl0dGluZyBidWcgcmVwb3J0cyBhbmQgZmVhdHVyZSByZXF1ZXN0cywgYW5kIGZvciBidWcgcmVwb3J0cyBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBwcm92aWRlZCBzdWZmaWNpZW50IGluZm9ybWF0aW9uIHRvIHJlbGlhYmx5IHJlcHJvZHVjZSB0aGUgaXNzdWUuPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uICBXaGVuIGRlc2NyaWJpbmcgYW4gaXNzdWUgcGxlYXNlIG1ha2UgYW4gZWZmb3J0IHRvIHByb3ZpZGUgYWxsIHJlbGV2YW50IGluZm9ybWF0aW9uLCBhIHRob3JvdWdoIGRlc2NyaXB0aW9uIG9mIHlvdXIgaXNzdWUsIGFuZCBzdGVwcyB0byByZXByb2R1Y2UgaXQgb3IgeW91ciBkaXNjdXNzaW9uIG1heSBiZSBpZ25vcmVkLjwvbGk+DQo8L3VsPg0KDQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCntpZiAkc21hcnR5Lm5vd3xkYXRlX2Zvcm1hdDoiJVkiID09ICcyMDIwJ317JGNyID0gJzIwMjAnfXtlbHNlfXskY3IgPSAiMjAyMCAtIHskc21hcnR5Lm5vd3xkYXRlX2Zvcm1hdDonJVknfSJ9ey9pZn0NCjxwPkNvcHlyaWdodCAmY29weTsgeyRjcn0sIENNUyBNYWRlIFNpbXBsZSBGb3VuZGF0aW9uIDxhIGhyZWY9Im1haWx0bzppbmZvQGNtc21hZGVzaW1wbGUub3JnIj4mbHQ7aW5mb0BjbXNtYWRlc2ltcGxlLm9yZyZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgtMjAxOSwgUm9iZXJ0IENhbXBiZWxsICZsdDtjYWxndXkxMDAwJmd0Oy4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPGhyPg0KPHA+PHN0cm9uZz5TbWFydEltYWdlPC9zdHJvbmc+IGlzIGZyZWUgc29mdHdhcmU7PGJyIC8+IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSA8c3Ryb25nPkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlPC9zdHJvbmc+IGFzIHB1Ymxpc2hlZCBieSB0aGUgPHN0cm9uZz5GcmVlIFNvZnR3YXJlIEZvdW5kYXRpb248L3N0cm9uZz47PGJyIC8+IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPg0KPHA+PHN0cm9uZz5TbWFydEltYWdlPC9zdHJvbmc+IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCA8c3Ryb25nPldJVEhPVVQgQU5ZIFdBUlJBTlRZPC9zdHJvbmc+OzxiciAvPiB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgPHN0cm9uZz5NRVJDSEFOVEFCSUxJVFk8L3N0cm9uZz4gb3IgPHN0cm9uZz5GSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRTwvc3Ryb25nPi48L3A+DQo8cD5TZWUgdGhlR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy48L3A+DQogPHA+WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgPHN0cm9uZz5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZTwvc3Ryb25nPiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTs8YnIgLz4gaWYgbm90LCB3cml0ZSB0byB0aGUgPHN0cm9uZz5GcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBPC9zdHJvbmc+IG9yIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPnJlYWQgaXQgb25saW5lPC9hPi48L3A+DQo8cD48c3Ryb25nPllvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgPHN0cm9uZz5Gcm9udEVuZFVzZXJzPC9zdHJvbmc+Ljwvc3Ryb25nPjwvcD4NCjxocj4NCjxoND5DdXJyZW50IE1haW50YWluZXJzPC9oND4NCjx1bD4NCiAgPGxpIGNsYXNzPSJwX2JvdHRvbV8xNSI+PHN0cm9uZz5GZXJuYW5kbyBNb3JnYWRvIChKbyBNb3JnKTwvc3Ryb25nPjwvbGk+DQo8L3VsPg0KDQo8aDQ+UGFzdCBNYWludGFpbmVyczwvaDQ+DQo8dWw+DQogIDxsaT48c3Ryb25nPlJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMCk8L3N0cm9uZz4gPGJyIC8+d3d3LmNhbGd1eTEwMDAuY29tPC9saT4NCjwvdWw+DQoNCjxoND5Lbm93biBDb250cmlidXRvcnM8L2g0Pg0KPHVsPg0KICA8bGk+PHN0cm9uZz5Sb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDApPC9zdHJvbmc+PGJyIC8+d3d3LmNhbGd1eTEwMDAuY29tPC9saT4NCjwvdWw+DQoNCnsqDQpUT0RPOiBuZWVkIGFuIHVwZGF0ZWQgbGlzdCBvZiBzcG9uc29ycyA6fCAoSk0pDQo8aDQ+S25vd24gU3BvbnNvcnM8L2g0Pg0KPHVsPg0KICA8bGk+PHN0cm9uZz5NYXR0IEhvcm5zYnkgKERJR0kzKTwvc3Ryb25nPjxiciAvPnd3dy5tYXR0aG9ybnNieS5jYTwvbGk+DQogIDxsaT48c3Ryb25nPkdyZWdvcnkgUHJvc3NlciAoZ2VlcGVycyk8L3N0cm9uZz48YnIgLz53d3cuc3RpY2t5d2lja2V0ZGVzaWducy5jb208L2xpPg0KPC91bD4NCip9]]></data>
	</file>
	<file>
	  <filename>/templates/help_advanced_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPkFkdmFuY2VkPC9oMz4NCjxoND5JbWFnZSBFbWJlZGRpbmc8L2g0Pg0KPHA+SW1hZ2UgZW1iZWRkaW5nIGVuY29kZXMgdGhlIGltYWdlIGludG8gYSBkYXRhIDxzdHJvbmc+VVJJPC9zdHJvbmc+IHdoaWNoIGlzIGVtYmVkZGVkIGRpcmVjdGx5IGluIHRoZSBwYWdlIChvciBzdHlsZXNoZWV0KSBjb250ZW50LiAgVGhpcyByZWR1Y2VzIHJlcXVlc3RzIHRoYXQgdGhlIGJyb3dzZXIgbXVzdCBtYWtlIHRvIHJlY2VpdmUgaW1hZ2VzIGZyb20geW91ciBzaXRlLiAgSG93ZXZlciBpdCBkb2VzIGluY3JlYXNlIHRoZSBzaXplIG9mIHRoZSA8c3Ryb25nPkhUTUw8L3N0cm9uZz4gcGFnZS4gIE9uIGltYWdlIGhlYXZ5IHBhZ2VzIHlvdSBzaG91bGQgbWl4IHRoZSB1c2Ugb2YgZW1iZWRkZWQgaW1hZ2VzLjwvcD4NCg0KPGg0PkEgU2ltcGxlIEdhbGxlcnk8L2g0Pg0KPHA+VGhlIGNvZGUgYmVsb3cgdXNlcyB0aGUgPHN0cm9uZz4mIzEyMztTbWFydEltYWdlfTwvc3Ryb25nPiBtb2R1bGUsIGZhbmN5Ym94LCBhbmQgYSBiaXQgb2Ygc21hcnR5IG1hZ2ljIHRvIGdlbmVyYXRlIGEgc2ltcGxlIGxpZ2h0Ym94IHN0eWxlIGFsYnVtIGZyb20gYSBzdWJkaXJlY3Rvcnkgb24geW91ciB3ZWJzaXRlLCB3aGlsZSBwcm9jZXNzaW5nIHRoZSBpbWFnZXMgZm9yIHdlYiBzdGFuZGFyZHMsIGFuZCBjcmVhdGluZyB0aHVtYm5haWxzLjwvcD4NCjxwcmUgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNkZGQ7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyI+DQogIDxjb2RlPg0KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDE6PC9zcGFuPiAmbHQ7c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCImZ3Q7JiMxMjM7bGl0ZXJhbH0NCiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiAyOjwvc3Bhbj4galF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpJiMxMjM7DQogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4gMzo8L3NwYW4+ICBqUXVlcnkoJ2EuZmFuY3lib3gnKS5mYW5jeWJveCgpOw0KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+IDQ6PC9zcGFuPiB9KTsNCiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiA1Ojwvc3Bhbj4gJiMxMjM7L2xpdGVyYWx9Jmx0Oy9zY3JpcHQmZ3Q7DQogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4gNjo8L3NwYW4+ICYjMTIzO2Fzc2lnbiB2YXI9J2ZpbGVzJyB2YWx1ZT0ndXBsb2Fkcy9hbGJ1bS8qLmpwZyd8Z2xvYn0NCiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiA3Ojwvc3Bhbj4gJiMxMjM7aWYgY291bnQoJGZpbGVzKX0NCiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPiA4Ojwvc3Bhbj4gJmx0O2RpdiBzdHlsZT0id2lkdGg6IDEwMCU7IGhlaWdodDogMTUwcHg7IG92ZXJmbG93OiBhdXRvOyImZ3Q7DQogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4gOTo8L3NwYW4+ICYjMTIzO2ZvcmVhY2ggZnJvbT0kZmlsZXMgaXRlbT0nZmlsZSd9DQogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4xMDo8L3NwYW4+ICAmbHQ7YSByZWw9J3NpbXBsZV9hbGJ1bScgY2xhc3M9ImZhbmN5Ym94IiBocmVmPSI8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij4mIzEyMztTbWFydEltYWdlIHNyYz0kZmlsZSBmaWx0ZXJfcm90YXRlPTkwIGZpbHRlcl93YXRlcm1hcms9MSBmaWx0ZXJfcmVzaXplPSdoLDUwMCcgbm90YWc9MSBub2VtYmVkPTF9PC9zcGFuPiImZ3Q7DQogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4xMTo8L3NwYW4+ICA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij4mIzEyMztTbWFydEltYWdlIHNyYz0kZmlsZSBmaWx0ZXJfcm90YXRlPTkwIGZpbHRlcl9ncmF5c2NhbGU9MSBmaWx0ZXJfd2F0ZXJtYXJrPTEgZmlsdGVyX3Jlc2l6ZT0naCwxNTAnfTwvc3Bhbj4NCiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPjEyOjwvc3Bhbj4gICZsdDsvYSZndDsNCiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPjEzOjwvc3Bhbj4gJiMxMjM7L2ZvcmVhY2h9DQogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4xNDo8L3NwYW4+ICZsdDsvZGl2Jmd0Ow0KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+MTU6PC9zcGFuPiAmIzEyMzsvaWZ9DQogIDwvY29kZT4NCjwvcHJlPg0KPGJyLz4NCjxwPkxpbmVzIDEgdGhyb3VnaCA1IHV0aWxpemUgalF1ZXJ5IHRvIGNhbGwgZmFuY3lib3ggb24gYW55IGxpbmtzIHRoYXQgaGF2ZSB0aGUgJnF1b3Q7ZmFuY3lib3gmcXVvdDsgY2xhc3MuICBUaGUgZmFuY3lib3ggalF1ZXJ5IHBsdWdpbiBpcyBpbmNsdWRlZCB3aXRoIHRoZSBKUXVlcnlUb29scyBtb2R1bGUuPC9wPg0KPHA+TGluZSA2IHVzZXMgYSBidWlsdCBpbiBwaHAgZnVuY3Rpb24gY2FsbGVkIGdsb2IsIGFuZCBzb21lIHNtYXJ0eSBtYWdpYyB0byBmaW5kIGFsbCBvZiB0aGUgSlBHIGZpbGVzIGluIHRoZSB1cGxvYWRzL2FsYnVtIGRpcmVjdG9yeSBiZWxvdyBvdXIgaW5zdGFsbGF0aW9uIHJvb3QuPC9wPg0KPHA+TGluZSA3IGlzIGEgdGVzdCB0byBzZWUgaWYgYW55IGZpbGVzIHdlcmUgYWN0dWFsbHkgZm91bmQgaW4gdGhlIGFzc2lnbiBsaW5lIHN0YXRlZCBhYm92ZS4gIFRoaXMgaWYgc3RhdGVtZW50IGlzIGNsb3NlZCBvbiBsaW5lIDE1LjwvcD4NCjxwPkxpbmUgOCBvcGVucyB1cCBhIGRpdiB0byBjb250YWluIG91ciBhbGJ1bS4gIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBleGFtcGxlIHRoZSBzdHlsZXMgd2VyZSBpbmNsdWRlZCBpbmxpbmUsIGhvd2V2ZXIgYSBjbGFzcyB0aGF0IHdhcyBkZWZpbmVkIGluIHRoZSBzdHlsZXNoZWV0IHNob3VsZCBiZSB1c2VkIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzLiAgVGhlIGNsb3NpbmcgdGFnIGZvciB0aGlzIGRpdiBpcyBvbiBsaW5lIDE0LCBqdXN0IGJlZm9yZSB0aGUgPGNvZGU+JiMxMjM7L2lmfTwvY29kZT4uPC9wPg0KPHA+TGluZSA5IGJlZ2lucyBhIGxvb3AgdGhyb3VnaCBhbGwgb2YgdGhlIGZpbGVzIHRoYXQgd2UgZm91bmQgaW4gdGhlIGRpcmVjdG9yeS4gIFRoaXMgbG9vcCBpcyBjbG9zZWQgb24gbGluZSAxMy48L3A+DQo8YnIvPg0KPHA+TGluZXMgMTAgYW5kIDExIGFyZSB0aGUgcmVhbCBtYWdpYy4gIEhlcmUgd2UgY3JlYXRlIGEgbGluayB3aXRoIGNsYXNzICZxdW90O2ZhbmN5Ym94JnF1b3Q7IGFuZCBhZGRzIHRoZSA8Y29kZT5yZWw8L2NvZGU+IGF0dHJpYnV0ZSBzbyB0aGF0IGZhbmN5Ym94IGtub3dzIHRoYXQgYWxsIG9mIHRoZXNlIGltYWdlcyBzaG91bGQgYmUgZ3JvdXBlZCB0b2dldGhlciBhcyBvbmUgYWxidW0gYW5kIGFsbG93IGNsaWNraW5nIGJldHdlZW4gdGhlIGltYWdlcy4gIFRoZW4gY29tZXMgdGhlIHBhcnQgd2hlcmUgd2UgZGVmaW5lIG91ciBpbWFnZXMuDQo8cD5XZSBzdXBwbHkgdGhlICRmaWxlIHZhcmlhYmxlIHRvIHRoZSBzcmMgYXJndW1lbnQgb2YgdGhlIDxjb2RlPiYjMTIzO1NtYXJ0SW1hZ2V9PC9jb2RlPiB0YWcgc28gdGhhdCBpdCB3aWxsIGdldCB0aGUgbmFtZSBvZiBlYWNoIG1hdGNoZWQganBlZyBhcyB0aGUgbG9vcCBpcyBleGVjdXRlZC48L3A+DQo8cD5UaGUgaW1hZ2VzIEkgd2FzIHRlc3Rpbmcgd2l0aCB3ZXJlIHVwbG9hZGVkIGZyb20gbXkgaXBvZCwgYW5kIGFsbCBzZWVtZWQgdG8gYmUgcm90YXRlZCA5MCBkZWdyZWVzIGNvdW50ZXIgY2xvY2tlaXMuICBTbyB0aGUgZmlyc3QgZmlsdGVyIEkgYWRkZWQgd2FzIHRvIHJvdGF0ZSB0aGUgaW1hZ2UgOTAgZGVncmVlcyBjbG9ja3dpc2UgdmlhIHRoZSA8Y29kZT5maWx0ZXJfcm90YXRlPTkwPC9jb2RlPiBhcmd1bWVudC4gVGhlIGltYWdlcyB0aGVuIG5lZWRlZCB0byBoYXZlIHRoZSB3YXRlcm1hcmsgb24gdGhlbSA8ZW0+KHRoaXMgaXMganVzdCBmb3IgZXhhbXBsZSBwdXJwb3NlcywgSSBkb250IHRoaW5rIGFueWJvZHkgd291bGQgcmVhbGx5IHN0ZWFsIHRoZSBibHVycnkgcGljdHVyZXMgZnJvbSBteSBpcG9kIGZvciBjb21tZXJjaWFsIHB1cnBvc2VzKTwvZW0+LCBzbyBJIGFkZGVkIHRoZSA8Y29kZT5maWx0ZXJfd2F0ZXJtYXJrPTE8L2NvZGU+IHBhcmFtZXRlci4gIEFuZCBmaW5hbGx5LCBiZWNhdXNlIGV2ZW4gdGhlIGlwb2QgdG91Y2ggY2FuIHRha2UgcGljdHVyZXMgdGhhdCBhcmUgdG9vIGJpZyB0byBkaXNwbGF5IG9uIHRoZSBzY3JlZW4gSSB3YW50ZWQgdG8gcmVzaXplIHRoZW0gdG8gYSBtYXhpbXVtIGhlaWdodCBvZiA1MDAgcGl4ZWxzLiAgVGhpcyB3YXMgYWNjb21wbGlzaGVkIHZpYSB0aGUgPGNvZGU+ZmlsdGVyX3Jlc2l6ZT1oLDUwMDwvY29kZT4gYXJndW1lbnQuICBXZSBhZGQgdGhlIDxjb2RlPm5vZW1iZWQ9MTwvY29kZT4gYXJndW1lbnQgYmVjYXVzZSBmYW5jeWJveCBkb2VzIG5vdCB1bmRlcnN0YW5kIGhvdyB0byBkaXNwbGF5IGVtYmVkZGVkIGltYWdlcyBpbiBpdHMgcG9wdXAgd2luZG93LiAgVGhpcyBkZWZpbmVkIHRoZSBpbWFnZSB0aGF0IHdlIHdlcmUgZ29pbmcgdG8gbGluayB0by48L3A+DQo8cD5OZXh0IHdlIG5lZWRlZCB0byBkZWZpbmUgdGhlIHRodW1ibmFpbCBpbWFnZSB0aGF0IHdlIGFyZSBnb2luZyB0byB1c2UgaW4gdGhlIGdhbGxlcnkuICBUaGlzIGNhbGwgdG8gPGNvZGU+JiMxMjM7U21hcnRJbWFnZX08L2NvZGU+IGlzIGFsbW9zdCBpZGVudGljYWwgdG8gdGhlIGZpcnN0IGNhbGwsIGV4Y2VwdCB0aGF0IHdlIHVzZSBhIGRpZmZlcmVudCBoZWlnaHQgdmFsdWUgKDE1MCBwaXhlbHMpIGZvciB0aGUgdGh1bWJuYWlsLCBhbmQgZm9yIGtpY2tzIEkgY29udmVydGVkIHRoZSB0aHVtYm5haWwgdG8gZ3JheXNjYWxlIDxzdHJvbmc+YmVmb3JlPC9zdHJvbmc+IGFwcGx5aW5nIHRoZSB3YXRlcm1hcmsuICBJIGFsc28gcmVtb3ZlZCB0aGUgbm9lbWJlZD0xIGFyZ3VtZW50IHNvIHRoYXQgdGhlIHN5c3RlbSBjb3VsZCBlbWJlZCB0aGUgaW1hZ2UgaW4gdGhlIEhUTUwgb3V0cHV0IGlmIHRoZSBicm93c2VyIHN1cHBvcnRlZCBpdC48L3A+DQoNCjxoND5SZXNwb25zaXZlIEltYWdlczwvaDQ+DQo8cD5TbWFydEltYWdlIGlzIGNhcGFibGUgb2YgYXV0b21hdGljYWxseSBzY2FsaW5nIGltYWdlcyBkb3duIHRvIGEgc2l6ZSB0aGF0IGlzIHN1aXRhYmxlIGZvciBtb2JpbGUgZGV2aWNlcy4gIFRoaXMgYm9vc3RzIHBlcmZvcm1hbmNlIGJ5IG1pbmltaXppbmcgdGhlIGltYWdlIHNpemUgZm9yIG1vYmlsZSBkZXZpY2VzLCBhbmQgdGhlcmVmb3JlIGltcHJvdmVzIHBlcmZvcm1hbmNlIGFuZCB0aGUgZ2VuZXJhbCB1c2VyIGV4cGVyaWVuY2UuICBUaGlzIGFjdGlvbiBtdXN0IGJlIGVuYWJsZWQgaW4gdHdvIHdheXM6PC9wPg0KPG9sPg0KICA8bGk+DQogICAgQWRkIDxjb2RlPiYjMTIzO1NtYXJ0SW1hZ2UgYWN0aW9uPXJlc3BvbnNpdmV9PC9jb2RlPiBqdXN0IGFmdGVyIHRoZSA8Y29kZT4mbHQ7aGVhZCZndDs8L2NvZGU+IHRhZyBpbiB5b3VyIHBhZ2UgdGVtcGxhdGUuDQogICAgPHA+VGhpcyB3aWxsIG91dHB1dCBqYXZhc2NyaXB0IHRoYXQgd2lsbCBkZXRlY3QgdGhlIGRldmljZXMgc2NyZWVuIHJlc29sdXRpb24gYW5kIHBpeGVsIHJhdGlvLCBhbmQgY3JlYXRlIGEgY29va2llLCBhbmQgdGhlbiByZWRpcmVjdCBhZ2FpbiBiYWNrIHRvIHRoZSBzYW1lIFVSTCBzbyB0aGF0IHRoZSBzZXJ2ZXIgY2FuIGdldCB0aGUgY29va2llIGluZm9ybWF0aW9uLiAgIFRoZSBjb29raWUgaXMgc2V0IHRvIGV4cGlyZSBpbiBvbmUgeWVhci4gICBJZiB0aGUgY29va2llIGRvZXMgbm90IGV4aXN0LCB0aGVuIFNtYXJ0SW1hZ2UgY2Fubm90IHBlcmZvcm0gcmVzcG9uc2l2ZSBpbWFnZSByZXNpemluZy48L3A+DQogIDwvbGk+DQogIDxsaT4NCiAgICBFbnN1cmUgdGhhdCAmcXVvdDtSZXNwb25zaXZlIEltYWdlcyZxdW90OyBpcyBlbmFibGVkIGluIHRoZSBTbWFydEltYWdlIG1vZHVsZSBhZG1pbiBwYW5lbC4NCiAgICA8cD5JZiBkaXNhYmxlZCwgdGhlIHN5c3RlbSB3aWxsIG5vdCBwZXJmb3JtIHJlc3BvbnNpdmUgc2NhbGluZy4gIEV2ZW4gaWYgdGhlIGNvb2tpZSBleGlzdHMgZnJvbSB1c2Ugb2YgPGNvZGU+JiMxMjM7U21hcnRJbWFnZSBhY3Rpb249cmVzcG9uc2l2ZX08L2NvZGU+PC9wPg0KICA8L2xpPg0KPC9vbD4NCjxwPlNtYXJ0SW1hZ2UgYWxsb3dzIHNwZWNpZnlpbmcgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBicmVha3BvaW50cyBpbiB0aGUgYWRtaW4gcGFuZWwuICBJZiBicmVha3BvaW50cyBhcmUgc3BlY2lmaWVkIGFuZCB0aGUgc3lzdGVtIGZvdW5kIGRldmljZSBjYXBhYmlsaXRpZXMgPGVtPihhbmQgcmVzcG9uc2l2ZSBiZWhhdmlvciBpcyBub3QgZGlzYWJsZWQpPC9lbT4gVGhlbiB0aGUgc3lzdGVtIHdpbGwgZmluZCB0aGUgY2xvc2VzdCBtYXRjaGluZyBicmVha3BvaW50IHRvIHRoZSBkZXZpY2Ugd2lkdGggYW5kIGhlaWdodCBhbmQgdXNlIHRoZSBicmVha3BvaW50IHZhbHVlIHRvIGNhbGN1bGF0ZSBhIG5ldyBtYXhpbXVtIHNpemUgZm9yIHRoZSBpbWFnZSB3aGlsc3Qgc3RpbGwgcmV0YWluaW5nIGFzcGVjdCByYXRpby48L3A+DQo8cD5UaGUgZGV0ZWN0aW9uIG9mIGEgbW9iaWxlIGRldmljZSwgYW5kIGVuYWJsaW5nIHJlc3BvbnNpdmUgYmVoYXZpb3Igd2lsbCBvdmVycmlkZSB0aGUgbm9hdXRvc2NhbGUgcGFyYW1ldGVyLiAgVGhlIHJlc3BvbnNpdmUgYmVoYXZpb3IgY2FuIGJlIGRpc2FibGVkIGVpdGhlciBpbiB0aGUgbW9kdWxlcyBhZG1pbiBwYW5lbCwgb3IgdmlhIHRoZSBub3Jlc3BvbnNpdmUgcGFyYW1ldGVyLjwvcD4NCjxwPlNtYXJ0SW1hZ2UgaXMgY2FwYWJsZSBvZiBkZXRlY3RpbmcgdGhlIGRwciA8ZW0+KGRldmljZSBwaXhlbCByYXRpbyk8L2VtPiBvZiBtb2JpbGUgZGV2aWNlcy4gIElmIG5vdCBkaXNhYmxlZCwgYW5kIGEgZHByIGhpZ2hlciB0aGFuIDEgaXMgZGV0ZWN0ZWQgdGhlIGF1dG8tc2NhbGVkIGltYWdlIHNpemUgd2lsbCBiZSBpbmNyZWFzZWQgYnkgdGhlIGRwciBvZiB0aGUgZGV2aWNlLiAgSG93ZXZlciB0aGUgb3V0cHV0IGltZyB0YWcgd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIHdpbGwgbm90LiAgVGhpcyBmb3JjZXMgdGhlIGJyb3dzZXIgd2l0aCBhIGhpZ2hlciBkcHIgdG8gZG93bmxvYWQgYSBsYXJnZXIgaW1hZ2UsIGFuZCBzcXVlZXplIGl0IGludG8gdGhlIHNhbWUgc2l6ZSBib3gsIHRodXMgZ2l2aW5nIGEgaGlnaGVyIHF1YWxpdHkgb3V0cHV0LjwvcD4NCjxoND5BdXRvU2NhbGluZzwvaDQ+DQo8cD5BdXRvIHNjYWxpbmcgaXMgYSBmZWF0dXJlIHRoYXQgd2lsbCBhZGp1c3QgdGhlIG91dHB1dCBpbWFnZSBzaXplIGJhc2VkIG9uIHRoZSBzb3VyY2UgaW1hZ2Ugc2l6ZSwgdGhlIGRldmljZSBjYXBhYmlsaXRpZXMgPGVtPihpZiByZXNwb25zaXZlIGJlaGF2aW9yIGlzIGVuYWJsZWQpPC9lbT4sIGJyZWFrcG9pbnRzIDxlbT4oaWYgZW5hYmxlZCk8L2VtPiwgdGhlLCB0aGUgd2lkdGggYW5kIGhlaWdodCBwYXJhbWV0ZXJzLCBhbmQgdGhlIG1heF93aWR0aCBhbmQgbWF4X2hlaWdodCBwYXJhbWV0ZXJzLiAgVGhlIHN5c3RlbSB3aWxsIGNvbWJpbmUgYWxsIG9mIHRoaXMgaW5mb3JtYXRpb24gYW5kIGFkanVzdCB0aGUgbWF4X3dpZHRoIGFuZCBtYXhfaGVpZ2h0IHZhbHVlcyB0byB0aGUgc21hbGxlc3QgcG9zc2libGUgdmFsdWVzIHdpdGhvdXQgZWZmZWN0aW5nIGltYWdlIGFzcGVjdCByYXRpby48L3A+DQo8cD5JZiByZXNwb25zaXZlIGZ1bmN0aW9uYWxpdHkgaXMgZW5hYmxlZCwgYW5kIGRldmljZSBjYXBhYmlsaXRpZXMgYXJlIGRldGVjdGVkLCAgdGhlbiBhdXRvc2NhbGluZyBpcyBmb3JjZWQgdG8gYmUgYWN0aXZlLjwvcD4NCjxoND5TdHlsZXNoZWV0czo8L2g0Pg0KPHA+VGhpcyBtb2R1bGUgYWxzbyB3b3JrcyB3aXRoaW4gc3R5bGVzaGVldHMsIGlmIHVzaW5nIHRoZSAmIzEyMztjbXNfc3R5bGVzaGVldH0gdGFnIGluIHlvdXIgcGFnZSB0ZW1wbGF0ZS4gIEJlY2F1c2UgdGhlIHNtYXJ0eSBzeW50YXggaXMgc2xpZ2h0bHkgZGlmZmVyZW50IGluc2lkZSB0aGUgJiMxMjM7Y21zX3N0eWxlc2hlZXR9IHRhZyB5b3UgdXRpbGl6ZSB0aGUgbW9kdWxlIHVzaW5nIHRoZSBbWyBhbmQgXV0gZGVsaW1pdGVycy4gIGkuZTogPGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+ZGl2LmhlYWRlciAmIzEyMzsgYmFja2dyb3VuZDogdXJsKFtbU21hcnRJbWFnZSBzcmM9J3VwbG9hZHMvcGljdHVyZS5qcGcnIG5vdGFnPTFdXSk7IH08L2NvZGU+PC9wPg0KPHA+QmVjYXVzZSBzdHlsZXNoZWV0cyBhcmUgZ2VuZXJhdGVkIG9uIG1vZGlmaWNhdGlvbiBhbmQgc3RvcmVkIGluIHRoZSBmaWxlc3lzdGVtIHRoZXJlIGlzIG5vIHdheSB0byBkZXRlcm1pbmUgZHVyaW5nIHRoZSByZXF1ZXN0IHdoaWNoIGJyb3dzZXIgaXMgcmVxdWVzdGluZyB0aGUgc3R5bGVzaGVldCwgdGhlcmVmb3JlIGVtYmVkZGluZyB3aWxsIGJlIGRvbmUgc3RyaWN0bHkgYmFzZWQgdXBvbiB0aGUgcHJlc2VuY2Ugb2YgdGhlIG5vZW1iZWQgcGFyYW1ldGVyLiAgSWYgeW91IGhhdmUgY2hvc2VuIHRvIGVtYmVkIGltYWdlcyBkaXJlY3RseSBpbnRvIHlvdXIgc3R5bGVzaGVldHMsIFlvdSBtYXkgbmVlZCB0byBhZGQgYWRkaXRpb25hbCBzdHlsZXNoZWV0IHN1cHBvcnQgZm9yIHRoZSBicm93c2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IGVtYmVkZGVkIGltYWdlcy4gIGkuZTogIElFNi48L3A+DQoNCjxoND5NdWx0aXBsZSBhcmd1bWVudHM6PC9oND4NCjxwPlNtYXJ0SW1hZ2Ugc3VwcG9ydHMgYSBwbGV0aG9yYSBvZiBvcHRpb25zIGFuZCBhcmd1bWVudHMuICBUZW1wbGF0ZSBsYXlvdXQgY2FuIGJlIGNsZWFuZWQgYnkgdXNpbmcgdGhlIDxjb2RlPiYjMTIzO3h0X21vZHVsZV9oaW50fTwvY29kZT4gdGFnIGF0IHRoZSB0b3Agb2YgdGhlIHBhZ2UgdGVtcGxhdGUsIG9yIGluIHRoZSBwYWdlIG1ldGFkYXRhIGFyZWEgc3VjaCB0aGF0IHBhcmFtZXRlcnMgZm9yIGFsbCBjYWxscyBTbWFydEltYWdlIG9uIGEgcGFnZSBhcmUgc3BlY2lmaWVkIG9uY2UuICBPdmVycmlkaW5nIHRoZSBwYXJhbWV0ZXJzIGZvciBhIHNpbmdsZSBjYWxsIGlzIHN0aWxsIHBvc3NpYmxlLjwvcD4NCjxwPlNlZSB0aGUgPGNvZGU+JiMxMjM7eHRfbW9kdWxlX2hpbnR9PC9jb2RlPiB0YWcgaW4gdGhlIENHRXh0ZW5zaW9ucyBoZWxwIGZvciBtb3JlIGluZm9ybWF0aW9uLjwvcD4NCg0KPGg0PkJhY2tncm91bmQgSW1hZ2UgUmVzaXppbmc8L2g0Pg0KPHA+VGhpcyBtb2R1bGUgaGFzIHRoZSBhYmlsaXR5IHRvIGNyZWF0ZSBiYWNrZ3JvdW5kIGpvYnMgdGhhdCB3aWxsIGF1dG9tYXRpY2FsbHkgcmVzaXplIGFsbCB1cGxvYWRlZCBpbWFnZXMgdG8gYSBtYXhpbXVtIGVkZ2Ugc2l6ZS4gIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyB1c2VmdWwgdG8gcmVkdWNlIGRpc2sgc3BhY2UgcmVxdWlyZW1lbnRzLCBhbmQgdG8gYWlkZSBpbiBwZXJmb3JtYW5jZS48L3A+DQo8cD5Vc2luZyB0aGUgYnVpbHQgaW4gQ01TTVMgcHNldWRvY3JvbiBtZWNoYW5pc20gdGhlIHN5c3RlbSB3aWxsIHBlcmlvZGljYWxseSBzY2FuIGZvciBmaWxlcyB0aGF0IGV4Y2VlZCB0aGUgbWF4aW11bSBzaXplLiAgVGhlbiwgdXNpbmcgYSBmdXJ0aGVyIGFzeW5jaHJvbm91cyBwcm9jZXNzIG1hdGNoaW5nIGZpbGVzIGFyZSBzbG93bHkgcmVzaXplZCBpbiBiYXRjaGVzLCB0aHVzIG1pbmltaXppbmcgaW1wYWN0IG9uIHNlcnZlciByZXNvdXJjZXMuICBBZGRpdGlvbmFsbHksIGlmIGEgZmlsZSBpcyB0byBiZSByZXNpemVkLCBpdCBjYW4gYmUgYXV0by1yb3RhdGVkLCBhbmQgd2F0ZXJtYXJrZWQuPC9wPg==]]></data>
	</file>
	<file>
	  <filename>/templates/help_general_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBhIHNpbXBsZSB3YXkgdG8gcHJvY2VzcywgYW5kIGRpc3BsYXkgaW1hZ2VzIG9uIHlvdXIgd2ViIHBhZ2UuICBJdCBhbGxvd3Mgc2ltcGxlIGltYWdlIHByb2Nlc3NpbmcsIGFuZCB3YXRlcm1hcmtpbmcuICBUaGlzIG1vZHVsZSBtYWtlcyBkaXNwbGF5aW5nIHByb2Nlc3NlZCBpbWFnZXMgb24geW91ciB3ZWJzaXRlIHRyaXZpYWwuICBJdCBhbHNvIHByb3ZpZGVzIGZlYXR1cmVzIHRvIGltcHJvdmUgdGhlIHBlcmZvcm1hbmNlIHJhdGluZyBvZiB5b3VyIHdlYnNpdGUsIG1ha2luZyB5b3VyIHdlYnNpdGUgcG93ZXJmdWwgYW5kIGZhc3QgYXQgdGhlIHNhbWUgdGltZS48L3A+DQogIDxoND5GZWF0dXJlczo8L2g0Pg0KPHVsPg0KICA8bGk+UG93ZXJmdWwsIHNpbXBsZSB0byB1c2UgaW1hZ2UgPHN0cm9uZz5maWx0ZXJpbmc8L3N0cm9uZz4gYW5kIDxzdHJvbmc+cHJvY2Vzc2luZzo8L3N0cm9uZz4NCiAgICA8dWw+DQogICAgICA8bGk+PHN0cm9uZz5CbHVyPC9zdHJvbmc+PC9saT4NCiAgICAgIDxsaT48c3Ryb25nPkJyaWdodG5lc3M8L3N0cm9uZz48L2xpPg0KICAgICAgPGxpPjxzdHJvbmc+Q29sb3JpemU8L3N0cm9uZz48L2xpPg0KICAgICAgPGxpPjxzdHJvbmc+Q29udHJhc3Q8L3N0cm9uZz48L2xpPg0KICAgICAgPGxpPjxzdHJvbmc+Q3JvcDwvc3Ryb25nPjwvbGk+DQogICAgICA8bGk+PHN0cm9uZz5Dcm9wIFRvIEZpdDwvc3Ryb25nPjwvbGk+DQogICAgICA8bGk+PHN0cm9uZz5SZXNpemUgVG8gRml0PC9zdHJvbmc+PC9saT4NCiAgICAgIDxsaT48c3Ryb25nPkVkZ2UgRGV0ZWN0aW9uPC9zdHJvbmc+PC9saT4NCiAgICAgIDxsaT48c3Ryb25nPlNoYXJwZW48L3N0cm9uZz48L2xpPg0KICAgICAgPGxpPjxzdHJvbmc+RW1ib3NzPC9zdHJvbmc+PC9saT4NCiAgICAgIDxsaT48c3Ryb25nPkdyYXlzY2FsZTwvc3Ryb25nPjwvbGk+DQogICAgICA8bGk+PHN0cm9uZz5NZWFuIFJlbW92YWw8L3N0cm9uZz48L2xpPg0KICAgICAgPGxpPjxzdHJvbmc+TmVnYXRlPC9zdHJvbmc+PC9saT4NCiAgICAgIDxsaT48c3Ryb25nPlBpeGVsYXRlPC9zdHJvbmc+PC9saT4NCiAgICAgIDxsaT48c3Ryb25nPlJlZmxlY3Rpb248L3N0cm9uZz48L2xpPg0KICAgICAgPGxpPjxzdHJvbmc+UmVzaXplPC9zdHJvbmc+PC9saT4NCiAgICAgIDxsaT48c3Ryb25nPlJvdW5kZWQgQ29ybmVyczwvc3Ryb25nPjwvbGk+DQogICAgICA8bGk+PHN0cm9uZz5Sb3RhdGU8L3N0cm9uZz48L2xpPg0KICAgICAgPGxpPjxzdHJvbmc+U2VsaWN0aXZlIEJsdXI8L3N0cm9uZz48L2xpPg0KICAgICAgPGxpPjxzdHJvbmc+U21vb3RoPC9zdHJvbmc+PC9saT4NCiAgICAgIDxsaT48c3Ryb25nPldhdGVybWFyazwvc3Ryb25nPjwvbGk+DQogICAgICA8bGk+PHN0cm9uZz5OT09QIDxlbT4obm9vcCk8L2VtPjwvc3Ryb25nPjwvbGk+DQogICAgPC91bD4NCiAgPC9saT4NCiAgPGxpPjxzdHJvbmc+UmVzcG9uc2l2ZSBpbWFnZSBoYW5kbGluZzwvc3Ryb25nPiB3aXRoIGJyZWFrcG9pbnRzOiByZXNpemUgaW1hZ2VzIHRvIGJlIHN1aXRhYmxlIGZvciBzbWFsbGVyIGRldmljZXMgc3VjaCBhcyBtb2JpbGUgcGhvbmVzIG9yIHRhYmxldHM7PC9saT4NCiAgPGxpPjxzdHJvbmc+U21hcnQgZGV0ZWN0aW9uIG9mIGltYWdlczwvc3Ryb25nPjogIHNwZWNpZnkgYWJzb2x1dGUgVVJMUywgYWJzb2x1dGUgcGF0aHMsIG9yIGZpbGVzIHJlbGF0aXZlIHRvIHlvdXIgcm9vdCBpbnN0YWxsYXRpb247PC9saT4NCiAgPGxpPjxzdHJvbmc+QXV0b21hdGljIGhhbmRsaW5nIG9mIGV4dGVybmFsIGltYWdlczwvc3Ryb25nPjogZG93bmxvYWRpbmcsIGNhY2hpbmcsIHByb2Nlc3NpbmcsIGFuZCByZS1jYWNoaW5nIG9mIGltYWdlcyBmcm9tIHJlbW90ZSB3ZWJzaXRlczs8L2xpPg0KICA8bGk+PHN0cm9uZz5TbWFydCBhdXRvbWF0aWMgcmVzaXppbmc8L3N0cm9uZz46IGF1dG9tYXRpY2FsbHkgcmVzaXplIHRvIGRlc2lyZWQgd2lkdGggYW5kIGhlaWdodCBiZWZvcmUgc2VydmluZyB0aGUgaW1hZ2U7PC9saT4NCiAgPGxpPjxzdHJvbmc+RVhJRiBhdXRvLXByb2Nlc3Npbmc8L3N0cm9uZz46IGF1dG9tYXRpY2FsbHkgcmVhZHMgaW1hZ2UgRVhJRiBpbmZvcm1hdGlvbiBhbmQgY29ycmVjdHMgdGhlIG9yaWVudGF0aW9uOzwvbGk+DQogIDxsaT48c3Ryb25nPlNvdXJjZSBjaGFuZ2UgZGV0ZWN0aW9uPC9zdHJvbmc+OiBpZiB0aGUgbWFzdGVyIGltYWdlIGlzIGNoYW5nZWQgc2NhbGVkIGltYWdlcyB3aWxsIGJlIHJlZ2VuZXJhdGVkIChzZWUgdGhlIDxzdHJvbmc+bm90aW1lY2hlY2s8L3N0cm9uZz4gcGFyYW1ldGVyIHRvIGRpc2FibGUgdGhpcyBiZWhhdmlvcik7PC9saT4NCiAgPGxpPjxzdHJvbmc+U21hcnQgYXR0cmlidXRlIGdlbmVyYXRpb248L3N0cm9uZz4gZm9yIGltYWdlIHRhZ3M7PC9saT4NCiAgPGxpPjxzdHJvbmc+SW1hZ2UgY2FjaGluZzwvc3Ryb25nPjogcHJvY2Vzc2VkIGltYWdlcyBhcmUgY2FjaGVkIG9uIHRoZSBzZXJ2ZXIgZm9yIGZhc3RlciBzZXJ2aW5nOzwvbEk+DQogIDxsaT48c3Ryb25nPkNETiBzdXBwb3J0PC9zdHJvbmc+OiB1c2UgYSBzZXBhcmF0ZSBVUkwgKDxzdHJvbmc+Q0ROPC9zdHJvbmc+KTxzdXA+MTwvc3VwPiBmb3Igc2VydmluZyBpbWFnZXM7PC9saT4NCiAgPGxpPjxzdHJvbmc+U2VxdWVudGlhbCBwcm9jZXNzaW5nPC9zdHJvbmc+OiBpbWFnZSBmaWx0ZXJzIGFuZCBwcm9jZXNzb3JzIGNhbiBiZSBjb21iaW5lZCwgYmVpbmcgZXhlY3V0ZWQgaW4gb3JkZXI7PC9saT4NCiAgPGxpPjxzdHJvbmc+RW1iZWRkaW5nPC9zdHJvbmc+OiAgZW1iZWQgaW1hZ2VzIGRpcmVjdGx5IGludG8gdGhlIGNvbnRlbnQgb2YgdGhlIHdlYiBwYWdlIHRvIG1pbmltaXplIHNwYWNlOzwvbGk+DQogIDxsaT48c3Ryb25nPlNlbGVjdGl2ZSBlbWJlZGRpbmc8L3N0cm9uZz46ICBsaW1pdCBlbWJlZGRpbmcgaW1hZ2VzIHNtYXJ0bHkgb25seSB0byBicm93c2VycyB0aGF0IGFyZSBjYXBhYmxlIG9mIHVuZGVyc3RhbmRpbmcgdGhlbTs8L2xpPg0KICA8bGk+PHN0cm9uZz5QYXJhbWV0ZXJzIGFsaWFzaW5nPC9zdHJvbmc+OiBjb21iaW5lIGNvbW1vbmx5IHVzZWQgYXJndW1lbnRzIGludG8gbmFtZWQgYWxpYXNlczs8L2xpPg0KICA8bGk+PHN0cm9uZz5TdHlsZXNoZWV0cyBzdXBwb3J0PC9zdHJvbmc+OiB3b3JrcyB3aXRoaW4gc3R5bGVzaGVldHMgdmlhIHRoZSAmIzEyMztjbXNfc3R5bGVzaGVldH0gdGFnOzwvbGk+DQogIDxsaT48c3Ryb25nPlNtYXJ0eSBibG9jayBwbHVnaW48L3N0cm9uZz46IGF1dG9tYXRpY2FsbHkgcHJvY2VzcyBpbWFnZXMgaW5zaWRlIGEgYmxvY2sgb2YgaHRtbCBjb2RlIHVzaW5nIHRoZSA8c3Ryb25nPiYjMTIzO3NpX2NvbnZlcnR9PC9zdHJvbmc+IGJsb2NrIHRhZzs8L2xpPg0KICA8bGk+PHN0cm9uZz5CbG9jayBleHRyYWN0aW9uPC9zdHJvbmc+OiBleHRyYWN0IGltYWdlcyBmcm9tIGEgYmxvY2sgb2YgaHRtbCBjb2RlOzwvbGk+DQogIDxsaT48c3Ryb25nPlByb3BvcnRpb25zIHByZXNlcnZhdGlvbjwvc3Ryb25nPjogYXV0b21hdGljYWxseSByZXNpemUgdXBsb2FkZWQgaW1hZ2VzIHRvIGEgbWF4aW11bSBlZGdlIHNpemU7PC9saT4NCiAgPGxpPk1vcmUuLi48L2xpPg0KPC91bD4NCg0KPGg0PldoeSBzaG91bGQgSSB1c2UgaXQ/PC9oND4NCjxwPlRoZXJlIGFyZSBmb3VyIHZlcnkgaW1wb3J0YW50IHJlYXNvbnMgdG8gdXNlIHRoaXMgcGx1Z2luOjwvcD4NCjx1bD4NCiAgPGxpPjxzdHJvbmc+UGVyZm9ybWFuY2U8L3N0cm9uZz46ICBVc2luZyBpbWFnZSBlbWJlZGRpbmcgKGV2ZW4gaWYgbm8gb3RoZXIgZnVuY3Rpb25zIGFyZSB1c2VkKSByZXN1bHRzIGluIGZld2VyIHJlcXVlc3RzLiAgTW9zdCBicm93c2VycyBvbmx5IHBlcmZvcm0gdHdvIHRvIGZvdXIgc2ltdWx0YW5lb3VzIHJlcXVlc3RzIHRvIHRoZSBzYW1lIGRvbWFpbiBhdCB0aGUgc2FtZSB0aW1lLiAgRm9yIHdlYiBwYWdlcyB3aXRoIGxvdHMgb2YgaW1hZ2VzIHRoaXMgY2FuIHNlcmlvdXNseSBzbG93IGRvd24geW91ciBzaXRlOzwvbGk+DQogIDxsaT48c3Ryb25nPlBlcmZvcm1hbmNlPC9zdHJvbmc+OiAgRXZlbiBpZiBub3QgdXNpbmcgZW1iZWRkaW5nLCBzZW5kaW5nIGxhcmdlIGltYWdlcyB0byB5b3VyIHZpc2l0b3JzLCBhbmQgYXNraW5nIHRoZWlyIGJyb3dzZXIgdG8gc2NhbGUgdGhlIGltYWdlIGlzIHZlcnkgdmVyeSBzbG93OzwvbGk+DQogIDxsaT48c3Ryb25nPlNlY3VyaXR5PC9zdHJvbmc+OiAgU21hcnRJbWFnZSBjYWNoZXMgaXRzIGltYWdlcyBpbiBhIHNlcGFyYXRlIGRpcmVjdG9yeSwgdGhlcmVieSBoaWRpbmcgdGhlIG9yaWdpbmFsIChwZXJoYXBzIGNvcHlyaWdodGVkKSBpbWFnZXMgZnJvbSB5b3VyIHVzZXJzLiAgSWYgZW1iZWRkaW5nIGlzIHVzZWQgdGhleSBjYW4gbm90IGV2ZW4gZmluZCB0aGUgY2FjaGVkIGxvY2F0aW9uOzwvbGk+DQogIDxsaT48c3Ryb25nPlNpbXBsaWNpdHk8L3N0cm9uZz46ICBUaGUgZmlsdGVyaW5nIGNhcGFiaWxpdGllcyBvZiBTbWFydEltYWdlIGFsbG93IHlvdSB0byBhdXRvbWF0aWNhbGx5IHByb2Nlc3MgaW1hZ2VzIGZvciBjb25zaXN0ZW50IGFuZCBzZWN1cmUgZGlzcGxheSwgd2l0aG91dCBzaXRlIGVkaXRvcnMgaGF2aW5nIHRvIHBsYXkgd2l0aCB0aGVtLiAgVGhleSBjYW4gdXBsb2FkIGxhcmdlciBpbWFnZXMsIGFuZCB5b3VyIHNpdGUgd2lsbCBqdXN0IGhhbmRsZSB0aGVtIHByb3Blcmx5LjwvbGk+DQogIDxsaT48c3Ryb25nPkRpc2sgc3BhY2Ugc2F2aW5nPC9zdHJvbmc+OiBUaGUgYXV0b21hdGljIGltYWdlIHByb2Nlc3Npbmcgb3B0aW9uIGFsbG93cyByZXNpemluZyBpbWFnZXMgdG8gYSBtYXhpbXVtIHNpemUsIGFuZCBkZWxldGluZyB0aGUgb3JpZ2luYWwsIHRoaXMgc2F2ZXMgZGlzayBzcGFjZSB3aGVuIHVzZXJzIGFyZSB1cGxvYWRpbmcgdG9ubmVzIG9mIGltYWdlcy48L2xpPg0KPC91bD4NCg0KPGg0PkltYWdlIEVtYmVkZGluZzwvaDQ+DQogIDxwPkltYWdlIGVtYmVkZGluZyBlbmNvZGVzIHRoZSBpbWFnZSBpbnRvIGEgZGF0YSA8c3Ryb25nPlVSSTwvc3Ryb25nPiB3aGljaCBpcyBlbWJlZGRlZCBkaXJlY3RseSBpbiB0aGUgcGFnZSAob3Igc3R5bGVzaGVldCkgY29udGVudC4gIFRoaXMgcmVkdWNlcyByZXF1ZXN0cyB0aGF0IHRoZSBicm93c2VyIG11c3QgbWFrZSB0byByZWNlaXZlIGltYWdlcyBmcm9tIHlvdXIgc2l0ZS4gIEhvd2V2ZXIgaXQgZG9lcyBpbmNyZWFzZSB0aGUgc2l6ZSBvZiB0aGUgSFRNTCBwYWdlLiAgT24gaW1hZ2UgaGVhdnkgcGFnZXMgeW91IHNob3VsZCBtaXggdGhlIHVzZSBvZiBlbWJlZGRlZCBpbWFnZXMuPC9wPg==]]></data>
	</file>
	<file>
	  <filename>/templates/help_parameters_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPlBhcmFtZXRlcnM8L2gzPg0KPHVsPg0KPGxpPg0KICA8c3Ryb25nPmFjdGlvbjwvc3Ryb25nPiA8ZW0+KG9wdGlvbmFsKTwvZW0+OiBUaGUgYWN0aW9uIGZvciB0aGUgbW9kdWxlIHRvIHBlcmZvcm0uDQogIDxicj5Qb3NzaWJsZSB2YWx1ZXMgYXJlOg0KICA8dWw+DQogICAgPGxpPjxzdHJvbmc+ZGVmYXVsdDwvc3Ryb25nPiAtIHBlcmZvcm0gbWFuaXB1bGF0aW9uIG9uIGEgc2luZ2xlIGltYWdlOzwvbGk+DQogICAgPGxpPjxzdHJvbmc+cmVzcG9uc2l2ZTwvc3Ryb25nPiAtIG91dHB1dCBhIGphdmFzY3JpcHQgY29kZSBzbmlwcGV0IHRoYXQgd2lsbCBjcmVhdGUgYSBjb29raWUgcHJvdmlkaW5nIHRoZSBTbWFydEltYWdlIG1vZHVsZSB3aXRoIGRldmljZSBzY3JlZW4gc2l6ZSBhbmQgcGl4ZWwgcmF0aW87PC9saT4NCiAgPC91bD4NCjwvbGk+DQo8bGk+PHN0cm9uZz5zaWxlbnQ8L3N0cm9uZz4gPGVtPihvcHRpb25hbCk8L2VtPiAtIFNpbGVudGx5IGlnbm9yZSBlcnJvcnMgKHBvc3NpYmxlIHZhbHVlczogMCwxICk7PC9saT4NCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGFsaWFzIC0gVGhlIFNtYXJ0SW1hZ2UgYWRtaW4gcGFuZWwgYWxsb3dzIGNyZWF0aW5nIG51bWVyb3VzIGNvbW1hbmQgYWxpYXNlcyB0byBjb21iaW5lIGEgZnJlcXVlbnRseSB1c2VkIHBhdHRlcm4gb2YgYXJndW1lbnRzIGludG8gb25lIG5hbWUuICBUbyB1c2UgdGhlc2UgYWxpYXNlcyB1c2UgYW4gYXJndW1lbnQgb2YgdGhlIGZvcm0gYWxpYXMjIz1hbGlhc19uYW1lIGkuZTogIGFsaWFzMT1mb28gYWxpYXMyPWZvby48L2xpPg0KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbm9hdXRvc2NhbGU9IiIgLSBJZiB3aWR0aCBhbmQgaGVpZ2h0IHBhcmFtZXRlcnMgYXJlIHNwZWNpZmllZCwgdGhpcyBwYXJhbWV0ZXIgd2lsbCBkaXNhYmxlIGF1dG9tYXRpYyBzY2FsaW5nIG9mIHRoZSBpbWFnZS4gIFRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgZGlzYWJsZWQgZm9yIG1vYmlsZSBicm93c2VyczwvbGk+DQo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub2JjYWNoZT0iIiAtIERvIG5vdCBhbGxvdyB0aGUgcmVzaXplZCBpbWFnZSB0byBjYWNoZSBpbiB0aGUgYnJvd3NlciAodXNlZnVsIGZvciBkZXZlbG9wbWVudCBwdXJwb3NlcykgdGhpcyBhZGRzIGEgdW5pcXVlIG51bWJlciBhcyBhIHBhcmFtZXRlciB0byB0aGUgaW1hZ2Ugd2hpY2ggd2lsbCBmb3JjZSB0aGUgYnJvd3NlciBub3QgdG8gY2FjaGUgdGhlIGltYWdlLjwvbGk+DQo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub2VtYmVkPSIiIC0gRm9yY2UgdGhlIGltYWdlIHRvIG5vdCBlbWJlZC4gIFJlZ2FyZGxlc3Mgb2Ygc2V0dGluZ3MgaW4gdGhlIGFkbWluIHBhbmVsLCB0aGUgVVJMIGFuZCB0YWcgZ2VuZXJhdGVkIHdpbGwgYmUgdG8gYSBmaWxlIG9uIHRoZSBzZXJ2ZXIuICBObyBlbWJlZGRpbmcgd2lsbCBiZSBwZXJmb3JtZWQ8L2xpPg0KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbm9hdXRvPSIiIC0gRG8gbm90IGF1dG9tYXRpY2FsbHkgY2FsY3VsYXRlIHBhcmFtZXRlcnMgZm9yIHRoZSBpbWcgdGFnLiAgVGhpcyBtYXkgY2F1c2UgeW91ciBzaXRlIHRvIGZhaWwgdmFsaWRhdGlvbiBpZiBzb21lIHJlcXVpcmVkIHBhcmFtZXRlcnMgKHdpZHRoLGhlaWdodCxhbHQpIGFyZSBub3Qgc3BlY2lmaWVkLiAgQWRkaXRpb25hbGx5LCBpZiB0aGUgd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIGFyZSBzcGVjaWZpZWQsIHRoaXMgcGFyYW1ldGVyIHdpbGwgZW5zdXJlIHRoYXQgdGhleSB3aWxsIG5vdCBiZSBvdmVycmlkZGVuIGJ5IHRoZSBhY3R1YWwgc2l6ZSBvZiB0aGUgcHJvY2Vzc2VkIGltYWdlLjwvbGk+DQo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub3JvdGF0ZT0iIiAtIERvIG5vdCBhdHRlbXB0IHRvIHJlYWQgZXhpZiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBmaWxlIGFuZCBjb3JyZWN0IGltYWdlIHJvdGF0aW9uPC9saT4NCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vdGFnPSIiIC0gRG8gbm90IG91dHB1dCBhbiBpbWcgdGFnLCBvbmx5IHRoZSB1cmwgdG8gdGhlIGNhY2hlZCBpbWFnZS4gIFRoaXMgaGFzIG5vIGVmZmVjdCB3aGVuIFNtYXJ0SW1hZ2UgaXMgdXNlZCBmcm9tIHdpdGhpbiBhIHN0eWxlc2hlZXQuPC9saT4NCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vcmVzcG9uc2l2ZT0iIiAtIFR1cm4gb2ZmIGFsbCByZXNwb25zaXZlIGltYWdlIGhhbmRsaW5nIGZvciB0aGlzIG9wZXJhdGlvbi48L2xpPg0KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbm9kcHJhZGp1c3Q9IiIgLSBGb3IgcmVzcG9uc2l2ZSBpbWFnZSBoYW5kbGluZywgZG8gbm90IGFkanVzdCB0aGUgc2l6ZSBvZiBhIHNjYWxlZCBpbWFnZSBiYXNlZCBvbiB0aGUgZGV2aWNlIHBpeGVsIHJhdGlvIGZyb20gdGhlIHJlc3BvbnNpdmUgaW5mb3JtYXRpb24uPC9saT4NCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vYnJlYWtwb2ludHM9IiIgLSBGb3IgcmVzcG9uc2l2ZSBpbWFnZSBoYW5kbGluZywgZGlzYWJsZSBicmVha3BvaW50cyBhbmQgZm9yY2UgcmVndWxhciByZXNpemUgaGFuZGxpbmcgZm9yIGltYWdlcyBvbiBtb2JpbGUgYnJvd3NlcnMuPC9saT4NCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vcmVtb3RlPSIiIC0gRG8gbm90IGFsbG93IHJldHJpZXZpbmcgc291cmNlcyBmcm9tIHJlbW90ZSBVUkxTPC9saT4NCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZvcmNlX3R5cGU9IiIgLSAoc3RyaW5nKSBGb3JjZSB0aGUgb3V0cHV0IGltYWdlIHRvIGJlIHNhdmVkIGluIHRoZSBzcGVjaWZpZWQgaW1hZ2UgdHlwZSwgaW5kZXBlbmRlbnQgb2YgdGhlIHNvdXJjZSBpbWFnZSwgZmlsdGVycywgYW5kIHBhcmFtZXRlcnMuICBWYWxpZCB2YWx1ZXMgYXJlOiBqcGVnLHBuZyxnaWYuIE5vdGU6IER1ZSB0byB0aGUgY2FwYWJpbGl0aWVzIG9mIHNvbWUgaW1hZ2UgZm9ybWF0cywgc3VycHJpc2luZyBlZmZlY3RzIGNhbiBvY2N1ci4gIFBhcnRpY3VsYXJseSwgZm9yY2luZyBhIHRyYW5zcGFyZW50IFBORyB0byBzYXZlIGluIEpQRUcgZm9ybWF0IHdpbGwgcmVzdWx0IGluIGFsbCB0cmFuc3BhcmVuY3kgYmVpbmcgbG9zdC48L2xpPg0KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZm9yY2VfZXh0PSIiIC0gKGludGVnZXIpIEVuYWJsZSAob3IgZGlzYWJsZWQpIHRoZSBmb3JjaW5nIG9mIGFsbCBnZW5lcmF0ZWQgaW1hZ2UgZmlsZXMgdG8gaGF2ZSBmaWxlIGV4dGVuc2lvbnMuICBEZXBlbmRpbmcgdXBvbiB0aGUgc291cmNlIGltYWdlLCBhbmQgdGhlIGZpbHRlcnMgYW5kIHBhcmFtZXRlcnMgdXNlZCwgdGhlIGdlbmVyYXRlZCBleHRlbnNpb24gbWF5IG5vdCBhY2N1cmF0ZWx5IHJlcHJlc2VudCB0aGUgYWN0dWFsIGNvbnRlbnRzIG9mIHRoZSBmaWxlPC9saT4NCjxsaT4NCiAgc3JjPSIiIC0gU3BlY2lmeSB0aGUgc291cmNlIGZvciB0aGUgaW1hZ2UgcHJvY2Vzc2luZyAoaWYgYW55KSBvciB0aGUgZ2VuZXJhdGVkIGltZyB0YWcuICBOb3RlLCB0aGlzIHBhcmFtZXRlciBpcyBmbGV4aWJsZSwgYW5kIHRoZSBtb2R1bGUgd2lsbCBhdHRlbXB0IG1hbnkgbWV0aG9kcyB0byBmaW5kIHRoZSBzb3VyY2UgaW1hZ2UgZmlsZSBvbiB0aGUgd2ViIHNlcnZlciBhcyBmb2xsb3dzOg0KICA8dWw+DQogICAgPGxpPkZpcnN0IGxvb2sgdG8gc2VlIGlmIHRoZSBzcGVjaWZpZWQgc3JjIHZhbHVlIGV4aXN0cyBhcyBhIGZpbGUgb24gdGhlIGZpbGVzeXN0ZW0gPHN0cm9uZz5CZWxvdyB0aGUgQ01TTVMgcm9vdCBVUkw8L3N0cm9uZz48L2xpPg0KICAgIDxsaT5OZXh0LCBjaGVjayBpZiB0aGUgdmFsdWUgc3BlY2lmaWVkIGZvciB0aGUgc3JjIHBhcmFtZXRlciBpcyBhIFVSTCBhbmQgYmVnaW5zIHdpdGggdGhlIHVwbG9hZHNfdXJsIChhcyBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZy5waHApPC9saT4NCiAgICA8bGk+TmV4dCwgY2hlY2sgaWYgdGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgdGhlIHNyYyBwYXJhbWV0ZXIgaXMgYSBVUkwgYW5kIGJlZ2lucyB3aXRoIHRoZSByb290X3VybCAoYXMgc3BlY2lmaWVkIGluIHRoZSBjb25maWcucGhwKTwvbGk+DQogICAgPGxpPk5leHQsIGNoZWNrIGlmIHRoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yIHRoZSBzcmMgcGFyYW1ldGVyIGlzIGEgVVJMIGFuZCBiZWdpbnMgd2l0aCB0aGUgc3NsX3VybCAoYXMgc3BlY2lmaWVkIGluIHRoZSBjb25maWcucGhwKTwvbGk+DQogIDwvdWw+DQogIEl0IGlzIGFsc28gcG9zc2libGUgdG8gc3BsaXQgdGhlIHNyYyBwYXJhbWV0ZXIgaW50byBtdWx0aXBsZSBhcmd1bWVudHMsIHdoaWNoIGlzIHVzZWZ1bCBmb3IgZXhhbXBsZSB3aGVuIHRoZSBwYXRoIHRvIHRoZSBmaWxlLCBhbmQgdGhlIGZpbGVuYW1lIGFyZSBzdG9yZWQgaW4gc2VwYXJhdGUgc21hcnR5IHZhcmlhYmxlcy4gICBZb3UgY2FuIHNwZWNpZnkgdGhlIHNyYyBhcyBzcmMxPVwkdGhlX3BhdGggc3JjMj1cJHRoZV9maWxlbmFtZS4gIFRoZSBzeXN0ZW0gd2lsbCBhdXRvbWF0aWNhbGx5IGFkZCBhIC8gaW4gYmV0d2VlbiBlYWNoIGFyZ3VtZW50LiAgVGhlcmUgaXMgbm8gbGltaXQgdG8gdGhlIG51bWJlciBvZiBzcmMgcGFyYW1ldGVycy4NCjwvbGk+DQo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBvdmVyd3JpdGU9IiIgLSBEaXNhYmxlIGFsbCBjYWNoaW5nIGFuZCBmb3JjZSByZS1jYWxjdWxhdGlvbiBvZiBhbGwgZmlsdGVyczwvbGk+DQo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBpZD0iIiAtIFVzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBhbGxvd3Mgc3BlY2lmeWluZyBhbiBpZCBhdHRyaWJ1dGUgdG8gaW5jbHVkZSBvbiB0aGUgdGFnLiAgaS5lOiBpZD0ic29tZXRhZyI8L2xpPg0KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gY2xhc3M9IiIgLSBVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgYWxsb3dzIHNwZWNpZnlpbmcgb25lIG9yIG1vcmUgY2xhc3NlcyB0byBpbmNsdWRlIG9uIHRoZSB0YWcuICBpLmU6IGNsYXNzPSJmYW5jeWJveCB0aHVtYm5haWwiPC9saT4NCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHN0eWxlPSIiIC0gVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIGFsbG93cyBzcGVjaWZ5aW5nIGFsdGVybmF0ZSBzdHlsZXMgZm9yIHRoZSB0YWcuICBpLmU6IHN0eWxlPSJib3JkZXI6IDFweCBzb2xpZCBibGFjazsiPC9saT4NCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHRpdGxlPSIiIC0gU3BlY2lmeSBhbiBvcHRpb25hbCB0aXRsZSBhdHRyaWJ1dGUgZm9yIHRoZSBpbWcgdGFnLiAgaS5lOiB0aXRsZT0iVGhpcyBpcyB0aGUgdG9vbHRpcCI8L2xpPg0KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gYWx0PSIiIC0gVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIHNwZWNpZnkgdGhlIHZhbHVlIGZvciB0aGUgYWx0IGF0dHJpYnV0ZS4gIE5vdGUsIGlmIHRoaXMgaXMgbm90IHNwZWNpZmllZCBhIHZhbHVlIHdpbGwgYmUgYXV0b21hdGljYWxseSBjYWxjdWxhdGVkIGZvciB0aGlzIGF0dHJpYnV0ZSBzbyB0aGF0IG1vc3QgZ2VuZXJhdGVkIGltZyB0YWdzIHdpbGwgdmFsaWRhdGUuICBZb3UgY2FuIG92ZXJyaWRlIHRoaXMgYXV0byBjYWxjdWxhdGlvbiB3aXRoIHRoZSAibm9hdXRvIiBwYXJhbWV0ZXI8L2xpPg0KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbmFtZT0iIiAtIFVzZWQgd2hlbiBjcmVhdGluZyBhbiBpbWcgdGFnLCBzcGVjaWZ5IHRoZSB2YWx1ZSBmb3IgdGhlIG5hbWUgYXR0cmlidXRlLjwvbGk+DQo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBoZWlnaHQ9IiIgLSBVc2VkIHdoZW4gY3JlYXRpbmcgYW4gaW1nIHRhZywgc3BlY2lmeSB0aGUgdmFsdWUgZm9yIHRoZSBoZWlnaHQgYXR0cmlidXRlLiAgTm90ZSwgaWYgdGhpcyBpcyBub3Qgc3BlY2lmaWVkIGEgdmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQgZm9yIHRoaXMgYXR0cmlidXRlIHNvIHRoYXQgbW9zdCBnZW5lcmF0ZWQgaW1nIHRhZ3Mgd2lsbCB2YWxpZGF0ZS4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBhdXRvIGNhbGN1bGF0aW9uIHdpdGggdGhlICJub2F1dG8iIHBhcmFtZXRlci4gIFRoaXMgcGFyYW1ldGVyIHdpbGwgYWxzbyBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlICJ3aWR0aCIgcGFyYW1ldGVyIHRvIHBlcmZvcm0gYSBmaW5hbCByZXNpemluZyBvciBjcm9wdG9maXQgZmlsdGVyICh1bmxlc3MgdGhlICJub2F1dG9zY2FsZSIgcGFyYW1ldGVyIGlzIGFsc28gc3VwcGxpZWQpPC9saT4NCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHdpZHRoPSIiIC0gVXNlZCB3aGVuIGNyZWF0aW5nIGFuIGltZyB0YWcsIHNwZWNpZnkgdGhlIHZhbHVlIGZvciB0aGUgd2lkdGggYXR0cmlidXRlLiAgIE5vdGUsIGlmIHRoaXMgaXMgbm90IHNwZWNpZmllZCBhIHZhbHVlIHdpbGwgYmUgYXV0b21hdGljYWxseSBjYWxjdWxhdGVkIGZvciB0aGlzIGF0dHJpYnV0ZSBzbyB0aGF0IG1vc3QgZ2VuZXJhdGVkIGltZyB0YWdzIHdpbGwgdmFsaWRhdGUuICBZb3UgY2FuIG92ZXJyaWRlIHRoaXMgYXV0byBjYWxjdWxhdGlvbiB3aXRoIHRoZSAibm9hdXRvIiBwYXJhbWV0ZXIuICBUaGlzIHBhcmFtZXRlciB3aWxsIGFsc28gYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAiaGVpZ2h0IiBwYXJhbWV0ZXIgdG8gcGVyZm9ybSBhIGZpbmFsIHJlc2l6aW5nIG9yIGNyb3B0b2ZpdCBmaWx0ZXIgKHVubGVzcyB0aGUgIm5vYXV0b3NjYWxlIiBwYXJhbWV0ZXIgaXMgYWxzbyBzdXBwbGllZCk8L2xpPg0KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gcXVhbGl0eT0iNzUiIC0gU3BlY2lmeSB0aGUgcXVhbGl0eSBvZiB0aGUgb3V0cHV0IGltYWdlLiAgQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEwMC4gIFRoZSBkZWZhdWx0IHZhbHVlIGlmIG5vdCBzcGVjaWZpZWQgaXMgNzUuPC9saT4NCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHJlbD0iNzUiIC0gVXNlZCB3aGVuIGJ1aWxkaW5nIGFuIGltYWdlIHRhZyBhbGxvd3Mgc3BlY2lmeWluZyBhbiBvcHRpb25hbCByZWwgYXR0cmlidXRlICh0eXBpY2FsbHkgdXNlZCB3aXRoIGphdmFzY3JpcHQgdHlwZSBhbGJ1bXMpLiBpLmU6IHJlbD0iYWxidW0iPC9saT4NCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG1heF93aWR0aD0iIiAtIFRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbWF4aW11bSB3aWR0aCBmb3IgdGhlIGNvbnZlcnRlZCBpbWFnZXMuPC9saT4NCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG1heF9oZWlnaHQ9IiIgLSBUaGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG1heGltdW0gaGVpZ2h0IGZvciB0aGUgY29udmVydGVkIGltYWdlcy48L2xpPg0KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gcHJvZ3Jlc3NpdmU9IiIgLSAoYm9vbGVhbikgVG9nZ2xlIHNhdmluZyBqcGVnIGltYWdlcyBpbiBwcm9ncmVzc2l2ZSBmb3JtYXQuICBUaGlzIHBhcmFtZXRlciB3aWxsIG92ZXJyaWRlIHRoZSBwcmVmZXJlbmNlIGluIHRoZSBtb2R1bGVzIGFkbWluIHBhbmVsLiAgQXBwbGllcyBvbmx5IHRvIEpQRUcgaW1hZ2VzLjwvbGk+DQo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBhdXRvc2NhbGVfb3A9ImNyb3B0b2ZpdCIgLSBPdmVycmlkZSB0aGUgZGVmYXVsdCBmaWx0ZXIgdG8gYmUgdXNlZCB3aGVuIGF1dG9zY2FsaW5nLiAgUG9zc2libGUgdmFsdWVzIGFyZSAicmVzaXplIiBhbmQgImNyb3B0b2ZpdCI8L2xpPg0KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX2JsdXI9IiIgLSAoYW55dGhpbmcpIFNwZWNpZnkgYW55IHZhbHVlIGZvciB0aGlzIHBhcmFtZXRlciB0byBhZGQgYSBibHVyIGZpbHRlciB0byB0aGUgaW1hZ2U8L2xpPg0KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX2JyaWdodG5lc3M9IiIgLSAoaW50ZWdlcikgSW5jcmVhc2UgdGhlIGJyaWdodG5lc3Mgb2YgdGhlIHByb2Nlc3NlZCBpbWFnZSBieSB0aGUgaW50ZWdlciB2YWx1ZSBzcGVjaWZpZWQ8L2xpPg0KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX2NvbG9yaXplPSIiIC0gKHIsZyxiWyxhbHBoYV0pIC0gTGlrZSBmaWx0ZXJfZ3JheXNjYWxlIGhvd2V2ZXIgeW91IGNhbiBzcGVjaWZ5IHRoZSBjb2xvciBhbmQgYWxwaGEgdmFsdWU8L2xpPg0KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX2NvbnRyYXN0PSIiIC0gKGludGVnZXIpIENoYW5nZSB0aGUgY29udHJhc3Qgb2YgdGhlIGltYWdlIGJ5IHRoZSBpbnRlZ2VyIHZhbHVlIHNwZWNpZmllZDwvbGk+DQo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfY3JvcD0iIiAtIChwZXJjZW50WyxoX2FsaWduLHZfYWxpZ25dKSAtIFBlcmZvcm0gY3JvcHBpbmcgb24gdGhlIGltYWdlIHNwZWNpZmllZC4gQ3JvcCBwYXJhbWV0ZXJzIGFyZSBzcGVjaWZpZWQgYXMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBwYXJhbWV0ZXJzLiAgVGhlIGZpcnN0IChyZXF1aXJlZCkgdmFsdWUgaXMgYW4gaW50ZWdlciBwZXJjZW50YWdlIG9mIHRoZSBvcmlnaW5hbCBpbWFnZSBzaXplLiAgVGhlIG9wdGlvbmFsIHNlY29uZCBhbmQgdGhpcmQgcGFyYW1ldGVycyBhcmUgb25lIG9mIGwsYyxyIChsZWZ0LGNlbnRlcixyaWdodCkgYW5kIHQsYyxiICh0b3AsY2VudGVyLGJvdHRvbSkgc3BlY2lmeWluZyB3aGVyZSB0aGUgbG9jYXRpb24gd2l0aGluIHRoZSBzb3VyY2UgaW1hZ2UgdG8gY3JvcCBmcm9tLiAgaS5lOiBjcm9wPTMzLGIsciB0byBncmFiIGEgY3JvcCBvZiAzMyUgZnJvbSB0aGUgYm90dG9tIHJpZ2h0IG9mIHRoZSBzb3VyY2UgaW1hZ2UuPC9saT4NCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9jcm9wMnNpemU9IiIgLSAod2lkdGgsaGVpZ2h0Wyxsb2NhdGlvbl0pIC0gUGVyZm9ybSBhIGNyb3Agb24gdGhlIGltYWdlIHNwZWNpZmllZC4gIFRoaXMgZmlsdGVyIHdpbGwgY29weSB0aGUgcG9ydGlvbiBvZiB0aGUgc291cmNlIGltYWdlIHNwZWNpZmllZCBpbnRvIHRoZSBkZXN0aW5hdGlvbiBpbWFnZS4gIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IHBhcmFtZXRlcnMgY2FuIGJlIG5vIGxhcmdlciB0aGFuIHRoZSBzaXplIG9mIHRoZSBzb3VyY2UgaW1hZ2UgKGFuZCB3aWxsIGJlIHRyaW1tZWQgYXMgc3VjaC4gIE5lZ2F0aXZlIHZhbHVlcyBhcmUgbm90IHBlcm1pdHRlZC4gIFZhbGlkIGxvY2F0aW9ucyBhcmU6IHRsLHRjLHRyLGNsLGMsY3IsYmwsYmMsYnIgZm9yIHRoZSA5IHJlbGF0aXZlIHBvc2l0aW9ucyB3aXRoaW4gdGhlIGltYWdlLjwvbGk+DQo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfY3JvcHRvZml0PSIiIC0gKHdpZHRoLGhlaWdodFssbG9jYXRpb25bLHVwc2NhbGVdXSkgLSBQZXJmb3JtIGEgY3JvcHRvZml0IG9uIHRoZSBpbWFnZSBzcGVjaWZpZWQuIFRoaXMgYXR0ZW1wdHMgdG8gcmVzY2FsZSB0aGUgaW1hZ2UgdG8gdGhlIGRlc3RpbmF0aW9uIHNpemUgd2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbywgdGhlbiBmb2N1cyBvbiB0aGUgc2VsZWN0ZWQgYXJlYSBvZiB0aGUgcmVzaXplZCBpbWFnZS4gIENyb3AgdG8gZml0IHBhcmFtZXRlcnMgYXJlIHNwZWNpZmllZCBhcyB0aGUgZGVzaXJlZCB3aWR0aCBhbmQgaGVpZ2h0IGZvciB0aGUgZGVzdGluYXRpb24gaW1hZ2UgYWxvbmcgd2l0aCBhbiAob3B0aW9uYWwpIGxvY2F0aW9uIGNvZGUsIGFuZCB1cHNjYWxlIGZsYWcuICB2YWxpZCBsb2NhdGlvbiBjb2RlcyBhcmUgdGwsdGMsdHIsY2wsYyxjcixibCxiLGJyIGZvciB0aGUgOSByZWxhdGl2ZSBwb3NpdGlvbnMgd2l0aGluIHRoZSBpbWFnZS4gIElmIGEgbG9jYXRpb24gaXMgbm90IHNwZWNpZmllZCBhIHByZWZlcmVuY2Ugd2lsbCBiZSB1c2VkLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgImMiIHRvIGNyb3AtdG8tZml0IGZyb20gdGhlIGNlbnRlciBvZiB0aGUgc291cmNlIGltYWdlLiAgQnkgZGVmYXVsdCB1cHNjYWxpbmcgaXMgZGlzYWJsZWQgb24gdGhpcyBmaWx0ZXIuPC9saT4NCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9lZGdlZGV0ZWN0PSIiIC0gKGFueXRoaW5nKSBIaWxpZ2h0IHRoZSBlZGdlcyBpbiB0aGUgaW1hZ2U8L2xpPg0KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX2VtYm9zcz0iIiAtIChhbnl0aGluZykgRW1ib3NzIHRoZSBpbWFnZTwvbGk+DQo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfZmxpcD0iIiAtIChtb2RlKSAtIFBlcmZvcm0gYSBmbGlwIG9uIHRoZSBzcGVjaWZpZWQgaW1hZ2UuICBTcGVjaWZ5IDAgZm9yIGhvcml6b250YWwsIDEgZm9yIHZlcnRpY2FsLCBhbmQgMiBmb3IgZmxpcCBpbiBib3RoIGRpcmVjdGlvbnMuPC9saT4NCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9ncmF5c2NhbGU9IiIgLSAoYW55dGhpbmcpIENvbnZlcnQgdGhlIGltYWdlIHRvIGdyYXlzY2FsZTwvbGk+DQo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfbWVhbnJlbW92YWw9IiIgLSAoYW55dGhpbmcpIEF0dGVtcHQgdG8gYWNoaWV2ZSBhICJza2V0Y2h5IiBlZmZlY3Q8L2xpPg0KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX25lZ2F0ZT0iIiAtIChhbnl0aGluZykgTmVnYXRlIHRoZSBpbWFnZTwvbGk+DQo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfbm9vcD0iIiAtIChhbnl0aGluZykgRG8gbm8gcHJvY2Vzc2luZyAoYnV0IHRyaWdnZXJzIGEgY2FjaGVkIGltYWdlKTwvbGk+DQo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfcGl4ZWxhdGU9IiIgLSAoc2l6ZVssYWR2YW5jZWRdKSBQaXhlbGF0ZSB0aGUgaW1hZ2UsIHNwZWNpZnkgYW4gaW50ZWdlciBzaXplIGFuZCBhbiBvcHRpb25hbCBib29sZWFuIChkZWZhdWx0IGlzIGZhbHNlKSB0byBlbmFibGUgYWR2YW5jZWQgcGl4ZWxhdGlvbjwvbGk+DQo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfcmVmbGVjdD0iIiAtIChbcmVmbGVjdGlvbl9oZWlnaHRbLHJlZmxlY3Rpb25fb3BhY2l0eVssZGl2aWRlcl9oZWlnaHRdXV0pLCBDcmVhdGVzIHJlZmxlY3Rpb24gb2YgaW1hZ2UsIGN1cnJlbnRseSB3b3JraW5nIG9ubHkgd2l0aCBqcGcsanBlZyBpbWFnZXMgYWdhaW5zdCB3aGl0ZSBiYWNrZ3JvdW5kLjwvbGk+DQo8bGk+DQogIDxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX3Jlc2l6ZT0iIiAtIHR5cGUsbnVtYmVyWyxudW1iZXJbLHVwc2NhbGVdXSAtIFBlcmZvcm0gYSByZXNpemUgb2YgdGhlIHNvdXJjZSBpbWFnZS4gIEJ5IGRlZmF1bHQsIHRoZSByZXNpemUgZmlsdGVyIGFsbG93cyB1cHNjYWxpbmcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KICA8dWw+DQogICAgPGxpPnAsbnVtYmVyIC0gUGVyZm9ybSBhIHNpbXBsZSByZXNjYWxlIHRvIGEgY2VydGFpbiBwZXJjZW50YWdlLiAgaS5lOiAgcmVzaXplPXAsNTAgdG8gcmVzaXplIHRvIDUwJSBvZiB0aGUgb3JpZ2luYWwgc2l6ZS48L2xpPg0KICAgIDxsaT5wLG51bWJlciwwIC0gUGVyZm9ybSBhIHNpbXBsZSByZXNjYWxlIHRvIGEgY2VydGFpbiBwZXJjZW50YWdlLiAgaS5lOiAgcmVzaXplPXAsNTAgdG8gcmVzaXplIHRvIDUwJSBvZiB0aGUgb3JpZ2luYWwgc2l6ZS4gRG8gbm90IGFsbG93IHVwc2NhbGluZzwvbGk+DQogICAgPGxpPncsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCB3aWR0aCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPXcsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIHdpZHRoIG9mIDgwIHBpeGVscy48L2xpPg0KICAgIDxsaT53LG51bWJlciwwIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCB3aWR0aCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPXcsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIHdpZHRoIG9mIDgwIHBpeGVscy4gRG8gbm90IGFsbG93IHVwc2NhbGluZzwvbGk+DQogICAgPGxpPmgsbnVtYmVyIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIHNwZWNpZmllZCBoZWlnaHQgKHdoaWxlIHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiBpLmU6IHJlc2l6ZT1oLDgwIHRvIGNyZWF0ZSBhIHRodW1ibmFpbCB3aXRoIGEgbWF4aW11bSBoZWlnaHQgb2YgODAgcGl4ZWxzLjwvbGk+DQogICAgPGxpPmgsbnVtYmVyLDAgLSBQZXJmb3JtIGEgcmVzaXplIHRvIGEgc3BlY2lmaWVkIGhlaWdodCAod2hpbGUgcmV0YWluaW5nIGFzcGVjdCByYXRpbykuIGkuZTogcmVzaXplPWgsODAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdpdGggYSBtYXhpbXVtIGhlaWdodCBvZiA4MCBwaXhlbHMuIERvIG5vdCBhbGxvdyB1cHNjYWxpbmc8L2xpPg0KICAgIDxsaT5lLG51bWJlciAtIFBlcmZvcm0gYSByZXNpemUgcmVzaXppbmcgdGhlIGxhcmdlc3QgZWRnZSB0byB0aGUgc3BlY2lmaWVkIHZhbHVlICh3aGlsZSByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gaS5lOiByZXNpemU9ZSwxMDAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdob3MgbGFyZ2VzdCBlZGdlIGlzIDEwMCBwaXhlbHMuPC9saT4NCiAgICA8bGk+ZSxudW1iZXIsMCAtIFBlcmZvcm0gYSByZXNpemUgcmVzaXppbmcgdGhlIGxhcmdlc3QgZWRnZSB0byB0aGUgc3BlY2lmaWVkIHZhbHVlICh3aGlsZSByZXRhaW5pbmcgYXNwZWN0IHJhdGlvKS4gaS5lOiByZXNpemU9ZSwxMDAgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHdob3MgbGFyZ2VzdCBlZGdlIGlzIDEwMCBwaXhlbHMuICBEbyBub3QgYWxsb3cgdXBzY2FsaW5nLjwvbGk+DQogICAgPGxpPmMseCx5IC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIGN1c3RvbSBzaXplICh3aXRob3V0IHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgaS5lOiBmaWx0ZXJfcmVzaXplPWMsNTAsNzUgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHRoYXQgaXMgNTB4NzUgcGl4ZWxzLjwvbGk+DQogICAgLg0KICAgIDxsaT5jLHgseSwwIC0gUGVyZm9ybSBhIHJlc2l6ZSB0byBhIGN1c3RvbSBzaXplICh3aXRob3V0IHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgaS5lOiBmaWx0ZXJfcmVzaXplPWMsNTAsNzUgdG8gY3JlYXRlIGEgdGh1bWJuYWlsIHRoYXQgaXMgNTB4NzUgcGl4ZWxzLiBEbyBub3QgYWxsb3cgdXBzY2FsaW5nLjwvbGk+DQogICAgLg0KICA8L3VsPg0KPC9saT4NCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl9yZXNpemV0b2ZpdD0iIiAtICh3aWR0aCxoZWlnaHRbLGNvbG9yWyxhbHBoYV1dKSAtIFBlcmZvcm0gYSByZXNpemUgb24gdGhlIGltYWdlIHNwZWNpZmllZC4gVGhpcyBhdHRlbXB0cyB0byByZXNjYWxlIHRoZSBpbWFnZSB0byB0aGUgZGVzdGluYXRpb24gc2l6ZSB3aGlsZSByZWF0aW5pbmcgYXNwZWN0IHJhdGlvLCB0aGUgaW1hZ2UgaXMgY2VudGVyZWQgaW4gdGhlIGJveCBzcGVjaWZpZWQgKGVpdGhlciBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBkZXBlbmRpbmcgdXBvbiBhc3BlY3QgcmF0aW8gYW5kIHRoZSBkZXN0aW5hdGlvbiBzaXplLCBhbmQgdGhlIGltYWdlIGlzIHN1cnJvdW5kZWQgYnkgdGhlIHN1cHBsaWVkIGNvbG9yLiAgQ29sb3JzIGNhbiBiZSBzcGVjaWZpZWQgYnkgbmFtZSAoc2VlIHRoZSBYMTEgY29sb3IgbmFtZXMpLCBvciBieSAjbm5ubm5uIGhleGFkZWNpbWFsIGZvcm1hdCwgb3IgYXMgcmdiIHZhbHVlcyBzZXBhcmF0ZWQgYnkgYSA6IGkuZTogIGZpbHRlcl9jcm9wdG9maXQ9NjAwLDQwMCwjZmYwMDAwLiAgVGhlIHNwZWNpYWwgY29sb3IgdmFsdWUgInRyYW5zcGFyZW50IiBjYW4gYmUgc3BlY2lmaWVkIHRvIGZvcmNlIHRoZSBiYWNrZ3JvdW5kIHRvIGJlIHRyYW5zcGFyZW50IChmb3IgaW1hZ2UgdHlwZXMgdGhhdCBzdXBwb3J0IGl0KS4gICBBbiBhbHBoYSB2YWx1ZSBtYXkgYmUgc3BlY2lmaWVkIGJldHdlZW4gMCBhbmQgMTI3IHRvIHNwZWNpZnkgZGlmZmVyZW50IGRlZ3JlZXMgb2YgdHJhbnNsdWNlbmN5IGZvciB0aGUgYmFja2dyb3VuZC4gICBBdCBubyB0aW1lIHdpbGwgdGhpcyBwbHVnaW4gcGVyZm9ybSBhbnkgdXBzY2FsaW5nLjwvbGk+DQo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfcm90YXRlPSIiIC0gKGFuZ2xlKSBTcGVjaWZ5IHRoZSBpbnRlZ2VyIGFuZ2xlIChjb3VudGVyIGNsb2Nrd2lzZSkgdG8gcm90YXRlIHRoZSBpbWFnZSwgVGhlIGltYWdlIGlzIHJvdGF0ZWQgYWJvdXQgaXRzIGNlbnRlci48L2xpPg0KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX3JvdW5kZWRjb3JuZXJzPSIiIC0gKHJhZGl1c1ssY29sb3JdKSBTcGVjaWZ5IGFuIGludGVnZXIgcmFkaXVzIChpbiBwaXhlbHMpIGZvciByb3VuZGluZyB0aGUgY29ybmVycy4gIE9wdGlvbmFsbHkgc3BlY2lmeSBhIGNvbG9yIGZvciB0aGUgcm91bmRlZCBjb3JuZXJzLiAgVGhlIHNwZWNpYWwgdmFsdWUgaWYgInRyYW5zcGFyZW50IiBmb3IgdGhlIGNvbG9yIHdpbGwgZm9yY2UgdGhlIGltYWdlIHRvIGJlIGNvbnZlcnRlZCB0byBhIHBuZyBhbmQgYSB0cmFuc3BhcmVudCBjb2xvciB1c2VkLjwvbGk+DQo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfc2hhcnBlbj0iIiAtIChpbnRlZ2VyKSBTcGVjaWZ5IGFuIGFkanVzdG1lbnQgKGJldHdlZW4gLTEwIGFuZCAxMCkgdG8gdGhlIHNoYXJwZW4gZmlsdGVyLiAgTG93ZXIgdmFsdWVzIHdpbGwgbGlnaHRlbiB0aGUgc2hhcnBlbmluZyBlZmZlY3QuICBIaWdoZXIgdmFsdWVzIGluY3JlYXNlIGl0LiAgTm90ZTogc2hhcnBlbmluZyBtYXkgaGF2ZSBhZHZlcnNlIGVmZmVjdHMgb24gc29tZSBpbWFnZXMsIGFuZCBzaG91bGQgdXN1YWxseSBiZSBzcGVjaWZpZWQgYXMgdGhlIGxhc3QgZmlsdGVyLCB1bmxlc3MgdGhlIGZpbHRlciBtYXkgYWRkIGJvcmRlcnMgdG8gdGhlIGltYWdlLjwvbGk+DQo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXJfdHJhbnNwYXJlbnQ9IiIgLSAoY29sb3JbLGFscGhhXSkgQ29udmVydHMgYSBqcGVnIGltYWdlIHRvIHRyYW5zcGFyZW50IFBORyBieSBjb252ZXJ0aW5nIGFsbCBvZiB0aGUgcGl4ZWxzIG9mIHRoZSBzcGVjaWZpZWQgY29sb3IgdG8gdGhlIHRyYW5zcGFyZW50IGNvbG9yLiAgT3B0aW9uYWxseSwgYW4gYWxwaGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxMjcgY2FuIGJlIHNwZWNpZmllZCB0byBpbmRpY2F0ZSBzb21lIGFscGhhIGxldmVsIGJsZW5kaW5nPC9saT4NCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpbHRlcl91bnRyYW5zcGFyZW50PSIiIC0gKGNvbG9yWyxwZXJjZW50XSkgQ29udmVydHMgYSB0cmFuc3BhcmVudCBwbmcgaW1hZ2UgdG8gYSBqcGVnIGltYWdlIGJ5IGNvcHlpbmcgYSB0cmFuc3BhcmVudC9hbHBoYSBibGVuZGVkIHBuZyBvdmVydG9wIG9mIGFuIGltYWdlIG9mIHRoZSBhcHByb3ByaWF0ZSBjb2xvci48L2xpPg0KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmlsdGVyX3dhdGVybWFyaz0iIiAtIChib29sfHN0cmluZyksIFNwZWNpZnkgdGhhdCB0aGUgd2F0ZXJtYXJrIChhcyBzcGVjaWZpZWQgaW4gdGhlIENNU01TRXh0IGFkbWluIHBhbmVsKSBzaG91bGQgYmUgYXBwbGllZCB0byB0aGUgaW1hZ2UuICBBbiBvcHRpb25hbCBzdHJpbmcgY2FuIGJlIHNwZWNpZmllZCB0byBhbGxvdyBjdXN0b21pemluZyB0aGUgdGV4dCBpbiB0aGUgd2F0ZXJtYXJrLiAgVGhlIHN0cmluZyBjYW5ub3QgY29udGFpbiBIVE1MIGNoYXJhY3RlcnMsIGFuZCBjYW5ub3QgYmUgbW9yZSB0aGFuIDUwIGNoYXJhY3RlcnMgaW4gbGVuZ3RoIChpdCB3aWxsIGJlIHRyaW1tZWQpLiAgTm90ZSwgIGRlcGVuZGluZyBvbiBpbWFnZSBzaXplLCBhbmQgd2F0ZXJtYXJrIHNldHRpbmdzIHRoZSB0ZXh0IG1heSBub3QgYmUgdmlzaWJsZSBvciBtYXkgYmUgY2xpcHBlZCBieSB0aGUgaW1hZ2UuPC9saT4NCg==]]></data>
	</file>
	<file>
	  <filename>/templates/help_smarty_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGg0PkF1dG9tYXRpYyBQcm9jZXNzaW5nOjwvaDQ+DQo8cD5UaGlzIG1vZHVsZSBpbmNsdWRlcyBhIHNtYXJ0eSBibG9jayB0YWcgY2FsbGVkIDxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPiYjMTIzO3NpX2NvbnZlcnR9PC9jb2RlPiB0aGF0IGNhbiBzdXJyb3VuZCBhIGJsb2NrIG9mIGh0bWwsIG9yIG90aGVyIHNtYXJ0eSB0YWdzIHRvIGFsbG93IGF1dG9tYXRpYyBpbWFnZSBwcm9jZXNzaW5nLiAgVGhpcyB0YWcgY2FuIGJlIHVzZWQgbGlrZTogKGZvciBleGFtcGxlKTo8L3A+DQo8cHJlPjxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPiYjMTIzO3NpX2NvbnZlcnR9JiMxMjM7Y29udGVudH0mIzEyMzsvc2lfY29udmVydH08L2NvZGU+PC9wcmU+DQo8cD5UaGlzIHdpbGwgYWxsb3cgeW91ciB1c2VycyB0byBpbmNsdWRlIGltYWdlcyBpbnRvIHBhZ2VzIHVzaW5nIHRoZSBub3JtYWwgd3lzaXd5ZyB0b29scywgYW5kIHRvIGhhdmUgdGhlbSBhdXRvbWF0aWNhbGx5IHByb2Nlc3NlZCBhbmQgZW1iZWRkZWQgaW50byB0aGUgcGFnZSB1c2luZyB0aGUgbWFnaWMgb2YgJiMxMjM7U21hcnRJbWFnZX0uIGkuZTogU2VlIHRoZSBmb2xsb3dpbmcgY29kZTo8L3A+DQo8cHJlPjxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPiYjMTIzO3NpX2NvbnZlcnQgZmlsdGVyX2dyYXlzY2FsZT0xIGZpbHRlcl93YXRlcm1hcms9MX0mIzEyMztjb250ZW50fSYjMTIzOy9zaV9jb252ZXJ0fTwvY29kZT48L3ByZT4NCjxwPlRoZSBhYm92ZSBjb2RlIHdpbGwgY2FwdHVyZSBhbGwgaW1hZ2UgdGFncywgYW5kIGNvbnZlcnQgdGhlbSB0byBncmF5c2NhbGUgYW5kIHRoZW4gYXBwbHkgdGhlIHdhdGVybWFyayAoYWNjb3JkaW5nIHRvIHRoZSBzZXR0aW5ncyBpbiB0aGUgQ0dFeHRlbnNpb25zIG1vZHVsZSkuICBBbGwgb2YgdGhlIGZpbHRlcmluZyBwYXJhbWV0ZXJzIGF2YWlsYWJsZSB0byB0aGUgPGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+JiMxMjM7U21hcnRJbWFnZX08L2NvZGU+IHRhZyBhcmUgYXZhaWxhYmxlIHRvIHRoaXMgdGFnIChmb3IgaW1hZ2Ugc2NhbGluZyBldGMuKS4gIEFkZGl0aW9uYWxseSwgdHdvIG5ldyBwYXJhbWV0ZXJzIGhhdmUgYmVlbiBpbnRyb2R1Y2VkOiA8c3Ryb25nPm1heF93aWR0aDwvc3Ryb25nPiBhbmQgPHN0cm9uZz5tYXhfaGVpZ2h0PC9zdHJvbmc+IHdoaWNoIGNhbiBiZSB1c2VkIHRvIHNldCBhIG1heGltdW0gc2l6ZSBmb3IgaW1hZ2VzLi48L3A+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogM2VtOyI+DQogIDxzdHJvbmcgc3R5bGU9ImNvbG9yOiByZWQ7Ij5Ob3RlOjwvc3Ryb25nPg0KICA8cD4xLiBUaGlzIHRhZyBwYXJzZXMgdGhlIEhUTUwgY29udGVudCBiZXR3ZWVuIHRoZSBzdGFydCBhbmQgZW5kIHRhZ3MgdG8gZmluZCB0aGUgPGltZz4gdGFncy4gIEl0IHRoZW4gd2lsbCBvdXRwdXQgc3ludGFjdGljYWxseSB2YWxpZCBIVE1MIGZvciB0aGUgc3Vic2V0IG9mIGNvZGUgaXQgd2FzIHByb3ZpZGVkLiAgVGhlcmVmb3JlIGl0IGlzIGltcG9ydGFudCB0aGF0IHRoZSBzbmlwcGV0IG9mIEhUTUwgcGFzc2VkIHRvIHRoaXMgdGFnIGJlIGludGFjdCBhbmQgYXMgY2xvc2UgdG8gdmFsaWQgYXMgcG9zc2libGUuICA8c3Ryb25nPlVzZSB3aXRoIGNhdXRpb24uPC9zdHJvbmc+DQogIDxwPjIuICBpbWFnZSB0YWdzIHdpdGggdGhlIGNsYXNzICZxdW90O25vc2kmcXVvdDsgd2lsbCBiZSBpZ25vcmVkIGJ5IHRoZSAmIzEyMztzaV9jb252ZXJ0fSB0YWcuLjwvcD4NCiAgPHA+My4gIEF0dHJpYnV0ZXMgbGlrZSBhbHQgYW5kIHRpdGxlIG9uIHRoZSBpbnB1dCBpbWFnZXMgd2lsbCBub3QgYmUgb3ZlcnJpZGRlbiBpZiB0aGV5IGV4aXN0LjwvcD4NCjwvZGl2Pg0KDQo8aDQ+QWR2YW5jZWQgVXRpbGl0aWVzOjwvaDQ+DQo8dWw+DQogIDxsaT4NCiAgICA8Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij4mIzEyMztzaV9nZXRpbWFnZXN9PC9jb2RlPg0KICAgIDxwPkEgcGx1Z2luIHRvIGV4dHJhY3QgaW1hZ2VzIGZyb20gYSBibG9jayBvZiBIVE1MIGNvZGUgZm9yIGZ1cnRoZXIgcHJvY2Vzc2luZyBvdXRzaWRlIG9mIHNpLjwvcD4NCiAgICA8cD48c3Ryb25nPkFyZ3VtZW50czo8L3N0cm9uZz4NCiAgICA8dWw+DQogICAgICA8bGk+aW1hZ2Vzb25seTogdGhlIGNvbnRlbnQgcmV0dXJuZWQgd2lsbCBjb250YWluIG9ubHkgJmx0O2ltZyZndDsgdGFncy4gIEFsbCBvdGhlciB0YWdzIHdpbGwgYmUgcmVtb3ZlZC4gIE5vdCBhcHBsaWNhYmxlIGlmIHRoZSBub2NvbnRlbnQgcGFyYW1ldGVyIGlzIHNwZWNpZmllZC48L2xpPg0KICAgICAgPGxpPm5vY29udGVudDogZG8gbm90IG91dHB1dCBhbnkgY29udGVudCB3aGF0c29ldmVyLjwvbGk+DQogICAgICA8bGk+YXNzaWduOiBjcmVhdGUgYW4gYXJyYXkgcmVwcmVzZWludGluZyBhbGwgb2YgdGhlIGF2YWlsYWJsZSBpbmZvcm1hdGlvbiBmb3IgdGhlIGZvdW5kICZsdDtpbWcmZ3Q7IHRhZ3MgYW5kIGFzc2lnbiBpdCB0byB0aGUgbmFtZWQgc21hcnR5IHZhcmlhYmxlLjwvbGk+DQogICAgPC91bD4NCiAgICA8L3A+DQogICAgPHA+PHN0cm9uZz5Vc2FnZTo8L3N0cm9uZz4NCiAgICA8dWw+DQogICAgICA8bGk+DQogICAgICAgIFJlbW92ZSBhbGwgYnV0IHRoZSBpbWFnZSB0YWdzIGluIHRoZSBlbmNsb3NlZCBIVE1MOjxici8+DQogICAgICAgIDxwcmU+PGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+JiMxMjM7c2lfZ2V0aW1hZ2VzIGltYWdlc29ubHk9MX0mIzEyMztjb250ZW50fSYjMTIzOy9zaV9nZXRpbWFnZXN9PC9jb2RlPjwvcHJlPg0KICAgICAgPC9saT4NCiAgICAgIDxsaT4NCiAgICAgICAgUmV0dXJuIGEgbGlzdCBvZiB0aGUgaW1hZ2UgdGFncyBpbiB0aGUgZW5jbG9zZWQgSFRNTCBjb250ZW50LCBidXQgbGVhdmUgdGhlIGNvbnRlbnQgdW50b3VjaGVkOjxici8+DQogICAgICAgIDxwcmU+PGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+JiMxMjM7c2lfZ2V0aW1hZ2VzIGFzc2lnbj0naW1hZ2VpbmZvJ30mIzEyMztjb250ZW50fSYjMTIzOy9zaV9nZXRpbWFnZXN9PC9jb2RlPjwvcHJlPg0KICAgICAgPC9saT4NCiAgICAgIDxsaT4NCiAgICAgICAgUmV0dXJuIGEgbGlzdCBvZiB0aGUgaW1hZ2UgdGFncyBpbiB0aGUgZW5jbG9zZWQgSFRNTCBjb250ZW50LCBhbmQgZG8gbm90IG91dHB1dCBhbnkgb2YgdGhlIG9yaWdpbmFsIGNvbnRlbnQ6PGJyLz4NCiAgICAgICAgPHByZT48Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij4mIzEyMztzaV9nZXRpbWFnZXMgYXNzaWduPSdpbWFnZWluZm8nIG5vY29udGVudD0xfSYjMTIzO2NvbnRlbnR9JiMxMjM7L3NpX2dldGltYWdlc308L2NvZGU+PC9wcmU+DQogICAgICA8L2xpPg0KICAgIDwvdWw+DQogICAgPC9wPg0KICA8L2xpPg0KPC91bD4=]]></data>
	</file>
	<file>
	  <filename>/templates/help_using_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPkhvdyBkbyBJIFVzZSBpdDwvaDM+DQo8cD5UaGUgc2ltcGxlc3Qgd2F5IHRvIHVzZSB0aGlzIG1vZHVsZSBpcyB0byB1c2UgaXQgaW4gdGhlIHNhbWUgcGxhY2UgeW91IHdvdWxkIHRoZSAmIzEyMztpbWFnZX0gdGFnLiAgSS5lOiBTb21ldGhpbmcgbGlrZTo8L3A+DQo8cHJlPjxjb2RlPiYjMTIzO1NtYXJ0SW1hZ2Ugc3JjPSd1cGxvYWRzL2ltYWdlcy9waWN0dXJlLmpwZyd9PC9jb2RlPjwvcHJlPi4gIDxwPlRoaXMgd2lsbCBnZW5lcmF0ZSB0aGUgaW1hZ2UgdGFnIGZvciB5b3Ugd2l0aCBubyBwcm9jZXNzaW5nLiAgQW5kIGlmIHBvc3NpYmxlLCBlbWJlZCB0aGUgaW1hZ2UgZGlyZWN0bHkgaW50byB5b3VyIGh0bWwgb3V0cHV0LjwvcD4NCg0KPHA+T2Z0ZW4gcGVvcGxlIHdhbnQgdG8gZGlzcGxheSBhIHdhdGVybWFyayBvbiB0aGUgaW1hZ2VzIHRoYXQgdGhleSBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZCB0byBwcmV2ZW50IGltYWdlIHRoZWZ0LiAgVGhlIENNU01TRXh0IG1vZHVsZSBwcm92aWRlcyBzZXR0aW5ncyBmb3IgeW91IHRvIGNvbmZpZ3VyZSB3YXRlcm1hcmtpbmcgYW5kIHlvdSBjYW4gZW5hYmxlIHRoYXQgd2l0aCBhbnkgaW1hZ2Ugd2l0aCBhIHRhZyBsaWtlIHRoaXM6PC9wPg0KPHByZT48Y29kZT4mIzEyMztTbWFydEltYWdlIHNyYz0ndXBsb2Fkcy9pbWFnZXMvcGljdHVyZS5qcGcnIGZpbHRlcl93YXRlcm1hcms9MX08L2NvZGU+PC9wcmU+DQo8cD5UaGlzIHdpbGwgcmVhZCB0aGUgaW1hZ2UsIGFwcGx5IHRoZSB3YXRlcm1hcmsgYWNjb3JkaW5nIHRvIHRoZSBzZXR0aW5ncyBpbiBDTVNNU0V4dCwgY2FjaGUgdGhlIGFsdGVyZWQgaW1hZ2UsIGFuZCB0aGVuIGVtYmVkIGl0IGludG8geW91ciBvdXRwdXQuPC9wPg0KPHA+UGljdHVyZXMgdGFrZW4gYnkgbW9kZXJuIGRpZ2l0YWwgY2FtZXJhcyBhcmUgb2Z0ZW4gdG9vIGxhcmdlIGZvciB1c2Ugb24gYSB3ZWJzaXRlLCB0aGVyZWZvcmUgdGhleSBuZWVkIHRvIGJlIHNjYWxlZCBiZWZvcmUgZGlzcGxheWVkIG9uIHlvdXIgcGFnZS4gIFRoaXMgY2FuIGJlIGRvbmUgcXVpdGUgZWFzaWx5IHdpdGggYSB0YWcgbGlrZTo8L3A+DQo8cHJlPjxjb2RlPiYjMTIzO1NtYXJ0SW1hZ2Ugc3JjPSd1cGxvYWRzL2ltYWdlcy9waWN0dXJlLmpwZycgZmlsdGVyX3dhdGVybWFyaz0xIGZpbHRlcl9yZXNpemU9J3csMzUwJ308L2NvZGU+PC9wcmU+DQo8cD5UaGlzIHRhZyB3aWxsIHdhdGVybWFyayB0aGUgaW1hZ2UgYmVmb3JlIGl0IGlzIHJlc2l6ZWQgdG8gYSBtYXhpbXVtIHdpZHRoIG9mIDM1MCBwaXhlbHMgKHJldGFpbmluZyBhc3BlY3QgcmF0aW8pLiAgVGhlbiB0aGUgYWRqdXN0ZWQgaW1hZ2Ugd2lsbCBiZSBjYWNoZWQsIGFuZCBpZiB0aGUgYnJvd3NlciBhbGxvd3MgdGhlIGltYWdlIHdpbGwgYmUgZW1iZWRkZWQgaW50byB0aGUgPHN0cm9uZz5IVE1MPC9zdHJvbmc+IG91dHB1dC4gIElmIGVtYmVkZGluZyBpcyBub3QgcG9zc2libGUsIHRoZSA8c3Ryb25nPmltZzwvc3Ryb25nPiB0YWcgd2lsbCBjb250YWluIHRoZSA8c3Ryb25nPlVSTDwvc3Ryb25nPiB0byB0aGUgY2FjaGVkIGltYWdlLjwvcD4NCjxwPllvdSBjYW4gY29tYmluZSB0aGUgb3B0aW9ucyBsaXN0ZWQgaW4gdGhlIDxzdHJvbmc+UGFyYW1ldGVyczwvc3Ryb25nPiB0YWIgdG8gcGVyZm9ybSBhIGxvdCBvZiBkaWZmZXJlbnQgZWZmZWN0cyB0byB5b3VyIGltYWdlcywgYnVpbGQgc2ltcGxlIGdhbGxlcmllcywgYW5kIGltcHJvdmUgeW91ciBzaXRlIHBlcmZvcm1hbmNlIGF0IHRoZSBzYW1lIHRpbWUuPC9wPg==]]></data>
	</file>
	<file>
	  <filename>/templates/responsive.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPntqc21pbn0KeyogdGhpcyBqYXZhc2NyaXB0IHdpbGwgc2V0IGEgY29va2llIHdpdGggdGhlIGRldmljZSBoZWlnaHQsIHdpZHRoLCBhbmQgcGl4ZWwgcmF0aW8gZm9yIHVzZSBpbiBTbWFydEltYWdlIHJlc3BvbnNpdmUgaW1hZ2UgaGFuZGxpbmcgKn0KaWYoIGRvY3VtZW50LmNvb2tpZS5pbmRleE9mKCd7JGNvb2tpZW5hbWV9JykgPCAwICkgewogIHZhciBfZXggPSBuZXcgRGF0ZTsKICBfZXguc2V0RnVsbFllYXIoX2V4LmdldEZ1bGxZZWFyKCkgKyAxKTsKICB2YXIgX2QgPSB7fTsKICBfZC53aWR0aCA9IHNjcmVlbi53aWR0aDsKICBfZC5oZWlnaHQgPSBzY3JlZW4uaGVpZ2h0OwogIF9kLmRwciA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvOwogIGRvY3VtZW50LmNvb2tpZSA9ICJ7JGNvb2tpZW5hbWV9PSIrSlNPTi5zdHJpbmdpZnkoX2QpKyI7IGV4cGlyZXM9JytfZXgudG9HTVRTdHJpbmcoKS4nOyBwYXRoPS87IjsKICBpZiggZG9jdW1lbnQuY29va2llLmluZGV4T2YoJ3skY29va2llbmFtZX0nKSA+PSAwICkgewogICAgd2luZG93LnN0b3AoKTsKICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsKICB9Cn0Key9qc21pbn08L3NjcmlwdD4=]]></data>
	</file>
</module>
