<?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>PicasaBrowser</name>
	<version>2.0.3</version>
  <mincmsversion>1.6</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGlzIGRpc3BsYXlzIGEgbGlzdCBvZiBwdWJsaWMgUGljYXNhIFdlYiBBbGJ1bXMgb24gYSBwYWdlIGluIENNU01TLiAgWW91IGNhbiBhbHNvIHNob3cgdGhlIGNvbnRlbnRzIG9mIGEgc2luZ2xlIGFsYnVtIG9uIGEgcGFnZS4gIFRoZSBhbGJ1bSB2aWV3IHNob3dzIHRodW1ibmFpbHMgYW5kIHdoZW4gYSB0aHVtYm5haWwgaXMgc2VsZWN0ZWQgdGhlIHBpY3R1cmUgaXMgc2hvd24gaW4gYSBwb3AtdXAgYm94LiAgVGhlIHNsaWRlIHNob3cgZnVuY3Rpb25hbGl0eSBhbGxvd3MgdGhlIHVzZXIgdG8gbW92ZSBmb3J3YXJkIGFuZCBiYWNrIHRocm91Z2ggdGhlIHBpY3R1cmVzIGluIGFuIGFsYnVtIHVzaW5nIHRoZSBhcnJvdyBrZXlzIG9yIHRoZSBtb3VzZS4gIE9wdGlvbmFsbHkgeW91IGNhbiBjb25maWd1cmUgYSBwYWdlIHRvIHNob3cgYSBzZXQgb2YgYWxidW1zIHVzaW5nIHRoZSBpbmNsdWRlIGFuZCBleGNsdWRlIGF0dHJpYnV0ZXMuICBUaGVyZSBhcmUgcGFyYW1ldGVycyBmb3IgYWxidW0gdGh1bWJuYWlsLCBpbWFnZSB0aHVtYm5haWwgYW5kIHBpY3R1cmUgaW1hZ2Ugc2l6ZXMuIDwvcD4NCjxwPlRoZSBhZHZhbnRhZ2Ugb2YgdXNpbmcgdGhpcyBtb2R1bGUgb3ZlciB0aGUgQWxidW0gbW9kdWxlIGlzIHlvdSBjYW4gdXNlIHRoZSBQaWNhc2EgZGVza3RvcCBhcHBsaWNhdGlvbiB0byBjcm9wLCBiYWxhbmNlLCBhbm5vdGF0ZSwgb3JnYW5pemUgYW5kIHVwbG9hZCB5b3VyIHBpY3R1cmVzLiAgR29vZ2xlIGdpdmVzIHlvdSAxIGdiIG9mIHNwYWNlIHRvIHN0b3JlIHBob3RvcywgYW5kIGlmIHlvdSBoYXZlIGEgZ21haWwgYWNjb3VudCwgeW91IGFscmVhZHkgaGF2ZSBhIGxvZ2luLiAgWW91IGNhbiB1c2UgUGljYXNhIG9yIHRoZSBQaWNhc2EgV2ViIEFsYnVtcyAoaHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tKSB0byBtYW5hZ2Ugb3JkZXIsIGFsYnVtIG5hbWVzLCBhbmQgcGljdHVyZSBjYXB0aW9ucy48L3A+DQo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4NCjxwPjEuIFBsYWNlIHRoZSBzbWFydHkgdGFnIHtQaWNhc2FCcm93c2VyIHVzZXI9JnF1b3Q7dXNlcm5hbWUmcXVvdDt9IG9uIHRoZSBwYWdlLiAgVG8gc2hvdyBhIHBhcnRpY3VsYXIgYWxidW0gaW5jbHVkZSB0aGUgYWxidW0gcGFyYW1ldGVyLjwvcD4NCjxwPjEuIFBsYWNlIHRoZSBzbWFydHkgdGFnIHtQaWNhc2FCcm93c2VyIGhlYWRlcj0xfSBpbiB5b3VyIHRlbXBsYXRlIG9yIG1ldGFkYXRhLiBUaGlzIGluc2VydHMgdGhlIHJlbGV2YW50IGhlYWRlci1pbmNsdXNpb25zLCBsaWtlIExpZ2h0Qm94LWphdmFzY3JpcHQgZXRjLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5UaGUgbW9kdWxlIGRldmVsb3BtZW50IHBhZ2UgYXQ6IDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvcHdhYnJvd3Nlci8iPmh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvcHdhYnJvd3Nlci88L2E+PC9saT4NCjxsaT5Zb3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYXQgcm9yaWsubWVsYmVyZ0BnbWFpbC5jb208L2xpPg0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dCBvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQo8aDM+UmVxdWlyZW1lbnRzPC9oMz4NCjxwPkJlY2F1c2UgdGhpcyBtb2R1bGUgbWFrZXMgd2ViIHJlcXVlc3RzIHRvIEdvb2dsZSwgeW91IG11c3QgaGF2ZSBlaXRoZXIgY1VSTCBvciB0aGUgJnF1b3Q7YWxsb3dfdXJsX2ZvcGVuJnF1b3Q7IHNldHRpbmcgaW4geW91ciBwaHAuaW5pIHR1cm5lZCBvbi4gIGNVUkwgaXMgdGhlIHByZWZmZXJlZCBtZXRob2QgYmVjYXVzZSBpdCBhbGxvd3MgY29tcHJlc3NvbiBpbiB0aGUgcmVxdWVzdCB3aGljaCBHb29nbGUgdGFrZXMgYWR2YW5hZ2Ugb2YgYW5kIGJlY2F1c2Ugb2YgdGhlIHNpemUgb2YgdGhlIFhNTCBkb2NzLCB0aGlzIGNhbiBkcmFzdGljYWxseSByZWR1Y2UgdGhlIGFtb3VudCBvZiB0aW1lIG5lZWRlZCB0byBtYWtlIGEgcmVxdWVzdCBlc3BlY2lhbGx5IHdoZW4geW91IGhhdmUgbWFueSBhbGJ1bXMgaW4geW91ciBsaWJyYXJ5LjwvcD4NCjxwPlBpY2FzYSB4bWwgc3RyZWFtIHByb2Nlc3NpbmcgaXMgZG9uZSB3aXRoIHRoZSBTaW1wbGVYTUwgbGlicmFyeSwgd2hpY2ggc2hvdWxkIGJlIGluY2x1ZGVkIGluIGEgZGVmYXVsdCBQSFAgNS4wIGluc3RhbGwuIElmIHRoaXMgaXMgbm90IGluc3RhbGxlZCwgdGhpcyBtb2R1bGUgd2lsbCBub3Qgd29yay4gIFRoaXMgYWxzbyByZXN0cmljdHMgdGhpcyBtb2R1bGUgdG8gUEhQIDUgbWFjaGluZXMgb25seS48L3A+DQo8aDM+T3RoZXIgUGljYXNhIFdlYiBBbGJ1bSBoaW50czwvaDM+DQo8cD5JZiB5b3Ugd291bGQgbGlrZSB0byBzaG93IGEgc2luZ2xlIHBpY3R1cmUgZnJvbSB5b3VyIHdlYiBhbGJ1bSwgeW91IGNhbiBnZXQgdGhlIGxpbmsgZnJvbSB0aGUgd2ViIGFsYnVtIGludGVyZmFjZSBpdHNlbGYuICBHbyB0byB5b3VyIHdlYmFsYnVtIHBhZ2UgKHBpY2FzYXdlYi5nb29nbGUuY29tL3VzZXJuYW1lKSBhbmQgYnJvd3NlIHRvIHRoZSBwaWN0dXJlIHlvdSB3b3VsZCBsaWtlIHRvIHNob3cuICBUaGVyZSBpcyBhbiBleHBhbmRhYmxlIGJveCBvbiB0aGUgcmlnaHQgaGFuZCBzaWRlIHRoYXQgc2F5cyAmcXVvdDtsaW5rIHRvIHRoaXMgcGhvdG8mcXVvdDsuICBZb3UgY2FuIHNlbGVjdCB0aGUgc2l6ZSBvZiB0aGUgcGljdHVyZSBhbmQgdGhlbiBjb3B5IHRoZSBsaW5rIGZyb20gdGhlICZxdW90O0hUTUwgdG8gZW1iZWQgaW4gd2Vic2l0ZSZxdW90OyBib3guICBJIHVzdWFsbHkgcHVsbCB0aGUgc3JjIGF0dHJpYnV0ZSB2YWx1ZSBmcm9tIHRoZSBpbWFnZSB0YWcgYW5kIHVzZSBpdCB0byByZWZlcmVuY2UgdGhlIHBob3RvLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD48aDM+UGFyYW1ldHJlPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGFuZz0iZW5fVVMiIC0gUGFyYW1ldHJldCBhbmdpdmVyIGh2aWxrZXQgc3Byb2cgZGVyIHNrYWwgYnJ1Z2VzIHRpbCB2aXNuaW5nIGZvciBiZXMmb3NsYXNoO2dlbmRlLiBJa2tlIGFsbGUgbW9kdWxlciB1bmRlcnN0Jm9zbGFzaDt0dGVyIGVsbGVyIGJlaCZvc2xhc2g7dmVyIGRldHRlLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gdXNlcj0iIiAtIFAmYXJpbmc7a3ImYWVsaWc7dmV0LiBHb29sZSBicnVnZXJuYXZuZXQgc29tIGFsYnVtIHNrYWwgaGVudGVzIGZyYS48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGFsYnVtPSIiIC0gVGhlIG5hbWUgb2YgdGhlIGFsYnVtIHlvdSB3b3VsZCBsaWtlIHRvIHNlZS4gIFRoaXMgbmFtZSBpcyB3aGF0IFBpY2FzYSB1c2VzIHRvIHJlZmVyZW5jZSBhbiBhbGJ1bSB3aGljaCBpcyB3aGF0IHlvdSBuYW1lZCB0aGUgYWxidW0gd2l0aCBzcGFjZXMgYW5kIHNwZWNpYWwgY2hhcmFjdGVycyBzdHJpcHBlZCBvdXQuICBJZiBhbiBhbGJ1bSBuYW1lIGRvc2VudCB3b3JrLCBwdWxsIHVwIHRoYXQgYWxidW0gaW4gcGljYXNhIHdlYiBhbGJ1bXMgYW5kIGxvb2sgYXQgdGhlIGNvbW1hbmQgbGluZS4gIEZvciBleGFtcGxlLCBteSBhbGJ1bSBjYWxsZWQgJnF1b3Q7TUctNCZxdW90OyB1cmwgbG9va3MgbGlrZSB0aGlzOiAmcXVvdDtodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vcm9yaWsubWVsYmVyZy9NRzQmcXVvdDsuICBUaGUgaHlwaGVuIGlzIHN0cmlwcGVkIG91dCwgc28gaWYgSSB3YW50IHRvIHNob3cgb25seSB0aGlzIGFsYnVtLCB0aGUgYWxidW0gcHJvcGVydHkgc2hvdWxkIGJlIHNldCB0byAmcXVvdDtNRzQmcXVvdDsuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBleGNsdWRlPSIiIC0gTGlzdCBvZiBtYXNrcyB0byBleGNsdWRlLCBkZWxpbWl0ZWQgYnkgc2VtaWNvbG9ucy4gVGhpcyBpcyBhIHNpbXBsZSBzdHJpbmcgY29tcGFyZSwgaWYgdGhlIGVudGlyZSBzdHJpbmcgaXMgYW55d2hlcmUgaW4gdGhlIEFsYnVtIG5hbWUsIGl0IHdpbGwgYmUgZXhjbHVkZWQuIEJvdGggdGhlIGluY2x1ZGUgYW5kIGV4Y2x1ZGUgY2FuIGJlIHVzZWQgYXQgdGhlIHNhbWUgdGltZS4gIEV4Y2x1ZGUgd2lsbCBvdmVycnJpZGUgaW5jbHVkZXMuICBGb3IgZXhhbXBsZSwgaWYgdGhlIHZhbHVlIGZvciBleGNsdWRlIGlzICZxdW90O2RvbztkYWg7JnF1b3Q7ICBBbGwgYWxidW1zIHdpdGggZG9vIGFuZCBkYWggYXBwZWFyaW5nIGluIHRoZW0gd2lsbCBub3QgYmUgc2hvd248L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGluY2x1ZGU9IiIgLSBMaXN0IG9mIG1hc2tzIHRvIGluY2x1ZGUsIGRlbGltaXRlZCBieSBzZW1pY29sb25zLiBUaGlzIGlzIGEgc2ltcGxlIHN0cmluZyBjb21wYXJlLCBpZiB0aGUgZW50aXJlIHN0cmluZyBpcyBhbnl3aGVyZSBpbiB0aGUgQWxidW0gbmFtZSwgaXQgd2lsbCBiZSBpbmNsdWRlZC4gQm90aCB0aGUgaW5jbHVkZSBhbmQgZXhjbHVkZSBjYW4gYmUgdXNlZCBhdCB0aGUgc2FtZSB0aW1lLiAgRXhjbHVkZSB3aWxsIG92ZXJycmlkZSBpbmNsdWRlcy4gIEZvciBleGFtcGxlLCBpZiB0aGUgdmFsdWUgZm9yIGluY2x1ZGUgaXMgJnF1b3Q7ZG9vO2RhaDsmcXVvdDsgb25seSBhbGJ1bXMgd2l0aCBkb28gYW5kIGRhaCBpbiB0aGVtIHdpbGwgYmUgZGlzcGxheWVkPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBpbWFnZXNpemU9IjUxMiIgLSBUaGUgc2l6ZSBvZiB0aGUgaW1hZ2UgcmVxdWVzdGVkLiAgR29vZ2xlIG9ubHkgYWxsb3dzIHBhcnRpY3VsYXIgdmFsdWVzIGZvciB0aGlzLiAgU2VlIGltYWdldGh1bWJzaXplIGVudHJ5IG9yIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vYXBpcy9waWNhc2F3ZWIvcmVmZXJlbmNlLmh0bWwiPmh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vYXBpcy9waWNhc2F3ZWIvcmVmZXJlbmNlLmh0bWw8L2E+IGZvciB0aGlzIHRhYmxlLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gaW1hZ2V0aHVtYnNpemU9IjY0IiAtIFRoZSBzaXplIG9mIHRoZSBpbWFnZSByZXF1ZXN0ZWQuICBHb29nbGUgb25seSBhbGxvd3MgcGFydGljdWxhciB2YWx1ZXMgZm9yIHRoaXMuICBTZWUgYmVsb3cgb3IgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcGlzL3BpY2FzYXdlYi9yZWZlcmVuY2UuaHRtbCI+aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcGlzL3BpY2FzYXdlYi9yZWZlcmVuY2UuaHRtbDwvYT4gZm9yIHRoaXMgdGFibGUuICBDcm9wcGVkIG1lYW5zIHRoZSB0aHVtYm5haWwgeW91IGdldCBpcyBzcXVhcmUuICBPbmx5IGVtYmVkZGFibGUgc2l6ZXMgYXJlIHZhbGlkIGZvciB0aGlzIG1vZHVsZS4gIElmIHlvdSBnZXQgZG93bmxvYWQgcHJvbXB0cyBmcm9tIHRoZSBicm93c2VyLCB5b3UgaGF2ZSBwcm9iYWJseSBwaWNrZWQgYSBzaXplIHRoYXQgaXMgdG9vIGJpZy4NCiAgICA8dGFibGU+DQogICAgIDx0Ym9keT48dHI+DQogICAgICAgIDx0aD5TaXplPC90aD4NCiAgICAgICAgPHRoPkNyb3BwZWQ8L3RoPg0KICAgICAgICA8dGg+RW1iZWRkYWJsZTwvdGg+DQogICAgICAgIDx0aD5TaXplPC90aD4NCiAgICAgICAgPHRoPkNyb3BwZWQ8L3RoPg0KICAgICAgICA8dGg+RW1iZWRkYWJsZTwvdGg+DQogICAgICA8L3RyPg0KICAgICAgPHRyPg0KDQogICAgICAgIDx0ZD48Y29kZT4zMjwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICAgIDx0ZD48Y29kZT41NzY8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQoNCiAgICAgIDwvdHI+DQogICAgICA8dHI+DQogICAgICAgIDx0ZD48Y29kZT40ODwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICAgIDx0ZD48Y29kZT42NDA8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgIDwvdHI+DQogICAgICA8dHI+DQogICAgICAgIDx0ZD48Y29kZT42NDwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICAgIDx0ZD48Y29kZT43MjA8L2NvZGU+PC90ZD4NCg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgIDwvdHI+DQogICAgICA8dHI+DQogICAgICAgIDx0ZD48Y29kZT43MjwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCg0KICAgICAgICA8dGQ+PGNvZGU+ODAwPC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgPC90cj4NCiAgICAgIDx0cj4NCiAgICAgICAgPHRkPjxjb2RlPjE0NDwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KDQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgICA8dGQ+PGNvZGU+OTEyPC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQogICAgICA8L3RyPg0KICAgICAgPHRyPg0KICAgICAgICA8dGQ+PGNvZGU+MTYwPC9jb2RlPjwvdGQ+DQoNCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgICA8dGQ+PGNvZGU+MTAyNDwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgPC90cj4NCg0KICAgICAgPHRyPg0KICAgICAgICA8dGQ+PGNvZGU+MjAwPC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgICAgPHRkPjxjb2RlPjExNTI8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgPC90cj4NCiAgICAgIDx0cj4NCiAgICAgICAgPHRkPjxjb2RlPjI4ODwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgICAgPHRkPjxjb2RlPjEyODA8L2NvZGU+PC90ZD4NCg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgPC90cj4NCiAgICAgIDx0cj4NCiAgICAgICAgPHRkPjxjb2RlPjMyMDwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCg0KICAgICAgICA8dGQ+PGNvZGU+MTQ0MDwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgPC90cj4NCiAgICAgIDx0cj4NCiAgICAgICAgPHRkPjxjb2RlPjQwMDwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KDQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgICA8dGQ+PGNvZGU+MTYwMDwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgPC90cj4NCiAgICAgIDx0cj4NCiAgICAgICAgPHRkPjxjb2RlPjUxMjwvY29kZT48L3RkPg0KDQogICAgICAgIDx0ZD5ObzwvdGQ+DQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgICA8dGQ+PGNvZGU+ZDwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgPC90cj4NCiAgICA8L3Rib2R5PjwvdGFibGU+PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBhbGJ1bXRodW1ic2l6ZT0iMjAwIiAtIFRoZSBzaXplIG9mIHRoZSBhbGJ1bSB0aHVtYm5haWwgcmVxdWVzdGVkLiAgR29vZ2xlIG9ubHkgYWxsb3dzIHBhcnRpY3VsYXIgdmFsdWVzIGZvciB0aGlzLiAgU2VlIGltYWdldGh1bWJzaXplIGVudHJ5IG9yIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vYXBpcy9waWNhc2F3ZWIvcmVmZXJlbmNlLmh0bWwiPmh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vYXBpcy9waWNhc2F3ZWIvcmVmZXJlbmNlLmh0bWw8L2E+Zm9yIHRoaXMgdGFibGUuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBoZWFkZXI9IjAiIC0gSHZpcyBkZXR0ZSBzJmFlbGlnO3R0ZXMgdGlsIDEgdmlsIG1vZHVsZXQgcmV0dXJuZXJlIGV2ZW50dWVsIGhlYWRlci1pbmZvcm1hdGlvbiBzb20gZXIga3ImYWVsaWc7dmV0IGZvciB2aXNuaW5nZW4uPC9saT48L3VsPg==]]></help>
	<about><![CDATA[PGJyIC8+TGF2ZXQgYWY6IFJvcmlrIEouIE1lbGJlcmcvTW9ydGVuIFBvdWxzZW4gJmx0O3JvcmlrLm1lbGJlcmdAZ21haWwuY29tL21vcnRlbnBvdWxzZW5AZ21haWwuY29tJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDIuMC4zPGJyIC8+]]></about>
	<description><![CDATA[Viser Picasa Web Albums inde i CMS Made Simple]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmIChpc3NldCgkcGFyYW1zWyJoZWFkZXIiXSkpIHsKICAkdGhpcy0+T3V0cHV0SGVhZGVySW5mbygpOwogIHJldHVybjsKfQoKaWYgKGVtcHR5KCRwYXJhbXNbJ2FsYnVtJ10pICYmIGVtcHR5KCRwYXJhbXNbJ2FsYnVtaWQnXSkpIHsKICBpZiAoJHBhcmFtc1snZGVidWcnXSA9PSB0cnVlKSBlY2hvICJEaXNwbGF5IEFsYnVtcyI7CgogICR0aGlzLT5kaXNwbGF5QWxidW1zKCRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsKfQplbHNlIHsKICBpZiAoJHBhcmFtc1snZGVidWcnXSA9PSB0cnVlKSBlY2hvICJEaXNwbGF5IEFsYnVtIjsKCiAgJHRoaXMtPmRpc3BsYXlBbGJ1bSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghJHRoaXMtPlZpc2libGVUb0FkbWluVXNlcigpKSB7CiAgcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwp9CgokdGhlbWVPYmplY3QgPSAmJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddOwoKLy8gVGhlIHRhYnMKZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCk7CiRhY3RpdmVfdGFiID0gaXNzZXQoJHBhcmFtc1snYWN0aXZlX3RhYiddKSA/ICRwYXJhbXNbJ2FjdGl2ZV90YWInXSA6IEZBTFNFOwovLyBUYWIgaGVhZGVycwppZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbigiTW9kaWZ5IFRlbXBsYXRlcyIpKSB7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdhbGJ1bXNfdGVtcGxhdGUnLCAkdGhpcy0+TGFuZygiYWxidW1zdGVtcGxhdGUiKSwgKCdhbGJ1bXNfdGVtcGxhdGUnID09ICRhY3RpdmVfdGFiKSk7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdpbWFnZXNfdGVtcGxhdGUnLCAkdGhpcy0+TGFuZygiaW1hZ2VzdGVtcGxhdGUiKSwgKCdpbWFnZXNfdGVtcGxhdGUnID09ICRhY3RpdmVfdGFiKSk7Cn0KaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oIk1vZGlmeSBTaXRlIFByZWZlcmVuY2VzIikpIHsKICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3NldHRpbmdzJywgJHRoaXMtPkxhbmcoInNldHRpbmdzIiksICgnc2V0dGluZ3MnID09ICRhY3RpdmVfdGFiKSk7Cn0KZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CmlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCJNb2RpZnkgVGVtcGxhdGVzIikpIHsKICBlY2hvICR0aGlzLT5TdGFydFRhYignYWxidW1zX3RlbXBsYXRlJywgJHBhcmFtcyk7IHsKICAgICR0aGlzLT5fQWRtaW5FZGl0RGVmYXVsdFRlbXBsYXRlRm9ybSgkaWQsICRyZXR1cm5pZCwKICAgICAgICAgICAgJ2FsYnVtcycsCiAgICAgICAgICAgICdhbGJ1bXNfdGVtcGxhdGUnLAogICAgICAgICAgICAkdGhpcy0+TGFuZygndGl0bGVfZWRpdF9hbGJ1bV90ZW1wbGF0ZScpLAogICAgICAgICAgICAnb3JpZ19hbGJ1bXMudHBsJywKICAgICAgICAgICAgJHRoaXMtPkxhbmcoJ2luZm9fcmVjaXBlX3RlbXBsYXRlJykpOwogIH0KICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy9yZWNpcGVfZGV0YWlsX3RlbXBsYXRlCiAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2ltYWdlc190ZW1wbGF0ZScsICRwYXJhbXMpOyB7CiAgICAkdGhpcy0+X0FkbWluRWRpdERlZmF1bHRUZW1wbGF0ZUZvcm0oJGlkLCAkcmV0dXJuaWQsCiAgICAgICAgICAgICdpbWFnZXMnLAogICAgICAgICAgICAnaW1hZ2VzX3RlbXBsYXRlJywKICAgICAgICAgICAgJHRoaXMtPkxhbmcoJ3RpdGxlX2VkaXRfZGV0YWlsX3RlbXBsYXRlJyksCiAgICAgICAgICAgICdvcmlnX2ltYWdlcy50cGwnLAogICAgICAgICAgICAkdGhpcy0+TGFuZygnaW5mb19lZGl0X2RldGFpbF90ZW1wbGF0ZScpKTsKICB9CiAgZWNobyAkdGhpcy0+RW5kVGFiKCk7Cn0KaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oIk1vZGlmeSBTaXRlIFByZWZlcmVuY2VzIikpIHsKICBlY2hvICR0aGlzLT5TdGFydFRhYignc2V0dGluZ3MnLCAkcGFyYW1zKTsKICBpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pIC4gIi9mdW5jdGlvbi5zZXR0aW5ncy5waHAiKTsKICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKfQplY2hvICR0aGlzLT5FbmRUYWJDb250ZW50KCk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.savesettings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpKSB7CiAgcmV0dXJuOwp9CgppZiAoaXNzZXQoJHBhcmFtc1siZmlsZW5hbWVkZXNjcmlwdGlvbiJdKSkgewogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCJmaWxlbmFtZWRlc2NyaXB0aW9uIiwkcGFyYW1zWyJmaWxlbmFtZWRlc2NyaXB0aW9uIl0pOwp9IGVsc2UgewogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCJmaWxlbmFtZWRlc2NyaXB0aW9uIiwiMCIpOwp9CgppZiAoaXNzZXQoJHBhcmFtc1siaW5jbHVkZWpxdWVyeSJdKSkgewogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCJpbmNsdWRlanF1ZXJ5IiwkcGFyYW1zWyJpbmNsdWRlanF1ZXJ5Il0pOwp9IGVsc2UgewogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCJpbmNsdWRlanF1ZXJ5IiwiMCIpOwp9CgppZiAoaXNzZXQoJHBhcmFtc1siZGVmYXVsdHVzZXIiXSkpICR0aGlzLT5TZXRQcmVmZXJlbmNlKCJkZWZhdWx0dXNlciIsJHBhcmFtc1siZGVmYXVsdHVzZXIiXSk7CmlmIChpc3NldCgkcGFyYW1zWyJkZWZhdWx0YWxidW0iXSkpICR0aGlzLT5TZXRQcmVmZXJlbmNlKCJkZWZhdWx0YWxidW0iLCRwYXJhbXNbImRlZmF1bHRhbGJ1bSJdKTsKaWYgKGlzc2V0KCRwYXJhbXNbImRlZmF1bHRpbWFnZXNpemUiXSkpICR0aGlzLT5TZXRQcmVmZXJlbmNlKCJkZWZhdWx0aW1hZ2VzaXplIiwkcGFyYW1zWyJkZWZhdWx0aW1hZ2VzaXplIl0pOwppZiAoaXNzZXQoJHBhcmFtc1siZGVmYXVsdGltYWdldGh1bWJzaXplIl0pKSAkdGhpcy0+U2V0UHJlZmVyZW5jZSgiZGVmYXVsdGltYWdldGh1bWJzaXplIiwkcGFyYW1zWyJkZWZhdWx0aW1hZ2V0aHVtYnNpemUiXSk7CmlmIChpc3NldCgkcGFyYW1zWyJkZWZhdWx0YWxidW10aHVtYnNpemUiXSkpICR0aGlzLT5TZXRQcmVmZXJlbmNlKCJkZWZhdWx0YWxidW10aHVtYnNpemUiLCRwYXJhbXNbImRlZmF1bHRhbGJ1bXRodW1ic2l6ZSJdKTsKCgokcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJyA9PiAic2V0dGluZ3NzYXZlZCIsICdhY3RpdmVfdGFiJyA9PiAkcGFyYW1zWydhY3RpdmVfdGFiJ10pOwokdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.updatetemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpKSB7CiAgcmV0dXJuOwp9CgppZiAoaXNzZXQoJHBhcmFtc1sncmVzZXR0b2RlZmF1bHQnXSkpIHsKICAvLyBSZXNldCB0ZW1wbGF0ZSB0byBvcmlnaW5hbAogICRmbiA9IGRpcm5hbWUoX19GSUxFX18pIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICd0ZW1wbGF0ZXMnIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdvcmlnaW5hbCcgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJHBhcmFtc1snc3lzdGVtdGVtcGxhdGUnXTsgIAogIGlmIChmaWxlX2V4aXN0cygkZm4pKSB7CiAgICAkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgkcGFyYW1zWyd0ZW1wbGF0ZV9uYW1lJ10sICR0ZW1wbGF0ZSk7CiAgfQp9IGVsc2UgewogICR0aGlzLT5TZXRUZW1wbGF0ZSgkcGFyYW1zWyd0ZW1wbGF0ZV9uYW1lJ10sICRwYXJhbXNbJ2lucHV0X3RlbXBsYXRlJ10pOwp9CgokcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJyA9PiAidGVtcGxhdGV1cGRhdGVkIiwgJ2FjdGl2ZV90YWInID0+ICRwYXJhbXNbJ2FjdGl2ZV90YWInXSk7CiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/function.settings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdzYXZlc2V0dGluZ3MnLCAkcmV0dXJuaWQsICdwb3N0JywgJycsIGZhbHNlLCAnICcsIGFycmF5KCdhY3RpdmVfdGFiJyA9PiAic2V0dGluZ3MiKSkpOwokc21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCiRzbWFydHktPmFzc2lnbignbW9kdWxlJywgJHRoaXMpOwoKLy8kc21hcnR5LT5hc3NpZ24oJ2ZpbGVuYW1lZGVzY3JpcHRpb250ZXh0JywgJHRoaXMtPkxhbmcoJ2ZpbGVuYW1lZGVzY3JpcHRpb24nKSk7Cgokc21hcnR5LT5hc3NpZ24oJ2ZpbGVuYW1lZGVzY3JpcHRpb25pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgImZpbGVuYW1lZGVzY3JpcHRpb24iLCAiMSIsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJmaWxlbmFtZWRlc2NyaXB0aW9uIiwgMCkpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbmNsdWRlanF1ZXJ5aW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICJpbmNsdWRlanF1ZXJ5IiwgIjEiLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgiaW5jbHVkZWpxdWVyeSIsIDEpKSk7Cgokc21hcnR5LT5hc3NpZ24oJ2RlZmF1bHR1c2VyaW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgImRlZmF1bHR1c2VyIiwgJHRoaXMtPkdldFByZWZlcmVuY2UoImRlZmF1bHR1c2VyIikpKTsKJHNpemVzPWFycmF5KAogICAgIiozMnB4Ij0+MzIsCiAgICAiKjQ4cHgiPT40OCwKICAgICIqNjRweCI9PjY0LAogICAgIio3MnB4Ij0+NzIsCiAgICAiKjE0NHB4Ij0+MTQ0LAogICAgIioxNTBweCI9PjE1MCwKICAgICIqMTYwcHgiPT4xNjAsCiAgICAiOTRweCI9Pjk0LAogICAgIjExMHB4Ij0+MTEwLAogICAgIjEyOHB4Ij0+MTI4LAogICAgIjIwMHB4Ij0+MjAwLAogICAgIjIyMHB4Ij0+MjIwLAogICAgIjI4OHB4Ij0+Mjg4LAogICAgIjMyMHB4Ij0+MzIwLAogICAgIjQwMHB4Ij0+NDAwLAogICAgIjUxMnB4Ij0+NTEyLAogICAgIjU3NnB4Ij0+NTc2LAogICAgIjY0MHB4Ij0+NjQwLAogICAgIjcyMHB4Ij0+NzIwLAogICAgIjgwMHB4Ij0+ODAwLAogICAgIjkxMnB4Ij0+OTEyLAogICAgIjEwMjRweCI9PjEwMjQsCiAgICAiMTE1MnB4Ij0+MTE1MiwKICAgICIxMjgwcHgiPT4xMjgwLAogICAgIjE0NDBweCI9PjE0NDAsCiAgICAiMTYwMHB4Ij0+MTYwMCk7CiRzbWFydHktPmFzc2lnbignZGVmYXVsdGltYWdlc2l6ZWlucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAiZGVmYXVsdGltYWdlc2l6ZSIsICRzaXplcywgLTEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkZWZhdWx0aW1hZ2VzaXplIiw1MTIpKSk7CiRzbWFydHktPmFzc2lnbignZGVmYXVsdGltYWdldGh1bWJzaXplaW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICJkZWZhdWx0aW1hZ2V0aHVtYnNpemUiLCAkc2l6ZXMsIC0xLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgiZGVmYXVsdGltYWdldGh1bWJzaXplIiw0OCkpKTsKJHNtYXJ0eS0+YXNzaWduKCdkZWZhdWx0YWxidW10aHVtYnNpemVpbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgImRlZmF1bHRhbGJ1bXRodW1ic2l6ZSIsICRzaXplcywgLTEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkZWZhdWx0YWxidW10aHVtYnNpemUiLDEyOCkpKTsKCiRzbWFydHktPmFzc2lnbignZGVmYXVsdHVzZXJpbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAiZGVmYXVsdHVzZXIiLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgiZGVmYXVsdHVzZXIiKSkpOwoKCi8vJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF90ZW1wbGF0ZScsICR0aGlzLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGlkLCAkdGhpcy0+R2V0VGVtcGxhdGUoJHRlbXBsYXRlX25hbWUpLCAnaW5wdXRfdGVtcGxhdGUnLCcnLCAnJywgJycsICcnLCAnODAnLCAnMTUnLCcnLCdodG1sJykpOwokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCAkdGhpcy0+TGFuZygnc2F2ZXNldHRpbmdzJykpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnc2V0dGluZ3MudHBsJyk7Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhpgBYAPcAAAAslbPJ9Mc4JZcIAsTCvQaADclnWoDEe3J7fZljrlFbWv9/AIiPkZanydS8aOPi3pZ/IV2G2f7088WcATl+PS5gqrq5tJpSS6Wlpsiflp9ts/fEvMOwr2l6mlxmabOztN3b1YuKjfD0+Km+rP+HEOqvp/bvyf8zM8aPiJsxKDOgLKyAvU9xuKGntcjVzHGOdi1Vqfnqi52kpcqyTV59YGdwcz5pwuXr9LKNAp658P2zs+Xz5YWSrMao0t7e3seykP/y8nOc8Fh6v/2AgW3Lc/xaW5SVl/+Zmf+XMPXMxtPh+r3Cw5rjnq0ZCho/kVmyVK+0vqitr01mm9NYSOXY6/+vYC9Okf7m5nO+bnmQtdjNpqZraLx8dum8tbOKwtK6261NQKaTTGa4YbvFzOCXjZnPlfvlZYim4tjh78PT8n2cyu/Ry7msdX2Fh6Hmpf/5/v/v3//fv/Dr46O52v/Xr96+L/tBQrqgL/GZjNt2aBRErsznyvH2/32e42KK2s7b98XHzXyVfvrb1s+Eep+MPHWFqJqZnP/Pnwg3nECmOc9LOYxCOjtqr7cqGr/hvbW6xNOqBqhlXr+ezPLYWbLbsPf116Kbd0t30N3i5f+fQN1qXJav1P+/fyhZv/Lr9dPMtRhEobvH3/n27OmckoqZuVFcYG+ocKXVoufu672+vZWv5ff3+IeQn/uzqJOZm/L58q6wsfKkmbDD38yx1q6eZEh0tczMzP+PIMjY+EZnrNfX2HqMsOWAcfxnaO/lu//++a04LXSX3M/Mxvr+/7yJhN/O5uzPNW6Bqufn5v/nz////93p/XyVx/7Z2fz65szV42qJZt3d5P/37+nw/ausrK2lpamSNtnt1+Hl62SGyuzi8PDv7uyRhP+nUP+3cP2mpqZ3uH6bhJKbqv2NjqSfk+7ZaKGahfe+tYqSlP/MzLu+w6m2z8O5tggykbVIOdnE4QY3pfmvo9RhUniEnabA8v74wfT4/tvx/55xasjMzbvP+P6/wK3Srt/u8epzYr3N5CwAAAAApgBYAAAI/wCVCRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzAXNktHE0jMmzgN7hvX64TPnz6LDNFxJadRlt+AKl16oogOm0ejhny3ShmQIkyz+jwitStHKisSrKgKZIhWplyV0fHKlmKPBHDFahNo9izQtAuqSGvLl+GqsHHhapirbJzdn3gXIEnWt7FBbeACBx4sUMfhE4kXkGDs2LE2DZJDv6t8OLNmzp3b/g3NerSydHbOmj6duq0X1rhnCWwWO+tsxXtrS52Fu7ik3b2X/s4rPKq24sU1eBJ4Fa3ABdizY1/bPOdt6KEpD/+srnT5glvdcVIBH3rFdIN1EV/Xrp1T+pjf2cMdmzA+5vn0YYfefS49px9cXlSl0BHyKROgdocQ2NJbBx7XkGX/Ofggdt1IyFJk+lnokGXmZRechycZyN4XEjXzDYAbRojiSV/o51pFG2bnzYwnURjdjTjmuEAmPJqUH2viXSQkdkWWBBiShGG05AJNklScextNCUdBq+ji5Zdg6oJKlRDhxp8Iz2Q0ZRwF6VLKm3DG+WYNS7TpA5kGsZagMiIIsYmaS7JJkJtyFvpmGwp+8KYueBIUmoV9VvCnlEueKBChNUSh6aZRtOEBnAwIFMWbHzQ60JEWosFIBZICKqRBhLb/gdAqrsDJ6CoMuKKgqfmxqIyqrLZKaY4kwHqoQgy86YqpBxGXgGv/rBrspEoKSWSbxyaUz7E+tMHArgPp4kob5LbxwZgI6SJDuQzUqQwq3oK7yhIMlGsuugat8oG9MqC7rrsPFaOBa7IEO62rG9qHbSmyJhSrMqOWUupA8BpaShQGVVwoAj5EjLFA+XxaqAcAD/SByHJi/KYHEa1CWMEGs0qtRUtyN2i26R7r8UA+oGzosjz7LKcHyV58qcVwllwr0kuXQpEaMR887IPFGsuwQhGHuvO7KLty57w1wPnxKl3fukTYcX6MwJxLKJjP2qV4oGDEpdA5pg9NwzkR1FHL/5xRHIAHLjhqN1+NUM9v1rl10R4wWlDTYzZdskB5Y7wKnPgKRHbi78Kpa5s+SyRC31KnRCgCYXqZT9M1VLUzKnDmgxDcPsBOKkJtiK2MD3CCK5AMty/d+kHb6i0R333/uUMZzDfv/PPQR++8IzkjHacHd0L8JsYRN3yQDwxgrGjdDuuuDJwILJH5KjLIUJXIsuNufEQ3kN7qHirkr//+/Pfv//57qJ71GJY97Rktd6WYHEKW9rHZbe93Q2uDDNTHs5UpZAnzi8gmSPcn/P3vgyDUnxjKFzd7sSsKBRTVAxHouIWwEFkPVAb7kMaAMT2MhE6biAhqkTxleDCEQORfIv92QELvMWRnL2RIEhcYQ4GgYl2G8gAqbijAijyjhz8MohZPoRAqHnGFb4rfQoo2MfkZ7SBTjALcSuEKTCmkeDmkyAZj1kEt2hELC/HiQnYGPDYmZBVRkF33EmI7o4WsBpkzmQXhlMLHZXBvdPShHYP4hFfkEWdfNBqhStHIgSDQB7xbFEKKZjQyIkRvRTMiQUL5Jowg736TDGElGaJHrMUQgYg0yPg4qQwEYs8gGNTd+Ia3sBooY5NAIwgq0NbK87USHdHYHTocgrw6xvJ/s6QlJvcYQ1aSTEHgA5VAEBe3DygIFaR84ObqJkZlLEFkQCMlA7I3L6ENJIelmCY64sj/kDn4LYvX1N8BLNmQWiZka+6UEzPfhIBdBRN9PoPbxx5aQgSuDF2rWGPcNLrGewokbur4FETQUAtrBjR/iaAERAyKEIQec6Fx+hboorgEhL7TYjVIIa4s9i0LCkQBHzVEDQzBT4fcQJInVcEBiAiRjErsISGTIpf2BacatHFWH1hjDdy3Ow9IlWJqjJO5fHcpV6CMAY5Llgw8qgwFbAsQRX3INU56gAAyqyuvOMUTtPiEUzD1rm15hSPKIAYxJAKlhS0DJf4K2MY69rGQjaxkJ0vZylr2spjNrGY3y9nILkMVfejDGdJgD4/sgQlEMMVROwuRafSBBcfYxS6koAcb/5yBrBZBBREKQANksPYhyxBCLlLxgG1sAxkNcIITWqgRNxTgBbgFLDIs0MnWRsAKFthGQZghgwd0xLkveMNkYQEL31ZEHzBghXYLIgpk/GIggihBKwRhEBPEIAb1MMgyliECJeDCHs4NxBsGLIh4nIO+d92GDGzxiwZvoyrI8IGCVrEKCSsDGeYViD36AIoyIkQC3NAEFwzQCHkURSCTmMEPZgCJSYhCIMsIRjAicIlc8AAVARZILAxADHcIYBTvNdUSQmAEH9gCAxhAhi4MYQgMGNcIsEDyBzBghBYuww9WEMZC8AAGdmADG3kYwBQabIY7EAATy3DABGagjGn4gf8UIFiHHpygjlfkeAOK4MA9BCGAJmiZWRhgFBTmIYdVGEG7H0jFNozgWwxYQBm2gMWA3/CHTjjBFgq5giLwgY1hDOMKUxhABuoBCUtgQiDOqAMOPoHeFjT4DPAghTIC/AZ/uEMXSeDyBcZwVwzcyQKp2B0GLkUNZAxbGb6G9AcmjYtOIILXBZlGafmwgUbgo7QCwUMTIhGDCZgD28owwwTCEARQQEEguNBDB37h3HBcQR7AQMEgUDAGTKzXVIFWhgXq5IO1HpMaqDh2vm3xgQb/YhqXgEchCCICVUTgDH5oQCu2vatWNCISZoAELXbVbUIEAR7HEEgonCAOdhfA3Yr/SAE7fNAPETQ238BWxisMgYpfJFrBAkk2ICQ9EFiD4g8DWcUzHpENeGShC01IQYYnvoUYQMIaq1VGDHBAjmXYoB190IcQ5sEoWitiAByALDXulApACGQJMkCycY89dmWLVyAIB0AullEQVYBCHJoWtUAkoIkLPKISqtaCQKRhDAio48IYiIANpACCBjOhAIFQBjcGAIwkNPgKErjrKxpM4YEoWUHr3TznC/IMGACgE6pQwn6VkI128EAZGwBGE8jQBV64wxCn1oU1cKAFX5TDGobAxkDo0Qk95EAgu6WAC35hgAE0QRN5GMQafnsQNBTCCoiAAQuEkI1jdMACvxiGsA+4cIEt0DvDILBEGNjwAwIInw/06AMzctEOeIRCGfyAhilGsAoREOMCixAJHJBI1BcujyAOLQAFgAACcnBv9oANmHADvsMH2BANEqgM9hAELNACS2ALDaAHVoAuEvBgAtEPmGBvQVaAIREAncADcmBwZ4AI56aCLaEKsUYQOWAFh0eDLJEGoKAHqvAHf0APl8AK3sWDLPEIUqB93AcLjYeELYEMgPAI6sCAKQiFKBIQADs=]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1BpY2FzYSBXZWIgQWxidW0gQnJvd3Nlcic7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0luc3RhbGxlZCEgIENvbmdyYXR1bGF0aW9ucyEnOwokbGFuZ1sncG9zdGluc3RhbGxfZm9wZW5fb2ZmJ10gPSAnUGljYXNhIFdlYiBBbGJ1bSBCcm93c2VyIHJlcXVpcmVzIGVpdGhlciBjVVJMIHRvIGJlIGluc3RhbGxlZCBvciB0aGUgImFsbG93X3VybF9mb3BlbiIgcGhwLmluaSBzZXR0aW5nIHRvIGJlIHNldCB0byB0cnVlLiAgSWYgdGhlc2UgY29uZGl0aW9ucyBhcmUgbm90IG1ldCAod2hpY2ggdGhleSBhcmUgY3VycmVudGx5IG5vdCkgdGhlIFBpY2FzYSBXZWIgQWxidW0gQnJvd3NlciB3aWxsIG5vdCB3b3JrLiAgQ29udGFjdCB5b3VyIHN5c3RlbSBhZG1pbmlzdHJhdG9yLCBvciB1c2VkIGZvciBpbnN0YW5jZSBwaHBpbmZvIHRvIGRpYWdub3NlIHRoZSBwcm9ibGVtJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdVbmluc3RhbGxlZCc7CiRsYW5nWydyZWFsbHlfdW5pbnN0YWxsJ10gPSAnUmVhbGx5PyBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gdW5pbnN0YWxsIHRoaXMgZmluZSBtb2R1bGU/JzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHVuaW5zdGFsbGVkJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGxlZC4nOwokbGFuZ1sncHJlZnN1cGRhdGVkJ10gPSAnU2V0dGluZ3Mgc2F2ZWQnOwokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAnQWNjZXNzIERlbmllZC4gUGxlYXNlIGNoZWNrIHlvdXIgcGVybWlzc2lvbnMuJzsKJGxhbmdbJ2Vycm9yJ10gPSAnRXJyb3IhJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnU2hvd3MgUGljYXNhIFdlYiBBbGJ1bXMgaW5zaWRlIENNUyBNYWRlIFNpbXBsZS4nOwoKLy9Vc2VyIEludGVyZmFjZQokbGFuZ1snbGlua19iYWNrX3RleHQnXSA9ICJCYWNrIHRvIEFsYnVtIExpc3QiOyAgLy9MaW5rIFRleHQgZm9yICJCYWNrIiBidXR0b24gb24gSW1hZ2UgVmlld2VyCgokbGFuZ1siYWxidW1zdGVtcGxhdGUiXT0nQWxidW1zIHRlbXBsYXRlJzsKJGxhbmdbImltYWdlc3RlbXBsYXRlIl09J0ltYWdlcyB0ZW1wbGF0ZSc7CiRsYW5nWyJzZXR0aW5ncyJdPSdTZXR0aW5ncyc7CiRsYW5nWyJzYXZlc2V0dGluZ3MiXT0nU2F2ZSBzZXR0aW5ncyc7CiRsYW5nWyJzZXR0aW5nc3NhdmVkIl09J1NldHRpbmdzIHNhdmVkJzsKJGxhbmdbImJhc2ljYWxidW10ZW1wbGF0ZSJdPSJCYXNpYyBhbGJ1bSB0ZW1wbGF0ZSI7CiRsYW5nWyJpbWFnZW9mdGV4dCJdPSJvZiI7CgovL1NldHRpbmdzCiRsYW5nWyJmaWxlbmFtZWRlc2NyaXB0aW9uIl09IlNob3cgZmlsZW5hbWUgd2hlbiBpbWFnZSBpcyBsYWNraW5nIGEgZGVzY3JpcHRpb24iOwokbGFuZ1siZGVmYXVsdHNldHRpbmdzIl09IkRlZmF1bHQgc2V0dGluZ3MiOwokbGFuZ1siZGVmYXVsdHVzZXIiXT0iRGVmYXVsdCB1c2VyIjsKJGxhbmdbImRlZmF1bHRpbWFnZXNpemUiXT0iRGVmYXVsdCBpbWFnZSBzaXplIjsKJGxhbmdbImRlZmF1bHRpbWFnZXRodW1ic2l6ZSJdPSJEZWZhdWx0IGltYWdlIHRodW1ic2l6ZSI7CiRsYW5nWyJkZWZhdWx0YWxidW10aHVtYnNpemUiXT0iRGVmYXVsdCBhbGJ1bSB0aHVtYnNpemUiOwokbGFuZ1sic3F1YXJlc2l6ZWhlbHAiXT0iU2l6ZXMgYmVnaW5uaW5nIHdpdGggKiB3aWxsIGJlIHJlbmRlcmVkIGFzIGEgbmljZWx5IGNyb3BwZWQgc3F1YXJlIjsKJGxhbmdbImluY2x1ZGVqcXVlcnkiXT0iSW5jbHVkZSBqUXVlcnkiOwoKJGxhbmdbImluY2x1ZGVqcXVlcnloZWxwIl09IkFzIG1hbnkgb3RoZXIgc3lzdGVtcyBhcmUgYmFzZWQgb24gdGhlIGpRdWVyeS1zeXN0ZW0sIHVuY2hlY2tpbmcgdGhpcyBvcHRpb24gY2FuIGF2b2lkIHRoaXMgYmVpbmcgaW5jbHVkZSBtdWx0aXBsZSB0aW1lcy4iOwoKLy9BZG1pbiBUYWdzIGZvciBhZG1pbiBwYWdlcwokbGFuZ1sndGl0bGVfZWRpdF9hbGJ1bV90ZW1wbGF0ZSddID0gJ0VkaXQgQWxidW0gVGVtcGxhdGUnOwokbGFuZ1snaW5mb19yZWNpcGVfdGVtcGxhdGUnXSA9ICdUaGlzIHRlbXBsYXRlIHdpbGwgZGlzcGxheSB3aGVuIGFsYnVtcyBhcmUgYmVpbmcgdmlld2VkJzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUnOwokbGFuZ1snc3VibWl0J10gPSAnU3VibWl0JzsKJGxhbmdbJ3Jlc2V0dG9kZWZhdWx0J10gPSAnUmVzZXQgdG8gc3lzdGVtIHRlbXBsYXRlJzsKJGxhbmdbJ3RlbXBsYXRldXBkYXRlZCddID0gJ1RlbXBsYXRlIHVwZGF0ZWQnOwokbGFuZ1snY29uZmlybXJlc2V0dG9kZWZhdWx0J10gPSAnQXJlIHlvdSBzdXJlIHRoaXMgdGVtcGxhdGUgc2hvdWxkIGJlIHJlc2V0IHRvIHRoZSBzZWxlY3RlZCBzeXN0ZW0gdGVtcGxhdGU/JzsKJGxhbmdbJ3RpdGxlX2VkaXRfZGV0YWlsX3RlbXBsYXRlJ10gPSAnRWRpdCBJbWFnZXMgVGVtcGxhdGUnOwokbGFuZ1snaW5mb19lZGl0X2RldGFpbF90ZW1wbGF0ZSddID0gJ1RoaXMgdGVtcGxhdGUgd2lsbCBkaXNwbGF5IHdoZW4gdmlld2luZyB0aGUgZGV0YWlsIG9mIGFuIGFsYnVtJzsKCi8vIFByb3BlcnR5IGhlbHAKJGxhbmdbJ2hlbHBfYWxidW0nXSA9ICdUaGUgbmFtZSBvZiB0aGUgYWxidW0geW91IHdvdWxkIGxpa2UgdG8gc2VlLiAgVGhpcyBuYW1lIGlzIHdoYXQgUGljYXNhIHVzZXMgdG8gcmVmZXJlbmNlIGFuIGFsYnVtIHdoaWNoIGlzIHdoYXQgeW91IG5hbWVkIHRoZSBhbGJ1bSB3aXRoIHNwYWNlcyBhbmQgc3BlY2lhbCBjaGFyYWN0ZXJzIHN0cmlwcGVkIG91dC4gIElmIGFuIGFsYnVtIG5hbWUgZG9zZW50IHdvcmssIHB1bGwgdXAgdGhhdCBhbGJ1bSBpbiBwaWNhc2Egd2ViIGFsYnVtcyBhbmQgbG9vayBhdCB0aGUgY29tbWFuZCBsaW5lLiAgRm9yIGV4YW1wbGUsIG15IGFsYnVtIGNhbGxlZCAiTUctNCIgdXJsIGxvb2tzIGxpa2UgdGhpczogImh0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9yb3Jpay5tZWxiZXJnL01HNCIuICBUaGUgaHlwaGVuIGlzIHN0cmlwcGVkIG91dCwgc28gaWYgSSB3YW50IHRvIHNob3cgb25seSB0aGlzIGFsYnVtLCB0aGUgYWxidW0gcHJvcGVydHkgc2hvdWxkIGJlIHNldCB0byAiTUc0Ii4nOwokbGFuZ1snaGVscF91c2VyJ10gPSAnUmVxdWlyZWQuIFRoZSBnb29nbGUgdXNlciBuYW1lIG9mIHRoZSBwZXJzb24gd2hvIGhhcyB0aGUgYWxidW1zIHRvIGJlIGRpc3BsYXllZC4nOwokbGFuZ1snaGVscF9oZWFkZXInXSA9ICdJZiBzZXQgdG8gMSB0aGUgbW9kdWxlIHdpbGwgb3V0cHV0IGFueSBoZWFkZXItaW5mbyByZXF1aXJlZCBmb3IgaW1hZ2VzIHZpZXcnOwokbGFuZ1snaGVscF9leGNsdWRlJ10gPSAnTGlzdCBvZiBtYXNrcyB0byBleGNsdWRlLCBkZWxpbWl0ZWQgYnkgc2VtaWNvbG9ucy4gVGhpcyBpcyBhIHNpbXBsZSBzdHJpbmcgY29tcGFyZSwgaWYgdGhlIGVudGlyZSBzdHJpbmcgaXMgYW55d2hlcmUgaW4gdGhlIEFsYnVtIG5hbWUsIGl0IHdpbGwgYmUgZXhjbHVkZWQuIEJvdGggdGhlIGluY2x1ZGUgYW5kIGV4Y2x1ZGUgY2FuIGJlIHVzZWQgYXQgdGhlIHNhbWUgdGltZS4gIEV4Y2x1ZGUgd2lsbCBvdmVycnJpZGUgaW5jbHVkZXMuICBGb3IgZXhhbXBsZSwgaWYgdGhlIHZhbHVlIGZvciBleGNsdWRlIGlzICJkb287ZGFoOyIgIEFsbCBhbGJ1bXMgd2l0aCBkb28gYW5kIGRhaCBhcHBlYXJpbmcgaW4gdGhlbSB3aWxsIG5vdCBiZSBzaG93bic7CiRsYW5nWydoZWxwX2luY2x1ZGUnXSA9ICdMaXN0IG9mIG1hc2tzIHRvIGluY2x1ZGUsIGRlbGltaXRlZCBieSBzZW1pY29sb25zLiBUaGlzIGlzIGEgc2ltcGxlIHN0cmluZyBjb21wYXJlLCBpZiB0aGUgZW50aXJlIHN0cmluZyBpcyBhbnl3aGVyZSBpbiB0aGUgQWxidW0gbmFtZSwgaXQgd2lsbCBiZSBpbmNsdWRlZC4gQm90aCB0aGUgaW5jbHVkZSBhbmQgZXhjbHVkZSBjYW4gYmUgdXNlZCBhdCB0aGUgc2FtZSB0aW1lLiAgRXhjbHVkZSB3aWxsIG92ZXJycmlkZSBpbmNsdWRlcy4gIEZvciBleGFtcGxlLCBpZiB0aGUgdmFsdWUgZm9yIGluY2x1ZGUgaXMgImRvbztkYWg7IiBvbmx5IGFsYnVtcyB3aXRoIGRvbyBhbmQgZGFoIGluIHRoZW0gd2lsbCBiZSBkaXNwbGF5ZWQnOwokbGFuZ1snaGVscF9hbGJ1bXRodW1ic2l6ZSddID0gJ1RoZSBzaXplIG9mIHRoZSBhbGJ1bSB0aHVtYm5haWwgcmVxdWVzdGVkLiAgR29vZ2xlIG9ubHkgYWxsb3dzIHBhcnRpY3VsYXIgdmFsdWVzIGZvciB0aGlzLiAgU2VlIGltYWdldGh1bWJzaXplIGVudHJ5IG9yIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vYXBpcy9waWNhc2F3ZWIvcmVmZXJlbmNlLmh0bWwiPmh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vYXBpcy9waWNhc2F3ZWIvcmVmZXJlbmNlLmh0bWw8L2E+Zm9yIHRoaXMgdGFibGUuJzsKJGxhbmdbJ2hlbHBfaW1hZ2VzaXplJ10gPSAnVGhlIHNpemUgb2YgdGhlIGltYWdlIHJlcXVlc3RlZC4gIEdvb2dsZSBvbmx5IGFsbG93cyBwYXJ0aWN1bGFyIHZhbHVlcyBmb3IgdGhpcy4gIFNlZSBpbWFnZXRodW1ic2l6ZSBlbnRyeSBvciA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL2FwaXMvcGljYXNhd2ViL3JlZmVyZW5jZS5odG1sIj5odHRwOi8vY29kZS5nb29nbGUuY29tL2FwaXMvcGljYXNhd2ViL3JlZmVyZW5jZS5odG1sPC9hPiBmb3IgdGhpcyB0YWJsZS4nOwokbGFuZ1snaGVscF9pbWFnZXRodW1ic2l6ZSddID0gJ1RoZSBzaXplIG9mIHRoZSBpbWFnZSByZXF1ZXN0ZWQuICBHb29nbGUgb25seSBhbGxvd3MgcGFydGljdWxhciB2YWx1ZXMgZm9yIHRoaXMuICBTZWUgYmVsb3cgb3IgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcGlzL3BpY2FzYXdlYi9yZWZlcmVuY2UuaHRtbCI+aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcGlzL3BpY2FzYXdlYi9yZWZlcmVuY2UuaHRtbDwvYT4gZm9yIHRoaXMgdGFibGUuICBDcm9wcGVkIG1lYW5zIHRoZSB0aHVtYm5haWwgeW91IGdldCBpcyBzcXVhcmUuICBPbmx5IGVtYmVkZGFibGUgc2l6ZXMgYXJlIHZhbGlkIGZvciB0aGlzIG1vZHVsZS4gIElmIHlvdSBnZXQgZG93bmxvYWQgcHJvbXB0cyBmcm9tIHRoZSBicm93c2VyLCB5b3UgaGF2ZSBwcm9iYWJseSBwaWNrZWQgYSBzaXplIHRoYXQgaXMgdG9vIGJpZy4KICAgIDx0YWJsZT4KICAgICA8dGJvZHk+PHRyPgogICAgICAgIDx0aD5TaXplPC90aD4KICAgICAgICA8dGg+Q3JvcHBlZDwvdGg+CiAgICAgICAgPHRoPkVtYmVkZGFibGU8L3RoPgogICAgICAgIDx0aD5TaXplPC90aD4KICAgICAgICA8dGg+Q3JvcHBlZDwvdGg+CiAgICAgICAgPHRoPkVtYmVkZGFibGU8L3RoPgogICAgICA8L3RyPgogICAgICA8dHI+CgogICAgICAgIDx0ZD48Y29kZT4zMjwvY29kZT48L3RkPgogICAgICAgIDx0ZD5ZZXM8L3RkPgogICAgICAgIDx0ZD5ZZXM8L3RkPgogICAgICAgIDx0ZD48Y29kZT41NzY8L2NvZGU+PC90ZD4KICAgICAgICA8dGQ+Tm88L3RkPgogICAgICAgIDx0ZD5ZZXM8L3RkPgoKICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD48Y29kZT40ODwvY29kZT48L3RkPgogICAgICAgIDx0ZD5ZZXM8L3RkPgogICAgICAgIDx0ZD5ZZXM8L3RkPgogICAgICAgIDx0ZD48Y29kZT42NDA8L2NvZGU+PC90ZD4KICAgICAgICA8dGQ+Tm88L3RkPgoKICAgICAgICA8dGQ+WWVzPC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD48Y29kZT42NDwvY29kZT48L3RkPgogICAgICAgIDx0ZD5ZZXM8L3RkPgogICAgICAgIDx0ZD5ZZXM8L3RkPgogICAgICAgIDx0ZD48Y29kZT43MjA8L2NvZGU+PC90ZD4KCiAgICAgICAgPHRkPk5vPC90ZD4KICAgICAgICA8dGQ+WWVzPC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD48Y29kZT43MjwvY29kZT48L3RkPgogICAgICAgIDx0ZD5ObzwvdGQ+CiAgICAgICAgPHRkPlllczwvdGQ+CgogICAgICAgIDx0ZD48Y29kZT44MDA8L2NvZGU+PC90ZD4KICAgICAgICA8dGQ+Tm88L3RkPgogICAgICAgIDx0ZD5ZZXM8L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPjxjb2RlPjE0NDwvY29kZT48L3RkPgogICAgICAgIDx0ZD5ObzwvdGQ+CgogICAgICAgIDx0ZD5ZZXM8L3RkPgogICAgICAgIDx0ZD48Y29kZT45MTI8L2NvZGU+PC90ZD4KICAgICAgICA8dGQ+Tm88L3RkPgogICAgICAgIDx0ZD5ObzwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+PGNvZGU+MTYwPC9jb2RlPjwvdGQ+CgogICAgICAgIDx0ZD5ZZXM8L3RkPgogICAgICAgIDx0ZD5ZZXM8L3RkPgogICAgICAgIDx0ZD48Y29kZT4xMDI0PC9jb2RlPjwvdGQ+CiAgICAgICAgPHRkPk5vPC90ZD4KICAgICAgICA8dGQ+Tm88L3RkPgogICAgICA8L3RyPgoKICAgICAgPHRyPgogICAgICAgIDx0ZD48Y29kZT4yMDA8L2NvZGU+PC90ZD4KICAgICAgICA8dGQ+WWVzPC90ZD4KICAgICAgICA8dGQ+WWVzPC90ZD4KICAgICAgICA8dGQ+PGNvZGU+MTE1MjwvY29kZT48L3RkPgogICAgICAgIDx0ZD5ObzwvdGQ+CgogICAgICAgIDx0ZD5ObzwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+PGNvZGU+Mjg4PC9jb2RlPjwvdGQ+CiAgICAgICAgPHRkPk5vPC90ZD4KICAgICAgICA8dGQ+WWVzPC90ZD4KICAgICAgICA8dGQ+PGNvZGU+MTI4MDwvY29kZT48L3RkPgoKICAgICAgICA8dGQ+Tm88L3RkPgogICAgICAgIDx0ZD5ObzwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+PGNvZGU+MzIwPC9jb2RlPjwvdGQ+CiAgICAgICAgPHRkPk5vPC90ZD4KICAgICAgICA8dGQ+WWVzPC90ZD4KCiAgICAgICAgPHRkPjxjb2RlPjE0NDA8L2NvZGU+PC90ZD4KICAgICAgICA8dGQ+Tm88L3RkPgogICAgICAgIDx0ZD5ObzwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+PGNvZGU+NDAwPC9jb2RlPjwvdGQ+CiAgICAgICAgPHRkPk5vPC90ZD4KCiAgICAgICAgPHRkPlllczwvdGQ+CiAgICAgICAgPHRkPjxjb2RlPjE2MDA8L2NvZGU+PC90ZD4KICAgICAgICA8dGQ+Tm88L3RkPgogICAgICAgIDx0ZD5ObzwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+PGNvZGU+NTEyPC9jb2RlPjwvdGQ+CgogICAgICAgIDx0ZD5ObzwvdGQ+CiAgICAgICAgPHRkPlllczwvdGQ+CiAgICAgICAgPHRkPjxjb2RlPmQ8L2NvZGU+PC90ZD4KICAgICAgICA8dGQ+Tm88L3RkPgogICAgICAgIDx0ZD5ObzwvdGQ+CiAgICAgIDwvdHI+CiAgICA8L3Rib2R5PjwvdGFibGU+JzsKCiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgZGlzcGxheXMgYSBsaXN0IG9mIHB1YmxpYyBQaWNhc2EgV2ViIEFsYnVtcyBvbiBhIHBhZ2UgaW4gQ01TTVMuICBZb3UgY2FuIGFsc28gc2hvdyB0aGUgY29udGVudHMgb2YgYSBzaW5nbGUgYWxidW0gb24gYSBwYWdlLiAgVGhlIGFsYnVtIHZpZXcgc2hvd3MgdGh1bWJuYWlscyBhbmQgd2hlbiBhIHRodW1ibmFpbCBpcyBzZWxlY3RlZCB0aGUgcGljdHVyZSBpcyBzaG93biBpbiBhIHBvcC11cCBib3guICBUaGUgc2xpZGUgc2hvdyBmdW5jdGlvbmFsaXR5IGFsbG93cyB0aGUgdXNlciB0byBtb3ZlIGZvcndhcmQgYW5kIGJhY2sgdGhyb3VnaCB0aGUgcGljdHVyZXMgaW4gYW4gYWxidW0gdXNpbmcgdGhlIGFycm93IGtleXMgb3IgdGhlIG1vdXNlLiAgT3B0aW9uYWxseSB5b3UgY2FuIGNvbmZpZ3VyZSBhIHBhZ2UgdG8gc2hvdyBhIHNldCBvZiBhbGJ1bXMgdXNpbmcgdGhlIGluY2x1ZGUgYW5kIGV4Y2x1ZGUgYXR0cmlidXRlcy4gIFRoZXJlIGFyZSBwYXJhbWV0ZXJzIGZvciBhbGJ1bSB0aHVtYm5haWwsIGltYWdlIHRodW1ibmFpbCBhbmQgcGljdHVyZSBpbWFnZSBzaXplcy4gPC9wPgo8cD5UaGUgYWR2YW50YWdlIG9mIHVzaW5nIHRoaXMgbW9kdWxlIG92ZXIgdGhlIEFsYnVtIG1vZHVsZSBpcyB5b3UgY2FuIHVzZSB0aGUgUGljYXNhIGRlc2t0b3AgYXBwbGljYXRpb24gdG8gY3JvcCwgYmFsYW5jZSwgYW5ub3RhdGUsIG9yZ2FuaXplIGFuZCB1cGxvYWQgeW91ciBwaWN0dXJlcy4gIEdvb2dsZSBnaXZlcyB5b3UgMSBnYiBvZiBzcGFjZSB0byBzdG9yZSBwaG90b3MsIGFuZCBpZiB5b3UgaGF2ZSBhIGdtYWlsIGFjY291bnQsIHlvdSBhbHJlYWR5IGhhdmUgYSBsb2dpbi4gIFlvdSBjYW4gdXNlIFBpY2FzYSBvciB0aGUgUGljYXNhIFdlYiBBbGJ1bXMgKGh0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbSkgdG8gbWFuYWdlIG9yZGVyLCBhbGJ1bSBuYW1lcywgYW5kIHBpY3R1cmUgY2FwdGlvbnMuPC9wPgo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4KPHA+MS4gUGxhY2UgdGhlIHNtYXJ0eSB0YWcge1BpY2FzYUJyb3dzZXIgdXNlcj0idXNlcm5hbWUifSBvbiB0aGUgcGFnZS4gIFRvIHNob3cgYSBwYXJ0aWN1bGFyIGFsYnVtIGluY2x1ZGUgdGhlIGFsYnVtIHBhcmFtZXRlci48L3A+CjxwPjEuIFBsYWNlIHRoZSBzbWFydHkgdGFnIHtQaWNhc2FCcm93c2VyIGhlYWRlcj0xfSBpbiB5b3VyIHRlbXBsYXRlIG9yIG1ldGFkYXRhLiBUaGlzIGluc2VydHMgdGhlIHJlbGV2YW50IGhlYWRlci1pbmNsdXNpb25zLCBsaWtlIExpZ2h0Qm94LWphdmFzY3JpcHQgZXRjLjwvcD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPlRoZSBtb2R1bGUgZGV2ZWxvcG1lbnQgcGFnZSBhdDogPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9wd2Ficm93c2VyLyI+aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9wd2Ficm93c2VyLzwvYT48L2xpPgo8bGk+WW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGF0IHJvcmlrLm1lbGJlcmdAZ21haWwuY29tPC9saT4KPC91bD4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0IG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KPGgzPlJlcXVpcmVtZW50czwvaDM+CjxwPkJlY2F1c2UgdGhpcyBtb2R1bGUgbWFrZXMgd2ViIHJlcXVlc3RzIHRvIEdvb2dsZSwgeW91IG11c3QgaGF2ZSBlaXRoZXIgY1VSTCBvciB0aGUgImFsbG93X3VybF9mb3BlbiIgc2V0dGluZyBpbiB5b3VyIHBocC5pbmkgdHVybmVkIG9uLiAgY1VSTCBpcyB0aGUgcHJlZmZlcmVkIG1ldGhvZCBiZWNhdXNlIGl0IGFsbG93cyBjb21wcmVzc29uIGluIHRoZSByZXF1ZXN0IHdoaWNoIEdvb2dsZSB0YWtlcyBhZHZhbmFnZSBvZiBhbmQgYmVjYXVzZSBvZiB0aGUgc2l6ZSBvZiB0aGUgWE1MIGRvY3MsIHRoaXMgY2FuIGRyYXN0aWNhbGx5IHJlZHVjZSB0aGUgYW1vdW50IG9mIHRpbWUgbmVlZGVkIHRvIG1ha2UgYSByZXF1ZXN0IGVzcGVjaWFsbHkgd2hlbiB5b3UgaGF2ZSBtYW55IGFsYnVtcyBpbiB5b3VyIGxpYnJhcnkuPC9wPgo8cD5QaWNhc2EgeG1sIHN0cmVhbSBwcm9jZXNzaW5nIGlzIGRvbmUgd2l0aCB0aGUgU2ltcGxlWE1MIGxpYnJhcnksIHdoaWNoIHNob3VsZCBiZSBpbmNsdWRlZCBpbiBhIGRlZmF1bHQgUEhQIDUuMCBpbnN0YWxsLiBJZiB0aGlzIGlzIG5vdCBpbnN0YWxsZWQsIHRoaXMgbW9kdWxlIHdpbGwgbm90IHdvcmsuICBUaGlzIGFsc28gcmVzdHJpY3RzIHRoaXMgbW9kdWxlIHRvIFBIUCA1IG1hY2hpbmVzIG9ubHkuPC9wPgo8aDM+T3RoZXIgUGljYXNhIFdlYiBBbGJ1bSBoaW50czwvaDM+CjxwPklmIHlvdSB3b3VsZCBsaWtlIHRvIHNob3cgYSBzaW5nbGUgcGljdHVyZSBmcm9tIHlvdXIgd2ViIGFsYnVtLCB5b3UgY2FuIGdldCB0aGUgbGluayBmcm9tIHRoZSB3ZWIgYWxidW0gaW50ZXJmYWNlIGl0c2VsZi4gIEdvIHRvIHlvdXIgd2ViYWxidW0gcGFnZSAocGljYXNhd2ViLmdvb2dsZS5jb20vdXNlcm5hbWUpIGFuZCBicm93c2UgdG8gdGhlIHBpY3R1cmUgeW91IHdvdWxkIGxpa2UgdG8gc2hvdy4gIFRoZXJlIGlzIGFuIGV4cGFuZGFibGUgYm94IG9uIHRoZSByaWdodCBoYW5kIHNpZGUgdGhhdCBzYXlzICJsaW5rIHRvIHRoaXMgcGhvdG8iLiAgWW91IGNhbiBzZWxlY3QgdGhlIHNpemUgb2YgdGhlIHBpY3R1cmUgYW5kIHRoZW4gY29weSB0aGUgbGluayBmcm9tIHRoZSAiSFRNTCB0byBlbWJlZCBpbiB3ZWJzaXRlIiBib3guICBJIHVzdWFsbHkgcHVsbCB0aGUgc3JjIGF0dHJpYnV0ZSB2YWx1ZSBmcm9tIHRoZSBpbWFnZSB0YWcgYW5kIHVzZSBpdCB0byByZWZlcmVuY2UgdGhlIHBob3RvLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/da_DK.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1BpY2FzYSBXZWIgQWxidW0gZnJlbXZpc2VyJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnSW5zdGFsbGVyZXQhICBUaWxseWtrZSEnOwokbGFuZ1sncG9zdGluc3RhbGxfZm9wZW5fb2ZmJ10gPSAnUGljYXNhIFdlYiBBbGJ1bSBmcmVtdmlzZXJlbiBlbnRlbiBhdCBjVVJMIGVyIG1lZCBpIGRpbiBQSFAtaW5zdGFsbGF0aW9uIGVsbGVyIGF0ICZxdW90O2FsbG93X3VybF9mb3BlbiZxdW90OyBpbmRzdGlsbGluZ2VuIGkgcGhwLmluaSBlciBzYXQgdGlsICZxdW90O3RydWUmcXVvdDsuICBIdmlzIGluZ2VuIGFmIGRpc3NlIGtyYXYgZXIgb3BmeWxkIChvZyBkZXQgZXIgZGUgcHQuIGlra2UpIHZpcmtlciBQaWNhc2EgV2ViIEFsYnVtIGZyZW12aXNlcmVuIGlra2UuIFNuYWsgbWVkIGRpbiBzeXN0ZW0gYW5zdmFybGlnZSBvZyBiZW55dCBldnQuIHBocGluZm8gZm9yIGF0IGRpYWdub3N0aWNlcmUgcHJvYmxlbWV0Lic7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnQWZpbnN0YWxsZXJldCc7CiRsYW5nWydyZWFsbHlfdW5pbnN0YWxsJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7IGR1IHZpbCBhZmluc3RhbGxlcmUgZGV0dGUgZmluZSBtb2R1bD8nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGV0IGJsZXYgYWZpbnN0YWxsZXJldC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWwgdmVyc2lvbiAlcyBibGV2IGluc3RhbGxlcmV0JzsKJGxhbmdbJ3ByZWZzdXBkYXRlZCddID0gJ0luZHN0aWxsaW5nZXJuZSBibGV2IGdlbXQnOwokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAnQWRnYW5nIG4mYWVsaWc7Z3RldC4gVGplayBkaW5lIHRpbGxhZGVsc2VyLic7CiRsYW5nWydlcnJvciddID0gJ0ZlamwhJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxldCBibGV2IG9wZ3JhZGVyZXQgdGlsIHZlcnNpb24gJXMuJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnVmlzZXIgUGljYXNhIFdlYiBBbGJ1bXMgaW5kZSBpIENNUyBNYWRlIFNpbXBsZSc7CiRsYW5nWydsaW5rX2JhY2tfdGV4dCddID0gJ1RpbGJhZ2UgdGlsIEFsYnVtIGxpc3RlJzsKJGxhbmdbJ2FsYnVtc3RlbXBsYXRlJ10gPSAnQWxidW0gc2thYmVsb24nOwokbGFuZ1snaW1hZ2VzdGVtcGxhdGUnXSA9ICdCaWxsZWRlciBza2FiZWxvbic7CiRsYW5nWydzZXR0aW5ncyddID0gJ0luZHN0aWxsaW5nZXInOwokbGFuZ1snc2F2ZXNldHRpbmdzJ10gPSAnR2VtIGluZHN0aWxsaW5nZXInOwokbGFuZ1snc2V0dGluZ3NzYXZlZCddID0gJ0luZHN0aWxsaW5nZXJuZSBibGV2IGdlbXQnOwokbGFuZ1snYmFzaWNhbGJ1bXRlbXBsYXRlJ10gPSAnU2ltcGVsIGFsYnVtIHNrYWJlbG9uJzsKJGxhbmdbJ2ltYWdlb2Z0ZXh0J10gPSAnYWYnOwokbGFuZ1snZmlsZW5hbWVkZXNjcmlwdGlvbiddID0gJ1ZpcyBmaWxuYXZuZXQgaHZpcyBiaWxsZWRldCBpa2tlIGhhciBlbiBiZXNrcml2ZWxzZSc7CiRsYW5nWydkZWZhdWx0c2V0dGluZ3MnXSA9ICdTdGFuZGFyZCB2JmFlbGlnO3JkaWVyJzsKJGxhbmdbJ2RlZmF1bHR1c2VyJ10gPSAnU3RhbmRhcmQgYnJ1Z2VyJzsKJGxhbmdbJ2RlZmF1bHRpbWFnZXNpemUnXSA9ICdTdGFuZGFyZCBiaWxsZWQgc3Qmb3NsYXNoO3JyZWxzZSc7CiRsYW5nWydkZWZhdWx0aW1hZ2V0aHVtYnNpemUnXSA9ICdTdGFuZGFyZCBiaWxsZWQgZWtzZW1wZWwgc3Qmb3NsYXNoO3JyZWxzZSc7CiRsYW5nWydkZWZhdWx0YWxidW10aHVtYnNpemUnXSA9ICdTdGFuZGFyZCBhbGJ1bSBla3NlbXBlbCBzdCZvc2xhc2g7cnJlbHNlJzsKJGxhbmdbJ3NxdWFyZXNpemVoZWxwJ10gPSAnU3Qmb3NsYXNoO3JyZWxzZXIgZGVyIGJlZ3luZGVyIG1lZCAqIHZpbCBibGl2ZSB2aXN0IHNvbSBwJmFlbGlnO250IGJlc2smYXJpbmc7cm5lIGt2YWRyYXRlcic7CiRsYW5nWydpbmNsdWRlanF1ZXJ5J10gPSAnSW5rbHVkJmVhY3V0ZTtyIGpRdWVyeSc7CiRsYW5nWydpbmNsdWRlanF1ZXJ5aGVscCddID0gJ0RhIG1hbmdlIGFuZHJlIHN5c3RlbWVyIGVyIGJhc2VyZXQgcCZhcmluZzsgalF1ZXJ5LCBrYW4gbWFuIHZlZCBhdCBmamVybmUgbWFya2VyaW5nZW4gaGVyIHVuZGcmYXJpbmc7IGF0IGRldHRlIGJpYmxpb3RlayBibGl2ZXIgaW5rbHVkZXJldCBmbGVyZSBnYW5nZS4nOwokbGFuZ1sndGl0bGVfZWRpdF9hbGJ1bV90ZW1wbGF0ZSddID0gJ1JlZGlnZXIgYWxidW0gc2thYmVsb24nOwokbGFuZ1snaW5mb19yZWNpcGVfdGVtcGxhdGUnXSA9ICdEZW5uZSBza2FiZWxvbnZpbCBibGl2ZSBiZW55dHRldCBuJmFyaW5nO3IgYWxidW1zIHZpc2VzJzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnU2thYmVsb24nOwokbGFuZ1snc3VibWl0J10gPSAnU2VuZCc7CiRsYW5nWydyZXNldHRvZGVmYXVsdCddID0gJ0dlbnNrYWIgc3RhbmRhcmQnOwokbGFuZ1sndGVtcGxhdGV1cGRhdGVkJ10gPSAnU2thYmVsb25lbiBibGV2IG9wZGF0ZXJldCc7CiRsYW5nWydjb25maXJtcmVzZXR0b2RlZmF1bHQnXSA9ICdFciBkdSBzaWtrZXIgcCZhcmluZzsgZGVubmUgc2thYmVsb24gc2thbCBnZW5za2FiZXMgdGlsIGRlbiB2YWxndGUgc3RhbmRhcmQgdiZhZWxpZztyZGk/JzsKJGxhbmdbJ3RpdGxlX2VkaXRfZGV0YWlsX3RlbXBsYXRlJ10gPSAnUmVkaWdlciBiaWxsZWQgc2thYmVsb24nOwokbGFuZ1snaW5mb19lZGl0X2RldGFpbF90ZW1wbGF0ZSddID0gJ0Rlbm5lIHNrYWJlbG9uIGJlbnl0dGVzIHZlZCBkZXRhbGplcmV0IHZpc25pbmdzIGFmIGV0IGFsYnVtJzsKJGxhbmdbJ2hlbHBfYWxidW0nXSA9ICdUaGUgbmFtZSBvZiB0aGUgYWxidW0geW91IHdvdWxkIGxpa2UgdG8gc2VlLiAgVGhpcyBuYW1lIGlzIHdoYXQgUGljYXNhIHVzZXMgdG8gcmVmZXJlbmNlIGFuIGFsYnVtIHdoaWNoIGlzIHdoYXQgeW91IG5hbWVkIHRoZSBhbGJ1bSB3aXRoIHNwYWNlcyBhbmQgc3BlY2lhbCBjaGFyYWN0ZXJzIHN0cmlwcGVkIG91dC4gIElmIGFuIGFsYnVtIG5hbWUgZG9zZW50IHdvcmssIHB1bGwgdXAgdGhhdCBhbGJ1bSBpbiBwaWNhc2Egd2ViIGFsYnVtcyBhbmQgbG9vayBhdCB0aGUgY29tbWFuZCBsaW5lLiAgRm9yIGV4YW1wbGUsIG15IGFsYnVtIGNhbGxlZCAmcXVvdDtNRy00JnF1b3Q7IHVybCBsb29rcyBsaWtlIHRoaXM6ICZxdW90O2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9yb3Jpay5tZWxiZXJnL01HNCZxdW90Oy4gIFRoZSBoeXBoZW4gaXMgc3RyaXBwZWQgb3V0LCBzbyBpZiBJIHdhbnQgdG8gc2hvdyBvbmx5IHRoaXMgYWxidW0sIHRoZSBhbGJ1bSBwcm9wZXJ0eSBzaG91bGQgYmUgc2V0IHRvICZxdW90O01HNCZxdW90Oy4nOwokbGFuZ1snaGVscF91c2VyJ10gPSAnUCZhcmluZztrciZhZWxpZzt2ZXQuIEdvb2xlIGJydWdlcm5hdm5ldCBzb20gYWxidW0gc2thbCBoZW50ZXMgZnJhLic7CiRsYW5nWydoZWxwX2hlYWRlciddID0gJ0h2aXMgZGV0dGUgcyZhZWxpZzt0dGVzIHRpbCAxIHZpbCBtb2R1bGV0IHJldHVybmVyZSBldmVudHVlbCBoZWFkZXItaW5mb3JtYXRpb24gc29tIGVyIGtyJmFlbGlnO3ZldCBmb3IgdmlzbmluZ2VuLic7CiRsYW5nWydoZWxwX2V4Y2x1ZGUnXSA9ICdMaXN0IG9mIG1hc2tzIHRvIGV4Y2x1ZGUsIGRlbGltaXRlZCBieSBzZW1pY29sb25zLiBUaGlzIGlzIGEgc2ltcGxlIHN0cmluZyBjb21wYXJlLCBpZiB0aGUgZW50aXJlIHN0cmluZyBpcyBhbnl3aGVyZSBpbiB0aGUgQWxidW0gbmFtZSwgaXQgd2lsbCBiZSBleGNsdWRlZC4gQm90aCB0aGUgaW5jbHVkZSBhbmQgZXhjbHVkZSBjYW4gYmUgdXNlZCBhdCB0aGUgc2FtZSB0aW1lLiAgRXhjbHVkZSB3aWxsIG92ZXJycmlkZSBpbmNsdWRlcy4gIEZvciBleGFtcGxlLCBpZiB0aGUgdmFsdWUgZm9yIGV4Y2x1ZGUgaXMgJnF1b3Q7ZG9vO2RhaDsmcXVvdDsgIEFsbCBhbGJ1bXMgd2l0aCBkb28gYW5kIGRhaCBhcHBlYXJpbmcgaW4gdGhlbSB3aWxsIG5vdCBiZSBzaG93bic7CiRsYW5nWydoZWxwX2luY2x1ZGUnXSA9ICdMaXN0IG9mIG1hc2tzIHRvIGluY2x1ZGUsIGRlbGltaXRlZCBieSBzZW1pY29sb25zLiBUaGlzIGlzIGEgc2ltcGxlIHN0cmluZyBjb21wYXJlLCBpZiB0aGUgZW50aXJlIHN0cmluZyBpcyBhbnl3aGVyZSBpbiB0aGUgQWxidW0gbmFtZSwgaXQgd2lsbCBiZSBpbmNsdWRlZC4gQm90aCB0aGUgaW5jbHVkZSBhbmQgZXhjbHVkZSBjYW4gYmUgdXNlZCBhdCB0aGUgc2FtZSB0aW1lLiAgRXhjbHVkZSB3aWxsIG92ZXJycmlkZSBpbmNsdWRlcy4gIEZvciBleGFtcGxlLCBpZiB0aGUgdmFsdWUgZm9yIGluY2x1ZGUgaXMgJnF1b3Q7ZG9vO2RhaDsmcXVvdDsgb25seSBhbGJ1bXMgd2l0aCBkb28gYW5kIGRhaCBpbiB0aGVtIHdpbGwgYmUgZGlzcGxheWVkJzsKJGxhbmdbJ2hlbHBfYWxidW10aHVtYnNpemUnXSA9ICdUaGUgc2l6ZSBvZiB0aGUgYWxidW0gdGh1bWJuYWlsIHJlcXVlc3RlZC4gIEdvb2dsZSBvbmx5IGFsbG93cyBwYXJ0aWN1bGFyIHZhbHVlcyBmb3IgdGhpcy4gIFNlZSBpbWFnZXRodW1ic2l6ZSBlbnRyeSBvciA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL2FwaXMvcGljYXNhd2ViL3JlZmVyZW5jZS5odG1sIj5odHRwOi8vY29kZS5nb29nbGUuY29tL2FwaXMvcGljYXNhd2ViL3JlZmVyZW5jZS5odG1sPC9hPmZvciB0aGlzIHRhYmxlLic7CiRsYW5nWydoZWxwX2ltYWdlc2l6ZSddID0gJ1RoZSBzaXplIG9mIHRoZSBpbWFnZSByZXF1ZXN0ZWQuICBHb29nbGUgb25seSBhbGxvd3MgcGFydGljdWxhciB2YWx1ZXMgZm9yIHRoaXMuICBTZWUgaW1hZ2V0aHVtYnNpemUgZW50cnkgb3IgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcGlzL3BpY2FzYXdlYi9yZWZlcmVuY2UuaHRtbCI+aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcGlzL3BpY2FzYXdlYi9yZWZlcmVuY2UuaHRtbDwvYT4gZm9yIHRoaXMgdGFibGUuJzsKJGxhbmdbJ2hlbHBfaW1hZ2V0aHVtYnNpemUnXSA9ICdUaGUgc2l6ZSBvZiB0aGUgaW1hZ2UgcmVxdWVzdGVkLiAgR29vZ2xlIG9ubHkgYWxsb3dzIHBhcnRpY3VsYXIgdmFsdWVzIGZvciB0aGlzLiAgU2VlIGJlbG93IG9yIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vYXBpcy9waWNhc2F3ZWIvcmVmZXJlbmNlLmh0bWwiPmh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vYXBpcy9waWNhc2F3ZWIvcmVmZXJlbmNlLmh0bWw8L2E+IGZvciB0aGlzIHRhYmxlLiAgQ3JvcHBlZCBtZWFucyB0aGUgdGh1bWJuYWlsIHlvdSBnZXQgaXMgc3F1YXJlLiAgT25seSBlbWJlZGRhYmxlIHNpemVzIGFyZSB2YWxpZCBmb3IgdGhpcyBtb2R1bGUuICBJZiB5b3UgZ2V0IGRvd25sb2FkIHByb21wdHMgZnJvbSB0aGUgYnJvd3NlciwgeW91IGhhdmUgcHJvYmFibHkgcGlja2VkIGEgc2l6ZSB0aGF0IGlzIHRvbyBiaWcuDQogICAgPHRhYmxlPg0KICAgICA8dGJvZHk+PHRyPg0KICAgICAgICA8dGg+U2l6ZTwvdGg+DQogICAgICAgIDx0aD5Dcm9wcGVkPC90aD4NCiAgICAgICAgPHRoPkVtYmVkZGFibGU8L3RoPg0KICAgICAgICA8dGg+U2l6ZTwvdGg+DQogICAgICAgIDx0aD5Dcm9wcGVkPC90aD4NCiAgICAgICAgPHRoPkVtYmVkZGFibGU8L3RoPg0KICAgICAgPC90cj4NCiAgICAgIDx0cj4NCg0KICAgICAgICA8dGQ+PGNvZGU+MzI8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgICA8dGQ+PGNvZGU+NTc2PC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KDQogICAgICA8L3RyPg0KICAgICAgPHRyPg0KICAgICAgICA8dGQ+PGNvZGU+NDg8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgICA8dGQ+PGNvZGU+NjQwPC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQoNCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICA8L3RyPg0KICAgICAgPHRyPg0KICAgICAgICA8dGQ+PGNvZGU+NjQ8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgICA8dGQ+PGNvZGU+NzIwPC9jb2RlPjwvdGQ+DQoNCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICA8L3RyPg0KICAgICAgPHRyPg0KICAgICAgICA8dGQ+PGNvZGU+NzI8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQoNCiAgICAgICAgPHRkPjxjb2RlPjgwMDwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgIDwvdHI+DQogICAgICA8dHI+DQogICAgICAgIDx0ZD48Y29kZT4xNDQ8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgICAgPHRkPjxjb2RlPjkxMjwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgPC90cj4NCiAgICAgIDx0cj4NCiAgICAgICAgPHRkPjxjb2RlPjE2MDwvY29kZT48L3RkPg0KDQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgICAgPHRkPjxjb2RlPjEwMjQ8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgIDwvdHI+DQoNCiAgICAgIDx0cj4NCiAgICAgICAgPHRkPjxjb2RlPjIwMDwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICAgIDx0ZD48Y29kZT4xMTUyPC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQoNCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgIDwvdHI+DQogICAgICA8dHI+DQogICAgICAgIDx0ZD48Y29kZT4yODg8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICAgIDx0ZD48Y29kZT4xMjgwPC9jb2RlPjwvdGQ+DQoNCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgIDwvdHI+DQogICAgICA8dHI+DQogICAgICAgIDx0ZD48Y29kZT4zMjA8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQoNCiAgICAgICAgPHRkPjxjb2RlPjE0NDA8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgIDwvdHI+DQogICAgICA8dHI+DQogICAgICAgIDx0ZD48Y29kZT40MDA8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgICAgPHRkPjxjb2RlPjE2MDA8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgIDwvdHI+DQogICAgICA8dHI+DQogICAgICAgIDx0ZD48Y29kZT41MTI8L2NvZGU+PC90ZD4NCg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgICAgPHRkPjxjb2RlPmQ8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgIDwvdHI+DQogICAgPC90Ym9keT48L3RhYmxlPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGlzIGRpc3BsYXlzIGEgbGlzdCBvZiBwdWJsaWMgUGljYXNhIFdlYiBBbGJ1bXMgb24gYSBwYWdlIGluIENNU01TLiAgWW91IGNhbiBhbHNvIHNob3cgdGhlIGNvbnRlbnRzIG9mIGEgc2luZ2xlIGFsYnVtIG9uIGEgcGFnZS4gIFRoZSBhbGJ1bSB2aWV3IHNob3dzIHRodW1ibmFpbHMgYW5kIHdoZW4gYSB0aHVtYm5haWwgaXMgc2VsZWN0ZWQgdGhlIHBpY3R1cmUgaXMgc2hvd24gaW4gYSBwb3AtdXAgYm94LiAgVGhlIHNsaWRlIHNob3cgZnVuY3Rpb25hbGl0eSBhbGxvd3MgdGhlIHVzZXIgdG8gbW92ZSBmb3J3YXJkIGFuZCBiYWNrIHRocm91Z2ggdGhlIHBpY3R1cmVzIGluIGFuIGFsYnVtIHVzaW5nIHRoZSBhcnJvdyBrZXlzIG9yIHRoZSBtb3VzZS4gIE9wdGlvbmFsbHkgeW91IGNhbiBjb25maWd1cmUgYSBwYWdlIHRvIHNob3cgYSBzZXQgb2YgYWxidW1zIHVzaW5nIHRoZSBpbmNsdWRlIGFuZCBleGNsdWRlIGF0dHJpYnV0ZXMuICBUaGVyZSBhcmUgcGFyYW1ldGVycyBmb3IgYWxidW0gdGh1bWJuYWlsLCBpbWFnZSB0aHVtYm5haWwgYW5kIHBpY3R1cmUgaW1hZ2Ugc2l6ZXMuIDwvcD4NCjxwPlRoZSBhZHZhbnRhZ2Ugb2YgdXNpbmcgdGhpcyBtb2R1bGUgb3ZlciB0aGUgQWxidW0gbW9kdWxlIGlzIHlvdSBjYW4gdXNlIHRoZSBQaWNhc2EgZGVza3RvcCBhcHBsaWNhdGlvbiB0byBjcm9wLCBiYWxhbmNlLCBhbm5vdGF0ZSwgb3JnYW5pemUgYW5kIHVwbG9hZCB5b3VyIHBpY3R1cmVzLiAgR29vZ2xlIGdpdmVzIHlvdSAxIGdiIG9mIHNwYWNlIHRvIHN0b3JlIHBob3RvcywgYW5kIGlmIHlvdSBoYXZlIGEgZ21haWwgYWNjb3VudCwgeW91IGFscmVhZHkgaGF2ZSBhIGxvZ2luLiAgWW91IGNhbiB1c2UgUGljYXNhIG9yIHRoZSBQaWNhc2EgV2ViIEFsYnVtcyAoaHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tKSB0byBtYW5hZ2Ugb3JkZXIsIGFsYnVtIG5hbWVzLCBhbmQgcGljdHVyZSBjYXB0aW9ucy48L3A+DQo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4NCjxwPjEuIFBsYWNlIHRoZSBzbWFydHkgdGFnIHtQaWNhc2FCcm93c2VyIHVzZXI9JnF1b3Q7dXNlcm5hbWUmcXVvdDt9IG9uIHRoZSBwYWdlLiAgVG8gc2hvdyBhIHBhcnRpY3VsYXIgYWxidW0gaW5jbHVkZSB0aGUgYWxidW0gcGFyYW1ldGVyLjwvcD4NCjxwPjEuIFBsYWNlIHRoZSBzbWFydHkgdGFnIHtQaWNhc2FCcm93c2VyIGhlYWRlcj0xfSBpbiB5b3VyIHRlbXBsYXRlIG9yIG1ldGFkYXRhLiBUaGlzIGluc2VydHMgdGhlIHJlbGV2YW50IGhlYWRlci1pbmNsdXNpb25zLCBsaWtlIExpZ2h0Qm94LWphdmFzY3JpcHQgZXRjLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5UaGUgbW9kdWxlIGRldmVsb3BtZW50IHBhZ2UgYXQ6IDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvcHdhYnJvd3Nlci8iPmh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvcHdhYnJvd3Nlci88L2E+PC9saT4NCjxsaT5Zb3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYXQgcm9yaWsubWVsYmVyZ0BnbWFpbC5jb208L2xpPg0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dCBvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQo8aDM+UmVxdWlyZW1lbnRzPC9oMz4NCjxwPkJlY2F1c2UgdGhpcyBtb2R1bGUgbWFrZXMgd2ViIHJlcXVlc3RzIHRvIEdvb2dsZSwgeW91IG11c3QgaGF2ZSBlaXRoZXIgY1VSTCBvciB0aGUgJnF1b3Q7YWxsb3dfdXJsX2ZvcGVuJnF1b3Q7IHNldHRpbmcgaW4geW91ciBwaHAuaW5pIHR1cm5lZCBvbi4gIGNVUkwgaXMgdGhlIHByZWZmZXJlZCBtZXRob2QgYmVjYXVzZSBpdCBhbGxvd3MgY29tcHJlc3NvbiBpbiB0aGUgcmVxdWVzdCB3aGljaCBHb29nbGUgdGFrZXMgYWR2YW5hZ2Ugb2YgYW5kIGJlY2F1c2Ugb2YgdGhlIHNpemUgb2YgdGhlIFhNTCBkb2NzLCB0aGlzIGNhbiBkcmFzdGljYWxseSByZWR1Y2UgdGhlIGFtb3VudCBvZiB0aW1lIG5lZWRlZCB0byBtYWtlIGEgcmVxdWVzdCBlc3BlY2lhbGx5IHdoZW4geW91IGhhdmUgbWFueSBhbGJ1bXMgaW4geW91ciBsaWJyYXJ5LjwvcD4NCjxwPlBpY2FzYSB4bWwgc3RyZWFtIHByb2Nlc3NpbmcgaXMgZG9uZSB3aXRoIHRoZSBTaW1wbGVYTUwgbGlicmFyeSwgd2hpY2ggc2hvdWxkIGJlIGluY2x1ZGVkIGluIGEgZGVmYXVsdCBQSFAgNS4wIGluc3RhbGwuIElmIHRoaXMgaXMgbm90IGluc3RhbGxlZCwgdGhpcyBtb2R1bGUgd2lsbCBub3Qgd29yay4gIFRoaXMgYWxzbyByZXN0cmljdHMgdGhpcyBtb2R1bGUgdG8gUEhQIDUgbWFjaGluZXMgb25seS48L3A+DQo8aDM+T3RoZXIgUGljYXNhIFdlYiBBbGJ1bSBoaW50czwvaDM+DQo8cD5JZiB5b3Ugd291bGQgbGlrZSB0byBzaG93IGEgc2luZ2xlIHBpY3R1cmUgZnJvbSB5b3VyIHdlYiBhbGJ1bSwgeW91IGNhbiBnZXQgdGhlIGxpbmsgZnJvbSB0aGUgd2ViIGFsYnVtIGludGVyZmFjZSBpdHNlbGYuICBHbyB0byB5b3VyIHdlYmFsYnVtIHBhZ2UgKHBpY2FzYXdlYi5nb29nbGUuY29tL3VzZXJuYW1lKSBhbmQgYnJvd3NlIHRvIHRoZSBwaWN0dXJlIHlvdSB3b3VsZCBsaWtlIHRvIHNob3cuICBUaGVyZSBpcyBhbiBleHBhbmRhYmxlIGJveCBvbiB0aGUgcmlnaHQgaGFuZCBzaWRlIHRoYXQgc2F5cyAmcXVvdDtsaW5rIHRvIHRoaXMgcGhvdG8mcXVvdDsuICBZb3UgY2FuIHNlbGVjdCB0aGUgc2l6ZSBvZiB0aGUgcGljdHVyZSBhbmQgdGhlbiBjb3B5IHRoZSBsaW5rIGZyb20gdGhlICZxdW90O0hUTUwgdG8gZW1iZWQgaW4gd2Vic2l0ZSZxdW90OyBib3guICBJIHVzdWFsbHkgcHVsbCB0aGUgc3JjIGF0dHJpYnV0ZSB2YWx1ZSBmcm9tIHRoZSBpbWFnZSB0YWcgYW5kIHVzZSBpdCB0byByZWZlcmVuY2UgdGhlIHBob3RvLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4yMDM5ODg2NTg1LjEyMzE3MTM2MTguMTI4OTI2MjYxMC4xMjg5Mjk4ODg5LjE3NCc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyODg4MDEzMjEuMTY4LjUxLnV0bWNzcj1mZWVkYnVybmVyfHV0bWNjbj1GZWVkOiBjbXNtYWRlc2ltcGxlL2Jsb2cgKENNUyBNYWRlIFNpbXBsZSl8dXRtY21kPWZlZWQnOwokbGFuZ1sncWNhJ10gPSAnMTIyOTYwMTc5MC04NTI0MzE5Ny00MzI2MDcxMyc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1BpY2FzYSBXZWIgQWxidW0gQnJvd3NlciAnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdMZSBtb2R1bGUgZXN0IGluc3RhbGwmZWFjdXRlOyBhdmVjIHN1Y2MmZWdyYXZlO3MuJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsX2ZvcGVuX29mZiddID0gJ1BpY2FzYSBXZWIgQWxidW0gQnJvd3NlciByZXF1aXJlcyBlaXRoZXIgY1VSTCB0byBiZSBpbnN0YWxsZWQgb3IgdGhlICZxdW90O2FsbG93X3VybF9mb3BlbiZxdW90OyBwaHAuaW5pIHNldHRpbmcgdG8gYmUgc2V0IHRvIHRydWUuICBJZiB0aGVzZSBjb25kaXRpb25zIGFyZSBub3QgbWV0ICh3aGljaCB0aGV5IGFyZSBjdXJyZW50bHkgbm90KSB0aGUgUGljYXNhIFdlYiBBbGJ1bSBCcm93c2VyIHdpbGwgbm90IHdvcmsuICBVc2UgcGhwaW5mbyB0byB2ZXJpZnkgdGhlIHJlc3VsdHMgb2YgdGhpcyBjaGVjay4gIFRoZSB3YXkgeW91ciBtYWNoaW5lIGlzIGN1cnJlbmx0eSBjb25maWd1cmVkIHRoaXMgbW9kdWxlIHdpbGwgbm90IG9wZXJhdGUgcHJvcGVybHkuJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdEJmVhY3V0ZTtzaW5zdGFsbCZlYWN1dGU7JzsKJGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXSA9ICdFdGVzLXZvdXMgcyZ1Y2lyYztyIGRlIHZvdWxvaXIgZCZlYWN1dGU7c2luc3RhbGxlciBjZSBtb2R1bGUmbmJzcDs/JzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTGUgbW9kdWxlIGEgJmVhY3V0ZTt0JmVhY3V0ZTsgZCZlYWN1dGU7c2luc3RhbGwmZWFjdXRlOy4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTGUgbW9kdWxlIGVzdCBpbnN0YWxsJmVhY3V0ZTsgZW4gdmVyc2lvbiAlcy4nOwokbGFuZ1sncHJlZnN1cGRhdGVkJ10gPSAnTGEgY29uZmlndXJhdGlvbiBkdSBtb2R1bGUgYSAmZWFjdXRlO3QmZWFjdXRlOyBtaXNlICZhZ3JhdmU7IGpvdXIuJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ0FjYyZlZ3JhdmU7cyByZWZ1cyZlYWN1dGU7LiBWJmVhY3V0ZTtyaWZpZXogdm9zIGRyb2l0cyBkJiMwMzk7YWNjJmVncmF2ZTtzLic7CiRsYW5nWydlcnJvciddID0gJ0VycmV1ciZuYnNwOyEnOwokbGFuZ1sndXBncmFkZWQnXSA9ICdMZSBtb2R1bGUgYSAmZWFjdXRlO3QmZWFjdXRlOyBtaXMgJmFncmF2ZTsgam91ciB2ZXJzIGxhIHZlcnNpb24gJXMuJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnQWZmaWNoZSBsZXMgYWxidW1zIHdlYiBQaWNhc2EgJmFncmF2ZTsgbCYjMDM5O2ludCZlYWN1dGU7cmlldXIgZGUgQ01TIE1hZGUgU2ltcGxlLic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQo8bGk+VmVyc2lvbiAwLjEgMiBBdWd1c3QgMjAwNy4gSW5pdGlhbCBSZWxlYXNlLjwvbGk+PC91bD4NCjxsaT5WZXJzaW9uIDEuMCA3IEF1Z3VzdCAyMDA3LiBBZGRlZCBleGNsdWRlIGFuZCBpbmNsdWRlIHBhcmFtZXRlcnMuIEFsc28gYWRkZWQgYWRtaW4gcGFuZWwgZm9yIGVkaXRpbmcgdGVtcGxhdGVzIGZyb20gdGhlIGFkbWluIHBhbmVsLjwvbGk+PC91bD4gJzsKJGxhbmdbJ2xpbmtfYmFja190ZXh0J10gPSAnUmV0b3VyICZhZ3JhdmU7IGxhIGxpc3RlIGRlcyBhbGJ1bXMnOwokbGFuZ1sndGl0bGVfZWRpdF9hbGJ1bV90ZW1wbGF0ZSddID0gJ01vZGlmaWVyIGxlIGdhYmFyaXQgZGVzIGFsYnVtcyc7CiRsYW5nWydpbmZvX3JlY2lwZV90ZW1wbGF0ZSddID0gJ0NlIGdhYmFyaXQgZXN0IHV0aWxpcyZlYWN1dGU7IHBvdXIgbCYjMDM5O2FmZmljaGFnZSBkZXMgYWxidW1zJzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnR2FiYXJpdCc7CiRsYW5nWydzdWJtaXQnXSA9ICdTb3VtZXR0cmUnOwokbGFuZ1sncmVzZXR0b2RlZmF1bHQnXSA9ICdSJmVhY3V0ZTtpbml0aWFsaXNlciAmYWdyYXZlOyBsYSBjb25maWd1cmF0aW9uIHBhciBkJmVhY3V0ZTtmYXV0JzsKJGxhbmdbJ3RlbXBsYXRlX3VwZGF0ZWQnXSA9ICdMZSBnYWJhcml0IGEgJmVhY3V0ZTt0JmVhY3V0ZTsgbWlzICZhZ3JhdmU7IGpvdXInOwokbGFuZ1sndGl0bGVfZWRpdF9kZXRhaWxfdGVtcGxhdGUnXSA9ICdNb2RpZmllciBsZSBnYWJhcml0IGRlcyBpbWFnZXMnOwokbGFuZ1snaW5mb19lZGl0X2RldGFpbF90ZW1wbGF0ZSddID0gJ0NlIGdhYmFyaXQgZXN0IHV0aWxpcyZlYWN1dGU7IHBvdXIgbCYjMDM5O2FmZmljaGFnZSBkZXMgaW1hZ2VzIGNvbnRlbnVlcyBkYW5zIHVuIGFsYnVtJzsKJGxhbmdbJ2hlbHBfYWxidW0nXSA9ICdMZSBub20gZGUgbCYjMDM5O2FsYnVtICZhZ3JhdmU7IGFmZmljaGVyLiBDZSBub24gZXN0IGNlbHVpIHV0aWxpcyZlYWN1dGU7IHBhciBQaWNhc2EgcG91ciByJmVhY3V0ZTtmJmVhY3V0ZTtyZW5jZXIgdW4gYWxidW0gZXQgY29ycmVzcG9uZCBhdSBub20gZGUgdXN1ZWwgZGUgbCYjMDM5O2FsYnVtIHNhbnMgbGVzIGVzcGFjZXMgZXQgbmkgY2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4LiBTaSBsZSBub20gZCYjMDM5O2FsYnVtIG5lIGZvbmN0aW9ubmUgcGFzLCBhZmZpY2hlciBjZXQgYWxidW0gZGFucyBQaWNhc2EgZXQgcmVnYXJkZXIgbGUgY29udGVudSBkZSBsYSBsaWduZSBkZSBjb21tYW5kZSBkZSB2b3RyZSBuYXZpZ2F0ZXVyLiBQYXIgZXhlbXBsZSwgcG91ciB1biBhbGJ1bSBub21tJmVhY3V0ZTsgJnF1b3Q7TUctNCZxdW90OywgbCYjMDM5O1VSTCBlc3QgbGUgc3VpdmFudCAmcXVvdDtodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbm9tX3V0aWxpc2F0ZXVyX2dvb2dsZS9NRzQmcXVvdDsuIExlIHRyYWl0IGQmIzAzOTt1bmlvbiBlc3Qgc3VwcHJpbSZlYWN1dGU7LCBkb25jIHNpIHZvdXMgdm91bGV6IGFmZmljaGVyIGNldCBhbGJ1bSwgbGUgcGFyYW0mZWdyYXZlO3RyZSBhbGJ1bSBkb2l0ICZlY2lyYzt0cmUgY29uZmlndXImZWFjdXRlOyAmYWdyYXZlOyAmcXVvdDtNRzQmcXVvdDsuJzsKJGxhbmdbJ2hlbHBfdXNlciddID0gJ09ibGlnYXRvaXJlLiBMZSBub20gZGUgbCYjMDM5O3V0aWxpc2F0ZXVyIEdvb2dsZSAmYWdyYXZlOyBxdWkgYXBwYXJ0aWVudCBsJiMwMzk7YWxidW0gJmFncmF2ZTsgYWZmaWNoZXIgKGNvbXB0ZSBHb29nbGUpLic7CiRsYW5nWydoZWxwX2V4Y2x1ZGUnXSA9ICdMaXN0ZSBkZXMgbWFzcXVlcyAmYWdyYXZlOyBleGNsdXJlLCBkJmVhY3V0ZTtsaW1pdCZlYWN1dGU7cyBwYXIgdW4gcG9pbnQtdmlyZ3VsZS4gQyYjMDM5O2VzdCB1bmUgc2ltcGxlIGNvbXBhcmFpc29uIGRlIGNoYSZpY2lyYztuZSBkZSBjYXJhY3QmZWdyYXZlO3JlcyZuYnNwOzogc2kgbGEgY2hhJmljaXJjO25lIGVzdCBxdWVscXVlIHBhcnQgZGFucyB1biBub20gZCYjMDM5O2FsYnVtLCBjZWx1aS1jaSBzZXJhIGV4Y2x1LiBMZXMgZGV1eCBwYXJhbSZlZ3JhdmU7dHJlcyBpbmNsdWRlIGV0IGV4Y2x1ZGUgcGV1dmVudCAmZWNpcmM7dHJlIHV0aWxpcyZlYWN1dGU7cyBlbiBtJmVjaXJjO21lIHRlbXBzLiBQYXIgZXhlbXBsZSwgc2kgbGEgdmFsZXVyIHBvdXIgZXhjbHVkZSBlc3QgJnF1b3Q7ZG9vO2RhaDsmcXVvdDssIHRvdXMgbGVzIGFsYnVtcyBhdmVjIGRvbyBldCBkYWggZGFucyBsZXVyIG5vbSBuZSBzZXJvbnQgcGFzIGFmZmljaCZlYWN1dGU7cy4nOwokbGFuZ1snaGVscF9pbmNsdWRlJ10gPSAnTGlzdGUgZGVzIG1hc3F1ZXMgJmFncmF2ZTsgaW5jbHVyZSwgZCZlYWN1dGU7bGltaXQmZWFjdXRlO3MgcGFyIHVuIHBvaW50LXZpcmd1bGUuIEMmIzAzOTtlc3QgdW5lIHNpbXBsZSBjb21wYXJhaXNvbiBkZSBjaGEmaWNpcmM7bmUgZGUgY2FyYWN0JmVncmF2ZTtyZXMmbmJzcDs6IHNpIGxhIGNoYSZpY2lyYztuZSBlc3QgcXVlbHF1ZSBwYXJ0IGRhbnMgdW4gbm9tIGQmIzAzOTthbGJ1bSwgY2VsdWktY2kgc2VyYSBpbmNsdXMuIExlcyBkZXV4IHBhcmFtJmVncmF2ZTt0cmVzIGluY2x1ZGUgZXQgZXhjbHVkZSBwZXV2ZW50ICZlY2lyYzt0cmUgdXRpbGlzJmVhY3V0ZTtzIGVuIG0mZWNpcmM7bWUgdGVtcHMuIFBhciBleGVtcGxlLCBzaSBsYSB2YWxldXIgcG91ciBpbmNsdWRlIGVzdCAmcXVvdDtkb287ZGFoOyZxdW90Oywgc2V1bHMgbGVzIGFsYnVtcyBhdmVjIGRvbyBldCBkYWggZGFucyBsZXVyIG5vbSBzZXJvbnQgYWZmaWNoJmVhY3V0ZTtzLic7CiRsYW5nWydoZWxwX2FsYnVtdGh1bWJzaXplJ10gPSAnTGEgdGFpbGxlIGQmIzAzOTthZmZpY2hhZ2UgZGVzIHZpZ25ldHRlcyBkZXMgYWxidW1zLiBHb29nbGUgbiYjMDM5O2F1dG9yaXNlIHF1ZSBjZXJ0YWluZXMgdGFpbGxlcyBwb3VyIGxlcyB2aWduZXR0ZXMgOiBjZiBwYXJhbSZlZ3JhdmU7dHJlIHRodW1ic2l6ZSBzdXIgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcGlzL3BpY2FzYXdlYi9yZWZlcmVuY2UuaHRtbCI+aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcGlzL3BpY2FzYXdlYi9yZWZlcmVuY2UuaHRtbDwvYT4uJzsKJGxhbmdbJ2hlbHBfaW1hZ2VzaXplJ10gPSAnTGEgdGFpbGxlIGQmIzAzOTthZmZpY2hhZ2UgZGVzIGltYWdlcy4gR29vZ2xlIG4mIzAzOTthdXRvcmlzZSBxdWUgY2VydGFpbmVzIHRhaWxsZXMgcG91ciBsZXMgaW1hZ2VzIDogY2YgbGUgcGFyYW0mZWdyYXZlO3RyZSBpbWFnZW1heCBzdXIgPGEgaHJlZj0iaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcGlzL3BpY2FzYXdlYi9yZWZlcmVuY2UuaHRtbCI+aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcGlzL3BpY2FzYXdlYi9yZWZlcmVuY2UuaHRtbDwvYT4uJzsKJGxhbmdbJ2hlbHBfaW1hZ2V0aHVtYnNpemUnXSA9ICdMYSB0YWlsbGUgZCYjMDM5O2FmZmljaGFnZSBkZXMgaW1hZ2VzLiBHb29nbGUgbiYjMDM5O2F1dG9yaXNlIHF1ZSBjZXJ0YWluZXMgdGFpbGxlcyBwb3VyIGxlcyBpbWFnZXMgOiBjZiBsZSBwYXJhbSZlZ3JhdmU7dHJlIGltYWdlbWF4IHN1ciA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL2FwaXMvcGljYXNhd2ViL3JlZmVyZW5jZS5odG1sIj5odHRwOi8vY29kZS5nb29nbGUuY29tL2FwaXMvcGljYXNhd2ViL3JlZmVyZW5jZS5odG1sPC9hPi4gICZxdW90O0Nyb3BwZWQmcXVvdDsgc2lnbmlmaWUgcXVlIGxhIHZpZ25ldHRlIG9idGVudWUgc2VyYSBkZSBmb3JtZSBjYXJyJmVhY3V0ZTsuICBTZXVsZXMgbGVzIHRhaWxsZXMgZGl0ZXMgJnF1b3Q7ZW1iZWRkYWJsZSZxdW90OyAoY2YgIFVSTCBjaS1kZXNzdXMpIHNvbnQgc3VwcG9ydCZlYWN1dGU7ZXMgcGFyIGNlIG1vZHVsZS4gU2kgdm91cyBvYnRlbmV6IHVuIGFmZmljaGFnZSB2b3VzIGRlbWFuZGFudCBzaSB2b3VzIHZvdWxleiBmYWlyZSB1biB0JmVhY3V0ZTtsJmVhY3V0ZTtjaGFyZ2VtZW50LCBjJiMwMzk7ZXN0IHByb2JhYmxlbWVudCBxdWUgdm91cyBlc3NheWV6IGQmIzAzOTthZmZpY2hlciB1bmUgaW1hZ2UgdHJvcCBncmFuZGUuDQogICAgPHRhYmxlPg0KICAgICA8dGJvZHk+PHRyPg0KICAgICAgICA8dGg+VGFpbGxlPC90aD4NCiAgICAgICAgPHRoPkNyb3BwZWQ8L3RoPg0KICAgICAgICA8dGg+RW1iZWRkYWJsZTwvdGg+DQogICAgICAgIDx0aD5UYWlsbGU8L3RoPg0KICAgICAgICA8dGg+Q3JvcHBlZDwvdGg+DQogICAgICAgIDx0aD5FbWJlZGRhYmxlPC90aD4NCiAgICAgIDwvdHI+DQogICAgICA8dHI+DQoNCiAgICAgICAgPHRkPjxjb2RlPjMyPC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgICAgPHRkPjxjb2RlPjU3NjwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCg0KICAgICAgPC90cj4NCiAgICAgIDx0cj4NCiAgICAgICAgPHRkPjxjb2RlPjQ4PC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgICAgPHRkPjxjb2RlPjY0MDwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KDQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgPC90cj4NCiAgICAgIDx0cj4NCiAgICAgICAgPHRkPjxjb2RlPjY0PC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgICAgPHRkPjxjb2RlPjcyMDwvY29kZT48L3RkPg0KDQogICAgICAgIDx0ZD5ObzwvdGQ+DQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgPC90cj4NCiAgICAgIDx0cj4NCiAgICAgICAgPHRkPjxjb2RlPjcyPC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KDQogICAgICAgIDx0ZD48Y29kZT44MDA8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICA8L3RyPg0KICAgICAgPHRyPg0KICAgICAgICA8dGQ+PGNvZGU+MTQ0PC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQoNCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICAgIDx0ZD48Y29kZT45MTI8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgIDwvdHI+DQogICAgICA8dHI+DQogICAgICAgIDx0ZD48Y29kZT4xNjA8L2NvZGU+PC90ZD4NCg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICAgIDx0ZD48Y29kZT4xMDI0PC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQogICAgICA8L3RyPg0KDQogICAgICA8dHI+DQogICAgICAgIDx0ZD48Y29kZT4yMDA8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgICA8dGQ+PGNvZGU+MTE1MjwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KDQogICAgICAgIDx0ZD5ObzwvdGQ+DQogICAgICA8L3RyPg0KICAgICAgPHRyPg0KICAgICAgICA8dGQ+PGNvZGU+Mjg4PC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgICA8dGQ+PGNvZGU+MTI4MDwvY29kZT48L3RkPg0KDQogICAgICAgIDx0ZD5ObzwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQogICAgICA8L3RyPg0KICAgICAgPHRyPg0KICAgICAgICA8dGQ+PGNvZGU+MzIwPC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KDQogICAgICAgIDx0ZD48Y29kZT4xNDQwPC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQogICAgICA8L3RyPg0KICAgICAgPHRyPg0KICAgICAgICA8dGQ+PGNvZGU+NDAwPC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQoNCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICAgIDx0ZD48Y29kZT4xNjAwPC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQogICAgICA8L3RyPg0KICAgICAgPHRyPg0KICAgICAgICA8dGQ+PGNvZGU+NTEyPC9jb2RlPjwvdGQ+DQoNCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICAgIDx0ZD48Y29kZT5kPC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQogICAgICA8L3RyPg0KICAgIDwvdGJvZHk+PC90YWJsZT4nOwokbGFuZ1snaGVscCddID0gJzxoMz5RdWUgZmFpdCBjZSBtb2R1bGUgPzwvaDM+DQo8cD5DZSBtb2R1bGUgYWZmaWNoZSBsYSBsaXN0ZSBkZXMgYWxidW1zIHB1YmxpY3MgUGljYXNhIGRhbnMgQ01TTVMgZXQgcGVybWV0ICZlYWN1dGU7Z2FsZW1lbnQgZCYjMDM5O2FmZmljaGVyIGxlIGNvbnRlbnUgZCYjMDM5O3VuIGFsYnVtIHN1ciB1bmUgcGFnZS4gTGEgdnVlIGFsYnVtIGFmZmljaGUgbGVzIG1pbmlhdHVyZXMgZXQgbG9yc3F1JiMwMzk7dW5lIGQmIzAzOTtlbGxlcyBlc3QgcyZlYWN1dGU7bGVjdGlvbm4mZWFjdXRlO2UsIGwmIzAzOTtpbWFnZSBjb3JyZXNwb25kYW50ZSBlc3QgYWZmaWNoJmVhY3V0ZTtlIGVuIGdyYW5kIGZvcm1hdCBkYW5zIHVuZSBibyZpY2lyYzt0ZSBkZSB0eXBlIHBvcC11cC4gTGEgZm9uY3Rpb25uYWxpdCZlYWN1dGU7IGRpYXBvcmFtYSBwZXJtZXQgJmFncmF2ZTsgbCYjMDM5O3V0aWxpc2F0ZXVyIGRlIG5hdmlndWVyIHBhcm1pIGxlcyBwaG90b3MgZCYjMDM5O3VuIGFsYnVtIGF2ZWMgbGVzIHRvdWNoZXMgZmwmZWFjdXRlO2NoJmVhY3V0ZTtlcyBkdSBjbGF2aWVyIG91IGxhIHNvdXJpcy4gT3B0aW9ubmVsbGVtZW50IGlsIGVzdCBwb3NzaWJsZSBkZSBjb25maWd1cmVyIHVuZSBwYWdlIHBvdXIgYWZmaWNoZXIgdW5lIGxpc3RlIHImZWFjdXRlO2R1aXRlIGQmIzAzOTthbGJ1bXMgZW4gdXRpbGlzYW50IGxlcyBhdHRyaWJ1dHMgaW5jbHVyZSBvdSBleGNsdXJlLiBDZXMgcGFyYW0mZWdyYXZlO3RyZXMgc29udCB2YWxhYmxlcyBwb3VyIGxlcyBtaW5pYXR1cmVzIGRlcyBhbGJ1bXMsIGxlcyBtaW5pYXR1cmVzIGRlcyBpbWFnZXMgZXQgcG91ciBsYSB0YWlsbGUgZGVzIHBob3Rvcy48L3A+DQo8cD5MJiMwMzk7YXZhbnRhZ2UgZCYjMDM5O3V0aWxpc2VyIGNlIG1vZHVsZSBwYXIgcmFwcG9ydCBhdSBtb2R1bGUgQWxidW0gY2xhc3NpcXVlLCBlc3QgcXUmIzAzOTtpbCBlc3QgcG9zc2libGUgZCYjMDM5O3V0aWxpc2VyIGF1IHByJmVhY3V0ZTthbGFibGUgbCYjMDM5O2FwcGxpY2F0aW9uIFBpY2FzYSBzdXIgdW4gUEMgZW4gbG9jYWwgcG91ciByJmVhY3V0ZTtkdWlyZSwgdHJhaXRlciwgYW5ub3Rlciwgb3JnYW5pc2VyIHB1aXMgdCZlYWN1dGU7bCZlYWN1dGU7Y2hhcmdlciBsZXMgaW1hZ2VzIHZlcnMgbGUgbCYjMDM5O2FsYnVtIHdlYiBQaWNhc2EuIEdvb2dsZSBvZmZyZSAxR0IgcyYjMDM5O2VzcGFjZSBkZSBzdG9ja2FnZSBkZSBwaG90b3MsIGV0IHNpIHZvdXMgYXZleiB1biBjb21wdGUgZ21haWwsIHZvdXMgcG91dmV6IHV0aWxpc2VyIGxlIG0mZWNpcmM7bWUgY29tcHRlIHBvdXIgY3ImZWFjdXRlO2VyIHVuIGFsYnVtIHdlYiBQaWNhc2EgKGh0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbSk8L3A+DQo8aDM+Q29tbWVudCBsJiMwMzk7dXRpbGlzZXIgPzwvaDM+DQo8cD5JbCBzdWZmaXQgZCYjMDM5O2lucyZlYWN1dGU7cmVyIGxhIGJhbGlzZSBzbWFydHkge2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O1BpY2FzYVdlYkFsYnVtQnJvd3NlciYjMDM5OyB1c2VyPSYjMDM5O25vbV91dGlsaXNhdGV1cl9nb29nbGUmIzAzOTt9IGRhbnMgdW5lIHBhZ2UuICBQb3VyIGFmZmljaGVyIHVuIGFsYnVtIGVuIHBhcnRpY3VsaWVyLCBpbCBmYXV0IHJham91dGVyIGxlIHBhcmFtJmVncmF2ZTt0cmUgYWxidW0uPC9wPg0KDQo8aDM+RXhpZ2VuY2VzPC9oMz4NCjxwPlB1aXNxdWUgY2UgbW9kdWxlIGVudm9pZSBkZXMgcmVxdSZlY2lyYzt0ZXMgd2ViIHZlcnMgR29vZ2xlLCBpbCBmYXV0IGF2b2lyIGNVUkwgb3UgbGUgcGFyYW0mZWdyYXZlO3RyZSAmcXVvdDthbGxvd191cmxfZm9wZW4mcXVvdDsgYWN0aXYmZWFjdXRlOyBkYW5zIHZvdHJlIHBocC5pbmkuICBVdGlsaXNlciBwciZlYWN1dGU7ZiZlYWN1dGU7cmVudGllbGxlbWVudCBjVVJMIHBhcmNlIHF1JiMwMzk7aWwgcGVybWV0IHVuZSBjb21wcmVzc2lvbiBkYW5zIGxlcyByZXF1JmVjaXJjO3RlcyAoY2UgcXVpIGVzdCBzdXBwb3J0JmVhY3V0ZTsgcGFyIEdvb2dsZSkgZXQgZG9ubmUgYXVzc2kgdW4gYXZhbnRhZ2Ugc3VyIGxhIHRhaWxsZSBkZXMgZG9ubiZlYWN1dGU7ZXMgWE1MLiBDZWNpIHBldXQgciZlYWN1dGU7ZHVpcmUgZGUgbWFuaSZlZ3JhdmU7cmUgdHImZWdyYXZlO3Mgc2Vuc2libGUgbGUgdGVtcHMgbiZlYWN1dGU7Y2Vzc2FpcmUgcG91ciB1bmUgcmVxdSZlY2lyYzt0ZSwgc3VydG91dCBsb3JzcXUmIzAzOTtpbCB5IGEgZGUgbm9tYnJldXggYWxidW1zIGRhbnMgbGEgbGlicmFpcmllLjwvcD4NCjxwPkxlIHRyYWl0ZW1lbnQgZHUgZmx1eCBYTUwgaXNzdSBkZSBQaWNhc2EgZXN0IHImZWFjdXRlO2FsaXMmZWFjdXRlOyBwYXIgbGEgbGlicmFpcmllIFNpbXBsZVhNTCBxdWkgZXN0IG5vcm1hbGVtZW50IGluc3RhbGwmZWFjdXRlO2UgcGFyIGQmZWFjdXRlO2ZhdXQgYXZlYyBQSFA1LiBTaSBjZSBuJiMwMzk7ZXN0IHBhcyBsZSBjYXMsIGNlIG1vZHVsZSBuZSBmb25jdGlvbm5lcmEgcGFzLiBDZWxhIGltcGxpcXVlIGRvbmMgcXVlIGNlIG1vZHVsZSBuZSBwZXV0ICZlY2lyYzt0cmUgdXRpbGlzJmVhY3V0ZTsgcXVlIHN1ciB1bmUgcGxhdGVmb3JtZSBmb25jdGlvbm5hbnQgYXZlYyBQSFA1LjwvcD4NCjxoMz5EJiMwMzk7YXV0cmVzIGZvbmN0aW9ubmFsaXQmZWFjdXRlO3MgZGUgUGljYXNhIFdlYiBBbGJ1bTwvaDM+DQo8cD5TaSB2b3VzIHZvdWxleiBhZmZpY2hlciB1bmUgc2V1bGUgaW1hZ2UgZGUgdm90cmUgYWxidW0gd2ViLCB2b3VzIHBvdXZleiB1dGlsaXNlciBsZSBsaWVuIGRpcmVjdCBpbmRpcXUmZWFjdXRlOyBzdXIgbGUgc2l0ZSB3ZWIgUGljYXNhLiBSZW5kZXotdm91cyBkb25jIHN1ciBsYSBwYWdlIHdlYiBQaWNhc2EgZGUgdm90cmUgYWxidW0gKHBpY2FzYXdlYi5nb29nbGUuY29tL25vbV91dGlsaXNhdGV1cikgZXQgcGFyY291cmV6IGxlcyBwaG90b3MgcXVlIHZvdXMgdm91ZHJpZXogYWZmaWNoZXIuIFN1ciBsZSBjJm9jaXJjO3QmZWFjdXRlOyBkcm9pdCBkZSBsYSBwYWdlIHdlYiwgaWwgeSBhIHVuIHVuZSBibyZpY2lyYzt0ZSBpbmRpcXVhbnQgJnF1b3Q7bGllbiB2ZXJzIGNldHRlIHBob3RvJnF1b3Q7LiBWb3VzIHBvdXZleiBzJmVhY3V0ZTtsZWN0aW9ubmVyIGxhIHRhaWxsZSBkZSBsJiMwMzk7aW1hZ2UgZXQgY29waWVyIGVuc3VpdGUgbGUgbGllbiBpbmRpcXUmZWFjdXRlOyBwYXIgJnF1b3Q7SW5zJmVhY3V0ZTtyZXIgbCZyc3F1bztpbWFnZSBkYW5zIHVuZSBwYWdlIFdlYiZxdW90OyAmYWdyYXZlOyBsJiMwMzk7aW50JmVhY3V0ZTtyaWV1ciBkZSB2b3RyZSBwYWdlLjwvcD4NCjxoMz5Db3B5cmlnaHQgZXQgTGljZW5jZTwvaDM+DQo8cD5DZSBtb2R1bGUgZXN0IHNvdW1pcyAmYWdyYXZlOyBsYSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFZvdXMgZGV2ZXogYXBwcm91dmVyIGNldHRlIGxpY2VuY2UgcG91ciB1dGlsaXNlciBjZSBtb2R1bGUuPC9wPic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjQxMTM4MjE2Ny4xMjMzNTYzMTkxLjEyMzM1NzIzNjkuMTIzMzU3NjU0MS40JzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjMzNTYzMTkxLjEuMS51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9Zm9ydW0uY21zbWFkZXNpbXBsZS5vcmd8dXRtY2N0PS9pbmRleC5waHAvYm9hcmQsMTAuMC5odG1sfHV0bWNtZD1yZWZlcnJhbCc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1BpY2FzYSBXZWIgQWxidW0gQnJvd3NlciAnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdJbnN0YWxsZXJ0IC0gZ3JhdHVsZXJlciEnOwokbGFuZ1sncG9zdGluc3RhbGxfZm9wZW5fb2ZmJ10gPSAnUGljYXNhIFdlYiBBbGJ1bSBCcm93c2VyIHJlcXVpcmVzIGVpdGhlciBjVVJMIHRvIGJlIGluc3RhbGxlZCBvciB0aGUgJnF1b3Q7YWxsb3dfdXJsX2ZvcGVuJnF1b3Q7IHBocC5pbmkgc2V0dGluZyB0byBiZSBzZXQgdG8gdHJ1ZS4gIElmIHRoZXNlIGNvbmRpdGlvbnMgYXJlIG5vdCBtZXQgKHdoaWNoIHRoZXkgYXJlIGN1cnJlbnRseSBub3QpIHRoZSBQaWNhc2EgV2ViIEFsYnVtIEJyb3dzZXIgd2lsbCBub3Qgd29yay4gIFVzZSBwaHBpbmZvIHRvIHZlcmlmeSB0aGUgcmVzdWx0cyBvZiB0aGlzIGNoZWNrLiAgVGhlIHdheSB5b3VyIG1hY2hpbmUgaXMgY3VycmVubHR5IGNvbmZpZ3VyZWQgdGhpcyBtb2R1bGUgd2lsbCBub3Qgb3BlcmF0ZSBwcm9wZXJseS4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0F2aW5zdGFsbGVydCc7CiRsYW5nWydyZWFsbHlfdW5pbnN0YWxsJ10gPSAnVmlya2VsaWc/IER1IGVyIHNpa2tlciBwJmFyaW5nOyBhdCBkdSB2aWwgYXZpbnN0YWxsZXJlIGRlbm5lIGZpbmUgbW9kdWxlbj8nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bCBhdmluc3RhbGxlcnQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsIHZlcnNqb24gJXMgaW5uc3RhbGxlcnQuJzsKJGxhbmdbJ3ByZWZzdXBkYXRlZCddID0gJ01vZHVsaW5uc3RpbGxpbmdlciBvcHBkYXRlcnQuJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ1RpbGdhbmcgbmVrdGV0LiBWZW5ubGlnc3Qgc2pla2sgZGluZSByZXR0aWdoZXRlci4nOwokbGFuZ1snZXJyb3InXSA9ICdGZWlsISc7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsIG9wcGdyYWRlcnQgdGlsIHZlcnNqb24gJXMuJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnVmlzZXIgUGljYXNhIFdlYiBBbGJ1bSBpbm5lIGkgQ01TIE1hZGUgU2ltcGxlLic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQo8bGk+VmVyc2lvbiAwLjEgMiBBdWd1c3QgMjAwNy4gSW5pdGlhbCBSZWxlYXNlLjwvbGk+PC91bD4NCjxsaT5WZXJzaW9uIDEuMCA3IEF1Z3VzdCAyMDA3LiBBZGRlZCBleGNsdWRlIGFuZCBpbmNsdWRlIHBhcmFtZXRlcnMuIEFsc28gYWRkZWQgYWRtaW4gcGFuZWwgZm9yIGVkaXRpbmcgdGVtcGxhdGVzIGZyb20gdGhlIGFkbWluIHBhbmVsLjwvbGk+PC91bD4nOwokbGFuZ1snbGlua19iYWNrX3RleHQnXSA9ICdUaWxiYWtlIHRpbCBhbGJ1bWxpc3Rlbic7CiRsYW5nWyd0aXRsZV9lZGl0X2FsYnVtX3RlbXBsYXRlJ10gPSAnUmVkaWdlciBhbGJ1bSBtYWxlbic7CiRsYW5nWydpbmZvX3JlY2lwZV90ZW1wbGF0ZSddID0gJ0Rlbm5lIG1hbGVuIGJlbnl0dGVzIG4mYXJpbmc7ciBhbGJ1bSB2aXNlcyc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ01hbCc7CiRsYW5nWydzdWJtaXQnXSA9ICdVdGYmb3NsYXNoO3InOwokbGFuZ1sncmVzZXR0b2RlZmF1bHQnXSA9ICdUaWxiYWtlc2F0dCB0aWwgc3RhbmRhcmQnOwokbGFuZ1sndGVtcGxhdGVfdXBkYXRlZCddID0gJ01hbCBvcHBkYXRlcnQnOwokbGFuZ1sndGl0bGVfZWRpdF9kZXRhaWxfdGVtcGxhdGUnXSA9ICdSZWRpZ2VyIGJpbGRlIG1hbCc7CiRsYW5nWydpbmZvX2VkaXRfZGV0YWlsX3RlbXBsYXRlJ10gPSAnRGVubmUgbWFsIGJlbnl0dGVzIG4mYXJpbmc7ciBkZXRhbGogaSBhbGJ1bSB2aXNlcyc7CiRsYW5nWydoZWxwX2FsYnVtJ10gPSAnVGhlIG5hbWUgb2YgdGhlIGFsYnVtIHlvdSB3b3VsZCBsaWtlIHRvIHNlZS4gIFRoaXMgbmFtZSBpcyB3aGF0IFBpY2FzYSB1c2VzIHRvIHJlZmVyZW5jZSBhbiBhbGJ1bSB3aGljaCBpcyB3aGF0IHlvdSBuYW1lZCB0aGUgYWxidW0gd2l0aCBzcGFjZXMgYW5kIHNwZWNpYWwgY2hhcmFjdGVycyBzdHJpcHBlZCBvdXQuICBJZiBhbiBhbGJ1bSBuYW1lIGRvc2VudCB3b3JrLCBwdWxsIHVwIHRoYXQgYWxidW0gaW4gcGljYXNhIHdlYiBhbGJ1bXMgYW5kIGxvb2sgYXQgdGhlIGNvbW1hbmQgbGluZS4gIEZvciBleGFtcGxlLCBteSBhbGJ1bSBjYWxsZWQgJnF1b3Q7TUctNCZxdW90OyB1cmwgbG9va3MgbGlrZSB0aGlzOiAmcXVvdDtodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vcm9yaWsubWVsYmVyZy9NRzQmcXVvdDsuICBUaGUgaHlwaGVuIGlzIHN0cmlwcGVkIG91dCwgc28gaWYgSSB3YW50IHRvIHNob3cgb25seSB0aGlzIGFsYnVtLCB0aGUgYWxidW0gcHJvcGVydHkgc2hvdWxkIGJlIHNldCB0byAmcXVvdDtNRzQmcXVvdDsuJzsKJGxhbmdbJ2hlbHBfdXNlciddID0gJ0tyZXZlcy4gR29vZ2xlIGJydWtlciBuYXZuZXQgdGlsIHBlcnNvbmVuIHNvbSBoYXIgYWxidW1lbmUgc29tIHNrYWwgdmlzZXMuJzsKJGxhbmdbJ2hlbHBfZXhjbHVkZSddID0gJ0xpc3Qgb2YgbWFza3MgdG8gZXhjbHVkZSwgZGVsaW1pdGVkIGJ5IHNlbWljb2xvbnMuIFRoaXMgaXMgYSBzaW1wbGUgc3RyaW5nIGNvbXBhcmUsIGlmIHRoZSBlbnRpcmUgc3RyaW5nIGlzIGFueXdoZXJlIGluIHRoZSBBbGJ1bSBuYW1lLCBpdCB3aWxsIGJlIGV4Y2x1ZGVkLiBCb3RoIHRoZSBpbmNsdWRlIGFuZCBleGNsdWRlIGNhbiBiZSB1c2VkIGF0IHRoZSBzYW1lIHRpbWUuICBFeGNsdWRlIHdpbGwgb3ZlcnJyaWRlIGluY2x1ZGVzLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSB2YWx1ZSBmb3IgZXhjbHVkZSBpcyAmcXVvdDtkb287ZGFoOyZxdW90OyAgQWxsIGFsYnVtcyB3aXRoIGRvbyBhbmQgZGFoIGFwcGVhcmluZyBpbiB0aGVtIHdpbGwgbm90IGJlIHNob3duJzsKJGxhbmdbJ2hlbHBfaW5jbHVkZSddID0gJ0xpc3Qgb2YgbWFza3MgdG8gaW5jbHVkZSwgZGVsaW1pdGVkIGJ5IHNlbWljb2xvbnMuIFRoaXMgaXMgYSBzaW1wbGUgc3RyaW5nIGNvbXBhcmUsIGlmIHRoZSBlbnRpcmUgc3RyaW5nIGlzIGFueXdoZXJlIGluIHRoZSBBbGJ1bSBuYW1lLCBpdCB3aWxsIGJlIGluY2x1ZGVkLiBCb3RoIHRoZSBpbmNsdWRlIGFuZCBleGNsdWRlIGNhbiBiZSB1c2VkIGF0IHRoZSBzYW1lIHRpbWUuICBFeGNsdWRlIHdpbGwgb3ZlcnJyaWRlIGluY2x1ZGVzLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSB2YWx1ZSBmb3IgaW5jbHVkZSBpcyAmcXVvdDtkb287ZGFoOyZxdW90OyBvbmx5IGFsYnVtcyB3aXRoIGRvbyBhbmQgZGFoIGluIHRoZW0gd2lsbCBiZSBkaXNwbGF5ZWQnOwokbGFuZ1snaGVscF9hbGJ1bXRodW1ic2l6ZSddID0gJ1RoZSBzaXplIG9mIHRoZSBhbGJ1bSB0aHVtYm5haWwgcmVxdWVzdGVkLiAgR29vZ2xlIG9ubHkgYWxsb3dzIHBhcnRpY3VsYXIgdmFsdWVzIGZvciB0aGlzLiAgU2VlIGltYWdldGh1bWJzaXplIGVudHJ5IG9yIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcGlzL3BpY2FzYXdlYi9yZWZlcmVuY2UuaHRtbCZxdW90Oz5odHRwOi8vY29kZS5nb29nbGUuY29tL2FwaXMvcGljYXNhd2ViL3JlZmVyZW5jZS5odG1sPC9hPmZvciB0aGlzIHRhYmxlLic7CiRsYW5nWydoZWxwX2ltYWdlc2l6ZSddID0gJ1RoZSBzaXplIG9mIHRoZSBpbWFnZSByZXF1ZXN0ZWQuICBHb29nbGUgb25seSBhbGxvd3MgcGFydGljdWxhciB2YWx1ZXMgZm9yIHRoaXMuICBTZWUgaW1hZ2V0aHVtYnNpemUgZW50cnkgb3IgPGEgaHJlZj0mcXVvdDtodHRwOi8vY29kZS5nb29nbGUuY29tL2FwaXMvcGljYXNhd2ViL3JlZmVyZW5jZS5odG1sJnF1b3Q7Pmh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vYXBpcy9waWNhc2F3ZWIvcmVmZXJlbmNlLmh0bWw8L2E+IGZvciB0aGlzIHRhYmxlLic7CiRsYW5nWydoZWxwX2ltYWdldGh1bWJzaXplJ10gPSAnVGhlIHNpemUgb2YgdGhlIGltYWdlIHJlcXVlc3RlZC4gIEdvb2dsZSBvbmx5IGFsbG93cyBwYXJ0aWN1bGFyIHZhbHVlcyBmb3IgdGhpcy4gIFNlZSBiZWxvdyBvciA8YSBocmVmPSZxdW90O2h0dHA6Ly9jb2RlLmdvb2dsZS5jb20vYXBpcy9waWNhc2F3ZWIvcmVmZXJlbmNlLmh0bWwmcXVvdDs+aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcGlzL3BpY2FzYXdlYi9yZWZlcmVuY2UuaHRtbDwvYT4gZm9yIHRoaXMgdGFibGUuICBDcm9wcGVkIG1lYW5zIHRoZSB0aHVtYm5haWwgeW91IGdldCBpcyBzcXVhcmUuICBPbmx5IGVtYmVkZGFibGUgc2l6ZXMgYXJlIHZhbGlkIGZvciB0aGlzIG1vZHVsZS4gIElmIHlvdSBnZXQgZG93bmxvYWQgcHJvbXB0cyBmcm9tIHRoZSBicm93c2VyLCB5b3UgaGF2ZSBwcm9iYWJseSBwaWNrZWQgYSBzaXplIHRoYXQgaXMgdG9vIGJpZy4NCiAgICA8dGFibGU+DQogICAgIDx0Ym9keT48dHI+DQogICAgICAgIDx0aD5TaXplPC90aD4NCiAgICAgICAgPHRoPkNyb3BwZWQ8L3RoPg0KICAgICAgICA8dGg+RW1iZWRkYWJsZTwvdGg+DQogICAgICAgIDx0aD5TaXplPC90aD4NCiAgICAgICAgPHRoPkNyb3BwZWQ8L3RoPg0KICAgICAgICA8dGg+RW1iZWRkYWJsZTwvdGg+DQogICAgICA8L3RyPg0KICAgICAgPHRyPg0KDQogICAgICAgIDx0ZD48Y29kZT4zMjwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICAgIDx0ZD48Y29kZT41NzY8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQoNCiAgICAgIDwvdHI+DQogICAgICA8dHI+DQogICAgICAgIDx0ZD48Y29kZT40ODwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICAgIDx0ZD48Y29kZT42NDA8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgIDwvdHI+DQogICAgICA8dHI+DQogICAgICAgIDx0ZD48Y29kZT42NDwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICAgIDx0ZD48Y29kZT43MjA8L2NvZGU+PC90ZD4NCg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgIDwvdHI+DQogICAgICA8dHI+DQogICAgICAgIDx0ZD48Y29kZT43MjwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCg0KICAgICAgICA8dGQ+PGNvZGU+ODAwPC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgPC90cj4NCiAgICAgIDx0cj4NCiAgICAgICAgPHRkPjxjb2RlPjE0NDwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KDQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgICA8dGQ+PGNvZGU+OTEyPC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQogICAgICA8L3RyPg0KICAgICAgPHRyPg0KICAgICAgICA8dGQ+PGNvZGU+MTYwPC9jb2RlPjwvdGQ+DQoNCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgICA8dGQ+PGNvZGU+MTAyNDwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgPC90cj4NCg0KICAgICAgPHRyPg0KICAgICAgICA8dGQ+PGNvZGU+MjAwPC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgICAgPHRkPjxjb2RlPjExNTI8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgPC90cj4NCiAgICAgIDx0cj4NCiAgICAgICAgPHRkPjxjb2RlPjI4ODwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgICAgPHRkPjxjb2RlPjEyODA8L2NvZGU+PC90ZD4NCg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgPC90cj4NCiAgICAgIDx0cj4NCiAgICAgICAgPHRkPjxjb2RlPjMyMDwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCg0KICAgICAgICA8dGQ+PGNvZGU+MTQ0MDwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgPC90cj4NCiAgICAgIDx0cj4NCiAgICAgICAgPHRkPjxjb2RlPjQwMDwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KDQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgICA8dGQ+PGNvZGU+MTYwMDwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgPC90cj4NCiAgICAgIDx0cj4NCiAgICAgICAgPHRkPjxjb2RlPjUxMjwvY29kZT48L3RkPg0KDQogICAgICAgIDx0ZD5ObzwvdGQ+DQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgICA8dGQ+PGNvZGU+ZDwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgPC90cj4NCiAgICA8L3Rib2R5PjwvdGFibGU+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoaXMgZGlzcGxheXMgYSBsaXN0IG9mIHB1YmxpYyBQaWNhc2EgV2ViIEFsYnVtcyBvbiBhIHBhZ2UgaW4gQ01TTVMuICBZb3UgY2FuIGFsc28gc2hvdyB0aGUgY29udGVudHMgb2YgYSBzaW5nbGUgYWxidW0gb24gYSBwYWdlLiAgVGhlIGFsYnVtIHZpZXcgc2hvd3MgdGh1bWJuYWlscyBhbmQgd2hlbiBhIHRodW1ibmFpbCBpcyBzZWxlY3RlZCB0aGUgcGljdHVyZSBpcyBzaG93biBpbiBhIHBvcC11cCBib3guICBUaGUgc2xpZGUgc2hvdyBmdW5jdGlvbmFsaXR5IGFsbG93cyB0aGUgdXNlciB0byBtb3ZlIGZvcndhcmQgYW5kIGJhY2sgdGhyb3VnaCB0aGUgcGljdHVyZXMgaW4gYW4gYWxidW0gdXNpbmcgdGhlIGFycm93IGtleXMgb3IgdGhlIG1vdXNlLiAgT3B0aW9uYWxseSB5b3UgY2FuIGNvbmZpZ3VyZSBhIHBhZ2UgdG8gc2hvdyBhIHNldCBvZiBhbGJ1bXMgdXNpbmcgdGhlIGluY2x1ZGUgYW5kIGV4Y2x1ZGUgYXR0cmlidXRlcy4gIFRoZXJlIGFyZSBwYXJhbWV0ZXJzIGZvciBhbGJ1bSB0aHVtYm5haWwsIGltYWdlIHRodW1ibmFpbCBhbmQgcGljdHVyZSBpbWFnZSBzaXplcy4gPC9wPg0KPHA+VGhlIGFkdmFudGFnZSBvZiB1c2luZyB0aGlzIG1vZHVsZSBvdmVyIHRoZSBBbGJ1bSBtb2R1bGUgaXMgeW91IGNhbiB1c2UgdGhlIFBpY2FzYSBkZXNrdG9wIGFwcGxpY2F0aW9uIHRvIGNyb3AsIGJhbGFuY2UsIGFubm90YXRlLCBvcmdhbml6ZSBhbmQgdXBsb2FkIHlvdXIgcGljdHVyZXMuICBHb29nbGUgZ2l2ZXMgeW91IDEgZ2Igb2Ygc3BhY2UgdG8gc3RvcmUgcGhvdG9zLCBhbmQgaWYgeW91IGhhdmUgYSBnbWFpbCBhY2NvdW50LCB5b3UgYWxyZWFkeSBoYXZlIGEgbG9naW4uICBZb3UgY2FuIHVzZSBQaWNhc2Egb3IgdGhlIFBpY2FzYSBXZWIgQWxidW1zIChodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20pIHRvIG1hbmFnZSBvcmRlciwgYWxidW0gbmFtZXMsIGFuZCBwaWN0dXJlIGNhcHRpb25zLjwvcD4NCjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPg0KPHA+UGxhY2UgdGhlIHNtYXJ0eSB0YWcge2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O1BpY2FzYVdlYkFsYnVtQnJvd3NlciYjMDM5OyB1c2VyPSYjMDM5O3VzZXJuYW1lJiMwMzk7fSBvbiB0aGUgcGFnZS4gIFRvIHNob3cgYSBwYXJ0aWN1bGFyIGFsYnVtIGluY2x1ZGUgdGhlIGFsYnVtIHBhcmFtZXRlci48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+VGhlIG1vZHVsZSBkZXZlbG9wbWVudCBwYWdlIGF0OiA8YSBocmVmPSZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvcHdhYnJvd3Nlci8mcXVvdDs+aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9wd2Ficm93c2VyLzwvYT48L2xpPg0KPGxpPllvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhdCByb3Jpay5tZWxiZXJnQGdtYWlsLmNvbTwvbGk+DQo8L3VsPg0KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0IG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCjxoMz5SZXF1aXJlbWVudHM8L2gzPg0KPHA+QmVjYXVzZSB0aGlzIG1vZHVsZSBtYWtlcyB3ZWIgcmVxdWVzdHMgdG8gR29vZ2xlLCB5b3UgbXVzdCBoYXZlIGVpdGhlciBjVVJMIG9yIHRoZSAmcXVvdDthbGxvd191cmxfZm9wZW4mcXVvdDsgc2V0dGluZyBpbiB5b3VyIHBocC5pbmkgdHVybmVkIG9uLiAgY1VSTCBpcyB0aGUgcHJlZmZlcmVkIG1ldGhvZCBiZWNhdXNlIGl0IGFsbG93cyBjb21wcmVzc29uIGluIHRoZSByZXF1ZXN0IHdoaWNoIEdvb2dsZSB0YWtlcyBhZHZhbmFnZSBvZiBhbmQgYmVjYXVzZSBvZiB0aGUgc2l6ZSBvZiB0aGUgWE1MIGRvY3MsIHRoaXMgY2FuIGRyYXN0aWNhbGx5IHJlZHVjZSB0aGUgYW1vdW50IG9mIHRpbWUgbmVlZGVkIHRvIG1ha2UgYSByZXF1ZXN0IGVzcGVjaWFsbHkgd2hlbiB5b3UgaGF2ZSBtYW55IGFsYnVtcyBpbiB5b3VyIGxpYnJhcnkuPC9wPg0KPHA+UGljYXNhIHhtbCBzdHJlYW0gcHJvY2Vzc2luZyBpcyBkb25lIHdpdGggdGhlIFNpbXBsZVhNTCBsaWJyYXJ5LCB3aGljaCBzaG91bGQgYmUgaW5jbHVkZWQgaW4gYSBkZWZhdWx0IFBIUCA1LjAgaW5zdGFsbC4gSWYgdGhpcyBpcyBub3QgaW5zdGFsbGVkLCB0aGlzIG1vZHVsZSB3aWxsIG5vdCB3b3JrLiAgVGhpcyBhbHNvIHJlc3RyaWN0cyB0aGlzIG1vZHVsZSB0byBQSFAgNSBtYWNoaW5lcyBvbmx5LjwvcD4NCjxoMz5PdGhlciBQaWNhc2EgV2ViIEFsYnVtIGhpbnRzPC9oMz4NCjxwPklmIHlvdSB3b3VsZCBsaWtlIHRvIHNob3cgYSBzaW5nbGUgcGljdHVyZSBmcm9tIHlvdXIgd2ViIGFsYnVtLCB5b3UgY2FuIGdldCB0aGUgbGluayBmcm9tIHRoZSB3ZWIgYWxidW0gaW50ZXJmYWNlIGl0c2VsZi4gIEdvIHRvIHlvdXIgd2ViYWxidW0gcGFnZSAocGljYXNhd2ViLmdvb2dsZS5jb20vdXNlcm5hbWUpIGFuZCBicm93c2UgdG8gdGhlIHBpY3R1cmUgeW91IHdvdWxkIGxpa2UgdG8gc2hvdy4gIFRoZXJlIGlzIGFuIGV4cGFuZGFibGUgYm94IG9uIHRoZSByaWdodCBoYW5kIHNpZGUgdGhhdCBzYXlzICZxdW90O2xpbmsgdG8gdGhpcyBwaG90byZxdW90Oy4gIFlvdSBjYW4gc2VsZWN0IHRoZSBzaXplIG9mIHRoZSBwaWN0dXJlIGFuZCB0aGVuIGNvcHkgdGhlIGxpbmsgZnJvbSB0aGUgJnF1b3Q7SFRNTCB0byBlbWJlZCBpbiB3ZWJzaXRlJnF1b3Q7IGJveC4gIEkgdXN1YWxseSBwdWxsIHRoZSBzcmMgYXR0cmlidXRlIHZhbHVlIGZyb20gdGhlIGltYWdlIHRhZyBhbmQgdXNlIGl0IHRvIHJlZmVyZW5jZSB0aGUgcGhvdG8uPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwmcXVvdDs+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My41MjU0MDY4MTIuMTE4ODA3NzQxNy4xMjA1OTY0OTExLjEyMDYwMTYwNzAuNDA0JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTIwNTY4NjIzMy4zOTQuMjcudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWNtczEuaGVsbWluaWtvbi5ub3x1dG1jY3Q9L2FkbWluL2xpc3Rtb2R1bGVzLnBocHx1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1BpY2FzYSBXZWIgQWxidW0gQnJvd3NlciAnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdHZSZpdW1sO25zdGFsbGVlcmQhIEdlZmVsaWNpdGVlcmQhJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsX2ZvcGVuX29mZiddID0gJ1BpY2FzYSBXZWIgQWxidW0gQnJvd3NlciByZXF1aXJlcyBlaXRoZXIgY1VSTCB0byBiZSBpbnN0YWxsZWQgb3IgdGhlICZxdW90O2FsbG93X3VybF9mb3BlbiZxdW90OyBwaHAuaW5pIHNldHRpbmcgdG8gYmUgc2V0IHRvIHRydWUuICBJZiB0aGVzZSBjb25kaXRpb25zIGFyZSBub3QgbWV0ICh3aGljaCB0aGV5IGFyZSBjdXJyZW50bHkgbm90KSB0aGUgUGljYXNhIFdlYiBBbGJ1bSBCcm93c2VyIHdpbGwgbm90IHdvcmsuICBVc2UgcGhwaW5mbyB0byB2ZXJpZnkgdGhlIHJlc3VsdHMgb2YgdGhpcyBjaGVjay4gVGhlIHdheSB5b3VyIG1hY2hpbmUgaXMgY3VycmVubHR5IGNvbmZpZ3VyZWQgdGhpcyBtb2R1bGUgd2lsbCBub3Qgb3BlcmF0ZSBwcm9wZXJseS4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0dlZGUmaXVtbDtuc3RhbGxlZXJkLic7CiRsYW5nWydyZWFsbHlfdW5pbnN0YWxsJ10gPSAnRWNodD8gV2VldCB1IHpla2VyIGRhdCB1IGRlemUgbW9vaWUgbW9kdWxlIHdpbHQgdmVyd2lqZGVyZW4/JzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIGdlZGUmaXVtbDtuc3RhbGxlZXJkLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGUgdmVyc2llICVzIGdlaW5zdGFsbGVlcmQuJzsKJGxhbmdbJ3ByZWZzdXBkYXRlZCddID0gJ01vZHVsZSB2b29ya2V1cmVuIGJpamdld2Vya3QuJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ1RvZWdhbmcgZ2V3ZWlnZXJkLiBDb250cm9sZWVyIG9mIHUgYmVzY2hpa3Qgb3ZlciBkZSBqdWlzdGUgcmVjaHRlbi4nOwokbGFuZ1snZXJyb3InXSA9ICdGb3V0ISc7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSBnZXVwZ3JhZGUgbmFhciB2ZXJzaWUgJXMuJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnVG9vbnQgUGljYXNhIFdlYiBBbGJ1bXMgYmlubmVuIENNUyBNYWRlIFNpbXBsZS4nOwokbGFuZ1snbGlua19iYWNrX3RleHQnXSA9ICdUZXJ1ZyBuYWFyIEFsYnVtIExpanN0JzsKJGxhbmdbJ3RpdGxlX2VkaXRfYWxidW1fdGVtcGxhdGUnXSA9ICdXaWp6aWcgYWxidW0gU2phYmxvb24nOwokbGFuZ1snaW5mb19yZWNpcGVfdGVtcGxhdGUnXSA9ICdEaXQgc2phYmxvb24gd29yZHQgZ2VicnVpa3QgYWxzIGVyIGFsYnVtcyB3b3JkZW4gYmVrZWtlbic7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ1NqYWJsb29uJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1RvZXZvZWdlbic7CiRsYW5nWydyZXNldHRvZGVmYXVsdCddID0gJ1Jlc2V0IG5hYXIgc3RhbmRhYXJkJzsKJGxhbmdbJ2NvbmZpcm1yZXNldHRvZGVmYXVsdCddID0gJ1dlZXQgdSB6ZWtlciBkYXQgdSBkaXQgc2phYmxvb24gd2lsdCB3aWp6aWdlbiBpbiBoZXQgc3RhbmRhYXJkIHR5cGU/JzsKJGxhbmdbJ3RlbXBsYXRlX3VwZGF0ZWQnXSA9ICdTamFibG9vbiBiaWpnZXdlcmt0JzsKJGxhbmdbJ3RpdGxlX2VkaXRfZGV0YWlsX3RlbXBsYXRlJ10gPSAnV2lqemlnIGFmYmVlbGRpbmdzc2phYmxvb24nOwokbGFuZ1snaW5mb19lZGl0X2RldGFpbF90ZW1wbGF0ZSddID0gJ0RlemUgdGVtcGxhdGUgd29yZHQgZ2V0b29uZCBhbHMgdSBlZW4gYWxidW0gYmVraWprdCc7CiRsYW5nWydoZWxwX2FsYnVtJ10gPSAnVGhlIG5hbWUgb2YgdGhlIGFsYnVtIHlvdSB3b3VsZCBsaWtlIHRvIHNlZS4gIFRoaXMgbmFtZSBpcyB3aGF0IFBpY2FzYSB1c2VzIHRvIHJlZmVyZW5jZSBhbiBhbGJ1bSB3aGljaCBpcyB3aGF0IHlvdSBuYW1lZCB0aGUgYWxidW0gd2l0aCBzcGFjZXMgYW5kIHNwZWNpYWwgY2hhcmFjdGVycyBzdHJpcHBlZCBvdXQuICBJZiBhbiBhbGJ1bSBuYW1lIGRvc2VudCB3b3JrLCBwdWxsIHVwIHRoYXQgYWxidW0gaW4gcGljYXNhIHdlYiBhbGJ1bXMgYW5kIGxvb2sgYXQgdGhlIGNvbW1hbmQgbGluZS4gIEZvciBleGFtcGxlLCBteSBhbGJ1bSBjYWxsZWQgJnF1b3Q7TUctNCZxdW90OyB1cmwgbG9va3MgbGlrZSB0aGlzOiAmcXVvdDtodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vcm9yaWsubWVsYmVyZy9NRzQmcXVvdDsuICBUaGUgaHlwaGVuIGlzIHN0cmlwcGVkIG91dCwgc28gaWYgSSB3YW50IHRvIHNob3cgb25seSB0aGlzIGFsYnVtLCB0aGUgYWxidW0gcHJvcGVydHkgc2hvdWxkIGJlIHNldCB0byAmcXVvdDtNRzQmcXVvdDsuJzsKJGxhbmdbJ2hlbHBfdXNlciddID0gJ1ZlcnBsaWNodC4gRGUgR29vZ2xlIGdlYnJ1aWtlcnNuYWFtIHZhbiBkZSBwZXJzb29uIHZhbiB3aWUgZGV6ZSBhbGJ1bXMgemlqbi4nOwokbGFuZ1snaGVscF9leGNsdWRlJ10gPSAnTGlzdCBvZiBtYXNrcyB0byBleGNsdWRlLCBkZWxpbWl0ZWQgYnkgc2VtaWNvbG9ucy4gVGhpcyBpcyBhIHNpbXBsZSBzdHJpbmcgY29tcGFyZSwgaWYgdGhlIGVudGlyZSBzdHJpbmcgaXMgYW55d2hlcmUgaW4gdGhlIEFsYnVtIG5hbWUsIGl0IHdpbGwgYmUgZXhjbHVkZWQuIEJvdGggdGhlIGluY2x1ZGUgYW5kIGV4Y2x1ZGUgY2FuIGJlIHVzZWQgYXQgdGhlIHNhbWUgdGltZS4gIEV4Y2x1ZGUgd2lsbCBvdmVycnJpZGUgaW5jbHVkZXMuICBGb3IgZXhhbXBsZSwgaWYgdGhlIHZhbHVlIGZvciBleGNsdWRlIGlzICZxdW90O2RvbztkYWg7JnF1b3Q7ICBBbGwgYWxidW1zIHdpdGggZG9vIGFuZCBkYWggYXBwZWFyaW5nIGluIHRoZW0gd2lsbCBub3QgYmUgc2hvd24nOwokbGFuZ1snaGVscF9pbmNsdWRlJ10gPSAnTGlzdCBvZiBtYXNrcyB0byBpbmNsdWRlLCBkZWxpbWl0ZWQgYnkgc2VtaWNvbG9ucy4gVGhpcyBpcyBhIHNpbXBsZSBzdHJpbmcgY29tcGFyZSwgaWYgdGhlIGVudGlyZSBzdHJpbmcgaXMgYW55d2hlcmUgaW4gdGhlIEFsYnVtIG5hbWUsIGl0IHdpbGwgYmUgaW5jbHVkZWQuIEJvdGggdGhlIGluY2x1ZGUgYW5kIGV4Y2x1ZGUgY2FuIGJlIHVzZWQgYXQgdGhlIHNhbWUgdGltZS4gIEV4Y2x1ZGUgd2lsbCBvdmVycnJpZGUgaW5jbHVkZXMuICBGb3IgZXhhbXBsZSwgaWYgdGhlIHZhbHVlIGZvciBpbmNsdWRlIGlzICZxdW90O2RvbztkYWg7JnF1b3Q7IG9ubHkgYWxidW1zIHdpdGggZG9vIGFuZCBkYWggaW4gdGhlbSB3aWxsIGJlIGRpc3BsYXllZCc7CiRsYW5nWydoZWxwX2FsYnVtdGh1bWJzaXplJ10gPSAnRGUgZ3Jvb3R0ZSB2YW4gaGV0IGFsYnVtIHRodW1ibmFpbCBpcyB2ZXJwbGljaHQuICBHb29nbGUgYWNjZXB0ZWVyZCBhbGxlZW4gY2lqZmVycy4gWmllIGltYWdldGh1bWJzaXplIHZlbGRlbiBvZiA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL2FwaXMvcGljYXNhd2ViL3JlZmVyZW5jZS5odG1sIj5odHRwOi8vY29kZS5nb29nbGUuY29tL2FwaXMvcGljYXNhd2ViL3JlZmVyZW5jZS5odG1sPC9hPnZvb3IgZGV6ZSB0YWJlbC4nOwokbGFuZ1snaGVscF9pbWFnZXNpemUnXSA9ICdEZSBncm9vdHRlIHZhbiBkZSBhZmJlZWxkaW5nIGlzIHZlcnBsaWNodC4gIEdvb2dsZSBhY2NlcHRlZXJkIGFsbGVlbiBjaWpmZXJzLiBaaWUgaW1hZ2V0aHVtYnNpemUgdmVsZGVuIG9mIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vYXBpcy9waWNhc2F3ZWIvcmVmZXJlbmNlLmh0bWwiPmh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vYXBpcy9waWNhc2F3ZWIvcmVmZXJlbmNlLmh0bWw8L2E+dm9vciBkZXplIHRhYmVsLic7CiRsYW5nWydoZWxwX2ltYWdldGh1bWJzaXplJ10gPSAnVGhlIHNpemUgb2YgdGhlIGltYWdlIHJlcXVlc3RlZC4gR29vZ2xlIG9ubHkgYWxsb3dzIHBhcnRpY3VsYXIgdmFsdWVzIGZvciB0aGlzLiAgU2VlIGJlbG93IG9yIDxhIGhyZWY9Imh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vYXBpcy9waWNhc2F3ZWIvcmVmZXJlbmNlLmh0bWwiPmh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vYXBpcy9waWNhc2F3ZWIvcmVmZXJlbmNlLmh0bWw8L2E+IGZvciB0aGlzIHRhYmxlLiAgQ3JvcHBlZCBtZWFucyB0aGUgdGh1bWJuYWlsIHlvdSBnZXQgaXMgc3F1YXJlLiAgT25seSBlbWJlZGRhYmxlIHNpemVzIGFyZSB2YWxpZCBmb3IgdGhpcyBtb2R1bGUuICBJZiB5b3UgZ2V0IGRvd25sb2FkIHByb21wdHMgZnJvbSB0aGUgYnJvd3NlciwgeW91IGhhdmUgcHJvYmFibHkgcGlja2VkIGEgc2l6ZSB0aGF0IGlzIHRvbyBiaWcuDQogICAgPHRhYmxlPg0KICAgICA8dGJvZHk+PHRyPg0KICAgICAgICA8dGg+U2l6ZTwvdGg+DQogICAgICAgIDx0aD5Dcm9wcGVkPC90aD4NCiAgICAgICAgPHRoPkVtYmVkZGFibGU8L3RoPg0KICAgICAgICA8dGg+U2l6ZTwvdGg+DQogICAgICAgIDx0aD5Dcm9wcGVkPC90aD4NCiAgICAgICAgPHRoPkVtYmVkZGFibGU8L3RoPg0KICAgICAgPC90cj4NCiAgICAgIDx0cj4NCg0KICAgICAgICA8dGQ+PGNvZGU+MzI8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgICA8dGQ+PGNvZGU+NTc2PC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KDQogICAgICA8L3RyPg0KICAgICAgPHRyPg0KICAgICAgICA8dGQ+PGNvZGU+NDg8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgICA8dGQ+PGNvZGU+NjQwPC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQoNCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICA8L3RyPg0KICAgICAgPHRyPg0KICAgICAgICA8dGQ+PGNvZGU+NjQ8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgICA8dGQ+PGNvZGU+NzIwPC9jb2RlPjwvdGQ+DQoNCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICA8L3RyPg0KICAgICAgPHRyPg0KICAgICAgICA8dGQ+PGNvZGU+NzI8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQoNCiAgICAgICAgPHRkPjxjb2RlPjgwMDwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgIDwvdHI+DQogICAgICA8dHI+DQogICAgICAgIDx0ZD48Y29kZT4xNDQ8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgICAgPHRkPjxjb2RlPjkxMjwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgPC90cj4NCiAgICAgIDx0cj4NCiAgICAgICAgPHRkPjxjb2RlPjE2MDwvY29kZT48L3RkPg0KDQogICAgICAgIDx0ZD5ZZXM8L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgICAgPHRkPjxjb2RlPjEwMjQ8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgIDwvdHI+DQoNCiAgICAgIDx0cj4NCiAgICAgICAgPHRkPjxjb2RlPjIwMDwvY29kZT48L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICAgIDx0ZD48Y29kZT4xMTUyPC9jb2RlPjwvdGQ+DQogICAgICAgIDx0ZD5ObzwvdGQ+DQoNCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgIDwvdHI+DQogICAgICA8dHI+DQogICAgICAgIDx0ZD48Y29kZT4yODg8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQogICAgICAgIDx0ZD48Y29kZT4xMjgwPC9jb2RlPjwvdGQ+DQoNCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgIDwvdHI+DQogICAgICA8dHI+DQogICAgICAgIDx0ZD48Y29kZT4zMjA8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgICAgPHRkPlllczwvdGQ+DQoNCiAgICAgICAgPHRkPjxjb2RlPjE0NDA8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgIDwvdHI+DQogICAgICA8dHI+DQogICAgICAgIDx0ZD48Y29kZT40MDA8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgICAgPHRkPjxjb2RlPjE2MDA8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgIDwvdHI+DQogICAgICA8dHI+DQogICAgICAgIDx0ZD48Y29kZT41MTI8L2NvZGU+PC90ZD4NCg0KICAgICAgICA8dGQ+Tm88L3RkPg0KICAgICAgICA8dGQ+WWVzPC90ZD4NCiAgICAgICAgPHRkPjxjb2RlPmQ8L2NvZGU+PC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgICAgPHRkPk5vPC90ZD4NCiAgICAgIDwvdHI+DQogICAgPC90Ym9keT48L3RhYmxlPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPyA8L2gzPg0KPHA+VGhpcyBkaXNwbGF5cyBhIGxpc3Qgb2YgcHVibGljIFBpY2FzYSBXZWIgQWxidW1zIG9uIGEgcGFnZSBpbiBDTVNNUy4gIFlvdSBjYW4gYWxzbyBzaG93IHRoZSBjb250ZW50cyBvZiBhIHNpbmdsZSBhbGJ1bSBvbiBhIHBhZ2UuICBUaGUgYWxidW0gdmlldyBzaG93cyB0aHVtYm5haWxzIGFuZCB3aGVuIGEgdGh1bWJuYWlsIGlzIHNlbGVjdGVkIHRoZSBwaWN0dXJlIGlzIHNob3duIGluIGEgcG9wLXVwIGJveC4gIFRoZSBzbGlkZSBzaG93IGZ1bmN0aW9uYWxpdHkgYWxsb3dzIHRoZSB1c2VyIHRvIG1vdmUgZm9yd2FyZCBhbmQgYmFjayB0aHJvdWdoIHRoZSBwaWN0dXJlcyBpbiBhbiBhbGJ1bSB1c2luZyB0aGUgYXJyb3cga2V5cyBvciB0aGUgbW91c2UuICBPcHRpb25hbGx5IHlvdSBjYW4gY29uZmlndXJlIGEgcGFnZSB0byBzaG93IGEgc2V0IG9mIGFsYnVtcyB1c2luZyB0aGUgaW5jbHVkZSBhbmQgZXhjbHVkZSBhdHRyaWJ1dGVzLiAgVGhlcmUgYXJlIHBhcmFtZXRlcnMgZm9yIGFsYnVtIHRodW1ibmFpbCwgaW1hZ2UgdGh1bWJuYWlsIGFuZCBwaWN0dXJlIGltYWdlIHNpemVzLiA8L3A+DQo8cD5UaGUgYWR2YW50YWdlIG9mIHVzaW5nIHRoaXMgbW9kdWxlIG92ZXIgdGhlIEFsYnVtIG1vZHVsZSBpcyB5b3UgY2FuIHVzZSB0aGUgUGljYXNhIGRlc2t0b3AgYXBwbGljYXRpb24gdG8gY3JvcCwgYmFsYW5jZSwgYW5ub3RhdGUsIG9yZ2FuaXplIGFuZCB1cGxvYWQgeW91ciBwaWN0dXJlcy4gIEdvb2dsZSBnaXZlcyB5b3UgMSBnYiBvZiBzcGFjZSB0byBzdG9yZSBwaG90b3MsIGFuZCBpZiB5b3UgaGF2ZSBhIGdtYWlsIGFjY291bnQsIHlvdSBhbHJlYWR5IGhhdmUgYSBsb2dpbi4gIFlvdSBjYW4gdXNlIFBpY2FzYSBvciB0aGUgUGljYXNhIFdlYiBBbGJ1bXMgKGh0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbSkgdG8gbWFuYWdlIG9yZGVyLCBhbGJ1bSBuYW1lcywgYW5kIHBpY3R1cmUgY2FwdGlvbnMuPC9wPg0KPGgzPkhvdyBEbyBJIFVzZSBJdDwvaDM+DQo8cD5QbGFjZSB0aGUgc21hcnR5IHRhZyB7Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7UGljYXNhV2ViQWxidW1Ccm93c2VyJiMwMzk7IHVzZXI9JiMwMzk7dXNlcm5hbWUmIzAzOTt9IG9uIHRoZSBwYWdlLiAgVG8gc2hvdyBhIHBhcnRpY3VsYXIgYWxidW0gaW5jbHVkZSB0aGUgYWxidW0gcGFyYW1ldGVyLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5UaGUgbW9kdWxlIGRldmVsb3BtZW50IHBhZ2UgYXQ6IDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvcHdhYnJvd3Nlci8iPmh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvcHdhYnJvd3Nlci88L2E+PC9saT4NCjxsaT5Zb3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYXQgcm9yaWsubWVsYmVyZ0BnbWFpbC5jb208L2xpPg0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dCBvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQo8aDM+UmVxdWlyZW1lbnRzPC9oMz4NCjxwPkJlY2F1c2UgdGhpcyBtb2R1bGUgbWFrZXMgd2ViIHJlcXVlc3RzIHRvIEdvb2dsZSwgeW91IG11c3QgaGF2ZSBlaXRoZXIgY1VSTCBvciB0aGUgJnF1b3Q7YWxsb3dfdXJsX2ZvcGVuJnF1b3Q7IHNldHRpbmcgaW4geW91ciBwaHAuaW5pIHR1cm5lZCBvbi4gIGNVUkwgaXMgdGhlIHByZWZmZXJlZCBtZXRob2QgYmVjYXVzZSBpdCBhbGxvd3MgY29tcHJlc3NvbiBpbiB0aGUgcmVxdWVzdCB3aGljaCBHb29nbGUgdGFrZXMgYWR2YW5hZ2Ugb2YgYW5kIGJlY2F1c2Ugb2YgdGhlIHNpemUgb2YgdGhlIFhNTCBkb2NzLCB0aGlzIGNhbiBkcmFzdGljYWxseSByZWR1Y2UgdGhlIGFtb3VudCBvZiB0aW1lIG5lZWRlZCB0byBtYWtlIGEgcmVxdWVzdCBlc3BlY2lhbGx5IHdoZW4geW91IGhhdmUgbWFueSBhbGJ1bXMgaW4geW91ciBsaWJyYXJ5LjwvcD4NCjxwPlBpY2FzYSB4bWwgc3RyZWFtIHByb2Nlc3NpbmcgaXMgZG9uZSB3aXRoIHRoZSBTaW1wbGVYTUwgbGlicmFyeSwgd2hpY2ggc2hvdWxkIGJlIGluY2x1ZGVkIGluIGEgZGVmYXVsdCBQSFAgNS4wIGluc3RhbGwuIElmIHRoaXMgaXMgbm90IGluc3RhbGxlZCwgdGhpcyBtb2R1bGUgd2lsbCBub3Qgd29yay4gIFRoaXMgYWxzbyByZXN0cmljdHMgdGhpcyBtb2R1bGUgdG8gUEhQIDUgbWFjaGluZXMgb25seS48L3A+DQo8aDM+T3RoZXIgUGljYXNhIFdlYiBBbGJ1bSBoaW50czwvaDM+DQo8cD5JZiB5b3Ugd291bGQgbGlrZSB0byBzaG93IGEgc2luZ2xlIHBpY3R1cmUgZnJvbSB5b3VyIHdlYiBhbGJ1bSwgeW91IGNhbiBnZXQgdGhlIGxpbmsgZnJvbSB0aGUgd2ViIGFsYnVtIGludGVyZmFjZSBpdHNlbGYuICBHbyB0byB5b3VyIHdlYmFsYnVtIHBhZ2UgKHBpY2FzYXdlYi5nb29nbGUuY29tL3VzZXJuYW1lKSBhbmQgYnJvd3NlIHRvIHRoZSBwaWN0dXJlIHlvdSB3b3VsZCBsaWtlIHRvIHNob3cuICBUaGVyZSBpcyBhbiBleHBhbmRhYmxlIGJveCBvbiB0aGUgcmlnaHQgaGFuZCBzaWRlIHRoYXQgc2F5cyAmcXVvdDtsaW5rIHRvIHRoaXMgcGhvdG8mcXVvdDsuICBZb3UgY2FuIHNlbGVjdCB0aGUgc2l6ZSBvZiB0aGUgcGljdHVyZSBhbmQgdGhlbiBjb3B5IHRoZSBsaW5rIGZyb20gdGhlICZxdW90O0hUTUwgdG8gZW1iZWQgaW4gd2Vic2l0ZSZxdW90OyBib3guICBJIHVzdWFsbHkgcHVsbCB0aGUgc3JjIGF0dHJpYnV0ZSB2YWx1ZSBmcm9tIHRoZSBpbWFnZSB0YWcgYW5kIHVzZSBpdCB0byByZWZlcmVuY2UgdGhlIHBob3RvLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xNzM4ODk2MDM5LjEyNzg4NDAwMDAuMTI4MjMyMDMwNC4xMjgyMzc2NDM1LjIyNSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyODIyOTY3MDguMjE5LjQ5LnV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY249KHJlZmVycmFsKXx1dG1jbWQ9cmVmZXJyYWx8dXRtY2N0PS9pbmRleC5waHAvYm9hcmQsMTMuMC5odG1sJzsKJGxhbmdbJ3FjYSddID0gJ1AwLTg1NDM4NzA0My0xMjc4ODQwMDAwOTE3JzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMuMi4xMC4xMjgyMzc2NDM1JzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8vJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ0FkbWluIFBXQUJyb3dzZXInLCAnQWRtaW4gUFdBQnJvd3NlcicpOwoKJHRoaXMtPkluc3RhbGxUZW1wbGF0ZXMoKTsKCi8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZwokdGhpcy0+QXVkaXQoMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygnaW5zdGFsbGVkJywgJHRoaXMtPkdldFZlcnNpb24oKSkpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ0FkbWluIFBXQUJyb3dzZXInKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoKTsKJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1bmluc3RhbGxlZCcpKTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiRjdXJyZW50X3ZlcnNpb24gPSAkb2xkdmVyc2lvbjsKc3dpdGNoICgkY3VycmVudF92ZXJzaW9uKSB7CiAgY2FzZSAiMC4xIjoKICAgICR0aGlzLT5JbnN0YWxsVGVtcGxhdGVzKCk7CiAgICBicmVhazsKfQokdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignQWRtaW4gUFdBQnJvd3NlcicpOwovLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKJHRoaXMtPkF1ZGl0KDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ3VwZ3JhZGVkJywgJHRoaXMtPkdldFZlcnNpb24oKSkpOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/PicasaBrowser.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAjIE1vZHVsZTogUGljYXNhQnJvd3NlcgogICMgVmVyc2lvbjogMi4wLCBSSk0KICAjCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAjIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiAgIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwogICMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLwogICMKICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICMKICAjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKICAjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAgIwogICMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICAjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAgIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogICMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKICAjIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKICAjCiAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAqLwoKY2xhc3MgUGljYXNhQnJvd3NlciBleHRlbmRzIENNU01vZHVsZSB7CiAgdmFyICRoZWFkYm9keXNlcGFyYXRvcj0gInsqIEhFQUQvQk9EWSBESVZJREVSICp9IjsKICAKICBmdW5jdGlvbiBHZXROYW1lKCkgewogICAgcmV0dXJuICdQaWNhc2FCcm93c2VyJzsKICB9CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgR2V0RnJpZW5kbHlOYW1lKCkKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKICBmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKSB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpOwogIH0KCiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBHZXRWZXJzaW9uKCkKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKICBmdW5jdGlvbiBHZXRWZXJzaW9uKCkgewogICAgcmV0dXJuICcyLjAuMyc7CiAgfQoKICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIEdldEhlbHAoKQogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgogIGZ1bmN0aW9uIEdldEhlbHAoKSB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2hlbHAnKTsKICB9CgogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgR2V0QXV0aG9yKCkKICAgIFRoaXMgcmV0dXJucyBhIHN0cmluZyB0aGF0IGlzIHByZXNlbnRlZCBpbiB0aGUgTW9kdWxlCiAgICBBZG1pbiBpZiB5b3UgY2xpY2sgb24gdGhlICJBYm91dCIgbGluay4KICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKICBmdW5jdGlvbiBHZXRBdXRob3IoKSB7CiAgICByZXR1cm4gJ1JvcmlrIEouIE1lbGJlcmcvTW9ydGVuIFBvdWxzZW4nOwogIH0KCiAgZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKSB7CiAgICByZXR1cm4gJ3JvcmlrLm1lbGJlcmdAZ21haWwuY29tL21vcnRlbnBvdWxzZW5AZ21haWwuY29tJzsKICB9CgogIGZ1bmN0aW9uIEdldENoYW5nZUxvZygpIHsKICAgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnY2hhbmdlbG9nLnRwbCcpOwogIH0KCiAgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKSB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgogIGZ1bmN0aW9uIEhhc0FkbWluKCkgewogICAgcmV0dXJuIHRydWU7CiAgfQoKICBmdW5jdGlvbiBNaW5pbXVtQ01TVmVyc2lvbigpIHsKICAgIHJldHVybiAiMS42IjsKICB9CgogIGZ1bmN0aW9uIEdldEV2ZW50RGVzY3JpcHRpb24oJGV2ZW50bmFtZSkgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdldmVudF9pbmZvXycgLiAkZXZlbnRuYW1lKTsKICB9CgogIGZ1bmN0aW9uIEdldEV2ZW50SGVscCgkZXZlbnRuYW1lKSB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2V2ZW50X2hlbHBfJyAuICRldmVudG5hbWUpOwogIH0KCiAgZnVuY3Rpb24gU2V0UGFyYW1ldGVycygpIHsKICAgICR0aGlzLT5SZWdpc3Rlck1vZHVsZVBsdWdpbigpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigndXNlcicsICcnLCAkdGhpcy0+bGFuZygnaGVscF91c2VyJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignYWxidW0nLCAnJywgJHRoaXMtPmxhbmcoJ2hlbHBfYWxidW0nKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdleGNsdWRlJywgJycsICR0aGlzLT5sYW5nKCdoZWxwX2V4Y2x1ZGUnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdpbmNsdWRlJywgJycsICR0aGlzLT5sYW5nKCdoZWxwX2luY2x1ZGUnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdpbWFnZXNpemUnLCAnNTEyJywgJHRoaXMtPmxhbmcoJ2hlbHBfaW1hZ2VzaXplJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignaW1hZ2V0aHVtYnNpemUnLCAnNjQnLCAkdGhpcy0+bGFuZygnaGVscF9pbWFnZXRodW1ic2l6ZScpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2FsYnVtdGh1bWJzaXplJywgJzIwMCcsICR0aGlzLT5sYW5nKCdoZWxwX2FsYnVtdGh1bWJzaXplJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignaGVhZGVyJywnMCcsICR0aGlzLT5sYW5nKCdoZWxwX2hlYWRlcicpKTsKICB9CgogIC8vQWRkIFRlbXBsYXRlcyB0byB0aGUgZGF0YWJhc2UKICBmdW5jdGlvbiBJbnN0YWxsVGVtcGxhdGVzKCkgewogICAgLy8gU2V0dXAgYWxidW1zIHRlbXBsYXRlCiAgICAkZm4gPSBkaXJuYW1lKF9fRklMRV9fKSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAndGVtcGxhdGVzJyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnb3JpZ2luYWwnLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2FsYnVtcy50cGwnOwogICAgaWYgKGZpbGVfZXhpc3RzKCRmbikpIHsKICAgICAgJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CiAgICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnYWxidW1zJywgJHRlbXBsYXRlKTsKICAgIH0KCiAgICAvLyBTZXR1cCBpbWFnZXMgdGVtcGxhdGUKICAgICRmbiA9IGRpcm5hbWUoX19GSUxFX18pIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICd0ZW1wbGF0ZXMnIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdvcmlnaW5hbCcuIERJUkVDVE9SWV9TRVBBUkFUT1IgLidsaWdodGJveC50cGwnOwogICAgaWYgKGZpbGVfZXhpc3RzKCRmbikpIHsKICAgICAgJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CiAgICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnaW1hZ2VzJywgJHRlbXBsYXRlKTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpIHsKICAgIGlmICghZnVuY3Rpb25fZXhpc3RzKCdjdXJsX2luaXQnKSAmJiAhaW5pX2dldCgnYWxsb3dfdXJsX2ZvcGVuJykpCiAgICAgIHJldHVybiAkdGhpcy0+TGFuZygncG9zdGluc3RhbGxfZm9wZW5fb2ZmJyk7CgogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpOwogIH0KCiAgZnVuY3Rpb24gVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKSB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsKICB9CgogIGZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKSB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3JlYWxseV91bmluc3RhbGwnKTsKICB9CgogIC8vQWRtaW4gZnVuY3Rpb25zCiAgCiAgZnVuY3Rpb24gR2V0QWRtaW5TZWN0aW9uKCkgewogICAgcmV0dXJuICdjb250ZW50JzsKICB9CgogIGZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24oKSB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ21vZGRlc2NyaXB0aW9uJyk7CiAgfQoKICBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKSB7CiAgICByZXR1cm4gKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSB8fCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCJNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcyIpKTsKICB9CgogIGZ1bmN0aW9uIF9BZG1pbkVkaXREZWZhdWx0VGVtcGxhdGVGb3JtKCRpZCwgJHJldHVybmlkLCAkdGVtcGxhdGVfbmFtZSwgJGFjdGl2ZV90YWIsICR0aXRsZSwgJGZpbGVuYW1lLCAkaW5mbykgewogICAgJHNtYXJ0eSA9ICYgJHRoaXMtPnNtYXJ0eTsKICAgICRzbWFydHktPmFzc2lnbignZGVmYXVsdHRlbXBsYXRlZm9ybV90aXRsZScsICR0aXRsZSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2luZm9fdGl0bGUnLCAkaW5mbyk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAndXBkYXRldGVtcGxhdGUnLCAkcmV0dXJuaWQsICdwb3N0JywgJycsIGZhbHNlLCAnICcsIGFycmF5KCdhY3RpdmVfdGFiJyA9PiAkYWN0aXZlX3RhYiwgJ3RlbXBsYXRlX25hbWUnID0+ICR0ZW1wbGF0ZV9uYW1lLCAnZmlsZW5hbWUnID0+ICRmaWxlbmFtZSkpKTsKICAgICRzbWFydHktPmFzc2lnbigncHJvbXB0X3RlbXBsYXRlJywgJHRoaXMtPkxhbmcoJ3RlbXBsYXRlJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF90ZW1wbGF0ZScsICR0aGlzLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGlkLCAkdGhpcy0+R2V0VGVtcGxhdGUoJHRlbXBsYXRlX25hbWUpLCAnaW5wdXRfdGVtcGxhdGUnLCcnLCAnJywgJycsICcnLCAnODAnLCAnMTUnLCcnLCdodG1sJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3Jlc2V0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3Jlc2V0dG9kZWZhdWx0JywgJHRoaXMtPkxhbmcoJ3Jlc2V0dG9kZWZhdWx0JyksICIiLCAiIiwgJHRoaXMtPkxhbmcoJ2NvbmZpcm1yZXNldHRvZGVmYXVsdCcpKSk7CiAgICAkc3lzdGVtdHRlbXBsYXRlcz1hcnJheSgpOwogICAgaWYgKCRhY3RpdmVfdGFiPT0iaW1hZ2VzX3RlbXBsYXRlIikgewogICAgICAkc3lzdGVtdHRlbXBsYXRlcz1hcnJheSgKICAgICAgICAgICJMaWdodEJveCI9PiJsaWdodGJveC50cGwiLAogICAgICAgICAgImpRdWVyeSBGYW5jeUJveCI9PiJmYW5jeWJveC50cGwiLAogICAgICAgICAgIk1pbGtCb3giPT4ibWlsa2JveC50cGwiLAogICAgICAgICAgInN0dW5pY2hvbGxzLWpveXN0aWNrIj0+InN0dWpveXN0aWNrLnRwbCIKICAgICAgICAgIC8qIkdhbGxlcmlhIj0+ImdhbGxlcmlhLnRwbCIqLyk7CiAgICB9IGVsc2UgewogICAgICAkc3lzdGVtdHRlbXBsYXRlcz1hcnJheSgkdGhpcy0+TGFuZygiYmFzaWNhbGJ1bXRlbXBsYXRlIik9PiJhbGJ1bXMudHBsIik7CiAgICB9CiAgICAkc21hcnR5LT5hc3NpZ24oJ3N5c3RlbXRlbXBsYXRlJywgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnc3lzdGVtdGVtcGxhdGUnLCAkc3lzdGVtdHRlbXBsYXRlcykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXRkZWZhdWx0dGVtcGxhdGUudHBsJyk7CiAgICAKICB9CgoKCiAgZnVuY3Rpb24gZGlzcGxheUFsYnVtKCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkgewogICAgJHVzZXIgPSAiIjsKICAgIGlmIChpc3NldCgkcGFyYW1zWyd1c2VyJ10pKSB7CiAgICAgICR1c2VyID0gJHBhcmFtc1sndXNlciddOwogICAgfSBlbHNlIHsKICAgICAgJHVzZXI9JHRoaXMtPkdldFByZWZlcmVuY2UoImRlZmF1bHR1c2VyIik7CiAgICB9CgogICAgLy9JbmNsdWRlIFBhcmFtCiAgICAkaW5jbHVkZT1hcnJheSgpOyAkaW5jbHVkZXBhcmFtPSIiOwogICAgaWYgKCFlbXB0eSgkcGFyYW1zWydpbmNsdWRlJ10pKSB7CiAgICAgICRpbmNsdWRlID0gc3BsaXQoIjsiLCAkcGFyYW1zWydpbmNsdWRlJ10pOwogICAgICAkaW5jbHVkZXBhcmFtPSRwYXJhbXNbJ2luY2x1ZGUnXTsKICAgIH0KCiAgICAvL0V4Y2x1ZGUgUGFyYW0KICAgICRleGNsdWRlPWFycmF5KCk7ICRleGNsdWRlcGFyYW09IiI7CiAgICBpZiAoIWVtcHR5KCRwYXJhbXNbJ2V4Y2x1ZGUnXSkpIHsKICAgICAgJGV4Y2x1ZGUgPSBzcGxpdCgiOyIsICRwYXJhbXNbJ2V4Y2x1ZGUnXSk7CiAgICAgICRleGNsdWRlcGFyYW09JHBhcmFtc1siZXhjbHVkZSJdOwogICAgfQoKICAgICRhbGJ1bXRodW1ic2l6ZSA9ICIiOwogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2FsYnVtdGh1bWJzaXplJ10pKSB7CiAgICAgICRhbGJ1bXRodW1ic2l6ZSA9ICRwYXJhbXNbJ2FsYnVtdGh1bWJzaXplJ107CiAgICB9IGVsc2UgewogICAgICAkYWxidW10aHVtYnNpemU9JHRoaXMtPkdldFByZWZlcmVuY2UoImRlZmF1bHRhbGJ1bXRodW1ic2l6ZSIsMTI4KTsKICAgIH0KCiAgICAkaW1hZ2V0aHVtYnNpemUgPSAiIjsKICAgIGlmIChpc3NldCgkcGFyYW1zWydpbWFnZXRodW1ic2l6ZSddKSkgewogICAgICAkaW1hZ2V0aHVtYnNpemUgPSAkcGFyYW1zWydpbWFnZXRodW1ic2l6ZSddOyAgICAgIAogICAgfSBlbHNlIHsKICAgICAgJGltYWdldGh1bWJzaXplPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkZWZhdWx0aW1hZ2V0aHVtYnNpemUiLDQ4KTsgICAgICAKICAgIH0gICAgCgogICAgJGltYWdlc2l6ZSA9ICIiOwogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ltYWdlc2l6ZSddKSkgewogICAgICAkaW1hZ2VzaXplID0gJHBhcmFtc1snaW1hZ2VzaXplJ107CiAgICB9IGVsc2UgewogICAgICAkaW1hZ2VzaXplPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkZWZhdWx0aW1hZ2VzaXplIiw1MTIpOwogICAgfQoKICAgIC8vJHVzZXIgPSAkcGFyYW1zWyd1c2VyJ107CiAgICAkYWxidW09IiI7CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snYWxidW0nXSkpIHsKICAgICAgJGFsYnVtPSRwYXJhbXNbJ2FsYnVtJ107CiAgICB9IGVsc2VpZiAoaXNzZXQoJHBhcmFtc1snYWxidW1pZCddKSkgewogICAgICAkYWxidW09JHBhcmFtc1snYWxidW1pZCddOwogICAgfSBlbHNlIHsKICAgICAgZWNobyAiZXJyb3IiOyByZXR1cm47CiAgICB9CiAgICAvKiRhbGJ1bSA9IChpc3NldCgkcGFyYW1zWydhbGJ1bSddKT8kcGFyYW1zWydhbGJ1bSddOmZhbHNlKTsKICAgICRhbGJ1bWlkID0gJHBhcmFtc1snYWxidW1pZCddOwogICAgJGltYWdlU2l6ZSA9ICRwYXJhbXNbJ2ltYWdlc2l6ZSddOwoqLwogICAgLy9TZXQgZGVmYXVsdHMgZm9yIGltYWdlIHNpemUgYW5kIHRodW1ic2l6ZQogIC8vICBpZiAoZW1wdHkoJGltYWdlU2l6ZSkpICRpbWFnZVNpemUgPSAnNTEyJzsKCiAgICAvKiR0aHVtYlNpemUgPSAkcGFyYW1zWydpbWFnZXRodW1ic2l6ZSddOwogICAgaWYgKGVtcHR5KCR0aHVtYlNpemUpKQogICAgICAkdGh1bWJTaXplID0gJHRoaXMtPkdldFByZWZlcmVuY2UoImRlZmF1bHR0aHVtYnNpemUiLCI2NCIpOwoqLwogICAgJHhtbCA9ICR0aGlzLT5nZXRBbGJ1bUNvbnRlbnQoJHVzZXIsICRhbGJ1bSwgJGltYWdlc2l6ZSwgJGltYWdldGh1bWJzaXplKTsKCiAgICAvL2VjaG8gJHhtbDtkaWUoKTsKCiAgICAkZmlyc3RpbWFnZWlkPSIiOwoKICAgIHRyeSB7CiAgICAgICRzeERvYyA9IG5ldyBTaW1wbGVYTUxFbGVtZW50KCR4bWwpOwoKICAgICAgJGFsYnVtTmFtZSA9IChzdHJpbmcpICRzeERvYy0+dGl0bGVbMF07CgogICAgICAvKiRpbWdfZmlsZXMgPSBhcnJheSgpOwogICAgICAkaW1nX3RodW1icyA9IGFycmF5KCk7CiAgICAgICRpbWdfa2V5d29yZHMgPSBhcnJheSgpOwogICAgICAkaW1nX3RpdGxlcyA9IGFycmF5KCk7Ki8KICAgICAgJGltYWdlcz1hcnJheSgpOwoKICAgICAgZm9yZWFjaCAoJHN4RG9jLT54cGF0aCgnLy9lbnRyeScpIGFzICRpdGVtKSB7CiAgICAgICAgLy9vcmlnaW5hbCAkcGljYXNhX2tleXdvcmRzID0gJHBpY2FzYXdlYl94cGF0aC0+cXVlcnkoJy4vL21lZGlhOmtleXdvcmRzJywgJHBpY2FzYV9ub2RlKS0+aXRlbSgwKS0+Zmlyc3RDaGlsZC0+ZGF0YTsKCiAgICAgICAgJGltYWdlID0gbmV3IHN0ZENsYXNzKCk7CiAgICAgICAgJGFycmF5ID0gJGl0ZW0tPnhwYXRoKCcuLy9tZWRpYTpjb250ZW50Jyk7CiAgICAgICAgLy8kaW1hZ2VVcmwgPSAkYXJyYXlbMF1bJ3VybCddOwogICAgICAgICRpbWFnZS0+dXJsID0gJGFycmF5WzBdWyd1cmwnXTsKCiAgICAgICAgJGFycmF5ID0gJGl0ZW0tPnhwYXRoKCcuLy9tZWRpYTp0aHVtYm5haWwnKTsKICAgICAgICAvLyR0aHVtYlVybCA9ICRhcnJheVswXVsndXJsJ107CiAgICAgICAgJGltYWdlLT50aHVtYnVybCA9ICRhcnJheVswXVsndXJsJ107CgogICAgICAgICRhcnJheSA9ICRpdGVtLT54cGF0aCgnLi8vbWVkaWE6a2V5d29yZHMnKTsKICAgICAgICAvLyRrZXl3b3JkcyA9ICRhcnJheVswXTsKICAgICAgICAkaW1hZ2UtPmtleXdvcmRzID0gJGFycmF5WzBdOwoKICAgICAgICAkYXJyYXkgPSAkaXRlbS0+eHBhdGgoJy4vL2dwaG90bzp0aW1lc3RhbXAnKTsKICAgICAgICAkaW1hZ2UtPnRpbWVzdGFtcCA9ICRhcnJheVswXTsKICAgICAgICAKCgogICAgICAgICRhcnJheSA9ICRpdGVtLT54cGF0aCgnLi8vbWVkaWE6ZGVzY3JpcHRpb24nKTsKICAgICAgICAvLyRtZWRpYXRpdGxlID0gJGFycmF5WzBdOwogICAgICAgICRpbWFnZS0+dGl0bGUgPSAkYXJyYXlbMF07CiAgICAgICAgaWYgKCRpbWFnZS0+dGl0bGUgPT0gIiIpIHsKICAgICAgICAgIGlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgiZmlsZW5hbWVkZXNjcmlwdGlvbiIsMCk9PSIxIikgewogICAgICAgICAgICAkYXJyYXkgPSAkaXRlbS0+eHBhdGgoJy4vL21lZGlhOnRpdGxlJyk7CiAgICAgICAgICAgICRpbWFnZS0+dGl0bGUgID0gJGFycmF5WzBdOwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCRmaXJzdGltYWdlaWQ9PSIiKSB7CiAgICAgICAgICAkYXJyYXkgPSAkaXRlbS0+eHBhdGgoJy4vL2dwaG90bzppZCcpOwogICAgICAgICAgJGZpcnN0aW1hZ2VpZCA9ICRhcnJheVswXTsKICAgICAgICB9CgogICAgICAgIC8vZWNobyAiZGF0YTogJGltYWdlVXJsIDxici8+ICR0aHVtYlVybCA8YnIvPiAka2V5d29yZHMgPGJyLz4gJG1lZGlhdGl0bGUgPGJyLz4iOwogICAgICAgIC8qIGFycmF5X3B1c2goJGltZ19maWxlcywgaHRtbGVudGl0aWVzKCRpbWFnZVVybCkpOwogICAgICAgICAgYXJyYXlfcHVzaCgkaW1nX3RodW1icywgaHRtbGVudGl0aWVzKCR0aHVtYlVybCkpOwogICAgICAgICAgYXJyYXlfcHVzaCgkaW1nX2tleXdvcmRzLCBodG1sZW50aXRpZXMoJGtleXdvcmRzKSk7CiAgICAgICAgICBhcnJheV9wdXNoKCRpbWdfdGl0bGVzLCBodG1sZW50aXRpZXMoJG1lZGlhdGl0bGUpKTsgKi8KICAgICAgICAvKmFycmF5X3B1c2goJGltZ19maWxlcywgaHRtbHNwZWNpYWxjaGFycygkaW1hZ2VVcmwpKTsKICAgICAgICBhcnJheV9wdXNoKCRpbWdfdGh1bWJzLCBodG1sc3BlY2lhbGNoYXJzKCR0aHVtYlVybCkpOwogICAgICAgIGFycmF5X3B1c2goJGltZ19rZXl3b3JkcywgaHRtbHNwZWNpYWxjaGFycygka2V5d29yZHMpKTsKICAgICAgICBhcnJheV9wdXNoKCRpbWdfdGl0bGVzLCBodG1sc3BlY2lhbGNoYXJzKCRtZWRpYXRpdGxlKSk7Ki8KICAgICAgICBhcnJheV9wdXNoKCRpbWFnZXMsICRpbWFnZSk7CiAgICAgIH0KCiAgICAgICRhcnJheT0kc3hEb2MtPnhwYXRoKCIvL2dwaG90bzp1c2VyIik7CiAgICAgICR1c2VyaWQ9JGFycmF5WzBdOwogICAgICAkYXJyYXk9JHN4RG9jLT54cGF0aCgiLy9ncGhvdG86bmFtZSIpOwogICAgICAkYWxidW1uYW1lPSRhcnJheVswXTsKCgogICAgICAvL2VjaG8gJGZpcnN0aW1hZ2VpZC4iOiIuJHVzZXJpZDtkaWUoKTsKCiAgICAgICRzbGlkZXNob3d1cmw9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS8nLiR1c2VyaWQuJy8nLnVybGVuY29kZSgkYWxidW1uYW1lKS4nI3NsaWRlc2hvdy8nLiRmaXJzdGltYWdlaWQ7CgogICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3NsaWRlc2hvd3VybCcsICRzbGlkZXNob3d1cmwpOwoKICAgICAgLy9BdHRhY2ggdmFycyB0byBzbWFydHkgdGVtcGxhdGUKICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhbGJ1bXRpdGxlJywgJGFsYnVtTmFtZSk7CiAgICAgIHN0YXRpYyAkdW5pcXVlaWQ9MDsKICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhbGJ1bWlkJywgImFsYnVtIi4kdW5pcXVlaWQpOwogICAgICAvKgogICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ltYWdlcycsICRpbWdfZmlsZXMpOwogICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RodW1ibmFpbHMnLCAkaW1nX3RodW1icyk7CiAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVzJywgJGltZ190aXRsZXMpOwogICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FsYnVtRHJpbGxEb3duJywgZW1wdHkoJHBhcmFtc1snYWxidW0nXSkpOyovCiAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2ltYWdlcycsICRpbWFnZXMpOwoKICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignaW1hZ2V0aHVtYnNpemUnLCAkaW1hZ2V0aHVtYnNpemUpOwoKICAgICAgLy9DcmVhdGUgTGluawogICAgICAkcGFyYW1ldGVycyA9IEFycmF5KAogICAgICAgICAgJ3VzZXInID0+ICR1c2VyLAogICAgICAgICAgJ2ltYWdldGh1bWJzaXplJyA9PiAkaW1hZ2V0aHVtYnNpemUsCiAgICAgICAgICAnYWxidW10aHVtYnNpemUnID0+ICRhbGJ1bXRodW1ic2l6ZSwKICAgICAgICAgICdpbWFnZXNpemUnID0+ICRpbWFnZXNpemUsCiAgICAgICAgICAnaW5jbHVkZScgPT4gJGluY2x1ZGVwYXJhbSwKICAgICAgICAgICdleGNsdWRlJyA9PiAkZXhjbHVkZXBhcmFtCiAgICAgICAgICApOwogICAgICAkbGlua0JhY2sgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAnJywgJHBhcmFtZXRlcnMsICcnLCB0cnVlKTsKICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdsaW5rQmFjaycsICRsaW5rQmFjayk7CgogICAgICAvL0F0dGFjaCBUZXh0IGZvciBsaW5rIGJhY2sgdG8gQWxidW0KICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdsaW5rQmFja1RleHQnLCAkdGhpcy0+TGFuZygnbGlua19iYWNrX3RleHQnKSk7CiAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignaW1hZ2VvZnRleHQnLCAkdGhpcy0+TGFuZygnaW1hZ2VvZnRleHQnKSk7CgogICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21vZHVsZXBhdGgnLCAkY29uZmlnWyJyb290X3VybCJdLiIvbW9kdWxlcy9QaWNhc2FCcm93c2VyIi8qJHRoaXMtPkdldE1vZHVsZVVSTFBhdGgoKSovKTsKICAgICAgLy8kdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21vZHVsZXBhdGgnLCBkaXJuYW1lKF9fRklMRV9fKS8qJHRoaXMtPkdldE1vZHVsZVVSTFBhdGgoKSovKTsKCiAgICAgIC8vIERpc3BsYXkgdGhlIHBvcHVsYXRlZCB0ZW1wbGF0ZQogICAgICAkdGVtcGxhdGU9JHRoaXMtPkdldFRlbXBsYXRlKCdpbWFnZXMnKTsKICAgICAgJHRlbXBsYXRlPSR0aGlzLT5HZXRCb2R5UGFydCgkdGVtcGxhdGUpOwogICAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdGVtcGxhdGUpOwogICAgfSBjYXRjaCAoRXhjZXB0aW9uICRleCkgewogICAgICBlY2hvICJFcnJvciBnZXR0aW5nIG9yIHBhcnNpbmcgWE1MIGRvY3VtZW50Ljxici8+IjsKICAgICAgZWNobyAkZXgtPmRlc2NyaXB0aW9uOwogICAgICBlY2hvICJEb2M6IiAuICR4bWw7CiAgICB9CiAgfQoKICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCiAgZnVuY3Rpb24gZGlzcGxheUFsYnVtcygkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpIHsKICAgICR1c2VyID0gIiI7CiAgICBpZiAoaXNzZXQoJHBhcmFtc1sndXNlciddKSkgewogICAgICAkdXNlciA9ICRwYXJhbXNbJ3VzZXInXTsKICAgIH0gZWxzZSB7CiAgICAgICR1c2VyPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkZWZhdWx0dXNlciIpOwogICAgfQoKICAgIC8vSW5jbHVkZSBQYXJhbQogICAgJGluY2x1ZGU9YXJyYXkoKTsgJGluY2x1ZGVwYXJhbT0iIjsKICAgIGlmICghZW1wdHkoJHBhcmFtc1snaW5jbHVkZSddKSkgewogICAgICAkaW5jbHVkZSA9IHNwbGl0KCI7IiwgJHBhcmFtc1snaW5jbHVkZSddKTsKICAgICAgJGluY2x1ZGVwYXJhbT0kcGFyYW1zWydpbmNsdWRlJ107CiAgICB9CgogICAgLy9FeGNsdWRlIFBhcmFtCiAgICAkZXhjbHVkZT1hcnJheSgpOyAkZXhjbHVkZXBhcmFtPSIiOwogICAgaWYgKCFlbXB0eSgkcGFyYW1zWydleGNsdWRlJ10pKSB7CiAgICAgICRleGNsdWRlID0gc3BsaXQoIjsiLCAkcGFyYW1zWydleGNsdWRlJ10pOwogICAgICAkZXhjbHVkZXBhcmFtPSRwYXJhbXNbImV4Y2x1ZGUiXTsKICAgIH0KCiAgICAkYWxidW10aHVtYnNpemUgPSAiIjsKICAgIGlmIChpc3NldCgkcGFyYW1zWydhbGJ1bXRodW1ic2l6ZSddKSkgewogICAgICAkYWxidW10aHVtYnNpemUgPSAkcGFyYW1zWydhbGJ1bXRodW1ic2l6ZSddOwogICAgfSBlbHNlIHsKICAgICAgJGFsYnVtdGh1bWJzaXplPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkZWZhdWx0YWxidW10aHVtYnNpemUiLDEyOCk7CiAgICB9CgogICAgJGltYWdldGh1bWJzaXplID0gIiI7CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snaW1hZ2V0aHVtYnNpemUnXSkpIHsKICAgICAgJGltYWdldGh1bWJzaXplID0gJHBhcmFtc1snaW1hZ2V0aHVtYnNpemUnXTsKICAgIH0gZWxzZSB7CiAgICAgICRpbWFnZXRodW1ic2l6ZT0kdGhpcy0+R2V0UHJlZmVyZW5jZSgiZGVmYXVsdGltYWdldGh1bWJzaXplIiw0OCk7CiAgICB9CgogICAgJGltYWdlc2l6ZSA9ICIiOwogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ltYWdlc2l6ZSddKSkgewogICAgICAkaW1hZ2VzaXplID0gJHBhcmFtc1snaW1hZ2VzaXplJ107CiAgICB9IGVsc2UgewogICAgICAkaW1hZ2VzaXplPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCJkZWZhdWx0aW1hZ2VzaXplIiw1MTIpOwogICAgfQoKICAgICR4bWwgPSAkdGhpcy0+Z2V0QWxidW1zKCR1c2VyLCAkYWxidW10aHVtYnNpemUpOwogICAgLy9lY2hvICR4bWw7IGRpZSgpOwogICAgCiAgICB0cnkgewogICAgICAkc3hEb2MgPSBuZXcgU2ltcGxlWE1MRWxlbWVudCgkeG1sKTsKCiAgICAgIC8qJGltZ190aHVtYnMgPSBhcnJheSgpOwogICAgICAkaW1nX3RpdGxlcyA9IGFycmF5KCk7CiAgICAgICRhbGJ1bV9saW5rcyA9IGFycmF5KCk7Ki8KICAgICAgJGFsYnVtcz1hcnJheSgpOwogICAgICBmb3JlYWNoICgkc3hEb2MtPnhwYXRoKCcvL2VudHJ5JykgYXMgJGl0ZW0pIHsKICAgICAgICAkYXJyYXkgPSAkaXRlbS0+eHBhdGgoJy4vL2dwaG90bzpuYW1lJyk7CiAgICAgICAgJGduYW1lID0gJGFycmF5WzBdOwogICAgICAgIGlmICghZW1wdHkoJGluY2x1ZGUpICYmICEkdGhpcy0+Y29tcGFyZUFycmF5KCRpbmNsdWRlLCAkZ25hbWUpKSB7IC8vQ2hlY2sgSW5jbHVkZSBtYXNrCiAgICAgICAgICBpZiAoIWVtcHR5KCRleGNsdWRlKSAmJiAkdGhpcy0+Y29tcGFyZUFycmF5KCRleGNsdWRlLCAkZ25hbWUpKSB7IC8vQ2hlY2sgRXhjbHVkZSBtYXNrCiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAvKiBhcnJheV9wdXNoKCRpbWdfdGh1bWJzLCBodG1sZW50aXRpZXMoJHRodW1iVXJsKSk7CiAgICAgICAgICAgICAgYXJyYXlfcHVzaCgkaW1nX3RpdGxlcywgaHRtbGVudGl0aWVzKCRtZWRpYXRpdGxlKSk7ICovCiAgICAgICAgICAgIC8qYXJyYXlfcHVzaCgkaW1nX3RodW1icywgaHRtbHNwZWNpYWxjaGFycygkdGh1bWJVcmwpKTsKICAgICAgICAgICAgYXJyYXlfcHVzaCgkaW1nX3RpdGxlcywgaHRtbHNwZWNpYWxjaGFycygkbWVkaWF0aXRsZSkpOwogICAgICAgICAgICBhcnJheV9wdXNoKCRhbGJ1bV9saW5rcywgJGFsYnVtSWQpOyovCiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkYWxidW0gPSBuZXcgc3RkQ2xhc3MoKTsKICAgICAgICAkYXJyYXkgPSAkaXRlbS0+eHBhdGgoJy4vL21lZGlhOmdyb3VwL21lZGlhOnRpdGxlJyk7CiAgICAgICAgLy8kbWVkaWF0aXRsZSA9ICRhcnJheVswXTsKICAgICAgICAkYWxidW0tPnRpdGxlPSRhcnJheVswXTsKCiAgICAgICAgJGFycmF5ID0gJGl0ZW0tPnhwYXRoKCcuLy9tZWRpYTpncm91cC9tZWRpYTp0aHVtYm5haWwnKTsKICAgICAgICAvLyR0aHVtYlVybCA9ICRhcnJheVswXVsndXJsJ107CiAgICAgICAgJGFsYnVtLT50aHVtYnVybD0kYXJyYXlbMF1bJ3VybCddOwogICAgICAgCiAgICAgICAgJGFycmF5ID0gJGl0ZW0tPnhwYXRoKCcuLy9ncGhvdG86dGltZXN0YW1wJyk7CiAgICAgICAgLy8kYWxidW1UaW1lID0gJGFycmF5WzBdOwogICAgICAgICRhbGJ1bS0+dGltZXN0YW1wPSAkYXJyYXlbMF07CiAgICAgICAgLy9lY2hvICRhbGJ1bS0+dGltZXN0YW1wOwogICAgICAgICRhbGJ1bS0+eWVhciA9IGRhdGUoIlkiLCAkYWxidW0tPnRpbWVzdGFtcC8xMDAwKTsKICAgICAgICAvL2VjaG8gZGF0ZSgiWSIsICRhbGJ1bS0+dGltZXN0YW1wLzEwMDApOwogICAgICAgICAgICAgIAogICAgICAgIC8vQ3JlYXRlIExpbmsgdG8gYWxidW0gcGFnZQogICAgICAgICRhcnJheSA9ICRpdGVtLT54cGF0aCgnLi8vZ3Bob3RvOmlkJyk7CiAgICAgICAgLy8kYWxidW1JZCA9ICRhcnJheVswXTsKICAgICAgICAkYWxidW1pZD0gJGFycmF5WzBdOwogICAgICAgIC8vJHBhcmFtZXRlcnMgPSBBcnJheSgndXNlcicgPT4gJHVzZXIsICdhbGJ1bWlkJyA9PiAkYWxidW1pZCwgJ2ltYWdldGh1bWJzaXplJyA9PiAkaW1hZ2V0aHVtYnNpemUsICdhbGJ1bXRodW1ic2l6ZScgPT4gJGFsYnVtdGh1bWJzaXplLCAnaW1hZ2VzaXplJyA9PiAkaW1hZ2VzaXplLCAnaW5jbHVkZScgPT4gJGluY2x1ZGUsICdleGNsdWRlJyA9PiAkZXhjbHVkZSk7CgogICAgICAgICRwYXJhbWV0ZXJzID0gQXJyYXkoCiAgICAgICAgICAndXNlcicgPT4gJHVzZXIsCiAgICAgICAgICAnYWxidW1pZCcgPT4gJGFsYnVtaWQsCiAgICAgICAgICAnaW1hZ2V0aHVtYnNpemUnID0+ICRpbWFnZXRodW1ic2l6ZSwKICAgICAgICAgICdhbGJ1bXRodW1ic2l6ZScgPT4gJGFsYnVtdGh1bWJzaXplLAogICAgICAgICAgJ2ltYWdlc2l6ZScgPT4gJGltYWdlc2l6ZSwKICAgICAgICAgICdpbmNsdWRlJyA9PiAkaW5jbHVkZXBhcmFtLAogICAgICAgICAgJ2V4Y2x1ZGUnID0+ICRleGNsdWRlcGFyYW0KICAgICAgICAgICk7CiAgICAgICAgLy8kYWxidW1JZCA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICcnLCAkcGFyYW1ldGVycywgJycsIHRydWUpOwogICAgICAgICRhbGJ1bS0+bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICcnLCAkcGFyYW1ldGVycywgJycsIHRydWUpOwoKCiAgICAgICAgYXJyYXlfcHVzaCgkYWxidW1zLCAkYWxidW0pOwogICAgICAgIAogICAgICB9CgogICAgICAvKiR0aGlzLT5zbWFydHktPmFzc2lnbignbGlua3MnLCAkYWxidW1fbGlua3MpOwogICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RodW1ibmFpbHMnLCAkaW1nX3RodW1icyk7CiAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVzJywgJGltZ190aXRsZXMpOyovCiAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2FsYnVtcycsICRhbGJ1bXMpOwogICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdhbGJ1bXRodW1ic2l6ZScsICRhbGJ1bXRodW1ic2l6ZSk7CgogICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21vZHVsZXBhdGgnLCAkY29uZmlnWyJyb290X3VybCJdLiIvbW9kdWxlcy9QaWNhc2FCcm93c2VyIi8qJHRoaXMtPkdldE1vZHVsZVVSTFBhdGgoKSovKTsKICAgICAgLy8kdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21vZHVsZXBhdGgnLCBkaXJuYW1lKF9fRklMRV9fKS8qJHRoaXMtPkdldE1vZHVsZVVSTFBhdGgoKSovKTsKCiAgICAgIC8vIERpc3BsYXkgdGhlIHBvcHVsYXRlZCB0ZW1wbGF0ZSAgICAgIAogICAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoImFsYnVtcyIpOwogICAgfSBjYXRjaCAoRXhjZXB0aW9uICRleCkgewogICAgICBlY2hvICJlcnJvciI7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBHZXRIZWFkZXJQYXJ0KCR0ZW1wbGF0ZSkgewogICAgJHBvcz0gc3RyaXBvcygkdGVtcGxhdGUsICR0aGlzLT5oZWFkYm9keXNlcGFyYXRvcik7CiAgICBpZiAoJHBvcz09PWZhbHNlKSByZXR1cm4gJHRlbXBsYXRlOwogICAgcmV0dXJuIHN1YnN0cigkdGVtcGxhdGUsMCwkcG9zKTsKICB9CgogIGZ1bmN0aW9uIEdldEJvZHlQYXJ0KCR0ZW1wbGF0ZSkgewogICAgLy9lY2hvICR0ZW1wbGF0ZTsKICAgICRwb3MgPSBzdHJpcG9zKCR0ZW1wbGF0ZSwgJHRoaXMtPmhlYWRib2R5c2VwYXJhdG9yKTsKICAgIC8vZWNobyAkcG9zOyBlY2hvICR0aGlzLT5oZWFkYm9keXNlcGFyYXRvcjsgZGllKCk7CiAgICBpZiAoJHBvcz09PWZhbHNlKSByZXR1cm4gJHRlbXBsYXRlOwogICAgCiAgICByZXR1cm4gc3Vic3RyKCR0ZW1wbGF0ZSwkcG9zK3N0cmxlbigkdGhpcy0+aGVhZGJvZHlzZXBhcmF0b3IpKTsKICB9CgogIGZ1bmN0aW9uIGNvbXBhcmVBcnJheSgkYXJyYXksICRzdHJpbmcpIHsKICAgIGZvcmVhY2ggKCRhcnJheSBhcyAkY29tcGFyZSkgewogICAgICAvL2VjaG8gJGNvbXBhcmUgLiAiOiIgLiAkc3RyaW5nOwogICAgICBpZiAoc3RyaXN0cigkc3RyaW5nLCAkY29tcGFyZSkpIHsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIGZhbHNlOwogIH0KCiAgZnVuY3Rpb24gZ2V0QWxidW1Db250ZW50KCR1c2VyLCAkYWxidW0sICRpbWFnZXNpemUsICRpbWFnZXRodW1ic2l6ZSkgewogICAgLy9lY2hvICJoZXI6Ii4kYWxidW0uJGltYWdlc2l6ZS4kaW1hZ2V0aHVtYnNpemU7CiAgICAvL2RpZSgpOwogICAgCiAgICBpZiAoaXNfbnVtZXJpYygkYWxidW0pKSB7CiAgICAgICR1cmwgPSAnaHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8nIC4gdXJsZW5jb2RlKCR1c2VyKSAuICcvYWxidW1pZC8nIC4gdXJsZW5jb2RlKCRhbGJ1bSkgLiAnP2tpbmQ9cGhvdG8maW1nbWF4PScgLiAkaW1hZ2VzaXplIC4gJyZ0aHVtYnNpemU9JyAuICRpbWFnZXRodW1ic2l6ZTsKICAgIH0gZWxzZSB7CiAgICAvL2lmIChpc3NldCgkYWxidW1JZCkpCiAgICAgICR1cmwgPSAnaHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8nIC4gdXJsZW5jb2RlKCR1c2VyKSAuICcvYWxidW0vJyAuIHVybGVuY29kZSgkYWxidW0pIC4gJz9raW5kPXBob3RvJmltZ21heD0nIC4gJGltYWdlc2l6ZSAuICcmdGh1bWJzaXplPScgLiAkaW1hZ2V0aHVtYnNpemU7CiAgICB9CgogICAgJHhtbCA9ICR0aGlzLT5nZXRSZW1vdGVGaWxlKCR1cmwpOwoKICAgICR4bWwgPSBzdHJfcmVwbGFjZSgieG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDUvQXRvbSciLCAnJywgJHhtbCk7CgogICAgcmV0dXJuICR4bWw7CiAgfQoKICBmdW5jdGlvbiBnZXRBbGJ1bXMoJHVzZXJpZCwgJGFsYnVtdGh1bWJzaXplKSB7CiAgICAvKmlmIChlbXB0eSgkYWxidW1UaHVtYnNpemUpKQogICAgICAkYWxidW1UaHVtYnNpemUgPSAxNjA7Ki8KCiAgICAkdXJsID0gJ2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvJyAuIHVybGVuY29kZSgkdXNlcmlkKSAuICc/a2luZD1hbGJ1bSZ0aHVtYnNpemU9JyAuICRhbGJ1bXRodW1ic2l6ZTsKICAgICR4bWwgPSAkdGhpcy0+Z2V0UmVtb3RlRmlsZSgkdXJsKTsKCiAgICAkeG1sID0gc3RyX3JlcGxhY2UoInhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDA1L0F0b20nIiwgJycsICR4bWwpOwoKICAgIHJldHVybiAkeG1sOwogIH0KCiAgLyoKICAgIFRoaXMgZnVuY3Rpb24gcmV0cmVpdmVzIGEgcmVtb3RlIGRvY3VtZW50IGF0dGVtcHRpbmcgdHdvIGRpZmZlcmVudCB3YXlzOgogICAgY1VSTCAtIFRoaXMgaXMgZmlyc3QgYmVjYXVzZSBpdCBhbGxvd3MgY29tcHJlc3Npb24gYW5kIGlzIG11Y2ggZmFzdGVyIG9uIHNpdGVzIGxpa2UgZ29vZ2xlLgogICAgZmlsZV9nZXRfY29udGVudHMgLSBjYW4gb25seSBiZSB1c2VkIGlmICdhbGxvd191cmxfb3Blbicgb3B0aW9uIGlzIHNldCBvbiBpbiB0aGUgUEhQLmluaS4KCiAgICBJZiBuZWl0aGVyIGZ1bmN0aW9uIHdvcmtzLCBhbiBlcnJvciBpcyByZXR1cm5lZCB0byB0aGUgZGVza3RvcCB0byBhbGVydCB0aGUgdXNlcgogICAqLwoKICBmdW5jdGlvbiBnZXRSZW1vdGVGaWxlKCR1cmwpIHsKICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ2N1cmxfaW5pdCcpKSB7CiAgICAgICRjaCA9IGN1cmxfaW5pdCgkdXJsKTsKCiAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwpOwogICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIHRydWUpOyAgIC8vcmV0dXJuIGRvYyBhcyBzdHJpbmcKICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgZmFsc2UpOyAgICAgICAgICAvL2RvbnQgcmV0dXJuIGhlYWRlcgoKICAgICAgJHJldHVybiA9IGN1cmxfZXhlYygkY2gpOwogICAgICBjdXJsX2Nsb3NlKCRjaCk7CiAgICB9IGVsc2VpZiAoaW5pX2dldCgnYWxsb3dfdXJsX2ZvcGVuJykpIHsKICAgICAgJHJldHVybiA9IGZpbGVfZ2V0X2NvbnRlbnRzKCR1cmwpOwogICAgfSBlbHNlIHsKICAgICAgZWNobyAkdGhpcy0+TGFuZygncG9zdGluc3RhbGxfZm9wZW5fb2ZmJyk7CiAgICB9CgogICAgcmV0dXJuICRyZXR1cm47CiAgfQoKICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIERpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICRtZXNzYWdlKQogICAgTk9UIFBBUlQgT0YgVEhFIE1PRFVMRSBBUEkKCiAgICBUaGlzIGlzIGFuIGV4YW1wbGUgb2YgYSBzaW1wbGUgbWV0aG9kIHRvIGRpc3BsYXkKICAgIGVycm9yIGluZm9ybWF0aW9uIG9uIHRoZSBhZG1pbiBzaWRlLgogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgogIGZ1bmN0aW9uIERpc3BsYXlFcnJvclBhZ2UoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkLCAkbWVzc2FnZT0nJykgewogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9lcnJvcicsICR0aGlzLT5MYW5nKCdlcnJvcicpKTsKICAgIGlmICgkbWVzc2FnZSAhPSAnJykgewogICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdtZXNzYWdlJywgJG1lc3NhZ2UpOwogICAgfQoKICAgIC8vIERpc3BsYXkgdGhlIHBvcHVsYXRlZCB0ZW1wbGF0ZQogICAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlcnJvci50cGwnKTsKICB9CgogIGZ1bmN0aW9uIE91dHB1dEhlYWRlckluZm8oKSB7CiAgICAgZ2xvYmFsICRjb25maWc7CiAgICAgJHRlbXBsYXRlPSR0aGlzLT5HZXRUZW1wbGF0ZSgnaW1hZ2VzJyk7CiAgICAgJHRlbXBsYXRlPSR0aGlzLT5HZXRIZWFkZXJQYXJ0KCR0ZW1wbGF0ZSk7CiAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtb2R1bGVwYXRoJywgJGNvbmZpZ1sicm9vdF91cmwiXS4iL21vZHVsZXMvUGljYXNhQnJvd3NlciIvKiR0aGlzLT5HZXRNb2R1bGVVUkxQYXRoKCkqLyk7CiAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbmNsdWRlanF1ZXJ5JywgJHRoaXMtPkdldFByZWZlcmVuY2UoImluY2x1ZGVqcXVlcnkiLDEpKTsKICAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdGVtcGxhdGUpOwogIH0KCiAgCn0KCj8+]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/changelog.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Cjx1bD4KPGxpPlZlcnNpb24gMi4wLjMgLSBBZGRlZCB0aGUgbmV3IG5pY2Ugc3R1bmljaG9scyB0ZW1wbGF0ZTwvbGk+CjxsaT5WZXJzaW9uIDIuMC4yIC0gQWRkZWQgdGh1bWJzaXplcyB0byBkZWZhdWx0IHRlbXBsYXRlcywgc28gdGhleSBjYW4gc2hvdyBjb3JyZWN0bHkuIEFkZGVkIE1pbGtCb3gtc3lzdGVtIHdoaWNoIHN1cHBvcnRzIGF1dG9wbGF5aW5nIHNsaWRlc2hvdy4gQWRkZWQgdHJhbnNsYXRpb24gb2YgdGhlICJvZiIgd29yZCBpbiBpbWFnZS1nYWxsZXJpZXMuPC9saT4KPGxpPlZlcnNpb24gMi4wLjEgLSBBZGRlZCBzZWxlY3RhYmxlIGRlZmF1bHQgdmFsdWVzIGZvciBzaXplcyBhbmQgdXNlci4gQ2xlYW5lZCB1cCBjb2RlIGFuZCBtYWRlIGl0IG1vcmUgcHJlLWNtcy0xLjggY29tcGF0aWJsZS4gRXhwb3J0aW5nIHRobWJzaXplcyBub3csIHNvIHRoZSB0ZW1wbGF0ZXMgY2FuIHRha2UgdGhlbSBpbnRvIGFjY291bnQ8L2xpPgo8bGk+VmVyc2lvbiAyLjAgMjAxMCAtIEZpeGVkIGZvcmVpZ24gY2hhcnMgaW4gYWxidW1uYW1lcywgZXh0ZXJuYWxpemVkIGNoYW5nZWxvZywgaW1wcm92ZWQganVzdCBhYm91dCBhbnl0aGluZywgYnV0IHNob3VsZCBiZSByZWFzb25hYmx5IGJhY2t3YXJkcyBjb21wYXRpYmxlLiBCdXQgY2hlY2sgb3V0IHRoZSBoZWFkZXItcGFyYW1ldGVyIGZvciBpbmNsdWRpbmcgc3R1ZmYgaW4gdGhlICZsdDtoZWFkJmd0Oy1wYXJ0LjwvbGk+CjxsaT5WZXJzaW9uIDEuMCA3IEF1Z3VzdCAyMDA3LiBBZGRlZCBleGNsdWRlIGFuZCBpbmNsdWRlIHBhcmFtZXRlcnMuIEFsc28gYWRkZWQgYWRtaW4gcGFuZWwgZm9yIGVkaXRpbmcgdGVtcGxhdGVzIGZyb20gdGhlIGFkbWluIHBhbmVsLjwvbGk+CjxsaT5WZXJzaW9uIDAuMSAyIEF1Z3VzdCAyMDA3LiBJbml0aWFsIFJlbGVhc2UuPC9saT4KCjwvdWw+]]></data>
	</file>
	<file>
	  <filename>/templates/editdefaulttemplate.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19Cgk8aDQ+eyRkZWZhdWx0dGVtcGxhdGVmb3JtX3RpdGxlfTwvaDQ+CiAgICAgICAgPGVtPnskaW5mb190aXRsZX08L2VtPjxici8+CQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3RlbXBsYXRlfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF90ZW1wbGF0ZX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzdWJtaXR9eyRyZXNldH17JHN5c3RlbXRlbXBsYXRlfTwvcD4KCTwvZGl2Pgp7JGVuZGZvcm19Cjxici8+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/error.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfZXJyb3J9PC9oMz4KPHA+eyRhZG1pbl9uYXZ9PC9wPgp7aWYgJG1lc3NhZ2UhPScnfTxwPnskbWVzc2FnZX08L3A+ey9pZn0=]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/fancybox/blank.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancybox-x.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAABICAYAAAA3Qp8tAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAG1JREFUeNq0jzEOgDAMA90WChMDUsXKp3kcTwFRQp0hUR9AhpPtJo0CEQG2UkIEIMRAqAUR+0xVNpt7eLNPjES171U9ptzexGXZa5nbYM2KpA/QE1pNtAutLtI67Y5/0G87UsNOrMRMgKifAAMA8xojdBZ1K0cAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancybox-y.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACgAAAABCAYAAACsXeyTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFJJREFUeNpMjF0OgCAMg4eAegLC/U9HOIEJutnGPtjkS/fTLUWEUb21BMuAvtmnojqLQ875qR2putsBH97AwQKPWD+YuZRx9a471jHmZG+vAAMAMUgY/0A1OZkAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancybox.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_close.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_loading.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACgAAAHgCAYAAADXMi8AAAAnmklEQVR42u3dB3RlZdU38LH33nvH3nvvBRt2RcVeEVREUWyABcGuCBYUFVlWQF9FrEsFBCa5SWaSaZmSTMn0xjCDiC98a337d9bz5DtzCXNPknPv5FueWeusJGducvbZz95P+f93mTdv738HxHVUXL+I6/y4zuvRdX565lFJhin/vSKui+Iai2tRXMM9vhalZ1+UZNnr3yFxTcS1JK5WXAP76WolGcjyxizcg0tvsD+FKwtJloVxPYiAR8e1ao4IVxaSTB8j4Nlxjcwh4fJFpl/NS140XMMf7I+rr2YB/zovufhsBWzd7W53G370ox+95FrXulZdAg4n2WakwVbJZn3t/+53v7t5fHz88kc+8pGLa7Ln4STbtARs3fCGNxw69thj18c1cb3rXa8Y2hvd6EZDZ5999vYNGzZc8aIXvWh5FvDmN7/50D3ucY/hm9zkJkO9ErD/jne840LCtFqtS5///OcTZv5Nb3rToR/96EdbRkZGLnvuc5876nPXuc51Bu91r3sNP+hBD1p0m9vcZkG3BSwPad9b3vKWsfPOO++S733ve5tDe4PXv/71Bwk4PDy8Jwt4u9vdbsEDHvCARfe85z2H/X9XBYxhHbzVrW41lLy0FUO34OSTT958/vnn73rd615nvur71a9+VQzxgQceuDwcpXXf+9535P73v/+iW9ziFpPai/uDYRaDtQv4gQ98YE0ItJF9pQfMf9rTnrbsggsu2HXWWWdtjyEc+uhHPzpB4BjSxWzP0N75znee/LvskD0ecMABi2i9TgFbRxxxxJozzzxz209+8pMtn/rUpyYe+tCHLjKdfPjDH15z4oknbgjtLuAoBAjbG2Bz9773vYdvfOMbD133utcdDLtdENocechDHrLogQ984KKKTlNdg/EHB1/wgheMHn/88evPOOOMrT/96U+3vf71r191gxvcYJAQae5rpcl6IIQaIOjNbnazodBYIVjY40jMlQt9vu4hzg5SGD6b+/73v7+ZVkuCTfl7t771rRfQGEchbOnv1SZgK2vk2te+9uTPd73rXYc9vNNDaNFwlr3YS1VcbToK2DLnveMd7xg/7LDDVr/tbW8bf+tb3zp26KGHrn7mM5+5zP/z1k4PuuUtb7ngPve5z0jYZHHxbo5SYW7s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]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_nav_left.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAFbUlEQVRIx61Xa0ibVxjWxJjGS+NtscZr1szaNTgvc5W2SlHQNrA5HSLtaqtVxAlOGKgDwQlObL20irTFMav7N4RN7PbHHzp0c2Jb1tatIKKooENWFWrMxZjYPW94P9GYmLTbgYfknPOe9znnvZ3zeXgc3jwBEeH8+fNeycnJklOnTnmr1Wppa2ur7507d/yoT6A5khHkee1rN1okBiTAkRMnTviXl5crbt++HdPc3KyurKw8fuvWrfe7u7tPp6SkRBYXF0c2NDRE4PctND9aw2vFr7MBEqSdS0lJVlaWorOzUzMyMqJ98eLFTbPZPPHKrm1vbz9ZX1//Znh4+MO8vLzoiIiIIN6AlHW5JBexoCwmJiYgPz8/qqen55xOp/vBnmxlZcW6sLBgtR9/+fLl97CQKjExURkYGCgnXaxT5OqkPrTjK1euqAcHBz+yWq0LpBAn3YFpzbCAATK6vYC59e3t7Waj0bjDsk9x+kvwe5RcLg8knc5OLpDKjh49GpSdna3u7+/PhY4tUjQ0NGSJjo7etCe0R1xcnP7x48cW4fRY9ynGYphc5ohczP6Qx8fHq1paWi5YLJZFWtzb22sWi8U6V6QCSLapqWlLIL93716uUqmMJN3MsRtwnhyBfiEhIcqKiopzCJSfhZO6IoUfHVri7t27ZtKB+Pgd/XeBY8TBXCIhoI6QidPT00/29fUV0wK9Xm+FrzddkU5NTVkbGxu37Oe8vb11y8vL26RrdHT0K+h6B+NBnGpigdjXx8dHiSg+Nz8//x0Jd3V1mQ8jTUpK0i8uLtqCiX4dyZSVlZlofnV19Rf044EwPrWX4F/4X/62Vqu9YDAYnpJwamqq4TBSpM0Op88O9R3JBQcHbyJWbL4OCAhIx5gKCAC8PZg9ODQ0VJOTk3OZhDY2NqzukJKZnflYwLNnz2yBVltbW+nv7x+HsRA2t4fEz89PgXqbUlpa+jkJzczMWP4PUsKDBw+2OLpv+vr6voexUE4tDwn8G6bRaM6g1taQ0PPnzx0SCz6llpGRYXAnvQYGBmzEuFA60E8ClBRTHhzeSoVCcSYtLa2ShNbW1iz/xbd7MTk5aST56urqRplM9gHGwvcRSySS0yqVqgTl7h8SdJZKQgq5Q041ADK2lEJh+gwcB4jDMJgCP1+bm5sbI8GqqiqTq/x1RU51nS+UP9G/BCTbm1oB4oTY2NgC3LPfsvA2fK9zh9xZHo+Njelp/ic09POAfcFlSyfgpFQq1cLENag4T2gBXhlb7lSukpKSA9YpKioycsn8G/lci7ELxLE3ncRcwFVeXl5pQUFBJUirbiF6SYG7F4SAs2fPGvA4sHI0D2CsGEizLyAitjmVswQERC6KyZco8ruXf319/Za7pIWFhUaTyWQjHR8ff4ixGiCHdNuXTBEfnQq4GkgH+TWY8WvU60GBfHp62lRQUGB05ncKpImJCYMgD9I/MN4IXCWdrHvfJbF7LfLVpQGyQV6G+n0Dj7zBpaWlGUEhnYbKIJ5EJsKjR49MQspwDVhua2ujS+EGUEa6WOeBa3HfQwCgSzsR0BI5Tki7vt/R0fHb7Ozs9CsnDZE9h0fDQ2RHL5+USLWsy+FDYN/TB6BnShT7JJtNVYOq00YbgBV+zMzM/LWuru4vAm608fDw8EGaA9rYp1d5bQLrcvr02ffYY8FINhFF48fAdeALoB7R3wy04n8r/ReJRPU8d51l03htJOvycfXMFe05uZz9cpx3TsouAp8Al4FCxmUeu8gyCbzmGOtw+by1/4qQcpoFspJoIJZPksA3TRL/1/BcNMsG8lrpm3xNeO6xgISVyNhsvnbw4Tkpy3rt+X56o28oR5txBbfavx4m6rAPnooRAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_nav_right.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAFdUlEQVRIx6VXbUibVxS2iTGN0cZEF2v8zJqpncH5MVepVUoLagObq6NInba1LeIEJ0zUQcEVXLH1u4iKo53u3xA2sduf/tBRNyf9YK1ugoiiQh0yq1A1H8ak3XPCeUXTxKTtCw/Jve+5z3Pvueece18fn72ffYCIcPz4cd/U1FRJQkKCn06nkzY1Nck7OzsDqE2gd2Qj2PPY135okBiQAPvj4uICy8rK1G1tbTENDQ26ioqKQ62trR/29PQcSUtLiywpKYm8evVqBH7fwRNAY3is+HUmQIY0cymRZGdnq2/evKkfHh42LC8v37BarWMvnZ6tra3Hq6ur3w0NDX2cn58fHRERoeIJSJnLo7iIDWUxMTFBZ86cibp9+/ax9fX1n5zFlpaW7PPz83bn/ufPn/8ID2mTk5M1SqVSQVzMKfK0Un+acVFRkW5wcPATu90+T4RY6Qu41goPmGCzvhNwt7GlpcVqNptfsO0TrP4s9j1KoVAoidPdygVR2YEDB1Q5OTm6/v7+0+DYJKK7d+/aoqOjN5wFnREfH2989OiRTVg9xn2OvhgWl7kSF/N+KBITE7WNjY25NpttgQb39vZaxWLxuidRAWR77dq1TUG8u7v7tEajiSRu1tgOuH0cgQEhISGa8vLyYwiUX4WVuhLF3m0Q9ppAV1eXlTgQH3+i/T5wkDRYSyQE1H5ycVZW1uG+vr4SGmA0Gu3Ya5fk9fX1mxMTE/a9xP38/NYXFxe3iOvevXvfgOs99Ks41cSCsNzf31+DKD42Nzf3Axl3dHRY3ZEich1B5Em8tLTUQnbPnj37De1EIIxX7SvsL/Zf8a7BYMg1mUxPyDg9Pd3kjjAlJcUoiNMvtV3ZBQcHbyBWHHsdFBSUhT4tEAT4+bB6cGhoqD4vL6+QjNbW1uyegshb8fHxcUeg1dbWVgQGBsajL4Td7SMJCAhQo96mXb58+Usymp6etnkTwVqt1kju3kv8zp07mxzdN+Ry+QfoC+XU8pFgf8P0ev1R1NoaMpqcnLR5mz4nTpwwCamzsLDwwvn9wMCAQxgHSjvaKYCGYsqHw1ujVquPZmZmVpDRysqKV8I73U0rJw8429y/f99M76urq+tlMtlH6AvfJSyRSI5g4CWUu//I0F0quRN1Fd1UA2DjSCkUpi+g8YpwGDrTsM/nZ2dnR8iwsrLS8jaiBKrrfKD8jfZZINXZ1WoIJ8XGxhbgnL3FxlvY+7fK45GRESPZ/YIH7XxgV3A50gk4LJVKDXBxDSrOYxqAW8amK8KqqioLuLb2Er1w4YKZS+a/yOda9OWSxs50EnMB1/r6+maqVKpLSKseIVKJwNsIF5CRkWHC5cDO0TyAvhIg07mAiNjnVM6SEBCnUUy+RpHfPvzr6uo2vRUtLi42WywWh+jo6OgD9NUAecTtXDJFvHQq4DogC+Ln4cZvUa8HBfGpqSlLQUGB2d2+UyCNjY1t5zRE/0J/PXCOOJl71yGxfSzy0aUHciBeivp9HZe8wadPn04LhLQaKoO4ElkIDx8+tAgpwzVgsbm5mQ6F60ApcTHnK8firosAQId2MmAgcayQZv19e3v7HzMzM1Mv3TyoWrO4NDxAdvTySknUwFwuLwK7rj4AXVOieE9y2FU1qDrNNAF44eeTJ0/+fuXKlX8IONFGw8PDB+kd0Mx7eo7HJjGX26vPrsseG0ayiygaPwUuAl8BdYj+BqAJ/5vov0gkquN3F9k2k8dGMpe/p2uuaMfKFbwvh3jmRHYK+AwoBIoZhdx3im2SeMxB5vB4vXX+ipBymimZJBqI5ZUk8UmTwv/1/C6abZU8VvomXxP7dnhAwiQydpvcCf78Tsq2vju+n97oG8rVZDzBq+d/BnPq5aM0EKUAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_shadow_e.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABQAAAABCAYAAADeko4lAAAAMklEQVQI12MUFxW1YGBg+APE/4D4NxD/heLfSPg/EP+AqvkH5f+D6gOx/7949QrEZwAA7SMU/wl/9ugAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_shadow_n.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAAUCAYAAABMDlehAAAAMUlEQVQI11XLwQkAIBTD0GdRNxD3n/R7U7wUElJVxV6rBRX0oAWC/K4H8+L858XvMQ6htwScSSgzAAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_shadow_ne.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAABIklEQVQ4y62Ua47DMAiEB5wcoer9b7fqGYLZP6b6FrlVK20kK37gYWDAlpn6z8/ut5tLmrszSV95+3k8VGAmyde+A8y+ZehgMwFWZwmbzn77HWvQKBZIpWHCQc3zHUNv+RprPdZwgPgnIRuA1PKZG8dqf9sxHACiUHQaYEnBcgfYWTBsQbBXghhFMUnnupQYJVABz1ZiCaZJwBMXGUYZXS3M8cL+CThwcCFfFWaxH+siw49dHQ54PRo7pmCu80pNtOaYLOxAzbFUGNqEyix+dlhWDh0soq2FeTZR1Lrpieyb7hiw6bmOjSBGlecShGUQAL3QTdFKxbj21i1VlwcAEvsV9mgsRcBiebaH9YCzAjlbzwec/MmPwMxafxvAd08a21e/OepnxlCGJoQAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_shadow_nw.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAABC0lEQVQ4y62UAQqDMAxFmzT1CLL731O7Kf3yCHXIWKHUlubn/US13nv557BD8LWuP8V+Zh+r9vtTQQVzn8/O8yeCCvSDYKx9zDruaH9r2XDRcH6IbRC1dL88JbR01pFApKeTLGgpQKMOuyR1NYKk3whpS7WjeAXdNlZ/YjlGgBwEHASSnfWloN10tqdaVtgUpZJ4FmSwOhqwHUhE61eSmWXHRYoykaGex2iKpWB+t3rqaEVjHOIOwYuQNStYeRagIlkFxLSG2VYBXcWzyJyi2XKZiKoRDfSB1Uiam1LT96lXIpCkTcQE0+4sGwJYN80F1gMgPiPcYbdNukmhwH65+9tE+tdFsh1pNgAsb+/rdlTpwE+hAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_shadow_s.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAAUCAYAAABMDlehAAAANklEQVQI10XKwQ2AMBDEwGGpIaIT+m8LFHL8Lj/bsmuMO6jgC2bT1jd4uq1uW4+eZ3AGS1X5AXa8E2Tq43WHAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_shadow_se.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAABJ0lEQVQ4y41UUW5DMQgzvF6h2jl6/wtNvcHaBPYDnefypEaKoiTYsQHFvq7XG4Bd8wEgAfzUftXs+wTwrDUBBACrO3zf7/AiedahEZABCcDxN7ym0R4AcBGCRfsQYtCjep99roS7AjepW0TG5DqyFbayJDCTJ1kOUgNZowkXEaFyGoPNTY+ZxBjncFH1OlBtLlHXq5GDF+GDwKA87YFALacm8kIEcVK5ILDemTyKS1kFAZcELyqIk5Ox2k14SGArPUil2jQ6CyY0Sb5JhXcR99lBpDEp5H7joCgwpPldFP8bLj0YZMWpB0MsmlT7TSEre5Jap1xuwtnUMk0IUmmULxMSl7YaSX1IrIKmcarQh4AYfhWTfZ489PoocwAx8JTgTXrmx7EfjV9rMblEHBbT2AAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_shadow_sw.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAABG0lEQVQ4y62TUW4DIQxEn2E3uUHU+99zcX/saDolaSs1EvKKwGOYMZGZfDweAAOIGlSdVY8aAdxrfgCnfE9gRgEHsAR01CIEpHVWvdW6Xn80MICsyYYPgbTSs+pN1p4CjLArNyj7CgJE5nScongosDdcBgiBzo2veuhW4ayqXq66ZlogvAqlFXYQaSpTuqBhQ9Q9O8RD0fbp70sCyqpYYM/DVWF7tcw/TJ2rntodDmyVWNqtbEkd5uEA2AGHgdM2q1K1B21s7MkhSeth7aM+gi9P1VMO2ZwverNVh9jR/8UOiIQzJSS1Q9Wpn9+A2BWHbVii5tqkzjugB7IskLS59Q64a6PY+OzhvQX+dIi2V/xG4V8PGUBGZvKfv08j7HxbBtCVPwAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_shadow_w.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABQAAAABCAYAAADeko4lAAAALklEQVQI12P8//8/AwhIiIkxAilmIAbRTAwQwAJlM0MxO5QGiXNA5UCYFaqPDQAGHwN8eWM6AwAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_title_left.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA8AAAAgCAQAAABnJeoiAAABvklEQVQoz42TTSjDcRjHv/ZmTGYbU8K8HEYS5a28ZE5eDxzcKLIdnMRpNVJKccHNcSflJEqhXHbQ4mg5jFgrVsS0qclLHs/f/+9l+/9Xfr/b//N7nv/zfJ/vA8hPBl8V1NBAK0cq/qyDHgbkIi8VqRllw7hsD7lj28+BZKhFFsdY7zdIOskwG+b9/rif6J32npyR1vBfaIDF7xRiLl86wgh+3a8jwvwjlwDXo4ZzCQbFWA3/0zzX8hYjmr/7QRJWIRNGFN/uE+3Ek2BQjDXA6nYQvX7YLuVYx7G2oyWirdTYoJBajwLYw4dEzogcqzl1Eeri10S1ITnWsE6laH5NEJkulHAeKtCWDmthQiU6HiPKySV85lcuTUq+6VVuTCqtd1KQpfoqTWMYODlWElWSBV3tMwmufvZOUVQ0YWjBKxhh5SHzPHUkhaiCA6O+E7kdxIGWoB49mHB5T2+EHLvxMclMoh0sKEcj+jABz0Eg2YqimQq4/wZ0YwTTNWurPl/oIvptRcHfOfygjFvsxCDGMQUPFn+NLDxgr6KYi2zkMgcwjFH5GhhhZRXtnKUZ7Ur7xUuEfFbSxqP6/woqLPAnWuESyIO/rbkAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_title_main.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAAgCAQAAAB57NqRAAAAJ0lEQVQI12NgYGdgEGX4/x+EGG6Sj6AmTGVgyGJgcGdg0AYZy8AOAFcCGpZWWVPyAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_title_over.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQI12NgYGBYDAAAqACkxaGYIAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/fancy_title_right.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA8AAAAgCAQAAABnJeoiAAABwUlEQVQoz31TSyiEURg9ZsZjjLyHEsZjgSTKqzwyVp4LFnYUGQsrsVJIKcUGO8tZKStRCmUzC00syWKIaYop8siokUeuc80/+mf+f9xvec733XvOPR8QDxOMMCCOpXPSkQoLkpBAmkFDeTt72fZOL5chDcmkGKMoQjkPG8jhHDMvUxOafA7/3usXCQH3fg8yOSOC4JHV6rt6lzPcDmTxJSqCJ1SWi/UnSTgaQ7ZCUMOy5u+F+HyZa+QVZuqIi4Lh2QkIcbePfOpIDPVHwLarj28hpu1UYQn1eyJri/1HS7CxP0EHdviF8B2iDFY6adDAVV46cINq5HG8UQNnXArxEUQDCumhKRbcjBJ+lkl3+LMfrShFBs3Re9q5OyYshW06YwyvuJa2dI3HeJo09eQYvbrCZvklwWDLFNo1tiRerDzKUCw40Y/6KFPDcXCdYAh2lCNX+ZIm37B/NyD7Tm/HnBhFJ2pQ8Peh4SgenGGGYDfqUMxAheNw+eTyrroq1zCJQXSglnqt6jAtsmsCI+hDG+UUEUz5zbsSxSEMUKedQ8sZIplTFQi00KFq6ixkgNI0a0DrbXQoW1kizZ79v4L/L/APa0QSyMrM1Z0AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/jquery.easing-1.3.pack.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IEVhc2luZyB2MS4zIC0gaHR0cDovL2dzZ2QuY28udWsvc2FuZGJveC9qcXVlcnkvZWFzaW5nLwogKgogKiBVc2VzIHRoZSBidWlsdCBpbiBlYXNpbmcgY2FwYWJpbGl0aWVzIGFkZGVkIEluIGpRdWVyeSAxLjEKICogdG8gb2ZmZXIgbXVsdGlwbGUgZWFzaW5nIG9wdGlvbnMKICoKICogVEVSTVMgT0YgVVNFIC0galF1ZXJ5IEVhc2luZwogKiAKICogT3BlbiBzb3VyY2UgdW5kZXIgdGhlIEJTRCBMaWNlbnNlLiAKICogCiAqIENvcHlyaWdodCDCqSAyMDA4IEdlb3JnZSBNY0dpbmxleSBTbWl0aAogKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKiAKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgCiAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKICogCiAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIAogKiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IAogKiBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyAKICogcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogKiAKICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgYXV0aG9yIG5vciB0aGUgbmFtZXMgb2YgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2UgCiAqIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCiAqIAogKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSAKICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCiAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQogKiAgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAogKiAgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFCiAqICBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgCiAqIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCiAqICBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCAKICogT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICoKKi8KCi8vIHQ6IGN1cnJlbnQgdGltZSwgYjogYmVnSW5uSW5nIHZhbHVlLCBjOiBjaGFuZ2UgSW4gdmFsdWUsIGQ6IGR1cmF0aW9uCmV2YWwoZnVuY3Rpb24ocCxhLGMsayxlLHIpe2U9ZnVuY3Rpb24oYyl7cmV0dXJuKGM8YT8nJzplKHBhcnNlSW50KGMvYSkpKSsoKGM9YyVhKT4zNT9TdHJpbmcuZnJvbUNoYXJDb2RlKGMrMjkpOmMudG9TdHJpbmcoMzYpKX07aWYoIScnLnJlcGxhY2UoL14vLFN0cmluZykpe3doaWxlKGMtLSlyW2UoYyldPWtbY118fGUoYyk7az1bZnVuY3Rpb24oZSl7cmV0dXJuIHJbZV19XTtlPWZ1bmN0aW9uKCl7cmV0dXJuJ1xcdysnfTtjPTF9O3doaWxlKGMtLSlpZihrW2NdKXA9cC5yZXBsYWNlKG5ldyBSZWdFeHAoJ1xcYicrZShjKSsnXFxiJywnZycpLGtbY10pO3JldHVybiBwfSgnaC5pW1wnMWFcJ109aC5pW1wnelwnXTtoLk8oaC5pLHt5OlwnRFwnLHo6OSh4LHQsYixjLGQpezYgaC5pW2guaS55XSh4LHQsYixjLGQpfSwxNzo5KHgsdCxiLGMsZCl7NiBjKih0Lz1kKSp0K2J9LEQ6OSh4LHQsYixjLGQpezYtYyoodC89ZCkqKHQtMikrYn0sMTM6OSh4LHQsYixjLGQpe2UoKHQvPWQvMik8MSk2IGMvMip0KnQrYjs2LWMvMiooKC0tdCkqKHQtMiktMSkrYn0sWDo5KHgsdCxiLGMsZCl7NiBjKih0Lz1kKSp0KnQrYn0sVTo5KHgsdCxiLGMsZCl7NiBjKigodD10L2QtMSkqdCp0KzEpK2J9LFI6OSh4LHQsYixjLGQpe2UoKHQvPWQvMik8MSk2IGMvMip0KnQqdCtiOzYgYy8yKigodC09MikqdCp0KzIpK2J9LE46OSh4LHQsYixjLGQpezYgYyoodC89ZCkqdCp0KnQrYn0sTTo5KHgsdCxiLGMsZCl7Ni1jKigodD10L2QtMSkqdCp0KnQtMSkrYn0sTDo5KHgsdCxiLGMsZCl7ZSgodC89ZC8yKTwxKTYgYy8yKnQqdCp0KnQrYjs2LWMvMiooKHQtPTIpKnQqdCp0LTIpK2J9LEs6OSh4LHQsYixjLGQpezYgYyoodC89ZCkqdCp0KnQqdCtifSxKOjkoeCx0LGIsYyxkKXs2IGMqKCh0PXQvZC0xKSp0KnQqdCp0KzEpK2J9LEk6OSh4LHQsYixjLGQpe2UoKHQvPWQvMik8MSk2IGMvMip0KnQqdCp0KnQrYjs2IGMvMiooKHQtPTIpKnQqdCp0KnQrMikrYn0sRzo5KHgsdCxiLGMsZCl7Ni1jKjguQyh0L2QqKDguZy8yKSkrYytifSwxNTo5KHgsdCxiLGMsZCl7NiBjKjgubih0L2QqKDguZy8yKSkrYn0sMTI6OSh4LHQsYixjLGQpezYtYy8yKig4LkMoOC5nKnQvZCktMSkrYn0sWjo5KHgsdCxiLGMsZCl7Nih0PT0wKT9iOmMqOC5qKDIsMTAqKHQvZC0xKSkrYn0sWTo5KHgsdCxiLGMsZCl7Nih0PT1kKT9iK2M6YyooLTguaigyLC0xMCp0L2QpKzEpK2J9LFc6OSh4LHQsYixjLGQpe2UodD09MCk2IGI7ZSh0PT1kKTYgYitjO2UoKHQvPWQvMik8MSk2IGMvMio4LmooMiwxMCoodC0xKSkrYjs2IGMvMiooLTguaigyLC0xMCotLXQpKzIpK2J9LFY6OSh4LHQsYixjLGQpezYtYyooOC5vKDEtKHQvPWQpKnQpLTEpK2J9LFM6OSh4LHQsYixjLGQpezYgYyo4Lm8oMS0odD10L2QtMSkqdCkrYn0sUTo5KHgsdCxiLGMsZCl7ZSgodC89ZC8yKTwxKTYtYy8yKig4Lm8oMS10KnQpLTEpK2I7NiBjLzIqKDgubygxLSh0LT0yKSp0KSsxKStifSxQOjkoeCx0LGIsYyxkKXtmIHM9MS5sO2YgcD0wO2YgYT1jO2UodD09MCk2IGI7ZSgodC89ZCk9PTEpNiBiK2M7ZSghcClwPWQqLjM7ZShhPDgudyhjKSl7YT1jO2Ygcz1wLzR9bSBmIHM9cC8oMio4LmcpKjgucihjL2EpOzYtKGEqOC5qKDIsMTAqKHQtPTEpKSo4Lm4oKHQqZC1zKSooMio4LmcpL3ApKStifSxIOjkoeCx0LGIsYyxkKXtmIHM9MS5sO2YgcD0wO2YgYT1jO2UodD09MCk2IGI7ZSgodC89ZCk9PTEpNiBiK2M7ZSghcClwPWQqLjM7ZShhPDgudyhjKSl7YT1jO2Ygcz1wLzR9bSBmIHM9cC8oMio4LmcpKjgucihjL2EpOzYgYSo4LmooMiwtMTAqdCkqOC5uKCh0KmQtcykqKDIqOC5nKS9wKStjK2J9LFQ6OSh4LHQsYixjLGQpe2Ygcz0xLmw7ZiBwPTA7ZiBhPWM7ZSh0PT0wKTYgYjtlKCh0Lz1kLzIpPT0yKTYgYitjO2UoIXApcD1kKiguMyoxLjUpO2UoYTw4LncoYykpe2E9YztmIHM9cC80fW0gZiBzPXAvKDIqOC5nKSo4LnIoYy9hKTtlKHQ8MSk2LS41KihhKjguaigyLDEwKih0LT0xKSkqOC5uKCh0KmQtcykqKDIqOC5nKS9wKSkrYjs2IGEqOC5qKDIsLTEwKih0LT0xKSkqOC5uKCh0KmQtcykqKDIqOC5nKS9wKSouNStjK2J9LEY6OSh4LHQsYixjLGQscyl7ZShzPT11KXM9MS5sOzYgYyoodC89ZCkqdCooKHMrMSkqdC1zKStifSxFOjkoeCx0LGIsYyxkLHMpe2Uocz09dSlzPTEubDs2IGMqKCh0PXQvZC0xKSp0KigocysxKSp0K3MpKzEpK2J9LDE2OjkoeCx0LGIsYyxkLHMpe2Uocz09dSlzPTEubDtlKCh0Lz1kLzIpPDEpNiBjLzIqKHQqdCooKChzKj0oMS5CKSkrMSkqdC1zKSkrYjs2IGMvMiooKHQtPTIpKnQqKCgocyo9KDEuQikpKzEpKnQrcykrMikrYn0sQTo5KHgsdCxiLGMsZCl7NiBjLWguaS52KHgsZC10LDAsYyxkKStifSx2OjkoeCx0LGIsYyxkKXtlKCh0Lz1kKTwoMS8yLmspKXs2IGMqKDcucSp0KnQpK2J9bSBlKHQ8KDIvMi5rKSl7NiBjKig3LnEqKHQtPSgxLjUvMi5rKSkqdCsuaykrYn1tIGUodDwoMi41LzIuaykpezYgYyooNy5xKih0LT0oMi4xNC8yLmspKSp0Ky4xMSkrYn1tezYgYyooNy5xKih0LT0oMi4xOC8yLmspKSp0Ky4xOSkrYn19LDFiOjkoeCx0LGIsYyxkKXtlKHQ8ZC8yKTYgaC5pLkEoeCx0KjIsMCxjLGQpKi41K2I7NiBoLmkudih4LHQqMi1kLDAsYyxkKSouNStjKi41K2J9fSk7Jyw2Miw3NCwnfHx8fHx8cmV0dXJufHxNYXRofGZ1bmN0aW9ufHx8fHxpZnx2YXJ8UEl8alF1ZXJ5fGVhc2luZ3xwb3d8NzV8NzAxNTh8ZWxzZXxzaW58c3FydHx8NTYyNXxhc2lufHx8dW5kZWZpbmVkfGVhc2VPdXRCb3VuY2V8YWJzfHxkZWZ8c3dpbmd8ZWFzZUluQm91bmNlfDUyNXxjb3N8ZWFzZU91dFF1YWR8ZWFzZU91dEJhY2t8ZWFzZUluQmFja3xlYXNlSW5TaW5lfGVhc2VPdXRFbGFzdGljfGVhc2VJbk91dFF1aW50fGVhc2VPdXRRdWludHxlYXNlSW5RdWludHxlYXNlSW5PdXRRdWFydHxlYXNlT3V0UXVhcnR8ZWFzZUluUXVhcnR8ZXh0ZW5kfGVhc2VJbkVsYXN0aWN8ZWFzZUluT3V0Q2lyY3xlYXNlSW5PdXRDdWJpY3xlYXNlT3V0Q2lyY3xlYXNlSW5PdXRFbGFzdGljfGVhc2VPdXRDdWJpY3xlYXNlSW5DaXJjfGVhc2VJbk91dEV4cG98ZWFzZUluQ3ViaWN8ZWFzZU91dEV4cG98ZWFzZUluRXhwb3x8OTM3NXxlYXNlSW5PdXRTaW5lfGVhc2VJbk91dFF1YWR8MjV8ZWFzZU91dFNpbmV8ZWFzZUluT3V0QmFja3xlYXNlSW5RdWFkfDYyNXw5ODQzNzV8anN3aW5nfGVhc2VJbk91dEJvdW5jZScuc3BsaXQoJ3wnKSwwLHt9KSkKCi8qCiAqCiAqIFRFUk1TIE9GIFVTRSAtIEVBU0lORyBFUVVBVElPTlMKICogCiAqIE9wZW4gc291cmNlIHVuZGVyIHRoZSBCU0QgTGljZW5zZS4gCiAqIAogKiBDb3B5cmlnaHQgwqkgMjAwMSBSb2JlcnQgUGVubmVyCiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqIAogKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCAKICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgogKiAKICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgCiAqIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3QgCiAqIG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIAogKiBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAqIAogKiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBhdXRob3Igbm9yIHRoZSBuYW1lcyBvZiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSAKICogb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KICogCiAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZIAogKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCiAqICBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCiAqICBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUKICogIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCAKICogQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKICogIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIAogKiBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogKgogKi8K]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/jquery.fancybox-1.3.1.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCiAqIEZhbmN5Qm94IC0galF1ZXJ5IFBsdWdpbg0KICogU2ltcGxlIGFuZCBmYW5jeSBsaWdodGJveCBhbHRlcm5hdGl2ZQ0KICoNCiAqIEV4YW1wbGVzIGFuZCBkb2N1bWVudGF0aW9uIGF0OiBodHRwOi8vZmFuY3lib3gubmV0DQogKiANCiAqIENvcHlyaWdodCAoYykgMjAwOCAtIDIwMTAgSmFuaXMgU2thcm5lbGlzDQogKg0KICogVmVyc2lvbjogMS4zLjEgKDA1LzAzLzIwMTApDQogKiBSZXF1aXJlczogalF1ZXJ5IHYxLjMrDQogKg0KICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGFuZCBHUEwgbGljZW5zZXM6DQogKiAgIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwDQogKiAgIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwuaHRtbA0KICovDQoNCiNmYW5jeWJveC1sb2FkaW5nIHsNCglwb3NpdGlvbjogZml4ZWQ7DQoJdG9wOiA1MCU7DQoJbGVmdDogNTAlOw0KCWhlaWdodDogNDBweDsNCgl3aWR0aDogNDBweDsNCgltYXJnaW4tdG9wOiAtMjBweDsNCgltYXJnaW4tbGVmdDogLTIwcHg7DQoJY3Vyc29yOiBwb2ludGVyOw0KCW92ZXJmbG93OiBoaWRkZW47DQoJei1pbmRleDogMTEwNDsNCglkaXNwbGF5OiBub25lOw0KfQ0KDQoqIGh0bWwgI2ZhbmN5Ym94LWxvYWRpbmcgewkvKiBJRTYgKi8NCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJbWFyZ2luLXRvcDogMDsNCn0NCg0KI2ZhbmN5Ym94LWxvYWRpbmcgZGl2IHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJdG9wOiAwOw0KCWxlZnQ6IDA7DQoJd2lkdGg6IDQwcHg7DQoJaGVpZ2h0OiA0ODBweDsNCgliYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2ZhbmN5Ym94LnBuZycpOw0KfQ0KDQojZmFuY3lib3gtb3ZlcmxheSB7DQoJcG9zaXRpb246IGZpeGVkOw0KCXRvcDogMDsNCglsZWZ0OiAwOw0KCWJvdHRvbTogMDsNCglyaWdodDogMDsNCgliYWNrZ3JvdW5kOiAjMDAwOw0KCXotaW5kZXg6IDExMDA7DQoJZGlzcGxheTogbm9uZTsNCn0NCg0KKiBodG1sICNmYW5jeWJveC1vdmVybGF5IHsJLyogSUU2ICovDQoJcG9zaXRpb246IGFic29sdXRlOw0KCXdpZHRoOiAxMDAlOw0KfQ0KDQojZmFuY3lib3gtdG1wIHsNCglwYWRkaW5nOiAwOw0KCW1hcmdpbjogMDsNCglib3JkZXI6IDA7DQoJb3ZlcmZsb3c6IGF1dG87DQoJZGlzcGxheTogbm9uZTsNCn0NCg0KI2ZhbmN5Ym94LXdyYXAgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl0b3A6IDA7DQoJbGVmdDogMDsNCgltYXJnaW46IDA7DQoJcGFkZGluZzogMjBweDsNCgl6LWluZGV4OiAxMTAxOw0KCWRpc3BsYXk6IG5vbmU7DQp9DQoNCiNmYW5jeWJveC1vdXRlciB7DQoJcG9zaXRpb246IHJlbGF0aXZlOw0KCXdpZHRoOiAxMDAlOw0KCWhlaWdodDogMTAwJTsNCgliYWNrZ3JvdW5kOiAjRkZGOw0KfQ0KDQojZmFuY3lib3gtaW5uZXIgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl0b3A6IDA7DQoJbGVmdDogMDsNCgl3aWR0aDogMXB4Ow0KCWhlaWdodDogMXB4Ow0KCXBhZGRpbmc6IDA7DQoJbWFyZ2luOiAwOw0KCW91dGxpbmU6IG5vbmU7DQoJb3ZlcmZsb3c6IGhpZGRlbjsNCn0NCg0KI2ZhbmN5Ym94LWhpZGUtc2VsLWZyYW1lIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJdG9wOiAwOw0KCWxlZnQ6IDA7DQoJd2lkdGg6IDEwMCU7DQoJaGVpZ2h0OiAxMDAlOw0KCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50Ow0KfQ0KDQojZmFuY3lib3gtY2xvc2Ugew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl0b3A6IC0xNXB4Ow0KCXJpZ2h0OiAtMTVweDsNCgl3aWR0aDogMzBweDsNCgloZWlnaHQ6IDMwcHg7DQoJYmFja2dyb3VuZC1pbWFnZTogdXJsKCdmYW5jeWJveC5wbmcnKTsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDBweCAwcHg7DQoJY3Vyc29yOiBwb2ludGVyOw0KCXotaW5kZXg6IDExMDM7DQoJZGlzcGxheTogbm9uZTsNCn0NCg0KI2ZhbmN5Ym94X2Vycm9yIHsNCgljb2xvcjogIzQ0NDsNCglmb250OiBub3JtYWwgMTJweC8yMHB4IEFyaWFsOw0KCXBhZGRpbmc6IDdweDsNCgltYXJnaW46IDA7DQp9DQoNCiNmYW5jeWJveC1jb250ZW50IHsNCgloZWlnaHQ6IGF1dG87DQoJd2lkdGg6IGF1dG87DQoJcGFkZGluZzogMDsNCgltYXJnaW46IDA7DQp9DQoNCiNmYW5jeWJveC1pbWcgew0KCXdpZHRoOiAxMDAlOw0KCWhlaWdodDogMTAwJTsNCglwYWRkaW5nOiAwOw0KCW1hcmdpbjogMDsNCglib3JkZXI6IG5vbmU7DQoJb3V0bGluZTogbm9uZTsNCglsaW5lLWhlaWdodDogMDsNCgl2ZXJ0aWNhbC1hbGlnbjogdG9wOw0KCS1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7DQp9DQoNCiNmYW5jeWJveC1mcmFtZSB7DQoJcG9zaXRpb246IHJlbGF0aXZlOw0KCXdpZHRoOiAxMDAlOw0KCWhlaWdodDogMTAwJTsNCglib3JkZXI6IG5vbmU7DQoJZGlzcGxheTogYmxvY2s7DQp9DQoNCiNmYW5jeWJveC10aXRsZSB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCWJvdHRvbTogMDsNCglsZWZ0OiAwOw0KCWZvbnQtZmFtaWx5OiBBcmlhbDsNCglmb250LXNpemU6IDEycHg7DQoJei1pbmRleDogMTEwMjsNCn0NCg0KLmZhbmN5Ym94LXRpdGxlLWluc2lkZSB7DQoJcGFkZGluZzogMTBweCAwOw0KCXRleHQtYWxpZ246IGNlbnRlcjsNCgljb2xvcjogIzMzMzsNCn0NCg0KLmZhbmN5Ym94LXRpdGxlLW91dHNpZGUgew0KCXBhZGRpbmctdG9wOiA1cHg7DQoJY29sb3I6ICNGRkY7DQoJdGV4dC1hbGlnbjogY2VudGVyOw0KCWZvbnQtd2VpZ2h0OiBib2xkOw0KfQ0KDQouZmFuY3lib3gtdGl0bGUtb3ZlciB7DQoJY29sb3I6ICNGRkY7DQoJdGV4dC1hbGlnbjogbGVmdDsNCn0NCg0KI2ZhbmN5Ym94LXRpdGxlLW92ZXIgew0KCXBhZGRpbmc6IDEwcHg7DQoJYmFja2dyb3VuZC1pbWFnZTogdXJsKCdmYW5jeV90aXRsZV9vdmVyLnBuZycpOw0KCWRpc3BsYXk6IGJsb2NrOw0KfQ0KDQojZmFuY3lib3gtdGl0bGUtd3JhcCB7DQoJZGlzcGxheTogaW5saW5lLWJsb2NrOw0KfQ0KDQojZmFuY3lib3gtdGl0bGUtd3JhcCBzcGFuIHsNCgloZWlnaHQ6IDMycHg7DQoJZmxvYXQ6IGxlZnQ7DQp9DQoNCiNmYW5jeWJveC10aXRsZS1sZWZ0IHsNCglwYWRkaW5nLWxlZnQ6IDE1cHg7DQoJYmFja2dyb3VuZC1pbWFnZTogdXJsKCdmYW5jeWJveC5wbmcnKTsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDBweCAtOTBweDsNCgliYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KfQ0KDQojZmFuY3lib3gtdGl0bGUtbWFpbiB7DQoJZm9udC13ZWlnaHQ6IGJvbGQ7DQoJbGluZS1oZWlnaHQ6IDI5cHg7DQoJYmFja2dyb3VuZC1pbWFnZTogdXJsKCdmYW5jeWJveC14LnBuZycpOw0KCWJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNDBweDsNCgljb2xvcjogI0ZGRjsNCn0NCg0KI2ZhbmN5Ym94LXRpdGxlLXJpZ2h0IHsNCglwYWRkaW5nLWxlZnQ6IDE1cHg7DQoJYmFja2dyb3VuZC1pbWFnZTogdXJsKCdmYW5jeWJveC5wbmcnKTsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNTVweCAtOTBweDsNCgliYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KfQ0KDQojZmFuY3lib3gtbGVmdCwgI2ZhbmN5Ym94LXJpZ2h0IHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJYm90dG9tOiAwcHg7DQoJaGVpZ2h0OiAxMDAlOw0KCXdpZHRoOiAzNSU7DQoJY3Vyc29yOiBwb2ludGVyOw0KCW91dGxpbmU6IG5vbmU7DQoJYmFja2dyb3VuZC1pbWFnZTogdXJsKCdibGFuay5naWYnKTsNCgl6LWluZGV4OiAxMTAyOw0KCWRpc3BsYXk6IG5vbmU7DQp9DQoNCiNmYW5jeWJveC1sZWZ0IHsNCglsZWZ0OiAwcHg7DQp9DQoNCiNmYW5jeWJveC1yaWdodCB7DQoJcmlnaHQ6IDBweDsNCn0NCg0KI2ZhbmN5Ym94LWxlZnQtaWNvLCAjZmFuY3lib3gtcmlnaHQtaWNvIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJdG9wOiA1MCU7DQoJbGVmdDogLTk5OTlweDsNCgl3aWR0aDogMzBweDsNCgloZWlnaHQ6IDMwcHg7DQoJbWFyZ2luLXRvcDogLTE1cHg7DQoJY3Vyc29yOiBwb2ludGVyOw0KCXotaW5kZXg6IDExMDI7DQoJZGlzcGxheTogYmxvY2s7DQp9DQoNCiNmYW5jeWJveC1sZWZ0LWljbyB7DQoJYmFja2dyb3VuZC1pbWFnZTogdXJsKCdmYW5jeWJveC5wbmcnKTsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDBweCAtMzBweDsNCn0NCg0KI2ZhbmN5Ym94LXJpZ2h0LWljbyB7DQoJYmFja2dyb3VuZC1pbWFnZTogdXJsKCdmYW5jeWJveC5wbmcnKTsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDBweCAtNjBweDsNCn0NCg0KI2ZhbmN5Ym94LWxlZnQ6aG92ZXIsICNmYW5jeWJveC1yaWdodDpob3ZlciB7DQoJdmlzaWJpbGl0eTogdmlzaWJsZTsgICAgLyogSUU2ICovDQp9DQoNCiNmYW5jeWJveC1sZWZ0OmhvdmVyIHNwYW4gew0KCWxlZnQ6IDIwcHg7DQp9DQoNCiNmYW5jeWJveC1yaWdodDpob3ZlciBzcGFuIHsNCglsZWZ0OiBhdXRvOw0KCXJpZ2h0OiAyMHB4Ow0KfQ0KDQouZmFuY3ktYmcgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCglwYWRkaW5nOiAwOw0KCW1hcmdpbjogMDsNCglib3JkZXI6IDA7DQoJd2lkdGg6IDIwcHg7DQoJaGVpZ2h0OiAyMHB4Ow0KCXotaW5kZXg6IDEwMDE7DQp9DQoNCiNmYW5jeS1iZy1uIHsNCgl0b3A6IC0yMHB4Ow0KCWxlZnQ6IDA7DQoJd2lkdGg6IDEwMCU7DQoJYmFja2dyb3VuZC1pbWFnZTogdXJsKCdmYW5jeWJveC14LnBuZycpOw0KfQ0KDQojZmFuY3ktYmctbmUgew0KCXRvcDogLTIwcHg7DQoJcmlnaHQ6IC0yMHB4Ow0KCWJhY2tncm91bmQtaW1hZ2U6IHVybCgnZmFuY3lib3gucG5nJyk7DQoJYmFja2dyb3VuZC1wb3NpdGlvbjogLTQwcHggLTE2MnB4Ow0KfQ0KDQojZmFuY3ktYmctZSB7DQoJdG9wOiAwOw0KCXJpZ2h0OiAtMjBweDsNCgloZWlnaHQ6IDEwMCU7DQoJYmFja2dyb3VuZC1pbWFnZTogdXJsKCdmYW5jeWJveC15LnBuZycpOw0KCWJhY2tncm91bmQtcG9zaXRpb246IC0yMHB4IDBweDsNCn0NCg0KI2ZhbmN5LWJnLXNlIHsNCglib3R0b206IC0yMHB4Ow0KCXJpZ2h0OiAtMjBweDsNCgliYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2ZhbmN5Ym94LnBuZycpOw0KCWJhY2tncm91bmQtcG9zaXRpb246IC00MHB4IC0xODJweDsgDQp9DQoNCiNmYW5jeS1iZy1zIHsNCglib3R0b206IC0yMHB4Ow0KCWxlZnQ6IDA7DQoJd2lkdGg6IDEwMCU7DQoJYmFja2dyb3VuZC1pbWFnZTogdXJsKCdmYW5jeWJveC14LnBuZycpOw0KCWJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMjBweDsNCn0NCg0KI2ZhbmN5LWJnLXN3IHsNCglib3R0b206IC0yMHB4Ow0KCWxlZnQ6IC0yMHB4Ow0KCWJhY2tncm91bmQtaW1hZ2U6IHVybCgnZmFuY3lib3gucG5nJyk7DQoJYmFja2dyb3VuZC1wb3NpdGlvbjogLTQwcHggLTE0MnB4Ow0KfQ0KDQojZmFuY3ktYmctdyB7DQoJdG9wOiAwOw0KCWxlZnQ6IC0yMHB4Ow0KCWhlaWdodDogMTAwJTsNCgliYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2ZhbmN5Ym94LXkucG5nJyk7DQp9DQoNCiNmYW5jeS1iZy1udyB7DQoJdG9wOiAtMjBweDsNCglsZWZ0OiAtMjBweDsNCgliYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2ZhbmN5Ym94LnBuZycpOw0KCWJhY2tncm91bmQtcG9zaXRpb246IC00MHB4IC0xMjJweDsNCn0NCg0KLyogSUUgKi8NCg0KI2ZhbmN5Ym94LWxvYWRpbmcuZmFuY3lib3gtaWUgZGl2CXsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhSW1hZ2VMb2FkZXIoc3JjPSdmYW5jeWJveC9mYW5jeV9sb2FkaW5nLnBuZycsIHNpemluZ01ldGhvZD0nc2NhbGUnKTsgfQ0KLmZhbmN5Ym94LWllICNmYW5jeWJveC1jbG9zZQkJeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGFJbWFnZUxvYWRlcihzcmM9J2ZhbmN5Ym94L2ZhbmN5X2Nsb3NlLnBuZycsIHNpemluZ01ldGhvZD0nc2NhbGUnKTsgfQ0KDQouZmFuY3lib3gtaWUgI2ZhbmN5Ym94LXRpdGxlLW92ZXIJeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGFJbWFnZUxvYWRlcihzcmM9J2ZhbmN5Ym94L2ZhbmN5X3RpdGxlX292ZXIucG5nJywgc2l6aW5nTWV0aG9kPSdzY2FsZScpOyB6b29tOiAxOyB9DQouZmFuY3lib3gtaWUgI2ZhbmN5Ym94LXRpdGxlLWxlZnQJeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGFJbWFnZUxvYWRlcihzcmM9J2ZhbmN5Ym94L2ZhbmN5X3RpdGxlX2xlZnQucG5nJywgc2l6aW5nTWV0aG9kPSdzY2FsZScpOyB9DQouZmFuY3lib3gtaWUgI2ZhbmN5Ym94LXRpdGxlLW1haW4JeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGFJbWFnZUxvYWRlcihzcmM9J2ZhbmN5Ym94L2ZhbmN5X3RpdGxlX21haW4ucG5nJywgc2l6aW5nTWV0aG9kPSdzY2FsZScpOyB9DQouZmFuY3lib3gtaWUgI2ZhbmN5Ym94LXRpdGxlLXJpZ2h0CXsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhSW1hZ2VMb2FkZXIoc3JjPSdmYW5jeWJveC9mYW5jeV90aXRsZV9yaWdodC5wbmcnLCBzaXppbmdNZXRob2Q9J3NjYWxlJyk7IH0NCg0KLmZhbmN5Ym94LWllICNmYW5jeWJveC1sZWZ0LWljbwkJeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGFJbWFnZUxvYWRlcihzcmM9J2ZhbmN5Ym94L2ZhbmN5X25hdl9sZWZ0LnBuZycsIHNpemluZ01ldGhvZD0nc2NhbGUnKTsgfQ0KLmZhbmN5Ym94LWllICNmYW5jeWJveC1yaWdodC1pY28JeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGFJbWFnZUxvYWRlcihzcmM9J2ZhbmN5Ym94L2ZhbmN5X25hdl9yaWdodC5wbmcnLCBzaXppbmdNZXRob2Q9J3NjYWxlJyk7IH0NCg0KLmZhbmN5Ym94LWllIC5mYW5jeS1iZyB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IH0NCg0KLmZhbmN5Ym94LWllICNmYW5jeS1iZy1uCXsgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGFJbWFnZUxvYWRlcihzcmM9J2ZhbmN5Ym94L2ZhbmN5X3NoYWRvd19uLnBuZycsIHNpemluZ01ldGhvZD0nc2NhbGUnKTsgfQ0KLmZhbmN5Ym94LWllICNmYW5jeS1iZy1uZQl7IGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhSW1hZ2VMb2FkZXIoc3JjPSdmYW5jeWJveC9mYW5jeV9zaGFkb3dfbmUucG5nJywgc2l6aW5nTWV0aG9kPSdzY2FsZScpOyB9DQouZmFuY3lib3gtaWUgI2ZhbmN5LWJnLWUJeyBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYUltYWdlTG9hZGVyKHNyYz0nZmFuY3lib3gvZmFuY3lfc2hhZG93X2UucG5nJywgc2l6aW5nTWV0aG9kPSdzY2FsZScpOyB9DQouZmFuY3lib3gtaWUgI2ZhbmN5LWJnLXNlCXsgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGFJbWFnZUxvYWRlcihzcmM9J2ZhbmN5Ym94L2ZhbmN5X3NoYWRvd19zZS5wbmcnLCBzaXppbmdNZXRob2Q9J3NjYWxlJyk7IH0NCi5mYW5jeWJveC1pZSAjZmFuY3ktYmctcwl7IGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhSW1hZ2VMb2FkZXIoc3JjPSdmYW5jeWJveC9mYW5jeV9zaGFkb3dfcy5wbmcnLCBzaXppbmdNZXRob2Q9J3NjYWxlJyk7IH0NCi5mYW5jeWJveC1pZSAjZmFuY3ktYmctc3cJeyBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYUltYWdlTG9hZGVyKHNyYz0nZmFuY3lib3gvZmFuY3lfc2hhZG93X3N3LnBuZycsIHNpemluZ01ldGhvZD0nc2NhbGUnKTsgfQ0KLmZhbmN5Ym94LWllICNmYW5jeS1iZy13CXsgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGFJbWFnZUxvYWRlcihzcmM9J2ZhbmN5Ym94L2ZhbmN5X3NoYWRvd193LnBuZycsIHNpemluZ01ldGhvZD0nc2NhbGUnKTsgfQ0KLmZhbmN5Ym94LWllICNmYW5jeS1iZy1udwl7IGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhSW1hZ2VMb2FkZXIoc3JjPSdmYW5jeWJveC9mYW5jeV9zaGFkb3dfbncucG5nJywgc2l6aW5nTWV0aG9kPSdzY2FsZScpOyB9DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/jquery.fancybox-1.3.1.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCiAqIEZhbmN5Qm94IC0galF1ZXJ5IFBsdWdpbg0KICogU2ltcGxlIGFuZCBmYW5jeSBsaWdodGJveCBhbHRlcm5hdGl2ZQ0KICoNCiAqIEV4YW1wbGVzIGFuZCBkb2N1bWVudGF0aW9uIGF0OiBodHRwOi8vZmFuY3lib3gubmV0DQogKiANCiAqIENvcHlyaWdodCAoYykgMjAwOCAtIDIwMTAgSmFuaXMgU2thcm5lbGlzDQogKg0KICogVmVyc2lvbjogMS4zLjEgKDA1LzAzLzIwMTApDQogKiBSZXF1aXJlczogalF1ZXJ5IHYxLjMrDQogKg0KICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGFuZCBHUEwgbGljZW5zZXM6DQogKiAgIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwDQogKiAgIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwuaHRtbA0KICovDQoNCihmdW5jdGlvbigkKSB7DQoNCgl2YXIgdG1wLCBsb2FkaW5nLCBvdmVybGF5LCB3cmFwLCBvdXRlciwgaW5uZXIsIGNsb3NlLCBuYXZfbGVmdCwgbmF2X3JpZ2h0LA0KDQoJCXNlbGVjdGVkSW5kZXggPSAwLCBzZWxlY3RlZE9wdHMgPSB7fSwgc2VsZWN0ZWRBcnJheSA9IFtdLCBjdXJyZW50SW5kZXggPSAwLCBjdXJyZW50T3B0cyA9IHt9LCBjdXJyZW50QXJyYXkgPSBbXSwNCg0KCQlhamF4TG9hZGVyID0gbnVsbCwgaW1nUHJlbG9hZGVyID0gbmV3IEltYWdlKCksIGltZ1JlZ0V4cCA9IC9cLihqcGd8Z2lmfHBuZ3xibXB8anBlZykoLiopPyQvaSwgc3dmUmVnRXhwID0gL1teXC5dXC4oc3dmKVxzKiQvaSwNCg0KCQlsb2FkaW5nVGltZXIsIGxvYWRpbmdGcmFtZSA9IDEsDQoNCgkJc3RhcnRfcG9zLCBmaW5hbF9wb3MsIGJ1c3kgPSBmYWxzZSwgc2hhZG93ID0gMjAsIGZ4ID0gJC5leHRlbmQoJCgnPGRpdi8+JylbMF0sIHsgcHJvcDogMCB9KSwgdGl0bGVoID0gMCwgDQoNCgkJaXNJRTYgPSAhJC5zdXBwb3J0Lm9wYWNpdHkgJiYgIXdpbmRvdy5YTUxIdHRwUmVxdWVzdCwNCg0KCQkvKg0KCQkgKiBQcml2YXRlIG1ldGhvZHMgDQoJCSAqLw0KDQoJCWZhbmN5Ym94X2Fib3J0ID0gZnVuY3Rpb24oKSB7DQoJCQlsb2FkaW5nLmhpZGUoKTsNCg0KCQkJaW1nUHJlbG9hZGVyLm9uZXJyb3IgPSBpbWdQcmVsb2FkZXIub25sb2FkID0gbnVsbDsNCg0KCQkJaWYgKGFqYXhMb2FkZXIpIHsNCgkJCQlhamF4TG9hZGVyLmFib3J0KCk7DQoJCQl9DQoNCgkJCXRtcC5lbXB0eSgpOw0KCQl9LA0KDQoJCWZhbmN5Ym94X2Vycm9yID0gZnVuY3Rpb24oKSB7DQoJCQkkLmZhbmN5Ym94KCc8cCBpZD0iZmFuY3lib3hfZXJyb3IiPlRoZSByZXF1ZXN0ZWQgY29udGVudCBjYW5ub3QgYmUgbG9hZGVkLjxiciAvPlBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuPC9wPicsIHsNCgkJCQknc2Nyb2xsaW5nJwkJOiAnbm8nLA0KCQkJCSdwYWRkaW5nJwkJOiAyMCwNCgkJCQkndHJhbnNpdGlvbkluJwk6ICdub25lJywNCgkJCQkndHJhbnNpdGlvbk91dCcJOiAnbm9uZScNCgkJCX0pOw0KCQl9LA0KDQoJCWZhbmN5Ym94X2dldF92aWV3cG9ydCA9IGZ1bmN0aW9uKCkgew0KCQkJcmV0dXJuIFsgJCh3aW5kb3cpLndpZHRoKCksICQod2luZG93KS5oZWlnaHQoKSwgJChkb2N1bWVudCkuc2Nyb2xsTGVmdCgpLCAkKGRvY3VtZW50KS5zY3JvbGxUb3AoKSBdOw0KCQl9LA0KDQoJCWZhbmN5Ym94X2dldF96b29tX3RvID0gZnVuY3Rpb24gKCkgew0KCQkJdmFyIHZpZXcJPSBmYW5jeWJveF9nZXRfdmlld3BvcnQoKSwNCgkJCQl0bwkJPSB7fSwNCg0KCQkJCW1hcmdpbiA9IGN1cnJlbnRPcHRzLm1hcmdpbiwNCgkJCQlyZXNpemUgPSBjdXJyZW50T3B0cy5hdXRvU2NhbGUsDQoNCgkJCQlob3Jpem9udGFsX3NwYWNlCT0gKHNoYWRvdyArIG1hcmdpbikgKiAyLA0KCQkJCXZlcnRpY2FsX3NwYWNlCQk9IChzaGFkb3cgKyBtYXJnaW4pICogMiwNCgkJCQlkb3VibGVfcGFkZGluZwkJPSAoY3VycmVudE9wdHMucGFkZGluZyAqIDIpLA0KCQkJCQ0KCQkJCXJhdGlvOw0KDQoJCQlpZiAoY3VycmVudE9wdHMud2lkdGgudG9TdHJpbmcoKS5pbmRleE9mKCclJykgPiAtMSkgew0KCQkJCXRvLndpZHRoID0gKCh2aWV3WzBdICogcGFyc2VGbG9hdChjdXJyZW50T3B0cy53aWR0aCkpIC8gMTAwKSAtIChzaGFkb3cgKiAyKSA7DQoJCQkJcmVzaXplID0gZmFsc2U7DQoNCgkJCX0gZWxzZSB7DQoJCQkJdG8ud2lkdGggPSBjdXJyZW50T3B0cy53aWR0aCArIGRvdWJsZV9wYWRkaW5nOw0KCQkJfQ0KDQoJCQlpZiAoY3VycmVudE9wdHMuaGVpZ2h0LnRvU3RyaW5nKCkuaW5kZXhPZignJScpID4gLTEpIHsNCgkJCQl0by5oZWlnaHQgPSAoKHZpZXdbMV0gKiBwYXJzZUZsb2F0KGN1cnJlbnRPcHRzLmhlaWdodCkpIC8gMTAwKSAtIChzaGFkb3cgKiAyKTsNCgkJCQlyZXNpemUgPSBmYWxzZTsNCg0KCQkJfSBlbHNlIHsNCgkJCQl0by5oZWlnaHQgPSBjdXJyZW50T3B0cy5oZWlnaHQgKyBkb3VibGVfcGFkZGluZzsNCgkJCX0NCg0KCQkJaWYgKHJlc2l6ZSAmJiAodG8ud2lkdGggPiAodmlld1swXSAtIGhvcml6b250YWxfc3BhY2UpIHx8IHRvLmhlaWdodCA+ICh2aWV3WzFdIC0gdmVydGljYWxfc3BhY2UpKSkgew0KCQkJCWlmIChzZWxlY3RlZE9wdHMudHlwZSA9PSAnaW1hZ2UnIHx8IHNlbGVjdGVkT3B0cy50eXBlID09ICdzd2YnKSB7DQoJCQkJCWhvcml6b250YWxfc3BhY2UJKz0gZG91YmxlX3BhZGRpbmc7DQoJCQkJCXZlcnRpY2FsX3NwYWNlCQkrPSBkb3VibGVfcGFkZGluZzsNCg0KCQkJCQlyYXRpbyA9IE1hdGgubWluKE1hdGgubWluKCB2aWV3WzBdIC0gaG9yaXpvbnRhbF9zcGFjZSwgY3VycmVudE9wdHMud2lkdGgpIC8gY3VycmVudE9wdHMud2lkdGgsIE1hdGgubWluKCB2aWV3WzFdIC0gdmVydGljYWxfc3BhY2UsIGN1cnJlbnRPcHRzLmhlaWdodCkgLyBjdXJyZW50T3B0cy5oZWlnaHQpOw0KDQoJCQkJCXRvLndpZHRoCT0gTWF0aC5yb3VuZChyYXRpbyAqICh0by53aWR0aAktIGRvdWJsZV9wYWRkaW5nKSkgKyBkb3VibGVfcGFkZGluZzsNCgkJCQkJdG8uaGVpZ2h0CT0gTWF0aC5yb3VuZChyYXRpbyAqICh0by5oZWlnaHQJLSBkb3VibGVfcGFkZGluZykpICsgZG91YmxlX3BhZGRpbmc7DQoNCgkJCQl9IGVsc2Ugew0KCQkJCQl0by53aWR0aAk9IE1hdGgubWluKHRvLndpZHRoLAkodmlld1swXSAtIGhvcml6b250YWxfc3BhY2UpKTsNCgkJCQkJdG8uaGVpZ2h0CT0gTWF0aC5taW4odG8uaGVpZ2h0LAkodmlld1sxXSAtIHZlcnRpY2FsX3NwYWNlKSk7DQoJCQkJfQ0KCQkJfQ0KDQoJCQl0by50b3AJPSB2aWV3WzNdICsgKCh2aWV3WzFdIC0gKHRvLmhlaWdodAkrIChzaGFkb3cgKiAyICkpKSAqIDAuNSk7DQoJCQl0by5sZWZ0CT0gdmlld1syXSArICgodmlld1swXSAtICh0by53aWR0aAkrIChzaGFkb3cgKiAyICkpKSAqIDAuNSk7DQoNCgkJCWlmIChjdXJyZW50T3B0cy5hdXRvU2NhbGUgPT09IGZhbHNlKSB7DQoJCQkJdG8udG9wCT0gTWF0aC5tYXgodmlld1szXSArIG1hcmdpbiwgdG8udG9wKTsNCgkJCQl0by5sZWZ0CT0gTWF0aC5tYXgodmlld1syXSArIG1hcmdpbiwgdG8ubGVmdCk7DQoJCQl9DQoNCgkJCXJldHVybiB0bzsNCgkJfSwNCg0KCQlmYW5jeWJveF9mb3JtYXRfdGl0bGUgPSBmdW5jdGlvbih0aXRsZSkgew0KCQkJaWYgKHRpdGxlICYmIHRpdGxlLmxlbmd0aCkgew0KCQkJCXN3aXRjaCAoY3VycmVudE9wdHMudGl0bGVQb3NpdGlvbikgew0KCQkJCQljYXNlICdpbnNpZGUnOg0KCQkJCQkJcmV0dXJuIHRpdGxlOw0KCQkJCQljYXNlICdvdmVyJzoNCgkJCQkJCXJldHVybiAnPHNwYW4gaWQ9ImZhbmN5Ym94LXRpdGxlLW92ZXIiPicgKyB0aXRsZSArICc8L3NwYW4+JzsNCgkJCQkJZGVmYXVsdDoNCgkJCQkJCXJldHVybiAnPHNwYW4gaWQ9ImZhbmN5Ym94LXRpdGxlLXdyYXAiPjxzcGFuIGlkPSJmYW5jeWJveC10aXRsZS1sZWZ0Ij48L3NwYW4+PHNwYW4gaWQ9ImZhbmN5Ym94LXRpdGxlLW1haW4iPicgKyB0aXRsZSArICc8L3NwYW4+PHNwYW4gaWQ9ImZhbmN5Ym94LXRpdGxlLXJpZ2h0Ij48L3NwYW4+PC9zcGFuPic7DQoJCQkJfQ0KCQkJfQ0KDQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0sDQoNCgkJZmFuY3lib3hfcHJvY2Vzc190aXRsZSA9IGZ1bmN0aW9uKCkgew0KCQkJdmFyIHRpdGxlCT0gY3VycmVudE9wdHMudGl0bGUsDQoJCQkJd2lkdGgJPSBmaW5hbF9wb3Mud2lkdGggLSAoY3VycmVudE9wdHMucGFkZGluZyAqIDIpLA0KCQkJCXRpdGxlYwk9ICdmYW5jeWJveC10aXRsZS0nICsgY3VycmVudE9wdHMudGl0bGVQb3NpdGlvbjsNCgkJCQkNCgkJCSQoJyNmYW5jeWJveC10aXRsZScpLnJlbW92ZSgpOw0KDQoJCQl0aXRsZWggPSAwOw0KDQoJCQlpZiAoY3VycmVudE9wdHMudGl0bGVTaG93ID09PSBmYWxzZSkgew0KCQkJCXJldHVybjsNCgkJCX0NCg0KCQkJdGl0bGUgPSAkLmlzRnVuY3Rpb24oY3VycmVudE9wdHMudGl0bGVGb3JtYXQpID8gY3VycmVudE9wdHMudGl0bGVGb3JtYXQodGl0bGUsIGN1cnJlbnRBcnJheSwgY3VycmVudEluZGV4LCBjdXJyZW50T3B0cykgOiBmYW5jeWJveF9mb3JtYXRfdGl0bGUodGl0bGUpOw0KDQoJCQlpZiAoIXRpdGxlIHx8IHRpdGxlID09PSAnJykgew0KCQkJCXJldHVybjsNCgkJCX0NCg0KCQkJJCgnPGRpdiBpZD0iZmFuY3lib3gtdGl0bGUiIGNsYXNzPSInICsgdGl0bGVjICsgJyIgLz4nKS5jc3Moew0KCQkJCSd3aWR0aCcJCQk6IHdpZHRoLA0KCQkJCSdwYWRkaW5nTGVmdCcJOiBjdXJyZW50T3B0cy5wYWRkaW5nLA0KCQkJCSdwYWRkaW5nUmlnaHQnCTogY3VycmVudE9wdHMucGFkZGluZw0KCQkJfSkuaHRtbCh0aXRsZSkuYXBwZW5kVG8oJ2JvZHknKTsNCg0KCQkJc3dpdGNoIChjdXJyZW50T3B0cy50aXRsZVBvc2l0aW9uKSB7DQoJCQkJY2FzZSAnaW5zaWRlJzoNCgkJCQkJdGl0bGVoID0gJCgiI2ZhbmN5Ym94LXRpdGxlIikub3V0ZXJIZWlnaHQodHJ1ZSkgLSBjdXJyZW50T3B0cy5wYWRkaW5nOw0KCQkJCQlmaW5hbF9wb3MuaGVpZ2h0ICs9IHRpdGxlaDsNCgkJCQlicmVhazsNCg0KCQkJCWNhc2UgJ292ZXInOg0KCQkJCQkkKCcjZmFuY3lib3gtdGl0bGUnKS5jc3MoJ2JvdHRvbScsIGN1cnJlbnRPcHRzLnBhZGRpbmcpOw0KCQkJCWJyZWFrOw0KDQoJCQkJZGVmYXVsdDoNCgkJCQkJJCgnI2ZhbmN5Ym94LXRpdGxlJykuY3NzKCdib3R0b20nLCAkKCIjZmFuY3lib3gtdGl0bGUiKS5vdXRlckhlaWdodCh0cnVlKSAqIC0xKTsNCgkJCQlicmVhazsNCgkJCX0NCg0KCQkJJCgnI2ZhbmN5Ym94LXRpdGxlJykuYXBwZW5kVG8oIG91dGVyICkuaGlkZSgpOw0KCQl9LA0KDQoJCWZhbmN5Ym94X3NldF9uYXZpZ2F0aW9uID0gZnVuY3Rpb24oKSB7DQoJCQkkKGRvY3VtZW50KS51bmJpbmQoJ2tleWRvd24uZmInKS5iaW5kKCdrZXlkb3duLmZiJywgZnVuY3Rpb24oZSkgew0KCQkJCWlmIChlLmtleUNvZGUgPT0gMjcgJiYgY3VycmVudE9wdHMuZW5hYmxlRXNjYXBlQnV0dG9uKSB7DQoJCQkJCWUucHJldmVudERlZmF1bHQoKTsNCgkJCQkJJC5mYW5jeWJveC5jbG9zZSgpOw0KDQoJCQkJfSBlbHNlIGlmIChlLmtleUNvZGUgPT0gMzcpIHsNCgkJCQkJZS5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJCQkkLmZhbmN5Ym94LnByZXYoKTsNCg0KCQkJCX0gZWxzZSBpZiAoZS5rZXlDb2RlID09IDM5KSB7DQoJCQkJCWUucHJldmVudERlZmF1bHQoKTsNCgkJCQkJJC5mYW5jeWJveC5uZXh0KCk7DQoJCQkJfQ0KCQkJfSk7DQoNCgkJCWlmICgkLmZuLm1vdXNld2hlZWwpIHsNCgkJCQl3cmFwLnVuYmluZCgnbW91c2V3aGVlbC5mYicpOw0KDQoJCQkJaWYgKGN1cnJlbnRBcnJheS5sZW5ndGggPiAxKSB7DQoJCQkJCXdyYXAuYmluZCgnbW91c2V3aGVlbC5mYicsIGZ1bmN0aW9uKGUsIGRlbHRhKSB7DQoJCQkJCQllLnByZXZlbnREZWZhdWx0KCk7DQoNCgkJCQkJCWlmIChidXN5IHx8IGRlbHRhID09PSAwKSB7DQoJCQkJCQkJcmV0dXJuOw0KCQkJCQkJfQ0KDQoJCQkJCQlpZiAoZGVsdGEgPiAwKSB7DQoJCQkJCQkJJC5mYW5jeWJveC5wcmV2KCk7DQoJCQkJCQl9IGVsc2Ugew0KCQkJCQkJCSQuZmFuY3lib3gubmV4dCgpOw0KCQkJCQkJfQ0KCQkJCQl9KTsNCgkJCQl9DQoJCQl9DQoNCgkJCWlmICghY3VycmVudE9wdHMuc2hvd05hdkFycm93cykgeyByZXR1cm47IH0NCg0KCQkJaWYgKChjdXJyZW50T3B0cy5jeWNsaWMgJiYgY3VycmVudEFycmF5Lmxlbmd0aCA+IDEpIHx8IGN1cnJlbnRJbmRleCAhPT0gMCkgew0KCQkJCW5hdl9sZWZ0LnNob3coKTsNCgkJCX0NCg0KCQkJaWYgKChjdXJyZW50T3B0cy5jeWNsaWMgJiYgY3VycmVudEFycmF5Lmxlbmd0aCA+IDEpIHx8IGN1cnJlbnRJbmRleCAhPSAoY3VycmVudEFycmF5Lmxlbmd0aCAtMSkpIHsNCgkJCQluYXZfcmlnaHQuc2hvdygpOw0KCQkJfQ0KCQl9LA0KDQoJCWZhbmN5Ym94X3ByZWxvYWRfaW1hZ2VzID0gZnVuY3Rpb24oKSB7DQoJCQl2YXIgaHJlZiwgDQoJCQkJb2JqTmV4dDsNCgkJCQkNCgkJCWlmICgoY3VycmVudEFycmF5Lmxlbmd0aCAtMSkgPiBjdXJyZW50SW5kZXgpIHsNCgkJCQlocmVmID0gY3VycmVudEFycmF5WyBjdXJyZW50SW5kZXggKyAxIF0uaHJlZjsNCg0KCQkJCWlmICh0eXBlb2YgaHJlZiAhPT0gJ3VuZGVmaW5lZCcgJiYgaHJlZi5tYXRjaChpbWdSZWdFeHApKSB7DQoJCQkJCW9iak5leHQgPSBuZXcgSW1hZ2UoKTsNCgkJCQkJb2JqTmV4dC5zcmMgPSBocmVmOw0KCQkJCX0NCgkJCX0NCg0KCQkJaWYgKGN1cnJlbnRJbmRleCA+IDApIHsNCgkJCQlocmVmID0gY3VycmVudEFycmF5WyBjdXJyZW50SW5kZXggLSAxIF0uaHJlZjsNCg0KCQkJCWlmICh0eXBlb2YgaHJlZiAhPT0gJ3VuZGVmaW5lZCcgJiYgaHJlZi5tYXRjaChpbWdSZWdFeHApKSB7DQoJCQkJCW9iak5leHQgPSBuZXcgSW1hZ2UoKTsNCgkJCQkJb2JqTmV4dC5zcmMgPSBocmVmOw0KCQkJCX0NCgkJCX0NCgkJfSwNCg0KCQlfZmluaXNoID0gZnVuY3Rpb24gKCkgew0KCQkJaW5uZXIuY3NzKCdvdmVyZmxvdycsIChjdXJyZW50T3B0cy5zY3JvbGxpbmcgPT0gJ2F1dG8nID8gKGN1cnJlbnRPcHRzLnR5cGUgPT0gJ2ltYWdlJyB8fCBjdXJyZW50T3B0cy50eXBlID09ICdpZnJhbWUnIHx8IGN1cnJlbnRPcHRzLnR5cGUgPT0gJ3N3ZicgPyAnaGlkZGVuJyA6ICdhdXRvJykgOiAoY3VycmVudE9wdHMuc2Nyb2xsaW5nID09ICd5ZXMnID8gJ2F1dG8nIDogJ3Zpc2libGUnKSkpOw0KDQoJCQlpZiAoISQuc3VwcG9ydC5vcGFjaXR5KSB7DQoJCQkJaW5uZXIuZ2V0KDApLnN0eWxlLnJlbW92ZUF0dHJpYnV0ZSgnZmlsdGVyJyk7DQoJCQkJd3JhcC5nZXQoMCkuc3R5bGUucmVtb3ZlQXR0cmlidXRlKCdmaWx0ZXInKTsNCgkJCX0NCg0KCQkJJCgnI2ZhbmN5Ym94LXRpdGxlJykuc2hvdygpOw0KDQoJCQlpZiAoY3VycmVudE9wdHMuaGlkZU9uQ29udGVudENsaWNrKQl7DQoJCQkJaW5uZXIub25lKCdjbGljaycsICQuZmFuY3lib3guY2xvc2UpOw0KCQkJfQ0KCQkJaWYgKGN1cnJlbnRPcHRzLmhpZGVPbk92ZXJsYXlDbGljaykJew0KCQkJCW92ZXJsYXkub25lKCdjbGljaycsICQuZmFuY3lib3guY2xvc2UpOw0KCQkJfQ0KDQoJCQlpZiAoY3VycmVudE9wdHMuc2hvd0Nsb3NlQnV0dG9uKSB7DQoJCQkJY2xvc2Uuc2hvdygpOw0KCQkJfQ0KDQoJCQlmYW5jeWJveF9zZXRfbmF2aWdhdGlvbigpOw0KDQoJCQkkKHdpbmRvdykuYmluZCgicmVzaXplLmZiIiwgJC5mYW5jeWJveC5jZW50ZXIpOw0KDQoJCQlpZiAoY3VycmVudE9wdHMuY2VudGVyT25TY3JvbGwpIHsNCgkJCQkkKHdpbmRvdykuYmluZCgic2Nyb2xsLmZiIiwgJC5mYW5jeWJveC5jZW50ZXIpOw0KCQkJfSBlbHNlIHsNCgkJCQkkKHdpbmRvdykudW5iaW5kKCJzY3JvbGwuZmIiKTsNCgkJCX0NCg0KCQkJaWYgKCQuaXNGdW5jdGlvbihjdXJyZW50T3B0cy5vbkNvbXBsZXRlKSkgew0KCQkJCWN1cnJlbnRPcHRzLm9uQ29tcGxldGUoY3VycmVudEFycmF5LCBjdXJyZW50SW5kZXgsIGN1cnJlbnRPcHRzKTsNCgkJCX0NCg0KCQkJYnVzeSA9IGZhbHNlOw0KDQoJCQlmYW5jeWJveF9wcmVsb2FkX2ltYWdlcygpOw0KCQl9LA0KDQoJCWZhbmN5Ym94X2RyYXcgPSBmdW5jdGlvbihwb3MpIHsNCgkJCXZhciB3aWR0aAk9IE1hdGgucm91bmQoc3RhcnRfcG9zLndpZHRoCSsgKGZpbmFsX3Bvcy53aWR0aAktIHN0YXJ0X3Bvcy53aWR0aCkJKiBwb3MpLA0KCQkJCWhlaWdodAk9IE1hdGgucm91bmQoc3RhcnRfcG9zLmhlaWdodAkrIChmaW5hbF9wb3MuaGVpZ2h0CS0gc3RhcnRfcG9zLmhlaWdodCkJKiBwb3MpLA0KDQoJCQkJdG9wCQk9IE1hdGgucm91bmQoc3RhcnRfcG9zLnRvcAkrIChmaW5hbF9wb3MudG9wCS0gc3RhcnRfcG9zLnRvcCkJKiBwb3MpLA0KCQkJCWxlZnQJPSBNYXRoLnJvdW5kKHN0YXJ0X3Bvcy5sZWZ0CSsgKGZpbmFsX3Bvcy5sZWZ0CS0gc3RhcnRfcG9zLmxlZnQpCSogcG9zKTsNCg0KCQkJd3JhcC5jc3Moew0KCQkJCSd3aWR0aCcJCTogd2lkdGgJCSsgJ3B4JywNCgkJCQknaGVpZ2h0Jwk6IGhlaWdodAkrICdweCcsDQoJCQkJJ3RvcCcJCTogdG9wCQkrICdweCcsDQoJCQkJJ2xlZnQnCQk6IGxlZnQJCSsgJ3B4Jw0KCQkJfSk7DQoNCgkJCXdpZHRoCT0gTWF0aC5tYXgod2lkdGggLSBjdXJyZW50T3B0cy5wYWRkaW5nICogMiwgMCk7DQoJCQloZWlnaHQJPSBNYXRoLm1heChoZWlnaHQgLSAoY3VycmVudE9wdHMucGFkZGluZyAqIDIgKyAodGl0bGVoICogcG9zKSksIDApOw0KDQoJCQlpbm5lci5jc3Moew0KCQkJCSd3aWR0aCcJCTogd2lkdGgJCSsgJ3B4JywNCgkJCQknaGVpZ2h0Jwk6IGhlaWdodAkrICdweCcNCgkJCX0pOw0KDQoJCQlpZiAodHlwZW9mIGZpbmFsX3Bvcy5vcGFjaXR5ICE9PSAndW5kZWZpbmVkJykgew0KCQkJCXdyYXAuY3NzKCdvcGFjaXR5JywgKHBvcyA8IDAuNSA/IDAuNSA6IHBvcykpOw0KCQkJfQ0KCQl9LA0KDQoJCWZhbmN5Ym94X2dldF9vYmpfcG9zID0gZnVuY3Rpb24ob2JqKSB7DQoJCQl2YXIgcG9zCQk9IG9iai5vZmZzZXQoKTsNCg0KCQkJcG9zLnRvcAkJKz0gcGFyc2VGbG9hdCggb2JqLmNzcygncGFkZGluZ1RvcCcpICkJfHwgMDsNCgkJCXBvcy5sZWZ0CSs9IHBhcnNlRmxvYXQoIG9iai5jc3MoJ3BhZGRpbmdMZWZ0JykgKQl8fCAwOw0KDQoJCQlwb3MudG9wCQkrPSBwYXJzZUZsb2F0KCBvYmouY3NzKCdib3JkZXItdG9wLXdpZHRoJykgKQl8fCAwOw0KCQkJcG9zLmxlZnQJKz0gcGFyc2VGbG9hdCggb2JqLmNzcygnYm9yZGVyLWxlZnQtd2lkdGgnKSApCXx8IDA7DQoNCgkJCXBvcy53aWR0aAk9IG9iai53aWR0aCgpOw0KCQkJcG9zLmhlaWdodAk9IG9iai5oZWlnaHQoKTsNCg0KCQkJcmV0dXJuIHBvczsNCgkJfSwNCg0KCQlmYW5jeWJveF9nZXRfem9vbV9mcm9tID0gZnVuY3Rpb24oKSB7DQoJCQl2YXIgb3JpZyA9IHNlbGVjdGVkT3B0cy5vcmlnID8gJChzZWxlY3RlZE9wdHMub3JpZykgOiBmYWxzZSwNCgkJCQlmcm9tID0ge30sDQoJCQkJcG9zLA0KCQkJCXZpZXc7DQoNCgkJCWlmIChvcmlnICYmIG9yaWcubGVuZ3RoKSB7DQoJCQkJcG9zID0gZmFuY3lib3hfZ2V0X29ial9wb3Mob3JpZyk7DQoNCgkJCQlmcm9tID0gew0KCQkJCQl3aWR0aAk6IChwb3Mud2lkdGgJKyAoY3VycmVudE9wdHMucGFkZGluZyAqIDIpKSwNCgkJCQkJaGVpZ2h0CTogKHBvcy5oZWlnaHQJKyAoY3VycmVudE9wdHMucGFkZGluZyAqIDIpKSwNCgkJCQkJdG9wCQk6IChwb3MudG9wCQktIGN1cnJlbnRPcHRzLnBhZGRpbmcgLSBzaGFkb3cpLA0KCQkJCQlsZWZ0CTogKHBvcy5sZWZ0CQktIGN1cnJlbnRPcHRzLnBhZGRpbmcgLSBzaGFkb3cpDQoJCQkJfTsNCgkJCQkNCgkJCX0gZWxzZSB7DQoJCQkJdmlldyA9IGZhbmN5Ym94X2dldF92aWV3cG9ydCgpOw0KDQoJCQkJZnJvbSA9IHsNCgkJCQkJd2lkdGgJOiAxLA0KCQkJCQloZWlnaHQJOiAxLA0KCQkJCQl0b3AJCTogdmlld1szXSArIHZpZXdbMV0gKiAwLjUsDQoJCQkJCWxlZnQJOiB2aWV3WzJdICsgdmlld1swXSAqIDAuNQ0KCQkJCX07DQoJCQl9DQoNCgkJCXJldHVybiBmcm9tOw0KCQl9LA0KDQoJCWZhbmN5Ym94X3Nob3cgPSBmdW5jdGlvbigpIHsNCgkJCWxvYWRpbmcuaGlkZSgpOw0KDQoJCQlpZiAod3JhcC5pcygiOnZpc2libGUiKSAmJiAkLmlzRnVuY3Rpb24oY3VycmVudE9wdHMub25DbGVhbnVwKSkgew0KCQkJCWlmIChjdXJyZW50T3B0cy5vbkNsZWFudXAoY3VycmVudEFycmF5LCBjdXJyZW50SW5kZXgsIGN1cnJlbnRPcHRzKSA9PT0gZmFsc2UpIHsNCgkJCQkJJC5ldmVudC50cmlnZ2VyKCdmYW5jeWJveC1jYW5jZWwnKTsNCg0KCQkJCQlidXN5ID0gZmFsc2U7DQoJCQkJCXJldHVybjsNCgkJCQl9DQoJCQl9DQoNCgkJCWN1cnJlbnRBcnJheQk9IHNlbGVjdGVkQXJyYXk7DQoJCQljdXJyZW50SW5kZXgJPSBzZWxlY3RlZEluZGV4Ow0KCQkJY3VycmVudE9wdHMJCT0gc2VsZWN0ZWRPcHRzOw0KDQoJCQlpbm5lci5nZXQoMCkuc2Nyb2xsVG9wCT0gMDsNCgkJCWlubmVyLmdldCgwKS5zY3JvbGxMZWZ0CT0gMDsNCg0KCQkJaWYgKGN1cnJlbnRPcHRzLm92ZXJsYXlTaG93KSB7DQoJCQkJaWYgKGlzSUU2KSB7DQoJCQkJCSQoJ3NlbGVjdDpub3QoI2ZhbmN5Ym94LXRtcCBzZWxlY3QpJykuZmlsdGVyKGZ1bmN0aW9uKCkgew0KCQkJCQkJcmV0dXJuIHRoaXMuc3R5bGUudmlzaWJpbGl0eSAhPT0gJ2hpZGRlbic7DQoJCQkJCX0pLmNzcyh7J3Zpc2liaWxpdHknOidoaWRkZW4nfSkub25lKCdmYW5jeWJveC1jbGVhbnVwJywgZnVuY3Rpb24oKSB7DQoJCQkJCQl0aGlzLnN0eWxlLnZpc2liaWxpdHkgPSAnaW5oZXJpdCc7DQoJCQkJCX0pOw0KCQkJCX0NCg0KCQkJCW92ZXJsYXkuY3NzKHsNCgkJCQkJJ2JhY2tncm91bmQtY29sb3InCTogY3VycmVudE9wdHMub3ZlcmxheUNvbG9yLA0KCQkJCQknb3BhY2l0eScJCQk6IGN1cnJlbnRPcHRzLm92ZXJsYXlPcGFjaXR5DQoJCQkJfSkudW5iaW5kKCkuc2hvdygpOw0KCQkJfQ0KDQoJCQlmaW5hbF9wb3MgPSBmYW5jeWJveF9nZXRfem9vbV90bygpOw0KDQoJCQlmYW5jeWJveF9wcm9jZXNzX3RpdGxlKCk7DQoNCgkJCWlmICh3cmFwLmlzKCI6dmlzaWJsZSIpKSB7DQoJCQkJJCggY2xvc2UuYWRkKCBuYXZfbGVmdCApLmFkZCggbmF2X3JpZ2h0ICkgKS5oaWRlKCk7DQoNCgkJCQl2YXIgcG9zID0gd3JhcC5wb3NpdGlvbigpLA0KCQkJCQllcXVhbDsNCg0KCQkJCXN0YXJ0X3BvcyA9IHsNCgkJCQkJdG9wCQk6CXBvcy50b3AgLA0KCQkJCQlsZWZ0CToJcG9zLmxlZnQsDQoJCQkJCXdpZHRoCToJd3JhcC53aWR0aCgpLA0KCQkJCQloZWlnaHQJOgl3cmFwLmhlaWdodCgpDQoJCQkJfTsNCg0KCQkJCWVxdWFsID0gKHN0YXJ0X3Bvcy53aWR0aCA9PSBmaW5hbF9wb3Mud2lkdGggJiYgc3RhcnRfcG9zLmhlaWdodCA9PSBmaW5hbF9wb3MuaGVpZ2h0KTsNCg0KCQkJCWlubmVyLmZhZGVPdXQoY3VycmVudE9wdHMuY2hhbmdlRmFkZSwgZnVuY3Rpb24oKSB7DQoJCQkJCXZhciBmaW5pc2hfcmVzaXppbmcgPSBmdW5jdGlvbigpIHsNCgkJCQkJCWlubmVyLmh0bWwoIHRtcC5jb250ZW50cygpICkuZmFkZUluKGN1cnJlbnRPcHRzLmNoYW5nZUZhZGUsIF9maW5pc2gpOw0KCQkJCQl9Ow0KCQkJCQkNCgkJCQkJJC5ldmVudC50cmlnZ2VyKCdmYW5jeWJveC1jaGFuZ2UnKTsNCg0KCQkJCQlpbm5lci5lbXB0eSgpLmNzcygnb3ZlcmZsb3cnLCAnaGlkZGVuJyk7DQoNCgkJCQkJaWYgKGVxdWFsKSB7DQoJCQkJCQlpbm5lci5jc3Moew0KCQkJCQkJCXRvcAkJCTogY3VycmVudE9wdHMucGFkZGluZywNCgkJCQkJCQlsZWZ0CQk6IGN1cnJlbnRPcHRzLnBhZGRpbmcsDQoJCQkJCQkJd2lkdGgJCTogTWF0aC5tYXgoZmluYWxfcG9zLndpZHRoCS0gKGN1cnJlbnRPcHRzLnBhZGRpbmcgKiAyKSwgMSksDQoJCQkJCQkJaGVpZ2h0CQk6IE1hdGgubWF4KGZpbmFsX3Bvcy5oZWlnaHQJLSAoY3VycmVudE9wdHMucGFkZGluZyAqIDIpIC0gdGl0bGVoLCAxKQ0KCQkJCQkJfSk7DQoJCQkJCQkNCgkJCQkJCWZpbmlzaF9yZXNpemluZygpOw0KDQoJCQkJCX0gZWxzZSB7DQoJCQkJCQlpbm5lci5jc3Moew0KCQkJCQkJCXRvcAkJCTogY3VycmVudE9wdHMucGFkZGluZywNCgkJCQkJCQlsZWZ0CQk6IGN1cnJlbnRPcHRzLnBhZGRpbmcsDQoJCQkJCQkJd2lkdGgJCTogTWF0aC5tYXgoc3RhcnRfcG9zLndpZHRoCS0gKGN1cnJlbnRPcHRzLnBhZGRpbmcgKiAyKSwgMSksDQoJCQkJCQkJaGVpZ2h0CQk6IE1hdGgubWF4KHN0YXJ0X3Bvcy5oZWlnaHQJLSAoY3VycmVudE9wdHMucGFkZGluZyAqIDIpLCAxKQ0KCQkJCQkJfSk7DQoJCQkJCQkNCgkJCQkJCWZ4LnByb3AgPSAwOw0KDQoJCQkJCQkkKGZ4KS5hbmltYXRlKHsgcHJvcDogMSB9LCB7DQoJCQkJCQkJIGR1cmF0aW9uCTogY3VycmVudE9wdHMuY2hhbmdlU3BlZWQsDQoJCQkJCQkJIGVhc2luZwkJOiBjdXJyZW50T3B0cy5lYXNpbmdDaGFuZ2UsDQoJCQkJCQkJIHN0ZXAJCTogZmFuY3lib3hfZHJhdywNCgkJCQkJCQkgY29tcGxldGUJOiBmaW5pc2hfcmVzaXppbmcNCgkJCQkJCX0pOw0KCQkJCQl9DQoJCQkJfSk7DQoNCgkJCQlyZXR1cm47DQoJCQl9DQoNCgkJCXdyYXAuY3NzKCdvcGFjaXR5JywgMSk7DQoNCgkJCWlmIChjdXJyZW50T3B0cy50cmFuc2l0aW9uSW4gPT0gJ2VsYXN0aWMnKSB7DQoJCQkJc3RhcnRfcG9zID0gZmFuY3lib3hfZ2V0X3pvb21fZnJvbSgpOw0KDQoJCQkJaW5uZXIuY3NzKHsNCgkJCQkJCXRvcAkJCTogY3VycmVudE9wdHMucGFkZGluZywNCgkJCQkJCWxlZnQJCTogY3VycmVudE9wdHMucGFkZGluZywNCgkJCQkJCXdpZHRoCQk6IE1hdGgubWF4KHN0YXJ0X3Bvcy53aWR0aAktIChjdXJyZW50T3B0cy5wYWRkaW5nICogMiksIDEpLA0KCQkJCQkJaGVpZ2h0CQk6IE1hdGgubWF4KHN0YXJ0X3Bvcy5oZWlnaHQJLSAoY3VycmVudE9wdHMucGFkZGluZyAqIDIpLCAxKQ0KCQkJCQl9KQ0KCQkJCQkuaHRtbCggdG1wLmNvbnRlbnRzKCkgKTsNCg0KCQkJCXdyYXAuY3NzKHN0YXJ0X3Bvcykuc2hvdygpOw0KDQoJCQkJaWYgKGN1cnJlbnRPcHRzLm9wYWNpdHkpIHsNCgkJCQkJZmluYWxfcG9zLm9wYWNpdHkgPSAwOw0KCQkJCX0NCg0KCQkJCWZ4LnByb3AgPSAwOw0KDQoJCQkJJChmeCkuYW5pbWF0ZSh7IHByb3A6IDEgfSwgew0KCQkJCQkgZHVyYXRpb24JOiBjdXJyZW50T3B0cy5zcGVlZEluLA0KCQkJCQkgZWFzaW5nCQk6IGN1cnJlbnRPcHRzLmVhc2luZ0luLA0KCQkJCQkgc3RlcAkJOiBmYW5jeWJveF9kcmF3LA0KCQkJCQkgY29tcGxldGUJOiBfZmluaXNoDQoJCQkJfSk7DQoNCgkJCX0gZWxzZSB7DQoJCQkJaW5uZXIuY3NzKHsNCgkJCQkJCXRvcAkJCTogY3VycmVudE9wdHMucGFkZGluZywNCgkJCQkJCWxlZnQJCTogY3VycmVudE9wdHMucGFkZGluZywNCgkJCQkJCXdpZHRoCQk6IE1hdGgubWF4KGZpbmFsX3Bvcy53aWR0aAktIChjdXJyZW50T3B0cy5wYWRkaW5nICogMiksIDEpLA0KCQkJCQkJaGVpZ2h0CQk6IE1hdGgubWF4KGZpbmFsX3Bvcy5oZWlnaHQJLSAoY3VycmVudE9wdHMucGFkZGluZyAqIDIpIC0gdGl0bGVoLCAxKQ0KCQkJCQl9KQ0KCQkJCQkuaHRtbCggdG1wLmNvbnRlbnRzKCkgKTsNCg0KCQkJCXdyYXAuY3NzKCBmaW5hbF9wb3MgKS5mYWRlSW4oIGN1cnJlbnRPcHRzLnRyYW5zaXRpb25JbiA9PSAnbm9uZScgPyAwIDogY3VycmVudE9wdHMuc3BlZWRJbiwgX2ZpbmlzaCApOw0KCQkJfQ0KCQl9LA0KDQoJCWZhbmN5Ym94X3Byb2Nlc3NfaW5saW5lID0gZnVuY3Rpb24oKSB7DQoJCQl0bXAud2lkdGgoCXNlbGVjdGVkT3B0cy53aWR0aCApOw0KCQkJdG1wLmhlaWdodCgJc2VsZWN0ZWRPcHRzLmhlaWdodCApOw0KDQoJCQlpZiAoc2VsZWN0ZWRPcHRzLndpZHRoCT09ICdhdXRvJykgew0KCQkJCXNlbGVjdGVkT3B0cy53aWR0aCA9IHRtcC53aWR0aCgpOw0KCQkJfQ0KCQkJaWYgKHNlbGVjdGVkT3B0cy5oZWlnaHQJPT0gJ2F1dG8nKSB7DQoJCQkJc2VsZWN0ZWRPcHRzLmhlaWdodAk9IHRtcC5oZWlnaHQoKTsNCgkJCX0NCg0KCQkJZmFuY3lib3hfc2hvdygpOw0KCQl9LA0KCQkNCgkJZmFuY3lib3hfcHJvY2Vzc19pbWFnZSA9IGZ1bmN0aW9uKCkgew0KCQkJYnVzeSA9IHRydWU7DQoNCgkJCXNlbGVjdGVkT3B0cy53aWR0aAk9IGltZ1ByZWxvYWRlci53aWR0aDsNCgkJCXNlbGVjdGVkT3B0cy5oZWlnaHQJPSBpbWdQcmVsb2FkZXIuaGVpZ2h0Ow0KDQoJCQkkKCI8aW1nIC8+IikuYXR0cih7DQoJCQkJJ2lkJwk6ICdmYW5jeWJveC1pbWcnLA0KCQkJCSdzcmMnCTogaW1nUHJlbG9hZGVyLnNyYywNCgkJCQknYWx0Jwk6IHNlbGVjdGVkT3B0cy50aXRsZQ0KCQkJfSkuYXBwZW5kVG8oIHRtcCApOw0KDQoJCQlmYW5jeWJveF9zaG93KCk7DQoJCX0sDQoNCgkJZmFuY3lib3hfc3RhcnQgPSBmdW5jdGlvbigpIHsNCgkJCWZhbmN5Ym94X2Fib3J0KCk7DQoNCgkJCXZhciBvYmoJPSBzZWxlY3RlZEFycmF5WyBzZWxlY3RlZEluZGV4IF0sDQoJCQkJaHJlZiwgDQoJCQkJdHlwZSwgDQoJCQkJdGl0bGUsDQoJCQkJc3RyLA0KCQkJCWVtYiwNCgkJCQlzZWxlY3RvciwNCgkJCQlkYXRhOw0KDQoJCQlzZWxlY3RlZE9wdHMgPSAkLmV4dGVuZCh7fSwgJC5mbi5mYW5jeWJveC5kZWZhdWx0cywgKHR5cGVvZiAkKG9iaikuZGF0YSgnZmFuY3lib3gnKSA9PSAndW5kZWZpbmVkJyA/IHNlbGVjdGVkT3B0cyA6ICQob2JqKS5kYXRhKCdmYW5jeWJveCcpKSk7DQoJCQl0aXRsZSA9IG9iai50aXRsZSB8fCAkKG9iaikudGl0bGUgfHwgc2VsZWN0ZWRPcHRzLnRpdGxlIHx8ICcnOw0KCQkJDQoJCQlpZiAob2JqLm5vZGVOYW1lICYmICFzZWxlY3RlZE9wdHMub3JpZykgew0KCQkJCXNlbGVjdGVkT3B0cy5vcmlnID0gJChvYmopLmNoaWxkcmVuKCJpbWc6Zmlyc3QiKS5sZW5ndGggPyAkKG9iaikuY2hpbGRyZW4oImltZzpmaXJzdCIpIDogJChvYmopOw0KCQkJfQ0KDQoJCQlpZiAodGl0bGUgPT09ICcnICYmIHNlbGVjdGVkT3B0cy5vcmlnKSB7DQoJCQkJdGl0bGUgPSBzZWxlY3RlZE9wdHMub3JpZy5hdHRyKCdhbHQnKTsNCgkJCX0NCg0KCQkJaWYgKG9iai5ub2RlTmFtZSAmJiAoL14oPzpqYXZhc2NyaXB0fCMpL2kpLnRlc3Qob2JqLmhyZWYpKSB7DQoJCQkJaHJlZiA9IHNlbGVjdGVkT3B0cy5ocmVmIHx8IG51bGw7DQoJCQl9IGVsc2Ugew0KCQkJCWhyZWYgPSBzZWxlY3RlZE9wdHMuaHJlZiB8fCBvYmouaHJlZiB8fCBudWxsOw0KCQkJfQ0KDQoJCQlpZiAoc2VsZWN0ZWRPcHRzLnR5cGUpIHsNCgkJCQl0eXBlID0gc2VsZWN0ZWRPcHRzLnR5cGU7DQoNCgkJCQlpZiAoIWhyZWYpIHsNCgkJCQkJaHJlZiA9IHNlbGVjdGVkT3B0cy5jb250ZW50Ow0KCQkJCX0NCgkJCQkNCgkJCX0gZWxzZSBpZiAoc2VsZWN0ZWRPcHRzLmNvbnRlbnQpIHsNCgkJCQl0eXBlCT0gJ2h0bWwnOw0KDQoJCQl9IGVsc2UgaWYgKGhyZWYpIHsNCgkJCQlpZiAoaHJlZi5tYXRjaChpbWdSZWdFeHApKSB7DQoJCQkJCXR5cGUgPSAnaW1hZ2UnOw0KDQoJCQkJfSBlbHNlIGlmIChocmVmLm1hdGNoKHN3ZlJlZ0V4cCkpIHsNCgkJCQkJdHlwZSA9ICdzd2YnOw0KDQoJCQkJfSBlbHNlIGlmICgkKG9iaikuaGFzQ2xhc3MoImlmcmFtZSIpKSB7DQoJCQkJCXR5cGUgPSAnaWZyYW1lJzsNCg0KCQkJCX0gZWxzZSBpZiAoaHJlZi5tYXRjaCgvIy8pKSB7DQoJCQkJCW9iaiA9IGhyZWYuc3Vic3RyKGhyZWYuaW5kZXhPZigiIyIpKTsNCg0KCQkJCQl0eXBlID0gJChvYmopLmxlbmd0aCA+IDAgPyAnaW5saW5lJyA6ICdhamF4JzsNCgkJCQl9IGVsc2Ugew0KCQkJCQl0eXBlID0gJ2FqYXgnOw0KCQkJCX0NCgkJCX0gZWxzZSB7DQoJCQkJdHlwZSA9ICdpbmxpbmUnOw0KCQkJfQ0KDQoJCQlzZWxlY3RlZE9wdHMudHlwZQk9IHR5cGU7DQoJCQlzZWxlY3RlZE9wdHMuaHJlZgk9IGhyZWY7DQoJCQlzZWxlY3RlZE9wdHMudGl0bGUJPSB0aXRsZTsNCg0KCQkJaWYgKHNlbGVjdGVkT3B0cy5hdXRvRGltZW5zaW9ucyAmJiBzZWxlY3RlZE9wdHMudHlwZSAhPT0gJ2lmcmFtZScgJiYgc2VsZWN0ZWRPcHRzLnR5cGUgIT09ICdzd2YnKSB7DQoJCQkJc2VsZWN0ZWRPcHRzLndpZHRoCQk9ICdhdXRvJzsNCgkJCQlzZWxlY3RlZE9wdHMuaGVpZ2h0CQk9ICdhdXRvJzsNCgkJCX0NCg0KCQkJaWYgKHNlbGVjdGVkT3B0cy5tb2RhbCkgew0KCQkJCXNlbGVjdGVkT3B0cy5vdmVybGF5U2hvdwkJPSB0cnVlOw0KCQkJCXNlbGVjdGVkT3B0cy5oaWRlT25PdmVybGF5Q2xpY2sJPSBmYWxzZTsNCgkJCQlzZWxlY3RlZE9wdHMuaGlkZU9uQ29udGVudENsaWNrCT0gZmFsc2U7DQoJCQkJc2VsZWN0ZWRPcHRzLmVuYWJsZUVzY2FwZUJ1dHRvbgk9IGZhbHNlOw0KCQkJCXNlbGVjdGVkT3B0cy5zaG93Q2xvc2VCdXR0b24JPSBmYWxzZTsNCgkJCX0NCg0KCQkJaWYgKCQuaXNGdW5jdGlvbihzZWxlY3RlZE9wdHMub25TdGFydCkpIHsNCgkJCQlpZiAoc2VsZWN0ZWRPcHRzLm9uU3RhcnQoc2VsZWN0ZWRBcnJheSwgc2VsZWN0ZWRJbmRleCwgc2VsZWN0ZWRPcHRzKSA9PT0gZmFsc2UpIHsNCgkJCQkJYnVzeSA9IGZhbHNlOw0KCQkJCQlyZXR1cm47DQoJCQkJfQ0KCQkJfQ0KDQoJCQl0bXAuY3NzKCdwYWRkaW5nJywgKHNoYWRvdyArIHNlbGVjdGVkT3B0cy5wYWRkaW5nICsgc2VsZWN0ZWRPcHRzLm1hcmdpbikpOw0KDQoJCQkkKCcuZmFuY3lib3gtaW5saW5lLXRtcCcpLnVuYmluZCgnZmFuY3lib3gtY2FuY2VsJykuYmluZCgnZmFuY3lib3gtY2hhbmdlJywgZnVuY3Rpb24oKSB7DQoJCQkJJCh0aGlzKS5yZXBsYWNlV2l0aChpbm5lci5jaGlsZHJlbigpKTsNCgkJCX0pOw0KDQoJCQlzd2l0Y2ggKHR5cGUpIHsNCgkJCQljYXNlICdodG1sJyA6DQoJCQkJCXRtcC5odG1sKCBzZWxlY3RlZE9wdHMuY29udGVudCApOw0KCQkJCQlmYW5jeWJveF9wcm9jZXNzX2lubGluZSgpOw0KCQkJCWJyZWFrOw0KDQoJCQkJY2FzZSAnaW5saW5lJyA6DQoJCQkJCSQoJzxkaXYgY2xhc3M9ImZhbmN5Ym94LWlubGluZS10bXAiIC8+JykuaGlkZSgpLmluc2VydEJlZm9yZSggJChvYmopICkuYmluZCgnZmFuY3lib3gtY2xlYW51cCcsIGZ1bmN0aW9uKCkgew0KCQkJCQkJJCh0aGlzKS5yZXBsYWNlV2l0aChpbm5lci5jaGlsZHJlbigpKTsNCgkJCQkJfSkuYmluZCgnZmFuY3lib3gtY2FuY2VsJywgZnVuY3Rpb24oKSB7DQoJCQkJCQkkKHRoaXMpLnJlcGxhY2VXaXRoKHRtcC5jaGlsZHJlbigpKTsNCgkJCQkJfSk7DQoNCgkJCQkJJChvYmopLmFwcGVuZFRvKHRtcCk7DQoNCgkJCQkJZmFuY3lib3hfcHJvY2Vzc19pbmxpbmUoKTsNCgkJCQlicmVhazsNCg0KCQkJCWNhc2UgJ2ltYWdlJzoNCgkJCQkJYnVzeSA9IGZhbHNlOw0KDQoJCQkJCSQuZmFuY3lib3guc2hvd0FjdGl2aXR5KCk7DQoNCgkJCQkJaW1nUHJlbG9hZGVyID0gbmV3IEltYWdlKCk7DQoNCgkJCQkJaW1nUHJlbG9hZGVyLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsNCgkJCQkJCWZhbmN5Ym94X2Vycm9yKCk7DQoJCQkJCX07DQoNCgkJCQkJaW1nUHJlbG9hZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgew0KCQkJCQkJaW1nUHJlbG9hZGVyLm9uZXJyb3IgPSBudWxsOw0KCQkJCQkJaW1nUHJlbG9hZGVyLm9ubG9hZCA9IG51bGw7DQoJCQkJCQlmYW5jeWJveF9wcm9jZXNzX2ltYWdlKCk7DQoJCQkJCX07DQoNCgkJCQkJaW1nUHJlbG9hZGVyLnNyYyA9IGhyZWY7DQoJCQ0KCQkJCWJyZWFrOw0KDQoJCQkJY2FzZSAnc3dmJzoNCgkJCQkJc3RyID0gJzxvYmplY3QgY2xhc3NpZD0iY2xzaWQ6RDI3Q0RCNkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwIiB3aWR0aD0iJyArIHNlbGVjdGVkT3B0cy53aWR0aCArICciIGhlaWdodD0iJyArIHNlbGVjdGVkT3B0cy5oZWlnaHQgKyAnIj48cGFyYW0gbmFtZT0ibW92aWUiIHZhbHVlPSInICsgaHJlZiArICciPjwvcGFyYW0+JzsNCgkJCQkJZW1iID0gJyc7DQoJCQkJCQ0KCQkJCQkkLmVhY2goc2VsZWN0ZWRPcHRzLnN3ZiwgZnVuY3Rpb24obmFtZSwgdmFsKSB7DQoJCQkJCQlzdHIgKz0gJzxwYXJhbSBuYW1lPSInICsgbmFtZSArICciIHZhbHVlPSInICsgdmFsICsgJyI+PC9wYXJhbT4nOw0KCQkJCQkJZW1iICs9ICcgJyArIG5hbWUgKyAnPSInICsgdmFsICsgJyInOw0KCQkJCQl9KTsNCg0KCQkJCQlzdHIgKz0gJzxlbWJlZCBzcmM9IicgKyBocmVmICsgJyIgdHlwZT0iYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giIHdpZHRoPSInICsgc2VsZWN0ZWRPcHRzLndpZHRoICsgJyIgaGVpZ2h0PSInICsgc2VsZWN0ZWRPcHRzLmhlaWdodCArICciJyArIGVtYiArICc+PC9lbWJlZD48L29iamVjdD4nOw0KDQoJCQkJCXRtcC5odG1sKHN0cik7DQoNCgkJCQkJZmFuY3lib3hfcHJvY2Vzc19pbmxpbmUoKTsNCgkJCQlicmVhazsNCg0KCQkJCWNhc2UgJ2FqYXgnOg0KCQkJCQlzZWxlY3Rvcgk9IGhyZWYuc3BsaXQoJyMnLCAyKTsNCgkJCQkJZGF0YQkJPSBzZWxlY3RlZE9wdHMuYWpheC5kYXRhIHx8IHt9Ow0KDQoJCQkJCWlmIChzZWxlY3Rvci5sZW5ndGggPiAxKSB7DQoJCQkJCQlocmVmID0gc2VsZWN0b3JbMF07DQoNCgkJCQkJCWlmICh0eXBlb2YgZGF0YSA9PSAic3RyaW5nIikgew0KCQkJCQkJCWRhdGEgKz0gJyZzZWxlY3Rvcj0nICsgc2VsZWN0b3JbMV07DQoJCQkJCQl9IGVsc2Ugew0KCQkJCQkJCWRhdGEuc2VsZWN0b3IgPSBzZWxlY3RvclsxXTsNCgkJCQkJCX0NCgkJCQkJfQ0KDQoJCQkJCWJ1c3kgPSBmYWxzZTsNCgkJCQkJJC5mYW5jeWJveC5zaG93QWN0aXZpdHkoKTsNCg0KCQkJCQlhamF4TG9hZGVyID0gJC5hamF4KCQuZXh0ZW5kKHNlbGVjdGVkT3B0cy5hamF4LCB7DQoJCQkJCQl1cmwJCTogaHJlZiwNCgkJCQkJCWRhdGEJOiBkYXRhLA0KCQkJCQkJZXJyb3IJOiBmYW5jeWJveF9lcnJvciwNCgkJCQkJCXN1Y2Nlc3MgOiBmdW5jdGlvbihkYXRhLCB0ZXh0U3RhdHVzLCBYTUxIdHRwUmVxdWVzdCkgew0KCQkJCQkJCWlmIChhamF4TG9hZGVyLnN0YXR1cyA9PSAyMDApIHsNCgkJCQkJCQkJdG1wLmh0bWwoIGRhdGEgKTsNCgkJCQkJCQkJZmFuY3lib3hfcHJvY2Vzc19pbmxpbmUoKTsNCgkJCQkJCQl9DQoJCQkJCQl9DQoJCQkJCX0pKTsNCg0KCQkJCWJyZWFrOw0KDQoJCQkJY2FzZSAnaWZyYW1lJyA6DQoJCQkJCSQoJzxpZnJhbWUgaWQ9ImZhbmN5Ym94LWZyYW1lIiBuYW1lPSJmYW5jeWJveC1mcmFtZScgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSArICciIGZyYW1lYm9yZGVyPSIwIiBoc3BhY2U9IjAiIHNjcm9sbGluZz0iJyArIHNlbGVjdGVkT3B0cy5zY3JvbGxpbmcgKyAnIiBzcmM9IicgKyBzZWxlY3RlZE9wdHMuaHJlZiArICciPjwvaWZyYW1lPicpLmFwcGVuZFRvKHRtcCk7DQoJCQkJCWZhbmN5Ym94X3Nob3coKTsNCgkJCQlicmVhazsNCgkJCX0NCgkJfSwNCg0KCQlmYW5jeWJveF9hbmltYXRlX2xvYWRpbmcgPSBmdW5jdGlvbigpIHsNCgkJCWlmICghbG9hZGluZy5pcygnOnZpc2libGUnKSl7DQoJCQkJY2xlYXJJbnRlcnZhbChsb2FkaW5nVGltZXIpOw0KCQkJCXJldHVybjsNCgkJCX0NCg0KCQkJJCgnZGl2JywgbG9hZGluZykuY3NzKCd0b3AnLCAobG9hZGluZ0ZyYW1lICogLTQwKSArICdweCcpOw0KDQoJCQlsb2FkaW5nRnJhbWUgPSAobG9hZGluZ0ZyYW1lICsgMSkgJSAxMjsNCgkJfSwNCg0KCQlmYW5jeWJveF9pbml0ID0gZnVuY3Rpb24oKSB7DQoJCQlpZiAoJCgiI2ZhbmN5Ym94LXdyYXAiKS5sZW5ndGgpIHsNCgkJCQlyZXR1cm47DQoJCQl9DQoNCgkJCSQoJ2JvZHknKS5hcHBlbmQoDQoJCQkJdG1wCQkJPSAkKCc8ZGl2IGlkPSJmYW5jeWJveC10bXAiPjwvZGl2PicpLA0KCQkJCWxvYWRpbmcJCT0gJCgnPGRpdiBpZD0iZmFuY3lib3gtbG9hZGluZyI+PGRpdj48L2Rpdj48L2Rpdj4nKSwNCgkJCQlvdmVybGF5CQk9ICQoJzxkaXYgaWQ9ImZhbmN5Ym94LW92ZXJsYXkiPjwvZGl2PicpLA0KCQkJCXdyYXAJCT0gJCgnPGRpdiBpZD0iZmFuY3lib3gtd3JhcCI+PC9kaXY+JykNCgkJCSk7DQoNCgkJCWlmICghJC5zdXBwb3J0Lm9wYWNpdHkpIHsNCgkJCQl3cmFwLmFkZENsYXNzKCdmYW5jeWJveC1pZScpOw0KCQkJCWxvYWRpbmcuYWRkQ2xhc3MoJ2ZhbmN5Ym94LWllJyk7DQoJCQl9DQoNCgkJCW91dGVyID0gJCgnPGRpdiBpZD0iZmFuY3lib3gtb3V0ZXIiPjwvZGl2PicpDQoJCQkJLmFwcGVuZCgnPGRpdiBjbGFzcz0iZmFuY3ktYmciIGlkPSJmYW5jeS1iZy1uIj48L2Rpdj48ZGl2IGNsYXNzPSJmYW5jeS1iZyIgaWQ9ImZhbmN5LWJnLW5lIj48L2Rpdj48ZGl2IGNsYXNzPSJmYW5jeS1iZyIgaWQ9ImZhbmN5LWJnLWUiPjwvZGl2PjxkaXYgY2xhc3M9ImZhbmN5LWJnIiBpZD0iZmFuY3ktYmctc2UiPjwvZGl2PjxkaXYgY2xhc3M9ImZhbmN5LWJnIiBpZD0iZmFuY3ktYmctcyI+PC9kaXY+PGRpdiBjbGFzcz0iZmFuY3ktYmciIGlkPSJmYW5jeS1iZy1zdyI+PC9kaXY+PGRpdiBjbGFzcz0iZmFuY3ktYmciIGlkPSJmYW5jeS1iZy13Ij48L2Rpdj48ZGl2IGNsYXNzPSJmYW5jeS1iZyIgaWQ9ImZhbmN5LWJnLW53Ij48L2Rpdj4nKQ0KCQkJCS5hcHBlbmRUbyggd3JhcCApOw0KDQoJCQlvdXRlci5hcHBlbmQoDQoJCQkJaW5uZXIJCT0gJCgnPGRpdiBpZD0iZmFuY3lib3gtaW5uZXIiPjwvZGl2PicpLA0KCQkJCWNsb3NlCQk9ICQoJzxhIGlkPSJmYW5jeWJveC1jbG9zZSI+PC9hPicpLA0KDQoJCQkJbmF2X2xlZnQJPSAkKCc8YSBocmVmPSJqYXZhc2NyaXB0OjsiIGlkPSJmYW5jeWJveC1sZWZ0Ij48c3BhbiBjbGFzcz0iZmFuY3ktaWNvIiBpZD0iZmFuY3lib3gtbGVmdC1pY28iPjwvc3Bhbj48L2E+JyksDQoJCQkJbmF2X3JpZ2h0CT0gJCgnPGEgaHJlZj0iamF2YXNjcmlwdDo7IiBpZD0iZmFuY3lib3gtcmlnaHQiPjxzcGFuIGNsYXNzPSJmYW5jeS1pY28iIGlkPSJmYW5jeWJveC1yaWdodC1pY28iPjwvc3Bhbj48L2E+JykNCgkJCSk7DQoNCgkJCWNsb3NlLmNsaWNrKCQuZmFuY3lib3guY2xvc2UpOw0KCQkJbG9hZGluZy5jbGljaygkLmZhbmN5Ym94LmNhbmNlbCk7DQoNCgkJCW5hdl9sZWZ0LmNsaWNrKGZ1bmN0aW9uKGUpIHsNCgkJCQllLnByZXZlbnREZWZhdWx0KCk7DQoJCQkJJC5mYW5jeWJveC5wcmV2KCk7DQoJCQl9KTsNCg0KCQkJbmF2X3JpZ2h0LmNsaWNrKGZ1bmN0aW9uKGUpIHsNCgkJCQllLnByZXZlbnREZWZhdWx0KCk7DQoJCQkJJC5mYW5jeWJveC5uZXh0KCk7DQoJCQl9KTsNCg0KCQkJaWYgKGlzSUU2KSB7DQoJCQkJb3ZlcmxheS5nZXQoMCkuc3R5bGUuc2V0RXhwcmVzc2lvbignaGVpZ2h0JywJImRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0ID4gZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQgPyBkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodCA6IGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0ICsgJ3B4JyIpOw0KCQkJCWxvYWRpbmcuZ2V0KDApLnN0eWxlLnNldEV4cHJlc3Npb24oJ3RvcCcsCQkiKC0yMCArIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0ID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodC8yIDogZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQvMiApICsgKCBpZ25vcmVNZSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgPyBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wIDogZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgKSkgKyAncHgnIik7DQoNCgkJCQlvdXRlci5wcmVwZW5kKCc8aWZyYW1lIGlkPSJmYW5jeWJveC1oaWRlLXNlbC1mcmFtZSIgc3JjPSJqYXZhc2NyaXB0OlwnXCc7IiBzY3JvbGxpbmc9Im5vIiBmcmFtZWJvcmRlcj0iMCIgPjwvaWZyYW1lPicpOw0KCQkJfQ0KCQl9Ow0KDQoJLyoNCgkgKiBQdWJsaWMgbWV0aG9kcyANCgkgKi8NCg0KCSQuZm4uZmFuY3lib3ggPSBmdW5jdGlvbihvcHRpb25zKSB7DQoJCSQodGhpcykNCgkJCS5kYXRhKCdmYW5jeWJveCcsICQuZXh0ZW5kKHt9LCBvcHRpb25zLCAoJC5tZXRhZGF0YSA/ICQodGhpcykubWV0YWRhdGEoKSA6IHt9KSkpDQoJCQkudW5iaW5kKCdjbGljay5mYicpLmJpbmQoJ2NsaWNrLmZiJywgZnVuY3Rpb24oZSkgew0KCQkJCWUucHJldmVudERlZmF1bHQoKTsNCg0KCQkJCWlmIChidXN5KSB7DQoJCQkJCXJldHVybjsNCgkJCQl9DQoNCgkJCQlidXN5ID0gdHJ1ZTsNCg0KCQkJCSQodGhpcykuYmx1cigpOw0KDQoJCQkJc2VsZWN0ZWRBcnJheQk9IFtdOw0KCQkJCXNlbGVjdGVkSW5kZXgJPSAwOw0KDQoJCQkJdmFyIHJlbCA9ICQodGhpcykuYXR0cigncmVsJykgfHwgJyc7DQoNCgkJCQlpZiAoIXJlbCB8fCByZWwgPT0gJycgfHwgcmVsID09PSAnbm9mb2xsb3cnKSB7DQoJCQkJCXNlbGVjdGVkQXJyYXkucHVzaCh0aGlzKTsNCg0KCQkJCX0gZWxzZSB7DQoJCQkJCXNlbGVjdGVkQXJyYXkJPSAkKCJhW3JlbD0iICsgcmVsICsgIl0sIGFyZWFbcmVsPSIgKyByZWwgKyAiXSIpOw0KCQkJCQlzZWxlY3RlZEluZGV4CT0gc2VsZWN0ZWRBcnJheS5pbmRleCggdGhpcyApOw0KCQkJCX0NCg0KCQkJCWZhbmN5Ym94X3N0YXJ0KCk7DQoNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9KTsNCg0KCQlyZXR1cm4gdGhpczsNCgl9Ow0KDQoJJC5mYW5jeWJveCA9IGZ1bmN0aW9uKG9iaikgew0KCQlpZiAoYnVzeSkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJYnVzeSA9IHRydWU7DQoNCgkJdmFyIG9wdHMgPSB0eXBlb2YgYXJndW1lbnRzWzFdICE9PSAndW5kZWZpbmVkJyA/IGFyZ3VtZW50c1sxXSA6IHt9Ow0KDQoJCXNlbGVjdGVkQXJyYXkJPSBbXTsNCgkJc2VsZWN0ZWRJbmRleAk9IG9wdHMuaW5kZXggfHwgMDsNCg0KCQlpZiAoJC5pc0FycmF5KG9iaikpIHsNCgkJCWZvciAodmFyIGkgPSAwLCBqID0gb2JqLmxlbmd0aDsgaSA8IGo7IGkrKykgew0KCQkJCWlmICh0eXBlb2Ygb2JqW2ldID09ICdvYmplY3QnKSB7DQoJCQkJCSQob2JqW2ldKS5kYXRhKCdmYW5jeWJveCcsICQuZXh0ZW5kKHt9LCBvcHRzLCBvYmpbaV0pKTsNCgkJCQl9IGVsc2Ugew0KCQkJCQlvYmpbaV0gPSAkKHt9KS5kYXRhKCdmYW5jeWJveCcsICQuZXh0ZW5kKHtjb250ZW50IDogb2JqW2ldfSwgb3B0cykpOw0KCQkJCX0NCgkJCX0NCg0KCQkJc2VsZWN0ZWRBcnJheSA9IGpRdWVyeS5tZXJnZShzZWxlY3RlZEFycmF5LCBvYmopOw0KDQoJCX0gZWxzZSB7DQoJCQlpZiAodHlwZW9mIG9iaiA9PSAnb2JqZWN0Jykgew0KCQkJCSQob2JqKS5kYXRhKCdmYW5jeWJveCcsICQuZXh0ZW5kKHt9LCBvcHRzLCBvYmopKTsNCgkJCX0gZWxzZSB7DQoJCQkJb2JqID0gJCh7fSkuZGF0YSgnZmFuY3lib3gnLCAkLmV4dGVuZCh7Y29udGVudCA6IG9ian0sIG9wdHMpKTsNCgkJCX0NCg0KCQkJc2VsZWN0ZWRBcnJheS5wdXNoKG9iaik7DQoJCX0NCg0KCQlpZiAoc2VsZWN0ZWRJbmRleCA+IHNlbGVjdGVkQXJyYXkubGVuZ3RoIHx8IHNlbGVjdGVkSW5kZXggPCAwKSB7DQoJCQlzZWxlY3RlZEluZGV4ID0gMDsNCgkJfQ0KDQoJCWZhbmN5Ym94X3N0YXJ0KCk7DQoJfTsNCg0KCSQuZmFuY3lib3guc2hvd0FjdGl2aXR5ID0gZnVuY3Rpb24oKSB7DQoJCWNsZWFySW50ZXJ2YWwobG9hZGluZ1RpbWVyKTsNCg0KCQlsb2FkaW5nLnNob3coKTsNCgkJbG9hZGluZ1RpbWVyID0gc2V0SW50ZXJ2YWwoZmFuY3lib3hfYW5pbWF0ZV9sb2FkaW5nLCA2Nik7DQoJfTsNCg0KCSQuZmFuY3lib3guaGlkZUFjdGl2aXR5ID0gZnVuY3Rpb24oKSB7DQoJCWxvYWRpbmcuaGlkZSgpOw0KCX07DQoNCgkkLmZhbmN5Ym94Lm5leHQgPSBmdW5jdGlvbigpIHsNCgkJcmV0dXJuICQuZmFuY3lib3gucG9zKCBjdXJyZW50SW5kZXggKyAxKTsNCgl9Ow0KCQ0KCSQuZmFuY3lib3gucHJldiA9IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gJC5mYW5jeWJveC5wb3MoIGN1cnJlbnRJbmRleCAtIDEpOw0KCX07DQoNCgkkLmZhbmN5Ym94LnBvcyA9IGZ1bmN0aW9uKHBvcykgew0KCQlpZiAoYnVzeSkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJcG9zID0gcGFyc2VJbnQocG9zLCAxMCk7DQoNCgkJaWYgKHBvcyA+IC0xICYmIGN1cnJlbnRBcnJheS5sZW5ndGggPiBwb3MpIHsNCgkJCXNlbGVjdGVkSW5kZXggPSBwb3M7DQoJCQlmYW5jeWJveF9zdGFydCgpOw0KCQl9DQoNCgkJaWYgKGN1cnJlbnRPcHRzLmN5Y2xpYyAmJiBjdXJyZW50QXJyYXkubGVuZ3RoID4gMSAmJiBwb3MgPCAwKSB7DQoJCQlzZWxlY3RlZEluZGV4ID0gY3VycmVudEFycmF5Lmxlbmd0aCAtIDE7DQoJCQlmYW5jeWJveF9zdGFydCgpOw0KCQl9DQoNCgkJaWYgKGN1cnJlbnRPcHRzLmN5Y2xpYyAmJiBjdXJyZW50QXJyYXkubGVuZ3RoID4gMSAmJiBwb3MgPj0gY3VycmVudEFycmF5Lmxlbmd0aCkgew0KCQkJc2VsZWN0ZWRJbmRleCA9IDA7DQoJCQlmYW5jeWJveF9zdGFydCgpOw0KCQl9DQoNCgkJcmV0dXJuOw0KCX07DQoNCgkkLmZhbmN5Ym94LmNhbmNlbCA9IGZ1bmN0aW9uKCkgew0KCQlpZiAoYnVzeSkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJYnVzeSA9IHRydWU7DQoNCgkJJC5ldmVudC50cmlnZ2VyKCdmYW5jeWJveC1jYW5jZWwnKTsNCg0KCQlmYW5jeWJveF9hYm9ydCgpOw0KDQoJCWlmIChzZWxlY3RlZE9wdHMgJiYgJC5pc0Z1bmN0aW9uKHNlbGVjdGVkT3B0cy5vbkNhbmNlbCkpIHsNCgkJCXNlbGVjdGVkT3B0cy5vbkNhbmNlbChzZWxlY3RlZEFycmF5LCBzZWxlY3RlZEluZGV4LCBzZWxlY3RlZE9wdHMpOw0KCQl9DQoNCgkJYnVzeSA9IGZhbHNlOw0KCX07DQoNCgkvLyBOb3RlOiB3aXRoaW4gYW4gaWZyYW1lIHVzZSAtIHBhcmVudC4kLmZhbmN5Ym94LmNsb3NlKCk7DQoJJC5mYW5jeWJveC5jbG9zZSA9IGZ1bmN0aW9uKCkgew0KCQlpZiAoYnVzeSB8fCB3cmFwLmlzKCc6aGlkZGVuJykpIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWJ1c3kgPSB0cnVlOw0KDQoJCWlmIChjdXJyZW50T3B0cyAmJiAkLmlzRnVuY3Rpb24oY3VycmVudE9wdHMub25DbGVhbnVwKSkgew0KCQkJaWYgKGN1cnJlbnRPcHRzLm9uQ2xlYW51cChjdXJyZW50QXJyYXksIGN1cnJlbnRJbmRleCwgY3VycmVudE9wdHMpID09PSBmYWxzZSkgew0KCQkJCWJ1c3kgPSBmYWxzZTsNCgkJCQlyZXR1cm47DQoJCQl9DQoJCX0NCg0KCQlmYW5jeWJveF9hYm9ydCgpOw0KDQoJCSQoY2xvc2UuYWRkKCBuYXZfbGVmdCApLmFkZCggbmF2X3JpZ2h0ICkpLmhpZGUoKTsNCg0KCQkkKCcjZmFuY3lib3gtdGl0bGUnKS5yZW1vdmUoKTsNCg0KCQl3cmFwLmFkZChpbm5lcikuYWRkKG92ZXJsYXkpLnVuYmluZCgpOw0KDQoJCSQod2luZG93KS51bmJpbmQoInJlc2l6ZS5mYiBzY3JvbGwuZmIiKTsNCgkJJChkb2N1bWVudCkudW5iaW5kKCdrZXlkb3duLmZiJyk7DQoNCgkJZnVuY3Rpb24gX2NsZWFudXAoKSB7DQoJCQlvdmVybGF5LmZhZGVPdXQoJ2Zhc3QnKTsNCg0KCQkJd3JhcC5oaWRlKCk7DQoNCgkJCSQuZXZlbnQudHJpZ2dlcignZmFuY3lib3gtY2xlYW51cCcpOw0KDQoJCQlpbm5lci5lbXB0eSgpOw0KDQoJCQlpZiAoJC5pc0Z1bmN0aW9uKGN1cnJlbnRPcHRzLm9uQ2xvc2VkKSkgew0KCQkJCWN1cnJlbnRPcHRzLm9uQ2xvc2VkKGN1cnJlbnRBcnJheSwgY3VycmVudEluZGV4LCBjdXJyZW50T3B0cyk7DQoJCQl9DQoNCgkJCWN1cnJlbnRBcnJheQk9IHNlbGVjdGVkT3B0cwk9IFtdOw0KCQkJY3VycmVudEluZGV4CT0gc2VsZWN0ZWRJbmRleAk9IDA7DQoJCQljdXJyZW50T3B0cwkJPSBzZWxlY3RlZE9wdHMJPSB7fTsNCg0KCQkJYnVzeSA9IGZhbHNlOw0KCQl9DQoNCgkJaW5uZXIuY3NzKCdvdmVyZmxvdycsICdoaWRkZW4nKTsNCg0KCQlpZiAoY3VycmVudE9wdHMudHJhbnNpdGlvbk91dCA9PSAnZWxhc3RpYycpIHsNCgkJCXN0YXJ0X3BvcyA9IGZhbmN5Ym94X2dldF96b29tX2Zyb20oKTsNCg0KCQkJdmFyIHBvcyA9IHdyYXAucG9zaXRpb24oKTsNCg0KCQkJZmluYWxfcG9zID0gew0KCQkJCXRvcAkJOglwb3MudG9wICwNCgkJCQlsZWZ0CToJcG9zLmxlZnQsDQoJCQkJd2lkdGgJOgl3cmFwLndpZHRoKCksDQoJCQkJaGVpZ2h0CToJd3JhcC5oZWlnaHQoKQ0KCQkJfTsNCg0KCQkJaWYgKGN1cnJlbnRPcHRzLm9wYWNpdHkpIHsNCgkJCQlmaW5hbF9wb3Mub3BhY2l0eSA9IDE7DQoJCQl9DQoNCgkJCWZ4LnByb3AgPSAxOw0KDQoJCQkkKGZ4KS5hbmltYXRlKHsgcHJvcDogMCB9LCB7DQoJCQkJIGR1cmF0aW9uCTogY3VycmVudE9wdHMuc3BlZWRPdXQsDQoJCQkJIGVhc2luZwkJOiBjdXJyZW50T3B0cy5lYXNpbmdPdXQsDQoJCQkJIHN0ZXAJCTogZmFuY3lib3hfZHJhdywNCgkJCQkgY29tcGxldGUJOiBfY2xlYW51cA0KCQkJfSk7DQoNCgkJfSBlbHNlIHsNCgkJCXdyYXAuZmFkZU91dCggY3VycmVudE9wdHMudHJhbnNpdGlvbk91dCA9PSAnbm9uZScgPyAwIDogY3VycmVudE9wdHMuc3BlZWRPdXQsIF9jbGVhbnVwKTsNCgkJfQ0KCX07DQoNCgkkLmZhbmN5Ym94LnJlc2l6ZSA9IGZ1bmN0aW9uKCkgew0KCQl2YXIgYywgaDsNCgkJDQoJCWlmIChidXN5IHx8IHdyYXAuaXMoJzpoaWRkZW4nKSkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJYnVzeSA9IHRydWU7DQoNCgkJYyA9IGlubmVyLndyYXBJbm5lcigiPGRpdiBzdHlsZT0nb3ZlcmZsb3c6YXV0byc+PC9kaXY+IikuY2hpbGRyZW4oKTsNCgkJaCA9IGMuaGVpZ2h0KCk7DQoNCgkJd3JhcC5jc3Moe2hlaWdodDoJaCArIChjdXJyZW50T3B0cy5wYWRkaW5nICogMikgKyB0aXRsZWh9KTsNCgkJaW5uZXIuY3NzKHtoZWlnaHQ6CWh9KTsNCg0KCQljLnJlcGxhY2VXaXRoKGMuY2hpbGRyZW4oKSk7DQoNCgkJJC5mYW5jeWJveC5jZW50ZXIoKTsNCgl9Ow0KDQoJJC5mYW5jeWJveC5jZW50ZXIgPSBmdW5jdGlvbigpIHsNCgkJYnVzeSA9IHRydWU7DQoNCgkJdmFyIHZpZXcJPSBmYW5jeWJveF9nZXRfdmlld3BvcnQoKSwNCgkJCW1hcmdpbgk9IGN1cnJlbnRPcHRzLm1hcmdpbiwNCgkJCXRvCQk9IHt9Ow0KDQoJCXRvLnRvcAk9IHZpZXdbM10gKyAoKHZpZXdbMV0gLSAoKHdyYXAuaGVpZ2h0KCkgLSB0aXRsZWgpICsgKHNoYWRvdyAqIDIgKSkpICogMC41KTsNCgkJdG8ubGVmdAk9IHZpZXdbMl0gKyAoKHZpZXdbMF0gLSAod3JhcC53aWR0aCgpICsgKHNoYWRvdyAqIDIgKSkpICogMC41KTsNCg0KCQl0by50b3AJPSBNYXRoLm1heCh2aWV3WzNdICsgbWFyZ2luLCB0by50b3ApOw0KCQl0by5sZWZ0CT0gTWF0aC5tYXgodmlld1syXSArIG1hcmdpbiwgdG8ubGVmdCk7DQoNCgkJd3JhcC5jc3ModG8pOw0KDQoJCWJ1c3kgPSBmYWxzZTsNCgl9Ow0KDQoJJC5mbi5mYW5jeWJveC5kZWZhdWx0cyA9IHsNCgkJcGFkZGluZwkJCQk6CTEwLA0KCQltYXJnaW4JCQkJOgkyMCwNCgkJb3BhY2l0eQkJCQk6CWZhbHNlLA0KCQltb2RhbAkJCQk6CWZhbHNlLA0KCQljeWNsaWMJCQkJOglmYWxzZSwNCgkJc2Nyb2xsaW5nCQkJOgknYXV0bycsCS8vICdhdXRvJywgJ3llcycgb3IgJ25vJw0KDQoJCXdpZHRoCQkJCToJNTYwLA0KCQloZWlnaHQJCQkJOgkzNDAsDQoNCgkJYXV0b1NjYWxlCQkJOgl0cnVlLA0KCQlhdXRvRGltZW5zaW9ucwkJOgl0cnVlLA0KCQljZW50ZXJPblNjcm9sbAkJOglmYWxzZSwNCg0KCQlhamF4CQkJCToJe30sDQoJCXN3ZgkJCQkJOgl7IHdtb2RlOiAndHJhbnNwYXJlbnQnIH0sDQoNCgkJaGlkZU9uT3ZlcmxheUNsaWNrCToJdHJ1ZSwNCgkJaGlkZU9uQ29udGVudENsaWNrCToJZmFsc2UsDQoNCgkJb3ZlcmxheVNob3cJCQk6CXRydWUsDQoJCW92ZXJsYXlPcGFjaXR5CQk6CTAuMywNCgkJb3ZlcmxheUNvbG9yCQk6CScjNjY2JywNCg0KCQl0aXRsZVNob3cJCQk6CXRydWUsDQoJCXRpdGxlUG9zaXRpb24JCToJJ291dHNpZGUnLAkvLyAnb3V0c2lkZScsICdpbnNpZGUnIG9yICdvdmVyJw0KCQl0aXRsZUZvcm1hdAkJCToJbnVsbCwNCg0KCQl0cmFuc2l0aW9uSW4JCToJJ2ZhZGUnLAkvLyAnZWxhc3RpYycsICdmYWRlJyBvciAnbm9uZScNCgkJdHJhbnNpdGlvbk91dAkJOgknZmFkZScsCS8vICdlbGFzdGljJywgJ2ZhZGUnIG9yICdub25lJw0KDQoJCXNwZWVkSW4JCQkJOgkzMDAsDQoJCXNwZWVkT3V0CQkJOgkzMDAsDQoNCgkJY2hhbmdlU3BlZWQJCQk6CTMwMCwNCgkJY2hhbmdlRmFkZQkJCToJJ2Zhc3QnLA0KDQoJCWVhc2luZ0luCQkJOgknc3dpbmcnLA0KCQllYXNpbmdPdXQJCQk6CSdzd2luZycsDQoNCgkJc2hvd0Nsb3NlQnV0dG9uCQk6CXRydWUsDQoJCXNob3dOYXZBcnJvd3MJCToJdHJ1ZSwNCgkJZW5hYmxlRXNjYXBlQnV0dG9uCToJdHJ1ZSwNCg0KCQlvblN0YXJ0CQkJCToJbnVsbCwNCgkJb25DYW5jZWwJCQk6CW51bGwsDQoJCW9uQ29tcGxldGUJCQk6CW51bGwsDQoJCW9uQ2xlYW51cAkJCToJbnVsbCwNCgkJb25DbG9zZWQJCQk6CW51bGwNCgl9Ow0KDQoJJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7DQoJCWZhbmN5Ym94X2luaXQoKTsNCgl9KTsNCg0KfSkoalF1ZXJ5KTs=]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/jquery.fancybox-1.3.1.pack.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogRmFuY3lCb3ggLSBqUXVlcnkgUGx1Z2luCiAqIFNpbXBsZSBhbmQgZmFuY3kgbGlnaHRib3ggYWx0ZXJuYXRpdmUKICoKICogRXhhbXBsZXMgYW5kIGRvY3VtZW50YXRpb24gYXQ6IGh0dHA6Ly9mYW5jeWJveC5uZXQKICogCiAqIENvcHlyaWdodCAoYykgMjAwOCAtIDIwMTAgSmFuaXMgU2thcm5lbGlzCiAqCiAqIFZlcnNpb246IDEuMy4xICgwNS8wMy8yMDEwKQogKiBSZXF1aXJlczogalF1ZXJ5IHYxLjMrCiAqCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzOgogKiAgIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCiAqICAgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sCiAqLwoKKGZ1bmN0aW9uKGIpe3ZhciBtLHUseCxnLEQsaSx6LEEsQixwPTAsZT17fSxxPVtdLG49MCxjPXt9LGo9W10sRT1udWxsLHM9bmV3IEltYWdlLEc9L1wuKGpwZ3xnaWZ8cG5nfGJtcHxqcGVnKSguKik/JC9pLFM9L1teXC5dXC4oc3dmKVxzKiQvaSxILEk9MSxrLGwsaD1mYWxzZSx5PWIuZXh0ZW5kKGIoIjxkaXYvPiIpWzBdLHtwcm9wOjB9KSx2PTAsTz0hYi5zdXBwb3J0Lm9wYWNpdHkmJiF3aW5kb3cuWE1MSHR0cFJlcXVlc3QsSj1mdW5jdGlvbigpe3UuaGlkZSgpO3Mub25lcnJvcj1zLm9ubG9hZD1udWxsO0UmJkUuYWJvcnQoKTttLmVtcHR5KCl9LFA9ZnVuY3Rpb24oKXtiLmZhbmN5Ym94KCc8cCBpZD0iZmFuY3lib3hfZXJyb3IiPlRoZSByZXF1ZXN0ZWQgY29udGVudCBjYW5ub3QgYmUgbG9hZGVkLjxiciAvPlBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuPC9wPicse3Njcm9sbGluZzoibm8iLHBhZGRpbmc6MjAsdHJhbnNpdGlvbkluOiJub25lIix0cmFuc2l0aW9uT3V0OiJub25lIn0pfSwKSz1mdW5jdGlvbigpe3JldHVybltiKHdpbmRvdykud2lkdGgoKSxiKHdpbmRvdykuaGVpZ2h0KCksYihkb2N1bWVudCkuc2Nyb2xsTGVmdCgpLGIoZG9jdW1lbnQpLnNjcm9sbFRvcCgpXX0sVD1mdW5jdGlvbigpe3ZhciBhPUsoKSxkPXt9LGY9Yy5tYXJnaW4sbz1jLmF1dG9TY2FsZSx0PSgyMCtmKSoyLHc9KDIwK2YpKjIscj1jLnBhZGRpbmcqMjtpZihjLndpZHRoLnRvU3RyaW5nKCkuaW5kZXhPZigiJSIpPi0xKXtkLndpZHRoPWFbMF0qcGFyc2VGbG9hdChjLndpZHRoKS8xMDAtNDA7bz1mYWxzZX1lbHNlIGQud2lkdGg9Yy53aWR0aCtyO2lmKGMuaGVpZ2h0LnRvU3RyaW5nKCkuaW5kZXhPZigiJSIpPi0xKXtkLmhlaWdodD1hWzFdKnBhcnNlRmxvYXQoYy5oZWlnaHQpLzEwMC00MDtvPWZhbHNlfWVsc2UgZC5oZWlnaHQ9Yy5oZWlnaHQrcjtpZihvJiYoZC53aWR0aD5hWzBdLXR8fGQuaGVpZ2h0PmFbMV0tdykpaWYoZS50eXBlPT0iaW1hZ2UifHxlLnR5cGU9PSJzd2YiKXt0Kz1yOwp3Kz1yO289TWF0aC5taW4oTWF0aC5taW4oYVswXS10LGMud2lkdGgpL2Mud2lkdGgsTWF0aC5taW4oYVsxXS13LGMuaGVpZ2h0KS9jLmhlaWdodCk7ZC53aWR0aD1NYXRoLnJvdW5kKG8qKGQud2lkdGgtcikpK3I7ZC5oZWlnaHQ9TWF0aC5yb3VuZChvKihkLmhlaWdodC1yKSkrcn1lbHNle2Qud2lkdGg9TWF0aC5taW4oZC53aWR0aCxhWzBdLXQpO2QuaGVpZ2h0PU1hdGgubWluKGQuaGVpZ2h0LGFbMV0tdyl9ZC50b3A9YVszXSsoYVsxXS0oZC5oZWlnaHQrNDApKSowLjU7ZC5sZWZ0PWFbMl0rKGFbMF0tKGQud2lkdGgrNDApKSowLjU7aWYoYy5hdXRvU2NhbGU9PT1mYWxzZSl7ZC50b3A9TWF0aC5tYXgoYVszXStmLGQudG9wKTtkLmxlZnQ9TWF0aC5tYXgoYVsyXStmLGQubGVmdCl9cmV0dXJuIGR9LFU9ZnVuY3Rpb24oYSl7aWYoYSYmYS5sZW5ndGgpc3dpdGNoKGMudGl0bGVQb3NpdGlvbil7Y2FzZSAiaW5zaWRlIjpyZXR1cm4gYTtjYXNlICJvdmVyIjpyZXR1cm4nPHNwYW4gaWQ9ImZhbmN5Ym94LXRpdGxlLW92ZXIiPicrCmErIjwvc3Bhbj4iO2RlZmF1bHQ6cmV0dXJuJzxzcGFuIGlkPSJmYW5jeWJveC10aXRsZS13cmFwIj48c3BhbiBpZD0iZmFuY3lib3gtdGl0bGUtbGVmdCI+PC9zcGFuPjxzcGFuIGlkPSJmYW5jeWJveC10aXRsZS1tYWluIj4nK2ErJzwvc3Bhbj48c3BhbiBpZD0iZmFuY3lib3gtdGl0bGUtcmlnaHQiPjwvc3Bhbj48L3NwYW4+J31yZXR1cm4gZmFsc2V9LFY9ZnVuY3Rpb24oKXt2YXIgYT1jLnRpdGxlLGQ9bC53aWR0aC1jLnBhZGRpbmcqMixmPSJmYW5jeWJveC10aXRsZS0iK2MudGl0bGVQb3NpdGlvbjtiKCIjZmFuY3lib3gtdGl0bGUiKS5yZW1vdmUoKTt2PTA7aWYoYy50aXRsZVNob3chPT1mYWxzZSl7YT1iLmlzRnVuY3Rpb24oYy50aXRsZUZvcm1hdCk/Yy50aXRsZUZvcm1hdChhLGosbixjKTpVKGEpO2lmKCEoIWF8fGE9PT0iIikpe2IoJzxkaXYgaWQ9ImZhbmN5Ym94LXRpdGxlIiBjbGFzcz0iJytmKyciIC8+JykuY3NzKHt3aWR0aDpkLHBhZGRpbmdMZWZ0OmMucGFkZGluZywKcGFkZGluZ1JpZ2h0OmMucGFkZGluZ30pLmh0bWwoYSkuYXBwZW5kVG8oImJvZHkiKTtzd2l0Y2goYy50aXRsZVBvc2l0aW9uKXtjYXNlICJpbnNpZGUiOnY9YigiI2ZhbmN5Ym94LXRpdGxlIikub3V0ZXJIZWlnaHQodHJ1ZSktYy5wYWRkaW5nO2wuaGVpZ2h0Kz12O2JyZWFrO2Nhc2UgIm92ZXIiOmIoIiNmYW5jeWJveC10aXRsZSIpLmNzcygiYm90dG9tIixjLnBhZGRpbmcpO2JyZWFrO2RlZmF1bHQ6YigiI2ZhbmN5Ym94LXRpdGxlIikuY3NzKCJib3R0b20iLGIoIiNmYW5jeWJveC10aXRsZSIpLm91dGVySGVpZ2h0KHRydWUpKi0xKTticmVha31iKCIjZmFuY3lib3gtdGl0bGUiKS5hcHBlbmRUbyhEKS5oaWRlKCl9fX0sVz1mdW5jdGlvbigpe2IoZG9jdW1lbnQpLnVuYmluZCgia2V5ZG93bi5mYiIpLmJpbmQoImtleWRvd24uZmIiLGZ1bmN0aW9uKGEpe2lmKGEua2V5Q29kZT09MjcmJmMuZW5hYmxlRXNjYXBlQnV0dG9uKXthLnByZXZlbnREZWZhdWx0KCk7Yi5mYW5jeWJveC5jbG9zZSgpfWVsc2UgaWYoYS5rZXlDb2RlPT0KMzcpe2EucHJldmVudERlZmF1bHQoKTtiLmZhbmN5Ym94LnByZXYoKX1lbHNlIGlmKGEua2V5Q29kZT09Mzkpe2EucHJldmVudERlZmF1bHQoKTtiLmZhbmN5Ym94Lm5leHQoKX19KTtpZihiLmZuLm1vdXNld2hlZWwpe2cudW5iaW5kKCJtb3VzZXdoZWVsLmZiIik7ai5sZW5ndGg+MSYmZy5iaW5kKCJtb3VzZXdoZWVsLmZiIixmdW5jdGlvbihhLGQpe2EucHJldmVudERlZmF1bHQoKTtofHxkPT09MHx8KGQ+MD9iLmZhbmN5Ym94LnByZXYoKTpiLmZhbmN5Ym94Lm5leHQoKSl9KX1pZihjLnNob3dOYXZBcnJvd3Mpe2lmKGMuY3ljbGljJiZqLmxlbmd0aD4xfHxuIT09MClBLnNob3coKTtpZihjLmN5Y2xpYyYmai5sZW5ndGg+MXx8biE9ai5sZW5ndGgtMSlCLnNob3coKX19LFg9ZnVuY3Rpb24oKXt2YXIgYSxkO2lmKGoubGVuZ3RoLTE+bil7YT1qW24rMV0uaHJlZjtpZih0eXBlb2YgYSE9PSJ1bmRlZmluZWQiJiZhLm1hdGNoKEcpKXtkPW5ldyBJbWFnZTtkLnNyYz1hfX1pZihuPjApe2E9Cmpbbi0xXS5ocmVmO2lmKHR5cGVvZiBhIT09InVuZGVmaW5lZCImJmEubWF0Y2goRykpe2Q9bmV3IEltYWdlO2Quc3JjPWF9fX0sTD1mdW5jdGlvbigpe2kuY3NzKCJvdmVyZmxvdyIsYy5zY3JvbGxpbmc9PSJhdXRvIj9jLnR5cGU9PSJpbWFnZSJ8fGMudHlwZT09ImlmcmFtZSJ8fGMudHlwZT09InN3ZiI/ImhpZGRlbiI6ImF1dG8iOmMuc2Nyb2xsaW5nPT0ieWVzIj8iYXV0byI6InZpc2libGUiKTtpZighYi5zdXBwb3J0Lm9wYWNpdHkpe2kuZ2V0KDApLnN0eWxlLnJlbW92ZUF0dHJpYnV0ZSgiZmlsdGVyIik7Zy5nZXQoMCkuc3R5bGUucmVtb3ZlQXR0cmlidXRlKCJmaWx0ZXIiKX1iKCIjZmFuY3lib3gtdGl0bGUiKS5zaG93KCk7Yy5oaWRlT25Db250ZW50Q2xpY2smJmkub25lKCJjbGljayIsYi5mYW5jeWJveC5jbG9zZSk7Yy5oaWRlT25PdmVybGF5Q2xpY2smJngub25lKCJjbGljayIsYi5mYW5jeWJveC5jbG9zZSk7Yy5zaG93Q2xvc2VCdXR0b24mJnouc2hvdygpO1coKTtiKHdpbmRvdykuYmluZCgicmVzaXplLmZiIiwKYi5mYW5jeWJveC5jZW50ZXIpO2MuY2VudGVyT25TY3JvbGw/Yih3aW5kb3cpLmJpbmQoInNjcm9sbC5mYiIsYi5mYW5jeWJveC5jZW50ZXIpOmIod2luZG93KS51bmJpbmQoInNjcm9sbC5mYiIpO2IuaXNGdW5jdGlvbihjLm9uQ29tcGxldGUpJiZjLm9uQ29tcGxldGUoaixuLGMpO2g9ZmFsc2U7WCgpfSxNPWZ1bmN0aW9uKGEpe3ZhciBkPU1hdGgucm91bmQoay53aWR0aCsobC53aWR0aC1rLndpZHRoKSphKSxmPU1hdGgucm91bmQoay5oZWlnaHQrKGwuaGVpZ2h0LWsuaGVpZ2h0KSphKSxvPU1hdGgucm91bmQoay50b3ArKGwudG9wLWsudG9wKSphKSx0PU1hdGgucm91bmQoay5sZWZ0KyhsLmxlZnQtay5sZWZ0KSphKTtnLmNzcyh7d2lkdGg6ZCsicHgiLGhlaWdodDpmKyJweCIsdG9wOm8rInB4IixsZWZ0OnQrInB4In0pO2Q9TWF0aC5tYXgoZC1jLnBhZGRpbmcqMiwwKTtmPU1hdGgubWF4KGYtKGMucGFkZGluZyoyK3YqYSksMCk7aS5jc3Moe3dpZHRoOmQrInB4IixoZWlnaHQ6ZisKInB4In0pO2lmKHR5cGVvZiBsLm9wYWNpdHkhPT0idW5kZWZpbmVkIilnLmNzcygib3BhY2l0eSIsYTwwLjU/MC41OmEpfSxZPWZ1bmN0aW9uKGEpe3ZhciBkPWEub2Zmc2V0KCk7ZC50b3ArPXBhcnNlRmxvYXQoYS5jc3MoInBhZGRpbmdUb3AiKSl8fDA7ZC5sZWZ0Kz1wYXJzZUZsb2F0KGEuY3NzKCJwYWRkaW5nTGVmdCIpKXx8MDtkLnRvcCs9cGFyc2VGbG9hdChhLmNzcygiYm9yZGVyLXRvcC13aWR0aCIpKXx8MDtkLmxlZnQrPXBhcnNlRmxvYXQoYS5jc3MoImJvcmRlci1sZWZ0LXdpZHRoIikpfHwwO2Qud2lkdGg9YS53aWR0aCgpO2QuaGVpZ2h0PWEuaGVpZ2h0KCk7cmV0dXJuIGR9LFE9ZnVuY3Rpb24oKXt2YXIgYT1lLm9yaWc/YihlLm9yaWcpOmZhbHNlLGQ9e307aWYoYSYmYS5sZW5ndGgpe2E9WShhKTtkPXt3aWR0aDphLndpZHRoK2MucGFkZGluZyoyLGhlaWdodDphLmhlaWdodCtjLnBhZGRpbmcqMix0b3A6YS50b3AtYy5wYWRkaW5nLTIwLGxlZnQ6YS5sZWZ0LWMucGFkZGluZy0KMjB9fWVsc2V7YT1LKCk7ZD17d2lkdGg6MSxoZWlnaHQ6MSx0b3A6YVszXSthWzFdKjAuNSxsZWZ0OmFbMl0rYVswXSowLjV9fXJldHVybiBkfSxOPWZ1bmN0aW9uKCl7dS5oaWRlKCk7aWYoZy5pcygiOnZpc2libGUiKSYmYi5pc0Z1bmN0aW9uKGMub25DbGVhbnVwKSlpZihjLm9uQ2xlYW51cChqLG4sYyk9PT1mYWxzZSl7Yi5ldmVudC50cmlnZ2VyKCJmYW5jeWJveC1jYW5jZWwiKTtoPWZhbHNlO3JldHVybn1qPXE7bj1wO2M9ZTtpLmdldCgwKS5zY3JvbGxUb3A9MDtpLmdldCgwKS5zY3JvbGxMZWZ0PTA7aWYoYy5vdmVybGF5U2hvdyl7TyYmYigic2VsZWN0Om5vdCgjZmFuY3lib3gtdG1wIHNlbGVjdCkiKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdHlsZS52aXNpYmlsaXR5IT09ImhpZGRlbiJ9KS5jc3Moe3Zpc2liaWxpdHk6ImhpZGRlbiJ9KS5vbmUoImZhbmN5Ym94LWNsZWFudXAiLGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS52aXNpYmlsaXR5PSJpbmhlcml0In0pOwp4LmNzcyh7ImJhY2tncm91bmQtY29sb3IiOmMub3ZlcmxheUNvbG9yLG9wYWNpdHk6Yy5vdmVybGF5T3BhY2l0eX0pLnVuYmluZCgpLnNob3coKX1sPVQoKTtWKCk7aWYoZy5pcygiOnZpc2libGUiKSl7Yih6LmFkZChBKS5hZGQoQikpLmhpZGUoKTt2YXIgYT1nLnBvc2l0aW9uKCksZDtrPXt0b3A6YS50b3AsbGVmdDphLmxlZnQsd2lkdGg6Zy53aWR0aCgpLGhlaWdodDpnLmhlaWdodCgpfTtkPWsud2lkdGg9PWwud2lkdGgmJmsuaGVpZ2h0PT1sLmhlaWdodDtpLmZhZGVPdXQoYy5jaGFuZ2VGYWRlLGZ1bmN0aW9uKCl7dmFyIGY9ZnVuY3Rpb24oKXtpLmh0bWwobS5jb250ZW50cygpKS5mYWRlSW4oYy5jaGFuZ2VGYWRlLEwpfTtiLmV2ZW50LnRyaWdnZXIoImZhbmN5Ym94LWNoYW5nZSIpO2kuZW1wdHkoKS5jc3MoIm92ZXJmbG93IiwiaGlkZGVuIik7aWYoZCl7aS5jc3Moe3RvcDpjLnBhZGRpbmcsbGVmdDpjLnBhZGRpbmcsd2lkdGg6TWF0aC5tYXgobC53aWR0aC1jLnBhZGRpbmcqCjIsMSksaGVpZ2h0Ok1hdGgubWF4KGwuaGVpZ2h0LWMucGFkZGluZyoyLXYsMSl9KTtmKCl9ZWxzZXtpLmNzcyh7dG9wOmMucGFkZGluZyxsZWZ0OmMucGFkZGluZyx3aWR0aDpNYXRoLm1heChrLndpZHRoLWMucGFkZGluZyoyLDEpLGhlaWdodDpNYXRoLm1heChrLmhlaWdodC1jLnBhZGRpbmcqMiwxKX0pO3kucHJvcD0wO2IoeSkuYW5pbWF0ZSh7cHJvcDoxfSx7ZHVyYXRpb246Yy5jaGFuZ2VTcGVlZCxlYXNpbmc6Yy5lYXNpbmdDaGFuZ2Usc3RlcDpNLGNvbXBsZXRlOmZ9KX19KX1lbHNle2cuY3NzKCJvcGFjaXR5IiwxKTtpZihjLnRyYW5zaXRpb25Jbj09ImVsYXN0aWMiKXtrPVEoKTtpLmNzcyh7dG9wOmMucGFkZGluZyxsZWZ0OmMucGFkZGluZyx3aWR0aDpNYXRoLm1heChrLndpZHRoLWMucGFkZGluZyoyLDEpLGhlaWdodDpNYXRoLm1heChrLmhlaWdodC1jLnBhZGRpbmcqMiwxKX0pLmh0bWwobS5jb250ZW50cygpKTtnLmNzcyhrKS5zaG93KCk7aWYoYy5vcGFjaXR5KWwub3BhY2l0eT0KMDt5LnByb3A9MDtiKHkpLmFuaW1hdGUoe3Byb3A6MX0se2R1cmF0aW9uOmMuc3BlZWRJbixlYXNpbmc6Yy5lYXNpbmdJbixzdGVwOk0sY29tcGxldGU6TH0pfWVsc2V7aS5jc3Moe3RvcDpjLnBhZGRpbmcsbGVmdDpjLnBhZGRpbmcsd2lkdGg6TWF0aC5tYXgobC53aWR0aC1jLnBhZGRpbmcqMiwxKSxoZWlnaHQ6TWF0aC5tYXgobC5oZWlnaHQtYy5wYWRkaW5nKjItdiwxKX0pLmh0bWwobS5jb250ZW50cygpKTtnLmNzcyhsKS5mYWRlSW4oYy50cmFuc2l0aW9uSW49PSJub25lIj8wOmMuc3BlZWRJbixMKX19fSxGPWZ1bmN0aW9uKCl7bS53aWR0aChlLndpZHRoKTttLmhlaWdodChlLmhlaWdodCk7aWYoZS53aWR0aD09ImF1dG8iKWUud2lkdGg9bS53aWR0aCgpO2lmKGUuaGVpZ2h0PT0iYXV0byIpZS5oZWlnaHQ9bS5oZWlnaHQoKTtOKCl9LFo9ZnVuY3Rpb24oKXtoPXRydWU7ZS53aWR0aD1zLndpZHRoO2UuaGVpZ2h0PXMuaGVpZ2h0O2IoIjxpbWcgLz4iKS5hdHRyKHtpZDoiZmFuY3lib3gtaW1nIiwKc3JjOnMuc3JjLGFsdDplLnRpdGxlfSkuYXBwZW5kVG8obSk7TigpfSxDPWZ1bmN0aW9uKCl7SigpO3ZhciBhPXFbcF0sZCxmLG8sdCx3O2U9Yi5leHRlbmQoe30sYi5mbi5mYW5jeWJveC5kZWZhdWx0cyx0eXBlb2YgYihhKS5kYXRhKCJmYW5jeWJveCIpPT0idW5kZWZpbmVkIj9lOmIoYSkuZGF0YSgiZmFuY3lib3giKSk7bz1hLnRpdGxlfHxiKGEpLnRpdGxlfHxlLnRpdGxlfHwiIjtpZihhLm5vZGVOYW1lJiYhZS5vcmlnKWUub3JpZz1iKGEpLmNoaWxkcmVuKCJpbWc6Zmlyc3QiKS5sZW5ndGg/YihhKS5jaGlsZHJlbigiaW1nOmZpcnN0Iik6YihhKTtpZihvPT09IiImJmUub3JpZylvPWUub3JpZy5hdHRyKCJhbHQiKTtkPWEubm9kZU5hbWUmJi9eKD86amF2YXNjcmlwdHwjKS9pLnRlc3QoYS5ocmVmKT9lLmhyZWZ8fG51bGw6ZS5ocmVmfHxhLmhyZWZ8fG51bGw7aWYoZS50eXBlKXtmPWUudHlwZTtpZighZClkPWUuY29udGVudH1lbHNlIGlmKGUuY29udGVudClmPSJodG1sIjtlbHNlIGlmKGQpaWYoZC5tYXRjaChHKSlmPQoiaW1hZ2UiO2Vsc2UgaWYoZC5tYXRjaChTKSlmPSJzd2YiO2Vsc2UgaWYoYihhKS5oYXNDbGFzcygiaWZyYW1lIikpZj0iaWZyYW1lIjtlbHNlIGlmKGQubWF0Y2goLyMvKSl7YT1kLnN1YnN0cihkLmluZGV4T2YoIiMiKSk7Zj1iKGEpLmxlbmd0aD4wPyJpbmxpbmUiOiJhamF4In1lbHNlIGY9ImFqYXgiO2Vsc2UgZj0iaW5saW5lIjtlLnR5cGU9ZjtlLmhyZWY9ZDtlLnRpdGxlPW87aWYoZS5hdXRvRGltZW5zaW9ucyYmZS50eXBlIT09ImlmcmFtZSImJmUudHlwZSE9PSJzd2YiKXtlLndpZHRoPSJhdXRvIjtlLmhlaWdodD0iYXV0byJ9aWYoZS5tb2RhbCl7ZS5vdmVybGF5U2hvdz10cnVlO2UuaGlkZU9uT3ZlcmxheUNsaWNrPWZhbHNlO2UuaGlkZU9uQ29udGVudENsaWNrPWZhbHNlO2UuZW5hYmxlRXNjYXBlQnV0dG9uPWZhbHNlO2Uuc2hvd0Nsb3NlQnV0dG9uPWZhbHNlfWlmKGIuaXNGdW5jdGlvbihlLm9uU3RhcnQpKWlmKGUub25TdGFydChxLHAsZSk9PT1mYWxzZSl7aD1mYWxzZTsKcmV0dXJufW0uY3NzKCJwYWRkaW5nIiwyMCtlLnBhZGRpbmcrZS5tYXJnaW4pO2IoIi5mYW5jeWJveC1pbmxpbmUtdG1wIikudW5iaW5kKCJmYW5jeWJveC1jYW5jZWwiKS5iaW5kKCJmYW5jeWJveC1jaGFuZ2UiLGZ1bmN0aW9uKCl7Yih0aGlzKS5yZXBsYWNlV2l0aChpLmNoaWxkcmVuKCkpfSk7c3dpdGNoKGYpe2Nhc2UgImh0bWwiOm0uaHRtbChlLmNvbnRlbnQpO0YoKTticmVhaztjYXNlICJpbmxpbmUiOmIoJzxkaXYgY2xhc3M9ImZhbmN5Ym94LWlubGluZS10bXAiIC8+JykuaGlkZSgpLmluc2VydEJlZm9yZShiKGEpKS5iaW5kKCJmYW5jeWJveC1jbGVhbnVwIixmdW5jdGlvbigpe2IodGhpcykucmVwbGFjZVdpdGgoaS5jaGlsZHJlbigpKX0pLmJpbmQoImZhbmN5Ym94LWNhbmNlbCIsZnVuY3Rpb24oKXtiKHRoaXMpLnJlcGxhY2VXaXRoKG0uY2hpbGRyZW4oKSl9KTtiKGEpLmFwcGVuZFRvKG0pO0YoKTticmVhaztjYXNlICJpbWFnZSI6aD1mYWxzZTtiLmZhbmN5Ym94LnNob3dBY3Rpdml0eSgpOwpzPW5ldyBJbWFnZTtzLm9uZXJyb3I9ZnVuY3Rpb24oKXtQKCl9O3Mub25sb2FkPWZ1bmN0aW9uKCl7cy5vbmVycm9yPW51bGw7cy5vbmxvYWQ9bnVsbDtaKCl9O3Muc3JjPWQ7YnJlYWs7Y2FzZSAic3dmIjp0PSc8b2JqZWN0IGNsYXNzaWQ9ImNsc2lkOkQyN0NEQjZFLUFFNkQtMTFjZi05NkI4LTQ0NDU1MzU0MDAwMCIgd2lkdGg9IicrZS53aWR0aCsnIiBoZWlnaHQ9IicrZS5oZWlnaHQrJyI+PHBhcmFtIG5hbWU9Im1vdmllIiB2YWx1ZT0iJytkKyciPjwvcGFyYW0+Jzt3PSIiO2IuZWFjaChlLnN3ZixmdW5jdGlvbihyLFIpe3QrPSc8cGFyYW0gbmFtZT0iJytyKyciIHZhbHVlPSInK1IrJyI+PC9wYXJhbT4nO3crPSIgIityKyc9IicrUisnIid9KTt0Kz0nPGVtYmVkIHNyYz0iJytkKyciIHR5cGU9ImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIiB3aWR0aD0iJytlLndpZHRoKyciIGhlaWdodD0iJytlLmhlaWdodCsnIicrdysiPjwvZW1iZWQ+PC9vYmplY3Q+IjttLmh0bWwodCk7CkYoKTticmVhaztjYXNlICJhamF4IjphPWQuc3BsaXQoIiMiLDIpO2Y9ZS5hamF4LmRhdGF8fHt9O2lmKGEubGVuZ3RoPjEpe2Q9YVswXTtpZih0eXBlb2YgZj09InN0cmluZyIpZis9IiZzZWxlY3Rvcj0iK2FbMV07ZWxzZSBmLnNlbGVjdG9yPWFbMV19aD1mYWxzZTtiLmZhbmN5Ym94LnNob3dBY3Rpdml0eSgpO0U9Yi5hamF4KGIuZXh0ZW5kKGUuYWpheCx7dXJsOmQsZGF0YTpmLGVycm9yOlAsc3VjY2VzczpmdW5jdGlvbihyKXtpZihFLnN0YXR1cz09MjAwKXttLmh0bWwocik7RigpfX19KSk7YnJlYWs7Y2FzZSAiaWZyYW1lIjpiKCc8aWZyYW1lIGlkPSJmYW5jeWJveC1mcmFtZSIgbmFtZT0iZmFuY3lib3gtZnJhbWUnKyhuZXcgRGF0ZSkuZ2V0VGltZSgpKyciIGZyYW1lYm9yZGVyPSIwIiBoc3BhY2U9IjAiIHNjcm9sbGluZz0iJytlLnNjcm9sbGluZysnIiBzcmM9IicrZS5ocmVmKyciPjwvaWZyYW1lPicpLmFwcGVuZFRvKG0pO04oKTticmVha319LCQ9ZnVuY3Rpb24oKXtpZih1LmlzKCI6dmlzaWJsZSIpKXtiKCJkaXYiLAp1KS5jc3MoInRvcCIsSSotNDArInB4Iik7ST0oSSsxKSUxMn1lbHNlIGNsZWFySW50ZXJ2YWwoSCl9LGFhPWZ1bmN0aW9uKCl7aWYoIWIoIiNmYW5jeWJveC13cmFwIikubGVuZ3RoKXtiKCJib2R5IikuYXBwZW5kKG09YignPGRpdiBpZD0iZmFuY3lib3gtdG1wIj48L2Rpdj4nKSx1PWIoJzxkaXYgaWQ9ImZhbmN5Ym94LWxvYWRpbmciPjxkaXY+PC9kaXY+PC9kaXY+JykseD1iKCc8ZGl2IGlkPSJmYW5jeWJveC1vdmVybGF5Ij48L2Rpdj4nKSxnPWIoJzxkaXYgaWQ9ImZhbmN5Ym94LXdyYXAiPjwvZGl2PicpKTtpZighYi5zdXBwb3J0Lm9wYWNpdHkpe2cuYWRkQ2xhc3MoImZhbmN5Ym94LWllIik7dS5hZGRDbGFzcygiZmFuY3lib3gtaWUiKX1EPWIoJzxkaXYgaWQ9ImZhbmN5Ym94LW91dGVyIj48L2Rpdj4nKS5hcHBlbmQoJzxkaXYgY2xhc3M9ImZhbmN5LWJnIiBpZD0iZmFuY3ktYmctbiI+PC9kaXY+PGRpdiBjbGFzcz0iZmFuY3ktYmciIGlkPSJmYW5jeS1iZy1uZSI+PC9kaXY+PGRpdiBjbGFzcz0iZmFuY3ktYmciIGlkPSJmYW5jeS1iZy1lIj48L2Rpdj48ZGl2IGNsYXNzPSJmYW5jeS1iZyIgaWQ9ImZhbmN5LWJnLXNlIj48L2Rpdj48ZGl2IGNsYXNzPSJmYW5jeS1iZyIgaWQ9ImZhbmN5LWJnLXMiPjwvZGl2PjxkaXYgY2xhc3M9ImZhbmN5LWJnIiBpZD0iZmFuY3ktYmctc3ciPjwvZGl2PjxkaXYgY2xhc3M9ImZhbmN5LWJnIiBpZD0iZmFuY3ktYmctdyI+PC9kaXY+PGRpdiBjbGFzcz0iZmFuY3ktYmciIGlkPSJmYW5jeS1iZy1udyI+PC9kaXY+JykuYXBwZW5kVG8oZyk7CkQuYXBwZW5kKGk9YignPGRpdiBpZD0iZmFuY3lib3gtaW5uZXIiPjwvZGl2PicpLHo9YignPGEgaWQ9ImZhbmN5Ym94LWNsb3NlIj48L2E+JyksQT1iKCc8YSBocmVmPSJqYXZhc2NyaXB0OjsiIGlkPSJmYW5jeWJveC1sZWZ0Ij48c3BhbiBjbGFzcz0iZmFuY3ktaWNvIiBpZD0iZmFuY3lib3gtbGVmdC1pY28iPjwvc3Bhbj48L2E+JyksQj1iKCc8YSBocmVmPSJqYXZhc2NyaXB0OjsiIGlkPSJmYW5jeWJveC1yaWdodCI+PHNwYW4gY2xhc3M9ImZhbmN5LWljbyIgaWQ9ImZhbmN5Ym94LXJpZ2h0LWljbyI+PC9zcGFuPjwvYT4nKSk7ei5jbGljayhiLmZhbmN5Ym94LmNsb3NlKTt1LmNsaWNrKGIuZmFuY3lib3guY2FuY2VsKTtBLmNsaWNrKGZ1bmN0aW9uKGEpe2EucHJldmVudERlZmF1bHQoKTtiLmZhbmN5Ym94LnByZXYoKX0pO0IuY2xpY2soZnVuY3Rpb24oYSl7YS5wcmV2ZW50RGVmYXVsdCgpO2IuZmFuY3lib3gubmV4dCgpfSk7aWYoTyl7eC5nZXQoMCkuc3R5bGUuc2V0RXhwcmVzc2lvbigiaGVpZ2h0IiwKImRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0ID4gZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQgPyBkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodCA6IGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0ICsgJ3B4JyIpO3UuZ2V0KDApLnN0eWxlLnNldEV4cHJlc3Npb24oInRvcCIsIigtMjAgKyAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCA/IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQvMiA6IGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0LzIgKSArICggaWdub3JlTWUgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA6IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wICkpICsgJ3B4JyIpO0QucHJlcGVuZCgnPGlmcmFtZSBpZD0iZmFuY3lib3gtaGlkZS1zZWwtZnJhbWUiIHNyYz0iamF2YXNjcmlwdDpcJ1wnOyIgc2Nyb2xsaW5nPSJubyIgZnJhbWVib3JkZXI9IjAiID48L2lmcmFtZT4nKX19fTsKYi5mbi5mYW5jeWJveD1mdW5jdGlvbihhKXtiKHRoaXMpLmRhdGEoImZhbmN5Ym94IixiLmV4dGVuZCh7fSxhLGIubWV0YWRhdGE/Yih0aGlzKS5tZXRhZGF0YSgpOnt9KSkudW5iaW5kKCJjbGljay5mYiIpLmJpbmQoImNsaWNrLmZiIixmdW5jdGlvbihkKXtkLnByZXZlbnREZWZhdWx0KCk7aWYoIWgpe2g9dHJ1ZTtiKHRoaXMpLmJsdXIoKTtxPVtdO3A9MDtkPWIodGhpcykuYXR0cigicmVsIil8fCIiO2lmKCFkfHxkPT0iInx8ZD09PSJub2ZvbGxvdyIpcS5wdXNoKHRoaXMpO2Vsc2V7cT1iKCJhW3JlbD0iK2QrIl0sIGFyZWFbcmVsPSIrZCsiXSIpO3A9cS5pbmRleCh0aGlzKX1DKCk7cmV0dXJuIGZhbHNlfX0pO3JldHVybiB0aGlzfTtiLmZhbmN5Ym94PWZ1bmN0aW9uKGEsZCl7aWYoIWgpe2g9dHJ1ZTtkPXR5cGVvZiBkIT09InVuZGVmaW5lZCI/ZDp7fTtxPVtdO3A9ZC5pbmRleHx8MDtpZihiLmlzQXJyYXkoYSkpe2Zvcih2YXIgZj0wLG89YS5sZW5ndGg7ZjxvO2YrKylpZih0eXBlb2YgYVtmXT09CiJvYmplY3QiKWIoYVtmXSkuZGF0YSgiZmFuY3lib3giLGIuZXh0ZW5kKHt9LGQsYVtmXSkpO2Vsc2UgYVtmXT1iKHt9KS5kYXRhKCJmYW5jeWJveCIsYi5leHRlbmQoe2NvbnRlbnQ6YVtmXX0sZCkpO3E9alF1ZXJ5Lm1lcmdlKHEsYSl9ZWxzZXtpZih0eXBlb2YgYT09Im9iamVjdCIpYihhKS5kYXRhKCJmYW5jeWJveCIsYi5leHRlbmQoe30sZCxhKSk7ZWxzZSBhPWIoe30pLmRhdGEoImZhbmN5Ym94IixiLmV4dGVuZCh7Y29udGVudDphfSxkKSk7cS5wdXNoKGEpfWlmKHA+cS5sZW5ndGh8fHA8MClwPTA7QygpfX07Yi5mYW5jeWJveC5zaG93QWN0aXZpdHk9ZnVuY3Rpb24oKXtjbGVhckludGVydmFsKEgpO3Uuc2hvdygpO0g9c2V0SW50ZXJ2YWwoJCw2Nil9O2IuZmFuY3lib3guaGlkZUFjdGl2aXR5PWZ1bmN0aW9uKCl7dS5oaWRlKCl9O2IuZmFuY3lib3gubmV4dD1mdW5jdGlvbigpe3JldHVybiBiLmZhbmN5Ym94LnBvcyhuKzEpfTtiLmZhbmN5Ym94LnByZXY9ZnVuY3Rpb24oKXtyZXR1cm4gYi5mYW5jeWJveC5wb3Mobi0KMSl9O2IuZmFuY3lib3gucG9zPWZ1bmN0aW9uKGEpe2lmKCFoKXthPXBhcnNlSW50KGEsMTApO2lmKGE+LTEmJmoubGVuZ3RoPmEpe3A9YTtDKCl9aWYoYy5jeWNsaWMmJmoubGVuZ3RoPjEmJmE8MCl7cD1qLmxlbmd0aC0xO0MoKX1pZihjLmN5Y2xpYyYmai5sZW5ndGg+MSYmYT49ai5sZW5ndGgpe3A9MDtDKCl9fX07Yi5mYW5jeWJveC5jYW5jZWw9ZnVuY3Rpb24oKXtpZighaCl7aD10cnVlO2IuZXZlbnQudHJpZ2dlcigiZmFuY3lib3gtY2FuY2VsIik7SigpO2UmJmIuaXNGdW5jdGlvbihlLm9uQ2FuY2VsKSYmZS5vbkNhbmNlbChxLHAsZSk7aD1mYWxzZX19O2IuZmFuY3lib3guY2xvc2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7eC5mYWRlT3V0KCJmYXN0Iik7Zy5oaWRlKCk7Yi5ldmVudC50cmlnZ2VyKCJmYW5jeWJveC1jbGVhbnVwIik7aS5lbXB0eSgpO2IuaXNGdW5jdGlvbihjLm9uQ2xvc2VkKSYmYy5vbkNsb3NlZChqLG4sYyk7aj1lPVtdO249cD0wO2M9ZT17fTtoPWZhbHNlfQppZighKGh8fGcuaXMoIjpoaWRkZW4iKSkpe2g9dHJ1ZTtpZihjJiZiLmlzRnVuY3Rpb24oYy5vbkNsZWFudXApKWlmKGMub25DbGVhbnVwKGosbixjKT09PWZhbHNlKXtoPWZhbHNlO3JldHVybn1KKCk7Yih6LmFkZChBKS5hZGQoQikpLmhpZGUoKTtiKCIjZmFuY3lib3gtdGl0bGUiKS5yZW1vdmUoKTtnLmFkZChpKS5hZGQoeCkudW5iaW5kKCk7Yih3aW5kb3cpLnVuYmluZCgicmVzaXplLmZiIHNjcm9sbC5mYiIpO2IoZG9jdW1lbnQpLnVuYmluZCgia2V5ZG93bi5mYiIpO2kuY3NzKCJvdmVyZmxvdyIsImhpZGRlbiIpO2lmKGMudHJhbnNpdGlvbk91dD09ImVsYXN0aWMiKXtrPVEoKTt2YXIgZD1nLnBvc2l0aW9uKCk7bD17dG9wOmQudG9wLGxlZnQ6ZC5sZWZ0LHdpZHRoOmcud2lkdGgoKSxoZWlnaHQ6Zy5oZWlnaHQoKX07aWYoYy5vcGFjaXR5KWwub3BhY2l0eT0xO3kucHJvcD0xO2IoeSkuYW5pbWF0ZSh7cHJvcDowfSx7ZHVyYXRpb246Yy5zcGVlZE91dCxlYXNpbmc6Yy5lYXNpbmdPdXQsCnN0ZXA6TSxjb21wbGV0ZTphfSl9ZWxzZSBnLmZhZGVPdXQoYy50cmFuc2l0aW9uT3V0PT0ibm9uZSI/MDpjLnNwZWVkT3V0LGEpfX07Yi5mYW5jeWJveC5yZXNpemU9ZnVuY3Rpb24oKXt2YXIgYSxkO2lmKCEoaHx8Zy5pcygiOmhpZGRlbiIpKSl7aD10cnVlO2E9aS53cmFwSW5uZXIoIjxkaXYgc3R5bGU9J292ZXJmbG93OmF1dG8nPjwvZGl2PiIpLmNoaWxkcmVuKCk7ZD1hLmhlaWdodCgpO2cuY3NzKHtoZWlnaHQ6ZCtjLnBhZGRpbmcqMit2fSk7aS5jc3Moe2hlaWdodDpkfSk7YS5yZXBsYWNlV2l0aChhLmNoaWxkcmVuKCkpO2IuZmFuY3lib3guY2VudGVyKCl9fTtiLmZhbmN5Ym94LmNlbnRlcj1mdW5jdGlvbigpe2g9dHJ1ZTt2YXIgYT1LKCksZD1jLm1hcmdpbixmPXt9O2YudG9wPWFbM10rKGFbMV0tKGcuaGVpZ2h0KCktdis0MCkpKjAuNTtmLmxlZnQ9YVsyXSsoYVswXS0oZy53aWR0aCgpKzQwKSkqMC41O2YudG9wPU1hdGgubWF4KGFbM10rZCxmLnRvcCk7Zi5sZWZ0PU1hdGgubWF4KGFbMl0rCmQsZi5sZWZ0KTtnLmNzcyhmKTtoPWZhbHNlfTtiLmZuLmZhbmN5Ym94LmRlZmF1bHRzPXtwYWRkaW5nOjEwLG1hcmdpbjoyMCxvcGFjaXR5OmZhbHNlLG1vZGFsOmZhbHNlLGN5Y2xpYzpmYWxzZSxzY3JvbGxpbmc6ImF1dG8iLHdpZHRoOjU2MCxoZWlnaHQ6MzQwLGF1dG9TY2FsZTp0cnVlLGF1dG9EaW1lbnNpb25zOnRydWUsY2VudGVyT25TY3JvbGw6ZmFsc2UsYWpheDp7fSxzd2Y6e3dtb2RlOiJ0cmFuc3BhcmVudCJ9LGhpZGVPbk92ZXJsYXlDbGljazp0cnVlLGhpZGVPbkNvbnRlbnRDbGljazpmYWxzZSxvdmVybGF5U2hvdzp0cnVlLG92ZXJsYXlPcGFjaXR5OjAuMyxvdmVybGF5Q29sb3I6IiM2NjYiLHRpdGxlU2hvdzp0cnVlLHRpdGxlUG9zaXRpb246Im91dHNpZGUiLHRpdGxlRm9ybWF0Om51bGwsdHJhbnNpdGlvbkluOiJmYWRlIix0cmFuc2l0aW9uT3V0OiJmYWRlIixzcGVlZEluOjMwMCxzcGVlZE91dDozMDAsY2hhbmdlU3BlZWQ6MzAwLGNoYW5nZUZhZGU6ImZhc3QiLAplYXNpbmdJbjoic3dpbmciLGVhc2luZ091dDoic3dpbmciLHNob3dDbG9zZUJ1dHRvbjp0cnVlLHNob3dOYXZBcnJvd3M6dHJ1ZSxlbmFibGVFc2NhcGVCdXR0b246dHJ1ZSxvblN0YXJ0Om51bGwsb25DYW5jZWw6bnVsbCxvbkNvbXBsZXRlOm51bGwsb25DbGVhbnVwOm51bGwsb25DbG9zZWQ6bnVsbH07Yihkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXthYSgpfSl9KShqUXVlcnkpOw==]]></data>
	</file>
	<file>
	  <filename>/templates/fancybox/jquery.mousewheel-3.0.2.pack.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohIENvcHlyaWdodCAoYykgMjAwOSBCcmFuZG9uIEFhcm9uIChodHRwOi8vYnJhbmRvbmFhcm9uLm5ldCkKICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIChodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocCkKICogYW5kIEdQTCAoaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ncGwtbGljZW5zZS5waHApIGxpY2Vuc2VzLgogKiBUaGFua3MgdG86IGh0dHA6Ly9hZG9tYXMub3JnL2phdmFzY3JpcHQtbW91c2Utd2hlZWwvIGZvciBzb21lIHBvaW50ZXJzLgogKiBUaGFua3MgdG86IE1hdGhpYXMgQmFuayhodHRwOi8vd3d3Lm1hdGhpYXMtYmFuay5kZSkgZm9yIGEgc2NvcGUgYnVnIGZpeC4KICoKICogVmVyc2lvbjogMy4wLjIKICogCiAqIFJlcXVpcmVzOiAxLjIuMisKICovCgooZnVuY3Rpb24oYil7ZnVuY3Rpb24gZChhKXt2YXIgZj1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSxlPTA7YT1iLmV2ZW50LmZpeChhfHx3aW5kb3cuZXZlbnQpO2EudHlwZT0ibW91c2V3aGVlbCI7aWYoYS53aGVlbERlbHRhKWU9YS53aGVlbERlbHRhLzEyMDtpZihhLmRldGFpbCllPS1hLmRldGFpbC8zO2YudW5zaGlmdChhLGUpO3JldHVybiBiLmV2ZW50LmhhbmRsZS5hcHBseSh0aGlzLGYpfXZhciBjPVsiRE9NTW91c2VTY3JvbGwiLCJtb3VzZXdoZWVsIl07Yi5ldmVudC5zcGVjaWFsLm1vdXNld2hlZWw9e3NldHVwOmZ1bmN0aW9uKCl7aWYodGhpcy5hZGRFdmVudExpc3RlbmVyKWZvcih2YXIgYT1jLmxlbmd0aDthOyl0aGlzLmFkZEV2ZW50TGlzdGVuZXIoY1stLWFdLGQsZmFsc2UpO2Vsc2UgdGhpcy5vbm1vdXNld2hlZWw9ZH0sdGVhcmRvd246ZnVuY3Rpb24oKXtpZih0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIpZm9yKHZhciBhPWMubGVuZ3RoO2E7KXRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihjWy0tYV0sCmQsZmFsc2UpO2Vsc2UgdGhpcy5vbm1vdXNld2hlZWw9bnVsbH19O2IuZm4uZXh0ZW5kKHttb3VzZXdoZWVsOmZ1bmN0aW9uKGEpe3JldHVybiBhP3RoaXMuYmluZCgibW91c2V3aGVlbCIsYSk6dGhpcy50cmlnZ2VyKCJtb3VzZXdoZWVsIil9LHVubW91c2V3aGVlbDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy51bmJpbmQoIm1vdXNld2hlZWwiLGEpfX0pfSkoalF1ZXJ5KTs=]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/lightbox/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/lightbox/css/lightbox.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[I2xpZ2h0Ym94ewoJcG9zaXRpb246IGFic29sdXRlOwoJbGVmdDogMDsKCXdpZHRoOiAxMDAlOwoJei1pbmRleDogMTAwOwoJdGV4dC1hbGlnbjogY2VudGVyOwoJbGluZS1oZWlnaHQ6IDA7Cgl9CgojbGlnaHRib3ggYSBpbWd7IGJvcmRlcjogbm9uZTsgfQoKI291dGVySW1hZ2VDb250YWluZXJ7Cglwb3NpdGlvbjogcmVsYXRpdmU7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwoJd2lkdGg6IDI1MHB4OwoJaGVpZ2h0OiAyNTBweDsKCW1hcmdpbjogMCBhdXRvOwoJfQoKI2ltYWdlQ29udGFpbmVyewoJcGFkZGluZzogMTBweDsKCX0KCiNsb2FkaW5newoJcG9zaXRpb246IGFic29sdXRlOwoJdG9wOiA0MCU7CglsZWZ0OiAwJTsKCWhlaWdodDogMjUlOwoJd2lkdGg6IDEwMCU7Cgl0ZXh0LWFsaWduOiBjZW50ZXI7CglsaW5lLWhlaWdodDogMDsKCX0KI2hvdmVyTmF2ewoJcG9zaXRpb246IGFic29sdXRlOwoJdG9wOiAwOwoJbGVmdDogMDsKCWhlaWdodDogMTAwJTsKCXdpZHRoOiAxMDAlOwoJei1pbmRleDogMTA7Cgl9CiNpbWFnZUNvbnRhaW5lcj4jaG92ZXJOYXZ7IGxlZnQ6IDA7fQojaG92ZXJOYXYgYXsgb3V0bGluZTogbm9uZTt9CgojcHJldkxpbmssICNuZXh0TGlua3sKCXdpZHRoOiA0OSU7CgloZWlnaHQ6IDEwMCU7CgliYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoLi4vaW1hZ2VzL2JsYW5rLmdpZikgbm8tcmVwZWF0OyAvKiBUcmljayBJRSBpbnRvIHNob3dpbmcgaG92ZXIgKi8KCWRpc3BsYXk6IGJsb2NrOwoJfQojcHJldkxpbmsgeyBsZWZ0OiAwOyBmbG9hdDogbGVmdDt9CiNuZXh0TGluayB7IHJpZ2h0OiAwOyBmbG9hdDogcmlnaHQ7fQojcHJldkxpbms6aG92ZXIsICNwcmV2TGluazp2aXNpdGVkOmhvdmVyIHsgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9wcmV2bGFiZWwuZ2lmKSBsZWZ0IDE1JSBuby1yZXBlYXQ7IH0KI25leHRMaW5rOmhvdmVyLCAjbmV4dExpbms6dmlzaXRlZDpob3ZlciB7IGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbmV4dGxhYmVsLmdpZikgcmlnaHQgMTUlIG5vLXJlcGVhdDsgfQoKCiNpbWFnZURhdGFDb250YWluZXJ7Cglmb250OiAxMHB4IFZlcmRhbmEsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKCWJhY2tncm91bmQtY29sb3I6ICNmZmY7CgltYXJnaW46IDAgYXV0bzsKCWxpbmUtaGVpZ2h0OiAxLjRlbTsKCW92ZXJmbG93OiBhdXRvOwoJd2lkdGg6IDEwMCUJCgl9CgojaW1hZ2VEYXRhewlwYWRkaW5nOjAgMTBweDsgY29sb3I6ICM2NjY7IH0KI2ltYWdlRGF0YSAjaW1hZ2VEZXRhaWxzeyB3aWR0aDogNzAlOyBmbG9hdDogbGVmdDsgdGV4dC1hbGlnbjogbGVmdDsgfQkKI2ltYWdlRGF0YSAjY2FwdGlvbnsgZm9udC13ZWlnaHQ6IGJvbGQ7CX0KI2ltYWdlRGF0YSAjbnVtYmVyRGlzcGxheXsgZGlzcGxheTogYmxvY2s7IGNsZWFyOiBsZWZ0OyBwYWRkaW5nLWJvdHRvbTogMS4wZW07CX0JCQkKI2ltYWdlRGF0YSAjYm90dG9tTmF2Q2xvc2V7IHdpZHRoOiA2NnB4OyBmbG9hdDogcmlnaHQ7ICBwYWRkaW5nLWJvdHRvbTogMC43ZW07CX0JCgkJCiNvdmVybGF5ewoJcG9zaXRpb246IGFic29sdXRlOwoJdG9wOiAwOwoJbGVmdDogMDsKCXotaW5kZXg6IDkwOwoJd2lkdGg6IDEwMCU7CgloZWlnaHQ6IDUwMHB4OwoJYmFja2dyb3VuZC1jb2xvcjogIzAwMDsKCX0=]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/lightbox/images/blank.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/images/close.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhGgAaALMJAHt7e8jIyJycnPT09JiYmL29vWVlZd7e3lpaWv///wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAAaABoAAASLMEl5pr0YH1PzDZxmIEjnJQUZThtJmljqrsnovpl8r8HtwigfbqKbmYq/mDCEHCp9AIKwdApOd8DcVZX1NEmA7kmwHFQxA5tPcLYcANtCO9HaIuTV+k6IzxymAgNwPn1uU3h6LoV0h25qiiyNF39CAXSPJIuRPgYUj5qGRiw2oJNckwaWcxticywWEQA7]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/images/closelabel.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhQgAWAOYAAMDAwMHBwZ2dnVlZWdLS0oODg6+vr/X19eTk5FBQULi4uIyMjJSUlFRUVFZWVtzc3FJSUsnJyVFRUVhYWFVVVezs7FNTU/b29v39/erq6vr6+qampldXV6KiokxMTE9PT2ZmZvf3993d3czMzGBgYHt7e6Ghofz8/PDw8N7e3mxsbLW1tfv7+5WVlc3NzcrKynh4eOvr60tLS+Dg4F9fX7m5ud/f37S0tIaGhnBwcGNjY+Xl5ZKSkoiIiKmpqW5ubpeXl29vb9XV1Y6Oju3t7WVlZXZ2dpiYmG1tbXx8fO/v7+fn57GxsbOzs/Hx8Xl5eVpaWmRkZE1NTXNzc2dnZ5aWloeHh+Pj405OTmlpadvb23p6ev////7+/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABCABYAAAf/gFyCg4SFhoeIiYqLjI2Oj4xdkpOUlZaXl5BcJ42Ynp+YkZJcLEdCXJZcIwIaqKCvoKJdIUAeUSKuXYIuNB5VF5QVWgiwXQjDlwdaWrqLo00yAxZFWq6qJA0DHj6SBAtb4AsEXQBbzJUABeBbBQCUCusFL1wB6+uDoxlbHwMJVDaCRtCwMAALDhRdImxZEEFLhAIGyJmrZGALAwJaCDDYElGigYwbLtDjGKBkAHz5SiQY0EDFDBfYBkixEgJVgQIHJuWUeE4Sgi0CKgmYOJSSoHoPDhmtUIIfBSTYJiToIbKLli3uLJXrybPSVQVdKirYeXRLUkOVuMRIAmGAAw4D/yAMqSlp6yW7k4paAtqlgrotGxCUbSGgsAKURlEYoTBgQoMOrSbhRTcx75ZLfLscAPDN7EjChhFP4qIkCGOWDHRNIoD1bmVJ8MZRYp1VMseRZwulnTElGwUHcU1gcHXg5k5jOSdbzWyZmOZJQHErHZ1ChQRpWUA4mAChw3BJChk6LLBgM0cA6JlVvJhxI9iw7DdsOVnPgMkARARRB3E9AYwrLziwnQTCueJNPOOUY09W6ayzQG0NgnPYSPZ4Zo0IIEAARQIlZCBIDQJOIEEHJ1ByjHOvnHjJMjlFwsUDOqzkXwyoCLKCBBxwIMMNxfSYijNcOMEABB9s4aFRK1iQQDAOIvjo5CjO6MICD09UkAuUTPyww5VPwiILFxpUdQkGS3DZ5SuyNOOJfmf6mGaPgQAAOw==]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/images/image-1.jpg</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[/9j/4AAQSkZJRgABAgAAZABkAAD/7ABXRHVja3kAAQAEAAAAQQACAEIAAAAfACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAAP/uACZBZG9iZQBkwAAAAAEDABUEAwYKDQAAIpgAADaOAABbKwAAktH/2wCEAAUEBAQEBAUEBAUHBQQFBwkGBQUGCQoICAkICAoNCgsLCwsKDQwMDA0MDAwPDxERDw8XFhYWFxkZGRkZGRkZGRkBBgYGCgkKEw0NExYRDhEWGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGf/CABEIAVIBwgMBEQACEQEDEQH/xAD2AAABBQEBAQAAAAAAAAAAAAAAAQIDBAUHBggBAQEBAQEBAQAAAAAAAAAAAAABAgMEBQYQAAEDAgUDAwQCAQQCAwAAAAEAAgMRBBAhMRIFIDATQCIyUEEUBiMzQmCANBWQNUMkJREAAQICBwUDCQYCCQQDAAAAAQACEQMQITFBURIEYXEiMhMggUKRobHBUmJyIzMwQNHhghRDU/CSorLCYyQ0BYBzRBXSg3QSAAEDAgcBAQAAAAAAAAAAABFQYCEgQAAQcIABMWGwcRMBAAICAQMDAwUBAQEBAQAAAQARITFBEFFhIHGBMJGhQPCxwdHh8VCAcP/aAAwDAQACEQMRAAAB4yKAAAgoCAAoAIKAAAAIACiCgAAAAIKACCgAAAgogogAACiCgAgogoCAAoCAAogCgAgAACgAgAKIAoAIKIACiAKIAAAAKIKACAAoCAAoAIAAKAAIAAAAACiCiAKIKIACiAAAAAAAAogoAIACgIACgAgCgAAAgAAAAoCCiCgIKAgogogCgIKIAAACgAAAAAAIAoAIKAAAAAgogoAAAAAAAAAAAAgogAAAACgAogAAAAAAAAAAAKIAAAAAAAAAAAAAAAAAAAAIACgAogAAAAAAAAAAAKIAAAAAAAAAAAAAAAAAAAAIACgAogAACiAAAAAAAACiAAAAAAAAAAAAAAAAAAAACAKeh888/wCigCAACkuYytblcbsAAAABQFPScp5nrQC7l1rzuM+mJaAAAAAAAAAAAAAAAAAd2/K5xfqTwn0tef6UAdJ0/lyj+fnb8s9F6euN21w36OgAABQAvSdh881fmTj/ANa+c632fB1vx3D9OOGerSWgAAAAAAAAAAAAAAAAHdfyfNuKvrnjPp65/wDQ1q88++8HLT8s9B23YzuDlrnX0Zzz3UFEAU9h4XpsS3meyzYbD5uPM9Manu3u8uq6c/8AVOTe2oAAAAAAAAAAAAAAAAAHdfzPF3Kx5M9CD2XZi/dWak2p8FXGuYfWnhvTVAALEdi8GPS/NRYk31NYvC0vPy1fO8/9Camuvpc3yXovFfoEAAAAAAAAAAAAAAAAADuf5vhZ5Wvo7JN3Y10t+kupGhNUM3kv1p5TtQBTTxO1fNze8uZdyTvvF73kLHpfNOk+Bm/QUtb9Vz1i9rwP6MS0AAAAAAAAAAAUAAIKALmXafzfBtNJuWoZJpqf1a3vWhyjzc+uLfWY3SkT10PzZ998/Nvz5SJPXuTrrlHozmebPYPk6pXnH9HeL0vr+WqPS8W92czpauqAXcxlVbUAAAAABQAIVNLmu82tiekwn8W73oSfN8yyolbVt4r+d8T9e9Mxqcq8Fb1Xgn0zrfdebPQvnY0vObDCX1ad30lcF9OOg/Iey8ync53umX6OnrvPqDo8L1x7iXx/Vzn02hvXefFyz8a5J79UdVAAAAUAAkzPW+fOx5cbnji87D5tXO1j3ri/6N3b85wfi0+0bxW7a29eU+lerebbcotTD7vO9J7/AMkl88j5ALF9e7XTTNvO9pxzfPuHwd2Ga2s5nTEH0uu559R2803y9/d6awHN/S9N5HoeNq988q+hfOddoACiCmnmbvnz6Lyzc8ua+MxWuxHtQ8rPnWZ7Lyv72u+/muFLWTVfzsOJV+j08/0nUOGos2GZb5M2bZt12kPDLMLnu3N00dEG3L++cvz5698ncOsUNc67Nf26i8/TVs811ejrRtZmxc86/S+d8lv+jdH055f775TtoAI2uOfYeeey8UbyjUr4lZGK+GkWa+V/q3xj72u7fm/PBqTZRapi5/0Omfmez42wjvJJaWm4P0j5y79Dc90m0WlLbi3ox7X5T3Pj1VuG25u+Of6T+m9rw6VDR9JLHcxcpQL/AG9FD186/Zxz6O47bHPPuvFPbeCGJFIkJJEkQynqkoVbXeu8h+107t+Z4Q9M2udod5oXt5H1vS+GbfmSdYsLDYdVbLS9+7Nq1EVdsbtOK9Ofcvh70MKdxU3iLGc311PTq383Wrmxolj7XaX/ACawfbxq+nvcsrW8s+ldnOfdfNzN5bHI1GQ+VJIqjpan1XW58U+0i9m+YfR33n8zwr7zbzq/26rpFzzd89j1G5jtGYkmrFiSfT3r623kTpGFOznHqmJ5s9j+Z0SZoOb9KGMZ3pWvVvzPO+68YljzAfs3Uod8ZvXrt5U9axZi748TTToW0kcTa1N0s26/Vt9KEGFNfBe2eE9qLV7z+Z4LtudO0MjmWeaNhIfo1CDBnRrfS6zSvKuZF1Vzjvsx6r5Gff8ADq25zeXOvvDYzO8te3p4leofP1Y9BksGcmUn0d4Hj44Hp16/z2rrWPM2vHhmVm6s7tzrrU9GpdoMEyk2hiphnnOvffH+uJaHf/zHCbv10Kg54bxjclzX7LUeYsR4lj6XTV7bfhHokUtSn2cI78u2fn7sXcGsRSU7hMs73p9aXi9R13Tzmp86+o/QdPOfP5s9V89zztcOtO8mtY/Safzs2+29HvZ9WTZ1Q4hS1TyrZR9HivVed+ylqAd+/M8Lnp6y4xF55FzkoudS7MEzG5i9bofU628WXSrzHQmXP/Zz8h58dk+Z1dENxDjOfvGj7Onn5k5TRxIfJLvo3pezplzld318h2mLyx6jydNTqpaQbbvOzbFIBBDki3YYTSM8/wB7yr32G0EA+gfzHCx01B58STSMyyqrqTB+q6xn0NbPXpLlDoclbtLJw31Y9L8zPvvP0WStcLWL3xNwseialnKPzSf0WTdh6Sn6evJe/PT43rfzdyJF67YhdK2K1F6VuUhFuT206XMx+uuU/QuduggAfQP5/ludNYfz+aZlnekykpMJLU1He3V/0dLPRGjfPbW5nQzrPnr147l+ft9ZNK0wzbB9GLPnSU+HUuU+7HtDp5X29PCdMdB+dr3Xm1TzhPXYGpNyRUqwNtgZfbTWSShu8x99853oIAAd7/KeeTCxrTSfVixkyeq7H0dXem9CXK5zzni4b3p3e7afdeK9WfD8sdc+Tp8J0mfx5pu0vVLPE4n52HrJpWbKO9F5R79ZLPXfj73+anjM3uuPbtWrSWMzpiP2oSzxQ6PDet4T16AEAAO9/juFzrUh2i5JCaVPVdnvqXerUryHjPMcvPbwSpvVvwX0ty/Ox0Lx6y2M+Zu8jeyKppZuR20dO2WmbZXr6cs9WbPOdn+T0s5lPGavaUvdd7l0dYowFoas0U9PL+mcy91RSkAAA79+P4WemmMzda3nTMsem3vXsVC3auYbeW8vCfzxhQ6yv9bs/wCNz9Dd4bmuD4klZZJ1ulnTe1fTdk0o9byr0sy59P4XU/H0g5YguanVne22ZvewfqurIWXKtph95yf6NjtBAAAFO+fkPPP33a+r008nRHmOiPNXSyoTakPSZ/nzQ+dzh1MX1Z5R9jt6LxY6v4d4HHlNbqXU/e63bdzrSVBBmrl7eD3nn95JXUvjX1OOlPlzr7lbrIvXrL669f5tUyHdmqrVXbkP1FLVBAABRYWvoL81xy/Xv0Xo3fwlhMnWRkGFu1uVrrM9JMMXjjJ8/LyfvuL6OnU/i883c2O29b070OujFSEgqNYzN6Klcm6cqExu+W9M+Xu51ufw51+qt3J3vjvT09vwtuKdFPt5L9OYPWggAAosORV+g/nyhq72VvB2SSSSpDKdI/NfuZ7L8JMshjnfpzveS+k5XX9utHrqPmFbkDbY8mbU9IjxXWeBcNPhOo/L6X5ppS5YqdswdVT178f6enS/GqdE2SW8++hPD+mlACAKOhUdAd88epczQwuUuSZOpmLGlWsuz0fJWskzFwjkjqj1ei7WW0GYsWDqiUiDohGmXtyjXGmx0r5evSeXcurXZp4zU7RN6xfoa83130jyoaceZ9rl3spSAACjociwDpfobx2aJMSTKXUXNrwmmZm4Fx5bXP3nj3u7s9jeJhX6tXqltUbmx5P0izSqvQ8rxW08L0nj55/Q+N0bx9JuWpNKOcVbIdoelyPdrC67995z1y/S439GMtQAAUdDkWAWHH0N4dSFlG8yxJtWyZblyef58+g523kZ1joZwlTq0dpdaUl0iwNK2QR7WVoUwx+rlPXjoeTn7/5F3enU5WXdzOfKv0RdEdYnv6Y3XXQ/PXdLw76uaOqgAAo6HIsKA7JT6J8VTKxDqjwkItWtJTqn58en5abS9omJUhetvykku7Dg6q9SxHtLlV3Xxj2+G9WPOcuPQflNHzTc7dmcS9VDhjP7wI93zX091Lvp/DXHfq48t0pSAAosOR0KLKCoH0Z4LES4WbYsR8Q7R5VKr8s7HCN3Zekj5mdbKrUsLCTRX0lh2iYMtrVVrE6zk3rnRvn8/QfNi85udOrMKrNFliwbHfXMPt79F49a/onJvWSgAFHQ+QFlKIVFhK+ivnadY2LeSQvJW6jDD1m5zmvzq7VNkzJ1ZVq2uTwzVTEsbtXMnrE0fu1Y5b7cYer2r55/g5t4Z3enaLnM3GK3QwS3x/2t+L9Wuh+a829+YLUABR0PkBR0oAgoh9D/AD06wJf5lrOwXoz8qrO9wWMotxtpCaTi2plLu18Sem0mGf1PjN6MPs5b6M2JrtvzY/ircOeznpSxnP5Zba3cz/fvlH2Na3HVjvPKdSAAo6JMxQUFh4glIKv0D4VrCOyzyibtCBKYvObHM7Mj0S1lML+rBlPUdGE21XEfq5yZumrq8474ucGhyejzqfmXKWTL8mIcWPpH7vOvv9PPdXRuG+W+7LaAFHQ+STJYVUp0rxtR0sOO++FPCpY5odq2FWjMv85ayhkVaO0tssWtG5SaQZLEna0ZMrWc3nzq2x8sxmy3D5Js8tano1XqOTL82Hc6m1T6G+RfavrfLqb1TwHYgAOibJZFV0OEtcqSA2nq5O7+BchupNxVOh2FHSfmsYljMrU2ItH2zklsOZLux4S0zbxk5YjGv58x6svIlsvK6vn1pTV/06rWPKVmT58zR4373TxXqvZ/Lriv0MVrUAdEsS4ADrXSuhNGw5WWKqx3n5+bQ3Us5ZmkmUUXuZ+JBVGRq2akpCzbFk/STJulKzw3Lhf5HwxHYsdWeN1uGreLa6ad6q/UbXjs408a5N+j1e8+vcdXHvVEAUfFjmklbSq9pw1GotpIykHL3f5s0Uh3L+GJT4mll5yXnnzm5HLbLVs2qmTNI5Zts0nGs1/ByxN4t4sNS81fU0eOtHhXYaPbq/0puqHOfKMzXfGP0Gvf+HUfuzz3oKQdEuU2D2nQ219qIIyRLVVrJZJN/wD/2gAIAQEAAQUC/wB5F9xVxZdkRyOW1wQ424/C7dzwl9a2eNvaz3b4f1ONtl6yGRsbbriuPuxyPE3nGyYgFxj/AFqztlZWMED2VCY5sdneW0NzxPZtrS5vJOO/XYOOXJRmeCThb5qoa8f+v3N0ba3gs4uZ5q842H1haMN7lyHDNeFa2E90bW1gtQ21mmMdi2Nwa1qlOX7Ef4+rg4YZXy/rlo4xfrfHNbbvZCPyYhNdbdrJHRPhMBlWg/ZW7rT1jTkRm8VcKgyWFjcvbZsAjt4Wrcnp2soX7G7+bphhluJOM4WO0g3DaJXUjZ+PD47yO7bd/wDbXlzbGEEOI4O5fc2ZXOM32PrDkTQtb85AmOLHNm8pZQpzQQTkna/sH/suiOwuZbmz4624+zDSqUDRsXLXn4NrNcz3LuCkuIp7uZ0whYQuK2xXblft3wer/FuUaUTxUMNR8XMNEboQYFtVIQAVyjnO5DCKJ80nFfr8nlgs4IHaYNFUKL9huC+44q389yRRkvwt3ij2iHnHDaZ81BxtxeGaCaB2NrazXk9xby2k3fisLyZDh+QKZ+uXZhj/AFjjpZLXirSwl/7piOrggcg/xuk0OTOYmeVC2WKEOKcamSTwqV5kkhgmuH2n6zM5Wtla2TdUSsk1tUfjLQR3dx+TdcFb7Ynp59rKV5irWNdvbOuEc2J0sUM4vP16CRXNpPaOXCBnGWHLcWzk1c2lxaP7bWOeZ/168tpbayhsptxLqZAUQU8vhgqVJr9tFIPaPc170T5ud+7qVIbuvQ8s439ftYzYsZZh8nkdVVwaxFH+3mbjxW8TPI+1j8cMlU/a1hFW34E/GW0LoeNkd5FxziTZy+RiliinbyHAvjXCG4uLJrxvo27g5XjvwZeu0sLu+MP6/ePUHBWkKEcUIcn5iirQO0YuQ3Os1QbAVIFSrWHKAnycA3dd+PanBF6DaEBfNOIc0jBrck0KLOTn7neuHh8t0BRSuATvcPs1zVYgwtnn/JfY8ZNDFb2kUL/4y00CL1cSWn49ud0jlNsezleNbbdP/W3H4/G8I2JzC2EVTinORwCPuJC+z7wzWCDqlmsgqxhQyfeyeG1/XmHwvll8W0uAaAgEVqtFqo46LVPUh2seD4uSnFxfcDBtiThV8rgIwKr7S0ZLRox3v2DNUVxXZH7XOfQwj+OWMPY9hjeooZZjY8K6KZtGouoq1W7DRarUko5J4zkNVH7MI2L/ADGYj18e1cm2a5dY2EllBTE4aISMe6NiK+IpVSmr+Sufx2xsL3WkXigGsjw0vDtrUVL7rSxl/Jt8K0VUE2LdEyB8ks38TAKRv05WPbe2H6/NdWzIbWIJz6KhRKphqXKhCZbyr8eUKQ+JBzd99yD7bjkNxUmT4WFybEyNsW+sEEcBkkMhw0wCecoWUXxACkOe7Yxg3P52ettw0HluqUCjGdyRRqplbis/67IfHRaKlVSi0afJ4myvYrj/AJH3+wjZ+XuKaUXoBOKAXjeULZ5QtmoRRhBtFmnJzwuR5SNie98jk00HjMkjGNY1xzqCj0hE1WqjbQar4gKTOS7PjtObmEvI8DAYo0fjvCkrX/FxUL9jv15xE6ghM7yyjqBFjibn8gW0ML/G+5bLyzjmM3yHbLTBoovC+RMtGtTI2hEAKuQbg5zQi5xUjqLk+TdJ0AhqtmkGqJw1JQR6IxmgFIU3JR1c6+lEcjd0r7KHxxKX+uEUE+cujR4q7Intt7Szsla3DIzI8yzyQOMTn2n4zQ+d1z/ILmKR8fG8Pb2drFMy4ifkbzJUNY7dxTIw1Vw3URdVareGJ0riq5Hc9cvfMij6GMFIj7SdjQUXIZAHEI1QKgbkM0TsaFLlHC2q564pa8TB5bpmEwyaaKT+yxmYx5BLGZJziGNMiilLXz3YfE6gVifHCOagkLOTqyD8+piAUmSfZOuCGtamnLDdQVVV5iqkouW0BX162KGSR8r+hpQeYzUvc4pgzKGOi1QbudoGqU1cApDvkbkOZuhNc8BAGxNwmObAGCUlRnaGZrZtQzW1yDQ0D3M1dfy+HjvtZ2z7iaFj2My3yMayRpBTgFuVStxKoVWi2ly2xsaXukXtY24na2O8u5L2bphJELJbJtuwbWIZDoaar7xMovNBChcxC4GaGQjV5P8AjwhjpHWsYjhGupk+T3/x6oZn4kjPTBvuTfazc9jOYmDLRcLHSN2j8jMLmSBjt7akoMVC5NYnFbUSIxm8ktja7NcrfG6m6q1LRUuTcSUE/wCO1yawLQOFL5znSTCZ7GfkB8LBn+xXO2x4mLy3QDmIZufKGLdUyOO1vxibl8sPuosiTuIyXIzfkXup46PbE85vFHTXTpII/bcNATjXBz0Ai8Rj3PcS1jTuXL8gR2AE0ZFBFDWRzI2W0k8q20VNojbRDMysjems8bwtEbuVp/Y4rpzv1+KidrcAbGe1V2oglDU5NATkAq+93tQXI3QtoG62rPJPas2xyGjpEdb+ttaVBajkAFXaNxe4kMC5Xkjbdlug0AJOwoghfZse8UawAJvuJ0Ck+M3tu07MPd7eQ5mG642xiMEL2lTSb3M+DQSnOomNzYx0hEL0LaZfiyL8N6fbuKmLYhfXX5EpyHEQ1kjGTz/LLrXOdofbcRN5rMZnbVHYFI/yv9rG/JcjfC0je9z3djRH2iAZKgK8LFSiHuL00I5uapjnPEZU01FaKZ4YnuM0nHy39vPczeKJwpETVmx7mxWLgmQMaqALJVWaNFLO1cxOIoAFm53GW/jjav8AOXN5+QzX65JutnPbGjc7k4lMbRbvM64uIoobm5ku5uzJHUTSEmIUQwJ2oGooGplVoGhBONU1XcdwxSStkHMSUg4aDz3ssm4ueZZBYPkTLSCJBvtxyC3JxIUj94d7WXs/5Ny1cdZukdFHtjFE35ONXoHauBlMZbQrc2NkbXEykyOIYByfIOvpu1sDBFt3sxrUqq0TnAoJ+TCtHaK5tBK3kLG/fPbWLbC48LpFb2kcOBzVaCuBdg54YjoAHLl752x2Qs4DO+GERRp5oxmSC/wuXBlvw4/mAzefJI92xjGFg5rkWu7kjSVGwNQQwqqrRbgnvLU/koqklzXI6VyqnlMi8xYwNFcCcNEXVQTpEQ2MNY6R11O16nlNxcUL5OKtRGDmfvOfacoz8D8uQ/8AXcUP5/hHAKBvvdzHJG1Z3CUAgtVXB0iLspHq8uHxwWXHXPJvs+O/BeM2jSqdkmB73NACJQROGiJrg55kVGwtALnXMxryd01kDdONtKi3aBENQpvnIcv8qrksuM4jaJZM05ppyl8zjonOc93cogtRhqMJMnXLDNNDHHb24avs3CO4iuEBgEcsCQ1F5QJR/kWTG/N1xMYGSsihZPO+7mtYDcSNYI2x5RfYL5Od/YdFyppxnD/8hnvllnjs4bu6lvJ+64YAp2S1QUmSCuclA2t212Rla1fYK9jM1vbwx28O6mFaDcVVE1IFUfcWNUj/ACOG1gEhC5m6LFHEdnHQCEELRqkO2Maah+q5uT+Dh/7oYw2LmeSN/cd4GqOSZ7kaUVFLo0ZXIqbajlRCNoTTkXUWZPxQVaDMkFElya1PdRBSuLG7mtUx3q9vW28Zc4m6gBnh/s/ycvvOc5T7Bqm0a6+uze3fBsL3/sfJeKPvhPFWs0aEdSnUKJCnl3GBmy3GlQE11AsgBmdEauLQnlAL4gKrWCss7pXC0jMUjVyd024nPxDaKFpEgzkOoXzMlCj8H0C5e72NVg9vG8fNNJcS98IBMyITlJNmGlsdTMj/ACTEUaNH5oCiGaeauaE6hQCcaNoUE/M5K6c4mNjWthfvPM3L7O1TI/JK8bn/ACFD5Hqd21r8gRuc2m+6um2luXOe6xtTdT81ciSb0H+QKd8wpj7IwAbt1IC8shhhdDAR7a0anqtAxaCqaiXk+5A5bKr2RhsSf/8AoSl7d9zZXF5NacdDJK+0tGXDHD8gt8bnCqbJuQd5HhyNWotXMXHnuWipiYOL4wkk+gkyc2pUvyCuDRjMhP7ppv5HFtZn6EoFbt7nJqKyWiMrUCnDym9pbyyXT4o4r2SZ0942tFszs7qa0TGncxtSQXNai0OUlat901fJJPM2KIvdI7hrP8ib9lud03fGEqaMpdaq4+cbamL/AOxPb1mlj975Nap7trI1q4I7lV6r7dzQhQrN0t5O+5v/AMMOlcStoLqLVBRABRkbjUtOrhncNd46hsRblztxkxtTx0TLGynmdcTdACpjRUwKp0ypql/tY0p38k8rzFbhpgtQBb28LNrZn0PlCLqli0QqvGxy2AL7VjCDmJm9W7XMZ7WNzp8Uc03N1M2Dam6NNU8ZlBWw2LMNv5vPd8XB5rn9iuPx+P6AgjiOivTIo0//AJDFH8bpTfKX4MVx/bHr92L7p+B+Kj1/+Xkfk5M+L0dI/wC621+6j0f8PsolcfBq4D5/tP8AyugId3//2gAIAQIAAQUC/wB5DXg9muG8V7e4dFVUn1rX0TZlu6S8J0pOGQDB23OW6jmvBwc9FyZ60hA0QKjlwLqJz1mVtpgSoeuZ1EJU64VXI5B6jK3Yx+tKKGWDZMq4uRRCj63yNpUuTMiBROkBBYUwlNRyKZ68oJpovJmOgas6aqU7hkgKoNVKoNAUpotS3R2DfWVxajgVHhROTAm6YueEX4gYBSmgKCGn2TVuVegn0JeF5WryinkqXylUKKGBzQwiFMKo6hDB0oCdISq4tGAwlOeEZyGATzgHoOrg6SiZKq9yqdLRGSqJRVUEwVdiUzBrUcmquFaL8hqEhRKriMsQicQgc2p4omlSIYh6mTKKtE017FUZQjKUXYDE4Q/LFq0R1UpW1URdRE4apxqDg0U6ApTkjgE1SjOPJPdUhy3BblvUrm7Y9AUCmur07wnSov7UQocCmooBNU2rXhSP3dWqDaYhDCU5pyGDdXDKvU9MTdUDiXUT5FVVwr1DAJuXS7BponPqQ3q2kpraIoYtCJRQVMRqNXCh6Sc2NqqZ4NORenvr2QFtK2qiAUfU2qca9huQwKGDVMckEcRqFOM+kMQQ0wccuqhWxbemiZH1l1UeqqY2pRQxGErszhTAJoQU+DI9yMS8aITNCcwKNwdpjRbEAqYU6KJjOs9ZwYKDEIoIrU9DcK0TpCVE8BPkz3kmjaamuWQTn1J6A1Uxr0HFjekYONOywVPU1THIdLCGJ7kE7AZrJFRKiLEaKtegdprevfTAodbW0wCdgUE1TOzwKCjT80UEVtQGLMHupgAjge0AgKdVNqDW06wmMwaRUkVQRQVadBwqigq4nFuEhzOG7uMbTrcey1tMcqnXdk12DVKctMapqKK0xCOAxKKK31HaY3sjqMSAp0fcjPAPTVKcygMya4ApyGAw+wQTBg85J2AQb2WN7YbVbCqHBrOoBP1wCrk45ubi5AYEIMKLEI1sXjQYhhKUE7VBNRFCqdLG17bRVUpjtCp0FDB+YwatFKGkIagINqtiDe041IRwCapNVmgMWiqA7To1G3qOA6KotQCiGcpywaxUVO3K/AdDVL1NbTt07J6DhRNIAc+qDU1lO2EE91EcRjHrJ0sb6c4HCuFEFXuuNcSmoaqPV/Qxnp60R6Ch0HrqgEMJX9Dk3GLV+MbfTn0r3U6Aj0RavRTW1QHpzicPuT3QESnurgekYQhPVE1tPVlDt6Ysbg7JfZHApuLc8JFG30hwHSO+Ahg5OahgEcQom0wAqfRHAqnUO0eloxdhtRxCKibUpxTRT04wPcGAVUMNwAdIUJCq4lO1QTVG2gTcz9FotqojjVb6JxQPQRTAqFuaemj0Q6yj3XFbsK9Bw3ZYUrjA2gKbn6MejGBOB6TgOiTVmZGkhTB6MdB9CNQihh9jiE3GTWDB+rfR/wD/2gAIAQMAAQUC/wDARVVxPcKr0H6FXCi2984D6LRU71eg/WSh9YKHr696vcHqKqvWe3XuHrH0AeiOIwr1t+ljE6IdgoeqH0Svbp2APShHEekoqfQT6Oip3h2x2BiEeiqB66fRz0HEdNVXAKv0IdgYn/Qw+iVVfRHAfRq+iP0Q96ioqKip1H6OeinbGJ9KO+MCcKKnaP0mnfP1k4DE+vPpDiMT68/6MOA6D9UIQ6D9Vp9cP+qK9APZH0o/6HGJ+kHvDAek/9oACAECAgY/At6YWSozYjjtJFhHefqPNl62Ia5Sxa+38O4tcqk4igKE1fjTODzyxJ15GlI3HGkZjT7/2gAIAQMCBj8C+Mn/AP/aAAgBAQEGPwL/AKyM4+bp7prfXh9jwscdwVhT9c+EuS2AaHczo4D7RusnNAaeaX42xszdjp6eWZj9l29PLh19ZkJaY5WZsB+f32bFhe5zYS8Adqbkl/tZ8AC5lbS74fwRbObmYP4rK2/l2INETgh/7PWVuEWskDZjXfsWeUD1BWJjllZGOARkulx1LiSXH0rWajUzIdMfJug5tm/N9l0tNKdNfsu3m5M1OrPX1NssD6bT6ztUzT5sjZjazbfFEyWfuGCuMo5jD4ebzKF+CD9T8iRt5zuCEnTMyMvxO8qXL0+X5uYZnCJbu++xFDsxzZubNXm3xRn6BvEK36f/AOP4UcIyy73mxfKEXXzDaqm5WWV1LPMdGqGUIhoy0aYY5iR5O3ME+WHsIgCcV8uY5pwtUrOZ2on/AMZrameiPnXQ0ksSpXKyDT0438WNSl6QvAnObmy4wRc6yCMyQ4tNlWBXUdLZ1XD60Bm8tLHew70/fgmBqwcENSZY/dHnb4Tt3qD/AOqKguFiyoGzGiAUluDT6e02TJYXzHWNCbM1uoLzXHSyrA7femiEAwQbDBZZcc0aoWrpxzQrcQIRcV+61usljQSS58qQy0xszVBS9LpvoCuY/cst1ynMZEnouMBt4R50DMrczhPdRM2DN5D99jcaK+5ZgmzGczTFF7zW6iNGbyKOCey5jWgeSPZl6UMhOmWA+k7kxunc1090etM8bq/MF/SKqEVmh8xyzNrmRyt+N34BZpzy44LNLBAFYJFUUHEAQwUx4qJIHc2seda/TC6b1Gj3XVih7PaY4eb759CZy9TlPL7W5QKyrMPDQ4G5bFncYNEIneYL8FUtyyQJLrILUZzFweW+SqlsqWIvecoutTJ2uOSUDYwhzthFoT5jQXTn1Gc/mhhs7qY+RF55G+gKVI/lt6kz45lf92CB8LK+9ACjKb/TBMceTUy4fqaPwUE0YlTTIgchsWWcwsO3sM08gRmPMAn6ee3JNlmDm/cIskuhiavSvpgb3BGe+bKbKa7K6BJKbJla17n1lxhAQwG1CA6+oafqPsBGAX1pftd/s/koLMKPdUaJembY7jO02AKVXx5AHKLrSoIPvT5hte4uPehKkS3TZhsawRKjrX9IR5GcTvwCy6aWG4vtce+mtZjYEcXVJkv+Y4A/CKyp+oumPLm7rvMuo611aCgsntGIO1abVC2U9sd0YH1JrheEwrURt6hCyzWB42ou0x6b/ZuWWcyG26jp5Yz53zDM2kVDuX7iOTWQ5rnb109QwsN2B3H7SDASdiZLmuZBzc2dpipbmcU0ViYcdgRrjfRGibO8bWHKvOs1IOCMUQPAIwTGCtunOX+pb51mHIVXYuGxTMjcz3NLZbd4gi7/AJZ2fh4JUuMI7TUgNNKayVCwVd8byi/HsZjag3yqHsj0rUOH8OX0WfFNqPmimSxeYJrUAjijjaN6n4hpdD+1/hWnnveHZmtNW0JobtJitQcXxWQ2hQKLJzQ4bUZuk4m+xemdT+G7I0m8D8FMYDAMbERvPcizUywYEtew2RF7UDLi7Tv5Sbth+wLdJKM0t5oXKM0tlbDWVGcTOd5AoSZbWD3QolDFRUSg9DErUnIcmX5cy6q0UV2qCCIxoc8jLLDyHtvd0RHNswCnTplojHeSoxtVagziPmVdblXWoRA32JrBXl8SqorUVEpzjZaVKk+24z3f3W+tZrmU7KIPEZZBZMGLHVFTdEebTPgNrbWnvCzBnTcG5WwrrTmzi0FxjVWg573EX5VHMc+aEIVQ30VKEloDhdCCcNlqzeVWB7bHtNYKGo0/+2fd7J7LZ+Xndlay9Nn64CZD/wAe7vRbIaJLTcyqnaolRNOXwhb7EdIGBvyprS/ENY6EPXSVuro3LUTTzQDG73flFT37VMlyeHUwhKc8cMTf3IM6j5jRa58ImvYAoDy9qJoyqF7qllHNPcJTe+3zKdMb9MHpy/hZUF1D4q6CsoFOn1dgf/p5/pYfSOxkjwGuCrUUAL7UC3mRwWb+YS/yqZIf9OYIJzHWtMDRCW0lNmTy1wHh2qyyitQoiomjKO9bUGjvUBuCe2A4pT213cJrG2k0FdQitStDIbnmvfmyjGHqb6V+1m1lwzOe3lruQBMctnacwGL2cwwjRAKNEMKgpkwf+LIJB/zZ3C3yJssWuME1uyjaouqjZTqJf+U936pYzjzhMm3kV9nYs8IxjYoMEQ3idD2RbapzHRDmGIBtyzK2prfZACjgnQFbgCnauY7pslu45R5i28rp6SXkkjGsk4mnM7swC4REqORZi2tfM4XPqC3WBTNLwfPNXt7TuuoqW1bFwis33pxez5UKydqzsreSc0x1pjduWFO2iKJt2Iw5XHMQLM2K20ZcEXHuQjZepLfHq5jtS/HI3hljyLNcyiKzFNoLttSY08r4tcNhFamS7YGrs7U4xIlCt9cAnOlOhmGWIwK00uP125D/APU6PoKKIT5hALywZCboK3eq1BRKgtq5VXUuIrhZ5V6lUqyoW7F0dMM0xpjn8LTCFQxRfMcXONpNOy9BrRBoqAFBJ5vR9lFZvJQJdzRE7yppHO/5TN76lMY0/L0wGnZ+i3+1FdRw5q6CoC5AORhgg1NmGxjXvP6Wkp7biBRlBhCslObVmbVBWrhGYrNphK4HAvE3lN0IJ0A3g43BtTRmNjfUtHJZX0c2cj2nWjuoMbApT7s2Q99EFE2qqpRe6JVTe+iq1V0bV+CI5jfBHTyXcHjI9HZeS7MXOLonC4dy2fZw8tGXBRNgrReb0HOrl6KU7VvGL7JY9KrrfMNZ2lNBwo3qNBgInBNrMTenMJdB7HSzucIFf6eRlde9xLiU7qi2xwCjIBZmqGXhMO5NeW8RjEO3oRhkhBrb44LJLOWHiCMrLyOqmbhCxdOTNGna85HT3xJ3BZmcc94rnX7hgEJrBAG42xC3po/zGnz0RdVTHsVrAKsqAORl5v8AyX7bT1Zr9n59mJrTjCBwUDao/YRNgtWZ1proLvJRD2qqNQLHavUZB/2tOAP76GDKQFBEp3UHC5sBC3HzoxEHNcYtO9bLlVare5NmWwtCbLZLIAgC98I+ZF0OK5OmO70I1AxhmjljthEp8kShMdOjGNxNkCmGZYGAOAN6dMYIF5zTG+9j3oFHqHKyrfUqkaYUVrhsxogLUXvMALSV1XfSskyr5jsT7oTpkwxe4xJ7RxNuymPby+EVuQFAbhRlHKypbXcIWRvJJBH6nuL3emCMx3M6umAWc1nFQ9q0KKeDeVuogLMVuRUFNLTbGzbUguAwym1cbooAuytjW7YhARluj0nm+FERYqqOHy0bcFxeRZn2KDeCX5yszjBoR1Gp4dOzkl3uKM6ZuY0WNGHaZOLazEQdZmbUfOsz5gMzKfl+KJughHmv7UVWoeU0dXUODWWV4p8qxtrESb0XYKu0qbOu08pz/wBRsTRa559KYyF1JKIF6j30E4+nsEI4ouliL4VBSdJ/EdAu9fnoB70AoKXGMB9A1VEfjYhMFQK2KK2UQb5aInuCzP7gszrF1Z1g+nLH9LVlBjLZZCzu7cfsAE2HN6NyyiwW71C8oTZphJ6cAaqvLinAWxKMOJ1UCVDlcbRR079XMgB7kuv0wQ9ytQtFAA5rVXWaN9XdRspijQXdwUxw5W8De5BqbuQFDZOWGQjiF8E6X/DmxmM3+IeWuiF1GUeWiJtuCzPWZ3cF1Zoq8I9Q2o6dh+bZMI8A9kbcftnzH1NYMzjsCBm6V0hjxmlFzgYjdcq7bgveNlBKAmMDw2sZhGtTMc5FLnuOckepS9T0yNFKaJLXe+eIxFowXVPioLD4vDjsRbtJ8q2qtQWUeKiHloGCjioow5wIN+JyrTRtihSVpta11YfnhfAnK7usQy2GujaaMxsCiszvIjOnVAeZZGf7pw4W/wApp/xH7eDuUraolZvIt9LmHxcbVGiC1H/HPg3W8Dcvg5hZuClAiBgIhZhXir8rUHn9W5Zjeg0W3rMVmhuUYIk0WhcwgrbBbcqj8ttm3at66ncEKBRqW3ukuPeK/wDCmuddVTDNWoN+m3zrM7lC6s3hAsGAQmn6x/20o3e+5F7zme6sk/YhEqNMaIoMHfRuoaFLmDmlGvaCioYqLqmiJO4Jz/E90fKmSy1/Td4XBNeLXDgG38lG+xNli11u5DI2Ki81qzs1lHpiMLXu5QsrjGdP5Ge7ifUtqDQt1BWxFOGMt4/slPlQrBVZgoNB3rKOY+YLABR/ht5fxR1M36LPpN9t2KdPmmLnfZZ5ZztFThgfWNqbIZW4827tRWY2lRp76BN0wa4A/Nlm0jYhMlmLbllFrz5kyNjOJQG5NHsDIwJuY5WDyqpsTiVEditVKJKi7hlC1CbMbVGGn0/tOxcpk4nPCoOx/KjruFXhQFFaME4pxwY4/wBkqbXBsIlZiIk3lZz3BZnVucugzlH1D6kWk5ZMsZp7/UqqpDKpbfs4o5RE3nsQPYAFG9Cl3T4XlSj0SZTYAuFYT+n9InMzGBuWVlQvKiBxG11MKaqPewXUmmDV1p/BJl8QbgMTtUBVP1DYMZ/KkH/E9BoQZdegIIBFRRd3obVq3HwyXAb3DL61C6iHgZ6Vw87qmoMl/WfYfWv/AF+lPyGH5r/bd9pCmvtRC6Z1AlT48MeXvTcxBxy2UCnYo2NvKgPsMsu29yzurJsxKDplvhbcEYDNppLoQ/nTxY34W2lPnE5o+I3qHci43BCgBErfUmgXBao45PO+hzsLFXvJRnGyxgTtLJd/q5o+c8eBvsjb9zgFWrU4t5kS3hl+Oc6xOd13TLg0VN7Lw+plQYBacSoCymA7OVlTMVE9wWZ9bvQjpJL8joZtROulS/xNyZLlDJ1WZdOz2NPe4+9M9Cius++xbzTuTWoDCtPONQU//uSx6U4kprMeIpsocz+bchlrnkQlNw95F7zFzqyfumJW1SNOPEYuOxCVKGVjRCjvpPROcNMC4WR7FXZh4fSsxsCzuO4IZBHUTeGSz1nYE6ROd8iUP3P/ACMy95PKz9RU3UP5pjrMBcO4IM8KyhMCO2glbk5+NQTRhWUfenyx5nFFOdcKlM1s79IxwCdPmniddgMPuMextUcU9/sgMHpUCrV30TJLXZDMGXMmSJQgxggFto20RNMByKpQbytRfMMGNEXFTNfNbGYRCVLwb4W73FN/40OzPDutrpg8U5125qdMNjbN5qUTzQoG5AI4mpZrgo+0mM7yneRaaR7b3TSNjeEetTDgszqrysrP9tKqljHb9yhSCq1Kwrj3Jz/amO8y3qxO3raorbTFVrAUZB30CW3ndbsCDRWdiyu+kwxftdh3LrfyPpt9qe4cP9QcSMxxjMjmLjebVIbLYG6ae9swuFkYRh+CeNnYDcEBivdanzj+n1JsYAMHUeXWQFdafPsZZKbgy5O2lDQSTxuHzdjcO/7tlolsHjLv6rRFxUrG099dFd6dVa7hW29RUTao0wFlEaC91ja0XHhBTcg6mpnHJJl2RxO4JnVLZutm/Qkj6Mpote7GG1dOSY6aRFstxtcTzPO1xoYz3WjvaMpHmT/hQ30RO9RKztdFvhuQbe70INubxFfs2c7+PU7Ba1nrND9ZM5vA3Ep86aYzHmJP3GCIpyMrcnOca1GOWT53fktS9ohLkMbpJfxPPGgMKALwYqJoDRdbRCiq00wuFDZDPieUXzIBjRmc44BP/wCVntMHDpaORfku73p0uMdfrKp7h4Gew2iVKvmOAHeYKcPYfEd6j4ham71vQli11u5Bgtd6EGC63ei7wtq8ifqnfUcYSWG913cLSi95zPcYucbyU1nh8SGllfR09X6vue+gQvVVqgTzGCfqCISpTYtF7jd5SpEp/wBQvzzPitPnK76YKPZqsoJUXFF5sbWjNnnjdxO2IaRoc3RM+ZqZhqz4MHrTtS+BdLENNJj/AEtX7jVPEmTY0VPeTbYLztQk6WT1JhtmTuKAxhYmvErLM0syGZlUchwrQf4Zog7eot7xQM9WWsnFOmmz1IzTa7lC9516ZLF9u5BjfpyhBqgn6l31nCDd5UTafuIoZQ0Yrapcs8rBndvK0+nFhPXmfCzl8pTR7LfO5CnYg3swFAkB/Te7lIxTZbRMfMLY5WX/AIJ7tTCTLZM6b5XNMurwXU4jKDzCXM4YtGMExuZ3UmPIdJJi1tdWXuxo24qZ0MnHDMXiNll4XEcznEkk3k1k0Z4Qjei3yKCEkX27lkHKyrvvRcPpNsT58ywgmHuNu/VU3vTnvrc45nHaV1COFql6JnLKEX/EfuTKGChowCCmPHIXwG5tSmzgKnnIz4GVDy1lPfcT6Kk2jfVQaKjRWqhQABfapzpcwtlSvlANvAqd5SozpjppFcLAKIloz3G+nYFmNtArqbYEDQ58v6jQXNTBLP1BUdhvQlC+t25CS3x1fpZ+Lj5kAjOfUGNzOUyc/mmOLvuUtVoDYgnu8LagnOZ9R/y5e934I9PnMJMn4nVR9aIZ4W5Gb7EAjXsAVS3diJNatUFcqinTy4xaHFjBuWU1TPHHaoDvKBvXrVdmC32LKK3Ku1Rvo30BHNW2U6ZKG5jjBFx53RKe65vAO7803AVpmmbzTzX8I+5y6Duo71pPjO7lK0fxu3ch86b8fqQt7keexfij2fEvxXhoHPyu+HlTLOVnxWeJDsHd/SCdZb39jvbvtQonf/qnf3lMt+nd8QsodZ61It+n3W3fc//aAAgBAQMBPyH/APZF5uaBrwef0N4Nw+we6MdgvcmSYWEVVq15fp1dBldEXIxmw4IcX7459BXeiGwd1we8seCBhXFNXnn8IlNOz9Zy1HvIQ4SWJbimdvAgVzgz5c5ay8PoOMfQyy4sHaOHZZhkQEatyqGsGiyYVz4EM0GwQtx8DFRqegWml8kh8/SIKGw4tzoHlZmedG4GS8lwivHM5kUuOC/kldov84MOY4F4d1y2bf2n4Pdg5g32vfkYNNRbKHuDnkjlt2/rEGsZyDxzM4+LIfcuKqMDz8839iOMP2lyofHe3eVrh9l7doezOTs8+ZlTU0wqV5g2kVbzo9iYk1b4jL1kfNrzwY3uGjQmZy5Z3qKsrx9kFHAoJjAaNnZ7xRGwzUWsOxtzuK0VGtML6LsP7nKbmUrvs+8S/eJ7rD5MfsE/W6nbcK/Q3T5l8s0qxXh4TLiCpimvFNLnbP4zxKOg/fmNK2ziFtDShFdAq9SwN8s57q7XT+vUpJ6Lb/wOWPjykUrlteAXVHvNPYA0+7vMlDQVWeVKQLzTBOrL7Y0zVvnUKtYlWrk1Yzb2NyuSIrwILo94FYHZPtDwpriQ5PeVHht3O2HZKX2R8H67gZHGYqfcHwhK8W5paRvJZFBtzRi/6iWrxKCfaYPKOZjPwlthwx7x1ftWdtlP3X0VeDbonijAgVb2AZZQCE2nTGfZ/uGosrlr+XbxNheGD+e0EPYT9+InFezVV2+2/eMEr4fBE1QfECvZNzkN4tuCDBg3fMcW3HggpIU0v8wZpUrzP5n9Y/eT8X3RZnfMt/gzvBp7Qq3SZ+YCIxpGPlqUd42uKz/MarGeaja0XU8QwiUpq7ujPYAn7uOtX5xUFqsrgPLBFGm4KHAxXXxOTkirtcDxDWmJ5ZaEZXHt5jbpqj9x+Zc/NIfC+BF2F5Xu1DLBRWCWvRfiLOCxfcVq+MzDQC3hf4hUG4aF2IStmLaYqLez0bmtGjy9gj37Rfc9xMn1wVoLXQQS27Cn3pFMl7h/uGnRUNa0BTvvEerC0AbPLuyppfDbPDjjm59875jRXEeuYMwMPvEpeWJq7sSozMe2k3d8IzK0tQd5qXVKwQ8KziHQMMvfGbn5GYFc2MgT7RHcQo0YN2/Y37S2HSm+6efgon8JwS7UgXIc4mR7FGieNXBzBoQh7RG41R4vR+KRK7Lf+pr2VCVFCqHkErZyP3MnzA6QSTDxLUuPSQ8YZaTOy4ByVbLi13bzez0p4FA1+UJ/uYiaI11YAmuwzkRKch3DD9S6VcC5RD66APFIN/iWvaUtD4I3zN/KNqO5knD5nnl7QAsJ+FGPzPJz90OPduWW8kuyPEJ7kXK/aILdHlMq4MdrmC5Pi7t97yw39PjxELG1LZ+RjdUsd6C3g3Mp1ZRC7e3amvMwGNay3WWbg23EQxfXtj+uoH4iLyjWa+11OB7xnToT5yiPKQ4L1Htd8R9oKBIKolyOqzMBz5S1aGbsMkPQRitgJbHCiWw3jOizDzLhcUvCgnCFvylw/bhuD1XwLmQm1eh47wENWOgn8/CUIDuVsxXygJqDezbs07GXzyO4+W/j6AeZHAFtWtGagoN7v4SYAPh/jM/mXCLij8w0nJCOdWyFXyiG4syqJiai8IgrZRee1vRRHkIi0lC+HD8QHYUbGMyohFM1ixmi85lG7IL3TDELGkWzhAPwenzzG/ItE2uTlZVhYOHDD2l1ybnix4OaPMwcIZiFviSqFz+YYzy1eD/kan/F7YaxGD8sqB2jWWmJVp8o4XtCH2hCT7MJ3Ld+K9kGIjExsXyqqlT4i2BHeztdpS2OJ94dLgwMC65QIC10wX375ne5v/iV0nSsYcByIxm0pS8r8e3b0e25tpQCK75irDL4OfjtPAHL/jctuIhOxBjzwQXniD2NSmrcktLacPCKpLlSsPEvR7BMLO8uK3giuvaVq90thh4NdHtDFF4g/GYbUy34l6I1vZviORAYZ1NtSjRiYVwR28HM/CVGDXPeZVGZQ5eZUaA+ZTjbT2NwCx+2Wb+Czs+91Vce9XLE8v7OIZZeKvM1wd/PQuhzZmOwW/mBV+3UqYc9u/R7uoXBVreUEgX4y3llwr47iOvGfMsA0sygPkL/AG4h8Wj2Xp+GBFTi8nTaC1Zq3zBzldc5f5NQpwlTfsTkwmZbcLzmbWlK4I6jRMkmKjaWbSo7Tv8A7spTXIm0qK8UN9ORlfdgM3OIWoy20TE2lh8cS/0mleTK45sxjG8pa7GLag26+LHGPvDOCI0al3NfLAL0AuWQPmpr7zPwTb2695kOVmDaP+kR/SJcOfYZmd0H3QTzgfYiKRIXlwZZh6iwdwytMyrSWuLL9mDZ4Pymt/aUuX7RsFMdplqDJBZ6mm3ggGzqWCJleEscT8Gv7q+J39/GQX8B+YgrKQd6r81DyigELSF4MauYOYYdN+Rl3VYmgbgn4CWMw95ozK3fEV1qlfKuCic0Xi5StpyhK42Tej+yLpdvAeK51bZCIBvec0AK0Qy5upUxA/ML+ZPZ22IvIbKEXV4zHAwx1cpqp944UAHYghQBoJo89LpXKXBWUUAWMghW4p3d4dRbDmVp2/iZJYBrf3lOJY9zOEOTsbZw4NcPsC34lGjF+WYh2lhfIGedubmBbmGXQXF9ugHuwyI3BpQD7TDHcNFwyzllQqWijcVo5Sk5WyEPsf7csmJMq3oGfcI/ciecwFTOF5aag95U63h95k7JxZX3ZwpX5UNNTbzw2wRSvtiM0TXOUfJQvhHjCrjldtkU0wnmL0rBa9k0NMXNrBnb0YbjROxl4gUD6IliiHKT9h2+Ir9iHeXcDli9GkQteYAXomUxY64/KG8u3Mp+2UfYjaagG19fNXLTWDK1qTkM7/iPEPjxFGprCyLnFYPERuGbRU57uBgP7YDiCLYVK+YvIRYz41M82lWpx2heNacZ5lB/gIy1lz2/BDLuWOzbf0Qni8CMoPmhsB8AHzLG8XB+2rnmQ+L/AKStKe0t90wtjUFYe5xEPZBqGYjygCuYVoMpZnJlYoKm5b7CYUxcWgadOHu8Rjt/DHwdp6BuGIQ7UCcJoDjHvM1T2S65cHEa5mWPtBFGOCu8T7ywYzzHAHe4RQljTX8pS2pt7EWznMvqrgS7neyKEteplVyzsGGPYnnvElO6Dhbjs8BDPStofviBtYSmhdZMwARkAu0g1umPWClfdCwfATXjTIJXFEykKlKUtW3NXEp5nDMC75lndx7ANAzZLceR9RV5oG3WR2eYUzCJMXWDnN2vtO5vYpc0PY94oJCOAJSMsAdkVdFJhJBm4rXNm0XwsdIfK+ZutiuAwgtZ7QdrNqOygNsR/afT34S06tzhXz4OHffpbTt2m42LHss1CDQMwK/CcBBr3zMksizKZLgU6C14inlH/IHJ2zuJr3Q4zuZvJ/YblgPvGAv3O/1CBZLC33YAANBUZYL3mFCtWrikq6pYrl+ETl20NdyWXW6xeoWgN7Pt4i50fiEbz7qAkE3yiU/iWZLFYHAJ33ZUIYUuZYynfwLieFdtB4NKZ7ETucdXbWRD7wJBE0Bz1BsYE1bY/JiFz6JYxk2clc1rPd3LbfiXZXabiKGWKW2FC1QRXGiBrtZg3d3BKAGXpBK80sjAvlNnqmlIEKgkFga6fM2C1zOA1LLNH8zu4nf1dA+ZgVzK47Le6aPiJQ7cvtBcqXW/vM0ZfIvO2Gk5D5N/iWMvwG4Pv9qAnS0fHEpGOHYEWhhtXENg4q0Gh77nmBDbmF/M0Ztip/DGxQOPhPEMoa3LFq4BKyUrHwYfmXR/iHscGROTOzkxXXKbIIJRyVAg5NwmSHKoOWON8o5T5iRq+1LdrHbGyP8Acxn4D8kb3feWR53wi+6/iYaDwR0PUasUcyWmuQFQJXQlzJsbO6OIlrkQWtQYIuYTm4UHhEHlqdnFZLg7e7Kl1XNdiWRSaPNaA2wDYCx5ayf5LLaVyrGjcO3YV+ZoMAeSofepqad+8UElAx4JxwumEGfEBuF+yo356/lM+tcyqTRP6SoJDt2wG6hOzqoknkRyCe7+Zdm0pdjKfeF2vGpepl/lAnIZk8uZxPaxTSHnHlNS3aPDyRLRGC2AmgY/nKKlf55ua+Zyn4Ns1z+iNHoYA2vYiWbyu6dFcqUa4fd/yPPPrbC+3aVHbmb/AMwG5eJeZkmeOYkBleIPkCgOFwz20vMIncX3loD3H2lfFpKbjoPv1mPxazeLhhVsjqt0HeaZbzaqNUce8sw4PyMx1qwU93EpVgI9EJorPIB5inU3bZbFzZZn8CbrvazazRK+JXLxLu3eaO5wS1vvmXPbifAfcZeDL8G/5jhN6+8IgVh+IlDnmJXuzcWJtLvAYrH3l0HU+1q/cbmXfGRmi1gdtxn8sUSut692VzLg7T48BtexEzGGDzvQcqKZ4XmE23dz+PoWNkr8pW6JSdk5uCWxKgzyaj4rXi+rGbneOJFv4IZG/wB5gjM9wa9pYlAYU4JcEw27Hi4OGLkOmYF0ZoqsKrEXdjYXRbyi7HHtNW3oiCsZpjVtHlJw81moahtu0G14CgLcBqAqOXkJ76m/9sRvOfwleJ2YsxyMcU0smweMwHuwRLf9Aj7GZh8iswtd2Qw6Q1Ao5iRF2k0O5mEII14p14OfeDXIT7oY6ApiHiZzXicNeBtexMq41gzTsd1gF1fzAPi+0VVXK5X6GFmcn8TAJnEIVkfeBUNSDgR5JmA7CXr77L3taHiWKm8PiDiCvJQnElPe4YjjQmxMhcbPEMiuGitrSvdzmEevC0Mv87SWLo1T3N1K80NwB5jZ7Q3nLPt4iK5HMSh1Dk4JhAy3Vym0q0haWQZuOZATWV2W0rljbh33uflxA5d/wmaFweiWIOJjd2j90hnMG9kvXdBFzRzPtiD2IJ26gQkt+033QsYNkM1qeTX+zBr/APFDv2In1DllX6LycxHCksGywMSpSYmbDzuc7on+BMu6z7ZjCPRrAguYrw595ircol0skovZxEP9lx5aknwXHqK4Bly1CRdyqruXF0hHKotfblMgbeXs5ZygT4f9lYuBjtmMe91MFk+ZxivEsSzqVGFaA2wQCAvA8nmAUZmh/hDwibd/sRNjaPmCB2b8xZ/GItrfMWPgEVKcFH2hrx/cSj5FbPmCNS8xtQ8IUG7/AOzmVs0LL2mma1XXujoffeFHbtLrAwdjgPoV0oD4M2G6/gTM8S3aKIdsRzCRBAycxYk+CBL3B8QbR8SghrLqbLtuROSI27LHcX7naW1B8Krd9p25Jjt3B4jfkTkcMPiOgsrGd5X5le2ZNqVDQ42MGAOWL2mWdxFeEEwiKifnpuOuA7HsbexMD59i9Wfw8Q8upztMH+Z5ocygxisyjZbZ2kup9rR/E3+r59nnFQQbq12yWgwfI8Efvat8ePif2yB/bMMZwAAC8/5jN/HM5+foBKlTHGkNmJlrGJsgTU0bHeJXQ0rnzDZrFdW8Iqh2cMXbvxEil1cYWWoNyAaVN1UZsxpsbPOuJYMq5O0DbWRN/wDJiqIIImcDl1OD7pl8wit8IJaufnwS0qIo0UBOVG3sL25+xiE17cExl+EwcYohg7JLL8EoF8Ee3i4bA5WZaWFG8DfzNye9X8QGgTD/APX/AJikfwzuwVr2PBy5tDhb7ueQfu/QqHUe15hlBHVBEBD346BVmLyjzM0v8woqE4LnaLIMMndpVMcMVpC0CIoX2ZikLu/5EIBg7x+2O8TsTcoFsX2QLM/+Q9pY1dhyTO0dH4fPmVrAn3j8i/5HPt+bz8C6OCYBlWk4jwvyzATlPI3LLJc4PmXEeA+YfcplvOn7DX4llPBqLd8PulTTj+xEA2nwuPvPlAAGuwj6Aem1yQnJMG5drYcGIGWItNxHuRDy4CZgtCYzx/qjuy5bJog8jzMBd2w69ptUehFfBQVhVo8ZwEMBoThOvLbmMosFbdG2fJ5zY0Nb86y/XAdh2Ikl2boZb7X9p7iBW+vISKFuCriUOcw9piev4Jte09m47p2VPmlsc8P+SKTS/wCKVo6fs1f1FRLRDjcvhNRgfdHBhNT8MyvbiOIcryq79dQ6nShnmYZlZJzNvgjVXaONbYoNe4w2Bl89pyun21mMc4MZ7yz+5VI8otkbvwRv2KddnmV4JdFEsxIr7oQC2IiPblicOsF7BK3Mn4A7EHyda78/eWObfuRH3zV2o5mGmsceN8YJWTz9iBeGD2i/vOTuqVKvjMXyDcdvsQir9s4I8GpqG7gQCT4lhe09ia/Qrm7D3lg5ccOAeD1noqHSiGyEfMHsQX2RZirjbPu5Sj9jUf8Ags4t/MzfczBu7sTaYsNz3IzAO6+JiQQc+V8rmUxgbYzGJUglz9um7aG65Za9hzE23NxfeZfaZwEtUA5LNH5Avn2m82Euh+LQfHJKRfzMCKSw/NmSJR7D+I/3sJXhQ0lptYL3Cjwf3amxHKH2lIE8tUD/ACz8SmlpLXg3LxozxFy/fj119DTfiZ2+hYxsgUQsZ1H4M2uUumgr4sRIJgB7AP6jZe0UeEs8U/0BAtnPEcfPUDvcMpM8EWwlRekfx4Sd7cq8jsQ8E8wChmPhrKFTDnWi17NveKqje21hj3vV5TmLVZZxtsvfM0AqpC2rq98OOI7cbv8AmOnvBmuNTbe2Ce21vzKA86fYlG7gN/zBxsOj9hBYaMFnKr2AySoWfHoJaVxu3zKBNZ8G5invM+D9mvWEr6AziFYbNx6TIQVVmko5XSLAS/8Au32/GGJQP+jNNEexHJinLOJea7vYlI05e0Mpog5tQoW0RXLqcb95e8bnp8/HaIW+XmXOorRVd7BzUv1qEiVWi6DKzYKrq8hvfXZwQornMa/nL2qYrzKYYKh4/wDIS/OcPvDR8Jg3tmUB1GUtXmzD4risvh8zAPl/lLH7gxGtqrQ/YMfB56Hnl8zolgWnefUErodCV6HRV+8L5T2YzS53Sihdx29550x0TKS8H7iCFFCNUGnksIAhQpnDwiwHwkrv3vMzQMi/mnFE+WDidqYqI3P4h0TEiHEI5VB5HgImb5XBkWGAsZZp0O9nwSt+hp6bPEDn3vmBiu0QmCACv6QH+QMb2G/eBInD+ZiPlU8oCDf8V8oAoxMPD/Ikt4j42lArsFf2dn+DmIoSzCi1feFEwbXiPNg108/tr1BAlSugSokrpUWqQCpjjGkQ5nKUIZbZoJWvbbPsAWpPjBFIym70X8yqPmMpPiB3c8seuEu40a94K93Kwcsy2TKMknAWHdK2FOqgm7nErNwsMfjQHb4IGoHGRTLXd7i2LKqK4uuHl4j8baSoyy0bMijHEwRJob8qoT4WDaEFhdebCmou1oj4R8l27hBFjhySwNR7AczQHN9hEUGan/BAbTxHk7ZSbWXsd/mDxt3vm/d2/biKAyuAgLH9J/tuImtLXy+kIEOlSoEqJ0CVPmodBAlm0mviVxuNA9zDuXu3SfiWwqunwH7vxOwV77n+EwPWZoODiZMmI260i0e7KQYCrJ5EKC3iEb7Y6y0AOEPyvioKdhDZTusLmTFtLUS65xvMs/UFTsYMWeJVh0qZ8ujbulW3nzKIaw57zLhkqR5uHcY1WULLWorGVmCrWnzDrYwtpSY28ZghZhgAKbPw0SgZdjh/y1KYdYLwbZuJY8Y8+FmdY7buUtlbleL5YaDSj9mD0hAldDoHS+ldTuxi2o3hDXjNzEqLL3/NFBdXA/vC59ofhJ0/nEFQbIPjF/EWDeP5jeXHfB8wVRMImPmNcXiVOUi3BXeoYULxxHP6yPYXH7ZeIk2HklmkQn4b3ZoLbAyuGrD5mjwG2HAnEP8ARmKLWphOO/mVBVl8ZcAXKTvKeyUSEQ7oa+YXIN/NVb8rgc58Af7Ml7Cr3vtJQHbiZPRb2LjVWg+X0HUVKhBAQQhPRXyzDYfgT4qVOHvH3E+1GW1fYr+GZwJRfsKypxMXvMP9gbt1DU0v7ScOXEYz9lizliB8sQY5M+UdZPuytiHl1K9XG0U8cCYUVX3hgV7eUV/6xN55fawEA9zxEte857oVcDk/1BSewTAexnHvK1ZwAucnMeozAfZ8w2HtOTswa0+DAR+0FR2PgD+sES+tv7f3synpeVLJVgPlfu16R1qgdDLi56Liwem/vZoan4b9k5+0/l/zz5m35/33ntP8X+x2fM/H/wAvz26V+wd+P76A/J0u8dn9TU38bh+zN0O3+E9qP77u/ZP6ek/k+Jo/vfRon7HP7cz/AEH8o7T7zT+2bv3OyP4pwe8/6Wt5+4X9zM2f73Pwu4/2HoB6DjoRhHfVh0//2gAIAQIDAT8h/wD2jtJZHzH1BmvQgnGwfredEx2gLrn0gmghbNDmF7vpLME+LNb0EiMalfrb4sW5JbjoOHZSeICHojHrQCRoFmWB8vMT0CB5gmLKqLP601AJBFxNmY03uDcuCKcRBj1LUTlk7RB4ITuEqSiG4Az7CAczaHB03/W7gQ4ilq42hnExFxPMzjT0pq5QU1ChUSCJgqa2WhIvJ3jje/HTf9ZSXUe8wxDTGKW6ZTEiV6azSy/BqLCVQmkxneadQ59sehBAPoo/Qg5iHMzE4g6KR7Wp/BDjpd9AyrZSuZNQi8ZwY9ABlLhmUw6KlvtjCWUhsSX00J7S4hA6MyXbgH6iCAIolnUUqpU46aTaOGZp9xNZ4jFF4gNtdNLctjFwmCGpxDKhYtxmcqh5lODTE3Paa9Lqd+UvEa8EEsSl9BBAR2ojLjm+m3Svu6DEmRAt0AxKKJhHvg6RHcCb5xAAccwwF1PlQLhN9NdO/QQm0U3OGUgrIQ5ne3GFxWELT6HzNU7UZlxYsI56OpUCZ3v0rpWYZZDdE/ggNsJcCVAjKuYJSqIZ89NdQ1L/AGQizHL6FntlJcuWsOmvSJdyph0LaWmOl9Rqa6LxBUzdLuLiEFwKIQt1NfAuX0Xo4IQAa56RNx6FRcVzaOUJzH0GN6XLlwl+euiaxcHpBp8Q3iXF6L6NSyWS0uvtMEK+3oC4soyMSr2Jc1011csDRdzU56pl6Kad4k3izGcxaTebMqV14l2YkmVu3Qj4Rel9L6EiAyu0rokI7moFdSLc30ily4S+j1Qum5o6Qol/t6DHVtMlw5nCVFXaKNTDmVNbYPYJvd58pL6D0BsAb6bFwiopLlpXl9Nyo+JfTfS+i6e+TUq2PabRQxUX2j0DUIwZlBDrQgC2kIe9KkwDkY/igrpw9FgSX1LcqXEwIFTLb6gdBcWMOj6UW5qXDUMs2lPv63XRzGosb4Y+I6MQXpZhjOEWIcXFXMluoOEPmhqXiBUXpOtTcugerh5l2xQR9NSr5miZzs6jBiXV7Q9E9zJNCCui8qxFpjDjpQrvGAu6gr2hB1qMOlTU3LMEqep2CK3nrroqyzbNxMKS4YoOI0e0W2G4ZYLYSgTDrXLmE23CDpZ1hJToldT0BFhnpQ9asIwjLj0C5QiziBA1krTbATzOYcyr3xuLtl0RTBbH+I4wR6M44hzU46K2PowCvWRYdOZ+kejCVbRK+bh9G4s3WVKXBlrncrU148yq02mBe+g53RbmB010RbOTvGVSTCPTcQ9QdL88fROiaRCMgnI9XoTJcMX02uFxZjxLL+ZyTibanZMEW4tV0SsSXYUlUHTjgvoPS8/MsOhDXTfT4UCvpWoEYl9RhhD0A6BDcCntLAVcV+IoozGjOATEuX0qVAuLNFy0enaLicOj8suZSjo4lqpQfSQLMkpzHpUuDMo9RCEG5lD0lHui5i2R+ZUhhfS+lS5V9DoyopOIZzGHE3gyTUIs1AlT6dOqdX0COCGui6lHMQd4lblmoHQy6JcqX0D0O7oH04m0dw3Dh1ah0ry/VelxOtQlSiopeOm76iB0MXpUX0XNR1LolqOWczXrhx1pHMZzP1qj0GJK6EWMHcNEdS+glQiwi63AmoR6Ac9ozNSGpeYTaaQ1Oa7T+Dp1CW5+vfR6b6ErrY66MC9+h6EYE1AiwIZjiUPMu5cehTiG67T+5u9utZlB9Z6DE6DH0Rh0jAizrroRgS6hnoZi8SomWpYgdDxNEMsuaX0oFnGFmVPrkYwY9DUWcRiQ30CL1DoHXUvoMxa6mJfHQdHMfEEe3ec1wQ2lUTaU/onrvpZWI9aS4RYEXo46EWB0OgaIblWUHQ7gizKg5uHHvKV9MnA/QJ6Qg6PXHMvqR6a6EXTUMxJc9VLjRxrpcEGsxYg4nsx0olb9GxnEfSG4vSuh0I9V9DHf0O9dAPcygy6guK6Ry1wTu7Sy30JYMn6Ij6GGIx1OIHrJUqFiuY1a5gDDvtFTKKi9AotijNnZ0GbMqj3gqLPZEiuKj9HZxGcdHqMYeh6sJzMnmGOMdNJfRY4MFhxDpXBgZV4h36ApmuB6X616sOr0ehGEZfoDmWLLvoGXFxLi6KDcehukPskNRgqVHpY/Ws4h0cTicep9ZN3oXMei+ien8RNozVNPS/W//9oACAEDAwE/If8A9o3L/ROP1xL9K5eXA+mv1g/X3DowsswB1d+slTPpLq/rSX13CKfUZct0ubhqEHo/ryPQ9R6rqX0CMqXHDD9eF9HqS/Qw9FxeodHo9Gs563L9Fwf0Fy5cGHQYj0I9H0XD1g9BGMceo9b6c9B+pfQ9R0PQI9CO/QykGL6A6voOoS7IOJcZp1vruD9C5fRfUQ6npnW/WHoeqj1EyZXS5cuWRROg+m4y+i/QvqR6E4h0c+ogel6qzKdS/RfoOvUsuXL+mekgqP0Q9L0DosYQh66xOYOOpFcQ6L9AinqHVlkCuly/WHqfUnUerNdDq9bh1p6aSj6IW9b6X6Doetg56MX0Cc9Av0Go5h1ep0H1V+lf1T0HR10bwlBB6hc4ldCOpVQw6sqV+gDovRfoHqUcw6hjuOPRhCkes9Gf0pL6P0B63qYofSPRf6TUx9Agdb9D0OrFx9E/Ur6PqYHoXPomPS4tfROgRdTGXD9GHqqV6X0WG+j9Q6qjH9Ida616xnrcuyESL6CVK9Rnpz0d9R+jqV1r6CdToxdahNeti+hzNuhD9CkH03okZt0sm/qSj6XoQ/Q19dgKnMqBX01CbZXRh1IfrX9E5r6EH6tVKuBX6JRjNOu0ep6H9PlD9Gznoa9HPU66/Ukvq/XPpaQ9B/8ANv6APUOhF/UPU/QPRhSG/QnU6a/+W+msx9IOhH9O/o7lwl59O+tdX/47L6HrR0PTzOeoI7/+OpfrI9X06PpVK61+pfokPSOh9Iei5fW/SRj9d9B6EOp9Ad+o6nqfR//aAAwDAQACEQMRAAAQgoAhEkEEABEEkEAAAAgBhABEEEkkcHEEAkgMsVggkkgAkgkAEEkEgkkkjgwloEkQEkgAUkkkmEEggkgkkkkkkcEEmAkiAkAAwkmkgEEAgEGEgEEkkiBgAAgtIEIIkQggCACAABAAChkkkkYBpJkJBgRAtMIIAAAAAAIAAAAAAknJNJJhJNABshhIAACIAAACAIAIAFkZohAAoBhAAkohJEgDIBABAAAAABEi4JlkiEFgAEEHli3IAAABAABIAAIA+KhLL5cktgEpI7Z8hAAIBIAJAAAIDSH2WPBkEg6c7UVokABABAIIAEEkB5Xh8paFAAixK4h4EltABJoBtklssvDhiqqgAgNQE3yantstkgptskAA0kdGl/sDl0itWhRKwQAF4ktMkgAzk+BG8L0H4QOW061iadJ+aQkkkAkR+eq/w9syKtKxbBqcx20yxm4kgkFpq8GgJUePk+K/9g5kKgwe18KAAxgxBDZN1xDrEXmTLIi+5mYsKpMv8+gsRJHLYy4SG5yGz9x4drHa5EJRalUMjOgK2Cv1in6Roz96zpbXJIVCfpngY74HocySi8aRPKcsmId6geGHriMUzIShYcFVTsK9uVWOebndzTdv/wDCheM8+2+B3Opc5zPslixm0xj6OjAVH4DPkXbBOwcWLweUMCmK+tBOdT/23VwlZfZJI5acBsVDAdwOENfr5JuPXKQiQt1BJPCcKjDnbJMuE+y1bFRwfryXzWbAJA80GpakEYKOL/UkU0EqzozyQFC0JCLw/wDkj0q058YUKFQHJKopzrBekCQCU5O3gTEJU65b7Hdmf2y4w3wX0CSQYDjEGiJoaZlkyT/K/MW+LoTWWCSUahtrc6fPz4AweLZo+Xk7F6KffACwK1w6YUHb5MvMERxVQ7zuyyD+vCSQIqLyq000+W5UnD4Vzrip9XPXXiSQKof6HS+LJ6LPQS99D+5O86lZ6iSSIYl2l0KWAWBBGk1vsifi1sd9IoSwa8qF03adiXtBHUu9ZP4NEulJ/wClkGd0x+TLLnbk1km863URgexjqgfEkGsKkU7FdCHwSNrwG6LIIesRTNFEkE8y8pqAf9qr9HwEK99aSimPSi6UkCsYWJvaTAC7aky4575+VyXHtw8QkmXiNH9RsuPKnjco8XGHr0YPQ9MpEin6t5wodxttxFUPeZNqhKyfFmhSEgmaEkQdh0LLs6Iw00ttfqxOkHHxCEWx6NKUd3//2gAIAQEDAT8Qh0fRUf8A6H+dD1H/ANH54+i9cQ/+Z/nQnHqfrP6LX6D/ADodH0v/AMavpf51qM16H9HX/wAF9v0G+r/8OvXvo/Vr1v6xw97TJnRlvu4eFmOldagQFAKsAFrHBzsF9wl5iWmwzBANgCMNixd4Dtf0a6CQlABlV0Eob0zV8Nq9CrKQo4K+0qVEq7K7GnUPuqhaw55NBcDDU9hEQKRE8kx+gx9Kv4lPhCDbWzWrLEcFVmds4jqNenXSE7MEYIsSACByaTxZmPVSg0VR8BFKiQ7arqg7rDeaChZWVbGHMbq5hcTYdWfBC7PiK8nvWByXCrbKlhsuikPBhnU59RmVHxgCSSoVV7hEWCIC2GgbTYAe4I4yH9e5cuG0z2zMGnQsircD4HmGAa+h7FV3hBORIrsl5/8AFmVpgeUdlvOuMRnPEsQprdyS4jWS0VfL+sNDkoeY7zuMrEyI+I2eoc9CqtChSMM8DdJNt+jnfy0BSCI0rYzNvaEng5L2jAilMLc+DwRCV7gw1tn4RfcilSFWt2xJ0O4edsJexfp2QhagFQXCjXND6SfxAMAg2lvyUlxDztRK+9tSmuCkDViph5kF7IC60SyAJlEtyFu4JDJqek1Q0ArosAaPZxrWIeWrTGNfJikdkkUOpV1aCrZiC7vu3cO4b3XxKxZoThQfevq19Suv+RAO00QScP2Dhl4njzFb8MvAbZNNnkjLD1jYHGRu6Muy8pRWsAMXsAYukr3t+G0otWsPv3lCoPcJ45HCFaKtVw3uDq3Paode+ubFzg8rwDKYDLiCqTBTCiK8IseGWxp7iAN5cvLMlC1ysaftTsIM7EeK6wvYhVQrT6pACWQBLcrCWiF8pWNnHIji8lwFsbKZ7wMJugWiUS0w2/EQy1ojRfNS5vvKoLXAXvP4nH6WulemzDb9mFcUOX+RrnKbc0/2dgiM794/AVE5EUdwbzJ1KoABygnYuq3Yam0QfdMerkC3iKBzN0v5Yyi5DoWD8xDUui7FHuu61BIC0oMqsQOkuVac4VTsRwEoKAhl0FYNcLdmAOObRstYb6Bim27gtwOUDlFaGNyiNYN5d58bMdVu5klP3gruJjxSOw+BxEJOgW2q6tKUjZ1LsltV7QplKpIzou5o8lxog0UKQw4QXUVBYZWiwx5SvzERR4a61OZUr9BUqVKlcc8E/a9+54xIAFQ8uPzHEm2/gjINFkOxlJxYnupipWCKm8jATVJY43ChhegvyY3EyDvZLuI3L4BK7kUg0VK7u2K0sG8WKV0fMGQ2azjB8FOorWLAQWzOygBuC3JZIgFWULd5HDA5AqF7ioK4WBfNwghBezeYFdiLsiPoHl2m06JyC/JlCS7AVVZ7SR6fOQvgGfvD4xWA99RoXrkFWtYBeWcIEXQbfKpnmXCMd6axrUdKjI7xECZQj5Kf5lf0+0y6uL0OkQH2dPWpSOTIC2uDQysxUmTY0IJhAQwjcfo16KgpyqBar2IFVslz9qEqHODR+cELG8LJdDE1uRlw4HcTegcFQMo2Ah7yaplK9VP9O/hb+yATu+DjxCdoAdtDEHtNogrKB6odf5CrjSici4lmvNYfMpNTaQsHlV5faYP926BbbB0QKHkiXEV7Bh9hgM4WSO1EUa0TyV+WXUbUYG2laOXiJD35VGhuscbLvDLTd/aupg1+Al0rAaUUfaVUKqJA5q0tyo8RqvHflKutwYx/mPzLxcAgO98UEywohp/CAIzqOsKxVD7QqJgZQXnZxM+BilUK0vLnHtUOCzONmru6cRa0D4nvDh5Sr+I1uY/cVAYjwkE7ix4tFHUdjkj1IUqsTnR0RG41gS5SiyeXuidtAKMexAKOQ2OKurRgvKAfsxJXpOtdAeizn9iO23dspehE7e6CtqrK6YEPvcY2TsvdW17sJkWmPiU0AJ3FPNSjTXAiyBGQDB3KL5pPM9z7oIYxh8IO3FD7RTy9b7wXGVU7LGA9v46jSgxAW7+WUDzEIDcS0D3AWRs7OG7u17MJ9sRpIZhVraxnFT8bDCAuyrCuuv8ADsdheHmohocrshluM2pgy24CVQoXS+XMbKObzZxK1RjiJaX3W9ocvrAUAxjJSy/fMrWGCf0ERulJeNz5oIQ0qLbhja8AtX8IvP4lfYABwGIkymMJmNQKcqzxBsqXKs2fclCq53IgaozwLUUZuENHpaxcwUwJEoW6d3xDTdCeG0w7g2XdRVayaWCcOqA+HZDajvPbTfslmcND9rMDe7vW44WxDwzQpVOPtFKtdulxQ6FmpSUaFYdAVZtcnsz2ldvT5iWYGpXyYZKtjYP/AKS/8sr86Lvylof4gUEnkZYd4sYLtxogZY48gQQ5CzzHYwKVu4baDenC9mZm19imNwIqUE0MNEU7T44jb3qdknc40QtT9zh/LkC9lFn5lSnLgD5gCkqQ2rWzkJmS6gWsDXd5b94BtpZLM8MWiyaF5mYLcWr7j3DsS4XbuzQmzZnOydph3lMKO6m32iChKJtwORdQQhWMvmob0Fr2hwjyba7xoiwzXl0Q3Jwu9jMcSkr0wdvtQhCFAzyvsVL2SLclsd56/iAKYIBrUoZCGPiX3LhYou5muBFe5Ma1epUyykbKeGE5UTsZMihhjvPCICMKACOFjnfszTvVH5hMHsUuFVDfMo+GWorYA+C5mca51ACqxtDFe8rJ+jdTYqCy7veA8Daty0ce15lKiqAA8S8bu9iBAkJmxpsF1yvk+z5eoKgLWgmA8AFAocRa9VTnaAHlI0x3uNghU8VqDg08ywLPu5maF8QhDMG5UiWrghShwxX8TBRQ/BLIrNwiMcn/ALg1f5WOX4JTDjmUrbja3enMv+Js3s/qOtk2/mJygfBudxNfdUeNwWm3xL0CyM5d+YfeWLmbdyy/Mx4jCFEV2jhobZjzwPKsAWCDTBkGAgzAjb7TKlNiiAourUGqSu0X7gih5Tiu8pw1umiLX8HiIENI+/tKU4qcmZf1G1XkYT92PKRlxzhddedt/ljV7UqZ4fwuCgq7ZqLwba17zCIXEGDzh/iYan2S8xiASnmoLa1d2DAdCzgGRW5fY3BRZUWCUMC0eX2IeWOGrl6gyoHvBcDYPYDE1tgCtxrbNrHGJiLFAeHX2jlEtXIdF/AhbMqZ7DfNaS4BtcLT/EqD7SGTTRehNq3dIGBUpj5nDoKortDS6OfIwRCpsDcQ9wdVERNuE7RRqXw8yzehrsTCCmsgUTAWj+Jh7uvY7wUFoNOCIVLDBqv3EdVbeYmwanwWY/ECjEeWIA7M/M5Cor2hR2uPdjKYsVCJqLJlRxtN4sJUlAEi0umSVKoSxlDxKWVYUEe7WXfLKCu7yP4hGUFb9iCHEI0eOY1bj+iKfxktFQ1YXVyvItxW4tk5SJenYO60QVjIy+WUK341fL5Yyx84tmx5H43AApGvLM1arXiioQndxiFymYvwQ+wd10NqGpZg5xiZBdKY/mBvjziQJ5PuGKOxAu6BSfDEDYtrEKbbrJGcK2JSbeUv2JSGyWvfvHisxARVhSlFmYoIgjxoQvWrZpJQg5FWOf2oYWwO9AfzBuOj7UIKQztXY0d1oOO8SSnIVRGUfm6C6d8GboOBgEsXfiElLgUyQSozeoCilLmIMrHIxfa18IKwFhfJChwaM15xKDirShb5uOzCEOd0Rbft3B5VBAHeUMx8AAVCBWVXdMSXhJfaaDJjkGBlPxGgiG1VFRABapR3Y9ZVlrkH+2C5jq+Stuf8wRJrYPYaoheRp9oXtqQQKwKDCB4IHF0VeVFVota7QpjF/uEUA84iPkDF/MAfZHvHKnsqV4LYckoWJgZWgF9mphGn9u6XH+parxeX/kdpMPviJecS1cA5H2BnNzS7ZgYyvmFt4SKc9BADlBo+I4NlD4JWRuwLvxuABXVo94xu8L2MylMKPGMl/Eq2o0s6e6Sd1A4A7+5BE5vfvGq6tdE4zPMDgm0/iZD7ngliaLQBxnPMYGLaYJYKNawmTic3hMnO03j2zEXG0WsQ1Oi/kj5TBFZytLiClvQBFGqGGoFWwCsYs8y0pvgT8QqZOIxlsUvUwcUMBmVl04UqK4Sqp/RPJphtDmyNz8yzpooTFdqira153G1fBcxzK2ySMIHFe8dpy5aRDX3CjWeGiHaDdsvboSYME3h692Kae/tAFLGAAoKIgkUpfjtMGJAK1WoN1WkVV4AiAtVceWWav8wAdN68yy3m4BbvWX+4asqtQBrCxcaBR2+0tRhdexqBOtNDutRrJbWfLli24B8Or9nMELtXApTuRkSQsBVUd0/aUHu7tWvwjEQZq0hLrlS/dzHSnzDxMwaFTYskYYoA+5D2W0nVqUfaJwbS6ShiMlti7T+4UVBRlrNRXcxcKQAEtt7xQ2aYS1WHcxipRsC8LiBGvTQaeOcEa6FkZYJJQ2O63KoFN11p9qrnEcMoaGdAw2Z5HEogoIryQVqgQ9xLKtHt71+CVWG4DtcqI9XegZ3CmK41swE4jVVu0COMt9nWfMQS1WBgtjIixzrEPIbNGoNoAaQoxBbrtf6Q62vDB+WZFnWh+P7NxtZbfUcg9xnM0dLgYqja8/eJ6us1mrWmg22yxOYHHl5+YGLb2fxMKB1t7y01Ms48TTSgx4eJksoImgxLPmoGlh2/qKN6G4J9FPheSd51VfghgIO5SlNPKVsFivYuAxmPsLg+0IYRvTPKCzzU8zVqwndVuHcKBwKojt0eHATj5p9wIwovC3+pU+ws8ESqEiW2jbjQLV4Mx5mYD3gHC0OnjEw8GxFrJVmsMMjjVe8uS14aYZa1Y12o94po2dBZQqyRfa8xCoxebFG10rPMAfrqmiDYLdagRMbAH3971HAjPY3Aw5La/iK2pqctUtRCQ9kfUKm+p3HArbb4GxH9kgcIkeFG5qAbjVN5GfzCfW6oM3xCVV52/EUuts5YLlikR4KmwqS2zmJPwI8rAzODk4mS7s7fiFAyqDb8sM/LA9uVi1FCo2Ha9h8xSN892qu/kBwKu6KixZ9/+xgjIg20Xg7zGKRsHGnSli1hiBlbfx/MRjw8u3eXWic/OoYGDy3v/wAgIKvvWxiA9h57zdbh1DdeDKyl0wZTxApU5nZ/uozCsD2vX9IxzFsuFwKHatTEtayr3dxJuBflQOjv8DcBOlKWKgLq8HuxVzTJdJRCywgX2gtrXmNnG4r9pAPmWnqxV4CMY4zahUdlcPa8Wx966A0qGK6NmzSKrI3tjm/iaioM5yagy0OdCZp4g0gQ91NPeEixWVaWA0zR7M2IKqZV3hVM2jgFlmKnSCOtpuRWWXX9O6gvLFS/ybi7mxFZOWUKFhMHh6Wj8NKe+YphUU+YkKgMqA6HWqh3A8y92AJAtI1qCAU0ZYgSklieT2l0L7QXJtK4hSJzMy+0wlyys/MWwGp/kPLAkScfzk7RO6zb5wF2BHOtsX+ozleAMAaAwEXrmWhqjEUW4sUoEyKMZU18wC3C37f9ihbhgipkyI6eE7XLPa2EMyl7n8xcPNbqBfz3joLyoPAvEo+JQadh8LL5g8CPZaJfKPvD7u/eiIA8VKtCh9z0+2pTHJHyXwWCW3cKsPdkJS61ZBh1ylTR9oraZdeBF8pK1QyLpWAmAAmWMoyEWvCXzKFtZTzZAO3788n5lfgExvmMol2U8JONAclsVUzHRZ7sPl5ReO0944d03EHAT1ngOSLstUAcAlqb55XdDLYVoV8FQaKTMAjkkdkWg4rG9rseSMBoN+ZQAeSf3ByqOGFV7rWYyoccnsRJMzAgW5jZ89pU0xkHATQ2yC58AOY60QrWHdb+ISkbK5ewcr2j14V+1DHZGofEIunij+V5cxfR/lwLLRiG4IrLaZT5FmtO9VgKBd1mOFg+7Nai7RGBlN3E9nMqHxds7Dh44JdpqlxCixWqibChynGPtHbcO+DsNBxGwP2dgSPshBOQ7MrG7WXbeYd1Re7OQcfwYInIW3lVsBpUp0mLy0HvCMoZu1LX8yqIIpWKCIAKw/MNBkvcamiwTrBKSgC6RBtyxtTJap0Gp8RUi1x5IW1HngB91pthZXuQgrALrxN6uKpkp+/M5ST4TFwfvvtqvsmB0Pq3SAnYdE1iK3WVRAYXlK7QKhbBXuYjxVQkItgFfjW4K7L5nUnkcQYFe/L5Y73gV7TnRccjzBIorC+0oI5cf5TJbZzZV95SlXjPXsTKGOrlD4mkACtWg5WYWyZbtHZMrgPEbvFuWjh8D+zVV6f8j8ywUNOJSy6Njiomj9vmWilX+Yhs4WUQDbd98xKU4CntcVlY5EJK3dOQiyaKtEnYixSRuiojSopyttXmpsN8AP8AYw5K6mFpVpyGlEymBBaBgqcEPoCzUXdRlON4lRhwRgeR5uCOUpYEQc3T4jDA9jKgFllqwpnJSvYlvASk2Qz1WxI5ooIlipd7rBFTjKWXxjb2OxDTAoAOxzEKG1j75j3D4LlfzKp82WteyAkM/cYrhVP4JmIIwGh47ypDRq4cEs8dyxSiPe0OwWPlhKwGlrWFwNG0vwLlgOJfuJeI6TYOao4K21ickF/GaHuB4g1KfAVLANJg7vmNWGDSwDJRgv4ufAhW42Lfn7Q9uFmB2JnQi7DjBGRE7oOIGZQrj71qk3wftxc11z1uD3zviWbWWPHsxIBv9sQxg4SK04RHcTtEJHY0FByWqJl4ZdlVZslRhsINtO7Kftl+O69oY4Bau/MWFxgns1EqPybugaRlPi5cBtfmV+TNxrPcPi5auK1kIYQKO+3mM9ZbBdh5wAa97Milcr2MEcPdUhGtu/By70jGXWsFXYwe1RCqOlZFChRDzA/Z93xLXJcPASgSqCjxZs+ZaCsT41YB9pUSnYryyRlc4DAeCTylRnjFPZy/aP8A99szKGGND8t0ihVtLOVRt+8oLSDkojuwNjzmCiKQomD0mItjN3hRf9RS8j1RR96s6eSGsWJfAuEtWFMHmJ7P4II73MUuQdW9piccALQ92P3xxuPQd5ZADjF0X4W2JQMAN1PavfGImrUZVcqr6/8A2LkUwPeJKuTf9owQ355laVDbNQT2ahJZXmIjNQ3ZwnaFFVALlxrfEulQFjiggWCLI4Ov9hHiXL8pTXZKdTDPMpdDnN2oT2YgDQSqDZhPM593S8riVn7krrUpioqfDW1wGUgoJwMNbaizhMYg2oZ4BqC+KlD+eDuw/wDIQLWk0HR7EoJJUccHzMOre0oDaxHHU0gBqveHiuiPMe3FtjHE0hxM4FxAtilZu70yxjAB7bYizK0RyWe0RDWC2LuU+wcEtOFQH3MUNtYmq2kFYBq29FESitgtzxHYVgdd1YisU1r4qD5o3KLQJoAWFtHaXfHucy9hZIhYLUL2lLCuDP3l4LRPC3L7EuNVy7vAd1lDR5d8jh5vtAM1puHT2jm/2kVTcr7VXux6fs9ASoggbWnj3i2Sm6e7AdQN/eVDBMBlZR1F0c1sWSzsMCUHZRFYkax4RYHNW8NHzCoGO0VHsqJQ76imh+8EIaE9bAtNlCTBOcZxGLeTbGVsBaQv4m/4vRYDnGplGPRYzacZ7R5QAdOwjgyvjmO1g+azR8R1xfI4W37qItJgLiwrK8EoCUfvWBApbcrgAqEKCi0mYQvla94QTBfAETyhagb7oQnJRwW6eT/KwBhe1p7HnzD6tURnMMIAO/IZ+YWFoOT5QhaUy7q6ZT3wh71cPIAg9soFCOXc/wC1CW3EC8EczmxKIK7zZJwhAkckHbdrt99CBiWJ8AO8CdyOgq373EMMJSmFhDZdPmMD2hg/sgl9OPQEIqCh3au0yU66Cm4Z6mHiy21uCBoA+CDWYCuHiWGr7EBVpEPGlWjVp47xhbVDs4CLvlV7mcg27e8ArYlvxL120eNTNEp+5EOqPD9haAzYzBA2FS1tANKKRGXlw0Vmi/uxctZTBSx0HxuI4OuGAwW4vfPAkQYOW/YJqboC2lJ2CpTCAWuPeLZgmA9ouPZqCNbTijReTtMsIHncwtGadvsSkeLX7ZXtEJojsmF8EFTgLZkJXMAti4tg9hEp4VrLgaqgnygrYbK7oNQhq0v2ZmmAjjuyy4YD7Yii5aL79wF2ntqMvwEKzk5StUBXeUUQBb8Xol8saoyuA92YH7BocDxABBQpx2i9iLzXy6GPI+z3lhLU2DUM7j7esJ2IdCzK8bnzUTWM7/xcoHJ7ylrvLVRBFo7jh6hxZgZjkJtqBj4ZZ0xFBhgX+ZULwy4hwXqMAtkKq8SURtQ5e8HdSiGoU0o5NQBaprK5Wr2i5PNwCVUmRfbx/MEQtyefBekKLID8s1jCQKDjkjpMTLo7pTewjPblNWOYM17xrvgu06HlexD1pwgTfnpo495kw94SDwAeURTUMj2wRezkYaGWEEYAoxXaYgXkfmJrbPmY0HcnOi5iDpk55nYb/wBkiPoJUoB247HidyT1B43AFY8doQnb0dqsvnhKs8ngVp8E85Gm7Ptf5hNm6ukWx+zHATx6quECVKhNeBPExsBEGx4goZcOQQ03vtEUwmYr2lKizqD2BcZFNeIZRMDPFuql57cZj6FW20XY9ogOVkwLePyRXKpNRhXV6fEWvISO8DgVhUa2L3lHg6tKtcq8zQB2/wDYQCsJmGYyeWbeZxn4iVGBoiquK5i2qdEyf2MwRA3v4LlYefnG9nPf9kr/AAxOLAe7nCs7KMwC0UhhJ3B7AQqNADaHLA8FxDf/AIzAW7b8VB4azR2qVgoR9rRBtkUjyqgulLH5Vr9hhVTXcrXl+0eVSw8/0z9o7pQGfJY9SV/K2CaPUnOC8pib7UdoaAd1mC0QD8myDYZeDy4+c8s/ifx6K6FVCblShCXmoV3OIcjYwoaOCGIuHRLFsbuWFeUoCKly7VWxuMWit7KWW+9blcCSBq7RPtEVUDIQgLQ35S2AL7EJa5XMMTUQUWsXVMjZh0OAgMNENEBOOC8TkNbYBhnvLysvBFkdQ5MGZMARps0Fj2fEy/uAfyuO8JkUp+wP3csiHaMmd4LwOIUMkcI7Jqd4uTDbBTAXW6wGD4Al6F3ZFm8xNyXHYEdM0bJnR2IK3wH9o6PN0vB/7LVGK/vgfiEvIF4y1/E4E934QuMNDR3XiAX4zBV8j5hIhD5A+7iW90XkVUPb7zEYpap7SvK+oIQKgd4wdKisrbG11DRMQYe0GgHGILc45ot17oFUOIlCZsPouVVsbaEsPr72D7XAMCDZcl5eYQoPKZTSVRPMCVCErWRVwBysMRayPINNO5iajTyx4l3YUp3BOZ5g7tzLRluriqhZ3lopQymAI5kGyat3fEIGE5xbwEXXNg/Zf2MZjPUY4RwfwcwDPlIJ2g4lsaIRREUdsOLPCPhCcrfF4Oe0LeimvBqWAbb+VwHgtBZVWps+DMV3cgVEuPvtmdsqrXkP5lTWsZ7hRKpbJzYr+JQVQsEs+85HGJ1tmLnW9+gvK/2aHiV19XgOuOoQQIEb+IcuYD5lEZFGNxbOIrlXlBwbGI54Soq41R/cskXofeUDLZnwhGnUB5RwgLesYRPkEqQsW73VNAPuGV39VnwStHzKVa0lrmqstyU6gu3taOVK8yhla34I2JsYZHL+JZxkd3FYMHHdixbXJ2RlVY5uPNKcti59oFS7ngQwVqjmOx3jKmsUO1h/F3aIxfzBVBepqgxAnbrWAkbPR2ndg/m5nwFvkomeApeDzLTNKx1BaI9yGvYe05ZcukeECxUuaX5bfxN1iFG6XH4XHMLHfhh/AwvEaUgjslPaOsehfmXZHnqByVlSajaBgHf7B89fHULgoEC8zUq+hLg2EDUW4zj2lVbo1ApWF3KoNu4VmJ35h1MCwPPEemLapW2Wa+S3yyoYmHIN+7iEMlT21mAAuMXVty7HIfiXwLVol2zquD2gztd9x5l2xZzbOazTyxIub9yAgUMqzNVHve7NBl3Qsh78B4j0BiqI7+1X5V8uiVB1qn+VS6FICrKt3fLvTtGOUMi0qI1EbKyYdRtN5Ym7O1xOL8uetlOtww2hYApXgHDiJruyovzESzKh7ai8sfgSy1f3D/iDhVQHKWw3TZUwYtPsYiam/shwPOsS4G22cbC2m4sxKc2ZQ3hKlrAOzBFG6fljFAT+UNvDy/119+oL0KHECBUqEYGJUBrlXMR5s/sh0LV5Yg1qPEtsgZiWmiXmQz/qCBdUX7BMS9p2H9gp5Y2hx9iyebZQbkihcBuoE8vvDoKUWoARrZrvCxatmfgjV4w7vaXI/wAA4CF5UGu7FV3ADVRaMndTAd7e5jOXPiKLXw90SO1LV5mnFmt9jyrBXWF9E6GWnDDZWCirOsRQU+7IAydC1nm5bpkK+Ux2IwFFRWucPvABC7kHuAsDs+8RbCtneA0zsFk97lbK6MPDxqvjMcTrvsPMvQDhJYGdlKaXdXqFb5MuaN/dqBJdCZqwr+zHJF7lYAe/3deBAbuXycbNOL/c9iMQ7ybgeAwHb0h36QDUToQgFqNImZbUticw5UYdhRPeBUwoR0Bl4ZxrVmWUXbZryXEYZelcHt4gCxAXhwUP5ts8HRETnYYwTguDgDUSvtdQQa80s0FHHmGoVMr2rvFl5dsxhhaNC4hYp7y4HpA1bBHsiEHAeDvD5f8AEa0L8m4xxANPL3jVBmCzMbdn77leJQ4MANYfAQMFhtuFiqHd4TNRYKXRW7yDjussmEDAIIbeV8Y17wL0ufmsfzaIXaVhZ/tKnVuwWu5ovjbLjZsGwa+7LhsophDb51AcBotTQBl4y+YGbLwnYPduBa01gYNG6XA0cMeXRNqKO1Nsb0g4IIZjIGNKnR+y/SHW3si4FS5h2xI0zA6ERYLgCMpUxkUEYFFOtsHFRVTg7xcByNlvzFHIe4DkfFEtNcs8amiAljoRuSSewDwE0Ovkdd4bAQoPd9odWl205ZaK0QfmALKPktQM0yWsqu1hrXOiVeIjPINviAcDuFR+R7EdlCwuXxEglrAwB6iHKhg91xKUC3LTsh8FXmL+wFR0zg6q4+0RYDujVFYKBbjA5jXo3N1b+ZdKgXSPBUllGDuC09gxBEEKLLsFiqfMKVwYihTXcYkRUvdDmDLgX6e5VckGtp5wAunnuR13efZn2ID54GBWTwGWYWnflHxjLFmG5oNNuByfBGgaTvvzspzCwKm1Q5WFoGs3VR/k9owp57apar6A4lkqgxKthh0Y4AhRw1FekLO3NQ0zPF6qOCLApqWpRphmYhiO8vzBybuE0Vgc2Kq9kwgbYdeQFeUgWw7uLan2YRJpZecHaEYuT3OrlGxs+KjrtdWMWyrUr77o+0yAxKiAzA1oIdscXLAOQMwtbvRG74x9jXBQxrr7/nSorhdzAGc6QGrGOIR4aHHRkVAXatybcRozZPYU17CvSBl9ort7veYBZsG2wPaLmA2G8Tj2VfMVcOnOoAFTgA4IoUghTgcntGhksHRNPMFA3du7ckKWhXiWjKtwKYHm3f8A2F9Lr0wMPFMu9zWuJab/ALrfxKNFFMgeXLHDbiK01dLzUYyszJCaMf8AGYTPYwjga/e+nNrp4QuGYrxFWOCCjmN2EDO5jxDo6bG5Ug5GGZqtsgJ1bSiotZYUvvzhfCWaLa5rtL+FT8OG/NmNWbouSWH/ANQlzA1zvURUVwv93/JZVpts9jEVIhVkgeRbl8sy101fGMUQCKw/MSsTwoUz3s6YQM3yX7Tnpy1HSZumJDcSO4v/ACXSahWBdkS17IKknjVbAtEjLQmWvPEwUqQIGPKGQ18I8TYdNYfHMQc+te/t9iAOsOFRuyxlafAjdNjluxaPNwEhGTRHZEqqhmiWNPLmlxzgY81G/GdiCnvg94AVAKMCsD7j7QcdQzpWvZ/0jARtAB3YBQl/OQf5GGIF4uQ9gwdeYJfChqZM2lkWDWZkljKSNj4gz/2G4FA23miNeJ2/sjKzdQB3XdQGbFm2veIEnzdNL94tBVXB+NsftDN0AyuNZy1fYM2581UBu1wFaEKbhSG6XYUsbDSwriMPIbDf/gTFUv3/AMgQHdiDUb8O4ECIuilfafy2ENhDImUSrVbbMxDZO6IQgFaAUuavPiVzSATDLvNsEGguY5SsIqM99/sALKothX+EG44A179zFcKL+PV3Kn1KeId+yMIYrYoCaALo0EYRfbghWzGbsHJ9wiLXg0Z2QUsOBjON67QFK5oSpcKxCu57WP3hFry3ZWDPH3aLYLMVljgg0F4DSU/hHoC2PCFXKViC7TkgzFRB5qKZcSgYjfcCWNEpn+q/ufdD9s/a7jffbW9ceZp3+XeX7/8A3H754n7U/fUeH4PyfsufxvOfvtT6979/xPz/ALzY3xufhc7n7D+J+xcpueyPwvZ8z7x7p+G63P7m/Y/tP2m5R7eu/LnzPyX/AITU3/U8bRr25nmafk/b/ifcf7/4nkahuPD/APXPmeL4PD/66R7Ub7fsHz2n2/8AtH7k/kfc5n7c248T72+++7vGfvz04TjroeJy18Q306/M/wB76XP+Q0dHCfbU/9oACAECAwE/EP8A9kG4w/RQ2wbmAJy/p3KSc+gm2LBPkg3+sqJl2b1/svCrVc/mNVinHoUDM2D9swJtR4hx7hhyt7uH27fpAbnGGnnvCkGNoDlntFmBMsdlkOIFY/WcDcwPExEzG7vvLubvcwOvE8NBdOYnRiKiwMvHr72EpZ+8qgvxWojVRpKuGO8atyzD2QKrwS7EP1wEVk8ojZGp+MGIAV5RahoRbHURamiFS9Ri1omcMmm77wpdGjj/ANj5Spvt/kBMteZUpf21LDs/9GUPkS7arOYKjXHzLuOh+tWvmUMBNTFTFIbNREVuERBylsXtfE2oK9FxBJaIrgFtl58YgwQt75mjMEZsM8sXkUMIwrzAT4RsMBXEMt3hU938Iaiwg/q/PAO2A0jFbmLAqEL5na95viXGIomu8wAOpS1dQSxPEe2CVWBWV/M7IatMK3CaTOEDWamI938wU1FmUo9prPQBtg39dZs4EhfJEWkQnkmVPYTxPLXP+QtobKYEtMGZZhhiw0UtRcsy7iVNksAlAOlwGWczRBdAOBNl3/EzzDeZgBCYNYR4Ial52TyKMyjlaYETFuZqOhjD2jA3vmE2P1CLWBmsvEt5io6t3AJmCGotQBpm5SbylI2Qbx2iYxKSvMVryv3+JdqbfiAOeZ7BM0qEwIXdYvn9+ZnvY+xEV3uZKgKxErUBUcx15MqgTKE8eS4rFQTJHCoNUlFYpdSzK5UiV0ZeaYWTjk4MrzsP5jpbhmUId3P0MYzEmZ2wTdsyIGTiXlcW9ytq0y8Qk2/t/vS6UFzLIQ1EtiMFu747QBxzEI7lDcYjJivKWOZQAj3YJnmfuH81A4iNZMp25hcmC2psTVekCzIEdR4xRxuLusbjRXBAgcBAnCLnC2Pb3hmCBaJVxFyW5dGHDKVOz0XUGdtcwdaRfcOoVcVKNS+CcUWFd5Y+0vwmReNdBHTV7pWXKl9462VMhXEIiT42/aBA9zyzDUy1xEVUUsxQxCEYhnkzcSlTEuZ5goEuT2QZmhLiiAEigmznP4/f8RL3loKIKXEFwrcWHvECPLKGRVaUjFZfQPKDXhDDt0L7x4QalReCLSoY2xXniWUspHeXGuXouL5dNxCBAII3ehDZueYMO0iAol3glmDUu44U6GGVhnkxcEryxbTDBLKILLiIreYhBEVABHEUQxq6YiPhl1mWiuYlzBeYNFqdoqK0ZfaZtKuZTFCSwqCMWEV/cW9EKyzsS6l3FgUzuIri3Oo6OIaDELlXzL4ozvX99DxCPnoi1iU/uHmYu6ItVvLLp5YxaVyy4UZYqBZd9HE0vmGYdFQc9ANsqYcXQHHiK6iWAge0TllQHJAmeY0irAvEGoQ46l5WLKlvIV94OYswoDiMtQe8U4gVG7M6IriN3gHMpoQwziN8R+8TvES/igigo6WQ37RVbBt4IAzv+IrABcyh5jaCMtm70Qyy+AMxsysEOblRCr9k2joxpuOiprmTFkEpe8Euo4FoRYEuXVUuOdbPtF1HYhKp7IqrtH8xtFrMBXiLHcCtRmqmYgeCAbgwoMzlZ4Q3llo+xDNGfQCamQABiZNcQapHhLv2i2gRhbmCpXEfPtFpBQdQbixmMO8uOAhyPeVzzCimqxYlkmav2l6wzNxSEaftYpx+GLhq3HeORq0+Zc64mdXHeYouY78P3/MbB3NhHPtSniMyzUHRjcxjqEFMxWo7A03GfSFZlms3BFRsThioomEGo5d+094pHEwtcEuQwvoNJ7w4Jhbt+/37R6jlFno6FQtqWVG4gs2mz71CEwVy2S4Y3bmDMoMoGXcO8yqlqXeXRHs1fdLS92PaVMxlGNIYxMDC0niXRUWWdTRKYd8twJZo+WAFHpoiSVyJa56HJO+BFqMqioWxzCz7RfkgtEXANygBKrZYXvA7SCXiVFVTulOhTzC2yiUJWu4c1EWuJSBKuaVHKcMq1YFothVAI03uU8Z4OrjHEHZKqA3Cm5lDe4JoheWRlUR19yDQepSYDq+Zmwo4++K32jqEpDrdsOTMjPQSwH2+IVaAllVlrcsYjQ/dwkeBFdYqrDC5DiV5YUHGoae8dldoBEhhbHlFU7sQgyyxN8VAlh4mIR3bD7diF2BRMsw6aiX0OE6AcEyDv1u5YVZaCIqMJYDENG2HW0/EqJqHXTXFRojzEanknYalOCTKe0ag3BS4UUiTeZmGNm1Asf2ZegR68xqxYoht9oSiTUS8fKGIMCxke8QoJhC5izn4rUcwCEZc5ix0Bcsqiafi+g2sFEQtEKJkxW+IVgy4jMKJ3jB88wvEG8sMpmqWiOhLSlxGvzgcpa65gI7ZVDYuCJUssd3gQTBFoqb24ly4cj8QWIoR2W8TYcS1/ZUdktmC2IQQXNhgY9tnsmvvEpBqLUrmEZYxzglu3/UPoCGpok4SUrproXRHHibZ2wKLgVlMkE8PQOZqh0bFj4cf1DS0IlMxwTmCUoraaIgljUCBoIg1BCuIFzLG4wC4ZzKCDbM4Zcx0DggwRwF4IoHabZZlleBzDEBUvgiOAFH0QqVgSgQwtlTJdZmSKYEyYswS5mTZEqCyOKNwgOBFrU9oZIZdywvj+Y5kolllxNeRIpM4DBwFy54gcagiLpgqY7dQC3MvUOm/MCIOEua3GjsQhcu2pwEWp8wKj6RrObOR/v3hGGy42iiE7ghTDMG4KjslCks9GNQk3HiY/wDYl1iMQGZvQBqoMAjFLCm5Q1BQdifjMgHLHPyhMt+7AZdwaJgiZAltXmJBVzOKGEda5YFfP0rhsqUBEvqb3BUGIMdFTKKCoTaNlxQRerDq7Kf9iuvuhmZZomcMSZwhBqWs5GFsG8EAZ4IlVSpfMuzLqjxNJhsTInmNW9oTB6iqy6VDywtblPk+jfS5qKDKO5RKmHEaQXM9xGwKy+oFHQUQpLZduAEbe03snZm4DbLcEC4Abhneo3wQoZlijuUvZfPEVBFtR0SBW2Ubdpc3uw0fZjwQ2yyg4+rFwSNoenBGhzYlkU0HeBgZf3tlSqD2gqWcFGDMddc9ui/B08JCBUbSyWQOWXYJVllj2fkzNqD2BAbQo3tPGcUFJmDe8MDsXHIuIFLmBcV21ArH0b6L0ZgxpIJdQaR6KDFLacwXBQPEMiTaJgEnOJdFQzFRCCK4rLpLm5dOdhV7wFA0Es2G+2KAIsL3lcEuVlUSVR8kM290zaNSbVGwahVH0L63HoMxlD0tShgzFqLzN7jgjA4gqZpiNaY7uGCXc0irDFLGojAitiKGILS1pMjzDoeYiMogqHT5mFYWghZvtMV3QxXgiKe03hpB9YqLvBUxl+JgxYr6K4MYcTRMyWsDUDmLbKMsW4jFDE3FrMoFPMDtK9G4y5m2oQvYivfFxzGbUFx3ZQEbGBoG4USYOLu2BoI8A7Shb67ly+rCX08wbIYYcRV0JR6LEKLcyfaWFsQYILfQ0FxHQOYiy5il2zVYG/3+/wB5nu3SyRNxHrU3jizcswhWgSoFnxEbc4TO/iMveBKCvUy+j0YdK6hhg6GyO54lNEcYI6P3++8WVHJu9HBBcdYJuVS5dzJlBUMzSZJZjg/n/n+wMmiLmDQsyXGnkZkoYC98RTqLglqyxQDvou4lSjbDp9SxZcvosWHW5VxMzI6MMPHTWYrtgYmeUuhqoCOYazHcusZMQVmJuK5nmJbbrx5/z78Q/ErBlK2N9iAU9yhxOBmSXhNcyiErQgx8I8kcEASEFxruuIem4sXpcuPQh0uPo2R3DUzmKYi9RQXNsqOCEcHSsUzGF3DX/YxUhSzaqbxuDXhPvLrl2b7fEtY0jOrOR0yxcvRLag/6jkuKTOvvUH5Yog3zKINYfMAwRUDncP0ixZdxi9L9Ax6KPMIMCEzFxM0JtBgnbDDMYHSBAxiBggWYpY+Xb9/3KKgtt2ssGGTOJvFxcSZfEO5WNa8TBiUx7EiHMvzHt/Eyrv8AtlYsNrlBXpUuXL6PQ9DKijnEAWKioM3Bu1g2qxWwbfaCaJtNoo6YQuJmWlEEgyf5Lq2IvxLoU94Ao4Xx0jVrmOtSpDmDpmFc0/ctlKBCmJRVzKT0qKDFl9a9B15zeMbzaO0J5Q3DXRhubwjvo9CbcTzP6nLq8ulxmsOjlNIam392PoHT0PqfX//aAAgBAwMBPxD/AOxf/wBm/wD+a1//ACK/o17yvecX9S69CzBbmDZf6uoOLn2Q7sehQyyxwfli0EuLYyZ3G1f0kEzFA8yyoZhjUZxdXAAr9YOJuCIu0uAR4e0mwYAFEAmXrUXMaaYHdGBFzBziZNSugyQ9J+nVkwnMvPmI8sweYBxFm4TMzfqWNvx2lCLahcQGZawNShGxkhNf1riNVHTKGp5lKjiVCBOIG/StRWUuymVxUYndMHEuMzBceyBHUP1dxcYDqDtBuEVETWZjoMWZl1IgcxWVXos2OWYE0roJUBUuGGIF9CCWH11qV6LSznPtKe/RkohTMczBiqLRNJSBLYJAbmkuMLfTxN+hcyu5xiEqcc3uXKuAbj5mtQOultn9kSmyC/UQRpuPcuEAZxHoqYNyyLMBDWYLZnSbiQMxUZgEa7lkMxYGZR1VEWBL4JQXVKbMC6msd9Vj2hTLu6iRxv0GkW6ivMSsSouIHQzE15iuXEsbmUWkY5hkmBBmBUu41Y2uYTca16gjgW9CHMV9FqaMtZVTKBXMLRpFyosIjLIkoa9FzW4sZmE8xI78z3g3uXNwKl3DAOlxBc1g3NqlBHOKG5mxqVXRei+pcdHJm5RyhGEM9BRuJ5mI+ZbiE8y1V3liXiDGDZ0ElncIYbl3iamoeZueJgiVqOZRegTmXZCs2uYraJkaj26vTUp9IxYjqVE1CGBC5t0bVAvLNRJrpWYXtFqhPtYSyILlTsmRU3OxKds5jjEqiOXMe0D7xDiG5Jk3MXVyzoKw5iQAxGCjbpcZc11K66gxys1EiwZtjEIiBUGYswJVEpYlS8SlhCydveG4lkE3CrjbEARYFQbRBO3pBaJTMwhKODqReisbehiPQsFpA6PoWZdaLBZBuiJ5lYgNS1zUGJYll103mJLViZVIKToV1kFSzADOWGOJca6X0Egy79GE1uLFt6ZalyozfRKg5630Io4JR0bBxcuwKnAlEtArMRm1BdzFXx0haQEBlzBvMqVqWIO7YRetzMvoOJuVx6cWYUHSJ2IFagkuLCZgW0QV0OjA6GQOhhwSjpEbjLWGZpiWly4SURYYFysfu4IlXklxLntLl1Lt6LCX6KxA9OUxm2KBc1DcemovQI9VnEyiFWEUzQUW7l3BqEcQiMCbIZxMCO4CsdTBlnEuEWUsCo5gRhLrpXLA9WhDC4AEuEYVKp6LvLMwhE3UvqqIuJpOZtm/QECGGM1KhmGCb3ExCDMSOGApMOZxAjiEqpuBHoFQzn1toEECVGPeEtUxQIznoCkCwuXgXUyQs9MtxWpxCO4EZXQlzN0DvBiLNQUxbjoCM3CMCVE5nFylfoV0FOoSiNWEhKhEmDAl0wVw8x3nLp6FhiOd9DEqPaBF4moXDiXbLVChFT0lSkB6OZWIsCVHEcZlNwPoaS8Slg5SEqFtyqlQm+i9JTHqu05JdDV9coK4OWZclrioV3HxLgr0Lj0kHEGyBc3AmJxDVs8wPouIQUlSowHRldGMugQmTUMEQZJUXLxOIp1EgSBKlehVnoBUPMJd9BcNwygISoEMy+fptsj7iwZdxxN+hOriBubwRdtSxiN1O0y3AQPTXRYstalHUcwMQgFxZg4mLDUqagQLZ/E3n6Vyh0WV1ro+hnPS+UGWkN9QequtemglnMBomBDtFRKGZ5nEOYJUMsdQOCb1r6d9HpfS4PWma6mDFlwIHpqHp1OCLSHbHMuaTRAxKzEBhHmEC8xePv8AQuX6GX6KlQ6VoLpTMTUWFQlSutS+odCVECtEyelzCO44E5hDiG4wGKsECvrX6CV0WG1SgRjLjOYEqupCX1OgReY7bgQw0JxCOW4w6uENk0w2xaQPob9D1fWys3FHoOgIeqpqEeqvBHMLYjc0TxFUCETR0piF3KCXbf0HpfVJXXMPojMyo9CXDrqPS4RpCZvE5zmJmcxuppKzB5liQIJc0fTr1V1er1MUJXqevMJfXJhqC4iZlGLhLtuBueInEFEIYXA9b1row6X0T0B0Z5j6CMCOOmpfR6PQigWxxHpiIIsVPHeYWpWZdnoLYrfo10qJKhiHR6MZcvoe8ejA6cQgdDqS+qi1KbjyiXBGsCdEl5gquDzHELYmoRUQx61h1CVKJUqW9V9F5jKz0el9CEYX0qBKRpzN4isQzKlCptlricwjTiJxDMOfCDmVLMxX61SulQI4l9KhM9GXGV0rq9KYHoDpXXLFypXTcO0EIxYLJVRmk0QOIYK6XA9NSowLhbpI56ExKhcqPr4hHowldH0amkSYiQ6hDzKBHEj0N+0sZthtjzXquX0EqLBmD0LFxDqY9G00h1YahDodeeus3hOJp6N5hNSMehz7zb4h9FCPXzCM4mkddf/Z]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/images/loading.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/images/next.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhLQAtAMQQAPT09LGxsWJiYunp6dLS0oSEhG1tbd3d3aWlpZqamry8vI+Pj8fHx3l5eVdXV////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABAALAAAAAAtAC0AAAWuIAQ9ZGmeaKqm4+q+cCzPdG3feK7vfO//wNIAEIwhHI7EoLgCIJGCADNFeD4NhKlpYLUmiNpHofuMhgEL8rNwCBMaaiQCPA0I4gbGORF3FJZaB2NqZmEKBnELYQ8AAXFZiwNwXVJhA3xklXV3ZAJ0QQSIhJBBA4Nqc0WNfWxMCpydmkCCfV+ufVhasFaFU1Vkf4sHXXmLJaIOqcYkAwgBgMvR0tPU1dbXNC3VItYhADs=]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/images/nextlabel.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAPeDAP39/enp6UdHR6mpqY+Pj+bm5tDQ0MLCwuzs7O/v76qqqvHx8fb29vr6+v7+/lxcXPf39+3t7WdnZ2VlZV9fX0lJSc3Nze7u7ltbW/v7+7y8vKampurq6qenp3BwcPDw8FpaWoCAgLGxsWNjY2BgYPn5+ejo6ExMTFRUVE5OTqOjo9LS0mJiYufn52hoaI6OjldXV2FhYVFRUaioqNXV1d/f38HBwfz8/Pj4+JGRkbS0tF1dXd7e3oODg3p6eoGBgfLy8mZmZoKCgs/Pz1JSUllZWaurq4WFhW1tbWRkZOLi4srKylZWVqSkpLW1tbKysre3t0VFRV5eXqKiovPz88vLy8bGxmtra3V1dcjIyJqamlVVVXh4eIiIiEhISHd3d9jY2I2Njbq6upmZmeDg4G5ubktLS9bW1tzc3FNTU6WlpWpqap2dnU9PT66urr6+voyMjE1NTYaGhuTk5OHh4dfX16ysrOvr68PDw0JCQlhYWH5+fnNzc3l5eZubm+Pj42xsbPT09P///zMzMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAIMALAAAAAA/ACAAAAj/AAcNEkSwoMGDCBMqXMgQ4cCGECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKEECsDLDQsEbNkQICuREwYCbHZTQaOKSIAIFeOaoGGDEjYIOOiB4BECgQgweBBvseSDIBAsUE0aM2GGhxRUMZAQ5IHCiigEYIzAQIUHiy4KlOVCkOIJDUIMQUgQFeNAjggkTLZQuiQPHQZYUWhyUKMCBTYUVHDgAWErARZg2OgRl+EFBL4gXCcekeeKhTAKDRgQECMl0TQEuRf4I4qw3BhIFalTYYUAQQh8ZIFYcHCCgAGsCEnDU2SIHgpDOAZJg4OMBSYi3ggD08LKjxvDixyUAwXEw5YSCLiT0PjiSIAICBJMFiSCygYUPIAaJG1eJ/IMgBoA8MEEQnuWAEA96hCAIFBV0kB94/EngnyBDMCGDC3pRgIUGHIpBRwlCwICGXT6gAEZB+rH2wgQTCuJHBQQGMMEJAtSYxwYimLFBQTQU4QF2M0SxH0hUJBCfZgicBkB7FzQZAQML3HGkIAsEkAFBDCBwQ0pcVtTAEAaEKaYBFnjXJUQl2HDAmmwe8MYZZ8Yp55x01mnnnQo9hCdEAu0JUUAAOw==]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/images/prev.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhLQAtAMQQALGxsWJiYvT09G1tbdLS0t3d3YSEhOnp6cfHx5qamqWlpXl5eby8vI+Pj1dXV////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABAALAAAAAAtAC0AAAWw4COOZGme6AlBaeu+IgvPdG3feK7vfO//wCCtIHwJAAHHophCDBxQB4JZOhiiUQB1hMRGGVvC0wsNCJiCBDm6IBa76wC4WLiuHYqzUKC4OwxuQk53A1NMAHcBAHpFAklkDQdbDwRkAQSTIgVrBpiZdmQJjEwHC4lak3BkA55UaX6Rk2J+i6mPq4ZUVn4JmYNrga59ZKiZdV7FmQ+qksojRwqtztPU1dbX2NnaDzLWKyEAOw==]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/images/prevlabel.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhPwAgAPeJANzc3P39/fb29rq6utra2v7+/ltbW8HBwfX19fz8/F5eXk1NTV9fX/r6+uDg4NXV1djY2ICAgGBgYFFRUVRUVEpKSt3d3eLi4tnZ2cDAwOPj4/n5+cLCwsPDw/Dw8PLy8ru7u6CgoN/f34ODg0JCQktLS11dXVpaWnJycmpqar6+vpCQkJSUlMzMzPj4+KSkpFJSUmVlZcbGxsTExGxsbIGBgba2tuXl5WNjY3BwcHZ2dmZmZufn5+vr687OztfX18rKysnJyejo6FxcXFBQUKGhoY2NjZubm3h4eHt7e5iYmN7e3tPT00BAQLi4uEdHR39/f3p6evPz89bW1qenp+bm5k9PT3d3d2RkZEhISHl5eby8vPT09HR0dG9vb62traOjo/v7+66urr+/v25ubmFhYWlpadTU1I6OjrW1tb29vaKiourq6p2dnbm5uVVVVZqamqampvHx8ff396qqqtDQ0IyMjMjIyKioqKurq2JiYoaGhklJSVhYWLOzs+Hh4UFBQXFxcc/Pz8vLy3Nzc+/v71dXV+7u7v///zMzMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAIkALAAAAAA/ACAAAAj/ABEJHEiwoMGDCBMqNJgo0cKHECM+dCixosWLGDNq3Mixo8ePIEOKHEmypMmTKFNubOBjTAYOU1wIJJAhg4oWQgR+6HCg5wEOPAbJKDBwQ5A7IhHUmMCgaRIHiIrAUKCgTIw8iCwYMGTgxAkFddBMADCQgAkjIgVA8SLgQ5oSdhKsMQBgg4UcfX5osLJCBIS/BQ4sCDEQTwUfaSMQSoCowAkdUl4ouCEwDhEOVRZQKeghBQ0EiBBcCUQ0pIAIOTwgsJHFSAAwBrZgUINDgoMLFEaocOOkA2M4FIAgYlIBxEgBI4iYGCIBCQZEL2DEGEIBxQxEAAyYMLMDx4gGiDAszVCCSIkEHsdr7Ogw48ccgUUMAPlSYoBAABNYaBCx5ELpJGQ4gAULjCXWhUEhMNBDAjro8QF2C9BxkAwL7CGBICSdhgJ4BIWgwAWIgFBCG1lNsMIDKJ5xiECF0FBBFAFkqEUKHA50xBsiIMIFEnwE8QcFT5AgZBN+CFTAEYCIUVIAGjhQ2kBsACATIj08IMQGABCgpZYeDCQHBKCpJOZFNxAAwJlonhnjmA+1YMMAcMY5AAhhsPlQAQHkqaeedvbp55+ABiqonxQNulBDAQEAOw==]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/images/thumb-1.jpg</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKICAgICAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbiI+CjxoZWFkPgoJCgk8dGl0bGU+TGlnaHRib3ggSlMgdjIuMCB8IFRlc3QgUGFnZTwvdGl0bGU+CgoJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3MvbGlnaHRib3guY3NzIiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiIgLz4KCQoJPHNjcmlwdCBzcmM9ImpzL3Byb3RvdHlwZS5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KCTxzY3JpcHQgc3JjPSJqcy9zY3JpcHRhY3Vsb3VzLmpzP2xvYWQ9ZWZmZWN0cyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KCTxzY3JpcHQgc3JjPSJqcy9saWdodGJveC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KCgk8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJCWJvZHl7IGNvbG9yOiAjMzMzOyBmb250OiAxM3B4ICdMdWNpZGEgR3JhbmRlJywgVmVyZGFuYSwgc2Fucy1zZXJpZjsJfQoJPC9zdHlsZT4KCjwvaGVhZD4KPGJvZHk+CgoKPGgxPjxhIGhyZWY9Imh0dHA6Ly93d3cuaHVkZGxldG9nZXRoZXIuY29tL3Byb2plY3RzL2xpZ2h0Ym94Mi8iPkxpZ2h0Ym94IEpTIDxlbT52Mi4wPC9lbT48L2E+PC9oMT4KPHA+PGEgaHJlZj0iaHR0cDovL3d3dy5odWRkbGV0b2dldGhlci5jb20iPmJ5IExva2VzaCBEaGFrYXI8L2E+PC9wPgoKPGgyPkV4YW1wbGU8L2gyPgoKPGEgaHJlZj0iaW1hZ2VzL2ltYWdlLTEuanBnIiByZWw9ImxpZ2h0Ym94Ij48aW1nIHNyYz0iaW1hZ2VzL3RodW1iLTEuanBnIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjQwIiBhbHQ9IiIgLz48L2E+CgoKCgo8aDI+SG93IHRvIFVzZTo8L2gyPgo8aDM+UGFydCAxIC0gU2V0dXA8L2gzPgo8b2w+CjxsaT5MaWdodGJveCB2Mi4wIHVzZXMgdGhlIFByb3RvdHlwZSBGcmFtZXdvcmsgYW5kIFNjcmlwdGFjdWxvdXMgRWZmZWN0cyBMaWJyYXJ5LiBZb3Ugd2lsbCBuZWVkIHRvIGluY2x1ZGUgdGhlc2UgdGhyZWUgSmF2YXNjcmlwdCBmaWxlcyBpbiB5b3VyIGhlYWRlci4KPHByZT48Y29kZT4mbHQ7c2NyaXB0IHR5cGU9JnF1b3Q7dGV4dC9qYXZhc2NyaXB0JnF1b3Q7IHNyYz0mcXVvdDtqcy9wcm90b3R5cGUuanMmcXVvdDsmZ3Q7Jmx0Oy9zY3JpcHQmZ3Q7CiZsdDtzY3JpcHQgdHlwZT0mcXVvdDt0ZXh0L2phdmFzY3JpcHQmcXVvdDsgc3JjPSZxdW90O2pzL3NjcmlwdGFjdWxvdXMuanM/bG9hZD1lZmZlY3RzJnF1b3Q7Jmd0OyZsdDsvc2NyaXB0Jmd0OwombHQ7c2NyaXB0IHR5cGU9JnF1b3Q7dGV4dC9qYXZhc2NyaXB0JnF1b3Q7IHNyYz0mcXVvdDtqcy9saWdodGJveC5qcyZxdW90OyZndDsmbHQ7L3NjcmlwdCZndDsKPC9jb2RlPjwvcHJlPgo8L2xpPgo8bGk+SW5jbHVkZSB0aGUgTGlnaHRib3ggQ1NTIGZpbGUgKG9yIGFwcGVuZCB5b3VyIGFjdGl2ZSBzdHlsZXNoZWV0IHdpdGggdGhlIExpZ2h0Ym94IHN0eWxlcykuCjxwcmU+PGNvZGU+Jmx0O2xpbmsgcmVsPSZxdW90O3N0eWxlc2hlZXQmcXVvdDsgaHJlZj0mcXVvdDtjc3MvbGlnaHRib3guY3NzJnF1b3Q7IHR5cGU9JnF1b3Q7dGV4dC9jc3MmcXVvdDsgbWVkaWE9JnF1b3Q7c2NyZWVuJnF1b3Q7IC8mZ3Q7CjwvY29kZT48L3ByZT4KPC9saT4KPGxpPkNoZWNrIHRoZSBDU1MgYW5kIG1ha2Ugc3VyZSB0aGUgcmVmZXJlbmNlZCA8Y29kZT5wcmV2bGFiZWwuZ2lmPC9jb2RlPiBhbmQgPGNvZGU+bmV4dGxhYmVsLmdpZjwvY29kZT4gZmlsZXMgYXJlIGluIHRoZSByaWdodCBsb2NhdGlvbi4gQWxzbywgbWFrZSBzdXJlIHRoZSA8Y29kZT5sb2FkaW5nLmdpZjwvY29kZT4gYW5kIDxjb2RlPmNsb3NlbGFiZWwuZ2lmPC9jb2RlPiBmaWxlcyBhcyByZWZlcmVuY2VkIG5lYXIgdGhlIHRvcCBvZiB0aGUgPGNvZGU+bGlnaHRib3guanM8L2NvZGU+IGZpbGUgYXJlIGluIHRoZSByaWdodCBsb2NhdGlvbi48L2xpPgo8L29sPgo8aDM+UGFydCAyIC0gQWN0aXZhdGU8L2gzPgo8b2w+CjxsaT5BZGQgYSA8Y29kZT5yZWw9ImxpZ2h0Ym94IjwvY29kZT4gYXR0cmlidXRlIHRvIGFueSBsaW5rIHRhZyB0byBhY3RpdmF0ZSB0aGUgbGlnaHRib3guIEZvciBleGFtcGxlOgo8cHJlPjxjb2RlPiZsdDthIGhyZWY9JnF1b3Q7aW1hZ2VzL2ltYWdlLTEuanBnJnF1b3Q7IHJlbD0mcXVvdDtsaWdodGJveCZxdW90OyB0aXRsZT0mcXVvdDtteSBjYXB0aW9uJnF1b3Q7Jmd0O2ltYWdlICMxJmx0Oy9hJmd0Owo8L2NvZGU+PC9wcmU+CjxlbT5PcHRpb25hbDogPC9lbT5Vc2UgdGhlIDxjb2RlPnRpdGxlPC9jb2RlPiBhdHRyaWJ1dGUgaWYgeW91IHdhbnQgdG8gc2hvdyBhIGNhcHRpb24uCQk8L2xpPgo8bGk+SWYgeW91IGhhdmUgYSBzZXQgb2YgcmVsYXRlZCBpbWFnZXMgdGhhdCB5b3Ugd291bGQgbGlrZSB0byBncm91cCwgZm9sbG93IHN0ZXAgb25lIGJ1dCBhZGRpdGlvbmFsbHkgaW5jbHVkZSBhIGdyb3VwIG5hbWUgYmV0d2VlbiBzcXVhcmUgYnJhY2tldHMgaW4gdGhlIHJlbCBhdHRyaWJ1dGUuIEZvciBleGFtcGxlOiAKPHByZT48Y29kZT4mbHQ7YSBocmVmPSZxdW90O2ltYWdlcy9pbWFnZS0xLmpwZyZxdW90OyByZWw9JnF1b3Q7bGlnaHRib3hbcm9hZHRyaXBdJnF1b3Q7Jmd0O2ltYWdlICMxJmx0Oy9hJmd0OwombHQ7YSBocmVmPSZxdW90O2ltYWdlcy9pbWFnZS0yLmpwZyZxdW90OyByZWw9JnF1b3Q7bGlnaHRib3hbcm9hZHRyaXBdJnF1b3Q7Jmd0O2ltYWdlICMyJmx0Oy9hJmd0OwombHQ7YSBocmVmPSZxdW90O2ltYWdlcy9pbWFnZS0zLmpwZyZxdW90OyByZWw9JnF1b3Q7bGlnaHRib3hbcm9hZHRyaXBdJnF1b3Q7Jmd0O2ltYWdlICMzJmx0Oy9hJmd0Owo8L2NvZGU+PC9wcmU+Ck5vIGxpbWl0cyB0byB0aGUgbnVtYmVyIG9mIGltYWdlIHNldHMgcGVyIHBhZ2Ugb3IgaG93IG1hbnkgaW1hZ2VzIGFyZSBhbGxvd2VkIGluIGVhY2ggc2V0LiBHbyBudXRzITwvbGk+Cjwvb2w+CQoKCjwvYm9keT4KPC9odG1sPgo=]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/lightbox/js/effects.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gQ29weXJpZ2h0IChjKSAyMDA1IFRob21hcyBGdWNocyAoaHR0cDovL3NjcmlwdC5hY3Vsby51cywgaHR0cDovL21pci5hY3Vsby51cykKLy8gQ29udHJpYnV0b3JzOgovLyAgSnVzdGluIFBhbG1lciAoaHR0cDovL2VuY3l0ZW1lZGlhLmNvbS8pCi8vICBNYXJrIFBpbGdyaW0gKGh0dHA6Ly9kaXZlaW50b21hcmsub3JnLykKLy8gIE1hcnRpbiBCaWFsYXNpbmtpCi8vIAovLyBTZWUgc2NyaXB0YWN1bG91cy5qcyBmb3IgZnVsbCBsaWNlbnNlLiAgCgovKiAtLS0tLS0tLS0tLS0tIGVsZW1lbnQgZXh0IC0tLS0tLS0tLS0tLS0tICovICAKIAovLyBjb252ZXJ0cyByZ2IoKSBhbmQgI3h4eCB0byAjeHh4eHh4IGZvcm1hdCwgIAovLyByZXR1cm5zIHNlbGYgKG9yIGZpcnN0IGFyZ3VtZW50KSBpZiBub3QgY29udmVydGFibGUgIApTdHJpbmcucHJvdG90eXBlLnBhcnNlQ29sb3IgPSBmdW5jdGlvbigpIHsgIAogIHZhciBjb2xvciA9ICcjJzsgIAogIGlmKHRoaXMuc2xpY2UoMCw0KSA9PSAncmdiKCcpIHsgIAogICAgdmFyIGNvbHMgPSB0aGlzLnNsaWNlKDQsdGhpcy5sZW5ndGgtMSkuc3BsaXQoJywnKTsgIAogICAgdmFyIGk9MDsgZG8geyBjb2xvciArPSBwYXJzZUludChjb2xzW2ldKS50b0NvbG9yUGFydCgpIH0gd2hpbGUgKCsraTwzKTsgIAogIH0gZWxzZSB7ICAKICAgIGlmKHRoaXMuc2xpY2UoMCwxKSA9PSAnIycpIHsgIAogICAgICBpZih0aGlzLmxlbmd0aD09NCkgZm9yKHZhciBpPTE7aTw0O2krKykgY29sb3IgKz0gKHRoaXMuY2hhckF0KGkpICsgdGhpcy5jaGFyQXQoaSkpLnRvTG93ZXJDYXNlKCk7ICAKICAgICAgaWYodGhpcy5sZW5ndGg9PTcpIGNvbG9yID0gdGhpcy50b0xvd2VyQ2FzZSgpOyAgCiAgICB9ICAKICB9ICAKICByZXR1cm4oY29sb3IubGVuZ3RoPT03ID8gY29sb3IgOiAoYXJndW1lbnRzWzBdIHx8IHRoaXMpKTsgIAp9CgpFbGVtZW50LmNvbGxlY3RUZXh0Tm9kZXMgPSBmdW5jdGlvbihlbGVtZW50KSB7ICAKICByZXR1cm4gJEEoJChlbGVtZW50KS5jaGlsZE5vZGVzKS5jb2xsZWN0KCBmdW5jdGlvbihub2RlKSB7CiAgICByZXR1cm4gKG5vZGUubm9kZVR5cGU9PTMgPyBub2RlLm5vZGVWYWx1ZSA6IAogICAgICAobm9kZS5oYXNDaGlsZE5vZGVzKCkgPyBFbGVtZW50LmNvbGxlY3RUZXh0Tm9kZXMobm9kZSkgOiAnJykpOwogIH0pLmZsYXR0ZW4oKS5qb2luKCcnKTsKfQoKRWxlbWVudC5jb2xsZWN0VGV4dE5vZGVzSWdub3JlQ2xhc3MgPSBmdW5jdGlvbihlbGVtZW50LCBjbGFzc05hbWUpIHsgIAogIHJldHVybiAkQSgkKGVsZW1lbnQpLmNoaWxkTm9kZXMpLmNvbGxlY3QoIGZ1bmN0aW9uKG5vZGUpIHsKICAgIHJldHVybiAobm9kZS5ub2RlVHlwZT09MyA/IG5vZGUubm9kZVZhbHVlIDogCiAgICAgICgobm9kZS5oYXNDaGlsZE5vZGVzKCkgJiYgIUVsZW1lbnQuaGFzQ2xhc3NOYW1lKG5vZGUsY2xhc3NOYW1lKSkgPyAKICAgICAgICBFbGVtZW50LmNvbGxlY3RUZXh0Tm9kZXMobm9kZSkgOiAnJykpOwogIH0pLmZsYXR0ZW4oKS5qb2luKCcnKTsKfQoKRWxlbWVudC5zZXRTdHlsZSA9IGZ1bmN0aW9uKGVsZW1lbnQsIHN0eWxlKSB7CiAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgZm9yKGsgaW4gc3R5bGUpIGVsZW1lbnQuc3R5bGVbay5jYW1lbGl6ZSgpXSA9IHN0eWxlW2tdOwp9CgpFbGVtZW50LnNldENvbnRlbnRab29tID0gZnVuY3Rpb24oZWxlbWVudCwgcGVyY2VudCkgeyAgCiAgRWxlbWVudC5zZXRTdHlsZShlbGVtZW50LCB7Zm9udFNpemU6IChwZXJjZW50LzEwMCkgKyAnZW0nfSk7ICAgCiAgaWYobmF2aWdhdG9yLmFwcFZlcnNpb24uaW5kZXhPZignQXBwbGVXZWJLaXQnKT4wKSB3aW5kb3cuc2Nyb2xsQnkoMCwwKTsgIAp9CgpFbGVtZW50LmdldE9wYWNpdHkgPSBmdW5jdGlvbihlbGVtZW50KXsgIAogIHZhciBvcGFjaXR5OwogIGlmIChvcGFjaXR5ID0gRWxlbWVudC5nZXRTdHlsZShlbGVtZW50LCAnb3BhY2l0eScpKSAgCiAgICByZXR1cm4gcGFyc2VGbG9hdChvcGFjaXR5KTsgIAogIGlmIChvcGFjaXR5ID0gKEVsZW1lbnQuZ2V0U3R5bGUoZWxlbWVudCwgJ2ZpbHRlcicpIHx8ICcnKS5tYXRjaCgvYWxwaGFcKG9wYWNpdHk9KC4qKVwpLykpICAKICAgIGlmKG9wYWNpdHlbMV0pIHJldHVybiBwYXJzZUZsb2F0KG9wYWNpdHlbMV0pIC8gMTAwOyAgCiAgcmV0dXJuIDEuMDsgIAp9CgpFbGVtZW50LnNldE9wYWNpdHkgPSBmdW5jdGlvbihlbGVtZW50LCB2YWx1ZSl7ICAKICBlbGVtZW50PSAkKGVsZW1lbnQpOyAgCiAgaWYgKHZhbHVlID09IDEpewogICAgRWxlbWVudC5zZXRTdHlsZShlbGVtZW50LCB7IG9wYWNpdHk6IAogICAgICAoL0dlY2tvLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmICEvS29ucXVlcm9yfFNhZmFyaXxLSFRNTC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkgPyAKICAgICAgMC45OTk5OTkgOiBudWxsIH0pOwogICAgaWYoL01TSUUvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpICAKICAgICAgRWxlbWVudC5zZXRTdHlsZShlbGVtZW50LCB7ZmlsdGVyOiBFbGVtZW50LmdldFN0eWxlKGVsZW1lbnQsJ2ZpbHRlcicpLnJlcGxhY2UoL2FscGhhXChbXlwpXSpcKS9naSwnJyl9KTsgIAogIH0gZWxzZSB7ICAKICAgIGlmKHZhbHVlIDwgMC4wMDAwMSkgdmFsdWUgPSAwOyAgCiAgICBFbGVtZW50LnNldFN0eWxlKGVsZW1lbnQsIHtvcGFjaXR5OiB2YWx1ZX0pOwogICAgaWYoL01TSUUvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpICAKICAgICBFbGVtZW50LnNldFN0eWxlKGVsZW1lbnQsIAogICAgICAgeyBmaWx0ZXI6IEVsZW1lbnQuZ2V0U3R5bGUoZWxlbWVudCwnZmlsdGVyJykucmVwbGFjZSgvYWxwaGFcKFteXCldKlwpL2dpLCcnKSArCiAgICAgICAgICAgICAgICAgJ2FscGhhKG9wYWNpdHk9Jyt2YWx1ZSoxMDArJyknIH0pOyAgCiAgfSAgIAp9ICAKIApFbGVtZW50LmdldElubGluZU9wYWNpdHkgPSBmdW5jdGlvbihlbGVtZW50KXsgIAogIHJldHVybiAkKGVsZW1lbnQpLnN0eWxlLm9wYWNpdHkgfHwgJyc7Cn0gIAoKRWxlbWVudC5jaGlsZHJlbldpdGhDbGFzc05hbWUgPSBmdW5jdGlvbihlbGVtZW50LCBjbGFzc05hbWUpIHsgIAogIHJldHVybiAkQSgkKGVsZW1lbnQpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCcqJykpLnNlbGVjdCgKICAgIGZ1bmN0aW9uKGMpIHsgcmV0dXJuIEVsZW1lbnQuaGFzQ2xhc3NOYW1lKGMsIGNsYXNzTmFtZSkgfSk7Cn0KCkFycmF5LnByb3RvdHlwZS5jYWxsID0gZnVuY3Rpb24oKSB7CiAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7CiAgdGhpcy5lYWNoKGZ1bmN0aW9uKGYpeyBmLmFwcGx5KHRoaXMsIGFyZ3MpIH0pOwp9CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnZhciBFZmZlY3QgPSB7CiAgdGFnaWZ5VGV4dDogZnVuY3Rpb24oZWxlbWVudCkgewogICAgdmFyIHRhZ2lmeVN0eWxlID0gJ3Bvc2l0aW9uOnJlbGF0aXZlJzsKICAgIGlmKC9NU0lFLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB0YWdpZnlTdHlsZSArPSAnO3pvb206MSc7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgICRBKGVsZW1lbnQuY2hpbGROb2RlcykuZWFjaCggZnVuY3Rpb24oY2hpbGQpIHsKICAgICAgaWYoY2hpbGQubm9kZVR5cGU9PTMpIHsKICAgICAgICBjaGlsZC5ub2RlVmFsdWUudG9BcnJheSgpLmVhY2goIGZ1bmN0aW9uKGNoYXJhY3RlcikgewogICAgICAgICAgZWxlbWVudC5pbnNlcnRCZWZvcmUoCiAgICAgICAgICAgIEJ1aWxkZXIubm9kZSgnc3Bhbicse3N0eWxlOiB0YWdpZnlTdHlsZX0sCiAgICAgICAgICAgICAgY2hhcmFjdGVyID09ICcgJyA/IFN0cmluZy5mcm9tQ2hhckNvZGUoMTYwKSA6IGNoYXJhY3RlciksIAogICAgICAgICAgICAgIGNoaWxkKTsKICAgICAgICB9KTsKICAgICAgICBFbGVtZW50LnJlbW92ZShjaGlsZCk7CiAgICAgIH0KICAgIH0pOwogIH0sCiAgbXVsdGlwbGU6IGZ1bmN0aW9uKGVsZW1lbnQsIGVmZmVjdCkgewogICAgdmFyIGVsZW1lbnRzOwogICAgaWYoKCh0eXBlb2YgZWxlbWVudCA9PSAnb2JqZWN0JykgfHwgCiAgICAgICAgKHR5cGVvZiBlbGVtZW50ID09ICdmdW5jdGlvbicpKSAmJiAKICAgICAgIChlbGVtZW50Lmxlbmd0aCkpCiAgICAgIGVsZW1lbnRzID0gZWxlbWVudDsKICAgIGVsc2UKICAgICAgZWxlbWVudHMgPSAkKGVsZW1lbnQpLmNoaWxkTm9kZXM7CiAgICAgIAogICAgdmFyIG9wdGlvbnMgPSBPYmplY3QuZXh0ZW5kKHsKICAgICAgc3BlZWQ6IDAuMSwKICAgICAgZGVsYXk6IDAuMAogICAgfSwgYXJndW1lbnRzWzJdIHx8IHt9KTsKICAgIHZhciBtYXN0ZXJEZWxheSA9IG9wdGlvbnMuZGVsYXk7CgogICAgJEEoZWxlbWVudHMpLmVhY2goIGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7CiAgICAgIG5ldyBlZmZlY3QoZWxlbWVudCwgT2JqZWN0LmV4dGVuZChvcHRpb25zLCB7IGRlbGF5OiBpbmRleCAqIG9wdGlvbnMuc3BlZWQgKyBtYXN0ZXJEZWxheSB9KSk7CiAgICB9KTsKICB9LAogIFBBSVJTOiB7CiAgICAnc2xpZGUnOiAgWydTbGlkZURvd24nLCdTbGlkZVVwJ10sCiAgICAnYmxpbmQnOiAgWydCbGluZERvd24nLCdCbGluZFVwJ10sCiAgICAnYXBwZWFyJzogWydBcHBlYXInLCdGYWRlJ10KICB9LAogIHRvZ2dsZTogZnVuY3Rpb24oZWxlbWVudCwgZWZmZWN0KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIGVmZmVjdCA9IChlZmZlY3QgfHwgJ2FwcGVhcicpLnRvTG93ZXJDYXNlKCk7CiAgICB2YXIgb3B0aW9ucyA9IE9iamVjdC5leHRlbmQoewogICAgICBxdWV1ZTogeyBwb3NpdGlvbjonZW5kJywgc2NvcGU6KGVsZW1lbnQuaWQgfHwgJ2dsb2JhbCcpIH0KICAgIH0sIGFyZ3VtZW50c1syXSB8fCB7fSk7CiAgICBFZmZlY3RbRWxlbWVudC52aXNpYmxlKGVsZW1lbnQpID8gCiAgICAgIEVmZmVjdC5QQUlSU1tlZmZlY3RdWzFdIDogRWZmZWN0LlBBSVJTW2VmZmVjdF1bMF1dKGVsZW1lbnQsIG9wdGlvbnMpOwogIH0KfTsKCnZhciBFZmZlY3QyID0gRWZmZWN0OyAvLyBkZXByZWNhdGVkCgovKiAtLS0tLS0tLS0tLS0tIHRyYW5zaXRpb25zIC0tLS0tLS0tLS0tLS0gKi8KCkVmZmVjdC5UcmFuc2l0aW9ucyA9IHt9CgpFZmZlY3QuVHJhbnNpdGlvbnMubGluZWFyID0gZnVuY3Rpb24ocG9zKSB7CiAgcmV0dXJuIHBvczsKfQpFZmZlY3QuVHJhbnNpdGlvbnMuc2lub2lkYWwgPSBmdW5jdGlvbihwb3MpIHsKICByZXR1cm4gKC1NYXRoLmNvcyhwb3MqTWF0aC5QSSkvMikgKyAwLjU7Cn0KRWZmZWN0LlRyYW5zaXRpb25zLnJldmVyc2UgID0gZnVuY3Rpb24ocG9zKSB7CiAgcmV0dXJuIDEtcG9zOwp9CkVmZmVjdC5UcmFuc2l0aW9ucy5mbGlja2VyID0gZnVuY3Rpb24ocG9zKSB7CiAgcmV0dXJuICgoLU1hdGguY29zKHBvcypNYXRoLlBJKS80KSArIDAuNzUpICsgTWF0aC5yYW5kb20oKS80Owp9CkVmZmVjdC5UcmFuc2l0aW9ucy53b2JibGUgPSBmdW5jdGlvbihwb3MpIHsKICByZXR1cm4gKC1NYXRoLmNvcyhwb3MqTWF0aC5QSSooOSpwb3MpKS8yKSArIDAuNTsKfQpFZmZlY3QuVHJhbnNpdGlvbnMucHVsc2UgPSBmdW5jdGlvbihwb3MpIHsKICByZXR1cm4gKE1hdGguZmxvb3IocG9zKjEwKSAlIDIgPT0gMCA/IAogICAgKHBvcyoxMC1NYXRoLmZsb29yKHBvcyoxMCkpIDogMS0ocG9zKjEwLU1hdGguZmxvb3IocG9zKjEwKSkpOwp9CkVmZmVjdC5UcmFuc2l0aW9ucy5ub25lID0gZnVuY3Rpb24ocG9zKSB7CiAgcmV0dXJuIDA7Cn0KRWZmZWN0LlRyYW5zaXRpb25zLmZ1bGwgPSBmdW5jdGlvbihwb3MpIHsKICByZXR1cm4gMTsKfQoKLyogLS0tLS0tLS0tLS0tLSBjb3JlIGVmZmVjdHMgLS0tLS0tLS0tLS0tLSAqLwoKRWZmZWN0LlNjb3BlZFF1ZXVlID0gQ2xhc3MuY3JlYXRlKCk7Ck9iamVjdC5leHRlbmQoT2JqZWN0LmV4dGVuZChFZmZlY3QuU2NvcGVkUXVldWUucHJvdG90eXBlLCBFbnVtZXJhYmxlKSwgewogIGluaXRpYWxpemU6IGZ1bmN0aW9uKCkgewogICAgdGhpcy5lZmZlY3RzICA9IFtdOwogICAgdGhpcy5pbnRlcnZhbCA9IG51bGw7CiAgfSwKICBfZWFjaDogZnVuY3Rpb24oaXRlcmF0b3IpIHsKICAgIHRoaXMuZWZmZWN0cy5fZWFjaChpdGVyYXRvcik7CiAgfSwKICBhZGQ6IGZ1bmN0aW9uKGVmZmVjdCkgewogICAgdmFyIHRpbWVzdGFtcCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwogICAgCiAgICB2YXIgcG9zaXRpb24gPSAodHlwZW9mIGVmZmVjdC5vcHRpb25zLnF1ZXVlID09ICdzdHJpbmcnKSA/IAogICAgICBlZmZlY3Qub3B0aW9ucy5xdWV1ZSA6IGVmZmVjdC5vcHRpb25zLnF1ZXVlLnBvc2l0aW9uOwogICAgCiAgICBzd2l0Y2gocG9zaXRpb24pIHsKICAgICAgY2FzZSAnZnJvbnQnOgogICAgICAgIC8vIG1vdmUgdW5zdGFydGVkIGVmZmVjdHMgYWZ0ZXIgdGhpcyBlZmZlY3QgIAogICAgICAgIHRoaXMuZWZmZWN0cy5maW5kQWxsKGZ1bmN0aW9uKGUpeyByZXR1cm4gZS5zdGF0ZT09J2lkbGUnIH0pLmVhY2goIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgZS5zdGFydE9uICArPSBlZmZlY3QuZmluaXNoT247CiAgICAgICAgICAgIGUuZmluaXNoT24gKz0gZWZmZWN0LmZpbmlzaE9uOwogICAgICAgICAgfSk7CiAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgJ2VuZCc6CiAgICAgICAgLy8gc3RhcnQgZWZmZWN0IGFmdGVyIGxhc3QgcXVldWVkIGVmZmVjdCBoYXMgZmluaXNoZWQKICAgICAgICB0aW1lc3RhbXAgPSB0aGlzLmVmZmVjdHMucGx1Y2soJ2ZpbmlzaE9uJykubWF4KCkgfHwgdGltZXN0YW1wOwogICAgICAgIGJyZWFrOwogICAgfQogICAgCiAgICBlZmZlY3Quc3RhcnRPbiAgKz0gdGltZXN0YW1wOwogICAgZWZmZWN0LmZpbmlzaE9uICs9IHRpbWVzdGFtcDsKICAgIHRoaXMuZWZmZWN0cy5wdXNoKGVmZmVjdCk7CiAgICBpZighdGhpcy5pbnRlcnZhbCkgCiAgICAgIHRoaXMuaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCh0aGlzLmxvb3AuYmluZCh0aGlzKSwgNDApOwogIH0sCiAgcmVtb3ZlOiBmdW5jdGlvbihlZmZlY3QpIHsKICAgIHRoaXMuZWZmZWN0cyA9IHRoaXMuZWZmZWN0cy5yZWplY3QoZnVuY3Rpb24oZSkgeyByZXR1cm4gZT09ZWZmZWN0IH0pOwogICAgaWYodGhpcy5lZmZlY3RzLmxlbmd0aCA9PSAwKSB7CiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCk7CiAgICAgIHRoaXMuaW50ZXJ2YWwgPSBudWxsOwogICAgfQogIH0sCiAgbG9vcDogZnVuY3Rpb24oKSB7CiAgICB2YXIgdGltZVBvcyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwogICAgdGhpcy5lZmZlY3RzLmludm9rZSgnbG9vcCcsIHRpbWVQb3MpOwogIH0KfSk7CgpFZmZlY3QuUXVldWVzID0gewogIGluc3RhbmNlczogJEgoKSwKICBnZXQ6IGZ1bmN0aW9uKHF1ZXVlTmFtZSkgewogICAgaWYodHlwZW9mIHF1ZXVlTmFtZSAhPSAnc3RyaW5nJykgcmV0dXJuIHF1ZXVlTmFtZTsKICAgIAogICAgaWYoIXRoaXMuaW5zdGFuY2VzW3F1ZXVlTmFtZV0pCiAgICAgIHRoaXMuaW5zdGFuY2VzW3F1ZXVlTmFtZV0gPSBuZXcgRWZmZWN0LlNjb3BlZFF1ZXVlKCk7CiAgICAgIAogICAgcmV0dXJuIHRoaXMuaW5zdGFuY2VzW3F1ZXVlTmFtZV07CiAgfQp9CkVmZmVjdC5RdWV1ZSA9IEVmZmVjdC5RdWV1ZXMuZ2V0KCdnbG9iYWwnKTsKCkVmZmVjdC5EZWZhdWx0T3B0aW9ucyA9IHsKICB0cmFuc2l0aW9uOiBFZmZlY3QuVHJhbnNpdGlvbnMuc2lub2lkYWwsCiAgZHVyYXRpb246ICAgMS4wLCAgIC8vIHNlY29uZHMKICBmcHM6ICAgICAgICAyNS4wLCAgLy8gbWF4LiAyNWZwcyBkdWUgdG8gRWZmZWN0LlF1ZXVlIGltcGxlbWVudGF0aW9uCiAgc3luYzogICAgICAgZmFsc2UsIC8vIHRydWUgZm9yIGNvbWJpbmluZwogIGZyb206ICAgICAgIDAuMCwKICB0bzogICAgICAgICAxLjAsCiAgZGVsYXk6ICAgICAgMC4wLAogIHF1ZXVlOiAgICAgICdwYXJhbGxlbCcKfQoKRWZmZWN0LkJhc2UgPSBmdW5jdGlvbigpIHt9OwpFZmZlY3QuQmFzZS5wcm90b3R5cGUgPSB7CiAgcG9zaXRpb246IG51bGwsCiAgc3RhcnQ6IGZ1bmN0aW9uKG9wdGlvbnMpIHsKICAgIHRoaXMub3B0aW9ucyAgICAgID0gT2JqZWN0LmV4dGVuZChPYmplY3QuZXh0ZW5kKHt9LEVmZmVjdC5EZWZhdWx0T3B0aW9ucyksIG9wdGlvbnMgfHwge30pOwogICAgdGhpcy5jdXJyZW50RnJhbWUgPSAwOwogICAgdGhpcy5zdGF0ZSAgICAgICAgPSAnaWRsZSc7CiAgICB0aGlzLnN0YXJ0T24gICAgICA9IHRoaXMub3B0aW9ucy5kZWxheSoxMDAwOwogICAgdGhpcy5maW5pc2hPbiAgICAgPSB0aGlzLnN0YXJ0T24gKyAodGhpcy5vcHRpb25zLmR1cmF0aW9uKjEwMDApOwogICAgdGhpcy5ldmVudCgnYmVmb3JlU3RhcnQnKTsKICAgIGlmKCF0aGlzLm9wdGlvbnMuc3luYykKICAgICAgRWZmZWN0LlF1ZXVlcy5nZXQodHlwZW9mIHRoaXMub3B0aW9ucy5xdWV1ZSA9PSAnc3RyaW5nJyA/IAogICAgICAgICdnbG9iYWwnIDogdGhpcy5vcHRpb25zLnF1ZXVlLnNjb3BlKS5hZGQodGhpcyk7CiAgfSwKICBsb29wOiBmdW5jdGlvbih0aW1lUG9zKSB7CiAgICBpZih0aW1lUG9zID49IHRoaXMuc3RhcnRPbikgewogICAgICBpZih0aW1lUG9zID49IHRoaXMuZmluaXNoT24pIHsKICAgICAgICB0aGlzLnJlbmRlcigxLjApOwogICAgICAgIHRoaXMuY2FuY2VsKCk7CiAgICAgICAgdGhpcy5ldmVudCgnYmVmb3JlRmluaXNoJyk7CiAgICAgICAgaWYodGhpcy5maW5pc2gpIHRoaXMuZmluaXNoKCk7IAogICAgICAgIHRoaXMuZXZlbnQoJ2FmdGVyRmluaXNoJyk7CiAgICAgICAgcmV0dXJuOyAgCiAgICAgIH0KICAgICAgdmFyIHBvcyAgID0gKHRpbWVQb3MgLSB0aGlzLnN0YXJ0T24pIC8gKHRoaXMuZmluaXNoT24gLSB0aGlzLnN0YXJ0T24pOwogICAgICB2YXIgZnJhbWUgPSBNYXRoLnJvdW5kKHBvcyAqIHRoaXMub3B0aW9ucy5mcHMgKiB0aGlzLm9wdGlvbnMuZHVyYXRpb24pOwogICAgICBpZihmcmFtZSA+IHRoaXMuY3VycmVudEZyYW1lKSB7CiAgICAgICAgdGhpcy5yZW5kZXIocG9zKTsKICAgICAgICB0aGlzLmN1cnJlbnRGcmFtZSA9IGZyYW1lOwogICAgICB9CiAgICB9CiAgfSwKICByZW5kZXI6IGZ1bmN0aW9uKHBvcykgewogICAgaWYodGhpcy5zdGF0ZSA9PSAnaWRsZScpIHsKICAgICAgdGhpcy5zdGF0ZSA9ICdydW5uaW5nJzsKICAgICAgdGhpcy5ldmVudCgnYmVmb3JlU2V0dXAnKTsKICAgICAgaWYodGhpcy5zZXR1cCkgdGhpcy5zZXR1cCgpOwogICAgICB0aGlzLmV2ZW50KCdhZnRlclNldHVwJyk7CiAgICB9CiAgICBpZih0aGlzLnN0YXRlID09ICdydW5uaW5nJykgewogICAgICBpZih0aGlzLm9wdGlvbnMudHJhbnNpdGlvbikgcG9zID0gdGhpcy5vcHRpb25zLnRyYW5zaXRpb24ocG9zKTsKICAgICAgcG9zICo9ICh0aGlzLm9wdGlvbnMudG8tdGhpcy5vcHRpb25zLmZyb20pOwogICAgICBwb3MgKz0gdGhpcy5vcHRpb25zLmZyb207CiAgICAgIHRoaXMucG9zaXRpb24gPSBwb3M7CiAgICAgIHRoaXMuZXZlbnQoJ2JlZm9yZVVwZGF0ZScpOwogICAgICBpZih0aGlzLnVwZGF0ZSkgdGhpcy51cGRhdGUocG9zKTsKICAgICAgdGhpcy5ldmVudCgnYWZ0ZXJVcGRhdGUnKTsKICAgIH0KICB9LAogIGNhbmNlbDogZnVuY3Rpb24oKSB7CiAgICBpZighdGhpcy5vcHRpb25zLnN5bmMpCiAgICAgIEVmZmVjdC5RdWV1ZXMuZ2V0KHR5cGVvZiB0aGlzLm9wdGlvbnMucXVldWUgPT0gJ3N0cmluZycgPyAKICAgICAgICAnZ2xvYmFsJyA6IHRoaXMub3B0aW9ucy5xdWV1ZS5zY29wZSkucmVtb3ZlKHRoaXMpOwogICAgdGhpcy5zdGF0ZSA9ICdmaW5pc2hlZCc7CiAgfSwKICBldmVudDogZnVuY3Rpb24oZXZlbnROYW1lKSB7CiAgICBpZih0aGlzLm9wdGlvbnNbZXZlbnROYW1lICsgJ0ludGVybmFsJ10pIHRoaXMub3B0aW9uc1tldmVudE5hbWUgKyAnSW50ZXJuYWwnXSh0aGlzKTsKICAgIGlmKHRoaXMub3B0aW9uc1tldmVudE5hbWVdKSB0aGlzLm9wdGlvbnNbZXZlbnROYW1lXSh0aGlzKTsKICB9LAogIGluc3BlY3Q6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuICcjPEVmZmVjdDonICsgJEgodGhpcykuaW5zcGVjdCgpICsgJyxvcHRpb25zOicgKyAkSCh0aGlzLm9wdGlvbnMpLmluc3BlY3QoKSArICc+JzsKICB9Cn0KCkVmZmVjdC5QYXJhbGxlbCA9IENsYXNzLmNyZWF0ZSgpOwpPYmplY3QuZXh0ZW5kKE9iamVjdC5leHRlbmQoRWZmZWN0LlBhcmFsbGVsLnByb3RvdHlwZSwgRWZmZWN0LkJhc2UucHJvdG90eXBlKSwgewogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVmZmVjdHMpIHsKICAgIHRoaXMuZWZmZWN0cyA9IGVmZmVjdHMgfHwgW107CiAgICB0aGlzLnN0YXJ0KGFyZ3VtZW50c1sxXSk7CiAgfSwKICB1cGRhdGU6IGZ1bmN0aW9uKHBvc2l0aW9uKSB7CiAgICB0aGlzLmVmZmVjdHMuaW52b2tlKCdyZW5kZXInLCBwb3NpdGlvbik7CiAgfSwKICBmaW5pc2g6IGZ1bmN0aW9uKHBvc2l0aW9uKSB7CiAgICB0aGlzLmVmZmVjdHMuZWFjaCggZnVuY3Rpb24oZWZmZWN0KSB7CiAgICAgIGVmZmVjdC5yZW5kZXIoMS4wKTsKICAgICAgZWZmZWN0LmNhbmNlbCgpOwogICAgICBlZmZlY3QuZXZlbnQoJ2JlZm9yZUZpbmlzaCcpOwogICAgICBpZihlZmZlY3QuZmluaXNoKSBlZmZlY3QuZmluaXNoKHBvc2l0aW9uKTsKICAgICAgZWZmZWN0LmV2ZW50KCdhZnRlckZpbmlzaCcpOwogICAgfSk7CiAgfQp9KTsKCkVmZmVjdC5PcGFjaXR5ID0gQ2xhc3MuY3JlYXRlKCk7Ck9iamVjdC5leHRlbmQoT2JqZWN0LmV4dGVuZChFZmZlY3QuT3BhY2l0eS5wcm90b3R5cGUsIEVmZmVjdC5CYXNlLnByb3RvdHlwZSksIHsKICBpbml0aWFsaXplOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICB0aGlzLmVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgLy8gbWFrZSB0aGlzIHdvcmsgb24gSUUgb24gZWxlbWVudHMgd2l0aG91dCAnbGF5b3V0JwogICAgaWYoL01TSUUvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgJiYgKCF0aGlzLmVsZW1lbnQuaGFzTGF5b3V0KSkKICAgICAgRWxlbWVudC5zZXRTdHlsZSh0aGlzLmVsZW1lbnQsIHt6b29tOiAxfSk7CiAgICB2YXIgb3B0aW9ucyA9IE9iamVjdC5leHRlbmQoewogICAgICBmcm9tOiBFbGVtZW50LmdldE9wYWNpdHkodGhpcy5lbGVtZW50KSB8fCAwLjAsCiAgICAgIHRvOiAgIDEuMAogICAgfSwgYXJndW1lbnRzWzFdIHx8IHt9KTsKICAgIHRoaXMuc3RhcnQob3B0aW9ucyk7CiAgfSwKICB1cGRhdGU6IGZ1bmN0aW9uKHBvc2l0aW9uKSB7CiAgICBFbGVtZW50LnNldE9wYWNpdHkodGhpcy5lbGVtZW50LCBwb3NpdGlvbik7CiAgfQp9KTsKCkVmZmVjdC5Nb3ZlID0gQ2xhc3MuY3JlYXRlKCk7Ck9iamVjdC5leHRlbmQoT2JqZWN0LmV4dGVuZChFZmZlY3QuTW92ZS5wcm90b3R5cGUsIEVmZmVjdC5CYXNlLnByb3RvdHlwZSksIHsKICBpbml0aWFsaXplOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICB0aGlzLmVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgdmFyIG9wdGlvbnMgPSBPYmplY3QuZXh0ZW5kKHsKICAgICAgeDogICAgMCwKICAgICAgeTogICAgMCwKICAgICAgbW9kZTogJ3JlbGF0aXZlJwogICAgfSwgYXJndW1lbnRzWzFdIHx8IHt9KTsKICAgIHRoaXMuc3RhcnQob3B0aW9ucyk7CiAgfSwKICBzZXR1cDogZnVuY3Rpb24oKSB7CiAgICAvLyBCdWcgaW4gT3BlcmE6IE9wZXJhIHJldHVybnMgdGhlICJyZWFsIiBwb3NpdGlvbiBvZiBhIHN0YXRpYyBlbGVtZW50IG9yCiAgICAvLyByZWxhdGl2ZSBlbGVtZW50IHRoYXQgZG9lcyBub3QgaGF2ZSB0b3AvbGVmdCBleHBsaWNpdGx5IHNldC4KICAgIC8vID09PiBBbHdheXMgc2V0IHRvcCBhbmQgbGVmdCBmb3IgcG9zaXRpb24gcmVsYXRpdmUgZWxlbWVudHMgaW4geW91ciBzdHlsZXNoZWV0cyAKICAgIC8vICh0byAwIGlmIHlvdSBkbyBub3QgbmVlZCB0aGVtKSAKICAgIEVsZW1lbnQubWFrZVBvc2l0aW9uZWQodGhpcy5lbGVtZW50KTsKICAgIHRoaXMub3JpZ2luYWxMZWZ0ID0gcGFyc2VGbG9hdChFbGVtZW50LmdldFN0eWxlKHRoaXMuZWxlbWVudCwnbGVmdCcpIHx8ICcwJyk7CiAgICB0aGlzLm9yaWdpbmFsVG9wICA9IHBhcnNlRmxvYXQoRWxlbWVudC5nZXRTdHlsZSh0aGlzLmVsZW1lbnQsJ3RvcCcpICB8fCAnMCcpOwogICAgaWYodGhpcy5vcHRpb25zLm1vZGUgPT0gJ2Fic29sdXRlJykgewogICAgICAvLyBhYnNvbHV0ZSBtb3ZlbWVudCwgc28gd2UgbmVlZCB0byBjYWxjIGRlbHRhWCBhbmQgZGVsdGFZCiAgICAgIHRoaXMub3B0aW9ucy54ID0gdGhpcy5vcHRpb25zLnggLSB0aGlzLm9yaWdpbmFsTGVmdDsKICAgICAgdGhpcy5vcHRpb25zLnkgPSB0aGlzLm9wdGlvbnMueSAtIHRoaXMub3JpZ2luYWxUb3A7CiAgICB9CiAgfSwKICB1cGRhdGU6IGZ1bmN0aW9uKHBvc2l0aW9uKSB7CiAgICBFbGVtZW50LnNldFN0eWxlKHRoaXMuZWxlbWVudCwgewogICAgICBsZWZ0OiB0aGlzLm9wdGlvbnMueCAgKiBwb3NpdGlvbiArIHRoaXMub3JpZ2luYWxMZWZ0ICsgJ3B4JywKICAgICAgdG9wOiAgdGhpcy5vcHRpb25zLnkgICogcG9zaXRpb24gKyB0aGlzLm9yaWdpbmFsVG9wICArICdweCcKICAgIH0pOwogIH0KfSk7CgovLyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKRWZmZWN0Lk1vdmVCeSA9IGZ1bmN0aW9uKGVsZW1lbnQsIHRvVG9wLCB0b0xlZnQpIHsKICByZXR1cm4gbmV3IEVmZmVjdC5Nb3ZlKGVsZW1lbnQsIAogICAgT2JqZWN0LmV4dGVuZCh7IHg6IHRvTGVmdCwgeTogdG9Ub3AgfSwgYXJndW1lbnRzWzNdIHx8IHt9KSk7Cn07CgpFZmZlY3QuU2NhbGUgPSBDbGFzcy5jcmVhdGUoKTsKT2JqZWN0LmV4dGVuZChPYmplY3QuZXh0ZW5kKEVmZmVjdC5TY2FsZS5wcm90b3R5cGUsIEVmZmVjdC5CYXNlLnByb3RvdHlwZSksIHsKICBpbml0aWFsaXplOiBmdW5jdGlvbihlbGVtZW50LCBwZXJjZW50KSB7CiAgICB0aGlzLmVsZW1lbnQgPSAkKGVsZW1lbnQpCiAgICB2YXIgb3B0aW9ucyA9IE9iamVjdC5leHRlbmQoewogICAgICBzY2FsZVg6IHRydWUsCiAgICAgIHNjYWxlWTogdHJ1ZSwKICAgICAgc2NhbGVDb250ZW50OiB0cnVlLAogICAgICBzY2FsZUZyb21DZW50ZXI6IGZhbHNlLAogICAgICBzY2FsZU1vZGU6ICdib3gnLCAgICAgICAgLy8gJ2JveCcgb3IgJ2NvbnRlbnRzJyBvciB7fSB3aXRoIHByb3ZpZGVkIHZhbHVlcwogICAgICBzY2FsZUZyb206IDEwMC4wLAogICAgICBzY2FsZVRvOiAgIHBlcmNlbnQKICAgIH0sIGFyZ3VtZW50c1syXSB8fCB7fSk7CiAgICB0aGlzLnN0YXJ0KG9wdGlvbnMpOwogIH0sCiAgc2V0dXA6IGZ1bmN0aW9uKCkgewogICAgdGhpcy5yZXN0b3JlQWZ0ZXJGaW5pc2ggPSB0aGlzLm9wdGlvbnMucmVzdG9yZUFmdGVyRmluaXNoIHx8IGZhbHNlOwogICAgdGhpcy5lbGVtZW50UG9zaXRpb25pbmcgPSBFbGVtZW50LmdldFN0eWxlKHRoaXMuZWxlbWVudCwncG9zaXRpb24nKTsKICAgIAogICAgdGhpcy5vcmlnaW5hbFN0eWxlID0ge307CiAgICBbJ3RvcCcsJ2xlZnQnLCd3aWR0aCcsJ2hlaWdodCcsJ2ZvbnRTaXplJ10uZWFjaCggZnVuY3Rpb24oaykgewogICAgICB0aGlzLm9yaWdpbmFsU3R5bGVba10gPSB0aGlzLmVsZW1lbnQuc3R5bGVba107CiAgICB9LmJpbmQodGhpcykpOwogICAgICAKICAgIHRoaXMub3JpZ2luYWxUb3AgID0gdGhpcy5lbGVtZW50Lm9mZnNldFRvcDsKICAgIHRoaXMub3JpZ2luYWxMZWZ0ID0gdGhpcy5lbGVtZW50Lm9mZnNldExlZnQ7CiAgICAKICAgIHZhciBmb250U2l6ZSA9IEVsZW1lbnQuZ2V0U3R5bGUodGhpcy5lbGVtZW50LCdmb250LXNpemUnKSB8fCAnMTAwJSc7CiAgICBbJ2VtJywncHgnLCclJ10uZWFjaCggZnVuY3Rpb24oZm9udFNpemVUeXBlKSB7CiAgICAgIGlmKGZvbnRTaXplLmluZGV4T2YoZm9udFNpemVUeXBlKT4wKSB7CiAgICAgICAgdGhpcy5mb250U2l6ZSAgICAgPSBwYXJzZUZsb2F0KGZvbnRTaXplKTsKICAgICAgICB0aGlzLmZvbnRTaXplVHlwZSA9IGZvbnRTaXplVHlwZTsKICAgICAgfQogICAgfS5iaW5kKHRoaXMpKTsKICAgIAogICAgdGhpcy5mYWN0b3IgPSAodGhpcy5vcHRpb25zLnNjYWxlVG8gLSB0aGlzLm9wdGlvbnMuc2NhbGVGcm9tKS8xMDA7CiAgICAKICAgIHRoaXMuZGltcyA9IG51bGw7CiAgICBpZih0aGlzLm9wdGlvbnMuc2NhbGVNb2RlPT0nYm94JykKICAgICAgdGhpcy5kaW1zID0gW3RoaXMuZWxlbWVudC5vZmZzZXRIZWlnaHQsIHRoaXMuZWxlbWVudC5vZmZzZXRXaWR0aF07CiAgICBpZigvXmNvbnRlbnQvLnRlc3QodGhpcy5vcHRpb25zLnNjYWxlTW9kZSkpCiAgICAgIHRoaXMuZGltcyA9IFt0aGlzLmVsZW1lbnQuc2Nyb2xsSGVpZ2h0LCB0aGlzLmVsZW1lbnQuc2Nyb2xsV2lkdGhdOwogICAgaWYoIXRoaXMuZGltcykKICAgICAgdGhpcy5kaW1zID0gW3RoaXMub3B0aW9ucy5zY2FsZU1vZGUub3JpZ2luYWxIZWlnaHQsCiAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMuc2NhbGVNb2RlLm9yaWdpbmFsV2lkdGhdOwogIH0sCiAgdXBkYXRlOiBmdW5jdGlvbihwb3NpdGlvbikgewogICAgdmFyIGN1cnJlbnRTY2FsZSA9ICh0aGlzLm9wdGlvbnMuc2NhbGVGcm9tLzEwMC4wKSArICh0aGlzLmZhY3RvciAqIHBvc2l0aW9uKTsKICAgIGlmKHRoaXMub3B0aW9ucy5zY2FsZUNvbnRlbnQgJiYgdGhpcy5mb250U2l6ZSkKICAgICAgRWxlbWVudC5zZXRTdHlsZSh0aGlzLmVsZW1lbnQsIHtmb250U2l6ZTogdGhpcy5mb250U2l6ZSAqIGN1cnJlbnRTY2FsZSArIHRoaXMuZm9udFNpemVUeXBlIH0pOwogICAgdGhpcy5zZXREaW1lbnNpb25zKHRoaXMuZGltc1swXSAqIGN1cnJlbnRTY2FsZSwgdGhpcy5kaW1zWzFdICogY3VycmVudFNjYWxlKTsKICB9LAogIGZpbmlzaDogZnVuY3Rpb24ocG9zaXRpb24pIHsKICAgIGlmICh0aGlzLnJlc3RvcmVBZnRlckZpbmlzaCkgRWxlbWVudC5zZXRTdHlsZSh0aGlzLmVsZW1lbnQsIHRoaXMub3JpZ2luYWxTdHlsZSk7CiAgfSwKICBzZXREaW1lbnNpb25zOiBmdW5jdGlvbihoZWlnaHQsIHdpZHRoKSB7CiAgICB2YXIgZCA9IHt9OwogICAgaWYodGhpcy5vcHRpb25zLnNjYWxlWCkgZC53aWR0aCA9IHdpZHRoICsgJ3B4JzsKICAgIGlmKHRoaXMub3B0aW9ucy5zY2FsZVkpIGQuaGVpZ2h0ID0gaGVpZ2h0ICsgJ3B4JzsKICAgIGlmKHRoaXMub3B0aW9ucy5zY2FsZUZyb21DZW50ZXIpIHsKICAgICAgdmFyIHRvcGQgID0gKGhlaWdodCAtIHRoaXMuZGltc1swXSkvMjsKICAgICAgdmFyIGxlZnRkID0gKHdpZHRoICAtIHRoaXMuZGltc1sxXSkvMjsKICAgICAgaWYodGhpcy5lbGVtZW50UG9zaXRpb25pbmcgPT0gJ2Fic29sdXRlJykgewogICAgICAgIGlmKHRoaXMub3B0aW9ucy5zY2FsZVkpIGQudG9wID0gdGhpcy5vcmlnaW5hbFRvcC10b3BkICsgJ3B4JzsKICAgICAgICBpZih0aGlzLm9wdGlvbnMuc2NhbGVYKSBkLmxlZnQgPSB0aGlzLm9yaWdpbmFsTGVmdC1sZWZ0ZCArICdweCc7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaWYodGhpcy5vcHRpb25zLnNjYWxlWSkgZC50b3AgPSAtdG9wZCArICdweCc7CiAgICAgICAgaWYodGhpcy5vcHRpb25zLnNjYWxlWCkgZC5sZWZ0ID0gLWxlZnRkICsgJ3B4JzsKICAgICAgfQogICAgfQogICAgRWxlbWVudC5zZXRTdHlsZSh0aGlzLmVsZW1lbnQsIGQpOwogIH0KfSk7CgpFZmZlY3QuSGlnaGxpZ2h0ID0gQ2xhc3MuY3JlYXRlKCk7Ck9iamVjdC5leHRlbmQoT2JqZWN0LmV4dGVuZChFZmZlY3QuSGlnaGxpZ2h0LnByb3RvdHlwZSwgRWZmZWN0LkJhc2UucHJvdG90eXBlKSwgewogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHRoaXMuZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICB2YXIgb3B0aW9ucyA9IE9iamVjdC5leHRlbmQoeyBzdGFydGNvbG9yOiAnI2ZmZmY5OScgfSwgYXJndW1lbnRzWzFdIHx8IHt9KTsKICAgIHRoaXMuc3RhcnQob3B0aW9ucyk7CiAgfSwKICBzZXR1cDogZnVuY3Rpb24oKSB7CiAgICAvLyBQcmV2ZW50IGV4ZWN1dGluZyBvbiBlbGVtZW50cyBub3QgaW4gdGhlIGxheW91dCBmbG93CiAgICBpZihFbGVtZW50LmdldFN0eWxlKHRoaXMuZWxlbWVudCwgJ2Rpc3BsYXknKT09J25vbmUnKSB7IHRoaXMuY2FuY2VsKCk7IHJldHVybjsgfQogICAgLy8gRGlzYWJsZSBiYWNrZ3JvdW5kIGltYWdlIGR1cmluZyB0aGUgZWZmZWN0CiAgICB0aGlzLm9sZFN0eWxlID0gewogICAgICBiYWNrZ3JvdW5kSW1hZ2U6IEVsZW1lbnQuZ2V0U3R5bGUodGhpcy5lbGVtZW50LCAnYmFja2dyb3VuZC1pbWFnZScpIH07CiAgICBFbGVtZW50LnNldFN0eWxlKHRoaXMuZWxlbWVudCwge2JhY2tncm91bmRJbWFnZTogJ25vbmUnfSk7CiAgICBpZighdGhpcy5vcHRpb25zLmVuZGNvbG9yKQogICAgICB0aGlzLm9wdGlvbnMuZW5kY29sb3IgPSBFbGVtZW50LmdldFN0eWxlKHRoaXMuZWxlbWVudCwgJ2JhY2tncm91bmQtY29sb3InKS5wYXJzZUNvbG9yKCcjZmZmZmZmJyk7CiAgICBpZighdGhpcy5vcHRpb25zLnJlc3RvcmVjb2xvcikKICAgICAgdGhpcy5vcHRpb25zLnJlc3RvcmVjb2xvciA9IEVsZW1lbnQuZ2V0U3R5bGUodGhpcy5lbGVtZW50LCAnYmFja2dyb3VuZC1jb2xvcicpOwogICAgLy8gaW5pdCBjb2xvciBjYWxjdWxhdGlvbnMKICAgIHRoaXMuX2Jhc2UgID0gJFIoMCwyKS5tYXAoZnVuY3Rpb24oaSl7IHJldHVybiBwYXJzZUludCh0aGlzLm9wdGlvbnMuc3RhcnRjb2xvci5zbGljZShpKjIrMSxpKjIrMyksMTYpIH0uYmluZCh0aGlzKSk7CiAgICB0aGlzLl9kZWx0YSA9ICRSKDAsMikubWFwKGZ1bmN0aW9uKGkpeyByZXR1cm4gcGFyc2VJbnQodGhpcy5vcHRpb25zLmVuZGNvbG9yLnNsaWNlKGkqMisxLGkqMiszKSwxNiktdGhpcy5fYmFzZVtpXSB9LmJpbmQodGhpcykpOwogIH0sCiAgdXBkYXRlOiBmdW5jdGlvbihwb3NpdGlvbikgewogICAgRWxlbWVudC5zZXRTdHlsZSh0aGlzLmVsZW1lbnQse2JhY2tncm91bmRDb2xvcjogJFIoMCwyKS5pbmplY3QoJyMnLGZ1bmN0aW9uKG0sdixpKXsKICAgICAgcmV0dXJuIG0rKE1hdGgucm91bmQodGhpcy5fYmFzZVtpXSsodGhpcy5fZGVsdGFbaV0qcG9zaXRpb24pKS50b0NvbG9yUGFydCgpKTsgfS5iaW5kKHRoaXMpKSB9KTsKICB9LAogIGZpbmlzaDogZnVuY3Rpb24oKSB7CiAgICBFbGVtZW50LnNldFN0eWxlKHRoaXMuZWxlbWVudCwgT2JqZWN0LmV4dGVuZCh0aGlzLm9sZFN0eWxlLCB7CiAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5vcHRpb25zLnJlc3RvcmVjb2xvcgogICAgfSkpOwogIH0KfSk7CgpFZmZlY3QuU2Nyb2xsVG8gPSBDbGFzcy5jcmVhdGUoKTsKT2JqZWN0LmV4dGVuZChPYmplY3QuZXh0ZW5kKEVmZmVjdC5TY3JvbGxUby5wcm90b3R5cGUsIEVmZmVjdC5CYXNlLnByb3RvdHlwZSksIHsKICBpbml0aWFsaXplOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICB0aGlzLmVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgdGhpcy5zdGFydChhcmd1bWVudHNbMV0gfHwge30pOwogIH0sCiAgc2V0dXA6IGZ1bmN0aW9uKCkgewogICAgUG9zaXRpb24ucHJlcGFyZSgpOwogICAgdmFyIG9mZnNldHMgPSBQb3NpdGlvbi5jdW11bGF0aXZlT2Zmc2V0KHRoaXMuZWxlbWVudCk7CiAgICBpZih0aGlzLm9wdGlvbnMub2Zmc2V0KSBvZmZzZXRzWzFdICs9IHRoaXMub3B0aW9ucy5vZmZzZXQ7CiAgICB2YXIgbWF4ID0gd2luZG93LmlubmVySGVpZ2h0ID8gCiAgICAgIHdpbmRvdy5oZWlnaHQgLSB3aW5kb3cuaW5uZXJIZWlnaHQgOgogICAgICBkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodCAtIAogICAgICAgIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0ID8gCiAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IDogZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQpOwogICAgdGhpcy5zY3JvbGxTdGFydCA9IFBvc2l0aW9uLmRlbHRhWTsKICAgIHRoaXMuZGVsdGEgPSAob2Zmc2V0c1sxXSA+IG1heCA/IG1heCA6IG9mZnNldHNbMV0pIC0gdGhpcy5zY3JvbGxTdGFydDsKICB9LAogIHVwZGF0ZTogZnVuY3Rpb24ocG9zaXRpb24pIHsKICAgIFBvc2l0aW9uLnByZXBhcmUoKTsKICAgIHdpbmRvdy5zY3JvbGxUbyhQb3NpdGlvbi5kZWx0YVgsIAogICAgICB0aGlzLnNjcm9sbFN0YXJ0ICsgKHBvc2l0aW9uKnRoaXMuZGVsdGEpKTsKICB9Cn0pOwoKLyogLS0tLS0tLS0tLS0tLSBjb21iaW5hdGlvbiBlZmZlY3RzIC0tLS0tLS0tLS0tLS0gKi8KCkVmZmVjdC5GYWRlID0gZnVuY3Rpb24oZWxlbWVudCkgewogIHZhciBvbGRPcGFjaXR5ID0gRWxlbWVudC5nZXRJbmxpbmVPcGFjaXR5KGVsZW1lbnQpOwogIHZhciBvcHRpb25zID0gT2JqZWN0LmV4dGVuZCh7CiAgZnJvbTogRWxlbWVudC5nZXRPcGFjaXR5KGVsZW1lbnQpIHx8IDEuMCwKICB0bzogICAwLjAsCiAgYWZ0ZXJGaW5pc2hJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7IHdpdGgoRWxlbWVudCkgeyAKICAgIGlmKGVmZmVjdC5vcHRpb25zLnRvIT0wKSByZXR1cm47CiAgICBoaWRlKGVmZmVjdC5lbGVtZW50KTsKICAgIHNldFN0eWxlKGVmZmVjdC5lbGVtZW50LCB7b3BhY2l0eTogb2xkT3BhY2l0eX0pOyB9fQogIH0sIGFyZ3VtZW50c1sxXSB8fCB7fSk7CiAgcmV0dXJuIG5ldyBFZmZlY3QuT3BhY2l0eShlbGVtZW50LG9wdGlvbnMpOwp9CgpFZmZlY3QuQXBwZWFyID0gZnVuY3Rpb24oZWxlbWVudCkgewogIHZhciBvcHRpb25zID0gT2JqZWN0LmV4dGVuZCh7CiAgZnJvbTogKEVsZW1lbnQuZ2V0U3R5bGUoZWxlbWVudCwgJ2Rpc3BsYXknKSA9PSAnbm9uZScgPyAwLjAgOiBFbGVtZW50LmdldE9wYWNpdHkoZWxlbWVudCkgfHwgMC4wKSwKICB0bzogICAxLjAsCiAgYmVmb3JlU2V0dXA6IGZ1bmN0aW9uKGVmZmVjdCkgeyB3aXRoKEVsZW1lbnQpIHsKICAgIHNldE9wYWNpdHkoZWZmZWN0LmVsZW1lbnQsIGVmZmVjdC5vcHRpb25zLmZyb20pOwogICAgc2hvdyhlZmZlY3QuZWxlbWVudCk7IH19CiAgfSwgYXJndW1lbnRzWzFdIHx8IHt9KTsKICByZXR1cm4gbmV3IEVmZmVjdC5PcGFjaXR5KGVsZW1lbnQsb3B0aW9ucyk7Cn0KCkVmZmVjdC5QdWZmID0gZnVuY3Rpb24oZWxlbWVudCkgewogIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogIHZhciBvbGRTdHlsZSA9IHsgb3BhY2l0eTogRWxlbWVudC5nZXRJbmxpbmVPcGFjaXR5KGVsZW1lbnQpLCBwb3NpdGlvbjogRWxlbWVudC5nZXRTdHlsZShlbGVtZW50LCAncG9zaXRpb24nKSB9OwogIHJldHVybiBuZXcgRWZmZWN0LlBhcmFsbGVsKAogICBbIG5ldyBFZmZlY3QuU2NhbGUoZWxlbWVudCwgMjAwLCAKICAgICAgeyBzeW5jOiB0cnVlLCBzY2FsZUZyb21DZW50ZXI6IHRydWUsIHNjYWxlQ29udGVudDogdHJ1ZSwgcmVzdG9yZUFmdGVyRmluaXNoOiB0cnVlIH0pLCAKICAgICBuZXcgRWZmZWN0Lk9wYWNpdHkoZWxlbWVudCwgeyBzeW5jOiB0cnVlLCB0bzogMC4wIH0gKSBdLCAKICAgICBPYmplY3QuZXh0ZW5kKHsgZHVyYXRpb246IDEuMCwgCiAgICAgIGJlZm9yZVNldHVwSW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgeyB3aXRoKEVsZW1lbnQpIHsKICAgICAgICBzZXRTdHlsZShlZmZlY3QuZWZmZWN0c1swXS5lbGVtZW50LCB7cG9zaXRpb246ICdhYnNvbHV0ZSd9KTsgfX0sCiAgICAgIGFmdGVyRmluaXNoSW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgeyB3aXRoKEVsZW1lbnQpIHsKICAgICAgICAgaGlkZShlZmZlY3QuZWZmZWN0c1swXS5lbGVtZW50KTsKICAgICAgICAgc2V0U3R5bGUoZWZmZWN0LmVmZmVjdHNbMF0uZWxlbWVudCwgb2xkU3R5bGUpOyB9fQogICAgIH0sIGFyZ3VtZW50c1sxXSB8fCB7fSkKICAgKTsKfQoKRWZmZWN0LkJsaW5kVXAgPSBmdW5jdGlvbihlbGVtZW50KSB7CiAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgRWxlbWVudC5tYWtlQ2xpcHBpbmcoZWxlbWVudCk7CiAgcmV0dXJuIG5ldyBFZmZlY3QuU2NhbGUoZWxlbWVudCwgMCwgCiAgICBPYmplY3QuZXh0ZW5kKHsgc2NhbGVDb250ZW50OiBmYWxzZSwgCiAgICAgIHNjYWxlWDogZmFsc2UsIAogICAgICByZXN0b3JlQWZ0ZXJGaW5pc2g6IHRydWUsCiAgICAgIGFmdGVyRmluaXNoSW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgeyB3aXRoKEVsZW1lbnQpIHsKICAgICAgICBbaGlkZSwgdW5kb0NsaXBwaW5nXS5jYWxsKGVmZmVjdC5lbGVtZW50KTsgfX0gCiAgICB9LCBhcmd1bWVudHNbMV0gfHwge30pCiAgKTsKfQoKRWZmZWN0LkJsaW5kRG93biA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICBlbGVtZW50ID0gJChlbGVtZW50KTsKICB2YXIgb2xkSGVpZ2h0ID0gRWxlbWVudC5nZXRTdHlsZShlbGVtZW50LCAnaGVpZ2h0Jyk7CiAgdmFyIGVsZW1lbnREaW1lbnNpb25zID0gRWxlbWVudC5nZXREaW1lbnNpb25zKGVsZW1lbnQpOwogIHJldHVybiBuZXcgRWZmZWN0LlNjYWxlKGVsZW1lbnQsIDEwMCwgCiAgICBPYmplY3QuZXh0ZW5kKHsgc2NhbGVDb250ZW50OiBmYWxzZSwgCiAgICAgIHNjYWxlWDogZmFsc2UsCiAgICAgIHNjYWxlRnJvbTogMCwKICAgICAgc2NhbGVNb2RlOiB7b3JpZ2luYWxIZWlnaHQ6IGVsZW1lbnREaW1lbnNpb25zLmhlaWdodCwgb3JpZ2luYWxXaWR0aDogZWxlbWVudERpbWVuc2lvbnMud2lkdGh9LAogICAgICByZXN0b3JlQWZ0ZXJGaW5pc2g6IHRydWUsCiAgICAgIGFmdGVyU2V0dXA6IGZ1bmN0aW9uKGVmZmVjdCkgeyB3aXRoKEVsZW1lbnQpIHsKICAgICAgICBtYWtlQ2xpcHBpbmcoZWZmZWN0LmVsZW1lbnQpOwogICAgICAgIHNldFN0eWxlKGVmZmVjdC5lbGVtZW50LCB7aGVpZ2h0OiAnMHB4J30pOwogICAgICAgIHNob3coZWZmZWN0LmVsZW1lbnQpOyAKICAgICAgfX0sICAKICAgICAgYWZ0ZXJGaW5pc2hJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7IHdpdGgoRWxlbWVudCkgewogICAgICAgIHVuZG9DbGlwcGluZyhlZmZlY3QuZWxlbWVudCk7CiAgICAgICAgc2V0U3R5bGUoZWZmZWN0LmVsZW1lbnQsIHtoZWlnaHQ6IG9sZEhlaWdodH0pOwogICAgICB9fQogICAgfSwgYXJndW1lbnRzWzFdIHx8IHt9KQogICk7Cn0KCkVmZmVjdC5Td2l0Y2hPZmYgPSBmdW5jdGlvbihlbGVtZW50KSB7CiAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgdmFyIG9sZE9wYWNpdHkgPSBFbGVtZW50LmdldElubGluZU9wYWNpdHkoZWxlbWVudCk7CiAgcmV0dXJuIG5ldyBFZmZlY3QuQXBwZWFyKGVsZW1lbnQsIHsgCiAgICBkdXJhdGlvbjogMC40LAogICAgZnJvbTogMCwKICAgIHRyYW5zaXRpb246IEVmZmVjdC5UcmFuc2l0aW9ucy5mbGlja2VyLAogICAgYWZ0ZXJGaW5pc2hJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7CiAgICAgIG5ldyBFZmZlY3QuU2NhbGUoZWZmZWN0LmVsZW1lbnQsIDEsIHsgCiAgICAgICAgZHVyYXRpb246IDAuMywgc2NhbGVGcm9tQ2VudGVyOiB0cnVlLAogICAgICAgIHNjYWxlWDogZmFsc2UsIHNjYWxlQ29udGVudDogZmFsc2UsIHJlc3RvcmVBZnRlckZpbmlzaDogdHJ1ZSwKICAgICAgICBiZWZvcmVTZXR1cDogZnVuY3Rpb24oZWZmZWN0KSB7IHdpdGgoRWxlbWVudCkgewogICAgICAgICAgW21ha2VQb3NpdGlvbmVkLG1ha2VDbGlwcGluZ10uY2FsbChlZmZlY3QuZWxlbWVudCk7CiAgICAgICAgfX0sCiAgICAgICAgYWZ0ZXJGaW5pc2hJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7IHdpdGgoRWxlbWVudCkgewogICAgICAgICAgW2hpZGUsdW5kb0NsaXBwaW5nLHVuZG9Qb3NpdGlvbmVkXS5jYWxsKGVmZmVjdC5lbGVtZW50KTsKICAgICAgICAgIHNldFN0eWxlKGVmZmVjdC5lbGVtZW50LCB7b3BhY2l0eTogb2xkT3BhY2l0eX0pOwogICAgICAgIH19CiAgICAgIH0pCiAgICB9CiAgfSk7Cn0KCkVmZmVjdC5Ecm9wT3V0ID0gZnVuY3Rpb24oZWxlbWVudCkgewogIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogIHZhciBvbGRTdHlsZSA9IHsKICAgIHRvcDogRWxlbWVudC5nZXRTdHlsZShlbGVtZW50LCAndG9wJyksCiAgICBsZWZ0OiBFbGVtZW50LmdldFN0eWxlKGVsZW1lbnQsICdsZWZ0JyksCiAgICBvcGFjaXR5OiBFbGVtZW50LmdldElubGluZU9wYWNpdHkoZWxlbWVudCkgfTsKICByZXR1cm4gbmV3IEVmZmVjdC5QYXJhbGxlbCgKICAgIFsgbmV3IEVmZmVjdC5Nb3ZlKGVsZW1lbnQsIHt4OiAwLCB5OiAxMDAsIHN5bmM6IHRydWUgfSksIAogICAgICBuZXcgRWZmZWN0Lk9wYWNpdHkoZWxlbWVudCwgeyBzeW5jOiB0cnVlLCB0bzogMC4wIH0pIF0sCiAgICBPYmplY3QuZXh0ZW5kKAogICAgICB7IGR1cmF0aW9uOiAwLjUsCiAgICAgICAgYmVmb3JlU2V0dXA6IGZ1bmN0aW9uKGVmZmVjdCkgeyB3aXRoKEVsZW1lbnQpIHsKICAgICAgICAgIG1ha2VQb3NpdGlvbmVkKGVmZmVjdC5lZmZlY3RzWzBdLmVsZW1lbnQpOyB9fSwKICAgICAgICBhZnRlckZpbmlzaEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsgd2l0aChFbGVtZW50KSB7CiAgICAgICAgICBbaGlkZSwgdW5kb1Bvc2l0aW9uZWRdLmNhbGwoZWZmZWN0LmVmZmVjdHNbMF0uZWxlbWVudCk7CiAgICAgICAgICBzZXRTdHlsZShlZmZlY3QuZWZmZWN0c1swXS5lbGVtZW50LCBvbGRTdHlsZSk7IH19IAogICAgICB9LCBhcmd1bWVudHNbMV0gfHwge30pKTsKfQoKRWZmZWN0LlNoYWtlID0gZnVuY3Rpb24oZWxlbWVudCkgewogIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogIHZhciBvbGRTdHlsZSA9IHsKICAgIHRvcDogRWxlbWVudC5nZXRTdHlsZShlbGVtZW50LCAndG9wJyksCiAgICBsZWZ0OiBFbGVtZW50LmdldFN0eWxlKGVsZW1lbnQsICdsZWZ0JykgfTsKCSAgcmV0dXJuIG5ldyBFZmZlY3QuTW92ZShlbGVtZW50LCAKCSAgICB7IHg6ICAyMCwgeTogMCwgZHVyYXRpb246IDAuMDUsIGFmdGVyRmluaXNoSW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgewoJICBuZXcgRWZmZWN0Lk1vdmUoZWZmZWN0LmVsZW1lbnQsCgkgICAgeyB4OiAtNDAsIHk6IDAsIGR1cmF0aW9uOiAwLjEsICBhZnRlckZpbmlzaEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsKCSAgbmV3IEVmZmVjdC5Nb3ZlKGVmZmVjdC5lbGVtZW50LAoJICAgIHsgeDogIDQwLCB5OiAwLCBkdXJhdGlvbjogMC4xLCAgYWZ0ZXJGaW5pc2hJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7CgkgIG5ldyBFZmZlY3QuTW92ZShlZmZlY3QuZWxlbWVudCwKCSAgICB7IHg6IC00MCwgeTogMCwgZHVyYXRpb246IDAuMSwgIGFmdGVyRmluaXNoSW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgewoJICBuZXcgRWZmZWN0Lk1vdmUoZWZmZWN0LmVsZW1lbnQsCgkgICAgeyB4OiAgNDAsIHk6IDAsIGR1cmF0aW9uOiAwLjEsICBhZnRlckZpbmlzaEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsKCSAgbmV3IEVmZmVjdC5Nb3ZlKGVmZmVjdC5lbGVtZW50LAoJICAgIHsgeDogLTIwLCB5OiAwLCBkdXJhdGlvbjogMC4wNSwgYWZ0ZXJGaW5pc2hJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7IHdpdGgoRWxlbWVudCkgewogICAgICAgIHVuZG9Qb3NpdGlvbmVkKGVmZmVjdC5lbGVtZW50KTsKICAgICAgICBzZXRTdHlsZShlZmZlY3QuZWxlbWVudCwgb2xkU3R5bGUpOwogIH19fSkgfX0pIH19KSB9fSkgfX0pIH19KTsKfQoKRWZmZWN0LlNsaWRlRG93biA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICBlbGVtZW50ID0gJChlbGVtZW50KTsKICBFbGVtZW50LmNsZWFuV2hpdGVzcGFjZShlbGVtZW50KTsKICAvLyBTbGlkZURvd24gbmVlZCB0byBoYXZlIHRoZSBjb250ZW50IG9mIHRoZSBlbGVtZW50IHdyYXBwZWQgaW4gYSBjb250YWluZXIgZWxlbWVudCB3aXRoIGZpeGVkIGhlaWdodCEKICB2YXIgb2xkSW5uZXJCb3R0b20gPSBFbGVtZW50LmdldFN0eWxlKGVsZW1lbnQuZmlyc3RDaGlsZCwgJ2JvdHRvbScpOwogIHZhciBlbGVtZW50RGltZW5zaW9ucyA9IEVsZW1lbnQuZ2V0RGltZW5zaW9ucyhlbGVtZW50KTsKICByZXR1cm4gbmV3IEVmZmVjdC5TY2FsZShlbGVtZW50LCAxMDAsIE9iamVjdC5leHRlbmQoeyAKICAgIHNjYWxlQ29udGVudDogZmFsc2UsIAogICAgc2NhbGVYOiBmYWxzZSwgCiAgICBzY2FsZUZyb206IDAsCiAgICBzY2FsZU1vZGU6IHtvcmlnaW5hbEhlaWdodDogZWxlbWVudERpbWVuc2lvbnMuaGVpZ2h0LCBvcmlnaW5hbFdpZHRoOiBlbGVtZW50RGltZW5zaW9ucy53aWR0aH0sCiAgICByZXN0b3JlQWZ0ZXJGaW5pc2g6IHRydWUsCiAgICBhZnRlclNldHVwOiBmdW5jdGlvbihlZmZlY3QpIHsgd2l0aChFbGVtZW50KSB7CiAgICAgIG1ha2VQb3NpdGlvbmVkKGVmZmVjdC5lbGVtZW50KTsKICAgICAgbWFrZVBvc2l0aW9uZWQoZWZmZWN0LmVsZW1lbnQuZmlyc3RDaGlsZCk7CiAgICAgIGlmKHdpbmRvdy5vcGVyYSkgc2V0U3R5bGUoZWZmZWN0LmVsZW1lbnQsIHt0b3A6ICcnfSk7CiAgICAgIG1ha2VDbGlwcGluZyhlZmZlY3QuZWxlbWVudCk7CiAgICAgIHNldFN0eWxlKGVmZmVjdC5lbGVtZW50LCB7aGVpZ2h0OiAnMHB4J30pOwogICAgICBzaG93KGVsZW1lbnQpOyB9fSwKICAgIGFmdGVyVXBkYXRlSW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgeyB3aXRoKEVsZW1lbnQpIHsKICAgICAgc2V0U3R5bGUoZWZmZWN0LmVsZW1lbnQuZmlyc3RDaGlsZCwge2JvdHRvbToKICAgICAgICAoZWZmZWN0LmRpbXNbMF0gLSBlZmZlY3QuZWxlbWVudC5jbGllbnRIZWlnaHQpICsgJ3B4JyB9KTsgfX0sCiAgICBhZnRlckZpbmlzaEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsgd2l0aChFbGVtZW50KSB7CiAgICAgIHVuZG9DbGlwcGluZyhlZmZlY3QuZWxlbWVudCk7IAogICAgICB1bmRvUG9zaXRpb25lZChlZmZlY3QuZWxlbWVudC5maXJzdENoaWxkKTsKICAgICAgdW5kb1Bvc2l0aW9uZWQoZWZmZWN0LmVsZW1lbnQpOwogICAgICBzZXRTdHlsZShlZmZlY3QuZWxlbWVudC5maXJzdENoaWxkLCB7Ym90dG9tOiBvbGRJbm5lckJvdHRvbX0pOyB9fQogICAgfSwgYXJndW1lbnRzWzFdIHx8IHt9KQogICk7Cn0KICAKRWZmZWN0LlNsaWRlVXAgPSBmdW5jdGlvbihlbGVtZW50KSB7CiAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgRWxlbWVudC5jbGVhbldoaXRlc3BhY2UoZWxlbWVudCk7CiAgdmFyIG9sZElubmVyQm90dG9tID0gRWxlbWVudC5nZXRTdHlsZShlbGVtZW50LmZpcnN0Q2hpbGQsICdib3R0b20nKTsKICByZXR1cm4gbmV3IEVmZmVjdC5TY2FsZShlbGVtZW50LCAwLCAKICAgT2JqZWN0LmV4dGVuZCh7IHNjYWxlQ29udGVudDogZmFsc2UsIAogICAgc2NhbGVYOiBmYWxzZSwgCiAgICBzY2FsZU1vZGU6ICdib3gnLAogICAgc2NhbGVGcm9tOiAxMDAsCiAgICByZXN0b3JlQWZ0ZXJGaW5pc2g6IHRydWUsCiAgICBiZWZvcmVTdGFydEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsgd2l0aChFbGVtZW50KSB7CiAgICAgIG1ha2VQb3NpdGlvbmVkKGVmZmVjdC5lbGVtZW50KTsKICAgICAgbWFrZVBvc2l0aW9uZWQoZWZmZWN0LmVsZW1lbnQuZmlyc3RDaGlsZCk7CiAgICAgIGlmKHdpbmRvdy5vcGVyYSkgc2V0U3R5bGUoZWZmZWN0LmVsZW1lbnQsIHt0b3A6ICcnfSk7CiAgICAgIG1ha2VDbGlwcGluZyhlZmZlY3QuZWxlbWVudCk7CiAgICAgIHNob3coZWxlbWVudCk7IH19LCAgCiAgICBhZnRlclVwZGF0ZUludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsgd2l0aChFbGVtZW50KSB7CiAgICAgIHNldFN0eWxlKGVmZmVjdC5lbGVtZW50LmZpcnN0Q2hpbGQsIHtib3R0b206CiAgICAgICAgKGVmZmVjdC5kaW1zWzBdIC0gZWZmZWN0LmVsZW1lbnQuY2xpZW50SGVpZ2h0KSArICdweCcgfSk7IH19LAogICAgYWZ0ZXJGaW5pc2hJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7IHdpdGgoRWxlbWVudCkgewogICAgICAgIFtoaWRlLCB1bmRvQ2xpcHBpbmddLmNhbGwoZWZmZWN0LmVsZW1lbnQpOyAKICAgICAgICB1bmRvUG9zaXRpb25lZChlZmZlY3QuZWxlbWVudC5maXJzdENoaWxkKTsKICAgICAgICB1bmRvUG9zaXRpb25lZChlZmZlY3QuZWxlbWVudCk7CiAgICAgICAgc2V0U3R5bGUoZWZmZWN0LmVsZW1lbnQuZmlyc3RDaGlsZCwge2JvdHRvbTogb2xkSW5uZXJCb3R0b219KTsgfX0KICAgfSwgYXJndW1lbnRzWzFdIHx8IHt9KQogICk7Cn0KCi8vIEJ1ZyBpbiBvcGVyYSBtYWtlcyB0aGUgVEQgY29udGFpbmluZyB0aGlzIGVsZW1lbnQgZXhwYW5kIGZvciBhIGluc3RhbmNlIGFmdGVyIGZpbmlzaCAKRWZmZWN0LlNxdWlzaCA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICByZXR1cm4gbmV3IEVmZmVjdC5TY2FsZShlbGVtZW50LCB3aW5kb3cub3BlcmEgPyAxIDogMCwgCiAgICB7IHJlc3RvcmVBZnRlckZpbmlzaDogdHJ1ZSwKICAgICAgYmVmb3JlU2V0dXA6IGZ1bmN0aW9uKGVmZmVjdCkgeyB3aXRoKEVsZW1lbnQpIHsKICAgICAgICBtYWtlQ2xpcHBpbmcoZWZmZWN0LmVsZW1lbnQpOyB9fSwgIAogICAgICBhZnRlckZpbmlzaEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsgd2l0aChFbGVtZW50KSB7CiAgICAgICAgaGlkZShlZmZlY3QuZWxlbWVudCk7IAogICAgICAgIHVuZG9DbGlwcGluZyhlZmZlY3QuZWxlbWVudCk7IH19CiAgfSk7Cn0KCkVmZmVjdC5Hcm93ID0gZnVuY3Rpb24oZWxlbWVudCkgewogIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogIHZhciBvcHRpb25zID0gT2JqZWN0LmV4dGVuZCh7CiAgICBkaXJlY3Rpb246ICdjZW50ZXInLAogICAgbW92ZVRyYW5zaXN0aW9uOiBFZmZlY3QuVHJhbnNpdGlvbnMuc2lub2lkYWwsCiAgICBzY2FsZVRyYW5zaXRpb246IEVmZmVjdC5UcmFuc2l0aW9ucy5zaW5vaWRhbCwKICAgIG9wYWNpdHlUcmFuc2l0aW9uOiBFZmZlY3QuVHJhbnNpdGlvbnMuZnVsbAogIH0sIGFyZ3VtZW50c1sxXSB8fCB7fSk7CiAgdmFyIG9sZFN0eWxlID0gewogICAgdG9wOiBlbGVtZW50LnN0eWxlLnRvcCwKICAgIGxlZnQ6IGVsZW1lbnQuc3R5bGUubGVmdCwKICAgIGhlaWdodDogZWxlbWVudC5zdHlsZS5oZWlnaHQsCiAgICB3aWR0aDogZWxlbWVudC5zdHlsZS53aWR0aCwKICAgIG9wYWNpdHk6IEVsZW1lbnQuZ2V0SW5saW5lT3BhY2l0eShlbGVtZW50KSB9OwoKICB2YXIgZGltcyA9IEVsZW1lbnQuZ2V0RGltZW5zaW9ucyhlbGVtZW50KTsgICAgCiAgdmFyIGluaXRpYWxNb3ZlWCwgaW5pdGlhbE1vdmVZOwogIHZhciBtb3ZlWCwgbW92ZVk7CiAgCiAgc3dpdGNoIChvcHRpb25zLmRpcmVjdGlvbikgewogICAgY2FzZSAndG9wLWxlZnQnOgogICAgICBpbml0aWFsTW92ZVggPSBpbml0aWFsTW92ZVkgPSBtb3ZlWCA9IG1vdmVZID0gMDsgCiAgICAgIGJyZWFrOwogICAgY2FzZSAndG9wLXJpZ2h0JzoKICAgICAgaW5pdGlhbE1vdmVYID0gZGltcy53aWR0aDsKICAgICAgaW5pdGlhbE1vdmVZID0gbW92ZVkgPSAwOwogICAgICBtb3ZlWCA9IC1kaW1zLndpZHRoOwogICAgICBicmVhazsKICAgIGNhc2UgJ2JvdHRvbS1sZWZ0JzoKICAgICAgaW5pdGlhbE1vdmVYID0gbW92ZVggPSAwOwogICAgICBpbml0aWFsTW92ZVkgPSBkaW1zLmhlaWdodDsKICAgICAgbW92ZVkgPSAtZGltcy5oZWlnaHQ7CiAgICAgIGJyZWFrOwogICAgY2FzZSAnYm90dG9tLXJpZ2h0JzoKICAgICAgaW5pdGlhbE1vdmVYID0gZGltcy53aWR0aDsKICAgICAgaW5pdGlhbE1vdmVZID0gZGltcy5oZWlnaHQ7CiAgICAgIG1vdmVYID0gLWRpbXMud2lkdGg7CiAgICAgIG1vdmVZID0gLWRpbXMuaGVpZ2h0OwogICAgICBicmVhazsKICAgIGNhc2UgJ2NlbnRlcic6CiAgICAgIGluaXRpYWxNb3ZlWCA9IGRpbXMud2lkdGggLyAyOwogICAgICBpbml0aWFsTW92ZVkgPSBkaW1zLmhlaWdodCAvIDI7CiAgICAgIG1vdmVYID0gLWRpbXMud2lkdGggLyAyOwogICAgICBtb3ZlWSA9IC1kaW1zLmhlaWdodCAvIDI7CiAgICAgIGJyZWFrOwogIH0KICAKICByZXR1cm4gbmV3IEVmZmVjdC5Nb3ZlKGVsZW1lbnQsIHsKICAgIHg6IGluaXRpYWxNb3ZlWCwKICAgIHk6IGluaXRpYWxNb3ZlWSwKICAgIGR1cmF0aW9uOiAwLjAxLCAKICAgIGJlZm9yZVNldHVwOiBmdW5jdGlvbihlZmZlY3QpIHsgd2l0aChFbGVtZW50KSB7CiAgICAgIGhpZGUoZWZmZWN0LmVsZW1lbnQpOwogICAgICBtYWtlQ2xpcHBpbmcoZWZmZWN0LmVsZW1lbnQpOwogICAgICBtYWtlUG9zaXRpb25lZChlZmZlY3QuZWxlbWVudCk7CiAgICB9fSwKICAgIGFmdGVyRmluaXNoSW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgewogICAgICBuZXcgRWZmZWN0LlBhcmFsbGVsKAogICAgICAgIFsgbmV3IEVmZmVjdC5PcGFjaXR5KGVmZmVjdC5lbGVtZW50LCB7IHN5bmM6IHRydWUsIHRvOiAxLjAsIGZyb206IDAuMCwgdHJhbnNpdGlvbjogb3B0aW9ucy5vcGFjaXR5VHJhbnNpdGlvbiB9KSwKICAgICAgICAgIG5ldyBFZmZlY3QuTW92ZShlZmZlY3QuZWxlbWVudCwgeyB4OiBtb3ZlWCwgeTogbW92ZVksIHN5bmM6IHRydWUsIHRyYW5zaXRpb246IG9wdGlvbnMubW92ZVRyYW5zaXRpb24gfSksCiAgICAgICAgICBuZXcgRWZmZWN0LlNjYWxlKGVmZmVjdC5lbGVtZW50LCAxMDAsIHsKICAgICAgICAgICAgc2NhbGVNb2RlOiB7IG9yaWdpbmFsSGVpZ2h0OiBkaW1zLmhlaWdodCwgb3JpZ2luYWxXaWR0aDogZGltcy53aWR0aCB9LCAKICAgICAgICAgICAgc3luYzogdHJ1ZSwgc2NhbGVGcm9tOiB3aW5kb3cub3BlcmEgPyAxIDogMCwgdHJhbnNpdGlvbjogb3B0aW9ucy5zY2FsZVRyYW5zaXRpb24sIHJlc3RvcmVBZnRlckZpbmlzaDogdHJ1ZX0pCiAgICAgICAgXSwgT2JqZWN0LmV4dGVuZCh7CiAgICAgICAgICAgICBiZWZvcmVTZXR1cDogZnVuY3Rpb24oZWZmZWN0KSB7IHdpdGgoRWxlbWVudCkgewogICAgICAgICAgICAgICBzZXRTdHlsZShlZmZlY3QuZWZmZWN0c1swXS5lbGVtZW50LCB7aGVpZ2h0OiAnMHB4J30pOwogICAgICAgICAgICAgICBzaG93KGVmZmVjdC5lZmZlY3RzWzBdLmVsZW1lbnQpOyB9fSwKICAgICAgICAgICAgIGFmdGVyRmluaXNoSW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgeyB3aXRoKEVsZW1lbnQpIHsKICAgICAgICAgICAgICAgW3VuZG9DbGlwcGluZywgdW5kb1Bvc2l0aW9uZWRdLmNhbGwoZWZmZWN0LmVmZmVjdHNbMF0uZWxlbWVudCk7IAogICAgICAgICAgICAgICBzZXRTdHlsZShlZmZlY3QuZWZmZWN0c1swXS5lbGVtZW50LCBvbGRTdHlsZSk7IH19CiAgICAgICAgICAgfSwgb3B0aW9ucykKICAgICAgKQogICAgfQogIH0pOwp9CgpFZmZlY3QuU2hyaW5rID0gZnVuY3Rpb24oZWxlbWVudCkgewogIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogIHZhciBvcHRpb25zID0gT2JqZWN0LmV4dGVuZCh7CiAgICBkaXJlY3Rpb246ICdjZW50ZXInLAogICAgbW92ZVRyYW5zaXN0aW9uOiBFZmZlY3QuVHJhbnNpdGlvbnMuc2lub2lkYWwsCiAgICBzY2FsZVRyYW5zaXRpb246IEVmZmVjdC5UcmFuc2l0aW9ucy5zaW5vaWRhbCwKICAgIG9wYWNpdHlUcmFuc2l0aW9uOiBFZmZlY3QuVHJhbnNpdGlvbnMubm9uZQogIH0sIGFyZ3VtZW50c1sxXSB8fCB7fSk7CiAgdmFyIG9sZFN0eWxlID0gewogICAgdG9wOiBlbGVtZW50LnN0eWxlLnRvcCwKICAgIGxlZnQ6IGVsZW1lbnQuc3R5bGUubGVmdCwKICAgIGhlaWdodDogZWxlbWVudC5zdHlsZS5oZWlnaHQsCiAgICB3aWR0aDogZWxlbWVudC5zdHlsZS53aWR0aCwKICAgIG9wYWNpdHk6IEVsZW1lbnQuZ2V0SW5saW5lT3BhY2l0eShlbGVtZW50KSB9OwoKICB2YXIgZGltcyA9IEVsZW1lbnQuZ2V0RGltZW5zaW9ucyhlbGVtZW50KTsKICB2YXIgbW92ZVgsIG1vdmVZOwogIAogIHN3aXRjaCAob3B0aW9ucy5kaXJlY3Rpb24pIHsKICAgIGNhc2UgJ3RvcC1sZWZ0JzoKICAgICAgbW92ZVggPSBtb3ZlWSA9IDA7CiAgICAgIGJyZWFrOwogICAgY2FzZSAndG9wLXJpZ2h0JzoKICAgICAgbW92ZVggPSBkaW1zLndpZHRoOwogICAgICBtb3ZlWSA9IDA7CiAgICAgIGJyZWFrOwogICAgY2FzZSAnYm90dG9tLWxlZnQnOgogICAgICBtb3ZlWCA9IDA7CiAgICAgIG1vdmVZID0gZGltcy5oZWlnaHQ7CiAgICAgIGJyZWFrOwogICAgY2FzZSAnYm90dG9tLXJpZ2h0JzoKICAgICAgbW92ZVggPSBkaW1zLndpZHRoOwogICAgICBtb3ZlWSA9IGRpbXMuaGVpZ2h0OwogICAgICBicmVhazsKICAgIGNhc2UgJ2NlbnRlcic6ICAKICAgICAgbW92ZVggPSBkaW1zLndpZHRoIC8gMjsKICAgICAgbW92ZVkgPSBkaW1zLmhlaWdodCAvIDI7CiAgICAgIGJyZWFrOwogIH0KICAKICByZXR1cm4gbmV3IEVmZmVjdC5QYXJhbGxlbCgKICAgIFsgbmV3IEVmZmVjdC5PcGFjaXR5KGVsZW1lbnQsIHsgc3luYzogdHJ1ZSwgdG86IDAuMCwgZnJvbTogMS4wLCB0cmFuc2l0aW9uOiBvcHRpb25zLm9wYWNpdHlUcmFuc2l0aW9uIH0pLAogICAgICBuZXcgRWZmZWN0LlNjYWxlKGVsZW1lbnQsIHdpbmRvdy5vcGVyYSA/IDEgOiAwLCB7IHN5bmM6IHRydWUsIHRyYW5zaXRpb246IG9wdGlvbnMuc2NhbGVUcmFuc2l0aW9uLCByZXN0b3JlQWZ0ZXJGaW5pc2g6IHRydWV9KSwKICAgICAgbmV3IEVmZmVjdC5Nb3ZlKGVsZW1lbnQsIHsgeDogbW92ZVgsIHk6IG1vdmVZLCBzeW5jOiB0cnVlLCB0cmFuc2l0aW9uOiBvcHRpb25zLm1vdmVUcmFuc2l0aW9uIH0pCiAgICBdLCBPYmplY3QuZXh0ZW5kKHsgICAgICAgICAgICAKICAgICAgICAgYmVmb3JlU3RhcnRJbnRlcm5hbDogZnVuY3Rpb24oZWZmZWN0KSB7IHdpdGgoRWxlbWVudCkgewogICAgICAgICAgIFttYWtlUG9zaXRpb25lZCwgbWFrZUNsaXBwaW5nXS5jYWxsKGVmZmVjdC5lZmZlY3RzWzBdLmVsZW1lbnQpIH19LAogICAgICAgICBhZnRlckZpbmlzaEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsgd2l0aChFbGVtZW50KSB7CiAgICAgICAgICAgW2hpZGUsIHVuZG9DbGlwcGluZywgdW5kb1Bvc2l0aW9uZWRdLmNhbGwoZWZmZWN0LmVmZmVjdHNbMF0uZWxlbWVudCk7CiAgICAgICAgICAgc2V0U3R5bGUoZWZmZWN0LmVmZmVjdHNbMF0uZWxlbWVudCwgb2xkU3R5bGUpOyB9fQogICAgICAgfSwgb3B0aW9ucykKICApOwp9CgpFZmZlY3QuUHVsc2F0ZSA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICBlbGVtZW50ID0gJChlbGVtZW50KTsKICB2YXIgb3B0aW9ucyAgICA9IGFyZ3VtZW50c1sxXSB8fCB7fTsKICB2YXIgb2xkT3BhY2l0eSA9IEVsZW1lbnQuZ2V0SW5saW5lT3BhY2l0eShlbGVtZW50KTsKICB2YXIgdHJhbnNpdGlvbiA9IG9wdGlvbnMudHJhbnNpdGlvbiB8fCBFZmZlY3QuVHJhbnNpdGlvbnMuc2lub2lkYWw7CiAgdmFyIHJldmVyc2VyICAgPSBmdW5jdGlvbihwb3MpeyByZXR1cm4gdHJhbnNpdGlvbigxLUVmZmVjdC5UcmFuc2l0aW9ucy5wdWxzZShwb3MpKSB9OwogIHJldmVyc2VyLmJpbmQodHJhbnNpdGlvbik7CiAgcmV0dXJuIG5ldyBFZmZlY3QuT3BhY2l0eShlbGVtZW50LCAKICAgIE9iamVjdC5leHRlbmQoT2JqZWN0LmV4dGVuZCh7ICBkdXJhdGlvbjogMy4wLCBmcm9tOiAwLAogICAgICBhZnRlckZpbmlzaEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsgRWxlbWVudC5zZXRTdHlsZShlZmZlY3QuZWxlbWVudCwge29wYWNpdHk6IG9sZE9wYWNpdHl9KTsgfQogICAgfSwgb3B0aW9ucyksIHt0cmFuc2l0aW9uOiByZXZlcnNlcn0pKTsKfQoKRWZmZWN0LkZvbGQgPSBmdW5jdGlvbihlbGVtZW50KSB7CiAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgdmFyIG9sZFN0eWxlID0gewogICAgdG9wOiBlbGVtZW50LnN0eWxlLnRvcCwKICAgIGxlZnQ6IGVsZW1lbnQuc3R5bGUubGVmdCwKICAgIHdpZHRoOiBlbGVtZW50LnN0eWxlLndpZHRoLAogICAgaGVpZ2h0OiBlbGVtZW50LnN0eWxlLmhlaWdodCB9OwogIEVsZW1lbnQubWFrZUNsaXBwaW5nKGVsZW1lbnQpOwogIHJldHVybiBuZXcgRWZmZWN0LlNjYWxlKGVsZW1lbnQsIDUsIE9iamVjdC5leHRlbmQoeyAgIAogICAgc2NhbGVDb250ZW50OiBmYWxzZSwKICAgIHNjYWxlWDogZmFsc2UsCiAgICBhZnRlckZpbmlzaEludGVybmFsOiBmdW5jdGlvbihlZmZlY3QpIHsKICAgIG5ldyBFZmZlY3QuU2NhbGUoZWxlbWVudCwgMSwgeyAKICAgICAgc2NhbGVDb250ZW50OiBmYWxzZSwgCiAgICAgIHNjYWxlWTogZmFsc2UsCiAgICAgIGFmdGVyRmluaXNoSW50ZXJuYWw6IGZ1bmN0aW9uKGVmZmVjdCkgeyB3aXRoKEVsZW1lbnQpIHsKICAgICAgICBbaGlkZSwgdW5kb0NsaXBwaW5nXS5jYWxsKGVmZmVjdC5lbGVtZW50KTsgCiAgICAgICAgc2V0U3R5bGUoZWZmZWN0LmVsZW1lbnQsIG9sZFN0eWxlKTsKICAgICAgfX0gfSk7CiAgfX0sIGFyZ3VtZW50c1sxXSB8fCB7fSkpOwp9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/js/lightbox.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8KLy8JTGlnaHRib3ggdjIuMDMuMwovLwlieSBMb2tlc2ggRGhha2FyIC0gaHR0cDovL3d3dy5odWRkbGV0b2dldGhlci5jb20KLy8JNS8yMS8wNgovLwovLwlGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGlzIHNjcmlwdCwgdmlzaXQ6Ci8vCWh0dHA6Ly9odWRkbGV0b2dldGhlci5jb20vcHJvamVjdHMvbGlnaHRib3gyLwovLwovLwlMaWNlbnNlZCB1bmRlciB0aGUgQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbiAyLjUgTGljZW5zZSAtIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzIuNS8KLy8KLy8JQ3JlZGl0IGFsc28gZHVlIHRvIHRob3NlIHdobyBoYXZlIGhlbHBlZCwgaW5zcGlyZWQsIGFuZCBtYWRlIHRoZWlyIGNvZGUgYXZhaWxhYmxlIHRvIHRoZSBwdWJsaWMuCi8vCUluY2x1ZGluZzogU2NvdHQgVXB0b24odXB0b25pYy5jb20pLCBQZXRlci1QYXVsIEtvY2gocXVpcmtzbW9kZS5jb20pLCBUaG9tYXMgRnVjaHMobWlyLmFjdWxvLnVzKSwgYW5kIG90aGVycy4KLy8KLy8KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLyoKCglUYWJsZSBvZiBDb250ZW50cwoJLS0tLS0tLS0tLS0tLS0tLS0KCUNvbmZpZ3VyYXRpb24KCUdsb2JhbCBWYXJpYWJsZXMKCglFeHRlbmRpbmcgQnVpbHQtaW4gT2JqZWN0cwoJLSBPYmplY3QuZXh0ZW5kKEVsZW1lbnQpCgktIEFycmF5LnByb3RvdHlwZS5yZW1vdmVEdXBsaWNhdGVzKCkKCS0gQXJyYXkucHJvdG90eXBlLmVtcHR5KCkKCglMaWdodGJveCBDbGFzcyBEZWNsYXJhdGlvbgoJLSBpbml0aWFsaXplKCkKCS0gdXBkYXRlSW1hZ2VMaXN0KCkKCS0gc3RhcnQoKQoJLSBjaGFuZ2VJbWFnZSgpCgktIHJlc2l6ZUltYWdlQ29udGFpbmVyKCkKCS0gc2hvd0ltYWdlKCkKCS0gdXBkYXRlRGV0YWlscygpCgktIHVwZGF0ZU5hdigpCgktIGVuYWJsZUtleWJvYXJkTmF2KCkKCS0gZGlzYWJsZUtleWJvYXJkTmF2KCkKCS0ga2V5Ym9hcmRBY3Rpb24oKQoJLSBwcmVsb2FkTmVpZ2hib3JJbWFnZXMoKQoJLSBlbmQoKQoKCU1pc2NlbGxhbmVvdXMgRnVuY3Rpb25zCgktIGdldFBhZ2VTY3JvbGwoKQoJLSBnZXRQYWdlU2l6ZSgpCgktIGdldEtleSgpCgktIGxpc3RlbktleSgpCgktIHNob3dTZWxlY3RCb3hlcygpCgktIGhpZGVTZWxlY3RCb3hlcygpCgktIHNob3dGbGFzaCgpCgktIGhpZGVGbGFzaCgpCgktIHBhdXNlKCkKCS0gaW5pdExpZ2h0Ym94KCkKCglGdW5jdGlvbiBDYWxscwoJLSBhZGRMb2FkRXZlbnQoaW5pdExpZ2h0Ym94KQoKKi8KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi8vCi8vCUNvbmZpZ3VyYXRpb24KLy8KdmFyIGZpbGVMb2FkaW5nSW1hZ2UgPSAibW9kdWxlcy9QaWNhc2FCcm93c2VyL3RlbXBsYXRlcy9saWdodGJveC9pbWFnZXMvbG9hZGluZy5naWYiOwp2YXIgZmlsZUJvdHRvbU5hdkNsb3NlSW1hZ2UgPSAibW9kdWxlcy9QaWNhc2FCcm93c2VyL3RlbXBsYXRlcy9saWdodGJveC9pbWFnZXMvY2xvc2VsYWJlbC5naWYiOwoKdmFyIG92ZXJsYXlPcGFjaXR5ID0gMC44OwkvLyBjb250cm9scyB0cmFuc3BhcmVuY3kgb2Ygc2hhZG93IG92ZXJsYXkKCnZhciBhbmltYXRlID0gdHJ1ZTsJCQkvLyB0b2dnbGVzIHJlc2l6aW5nIGFuaW1hdGlvbnMKdmFyIHJlc2l6ZVNwZWVkID0gOTsJCS8vIGNvbnRyb2xzIHRoZSBzcGVlZCBvZiB0aGUgaW1hZ2UgcmVzaXppbmcgYW5pbWF0aW9ucyAoMT1zbG93ZXN0IGFuZCAxMD1mYXN0ZXN0KQoKdmFyIGJvcmRlclNpemUgPSAxMDsJCS8vaWYgeW91IGFkanVzdCB0aGUgcGFkZGluZyBpbiB0aGUgQ1NTLCB5b3Ugd2lsbCBuZWVkIHRvIHVwZGF0ZSB0aGlzIHZhcmlhYmxlCgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLy8KLy8JR2xvYmFsIFZhcmlhYmxlcwovLwp2YXIgaW1hZ2VBcnJheSA9IG5ldyBBcnJheTsKdmFyIGFjdGl2ZUltYWdlOwoKaWYoYW5pbWF0ZSA9PSB0cnVlKXsKCW92ZXJsYXlEdXJhdGlvbiA9IDAuMjsJLy8gc2hhZG93IGZhZGUgaW4vb3V0IGR1cmF0aW9uCglpZihyZXNpemVTcGVlZCA+IDEwKXsgcmVzaXplU3BlZWQgPSAxMDt9CglpZihyZXNpemVTcGVlZCA8IDEpeyByZXNpemVTcGVlZCA9IDE7fQoJcmVzaXplRHVyYXRpb24gPSAoMTEgLSByZXNpemVTcGVlZCkgKiAwLjE1Owp9IGVsc2UgewoJb3ZlcmxheUR1cmF0aW9uID0gMDsKCXJlc2l6ZUR1cmF0aW9uID0gMDsKfQoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi8vCi8vCUFkZGl0aW9uYWwgbWV0aG9kcyBmb3IgRWxlbWVudCBhZGRlZCBieSBTVSwgQ291bG9pcgovLwktIGZ1cnRoZXIgYWRkaXRpb25zIGJ5IExva2VzaCBEaGFrYXIgKGh1ZGRsZXRvZ2V0aGVyLmNvbSkKLy8KT2JqZWN0LmV4dGVuZChFbGVtZW50LCB7CglnZXRXaWR0aDogZnVuY3Rpb24oZWxlbWVudCkgewoJICAgCWVsZW1lbnQgPSAkKGVsZW1lbnQpOwoJICAgCXJldHVybiBlbGVtZW50Lm9mZnNldFdpZHRoOwoJfSwKCXNldFdpZHRoOiBmdW5jdGlvbihlbGVtZW50LHcpIHsKCSAgIAllbGVtZW50ID0gJChlbGVtZW50KTsKICAgIAllbGVtZW50LnN0eWxlLndpZHRoID0gdyArInB4IjsKCX0sCglzZXRIZWlnaHQ6IGZ1bmN0aW9uKGVsZW1lbnQsaCkgewogICAJCWVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgCWVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gaCArInB4IjsKCX0sCglzZXRUb3A6IGZ1bmN0aW9uKGVsZW1lbnQsdCkgewoJICAgCWVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgCWVsZW1lbnQuc3R5bGUudG9wID0gdCArInB4IjsKCX0sCglzZXRMZWZ0OiBmdW5jdGlvbihlbGVtZW50LGwpIHsKCSAgIAllbGVtZW50ID0gJChlbGVtZW50KTsKICAgIAllbGVtZW50LnN0eWxlLmxlZnQgPSBsICsicHgiOwoJfSwKCXNldFNyYzogZnVuY3Rpb24oZWxlbWVudCxzcmMpIHsKICAgIAllbGVtZW50ID0gJChlbGVtZW50KTsKICAgIAllbGVtZW50LnNyYyA9IHNyYzsKCX0sCglzZXRIcmVmOiBmdW5jdGlvbihlbGVtZW50LGhyZWYpIHsKICAgIAllbGVtZW50ID0gJChlbGVtZW50KTsKICAgIAllbGVtZW50LmhyZWYgPSBocmVmOwoJfSwKCXNldElubmVySFRNTDogZnVuY3Rpb24oZWxlbWVudCxjb250ZW50KSB7CgkJZWxlbWVudCA9ICQoZWxlbWVudCk7CgkJZWxlbWVudC5pbm5lckhUTUwgPSBjb250ZW50OwoJfQp9KTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgovLwovLwlFeHRlbmRpbmcgYnVpbHQtaW4gQXJyYXkgb2JqZWN0Ci8vCS0gYXJyYXkucmVtb3ZlRHVwbGljYXRlcygpCi8vCS0gYXJyYXkuZW1wdHkoKQovLwpBcnJheS5wcm90b3R5cGUucmVtb3ZlRHVwbGljYXRlcyA9IGZ1bmN0aW9uICgpIHsKICAgIGZvcihpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspewogICAgICAgIGZvcihqID0gdGhpcy5sZW5ndGgtMTsgaj5pOyBqLS0pewogICAgICAgICAgICBpZih0aGlzW2ldWzBdID09IHRoaXNbal1bMF0pewogICAgICAgICAgICAgICAgdGhpcy5zcGxpY2UoaiwxKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkFycmF5LnByb3RvdHlwZS5lbXB0eSA9IGZ1bmN0aW9uICgpIHsKCWZvcihpID0gMDsgaSA8PSB0aGlzLmxlbmd0aDsgaSsrKXsKCQl0aGlzLnNoaWZ0KCk7Cgl9Cn0KCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgovLwovLwlMaWdodGJveCBDbGFzcyBEZWNsYXJhdGlvbgovLwktIGluaXRpYWxpemUoKQovLwktIHN0YXJ0KCkKLy8JLSBjaGFuZ2VJbWFnZSgpCi8vCS0gcmVzaXplSW1hZ2VDb250YWluZXIoKQovLwktIHNob3dJbWFnZSgpCi8vCS0gdXBkYXRlRGV0YWlscygpCi8vCS0gdXBkYXRlTmF2KCkKLy8JLSBlbmFibGVLZXlib2FyZE5hdigpCi8vCS0gZGlzYWJsZUtleWJvYXJkTmF2KCkKLy8JLSBrZXlib2FyZE5hdkFjdGlvbigpCi8vCS0gcHJlbG9hZE5laWdoYm9ySW1hZ2VzKCkKLy8JLSBlbmQoKQovLwovLwlTdHJ1Y3R1cmluZyBvZiBjb2RlIGluc3BpcmVkIGJ5IFNjb3R0IFVwdG9uIChodHRwOi8vd3d3LnVwdG9uaWMuY29tLykKLy8KdmFyIExpZ2h0Ym94ID0gQ2xhc3MuY3JlYXRlKCk7CgpMaWdodGJveC5wcm90b3R5cGUgPSB7CgoJLy8gaW5pdGlhbGl6ZSgpCgkvLyBDb25zdHJ1Y3RvciBydW5zIG9uIGNvbXBsZXRpb24gb2YgdGhlIERPTSBsb2FkaW5nLiBDYWxscyB1cGRhdGVJbWFnZUxpc3QgYW5kIHRoZW4KCS8vIHRoZSBmdW5jdGlvbiBpbnNlcnRzIGh0bWwgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSB3aGljaCBpcyB1c2VkIHRvIGRpc3BsYXkgdGhlIHNoYWRvdwoJLy8gb3ZlcmxheSBhbmQgdGhlIGltYWdlIGNvbnRhaW5lci4KCS8vCglpbml0aWFsaXplOiBmdW5jdGlvbigpIHsKCgkJdGhpcy51cGRhdGVJbWFnZUxpc3QoKTsKCgkJLy8gQ29kZSBpbnNlcnRzIGh0bWwgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSB0aGF0IGxvb2tzIHNpbWlsYXIgdG8gdGhpczoKCQkvLwoJCS8vCTxkaXYgaWQ9Im92ZXJsYXkiPjwvZGl2PgoJCS8vCTxkaXYgaWQ9ImxpZ2h0Ym94Ij4KCQkvLwkJPGRpdiBpZD0ib3V0ZXJJbWFnZUNvbnRhaW5lciI+CgkJLy8JCQk8ZGl2IGlkPSJpbWFnZUNvbnRhaW5lciI+CgkJLy8JCQkJPGltZyBpZD0ibGlnaHRib3hJbWFnZSI+CgkJLy8JCQkJPGRpdiBzdHlsZT0iIiBpZD0iaG92ZXJOYXYiPgoJCS8vCQkJCQk8YSBocmVmPSIjIiBpZD0icHJldkxpbmsiPjwvYT4KCQkvLwkJCQkJPGEgaHJlZj0iIyIgaWQ9Im5leHRMaW5rIj48L2E+CgkJLy8JCQkJPC9kaXY+CgkJLy8JCQkJPGRpdiBpZD0ibG9hZGluZyI+CgkJLy8JCQkJCTxhIGhyZWY9IiMiIGlkPSJsb2FkaW5nTGluayI+CgkJLy8JCQkJCQk8aW1nIHNyYz0iaW1hZ2VzL2xvYWRpbmcuZ2lmIj4KCQkvLwkJCQkJPC9hPgoJCS8vCQkJCTwvZGl2PgoJCS8vCQkJPC9kaXY+CgkJLy8JCTwvZGl2PgoJCS8vCQk8ZGl2IGlkPSJpbWFnZURhdGFDb250YWluZXIiPgoJCS8vCQkJPGRpdiBpZD0iaW1hZ2VEYXRhIj4KCQkvLwkJCQk8ZGl2IGlkPSJpbWFnZURldGFpbHMiPgoJCS8vCQkJCQk8c3BhbiBpZD0iY2FwdGlvbiI+PC9zcGFuPgoJCS8vCQkJCQk8c3BhbiBpZD0ibnVtYmVyRGlzcGxheSI+PC9zcGFuPgoJCS8vCQkJCTwvZGl2PgoJCS8vCQkJCTxkaXYgaWQ9ImJvdHRvbU5hdiI+CgkJLy8JCQkJCTxhIGhyZWY9IiMiIGlkPSJib3R0b21OYXZDbG9zZSI+CgkJLy8JCQkJCQk8aW1nIHNyYz0iaW1hZ2VzL2Nsb3NlLmdpZiI+CgkJLy8JCQkJCTwvYT4KCQkvLwkJCQk8L2Rpdj4KCQkvLwkJCTwvZGl2PgoJCS8vCQk8L2Rpdj4KCQkvLwk8L2Rpdj4KCgoJCXZhciBvYmpCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKS5pdGVtKDApOwoKCQl2YXIgb2JqT3ZlcmxheSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwoJCW9iak92ZXJsYXkuc2V0QXR0cmlidXRlKCdpZCcsJ292ZXJsYXknKTsKCQlvYmpPdmVybGF5LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CgkJb2JqT3ZlcmxheS5vbmNsaWNrID0gZnVuY3Rpb24oKSB7IG15TGlnaHRib3guZW5kKCk7IH0KCQlvYmpCb2R5LmFwcGVuZENoaWxkKG9iak92ZXJsYXkpOwoKCQl2YXIgb2JqTGlnaHRib3ggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKCQlvYmpMaWdodGJveC5zZXRBdHRyaWJ1dGUoJ2lkJywnbGlnaHRib3gnKTsKCQlvYmpMaWdodGJveC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwoJCW9iakxpZ2h0Ym94Lm9uY2xpY2sgPSBmdW5jdGlvbihlKSB7CS8vIGNsb3NlIExpZ2h0Ym94IGlzIHVzZXIgY2xpY2tzIHNoYWRvdyBvdmVybGF5CgkJCWlmICghZSkgdmFyIGUgPSB3aW5kb3cuZXZlbnQ7CgkJCXZhciBjbGlja09iaiA9IEV2ZW50LmVsZW1lbnQoZSkuaWQ7CgkJCWlmICggY2xpY2tPYmogPT0gJ2xpZ2h0Ym94JykgewoJCQkJbXlMaWdodGJveC5lbmQoKTsKCQkJfQoJCX07CgkJb2JqQm9keS5hcHBlbmRDaGlsZChvYmpMaWdodGJveCk7CgoJCXZhciBvYmpPdXRlckltYWdlQ29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CgkJb2JqT3V0ZXJJbWFnZUNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywnb3V0ZXJJbWFnZUNvbnRhaW5lcicpOwoJCW9iakxpZ2h0Ym94LmFwcGVuZENoaWxkKG9iak91dGVySW1hZ2VDb250YWluZXIpOwoKCQkvLyBXaGVuIExpZ2h0Ym94IHN0YXJ0cyBpdCB3aWxsIHJlc2l6ZSBpdHNlbGYgZnJvbSAyNTAgYnkgMjUwIHRvIHRoZSBjdXJyZW50IGltYWdlIGRpbWVuc2lvbi4KCQkvLyBJZiBhbmltYXRpb25zIGFyZSB0dXJuZWQgb2ZmLCBpdCB3aWxsIGJlIGhpZGRlbiBhcyB0byBwcmV2ZW50IGEgZmxpY2tlciBvZiBhCgkJLy8gd2hpdGUgMjUwIGJ5IDI1MCBib3guCgkJaWYoYW5pbWF0ZSl7CgkJCUVsZW1lbnQuc2V0V2lkdGgoJ291dGVySW1hZ2VDb250YWluZXInLCAyNTApOwoJCQlFbGVtZW50LnNldEhlaWdodCgnb3V0ZXJJbWFnZUNvbnRhaW5lcicsIDI1MCk7CgkJfSBlbHNlIHsKCQkJRWxlbWVudC5zZXRXaWR0aCgnb3V0ZXJJbWFnZUNvbnRhaW5lcicsIDEpOwoJCQlFbGVtZW50LnNldEhlaWdodCgnb3V0ZXJJbWFnZUNvbnRhaW5lcicsIDEpOwoJCX0KCgkJdmFyIG9iakltYWdlQ29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CgkJb2JqSW1hZ2VDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsJ2ltYWdlQ29udGFpbmVyJyk7CgkJb2JqT3V0ZXJJbWFnZUNvbnRhaW5lci5hcHBlbmRDaGlsZChvYmpJbWFnZUNvbnRhaW5lcik7CgoJCXZhciBvYmpMaWdodGJveEltYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7CgkJb2JqTGlnaHRib3hJbWFnZS5zZXRBdHRyaWJ1dGUoJ2lkJywnbGlnaHRib3hJbWFnZScpOwoJCW9iakltYWdlQ29udGFpbmVyLmFwcGVuZENoaWxkKG9iakxpZ2h0Ym94SW1hZ2UpOwoKCQl2YXIgb2JqSG92ZXJOYXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKCQlvYmpIb3Zlck5hdi5zZXRBdHRyaWJ1dGUoJ2lkJywnaG92ZXJOYXYnKTsKCQlvYmpJbWFnZUNvbnRhaW5lci5hcHBlbmRDaGlsZChvYmpIb3Zlck5hdik7CgoJCXZhciBvYmpQcmV2TGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKCQlvYmpQcmV2TGluay5zZXRBdHRyaWJ1dGUoJ2lkJywncHJldkxpbmsnKTsKCQlvYmpQcmV2TGluay5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCcjJyk7CgkJb2JqSG92ZXJOYXYuYXBwZW5kQ2hpbGQob2JqUHJldkxpbmspOwoKCQl2YXIgb2JqTmV4dExpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7CgkJb2JqTmV4dExpbmsuc2V0QXR0cmlidXRlKCdpZCcsJ25leHRMaW5rJyk7CgkJb2JqTmV4dExpbmsuc2V0QXR0cmlidXRlKCdocmVmJywnIycpOwoJCW9iakhvdmVyTmF2LmFwcGVuZENoaWxkKG9iak5leHRMaW5rKTsKCgkJdmFyIG9iakxvYWRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKCQlvYmpMb2FkaW5nLnNldEF0dHJpYnV0ZSgnaWQnLCdsb2FkaW5nJyk7CgkJb2JqSW1hZ2VDb250YWluZXIuYXBwZW5kQ2hpbGQob2JqTG9hZGluZyk7CgoJCXZhciBvYmpMb2FkaW5nTGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKCQlvYmpMb2FkaW5nTGluay5zZXRBdHRyaWJ1dGUoJ2lkJywnbG9hZGluZ0xpbmsnKTsKCQlvYmpMb2FkaW5nTGluay5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCcjJyk7CgkJb2JqTG9hZGluZ0xpbmsub25jbGljayA9IGZ1bmN0aW9uKCkgeyBteUxpZ2h0Ym94LmVuZCgpOyByZXR1cm4gZmFsc2U7IH0KCQlvYmpMb2FkaW5nLmFwcGVuZENoaWxkKG9iakxvYWRpbmdMaW5rKTsKCgkJdmFyIG9iakxvYWRpbmdJbWFnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOwoJCW9iakxvYWRpbmdJbWFnZS5zZXRBdHRyaWJ1dGUoJ3NyYycsIGZpbGVMb2FkaW5nSW1hZ2UpOwoJCW9iakxvYWRpbmdMaW5rLmFwcGVuZENoaWxkKG9iakxvYWRpbmdJbWFnZSk7CgoJCXZhciBvYmpJbWFnZURhdGFDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKCQlvYmpJbWFnZURhdGFDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsJ2ltYWdlRGF0YUNvbnRhaW5lcicpOwoJCW9iakxpZ2h0Ym94LmFwcGVuZENoaWxkKG9iakltYWdlRGF0YUNvbnRhaW5lcik7CgoJCXZhciBvYmpJbWFnZURhdGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKCQlvYmpJbWFnZURhdGEuc2V0QXR0cmlidXRlKCdpZCcsJ2ltYWdlRGF0YScpOwoJCW9iakltYWdlRGF0YUNvbnRhaW5lci5hcHBlbmRDaGlsZChvYmpJbWFnZURhdGEpOwoKCQl2YXIgb2JqSW1hZ2VEZXRhaWxzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CgkJb2JqSW1hZ2VEZXRhaWxzLnNldEF0dHJpYnV0ZSgnaWQnLCdpbWFnZURldGFpbHMnKTsKCQlvYmpJbWFnZURhdGEuYXBwZW5kQ2hpbGQob2JqSW1hZ2VEZXRhaWxzKTsKCgkJdmFyIG9iakNhcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CgkJb2JqQ2FwdGlvbi5zZXRBdHRyaWJ1dGUoJ2lkJywnY2FwdGlvbicpOwoJCW9iakltYWdlRGV0YWlscy5hcHBlbmRDaGlsZChvYmpDYXB0aW9uKTsKCgkJdmFyIG9iak51bWJlckRpc3BsYXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CgkJb2JqTnVtYmVyRGlzcGxheS5zZXRBdHRyaWJ1dGUoJ2lkJywnbnVtYmVyRGlzcGxheScpOwoJCW9iakltYWdlRGV0YWlscy5hcHBlbmRDaGlsZChvYmpOdW1iZXJEaXNwbGF5KTsKCgkJdmFyIG9iakJvdHRvbU5hdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwoJCW9iakJvdHRvbU5hdi5zZXRBdHRyaWJ1dGUoJ2lkJywnYm90dG9tTmF2Jyk7CgkJb2JqSW1hZ2VEYXRhLmFwcGVuZENoaWxkKG9iakJvdHRvbU5hdik7CgoJCXZhciBvYmpCb3R0b21OYXZDbG9zZUxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7CgkJb2JqQm90dG9tTmF2Q2xvc2VMaW5rLnNldEF0dHJpYnV0ZSgnaWQnLCdib3R0b21OYXZDbG9zZScpOwoJCW9iakJvdHRvbU5hdkNsb3NlTGluay5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCcjJyk7CgkJb2JqQm90dG9tTmF2Q2xvc2VMaW5rLm9uY2xpY2sgPSBmdW5jdGlvbigpIHsgbXlMaWdodGJveC5lbmQoKTsgcmV0dXJuIGZhbHNlOyB9CgkJb2JqQm90dG9tTmF2LmFwcGVuZENoaWxkKG9iakJvdHRvbU5hdkNsb3NlTGluayk7CgoJCXZhciBvYmpCb3R0b21OYXZDbG9zZUltYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7CgkJb2JqQm90dG9tTmF2Q2xvc2VJbWFnZS5zZXRBdHRyaWJ1dGUoJ3NyYycsIGZpbGVCb3R0b21OYXZDbG9zZUltYWdlKTsKCQlvYmpCb3R0b21OYXZDbG9zZUxpbmsuYXBwZW5kQ2hpbGQob2JqQm90dG9tTmF2Q2xvc2VJbWFnZSk7Cgl9LAoKCgkvLwoJLy8gdXBkYXRlSW1hZ2VMaXN0KCkKCS8vIExvb3BzIHRocm91Z2ggYW5jaG9yIHRhZ3MgbG9va2luZyBmb3IgJ2xpZ2h0Ym94JyByZWZlcmVuY2VzIGFuZCBhcHBsaWVzIG9uY2xpY2sKCS8vIGV2ZW50cyB0byBhcHByb3ByaWF0ZSBsaW5rcy4gWW91IGNhbiByZXJ1biBhZnRlciBkeW5hbWljYWxseSBhZGRpbmcgaW1hZ2VzIHcvYWpheC4KCS8vCgl1cGRhdGVJbWFnZUxpc3Q6IGZ1bmN0aW9uKCkgewoJCWlmICghZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUpeyByZXR1cm47IH0KCQl2YXIgYW5jaG9ycyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdhJyk7CgkJdmFyIGFyZWFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2FyZWEnKTsKCgkJLy8gbG9vcCB0aHJvdWdoIGFsbCBhbmNob3IgdGFncwoJCWZvciAodmFyIGk9MDsgaTxhbmNob3JzLmxlbmd0aDsgaSsrKXsKCQkJdmFyIGFuY2hvciA9IGFuY2hvcnNbaV07CgoJCQl2YXIgcmVsQXR0cmlidXRlID0gU3RyaW5nKGFuY2hvci5nZXRBdHRyaWJ1dGUoJ3JlbCcpKTsKCgkJCS8vIHVzZSB0aGUgc3RyaW5nLm1hdGNoKCkgbWV0aG9kIHRvIGNhdGNoICdsaWdodGJveCcgcmVmZXJlbmNlcyBpbiB0aGUgcmVsIGF0dHJpYnV0ZQoJCQlpZiAoYW5jaG9yLmdldEF0dHJpYnV0ZSgnaHJlZicpICYmIChyZWxBdHRyaWJ1dGUudG9Mb3dlckNhc2UoKS5tYXRjaCgnbGlnaHRib3gnKSkpewoJCQkJYW5jaG9yLm9uY2xpY2sgPSBmdW5jdGlvbiAoKSB7bXlMaWdodGJveC5zdGFydCh0aGlzKTsgcmV0dXJuIGZhbHNlO30KCQkJfQoJCX0KCgkJLy8gbG9vcCB0aHJvdWdoIGFsbCBhcmVhIHRhZ3MKCQkvLyB0b2RvOiBjb21iaW5lIGFuY2hvciAmIGFyZWEgdGFnIGxvb3BzCgkJZm9yICh2YXIgaT0wOyBpPCBhcmVhcy5sZW5ndGg7IGkrKyl7CgkJCXZhciBhcmVhID0gYXJlYXNbaV07CgoJCQl2YXIgcmVsQXR0cmlidXRlID0gU3RyaW5nKGFyZWEuZ2V0QXR0cmlidXRlKCdyZWwnKSk7CgoJCQkvLyB1c2UgdGhlIHN0cmluZy5tYXRjaCgpIG1ldGhvZCB0byBjYXRjaCAnbGlnaHRib3gnIHJlZmVyZW5jZXMgaW4gdGhlIHJlbCBhdHRyaWJ1dGUKCQkJaWYgKGFyZWEuZ2V0QXR0cmlidXRlKCdocmVmJykgJiYgKHJlbEF0dHJpYnV0ZS50b0xvd2VyQ2FzZSgpLm1hdGNoKCdsaWdodGJveCcpKSl7CgkJCQlhcmVhLm9uY2xpY2sgPSBmdW5jdGlvbiAoKSB7bXlMaWdodGJveC5zdGFydCh0aGlzKTsgcmV0dXJuIGZhbHNlO30KCQkJfQoJCX0KCX0sCgoKCS8vCgkvLwlzdGFydCgpCgkvLwlEaXNwbGF5IG92ZXJsYXkgYW5kIGxpZ2h0Ym94LiBJZiBpbWFnZSBpcyBwYXJ0IG9mIGEgc2V0LCBhZGQgc2libGluZ3MgdG8gaW1hZ2VBcnJheS4KCS8vCglzdGFydDogZnVuY3Rpb24oaW1hZ2VMaW5rKSB7CgoJCWhpZGVTZWxlY3RCb3hlcygpOwoJCWhpZGVGbGFzaCgpOwoKCQkvLyBzdHJldGNoIG92ZXJsYXkgdG8gZmlsbCBwYWdlIGFuZCBmYWRlIGluCgkJdmFyIGFycmF5UGFnZVNpemUgPSBnZXRQYWdlU2l6ZSgpOwoJCUVsZW1lbnQuc2V0V2lkdGgoJ292ZXJsYXknLCBhcnJheVBhZ2VTaXplWzBdKTsKCQlFbGVtZW50LnNldEhlaWdodCgnb3ZlcmxheScsIGFycmF5UGFnZVNpemVbMV0pOwoKCQluZXcgRWZmZWN0LkFwcGVhcignb3ZlcmxheScsIHsgZHVyYXRpb246IG92ZXJsYXlEdXJhdGlvbiwgZnJvbTogMC4wLCB0bzogb3ZlcmxheU9wYWNpdHkgfSk7CgoJCWltYWdlQXJyYXkgPSBbXTsKCQlpbWFnZU51bSA9IDA7CgoJCWlmICghZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUpeyByZXR1cm47IH0KCQl2YXIgYW5jaG9ycyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCBpbWFnZUxpbmsudGFnTmFtZSk7CgoJCS8vIGlmIGltYWdlIGlzIE5PVCBwYXJ0IG9mIGEgc2V0Li4KCQlpZigoaW1hZ2VMaW5rLmdldEF0dHJpYnV0ZSgncmVsJykgPT0gJ2xpZ2h0Ym94JykpewoJCQkvLyBhZGQgc2luZ2xlIGltYWdlIHRvIGltYWdlQXJyYXkKCQkJaW1hZ2VBcnJheS5wdXNoKG5ldyBBcnJheShpbWFnZUxpbmsuZ2V0QXR0cmlidXRlKCdocmVmJyksIGltYWdlTGluay5nZXRBdHRyaWJ1dGUoJ3RpdGxlJykpKTsKCQl9IGVsc2UgewoJCS8vIGlmIGltYWdlIGlzIHBhcnQgb2YgYSBzZXQuLgoKCQkJLy8gbG9vcCB0aHJvdWdoIGFuY2hvcnMsIGZpbmQgb3RoZXIgaW1hZ2VzIGluIHNldCwgYW5kIGFkZCB0aGVtIHRvIGltYWdlQXJyYXkKCQkJZm9yICh2YXIgaT0wOyBpPGFuY2hvcnMubGVuZ3RoOyBpKyspewoJCQkJdmFyIGFuY2hvciA9IGFuY2hvcnNbaV07CgkJCQlpZiAoYW5jaG9yLmdldEF0dHJpYnV0ZSgnaHJlZicpICYmIChhbmNob3IuZ2V0QXR0cmlidXRlKCdyZWwnKSA9PSBpbWFnZUxpbmsuZ2V0QXR0cmlidXRlKCdyZWwnKSkpewoJCQkJCWltYWdlQXJyYXkucHVzaChuZXcgQXJyYXkoYW5jaG9yLmdldEF0dHJpYnV0ZSgnaHJlZicpLCBhbmNob3IuZ2V0QXR0cmlidXRlKCd0aXRsZScpKSk7CgkJCQl9CgkJCX0KCQkJaW1hZ2VBcnJheS5yZW1vdmVEdXBsaWNhdGVzKCk7CgkJCXdoaWxlKGltYWdlQXJyYXlbaW1hZ2VOdW1dWzBdICE9IGltYWdlTGluay5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSkgeyBpbWFnZU51bSsrO30KCQl9CgoJCS8vIGNhbGN1bGF0ZSB0b3AgYW5kIGxlZnQgb2Zmc2V0IGZvciB0aGUgbGlnaHRib3gKCQl2YXIgYXJyYXlQYWdlU2Nyb2xsID0gZ2V0UGFnZVNjcm9sbCgpOwoJCXZhciBsaWdodGJveFRvcCA9IGFycmF5UGFnZVNjcm9sbFsxXSArIChhcnJheVBhZ2VTaXplWzNdIC8gMTApOwoJCXZhciBsaWdodGJveExlZnQgPSBhcnJheVBhZ2VTY3JvbGxbMF07CgkJRWxlbWVudC5zZXRUb3AoJ2xpZ2h0Ym94JywgbGlnaHRib3hUb3ApOwoJCUVsZW1lbnQuc2V0TGVmdCgnbGlnaHRib3gnLCBsaWdodGJveExlZnQpOwoKCQlFbGVtZW50LnNob3coJ2xpZ2h0Ym94Jyk7CgoJCXRoaXMuY2hhbmdlSW1hZ2UoaW1hZ2VOdW0pOwoJfSwKCgkvLwoJLy8JY2hhbmdlSW1hZ2UoKQoJLy8JSGlkZSBtb3N0IGVsZW1lbnRzIGFuZCBwcmVsb2FkIGltYWdlIGluIHByZXBhcmF0aW9uIGZvciByZXNpemluZyBpbWFnZSBjb250YWluZXIuCgkvLwoJY2hhbmdlSW1hZ2U6IGZ1bmN0aW9uKGltYWdlTnVtKSB7CgoJCWFjdGl2ZUltYWdlID0gaW1hZ2VOdW07CS8vIHVwZGF0ZSBnbG9iYWwgdmFyCgoJCS8vIGhpZGUgZWxlbWVudHMgZHVyaW5nIHRyYW5zaXRpb24KCQlpZihhbmltYXRlKXsgRWxlbWVudC5zaG93KCdsb2FkaW5nJyk7fQoJCUVsZW1lbnQuaGlkZSgnbGlnaHRib3hJbWFnZScpOwoJCUVsZW1lbnQuaGlkZSgnaG92ZXJOYXYnKTsKCQlFbGVtZW50LmhpZGUoJ3ByZXZMaW5rJyk7CgkJRWxlbWVudC5oaWRlKCduZXh0TGluaycpOwoJCUVsZW1lbnQuaGlkZSgnaW1hZ2VEYXRhQ29udGFpbmVyJyk7CgkJRWxlbWVudC5oaWRlKCdudW1iZXJEaXNwbGF5Jyk7CgoJCWltZ1ByZWxvYWRlciA9IG5ldyBJbWFnZSgpOwoKCQkvLyBvbmNlIGltYWdlIGlzIHByZWxvYWRlZCwgcmVzaXplIGltYWdlIGNvbnRhaW5lcgoJCWltZ1ByZWxvYWRlci5vbmxvYWQ9ZnVuY3Rpb24oKXsKCQkJRWxlbWVudC5zZXRTcmMoJ2xpZ2h0Ym94SW1hZ2UnLCBpbWFnZUFycmF5W2FjdGl2ZUltYWdlXVswXSk7CgkJCW15TGlnaHRib3gucmVzaXplSW1hZ2VDb250YWluZXIoaW1nUHJlbG9hZGVyLndpZHRoLCBpbWdQcmVsb2FkZXIuaGVpZ2h0KTsKCgkJCWltZ1ByZWxvYWRlci5vbmxvYWQ9ZnVuY3Rpb24oKXt9OwkvLwljbGVhciBvbkxvYWQsIElFIGJlaGF2ZXMgaXJyYXRpY2FsbHkgd2l0aCBhbmltYXRlZCBnaWZzIG90aGVyd2lzZQoJCX0KCQlpbWdQcmVsb2FkZXIuc3JjID0gaW1hZ2VBcnJheVthY3RpdmVJbWFnZV1bMF07Cgl9LAoKCS8vCgkvLwlyZXNpemVJbWFnZUNvbnRhaW5lcigpCgkvLwoJcmVzaXplSW1hZ2VDb250YWluZXI6IGZ1bmN0aW9uKCBpbWdXaWR0aCwgaW1nSGVpZ2h0KSB7CgoJCS8vIGdldCBjdXJyZW4gd2lkdGggYW5kIGhlaWdodAoJCXRoaXMud2lkdGhDdXJyZW50ID0gRWxlbWVudC5nZXRXaWR0aCgnb3V0ZXJJbWFnZUNvbnRhaW5lcicpOwoJCXRoaXMuaGVpZ2h0Q3VycmVudCA9IEVsZW1lbnQuZ2V0SGVpZ2h0KCdvdXRlckltYWdlQ29udGFpbmVyJyk7CgoJCS8vIGdldCBuZXcgd2lkdGggYW5kIGhlaWdodAoJCXZhciB3aWR0aE5ldyA9IChpbWdXaWR0aCAgKyAoYm9yZGVyU2l6ZSAqIDIpKTsKCQl2YXIgaGVpZ2h0TmV3ID0gKGltZ0hlaWdodCAgKyAoYm9yZGVyU2l6ZSAqIDIpKTsKCgkJLy8gc2NhbGFycyBiYXNlZCBvbiBjaGFuZ2UgZnJvbSBvbGQgdG8gbmV3CgkJdGhpcy54U2NhbGUgPSAoIHdpZHRoTmV3IC8gdGhpcy53aWR0aEN1cnJlbnQpICogMTAwOwoJCXRoaXMueVNjYWxlID0gKCBoZWlnaHROZXcgLyB0aGlzLmhlaWdodEN1cnJlbnQpICogMTAwOwoKCQkvLyBjYWxjdWxhdGUgc2l6ZSBkaWZmZXJlbmNlIGJldHdlZW4gbmV3IGFuZCBvbGQgaW1hZ2UsIGFuZCByZXNpemUgaWYgbmVjZXNzYXJ5CgkJd0RpZmYgPSB0aGlzLndpZHRoQ3VycmVudCAtIHdpZHRoTmV3OwoJCWhEaWZmID0gdGhpcy5oZWlnaHRDdXJyZW50IC0gaGVpZ2h0TmV3OwoKCQlpZighKCBoRGlmZiA9PSAwKSl7IG5ldyBFZmZlY3QuU2NhbGUoJ291dGVySW1hZ2VDb250YWluZXInLCB0aGlzLnlTY2FsZSwge3NjYWxlWDogZmFsc2UsIGR1cmF0aW9uOiByZXNpemVEdXJhdGlvbiwgcXVldWU6ICdmcm9udCd9KTsgfQoJCWlmKCEoIHdEaWZmID09IDApKXsgbmV3IEVmZmVjdC5TY2FsZSgnb3V0ZXJJbWFnZUNvbnRhaW5lcicsIHRoaXMueFNjYWxlLCB7c2NhbGVZOiBmYWxzZSwgZGVsYXk6IHJlc2l6ZUR1cmF0aW9uLCBkdXJhdGlvbjogcmVzaXplRHVyYXRpb259KTsgfQoKCQkvLyBpZiBuZXcgYW5kIG9sZCBpbWFnZSBhcmUgc2FtZSBzaXplIGFuZCBubyBzY2FsaW5nIHRyYW5zaXRpb24gaXMgbmVjZXNzYXJ5LAoJCS8vIGRvIGEgcXVpY2sgcGF1c2UgdG8gcHJldmVudCBpbWFnZSBmbGlja2VyLgoJCWlmKChoRGlmZiA9PSAwKSAmJiAod0RpZmYgPT0gMCkpewoJCQlpZiAobmF2aWdhdG9yLmFwcFZlcnNpb24uaW5kZXhPZigiTVNJRSIpIT0tMSl7IHBhdXNlKDI1MCk7IH0gZWxzZSB7IHBhdXNlKDEwMCk7fQoJCX0KCgkJRWxlbWVudC5zZXRIZWlnaHQoJ3ByZXZMaW5rJywgaW1nSGVpZ2h0KTsKCQlFbGVtZW50LnNldEhlaWdodCgnbmV4dExpbmsnLCBpbWdIZWlnaHQpOwoJCUVsZW1lbnQuc2V0V2lkdGgoICdpbWFnZURhdGFDb250YWluZXInLCB3aWR0aE5ldyk7CgoJCXRoaXMuc2hvd0ltYWdlKCk7Cgl9LAoKCS8vCgkvLwlzaG93SW1hZ2UoKQoJLy8JRGlzcGxheSBpbWFnZSBhbmQgYmVnaW4gcHJlbG9hZGluZyBuZWlnaGJvcnMuCgkvLwoJc2hvd0ltYWdlOiBmdW5jdGlvbigpewoJCUVsZW1lbnQuaGlkZSgnbG9hZGluZycpOwoJCW5ldyBFZmZlY3QuQXBwZWFyKCdsaWdodGJveEltYWdlJywgeyBkdXJhdGlvbjogcmVzaXplRHVyYXRpb24sIHF1ZXVlOiAnZW5kJywgYWZ0ZXJGaW5pc2g6IGZ1bmN0aW9uKCl7CW15TGlnaHRib3gudXBkYXRlRGV0YWlscygpOyB9IH0pOwoJCXRoaXMucHJlbG9hZE5laWdoYm9ySW1hZ2VzKCk7Cgl9LAoKCS8vCgkvLwl1cGRhdGVEZXRhaWxzKCkKCS8vCURpc3BsYXkgY2FwdGlvbiwgaW1hZ2UgbnVtYmVyLCBhbmQgYm90dG9tIG5hdi4KCS8vCgl1cGRhdGVEZXRhaWxzOiBmdW5jdGlvbigpIHsKCgkJLy8gaWYgY2FwdGlvbiBpcyBub3QgbnVsbAoJCWlmKGltYWdlQXJyYXlbYWN0aXZlSW1hZ2VdWzFdKXsKCQkJRWxlbWVudC5zaG93KCdjYXB0aW9uJyk7CgkJCUVsZW1lbnQuc2V0SW5uZXJIVE1MKCAnY2FwdGlvbicsIGltYWdlQXJyYXlbYWN0aXZlSW1hZ2VdWzFdKTsKCQl9CgoJCS8vIGlmIGltYWdlIGlzIHBhcnQgb2Ygc2V0IGRpc3BsYXkgJ0ltYWdlIHggb2YgeCcKCQlpZihpbWFnZUFycmF5Lmxlbmd0aCA+IDEpewoJCQlFbGVtZW50LnNob3coJ251bWJlckRpc3BsYXknKTsKCQkJRWxlbWVudC5zZXRJbm5lckhUTUwoICdudW1iZXJEaXNwbGF5JywgIkltYWdlICIgKyBldmFsKGFjdGl2ZUltYWdlICsgMSkgKyAiIG9mICIgKyBpbWFnZUFycmF5Lmxlbmd0aCk7CgkJfQoKCQluZXcgRWZmZWN0LlBhcmFsbGVsKAoJCQlbIG5ldyBFZmZlY3QuU2xpZGVEb3duKCAnaW1hZ2VEYXRhQ29udGFpbmVyJywgeyBzeW5jOiB0cnVlLCBkdXJhdGlvbjogcmVzaXplRHVyYXRpb24sIGZyb206IDAuMCwgdG86IDEuMCB9KSwKCQkJICBuZXcgRWZmZWN0LkFwcGVhcignaW1hZ2VEYXRhQ29udGFpbmVyJywgeyBzeW5jOiB0cnVlLCBkdXJhdGlvbjogcmVzaXplRHVyYXRpb24gfSkgXSwKCQkJeyBkdXJhdGlvbjogcmVzaXplRHVyYXRpb24sIGFmdGVyRmluaXNoOiBmdW5jdGlvbigpIHsKCQkJCS8vIHVwZGF0ZSBvdmVybGF5IHNpemUgYW5kIHVwZGF0ZSBuYXYKCQkJCXZhciBhcnJheVBhZ2VTaXplID0gZ2V0UGFnZVNpemUoKTsKCQkJCUVsZW1lbnQuc2V0SGVpZ2h0KCdvdmVybGF5JywgYXJyYXlQYWdlU2l6ZVsxXSk7CgkJCQlteUxpZ2h0Ym94LnVwZGF0ZU5hdigpOwoJCQkJfQoJCQl9CgkJKTsKCX0sCgoJLy8KCS8vCXVwZGF0ZU5hdigpCgkvLwlEaXNwbGF5IGFwcHJvcHJpYXRlIHByZXZpb3VzIGFuZCBuZXh0IGhvdmVyIG5hdmlnYXRpb24uCgkvLwoJdXBkYXRlTmF2OiBmdW5jdGlvbigpIHsKCgkJRWxlbWVudC5zaG93KCdob3Zlck5hdicpOwoKCQkvLyBpZiBub3QgZmlyc3QgaW1hZ2UgaW4gc2V0LCBkaXNwbGF5IHByZXYgaW1hZ2UgYnV0dG9uCgkJaWYoYWN0aXZlSW1hZ2UgIT0gMCl7CgkJCUVsZW1lbnQuc2hvdygncHJldkxpbmsnKTsKCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ByZXZMaW5rJykub25jbGljayA9IGZ1bmN0aW9uKCkgewoJCQkJbXlMaWdodGJveC5jaGFuZ2VJbWFnZShhY3RpdmVJbWFnZSAtIDEpOyByZXR1cm4gZmFsc2U7CgkJCX0KCQl9CgoJCS8vIGlmIG5vdCBsYXN0IGltYWdlIGluIHNldCwgZGlzcGxheSBuZXh0IGltYWdlIGJ1dHRvbgoJCWlmKGFjdGl2ZUltYWdlICE9IChpbWFnZUFycmF5Lmxlbmd0aCAtIDEpKXsKCQkJRWxlbWVudC5zaG93KCduZXh0TGluaycpOwoJCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmV4dExpbmsnKS5vbmNsaWNrID0gZnVuY3Rpb24oKSB7CgkJCQlteUxpZ2h0Ym94LmNoYW5nZUltYWdlKGFjdGl2ZUltYWdlICsgMSk7IHJldHVybiBmYWxzZTsKCQkJfQoJCX0KCgkJdGhpcy5lbmFibGVLZXlib2FyZE5hdigpOwoJfSwKCgkvLwoJLy8JZW5hYmxlS2V5Ym9hcmROYXYoKQoJLy8KCWVuYWJsZUtleWJvYXJkTmF2OiBmdW5jdGlvbigpIHsKCQlkb2N1bWVudC5vbmtleWRvd24gPSB0aGlzLmtleWJvYXJkQWN0aW9uOwoJfSwKCgkvLwoJLy8JZGlzYWJsZUtleWJvYXJkTmF2KCkKCS8vCglkaXNhYmxlS2V5Ym9hcmROYXY6IGZ1bmN0aW9uKCkgewoJCWRvY3VtZW50Lm9ua2V5ZG93biA9ICcnOwoJfSwKCgkvLwoJLy8Ja2V5Ym9hcmRBY3Rpb24oKQoJLy8KCWtleWJvYXJkQWN0aW9uOiBmdW5jdGlvbihlKSB7CgkJaWYgKGUgPT0gbnVsbCkgeyAvLyBpZQoJCQlrZXljb2RlID0gZXZlbnQua2V5Q29kZTsKCQkJZXNjYXBlS2V5ID0gMjc7CgkJfSBlbHNlIHsgLy8gbW96aWxsYQoJCQlrZXljb2RlID0gZS5rZXlDb2RlOwoJCQllc2NhcGVLZXkgPSBlLkRPTV9WS19FU0NBUEU7CgkJfQoKCQlrZXkgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGtleWNvZGUpLnRvTG93ZXJDYXNlKCk7CgoJCWlmKChrZXkgPT0gJ3gnKSB8fCAoa2V5ID09ICdvJykgfHwgKGtleSA9PSAnYycpIHx8IChrZXljb2RlID09IGVzY2FwZUtleSkpewkvLyBjbG9zZSBsaWdodGJveAoJCQlteUxpZ2h0Ym94LmVuZCgpOwoJCX0gZWxzZSBpZigoa2V5ID09ICdwJykgfHwgKGtleWNvZGUgPT0gMzcpKXsJLy8gZGlzcGxheSBwcmV2aW91cyBpbWFnZQoJCQlpZihhY3RpdmVJbWFnZSAhPSAwKXsKCQkJCW15TGlnaHRib3guZGlzYWJsZUtleWJvYXJkTmF2KCk7CgkJCQlteUxpZ2h0Ym94LmNoYW5nZUltYWdlKGFjdGl2ZUltYWdlIC0gMSk7CgkJCX0KCQl9IGVsc2UgaWYoKGtleSA9PSAnbicpIHx8IChrZXljb2RlID09IDM5KSl7CS8vIGRpc3BsYXkgbmV4dCBpbWFnZQoJCQlpZihhY3RpdmVJbWFnZSAhPSAoaW1hZ2VBcnJheS5sZW5ndGggLSAxKSl7CgkJCQlteUxpZ2h0Ym94LmRpc2FibGVLZXlib2FyZE5hdigpOwoJCQkJbXlMaWdodGJveC5jaGFuZ2VJbWFnZShhY3RpdmVJbWFnZSArIDEpOwoJCQl9CgkJfQoKCX0sCgoJLy8KCS8vCXByZWxvYWROZWlnaGJvckltYWdlcygpCgkvLwlQcmVsb2FkIHByZXZpb3VzIGFuZCBuZXh0IGltYWdlcy4KCS8vCglwcmVsb2FkTmVpZ2hib3JJbWFnZXM6IGZ1bmN0aW9uKCl7CgoJCWlmKChpbWFnZUFycmF5Lmxlbmd0aCAtIDEpID4gYWN0aXZlSW1hZ2UpewoJCQlwcmVsb2FkTmV4dEltYWdlID0gbmV3IEltYWdlKCk7CgkJCXByZWxvYWROZXh0SW1hZ2Uuc3JjID0gaW1hZ2VBcnJheVthY3RpdmVJbWFnZSArIDFdWzBdOwoJCX0KCQlpZihhY3RpdmVJbWFnZSA+IDApewoJCQlwcmVsb2FkUHJldkltYWdlID0gbmV3IEltYWdlKCk7CgkJCXByZWxvYWRQcmV2SW1hZ2Uuc3JjID0gaW1hZ2VBcnJheVthY3RpdmVJbWFnZSAtIDFdWzBdOwoJCX0KCgl9LAoKCS8vCgkvLwllbmQoKQoJLy8KCWVuZDogZnVuY3Rpb24oKSB7CgkJdGhpcy5kaXNhYmxlS2V5Ym9hcmROYXYoKTsKCQlFbGVtZW50LmhpZGUoJ2xpZ2h0Ym94Jyk7CgkJbmV3IEVmZmVjdC5GYWRlKCdvdmVybGF5JywgeyBkdXJhdGlvbjogb3ZlcmxheUR1cmF0aW9ufSk7CgkJc2hvd1NlbGVjdEJveGVzKCk7CgkJc2hvd0ZsYXNoKCk7Cgl9Cn0KCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgovLwovLyBnZXRQYWdlU2Nyb2xsKCkKLy8gUmV0dXJucyBhcnJheSB3aXRoIHgseSBwYWdlIHNjcm9sbCB2YWx1ZXMuCi8vIENvcmUgY29kZSBmcm9tIC0gcXVpcmtzbW9kZS5jb20KLy8KZnVuY3Rpb24gZ2V0UGFnZVNjcm9sbCgpewoKCXZhciB4U2Nyb2xsLCB5U2Nyb2xsOwoKCWlmIChzZWxmLnBhZ2VZT2Zmc2V0KSB7CgkJeVNjcm9sbCA9IHNlbGYucGFnZVlPZmZzZXQ7CgkJeFNjcm9sbCA9IHNlbGYucGFnZVhPZmZzZXQ7Cgl9IGVsc2UgaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wKXsJIC8vIEV4cGxvcmVyIDYgU3RyaWN0CgkJeVNjcm9sbCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A7CgkJeFNjcm9sbCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0OwoJfSBlbHNlIGlmIChkb2N1bWVudC5ib2R5KSB7Ly8gYWxsIG90aGVyIEV4cGxvcmVycwoJCXlTY3JvbGwgPSBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKCQl4U2Nyb2xsID0gZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0OwoJfQoKCWFycmF5UGFnZVNjcm9sbCA9IG5ldyBBcnJheSh4U2Nyb2xsLHlTY3JvbGwpCglyZXR1cm4gYXJyYXlQYWdlU2Nyb2xsOwp9CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLy8KLy8gZ2V0UGFnZVNpemUoKQovLyBSZXR1cm5zIGFycmF5IHdpdGggcGFnZSB3aWR0aCwgaGVpZ2h0IGFuZCB3aW5kb3cgd2lkdGgsIGhlaWdodAovLyBDb3JlIGNvZGUgZnJvbSAtIHF1aXJrc21vZGUuY29tCi8vIEVkaXQgZm9yIEZpcmVmb3ggYnkgcEhhZXoKLy8KZnVuY3Rpb24gZ2V0UGFnZVNpemUoKXsKCgl2YXIgeFNjcm9sbCwgeVNjcm9sbDsKCglpZiAod2luZG93LmlubmVySGVpZ2h0ICYmIHdpbmRvdy5zY3JvbGxNYXhZKSB7CgkJeFNjcm9sbCA9IHdpbmRvdy5pbm5lcldpZHRoICsgd2luZG93LnNjcm9sbE1heFg7CgkJeVNjcm9sbCA9IHdpbmRvdy5pbm5lckhlaWdodCArIHdpbmRvdy5zY3JvbGxNYXhZOwoJfSBlbHNlIGlmIChkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodCA+IGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0KXsgLy8gYWxsIGJ1dCBFeHBsb3JlciBNYWMKCQl4U2Nyb2xsID0gZG9jdW1lbnQuYm9keS5zY3JvbGxXaWR0aDsKCQl5U2Nyb2xsID0gZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQ7Cgl9IGVsc2UgeyAvLyBFeHBsb3JlciBNYWMuLi53b3VsZCBhbHNvIHdvcmsgaW4gRXhwbG9yZXIgNiBTdHJpY3QsIE1vemlsbGEgYW5kIFNhZmFyaQoJCXhTY3JvbGwgPSBkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoOwoJCXlTY3JvbGwgPSBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDsKCX0KCgl2YXIgd2luZG93V2lkdGgsIHdpbmRvd0hlaWdodDsKCi8vCWNvbnNvbGUubG9nKHNlbGYuaW5uZXJXaWR0aCk7Ci8vCWNvbnNvbGUubG9nKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCk7CgoJaWYgKHNlbGYuaW5uZXJIZWlnaHQpIHsJLy8gYWxsIGV4Y2VwdCBFeHBsb3JlcgoJCWlmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCl7CgkJCXdpbmRvd1dpZHRoID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoOwoJCX0gZWxzZSB7CgkJCXdpbmRvd1dpZHRoID0gc2VsZi5pbm5lcldpZHRoOwoJCX0KCQl3aW5kb3dIZWlnaHQgPSBzZWxmLmlubmVySGVpZ2h0OwoJfSBlbHNlIGlmIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkgeyAvLyBFeHBsb3JlciA2IFN0cmljdCBNb2RlCgkJd2luZG93V2lkdGggPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7CgkJd2luZG93SGVpZ2h0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDsKCX0gZWxzZSBpZiAoZG9jdW1lbnQuYm9keSkgeyAvLyBvdGhlciBFeHBsb3JlcnMKCQl3aW5kb3dXaWR0aCA9IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGg7CgkJd2luZG93SGVpZ2h0ID0gZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQ7Cgl9CgoJLy8gZm9yIHNtYWxsIHBhZ2VzIHdpdGggdG90YWwgaGVpZ2h0IGxlc3MgdGhlbiBoZWlnaHQgb2YgdGhlIHZpZXdwb3J0CglpZih5U2Nyb2xsIDwgd2luZG93SGVpZ2h0KXsKCQlwYWdlSGVpZ2h0ID0gd2luZG93SGVpZ2h0OwoJfSBlbHNlIHsKCQlwYWdlSGVpZ2h0ID0geVNjcm9sbDsKCX0KCi8vCWNvbnNvbGUubG9nKCJ4U2Nyb2xsICIgKyB4U2Nyb2xsKQovLwljb25zb2xlLmxvZygid2luZG93V2lkdGggIiArIHdpbmRvd1dpZHRoKQoKCS8vIGZvciBzbWFsbCBwYWdlcyB3aXRoIHRvdGFsIHdpZHRoIGxlc3MgdGhlbiB3aWR0aCBvZiB0aGUgdmlld3BvcnQKCWlmKHhTY3JvbGwgPCB3aW5kb3dXaWR0aCl7CgkJcGFnZVdpZHRoID0geFNjcm9sbDsKCX0gZWxzZSB7CgkJcGFnZVdpZHRoID0gd2luZG93V2lkdGg7Cgl9Ci8vCWNvbnNvbGUubG9nKCJwYWdlV2lkdGggIiArIHBhZ2VXaWR0aCkKCglhcnJheVBhZ2VTaXplID0gbmV3IEFycmF5KHBhZ2VXaWR0aCxwYWdlSGVpZ2h0LHdpbmRvd1dpZHRoLHdpbmRvd0hlaWdodCkKCXJldHVybiBhcnJheVBhZ2VTaXplOwp9CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLy8KLy8gZ2V0S2V5KGtleSkKLy8gR2V0cyBrZXljb2RlLiBJZiAneCcgaXMgcHJlc3NlZCB0aGVuIGl0IGhpZGVzIHRoZSBsaWdodGJveC4KLy8KZnVuY3Rpb24gZ2V0S2V5KGUpewoJaWYgKGUgPT0gbnVsbCkgeyAvLyBpZQoJCWtleWNvZGUgPSBldmVudC5rZXlDb2RlOwoJfSBlbHNlIHsgLy8gbW96aWxsYQoJCWtleWNvZGUgPSBlLndoaWNoOwoJfQoJa2V5ID0gU3RyaW5nLmZyb21DaGFyQ29kZShrZXljb2RlKS50b0xvd2VyQ2FzZSgpOwoKCWlmKGtleSA9PSAneCcpewoJfQp9CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLy8KLy8gbGlzdGVuS2V5KCkKLy8KZnVuY3Rpb24gbGlzdGVuS2V5ICgpIHsJZG9jdW1lbnQub25rZXlwcmVzcyA9IGdldEtleTsgfQoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpmdW5jdGlvbiBzaG93U2VsZWN0Qm94ZXMoKXsKCXZhciBzZWxlY3RzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNlbGVjdCIpOwoJZm9yIChpID0gMDsgaSAhPSBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7CgkJc2VsZWN0c1tpXS5zdHlsZS52aXNpYmlsaXR5ID0gInZpc2libGUiOwoJfQp9CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmZ1bmN0aW9uIGhpZGVTZWxlY3RCb3hlcygpewoJdmFyIHNlbGVjdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2VsZWN0Iik7Cglmb3IgKGkgPSAwOyBpICE9IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsKCQlzZWxlY3RzW2ldLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKCX0KfQoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpmdW5jdGlvbiBzaG93Rmxhc2goKXsKCXZhciBmbGFzaE9iamVjdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgib2JqZWN0Iik7Cglmb3IgKGkgPSAwOyBpIDwgZmxhc2hPYmplY3RzLmxlbmd0aDsgaSsrKSB7CgkJZmxhc2hPYmplY3RzW2ldLnN0eWxlLnZpc2liaWxpdHkgPSAidmlzaWJsZSI7Cgl9CgoJdmFyIGZsYXNoRW1iZWRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImVtYmVkIik7Cglmb3IgKGkgPSAwOyBpIDwgZmxhc2hFbWJlZHMubGVuZ3RoOyBpKyspIHsKCQlmbGFzaEVtYmVkc1tpXS5zdHlsZS52aXNpYmlsaXR5ID0gInZpc2libGUiOwoJfQp9CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmZ1bmN0aW9uIGhpZGVGbGFzaCgpewoJdmFyIGZsYXNoT2JqZWN0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKTsKCWZvciAoaSA9IDA7IGkgPCBmbGFzaE9iamVjdHMubGVuZ3RoOyBpKyspIHsKCQlmbGFzaE9iamVjdHNbaV0uc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwoJfQoKCXZhciBmbGFzaEVtYmVkcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJlbWJlZCIpOwoJZm9yIChpID0gMDsgaSA8IGZsYXNoRW1iZWRzLmxlbmd0aDsgaSsrKSB7CgkJZmxhc2hFbWJlZHNbaV0uc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwoJfQoKfQoKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLy8KLy8gcGF1c2UobnVtYmVyTWlsbGlzKQovLyBQYXVzZXMgY29kZSBleGVjdXRpb24gZm9yIHNwZWNpZmllZCB0aW1lLiBVc2VzIGJ1c3kgY29kZSwgbm90IGdvb2QuCi8vIEhlbHAgZnJvbSBSYW4gQmFyLU9uIFtyYW4yMTAzQGdtYWlsLmNvbV0KLy8KCmZ1bmN0aW9uIHBhdXNlKG1zKXsKCXZhciBkYXRlID0gbmV3IERhdGUoKTsKCWN1ckRhdGUgPSBudWxsOwoJZG97dmFyIGN1ckRhdGUgPSBuZXcgRGF0ZSgpO30KCXdoaWxlKCBjdXJEYXRlIC0gZGF0ZSA8IG1zKTsKfQovKgpmdW5jdGlvbiBwYXVzZShudW1iZXJNaWxsaXMpIHsKCXZhciBjdXJlbnRseSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgc2VuZGVyOwoJd2hpbGUgKG5ldyBEYXRlKCkuZ2V0VGltZSgpOwp9CiovCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpmdW5jdGlvbiBpbml0TGlnaHRib3goKSB7IG15TGlnaHRib3ggPSBuZXcgTGlnaHRib3goKTsgfQpFdmVudC5vYnNlcnZlKHdpbmRvdywgJ2xvYWQnLCBpbml0TGlnaHRib3gsIGZhbHNlKTs=]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/js/prototype.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogIFByb3RvdHlwZSBKYXZhU2NyaXB0IGZyYW1ld29yaywgdmVyc2lvbiAxLjQuMAogKiAgKGMpIDIwMDUgU2FtIFN0ZXBoZW5zb24gPHNhbUBjb25pby5uZXQ+CiAqCiAqICBUSElTIEZJTEUgSVMgQVVUT01BVElDQUxMWSBHRU5FUkFURUQuIFdoZW4gc2VuZGluZyBwYXRjaGVzLCBwbGVhc2UgZGlmZgogKiAgYWdhaW5zdCB0aGUgc291cmNlIHRyZWUsIGF2YWlsYWJsZSBmcm9tIHRoZSBQcm90b3R5cGUgZGFyY3MgcmVwb3NpdG9yeS4KICoKICogIFByb3RvdHlwZSBpcyBmcmVlbHkgZGlzdHJpYnV0YWJsZSB1bmRlciB0aGUgdGVybXMgb2YgYW4gTUlULXN0eWxlIGxpY2Vuc2UuCiAqCiAqICBGb3IgZGV0YWlscywgc2VlIHRoZSBQcm90b3R5cGUgd2ViIHNpdGU6IGh0dHA6Ly9wcm90b3R5cGUuY29uaW8ubmV0LwogKgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnZhciBQcm90b3R5cGUgPSB7CiAgVmVyc2lvbjogJzEuNC4wJywKICBTY3JpcHRGcmFnbWVudDogJyg/OjxzY3JpcHQuKj8+KSgoXG58XHJ8LikqPykoPzo8XC9zY3JpcHQ+KScsCgogIGVtcHR5RnVuY3Rpb246IGZ1bmN0aW9uKCkge30sCiAgSzogZnVuY3Rpb24oeCkge3JldHVybiB4fQp9Cgp2YXIgQ2xhc3MgPSB7CiAgY3JlYXRlOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgdGhpcy5pbml0aWFsaXplLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICB9CiAgfQp9Cgp2YXIgQWJzdHJhY3QgPSBuZXcgT2JqZWN0KCk7CgpPYmplY3QuZXh0ZW5kID0gZnVuY3Rpb24oZGVzdGluYXRpb24sIHNvdXJjZSkgewogIGZvciAocHJvcGVydHkgaW4gc291cmNlKSB7CiAgICBkZXN0aW5hdGlvbltwcm9wZXJ0eV0gPSBzb3VyY2VbcHJvcGVydHldOwogIH0KICByZXR1cm4gZGVzdGluYXRpb247Cn0KCk9iamVjdC5pbnNwZWN0ID0gZnVuY3Rpb24ob2JqZWN0KSB7CiAgdHJ5IHsKICAgIGlmIChvYmplY3QgPT0gdW5kZWZpbmVkKSByZXR1cm4gJ3VuZGVmaW5lZCc7CiAgICBpZiAob2JqZWN0ID09IG51bGwpIHJldHVybiAnbnVsbCc7CiAgICByZXR1cm4gb2JqZWN0Lmluc3BlY3QgPyBvYmplY3QuaW5zcGVjdCgpIDogb2JqZWN0LnRvU3RyaW5nKCk7CiAgfSBjYXRjaCAoZSkgewogICAgaWYgKGUgaW5zdGFuY2VvZiBSYW5nZUVycm9yKSByZXR1cm4gJy4uLic7CiAgICB0aHJvdyBlOwogIH0KfQoKRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQgPSBmdW5jdGlvbigpIHsKICB2YXIgX19tZXRob2QgPSB0aGlzLCBhcmdzID0gJEEoYXJndW1lbnRzKSwgb2JqZWN0ID0gYXJncy5zaGlmdCgpOwogIHJldHVybiBmdW5jdGlvbigpIHsKICAgIHJldHVybiBfX21ldGhvZC5hcHBseShvYmplY3QsIGFyZ3MuY29uY2F0KCRBKGFyZ3VtZW50cykpKTsKICB9Cn0KCkZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kQXNFdmVudExpc3RlbmVyID0gZnVuY3Rpb24ob2JqZWN0KSB7CiAgdmFyIF9fbWV0aG9kID0gdGhpczsKICByZXR1cm4gZnVuY3Rpb24oZXZlbnQpIHsKICAgIHJldHVybiBfX21ldGhvZC5jYWxsKG9iamVjdCwgZXZlbnQgfHwgd2luZG93LmV2ZW50KTsKICB9Cn0KCk9iamVjdC5leHRlbmQoTnVtYmVyLnByb3RvdHlwZSwgewogIHRvQ29sb3JQYXJ0OiBmdW5jdGlvbigpIHsKICAgIHZhciBkaWdpdHMgPSB0aGlzLnRvU3RyaW5nKDE2KTsKICAgIGlmICh0aGlzIDwgMTYpIHJldHVybiAnMCcgKyBkaWdpdHM7CiAgICByZXR1cm4gZGlnaXRzOwogIH0sCgogIHN1Y2M6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMgKyAxOwogIH0sCgogIHRpbWVzOiBmdW5jdGlvbihpdGVyYXRvcikgewogICAgJFIoMCwgdGhpcywgdHJ1ZSkuZWFjaChpdGVyYXRvcik7CiAgICByZXR1cm4gdGhpczsKICB9Cn0pOwoKdmFyIFRyeSA9IHsKICB0aGVzZTogZnVuY3Rpb24oKSB7CiAgICB2YXIgcmV0dXJuVmFsdWU7CgogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsKICAgICAgdmFyIGxhbWJkYSA9IGFyZ3VtZW50c1tpXTsKICAgICAgdHJ5IHsKICAgICAgICByZXR1cm5WYWx1ZSA9IGxhbWJkYSgpOwogICAgICAgIGJyZWFrOwogICAgICB9IGNhdGNoIChlKSB7fQogICAgfQoKICAgIHJldHVybiByZXR1cm5WYWx1ZTsKICB9Cn0KCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKdmFyIFBlcmlvZGljYWxFeGVjdXRlciA9IENsYXNzLmNyZWF0ZSgpOwpQZXJpb2RpY2FsRXhlY3V0ZXIucHJvdG90eXBlID0gewogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGNhbGxiYWNrLCBmcmVxdWVuY3kpIHsKICAgIHRoaXMuY2FsbGJhY2sgPSBjYWxsYmFjazsKICAgIHRoaXMuZnJlcXVlbmN5ID0gZnJlcXVlbmN5OwogICAgdGhpcy5jdXJyZW50bHlFeGVjdXRpbmcgPSBmYWxzZTsKCiAgICB0aGlzLnJlZ2lzdGVyQ2FsbGJhY2soKTsKICB9LAoKICByZWdpc3RlckNhbGxiYWNrOiBmdW5jdGlvbigpIHsKICAgIHNldEludGVydmFsKHRoaXMub25UaW1lckV2ZW50LmJpbmQodGhpcyksIHRoaXMuZnJlcXVlbmN5ICogMTAwMCk7CiAgfSwKCiAgb25UaW1lckV2ZW50OiBmdW5jdGlvbigpIHsKICAgIGlmICghdGhpcy5jdXJyZW50bHlFeGVjdXRpbmcpIHsKICAgICAgdHJ5IHsKICAgICAgICB0aGlzLmN1cnJlbnRseUV4ZWN1dGluZyA9IHRydWU7CiAgICAgICAgdGhpcy5jYWxsYmFjaygpOwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRoaXMuY3VycmVudGx5RXhlY3V0aW5nID0gZmFsc2U7CiAgICAgIH0KICAgIH0KICB9Cn0KCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKZnVuY3Rpb24gJCgpIHsKICB2YXIgZWxlbWVudHMgPSBuZXcgQXJyYXkoKTsKCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsKICAgIHZhciBlbGVtZW50ID0gYXJndW1lbnRzW2ldOwogICAgaWYgKHR5cGVvZiBlbGVtZW50ID09ICdzdHJpbmcnKQogICAgICBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudCk7CgogICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMSkKICAgICAgcmV0dXJuIGVsZW1lbnQ7CgogICAgZWxlbWVudHMucHVzaChlbGVtZW50KTsKICB9CgogIHJldHVybiBlbGVtZW50czsKfQpPYmplY3QuZXh0ZW5kKFN0cmluZy5wcm90b3R5cGUsIHsKICBzdHJpcFRhZ3M6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMucmVwbGFjZSgvPFwvP1tePl0rPi9naSwgJycpOwogIH0sCgogIHN0cmlwU2NyaXB0czogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy5yZXBsYWNlKG5ldyBSZWdFeHAoUHJvdG90eXBlLlNjcmlwdEZyYWdtZW50LCAnaW1nJyksICcnKTsKICB9LAoKICBleHRyYWN0U2NyaXB0czogZnVuY3Rpb24oKSB7CiAgICB2YXIgbWF0Y2hBbGwgPSBuZXcgUmVnRXhwKFByb3RvdHlwZS5TY3JpcHRGcmFnbWVudCwgJ2ltZycpOwogICAgdmFyIG1hdGNoT25lID0gbmV3IFJlZ0V4cChQcm90b3R5cGUuU2NyaXB0RnJhZ21lbnQsICdpbScpOwogICAgcmV0dXJuICh0aGlzLm1hdGNoKG1hdGNoQWxsKSB8fCBbXSkubWFwKGZ1bmN0aW9uKHNjcmlwdFRhZykgewogICAgICByZXR1cm4gKHNjcmlwdFRhZy5tYXRjaChtYXRjaE9uZSkgfHwgWycnLCAnJ10pWzFdOwogICAgfSk7CiAgfSwKCiAgZXZhbFNjcmlwdHM6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMuZXh0cmFjdFNjcmlwdHMoKS5tYXAoZXZhbCk7CiAgfSwKCiAgZXNjYXBlSFRNTDogZnVuY3Rpb24oKSB7CiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICB2YXIgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMpOwogICAgZGl2LmFwcGVuZENoaWxkKHRleHQpOwogICAgcmV0dXJuIGRpdi5pbm5lckhUTUw7CiAgfSwKCiAgdW5lc2NhcGVIVE1MOiBmdW5jdGlvbigpIHsKICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIGRpdi5pbm5lckhUTUwgPSB0aGlzLnN0cmlwVGFncygpOwogICAgcmV0dXJuIGRpdi5jaGlsZE5vZGVzWzBdID8gZGl2LmNoaWxkTm9kZXNbMF0ubm9kZVZhbHVlIDogJyc7CiAgfSwKCiAgdG9RdWVyeVBhcmFtczogZnVuY3Rpb24oKSB7CiAgICB2YXIgcGFpcnMgPSB0aGlzLm1hdGNoKC9eXD8/KC4qKSQvKVsxXS5zcGxpdCgnJicpOwogICAgcmV0dXJuIHBhaXJzLmluamVjdCh7fSwgZnVuY3Rpb24ocGFyYW1zLCBwYWlyU3RyaW5nKSB7CiAgICAgIHZhciBwYWlyID0gcGFpclN0cmluZy5zcGxpdCgnPScpOwogICAgICBwYXJhbXNbcGFpclswXV0gPSBwYWlyWzFdOwogICAgICByZXR1cm4gcGFyYW1zOwogICAgfSk7CiAgfSwKCiAgdG9BcnJheTogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy5zcGxpdCgnJyk7CiAgfSwKCiAgY2FtZWxpemU6IGZ1bmN0aW9uKCkgewogICAgdmFyIG9TdHJpbmdMaXN0ID0gdGhpcy5zcGxpdCgnLScpOwogICAgaWYgKG9TdHJpbmdMaXN0Lmxlbmd0aCA9PSAxKSByZXR1cm4gb1N0cmluZ0xpc3RbMF07CgogICAgdmFyIGNhbWVsaXplZFN0cmluZyA9IHRoaXMuaW5kZXhPZignLScpID09IDAKICAgICAgPyBvU3RyaW5nTGlzdFswXS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIG9TdHJpbmdMaXN0WzBdLnN1YnN0cmluZygxKQogICAgICA6IG9TdHJpbmdMaXN0WzBdOwoKICAgIGZvciAodmFyIGkgPSAxLCBsZW4gPSBvU3RyaW5nTGlzdC5sZW5ndGg7IGkgPCBsZW47IGkrKykgewogICAgICB2YXIgcyA9IG9TdHJpbmdMaXN0W2ldOwogICAgICBjYW1lbGl6ZWRTdHJpbmcgKz0gcy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHMuc3Vic3RyaW5nKDEpOwogICAgfQoKICAgIHJldHVybiBjYW1lbGl6ZWRTdHJpbmc7CiAgfSwKCiAgaW5zcGVjdDogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gIiciICsgdGhpcy5yZXBsYWNlKCdcXCcsICdcXFxcJykucmVwbGFjZSgiJyIsICdcXFwnJykgKyAiJyI7CiAgfQp9KTsKClN0cmluZy5wcm90b3R5cGUucGFyc2VRdWVyeSA9IFN0cmluZy5wcm90b3R5cGUudG9RdWVyeVBhcmFtczsKCnZhciAkYnJlYWsgICAgPSBuZXcgT2JqZWN0KCk7CnZhciAkY29udGludWUgPSBuZXcgT2JqZWN0KCk7Cgp2YXIgRW51bWVyYWJsZSA9IHsKICBlYWNoOiBmdW5jdGlvbihpdGVyYXRvcikgewogICAgdmFyIGluZGV4ID0gMDsKICAgIHRyeSB7CiAgICAgIHRoaXMuX2VhY2goZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgaXRlcmF0b3IodmFsdWUsIGluZGV4KyspOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIGlmIChlICE9ICRjb250aW51ZSkgdGhyb3cgZTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSBjYXRjaCAoZSkgewogICAgICBpZiAoZSAhPSAkYnJlYWspIHRocm93IGU7CiAgICB9CiAgfSwKCiAgYWxsOiBmdW5jdGlvbihpdGVyYXRvcikgewogICAgdmFyIHJlc3VsdCA9IHRydWU7CiAgICB0aGlzLmVhY2goZnVuY3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAhIShpdGVyYXRvciB8fCBQcm90b3R5cGUuSykodmFsdWUsIGluZGV4KTsKICAgICAgaWYgKCFyZXN1bHQpIHRocm93ICRicmVhazsKICAgIH0pOwogICAgcmV0dXJuIHJlc3VsdDsKICB9LAoKICBhbnk6IGZ1bmN0aW9uKGl0ZXJhdG9yKSB7CiAgICB2YXIgcmVzdWx0ID0gdHJ1ZTsKICAgIHRoaXMuZWFjaChmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsKICAgICAgaWYgKHJlc3VsdCA9ICEhKGl0ZXJhdG9yIHx8IFByb3RvdHlwZS5LKSh2YWx1ZSwgaW5kZXgpKQogICAgICAgIHRocm93ICRicmVhazsKICAgIH0pOwogICAgcmV0dXJuIHJlc3VsdDsKICB9LAoKICBjb2xsZWN0OiBmdW5jdGlvbihpdGVyYXRvcikgewogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIHRoaXMuZWFjaChmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsKICAgICAgcmVzdWx0cy5wdXNoKGl0ZXJhdG9yKHZhbHVlLCBpbmRleCkpOwogICAgfSk7CiAgICByZXR1cm4gcmVzdWx0czsKICB9LAoKICBkZXRlY3Q6IGZ1bmN0aW9uIChpdGVyYXRvcikgewogICAgdmFyIHJlc3VsdDsKICAgIHRoaXMuZWFjaChmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsKICAgICAgaWYgKGl0ZXJhdG9yKHZhbHVlLCBpbmRleCkpIHsKICAgICAgICByZXN1bHQgPSB2YWx1ZTsKICAgICAgICB0aHJvdyAkYnJlYWs7CiAgICAgIH0KICAgIH0pOwogICAgcmV0dXJuIHJlc3VsdDsKICB9LAoKICBmaW5kQWxsOiBmdW5jdGlvbihpdGVyYXRvcikgewogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIHRoaXMuZWFjaChmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsKICAgICAgaWYgKGl0ZXJhdG9yKHZhbHVlLCBpbmRleCkpCiAgICAgICAgcmVzdWx0cy5wdXNoKHZhbHVlKTsKICAgIH0pOwogICAgcmV0dXJuIHJlc3VsdHM7CiAgfSwKCiAgZ3JlcDogZnVuY3Rpb24ocGF0dGVybiwgaXRlcmF0b3IpIHsKICAgIHZhciByZXN1bHRzID0gW107CiAgICB0aGlzLmVhY2goZnVuY3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAgIHZhciBzdHJpbmdWYWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7CiAgICAgIGlmIChzdHJpbmdWYWx1ZS5tYXRjaChwYXR0ZXJuKSkKICAgICAgICByZXN1bHRzLnB1c2goKGl0ZXJhdG9yIHx8IFByb3RvdHlwZS5LKSh2YWx1ZSwgaW5kZXgpKTsKICAgIH0pCiAgICByZXR1cm4gcmVzdWx0czsKICB9LAoKICBpbmNsdWRlOiBmdW5jdGlvbihvYmplY3QpIHsKICAgIHZhciBmb3VuZCA9IGZhbHNlOwogICAgdGhpcy5lYWNoKGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgIGlmICh2YWx1ZSA9PSBvYmplY3QpIHsKICAgICAgICBmb3VuZCA9IHRydWU7CiAgICAgICAgdGhyb3cgJGJyZWFrOwogICAgICB9CiAgICB9KTsKICAgIHJldHVybiBmb3VuZDsKICB9LAoKICBpbmplY3Q6IGZ1bmN0aW9uKG1lbW8sIGl0ZXJhdG9yKSB7CiAgICB0aGlzLmVhY2goZnVuY3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAgIG1lbW8gPSBpdGVyYXRvcihtZW1vLCB2YWx1ZSwgaW5kZXgpOwogICAgfSk7CiAgICByZXR1cm4gbWVtbzsKICB9LAoKICBpbnZva2U6IGZ1bmN0aW9uKG1ldGhvZCkgewogICAgdmFyIGFyZ3MgPSAkQShhcmd1bWVudHMpLnNsaWNlKDEpOwogICAgcmV0dXJuIHRoaXMuY29sbGVjdChmdW5jdGlvbih2YWx1ZSkgewogICAgICByZXR1cm4gdmFsdWVbbWV0aG9kXS5hcHBseSh2YWx1ZSwgYXJncyk7CiAgICB9KTsKICB9LAoKICBtYXg6IGZ1bmN0aW9uKGl0ZXJhdG9yKSB7CiAgICB2YXIgcmVzdWx0OwogICAgdGhpcy5lYWNoKGZ1bmN0aW9uKHZhbHVlLCBpbmRleCkgewogICAgICB2YWx1ZSA9IChpdGVyYXRvciB8fCBQcm90b3R5cGUuSykodmFsdWUsIGluZGV4KTsKICAgICAgaWYgKHZhbHVlID49IChyZXN1bHQgfHwgdmFsdWUpKQogICAgICAgIHJlc3VsdCA9IHZhbHVlOwogICAgfSk7CiAgICByZXR1cm4gcmVzdWx0OwogIH0sCgogIG1pbjogZnVuY3Rpb24oaXRlcmF0b3IpIHsKICAgIHZhciByZXN1bHQ7CiAgICB0aGlzLmVhY2goZnVuY3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAgIHZhbHVlID0gKGl0ZXJhdG9yIHx8IFByb3RvdHlwZS5LKSh2YWx1ZSwgaW5kZXgpOwogICAgICBpZiAodmFsdWUgPD0gKHJlc3VsdCB8fCB2YWx1ZSkpCiAgICAgICAgcmVzdWx0ID0gdmFsdWU7CiAgICB9KTsKICAgIHJldHVybiByZXN1bHQ7CiAgfSwKCiAgcGFydGl0aW9uOiBmdW5jdGlvbihpdGVyYXRvcikgewogICAgdmFyIHRydWVzID0gW10sIGZhbHNlcyA9IFtdOwogICAgdGhpcy5lYWNoKGZ1bmN0aW9uKHZhbHVlLCBpbmRleCkgewogICAgICAoKGl0ZXJhdG9yIHx8IFByb3RvdHlwZS5LKSh2YWx1ZSwgaW5kZXgpID8KICAgICAgICB0cnVlcyA6IGZhbHNlcykucHVzaCh2YWx1ZSk7CiAgICB9KTsKICAgIHJldHVybiBbdHJ1ZXMsIGZhbHNlc107CiAgfSwKCiAgcGx1Y2s6IGZ1bmN0aW9uKHByb3BlcnR5KSB7CiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgdGhpcy5lYWNoKGZ1bmN0aW9uKHZhbHVlLCBpbmRleCkgewogICAgICByZXN1bHRzLnB1c2godmFsdWVbcHJvcGVydHldKTsKICAgIH0pOwogICAgcmV0dXJuIHJlc3VsdHM7CiAgfSwKCiAgcmVqZWN0OiBmdW5jdGlvbihpdGVyYXRvcikgewogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIHRoaXMuZWFjaChmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsKICAgICAgaWYgKCFpdGVyYXRvcih2YWx1ZSwgaW5kZXgpKQogICAgICAgIHJlc3VsdHMucHVzaCh2YWx1ZSk7CiAgICB9KTsKICAgIHJldHVybiByZXN1bHRzOwogIH0sCgogIHNvcnRCeTogZnVuY3Rpb24oaXRlcmF0b3IpIHsKICAgIHJldHVybiB0aGlzLmNvbGxlY3QoZnVuY3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAgIHJldHVybiB7dmFsdWU6IHZhbHVlLCBjcml0ZXJpYTogaXRlcmF0b3IodmFsdWUsIGluZGV4KX07CiAgICB9KS5zb3J0KGZ1bmN0aW9uKGxlZnQsIHJpZ2h0KSB7CiAgICAgIHZhciBhID0gbGVmdC5jcml0ZXJpYSwgYiA9IHJpZ2h0LmNyaXRlcmlhOwogICAgICByZXR1cm4gYSA8IGIgPyAtMSA6IGEgPiBiID8gMSA6IDA7CiAgICB9KS5wbHVjaygndmFsdWUnKTsKICB9LAoKICB0b0FycmF5OiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzLmNvbGxlY3QoUHJvdG90eXBlLkspOwogIH0sCgogIHppcDogZnVuY3Rpb24oKSB7CiAgICB2YXIgaXRlcmF0b3IgPSBQcm90b3R5cGUuSywgYXJncyA9ICRBKGFyZ3VtZW50cyk7CiAgICBpZiAodHlwZW9mIGFyZ3MubGFzdCgpID09ICdmdW5jdGlvbicpCiAgICAgIGl0ZXJhdG9yID0gYXJncy5wb3AoKTsKCiAgICB2YXIgY29sbGVjdGlvbnMgPSBbdGhpc10uY29uY2F0KGFyZ3MpLm1hcCgkQSk7CiAgICByZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAgIGl0ZXJhdG9yKHZhbHVlID0gY29sbGVjdGlvbnMucGx1Y2soaW5kZXgpKTsKICAgICAgcmV0dXJuIHZhbHVlOwogICAgfSk7CiAgfSwKCiAgaW5zcGVjdDogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gJyM8RW51bWVyYWJsZTonICsgdGhpcy50b0FycmF5KCkuaW5zcGVjdCgpICsgJz4nOwogIH0KfQoKT2JqZWN0LmV4dGVuZChFbnVtZXJhYmxlLCB7CiAgbWFwOiAgICAgRW51bWVyYWJsZS5jb2xsZWN0LAogIGZpbmQ6ICAgIEVudW1lcmFibGUuZGV0ZWN0LAogIHNlbGVjdDogIEVudW1lcmFibGUuZmluZEFsbCwKICBtZW1iZXI6ICBFbnVtZXJhYmxlLmluY2x1ZGUsCiAgZW50cmllczogRW51bWVyYWJsZS50b0FycmF5Cn0pOwp2YXIgJEEgPSBBcnJheS5mcm9tID0gZnVuY3Rpb24oaXRlcmFibGUpIHsKICBpZiAoIWl0ZXJhYmxlKSByZXR1cm4gW107CiAgaWYgKGl0ZXJhYmxlLnRvQXJyYXkpIHsKICAgIHJldHVybiBpdGVyYWJsZS50b0FycmF5KCk7CiAgfSBlbHNlIHsKICAgIHZhciByZXN1bHRzID0gW107CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZXJhYmxlLmxlbmd0aDsgaSsrKQogICAgICByZXN1bHRzLnB1c2goaXRlcmFibGVbaV0pOwogICAgcmV0dXJuIHJlc3VsdHM7CiAgfQp9CgpPYmplY3QuZXh0ZW5kKEFycmF5LnByb3RvdHlwZSwgRW51bWVyYWJsZSk7CgpBcnJheS5wcm90b3R5cGUuX3JldmVyc2UgPSBBcnJheS5wcm90b3R5cGUucmV2ZXJzZTsKCk9iamVjdC5leHRlbmQoQXJyYXkucHJvdG90eXBlLCB7CiAgX2VhY2g6IGZ1bmN0aW9uKGl0ZXJhdG9yKSB7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspCiAgICAgIGl0ZXJhdG9yKHRoaXNbaV0pOwogIH0sCgogIGNsZWFyOiBmdW5jdGlvbigpIHsKICAgIHRoaXMubGVuZ3RoID0gMDsKICAgIHJldHVybiB0aGlzOwogIH0sCgogIGZpcnN0OiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzWzBdOwogIH0sCgogIGxhc3Q6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXNbdGhpcy5sZW5ndGggLSAxXTsKICB9LAoKICBjb21wYWN0OiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzLnNlbGVjdChmdW5jdGlvbih2YWx1ZSkgewogICAgICByZXR1cm4gdmFsdWUgIT0gdW5kZWZpbmVkIHx8IHZhbHVlICE9IG51bGw7CiAgICB9KTsKICB9LAoKICBmbGF0dGVuOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzLmluamVjdChbXSwgZnVuY3Rpb24oYXJyYXksIHZhbHVlKSB7CiAgICAgIHJldHVybiBhcnJheS5jb25jYXQodmFsdWUuY29uc3RydWN0b3IgPT0gQXJyYXkgPwogICAgICAgIHZhbHVlLmZsYXR0ZW4oKSA6IFt2YWx1ZV0pOwogICAgfSk7CiAgfSwKCiAgd2l0aG91dDogZnVuY3Rpb24oKSB7CiAgICB2YXIgdmFsdWVzID0gJEEoYXJndW1lbnRzKTsKICAgIHJldHVybiB0aGlzLnNlbGVjdChmdW5jdGlvbih2YWx1ZSkgewogICAgICByZXR1cm4gIXZhbHVlcy5pbmNsdWRlKHZhbHVlKTsKICAgIH0pOwogIH0sCgogIGluZGV4T2Y6IGZ1bmN0aW9uKG9iamVjdCkgewogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKQogICAgICBpZiAodGhpc1tpXSA9PSBvYmplY3QpIHJldHVybiBpOwogICAgcmV0dXJuIC0xOwogIH0sCgogIHJldmVyc2U6IGZ1bmN0aW9uKGlubGluZSkgewogICAgcmV0dXJuIChpbmxpbmUgIT09IGZhbHNlID8gdGhpcyA6IHRoaXMudG9BcnJheSgpKS5fcmV2ZXJzZSgpOwogIH0sCgogIHNoaWZ0OiBmdW5jdGlvbigpIHsKICAgIHZhciByZXN1bHQgPSB0aGlzWzBdOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aCAtIDE7IGkrKykKICAgICAgdGhpc1tpXSA9IHRoaXNbaSArIDFdOwogICAgdGhpcy5sZW5ndGgtLTsKICAgIHJldHVybiByZXN1bHQ7CiAgfSwKCiAgaW5zcGVjdDogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gJ1snICsgdGhpcy5tYXAoT2JqZWN0Lmluc3BlY3QpLmpvaW4oJywgJykgKyAnXSc7CiAgfQp9KTsKdmFyIEhhc2ggPSB7CiAgX2VhY2g6IGZ1bmN0aW9uKGl0ZXJhdG9yKSB7CiAgICBmb3IgKGtleSBpbiB0aGlzKSB7CiAgICAgIHZhciB2YWx1ZSA9IHRoaXNba2V5XTsKICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnZnVuY3Rpb24nKSBjb250aW51ZTsKCiAgICAgIHZhciBwYWlyID0gW2tleSwgdmFsdWVdOwogICAgICBwYWlyLmtleSA9IGtleTsKICAgICAgcGFpci52YWx1ZSA9IHZhbHVlOwogICAgICBpdGVyYXRvcihwYWlyKTsKICAgIH0KICB9LAoKICBrZXlzOiBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0aGlzLnBsdWNrKCdrZXknKTsKICB9LAoKICB2YWx1ZXM6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMucGx1Y2soJ3ZhbHVlJyk7CiAgfSwKCiAgbWVyZ2U6IGZ1bmN0aW9uKGhhc2gpIHsKICAgIHJldHVybiAkSChoYXNoKS5pbmplY3QoJEgodGhpcyksIGZ1bmN0aW9uKG1lcmdlZEhhc2gsIHBhaXIpIHsKICAgICAgbWVyZ2VkSGFzaFtwYWlyLmtleV0gPSBwYWlyLnZhbHVlOwogICAgICByZXR1cm4gbWVyZ2VkSGFzaDsKICAgIH0pOwogIH0sCgogIHRvUXVlcnlTdHJpbmc6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKHBhaXIpIHsKICAgICAgcmV0dXJuIHBhaXIubWFwKGVuY29kZVVSSUNvbXBvbmVudCkuam9pbignPScpOwogICAgfSkuam9pbignJicpOwogIH0sCgogIGluc3BlY3Q6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuICcjPEhhc2g6eycgKyB0aGlzLm1hcChmdW5jdGlvbihwYWlyKSB7CiAgICAgIHJldHVybiBwYWlyLm1hcChPYmplY3QuaW5zcGVjdCkuam9pbignOiAnKTsKICAgIH0pLmpvaW4oJywgJykgKyAnfT4nOwogIH0KfQoKZnVuY3Rpb24gJEgob2JqZWN0KSB7CiAgdmFyIGhhc2ggPSBPYmplY3QuZXh0ZW5kKHt9LCBvYmplY3QgfHwge30pOwogIE9iamVjdC5leHRlbmQoaGFzaCwgRW51bWVyYWJsZSk7CiAgT2JqZWN0LmV4dGVuZChoYXNoLCBIYXNoKTsKICByZXR1cm4gaGFzaDsKfQpPYmplY3RSYW5nZSA9IENsYXNzLmNyZWF0ZSgpOwpPYmplY3QuZXh0ZW5kKE9iamVjdFJhbmdlLnByb3RvdHlwZSwgRW51bWVyYWJsZSk7Ck9iamVjdC5leHRlbmQoT2JqZWN0UmFuZ2UucHJvdG90eXBlLCB7CiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oc3RhcnQsIGVuZCwgZXhjbHVzaXZlKSB7CiAgICB0aGlzLnN0YXJ0ID0gc3RhcnQ7CiAgICB0aGlzLmVuZCA9IGVuZDsKICAgIHRoaXMuZXhjbHVzaXZlID0gZXhjbHVzaXZlOwogIH0sCgogIF9lYWNoOiBmdW5jdGlvbihpdGVyYXRvcikgewogICAgdmFyIHZhbHVlID0gdGhpcy5zdGFydDsKICAgIGRvIHsKICAgICAgaXRlcmF0b3IodmFsdWUpOwogICAgICB2YWx1ZSA9IHZhbHVlLnN1Y2MoKTsKICAgIH0gd2hpbGUgKHRoaXMuaW5jbHVkZSh2YWx1ZSkpOwogIH0sCgogIGluY2x1ZGU6IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPCB0aGlzLnN0YXJ0KQogICAgICByZXR1cm4gZmFsc2U7CiAgICBpZiAodGhpcy5leGNsdXNpdmUpCiAgICAgIHJldHVybiB2YWx1ZSA8IHRoaXMuZW5kOwogICAgcmV0dXJuIHZhbHVlIDw9IHRoaXMuZW5kOwogIH0KfSk7Cgp2YXIgJFIgPSBmdW5jdGlvbihzdGFydCwgZW5kLCBleGNsdXNpdmUpIHsKICByZXR1cm4gbmV3IE9iamVjdFJhbmdlKHN0YXJ0LCBlbmQsIGV4Y2x1c2l2ZSk7Cn0KCnZhciBBamF4ID0gewogIGdldFRyYW5zcG9ydDogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gVHJ5LnRoZXNlKAogICAgICBmdW5jdGlvbigpIHtyZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ01zeG1sMi5YTUxIVFRQJyl9LAogICAgICBmdW5jdGlvbigpIHtyZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ01pY3Jvc29mdC5YTUxIVFRQJyl9LAogICAgICBmdW5jdGlvbigpIHtyZXR1cm4gbmV3IFhNTEh0dHBSZXF1ZXN0KCl9CiAgICApIHx8IGZhbHNlOwogIH0sCgogIGFjdGl2ZVJlcXVlc3RDb3VudDogMAp9CgpBamF4LlJlc3BvbmRlcnMgPSB7CiAgcmVzcG9uZGVyczogW10sCgogIF9lYWNoOiBmdW5jdGlvbihpdGVyYXRvcikgewogICAgdGhpcy5yZXNwb25kZXJzLl9lYWNoKGl0ZXJhdG9yKTsKICB9LAoKICByZWdpc3RlcjogZnVuY3Rpb24ocmVzcG9uZGVyVG9BZGQpIHsKICAgIGlmICghdGhpcy5pbmNsdWRlKHJlc3BvbmRlclRvQWRkKSkKICAgICAgdGhpcy5yZXNwb25kZXJzLnB1c2gocmVzcG9uZGVyVG9BZGQpOwogIH0sCgogIHVucmVnaXN0ZXI6IGZ1bmN0aW9uKHJlc3BvbmRlclRvUmVtb3ZlKSB7CiAgICB0aGlzLnJlc3BvbmRlcnMgPSB0aGlzLnJlc3BvbmRlcnMud2l0aG91dChyZXNwb25kZXJUb1JlbW92ZSk7CiAgfSwKCiAgZGlzcGF0Y2g6IGZ1bmN0aW9uKGNhbGxiYWNrLCByZXF1ZXN0LCB0cmFuc3BvcnQsIGpzb24pIHsKICAgIHRoaXMuZWFjaChmdW5jdGlvbihyZXNwb25kZXIpIHsKICAgICAgaWYgKHJlc3BvbmRlcltjYWxsYmFja10gJiYgdHlwZW9mIHJlc3BvbmRlcltjYWxsYmFja10gPT0gJ2Z1bmN0aW9uJykgewogICAgICAgIHRyeSB7CiAgICAgICAgICByZXNwb25kZXJbY2FsbGJhY2tdLmFwcGx5KHJlc3BvbmRlciwgW3JlcXVlc3QsIHRyYW5zcG9ydCwganNvbl0pOwogICAgICAgIH0gY2F0Y2ggKGUpIHt9CiAgICAgIH0KICAgIH0pOwogIH0KfTsKCk9iamVjdC5leHRlbmQoQWpheC5SZXNwb25kZXJzLCBFbnVtZXJhYmxlKTsKCkFqYXguUmVzcG9uZGVycy5yZWdpc3Rlcih7CiAgb25DcmVhdGU6IGZ1bmN0aW9uKCkgewogICAgQWpheC5hY3RpdmVSZXF1ZXN0Q291bnQrKzsKICB9LAoKICBvbkNvbXBsZXRlOiBmdW5jdGlvbigpIHsKICAgIEFqYXguYWN0aXZlUmVxdWVzdENvdW50LS07CiAgfQp9KTsKCkFqYXguQmFzZSA9IGZ1bmN0aW9uKCkge307CkFqYXguQmFzZS5wcm90b3R5cGUgPSB7CiAgc2V0T3B0aW9uczogZnVuY3Rpb24ob3B0aW9ucykgewogICAgdGhpcy5vcHRpb25zID0gewogICAgICBtZXRob2Q6ICAgICAgICdwb3N0JywKICAgICAgYXN5bmNocm9ub3VzOiB0cnVlLAogICAgICBwYXJhbWV0ZXJzOiAgICcnCiAgICB9CiAgICBPYmplY3QuZXh0ZW5kKHRoaXMub3B0aW9ucywgb3B0aW9ucyB8fCB7fSk7CiAgfSwKCiAgcmVzcG9uc2VJc1N1Y2Nlc3M6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMudHJhbnNwb3J0LnN0YXR1cyA9PSB1bmRlZmluZWQKICAgICAgICB8fCB0aGlzLnRyYW5zcG9ydC5zdGF0dXMgPT0gMAogICAgICAgIHx8ICh0aGlzLnRyYW5zcG9ydC5zdGF0dXMgPj0gMjAwICYmIHRoaXMudHJhbnNwb3J0LnN0YXR1cyA8IDMwMCk7CiAgfSwKCiAgcmVzcG9uc2VJc0ZhaWx1cmU6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuICF0aGlzLnJlc3BvbnNlSXNTdWNjZXNzKCk7CiAgfQp9CgpBamF4LlJlcXVlc3QgPSBDbGFzcy5jcmVhdGUoKTsKQWpheC5SZXF1ZXN0LkV2ZW50cyA9CiAgWydVbmluaXRpYWxpemVkJywgJ0xvYWRpbmcnLCAnTG9hZGVkJywgJ0ludGVyYWN0aXZlJywgJ0NvbXBsZXRlJ107CgpBamF4LlJlcXVlc3QucHJvdG90eXBlID0gT2JqZWN0LmV4dGVuZChuZXcgQWpheC5CYXNlKCksIHsKICBpbml0aWFsaXplOiBmdW5jdGlvbih1cmwsIG9wdGlvbnMpIHsKICAgIHRoaXMudHJhbnNwb3J0ID0gQWpheC5nZXRUcmFuc3BvcnQoKTsKICAgIHRoaXMuc2V0T3B0aW9ucyhvcHRpb25zKTsKICAgIHRoaXMucmVxdWVzdCh1cmwpOwogIH0sCgogIHJlcXVlc3Q6IGZ1bmN0aW9uKHVybCkgewogICAgdmFyIHBhcmFtZXRlcnMgPSB0aGlzLm9wdGlvbnMucGFyYW1ldGVycyB8fCAnJzsKICAgIGlmIChwYXJhbWV0ZXJzLmxlbmd0aCA+IDApIHBhcmFtZXRlcnMgKz0gJyZfPSc7CgogICAgdHJ5IHsKICAgICAgdGhpcy51cmwgPSB1cmw7CiAgICAgIGlmICh0aGlzLm9wdGlvbnMubWV0aG9kID09ICdnZXQnICYmIHBhcmFtZXRlcnMubGVuZ3RoID4gMCkKICAgICAgICB0aGlzLnVybCArPSAodGhpcy51cmwubWF0Y2goL1w/LykgPyAnJicgOiAnPycpICsgcGFyYW1ldGVyczsKCiAgICAgIEFqYXguUmVzcG9uZGVycy5kaXNwYXRjaCgnb25DcmVhdGUnLCB0aGlzLCB0aGlzLnRyYW5zcG9ydCk7CgogICAgICB0aGlzLnRyYW5zcG9ydC5vcGVuKHRoaXMub3B0aW9ucy5tZXRob2QsIHRoaXMudXJsLAogICAgICAgIHRoaXMub3B0aW9ucy5hc3luY2hyb25vdXMpOwoKICAgICAgaWYgKHRoaXMub3B0aW9ucy5hc3luY2hyb25vdXMpIHsKICAgICAgICB0aGlzLnRyYW5zcG9ydC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSB0aGlzLm9uU3RhdGVDaGFuZ2UuYmluZCh0aGlzKTsKICAgICAgICBzZXRUaW1lb3V0KChmdW5jdGlvbigpIHt0aGlzLnJlc3BvbmRUb1JlYWR5U3RhdGUoMSl9KS5iaW5kKHRoaXMpLCAxMCk7CiAgICAgIH0KCiAgICAgIHRoaXMuc2V0UmVxdWVzdEhlYWRlcnMoKTsKCiAgICAgIHZhciBib2R5ID0gdGhpcy5vcHRpb25zLnBvc3RCb2R5ID8gdGhpcy5vcHRpb25zLnBvc3RCb2R5IDogcGFyYW1ldGVyczsKICAgICAgdGhpcy50cmFuc3BvcnQuc2VuZCh0aGlzLm9wdGlvbnMubWV0aG9kID09ICdwb3N0JyA/IGJvZHkgOiBudWxsKTsKCiAgICB9IGNhdGNoIChlKSB7CiAgICAgIHRoaXMuZGlzcGF0Y2hFeGNlcHRpb24oZSk7CiAgICB9CiAgfSwKCiAgc2V0UmVxdWVzdEhlYWRlcnM6IGZ1bmN0aW9uKCkgewogICAgdmFyIHJlcXVlc3RIZWFkZXJzID0KICAgICAgWydYLVJlcXVlc3RlZC1XaXRoJywgJ1hNTEh0dHBSZXF1ZXN0JywKICAgICAgICdYLVByb3RvdHlwZS1WZXJzaW9uJywgUHJvdG90eXBlLlZlcnNpb25dOwoKICAgIGlmICh0aGlzLm9wdGlvbnMubWV0aG9kID09ICdwb3N0JykgewogICAgICByZXF1ZXN0SGVhZGVycy5wdXNoKCdDb250ZW50LXR5cGUnLAogICAgICAgICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnKTsKCiAgICAgIC8qIEZvcmNlICJDb25uZWN0aW9uOiBjbG9zZSIgZm9yIE1vemlsbGEgYnJvd3NlcnMgdG8gd29yayBhcm91bmQKICAgICAgICogYSBidWcgd2hlcmUgWE1MSHR0cFJlcWV1ZXN0IHNlbmRzIGFuIGluY29ycmVjdCBDb250ZW50LWxlbmd0aAogICAgICAgKiBoZWFkZXIuIFNlZSBNb3ppbGxhIEJ1Z3ppbGxhICMyNDY2NTEuCiAgICAgICAqLwogICAgICBpZiAodGhpcy50cmFuc3BvcnQub3ZlcnJpZGVNaW1lVHlwZSkKICAgICAgICByZXF1ZXN0SGVhZGVycy5wdXNoKCdDb25uZWN0aW9uJywgJ2Nsb3NlJyk7CiAgICB9CgogICAgaWYgKHRoaXMub3B0aW9ucy5yZXF1ZXN0SGVhZGVycykKICAgICAgcmVxdWVzdEhlYWRlcnMucHVzaC5hcHBseShyZXF1ZXN0SGVhZGVycywgdGhpcy5vcHRpb25zLnJlcXVlc3RIZWFkZXJzKTsKCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcXVlc3RIZWFkZXJzLmxlbmd0aDsgaSArPSAyKQogICAgICB0aGlzLnRyYW5zcG9ydC5zZXRSZXF1ZXN0SGVhZGVyKHJlcXVlc3RIZWFkZXJzW2ldLCByZXF1ZXN0SGVhZGVyc1tpKzFdKTsKICB9LAoKICBvblN0YXRlQ2hhbmdlOiBmdW5jdGlvbigpIHsKICAgIHZhciByZWFkeVN0YXRlID0gdGhpcy50cmFuc3BvcnQucmVhZHlTdGF0ZTsKICAgIGlmIChyZWFkeVN0YXRlICE9IDEpCiAgICAgIHRoaXMucmVzcG9uZFRvUmVhZHlTdGF0ZSh0aGlzLnRyYW5zcG9ydC5yZWFkeVN0YXRlKTsKICB9LAoKICBoZWFkZXI6IGZ1bmN0aW9uKG5hbWUpIHsKICAgIHRyeSB7CiAgICAgIHJldHVybiB0aGlzLnRyYW5zcG9ydC5nZXRSZXNwb25zZUhlYWRlcihuYW1lKTsKICAgIH0gY2F0Y2ggKGUpIHt9CiAgfSwKCiAgZXZhbEpTT046IGZ1bmN0aW9uKCkgewogICAgdHJ5IHsKICAgICAgcmV0dXJuIGV2YWwodGhpcy5oZWFkZXIoJ1gtSlNPTicpKTsKICAgIH0gY2F0Y2ggKGUpIHt9CiAgfSwKCiAgZXZhbFJlc3BvbnNlOiBmdW5jdGlvbigpIHsKICAgIHRyeSB7CiAgICAgIHJldHVybiBldmFsKHRoaXMudHJhbnNwb3J0LnJlc3BvbnNlVGV4dCk7CiAgICB9IGNhdGNoIChlKSB7CiAgICAgIHRoaXMuZGlzcGF0Y2hFeGNlcHRpb24oZSk7CiAgICB9CiAgfSwKCiAgcmVzcG9uZFRvUmVhZHlTdGF0ZTogZnVuY3Rpb24ocmVhZHlTdGF0ZSkgewogICAgdmFyIGV2ZW50ID0gQWpheC5SZXF1ZXN0LkV2ZW50c1tyZWFkeVN0YXRlXTsKICAgIHZhciB0cmFuc3BvcnQgPSB0aGlzLnRyYW5zcG9ydCwganNvbiA9IHRoaXMuZXZhbEpTT04oKTsKCiAgICBpZiAoZXZlbnQgPT0gJ0NvbXBsZXRlJykgewogICAgICB0cnkgewogICAgICAgICh0aGlzLm9wdGlvbnNbJ29uJyArIHRoaXMudHJhbnNwb3J0LnN0YXR1c10KICAgICAgICAgfHwgdGhpcy5vcHRpb25zWydvbicgKyAodGhpcy5yZXNwb25zZUlzU3VjY2VzcygpID8gJ1N1Y2Nlc3MnIDogJ0ZhaWx1cmUnKV0KICAgICAgICAgfHwgUHJvdG90eXBlLmVtcHR5RnVuY3Rpb24pKHRyYW5zcG9ydCwganNvbik7CiAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICB0aGlzLmRpc3BhdGNoRXhjZXB0aW9uKGUpOwogICAgICB9CgogICAgICBpZiAoKHRoaXMuaGVhZGVyKCdDb250ZW50LXR5cGUnKSB8fCAnJykubWF0Y2goL150ZXh0XC9qYXZhc2NyaXB0L2kpKQogICAgICAgIHRoaXMuZXZhbFJlc3BvbnNlKCk7CiAgICB9CgogICAgdHJ5IHsKICAgICAgKHRoaXMub3B0aW9uc1snb24nICsgZXZlbnRdIHx8IFByb3RvdHlwZS5lbXB0eUZ1bmN0aW9uKSh0cmFuc3BvcnQsIGpzb24pOwogICAgICBBamF4LlJlc3BvbmRlcnMuZGlzcGF0Y2goJ29uJyArIGV2ZW50LCB0aGlzLCB0cmFuc3BvcnQsIGpzb24pOwogICAgfSBjYXRjaCAoZSkgewogICAgICB0aGlzLmRpc3BhdGNoRXhjZXB0aW9uKGUpOwogICAgfQoKICAgIC8qIEF2b2lkIG1lbW9yeSBsZWFrIGluIE1TSUU6IGNsZWFuIHVwIHRoZSBvbmNvbXBsZXRlIGV2ZW50IGhhbmRsZXIgKi8KICAgIGlmIChldmVudCA9PSAnQ29tcGxldGUnKQogICAgICB0aGlzLnRyYW5zcG9ydC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBQcm90b3R5cGUuZW1wdHlGdW5jdGlvbjsKICB9LAoKICBkaXNwYXRjaEV4Y2VwdGlvbjogZnVuY3Rpb24oZXhjZXB0aW9uKSB7CiAgICAodGhpcy5vcHRpb25zLm9uRXhjZXB0aW9uIHx8IFByb3RvdHlwZS5lbXB0eUZ1bmN0aW9uKSh0aGlzLCBleGNlcHRpb24pOwogICAgQWpheC5SZXNwb25kZXJzLmRpc3BhdGNoKCdvbkV4Y2VwdGlvbicsIHRoaXMsIGV4Y2VwdGlvbik7CiAgfQp9KTsKCkFqYXguVXBkYXRlciA9IENsYXNzLmNyZWF0ZSgpOwoKT2JqZWN0LmV4dGVuZChPYmplY3QuZXh0ZW5kKEFqYXguVXBkYXRlci5wcm90b3R5cGUsIEFqYXguUmVxdWVzdC5wcm90b3R5cGUpLCB7CiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oY29udGFpbmVyLCB1cmwsIG9wdGlvbnMpIHsKICAgIHRoaXMuY29udGFpbmVycyA9IHsKICAgICAgc3VjY2VzczogY29udGFpbmVyLnN1Y2Nlc3MgPyAkKGNvbnRhaW5lci5zdWNjZXNzKSA6ICQoY29udGFpbmVyKSwKICAgICAgZmFpbHVyZTogY29udGFpbmVyLmZhaWx1cmUgPyAkKGNvbnRhaW5lci5mYWlsdXJlKSA6CiAgICAgICAgKGNvbnRhaW5lci5zdWNjZXNzID8gbnVsbCA6ICQoY29udGFpbmVyKSkKICAgIH0KCiAgICB0aGlzLnRyYW5zcG9ydCA9IEFqYXguZ2V0VHJhbnNwb3J0KCk7CiAgICB0aGlzLnNldE9wdGlvbnMob3B0aW9ucyk7CgogICAgdmFyIG9uQ29tcGxldGUgPSB0aGlzLm9wdGlvbnMub25Db21wbGV0ZSB8fCBQcm90b3R5cGUuZW1wdHlGdW5jdGlvbjsKICAgIHRoaXMub3B0aW9ucy5vbkNvbXBsZXRlID0gKGZ1bmN0aW9uKHRyYW5zcG9ydCwgb2JqZWN0KSB7CiAgICAgIHRoaXMudXBkYXRlQ29udGVudCgpOwogICAgICBvbkNvbXBsZXRlKHRyYW5zcG9ydCwgb2JqZWN0KTsKICAgIH0pLmJpbmQodGhpcyk7CgogICAgdGhpcy5yZXF1ZXN0KHVybCk7CiAgfSwKCiAgdXBkYXRlQ29udGVudDogZnVuY3Rpb24oKSB7CiAgICB2YXIgcmVjZWl2ZXIgPSB0aGlzLnJlc3BvbnNlSXNTdWNjZXNzKCkgPwogICAgICB0aGlzLmNvbnRhaW5lcnMuc3VjY2VzcyA6IHRoaXMuY29udGFpbmVycy5mYWlsdXJlOwogICAgdmFyIHJlc3BvbnNlID0gdGhpcy50cmFuc3BvcnQucmVzcG9uc2VUZXh0OwoKICAgIGlmICghdGhpcy5vcHRpb25zLmV2YWxTY3JpcHRzKQogICAgICByZXNwb25zZSA9IHJlc3BvbnNlLnN0cmlwU2NyaXB0cygpOwoKICAgIGlmIChyZWNlaXZlcikgewogICAgICBpZiAodGhpcy5vcHRpb25zLmluc2VydGlvbikgewogICAgICAgIG5ldyB0aGlzLm9wdGlvbnMuaW5zZXJ0aW9uKHJlY2VpdmVyLCByZXNwb25zZSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgRWxlbWVudC51cGRhdGUocmVjZWl2ZXIsIHJlc3BvbnNlKTsKICAgICAgfQogICAgfQoKICAgIGlmICh0aGlzLnJlc3BvbnNlSXNTdWNjZXNzKCkpIHsKICAgICAgaWYgKHRoaXMub25Db21wbGV0ZSkKICAgICAgICBzZXRUaW1lb3V0KHRoaXMub25Db21wbGV0ZS5iaW5kKHRoaXMpLCAxMCk7CiAgICB9CiAgfQp9KTsKCkFqYXguUGVyaW9kaWNhbFVwZGF0ZXIgPSBDbGFzcy5jcmVhdGUoKTsKQWpheC5QZXJpb2RpY2FsVXBkYXRlci5wcm90b3R5cGUgPSBPYmplY3QuZXh0ZW5kKG5ldyBBamF4LkJhc2UoKSwgewogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGNvbnRhaW5lciwgdXJsLCBvcHRpb25zKSB7CiAgICB0aGlzLnNldE9wdGlvbnMob3B0aW9ucyk7CiAgICB0aGlzLm9uQ29tcGxldGUgPSB0aGlzLm9wdGlvbnMub25Db21wbGV0ZTsKCiAgICB0aGlzLmZyZXF1ZW5jeSA9ICh0aGlzLm9wdGlvbnMuZnJlcXVlbmN5IHx8IDIpOwogICAgdGhpcy5kZWNheSA9ICh0aGlzLm9wdGlvbnMuZGVjYXkgfHwgMSk7CgogICAgdGhpcy51cGRhdGVyID0ge307CiAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lcjsKICAgIHRoaXMudXJsID0gdXJsOwoKICAgIHRoaXMuc3RhcnQoKTsKICB9LAoKICBzdGFydDogZnVuY3Rpb24oKSB7CiAgICB0aGlzLm9wdGlvbnMub25Db21wbGV0ZSA9IHRoaXMudXBkYXRlQ29tcGxldGUuYmluZCh0aGlzKTsKICAgIHRoaXMub25UaW1lckV2ZW50KCk7CiAgfSwKCiAgc3RvcDogZnVuY3Rpb24oKSB7CiAgICB0aGlzLnVwZGF0ZXIub25Db21wbGV0ZSA9IHVuZGVmaW5lZDsKICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKTsKICAgICh0aGlzLm9uQ29tcGxldGUgfHwgUHJvdG90eXBlLmVtcHR5RnVuY3Rpb24pLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgfSwKCiAgdXBkYXRlQ29tcGxldGU6IGZ1bmN0aW9uKHJlcXVlc3QpIHsKICAgIGlmICh0aGlzLm9wdGlvbnMuZGVjYXkpIHsKICAgICAgdGhpcy5kZWNheSA9IChyZXF1ZXN0LnJlc3BvbnNlVGV4dCA9PSB0aGlzLmxhc3RUZXh0ID8KICAgICAgICB0aGlzLmRlY2F5ICogdGhpcy5vcHRpb25zLmRlY2F5IDogMSk7CgogICAgICB0aGlzLmxhc3RUZXh0ID0gcmVxdWVzdC5yZXNwb25zZVRleHQ7CiAgICB9CiAgICB0aGlzLnRpbWVyID0gc2V0VGltZW91dCh0aGlzLm9uVGltZXJFdmVudC5iaW5kKHRoaXMpLAogICAgICB0aGlzLmRlY2F5ICogdGhpcy5mcmVxdWVuY3kgKiAxMDAwKTsKICB9LAoKICBvblRpbWVyRXZlbnQ6IGZ1bmN0aW9uKCkgewogICAgdGhpcy51cGRhdGVyID0gbmV3IEFqYXguVXBkYXRlcih0aGlzLmNvbnRhaW5lciwgdGhpcy51cmwsIHRoaXMub3B0aW9ucyk7CiAgfQp9KTsKZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSA9IGZ1bmN0aW9uKGNsYXNzTmFtZSwgcGFyZW50RWxlbWVudCkgewogIHZhciBjaGlsZHJlbiA9ICgkKHBhcmVudEVsZW1lbnQpIHx8IGRvY3VtZW50LmJvZHkpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCcqJyk7CiAgcmV0dXJuICRBKGNoaWxkcmVuKS5pbmplY3QoW10sIGZ1bmN0aW9uKGVsZW1lbnRzLCBjaGlsZCkgewogICAgaWYgKGNoaWxkLmNsYXNzTmFtZS5tYXRjaChuZXcgUmVnRXhwKCIoXnxcXHMpIiArIGNsYXNzTmFtZSArICIoXFxzfCQpIikpKQogICAgICBlbGVtZW50cy5wdXNoKGNoaWxkKTsKICAgIHJldHVybiBlbGVtZW50czsKICB9KTsKfQoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgppZiAoIXdpbmRvdy5FbGVtZW50KSB7CiAgdmFyIEVsZW1lbnQgPSBuZXcgT2JqZWN0KCk7Cn0KCk9iamVjdC5leHRlbmQoRWxlbWVudCwgewogIHZpc2libGU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHJldHVybiAkKGVsZW1lbnQpLnN0eWxlLmRpc3BsYXkgIT0gJ25vbmUnOwogIH0sCgogIHRvZ2dsZTogZnVuY3Rpb24oKSB7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgewogICAgICB2YXIgZWxlbWVudCA9ICQoYXJndW1lbnRzW2ldKTsKICAgICAgRWxlbWVudFtFbGVtZW50LnZpc2libGUoZWxlbWVudCkgPyAnaGlkZScgOiAnc2hvdyddKGVsZW1lbnQpOwogICAgfQogIH0sCgogIGhpZGU6IGZ1bmN0aW9uKCkgewogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsKICAgICAgdmFyIGVsZW1lbnQgPSAkKGFyZ3VtZW50c1tpXSk7CiAgICAgIGVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgIH0KICB9LAoKICBzaG93OiBmdW5jdGlvbigpIHsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBlbGVtZW50ID0gJChhcmd1bWVudHNbaV0pOwogICAgICBlbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnJzsKICAgIH0KICB9LAoKICByZW1vdmU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgZWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsZW1lbnQpOwogIH0sCgogIHVwZGF0ZTogZnVuY3Rpb24oZWxlbWVudCwgaHRtbCkgewogICAgJChlbGVtZW50KS5pbm5lckhUTUwgPSBodG1sLnN0cmlwU2NyaXB0cygpOwogICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtodG1sLmV2YWxTY3JpcHRzKCl9LCAxMCk7CiAgfSwKCiAgZ2V0SGVpZ2h0OiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIHJldHVybiBlbGVtZW50Lm9mZnNldEhlaWdodDsKICB9LAoKICBjbGFzc05hbWVzOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICByZXR1cm4gbmV3IEVsZW1lbnQuQ2xhc3NOYW1lcyhlbGVtZW50KTsKICB9LAoKICBoYXNDbGFzc05hbWU6IGZ1bmN0aW9uKGVsZW1lbnQsIGNsYXNzTmFtZSkgewogICAgaWYgKCEoZWxlbWVudCA9ICQoZWxlbWVudCkpKSByZXR1cm47CiAgICByZXR1cm4gRWxlbWVudC5jbGFzc05hbWVzKGVsZW1lbnQpLmluY2x1ZGUoY2xhc3NOYW1lKTsKICB9LAoKICBhZGRDbGFzc05hbWU6IGZ1bmN0aW9uKGVsZW1lbnQsIGNsYXNzTmFtZSkgewogICAgaWYgKCEoZWxlbWVudCA9ICQoZWxlbWVudCkpKSByZXR1cm47CiAgICByZXR1cm4gRWxlbWVudC5jbGFzc05hbWVzKGVsZW1lbnQpLmFkZChjbGFzc05hbWUpOwogIH0sCgogIHJlbW92ZUNsYXNzTmFtZTogZnVuY3Rpb24oZWxlbWVudCwgY2xhc3NOYW1lKSB7CiAgICBpZiAoIShlbGVtZW50ID0gJChlbGVtZW50KSkpIHJldHVybjsKICAgIHJldHVybiBFbGVtZW50LmNsYXNzTmFtZXMoZWxlbWVudCkucmVtb3ZlKGNsYXNzTmFtZSk7CiAgfSwKCiAgLy8gcmVtb3ZlcyB3aGl0ZXNwYWNlLW9ubHkgdGV4dCBub2RlIGNoaWxkcmVuCiAgY2xlYW5XaGl0ZXNwYWNlOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbWVudC5jaGlsZE5vZGVzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBub2RlID0gZWxlbWVudC5jaGlsZE5vZGVzW2ldOwogICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PSAzICYmICEvXFMvLnRlc3Qobm9kZS5ub2RlVmFsdWUpKQogICAgICAgIEVsZW1lbnQucmVtb3ZlKG5vZGUpOwogICAgfQogIH0sCgogIGVtcHR5OiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICByZXR1cm4gJChlbGVtZW50KS5pbm5lckhUTUwubWF0Y2goL15ccyokLyk7CiAgfSwKCiAgc2Nyb2xsVG86IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgdmFyIHggPSBlbGVtZW50LnggPyBlbGVtZW50LnggOiBlbGVtZW50Lm9mZnNldExlZnQsCiAgICAgICAgeSA9IGVsZW1lbnQueSA/IGVsZW1lbnQueSA6IGVsZW1lbnQub2Zmc2V0VG9wOwogICAgd2luZG93LnNjcm9sbFRvKHgsIHkpOwogIH0sCgogIGdldFN0eWxlOiBmdW5jdGlvbihlbGVtZW50LCBzdHlsZSkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICB2YXIgdmFsdWUgPSBlbGVtZW50LnN0eWxlW3N0eWxlLmNhbWVsaXplKCldOwogICAgaWYgKCF2YWx1ZSkgewogICAgICBpZiAoZG9jdW1lbnQuZGVmYXVsdFZpZXcgJiYgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSkgewogICAgICAgIHZhciBjc3MgPSBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsIG51bGwpOwogICAgICAgIHZhbHVlID0gY3NzID8gY3NzLmdldFByb3BlcnR5VmFsdWUoc3R5bGUpIDogbnVsbDsKICAgICAgfSBlbHNlIGlmIChlbGVtZW50LmN1cnJlbnRTdHlsZSkgewogICAgICAgIHZhbHVlID0gZWxlbWVudC5jdXJyZW50U3R5bGVbc3R5bGUuY2FtZWxpemUoKV07CiAgICAgIH0KICAgIH0KCiAgICBpZiAod2luZG93Lm9wZXJhICYmIFsnbGVmdCcsICd0b3AnLCAncmlnaHQnLCAnYm90dG9tJ10uaW5jbHVkZShzdHlsZSkpCiAgICAgIGlmIChFbGVtZW50LmdldFN0eWxlKGVsZW1lbnQsICdwb3NpdGlvbicpID09ICdzdGF0aWMnKSB2YWx1ZSA9ICdhdXRvJzsKCiAgICByZXR1cm4gdmFsdWUgPT0gJ2F1dG8nID8gbnVsbCA6IHZhbHVlOwogIH0sCgogIHNldFN0eWxlOiBmdW5jdGlvbihlbGVtZW50LCBzdHlsZSkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBmb3IgKG5hbWUgaW4gc3R5bGUpCiAgICAgIGVsZW1lbnQuc3R5bGVbbmFtZS5jYW1lbGl6ZSgpXSA9IHN0eWxlW25hbWVdOwogIH0sCgogIGdldERpbWVuc2lvbnM6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgaWYgKEVsZW1lbnQuZ2V0U3R5bGUoZWxlbWVudCwgJ2Rpc3BsYXknKSAhPSAnbm9uZScpCiAgICAgIHJldHVybiB7d2lkdGg6IGVsZW1lbnQub2Zmc2V0V2lkdGgsIGhlaWdodDogZWxlbWVudC5vZmZzZXRIZWlnaHR9OwoKICAgIC8vIEFsbCAqV2lkdGggYW5kICpIZWlnaHQgcHJvcGVydGllcyBnaXZlIDAgb24gZWxlbWVudHMgd2l0aCBkaXNwbGF5IG5vbmUsCiAgICAvLyBzbyBlbmFibGUgdGhlIGVsZW1lbnQgdGVtcG9yYXJpbHkKICAgIHZhciBlbHMgPSBlbGVtZW50LnN0eWxlOwogICAgdmFyIG9yaWdpbmFsVmlzaWJpbGl0eSA9IGVscy52aXNpYmlsaXR5OwogICAgdmFyIG9yaWdpbmFsUG9zaXRpb24gPSBlbHMucG9zaXRpb247CiAgICBlbHMudmlzaWJpbGl0eSA9ICdoaWRkZW4nOwogICAgZWxzLnBvc2l0aW9uID0gJ2Fic29sdXRlJzsKICAgIGVscy5kaXNwbGF5ID0gJyc7CiAgICB2YXIgb3JpZ2luYWxXaWR0aCA9IGVsZW1lbnQuY2xpZW50V2lkdGg7CiAgICB2YXIgb3JpZ2luYWxIZWlnaHQgPSBlbGVtZW50LmNsaWVudEhlaWdodDsKICAgIGVscy5kaXNwbGF5ID0gJ25vbmUnOwogICAgZWxzLnBvc2l0aW9uID0gb3JpZ2luYWxQb3NpdGlvbjsKICAgIGVscy52aXNpYmlsaXR5ID0gb3JpZ2luYWxWaXNpYmlsaXR5OwogICAgcmV0dXJuIHt3aWR0aDogb3JpZ2luYWxXaWR0aCwgaGVpZ2h0OiBvcmlnaW5hbEhlaWdodH07CiAgfSwKCiAgbWFrZVBvc2l0aW9uZWQ6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgdmFyIHBvcyA9IEVsZW1lbnQuZ2V0U3R5bGUoZWxlbWVudCwgJ3Bvc2l0aW9uJyk7CiAgICBpZiAocG9zID09ICdzdGF0aWMnIHx8ICFwb3MpIHsKICAgICAgZWxlbWVudC5fbWFkZVBvc2l0aW9uZWQgPSB0cnVlOwogICAgICBlbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJzsKICAgICAgLy8gT3BlcmEgcmV0dXJucyB0aGUgb2Zmc2V0IHJlbGF0aXZlIHRvIHRoZSBwb3NpdGlvbmluZyBjb250ZXh0LCB3aGVuIGFuCiAgICAgIC8vIGVsZW1lbnQgaXMgcG9zaXRpb24gcmVsYXRpdmUgYnV0IHRvcCBhbmQgbGVmdCBoYXZlIG5vdCBiZWVuIGRlZmluZWQKICAgICAgaWYgKHdpbmRvdy5vcGVyYSkgewogICAgICAgIGVsZW1lbnQuc3R5bGUudG9wID0gMDsKICAgICAgICBlbGVtZW50LnN0eWxlLmxlZnQgPSAwOwogICAgICB9CiAgICB9CiAgfSwKCiAgdW5kb1Bvc2l0aW9uZWQ6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgaWYgKGVsZW1lbnQuX21hZGVQb3NpdGlvbmVkKSB7CiAgICAgIGVsZW1lbnQuX21hZGVQb3NpdGlvbmVkID0gdW5kZWZpbmVkOwogICAgICBlbGVtZW50LnN0eWxlLnBvc2l0aW9uID0KICAgICAgICBlbGVtZW50LnN0eWxlLnRvcCA9CiAgICAgICAgZWxlbWVudC5zdHlsZS5sZWZ0ID0KICAgICAgICBlbGVtZW50LnN0eWxlLmJvdHRvbSA9CiAgICAgICAgZWxlbWVudC5zdHlsZS5yaWdodCA9ICcnOwogICAgfQogIH0sCgogIG1ha2VDbGlwcGluZzogZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBpZiAoZWxlbWVudC5fb3ZlcmZsb3cpIHJldHVybjsKICAgIGVsZW1lbnQuX292ZXJmbG93ID0gZWxlbWVudC5zdHlsZS5vdmVyZmxvdzsKICAgIGlmICgoRWxlbWVudC5nZXRTdHlsZShlbGVtZW50LCAnb3ZlcmZsb3cnKSB8fCAndmlzaWJsZScpICE9ICdoaWRkZW4nKQogICAgICBlbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7CiAgfSwKCiAgdW5kb0NsaXBwaW5nOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIGlmIChlbGVtZW50Ll9vdmVyZmxvdykgcmV0dXJuOwogICAgZWxlbWVudC5zdHlsZS5vdmVyZmxvdyA9IGVsZW1lbnQuX292ZXJmbG93OwogICAgZWxlbWVudC5fb3ZlcmZsb3cgPSB1bmRlZmluZWQ7CiAgfQp9KTsKCnZhciBUb2dnbGUgPSBuZXcgT2JqZWN0KCk7ClRvZ2dsZS5kaXNwbGF5ID0gRWxlbWVudC50b2dnbGU7CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCkFic3RyYWN0Lkluc2VydGlvbiA9IGZ1bmN0aW9uKGFkamFjZW5jeSkgewogIHRoaXMuYWRqYWNlbmN5ID0gYWRqYWNlbmN5Owp9CgpBYnN0cmFjdC5JbnNlcnRpb24ucHJvdG90eXBlID0gewogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsZW1lbnQsIGNvbnRlbnQpIHsKICAgIHRoaXMuZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICB0aGlzLmNvbnRlbnQgPSBjb250ZW50LnN0cmlwU2NyaXB0cygpOwoKICAgIGlmICh0aGlzLmFkamFjZW5jeSAmJiB0aGlzLmVsZW1lbnQuaW5zZXJ0QWRqYWNlbnRIVE1MKSB7CiAgICAgIHRyeSB7CiAgICAgICAgdGhpcy5lbGVtZW50Lmluc2VydEFkamFjZW50SFRNTCh0aGlzLmFkamFjZW5jeSwgdGhpcy5jb250ZW50KTsKICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgIGlmICh0aGlzLmVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09ICd0Ym9keScpIHsKICAgICAgICAgIHRoaXMuaW5zZXJ0Q29udGVudCh0aGlzLmNvbnRlbnRGcm9tQW5vbnltb3VzVGFibGUoKSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRocm93IGU7CiAgICAgICAgfQogICAgICB9CiAgICB9IGVsc2UgewogICAgICB0aGlzLnJhbmdlID0gdGhpcy5lbGVtZW50Lm93bmVyRG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZVJhbmdlKSB0aGlzLmluaXRpYWxpemVSYW5nZSgpOwogICAgICB0aGlzLmluc2VydENvbnRlbnQoW3RoaXMucmFuZ2UuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KHRoaXMuY29udGVudCldKTsKICAgIH0KCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge2NvbnRlbnQuZXZhbFNjcmlwdHMoKX0sIDEwKTsKICB9LAoKICBjb250ZW50RnJvbUFub255bW91c1RhYmxlOiBmdW5jdGlvbigpIHsKICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIGRpdi5pbm5lckhUTUwgPSAnPHRhYmxlPjx0Ym9keT4nICsgdGhpcy5jb250ZW50ICsgJzwvdGJvZHk+PC90YWJsZT4nOwogICAgcmV0dXJuICRBKGRpdi5jaGlsZE5vZGVzWzBdLmNoaWxkTm9kZXNbMF0uY2hpbGROb2Rlcyk7CiAgfQp9Cgp2YXIgSW5zZXJ0aW9uID0gbmV3IE9iamVjdCgpOwoKSW5zZXJ0aW9uLkJlZm9yZSA9IENsYXNzLmNyZWF0ZSgpOwpJbnNlcnRpb24uQmVmb3JlLnByb3RvdHlwZSA9IE9iamVjdC5leHRlbmQobmV3IEFic3RyYWN0Lkluc2VydGlvbignYmVmb3JlQmVnaW4nKSwgewogIGluaXRpYWxpemVSYW5nZTogZnVuY3Rpb24oKSB7CiAgICB0aGlzLnJhbmdlLnNldFN0YXJ0QmVmb3JlKHRoaXMuZWxlbWVudCk7CiAgfSwKCiAgaW5zZXJ0Q29udGVudDogZnVuY3Rpb24oZnJhZ21lbnRzKSB7CiAgICBmcmFnbWVudHMuZWFjaCgoZnVuY3Rpb24oZnJhZ21lbnQpIHsKICAgICAgdGhpcy5lbGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGZyYWdtZW50LCB0aGlzLmVsZW1lbnQpOwogICAgfSkuYmluZCh0aGlzKSk7CiAgfQp9KTsKCkluc2VydGlvbi5Ub3AgPSBDbGFzcy5jcmVhdGUoKTsKSW5zZXJ0aW9uLlRvcC5wcm90b3R5cGUgPSBPYmplY3QuZXh0ZW5kKG5ldyBBYnN0cmFjdC5JbnNlcnRpb24oJ2FmdGVyQmVnaW4nKSwgewogIGluaXRpYWxpemVSYW5nZTogZnVuY3Rpb24oKSB7CiAgICB0aGlzLnJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyh0aGlzLmVsZW1lbnQpOwogICAgdGhpcy5yYW5nZS5jb2xsYXBzZSh0cnVlKTsKICB9LAoKICBpbnNlcnRDb250ZW50OiBmdW5jdGlvbihmcmFnbWVudHMpIHsKICAgIGZyYWdtZW50cy5yZXZlcnNlKGZhbHNlKS5lYWNoKChmdW5jdGlvbihmcmFnbWVudCkgewogICAgICB0aGlzLmVsZW1lbnQuaW5zZXJ0QmVmb3JlKGZyYWdtZW50LCB0aGlzLmVsZW1lbnQuZmlyc3RDaGlsZCk7CiAgICB9KS5iaW5kKHRoaXMpKTsKICB9Cn0pOwoKSW5zZXJ0aW9uLkJvdHRvbSA9IENsYXNzLmNyZWF0ZSgpOwpJbnNlcnRpb24uQm90dG9tLnByb3RvdHlwZSA9IE9iamVjdC5leHRlbmQobmV3IEFic3RyYWN0Lkluc2VydGlvbignYmVmb3JlRW5kJyksIHsKICBpbml0aWFsaXplUmFuZ2U6IGZ1bmN0aW9uKCkgewogICAgdGhpcy5yYW5nZS5zZWxlY3ROb2RlQ29udGVudHModGhpcy5lbGVtZW50KTsKICAgIHRoaXMucmFuZ2UuY29sbGFwc2UodGhpcy5lbGVtZW50KTsKICB9LAoKICBpbnNlcnRDb250ZW50OiBmdW5jdGlvbihmcmFnbWVudHMpIHsKICAgIGZyYWdtZW50cy5lYWNoKChmdW5jdGlvbihmcmFnbWVudCkgewogICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoZnJhZ21lbnQpOwogICAgfSkuYmluZCh0aGlzKSk7CiAgfQp9KTsKCkluc2VydGlvbi5BZnRlciA9IENsYXNzLmNyZWF0ZSgpOwpJbnNlcnRpb24uQWZ0ZXIucHJvdG90eXBlID0gT2JqZWN0LmV4dGVuZChuZXcgQWJzdHJhY3QuSW5zZXJ0aW9uKCdhZnRlckVuZCcpLCB7CiAgaW5pdGlhbGl6ZVJhbmdlOiBmdW5jdGlvbigpIHsKICAgIHRoaXMucmFuZ2Uuc2V0U3RhcnRBZnRlcih0aGlzLmVsZW1lbnQpOwogIH0sCgogIGluc2VydENvbnRlbnQ6IGZ1bmN0aW9uKGZyYWdtZW50cykgewogICAgZnJhZ21lbnRzLmVhY2goKGZ1bmN0aW9uKGZyYWdtZW50KSB7CiAgICAgIHRoaXMuZWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShmcmFnbWVudCwKICAgICAgICB0aGlzLmVsZW1lbnQubmV4dFNpYmxpbmcpOwogICAgfSkuYmluZCh0aGlzKSk7CiAgfQp9KTsKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKRWxlbWVudC5DbGFzc05hbWVzID0gQ2xhc3MuY3JlYXRlKCk7CkVsZW1lbnQuQ2xhc3NOYW1lcy5wcm90b3R5cGUgPSB7CiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oZWxlbWVudCkgewogICAgdGhpcy5lbGVtZW50ID0gJChlbGVtZW50KTsKICB9LAoKICBfZWFjaDogZnVuY3Rpb24oaXRlcmF0b3IpIHsKICAgIHRoaXMuZWxlbWVudC5jbGFzc05hbWUuc3BsaXQoL1xzKy8pLnNlbGVjdChmdW5jdGlvbihuYW1lKSB7CiAgICAgIHJldHVybiBuYW1lLmxlbmd0aCA+IDA7CiAgICB9KS5fZWFjaChpdGVyYXRvcik7CiAgfSwKCiAgc2V0OiBmdW5jdGlvbihjbGFzc05hbWUpIHsKICAgIHRoaXMuZWxlbWVudC5jbGFzc05hbWUgPSBjbGFzc05hbWU7CiAgfSwKCiAgYWRkOiBmdW5jdGlvbihjbGFzc05hbWVUb0FkZCkgewogICAgaWYgKHRoaXMuaW5jbHVkZShjbGFzc05hbWVUb0FkZCkpIHJldHVybjsKICAgIHRoaXMuc2V0KHRoaXMudG9BcnJheSgpLmNvbmNhdChjbGFzc05hbWVUb0FkZCkuam9pbignICcpKTsKICB9LAoKICByZW1vdmU6IGZ1bmN0aW9uKGNsYXNzTmFtZVRvUmVtb3ZlKSB7CiAgICBpZiAoIXRoaXMuaW5jbHVkZShjbGFzc05hbWVUb1JlbW92ZSkpIHJldHVybjsKICAgIHRoaXMuc2V0KHRoaXMuc2VsZWN0KGZ1bmN0aW9uKGNsYXNzTmFtZSkgewogICAgICByZXR1cm4gY2xhc3NOYW1lICE9IGNsYXNzTmFtZVRvUmVtb3ZlOwogICAgfSkuam9pbignICcpKTsKICB9LAoKICB0b1N0cmluZzogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy50b0FycmF5KCkuam9pbignICcpOwogIH0KfQoKT2JqZWN0LmV4dGVuZChFbGVtZW50LkNsYXNzTmFtZXMucHJvdG90eXBlLCBFbnVtZXJhYmxlKTsKdmFyIEZpZWxkID0gewogIGNsZWFyOiBmdW5jdGlvbigpIHsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKQogICAgICAkKGFyZ3VtZW50c1tpXSkudmFsdWUgPSAnJzsKICB9LAoKICBmb2N1czogZnVuY3Rpb24oZWxlbWVudCkgewogICAgJChlbGVtZW50KS5mb2N1cygpOwogIH0sCgogIHByZXNlbnQ6IGZ1bmN0aW9uKCkgewogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspCiAgICAgIGlmICgkKGFyZ3VtZW50c1tpXSkudmFsdWUgPT0gJycpIHJldHVybiBmYWxzZTsKICAgIHJldHVybiB0cnVlOwogIH0sCgogIHNlbGVjdDogZnVuY3Rpb24oZWxlbWVudCkgewogICAgJChlbGVtZW50KS5zZWxlY3QoKTsKICB9LAoKICBhY3RpdmF0ZTogZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICBlbGVtZW50LmZvY3VzKCk7CiAgICBpZiAoZWxlbWVudC5zZWxlY3QpCiAgICAgIGVsZW1lbnQuc2VsZWN0KCk7CiAgfQp9CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnZhciBGb3JtID0gewogIHNlcmlhbGl6ZTogZnVuY3Rpb24oZm9ybSkgewogICAgdmFyIGVsZW1lbnRzID0gRm9ybS5nZXRFbGVtZW50cygkKGZvcm0pKTsKICAgIHZhciBxdWVyeUNvbXBvbmVudHMgPSBuZXcgQXJyYXkoKTsKCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBxdWVyeUNvbXBvbmVudCA9IEZvcm0uRWxlbWVudC5zZXJpYWxpemUoZWxlbWVudHNbaV0pOwogICAgICBpZiAocXVlcnlDb21wb25lbnQpCiAgICAgICAgcXVlcnlDb21wb25lbnRzLnB1c2gocXVlcnlDb21wb25lbnQpOwogICAgfQoKICAgIHJldHVybiBxdWVyeUNvbXBvbmVudHMuam9pbignJicpOwogIH0sCgogIGdldEVsZW1lbnRzOiBmdW5jdGlvbihmb3JtKSB7CiAgICBmb3JtID0gJChmb3JtKTsKICAgIHZhciBlbGVtZW50cyA9IG5ldyBBcnJheSgpOwoKICAgIGZvciAodGFnTmFtZSBpbiBGb3JtLkVsZW1lbnQuU2VyaWFsaXplcnMpIHsKICAgICAgdmFyIHRhZ0VsZW1lbnRzID0gZm9ybS5nZXRFbGVtZW50c0J5VGFnTmFtZSh0YWdOYW1lKTsKICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB0YWdFbGVtZW50cy5sZW5ndGg7IGorKykKICAgICAgICBlbGVtZW50cy5wdXNoKHRhZ0VsZW1lbnRzW2pdKTsKICAgIH0KICAgIHJldHVybiBlbGVtZW50czsKICB9LAoKICBnZXRJbnB1dHM6IGZ1bmN0aW9uKGZvcm0sIHR5cGVOYW1lLCBuYW1lKSB7CiAgICBmb3JtID0gJChmb3JtKTsKICAgIHZhciBpbnB1dHMgPSBmb3JtLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbnB1dCcpOwoKICAgIGlmICghdHlwZU5hbWUgJiYgIW5hbWUpCiAgICAgIHJldHVybiBpbnB1dHM7CgogICAgdmFyIG1hdGNoaW5nSW5wdXRzID0gbmV3IEFycmF5KCk7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgewogICAgICB2YXIgaW5wdXQgPSBpbnB1dHNbaV07CiAgICAgIGlmICgodHlwZU5hbWUgJiYgaW5wdXQudHlwZSAhPSB0eXBlTmFtZSkgfHwKICAgICAgICAgIChuYW1lICYmIGlucHV0Lm5hbWUgIT0gbmFtZSkpCiAgICAgICAgY29udGludWU7CiAgICAgIG1hdGNoaW5nSW5wdXRzLnB1c2goaW5wdXQpOwogICAgfQoKICAgIHJldHVybiBtYXRjaGluZ0lucHV0czsKICB9LAoKICBkaXNhYmxlOiBmdW5jdGlvbihmb3JtKSB7CiAgICB2YXIgZWxlbWVudHMgPSBGb3JtLmdldEVsZW1lbnRzKGZvcm0pOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykgewogICAgICB2YXIgZWxlbWVudCA9IGVsZW1lbnRzW2ldOwogICAgICBlbGVtZW50LmJsdXIoKTsKICAgICAgZWxlbWVudC5kaXNhYmxlZCA9ICd0cnVlJzsKICAgIH0KICB9LAoKICBlbmFibGU6IGZ1bmN0aW9uKGZvcm0pIHsKICAgIHZhciBlbGVtZW50cyA9IEZvcm0uZ2V0RWxlbWVudHMoZm9ybSk7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBlbGVtZW50ID0gZWxlbWVudHNbaV07CiAgICAgIGVsZW1lbnQuZGlzYWJsZWQgPSAnJzsKICAgIH0KICB9LAoKICBmaW5kRmlyc3RFbGVtZW50OiBmdW5jdGlvbihmb3JtKSB7CiAgICByZXR1cm4gRm9ybS5nZXRFbGVtZW50cyhmb3JtKS5maW5kKGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgICAgcmV0dXJuIGVsZW1lbnQudHlwZSAhPSAnaGlkZGVuJyAmJiAhZWxlbWVudC5kaXNhYmxlZCAmJgogICAgICAgIFsnaW5wdXQnLCAnc2VsZWN0JywgJ3RleHRhcmVhJ10uaW5jbHVkZShlbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKSk7CiAgICB9KTsKICB9LAoKICBmb2N1c0ZpcnN0RWxlbWVudDogZnVuY3Rpb24oZm9ybSkgewogICAgRmllbGQuYWN0aXZhdGUoRm9ybS5maW5kRmlyc3RFbGVtZW50KGZvcm0pKTsKICB9LAoKICByZXNldDogZnVuY3Rpb24oZm9ybSkgewogICAgJChmb3JtKS5yZXNldCgpOwogIH0KfQoKRm9ybS5FbGVtZW50ID0gewogIHNlcmlhbGl6ZTogZnVuY3Rpb24oZWxlbWVudCkgewogICAgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICB2YXIgbWV0aG9kID0gZWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCk7CiAgICB2YXIgcGFyYW1ldGVyID0gRm9ybS5FbGVtZW50LlNlcmlhbGl6ZXJzW21ldGhvZF0oZWxlbWVudCk7CgogICAgaWYgKHBhcmFtZXRlcikgewogICAgICB2YXIga2V5ID0gZW5jb2RlVVJJQ29tcG9uZW50KHBhcmFtZXRlclswXSk7CiAgICAgIGlmIChrZXkubGVuZ3RoID09IDApIHJldHVybjsKCiAgICAgIGlmIChwYXJhbWV0ZXJbMV0uY29uc3RydWN0b3IgIT0gQXJyYXkpCiAgICAgICAgcGFyYW1ldGVyWzFdID0gW3BhcmFtZXRlclsxXV07CgogICAgICByZXR1cm4gcGFyYW1ldGVyWzFdLm1hcChmdW5jdGlvbih2YWx1ZSkgewogICAgICAgIHJldHVybiBrZXkgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpOwogICAgICB9KS5qb2luKCcmJyk7CiAgICB9CiAgfSwKCiAgZ2V0VmFsdWU6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOwogICAgdmFyIG1ldGhvZCA9IGVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpOwogICAgdmFyIHBhcmFtZXRlciA9IEZvcm0uRWxlbWVudC5TZXJpYWxpemVyc1ttZXRob2RdKGVsZW1lbnQpOwoKICAgIGlmIChwYXJhbWV0ZXIpCiAgICAgIHJldHVybiBwYXJhbWV0ZXJbMV07CiAgfQp9CgpGb3JtLkVsZW1lbnQuU2VyaWFsaXplcnMgPSB7CiAgaW5wdXQ6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHN3aXRjaCAoZWxlbWVudC50eXBlLnRvTG93ZXJDYXNlKCkpIHsKICAgICAgY2FzZSAnc3VibWl0JzoKICAgICAgY2FzZSAnaGlkZGVuJzoKICAgICAgY2FzZSAncGFzc3dvcmQnOgogICAgICBjYXNlICd0ZXh0JzoKICAgICAgICByZXR1cm4gRm9ybS5FbGVtZW50LlNlcmlhbGl6ZXJzLnRleHRhcmVhKGVsZW1lbnQpOwogICAgICBjYXNlICdjaGVja2JveCc6CiAgICAgIGNhc2UgJ3JhZGlvJzoKICAgICAgICByZXR1cm4gRm9ybS5FbGVtZW50LlNlcmlhbGl6ZXJzLmlucHV0U2VsZWN0b3IoZWxlbWVudCk7CiAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfSwKCiAgaW5wdXRTZWxlY3RvcjogZnVuY3Rpb24oZWxlbWVudCkgewogICAgaWYgKGVsZW1lbnQuY2hlY2tlZCkKICAgICAgcmV0dXJuIFtlbGVtZW50Lm5hbWUsIGVsZW1lbnQudmFsdWVdOwogIH0sCgogIHRleHRhcmVhOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICByZXR1cm4gW2VsZW1lbnQubmFtZSwgZWxlbWVudC52YWx1ZV07CiAgfSwKCiAgc2VsZWN0OiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICByZXR1cm4gRm9ybS5FbGVtZW50LlNlcmlhbGl6ZXJzW2VsZW1lbnQudHlwZSA9PSAnc2VsZWN0LW9uZScgPwogICAgICAnc2VsZWN0T25lJyA6ICdzZWxlY3RNYW55J10oZWxlbWVudCk7CiAgfSwKCiAgc2VsZWN0T25lOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICB2YXIgdmFsdWUgPSAnJywgb3B0LCBpbmRleCA9IGVsZW1lbnQuc2VsZWN0ZWRJbmRleDsKICAgIGlmIChpbmRleCA+PSAwKSB7CiAgICAgIG9wdCA9IGVsZW1lbnQub3B0aW9uc1tpbmRleF07CiAgICAgIHZhbHVlID0gb3B0LnZhbHVlOwogICAgICBpZiAoIXZhbHVlICYmICEoJ3ZhbHVlJyBpbiBvcHQpKQogICAgICAgIHZhbHVlID0gb3B0LnRleHQ7CiAgICB9CiAgICByZXR1cm4gW2VsZW1lbnQubmFtZSwgdmFsdWVdOwogIH0sCgogIHNlbGVjdE1hbnk6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHZhciB2YWx1ZSA9IG5ldyBBcnJheSgpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50Lmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBvcHQgPSBlbGVtZW50Lm9wdGlvbnNbaV07CiAgICAgIGlmIChvcHQuc2VsZWN0ZWQpIHsKICAgICAgICB2YXIgb3B0VmFsdWUgPSBvcHQudmFsdWU7CiAgICAgICAgaWYgKCFvcHRWYWx1ZSAmJiAhKCd2YWx1ZScgaW4gb3B0KSkKICAgICAgICAgIG9wdFZhbHVlID0gb3B0LnRleHQ7CiAgICAgICAgdmFsdWUucHVzaChvcHRWYWx1ZSk7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiBbZWxlbWVudC5uYW1lLCB2YWx1ZV07CiAgfQp9CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnZhciAkRiA9IEZvcm0uRWxlbWVudC5nZXRWYWx1ZTsKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKQWJzdHJhY3QuVGltZWRPYnNlcnZlciA9IGZ1bmN0aW9uKCkge30KQWJzdHJhY3QuVGltZWRPYnNlcnZlci5wcm90b3R5cGUgPSB7CiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oZWxlbWVudCwgZnJlcXVlbmN5LCBjYWxsYmFjaykgewogICAgdGhpcy5mcmVxdWVuY3kgPSBmcmVxdWVuY3k7CiAgICB0aGlzLmVsZW1lbnQgICA9ICQoZWxlbWVudCk7CiAgICB0aGlzLmNhbGxiYWNrICA9IGNhbGxiYWNrOwoKICAgIHRoaXMubGFzdFZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpOwogICAgdGhpcy5yZWdpc3RlckNhbGxiYWNrKCk7CiAgfSwKCiAgcmVnaXN0ZXJDYWxsYmFjazogZnVuY3Rpb24oKSB7CiAgICBzZXRJbnRlcnZhbCh0aGlzLm9uVGltZXJFdmVudC5iaW5kKHRoaXMpLCB0aGlzLmZyZXF1ZW5jeSAqIDEwMDApOwogIH0sCgogIG9uVGltZXJFdmVudDogZnVuY3Rpb24oKSB7CiAgICB2YXIgdmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7CiAgICBpZiAodGhpcy5sYXN0VmFsdWUgIT0gdmFsdWUpIHsKICAgICAgdGhpcy5jYWxsYmFjayh0aGlzLmVsZW1lbnQsIHZhbHVlKTsKICAgICAgdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTsKICAgIH0KICB9Cn0KCkZvcm0uRWxlbWVudC5PYnNlcnZlciA9IENsYXNzLmNyZWF0ZSgpOwpGb3JtLkVsZW1lbnQuT2JzZXJ2ZXIucHJvdG90eXBlID0gT2JqZWN0LmV4dGVuZChuZXcgQWJzdHJhY3QuVGltZWRPYnNlcnZlcigpLCB7CiAgZ2V0VmFsdWU6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIEZvcm0uRWxlbWVudC5nZXRWYWx1ZSh0aGlzLmVsZW1lbnQpOwogIH0KfSk7CgpGb3JtLk9ic2VydmVyID0gQ2xhc3MuY3JlYXRlKCk7CkZvcm0uT2JzZXJ2ZXIucHJvdG90eXBlID0gT2JqZWN0LmV4dGVuZChuZXcgQWJzdHJhY3QuVGltZWRPYnNlcnZlcigpLCB7CiAgZ2V0VmFsdWU6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIEZvcm0uc2VyaWFsaXplKHRoaXMuZWxlbWVudCk7CiAgfQp9KTsKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKQWJzdHJhY3QuRXZlbnRPYnNlcnZlciA9IGZ1bmN0aW9uKCkge30KQWJzdHJhY3QuRXZlbnRPYnNlcnZlci5wcm90b3R5cGUgPSB7CiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oZWxlbWVudCwgY2FsbGJhY2spIHsKICAgIHRoaXMuZWxlbWVudCAgPSAkKGVsZW1lbnQpOwogICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrOwoKICAgIHRoaXMubGFzdFZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpOwogICAgaWYgKHRoaXMuZWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT0gJ2Zvcm0nKQogICAgICB0aGlzLnJlZ2lzdGVyRm9ybUNhbGxiYWNrcygpOwogICAgZWxzZQogICAgICB0aGlzLnJlZ2lzdGVyQ2FsbGJhY2sodGhpcy5lbGVtZW50KTsKICB9LAoKICBvbkVsZW1lbnRFdmVudDogZnVuY3Rpb24oKSB7CiAgICB2YXIgdmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7CiAgICBpZiAodGhpcy5sYXN0VmFsdWUgIT0gdmFsdWUpIHsKICAgICAgdGhpcy5jYWxsYmFjayh0aGlzLmVsZW1lbnQsIHZhbHVlKTsKICAgICAgdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTsKICAgIH0KICB9LAoKICByZWdpc3RlckZvcm1DYWxsYmFja3M6IGZ1bmN0aW9uKCkgewogICAgdmFyIGVsZW1lbnRzID0gRm9ybS5nZXRFbGVtZW50cyh0aGlzLmVsZW1lbnQpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykKICAgICAgdGhpcy5yZWdpc3RlckNhbGxiYWNrKGVsZW1lbnRzW2ldKTsKICB9LAoKICByZWdpc3RlckNhbGxiYWNrOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBpZiAoZWxlbWVudC50eXBlKSB7CiAgICAgIHN3aXRjaCAoZWxlbWVudC50eXBlLnRvTG93ZXJDYXNlKCkpIHsKICAgICAgICBjYXNlICdjaGVja2JveCc6CiAgICAgICAgY2FzZSAncmFkaW8nOgogICAgICAgICAgRXZlbnQub2JzZXJ2ZShlbGVtZW50LCAnY2xpY2snLCB0aGlzLm9uRWxlbWVudEV2ZW50LmJpbmQodGhpcykpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAncGFzc3dvcmQnOgogICAgICAgIGNhc2UgJ3RleHQnOgogICAgICAgIGNhc2UgJ3RleHRhcmVhJzoKICAgICAgICBjYXNlICdzZWxlY3Qtb25lJzoKICAgICAgICBjYXNlICdzZWxlY3QtbXVsdGlwbGUnOgogICAgICAgICAgRXZlbnQub2JzZXJ2ZShlbGVtZW50LCAnY2hhbmdlJywgdGhpcy5vbkVsZW1lbnRFdmVudC5iaW5kKHRoaXMpKTsKICAgICAgICAgIGJyZWFrOwogICAgICB9CiAgICB9CiAgfQp9CgpGb3JtLkVsZW1lbnQuRXZlbnRPYnNlcnZlciA9IENsYXNzLmNyZWF0ZSgpOwpGb3JtLkVsZW1lbnQuRXZlbnRPYnNlcnZlci5wcm90b3R5cGUgPSBPYmplY3QuZXh0ZW5kKG5ldyBBYnN0cmFjdC5FdmVudE9ic2VydmVyKCksIHsKICBnZXRWYWx1ZTogZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gRm9ybS5FbGVtZW50LmdldFZhbHVlKHRoaXMuZWxlbWVudCk7CiAgfQp9KTsKCkZvcm0uRXZlbnRPYnNlcnZlciA9IENsYXNzLmNyZWF0ZSgpOwpGb3JtLkV2ZW50T2JzZXJ2ZXIucHJvdG90eXBlID0gT2JqZWN0LmV4dGVuZChuZXcgQWJzdHJhY3QuRXZlbnRPYnNlcnZlcigpLCB7CiAgZ2V0VmFsdWU6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIEZvcm0uc2VyaWFsaXplKHRoaXMuZWxlbWVudCk7CiAgfQp9KTsKaWYgKCF3aW5kb3cuRXZlbnQpIHsKICB2YXIgRXZlbnQgPSBuZXcgT2JqZWN0KCk7Cn0KCk9iamVjdC5leHRlbmQoRXZlbnQsIHsKICBLRVlfQkFDS1NQQUNFOiA4LAogIEtFWV9UQUI6ICAgICAgIDksCiAgS0VZX1JFVFVSTjogICAxMywKICBLRVlfRVNDOiAgICAgIDI3LAogIEtFWV9MRUZUOiAgICAgMzcsCiAgS0VZX1VQOiAgICAgICAzOCwKICBLRVlfUklHSFQ6ICAgIDM5LAogIEtFWV9ET1dOOiAgICAgNDAsCiAgS0VZX0RFTEVURTogICA0NiwKCiAgZWxlbWVudDogZnVuY3Rpb24oZXZlbnQpIHsKICAgIHJldHVybiBldmVudC50YXJnZXQgfHwgZXZlbnQuc3JjRWxlbWVudDsKICB9LAoKICBpc0xlZnRDbGljazogZnVuY3Rpb24oZXZlbnQpIHsKICAgIHJldHVybiAoKChldmVudC53aGljaCkgJiYgKGV2ZW50LndoaWNoID09IDEpKSB8fAogICAgICAgICAgICAoKGV2ZW50LmJ1dHRvbikgJiYgKGV2ZW50LmJ1dHRvbiA9PSAxKSkpOwogIH0sCgogIHBvaW50ZXJYOiBmdW5jdGlvbihldmVudCkgewogICAgcmV0dXJuIGV2ZW50LnBhZ2VYIHx8IChldmVudC5jbGllbnRYICsKICAgICAgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0IHx8IGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdCkpOwogIH0sCgogIHBvaW50ZXJZOiBmdW5jdGlvbihldmVudCkgewogICAgcmV0dXJuIGV2ZW50LnBhZ2VZIHx8IChldmVudC5jbGllbnRZICsKICAgICAgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3ApKTsKICB9LAoKICBzdG9wOiBmdW5jdGlvbihldmVudCkgewogICAgaWYgKGV2ZW50LnByZXZlbnREZWZhdWx0KSB7CiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogICAgfSBlbHNlIHsKICAgICAgZXZlbnQucmV0dXJuVmFsdWUgPSBmYWxzZTsKICAgICAgZXZlbnQuY2FuY2VsQnViYmxlID0gdHJ1ZTsKICAgIH0KICB9LAoKICAvLyBmaW5kIHRoZSBmaXJzdCBub2RlIHdpdGggdGhlIGdpdmVuIHRhZ05hbWUsIHN0YXJ0aW5nIGZyb20gdGhlCiAgLy8gbm9kZSB0aGUgZXZlbnQgd2FzIHRyaWdnZXJlZCBvbjsgdHJhdmVyc2VzIHRoZSBET00gdXB3YXJkcwogIGZpbmRFbGVtZW50OiBmdW5jdGlvbihldmVudCwgdGFnTmFtZSkgewogICAgdmFyIGVsZW1lbnQgPSBFdmVudC5lbGVtZW50KGV2ZW50KTsKICAgIHdoaWxlIChlbGVtZW50LnBhcmVudE5vZGUgJiYgKCFlbGVtZW50LnRhZ05hbWUgfHwKICAgICAgICAoZWxlbWVudC50YWdOYW1lLnRvVXBwZXJDYXNlKCkgIT0gdGFnTmFtZS50b1VwcGVyQ2FzZSgpKSkpCiAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudE5vZGU7CiAgICByZXR1cm4gZWxlbWVudDsKICB9LAoKICBvYnNlcnZlcnM6IGZhbHNlLAoKICBfb2JzZXJ2ZUFuZENhY2hlOiBmdW5jdGlvbihlbGVtZW50LCBuYW1lLCBvYnNlcnZlciwgdXNlQ2FwdHVyZSkgewogICAgaWYgKCF0aGlzLm9ic2VydmVycykgdGhpcy5vYnNlcnZlcnMgPSBbXTsKICAgIGlmIChlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIpIHsKICAgICAgdGhpcy5vYnNlcnZlcnMucHVzaChbZWxlbWVudCwgbmFtZSwgb2JzZXJ2ZXIsIHVzZUNhcHR1cmVdKTsKICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKG5hbWUsIG9ic2VydmVyLCB1c2VDYXB0dXJlKTsKICAgIH0gZWxzZSBpZiAoZWxlbWVudC5hdHRhY2hFdmVudCkgewogICAgICB0aGlzLm9ic2VydmVycy5wdXNoKFtlbGVtZW50LCBuYW1lLCBvYnNlcnZlciwgdXNlQ2FwdHVyZV0pOwogICAgICBlbGVtZW50LmF0dGFjaEV2ZW50KCdvbicgKyBuYW1lLCBvYnNlcnZlcik7CiAgICB9CiAgfSwKCiAgdW5sb2FkQ2FjaGU6IGZ1bmN0aW9uKCkgewogICAgaWYgKCFFdmVudC5vYnNlcnZlcnMpIHJldHVybjsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgRXZlbnQub2JzZXJ2ZXJzLmxlbmd0aDsgaSsrKSB7CiAgICAgIEV2ZW50LnN0b3BPYnNlcnZpbmcuYXBwbHkodGhpcywgRXZlbnQub2JzZXJ2ZXJzW2ldKTsKICAgICAgRXZlbnQub2JzZXJ2ZXJzW2ldWzBdID0gbnVsbDsKICAgIH0KICAgIEV2ZW50Lm9ic2VydmVycyA9IGZhbHNlOwogIH0sCgogIG9ic2VydmU6IGZ1bmN0aW9uKGVsZW1lbnQsIG5hbWUsIG9ic2VydmVyLCB1c2VDYXB0dXJlKSB7CiAgICB2YXIgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICB1c2VDYXB0dXJlID0gdXNlQ2FwdHVyZSB8fCBmYWxzZTsKCiAgICBpZiAobmFtZSA9PSAna2V5cHJlc3MnICYmCiAgICAgICAgKG5hdmlnYXRvci5hcHBWZXJzaW9uLm1hdGNoKC9Lb25xdWVyb3J8U2FmYXJpfEtIVE1MLykKICAgICAgICB8fCBlbGVtZW50LmF0dGFjaEV2ZW50KSkKICAgICAgbmFtZSA9ICdrZXlkb3duJzsKCiAgICB0aGlzLl9vYnNlcnZlQW5kQ2FjaGUoZWxlbWVudCwgbmFtZSwgb2JzZXJ2ZXIsIHVzZUNhcHR1cmUpOwogIH0sCgogIHN0b3BPYnNlcnZpbmc6IGZ1bmN0aW9uKGVsZW1lbnQsIG5hbWUsIG9ic2VydmVyLCB1c2VDYXB0dXJlKSB7CiAgICB2YXIgZWxlbWVudCA9ICQoZWxlbWVudCk7CiAgICB1c2VDYXB0dXJlID0gdXNlQ2FwdHVyZSB8fCBmYWxzZTsKCiAgICBpZiAobmFtZSA9PSAna2V5cHJlc3MnICYmCiAgICAgICAgKG5hdmlnYXRvci5hcHBWZXJzaW9uLm1hdGNoKC9Lb25xdWVyb3J8U2FmYXJpfEtIVE1MLykKICAgICAgICB8fCBlbGVtZW50LmRldGFjaEV2ZW50KSkKICAgICAgbmFtZSA9ICdrZXlkb3duJzsKCiAgICBpZiAoZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKSB7CiAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihuYW1lLCBvYnNlcnZlciwgdXNlQ2FwdHVyZSk7CiAgICB9IGVsc2UgaWYgKGVsZW1lbnQuZGV0YWNoRXZlbnQpIHsKICAgICAgZWxlbWVudC5kZXRhY2hFdmVudCgnb24nICsgbmFtZSwgb2JzZXJ2ZXIpOwogICAgfQogIH0KfSk7CgovKiBwcmV2ZW50IG1lbW9yeSBsZWFrcyBpbiBJRSAqLwpFdmVudC5vYnNlcnZlKHdpbmRvdywgJ3VubG9hZCcsIEV2ZW50LnVubG9hZENhY2hlLCBmYWxzZSk7CnZhciBQb3NpdGlvbiA9IHsKICAvLyBzZXQgdG8gdHJ1ZSBpZiBuZWVkZWQsIHdhcm5pbmc6IGZpcmVmb3ggcGVyZm9ybWFuY2UgcHJvYmxlbXMKICAvLyBOT1QgbmVlZWRlZCBmb3IgcGFnZSBzY3JvbGxpbmcsIG9ubHkgaWYgZHJhZ2dhYmxlIGNvbnRhaW5lZCBpbgogIC8vIHNjcm9sbGFibGUgZWxlbWVudHMKICBpbmNsdWRlU2Nyb2xsT2Zmc2V0czogZmFsc2UsCgogIC8vIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBjYWxsaW5nIHdpdGhpbkluY2x1ZGluZ1Njcm9sbG9mZnNldCwgZXZlcnkgdGltZSB0aGUKICAvLyBwYWdlIGlzIHNjcm9sbGVkCiAgcHJlcGFyZTogZnVuY3Rpb24oKSB7CiAgICB0aGlzLmRlbHRhWCA9ICB3aW5kb3cucGFnZVhPZmZzZXQKICAgICAgICAgICAgICAgIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0CiAgICAgICAgICAgICAgICB8fCBkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQKICAgICAgICAgICAgICAgIHx8IDA7CiAgICB0aGlzLmRlbHRhWSA9ICB3aW5kb3cucGFnZVlPZmZzZXQKICAgICAgICAgICAgICAgIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AKICAgICAgICAgICAgICAgIHx8IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wCiAgICAgICAgICAgICAgICB8fCAwOwogIH0sCgogIHJlYWxPZmZzZXQ6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHZhciB2YWx1ZVQgPSAwLCB2YWx1ZUwgPSAwOwogICAgZG8gewogICAgICB2YWx1ZVQgKz0gZWxlbWVudC5zY3JvbGxUb3AgIHx8IDA7CiAgICAgIHZhbHVlTCArPSBlbGVtZW50LnNjcm9sbExlZnQgfHwgMDsKICAgICAgZWxlbWVudCA9IGVsZW1lbnQucGFyZW50Tm9kZTsKICAgIH0gd2hpbGUgKGVsZW1lbnQpOwogICAgcmV0dXJuIFt2YWx1ZUwsIHZhbHVlVF07CiAgfSwKCiAgY3VtdWxhdGl2ZU9mZnNldDogZnVuY3Rpb24oZWxlbWVudCkgewogICAgdmFyIHZhbHVlVCA9IDAsIHZhbHVlTCA9IDA7CiAgICBkbyB7CiAgICAgIHZhbHVlVCArPSBlbGVtZW50Lm9mZnNldFRvcCAgfHwgMDsKICAgICAgdmFsdWVMICs9IGVsZW1lbnQub2Zmc2V0TGVmdCB8fCAwOwogICAgICBlbGVtZW50ID0gZWxlbWVudC5vZmZzZXRQYXJlbnQ7CiAgICB9IHdoaWxlIChlbGVtZW50KTsKICAgIHJldHVybiBbdmFsdWVMLCB2YWx1ZVRdOwogIH0sCgogIHBvc2l0aW9uZWRPZmZzZXQ6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHZhciB2YWx1ZVQgPSAwLCB2YWx1ZUwgPSAwOwogICAgZG8gewogICAgICB2YWx1ZVQgKz0gZWxlbWVudC5vZmZzZXRUb3AgIHx8IDA7CiAgICAgIHZhbHVlTCArPSBlbGVtZW50Lm9mZnNldExlZnQgfHwgMDsKICAgICAgZWxlbWVudCA9IGVsZW1lbnQub2Zmc2V0UGFyZW50OwogICAgICBpZiAoZWxlbWVudCkgewogICAgICAgIHAgPSBFbGVtZW50LmdldFN0eWxlKGVsZW1lbnQsICdwb3NpdGlvbicpOwogICAgICAgIGlmIChwID09ICdyZWxhdGl2ZScgfHwgcCA9PSAnYWJzb2x1dGUnKSBicmVhazsKICAgICAgfQogICAgfSB3aGlsZSAoZWxlbWVudCk7CiAgICByZXR1cm4gW3ZhbHVlTCwgdmFsdWVUXTsKICB9LAoKICBvZmZzZXRQYXJlbnQ6IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIGlmIChlbGVtZW50Lm9mZnNldFBhcmVudCkgcmV0dXJuIGVsZW1lbnQub2Zmc2V0UGFyZW50OwogICAgaWYgKGVsZW1lbnQgPT0gZG9jdW1lbnQuYm9keSkgcmV0dXJuIGVsZW1lbnQ7CgogICAgd2hpbGUgKChlbGVtZW50ID0gZWxlbWVudC5wYXJlbnROb2RlKSAmJiBlbGVtZW50ICE9IGRvY3VtZW50LmJvZHkpCiAgICAgIGlmIChFbGVtZW50LmdldFN0eWxlKGVsZW1lbnQsICdwb3NpdGlvbicpICE9ICdzdGF0aWMnKQogICAgICAgIHJldHVybiBlbGVtZW50OwoKICAgIHJldHVybiBkb2N1bWVudC5ib2R5OwogIH0sCgogIC8vIGNhY2hlcyB4L3kgY29vcmRpbmF0ZSBwYWlyIHRvIHVzZSB3aXRoIG92ZXJsYXAKICB3aXRoaW46IGZ1bmN0aW9uKGVsZW1lbnQsIHgsIHkpIHsKICAgIGlmICh0aGlzLmluY2x1ZGVTY3JvbGxPZmZzZXRzKQogICAgICByZXR1cm4gdGhpcy53aXRoaW5JbmNsdWRpbmdTY3JvbGxvZmZzZXRzKGVsZW1lbnQsIHgsIHkpOwogICAgdGhpcy54Y29tcCA9IHg7CiAgICB0aGlzLnljb21wID0geTsKICAgIHRoaXMub2Zmc2V0ID0gdGhpcy5jdW11bGF0aXZlT2Zmc2V0KGVsZW1lbnQpOwoKICAgIHJldHVybiAoeSA+PSB0aGlzLm9mZnNldFsxXSAmJgogICAgICAgICAgICB5IDwgIHRoaXMub2Zmc2V0WzFdICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgJiYKICAgICAgICAgICAgeCA+PSB0aGlzLm9mZnNldFswXSAmJgogICAgICAgICAgICB4IDwgIHRoaXMub2Zmc2V0WzBdICsgZWxlbWVudC5vZmZzZXRXaWR0aCk7CiAgfSwKCiAgd2l0aGluSW5jbHVkaW5nU2Nyb2xsb2Zmc2V0czogZnVuY3Rpb24oZWxlbWVudCwgeCwgeSkgewogICAgdmFyIG9mZnNldGNhY2hlID0gdGhpcy5yZWFsT2Zmc2V0KGVsZW1lbnQpOwoKICAgIHRoaXMueGNvbXAgPSB4ICsgb2Zmc2V0Y2FjaGVbMF0gLSB0aGlzLmRlbHRhWDsKICAgIHRoaXMueWNvbXAgPSB5ICsgb2Zmc2V0Y2FjaGVbMV0gLSB0aGlzLmRlbHRhWTsKICAgIHRoaXMub2Zmc2V0ID0gdGhpcy5jdW11bGF0aXZlT2Zmc2V0KGVsZW1lbnQpOwoKICAgIHJldHVybiAodGhpcy55Y29tcCA+PSB0aGlzLm9mZnNldFsxXSAmJgogICAgICAgICAgICB0aGlzLnljb21wIDwgIHRoaXMub2Zmc2V0WzFdICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgJiYKICAgICAgICAgICAgdGhpcy54Y29tcCA+PSB0aGlzLm9mZnNldFswXSAmJgogICAgICAgICAgICB0aGlzLnhjb21wIDwgIHRoaXMub2Zmc2V0WzBdICsgZWxlbWVudC5vZmZzZXRXaWR0aCk7CiAgfSwKCiAgLy8gd2l0aGluIG11c3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJlZm9yZQogIG92ZXJsYXA6IGZ1bmN0aW9uKG1vZGUsIGVsZW1lbnQpIHsKICAgIGlmICghbW9kZSkgcmV0dXJuIDA7CiAgICBpZiAobW9kZSA9PSAndmVydGljYWwnKQogICAgICByZXR1cm4gKCh0aGlzLm9mZnNldFsxXSArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0KSAtIHRoaXMueWNvbXApIC8KICAgICAgICBlbGVtZW50Lm9mZnNldEhlaWdodDsKICAgIGlmIChtb2RlID09ICdob3Jpem9udGFsJykKICAgICAgcmV0dXJuICgodGhpcy5vZmZzZXRbMF0gKyBlbGVtZW50Lm9mZnNldFdpZHRoKSAtIHRoaXMueGNvbXApIC8KICAgICAgICBlbGVtZW50Lm9mZnNldFdpZHRoOwogIH0sCgogIGNsb25lOiBmdW5jdGlvbihzb3VyY2UsIHRhcmdldCkgewogICAgc291cmNlID0gJChzb3VyY2UpOwogICAgdGFyZ2V0ID0gJCh0YXJnZXQpOwogICAgdGFyZ2V0LnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJzsKICAgIHZhciBvZmZzZXRzID0gdGhpcy5jdW11bGF0aXZlT2Zmc2V0KHNvdXJjZSk7CiAgICB0YXJnZXQuc3R5bGUudG9wICAgID0gb2Zmc2V0c1sxXSArICdweCc7CiAgICB0YXJnZXQuc3R5bGUubGVmdCAgID0gb2Zmc2V0c1swXSArICdweCc7CiAgICB0YXJnZXQuc3R5bGUud2lkdGggID0gc291cmNlLm9mZnNldFdpZHRoICsgJ3B4JzsKICAgIHRhcmdldC5zdHlsZS5oZWlnaHQgPSBzb3VyY2Uub2Zmc2V0SGVpZ2h0ICsgJ3B4JzsKICB9LAoKICBwYWdlOiBmdW5jdGlvbihmb3JFbGVtZW50KSB7CiAgICB2YXIgdmFsdWVUID0gMCwgdmFsdWVMID0gMDsKCiAgICB2YXIgZWxlbWVudCA9IGZvckVsZW1lbnQ7CiAgICBkbyB7CiAgICAgIHZhbHVlVCArPSBlbGVtZW50Lm9mZnNldFRvcCAgfHwgMDsKICAgICAgdmFsdWVMICs9IGVsZW1lbnQub2Zmc2V0TGVmdCB8fCAwOwoKICAgICAgLy8gU2FmYXJpIGZpeAogICAgICBpZiAoZWxlbWVudC5vZmZzZXRQYXJlbnQ9PWRvY3VtZW50LmJvZHkpCiAgICAgICAgaWYgKEVsZW1lbnQuZ2V0U3R5bGUoZWxlbWVudCwncG9zaXRpb24nKT09J2Fic29sdXRlJykgYnJlYWs7CgogICAgfSB3aGlsZSAoZWxlbWVudCA9IGVsZW1lbnQub2Zmc2V0UGFyZW50KTsKCiAgICBlbGVtZW50ID0gZm9yRWxlbWVudDsKICAgIGRvIHsKICAgICAgdmFsdWVUIC09IGVsZW1lbnQuc2Nyb2xsVG9wICB8fCAwOwogICAgICB2YWx1ZUwgLT0gZWxlbWVudC5zY3JvbGxMZWZ0IHx8IDA7CiAgICB9IHdoaWxlIChlbGVtZW50ID0gZWxlbWVudC5wYXJlbnROb2RlKTsKCiAgICByZXR1cm4gW3ZhbHVlTCwgdmFsdWVUXTsKICB9LAoKICBjbG9uZTogZnVuY3Rpb24oc291cmNlLCB0YXJnZXQpIHsKICAgIHZhciBvcHRpb25zID0gT2JqZWN0LmV4dGVuZCh7CiAgICAgIHNldExlZnQ6ICAgIHRydWUsCiAgICAgIHNldFRvcDogICAgIHRydWUsCiAgICAgIHNldFdpZHRoOiAgIHRydWUsCiAgICAgIHNldEhlaWdodDogIHRydWUsCiAgICAgIG9mZnNldFRvcDogIDAsCiAgICAgIG9mZnNldExlZnQ6IDAKICAgIH0sIGFyZ3VtZW50c1syXSB8fCB7fSkKCiAgICAvLyBmaW5kIHBhZ2UgcG9zaXRpb24gb2Ygc291cmNlCiAgICBzb3VyY2UgPSAkKHNvdXJjZSk7CiAgICB2YXIgcCA9IFBvc2l0aW9uLnBhZ2Uoc291cmNlKTsKCiAgICAvLyBmaW5kIGNvb3JkaW5hdGUgc3lzdGVtIHRvIHVzZQogICAgdGFyZ2V0ID0gJCh0YXJnZXQpOwogICAgdmFyIGRlbHRhID0gWzAsIDBdOwogICAgdmFyIHBhcmVudCA9IG51bGw7CiAgICAvLyBkZWx0YSBbMCwwXSB3aWxsIGRvIGZpbmUgd2l0aCBwb3NpdGlvbjogZml4ZWQgZWxlbWVudHMsCiAgICAvLyBwb3NpdGlvbjphYnNvbHV0ZSBuZWVkcyBvZmZzZXRQYXJlbnQgZGVsdGFzCiAgICBpZiAoRWxlbWVudC5nZXRTdHlsZSh0YXJnZXQsJ3Bvc2l0aW9uJykgPT0gJ2Fic29sdXRlJykgewogICAgICBwYXJlbnQgPSBQb3NpdGlvbi5vZmZzZXRQYXJlbnQodGFyZ2V0KTsKICAgICAgZGVsdGEgPSBQb3NpdGlvbi5wYWdlKHBhcmVudCk7CiAgICB9CgogICAgLy8gY29ycmVjdCBieSBib2R5IG9mZnNldHMgKGZpeGVzIFNhZmFyaSkKICAgIGlmIChwYXJlbnQgPT0gZG9jdW1lbnQuYm9keSkgewogICAgICBkZWx0YVswXSAtPSBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7CiAgICAgIGRlbHRhWzFdIC09IGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogICAgfQoKICAgIC8vIHNldCBwb3NpdGlvbgogICAgaWYob3B0aW9ucy5zZXRMZWZ0KSAgIHRhcmdldC5zdHlsZS5sZWZ0ICA9IChwWzBdIC0gZGVsdGFbMF0gKyBvcHRpb25zLm9mZnNldExlZnQpICsgJ3B4JzsKICAgIGlmKG9wdGlvbnMuc2V0VG9wKSAgICB0YXJnZXQuc3R5bGUudG9wICAgPSAocFsxXSAtIGRlbHRhWzFdICsgb3B0aW9ucy5vZmZzZXRUb3ApICsgJ3B4JzsKICAgIGlmKG9wdGlvbnMuc2V0V2lkdGgpICB0YXJnZXQuc3R5bGUud2lkdGggPSBzb3VyY2Uub2Zmc2V0V2lkdGggKyAncHgnOwogICAgaWYob3B0aW9ucy5zZXRIZWlnaHQpIHRhcmdldC5zdHlsZS5oZWlnaHQgPSBzb3VyY2Uub2Zmc2V0SGVpZ2h0ICsgJ3B4JzsKICB9LAoKICBhYnNvbHV0aXplOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIGlmIChlbGVtZW50LnN0eWxlLnBvc2l0aW9uID09ICdhYnNvbHV0ZScpIHJldHVybjsKICAgIFBvc2l0aW9uLnByZXBhcmUoKTsKCiAgICB2YXIgb2Zmc2V0cyA9IFBvc2l0aW9uLnBvc2l0aW9uZWRPZmZzZXQoZWxlbWVudCk7CiAgICB2YXIgdG9wICAgICA9IG9mZnNldHNbMV07CiAgICB2YXIgbGVmdCAgICA9IG9mZnNldHNbMF07CiAgICB2YXIgd2lkdGggICA9IGVsZW1lbnQuY2xpZW50V2lkdGg7CiAgICB2YXIgaGVpZ2h0ICA9IGVsZW1lbnQuY2xpZW50SGVpZ2h0OwoKICAgIGVsZW1lbnQuX29yaWdpbmFsTGVmdCAgID0gbGVmdCAtIHBhcnNlRmxvYXQoZWxlbWVudC5zdHlsZS5sZWZ0ICB8fCAwKTsKICAgIGVsZW1lbnQuX29yaWdpbmFsVG9wICAgID0gdG9wICAtIHBhcnNlRmxvYXQoZWxlbWVudC5zdHlsZS50b3AgfHwgMCk7CiAgICBlbGVtZW50Ll9vcmlnaW5hbFdpZHRoICA9IGVsZW1lbnQuc3R5bGUud2lkdGg7CiAgICBlbGVtZW50Ll9vcmlnaW5hbEhlaWdodCA9IGVsZW1lbnQuc3R5bGUuaGVpZ2h0OwoKICAgIGVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnOwogICAgZWxlbWVudC5zdHlsZS50b3AgICAgPSB0b3AgKyAncHgnOzsKICAgIGVsZW1lbnQuc3R5bGUubGVmdCAgID0gbGVmdCArICdweCc7OwogICAgZWxlbWVudC5zdHlsZS53aWR0aCAgPSB3aWR0aCArICdweCc7OwogICAgZWxlbWVudC5zdHlsZS5oZWlnaHQgPSBoZWlnaHQgKyAncHgnOzsKICB9LAoKICByZWxhdGl2aXplOiBmdW5jdGlvbihlbGVtZW50KSB7CiAgICBlbGVtZW50ID0gJChlbGVtZW50KTsKICAgIGlmIChlbGVtZW50LnN0eWxlLnBvc2l0aW9uID09ICdyZWxhdGl2ZScpIHJldHVybjsKICAgIFBvc2l0aW9uLnByZXBhcmUoKTsKCiAgICBlbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJzsKICAgIHZhciB0b3AgID0gcGFyc2VGbG9hdChlbGVtZW50LnN0eWxlLnRvcCAgfHwgMCkgLSAoZWxlbWVudC5fb3JpZ2luYWxUb3AgfHwgMCk7CiAgICB2YXIgbGVmdCA9IHBhcnNlRmxvYXQoZWxlbWVudC5zdHlsZS5sZWZ0IHx8IDApIC0gKGVsZW1lbnQuX29yaWdpbmFsTGVmdCB8fCAwKTsKCiAgICBlbGVtZW50LnN0eWxlLnRvcCAgICA9IHRvcCArICdweCc7CiAgICBlbGVtZW50LnN0eWxlLmxlZnQgICA9IGxlZnQgKyAncHgnOwogICAgZWxlbWVudC5zdHlsZS5oZWlnaHQgPSBlbGVtZW50Ll9vcmlnaW5hbEhlaWdodDsKICAgIGVsZW1lbnQuc3R5bGUud2lkdGggID0gZWxlbWVudC5fb3JpZ2luYWxXaWR0aDsKICB9Cn0KCi8vIFNhZmFyaSByZXR1cm5zIG1hcmdpbnMgb24gYm9keSB3aGljaCBpcyBpbmNvcnJlY3QgaWYgdGhlIGNoaWxkIGlzIGFic29sdXRlbHkKLy8gcG9zaXRpb25lZC4gIEZvciBwZXJmb3JtYW5jZSByZWFzb25zLCByZWRlZmluZSBQb3NpdGlvbi5jdW11bGF0aXZlT2Zmc2V0IGZvcgovLyBLSFRNTC9XZWJLaXQgb25seS4KaWYgKC9Lb25xdWVyb3J8U2FmYXJpfEtIVE1MLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7CiAgUG9zaXRpb24uY3VtdWxhdGl2ZU9mZnNldCA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgIHZhciB2YWx1ZVQgPSAwLCB2YWx1ZUwgPSAwOwogICAgZG8gewogICAgICB2YWx1ZVQgKz0gZWxlbWVudC5vZmZzZXRUb3AgIHx8IDA7CiAgICAgIHZhbHVlTCArPSBlbGVtZW50Lm9mZnNldExlZnQgfHwgMDsKICAgICAgaWYgKGVsZW1lbnQub2Zmc2V0UGFyZW50ID09IGRvY3VtZW50LmJvZHkpCiAgICAgICAgaWYgKEVsZW1lbnQuZ2V0U3R5bGUoZWxlbWVudCwgJ3Bvc2l0aW9uJykgPT0gJ2Fic29sdXRlJykgYnJlYWs7CgogICAgICBlbGVtZW50ID0gZWxlbWVudC5vZmZzZXRQYXJlbnQ7CiAgICB9IHdoaWxlIChlbGVtZW50KTsKCiAgICByZXR1cm4gW3ZhbHVlTCwgdmFsdWVUXTsKICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/templates/lightbox/js/scriptaculous.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gQ29weXJpZ2h0IChjKSAyMDA1IFRob21hcyBGdWNocyAoaHR0cDovL3NjcmlwdC5hY3Vsby51cywgaHR0cDovL21pci5hY3Vsby51cykKLy8gCi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZwovLyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLy8gIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwovLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwovLyBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KLy8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgovLyAKLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKLy8gaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi8vCi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAovLyBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKLy8gTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRQovLyBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OCi8vIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTgovLyBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KCnZhciBTY3JpcHRhY3Vsb3VzID0gewogIFZlcnNpb246ICcxLjUuMScsCiAgcmVxdWlyZTogZnVuY3Rpb24obGlicmFyeU5hbWUpIHsKICAgIC8vIGluc2VydGluZyB2aWEgRE9NIGZhaWxzIGluIFNhZmFyaSAyLjAsIHNvIGJydXRlIGZvcmNlIGFwcHJvYWNoCiAgICBkb2N1bWVudC53cml0ZSgnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJytsaWJyYXJ5TmFtZSsnIj48L3NjcmlwdD4nKTsKICB9LAogIGxvYWQ6IGZ1bmN0aW9uKCkgewogICAgaWYoKHR5cGVvZiBQcm90b3R5cGU9PSd1bmRlZmluZWQnKSB8fAogICAgICBwYXJzZUZsb2F0KFByb3RvdHlwZS5WZXJzaW9uLnNwbGl0KCIuIilbMF0gKyAiLiIgKwogICAgICAgICAgICAgICAgIFByb3RvdHlwZS5WZXJzaW9uLnNwbGl0KCIuIilbMV0pIDwgMS40KQogICAgICB0aHJvdygic2NyaXB0LmFjdWxvLnVzIHJlcXVpcmVzIHRoZSBQcm90b3R5cGUgSmF2YVNjcmlwdCBmcmFtZXdvcmsgPj0gMS40LjAiKTsKICAgIAogICAgJEEoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpKS5maW5kQWxsKCBmdW5jdGlvbihzKSB7CiAgICAgIHJldHVybiAocy5zcmMgJiYgcy5zcmMubWF0Y2goL3NjcmlwdGFjdWxvdXNcLmpzKFw/LiopPyQvKSkKICAgIH0pLmVhY2goIGZ1bmN0aW9uKHMpIHsKICAgICAgdmFyIHBhdGggPSBzLnNyYy5yZXBsYWNlKC9zY3JpcHRhY3Vsb3VzXC5qcyhcPy4qKT8kLywnJyk7CiAgICAgIHZhciBpbmNsdWRlcyA9IHMuc3JjLm1hdGNoKC9cPy4qbG9hZD0oW2EteixdKikvKTsKICAgICAgKGluY2x1ZGVzID8gaW5jbHVkZXNbMV0gOiAnYnVpbGRlcixlZmZlY3RzLGRyYWdkcm9wLGNvbnRyb2xzLHNsaWRlcicpLnNwbGl0KCcsJykuZWFjaCgKICAgICAgIGZ1bmN0aW9uKGluY2x1ZGUpIHsgU2NyaXB0YWN1bG91cy5yZXF1aXJlKHBhdGgraW5jbHVkZSsnLmpzJykgfSk7CiAgICB9KTsKICB9Cn0KClNjcmlwdGFjdWxvdXMubG9hZCgpOw==]]></data>
	</file>
	<file>
	  <filename>/templates/milkbox/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/milkbox/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/milkbox/css/milkbox/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/milkbox/css/milkbox/close.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEQAoAMQAANTU1L2+vp2enr+/v7i4uJOTk/j4+PT09IiIiLGxsaqqqnJzc319faKiot7e3pSUlFxdXerq6o2NjVFSUv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAARACgAAAWxICUKjmiajnAWE1SelANNxTjd7infk7rjr98tIBK6hBMiaoZjDmExJy8JLUqp1eg0V0UCoUgn1zoNGINS5ZkiKOucCBEL+54sDqaCEszAZ/+AgYKDhIWDAxFZEQMnBBIPiTARDxIEIgMSmZAnk5kSjJ2akaGZACKkkKQSpiaolJ6snK+epYqztba0m1WqolCqs7untwCoo8TDnpuYsLKeCSKOq7+UDQYmBLGSCteG3hQhADs=]]></data>
	</file>
	<file>
	  <filename>/templates/milkbox/css/milkbox/loading.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhGAAYAPQAAP///wAAAM7Ozvr6+uDg4LCwsOjo6I6OjsjIyJycnNjY2KioqMDAwPLy8nZ2doaGhri4uGhoaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH+GkNyZWF0ZWQgd2l0aCBhamF4bG9hZC5pbmZvACH5BAAHAAAAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAGAAYAAAFriAgjiQAQWVaDgr5POSgkoTDjFE0NoQ8iw8HQZQTDQjDn4jhSABhAAOhoTqSDg7qSUQwxEaEwwFhXHhHgzOA1xshxAnfTzotGRaHglJqkJcaVEqCgyoCBQkJBQKDDXQGDYaIioyOgYSXA36XIgYMBWRzXZoKBQUMmil0lgalLSIClgBpO0g+s26nUWddXyoEDIsACq5SsTMMDIECwUdJPw0Mzsu0qHYkw72bBmozIQAh+QQABwABACwAAAAAGAAYAAAFsCAgjiTAMGVaDgR5HKQwqKNxIKPjjFCk0KNXC6ATKSI7oAhxWIhezwhENTCQEoeGCdWIPEgzESGxEIgGBWstEW4QCGGAIJEoxGmGt5ZkgCRQQHkGd2CESoeIIwoMBQUMP4cNeQQGDYuNj4iSb5WJnmeGng0CDGaBlIQEJziHk3sABidDAHBgagButSKvAAoyuHuUYHgCkAZqebw0AgLBQyyzNKO3byNuoSS8x8OfwIchACH5BAAHAAIALAAAAAAYABgAAAW4ICCOJIAgZVoOBJkkpDKoo5EI43GMjNPSokXCINKJCI4HcCRIQEQvqIOhGhBHhUTDhGo4diOZyFAoKEQDxra2mAEgjghOpCgz3LTBIxJ5kgwMBShACREHZ1V4Kg1rS44pBAgMDAg/Sw0GBAQGDZGTlY+YmpyPpSQDiqYiDQoCliqZBqkGAgKIS5kEjQ21VwCyp76dBHiNvz+MR74AqSOdVwbQuo+abppo10ssjdkAnc0rf8vgl8YqIQAh+QQABwADACwAAAAAGAAYAAAFrCAgjiQgCGVaDgZZFCQxqKNRKGOSjMjR0qLXTyciHA7AkaLACMIAiwOC1iAxCrMToHHYjWQiA4NBEA0Q1RpWxHg4cMXxNDk4OBxNUkPAQAEXDgllKgMzQA1pSYopBgonCj9JEA8REQ8QjY+RQJOVl4ugoYssBJuMpYYjDQSliwasiQOwNakALKqsqbWvIohFm7V6rQAGP6+JQLlFg7KDQLKJrLjBKbvAor3IKiEAIfkEAAcABAAsAAAAABgAGAAABbUgII4koChlmhokw5DEoI4NQ4xFMQoJO4uuhignMiQWvxGBIQC+AJBEUyUcIRiyE6CR0CllW4HABxBURTUw4nC4FcWo5CDBRpQaCoF7VjgsyCUDYDMNZ0mHdwYEBAaGMwwHDg4HDA2KjI4qkJKUiJ6faJkiA4qAKQkRB3E0i6YpAw8RERAjA4tnBoMApCMQDhFTuySKoSKMJAq6rD4GzASiJYtgi6PUcs9Kew0xh7rNJMqIhYchACH5BAAHAAUALAAAAAAYABgAAAW0ICCOJEAQZZo2JIKQxqCOjWCMDDMqxT2LAgELkBMZCoXfyCBQiFwiRsGpku0EshNgUNAtrYPT0GQVNRBWwSKBMp98P24iISgNDAS4ipGA6JUpA2WAhDR4eWM/CAkHBwkIDYcGiTOLjY+FmZkNlCN3eUoLDmwlDW+AAwcODl5bYl8wCVYMDw5UWzBtnAANEQ8kBIM0oAAGPgcREIQnVloAChEOqARjzgAQEbczg8YkWJq8nSUhACH5BAAHAAYALAAAAAAYABgAAAWtICCOJGAYZZoOpKKQqDoORDMKwkgwtiwSBBYAJ2owGL5RgxBziQQMgkwoMkhNqAEDARPSaiMDFdDIiRSFQowMXE8Z6RdpYHWnEAWGPVkajPmARVZMPUkCBQkJBQINgwaFPoeJi4GVlQ2Qc3VJBQcLV0ptfAMJBwdcIl+FYjALQgimoGNWIhAQZA4HXSpLMQ8PIgkOSHxAQhERPw7ASTSFyCMMDqBTJL8tf3y2fCEAIfkEAAcABwAsAAAAABgAGAAABa8gII4k0DRlmg6kYZCoOg5EDBDEaAi2jLO3nEkgkMEIL4BLpBAkVy3hCTAQKGAznM0AFNFGBAbj2cA9jQixcGZAGgECBu/9HnTp+FGjjezJFAwFBQwKe2Z+KoCChHmNjVMqA21nKQwJEJRlbnUFCQlFXlpeCWcGBUACCwlrdw8RKGImBwktdyMQEQciB7oACwcIeA4RVwAODiIGvHQKERAjxyMIB5QlVSTLYLZ0sW8hACH5BAAHAAgALAAAAAAYABgAAAW0ICCOJNA0ZZoOpGGQrDoOBCoSxNgQsQzgMZyIlvOJdi+AS2SoyXrK4umWPM5wNiV0UDUIBNkdoepTfMkA7thIECiyRtUAGq8fm2O4jIBgMBA1eAZ6Knx+gHaJR4QwdCMKBxEJRggFDGgQEREPjjAMBQUKIwIRDhBDC2QNDDEKoEkDoiMHDigICGkJBS2dDA6TAAnAEAkCdQ8ORQcHTAkLcQQODLPMIgIJaCWxJMIkPIoAt3EhACH5BAAHAAkALAAAAAAYABgAAAWtICCOJNA0ZZoOpGGQrDoOBCoSxNgQsQzgMZyIlvOJdi+AS2SoyXrK4umWHM5wNiV0UN3xdLiqr+mENcWpM9TIbrsBkEck8oC0DQqBQGGIz+t3eXtob0ZTPgNrIwQJDgtGAgwCWSIMDg4HiiUIDAxFAAoODwxDBWINCEGdSTQkCQcoegADBaQ6MggHjwAFBZUFCm0HB0kJCUy9bAYHCCPGIwqmRq0jySMGmj6yRiEAIfkEAAcACgAsAAAAABgAGAAABbIgII4k0DRlmg6kYZCsOg4EKhLE2BCxDOAxnIiW84l2L4BLZKipBopW8XRLDkeCiAMyMvQAA+uON4JEIo+vqukkKQ6RhLHplVGN+LyKcXA4Dgx5DWwGDXx+gIKENnqNdzIDaiMECwcFRgQCCowiCAcHCZIlCgICVgSfCEMMnA0CXaU2YSQFoQAKUQMMqjoyAglcAAyBAAIMRUYLCUkFlybDeAYJryLNk6xGNCTQXY0juHghACH5BAAHAAsALAAAAAAYABgAAAWzICCOJNA0ZVoOAmkY5KCSSgSNBDE2hDyLjohClBMNij8RJHIQvZwEVOpIekRQJyJs5AMoHA+GMbE1lnm9EcPhOHRnhpwUl3AsknHDm5RN+v8qCAkHBwkIfw1xBAYNgoSGiIqMgJQifZUjBhAJYj95ewIJCQV7KYpzBAkLLQADCHOtOpY5PgNlAAykAEUsQ1wzCgWdCIdeArczBQVbDJ0NAqyeBb64nQAGArBTt8R8mLuyPyEAOwAAAAAAAAAAAA==]]></data>
	</file>
	<file>
	  <filename>/templates/milkbox/css/milkbox/milkbox.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogTUlMS0JPWCAqLwoKI21iT3ZlcmxheSB7Cglwb3NpdGlvbjogYWJzb2x1dGU7CglsZWZ0OiAwOwoJd2lkdGg6MTAwJTsKCWJhY2tncm91bmQtY29sb3I6ICMwMDA7IC8qIHNldCB0aGUgTWlsa2JveCBvdmVybGF5IGNvbG9yIC8vIG9wYWNpdHk6IHNlZSB0aGUganMgb3B0aW9ucyAqLwoJei1pbmRleDoxMDA7CgljdXJzb3I6IHBvaW50ZXI7Cn0KCiNtYkNlbnRlciB7CgkvKiBmb3IgZGVmYXVsdCB3aWR0aCBhbmQgaGVpZ2h0LCBzZWUgdGhlIGpzIG9wdGlvbnMgKi8KCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCXotaW5kZXg6MTAxOwoJb3ZlcmZsb3c6aGlkZGVuOwoJbGVmdDogNTAlOwoJdG9wOjEwJTsvKiBvdmVyd3JpdHRlbiBpbiB0aGUganMgb3B0aW9ucyB0byBwcm9wZXJseSBwb3NpdGlvbiB0aGUgbWlsa2JveCB3aGVuIGFjdGl2YXRlZCBpbiBhIHNjcm9sbGVkIHdpbmRvdyAqLwoJYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsvKiBzZXQgdGhlIE1pbGtib3ggYmFja2dyb3VuZCBjb2xvciAqLwoJYm9yZGVyOiA1cHggc29saWQgI2ZmZjsvKiBzZXQgdGhlIE1pbGtib3ggYm9yZGVyICovCgltYXJnaW46MDsgcGFkZGluZzo1cHg7Lyogc2V0IHRoZSBNaWxrYm94IHBhZGRpbmcgKi8KfQoKLm1iTG9hZGluZ3sgYmFja2dyb3VuZDogI2ZmZiB1cmwobG9hZGluZy5naWYpIG5vLXJlcGVhdCBjZW50ZXI7IH0vKiBJTUFHRTogbG9hZGluZyBnaWYgKi8KCiNtYkNhbnZhc3sgbWFyZ2luOjA7IHBhZGRpbmc6MDsgaGVpZ2h0OjA7IGJvcmRlcjpub25lOyBmb250LXNpemU6MDsgb3ZlcmZsb3c6aGlkZGVuOyB9CgoubWJDbGVhcnsgY2xlYXI6Ym90aDsgaGVpZ2h0OjA7IG1hcmdpbjowOyBwYWRkaW5nOjA7IGZvbnQtc2l6ZTowOyBvdmVyZmxvdzpoaWRkZW47IH0KCgovKiAqKiogQk9UVE9NICoqKiAqLwoKI21iQm90dG9tIHsgCgkvKiBzZXQgdGV4dCBvcHRpb25zICovCglmb250LWZhbWlseTogVmVyZGFuYSwgQXJpYWwsIEdlbmV2YSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOwoJZm9udC1zaXplOiAxMHB4OwoJY29sb3I6ICM2NjY7CglsaW5lLWhlaWdodDogMS40ZW07Cgl0ZXh0LWFsaWduOiBsZWZ0OwoJcGFkZGluZy10b3A6OHB4OwoJbWFyZ2luOjA7Cn0KCi8qIG5hdmlnYXRpb24gKi8KLyogYmUgY2FyZWZ1bCBpZiB5b3UgY2hhbmdlIGJ1dHRvbnMgZGltZW5zaW9ucyAqLwoKI21iTmF2aWdhdGlvbnsKCWZsb2F0OnJpZ2h0OwoJd2lkdGg6MjdweDsKCXBhZGRpbmctdG9wOjNweDsKCWJvcmRlci1sZWZ0OjFweCBzb2xpZCAjOWM5YzljOy8qIHNldCBuYXYgYm9yZGVyICovCn0KCgojbWJDb3VudHsgCgl3aWR0aDo1NXB4OyAKCW92ZXJmbG93OmhpZGRlbjsKCXBhZGRpbmctdG9wOjFweDsKCWZsb2F0OnJpZ2h0OwoJdGV4dC1hbGlnbjpyaWdodDsKCWZvbnQtc2l6ZTo5cHg7IC8qIGNvdW50IGZvbnQgc2l6ZSAqLwp9CgojbWJDbG9zZUxpbmssICNtYlByZXZMaW5rLCAjbWJOZXh0TGluaywgI21iUGxheVBhdXNlewoJb3V0bGluZTpub25lOwoJZGlzcGxheTpibG9jazsKCWZsb2F0OnJpZ2h0OwoJaGVpZ2h0OjE5cHg7CgljdXJzb3I6IHBvaW50ZXI7Cn0KCgojbWJQcmV2TGluaywgI21iTmV4dExpbmt7IHdpZHRoOjE1cHg7IH0KI21iUHJldkxpbmt7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybChwcmV2LmdpZikgbm8tcmVwZWF0OyB9LyogSU1BR0U6IHByZXYgKi8KI21iTmV4dExpbmt7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybChuZXh0LmdpZikgbm8tcmVwZWF0OyB9LyogSU1BR0U6IG5leHQgKi8KCiNtYlBsYXlQYXVzZXsgd2lkdGg6MTNweDsgfQojbWJQbGF5UGF1c2V7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybChwbGF5LXBhdXNlLmdpZikgbm8tcmVwZWF0OyB9LyogSU1BR0U6IHByZXYgKi8KCgovKiBOT1RFOiBkb2Vzbid0IHdvcmsgaW4gaWU2LCBzbywganVzdCBzZWUgdGhlIGpzIG9wdGlvbnMgOikgKi8KYSNtYlByZXZMaW5rOmhvdmVyLGEjbWJOZXh0TGluazpob3ZlcixhI21iQ2xvc2VMaW5rOmhvdmVyLGEjbWJQbGF5UGF1c2U6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0yMnB4OyB9CgojbWJDbG9zZUxpbmsgewoJd2lkdGg6MTdweDsKCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybChjbG9zZS5naWYpIG5vLXJlcGVhdDsvKiBJTUFHRTogY2xvc2UgKi8KfQoKLyogZGVzY3JpcHRpb24gKi8KCiNtYkRlc2NyaXB0aW9uewoJbWFyZ2luLXJpZ2h0OjI3cHg7CglwYWRkaW5nOjBweCAxMHB4IDAgMDsKCWZvbnQtd2VpZ2h0OiBub3JtYWw7Cgl0ZXh0LWFsaWduOmp1c3RpZnk7Cn0KCg==]]></data>
	</file>
	<file>
	  <filename>/templates/milkbox/css/milkbox/next.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhDwAoALMAANTU1L2+vri4uJOTk/j4+HJzc6KiovT09I2NjVFSUv///wAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAPACgAAARoUEk1ypkYj5RsxgHHeZ+0iWR5jldJiV2rwum3xu5dT7qs0T4ecIYKSkJF1wunpOya0Kh0Sq1+BAYCVIBAZJWAbvfr4orJJfNYWxZ72Wk3+iqHZ9Tv+Nk+wc/7dXprJWF7SmZ/V4lWVBEAOw==]]></data>
	</file>
	<file>
	  <filename>/templates/milkbox/css/milkbox/play-pause.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhDQBTALMAAFJSUrm2toyHhtXS0rm0s1JRUZiWll9dXV5cXFNSUlFRUY6Njf///wAAAAAAAAAAACH5BAAAAAAALAAAAAANAFMAAAS0kDFEpL0ygYpv+lzHJAqwiQzwmaFXkIrSZupXzmieK5oJYiqTooAL8nCMAi+BHP1QsabkINVZr9isFmMYWBcLbw4cHpPFHTIYfVGv0+7yNhuXW+JsiTuvP6P8f3YiXXOFhodaAlcKijoxjVCPOzGMkZSQF5SXHZqbmZ2Vn5qYEp2kpZ6ckpGnma0Xr4iys1sBVwu2OmC5gbhmu73AcGq8d3HFDHXIx8PCGMS9yG2+Y9IY1lsRADs=]]></data>
	</file>
	<file>
	  <filename>/templates/milkbox/css/milkbox/prev.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhDwAoALMAAFxdXerq6pSUlN7e3vj4+PT09KKionJzc6qqqn19fdTU1L2+vo2NjVFSUv///wAAACH5BAAAAAAALAAAAAAPACgAAARr0Mkp1yk019aungvHJZ8TisDwnVy6io2rsbE6w/KN2u9emjieriXM0HLDBul38vxMzqd0Sq1arz+FgSBVMBjb7PeLKHnHgsDn/E2vxwy3hh1Xz+HyO9r+3ov9Znh8em2DGXRlf2FPWlxYVxEAOw==]]></data>
	</file>
	<file>
	  <filename>/templates/milkbox/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIiAvPgo8dGl0bGU+TWlsa2JveCAtIExpZ2h0Ym94IGZvciBNb290b29scyAxLjI8L3RpdGxlPgoKICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCQlAaW1wb3J0IHVybChjc3MvZGVmYXVsdC5jc3MpOwoJCUBpbXBvcnQgdXJsKGNzcy9tYWluLmNzcyk7CgkJQGltcG9ydCB1cmwoY3NzL21pbGtib3gvbWlsa2JveC5jc3MpOy8qIE1pbGtib3ggY3NzICovCgk8L3N0eWxlPgoJCiAJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbW9vdG9vbHMtMS4yLjMtY29yZS15Yy5qcyI+PC9zY3JpcHQ+CiAJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbW9vdG9vbHMtMS4yLjMuMS1hc3NldHMuanMiPjwvc2NyaXB0PiAKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21pbGtib3guanMiPjwvc2NyaXB0PgoJPCEtLQoJCUNvbXByZXNzZWQgdmVyc2lvbjoKCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9taWxrYm94LXljLmpzIj48L3NjcmlwdD4gCgktLT4KCQo8L2hlYWQ+Cgo8Ym9keT4KCTxkaXYgaWQ9ImJveCI+CQoJCTx0YWJsZSBpZD0iZ2FsbGVyeSIgY2VsbHNwYWNpbmc9IjAiIHN0eWxlPSJtYXJnaW4tdG9wOjIwcHg7ICI+CgkJCTx0cj4KCQkJCTx0ZD48YSBocmVmPSJpbWcvMDFiLmpwZyIgcmVsPSJtaWxrYm94W2dhbGwxXSIgdGl0bGU9IkxvcmVtIGlwc3VtLi4uIj48aW1nIHNyYz0iaW1nLzAxLmpwZyIgYWx0PSIiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiAvPjwvYT48L3RkPgoJCQkJPHRkPjxhIGhyZWY9ImltZy8wMmIuanBnIiByZWw9Im1pbGtib3hbZ2FsbDFdIiA+PGltZyBzcmM9ImltZy8wMi5qcGciIGFsdD0iIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgLz48L2E+PC90ZD4KCQkJCTx0ZD48YSBocmVmPSJpbWcvMDNiLmpwZyIgcmVsPSJtaWxrYm94W2dhbGwxXSIgPjxpbWcgc3JjPSJpbWcvMDMuanBnIiBhbHQ9IiIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIC8+PC9hPjwvdGQ+CgkJCQk8dGQgc3R5bGU9IndpZHRoOjEwMHB4Ij48YSBocmVmPSJpbWcvbG9nby5zd2YiIHJldj0id2lkdGg6NjAwLCBoZWlnaHQ6MjAwIiAgcmVsPSJtaWxrYm94W2dhbGwxXSIgIHRpdGxlPSJTd2YgZmlsZTogdGhpcyBvbmUgbmVlZHMgZmxhc2ggcGxheWVyIDEwLiI+PGltZyBzcmM9ImltZy9sb2dvLmpwZyIgYWx0PSIiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiAvPjwvYT48L3RkPgoJCQk8L3RyPgoJCTwvdGFibGU+CgkJPGJyIC8+CgkJRm9yIHNwZWNzLCBzZWUgdGhlIDxhIGhyZWY9Imh0dHA6Ly9yZWdoZWxsaW4uY29tL21pbGtib3gvIiB0YXJnZXQ9Il9ibGFuayI+TWlsa2JveCBzaXRlPC9hPi4KCTwvZGl2PgoKPC9ib2R5Pgo8L2h0bWw+CiAgCg==]]></data>
	</file>
	<file>
	  <filename>/templates/milkbox/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/milkbox/js/milkbox-yc.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[dmFyIE1pbGtib3g9bmV3IENsYXNzKHtJbXBsZW1lbnRzOltPcHRpb25zLEV2ZW50c10sb3B0aW9uczp7b3ZlcmxheU9wYWNpdHk6MC43LHRvcFBvc2l0aW9uOjUwLGluaXRpYWxXaWR0aDoyNTAsaW5pdGlhbEhlaWdodDoyNTAsY2FudmFzQm9yZGVyV2lkdGg6IjBweCIsY2FudmFzQm9yZGVyQ29sb3I6IiMwMDAwMDAiLGNhbnZhc1BhZGRpbmc6IjBweCIscmVzaXplRHVyYXRpb246NTAwLHJlc2l6ZVRyYW5zaXRpb246InNpbmU6aW46b3V0IixhdXRvUGxheTpmYWxzZSxhdXRvUGxheURlbGF5OjcscmVtb3ZlVGl0bGU6ZmFsc2UsYXV0b1NpemU6dHJ1ZSxtYXhIZWlnaHQ6MCxpbWFnZU9mVGV4dDoib2YiLG9uWG1sR2FsbGVyaWVzOiRlbXB0eSxvbkNsb3NlZDokZW1wdHksb25GaWxlUmVhZHk6JGVtcHR5fSxpbml0aWFsaXplOmZ1bmN0aW9uKG9wdGlvbnMpe3RoaXMuc2V0T3B0aW9ucyhvcHRpb25zKTt0aGlzLmF1dG9QbGF5Qmt1cD17YXV0b1BsYXlEZWxheTp0aGlzLm9wdGlvbnMuYXV0b1BsYXlEZWxheSxhdXRvUGxheTp0aGlzLm9wdGlvbnMuYXV0b1BsYXl9O3RoaXMuZnVsbE9wdGlvbnNCa3VwPXt9O3RoaXMuZ2FsbGVyaWVzPVtdO3RoaXMuZmFtaWxpZXM9W107dGhpcy54bWxGaWxlcz1bXTt0aGlzLmxvYWRlZEltYWdlcz1bXTt0aGlzLmN1cnJlbnRGaWxlPW51bGw7dGhpcy5jdXJyZW50SW5kZXg9bnVsbDt0aGlzLmN1cnJlbnRHYWxsZXJ5PW51bGw7dGhpcy5jdXJyZW50UmVxdWVzdD1udWxsO3RoaXMuY3VycmVudFJlc3BvbnNlPW51bGw7dGhpcy5tb2RlPW51bGw7dGhpcy5jbG9zZWQ9dHJ1ZTt0aGlzLmJ1c3k9dHJ1ZTt0aGlzLnBhdXNlZD10cnVlO3RoaXMuZmlsZVJlYWR5PWZhbHNlO3RoaXMuZXZlbnRzb2s9ZmFsc2U7dGhpcy5maXJzdD10cnVlO3RoaXMuYWN0aXZhdGVkPWZhbHNlO3RoaXMuaW50T2JqPW51bGw7dGhpcy5mb3JtdGFncz1udWxsO3RoaXMucHJlcGFyZUdhbGxlcmllcygpO2lmKHRoaXMub3B0aW9ucy5vdmVybGF5T3BhY2l0eT09MCl7dGhpcy5vcHRpb25zLm92ZXJsYXlPcGFjaXR5PTAuMDAwMTt9dGhpcy5zYXZlT3B0aW9ucygpO2lmKHRoaXMuZ2FsbGVyaWVzLmxlbmd0aD09MCl7cmV0dXJuO310aGlzLmluaXRNaWxrYm94KHRydWUpO30saW5pdE1pbGtib3g6ZnVuY3Rpb24oY2hlY2tUYWdzKXtpZihjaGVja1RhZ3Mpe3RoaXMuZm9ybXRhZ3M9JCQoInNlbGVjdCIsInRleHRhcmVhIik7fXRoaXMucHJlcGFyZUhUTUwoKTt0aGlzLnByZXBhcmVFZmZlY3RzKCk7dGhpcy5wcmVwYXJlRXZlbnRzKCk7dGhpcy5hY3RpdmF0ZWQ9dHJ1ZTt9LG9wZW5NaWxrYm94OmZ1bmN0aW9uKGdhbGxlcnksaW5kZXgpe3RoaXMuY2xvc2VkPWZhbHNlO2lmKHRoaXMuZm9ybXRhZ3MmJnRoaXMuZm9ybXRhZ3MubGVuZ3RoIT0wKXt0aGlzLmZvcm10YWdzLnNldFN0eWxlKCJkaXNwbGF5Iiwibm9uZSIpO310aGlzLm92ZXJsYXkuc2V0U3R5bGVzKHt0b3A6LSQod2luZG93KS5nZXRTY3JvbGwoKS55LGhlaWdodDokKHdpbmRvdykuZ2V0U2Nyb2xsU2l6ZSgpLnkrJCh3aW5kb3cpLmdldFNjcm9sbCgpLnl9KTt0aGlzLmNlbnRlci5zZXRTdHlsZSgidG9wIiwkKHdpbmRvdykuZ2V0U2Nyb2xsKCkueSt0aGlzLm9wdGlvbnMudG9wUG9zaXRpb24pO3RoaXMuY3VycmVudEdhbGxlcnk9Z2FsbGVyeTt0aGlzLmN1cnJlbnRJbmRleD1pbmRleDt0aGlzLm92ZXJsYXkudHdlZW4oIm9wYWNpdHkiLHRoaXMub3B0aW9ucy5vdmVybGF5T3BhY2l0eSk7aWYoZ2FsbGVyeS5sZW5ndGg9PTEpe3RoaXMubW9kZT0ic2luZ2xlRmlsZSI7dGhpcy5sb2FkRmlsZShnYWxsZXJ5W2luZGV4XSxpbmRleCk7fWVsc2V7dGhpcy5tb2RlPSJmaWxlR2FsbGVyeSI7dmFyIHBsYXlwYXVzZVdpZHRoPTA7JCQodGhpcy5wcmV2LHRoaXMubmV4dCx0aGlzLmNvdW50KS5zZXRTdHlsZSgiZGlzcGxheSIsImJsb2NrIik7aWYodGhpcy5vcHRpb25zLmF1dG9QbGF5KXt0aGlzLnBsYXlwYXVzZS5zZXRTdHlsZSgiZGlzcGxheSIsImJsb2NrIik7cGxheXBhdXNlV2lkdGg9dGhpcy5wbGF5cGF1c2UuZ2V0U2l6ZSgpLng7fXZhciBib3JkZXI9dGhpcy5jZW50ZXIuZ2V0U3R5bGUoImJvcmRlci1yaWdodC13aWR0aCIpLnRvSW50KCk7dmFyIG5hdldpZHRoPXRoaXMucHJldi5nZXRTaXplKCkueCt0aGlzLm5leHQuZ2V0U2l6ZSgpLngrdGhpcy5jbG9zZS5nZXRTaXplKCkueCtwbGF5cGF1c2VXaWR0aCtib3JkZXI7dGhpcy5uYXZpZ2F0aW9uLnNldFN0eWxlKCJ3aWR0aCIsbmF2V2lkdGgpO3RoaXMuZGVzY3JpcHRpb24uc2V0U3R5bGUoIm1hcmdpbi1yaWdodCIsbmF2V2lkdGgpO3ZhciBuZXh0PShpbmRleCE9Z2FsbGVyeS5sZW5ndGgtMSk/Z2FsbGVyeVtpbmRleCsxXTpnYWxsZXJ5WzBdO3ZhciBwcmV2PShpbmRleCE9MCk/Z2FsbGVyeVtpbmRleC0xXTpnYWxsZXJ5W2dhbGxlcnkubGVuZ3RoLTFdO3ZhciBwcmVsb2Fkcz0ocHJldj09bmV4dCk/W3ByZXZdOltwcmV2LG5leHRdO3RoaXMubG9hZEZpbGUoZ2FsbGVyeVtpbmRleF0scHJlbG9hZHMpO319LGxvYWRGaWxlOmZ1bmN0aW9uKGZpbGVPYmoscHJlbG9hZHMpe3RoaXMuZmlsZVJlYWR5PWZhbHNlO3ZhciBzd2Y9dGhpcy5jaGVja0ZpbGVUeXBlKGZpbGVPYmosInN3ZiIpO2lmKCFzd2Ype2lmKCF0aGlzLmxvYWRlZEltYWdlcy5jb250YWlucyhmaWxlT2JqLnJldHJpZXZlKCJocmVmIikpKXt0aGlzLmNlbnRlci5hZGRDbGFzcygibWJMb2FkaW5nIik7fXRoaXMubG9hZEltYWdlKGZpbGVPYmoucmV0cmlldmUoImhyZWYiKSk7fWVsc2V7dGhpcy5sb2FkU3dmKGZpbGVPYmopO31pZihwcmVsb2Fkcyl7dGhpcy5wcmVsb2FkRmlsZXMocHJlbG9hZHMpO319LHByZWxvYWRGaWxlczpmdW5jdGlvbihwcmVsb2Fkcyl7cHJlbG9hZHMuZWFjaChmdW5jdGlvbihmaWxlT2JqLGluZGV4KXt2YXIgc3dmPXRoaXMuY2hlY2tGaWxlVHlwZShmaWxlT2JqLnJldHJpZXZlKCJocmVmIiksInN3ZiIpO2lmKCFzd2Ype3RoaXMucHJlbG9hZEltYWdlKGZpbGVPYmoucmV0cmlldmUoImhyZWYiKSk7fX0sdGhpcyk7fSxsb2FkSW1hZ2U6ZnVuY3Rpb24oZmlsZSl7dmFyIGltYWdlQXNzZXQ9bmV3IEFzc2V0LmltYWdlKGZpbGUse29ubG9hZDpmdW5jdGlvbihpbWcpe2lmKCF0aGlzLmxvYWRlZEltYWdlcy5jb250YWlucyhmaWxlKSl7dGhpcy5sb2FkZWRJbWFnZXMucHVzaChmaWxlKTt9dGhpcy5jdXJyZW50RmlsZT1pbWc7dGhpcy5sb2FkQXV4KHRoaXMuY3VycmVudEZpbGUpO30uYmluZFdpdGhFdmVudCh0aGlzKX0pO30scHJlbG9hZEltYWdlOmZ1bmN0aW9uKGZpbGUpe2lmKCF0aGlzLmxvYWRlZEltYWdlcy5jb250YWlucyhmaWxlKSl7dmFyIGltYWdlQXNzZXQ9bmV3IEFzc2V0LmltYWdlKGZpbGUse29ubG9hZDpmdW5jdGlvbihpbWcpe3RoaXMubG9hZGVkSW1hZ2VzLnB1c2goZmlsZSk7fS5iaW5kV2l0aEV2ZW50KHRoaXMpfSk7fX0sbG9hZFN3ZjpmdW5jdGlvbihzd2Ype3ZhciBzd2ZPYmo9bmV3IFN3aWZmKHN3Zi5yZXRyaWV2ZSgiaHJlZiIpLHt3aWR0aDpzd2YucmV0cmlldmUoIndpZHRoIikudG9JbnQoKSxoZWlnaHQ6c3dmLnJldHJpZXZlKCJoZWlnaHQiKS50b0ludCgpLHBhcmFtczp7d01vZGU6Im9wYXF1ZSIsc3dMaXZlQ29ubmVjdDoiZmFsc2UifX0pO3RoaXMuY3VycmVudEZpbGU9c3dmT2JqO3RoaXMubG9hZEF1eChzd2YpO30sbG9hZEF1eDpmdW5jdGlvbihmaWxlKXt0aGlzLmZpbGVSZWFkeT10cnVlO3RoaXMuZmlyZUV2ZW50KCJmaWxlUmVhZHkiKTskJCh0aGlzLmRlc2NyaXB0aW9uLHRoaXMubmF2aWdhdGlvbikuc2V0U3R5bGUoInZpc2liaWxpdHkiLCJoaWRkZW4iKTt0aGlzLm5hdmlnYXRpb24uc2V0U3R5bGUoImhlaWdodCIsIiIpOyQkKHRoaXMubmV4dCx0aGlzLnByZXYsdGhpcy5jbG9zZSkuc2V0U3R5bGUoImJhY2tncm91bmRQb3NpdGlvbiIsIjAgMCIpO3RoaXMuc2hvd0ZpbGUoZmlsZSk7fSxzaG93RmlsZTpmdW5jdGlvbihmaWxlKXtpZih0aGlzLmNsb3NlZCl7cmV0dXJuO312YXIgZmlsZVNpemU9bmV3IEhhc2goKTt2YXIgY2VudGVyU2l6ZT1uZXcgSGFzaCgpO3ZhciB0YXJnZXRTaXplLGNhbnZhc1NpemU7dmFyIGNhbnZhc0FkZFNpemUsZ2FwLGIscCxkO3RhcmdldFNpemU9Y2FudmFzU2l6ZT17fTtjYW52YXNBZGRTaXplPWdhcD1iPXA9ZD0wO2lmKHRoaXMub3B0aW9ucy5jYW52YXNCb3JkZXJXaWR0aC50b0ludCgpIT0wJiZ0aGlzLmNhbnZhcy5nZXRTdHlsZSgiYm9yZGVyV2lkdGgiKS50b0ludCgpPT0wKXtiPXRoaXMub3B0aW9ucy5jYW52YXNCb3JkZXJXaWR0aCsiIHNvbGlkICIrdGhpcy5vcHRpb25zLmNhbnZhc0JvcmRlckNvbG9yO3RoaXMuY2FudmFzLnNldFN0eWxlKCJib3JkZXIiLGIpO31pZih0aGlzLm9wdGlvbnMuY2FudmFzUGFkZGluZy50b0ludCgpIT0wJiZ0aGlzLmNhbnZhcy5nZXRTdHlsZSgicGFkZGluZyIpLnRvSW50KCk9PTApe3A9dGhpcy5vcHRpb25zLmNhbnZhc1BhZGRpbmc7dGhpcy5jYW52YXMuc2V0U3R5bGUoInBhZGRpbmciLHApO31jYW52YXNTaXplPXRoaXMuY2FudmFzLmdldFNpemUoKTtjYW52YXNBZGRTaXplPXRoaXMuY2FudmFzLmdldFN0eWxlKCJib3JkZXJXaWR0aCIpLnRvSW50KCkqMit0aGlzLmNhbnZhcy5nZXRTdHlsZSgicGFkZGluZyIpLnRvSW50KCkqMjt0aGlzLmNhbnZhcy5zZXRTdHlsZXMoe29wYWNpdHk6MCx3aWR0aDoiIixoZWlnaHQ6IiJ9KTtpZighZmlsZS5yZXRyaWV2ZSgid2lkdGgiKSl7ZmlsZVNpemU9ZmlsZVNpemUuZXh0ZW5kKGZpbGUuZ2V0UHJvcGVydGllcygid2lkdGgiLCJoZWlnaHQiKSkubWFwKGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBpdGVtLnRvSW50KCk7fSk7aWYodGhpcy5vcHRpb25zLmF1dG9TaXplKXtmaWxlU2l6ZT10aGlzLmNvbXB1dGVTaXplKGZpbGVTaXplKTtmaWxlLnNldFByb3BlcnRpZXMoe3dpZHRoOmZpbGVTaXplLndpZHRoLGhlaWdodDpmaWxlU2l6ZS5oZWlnaHR9KTt9fWVsc2V7ZmlsZVNpemUuZXh0ZW5kKHtoZWlnaHQ6ZmlsZS5yZXRyaWV2ZSgiaGVpZ2h0IikudG9JbnQoKSx3aWR0aDpmaWxlLnJldHJpZXZlKCJ3aWR0aCIpLnRvSW50KCl9KTt9Y2VudGVyU2l6ZT1jZW50ZXJTaXplLmV4dGVuZCh0aGlzLmNlbnRlci5nZXRTdHlsZXMoIndpZHRoIiwiaGVpZ2h0IikpLm1hcChmdW5jdGlvbihpdGVtKXtyZXR1cm4gaXRlbS50b0ludCgpO30pO2lmKGZpbGVTaXplLndpZHRoIT1jZW50ZXJTaXplLndpZHRoKXt0YXJnZXRTaXplLndpZHRoPWZpbGVTaXplLndpZHRoK2NhbnZhc0FkZFNpemU7dGFyZ2V0U2l6ZS5tYXJnaW5MZWZ0PS0odGFyZ2V0U2l6ZS53aWR0aC8yKS5yb3VuZCgpO31nYXA9KGNhbnZhc1NpemUueS1jYW52YXNBZGRTaXplPjApP2NlbnRlclNpemUuaGVpZ2h0LWNhbnZhc1NpemUueTowO3RhcmdldFNpemUuaGVpZ2h0PWZpbGVTaXplLmhlaWdodCtjYW52YXNBZGRTaXplK2dhcDt0aGlzLmNhbnZhcy5zZXRTdHlsZXMoe3dpZHRoOmZpbGVTaXplLndpZHRoLGhlaWdodDpmaWxlU2l6ZS5oZWlnaHR9KTt0aGlzLmNlbnRlci5yZW1vdmVDbGFzcygibWJMb2FkaW5nIik7aWYodGhpcy5maXJzdCl7ZD01MDA7dGhpcy5maXJzdD1mYWxzZTt9KGZ1bmN0aW9uKCl7dGhpcy5jZW50ZXIubW9ycGgodGFyZ2V0U2l6ZSk7fSkuZGVsYXkoZCx0aGlzKTt9LGNvbXB1dGVTaXplOmZ1bmN0aW9uKG9TaXplKXt2YXIgc2l6ZT1vU2l6ZTt2YXIgd1NpemU9d2luZG93LmdldFNpemUoKTt2YXIgYmFzZVNpemU9e3dpZHRoOndTaXplLngtNjAsaGVpZ2h0OndTaXplLnktNjgtdGhpcy5vcHRpb25zLnRvcFBvc2l0aW9uKjJ9O3ZhciByYXRpbzt2YXIgY2hlY2s7dmFyIG1heD1NYXRoLm1heChiYXNlU2l6ZS5oZWlnaHQsYmFzZVNpemUud2lkdGgpO2lmKG1heD09YmFzZVNpemUud2lkdGgpe3JhdGlvPW1heC9zaXplLndpZHRoO2NoZWNrPSJoZWlnaHQiO31lbHNle3JhdGlvPW1heC9zaXplLmhlaWdodDtjaGVjaz0id2lkdGgiO31yYXRpbz0ocmF0aW88PTEpP3JhdGlvOjE7c2l6ZT1zaXplLm1hcChmdW5jdGlvbihpdGVtKXtyZXR1cm4gTWF0aC5mbG9vcihpdGVtKnJhdGlvKTt9KTtyYXRpbz0oYmFzZVNpemVbY2hlY2tdL3NpemVbY2hlY2tdPD0xKT9iYXNlU2l6ZVtjaGVja10vc2l6ZVtjaGVja106MTtzaXplPXNpemUubWFwKGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBNYXRoLmZsb29yKGl0ZW0qcmF0aW8pO30pO2lmKHRoaXMub3B0aW9ucy5tYXhIZWlnaHQ+MCl7cmF0aW89KHRoaXMub3B0aW9ucy5tYXhIZWlnaHQvc2l6ZS5oZWlnaHQ8MSk/dGhpcy5vcHRpb25zLm1heEhlaWdodC9zaXplLmhlaWdodDoxO3NpemU9c2l6ZS5tYXAoZnVuY3Rpb24oaXRlbSl7cmV0dXJuIE1hdGguZmxvb3IoaXRlbSpyYXRpbyk7fSk7fXJldHVybiBzaXplO30sc2hvd0dhbGxlcnk6ZnVuY3Rpb24ob3B0KXtpZighb3B0fHwhb3B0LmdhbGxlcnkpe3JldHVybjt9dmFyIGZpbGVJbmRleD0oJGNoayhvcHQuaW5kZXgpKT9vcHQuaW5kZXg6MDt2YXIgZz10aGlzLmdldEdhbGxlcnkob3B0LmdhbGxlcnkpO3ZhciBhdXRvPWZhbHNlO3ZhciBkO2lmKG9wdC5hdXRvcGxheXx8KGcub3B0aW9ucyYmZy5vcHRpb25zLmF1dG9wbGF5KSl7YXV0bz10cnVlO31pZihnIT0tMSYmIXRoaXMub3BlbmVkKXtpZihhdXRvKXtkPShvcHQmJm9wdC5kZWxheSk/b3B0LmRlbGF5OihnLm9wdGlvbnMmJmcub3B0aW9ucy5kZWxheSk/Zy5vcHRpb25zLmRlbGF5OnRoaXMuYXV0b1BsYXlEZWxheTt0aGlzLnN0YXJ0QXV0b1BsYXkoe2dhbGxlcnk6ZyxpbmRleDpmaWxlSW5kZXgsZGVsYXk6ZH0pO31lbHNle3RoaXMub3Blbk1pbGtib3goZyxmaWxlSW5kZXgpO319fSxhZGRHYWxsZXJpZXM6ZnVuY3Rpb24oeG1sZmlsZSl7dGhpcy5jdXJyZW50UmVxdWVzdD1uZXcgUmVxdWVzdCh7bWV0aG9kOiJnZXQiLGF1dG9DYW5jZWw6dHJ1ZSx1cmw6eG1sZmlsZSxvblJlcXVlc3Q6ZnVuY3Rpb24oKXt9LmJpbmRXaXRoRXZlbnQodGhpcyksb25TdWNjZXNzOmZ1bmN0aW9uKHRleHQseG1sKXt2YXIgdD10ZXh0LnJlcGxhY2UoLyg8YS4rKVwvPi9naSwiJDE+PC9hPiIpO3RoaXMuc2V0R2FsbGVyaWVzKG5ldyBFbGVtZW50KCJkaXYiLHtodG1sOnR9KSx4bWxmaWxlKTt9LmJpbmRXaXRoRXZlbnQodGhpcyksb25GYWlsdXJlOmZ1bmN0aW9uKHRyYW5zcG9ydCl7YWxlcnQoIk1pbGtib3ggOjogYWRkR2FsbGVyaWVzOiBYTUwgZmlsZSBwYXRoIGVycm9yIG9yIGxvY2FsIEFqYXggdGVzdDogcGxlYXNlIHRlc3QgYWRkR2FsbGVyaWVzKCkgb24tbGluZSIpO319KTt0aGlzLmN1cnJlbnRSZXF1ZXN0LnNlbmQoKTt9LHNldEdhbGxlcmllczpmdW5jdGlvbihjb250YWluZXIseG1sZmlsZSl7aWYoIXRoaXMueG1sRmlsZXMuY29udGFpbnMoeG1sZmlsZSkpe3RoaXMueG1sRmlsZXMucHVzaCh4bWxmaWxlKTt9dmFyIGM9Y29udGFpbmVyO3ZhciBnYWxsZXJpZXM9Yy5nZXRFbGVtZW50cygiLmdhbGxlcnkiKTt2YXIgbGlua3M9W107dmFyIGFwbGlzdD1bXTtnYWxsZXJpZXMuZWFjaChmdW5jdGlvbihnYWxsZXJ5LGkpe3ZhciBvYmo9e2dhbGxlcnk6Z2FsbGVyeS5nZXRQcm9wZXJ0eSgibmFtZSIpLGF1dG9wbGF5OkJvb2xlYW4oZ2FsbGVyeS5nZXRQcm9wZXJ0eSgiYXV0b3BsYXkiKSksZGVsYXk6TnVtYmVyKGdhbGxlcnkuZ2V0UHJvcGVydHkoImRlbGF5IikpfTt2YXIgbD1nYWxsZXJ5LmdldENoaWxkcmVuKCJhIik7dmFyIGx4PWwubWFwKGZ1bmN0aW9uKGxpbmspe3JldHVybiBsaW5rLnNldFByb3BlcnR5KCJyZWwiLCJtaWxrYm94WyIrb2JqLmdhbGxlcnkrIl0iKTt9KTtsaW5rcy5wdXNoKGx4KTtpZihvYmouYXV0b3BsYXkpe2FwbGlzdC5wdXNoKG9iaik7fX0pO3RoaXMucHJlcGFyZUdhbGxlcmllcyhsaW5rcy5mbGF0dGVuKCkpO3RoaXMuc2V0QXV0b1BsYXkoYXBsaXN0KTtpZighdGhpcy5hY3RpdmF0ZWQpe3RoaXMuaW5pdE1pbGtib3goKTt9dGhpcy5maXJlRXZlbnQoInhtbEdhbGxlcmllcyIpO30sY2hlY2tGaWxlVHlwZTpmdW5jdGlvbihmaWxlLHR5cGUpe3ZhciBocmVmPW51bGw7aWYoJHR5cGUoZmlsZSkhPSJzdHJpbmciKXtocmVmPWZpbGUucmV0cmlldmUoImhyZWYiKTt9ZWxzZXtocmVmPWZpbGU7fXZhciByZWdleHA9bmV3IFJlZ0V4cCgiLigiK3R5cGUrIikkIiwiaSIpO3JldHVybiBocmVmLnNwbGl0KCI/IilbMF0udGVzdChyZWdleHApO30sZ2V0R2FsbGVyeTpmdW5jdGlvbihnYWxsZXJ5KXt2YXIgZj1udWxsO2lmKGdhbGxlcnkudGVzdCgvXm1pbGtib3gvaSkpe2Y9dGhpcy5mYW1pbGllczt9ZWxzZXtmPXRoaXMuZmFtaWxpZXMubWFwKGZ1bmN0aW9uKGl0ZW0pe3ZhciB0cmltbWVkPWl0ZW0udHJpbSgpO3ZhciBuYW1lPXRyaW1tZWQuc2xpY2UoMCx0cmltbWVkLmxlbmd0aCkuc3Vic3RyKDgpO3ZhciBjbGVhbk5hbWU9bmFtZS5yZXBsYWNlKC8oLispXSQvLCIkMSIpO3JldHVybiBjbGVhbk5hbWU7fSk7fXZhciBpPWYuaW5kZXhPZihnYWxsZXJ5KTt2YXIgZz0oaSE9LTEpP3RoaXMuZ2FsbGVyaWVzW2ldOmk7cmV0dXJuIGc7fSxzZXRGaWxlUHJvcHM6ZnVuY3Rpb24oZmlsZU9iaixwcm9wU3RyaW5nKXt2YXIgcz1wcm9wU3RyaW5nLnNwbGl0KCIsIik7cy5lYWNoKGZ1bmN0aW9uKHAsaSl7dmFyIGNsZWFuPXAudHJpbSgpLnNwbGl0KCI6Iik7ZmlsZU9iai5zdG9yZShjbGVhblswXS50cmltKCksY2xlYW5bMV0udHJpbSgpKTt9LHRoaXMpO30sY2hhbmdlT3B0aW9uczpmdW5jdGlvbihvYmope2lmKCFvYmope3JldHVybjt9dGhpcy5zZXRPcHRpb25zKG9iaik7dGhpcy5jZW50ZXIuZ2V0KCJtb3JwaCIpLnNldE9wdGlvbnMoe3RyYW5zaXRpb246dGhpcy5vcHRpb25zLnJlc2l6ZVRyYW5zaXRpb24sZHVyYXRpb246dGhpcy5vcHRpb25zLnJlc2l6ZUR1cmF0aW9ufSk7fSxzYXZlT3B0aW9uczpmdW5jdGlvbihvYmope2lmKCRjaGsob2JqKSl7dGhpcy5mdWxsT3B0aW9uc0JrdXA9b2JqO31lbHNle3RoaXMuZnVsbE9wdGlvbnNCa3VwPXRoaXMub3B0aW9uczt9fSxyZXN0b3JlT3B0aW9uczpmdW5jdGlvbigpe3RoaXMuc2V0T3B0aW9ucyh0aGlzLmZ1bGxPcHRpb25zQmt1cCk7dmFyIGI9dGhpcy5vcHRpb25zLmNhbnZhc0JvcmRlcldpZHRoKyIgc29saWQgIit0aGlzLm9wdGlvbnMuY2FudmFzQm9yZGVyQ29sb3I7dGhpcy5jYW52YXMuc2V0U3R5bGVzKHtib3JkZXI6YixwYWRkaW5nOnRoaXMub3B0aW9ucy5jYW52YXNQYWRkaW5nfSk7dGhpcy5jZW50ZXIuZ2V0KCJtb3JwaCIpLnNldE9wdGlvbnMoe3RyYW5zaXRpb246dGhpcy5vcHRpb25zLnJlc2l6ZVRyYW5zaXRpb24sZHVyYXRpb246dGhpcy5vcHRpb25zLnJlc2l6ZUR1cmF0aW9ufSk7fSxyZWxvYWRHYWxsZXJpZXM6ZnVuY3Rpb24oKXt0aGlzLmdhbGxlcmllcz1bXTt0aGlzLmZhbWlsaWVzPVtdO3RoaXMuZm9ybXRhZ3M9JCQoInNlbGVjdCIsInRleHRhcmVhIik7aWYoIXRoaXMuYWN0aXZhdGVkKXt0aGlzLmluaXRNaWxrYm94KGZhbHNlKTt9dGhpcy5wcmVwYXJlR2FsbGVyaWVzKCk7dGhpcy5yZW1vdmVHYWxsZXJpZXNFdmVudHMoKTt0aGlzLnNldEdhbGxlcmllc0V2ZW50cygpO2lmKHRoaXMueG1sRmlsZXMubGVuZ3RoPT0wKXtyZXR1cm47fXRoaXMueG1sRmlsZXMuZWFjaChmdW5jdGlvbih4bWxmaWxlLGluZGV4KXt0aGlzLmFkZEdhbGxlcmllcyh4bWxmaWxlKTt9LmJpbmQodGhpcykpO30sc2V0QXV0b1BsYXk6ZnVuY3Rpb24obGlzdCl7dmFyIGw9KCR0eXBlKGxpc3QpPT0ib2JqZWN0Iik/W2xpc3RdOmxpc3Q7bC5lYWNoKGZ1bmN0aW9uKGl0ZW0pe3ZhciBnPXRoaXMuZ2V0R2FsbGVyeShpdGVtLmdhbGxlcnkpO2lmKGc9PS0xKXtyZXR1cm47fXZhciBhPShpdGVtLmF1dG9wbGF5PT10cnVlKT9pdGVtLmF1dG9wbGF5OmZhbHNlO3ZhciBkPSgkY2hrKGl0ZW0uZGVsYXkpJiZhKT9pdGVtLmRlbGF5OnRoaXMub3B0aW9ucy5hdXRvUGxheURlbGF5O2cub3B0aW9ucz17YXV0b3BsYXk6YSxkZWxheTpkfTt9LHRoaXMpO30sc3RhcnRBdXRvUGxheTpmdW5jdGlvbihvcHQpe3ZhciBnPS0xO3ZhciBpLGQ7aWYob3B0JiZvcHQuZ2FsbGVyeSl7aWYoJHR5cGUob3B0LmdhbGxlcnkpPT0iYXJyYXkiKXtnPW9wdC5nYWxsZXJ5O31lbHNle2lmKCR0eXBlKG9wdC5nYWxsZXJ5KT09InN0cmluZyIpe2c9dGhpcy5nZXRHYWxsZXJ5KG9wdC5nYWxsZXJ5KTt9fX1pZihnPT0tMSl7Zz10aGlzLmdhbGxlcmllc1swXTt9ZD0ob3B0JiZvcHQuZGVsYXkmJigkdHlwZShvcHQuZGVsYXkpPT0ibnVtYmVyIikpP29wdC5kZWxheSoxMDAwOihnLm9wdGlvbnMmJmcub3B0aW9ucy5kZWxheSk/Zy5vcHRpb25zLmRlbGF5KjEwMDA6dGhpcy5vcHRpb25zLmF1dG9QbGF5RGVsYXkqMTAwMDtpPShvcHQmJm9wdC5pbmRleCYmKCR0eXBlKG9wdC5pbmRleCk9PSJudW1iZXIiKSk/b3B0LmluZGV4OjA7aWYoZDx0aGlzLm9wdGlvbnMucmVzaXplRHVyYXRpb24qMil7ZD10aGlzLm9wdGlvbnMucmVzaXplRHVyYXRpb24qMjt9dGhpcy5vcHRpb25zLmF1dG9QbGF5RGVsYXk9ZC8xMDAwO2lmKCF0aGlzLm9wdGlvbnMuYXV0b1BsYXkpe3RoaXMuc2V0T3B0aW9ucyh7YXV0b1BsYXk6dHJ1ZSxhdXRvUGxheURlbGF5OnRoaXMub3B0aW9ucy5hdXRvUGxheURlbGF5fSk7fWlmKHRoaXMuY2xvc2VkKXt0aGlzLm9wZW5NaWxrYm94KGcsaSk7aWYodGhpcy5tb2RlIT0iZmlsZUdhbGxlcnkiKXtyZXR1cm47fXRoaXMuYWRkRXZlbnQoImZpbGVSZWFkeSIsZnVuY3Rpb24oKXt0aGlzLmludE9iaj10aGlzLm5leHRfcHJldl9hdXgucGVyaW9kaWNhbChkLHRoaXMsW251bGwsIm5leHQiXSk7dGhpcy5yZW1vdmVFdmVudHMoImZpbGVSZWFkeSIpO30uYmluZFdpdGhFdmVudCh0aGlzKSk7fWVsc2V7aWYoIXRoaXMuY2xvc2VkKXt0aGlzLm5leHRfcHJldl9hdXgobnVsbCwibmV4dCIpO310aGlzLmludE9iaj10aGlzLm5leHRfcHJldl9hdXgucGVyaW9kaWNhbChkLHRoaXMsW251bGwsIm5leHQiXSk7fXRoaXMucGF1c2VkPWZhbHNlO30sc3RvcEF1dG9QbGF5OmZ1bmN0aW9uKCl7aWYodGhpcy5pbnRPYmopeyRjbGVhcih0aGlzLmludE9iaik7dGhpcy5pbnRPYmo9bnVsbDt9dGhpcy5wbGF5cGF1c2Uuc2V0U3R5bGUoImJhY2tncm91bmRQb3NpdGlvbiIsIjAgLTQ0cHgiKTt0aGlzLnBhdXNlZD10cnVlO30scmVtb3ZlR2FsbGVyaWVzRXZlbnRzOmZ1bmN0aW9uKCl7dGhpcy5nYWxsZXJpZXMuZWFjaChmdW5jdGlvbihnYWxsZXJ5KXskJChnYWxsZXJ5KS5yZW1vdmVFdmVudHMoImNsaWNrIik7fSx0aGlzKTt9LHNldEdhbGxlcmllc0V2ZW50czpmdW5jdGlvbigpe3RoaXMuZ2FsbGVyaWVzLmVhY2goZnVuY3Rpb24oZ2FsbGVyeSl7JCQoZ2FsbGVyeSkuYWRkRXZlbnQoImNsaWNrIixmdW5jdGlvbihlKXt2YXIgYnV0dG9uPSgkKGUudGFyZ2V0KS5tYXRjaCgiYSIpKT8kKGUudGFyZ2V0KTokKGUudGFyZ2V0KS5nZXRQYXJlbnQoImEiKTtlLnByZXZlbnREZWZhdWx0KCk7dmFyIGc9dGhpcy5nZXRHYWxsZXJ5KGJ1dHRvbi5yZWwpO2lmKGcub3B0aW9ucyYmZy5vcHRpb25zLmF1dG9wbGF5KXt0aGlzLnNldE9wdGlvbnMoe2F1dG9QbGF5Omcub3B0aW9ucy5hdXRvcGxheSxhdXRvUGxheURlbGF5Omcub3B0aW9ucy5kZWxheX0pO31pZih0aGlzLm9wdGlvbnMuYXV0b1BsYXkpe3RoaXMuc3RhcnRBdXRvUGxheSh7Z2FsbGVyeTpnYWxsZXJ5LGluZGV4OmdhbGxlcnkuaW5kZXhPZihidXR0b24pfSk7fWVsc2V7dGhpcy5vcGVuTWlsa2JveChnYWxsZXJ5LGdhbGxlcnkuaW5kZXhPZihidXR0b24pKTt9fS5iaW5kV2l0aEV2ZW50KHRoaXMpKTt9LHRoaXMpO30scHJlcGFyZUV2ZW50czpmdW5jdGlvbih4bWwpe3RoaXMuc2V0R2FsbGVyaWVzRXZlbnRzKCk7dGhpcy5uZXh0LmFkZEV2ZW50KCJjbGljayIsdGhpcy5uZXh0X3ByZXZfYXV4LmJpbmRXaXRoRXZlbnQodGhpcywibmV4dCIpKTt0aGlzLnByZXYuYWRkRXZlbnQoImNsaWNrIix0aGlzLm5leHRfcHJldl9hdXguYmluZFdpdGhFdmVudCh0aGlzLCJwcmV2IikpOyQkKHRoaXMubmV4dCx0aGlzLnByZXYsdGhpcy5jbG9zZSkuYWRkRXZlbnRzKHttb3VzZW92ZXI6ZnVuY3Rpb24oKXt0aGlzLnNldFN0eWxlKCJiYWNrZ3JvdW5kUG9zaXRpb24iLCIwIC0yMnB4Iik7fSxtb3VzZW91dDpmdW5jdGlvbigpe3RoaXMuc2V0U3R5bGUoImJhY2tncm91bmRQb3NpdGlvbiIsIjAgMCIpO319KTskKHdpbmRvdy5kb2N1bWVudCkuYWRkRXZlbnQoImtleWRvd24iLGZ1bmN0aW9uKGUpe2lmKHRoaXMubW9kZSE9ImZpbGVHYWxsZXJ5Inx8dGhpcy5idXN5PT10cnVlKXtyZXR1cm47fWlmKGUua2V5PT0icmlnaHQifHxlLmtleT09InNwYWNlIil7dGhpcy5uZXh0X3ByZXZfYXV4KGUsIm5leHQiKTt9ZWxzZXtpZihlLmtleT09ImxlZnQiKXt0aGlzLm5leHRfcHJldl9hdXgoZSwicHJldiIpO31lbHNle2lmKGUua2V5PT0iZXNjIil7dGhpcy5jbG9zZU1pbGtib3goKTt9fX19LmJpbmRXaXRoRXZlbnQodGhpcykpO3RoaXMucGxheXBhdXNlLmFkZEV2ZW50cyh7bW91c2VvdmVyOmZ1bmN0aW9uKGUpe2lmKHRoaXMucGF1c2VkPT1mYWxzZSl7dGhpcy5wbGF5cGF1c2Uuc2V0U3R5bGUoImJhY2tncm91bmRQb3NpdGlvbiIsIjAgLTIycHgiKTt9ZWxzZXt0aGlzLnBsYXlwYXVzZS5zZXRTdHlsZSgiYmFja2dyb3VuZFBvc2l0aW9uIiwiMCAtNjZweCIpO319LmJpbmRXaXRoRXZlbnQodGhpcyksbW91c2VvdXQ6ZnVuY3Rpb24oKXtpZih0aGlzLnBhdXNlZD09ZmFsc2Upe3RoaXMucGxheXBhdXNlLnNldFN0eWxlKCJiYWNrZ3JvdW5kUG9zaXRpb24iLCIwIDAiKTt9ZWxzZXt0aGlzLnBsYXlwYXVzZS5zZXRTdHlsZSgiYmFja2dyb3VuZFBvc2l0aW9uIiwiMCAtNDRweCIpO319LmJpbmRXaXRoRXZlbnQodGhpcyksY2xpY2s6ZnVuY3Rpb24oKXtpZih0aGlzLnBhdXNlZD09ZmFsc2Upe3RoaXMuc3RvcEF1dG9QbGF5KCk7dGhpcy5wYXVzZWQ9dHJ1ZTt0aGlzLnBsYXlwYXVzZS5zZXRTdHlsZSgiYmFja2dyb3VuZFBvc2l0aW9uIiwiMCAtNjZweCIpO31lbHNle3ZhciBkPSh0aGlzLmN1cnJlbnRHYWxsZXJ5Lm9wdGlvbnMmJnRoaXMuY3VycmVudEdhbGxlcnkub3B0aW9ucy5kZWxheSk/dGhpcy5jdXJyZW50R2FsbGVyeS5vcHRpb25zLmRlbGF5OnRoaXMub3B0aW9ucy5hdXRvUGxheURlbGF5O3RoaXMuc3RhcnRBdXRvUGxheSh7Z2FsbGVyeTp0aGlzLmN1cnJlbnRHYWxsZXJ5LGluZGV4OnRoaXMuY3VycmVudEluZGV4KzEsZGVsYXk6ZH0pO3RoaXMucGF1c2VkPWZhbHNlO3RoaXMucGxheXBhdXNlLnNldFN0eWxlKCJiYWNrZ3JvdW5kUG9zaXRpb24iLCIwIDAiKTt9fS5iaW5kV2l0aEV2ZW50KHRoaXMpfSk7dGhpcy5vdmVybGF5LmdldCgidHdlZW4iKS5hZGRFdmVudCgib25Db21wbGV0ZSIsZnVuY3Rpb24oKXtpZih0aGlzLm92ZXJsYXkuZ2V0U3R5bGUoIm9wYWNpdHkiKT09dGhpcy5vcHRpb25zLm92ZXJsYXlPcGFjaXR5KXt0aGlzLmNlbnRlci50d2Vlbigib3BhY2l0eSIsMSk7fWVsc2V7aWYodGhpcy5vdmVybGF5LmdldFN0eWxlKCJvcGFjaXR5Iik9PTApe3RoaXMub3ZlcmxheS5zZXRTdHlsZXMoe2hlaWdodDowLHRvcDoiIn0pO319fS5iaW5kV2l0aEV2ZW50KHRoaXMpKTt0aGlzLmNlbnRlci5nZXQoIm1vcnBoIikuYWRkRXZlbnQoIm9uQ29tcGxldGUiLGZ1bmN0aW9uKCl7aWYoJHR5cGUodGhpcy5jdXJyZW50RmlsZSk9PSJlbGVtZW50Iil7dGhpcy5jYW52YXMuZ3JhYih0aGlzLmN1cnJlbnRGaWxlKTt9ZWxzZXsoZnVuY3Rpb24oKXt0aGlzLmNhbnZhcy5ncmFiKHRoaXMuY3VycmVudEZpbGUpO30pLmRlbGF5KDUwMCx0aGlzKTt9dGhpcy5jYW52YXMudHdlZW4oIm9wYWNpdHkiLDEpO3ZhciBkPSghKHRoaXMubW9kZT09InNob3dUaGlzSW1hZ2UiKSk/dGhpcy5jdXJyZW50R2FsbGVyeVt0aGlzLmN1cnJlbnRJbmRleF0ucmV0cmlldmUoInRpdGxlIik6dGhpcy5zcGVjaWFsRGVzY3JpcHRpb247aWYoJGNoayhkKSl7dGhpcy5kZXNjcmlwdGlvbi5pbm5lckhUTUw9ZDt9aWYodGhpcy5tb2RlPT0iZmlsZUdhbGxlcnkiKXt0aGlzLmNvdW50LmFwcGVuZFRleHQoKHRoaXMuY3VycmVudEluZGV4KzEpKyIgIit0aGlzLm9wdGlvbnMuaW1hZ2VPZlRleHQrIiAiK3RoaXMuY3VycmVudEdhbGxlcnkubGVuZ3RoKTt9dmFyIGN1cnJlbnRDZW50ZXJIZWlnaHQ9dGhpcy5jZW50ZXIuZ2V0U3R5bGUoImhlaWdodCIpLnRvSW50KCk7dGhpcy5uYXZpZ2F0aW9uLnNldFN0eWxlKCJoZWlnaHQiLHRoaXMuYm90dG9tLmdldFN0eWxlKCJoZWlnaHQiKS50b0ludCgpKTt2YXIgYm90dG9tU2l6ZT10aGlzLmJvdHRvbS5nZXRTaXplKCkueTt2YXIgdGFyZ2V0T2Zmc2V0PShjdXJyZW50Q2VudGVySGVpZ2h0PnRoaXMuY2FudmFzLmdldFNpemUoKS55KT8odGhpcy5ib3R0b20uZ2V0U2l6ZSgpLnkrdGhpcy5jYW52YXMuZ2V0U2l6ZSgpLnkpLWN1cnJlbnRDZW50ZXJIZWlnaHQ6Ym90dG9tU2l6ZTt0aGlzLmJvdHRvbS5zZXRTdHlsZSgiZGlzcGxheSIsIm5vbmUiKTt0aGlzLmNlbnRlci5yZXRyaWV2ZSgic2V0RmluYWxIZWlnaHQiKS5zdGFydChjdXJyZW50Q2VudGVySGVpZ2h0LGN1cnJlbnRDZW50ZXJIZWlnaHQrdGFyZ2V0T2Zmc2V0KTt9LmJpbmRXaXRoRXZlbnQodGhpcykpO3RoaXMuY2VudGVyLnJldHJpZXZlKCJzZXRGaW5hbEhlaWdodCIpLmFkZEV2ZW50KCJvbkNvbXBsZXRlIixmdW5jdGlvbigpe3RoaXMuYm90dG9tLnNldFN0eWxlcyh7dmlzaWJpbGl0eToidmlzaWJsZSIsZGlzcGxheToiYmxvY2sifSk7JCQodGhpcy5kZXNjcmlwdGlvbix0aGlzLm5hdmlnYXRpb24pLnNldFN0eWxlKCJ2aXNpYmlsaXR5IiwidmlzaWJsZSIpO3ZhciBzY3JvbGxTaXplPSQod2luZG93KS5nZXRTY3JvbGxTaXplKCkueTt2YXIgc2Nyb2xsVG9wPSQod2luZG93KS5nZXRTY3JvbGwoKS55O3RoaXMub3ZlcmxheS5zZXRTdHlsZXMoe2hlaWdodDpzY3JvbGxTaXplK3Njcm9sbFRvcCx0b3A6LXNjcm9sbFRvcH0pO3RoaXMuYnVzeT1mYWxzZTt9LmJpbmRXaXRoRXZlbnQodGhpcykpO3dpbmRvdy5hZGRFdmVudCgicmVzaXplIixmdW5jdGlvbigpe2lmKHRoaXMub3ZlcmxheS5nZXRTdHlsZSgib3BhY2l0eSIpPT0wKXtyZXR1cm47fXZhciBzY3JvbGxTaXplPSQod2luZG93KS5nZXRTY3JvbGxTaXplKCkueTt2YXIgc2Nyb2xsVG9wPSQod2luZG93KS5nZXRTY3JvbGwoKS55O3RoaXMub3ZlcmxheS5zZXRTdHlsZXMoe2hlaWdodDpzY3JvbGxTaXplK3Njcm9sbFRvcCx0b3A6LXNjcm9sbFRvcH0pO30uYmluZFdpdGhFdmVudCh0aGlzKSk7JCQodGhpcy5vdmVybGF5LHRoaXMuY2xvc2UpLmFkZEV2ZW50KCJjbGljayIsdGhpcy5jbG9zZU1pbGtib3guYmluZFdpdGhFdmVudCh0aGlzKSk7dGhpcy5ldmVudHNvaz10cnVlO30sbmV4dF9wcmV2X2F1eDpmdW5jdGlvbihlLGRpcmVjdGlvbil7aWYoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3RoaXMuc3RvcEF1dG9QbGF5KCk7fWVsc2V7aWYodGhpcy5idXN5fHwhdGhpcy5maWxlUmVhZHkpe3JldHVybjt9fXRoaXMuYnVzeT10cnVlO3ZhciBpLF9pO2lmKGRpcmVjdGlvbj09Im5leHQiKXtpPSh0aGlzLmN1cnJlbnRJbmRleCE9dGhpcy5jdXJyZW50R2FsbGVyeS5sZW5ndGgtMSk/dGhpcy5jdXJyZW50SW5kZXgrPTE6dGhpcy5jdXJyZW50SW5kZXg9MDtfaT0odGhpcy5jdXJyZW50SW5kZXghPXRoaXMuY3VycmVudEdhbGxlcnkubGVuZ3RoLTEpP3RoaXMuY3VycmVudEluZGV4KzE6MDt9ZWxzZXtpPSh0aGlzLmN1cnJlbnRJbmRleCE9MCk/dGhpcy5jdXJyZW50SW5kZXgtPTE6dGhpcy5jdXJyZW50SW5kZXg9dGhpcy5jdXJyZW50R2FsbGVyeS5sZW5ndGgtMTtfaT0odGhpcy5jdXJyZW50SW5kZXghPTApP3RoaXMuY3VycmVudEluZGV4LTE6dGhpcy5jdXJyZW50R2FsbGVyeS5sZW5ndGgtMTt9dGhpcy5jYW52YXMuZW1wdHkoKTt0aGlzLmRlc2NyaXB0aW9uLmVtcHR5KCk7dGhpcy5jb3VudC5lbXB0eSgpO3RoaXMubG9hZEZpbGUodGhpcy5jdXJyZW50R2FsbGVyeVtpXSxbdGhpcy5jdXJyZW50R2FsbGVyeVtfaV1dKTt9LHByZXBhcmVFZmZlY3RzOmZ1bmN0aW9uKCl7dGhpcy5vdmVybGF5LnNldCgidHdlZW4iLHtkdXJhdGlvbjoic2hvcnQiLGxpbms6ImNhbmNlbCJ9KTt0aGlzLmNlbnRlci5zZXQoInR3ZWVuIix7ZHVyYXRpb246InNob3J0IixsaW5rOiJjaGFpbiJ9KTt0aGlzLmNlbnRlci5zZXQoIm1vcnBoIix7ZHVyYXRpb246dGhpcy5vcHRpb25zLnJlc2l6ZUR1cmF0aW9uLGxpbms6ImNoYWluIix0cmFuc2l0aW9uOnRoaXMub3B0aW9ucy5yZXNpemVUcmFuc2l0aW9ufSk7dGhpcy5jZW50ZXIuc3RvcmUoInNldEZpbmFsSGVpZ2h0IixuZXcgRnguVHdlZW4odGhpcy5jZW50ZXIse3Byb3BlcnR5OiJoZWlnaHQiLGR1cmF0aW9uOiJzaG9ydCJ9KSk7dGhpcy5jYW52YXMuc2V0KCJ0d2VlbiIse2xpbms6ImNoYWluIn0pO30scHJlcGFyZUdhbGxlcmllczpmdW5jdGlvbihyZXNwb25zZUVsZW1lbnRzKXt2YXIgbWlsa2JveF9hPVtdO3ZhciBhX3RhZ3M9KHJlc3BvbnNlRWxlbWVudHMpP3Jlc3BvbnNlRWxlbWVudHM6JCQoImEiKTthX3RhZ3MuZWFjaChmdW5jdGlvbihhKXtpZihhLnJlbCYmYS5yZWwudGVzdCgvXm1pbGtib3gvaSkmJmEuaHJlZi5zcGxpdCgiPyIpWzBdLnRlc3QoL1wuKGdpZnxqcGd8anBlZ3xwbmd8c3dmKSQvaSkpe2lmKGEucmVsLmxlbmd0aD43JiYhdGhpcy5mYW1pbGllcy5jb250YWlucyhhLnJlbCkpe3RoaXMuZmFtaWxpZXMucHVzaChhLnJlbCk7fW1pbGtib3hfYS5wdXNoKGEpO319LHRoaXMpO21pbGtib3hfYS5lYWNoKGZ1bmN0aW9uKGEpeyQoYSkuc3RvcmUoImhyZWYiLGEuaHJlZik7JChhKS5zdG9yZSgicmVsIixhLnJlbCk7JChhKS5zdG9yZSgidGl0bGUiLGEudGl0bGUpO2lmKHRoaXMuY2hlY2tGaWxlVHlwZShhLmhyZWYsInN3ZiIpKXt0aGlzLnNldEZpbGVQcm9wcygkKGEpLGEucmV2KTt9aWYodGhpcy5vcHRpb25zLnJlbW92ZVRpdGxlKXskKGEpLnJlbW92ZVByb3BlcnR5KCJ0aXRsZSIpO31pZihhLnJlbC5sZW5ndGg+Nyl7dGhpcy5mYW1pbGllcy5lYWNoKGZ1bmN0aW9uKGYsaSl7aWYoYS5yZWw9PWYpe3ZhciBnTW91bnRlZD1mYWxzZTt2YXIgaW5kZXg7dGhpcy5nYWxsZXJpZXMuZWFjaChmdW5jdGlvbihnLGspe2lmKGdbMF0ucmVsPT1mKXtnTW91bnRlZD10cnVlO2luZGV4PWs7cmV0dXJuO319KTtpZihnTW91bnRlZD09dHJ1ZSl7dGhpcy5nYWxsZXJpZXNbaW5kZXhdLnB1c2goJChhKSk7fWVsc2V7dGhpcy5nYWxsZXJpZXMucHVzaChbJChhKV0pO319fSx0aGlzKTt9ZWxzZXt0aGlzLmdhbGxlcmllcy5wdXNoKFskKGEpXSk7fX0sdGhpcyk7fSxwcmVwYXJlSFRNTDpmdW5jdGlvbigpe3RoaXMub3ZlcmxheT1uZXcgRWxlbWVudCgiZGl2Iix7aWQ6Im1iT3ZlcmxheSIsc3R5bGVzOntvcGFjaXR5OjAsdmlzaWJpbGl0eToidmlzaWJsZSIsaGVpZ2h0OjAsb3ZlcmZsb3c6ImhpZGRlbiJ9fSkuaW5qZWN0KCQoZG9jdW1lbnQuYm9keSkpO3RoaXMuY2VudGVyPW5ldyBFbGVtZW50KCJkaXYiLHtpZDoibWJDZW50ZXIiLHN0eWxlczp7d2lkdGg6dGhpcy5vcHRpb25zLmluaXRpYWxXaWR0aCxoZWlnaHQ6dGhpcy5vcHRpb25zLmluaXRpYWxIZWlnaHQsbWFyZ2luTGVmdDotKHRoaXMub3B0aW9ucy5pbml0aWFsV2lkdGgvMiksb3BhY2l0eTowfX0pLmluamVjdCgkKGRvY3VtZW50LmJvZHkpKTt0aGlzLmNhbnZhcz1uZXcgRWxlbWVudCgiZGl2Iix7aWQ6Im1iQ2FudmFzIn0pLmluamVjdCh0aGlzLmNlbnRlcik7dGhpcy5ib3R0b209bmV3IEVsZW1lbnQoImRpdiIse2lkOiJtYkJvdHRvbSJ9KS5pbmplY3QodGhpcy5jZW50ZXIpLnNldFN0eWxlKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIik7dGhpcy5uYXZpZ2F0aW9uPW5ldyBFbGVtZW50KCJkaXYiLHtpZDoibWJOYXZpZ2F0aW9uIn0pLnNldFN0eWxlKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIik7dGhpcy5kZXNjcmlwdGlvbj1uZXcgRWxlbWVudCgiZGl2Iix7aWQ6Im1iRGVzY3JpcHRpb24ifSkuc2V0U3R5bGUoInZpc2liaWxpdHkiLCJoaWRkZW4iKTt0aGlzLmJvdHRvbS5hZG9wdCh0aGlzLm5hdmlnYXRpb24sdGhpcy5kZXNjcmlwdGlvbixuZXcgRWxlbWVudCgiZGl2Iix7ImNsYXNzIjoibWJDbGVhciJ9KSk7dGhpcy5jbG9zZT1uZXcgRWxlbWVudCgiYSIse2lkOiJtYkNsb3NlTGluayJ9KTt0aGlzLm5leHQ9bmV3IEVsZW1lbnQoImEiLHtpZDoibWJOZXh0TGluayJ9KTt0aGlzLnByZXY9bmV3IEVsZW1lbnQoImEiLHtpZDoibWJQcmV2TGluayJ9KTt0aGlzLnBsYXlwYXVzZT1uZXcgRWxlbWVudCgiYSIse2lkOiJtYlBsYXlQYXVzZSJ9KTt0aGlzLmNvdW50PW5ldyBFbGVtZW50KCJzcGFuIix7aWQ6Im1iQ291bnQifSk7JCQodGhpcy5uZXh0LHRoaXMucHJldix0aGlzLmNvdW50LHRoaXMucGxheXBhdXNlKS5zZXRTdHlsZSgiZGlzcGxheSIsIm5vbmUiKTt0aGlzLm5hdmlnYXRpb24uYWRvcHQodGhpcy5jbG9zZSx0aGlzLm5leHQsdGhpcy5wcmV2LHRoaXMucGxheXBhdXNlLG5ldyBFbGVtZW50KCJkaXYiLHsiY2xhc3MiOiJtYkNsZWFyIn0pLHRoaXMuY291bnQpO30sY2xvc2VNaWxrYm94OmZ1bmN0aW9uKCl7dGhpcy5jYW5jZWxBbGxFZmZlY3RzKCk7dGhpcy5zdG9wQXV0b1BsYXkoKTt0aGlzLnNldE9wdGlvbnModGhpcy5hdXRvUGxheUJrdXApO3RoaXMuY3VycmVudEZpbGU9bnVsbDt0aGlzLmN1cnJlbnRJbmRleD1udWxsO3RoaXMuY3VycmVudEdhbGxlcnk9bnVsbDt0aGlzLmN1cnJlbnRSZXF1ZXN0PW51bGw7dGhpcy5jdXJyZW50UmVzcG9uc2U9bnVsbDskJCh0aGlzLnByZXYsdGhpcy5uZXh0LHRoaXMucGxheXBhdXNlLHRoaXMuY291bnQpLnNldFN0eWxlKCJkaXNwbGF5Iiwibm9uZSIpO3RoaXMucGxheXBhdXNlLnNldFN0eWxlKCJiYWNrZ3JvdW5kUG9zaXRpb24iLCIwIDAiKTt2YXIgYm9yZGVyPXRoaXMuY2VudGVyLmdldFN0eWxlKCJib3JkZXItcmlnaHQtd2lkdGgiKS50b0ludCgpO3ZhciBuYXZXaWR0aD10aGlzLmNsb3NlLmdldFNpemUoKS54K2JvcmRlcjt0aGlzLm5hdmlnYXRpb24uc2V0U3R5bGVzKHt3aWR0aDpuYXZXaWR0aCxoZWlnaHQ6IiIsdmlzaWJpbGl0eToiaGlkZGVuIn0pO3RoaXMuZGVzY3JpcHRpb24uc2V0U3R5bGUoIm1hcmdpbi1yaWdodCIsbmF2V2lkdGgpO3RoaXMuZGVzY3JpcHRpb24uZW1wdHkoKTt0aGlzLmJvdHRvbS5zZXRTdHlsZXMoe3Zpc2liaWxpdHk6ImhpZGRlbiIsZGlzcGxheToiIn0pO3RoaXMuY2FudmFzLnNldFN0eWxlcyh7b3BhY2l0eTowLHdpZHRoOiIiLGhlaWdodDoiIn0pO3RoaXMuY2FudmFzLmVtcHR5KCk7dGhpcy5jb3VudC5lbXB0eSgpO3RoaXMuY2VudGVyLnNldFN0eWxlcyh7b3BhY2l0eTowLHdpZHRoOnRoaXMub3B0aW9ucy5pbml0aWFsV2lkdGgsaGVpZ2h0OnRoaXMub3B0aW9ucy5pbml0aWFsSGVpZ2h0LG1hcmdpbkxlZnQ6LSh0aGlzLm9wdGlvbnMuaW5pdGlhbFdpZHRoLzIpfSk7dGhpcy5vdmVybGF5LnR3ZWVuKCJvcGFjaXR5IiwwKTtpZih0aGlzLmZvcm10YWdzJiZ0aGlzLmZvcm10YWdzLmxlbmd0aCE9MCl7dGhpcy5mb3JtdGFncy5zZXRTdHlsZSgiZGlzcGxheSIsIiIpO310aGlzLm1vZGU9bnVsbDt0aGlzLmNsb3NlZD10cnVlO3RoaXMuZmlyc3Q9dHJ1ZTt0aGlzLmZpbGVSZWFkeT1mYWxzZTt0aGlzLmZpcmVFdmVudCgiY2xvc2VkIik7fSxjYW5jZWxBbGxFZmZlY3RzOmZ1bmN0aW9uKCl7dGhpcy5vdmVybGF5LmdldCgidHdlZW4iKS5jYW5jZWwoKTt0aGlzLmNlbnRlci5nZXQoIm1vcnBoIikuY2FuY2VsKCk7dGhpcy5jZW50ZXIuZ2V0KCJ0d2VlbiIpLmNhbmNlbCgpO3RoaXMuY2VudGVyLnJldHJpZXZlKCJzZXRGaW5hbEhlaWdodCIpLmNhbmNlbCgpO3RoaXMuY2FudmFzLmdldCgidHdlZW4iKS5jYW5jZWwoKTt9fSk7Cgp3aW5kb3cuYWRkRXZlbnQoJ2RvbXJlYWR5JywgZnVuY3Rpb24oKXsgCgltaWxrYm94ID0gbmV3IE1pbGtib3goKTsKfSk7Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/milkbox/js/milkbox.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKCU1pbGtib3ggdjIuMy4yIC0gcmVxdWlyZWQ6IG1vb3Rvb2xzLmpzIHYxLjIuMyBjb3JlICsgbW9yZSAxLjIuMy4xOiBBc3NldHMKCglieSBMdWNhIFJlZ2hlbGxpbiAoaHR0cDovL3d3dy5yZWdoZWxsaW4uY29tKSBBdWd1c3QgMjAwOSwgTUlULXN0eWxlIGxpY2Vuc2UuCglJbnNwaXJhdGlvbiBMb2tlc2ggRGhha2FyIChodHRwOi8vd3d3Lmxva2VzaGRoYWthci5jb20vcHJvamVjdHMvbGlnaHRib3gyLykKCUFORCBPRiBDT1VSU0UsIFNQRUNJQUwgVEhBTktTIFRPIFRIRSBNT09UT09MUyBERVZFTE9QRVJTCiovCgp2YXIgTWlsa2JveCA9IG5ldyBDbGFzcyh7CgoJSW1wbGVtZW50czpbT3B0aW9ucyxFdmVudHNdLAoJCglvcHRpb25zOnsvL3NldCBhbGwgdGhlIG9wdGlvbnMgaGVyZQoJCW92ZXJsYXlPcGFjaXR5OjAuNywKCQl0b3BQb3NpdGlvbjo1MCwKCQlpbml0aWFsV2lkdGg6MjUwLAoJCWluaXRpYWxIZWlnaHQ6MjUwLAoJCWNhbnZhc0JvcmRlcldpZHRoOicwcHgnLAoJCWNhbnZhc0JvcmRlckNvbG9yOicjMDAwMDAwJywKCQljYW52YXNQYWRkaW5nOicwcHgnLAoJCXJlc2l6ZUR1cmF0aW9uOjUwMCwKCQlyZXNpemVUcmFuc2l0aW9uOidzaW5lOmluOm91dCcsLypmdW5jdGlvbiAoZXguIFRyYW5zaXRpb25zLlNpbmUuZWFzZUluKSBvciBzdHJpbmcgKGV4LiAnYm91bmNlOm91dCcpKi8KCQlhdXRvUGxheTpmYWxzZSwKCQlhdXRvUGxheURlbGF5OjcsCgkJcmVtb3ZlVGl0bGU6ZmFsc2UsCgkJYXV0b1NpemU6dHJ1ZSwKCQltYXhIZWlnaHQ6MCwvL29ubHkgaWYgYXV0b1NpemU9PXRydWUKCQlpbWFnZU9mVGV4dDonb2YnLAoJCW9uWG1sR2FsbGVyaWVzOiRlbXB0eSwKCQlvbkNsb3NlZDokZW1wdHksCgkJb25GaWxlUmVhZHk6JGVtcHR5Cgl9LAoJCglpbml0aWFsaXplOiBmdW5jdGlvbihvcHRpb25zKXsKCQkKCQl0aGlzLnNldE9wdGlvbnMob3B0aW9ucyk7CgkJdGhpcy5hdXRvUGxheUJrdXAgPSB7IGF1dG9QbGF5RGVsYXk6dGhpcy5vcHRpb25zLmF1dG9QbGF5RGVsYXksIGF1dG9QbGF5OnRoaXMub3B0aW9ucy5hdXRvUGxheSB9OwoJCXRoaXMuZnVsbE9wdGlvbnNCa3VwID0ge307CgkJdGhpcy5nYWxsZXJpZXMgPSBbXTsKCQl0aGlzLmZhbWlsaWVzID0gW107CgkJdGhpcy54bWxGaWxlcyA9IFtdOwoJCXRoaXMubG9hZGVkSW1hZ2VzID0gW107Ly90byBjaGVjayB0aGUgcHJlbG9hZGVkIGltYWdlcwoJCXRoaXMuY3VycmVudEZpbGUgPSBudWxsOwoJCXRoaXMuY3VycmVudEluZGV4ID0gbnVsbDsKCQl0aGlzLmN1cnJlbnRHYWxsZXJ5ID0gbnVsbDsKCQl0aGlzLmN1cnJlbnRSZXF1ZXN0ID0gbnVsbDsKCQl0aGlzLmN1cnJlbnRSZXNwb25zZSA9IG51bGw7CgkJCgkJdGhpcy5tb2RlID0gbnVsbDsvLydzaW5nbGVGaWxlJywnZmlsZUdhbGxlcnknCgkJdGhpcy5jbG9zZWQgPSB0cnVlOwoJCXRoaXMuYnVzeSA9IHRydWU7Ly90byBjb250cm9sIGtleWJvYXJkIGFuZCBhdXRvcGxheSBldmVudHMKCQl0aGlzLnBhdXNlZCA9IHRydWU7CgkJdGhpcy5maWxlUmVhZHkgPSBmYWxzZTsvL3RvIHByZXZlbnQgb3ZlcmxhcHBpbmcgbG9hZEZpbGUgY2FsbHMgdmlhIG5leHRfcHJldl9hdXgoKQoJCXRoaXMuZXZlbnRzb2sgPSBmYWxzZTsKCQl0aGlzLmZpcnN0ID0gdHJ1ZTsvL3RydWUgaWYgaXQncyB0aGUgZmlyc3QgZmlsZSBzaW5jZSBpdCBvcGVuZWQgCgkJdGhpcy5hY3RpdmF0ZWQgPSBmYWxzZTsvL3RydWUgYWZ0ZXIgaW5pdE1pbGtib3gKCQkKCQl0aGlzLmludE9iaiA9IG51bGw7CgkJCgkJdGhpcy5mb3JtdGFncyA9IG51bGw7CgkJdGhpcy5wcmVwYXJlR2FsbGVyaWVzKCk7CgkJCgkJaWYodGhpcy5vcHRpb25zLm92ZXJsYXlPcGFjaXR5ID09IDApeyB0aGlzLm9wdGlvbnMub3ZlcmxheU9wYWNpdHkgPSAwLjAwMDEgfQoJCXRoaXMuc2F2ZU9wdGlvbnMoKTsvL3RoZW4gdXNlIHJlc3RvcmVPcHRpb25zKCkKCgkJLy9pZiBubyBnYWxsZXJpZXMsIHN0b3AgaGVyZSBhbmQgcHJldmVudCBleHRyYSBtZW1vcnkgdXNhZ2UuCgkJLy9zbyB5b3UgY2FuIGtlZXAgbWlsa2JveCBpbiBldmVyeSBwYWdlIG9mIGEgc2l0ZS4KCQlpZih0aGlzLmdhbGxlcmllcy5sZW5ndGggPT0gMCl7IHJldHVybjsgfTsKCQkJCQoJCXRoaXMuaW5pdE1pbGtib3godHJ1ZSk7Cgl9LC8vZW5kIGluaXQKCQoJaW5pdE1pbGtib3g6ZnVuY3Rpb24oY2hlY2tUYWdzKXsKCgkJaWYoY2hlY2tUYWdzKXsgdGhpcy5mb3JtdGFncyA9ICQkKCdzZWxlY3QnLCd0ZXh0YXJlYScpOyB9CgoJCXRoaXMucHJlcGFyZUhUTUwoKTsKCQl0aGlzLnByZXBhcmVFZmZlY3RzKCk7CgkJdGhpcy5wcmVwYXJlRXZlbnRzKCk7CgoJCXRoaXMuYWN0aXZhdGVkID0gdHJ1ZTsKCX0sCgkKCS8qICoqKioqKiBTSE9XL0hJREUgKioqKioqICovCgkKCS8vcnVucyBvbmx5IDEgdGltZSBwZXIgZ2FsbGVyeQoJb3Blbk1pbGtib3g6ZnVuY3Rpb24oZ2FsbGVyeSxpbmRleCl7CgkJdGhpcy5jbG9zZWQgPSBmYWxzZTsKCQlpZih0aGlzLmZvcm10YWdzICYmIHRoaXMuZm9ybXRhZ3MubGVuZ3RoICE9IDApeyB0aGlzLmZvcm10YWdzLnNldFN0eWxlKCdkaXNwbGF5Jywnbm9uZScpIH07CgkJdGhpcy5vdmVybGF5LnNldFN0eWxlcyh7ICd0b3AnOiAtJCh3aW5kb3cpLmdldFNjcm9sbCgpLnksJ2hlaWdodCc6JCh3aW5kb3cpLmdldFNjcm9sbFNpemUoKS55KyQod2luZG93KS5nZXRTY3JvbGwoKS55IH0pOwoJCXRoaXMuY2VudGVyLnNldFN0eWxlKCd0b3AnLCQod2luZG93KS5nZXRTY3JvbGwoKS55K3RoaXMub3B0aW9ucy50b3BQb3NpdGlvbik7CgoJCXRoaXMuY3VycmVudEdhbGxlcnkgPSBnYWxsZXJ5OwoJCXRoaXMuY3VycmVudEluZGV4ID0gaW5kZXg7CgkJdGhpcy5vdmVybGF5LnR3ZWVuKCdvcGFjaXR5Jyx0aGlzLm9wdGlvbnMub3ZlcmxheU9wYWNpdHkpOy8vb25Db21wbGV0ZTogY2VudGVyLnR3ZWVuIG9wYWNpdHkKCQkKCQlpZihnYWxsZXJ5Lmxlbmd0aCA9PSAxKXsKCQkJdGhpcy5tb2RlID0gJ3NpbmdsZUZpbGUnOwoJCQl0aGlzLmxvYWRGaWxlKGdhbGxlcnlbaW5kZXhdLGluZGV4KTsKCQl9IGVsc2UgewoJCQl0aGlzLm1vZGUgPSAnZmlsZUdhbGxlcnknOwoJCQl2YXIgcGxheXBhdXNlV2lkdGggPSAwOwoJCQkvL2ludGVyZmFjZQoJCQkkJCh0aGlzLnByZXYsIHRoaXMubmV4dCwgdGhpcy5jb3VudCkuc2V0U3R5bGUoJ2Rpc3BsYXknLCdibG9jaycpOwoJCQlpZih0aGlzLm9wdGlvbnMuYXV0b1BsYXkpeyAKCQkJCXRoaXMucGxheXBhdXNlLnNldFN0eWxlKCdkaXNwbGF5JywnYmxvY2snKTsKCQkJCXBsYXlwYXVzZVdpZHRoID0gdGhpcy5wbGF5cGF1c2UuZ2V0U2l6ZSgpLng7CgkJCX0KCQkJdmFyIGJvcmRlciA9IHRoaXMuY2VudGVyLmdldFN0eWxlKCdib3JkZXItcmlnaHQtd2lkdGgnKS50b0ludCgpOy8vYm9yZGVyLXJpZ2h0IGlzIGp1c3Qgb2sgZm9yIGRlc2lnbiBwdXJwb3Nlcy4uCgkJCXZhciBuYXZXaWR0aCA9IHRoaXMucHJldi5nZXRTaXplKCkueCt0aGlzLm5leHQuZ2V0U2l6ZSgpLngrdGhpcy5jbG9zZS5nZXRTaXplKCkueCtwbGF5cGF1c2VXaWR0aCtib3JkZXI7CgkJCXRoaXMubmF2aWdhdGlvbi5zZXRTdHlsZSgnd2lkdGgnLG5hdldpZHRoKTsKCQkJdGhpcy5kZXNjcmlwdGlvbi5zZXRTdHlsZSgnbWFyZ2luLXJpZ2h0JyxuYXZXaWR0aCk7CgkJCS8vZmlsZXMKCQkJdmFyIG5leHQgPSAoaW5kZXggIT0gZ2FsbGVyeS5sZW5ndGgtMSkgPyBnYWxsZXJ5W2luZGV4KzFdIDogZ2FsbGVyeVswXTsKCQkJdmFyIHByZXYgPSAoaW5kZXggIT0gMCkgPyBnYWxsZXJ5W2luZGV4LTFdIDogZ2FsbGVyeVtnYWxsZXJ5Lmxlbmd0aC0xXTsKCQkJdmFyIHByZWxvYWRzID0gKHByZXYgPT0gbmV4dCkgPyBbcHJldl0gOiBbcHJldixuZXh0XTsgLy9pZiBnYWxsZXJ5Lmxlbmd0aCA9PSAyLCB0aGVuIHByZXYgPT0gbmV4dAoJCQkJCQkKCQkJdGhpcy5sb2FkRmlsZShnYWxsZXJ5W2luZGV4XSxwcmVsb2Fkcyk7CgkJfS8vZW5kIGVsc2UKCX0sCgkKCWxvYWRGaWxlOmZ1bmN0aW9uKGZpbGVPYmoscHJlbG9hZHMpewoJCXRoaXMuZmlsZVJlYWR5ID0gZmFsc2U7CgkJdmFyIHN3ZiA9IHRoaXMuY2hlY2tGaWxlVHlwZShmaWxlT2JqLCdzd2YnKTsKCQlpZighc3dmKXsgCgkJCWlmKCF0aGlzLmxvYWRlZEltYWdlcy5jb250YWlucyhmaWxlT2JqLnJldHJpZXZlKCdocmVmJykpKXsgdGhpcy5jZW50ZXIuYWRkQ2xhc3MoJ21iTG9hZGluZycpOyB9IAoJCQl0aGlzLmxvYWRJbWFnZShmaWxlT2JqLnJldHJpZXZlKCdocmVmJykpOwoJCX0gZWxzZSB7CgkJCXRoaXMubG9hZFN3ZihmaWxlT2JqKTsKCQl9CgkJCgkJaWYocHJlbG9hZHMpeyB0aGlzLnByZWxvYWRGaWxlcyhwcmVsb2Fkcyk7IH0KCX0sCgkKCXByZWxvYWRGaWxlczpmdW5jdGlvbihwcmVsb2Fkcyl7CgkJcHJlbG9hZHMuZWFjaChmdW5jdGlvbihmaWxlT2JqLGluZGV4KXsKCQkJdmFyIHN3ZiA9IHRoaXMuY2hlY2tGaWxlVHlwZShmaWxlT2JqLnJldHJpZXZlKCdocmVmJyksInN3ZiIpOwoJCQlpZighc3dmKXsgdGhpcy5wcmVsb2FkSW1hZ2UoZmlsZU9iai5yZXRyaWV2ZSgnaHJlZicpKTsgfQoJCX0sdGhpcyk7Cgl9LAoJCglsb2FkSW1hZ2U6ZnVuY3Rpb24oZmlsZSl7CgkJdmFyIGltYWdlQXNzZXQgPSBuZXcgQXNzZXQuaW1hZ2UoZmlsZSwgeyBvbmxvYWQ6ZnVuY3Rpb24oaW1nKXsKCQkJaWYoIXRoaXMubG9hZGVkSW1hZ2VzLmNvbnRhaW5zKGZpbGUpKXsgdGhpcy5sb2FkZWRJbWFnZXMucHVzaChmaWxlKTsgfTsvL3NlZSBuZXh0L3ByZXYgZXZlbnRzCgkJCXRoaXMuY3VycmVudEZpbGUgPSBpbWc7CgkJCXRoaXMubG9hZEF1eCh0aGlzLmN1cnJlbnRGaWxlKTsKCQl9LmJpbmRXaXRoRXZlbnQodGhpcyl9KTsKCX0sCgkKCXByZWxvYWRJbWFnZTpmdW5jdGlvbihmaWxlKXsKCQlpZighdGhpcy5sb2FkZWRJbWFnZXMuY29udGFpbnMoZmlsZSkpewoJCQl2YXIgaW1hZ2VBc3NldCA9IG5ldyBBc3NldC5pbWFnZShmaWxlLCB7IG9ubG9hZDpmdW5jdGlvbihpbWcpewoJCQkJCXRoaXMubG9hZGVkSW1hZ2VzLnB1c2goZmlsZSk7CgkJCX0uYmluZFdpdGhFdmVudCh0aGlzKX0pOwoJCX0KCX0sCgkKCglsb2FkU3dmOmZ1bmN0aW9uKHN3Zil7CgoJCXZhciBzd2ZPYmogPSBuZXcgU3dpZmYoc3dmLnJldHJpZXZlKCdocmVmJyksewoJCQl3aWR0aDpzd2YucmV0cmlldmUoJ3dpZHRoJykudG9JbnQoKSwKCQkJaGVpZ2h0OnN3Zi5yZXRyaWV2ZSgnaGVpZ2h0JykudG9JbnQoKSwKCQkJcGFyYW1zOnsgd01vZGU6J29wYXF1ZScsIHN3TGl2ZUNvbm5lY3Q6J2ZhbHNlJyB9CgkJfSk7CgkJCgkJdGhpcy5jdXJyZW50RmlsZSA9IHN3Zk9iajsKCQl0aGlzLmxvYWRBdXgoc3dmKTsKCX0sCgkKCWxvYWRBdXg6ZnVuY3Rpb24oZmlsZSl7CgkJdGhpcy5maWxlUmVhZHkgPSB0cnVlOyAvL3RoZSBmaWxlIGlzIGxvYWRlZCBhbmQgcmVhZHkgdG8gYmUgc2hvd2VkIChzZWUgbmV4dF9wcmV2X2F1eCgpKQoJCXRoaXMuZmlyZUV2ZW50KCdmaWxlUmVhZHknKTsKCQkkJCh0aGlzLmRlc2NyaXB0aW9uLHRoaXMubmF2aWdhdGlvbikuc2V0U3R5bGUoJ3Zpc2liaWxpdHknLCdoaWRkZW4nKTsKCQl0aGlzLm5hdmlnYXRpb24uc2V0U3R5bGUoJ2hlaWdodCcsJycpOy8vcmVzZXQgdGhlIGhlaWdodCBzZXR0ZWQgaW4gY2VudGVyLm1vcnBoLm9uQ29tcGxldGUKCQkkJCh0aGlzLm5leHQsdGhpcy5wcmV2LHRoaXMuY2xvc2UpLnNldFN0eWxlKCdiYWNrZ3JvdW5kUG9zaXRpb24nLCcwIDAnKTsKCQl0aGlzLnNob3dGaWxlKGZpbGUpOwoJfSwKCQoJCglzaG93RmlsZTpmdW5jdGlvbihmaWxlKXsKIAkJCiAJCWlmKHRoaXMuY2xvc2VkKXsgcmV0dXJuOyB9Oy8vaWYgeW91IGNsb3NlIHRoZSBNaWxrYm94IGFuZCBhbiBvbmxvYWQgZXZlbnQgaXMgc3RpbGwgcnVubmluZwogCQkKIAkJdmFyIGZpbGVTaXplID0gbmV3IEhhc2goKTsKIAkJdmFyIGNlbnRlclNpemUgPSBuZXcgSGFzaCgpOwogCQl2YXIgdGFyZ2V0U2l6ZSwgY2FudmFzU2l6ZTsKCQl2YXIgY2FudmFzQWRkU2l6ZSwgZ2FwLCBiLCBwLCBkOwogCQl0YXJnZXRTaXplID0gY2FudmFzU2l6ZSA9IHt9OwogCQljYW52YXNBZGRTaXplID0gZ2FwID0gYiA9IHAgPSBkID0gMDsKIAkJCiAJCWlmKHRoaXMub3B0aW9ucy5jYW52YXNCb3JkZXJXaWR0aC50b0ludCgpICE9IDAgJiYgdGhpcy5jYW52YXMuZ2V0U3R5bGUoJ2JvcmRlcldpZHRoJykudG9JbnQoKSA9PSAwKXsKIAkJCWIgPSB0aGlzLm9wdGlvbnMuY2FudmFzQm9yZGVyV2lkdGggKyAnIHNvbGlkICcgKyB0aGlzLm9wdGlvbnMuY2FudmFzQm9yZGVyQ29sb3I7CiAJCQl0aGlzLmNhbnZhcy5zZXRTdHlsZSgnYm9yZGVyJyxiKTsKIAkJfQogCQkKIAkJaWYodGhpcy5vcHRpb25zLmNhbnZhc1BhZGRpbmcudG9JbnQoKSAhPSAwICYmIHRoaXMuY2FudmFzLmdldFN0eWxlKCdwYWRkaW5nJykudG9JbnQoKSA9PSAwKXsKIAkJCXAgPSB0aGlzLm9wdGlvbnMuY2FudmFzUGFkZGluZzsKIAkJCXRoaXMuY2FudmFzLnNldFN0eWxlKCdwYWRkaW5nJyxwKTsKIAkJfQogCQkKIAkJY2FudmFzU2l6ZSA9IHRoaXMuY2FudmFzLmdldFNpemUoKTsKIAkJY2FudmFzQWRkU2l6ZSA9IHRoaXMuY2FudmFzLmdldFN0eWxlKCdib3JkZXJXaWR0aCcpLnRvSW50KCkqMiArIHRoaXMuY2FudmFzLmdldFN0eWxlKCdwYWRkaW5nJykudG9JbnQoKSoyOwogCQl0aGlzLmNhbnZhcy5zZXRTdHlsZXMoeydvcGFjaXR5JzowLCAnd2lkdGgnOicnLCAnaGVpZ2h0JzonJ30pOwogCQkKIAkJaWYoIWZpbGUucmV0cmlldmUoJ3dpZHRoJykpey8vaXMgYW4gaW1hZ2UgZmlsZQogCQkJZmlsZVNpemUgPSBmaWxlU2l6ZS5leHRlbmQoZmlsZS5nZXRQcm9wZXJ0aWVzKCd3aWR0aCcsJ2hlaWdodCcpKS5tYXAoZnVuY3Rpb24oaXRlbSl7IHJldHVybiBpdGVtLnRvSW50KCk7IH0pOwogCQkJaWYodGhpcy5vcHRpb25zLmF1dG9TaXplKXsgCiAJCQkJZmlsZVNpemUgPSB0aGlzLmNvbXB1dGVTaXplKGZpbGVTaXplKTsKIAkJCQlmaWxlLnNldFByb3BlcnRpZXMoeyAnd2lkdGgnOmZpbGVTaXplLndpZHRoLCAnaGVpZ2h0JzpmaWxlU2l6ZS5oZWlnaHQgfSk7CiAJCQl9CiAJCX0gZWxzZSB7Ly9pcyBhbiBzd2YgZmlsZQogCQkJZmlsZVNpemUuZXh0ZW5kKHsgJ2hlaWdodCc6ZmlsZS5yZXRyaWV2ZSgnaGVpZ2h0JykudG9JbnQoKSwgJ3dpZHRoJzpmaWxlLnJldHJpZXZlKCd3aWR0aCcpLnRvSW50KCkgfSk7CiAJCX0KIAkJCQkKIAkJY2VudGVyU2l6ZSA9IGNlbnRlclNpemUuZXh0ZW5kKHRoaXMuY2VudGVyLmdldFN0eWxlcygnd2lkdGgnLCdoZWlnaHQnKSkubWFwKGZ1bmN0aW9uKGl0ZW0peyByZXR1cm4gaXRlbS50b0ludCgpOyB9KTsKCiAJCWlmKGZpbGVTaXplLndpZHRoICE9IGNlbnRlclNpemUud2lkdGgpeyAKIAkJCXRhcmdldFNpemUud2lkdGggPSBmaWxlU2l6ZS53aWR0aCArIGNhbnZhc0FkZFNpemU7CiAJCQl0YXJnZXRTaXplLm1hcmdpbkxlZnQgPSAtKHRhcmdldFNpemUud2lkdGgvMikucm91bmQoKTsKIAkJfQogCQkgCQkKIAkJZ2FwID0gKGNhbnZhc1NpemUueS1jYW52YXNBZGRTaXplID4gMCkgPyBjZW50ZXJTaXplLmhlaWdodCAtIGNhbnZhc1NpemUueSA6IDA7IAoKIAkgICB0YXJnZXRTaXplLmhlaWdodCA9IGZpbGVTaXplLmhlaWdodCArIGNhbnZhc0FkZFNpemUgKyBnYXA7CiAJICAgCgkJLy9zbyBuYXYgZG9lc24ndCBtb3ZlIHdoZW4geW91IGNsaWNrIG5leHQvcHJldgoJCXRoaXMuY2FudmFzLnNldFN0eWxlcyh7J3dpZHRoJzpmaWxlU2l6ZS53aWR0aCwgJ2hlaWdodCc6ZmlsZVNpemUuaGVpZ2h0fSk7CgogCQl0aGlzLmNlbnRlci5yZW1vdmVDbGFzcygnbWJMb2FkaW5nJyk7CiAJCQogCQlpZih0aGlzLmZpcnN0KXsgZCA9IDUwMDsgdGhpcy5maXJzdCA9IGZhbHNlOyB9CiAJCShmdW5jdGlvbigpeyB0aGlzLmNlbnRlci5tb3JwaCh0YXJnZXRTaXplKTsgfSkuZGVsYXkoZCx0aGlzKS8vb25Db21wbGV0ZTogc2hvdyBhbGwgaXRlbXMKCX0sCgoJY29tcHV0ZVNpemU6ZnVuY3Rpb24ob1NpemUpewoJCgkJdmFyIHNpemUgPSBvU2l6ZTsKCQl2YXIgd1NpemUgPSB3aW5kb3cuZ2V0U2l6ZSgpOwoJCXZhciBiYXNlU2l6ZSA9IHsgd2lkdGg6d1NpemUueC02MCwgaGVpZ2h0OndTaXplLnktNjgtdGhpcy5vcHRpb25zLnRvcFBvc2l0aW9uKjIgfTsvL2N1dCBvdXQgc29tZSBwaXhlbHMgdG8gbWFrZSBpdCBiZXR0ZXIKCQl2YXIgcmF0aW87CgkJdmFyIGNoZWNrOwoJCQoJCXZhciBtYXggPSBNYXRoLm1heCggYmFzZVNpemUuaGVpZ2h0LCBiYXNlU2l6ZS53aWR0aCApOwoKCQlpZihtYXggPT0gYmFzZVNpemUud2lkdGgpewoJCQlyYXRpbyA9IG1heC9zaXplLndpZHRoOwoJCQljaGVjayA9ICdoZWlnaHQnOwoJCX0gZWxzZSB7CgkJCXJhdGlvID0gbWF4L3NpemUuaGVpZ2h0OwoJCQljaGVjayA9ICd3aWR0aCc7CgkJfQoJCQoJCXJhdGlvID0gKHJhdGlvIDw9IDEpID8gcmF0aW8gOiAxOwoJCXNpemUgPSBzaXplLm1hcChmdW5jdGlvbihpdGVtKXsgcmV0dXJuIE1hdGguZmxvb3IoaXRlbSpyYXRpbyk7IH0pOwoJCQoJCXJhdGlvID0gKGJhc2VTaXplW2NoZWNrXS9zaXplW2NoZWNrXSA8PSAxKSA/IGJhc2VTaXplW2NoZWNrXS9zaXplW2NoZWNrXSA6IDE7CgkJc2l6ZSA9IHNpemUubWFwKGZ1bmN0aW9uKGl0ZW0peyByZXR1cm4gTWF0aC5mbG9vcihpdGVtKnJhdGlvKTsgfSk7CgkJCgkJaWYodGhpcy5vcHRpb25zLm1heEhlaWdodCA+IDApewoJCQlyYXRpbyA9ICh0aGlzLm9wdGlvbnMubWF4SGVpZ2h0L3NpemUuaGVpZ2h0IDwgMSkgPyB0aGlzLm9wdGlvbnMubWF4SGVpZ2h0L3NpemUuaGVpZ2h0IDogMTsKCQkJc2l6ZSA9IHNpemUubWFwKGZ1bmN0aW9uKGl0ZW0peyByZXR1cm4gTWF0aC5mbG9vcihpdGVtKnJhdGlvKTsgfSk7CgkJfQoJCQoJCXJldHVybiBzaXplOwoJfSwKCQoJLy97IGdhbGxlcnk6J2dhbGwxJywgaW5kZXg6MiwgYXV0b3BsYXk6dHJ1ZSwgZGVsYXk6NyB9CglzaG93R2FsbGVyeTpmdW5jdGlvbihvcHQpewoJCWlmKCFvcHQgfHwgIW9wdC5nYWxsZXJ5KXsgcmV0dXJuOyB9CgkJdmFyIGZpbGVJbmRleCA9ICgkY2hrKG9wdC5pbmRleCkpID8gb3B0LmluZGV4IDogMDsKCQl2YXIgZyA9IHRoaXMuZ2V0R2FsbGVyeShvcHQuZ2FsbGVyeSk7CgkJdmFyIGF1dG8gPSBmYWxzZTsKCQl2YXIgZDsKCQlpZihvcHQuYXV0b3BsYXkgfHwgKGdbJ29wdGlvbnMnXSAmJiBnWydvcHRpb25zJ10uYXV0b3BsYXkpKXsgYXV0byA9IHRydWU7IH0KCQlpZihnICE9IC0xICYmICF0aGlzLm9wZW5lZCl7CgkJCWlmKGF1dG8pewoJCQkJZCA9IChvcHQgJiYgb3B0LmRlbGF5KSA/IG9wdC5kZWxheSA6IChnWydvcHRpb25zJ10gJiYgZ1snb3B0aW9ucyddLmRlbGF5KSA/IGdbJ29wdGlvbnMnXS5kZWxheSA6IHRoaXMuYXV0b1BsYXlEZWxheTsKCQkJCXRoaXMuc3RhcnRBdXRvUGxheSh7IGdhbGxlcnk6ZywgaW5kZXg6ZmlsZUluZGV4LCBkZWxheTpkIH0pOwoJCQl9IGVsc2UgewoJCQkJdGhpcy5vcGVuTWlsa2JveChnLGZpbGVJbmRleCk7CgkJCX0KCQl9Cgl9LAoJCgkvKiAqKioqKioqIFhNTC9BSkFYICoqKioqKiogKi8KCglhZGRHYWxsZXJpZXM6ZnVuY3Rpb24oeG1sZmlsZSl7CgoJCXRoaXMuY3VycmVudFJlcXVlc3QgPSBuZXcgUmVxdWVzdCh7CgkJCW1ldGhvZDonZ2V0JywKCQkJYXV0b0NhbmNlbDp0cnVlLAoJCQl1cmw6eG1sZmlsZSwKCQkJb25SZXF1ZXN0OmZ1bmN0aW9uKCl7CgkJCQkvL3BsYWNlaG9sZGVyCgkJCX0uYmluZFdpdGhFdmVudCh0aGlzKSwKCQkJb25TdWNjZXNzOmZ1bmN0aW9uKHRleHQseG1sKXsKCQkJCXZhciB0ID0gdGV4dC5yZXBsYWNlKC8oPGEuKylcLz4vZ2ksIiQxPjwvYT4iKTsKCQkJCXRoaXMuc2V0R2FsbGVyaWVzKG5ldyBFbGVtZW50KCdkaXYnLHsgaHRtbDp0IH0pLHhtbGZpbGUpOwoJCQl9LmJpbmRXaXRoRXZlbnQodGhpcyksCgkJCW9uRmFpbHVyZTpmdW5jdGlvbih0cmFuc3BvcnQpeyBhbGVydCgnTWlsa2JveCA6OiBhZGRHYWxsZXJpZXM6IFhNTCBmaWxlIHBhdGggZXJyb3Igb3IgbG9jYWwgQWpheCB0ZXN0OiBwbGVhc2UgdGVzdCBhZGRHYWxsZXJpZXMoKSBvbi1saW5lJyk7IH0KCQl9KTsKCQkKCQl0aGlzLmN1cnJlbnRSZXF1ZXN0LnNlbmQoKTsKCX0sCgkKCXNldEdhbGxlcmllczpmdW5jdGlvbihjb250YWluZXIseG1sZmlsZSl7CgkJaWYoIXRoaXMueG1sRmlsZXMuY29udGFpbnMoeG1sZmlsZSkpeyB0aGlzLnhtbEZpbGVzLnB1c2goeG1sZmlsZSk7IH0KCQl2YXIgYyA9IGNvbnRhaW5lcjsKCQl2YXIgZ2FsbGVyaWVzID0gYy5nZXRFbGVtZW50cygnLmdhbGxlcnknKTsKCQl2YXIgbGlua3MgPSBbXTsKCQl2YXIgYXBsaXN0ID0gW107CgkJZ2FsbGVyaWVzLmVhY2goZnVuY3Rpb24oZ2FsbGVyeSxpKXsKCQkJCQkJCgkJCXZhciBvYmogPSB7IAoJCQkJZ2FsbGVyeTpnYWxsZXJ5LmdldFByb3BlcnR5KCduYW1lJyksIAoJCQkJYXV0b3BsYXk6Qm9vbGVhbihnYWxsZXJ5LmdldFByb3BlcnR5KCdhdXRvcGxheScpKSwKCQkJCWRlbGF5Ok51bWJlcihnYWxsZXJ5LmdldFByb3BlcnR5KCdkZWxheScpKQoJCQl9CgkJCQoJCQl2YXIgbCA9IGdhbGxlcnkuZ2V0Q2hpbGRyZW4oJ2EnKTsKCQkJdmFyIGx4ID0gbC5tYXAoZnVuY3Rpb24obGluayl7IHJldHVybiBsaW5rLnNldFByb3BlcnR5KCdyZWwnLCdtaWxrYm94Wycrb2JqLmdhbGxlcnkrJ10nKTsgfSk7CgkJCWxpbmtzLnB1c2gobHgpOwoJCQlpZihvYmouYXV0b3BsYXkpeyBhcGxpc3QucHVzaChvYmopOyB9CgkJfSk7CgkJCgkJdGhpcy5wcmVwYXJlR2FsbGVyaWVzKGxpbmtzLmZsYXR0ZW4oKSk7CgkJdGhpcy5zZXRBdXRvUGxheShhcGxpc3QpOwoJCQoJCWlmKCF0aGlzLmFjdGl2YXRlZCl7IHRoaXMuaW5pdE1pbGtib3goKTsgfQoJCQoJCXRoaXMuZmlyZUV2ZW50KCd4bWxHYWxsZXJpZXMnKTsKCX0sCgkKCQoJCgkvKiAqKioqKiogVVRJTFMgKioqKioqICovCgkKCWNoZWNrRmlsZVR5cGU6ZnVuY3Rpb24oZmlsZSx0eXBlKXsKCQl2YXIgaHJlZiA9IG51bGw7CgkJaWYoJHR5cGUoZmlsZSkgIT0gJ3N0cmluZycpeyBocmVmID0gZmlsZS5yZXRyaWV2ZSgnaHJlZicpOyB9IAoJCWVsc2V7IGhyZWYgPSBmaWxlOyB9CgkJdmFyIHJlZ2V4cCA9IG5ldyBSZWdFeHAoIlwuKCIrdHlwZSsiKSQiLCJpIik7CgkJcmV0dXJuIGhyZWYuc3BsaXQoJz8nKVswXS50ZXN0KHJlZ2V4cCk7Cgl9LAoJCgkvL3JldHJpZXZlcyBnYWxsZXJpZXMgZnJvbSBzdHJpbmdzIGxpa2UgJ2dhbGwxJyBvciAnbWlsa2JveFtnYWxsMV0nIG9yICdtaWxrYm94OmdhbGwxJwoJZ2V0R2FsbGVyeTpmdW5jdGlvbihnYWxsZXJ5KXsKCQl2YXIgZiA9IG51bGw7CgkJaWYoZ2FsbGVyeS50ZXN0KC9ebWlsa2JveC9pKSl7CgkJCWYgPSB0aGlzLmZhbWlsaWVzOwoJCX0gZWxzZSB7CgkJCS8vY3JlYXRlIGEgdGVtcG9yYXJ5IGFycmF5IHdpdGggbmFtZXMgd2l0aG91dCAnbWlsa2JveCcKCQkJZiA9IHRoaXMuZmFtaWxpZXMubWFwKGZ1bmN0aW9uKGl0ZW0pewoJCQkJdmFyIHRyaW1tZWQgPSBpdGVtLnRyaW0oKTsKCQkJCXZhciBuYW1lID0gdHJpbW1lZC5zbGljZSgwLHRyaW1tZWQubGVuZ3RoKS5zdWJzdHIoOCk7CgkJCQl2YXIgY2xlYW5OYW1lID0gbmFtZS5yZXBsYWNlKC8oLispXSQvLCIkMSIpOwoJCQkJcmV0dXJuIGNsZWFuTmFtZTsKCQkJfSk7CgkJfQoJCXZhciBpID0gZi5pbmRleE9mKGdhbGxlcnkpOwoJCXZhciBnID0gKGkgIT0gLTEpID8gdGhpcy5nYWxsZXJpZXNbaV0gOiBpOwoJCXJldHVybiBnOwoJfSwKCQoJc2V0RmlsZVByb3BzOmZ1bmN0aW9uKGZpbGVPYmoscHJvcFN0cmluZyl7CgkJdmFyIHMgPSBwcm9wU3RyaW5nLnNwbGl0KCcsJyk7CgkJcy5lYWNoKGZ1bmN0aW9uKHAsaSl7CgkJCXZhciBjbGVhbiA9IHAudHJpbSgpLnNwbGl0KCc6Jyk7CgkJCWZpbGVPYmouc3RvcmUoY2xlYW5bMF0udHJpbSgpLGNsZWFuWzFdLnRyaW0oKSkKCQl9LHRoaXMpOwoJfSwKCQoJY2hhbmdlT3B0aW9uczpmdW5jdGlvbihvYmopewoJCWlmKCFvYmopeyByZXR1cm47IH0KCQl0aGlzLnNldE9wdGlvbnMob2JqKTsKIAkJdGhpcy5jZW50ZXIuZ2V0KCdtb3JwaCcpLnNldE9wdGlvbnMoeyB0cmFuc2l0aW9uOnRoaXMub3B0aW9ucy5yZXNpemVUcmFuc2l0aW9uLCAgZHVyYXRpb246dGhpcy5vcHRpb25zLnJlc2l6ZUR1cmF0aW9uIH0pOwoJfSwKCQoJc2F2ZU9wdGlvbnM6ZnVuY3Rpb24ob2JqKXsKCQlpZigkY2hrKG9iaikpewoJCQl0aGlzLmZ1bGxPcHRpb25zQmt1cCA9IG9iajsKCQl9IGVsc2UgewoJCQl0aGlzLmZ1bGxPcHRpb25zQmt1cCA9IHRoaXMub3B0aW9uczsKCQl9Cgl9LAoJCglyZXN0b3JlT3B0aW9uczpmdW5jdGlvbigpewoJCXRoaXMuc2V0T3B0aW9ucyh0aGlzLmZ1bGxPcHRpb25zQmt1cCk7CiAJCXZhciBiID0gdGhpcy5vcHRpb25zLmNhbnZhc0JvcmRlcldpZHRoICsgJyBzb2xpZCAnICsgdGhpcy5vcHRpb25zLmNhbnZhc0JvcmRlckNvbG9yOwogCQl0aGlzLmNhbnZhcy5zZXRTdHlsZXMoeyAnYm9yZGVyJzpiLCAncGFkZGluZyc6dGhpcy5vcHRpb25zLmNhbnZhc1BhZGRpbmd9KTsKIAkJdGhpcy5jZW50ZXIuZ2V0KCdtb3JwaCcpLnNldE9wdGlvbnMoeyB0cmFuc2l0aW9uOnRoaXMub3B0aW9ucy5yZXNpemVUcmFuc2l0aW9uLCAgZHVyYXRpb246dGhpcy5vcHRpb25zLnJlc2l6ZUR1cmF0aW9uIH0pOwoJfSwKCQoJcmVsb2FkR2FsbGVyaWVzOmZ1bmN0aW9uKCl7CgkKCQl0aGlzLmdhbGxlcmllcyA9IFtdOwoJCXRoaXMuZmFtaWxpZXMgPSBbXTsKCQkvL3JlLWNoZWNrIGZvciB0YWdzCgkJdGhpcy5mb3JtdGFncyA9ICQkKCdzZWxlY3QnLCd0ZXh0YXJlYScpOwoJCQoJCWlmKCF0aGlzLmFjdGl2YXRlZCl7IHRoaXMuaW5pdE1pbGtib3goZmFsc2UpOyB9CgkJCgkJLy9yZWxvYWQgc3RhbmRhcmQgZ2FsbGVyaWVzCgkJdGhpcy5wcmVwYXJlR2FsbGVyaWVzKCk7CgkJdGhpcy5yZW1vdmVHYWxsZXJpZXNFdmVudHMoKTsKCQl0aGlzLnNldEdhbGxlcmllc0V2ZW50cygpOwoJCQoJCWlmKHRoaXMueG1sRmlsZXMubGVuZ3RoID09IDApeyByZXR1cm47IH0KCQkvL3JlbG9hZCB4bWxHYWxsZXJpZXMKCQl0aGlzLnhtbEZpbGVzLmVhY2goZnVuY3Rpb24oeG1sZmlsZSxpbmRleCl7CgkJCXRoaXMuYWRkR2FsbGVyaWVzKHhtbGZpbGUpOwoJCX0uYmluZCh0aGlzKSk7Cgl9LAoJCgkvKiAqKioqKiogQVVUT1BMQVkgKioqKioqICovCgkKCS8vbGlzdDpBcnJheSBvZiBvYmplY3RzIG9yIGFuIG9iamVjdCA+IFsgeyBnYWxsZXJ5OidnYWxsMScsIGF1dG9wbGF5OnRydWUsIGRlbGF5OjYgfSBdCgkvL3RvIHBlcm1hbmVudGx5IGRlZmluZSBhdXRvcGxheSBvcHRpb25zIGZvciBhbnkgZ2FsbGVyeSAKCXNldEF1dG9QbGF5OmZ1bmN0aW9uKGxpc3QpewoJCXZhciBsID0gKCR0eXBlKGxpc3QpID09ICdvYmplY3QnKSA/IFtsaXN0XSA6IGxpc3Q7CgkJbC5lYWNoKGZ1bmN0aW9uKGl0ZW0pewoJCQl2YXIgZyA9IHRoaXMuZ2V0R2FsbGVyeShpdGVtLmdhbGxlcnkpOwoJCQlpZihnID09IC0xKXsgcmV0dXJuOyB9CgkJCXZhciBhID0gKGl0ZW0uYXV0b3BsYXkgPT0gdHJ1ZSkgPyBpdGVtLmF1dG9wbGF5IDogZmFsc2U7CgkJCXZhciBkID0gKCRjaGsoaXRlbS5kZWxheSkgJiYgYSkgPyBpdGVtLmRlbGF5IDogdGhpcy5vcHRpb25zLmF1dG9QbGF5RGVsYXk7CgkJCWdbJ29wdGlvbnMnXSA9IHsgYXV0b3BsYXk6YSwgZGVsYXk6ZCB9CgkJfSx0aGlzKTsKCX0sCgkKCXN0YXJ0QXV0b1BsYXk6ZnVuY3Rpb24ob3B0KXsvL29wdDogZ2FsbGVyeSwgaW5kZXgsIGRlbGF5IChpbiBzZWNvbmRzKQoJCQoJCXZhciBnID0gLTE7CgkJdmFyIGksZDsKCQlpZihvcHQgJiYgb3B0LmdhbGxlcnkpewoJCQlpZigkdHlwZShvcHQuZ2FsbGVyeSkgPT0gJ2FycmF5Jyl7IGcgPSBvcHQuZ2FsbGVyeSB9CgkJCWVsc2UgaWYoJHR5cGUob3B0LmdhbGxlcnkpID09ICdzdHJpbmcnKXsgCgkJCQlnID0gdGhpcy5nZXRHYWxsZXJ5KG9wdC5nYWxsZXJ5KTsKCQkJfQoJCX0KCQkKCQlpZihnID09IC0xKXsgZyA9IHRoaXMuZ2FsbGVyaWVzWzBdOyB9CgkJCgkJZCA9IChvcHQgJiYgb3B0LmRlbGF5ICYmICgkdHlwZShvcHQuZGVsYXkpID09ICdudW1iZXInKSkgPyBvcHQuZGVsYXkqMTAwMCA6IChnWydvcHRpb25zJ10gJiYgZ1snb3B0aW9ucyddLmRlbGF5KSA/IGdbJ29wdGlvbnMnXS5kZWxheSoxMDAwIDogdGhpcy5vcHRpb25zLmF1dG9QbGF5RGVsYXkqMTAwMDsKCQlpID0gKG9wdCAmJiBvcHQuaW5kZXggJiYgKCR0eXBlKG9wdC5pbmRleCkgPT0gJ251bWJlcicpKSA/IG9wdC5pbmRleCA6IDA7CgkJaWYoZCA8IHRoaXMub3B0aW9ucy5yZXNpemVEdXJhdGlvbioyKXsgZCA9IHRoaXMub3B0aW9ucy5yZXNpemVEdXJhdGlvbioyIH07CgkJdGhpcy5vcHRpb25zLmF1dG9QbGF5RGVsYXkgPSBkLzEwMDA7Ly9zYXZlIGF1dG9QbGF5RGVsYXkgYmVjYXVzZSBub3cgaXQgaXMgY3VzdG9taXplZAoJCQoJCWlmKCF0aGlzLm9wdGlvbnMuYXV0b1BsYXkpeyB0aGlzLnNldE9wdGlvbnMoeyBhdXRvUGxheTp0cnVlLCBhdXRvUGxheURlbGF5OnRoaXMub3B0aW9ucy5hdXRvUGxheURlbGF5IH0pOyB9CgkJCgkJaWYodGhpcy5jbG9zZWQpeyAKCQkJdGhpcy5vcGVuTWlsa2JveChnLGkpOyAKCQkJaWYodGhpcy5tb2RlICE9ICdmaWxlR2FsbGVyeScpeyByZXR1cm47IH0KCQkJdGhpcy5hZGRFdmVudCgnZmlsZVJlYWR5JyxmdW5jdGlvbigpewoJCQkJLy93YWl0IHVudGlsIHRoZSBmaXJzdCBmaWxlIGlzIGxvYWRlZAoJCQkJdGhpcy5pbnRPYmogPSB0aGlzLm5leHRfcHJldl9hdXgucGVyaW9kaWNhbChkLHRoaXMsW251bGwsJ25leHQnXSk7CgkJCQl0aGlzLnJlbW92ZUV2ZW50cygnZmlsZVJlYWR5Jyk7CgkJCX0uYmluZFdpdGhFdmVudCh0aGlzKSk7CgkJfSBlbHNlIHsKCQkJaWYoIXRoaXMuY2xvc2VkKXsgdGhpcy5uZXh0X3ByZXZfYXV4KG51bGwsJ25leHQnKTsgfQoJCQl0aGlzLmludE9iaiA9IHRoaXMubmV4dF9wcmV2X2F1eC5wZXJpb2RpY2FsKGQsdGhpcyxbbnVsbCwnbmV4dCddKTsKCQl9CgoJCXRoaXMucGF1c2VkID0gZmFsc2U7Cgl9LAoJCglzdG9wQXV0b1BsYXk6ZnVuY3Rpb24oKXsKCQlpZih0aGlzLmludE9iail7ICRjbGVhcih0aGlzLmludE9iaik7IHRoaXMuaW50T2JqID0gbnVsbDsgfQoJCXRoaXMucGxheXBhdXNlLnNldFN0eWxlKCdiYWNrZ3JvdW5kUG9zaXRpb24nLCcwIC00NHB4Jyk7CgkJdGhpcy5wYXVzZWQgPSB0cnVlOwoJfSwKCQoJCgkvKiAqKioqKiogSU5JVC9DTE9TRSAqKioqKiogKi8KCQoJcmVtb3ZlR2FsbGVyaWVzRXZlbnRzOmZ1bmN0aW9uKCl7CgkJdGhpcy5nYWxsZXJpZXMuZWFjaChmdW5jdGlvbihnYWxsZXJ5KXsKCQkJJCQoZ2FsbGVyeSkucmVtb3ZlRXZlbnRzKCdjbGljaycpOwoJCX0sdGhpcyk7Cgl9LAoJCglzZXRHYWxsZXJpZXNFdmVudHM6ZnVuY3Rpb24oKXsKCQl0aGlzLmdhbGxlcmllcy5lYWNoKGZ1bmN0aW9uKGdhbGxlcnkpewoJCQoJCQkkJChnYWxsZXJ5KS5hZGRFdmVudCgnY2xpY2snLGZ1bmN0aW9uKGUpewoJCQkJdmFyIGJ1dHRvbj0oJChlLnRhcmdldCkubWF0Y2goJ2EnKSkgPyAkKGUudGFyZ2V0KSA6ICQoZS50YXJnZXQpLmdldFBhcmVudCgnYScpOwoJCQkJZS5wcmV2ZW50RGVmYXVsdCgpOwoJCQkJCgkJCQl2YXIgZyA9IHRoaXMuZ2V0R2FsbGVyeShidXR0b24ucmVsKTsKCQkJCWlmKGcub3B0aW9ucyAmJiBnLm9wdGlvbnMuYXV0b3BsYXkpewoJCQkJCXRoaXMuc2V0T3B0aW9ucyh7IGF1dG9QbGF5Omcub3B0aW9ucy5hdXRvcGxheSwgYXV0b1BsYXlEZWxheTpnLm9wdGlvbnMuZGVsYXkgfSk7CgkJCQl9CgoJCQkJaWYodGhpcy5vcHRpb25zLmF1dG9QbGF5KXsKCQkJCQl0aGlzLnN0YXJ0QXV0b1BsYXkoeyBnYWxsZXJ5OmdhbGxlcnksIGluZGV4OmdhbGxlcnkuaW5kZXhPZihidXR0b24pIH0pOwoJCQkJfSBlbHNlIHsgCgkJCQkJdGhpcy5vcGVuTWlsa2JveChnYWxsZXJ5LCBnYWxsZXJ5LmluZGV4T2YoYnV0dG9uKSk7IAoJCQkJfQoJCQkJCgkJCX0uYmluZFdpdGhFdmVudCh0aGlzKSk7CgkJfSx0aGlzKTsKCX0sCgkKCS8vYWxsIHRoZSBtYWluIGV2ZW50cwoJcHJlcGFyZUV2ZW50czpmdW5jdGlvbih4bWwpewoJCgkJLy9nYWxsZXJpZXMKCQl0aGlzLnNldEdhbGxlcmllc0V2ZW50cygpOwoJCQoJCS8vbmV4dCwgcHJldiwgc2VlIG5leHRfcHJldl9hdXgoKQoJCXRoaXMubmV4dC5hZGRFdmVudCgnY2xpY2snLHRoaXMubmV4dF9wcmV2X2F1eC5iaW5kV2l0aEV2ZW50KHRoaXMsJ25leHQnKSk7CgkJdGhpcy5wcmV2LmFkZEV2ZW50KCdjbGljaycsdGhpcy5uZXh0X3ByZXZfYXV4LmJpbmRXaXRoRXZlbnQodGhpcywncHJldicpKTsKCQkKCQkKCQkvL2NzcyBob3ZlciBkb2Vzbid0IHdvcmsgaW4gaWU2LCBzbyBJIG11c3QgZG8gaXQgdmlhIGpzLi4uCgkJJCQodGhpcy5uZXh0LHRoaXMucHJldix0aGlzLmNsb3NlKS5hZGRFdmVudHMoewoJCQknbW91c2VvdmVyJzpmdW5jdGlvbigpeyB0aGlzLnNldFN0eWxlKCdiYWNrZ3JvdW5kUG9zaXRpb24nLCcwIC0yMnB4Jyk7IH0sCgkJCSdtb3VzZW91dCc6ZnVuY3Rpb24oKXsgdGhpcy5zZXRTdHlsZSgnYmFja2dyb3VuZFBvc2l0aW9uJywnMCAwJyk7IH0KCQl9KTsKCgkJLy9rZXlib2FyZCBuZXh0L3ByZXYvY2xvc2UKCQkkKHdpbmRvdy5kb2N1bWVudCkuYWRkRXZlbnQoJ2tleWRvd24nLGZ1bmN0aW9uKGUpewoJCQlpZih0aGlzLm1vZGUgIT0gJ2ZpbGVHYWxsZXJ5JyB8fCB0aGlzLmJ1c3kgPT0gdHJ1ZSl7IHJldHVybjsgfQoJCQlpZihlLmtleSA9PSAncmlnaHQnIHx8IGUua2V5ID09ICdzcGFjZScpeyB0aGlzLm5leHRfcHJldl9hdXgoZSwnbmV4dCcpOyB9CgkJCWVsc2UgaWYoZS5rZXkgPT0gJ2xlZnQnKXsgdGhpcy5uZXh0X3ByZXZfYXV4KGUsJ3ByZXYnKTsgfQoJCQllbHNlIGlmKGUua2V5ID09ICdlc2MnKXsgdGhpcy5jbG9zZU1pbGtib3goKTsgfQoJCX0uYmluZFdpdGhFdmVudCh0aGlzKSk7CgkJCgkJLy9wbGF5cGF1c2UgZm9yIGF1dG9QbGF5CgkJdGhpcy5wbGF5cGF1c2UuYWRkRXZlbnRzKHsKCQkJCSdtb3VzZW92ZXInOmZ1bmN0aW9uKGUpeyAKCQkJCQlpZih0aGlzLnBhdXNlZCA9PSBmYWxzZSl7IHRoaXMucGxheXBhdXNlLnNldFN0eWxlKCdiYWNrZ3JvdW5kUG9zaXRpb24nLCcwIC0yMnB4Jyk7IH0gCgkJCQkJZWxzZSB7IHRoaXMucGxheXBhdXNlLnNldFN0eWxlKCdiYWNrZ3JvdW5kUG9zaXRpb24nLCcwIC02NnB4Jyk7IH0KCQkJCX0uYmluZFdpdGhFdmVudCh0aGlzKSwKCQkJCSdtb3VzZW91dCc6ZnVuY3Rpb24oKXsgCgkJCQkJaWYodGhpcy5wYXVzZWQgPT0gZmFsc2UpeyB0aGlzLnBsYXlwYXVzZS5zZXRTdHlsZSgnYmFja2dyb3VuZFBvc2l0aW9uJywnMCAwJyk7IH0gCgkJCQkJZWxzZSB7IHRoaXMucGxheXBhdXNlLnNldFN0eWxlKCdiYWNrZ3JvdW5kUG9zaXRpb24nLCcwIC00NHB4Jyk7IH0KCQkJCX0uYmluZFdpdGhFdmVudCh0aGlzKSwKCQkJCSdjbGljayc6ZnVuY3Rpb24oKXsKCQkJCQlpZih0aGlzLnBhdXNlZCA9PSBmYWxzZSl7IAoJCQkJCQl0aGlzLnN0b3BBdXRvUGxheSgpOwoJCQkJCQl0aGlzLnBhdXNlZCA9IHRydWU7CgkJCQkJCXRoaXMucGxheXBhdXNlLnNldFN0eWxlKCdiYWNrZ3JvdW5kUG9zaXRpb24nLCcwIC02NnB4Jyk7CgkJCQkJfSBlbHNlIHsKCQkJCQkJdmFyIGQgPSAodGhpcy5jdXJyZW50R2FsbGVyeS5vcHRpb25zICYmIHRoaXMuY3VycmVudEdhbGxlcnkub3B0aW9ucy5kZWxheSkgPyB0aGlzLmN1cnJlbnRHYWxsZXJ5Lm9wdGlvbnMuZGVsYXkgOiB0aGlzLm9wdGlvbnMuYXV0b1BsYXlEZWxheTsKCQkJCQkJdGhpcy5zdGFydEF1dG9QbGF5KHtnYWxsZXJ5OnRoaXMuY3VycmVudEdhbGxlcnksIGluZGV4OnRoaXMuY3VycmVudEluZGV4KzEsIGRlbGF5OmQgfSk7CgkJCQkJCXRoaXMucGF1c2VkID0gZmFsc2U7CgkJCQkJCXRoaXMucGxheXBhdXNlLnNldFN0eWxlKCdiYWNrZ3JvdW5kUG9zaXRpb24nLCcwIDAnKTsKCQkJCQl9CgkJCQl9LmJpbmRXaXRoRXZlbnQodGhpcykKCQl9KTsKCQkKCQkvL292ZXJsYXkKCQl0aGlzLm92ZXJsYXkuZ2V0KCd0d2VlbicpLmFkZEV2ZW50KCdvbkNvbXBsZXRlJyxmdW5jdGlvbigpewoJCQlpZih0aGlzLm92ZXJsYXkuZ2V0U3R5bGUoJ29wYWNpdHknKSA9PSB0aGlzLm9wdGlvbnMub3ZlcmxheU9wYWNpdHkpeyAKCQkJCXRoaXMuY2VudGVyLnR3ZWVuKCdvcGFjaXR5JywxKTsKCQkJfSBlbHNlIGlmKHRoaXMub3ZlcmxheS5nZXRTdHlsZSgnb3BhY2l0eScpID09IDApIHsKCQkJCXRoaXMub3ZlcmxheS5zZXRTdHlsZXMoeydoZWlnaHQnOjAsJ3RvcCc6Jyd9KTsKCQkJfTsKCQl9LmJpbmRXaXRoRXZlbnQodGhpcykpOwoJCQoJCS8vY2VudGVyCgkJdGhpcy5jZW50ZXIuZ2V0KCdtb3JwaCcpLmFkZEV2ZW50KCdvbkNvbXBsZXRlJyxmdW5jdGlvbigpewoJCQkJCQkKCQkJIGlmKCR0eXBlKHRoaXMuY3VycmVudEZpbGUpID09ICJlbGVtZW50Iil7Ly9pcyBpbWFnZSBmaWxlCgkJCQl0aGlzLmNhbnZhcy5ncmFiKHRoaXMuY3VycmVudEZpbGUpOwoJCQkgfSBlbHNlIHsvL29iamVjdDogaXMgc3dmIGZpbGUKCQkJIAkoZnVuY3Rpb24oKXsgdGhpcy5jYW52YXMuZ3JhYih0aGlzLmN1cnJlbnRGaWxlKTsgfSkuZGVsYXkoNTAwLHRoaXMpOwoJCQkgfQogCQkJIAoJCQkgdGhpcy5jYW52YXMudHdlZW4oJ29wYWNpdHknLDEpOwoJCQkgCQkJIAoJCQkgdmFyIGQgPSAoISh0aGlzLm1vZGUgPT0gJ3Nob3dUaGlzSW1hZ2UnKSkgPyB0aGlzLmN1cnJlbnRHYWxsZXJ5W3RoaXMuY3VycmVudEluZGV4XS5yZXRyaWV2ZSgndGl0bGUnKSA6IHRoaXMuc3BlY2lhbERlc2NyaXB0aW9uOwoJCQkgaWYoJGNoayhkKSl7IHRoaXMuZGVzY3JpcHRpb24uaW5uZXJIVE1MID0gZDsgfTsKCQkJIAoJCQkgaWYodGhpcy5tb2RlID09ICdmaWxlR2FsbGVyeScpewoJCQkgCXRoaXMuY291bnQuYXBwZW5kVGV4dCgodGhpcy5jdXJyZW50SW5kZXgrMSkrJyAnK3RoaXMub3B0aW9ucy5pbWFnZU9mVGV4dCsnICcrdGhpcy5jdXJyZW50R2FsbGVyeS5sZW5ndGgpOyAKCQkJIH0KCQkJIAoJCQkgdmFyIGN1cnJlbnRDZW50ZXJIZWlnaHQgPSB0aGlzLmNlbnRlci5nZXRTdHlsZSgnaGVpZ2h0JykudG9JbnQoKTsKCQkJIAoJCQkgdGhpcy5uYXZpZ2F0aW9uLnNldFN0eWxlKCdoZWlnaHQnLHRoaXMuYm90dG9tLmdldFN0eWxlKCdoZWlnaHQnKS50b0ludCgpKTsvL3RvIGhhdmUgdGhlIHJpZ2h0LWJvcmRlciBoZWlnaHQgPT0gdG90YWwgYm90dG9tIGhlaWdodAoJCQkgdmFyIGJvdHRvbVNpemUgPSB0aGlzLmJvdHRvbS5nZXRTaXplKCkueTsKCQkJIAoJCQkgLy9hZnRlciB0aGUgMXN0IHRpbWUsIGN1cnJlbnRDZW50ZXJIZWlnaHQgaXMgYWx3YXlzID4gdGhpcy5jYW52YXMuZ2V0U2l6ZSgpLnkKCQkJIHZhciB0YXJnZXRPZmZzZXQgPSAoY3VycmVudENlbnRlckhlaWdodCA+IHRoaXMuY2FudmFzLmdldFNpemUoKS55KSA/ICh0aGlzLmJvdHRvbS5nZXRTaXplKCkueSt0aGlzLmNhbnZhcy5nZXRTaXplKCkueSktY3VycmVudENlbnRlckhlaWdodCA6IGJvdHRvbVNpemU7CgkJCQkKCQkJIHRoaXMuYm90dG9tLnNldFN0eWxlKCdkaXNwbGF5Jywnbm9uZScpOy8vdG8gYXZvaWQgcmVuZGVyaW5nIHByb2JsZW1zIGR1cmluZyBzZXRGaW5hbEhlaWdodAoKCQkJIHRoaXMuY2VudGVyLnJldHJpZXZlKCdzZXRGaW5hbEhlaWdodCcpLnN0YXJ0KGN1cnJlbnRDZW50ZXJIZWlnaHQsY3VycmVudENlbnRlckhlaWdodCt0YXJnZXRPZmZzZXQpOwoJCX0uYmluZFdpdGhFdmVudCh0aGlzKSk7CgkJCgkJdGhpcy5jZW50ZXIucmV0cmlldmUoJ3NldEZpbmFsSGVpZ2h0JykuYWRkRXZlbnQoJ29uQ29tcGxldGUnLGZ1bmN0aW9uKCl7CgkJCXRoaXMuYm90dG9tLnNldFN0eWxlcyh7J3Zpc2liaWxpdHknOid2aXNpYmxlJywnZGlzcGxheSc6J2Jsb2NrJ30pOwoJCQkkJCh0aGlzLmRlc2NyaXB0aW9uLHRoaXMubmF2aWdhdGlvbikuc2V0U3R5bGUoJ3Zpc2liaWxpdHknLCd2aXNpYmxlJyk7CgkJCS8vcmVzZXQgb3ZlcmxheSBoZWlnaHQgYmFzZWQgb24gcG9zaXRpb24gYW5kIGhlaWdodAoJCQl2YXIgc2Nyb2xsU2l6ZSA9ICQod2luZG93KS5nZXRTY3JvbGxTaXplKCkueTsKCQkJdmFyIHNjcm9sbFRvcCA9ICQod2luZG93KS5nZXRTY3JvbGwoKS55OwoJCQkKCQkJdGhpcy5vdmVybGF5LnNldFN0eWxlcyh7J2hlaWdodCc6c2Nyb2xsU2l6ZStzY3JvbGxUb3AsICd0b3AnOi1zY3JvbGxUb3AgfSk7CgkJCXRoaXMuYnVzeSA9IGZhbHNlOwoJCX0uYmluZFdpdGhFdmVudCh0aGlzKSk7CgkJCgkJLy9yZXNldCBvdmVybGF5IGhlaWdodCBhbmQgcG9zaXRpb24gb25SZXNpemUKCQl3aW5kb3cuYWRkRXZlbnQoJ3Jlc2l6ZScsZnVuY3Rpb24oKXsKCQkJaWYodGhpcy5vdmVybGF5LmdldFN0eWxlKCdvcGFjaXR5JykgPT0gMCl7IHJldHVybjsgfTsvL3Jlc2l6ZSBvbmx5IGlmIHZpc2libGUKCQkJdmFyIHNjcm9sbFNpemUgPSAkKHdpbmRvdykuZ2V0U2Nyb2xsU2l6ZSgpLnk7CgkJCXZhciBzY3JvbGxUb3AgPSAkKHdpbmRvdykuZ2V0U2Nyb2xsKCkueTsKCQkJdGhpcy5vdmVybGF5LnNldFN0eWxlcyh7ICdoZWlnaHQnOnNjcm9sbFNpemUrc2Nyb2xsVG9wLCd0b3AnOi1zY3JvbGxUb3AgfSk7CgkJfS5iaW5kV2l0aEV2ZW50KHRoaXMpKTsKCgkJLy9jbG9zZQoJCSQkKHRoaXMub3ZlcmxheSx0aGlzLmNsb3NlKS5hZGRFdmVudCgnY2xpY2snLHRoaXMuY2xvc2VNaWxrYm94LmJpbmRXaXRoRXZlbnQodGhpcykpOwoKCQkvL2NoZWNrCgkJdGhpcy5ldmVudHNvayA9IHRydWU7Cgl9LAoJCgluZXh0X3ByZXZfYXV4OmZ1bmN0aW9uKGUsZGlyZWN0aW9uKXsKCQkKCQlpZihlKXsgCgkJCWUucHJldmVudERlZmF1bHQoKTsKCQkJdGhpcy5zdG9wQXV0b1BsYXkoKTsKCQl9IGVsc2UgeyAKCQkJLy9pZiB0aGVyZSdzIG5vIGV2ZW50IG9iaiwgdGhhbiB0aGlzIGlzIGNhbGxlZCBieSBhdXRvUGxheSgpCgkJCWlmKHRoaXMuYnVzeSB8fCAhdGhpcy5maWxlUmVhZHkpeyByZXR1cm47IH0vL3N0b3AgYXV0b3BsYXkoKQoJCX0KCgkJdGhpcy5idXN5ID0gdHJ1ZTsgLy9mb3Iga2V5Ym9hcmQgYW5kIGF1dG9wbGF5CgkJCgkJdmFyIGksIF9pOwoJCQoJCWlmKGRpcmVjdGlvbiA9PSAibmV4dCIpewoJCQlpPSAodGhpcy5jdXJyZW50SW5kZXggIT0gdGhpcy5jdXJyZW50R2FsbGVyeS5sZW5ndGgtMSkgPyB0aGlzLmN1cnJlbnRJbmRleCArPSAxIDogdGhpcy5jdXJyZW50SW5kZXggPSAwOwoJCQlfaT0gKHRoaXMuY3VycmVudEluZGV4ICE9IHRoaXMuY3VycmVudEdhbGxlcnkubGVuZ3RoLTEpID8gdGhpcy5jdXJyZW50SW5kZXggKyAxIDogMDsKCQl9IGVsc2UgewoJCQlpPSAodGhpcy5jdXJyZW50SW5kZXggIT0gMCkgPyB0aGlzLmN1cnJlbnRJbmRleCAtPSAxIDogdGhpcy5jdXJyZW50SW5kZXggPSB0aGlzLmN1cnJlbnRHYWxsZXJ5Lmxlbmd0aC0xOwoJCQlfaT0gKHRoaXMuY3VycmVudEluZGV4ICE9IDApID8gdGhpcy5jdXJyZW50SW5kZXggLSAxIDogdGhpcy5jdXJyZW50R2FsbGVyeS5sZW5ndGgtMTsJCQoJCX07CgkJCgkJdGhpcy5jYW52YXMuZW1wdHkoKTsKCQl0aGlzLmRlc2NyaXB0aW9uLmVtcHR5KCk7CgkJdGhpcy5jb3VudC5lbXB0eSgpOwoKCQl0aGlzLmxvYWRGaWxlKHRoaXMuY3VycmVudEdhbGxlcnlbaV0sW3RoaXMuY3VycmVudEdhbGxlcnlbX2ldXSk7Cgl9LAoJCglwcmVwYXJlRWZmZWN0czpmdW5jdGlvbigpewoJCXRoaXMub3ZlcmxheS5zZXQoJ3R3ZWVuJyx7IGR1cmF0aW9uOidzaG9ydCcsbGluazonY2FuY2VsJyB9KTsKCQl0aGlzLmNlbnRlci5zZXQoJ3R3ZWVuJyx7IGR1cmF0aW9uOidzaG9ydCcsbGluazonY2hhaW4nIH0pOwoJCXRoaXMuY2VudGVyLnNldCgnbW9ycGgnLHsgZHVyYXRpb246dGhpcy5vcHRpb25zLnJlc2l6ZUR1cmF0aW9uLGxpbms6J2NoYWluJyx0cmFuc2l0aW9uOnRoaXMub3B0aW9ucy5yZXNpemVUcmFuc2l0aW9uIH0pOwoJCXRoaXMuY2VudGVyLnN0b3JlKCdzZXRGaW5hbEhlaWdodCcsbmV3IEZ4LlR3ZWVuKHRoaXMuY2VudGVyLHtwcm9wZXJ0eTonaGVpZ2h0JyxkdXJhdGlvbjonc2hvcnQnfSkpOwoJCXRoaXMuY2FudmFzLnNldCgndHdlZW4nLHsgbGluazonY2hhaW4nIH0pOwoJfSwKCQoJcHJlcGFyZUdhbGxlcmllczpmdW5jdGlvbihyZXNwb25zZUVsZW1lbnRzKXsKCQl2YXIgbWlsa2JveF9hID0gW107CgkJdmFyIGFfdGFncyA9IChyZXNwb25zZUVsZW1lbnRzKSA/IHJlc3BvbnNlRWxlbWVudHMgOiAkJCgnYScpOwoJCQkJCgkJYV90YWdzLmVhY2goZnVuY3Rpb24oYSl7CgkJCS8vdGVzdCAnbWlsa2JveCcgYW5kIGxpbmsgZXh0ZW5zaW9uLCBhbmQgY29sbGVjdCBhbGwgbWlsa2JveCBsaW5rcwoJCQlpZihhLnJlbCAmJiBhLnJlbC50ZXN0KC9ebWlsa2JveC9pKSAmJiBhLmhyZWYuc3BsaXQoJz8nKVswXS50ZXN0KC9cLihnaWZ8anBnfGpwZWd8cG5nfHN3ZikkL2kpKXsKCQkJCWlmKGEucmVsLmxlbmd0aD43ICYmICF0aGlzLmZhbWlsaWVzLmNvbnRhaW5zKGEucmVsKSl7IHRoaXMuZmFtaWxpZXMucHVzaChhLnJlbCk7IH07CgkJCQltaWxrYm94X2EucHVzaChhKTsKCQkJfQoJCX0sdGhpcyk7CgoJCS8vY3JlYXRlIGFuIGFycmF5IG9mIGFycmF5cyB3aXRoIGFsbCBnYWxsZXJpZXMKCQltaWxrYm94X2EuZWFjaChmdW5jdGlvbihhKXsKCQkJJChhKS5zdG9yZSgnaHJlZicsYS5ocmVmKTsKCQkJJChhKS5zdG9yZSgncmVsJyxhLnJlbCk7CgkJCSQoYSkuc3RvcmUoJ3RpdGxlJyxhLnRpdGxlKTsKCQkJaWYodGhpcy5jaGVja0ZpbGVUeXBlKGEuaHJlZiwic3dmIikpeyB0aGlzLnNldEZpbGVQcm9wcygkKGEpLGEucmV2KTsgfQoKCQkJaWYodGhpcy5vcHRpb25zLnJlbW92ZVRpdGxlKXsgJChhKS5yZW1vdmVQcm9wZXJ0eSgndGl0bGUnKTsgfQoJCQlpZihhLnJlbC5sZW5ndGggPiA3KXsKCQkJCXRoaXMuZmFtaWxpZXMuZWFjaChmdW5jdGlvbihmLGkpewoJCQkJCWlmKGEucmVsID09IGYpewoJCQkJCQl2YXIgZ01vdW50ZWQgPSBmYWxzZTsKCQkJCQkJdmFyIGluZGV4OwoJCQkJCQl0aGlzLmdhbGxlcmllcy5lYWNoKGZ1bmN0aW9uKGcsayl7CgkJCQkJCQlpZihnWzBdLnJlbCA9PSBmKXsgCgkJCQkJCQkJZ01vdW50ZWQgPSB0cnVlOwoJCQkJCQkJCWluZGV4ID0gazsKCQkJCQkJCQlyZXR1cm47CgkJCQkJCQl9CgkJCQkJCX0pOwoJCQkJCQkKCQkJCQkJaWYoZ01vdW50ZWQgPT0gdHJ1ZSl7IHRoaXMuZ2FsbGVyaWVzW2luZGV4XS5wdXNoKCQoYSkpOyB9IAoJCQkJCQllbHNlIHsgdGhpcy5nYWxsZXJpZXMucHVzaChbJChhKV0pOyB9CgkJCQkJfTsKCQkJCX0sdGhpcyk7CgkJCX0gZWxzZSB7IHRoaXMuZ2FsbGVyaWVzLnB1c2goWyQoYSldKTsgfTsKCQl9LHRoaXMpOwoJCQoJfSwKCQkKCXByZXBhcmVIVE1MOmZ1bmN0aW9uKCl7CQkKCQkKCQl0aGlzLm92ZXJsYXkgPSBuZXcgRWxlbWVudCgnZGl2JywgeyAnaWQnOidtYk92ZXJsYXknLCdzdHlsZXMnOnsgJ29wYWNpdHknOjAsJ3Zpc2liaWxpdHknOid2aXNpYmxlJywnaGVpZ2h0JzowLCdvdmVyZmxvdyc6J2hpZGRlbicgfX0pLmluamVjdCgkKGRvY3VtZW50LmJvZHkpKTsKCQkKCQl0aGlzLmNlbnRlciA9IG5ldyBFbGVtZW50KCdkaXYnLCB7J2lkJzonbWJDZW50ZXInLCAnc3R5bGVzJzp7J3dpZHRoJzp0aGlzLm9wdGlvbnMuaW5pdGlhbFdpZHRoLCdoZWlnaHQnOnRoaXMub3B0aW9ucy5pbml0aWFsSGVpZ2h0LCdtYXJnaW5MZWZ0JzotKHRoaXMub3B0aW9ucy5pbml0aWFsV2lkdGgvMiksJ29wYWNpdHknOjAgfX0pLmluamVjdCgkKGRvY3VtZW50LmJvZHkpKTsKCQl0aGlzLmNhbnZhcyA9IG5ldyBFbGVtZW50KCdkaXYnLCB7J2lkJzonbWJDYW52YXMnfSkuaW5qZWN0KHRoaXMuY2VudGVyKTsKCQkKCQl0aGlzLmJvdHRvbSA9IG5ldyBFbGVtZW50KCdkaXYnLHsnaWQnOidtYkJvdHRvbSd9KS5pbmplY3QodGhpcy5jZW50ZXIpLnNldFN0eWxlKCd2aXNpYmlsaXR5JywnaGlkZGVuJyk7CgkJdGhpcy5uYXZpZ2F0aW9uID0gbmV3IEVsZW1lbnQoJ2RpdicseydpZCc6J21iTmF2aWdhdGlvbid9KS5zZXRTdHlsZSgndmlzaWJpbGl0eScsJ2hpZGRlbicpOwoJCXRoaXMuZGVzY3JpcHRpb24gPSBuZXcgRWxlbWVudCgnZGl2Jyx7J2lkJzonbWJEZXNjcmlwdGlvbid9KS5zZXRTdHlsZSgndmlzaWJpbGl0eScsJ2hpZGRlbicpOwoKCQl0aGlzLmJvdHRvbS5hZG9wdCh0aGlzLm5hdmlnYXRpb24sIHRoaXMuZGVzY3JpcHRpb24sIG5ldyBFbGVtZW50KCdkaXYnLHsnY2xhc3MnOidtYkNsZWFyJ30pKTsKCQkKCQl0aGlzLmNsb3NlID0gbmV3IEVsZW1lbnQoJ2EnLHsnaWQnOidtYkNsb3NlTGluayd9KTsKCQl0aGlzLm5leHQgPSBuZXcgRWxlbWVudCgnYScseydpZCc6J21iTmV4dExpbmsnfSk7CgkJdGhpcy5wcmV2ID0gbmV3IEVsZW1lbnQoJ2EnLHsnaWQnOidtYlByZXZMaW5rJ30pOwoJCXRoaXMucGxheXBhdXNlID0gbmV3IEVsZW1lbnQoJ2EnLHsnaWQnOidtYlBsYXlQYXVzZSd9KTsKCQl0aGlzLmNvdW50ID0gbmV3IEVsZW1lbnQoJ3NwYW4nLHsnaWQnOidtYkNvdW50J30pOwoJCQoJCSQkKHRoaXMubmV4dCwgdGhpcy5wcmV2LCB0aGlzLmNvdW50LCB0aGlzLnBsYXlwYXVzZSkuc2V0U3R5bGUoJ2Rpc3BsYXknLCdub25lJyk7CgkJCgkJdGhpcy5uYXZpZ2F0aW9uLmFkb3B0KHRoaXMuY2xvc2UsIHRoaXMubmV4dCwgdGhpcy5wcmV2LCB0aGlzLnBsYXlwYXVzZSwgbmV3IEVsZW1lbnQoJ2RpdicseydjbGFzcyc6J21iQ2xlYXInfSksIHRoaXMuY291bnQpOwoJfSwKCQoJY2xvc2VNaWxrYm94OmZ1bmN0aW9uKCl7CgkJdGhpcy5jYW5jZWxBbGxFZmZlY3RzKCk7CgkJdGhpcy5zdG9wQXV0b1BsYXkoKTsKCQl0aGlzLnNldE9wdGlvbnModGhpcy5hdXRvUGxheUJrdXApOwoKCQl0aGlzLmN1cnJlbnRGaWxlID0gbnVsbDsKCQl0aGlzLmN1cnJlbnRJbmRleCA9IG51bGw7CgkJdGhpcy5jdXJyZW50R2FsbGVyeSA9IG51bGw7CgkJdGhpcy5jdXJyZW50UmVxdWVzdCA9IG51bGw7CgkJdGhpcy5jdXJyZW50UmVzcG9uc2UgPSBudWxsOwogCQkKCQkkJCh0aGlzLnByZXYsIHRoaXMubmV4dCwgdGhpcy5wbGF5cGF1c2UsIHRoaXMuY291bnQpLnNldFN0eWxlKCdkaXNwbGF5Jywnbm9uZScpOwoJCXRoaXMucGxheXBhdXNlLnNldFN0eWxlKCdiYWNrZ3JvdW5kUG9zaXRpb24nLCcwIDAnKTsKCQl2YXIgYm9yZGVyID0gdGhpcy5jZW50ZXIuZ2V0U3R5bGUoJ2JvcmRlci1yaWdodC13aWR0aCcpLnRvSW50KCk7CgkJdmFyIG5hdldpZHRoID0gdGhpcy5jbG9zZS5nZXRTaXplKCkueCtib3JkZXI7CgkJdGhpcy5uYXZpZ2F0aW9uLnNldFN0eWxlcyh7J3dpZHRoJzpuYXZXaWR0aCwnaGVpZ2h0JzonJywndmlzaWJpbGl0eSc6J2hpZGRlbid9KTsKCQl0aGlzLmRlc2NyaXB0aW9uLnNldFN0eWxlKCdtYXJnaW4tcmlnaHQnLG5hdldpZHRoKTsKCQl0aGlzLmRlc2NyaXB0aW9uLmVtcHR5KCk7CgkJdGhpcy5ib3R0b20uc2V0U3R5bGVzKHsndmlzaWJpbGl0eSc6J2hpZGRlbicsJ2Rpc3BsYXknOicnfSk7CgkJCiAgIAl0aGlzLmNhbnZhcy5zZXRTdHlsZXMoeydvcGFjaXR5JzowLCAnd2lkdGgnOicnLCAnaGVpZ2h0JzonJ30pOwogCQl0aGlzLmNhbnZhcy5lbXB0eSgpOwogCQkKIAkJdGhpcy5jb3VudC5lbXB0eSgpOwoJCQoJCXRoaXMuY2VudGVyLnNldFN0eWxlcyh7J29wYWNpdHknOjAsJ3dpZHRoJzp0aGlzLm9wdGlvbnMuaW5pdGlhbFdpZHRoLCdoZWlnaHQnOnRoaXMub3B0aW9ucy5pbml0aWFsSGVpZ2h0LCdtYXJnaW5MZWZ0JzotKHRoaXMub3B0aW9ucy5pbml0aWFsV2lkdGgvMil9KTsKCQl0aGlzLm92ZXJsYXkudHdlZW4oJ29wYWNpdHknLDApOy8vc2VlIG9uQ29tcGxldGUgaW4gcHJlcGFyZUV2ZW50cygpIAoJCQoJCWlmKHRoaXMuZm9ybXRhZ3MgJiYgdGhpcy5mb3JtdGFncy5sZW5ndGggIT0gMCl7IHRoaXMuZm9ybXRhZ3Muc2V0U3R5bGUoJ2Rpc3BsYXknLCcnKSB9OwoJCQoJCXRoaXMubW9kZSA9IG51bGw7CgkJdGhpcy5jbG9zZWQgPSB0cnVlOwoJCXRoaXMuZmlyc3QgPSB0cnVlOwoJCXRoaXMuZmlsZVJlYWR5ID0gZmFsc2U7CgkJdGhpcy5maXJlRXZlbnQoJ2Nsb3NlZCcpOwoJfSwKCQoJY2FuY2VsQWxsRWZmZWN0czpmdW5jdGlvbigpewoJCXRoaXMub3ZlcmxheS5nZXQoJ3R3ZWVuJykuY2FuY2VsKCk7CgkJdGhpcy5jZW50ZXIuZ2V0KCdtb3JwaCcpLmNhbmNlbCgpOwoJCXRoaXMuY2VudGVyLmdldCgndHdlZW4nKS5jYW5jZWwoKTsKCQl0aGlzLmNlbnRlci5yZXRyaWV2ZSgnc2V0RmluYWxIZWlnaHQnKS5jYW5jZWwoKTsKCQl0aGlzLmNhbnZhcy5nZXQoJ3R3ZWVuJykuY2FuY2VsKCk7Cgl9CgkKfSk7Ly9FTkQgTUlMS0JPWDsKCndpbmRvdy5hZGRFdmVudCgnZG9tcmVhZHknLCBmdW5jdGlvbigpeyAKCW1pbGtib3ggPSBuZXcgTWlsa2JveCgpOwp9KTsK]]></data>
	</file>
	<file>
	  <filename>/templates/milkbox/js/mootools-1.2.3-core-yc.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly9Nb29Ub29scywgPGh0dHA6Ly9tb290b29scy5uZXQ+LCBNeSBPYmplY3QgT3JpZW50ZWQgKEphdmFTY3JpcHQpIFRvb2xzLiBDb3B5cmlnaHQgKGMpIDIwMDYtMjAwOSBWYWxlcmlvIFByb2lldHRpLCA8aHR0cDovL21hZDRtaWxrLm5ldD4sIE1JVCBTdHlsZSBMaWNlbnNlLgoKdmFyIE1vb1Rvb2xzPXt2ZXJzaW9uOiIxLjIuMyIsYnVpbGQ6IjQ5ODBhYTBmYjc0ZDJmNmViODBiY2Q5ZjViOGUxZmQ2ZmJiOGY2MDcifTt2YXIgTmF0aXZlPWZ1bmN0aW9uKGspe2s9a3x8e307dmFyIGE9ay5uYW1lO3ZhciBpPWsubGVnYWN5O3ZhciBiPWsucHJvdGVjdDsKdmFyIGM9ay5pbXBsZW1lbnQ7dmFyIGg9ay5nZW5lcmljczt2YXIgZj1rLmluaXRpYWxpemU7dmFyIGc9ay5hZnRlckltcGxlbWVudHx8ZnVuY3Rpb24oKXt9O3ZhciBkPWZ8fGk7aD1oIT09ZmFsc2U7ZC5jb25zdHJ1Y3Rvcj1OYXRpdmU7ZC4kZmFtaWx5PXtuYW1lOiJuYXRpdmUifTsKaWYoaSYmZil7ZC5wcm90b3R5cGU9aS5wcm90b3R5cGU7fWQucHJvdG90eXBlLmNvbnN0cnVjdG9yPWQ7aWYoYSl7dmFyIGU9YS50b0xvd2VyQ2FzZSgpO2QucHJvdG90eXBlLiRmYW1pbHk9e25hbWU6ZX07TmF0aXZlLnR5cGl6ZShkLGUpO312YXIgaj1mdW5jdGlvbihuLGwsbyxtKXtpZighYnx8bXx8IW4ucHJvdG90eXBlW2xdKXtuLnByb3RvdHlwZVtsXT1vOwp9aWYoaCl7TmF0aXZlLmdlbmVyaWNpemUobixsLGIpO31nLmNhbGwobixsLG8pO3JldHVybiBuO307ZC5hbGlhcz1mdW5jdGlvbihuLGwscCl7aWYodHlwZW9mIG49PSJzdHJpbmciKXt2YXIgbz10aGlzLnByb3RvdHlwZVtuXTtpZigobj1vKSl7cmV0dXJuIGoodGhpcyxsLG4scCk7Cn19Zm9yKHZhciBtIGluIG4pe3RoaXMuYWxpYXMobSxuW21dLGwpO31yZXR1cm4gdGhpczt9O2QuaW1wbGVtZW50PWZ1bmN0aW9uKG0sbCxvKXtpZih0eXBlb2YgbT09InN0cmluZyIpe3JldHVybiBqKHRoaXMsbSxsLG8pO31mb3IodmFyIG4gaW4gbSl7aih0aGlzLG4sbVtuXSxsKTsKfXJldHVybiB0aGlzO307aWYoYyl7ZC5pbXBsZW1lbnQoYyk7fXJldHVybiBkO307TmF0aXZlLmdlbmVyaWNpemU9ZnVuY3Rpb24oYixjLGEpe2lmKCghYXx8IWJbY10pJiZ0eXBlb2YgYi5wcm90b3R5cGVbY109PSJmdW5jdGlvbiIpe2JbY109ZnVuY3Rpb24oKXt2YXIgZD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpOwpyZXR1cm4gYi5wcm90b3R5cGVbY10uYXBwbHkoZC5zaGlmdCgpLGQpO307fX07TmF0aXZlLmltcGxlbWVudD1mdW5jdGlvbihkLGMpe2Zvcih2YXIgYj0wLGE9ZC5sZW5ndGg7YjxhO2IrKyl7ZFtiXS5pbXBsZW1lbnQoYyk7fX07TmF0aXZlLnR5cGl6ZT1mdW5jdGlvbihhLGIpe2lmKCFhLnR5cGUpe2EudHlwZT1mdW5jdGlvbihjKXtyZXR1cm4oJHR5cGUoYyk9PT1iKTsKfTt9fTsoZnVuY3Rpb24oKXt2YXIgYT17QXJyYXk6QXJyYXksRGF0ZTpEYXRlLEZ1bmN0aW9uOkZ1bmN0aW9uLE51bWJlcjpOdW1iZXIsUmVnRXhwOlJlZ0V4cCxTdHJpbmc6U3RyaW5nfTtmb3IodmFyIGggaW4gYSl7bmV3IE5hdGl2ZSh7bmFtZTpoLGluaXRpYWxpemU6YVtoXSxwcm90ZWN0OnRydWV9KTsKfXZhciBkPXsiYm9vbGVhbiI6Qm9vbGVhbiwibmF0aXZlIjpOYXRpdmUsb2JqZWN0Ok9iamVjdH07Zm9yKHZhciBjIGluIGQpe05hdGl2ZS50eXBpemUoZFtjXSxjKTt9dmFyIGY9e0FycmF5OlsiY29uY2F0IiwiaW5kZXhPZiIsImpvaW4iLCJsYXN0SW5kZXhPZiIsInBvcCIsInB1c2giLCJyZXZlcnNlIiwic2hpZnQiLCJzbGljZSIsInNvcnQiLCJzcGxpY2UiLCJ0b1N0cmluZyIsInVuc2hpZnQiLCJ2YWx1ZU9mIl0sU3RyaW5nOlsiY2hhckF0IiwiY2hhckNvZGVBdCIsImNvbmNhdCIsImluZGV4T2YiLCJsYXN0SW5kZXhPZiIsIm1hdGNoIiwicmVwbGFjZSIsInNlYXJjaCIsInNsaWNlIiwic3BsaXQiLCJzdWJzdHIiLCJzdWJzdHJpbmciLCJ0b0xvd2VyQ2FzZSIsInRvVXBwZXJDYXNlIiwidmFsdWVPZiJdfTsKZm9yKHZhciBlIGluIGYpe2Zvcih2YXIgYj1mW2VdLmxlbmd0aDtiLS07KXtOYXRpdmUuZ2VuZXJpY2l6ZShhW2VdLGZbZV1bYl0sdHJ1ZSk7fX19KSgpO3ZhciBIYXNoPW5ldyBOYXRpdmUoe25hbWU6Ikhhc2giLGluaXRpYWxpemU6ZnVuY3Rpb24oYSl7aWYoJHR5cGUoYSk9PSJoYXNoIil7YT0kdW5saW5rKGEuZ2V0Q2xlYW4oKSk7Cn1mb3IodmFyIGIgaW4gYSl7dGhpc1tiXT1hW2JdO31yZXR1cm4gdGhpczt9fSk7SGFzaC5pbXBsZW1lbnQoe2ZvckVhY2g6ZnVuY3Rpb24oYixjKXtmb3IodmFyIGEgaW4gdGhpcyl7aWYodGhpcy5oYXNPd25Qcm9wZXJ0eShhKSl7Yi5jYWxsKGMsdGhpc1thXSxhLHRoaXMpOwp9fX0sZ2V0Q2xlYW46ZnVuY3Rpb24oKXt2YXIgYj17fTtmb3IodmFyIGEgaW4gdGhpcyl7aWYodGhpcy5oYXNPd25Qcm9wZXJ0eShhKSl7YlthXT10aGlzW2FdO319cmV0dXJuIGI7fSxnZXRMZW5ndGg6ZnVuY3Rpb24oKXt2YXIgYj0wO2Zvcih2YXIgYSBpbiB0aGlzKXtpZih0aGlzLmhhc093blByb3BlcnR5KGEpKXtiKys7Cn19cmV0dXJuIGI7fX0pO0hhc2guYWxpYXMoImZvckVhY2giLCJlYWNoIik7QXJyYXkuaW1wbGVtZW50KHtmb3JFYWNoOmZ1bmN0aW9uKGMsZCl7Zm9yKHZhciBiPTAsYT10aGlzLmxlbmd0aDtiPGE7YisrKXtjLmNhbGwoZCx0aGlzW2JdLGIsdGhpcyk7fX19KTtBcnJheS5hbGlhcygiZm9yRWFjaCIsImVhY2giKTsKZnVuY3Rpb24gJEEoYil7aWYoYi5pdGVtKXt2YXIgYT1iLmxlbmd0aCxjPW5ldyBBcnJheShhKTt3aGlsZShhLS0pe2NbYV09YlthXTt9cmV0dXJuIGM7fXJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChiKTt9ZnVuY3Rpb24gJGFyZ3VtZW50cyhhKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzW2FdOwp9O31mdW5jdGlvbiAkY2hrKGEpe3JldHVybiAhIShhfHxhPT09MCk7fWZ1bmN0aW9uICRjbGVhcihhKXtjbGVhclRpbWVvdXQoYSk7Y2xlYXJJbnRlcnZhbChhKTtyZXR1cm4gbnVsbDt9ZnVuY3Rpb24gJGRlZmluZWQoYSl7cmV0dXJuKGEhPXVuZGVmaW5lZCk7fWZ1bmN0aW9uICRlYWNoKGMsYixkKXt2YXIgYT0kdHlwZShjKTsKKChhPT0iYXJndW1lbnRzInx8YT09ImNvbGxlY3Rpb24ifHxhPT0iYXJyYXkiKT9BcnJheTpIYXNoKS5lYWNoKGMsYixkKTt9ZnVuY3Rpb24gJGVtcHR5KCl7fWZ1bmN0aW9uICRleHRlbmQoYyxhKXtmb3IodmFyIGIgaW4gKGF8fHt9KSl7Y1tiXT1hW2JdO31yZXR1cm4gYzsKfWZ1bmN0aW9uICRIKGEpe3JldHVybiBuZXcgSGFzaChhKTt9ZnVuY3Rpb24gJGxhbWJkYShhKXtyZXR1cm4oJHR5cGUoYSk9PSJmdW5jdGlvbiIpP2E6ZnVuY3Rpb24oKXtyZXR1cm4gYTt9O31mdW5jdGlvbiAkbWVyZ2UoKXt2YXIgYT1BcnJheS5zbGljZShhcmd1bWVudHMpOwphLnVuc2hpZnQoe30pO3JldHVybiAkbWl4aW4uYXBwbHkobnVsbCxhKTt9ZnVuY3Rpb24gJG1peGluKGUpe2Zvcih2YXIgZD0xLGE9YXJndW1lbnRzLmxlbmd0aDtkPGE7ZCsrKXt2YXIgYj1hcmd1bWVudHNbZF07aWYoJHR5cGUoYikhPSJvYmplY3QiKXtjb250aW51ZTsKfWZvcih2YXIgYyBpbiBiKXt2YXIgZz1iW2NdLGY9ZVtjXTtlW2NdPShmJiYkdHlwZShnKT09Im9iamVjdCImJiR0eXBlKGYpPT0ib2JqZWN0Iik/JG1peGluKGYsZyk6JHVubGluayhnKTt9fXJldHVybiBlO31mdW5jdGlvbiAkcGljaygpe2Zvcih2YXIgYj0wLGE9YXJndW1lbnRzLmxlbmd0aDsKYjxhO2IrKyl7aWYoYXJndW1lbnRzW2JdIT11bmRlZmluZWQpe3JldHVybiBhcmd1bWVudHNbYl07fX1yZXR1cm4gbnVsbDt9ZnVuY3Rpb24gJHJhbmRvbShiLGEpe3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKGEtYisxKStiKTt9ZnVuY3Rpb24gJHNwbGF0KGIpe3ZhciBhPSR0eXBlKGIpOwpyZXR1cm4oYSk/KChhIT0iYXJyYXkiJiZhIT0iYXJndW1lbnRzIik/W2JdOmIpOltdO312YXIgJHRpbWU9RGF0ZS5ub3d8fGZ1bmN0aW9uKCl7cmV0dXJuICtuZXcgRGF0ZTt9O2Z1bmN0aW9uICR0cnkoKXtmb3IodmFyIGI9MCxhPWFyZ3VtZW50cy5sZW5ndGg7YjxhOwpiKyspe3RyeXtyZXR1cm4gYXJndW1lbnRzW2JdKCk7fWNhdGNoKGMpe319cmV0dXJuIG51bGw7fWZ1bmN0aW9uICR0eXBlKGEpe2lmKGE9PXVuZGVmaW5lZCl7cmV0dXJuIGZhbHNlO31pZihhLiRmYW1pbHkpe3JldHVybihhLiRmYW1pbHkubmFtZT09Im51bWJlciImJiFpc0Zpbml0ZShhKSk/ZmFsc2U6YS4kZmFtaWx5Lm5hbWU7Cn1pZihhLm5vZGVOYW1lKXtzd2l0Y2goYS5ub2RlVHlwZSl7Y2FzZSAxOnJldHVybiJlbGVtZW50IjtjYXNlIDM6cmV0dXJuKC9cUy8pLnRlc3QoYS5ub2RlVmFsdWUpPyJ0ZXh0bm9kZSI6IndoaXRlc3BhY2UiO319ZWxzZXtpZih0eXBlb2YgYS5sZW5ndGg9PSJudW1iZXIiKXtpZihhLmNhbGxlZSl7cmV0dXJuImFyZ3VtZW50cyI7Cn1lbHNle2lmKGEuaXRlbSl7cmV0dXJuImNvbGxlY3Rpb24iO319fX1yZXR1cm4gdHlwZW9mIGE7fWZ1bmN0aW9uICR1bmxpbmsoYyl7dmFyIGI7c3dpdGNoKCR0eXBlKGMpKXtjYXNlIm9iamVjdCI6Yj17fTtmb3IodmFyIGUgaW4gYyl7YltlXT0kdW5saW5rKGNbZV0pOwp9YnJlYWs7Y2FzZSJoYXNoIjpiPW5ldyBIYXNoKGMpO2JyZWFrO2Nhc2UiYXJyYXkiOmI9W107Zm9yKHZhciBkPTAsYT1jLmxlbmd0aDtkPGE7ZCsrKXtiW2RdPSR1bmxpbmsoY1tkXSk7fWJyZWFrO2RlZmF1bHQ6cmV0dXJuIGM7fXJldHVybiBiO312YXIgQnJvd3Nlcj0kbWVyZ2Uoe0VuZ2luZTp7bmFtZToidW5rbm93biIsdmVyc2lvbjowfSxQbGF0Zm9ybTp7bmFtZTood2luZG93Lm9yaWVudGF0aW9uIT11bmRlZmluZWQpPyJpcG9kIjoobmF2aWdhdG9yLnBsYXRmb3JtLm1hdGNoKC9tYWN8d2lufGxpbnV4L2kpfHxbIm90aGVyIl0pWzBdLnRvTG93ZXJDYXNlKCl9LEZlYXR1cmVzOnt4cGF0aDohIShkb2N1bWVudC5ldmFsdWF0ZSksYWlyOiEhKHdpbmRvdy5ydW50aW1lKSxxdWVyeTohIShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKX0sUGx1Z2luczp7fSxFbmdpbmVzOntwcmVzdG86ZnVuY3Rpb24oKXtyZXR1cm4oIXdpbmRvdy5vcGVyYSk/ZmFsc2U6KChhcmd1bWVudHMuY2FsbGVlLmNhbGxlcik/OTYwOigoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSk/OTUwOjkyNSkpOwp9LHRyaWRlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4oIXdpbmRvdy5BY3RpdmVYT2JqZWN0KT9mYWxzZTooKHdpbmRvdy5YTUxIdHRwUmVxdWVzdCk/NTo0KTt9LHdlYmtpdDpmdW5jdGlvbigpe3JldHVybihuYXZpZ2F0b3IudGFpbnRFbmFibGVkKT9mYWxzZTooKEJyb3dzZXIuRmVhdHVyZXMueHBhdGgpPygoQnJvd3Nlci5GZWF0dXJlcy5xdWVyeSk/NTI1OjQyMCk6NDE5KTsKfSxnZWNrbzpmdW5jdGlvbigpe3JldHVybihkb2N1bWVudC5nZXRCb3hPYmplY3RGb3I9PXVuZGVmaW5lZCk/ZmFsc2U6KChkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKT8xOToxOCk7fX19LEJyb3dzZXJ8fHt9KTtCcm93c2VyLlBsYXRmb3JtW0Jyb3dzZXIuUGxhdGZvcm0ubmFtZV09dHJ1ZTsKQnJvd3Nlci5kZXRlY3Q9ZnVuY3Rpb24oKXtmb3IodmFyIGIgaW4gdGhpcy5FbmdpbmVzKXt2YXIgYT10aGlzLkVuZ2luZXNbYl0oKTtpZihhKXt0aGlzLkVuZ2luZT17bmFtZTpiLHZlcnNpb246YX07dGhpcy5FbmdpbmVbYl09dGhpcy5FbmdpbmVbYithXT10cnVlOwpicmVhazt9fXJldHVybntuYW1lOmIsdmVyc2lvbjphfTt9O0Jyb3dzZXIuZGV0ZWN0KCk7QnJvd3Nlci5SZXF1ZXN0PWZ1bmN0aW9uKCl7cmV0dXJuICR0cnkoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7fSxmdW5jdGlvbigpe3JldHVybiBuZXcgQWN0aXZlWE9iamVjdCgiTVNYTUwyLlhNTEhUVFAiKTsKfSk7fTtCcm93c2VyLkZlYXR1cmVzLnhocj0hIShCcm93c2VyLlJlcXVlc3QoKSk7QnJvd3Nlci5QbHVnaW5zLkZsYXNoPShmdW5jdGlvbigpe3ZhciBhPSgkdHJ5KGZ1bmN0aW9uKCl7cmV0dXJuIG5hdmlnYXRvci5wbHVnaW5zWyJTaG9ja3dhdmUgRmxhc2giXS5kZXNjcmlwdGlvbjsKfSxmdW5jdGlvbigpe3JldHVybiBuZXcgQWN0aXZlWE9iamVjdCgiU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxhc2giKS5HZXRWYXJpYWJsZSgiJHZlcnNpb24iKTt9KXx8IjAgcjAiKS5tYXRjaCgvXGQrL2cpO3JldHVybnt2ZXJzaW9uOnBhcnNlSW50KGFbMF18fDArIi4iK2FbMV0sMTApfHwwLGJ1aWxkOnBhcnNlSW50KGFbMl0sMTApfHwwfTsKfSkoKTtmdW5jdGlvbiAkZXhlYyhiKXtpZighYil7cmV0dXJuIGI7fWlmKHdpbmRvdy5leGVjU2NyaXB0KXt3aW5kb3cuZXhlY1NjcmlwdChiKTt9ZWxzZXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTthLnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQvamF2YXNjcmlwdCIpOwphWyhCcm93c2VyLkVuZ2luZS53ZWJraXQmJkJyb3dzZXIuRW5naW5lLnZlcnNpb248NDIwKT8iaW5uZXJUZXh0IjoidGV4dCJdPWI7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChhKTtkb2N1bWVudC5oZWFkLnJlbW92ZUNoaWxkKGEpO31yZXR1cm4gYjt9TmF0aXZlLlVJRD0xOwp2YXIgJHVpZD0oQnJvd3Nlci5FbmdpbmUudHJpZGVudCk/ZnVuY3Rpb24oYSl7cmV0dXJuKGEudWlkfHwoYS51aWQ9W05hdGl2ZS5VSUQrK10pKVswXTt9OmZ1bmN0aW9uKGEpe3JldHVybiBhLnVpZHx8KGEudWlkPU5hdGl2ZS5VSUQrKyk7fTt2YXIgV2luZG93PW5ldyBOYXRpdmUoe25hbWU6IldpbmRvdyIsbGVnYWN5OihCcm93c2VyLkVuZ2luZS50cmlkZW50KT9udWxsOndpbmRvdy5XaW5kb3csaW5pdGlhbGl6ZTpmdW5jdGlvbihhKXskdWlkKGEpOwppZighYS5FbGVtZW50KXthLkVsZW1lbnQ9JGVtcHR5O2lmKEJyb3dzZXIuRW5naW5lLndlYmtpdCl7YS5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTt9YS5FbGVtZW50LnByb3RvdHlwZT0oQnJvd3Nlci5FbmdpbmUud2Via2l0KT93aW5kb3dbIltbRE9NRWxlbWVudC5wcm90b3R5cGVdXSJdOnt9Owp9YS5kb2N1bWVudC53aW5kb3c9YTtyZXR1cm4gJGV4dGVuZChhLFdpbmRvdy5Qcm90b3R5cGUpO30sYWZ0ZXJJbXBsZW1lbnQ6ZnVuY3Rpb24oYixhKXt3aW5kb3dbYl09V2luZG93LlByb3RvdHlwZVtiXT1hO319KTtXaW5kb3cuUHJvdG90eXBlPXskZmFtaWx5OntuYW1lOiJ3aW5kb3cifX07Cm5ldyBXaW5kb3cod2luZG93KTt2YXIgRG9jdW1lbnQ9bmV3IE5hdGl2ZSh7bmFtZToiRG9jdW1lbnQiLGxlZ2FjeTooQnJvd3Nlci5FbmdpbmUudHJpZGVudCk/bnVsbDp3aW5kb3cuRG9jdW1lbnQsaW5pdGlhbGl6ZTpmdW5jdGlvbihhKXskdWlkKGEpO2EuaGVhZD1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF07CmEuaHRtbD1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJodG1sIilbMF07aWYoQnJvd3Nlci5FbmdpbmUudHJpZGVudCYmQnJvd3Nlci5FbmdpbmUudmVyc2lvbjw9NCl7JHRyeShmdW5jdGlvbigpe2EuZXhlY0NvbW1hbmQoIkJhY2tncm91bmRJbWFnZUNhY2hlIixmYWxzZSx0cnVlKTsKfSk7fWlmKEJyb3dzZXIuRW5naW5lLnRyaWRlbnQpe2Eud2luZG93LmF0dGFjaEV2ZW50KCJvbnVubG9hZCIsZnVuY3Rpb24oKXthLndpbmRvdy5kZXRhY2hFdmVudCgib251bmxvYWQiLGFyZ3VtZW50cy5jYWxsZWUpO2EuaGVhZD1hLmh0bWw9YS53aW5kb3c9bnVsbDsKfSk7fXJldHVybiAkZXh0ZW5kKGEsRG9jdW1lbnQuUHJvdG90eXBlKTt9LGFmdGVySW1wbGVtZW50OmZ1bmN0aW9uKGIsYSl7ZG9jdW1lbnRbYl09RG9jdW1lbnQuUHJvdG90eXBlW2JdPWE7fX0pO0RvY3VtZW50LlByb3RvdHlwZT17JGZhbWlseTp7bmFtZToiZG9jdW1lbnQifX07Cm5ldyBEb2N1bWVudChkb2N1bWVudCk7QXJyYXkuaW1wbGVtZW50KHtldmVyeTpmdW5jdGlvbihjLGQpe2Zvcih2YXIgYj0wLGE9dGhpcy5sZW5ndGg7YjxhO2IrKyl7aWYoIWMuY2FsbChkLHRoaXNbYl0sYix0aGlzKSl7cmV0dXJuIGZhbHNlO319cmV0dXJuIHRydWU7Cn0sZmlsdGVyOmZ1bmN0aW9uKGQsZSl7dmFyIGM9W107Zm9yKHZhciBiPTAsYT10aGlzLmxlbmd0aDtiPGE7YisrKXtpZihkLmNhbGwoZSx0aGlzW2JdLGIsdGhpcykpe2MucHVzaCh0aGlzW2JdKTt9fXJldHVybiBjO30sY2xlYW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWx0ZXIoJGRlZmluZWQpOwp9LGluZGV4T2Y6ZnVuY3Rpb24oYyxkKXt2YXIgYT10aGlzLmxlbmd0aDtmb3IodmFyIGI9KGQ8MCk/TWF0aC5tYXgoMCxhK2QpOmR8fDA7YjxhO2IrKyl7aWYodGhpc1tiXT09PWMpe3JldHVybiBiO319cmV0dXJuIC0xO30sbWFwOmZ1bmN0aW9uKGQsZSl7dmFyIGM9W107CmZvcih2YXIgYj0wLGE9dGhpcy5sZW5ndGg7YjxhO2IrKyl7Y1tiXT1kLmNhbGwoZSx0aGlzW2JdLGIsdGhpcyk7fXJldHVybiBjO30sc29tZTpmdW5jdGlvbihjLGQpe2Zvcih2YXIgYj0wLGE9dGhpcy5sZW5ndGg7YjxhO2IrKyl7aWYoYy5jYWxsKGQsdGhpc1tiXSxiLHRoaXMpKXtyZXR1cm4gdHJ1ZTsKfX1yZXR1cm4gZmFsc2U7fSxhc3NvY2lhdGU6ZnVuY3Rpb24oYyl7dmFyIGQ9e30sYj1NYXRoLm1pbih0aGlzLmxlbmd0aCxjLmxlbmd0aCk7Zm9yKHZhciBhPTA7YTxiO2ErKyl7ZFtjW2FdXT10aGlzW2FdO31yZXR1cm4gZDt9LGxpbms6ZnVuY3Rpb24oYyl7dmFyIGE9e307CmZvcih2YXIgZT0wLGI9dGhpcy5sZW5ndGg7ZTxiO2UrKyl7Zm9yKHZhciBkIGluIGMpe2lmKGNbZF0odGhpc1tlXSkpe2FbZF09dGhpc1tlXTtkZWxldGUgY1tkXTticmVhazt9fX1yZXR1cm4gYTt9LGNvbnRhaW5zOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuaW5kZXhPZihhLGIpIT0tMTsKfSxleHRlbmQ6ZnVuY3Rpb24oYyl7Zm9yKHZhciBiPTAsYT1jLmxlbmd0aDtiPGE7YisrKXt0aGlzLnB1c2goY1tiXSk7fXJldHVybiB0aGlzO30sZ2V0TGFzdDpmdW5jdGlvbigpe3JldHVybih0aGlzLmxlbmd0aCk/dGhpc1t0aGlzLmxlbmd0aC0xXTpudWxsO30sZ2V0UmFuZG9tOmZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMubGVuZ3RoKT90aGlzWyRyYW5kb20oMCx0aGlzLmxlbmd0aC0xKV06bnVsbDsKfSxpbmNsdWRlOmZ1bmN0aW9uKGEpe2lmKCF0aGlzLmNvbnRhaW5zKGEpKXt0aGlzLnB1c2goYSk7fXJldHVybiB0aGlzO30sY29tYmluZTpmdW5jdGlvbihjKXtmb3IodmFyIGI9MCxhPWMubGVuZ3RoO2I8YTtiKyspe3RoaXMuaW5jbHVkZShjW2JdKTt9cmV0dXJuIHRoaXM7Cn0sZXJhc2U6ZnVuY3Rpb24oYil7Zm9yKHZhciBhPXRoaXMubGVuZ3RoO2EtLTthKXtpZih0aGlzW2FdPT09Yil7dGhpcy5zcGxpY2UoYSwxKTt9fXJldHVybiB0aGlzO30sZW1wdHk6ZnVuY3Rpb24oKXt0aGlzLmxlbmd0aD0wO3JldHVybiB0aGlzO30sZmxhdHRlbjpmdW5jdGlvbigpe3ZhciBkPVtdOwpmb3IodmFyIGI9MCxhPXRoaXMubGVuZ3RoO2I8YTtiKyspe3ZhciBjPSR0eXBlKHRoaXNbYl0pO2lmKCFjKXtjb250aW51ZTt9ZD1kLmNvbmNhdCgoYz09ImFycmF5Inx8Yz09ImNvbGxlY3Rpb24ifHxjPT0iYXJndW1lbnRzIik/QXJyYXkuZmxhdHRlbih0aGlzW2JdKTp0aGlzW2JdKTsKfXJldHVybiBkO30saGV4VG9SZ2I6ZnVuY3Rpb24oYil7aWYodGhpcy5sZW5ndGghPTMpe3JldHVybiBudWxsO312YXIgYT10aGlzLm1hcChmdW5jdGlvbihjKXtpZihjLmxlbmd0aD09MSl7Yys9Yzt9cmV0dXJuIGMudG9JbnQoMTYpO30pO3JldHVybihiKT9hOiJyZ2IoIithKyIpIjsKfSxyZ2JUb0hleDpmdW5jdGlvbihkKXtpZih0aGlzLmxlbmd0aDwzKXtyZXR1cm4gbnVsbDt9aWYodGhpcy5sZW5ndGg9PTQmJnRoaXNbM109PTAmJiFkKXtyZXR1cm4idHJhbnNwYXJlbnQiO312YXIgYj1bXTtmb3IodmFyIGE9MDthPDM7YSsrKXt2YXIgYz0odGhpc1thXS0wKS50b1N0cmluZygxNik7CmIucHVzaCgoYy5sZW5ndGg9PTEpPyIwIitjOmMpO31yZXR1cm4oZCk/YjoiIyIrYi5qb2luKCIiKTt9fSk7RnVuY3Rpb24uaW1wbGVtZW50KHtleHRlbmQ6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiIGluIGEpe3RoaXNbYl09YVtiXTt9cmV0dXJuIHRoaXM7fSxjcmVhdGU6ZnVuY3Rpb24oYil7dmFyIGE9dGhpczsKYj1ifHx7fTtyZXR1cm4gZnVuY3Rpb24oZCl7dmFyIGM9Yi5hcmd1bWVudHM7Yz0oYyE9dW5kZWZpbmVkKT8kc3BsYXQoYyk6QXJyYXkuc2xpY2UoYXJndW1lbnRzLChiLmV2ZW50KT8xOjApO2lmKGIuZXZlbnQpe2M9W2R8fHdpbmRvdy5ldmVudF0uZXh0ZW5kKGMpOwp9dmFyIGU9ZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseShiLmJpbmR8fG51bGwsYyk7fTtpZihiLmRlbGF5KXtyZXR1cm4gc2V0VGltZW91dChlLGIuZGVsYXkpO31pZihiLnBlcmlvZGljYWwpe3JldHVybiBzZXRJbnRlcnZhbChlLGIucGVyaW9kaWNhbCk7fWlmKGIuYXR0ZW1wdCl7cmV0dXJuICR0cnkoZSk7Cn1yZXR1cm4gZSgpO307fSxydW46ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5hcHBseShiLCRzcGxhdChhKSk7fSxwYXNzOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuY3JlYXRlKHtiaW5kOmIsYXJndW1lbnRzOmF9KTt9LGJpbmQ6ZnVuY3Rpb24oYixhKXtyZXR1cm4gdGhpcy5jcmVhdGUoe2JpbmQ6Yixhcmd1bWVudHM6YX0pOwp9LGJpbmRXaXRoRXZlbnQ6ZnVuY3Rpb24oYixhKXtyZXR1cm4gdGhpcy5jcmVhdGUoe2JpbmQ6Yixhcmd1bWVudHM6YSxldmVudDp0cnVlfSk7fSxhdHRlbXB0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuY3JlYXRlKHtiaW5kOmIsYXJndW1lbnRzOmEsYXR0ZW1wdDp0cnVlfSkoKTsKfSxkZWxheTpmdW5jdGlvbihiLGMsYSl7cmV0dXJuIHRoaXMuY3JlYXRlKHtiaW5kOmMsYXJndW1lbnRzOmEsZGVsYXk6Yn0pKCk7fSxwZXJpb2RpY2FsOmZ1bmN0aW9uKGMsYixhKXtyZXR1cm4gdGhpcy5jcmVhdGUoe2JpbmQ6Yixhcmd1bWVudHM6YSxwZXJpb2RpY2FsOmN9KSgpOwp9fSk7TnVtYmVyLmltcGxlbWVudCh7bGltaXQ6ZnVuY3Rpb24oYixhKXtyZXR1cm4gTWF0aC5taW4oYSxNYXRoLm1heChiLHRoaXMpKTt9LHJvdW5kOmZ1bmN0aW9uKGEpe2E9TWF0aC5wb3coMTAsYXx8MCk7cmV0dXJuIE1hdGgucm91bmQodGhpcyphKS9hO30sdGltZXM6ZnVuY3Rpb24oYixjKXtmb3IodmFyIGE9MDsKYTx0aGlzO2ErKyl7Yi5jYWxsKGMsYSx0aGlzKTt9fSx0b0Zsb2F0OmZ1bmN0aW9uKCl7cmV0dXJuIHBhcnNlRmxvYXQodGhpcyk7fSx0b0ludDpmdW5jdGlvbihhKXtyZXR1cm4gcGFyc2VJbnQodGhpcyxhfHwxMCk7fX0pO051bWJlci5hbGlhcygidGltZXMiLCJlYWNoIik7CihmdW5jdGlvbihiKXt2YXIgYT17fTtiLmVhY2goZnVuY3Rpb24oYyl7aWYoIU51bWJlcltjXSl7YVtjXT1mdW5jdGlvbigpe3JldHVybiBNYXRoW2NdLmFwcGx5KG51bGwsW3RoaXNdLmNvbmNhdCgkQShhcmd1bWVudHMpKSk7fTt9fSk7TnVtYmVyLmltcGxlbWVudChhKTsKfSkoWyJhYnMiLCJhY29zIiwiYXNpbiIsImF0YW4iLCJhdGFuMiIsImNlaWwiLCJjb3MiLCJleHAiLCJmbG9vciIsImxvZyIsIm1heCIsIm1pbiIsInBvdyIsInNpbiIsInNxcnQiLCJ0YW4iXSk7U3RyaW5nLmltcGxlbWVudCh7dGVzdDpmdW5jdGlvbihhLGIpe3JldHVybigodHlwZW9mIGE9PSJzdHJpbmciKT9uZXcgUmVnRXhwKGEsYik6YSkudGVzdCh0aGlzKTsKfSxjb250YWluczpmdW5jdGlvbihhLGIpe3JldHVybihiKT8oYit0aGlzK2IpLmluZGV4T2YoYithK2IpPi0xOnRoaXMuaW5kZXhPZihhKT4tMTt9LHRyaW06ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXBsYWNlKC9eXHMrfFxzKyQvZywiIik7fSxjbGVhbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlcGxhY2UoL1xzKy9nLCIgIikudHJpbSgpOwp9LGNhbWVsQ2FzZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlcGxhY2UoLy1cRC9nLGZ1bmN0aW9uKGEpe3JldHVybiBhLmNoYXJBdCgxKS50b1VwcGVyQ2FzZSgpO30pO30saHlwaGVuYXRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVwbGFjZSgvW0EtWl0vZyxmdW5jdGlvbihhKXtyZXR1cm4oIi0iK2EuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkpOwp9KTt9LGNhcGl0YWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXBsYWNlKC9cYlthLXpdL2csZnVuY3Rpb24oYSl7cmV0dXJuIGEudG9VcHBlckNhc2UoKTt9KTt9LGVzY2FwZVJlZ0V4cDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlcGxhY2UoLyhbLS4qKz9eJHt9KCl8W1xdXC9cXF0pL2csIlxcJDEiKTsKfSx0b0ludDpmdW5jdGlvbihhKXtyZXR1cm4gcGFyc2VJbnQodGhpcyxhfHwxMCk7fSx0b0Zsb2F0OmZ1bmN0aW9uKCl7cmV0dXJuIHBhcnNlRmxvYXQodGhpcyk7fSxoZXhUb1JnYjpmdW5jdGlvbihiKXt2YXIgYT10aGlzLm1hdGNoKC9eIz8oXHd7MSwyfSkoXHd7MSwyfSkoXHd7MSwyfSkkLyk7CnJldHVybihhKT9hLnNsaWNlKDEpLmhleFRvUmdiKGIpOm51bGw7fSxyZ2JUb0hleDpmdW5jdGlvbihiKXt2YXIgYT10aGlzLm1hdGNoKC9cZHsxLDN9L2cpO3JldHVybihhKT9hLnJnYlRvSGV4KGIpOm51bGw7fSxzdHJpcFNjcmlwdHM6ZnVuY3Rpb24oYil7dmFyIGE9IiI7CnZhciBjPXRoaXMucmVwbGFjZSgvPHNjcmlwdFtePl0qPihbXHNcU10qPyk8XC9zY3JpcHQ+L2dpLGZ1bmN0aW9uKCl7YSs9YXJndW1lbnRzWzFdKyJcbiI7cmV0dXJuIiI7fSk7aWYoYj09PXRydWUpeyRleGVjKGEpO31lbHNle2lmKCR0eXBlKGIpPT0iZnVuY3Rpb24iKXtiKGEsYyk7Cn19cmV0dXJuIGM7fSxzdWJzdGl0dXRlOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMucmVwbGFjZShifHwoL1xcP1x7KFtee31dKylcfS9nKSxmdW5jdGlvbihkLGMpe2lmKGQuY2hhckF0KDApPT0iXFwiKXtyZXR1cm4gZC5zbGljZSgxKTt9cmV0dXJuKGFbY10hPXVuZGVmaW5lZCk/YVtjXToiIjsKfSk7fX0pO0hhc2guaW1wbGVtZW50KHtoYXM6T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxrZXlPZjpmdW5jdGlvbihiKXtmb3IodmFyIGEgaW4gdGhpcyl7aWYodGhpcy5oYXNPd25Qcm9wZXJ0eShhKSYmdGhpc1thXT09PWIpe3JldHVybiBhO319cmV0dXJuIG51bGw7Cn0saGFzVmFsdWU6ZnVuY3Rpb24oYSl7cmV0dXJuKEhhc2gua2V5T2YodGhpcyxhKSE9PW51bGwpO30sZXh0ZW5kOmZ1bmN0aW9uKGEpe0hhc2guZWFjaChhfHx7fSxmdW5jdGlvbihjLGIpe0hhc2guc2V0KHRoaXMsYixjKTt9LHRoaXMpO3JldHVybiB0aGlzO30sY29tYmluZTpmdW5jdGlvbihhKXtIYXNoLmVhY2goYXx8e30sZnVuY3Rpb24oYyxiKXtIYXNoLmluY2x1ZGUodGhpcyxiLGMpOwp9LHRoaXMpO3JldHVybiB0aGlzO30sZXJhc2U6ZnVuY3Rpb24oYSl7aWYodGhpcy5oYXNPd25Qcm9wZXJ0eShhKSl7ZGVsZXRlIHRoaXNbYV07fXJldHVybiB0aGlzO30sZ2V0OmZ1bmN0aW9uKGEpe3JldHVybih0aGlzLmhhc093blByb3BlcnR5KGEpKT90aGlzW2FdOm51bGw7Cn0sc2V0OmZ1bmN0aW9uKGEsYil7aWYoIXRoaXNbYV18fHRoaXMuaGFzT3duUHJvcGVydHkoYSkpe3RoaXNbYV09Yjt9cmV0dXJuIHRoaXM7fSxlbXB0eTpmdW5jdGlvbigpe0hhc2guZWFjaCh0aGlzLGZ1bmN0aW9uKGIsYSl7ZGVsZXRlIHRoaXNbYV07fSx0aGlzKTsKcmV0dXJuIHRoaXM7fSxpbmNsdWRlOmZ1bmN0aW9uKGEsYil7aWYodGhpc1thXT09dW5kZWZpbmVkKXt0aGlzW2FdPWI7fXJldHVybiB0aGlzO30sbWFwOmZ1bmN0aW9uKGIsYyl7dmFyIGE9bmV3IEhhc2g7SGFzaC5lYWNoKHRoaXMsZnVuY3Rpb24oZSxkKXthLnNldChkLGIuY2FsbChjLGUsZCx0aGlzKSk7Cn0sdGhpcyk7cmV0dXJuIGE7fSxmaWx0ZXI6ZnVuY3Rpb24oYixjKXt2YXIgYT1uZXcgSGFzaDtIYXNoLmVhY2godGhpcyxmdW5jdGlvbihlLGQpe2lmKGIuY2FsbChjLGUsZCx0aGlzKSl7YS5zZXQoZCxlKTt9fSx0aGlzKTtyZXR1cm4gYTt9LGV2ZXJ5OmZ1bmN0aW9uKGIsYyl7Zm9yKHZhciBhIGluIHRoaXMpe2lmKHRoaXMuaGFzT3duUHJvcGVydHkoYSkmJiFiLmNhbGwoYyx0aGlzW2FdLGEpKXtyZXR1cm4gZmFsc2U7Cn19cmV0dXJuIHRydWU7fSxzb21lOmZ1bmN0aW9uKGIsYyl7Zm9yKHZhciBhIGluIHRoaXMpe2lmKHRoaXMuaGFzT3duUHJvcGVydHkoYSkmJmIuY2FsbChjLHRoaXNbYV0sYSkpe3JldHVybiB0cnVlO319cmV0dXJuIGZhbHNlO30sZ2V0S2V5czpmdW5jdGlvbigpe3ZhciBhPVtdOwpIYXNoLmVhY2godGhpcyxmdW5jdGlvbihjLGIpe2EucHVzaChiKTt9KTtyZXR1cm4gYTt9LGdldFZhbHVlczpmdW5jdGlvbigpe3ZhciBhPVtdO0hhc2guZWFjaCh0aGlzLGZ1bmN0aW9uKGIpe2EucHVzaChiKTt9KTtyZXR1cm4gYTt9LHRvUXVlcnlTdHJpbmc6ZnVuY3Rpb24oYSl7dmFyIGI9W107Ckhhc2guZWFjaCh0aGlzLGZ1bmN0aW9uKGYsZSl7aWYoYSl7ZT1hKyJbIitlKyJdIjt9dmFyIGQ7c3dpdGNoKCR0eXBlKGYpKXtjYXNlIm9iamVjdCI6ZD1IYXNoLnRvUXVlcnlTdHJpbmcoZixlKTticmVhaztjYXNlImFycmF5Ijp2YXIgYz17fTtmLmVhY2goZnVuY3Rpb24oaCxnKXtjW2ddPWg7Cn0pO2Q9SGFzaC50b1F1ZXJ5U3RyaW5nKGMsZSk7YnJlYWs7ZGVmYXVsdDpkPWUrIj0iK2VuY29kZVVSSUNvbXBvbmVudChmKTt9aWYoZiE9dW5kZWZpbmVkKXtiLnB1c2goZCk7fX0pO3JldHVybiBiLmpvaW4oIiYiKTt9fSk7SGFzaC5hbGlhcyh7a2V5T2Y6ImluZGV4T2YiLGhhc1ZhbHVlOiJjb250YWlucyJ9KTsKdmFyIEV2ZW50PW5ldyBOYXRpdmUoe25hbWU6IkV2ZW50Iixpbml0aWFsaXplOmZ1bmN0aW9uKGEsZil7Zj1mfHx3aW5kb3c7dmFyIGs9Zi5kb2N1bWVudDthPWF8fGYuZXZlbnQ7aWYoYS4kZXh0ZW5kZWQpe3JldHVybiBhO310aGlzLiRleHRlbmRlZD10cnVlO3ZhciBqPWEudHlwZTsKdmFyIGc9YS50YXJnZXR8fGEuc3JjRWxlbWVudDt3aGlsZShnJiZnLm5vZGVUeXBlPT0zKXtnPWcucGFyZW50Tm9kZTt9aWYoai50ZXN0KC9rZXkvKSl7dmFyIGI9YS53aGljaHx8YS5rZXlDb2RlO3ZhciBtPUV2ZW50LktleXMua2V5T2YoYik7aWYoaj09ImtleWRvd24iKXt2YXIgZD1iLTExMTsKaWYoZD4wJiZkPDEzKXttPSJmIitkO319bT1tfHxTdHJpbmcuZnJvbUNoYXJDb2RlKGIpLnRvTG93ZXJDYXNlKCk7fWVsc2V7aWYoai5tYXRjaCgvKGNsaWNrfG1vdXNlfG1lbnUpL2kpKXtrPSghay5jb21wYXRNb2RlfHxrLmNvbXBhdE1vZGU9PSJDU1MxQ29tcGF0Iik/ay5odG1sOmsuYm9keTsKdmFyIGk9e3g6YS5wYWdlWHx8YS5jbGllbnRYK2suc2Nyb2xsTGVmdCx5OmEucGFnZVl8fGEuY2xpZW50WStrLnNjcm9sbFRvcH07dmFyIGM9e3g6KGEucGFnZVgpP2EucGFnZVgtZi5wYWdlWE9mZnNldDphLmNsaWVudFgseTooYS5wYWdlWSk/YS5wYWdlWS1mLnBhZ2VZT2Zmc2V0OmEuY2xpZW50WX07CmlmKGoubWF0Y2goL0RPTU1vdXNlU2Nyb2xsfG1vdXNld2hlZWwvKSl7dmFyIGg9KGEud2hlZWxEZWx0YSk/YS53aGVlbERlbHRhLzEyMDotKGEuZGV0YWlsfHwwKS8zO312YXIgZT0oYS53aGljaD09Myl8fChhLmJ1dHRvbj09Mik7dmFyIGw9bnVsbDtpZihqLm1hdGNoKC9vdmVyfG91dC8pKXtzd2l0Y2goail7Y2FzZSJtb3VzZW92ZXIiOmw9YS5yZWxhdGVkVGFyZ2V0fHxhLmZyb21FbGVtZW50OwpicmVhaztjYXNlIm1vdXNlb3V0IjpsPWEucmVsYXRlZFRhcmdldHx8YS50b0VsZW1lbnQ7fWlmKCEoZnVuY3Rpb24oKXt3aGlsZShsJiZsLm5vZGVUeXBlPT0zKXtsPWwucGFyZW50Tm9kZTt9cmV0dXJuIHRydWU7fSkuY3JlYXRlKHthdHRlbXB0OkJyb3dzZXIuRW5naW5lLmdlY2tvfSkoKSl7bD1mYWxzZTsKfX19fXJldHVybiAkZXh0ZW5kKHRoaXMse2V2ZW50OmEsdHlwZTpqLHBhZ2U6aSxjbGllbnQ6YyxyaWdodENsaWNrOmUsd2hlZWw6aCxyZWxhdGVkVGFyZ2V0OmwsdGFyZ2V0OmcsY29kZTpiLGtleTptLHNoaWZ0OmEuc2hpZnRLZXksY29udHJvbDphLmN0cmxLZXksYWx0OmEuYWx0S2V5LG1ldGE6YS5tZXRhS2V5fSk7Cn19KTtFdmVudC5LZXlzPW5ldyBIYXNoKHtlbnRlcjoxMyx1cDozOCxkb3duOjQwLGxlZnQ6MzcscmlnaHQ6MzksZXNjOjI3LHNwYWNlOjMyLGJhY2tzcGFjZTo4LHRhYjo5LCJkZWxldGUiOjQ2fSk7RXZlbnQuaW1wbGVtZW50KHtzdG9wOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RvcFByb3BhZ2F0aW9uKCkucHJldmVudERlZmF1bHQoKTsKfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXtpZih0aGlzLmV2ZW50LnN0b3BQcm9wYWdhdGlvbil7dGhpcy5ldmVudC5zdG9wUHJvcGFnYXRpb24oKTt9ZWxzZXt0aGlzLmV2ZW50LmNhbmNlbEJ1YmJsZT10cnVlO31yZXR1cm4gdGhpczt9LHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7aWYodGhpcy5ldmVudC5wcmV2ZW50RGVmYXVsdCl7dGhpcy5ldmVudC5wcmV2ZW50RGVmYXVsdCgpOwp9ZWxzZXt0aGlzLmV2ZW50LnJldHVyblZhbHVlPWZhbHNlO31yZXR1cm4gdGhpczt9fSk7ZnVuY3Rpb24gQ2xhc3MoYil7aWYoYiBpbnN0YW5jZW9mIEZ1bmN0aW9uKXtiPXtpbml0aWFsaXplOmJ9O312YXIgYT1mdW5jdGlvbigpe09iamVjdC5yZXNldCh0aGlzKTtpZihhLl9wcm90b3R5cGluZyl7cmV0dXJuIHRoaXM7Cn10aGlzLl9jdXJyZW50PSRlbXB0eTt2YXIgYz0odGhpcy5pbml0aWFsaXplKT90aGlzLmluaXRpYWxpemUuYXBwbHkodGhpcyxhcmd1bWVudHMpOnRoaXM7ZGVsZXRlIHRoaXMuX2N1cnJlbnQ7ZGVsZXRlIHRoaXMuY2FsbGVyO3JldHVybiBjO30uZXh0ZW5kKHRoaXMpOwphLmltcGxlbWVudChiKTthLmNvbnN0cnVjdG9yPUNsYXNzO2EucHJvdG90eXBlLmNvbnN0cnVjdG9yPWE7cmV0dXJuIGE7fUZ1bmN0aW9uLnByb3RvdHlwZS5wcm90ZWN0PWZ1bmN0aW9uKCl7dGhpcy5fcHJvdGVjdGVkPXRydWU7cmV0dXJuIHRoaXM7fTtPYmplY3QucmVzZXQ9ZnVuY3Rpb24oYSxjKXtpZihjPT1udWxsKXtmb3IodmFyIGUgaW4gYSl7T2JqZWN0LnJlc2V0KGEsZSk7Cn1yZXR1cm4gYTt9ZGVsZXRlIGFbY107c3dpdGNoKCR0eXBlKGFbY10pKXtjYXNlIm9iamVjdCI6dmFyIGQ9ZnVuY3Rpb24oKXt9O2QucHJvdG90eXBlPWFbY107dmFyIGI9bmV3IGQ7YVtjXT1PYmplY3QucmVzZXQoYik7YnJlYWs7Y2FzZSJhcnJheSI6YVtjXT0kdW5saW5rKGFbY10pOwpicmVhazt9cmV0dXJuIGE7fTtuZXcgTmF0aXZlKHtuYW1lOiJDbGFzcyIsaW5pdGlhbGl6ZTpDbGFzc30pLmV4dGVuZCh7aW5zdGFudGlhdGU6ZnVuY3Rpb24oYil7Yi5fcHJvdG90eXBpbmc9dHJ1ZTt2YXIgYT1uZXcgYjtkZWxldGUgYi5fcHJvdG90eXBpbmc7cmV0dXJuIGE7Cn0sd3JhcDpmdW5jdGlvbihhLGIsYyl7aWYoYy5fb3JpZ2luKXtjPWMuX29yaWdpbjt9cmV0dXJuIGZ1bmN0aW9uKCl7aWYoYy5fcHJvdGVjdGVkJiZ0aGlzLl9jdXJyZW50PT1udWxsKXt0aHJvdyBuZXcgRXJyb3IoJ1RoZSBtZXRob2QgIicrYisnIiBjYW5ub3QgYmUgY2FsbGVkLicpOwp9dmFyIGU9dGhpcy5jYWxsZXIsZj10aGlzLl9jdXJyZW50O3RoaXMuY2FsbGVyPWY7dGhpcy5fY3VycmVudD1hcmd1bWVudHMuY2FsbGVlO3ZhciBkPWMuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMuX2N1cnJlbnQ9Zjt0aGlzLmNhbGxlcj1lO3JldHVybiBkO30uZXh0ZW5kKHtfb3duZXI6YSxfb3JpZ2luOmMsX25hbWU6Yn0pOwp9fSk7Q2xhc3MuaW1wbGVtZW50KHtpbXBsZW1lbnQ6ZnVuY3Rpb24oYSxkKXtpZigkdHlwZShhKT09Im9iamVjdCIpe2Zvcih2YXIgZSBpbiBhKXt0aGlzLmltcGxlbWVudChlLGFbZV0pO31yZXR1cm4gdGhpczt9dmFyIGY9Q2xhc3MuTXV0YXRvcnNbYV07aWYoZil7ZD1mLmNhbGwodGhpcyxkKTsKaWYoZD09bnVsbCl7cmV0dXJuIHRoaXM7fX12YXIgYz10aGlzLnByb3RvdHlwZTtzd2l0Y2goJHR5cGUoZCkpe2Nhc2UiZnVuY3Rpb24iOmlmKGQuX2hpZGRlbil7cmV0dXJuIHRoaXM7fWNbYV09Q2xhc3Mud3JhcCh0aGlzLGEsZCk7YnJlYWs7Y2FzZSJvYmplY3QiOnZhciBiPWNbYV07CmlmKCR0eXBlKGIpPT0ib2JqZWN0Iil7JG1peGluKGIsZCk7fWVsc2V7Y1thXT0kdW5saW5rKGQpO31icmVhaztjYXNlImFycmF5IjpjW2FdPSR1bmxpbmsoZCk7YnJlYWs7ZGVmYXVsdDpjW2FdPWQ7fXJldHVybiB0aGlzO319KTtDbGFzcy5NdXRhdG9ycz17RXh0ZW5kczpmdW5jdGlvbihhKXt0aGlzLnBhcmVudD1hOwp0aGlzLnByb3RvdHlwZT1DbGFzcy5pbnN0YW50aWF0ZShhKTt0aGlzLmltcGxlbWVudCgicGFyZW50IixmdW5jdGlvbigpe3ZhciBiPXRoaXMuY2FsbGVyLl9uYW1lLGM9dGhpcy5jYWxsZXIuX293bmVyLnBhcmVudC5wcm90b3R5cGVbYl07aWYoIWMpe3Rocm93IG5ldyBFcnJvcignVGhlIG1ldGhvZCAiJytiKyciIGhhcyBubyBwYXJlbnQuJyk7Cn1yZXR1cm4gYy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7fS5wcm90ZWN0KCkpO30sSW1wbGVtZW50czpmdW5jdGlvbihhKXskc3BsYXQoYSkuZWFjaChmdW5jdGlvbihiKXtpZihiIGluc3RhbmNlb2YgRnVuY3Rpb24pe2I9Q2xhc3MuaW5zdGFudGlhdGUoYik7fXRoaXMuaW1wbGVtZW50KGIpOwp9LHRoaXMpO319O3ZhciBDaGFpbj1uZXcgQ2xhc3MoeyRjaGFpbjpbXSxjaGFpbjpmdW5jdGlvbigpe3RoaXMuJGNoYWluLmV4dGVuZChBcnJheS5mbGF0dGVuKGFyZ3VtZW50cykpO3JldHVybiB0aGlzO30sY2FsbENoYWluOmZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuJGNoYWluLmxlbmd0aCk/dGhpcy4kY2hhaW4uc2hpZnQoKS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6ZmFsc2U7Cn0sY2xlYXJDaGFpbjpmdW5jdGlvbigpe3RoaXMuJGNoYWluLmVtcHR5KCk7cmV0dXJuIHRoaXM7fX0pO3ZhciBFdmVudHM9bmV3IENsYXNzKHskZXZlbnRzOnt9LGFkZEV2ZW50OmZ1bmN0aW9uKGMsYixhKXtjPUV2ZW50cy5yZW1vdmVPbihjKTtpZihiIT0kZW1wdHkpe3RoaXMuJGV2ZW50c1tjXT10aGlzLiRldmVudHNbY118fFtdOwp0aGlzLiRldmVudHNbY10uaW5jbHVkZShiKTtpZihhKXtiLmludGVybmFsPXRydWU7fX1yZXR1cm4gdGhpczt9LGFkZEV2ZW50czpmdW5jdGlvbihhKXtmb3IodmFyIGIgaW4gYSl7dGhpcy5hZGRFdmVudChiLGFbYl0pO31yZXR1cm4gdGhpczt9LGZpcmVFdmVudDpmdW5jdGlvbihjLGIsYSl7Yz1FdmVudHMucmVtb3ZlT24oYyk7CmlmKCF0aGlzLiRldmVudHN8fCF0aGlzLiRldmVudHNbY10pe3JldHVybiB0aGlzO310aGlzLiRldmVudHNbY10uZWFjaChmdW5jdGlvbihkKXtkLmNyZWF0ZSh7YmluZDp0aGlzLGRlbGF5OmEsImFyZ3VtZW50cyI6Yn0pKCk7fSx0aGlzKTtyZXR1cm4gdGhpczt9LHJlbW92ZUV2ZW50OmZ1bmN0aW9uKGIsYSl7Yj1FdmVudHMucmVtb3ZlT24oYik7CmlmKCF0aGlzLiRldmVudHNbYl0pe3JldHVybiB0aGlzO31pZighYS5pbnRlcm5hbCl7dGhpcy4kZXZlbnRzW2JdLmVyYXNlKGEpO31yZXR1cm4gdGhpczt9LHJlbW92ZUV2ZW50czpmdW5jdGlvbihjKXt2YXIgZDtpZigkdHlwZShjKT09Im9iamVjdCIpe2ZvcihkIGluIGMpe3RoaXMucmVtb3ZlRXZlbnQoZCxjW2RdKTsKfXJldHVybiB0aGlzO31pZihjKXtjPUV2ZW50cy5yZW1vdmVPbihjKTt9Zm9yKGQgaW4gdGhpcy4kZXZlbnRzKXtpZihjJiZjIT1kKXtjb250aW51ZTt9dmFyIGI9dGhpcy4kZXZlbnRzW2RdO2Zvcih2YXIgYT1iLmxlbmd0aDthLS07YSl7dGhpcy5yZW1vdmVFdmVudChkLGJbYV0pOwp9fXJldHVybiB0aGlzO319KTtFdmVudHMucmVtb3ZlT249ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZSgvXm9uKFtBLVpdKS8sZnVuY3Rpb24oYixjKXtyZXR1cm4gYy50b0xvd2VyQ2FzZSgpO30pO307dmFyIE9wdGlvbnM9bmV3IENsYXNzKHtzZXRPcHRpb25zOmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zPSRtZXJnZS5ydW4oW3RoaXMub3B0aW9uc10uZXh0ZW5kKGFyZ3VtZW50cykpOwppZighdGhpcy5hZGRFdmVudCl7cmV0dXJuIHRoaXM7fWZvcih2YXIgYSBpbiB0aGlzLm9wdGlvbnMpe2lmKCR0eXBlKHRoaXMub3B0aW9uc1thXSkhPSJmdW5jdGlvbiJ8fCEoL15vbltBLVpdLykudGVzdChhKSl7Y29udGludWU7fXRoaXMuYWRkRXZlbnQoYSx0aGlzLm9wdGlvbnNbYV0pOwpkZWxldGUgdGhpcy5vcHRpb25zW2FdO31yZXR1cm4gdGhpczt9fSk7dmFyIEVsZW1lbnQ9bmV3IE5hdGl2ZSh7bmFtZToiRWxlbWVudCIsbGVnYWN5OndpbmRvdy5FbGVtZW50LGluaXRpYWxpemU6ZnVuY3Rpb24oYSxiKXt2YXIgYz1FbGVtZW50LkNvbnN0cnVjdG9ycy5nZXQoYSk7CmlmKGMpe3JldHVybiBjKGIpO31pZih0eXBlb2YgYT09InN0cmluZyIpe3JldHVybiBkb2N1bWVudC5uZXdFbGVtZW50KGEsYik7fXJldHVybiBkb2N1bWVudC5pZChhKS5zZXQoYik7fSxhZnRlckltcGxlbWVudDpmdW5jdGlvbihhLGIpe0VsZW1lbnQuUHJvdG90eXBlW2FdPWI7CmlmKEFycmF5W2FdKXtyZXR1cm47fUVsZW1lbnRzLmltcGxlbWVudChhLGZ1bmN0aW9uKCl7dmFyIGM9W10sZz10cnVlO2Zvcih2YXIgZT0wLGQ9dGhpcy5sZW5ndGg7ZTxkO2UrKyl7dmFyIGY9dGhpc1tlXVthXS5hcHBseSh0aGlzW2VdLGFyZ3VtZW50cyk7Yy5wdXNoKGYpOwppZihnKXtnPSgkdHlwZShmKT09ImVsZW1lbnQiKTt9fXJldHVybihnKT9uZXcgRWxlbWVudHMoYyk6Yzt9KTt9fSk7RWxlbWVudC5Qcm90b3R5cGU9eyRmYW1pbHk6e25hbWU6ImVsZW1lbnQifX07RWxlbWVudC5Db25zdHJ1Y3RvcnM9bmV3IEhhc2g7dmFyIElGcmFtZT1uZXcgTmF0aXZlKHtuYW1lOiJJRnJhbWUiLGdlbmVyaWNzOmZhbHNlLGluaXRpYWxpemU6ZnVuY3Rpb24oKXt2YXIgZj1BcnJheS5saW5rKGFyZ3VtZW50cyx7cHJvcGVydGllczpPYmplY3QudHlwZSxpZnJhbWU6JGRlZmluZWR9KTsKdmFyIGQ9Zi5wcm9wZXJ0aWVzfHx7fTt2YXIgYz1kb2N1bWVudC5pZChmLmlmcmFtZSk7dmFyIGU9ZC5vbmxvYWR8fCRlbXB0eTtkZWxldGUgZC5vbmxvYWQ7ZC5pZD1kLm5hbWU9JHBpY2soZC5pZCxkLm5hbWUsYz8oYy5pZHx8Yy5uYW1lKToiSUZyYW1lXyIrJHRpbWUoKSk7CmM9bmV3IEVsZW1lbnQoY3x8ImlmcmFtZSIsZCk7dmFyIGI9ZnVuY3Rpb24oKXt2YXIgZz0kdHJ5KGZ1bmN0aW9uKCl7cmV0dXJuIGMuY29udGVudFdpbmRvdy5sb2NhdGlvbi5ob3N0O30pO2lmKCFnfHxnPT13aW5kb3cubG9jYXRpb24uaG9zdCl7dmFyIGg9bmV3IFdpbmRvdyhjLmNvbnRlbnRXaW5kb3cpOwpuZXcgRG9jdW1lbnQoYy5jb250ZW50V2luZG93LmRvY3VtZW50KTskZXh0ZW5kKGguRWxlbWVudC5wcm90b3R5cGUsRWxlbWVudC5Qcm90b3R5cGUpO31lLmNhbGwoYy5jb250ZW50V2luZG93LGMuY29udGVudFdpbmRvdy5kb2N1bWVudCk7fTt2YXIgYT0kdHJ5KGZ1bmN0aW9uKCl7cmV0dXJuIGMuY29udGVudFdpbmRvdzsKfSk7KChhJiZhLmRvY3VtZW50LmJvZHkpfHx3aW5kb3cuZnJhbWVzW2QuaWRdKT9iKCk6Yy5hZGRMaXN0ZW5lcigibG9hZCIsYik7cmV0dXJuIGM7fX0pO3ZhciBFbGVtZW50cz1uZXcgTmF0aXZlKHtpbml0aWFsaXplOmZ1bmN0aW9uKGYsYil7Yj0kZXh0ZW5kKHtkZHVwOnRydWUsY2FzaDp0cnVlfSxiKTsKZj1mfHxbXTtpZihiLmRkdXB8fGIuY2FzaCl7dmFyIGc9e30sZT1bXTtmb3IodmFyIGM9MCxhPWYubGVuZ3RoO2M8YTtjKyspe3ZhciBkPWRvY3VtZW50LmlkKGZbY10sIWIuY2FzaCk7aWYoYi5kZHVwKXtpZihnW2QudWlkXSl7Y29udGludWU7fWdbZC51aWRdPXRydWU7Cn1lLnB1c2goZCk7fWY9ZTt9cmV0dXJuKGIuY2FzaCk/JGV4dGVuZChmLHRoaXMpOmY7fX0pO0VsZW1lbnRzLmltcGxlbWVudCh7ZmlsdGVyOmZ1bmN0aW9uKGEsYil7aWYoIWEpe3JldHVybiB0aGlzO31yZXR1cm4gbmV3IEVsZW1lbnRzKEFycmF5LmZpbHRlcih0aGlzLCh0eXBlb2YgYT09InN0cmluZyIpP2Z1bmN0aW9uKGMpe3JldHVybiBjLm1hdGNoKGEpOwp9OmEsYikpO319KTtEb2N1bWVudC5pbXBsZW1lbnQoe25ld0VsZW1lbnQ6ZnVuY3Rpb24oYSxiKXtpZihCcm93c2VyLkVuZ2luZS50cmlkZW50JiZiKXtbIm5hbWUiLCJ0eXBlIiwiY2hlY2tlZCJdLmVhY2goZnVuY3Rpb24oYyl7aWYoIWJbY10pe3JldHVybjt9YSs9IiAiK2MrJz0iJytiW2NdKyciJzsKaWYoYyE9ImNoZWNrZWQiKXtkZWxldGUgYltjXTt9fSk7YT0iPCIrYSsiPiI7fXJldHVybiBkb2N1bWVudC5pZCh0aGlzLmNyZWF0ZUVsZW1lbnQoYSkpLnNldChiKTt9LG5ld1RleHROb2RlOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmNyZWF0ZVRleHROb2RlKGEpOwp9LGdldERvY3VtZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXM7fSxnZXRXaW5kb3c6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53aW5kb3c7fSxpZDooZnVuY3Rpb24oKXt2YXIgYT17c3RyaW5nOmZ1bmN0aW9uKGQsYyxiKXtkPWIuZ2V0RWxlbWVudEJ5SWQoZCk7cmV0dXJuKGQpP2EuZWxlbWVudChkLGMpOm51bGw7Cn0sZWxlbWVudDpmdW5jdGlvbihiLGUpeyR1aWQoYik7aWYoIWUmJiFiLiRmYW1pbHkmJiEoL15vYmplY3R8ZW1iZWQkL2kpLnRlc3QoYi50YWdOYW1lKSl7dmFyIGM9RWxlbWVudC5Qcm90b3R5cGU7Zm9yKHZhciBkIGluIGMpe2JbZF09Y1tkXTt9fXJldHVybiBiO30sb2JqZWN0OmZ1bmN0aW9uKGMsZCxiKXtpZihjLnRvRWxlbWVudCl7cmV0dXJuIGEuZWxlbWVudChjLnRvRWxlbWVudChiKSxkKTsKfXJldHVybiBudWxsO319O2EudGV4dG5vZGU9YS53aGl0ZXNwYWNlPWEud2luZG93PWEuZG9jdW1lbnQ9JGFyZ3VtZW50cygwKTtyZXR1cm4gZnVuY3Rpb24oYyxlLGQpe2lmKGMmJmMuJGZhbWlseSYmYy51aWQpe3JldHVybiBjO312YXIgYj0kdHlwZShjKTtyZXR1cm4oYVtiXSk/YVtiXShjLGUsZHx8ZG9jdW1lbnQpOm51bGw7Cn07fSkoKX0pO2lmKHdpbmRvdy4kPT1udWxsKXtXaW5kb3cuaW1wbGVtZW50KHskOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGRvY3VtZW50LmlkKGEsYix0aGlzLmRvY3VtZW50KTt9fSk7fVdpbmRvdy5pbXBsZW1lbnQoeyQkOmZ1bmN0aW9uKGEpe2lmKGFyZ3VtZW50cy5sZW5ndGg9PTEmJnR5cGVvZiBhPT0ic3RyaW5nIil7cmV0dXJuIHRoaXMuZG9jdW1lbnQuZ2V0RWxlbWVudHMoYSk7Cn12YXIgZj1bXTt2YXIgYz1BcnJheS5mbGF0dGVuKGFyZ3VtZW50cyk7Zm9yKHZhciBkPTAsYj1jLmxlbmd0aDtkPGI7ZCsrKXt2YXIgZT1jW2RdO3N3aXRjaCgkdHlwZShlKSl7Y2FzZSJlbGVtZW50IjpmLnB1c2goZSk7YnJlYWs7Y2FzZSJzdHJpbmciOmYuZXh0ZW5kKHRoaXMuZG9jdW1lbnQuZ2V0RWxlbWVudHMoZSx0cnVlKSk7Cn19cmV0dXJuIG5ldyBFbGVtZW50cyhmKTt9LGdldERvY3VtZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9jdW1lbnQ7fSxnZXRXaW5kb3c6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpczt9fSk7TmF0aXZlLmltcGxlbWVudChbRWxlbWVudCxEb2N1bWVudF0se2dldEVsZW1lbnQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZG9jdW1lbnQuaWQodGhpcy5nZXRFbGVtZW50cyhhLHRydWUpWzBdfHxudWxsLGIpOwp9LGdldEVsZW1lbnRzOmZ1bmN0aW9uKGEsZCl7YT1hLnNwbGl0KCIsIik7dmFyIGM9W107dmFyIGI9KGEubGVuZ3RoPjEpO2EuZWFjaChmdW5jdGlvbihlKXt2YXIgZj10aGlzLmdldEVsZW1lbnRzQnlUYWdOYW1lKGUudHJpbSgpKTsoYik/Yy5leHRlbmQoZik6Yz1mOwp9LHRoaXMpO3JldHVybiBuZXcgRWxlbWVudHMoYyx7ZGR1cDpiLGNhc2g6IWR9KTt9fSk7KGZ1bmN0aW9uKCl7dmFyIGg9e30sZj17fTt2YXIgaT17aW5wdXQ6ImNoZWNrZWQiLG9wdGlvbjoic2VsZWN0ZWQiLHRleHRhcmVhOihCcm93c2VyLkVuZ2luZS53ZWJraXQmJkJyb3dzZXIuRW5naW5lLnZlcnNpb248NDIwKT8iaW5uZXJIVE1MIjoidmFsdWUifTsKdmFyIGM9ZnVuY3Rpb24obCl7cmV0dXJuKGZbbF18fChmW2xdPXt9KSk7fTt2YXIgZz1mdW5jdGlvbihuLGwpe2lmKCFuKXtyZXR1cm47fXZhciBtPW4udWlkO2lmKEJyb3dzZXIuRW5naW5lLnRyaWRlbnQpe2lmKG4uY2xlYXJBdHRyaWJ1dGVzKXt2YXIgcT1sJiZuLmNsb25lTm9kZShmYWxzZSk7Cm4uY2xlYXJBdHRyaWJ1dGVzKCk7aWYocSl7bi5tZXJnZUF0dHJpYnV0ZXMocSk7fX1lbHNle2lmKG4ucmVtb3ZlRXZlbnRzKXtuLnJlbW92ZUV2ZW50cygpO319aWYoKC9vYmplY3QvaSkudGVzdChuLnRhZ05hbWUpKXtmb3IodmFyIG8gaW4gbil7aWYodHlwZW9mIG5bb109PSJmdW5jdGlvbiIpe25bb109JGVtcHR5Owp9fUVsZW1lbnQuZGlzcG9zZShuKTt9fWlmKCFtKXtyZXR1cm47fWhbbV09ZlttXT1udWxsO307dmFyIGQ9ZnVuY3Rpb24oKXtIYXNoLmVhY2goaCxnKTtpZihCcm93c2VyLkVuZ2luZS50cmlkZW50KXskQShkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgib2JqZWN0IikpLmVhY2goZyk7Cn1pZih3aW5kb3cuQ29sbGVjdEdhcmJhZ2Upe0NvbGxlY3RHYXJiYWdlKCk7fWg9Zj1udWxsO307dmFyIGo9ZnVuY3Rpb24obixsLHMsbSxwLHIpe3ZhciBvPW5bc3x8bF07dmFyIHE9W107d2hpbGUobyl7aWYoby5ub2RlVHlwZT09MSYmKCFtfHxFbGVtZW50Lm1hdGNoKG8sbSkpKXtpZighcCl7cmV0dXJuIGRvY3VtZW50LmlkKG8scik7Cn1xLnB1c2gobyk7fW89b1tsXTt9cmV0dXJuKHApP25ldyBFbGVtZW50cyhxLHtkZHVwOmZhbHNlLGNhc2g6IXJ9KTpudWxsO307dmFyIGU9e2h0bWw6ImlubmVySFRNTCIsImNsYXNzIjoiY2xhc3NOYW1lIiwiZm9yIjoiaHRtbEZvciIsZGVmYXVsdFZhbHVlOiJkZWZhdWx0VmFsdWUiLHRleHQ6KEJyb3dzZXIuRW5naW5lLnRyaWRlbnR8fChCcm93c2VyLkVuZ2luZS53ZWJraXQmJkJyb3dzZXIuRW5naW5lLnZlcnNpb248NDIwKSk/ImlubmVyVGV4dCI6InRleHRDb250ZW50In07CnZhciBiPVsiY29tcGFjdCIsIm5vd3JhcCIsImlzbWFwIiwiZGVjbGFyZSIsIm5vc2hhZGUiLCJjaGVja2VkIiwiZGlzYWJsZWQiLCJyZWFkb25seSIsIm11bHRpcGxlIiwic2VsZWN0ZWQiLCJub3Jlc2l6ZSIsImRlZmVyIl07dmFyIGs9WyJ2YWx1ZSIsInR5cGUiLCJkZWZhdWx0VmFsdWUiLCJhY2Nlc3NLZXkiLCJjZWxsUGFkZGluZyIsImNlbGxTcGFjaW5nIiwiY29sU3BhbiIsImZyYW1lQm9yZGVyIiwibWF4TGVuZ3RoIiwicmVhZE9ubHkiLCJyb3dTcGFuIiwidGFiSW5kZXgiLCJ1c2VNYXAiXTsKYj1iLmFzc29jaWF0ZShiKTtIYXNoLmV4dGVuZChlLGIpO0hhc2guZXh0ZW5kKGUsay5hc3NvY2lhdGUoay5tYXAoU3RyaW5nLnRvTG93ZXJDYXNlKSkpO3ZhciBhPXtiZWZvcmU6ZnVuY3Rpb24obSxsKXtpZihsLnBhcmVudE5vZGUpe2wucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobSxsKTsKfX0sYWZ0ZXI6ZnVuY3Rpb24obSxsKXtpZighbC5wYXJlbnROb2RlKXtyZXR1cm47fXZhciBuPWwubmV4dFNpYmxpbmc7KG4pP2wucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobSxuKTpsLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQobSk7fSxib3R0b206ZnVuY3Rpb24obSxsKXtsLmFwcGVuZENoaWxkKG0pOwp9LHRvcDpmdW5jdGlvbihtLGwpe3ZhciBuPWwuZmlyc3RDaGlsZDsobik/bC5pbnNlcnRCZWZvcmUobSxuKTpsLmFwcGVuZENoaWxkKG0pO319O2EuaW5zaWRlPWEuYm90dG9tO0hhc2guZWFjaChhLGZ1bmN0aW9uKGwsbSl7bT1tLmNhcGl0YWxpemUoKTtFbGVtZW50LmltcGxlbWVudCgiaW5qZWN0IittLGZ1bmN0aW9uKG4pe2wodGhpcyxkb2N1bWVudC5pZChuLHRydWUpKTsKcmV0dXJuIHRoaXM7fSk7RWxlbWVudC5pbXBsZW1lbnQoImdyYWIiK20sZnVuY3Rpb24obil7bChkb2N1bWVudC5pZChuLHRydWUpLHRoaXMpO3JldHVybiB0aGlzO30pO30pO0VsZW1lbnQuaW1wbGVtZW50KHtzZXQ6ZnVuY3Rpb24obyxtKXtzd2l0Y2goJHR5cGUobykpe2Nhc2Uib2JqZWN0Ijpmb3IodmFyIG4gaW4gbyl7dGhpcy5zZXQobixvW25dKTsKfWJyZWFrO2Nhc2Uic3RyaW5nIjp2YXIgbD1FbGVtZW50LlByb3BlcnRpZXMuZ2V0KG8pOyhsJiZsLnNldCk/bC5zZXQuYXBwbHkodGhpcyxBcnJheS5zbGljZShhcmd1bWVudHMsMSkpOnRoaXMuc2V0UHJvcGVydHkobyxtKTt9cmV0dXJuIHRoaXM7fSxnZXQ6ZnVuY3Rpb24obSl7dmFyIGw9RWxlbWVudC5Qcm9wZXJ0aWVzLmdldChtKTsKcmV0dXJuKGwmJmwuZ2V0KT9sLmdldC5hcHBseSh0aGlzLEFycmF5LnNsaWNlKGFyZ3VtZW50cywxKSk6dGhpcy5nZXRQcm9wZXJ0eShtKTt9LGVyYXNlOmZ1bmN0aW9uKG0pe3ZhciBsPUVsZW1lbnQuUHJvcGVydGllcy5nZXQobSk7KGwmJmwuZXJhc2UpP2wuZXJhc2UuYXBwbHkodGhpcyk6dGhpcy5yZW1vdmVQcm9wZXJ0eShtKTsKcmV0dXJuIHRoaXM7fSxzZXRQcm9wZXJ0eTpmdW5jdGlvbihtLG4pe3ZhciBsPWVbbV07aWYobj09dW5kZWZpbmVkKXtyZXR1cm4gdGhpcy5yZW1vdmVQcm9wZXJ0eShtKTt9aWYobCYmYlttXSl7bj0hIW47fShsKT90aGlzW2xdPW46dGhpcy5zZXRBdHRyaWJ1dGUobSwiIituKTsKcmV0dXJuIHRoaXM7fSxzZXRQcm9wZXJ0aWVzOmZ1bmN0aW9uKGwpe2Zvcih2YXIgbSBpbiBsKXt0aGlzLnNldFByb3BlcnR5KG0sbFttXSk7fXJldHVybiB0aGlzO30sZ2V0UHJvcGVydHk6ZnVuY3Rpb24obSl7dmFyIGw9ZVttXTt2YXIgbj0obCk/dGhpc1tsXTp0aGlzLmdldEF0dHJpYnV0ZShtLDIpOwpyZXR1cm4oYlttXSk/ISFuOihsKT9uOm58fG51bGw7fSxnZXRQcm9wZXJ0aWVzOmZ1bmN0aW9uKCl7dmFyIGw9JEEoYXJndW1lbnRzKTtyZXR1cm4gbC5tYXAodGhpcy5nZXRQcm9wZXJ0eSx0aGlzKS5hc3NvY2lhdGUobCk7fSxyZW1vdmVQcm9wZXJ0eTpmdW5jdGlvbihtKXt2YXIgbD1lW21dOwoobCk/dGhpc1tsXT0obCYmYlttXSk/ZmFsc2U6IiI6dGhpcy5yZW1vdmVBdHRyaWJ1dGUobSk7cmV0dXJuIHRoaXM7fSxyZW1vdmVQcm9wZXJ0aWVzOmZ1bmN0aW9uKCl7QXJyYXkuZWFjaChhcmd1bWVudHMsdGhpcy5yZW1vdmVQcm9wZXJ0eSx0aGlzKTtyZXR1cm4gdGhpczsKfSxoYXNDbGFzczpmdW5jdGlvbihsKXtyZXR1cm4gdGhpcy5jbGFzc05hbWUuY29udGFpbnMobCwiICIpO30sYWRkQ2xhc3M6ZnVuY3Rpb24obCl7aWYoIXRoaXMuaGFzQ2xhc3MobCkpe3RoaXMuY2xhc3NOYW1lPSh0aGlzLmNsYXNzTmFtZSsiICIrbCkuY2xlYW4oKTsKfXJldHVybiB0aGlzO30scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24obCl7dGhpcy5jbGFzc05hbWU9dGhpcy5jbGFzc05hbWUucmVwbGFjZShuZXcgUmVnRXhwKCIoXnxcXHMpIitsKyIoPzpcXHN8JCkiKSwiJDEiKTtyZXR1cm4gdGhpczt9LHRvZ2dsZUNsYXNzOmZ1bmN0aW9uKGwpe3JldHVybiB0aGlzLmhhc0NsYXNzKGwpP3RoaXMucmVtb3ZlQ2xhc3MobCk6dGhpcy5hZGRDbGFzcyhsKTsKfSxhZG9wdDpmdW5jdGlvbigpe0FycmF5LmZsYXR0ZW4oYXJndW1lbnRzKS5lYWNoKGZ1bmN0aW9uKGwpe2w9ZG9jdW1lbnQuaWQobCx0cnVlKTtpZihsKXt0aGlzLmFwcGVuZENoaWxkKGwpO319LHRoaXMpO3JldHVybiB0aGlzO30sYXBwZW5kVGV4dDpmdW5jdGlvbihtLGwpe3JldHVybiB0aGlzLmdyYWIodGhpcy5nZXREb2N1bWVudCgpLm5ld1RleHROb2RlKG0pLGwpOwp9LGdyYWI6ZnVuY3Rpb24obSxsKXthW2x8fCJib3R0b20iXShkb2N1bWVudC5pZChtLHRydWUpLHRoaXMpO3JldHVybiB0aGlzO30saW5qZWN0OmZ1bmN0aW9uKG0sbCl7YVtsfHwiYm90dG9tIl0odGhpcyxkb2N1bWVudC5pZChtLHRydWUpKTtyZXR1cm4gdGhpczt9LHJlcGxhY2VzOmZ1bmN0aW9uKGwpe2w9ZG9jdW1lbnQuaWQobCx0cnVlKTsKbC5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZCh0aGlzLGwpO3JldHVybiB0aGlzO30sd3JhcHM6ZnVuY3Rpb24obSxsKXttPWRvY3VtZW50LmlkKG0sdHJ1ZSk7cmV0dXJuIHRoaXMucmVwbGFjZXMobSkuZ3JhYihtLGwpO30sZ2V0UHJldmlvdXM6ZnVuY3Rpb24obCxtKXtyZXR1cm4gaih0aGlzLCJwcmV2aW91c1NpYmxpbmciLG51bGwsbCxmYWxzZSxtKTsKfSxnZXRBbGxQcmV2aW91czpmdW5jdGlvbihsLG0pe3JldHVybiBqKHRoaXMsInByZXZpb3VzU2libGluZyIsbnVsbCxsLHRydWUsbSk7fSxnZXROZXh0OmZ1bmN0aW9uKGwsbSl7cmV0dXJuIGoodGhpcywibmV4dFNpYmxpbmciLG51bGwsbCxmYWxzZSxtKTt9LGdldEFsbE5leHQ6ZnVuY3Rpb24obCxtKXtyZXR1cm4gaih0aGlzLCJuZXh0U2libGluZyIsbnVsbCxsLHRydWUsbSk7Cn0sZ2V0Rmlyc3Q6ZnVuY3Rpb24obCxtKXtyZXR1cm4gaih0aGlzLCJuZXh0U2libGluZyIsImZpcnN0Q2hpbGQiLGwsZmFsc2UsbSk7fSxnZXRMYXN0OmZ1bmN0aW9uKGwsbSl7cmV0dXJuIGoodGhpcywicHJldmlvdXNTaWJsaW5nIiwibGFzdENoaWxkIixsLGZhbHNlLG0pOwp9LGdldFBhcmVudDpmdW5jdGlvbihsLG0pe3JldHVybiBqKHRoaXMsInBhcmVudE5vZGUiLG51bGwsbCxmYWxzZSxtKTt9LGdldFBhcmVudHM6ZnVuY3Rpb24obCxtKXtyZXR1cm4gaih0aGlzLCJwYXJlbnROb2RlIixudWxsLGwsdHJ1ZSxtKTt9LGdldFNpYmxpbmdzOmZ1bmN0aW9uKGwsbSl7cmV0dXJuIHRoaXMuZ2V0UGFyZW50KCkuZ2V0Q2hpbGRyZW4obCxtKS5lcmFzZSh0aGlzKTsKfSxnZXRDaGlsZHJlbjpmdW5jdGlvbihsLG0pe3JldHVybiBqKHRoaXMsIm5leHRTaWJsaW5nIiwiZmlyc3RDaGlsZCIsbCx0cnVlLG0pO30sZ2V0V2luZG93OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3duZXJEb2N1bWVudC53aW5kb3c7fSxnZXREb2N1bWVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm93bmVyRG9jdW1lbnQ7Cn0sZ2V0RWxlbWVudEJ5SWQ6ZnVuY3Rpb24obyxuKXt2YXIgbT10aGlzLm93bmVyRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobyk7aWYoIW0pe3JldHVybiBudWxsO31mb3IodmFyIGw9bS5wYXJlbnROb2RlO2whPXRoaXM7bD1sLnBhcmVudE5vZGUpe2lmKCFsKXtyZXR1cm4gbnVsbDsKfX1yZXR1cm4gZG9jdW1lbnQuaWQobSxuKTt9LGdldFNlbGVjdGVkOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBFbGVtZW50cygkQSh0aGlzLm9wdGlvbnMpLmZpbHRlcihmdW5jdGlvbihsKXtyZXR1cm4gbC5zZWxlY3RlZDt9KSk7fSxnZXRDb21wdXRlZFN0eWxlOmZ1bmN0aW9uKG0pe2lmKHRoaXMuY3VycmVudFN0eWxlKXtyZXR1cm4gdGhpcy5jdXJyZW50U3R5bGVbbS5jYW1lbENhc2UoKV07Cn12YXIgbD10aGlzLmdldERvY3VtZW50KCkuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLG51bGwpO3JldHVybihsKT9sLmdldFByb3BlcnR5VmFsdWUoW20uaHlwaGVuYXRlKCldKTpudWxsO30sdG9RdWVyeVN0cmluZzpmdW5jdGlvbigpe3ZhciBsPVtdOwp0aGlzLmdldEVsZW1lbnRzKCJpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSIsdHJ1ZSkuZWFjaChmdW5jdGlvbihtKXtpZighbS5uYW1lfHxtLmRpc2FibGVkfHxtLnR5cGU9PSJzdWJtaXQifHxtLnR5cGU9PSJyZXNldCJ8fG0udHlwZT09ImZpbGUiKXtyZXR1cm47fXZhciBuPShtLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09InNlbGVjdCIpP0VsZW1lbnQuZ2V0U2VsZWN0ZWQobSkubWFwKGZ1bmN0aW9uKG8pe3JldHVybiBvLnZhbHVlOwp9KTooKG0udHlwZT09InJhZGlvInx8bS50eXBlPT0iY2hlY2tib3giKSYmIW0uY2hlY2tlZCk/bnVsbDptLnZhbHVlOyRzcGxhdChuKS5lYWNoKGZ1bmN0aW9uKG8pe2lmKHR5cGVvZiBvIT0idW5kZWZpbmVkIil7bC5wdXNoKG0ubmFtZSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KG8pKTsKfX0pO30pO3JldHVybiBsLmpvaW4oIiYiKTt9LGNsb25lOmZ1bmN0aW9uKG8sbCl7bz1vIT09ZmFsc2U7dmFyIHI9dGhpcy5jbG9uZU5vZGUobyk7dmFyIG49ZnVuY3Rpb24odix1KXtpZighbCl7di5yZW1vdmVBdHRyaWJ1dGUoImlkIik7fWlmKEJyb3dzZXIuRW5naW5lLnRyaWRlbnQpe3YuY2xlYXJBdHRyaWJ1dGVzKCk7CnYubWVyZ2VBdHRyaWJ1dGVzKHUpO3YucmVtb3ZlQXR0cmlidXRlKCJ1aWQiKTtpZih2Lm9wdGlvbnMpe3ZhciB3PXYub3B0aW9ucyxzPXUub3B0aW9ucztmb3IodmFyIHQ9dy5sZW5ndGg7dC0tOyl7d1t0XS5zZWxlY3RlZD1zW3RdLnNlbGVjdGVkO319fXZhciB4PWlbdS50YWdOYW1lLnRvTG93ZXJDYXNlKCldOwppZih4JiZ1W3hdKXt2W3hdPXVbeF07fX07aWYobyl7dmFyIHA9ci5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLHE9dGhpcy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpO2Zvcih2YXIgbT1wLmxlbmd0aDttLS07KXtuKHBbbV0scVttXSk7fX1uKHIsdGhpcyk7cmV0dXJuIGRvY3VtZW50LmlkKHIpOwp9LGRlc3Ryb3k6ZnVuY3Rpb24oKXtFbGVtZW50LmVtcHR5KHRoaXMpO0VsZW1lbnQuZGlzcG9zZSh0aGlzKTtnKHRoaXMsdHJ1ZSk7cmV0dXJuIG51bGw7fSxlbXB0eTpmdW5jdGlvbigpeyRBKHRoaXMuY2hpbGROb2RlcykuZWFjaChmdW5jdGlvbihsKXtFbGVtZW50LmRlc3Ryb3kobCk7Cn0pO3JldHVybiB0aGlzO30sZGlzcG9zZTpmdW5jdGlvbigpe3JldHVybih0aGlzLnBhcmVudE5vZGUpP3RoaXMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzKTp0aGlzO30saGFzQ2hpbGQ6ZnVuY3Rpb24obCl7bD1kb2N1bWVudC5pZChsLHRydWUpO2lmKCFsKXtyZXR1cm4gZmFsc2U7Cn1pZihCcm93c2VyLkVuZ2luZS53ZWJraXQmJkJyb3dzZXIuRW5naW5lLnZlcnNpb248NDIwKXtyZXR1cm4gJEEodGhpcy5nZXRFbGVtZW50c0J5VGFnTmFtZShsLnRhZ05hbWUpKS5jb250YWlucyhsKTt9cmV0dXJuKHRoaXMuY29udGFpbnMpPyh0aGlzIT1sJiZ0aGlzLmNvbnRhaW5zKGwpKTohISh0aGlzLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGwpJjE2KTsKfSxtYXRjaDpmdW5jdGlvbihsKXtyZXR1cm4oIWx8fChsPT10aGlzKXx8KEVsZW1lbnQuZ2V0KHRoaXMsInRhZyIpPT1sKSk7fX0pO05hdGl2ZS5pbXBsZW1lbnQoW0VsZW1lbnQsV2luZG93LERvY3VtZW50XSx7YWRkTGlzdGVuZXI6ZnVuY3Rpb24obyxuKXtpZihvPT0idW5sb2FkIil7dmFyIGw9bixtPXRoaXM7Cm49ZnVuY3Rpb24oKXttLnJlbW92ZUxpc3RlbmVyKCJ1bmxvYWQiLG4pO2woKTt9O31lbHNle2hbdGhpcy51aWRdPXRoaXM7fWlmKHRoaXMuYWRkRXZlbnRMaXN0ZW5lcil7dGhpcy5hZGRFdmVudExpc3RlbmVyKG8sbixmYWxzZSk7fWVsc2V7dGhpcy5hdHRhY2hFdmVudCgib24iK28sbik7Cn1yZXR1cm4gdGhpczt9LHJlbW92ZUxpc3RlbmVyOmZ1bmN0aW9uKG0sbCl7aWYodGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKXt0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIobSxsLGZhbHNlKTt9ZWxzZXt0aGlzLmRldGFjaEV2ZW50KCJvbiIrbSxsKTt9cmV0dXJuIHRoaXM7Cn0scmV0cmlldmU6ZnVuY3Rpb24obSxsKXt2YXIgbz1jKHRoaXMudWlkKSxuPW9bbV07aWYobCE9dW5kZWZpbmVkJiZuPT11bmRlZmluZWQpe249b1ttXT1sO31yZXR1cm4gJHBpY2sobik7fSxzdG9yZTpmdW5jdGlvbihtLGwpe3ZhciBuPWModGhpcy51aWQpO25bbV09bDsKcmV0dXJuIHRoaXM7fSxlbGltaW5hdGU6ZnVuY3Rpb24obCl7dmFyIG09Yyh0aGlzLnVpZCk7ZGVsZXRlIG1bbF07cmV0dXJuIHRoaXM7fX0pO3dpbmRvdy5hZGRMaXN0ZW5lcigidW5sb2FkIixkKTt9KSgpO0VsZW1lbnQuUHJvcGVydGllcz1uZXcgSGFzaDtFbGVtZW50LlByb3BlcnRpZXMuc3R5bGU9e3NldDpmdW5jdGlvbihhKXt0aGlzLnN0eWxlLmNzc1RleHQ9YTsKfSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdHlsZS5jc3NUZXh0O30sZXJhc2U6ZnVuY3Rpb24oKXt0aGlzLnN0eWxlLmNzc1RleHQ9IiI7fX07RWxlbWVudC5Qcm9wZXJ0aWVzLnRhZz17Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGFnTmFtZS50b0xvd2VyQ2FzZSgpOwp9fTtFbGVtZW50LlByb3BlcnRpZXMuaHRtbD0oZnVuY3Rpb24oKXt2YXIgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt2YXIgYT17dGFibGU6WzEsIjx0YWJsZT4iLCI8L3RhYmxlPiJdLHNlbGVjdDpbMSwiPHNlbGVjdD4iLCI8L3NlbGVjdD4iXSx0Ym9keTpbMiwiPHRhYmxlPjx0Ym9keT4iLCI8L3Rib2R5PjwvdGFibGU+Il0sdHI6WzMsIjx0YWJsZT48dGJvZHk+PHRyPiIsIjwvdHI+PC90Ym9keT48L3RhYmxlPiJdfTsKYS50aGVhZD1hLnRmb290PWEudGJvZHk7dmFyIGI9e3NldDpmdW5jdGlvbigpe3ZhciBlPUFycmF5LmZsYXR0ZW4oYXJndW1lbnRzKS5qb2luKCIiKTt2YXIgZj1Ccm93c2VyLkVuZ2luZS50cmlkZW50JiZhW3RoaXMuZ2V0KCJ0YWciKV07aWYoZil7dmFyIGc9YztnLmlubmVySFRNTD1mWzFdK2UrZlsyXTsKZm9yKHZhciBkPWZbMF07ZC0tOyl7Zz1nLmZpcnN0Q2hpbGQ7fXRoaXMuZW1wdHkoKS5hZG9wdChnLmNoaWxkTm9kZXMpO31lbHNle3RoaXMuaW5uZXJIVE1MPWU7fX19O2IuZXJhc2U9Yi5zZXQ7cmV0dXJuIGI7fSkoKTtpZihCcm93c2VyLkVuZ2luZS53ZWJraXQmJkJyb3dzZXIuRW5naW5lLnZlcnNpb248NDIwKXtFbGVtZW50LlByb3BlcnRpZXMudGV4dD17Z2V0OmZ1bmN0aW9uKCl7aWYodGhpcy5pbm5lclRleHQpe3JldHVybiB0aGlzLmlubmVyVGV4dDsKfXZhciBhPXRoaXMub3duZXJEb2N1bWVudC5uZXdFbGVtZW50KCJkaXYiLHtodG1sOnRoaXMuaW5uZXJIVE1MfSkuaW5qZWN0KHRoaXMub3duZXJEb2N1bWVudC5ib2R5KTt2YXIgYj1hLmlubmVyVGV4dDthLmRlc3Ryb3koKTtyZXR1cm4gYjt9fTt9RWxlbWVudC5Qcm9wZXJ0aWVzLmV2ZW50cz17c2V0OmZ1bmN0aW9uKGEpe3RoaXMuYWRkRXZlbnRzKGEpOwp9fTtOYXRpdmUuaW1wbGVtZW50KFtFbGVtZW50LFdpbmRvdyxEb2N1bWVudF0se2FkZEV2ZW50OmZ1bmN0aW9uKGUsZyl7dmFyIGg9dGhpcy5yZXRyaWV2ZSgiZXZlbnRzIix7fSk7aFtlXT1oW2VdfHx7a2V5czpbXSx2YWx1ZXM6W119O2lmKGhbZV0ua2V5cy5jb250YWlucyhnKSl7cmV0dXJuIHRoaXM7Cn1oW2VdLmtleXMucHVzaChnKTt2YXIgZj1lLGE9RWxlbWVudC5FdmVudHMuZ2V0KGUpLGM9ZyxpPXRoaXM7aWYoYSl7aWYoYS5vbkFkZCl7YS5vbkFkZC5jYWxsKHRoaXMsZyk7fWlmKGEuY29uZGl0aW9uKXtjPWZ1bmN0aW9uKGope2lmKGEuY29uZGl0aW9uLmNhbGwodGhpcyxqKSl7cmV0dXJuIGcuY2FsbCh0aGlzLGopOwp9cmV0dXJuIHRydWU7fTt9Zj1hLmJhc2V8fGY7fXZhciBkPWZ1bmN0aW9uKCl7cmV0dXJuIGcuY2FsbChpKTt9O3ZhciBiPUVsZW1lbnQuTmF0aXZlRXZlbnRzW2ZdO2lmKGIpe2lmKGI9PTIpe2Q9ZnVuY3Rpb24oail7aj1uZXcgRXZlbnQoaixpLmdldFdpbmRvdygpKTsKaWYoYy5jYWxsKGksaik9PT1mYWxzZSl7ai5zdG9wKCk7fX07fXRoaXMuYWRkTGlzdGVuZXIoZixkKTt9aFtlXS52YWx1ZXMucHVzaChkKTtyZXR1cm4gdGhpczt9LHJlbW92ZUV2ZW50OmZ1bmN0aW9uKGMsYil7dmFyIGE9dGhpcy5yZXRyaWV2ZSgiZXZlbnRzIik7aWYoIWF8fCFhW2NdKXtyZXR1cm4gdGhpczsKfXZhciBmPWFbY10ua2V5cy5pbmRleE9mKGIpO2lmKGY9PS0xKXtyZXR1cm4gdGhpczt9YVtjXS5rZXlzLnNwbGljZShmLDEpO3ZhciBlPWFbY10udmFsdWVzLnNwbGljZShmLDEpWzBdO3ZhciBkPUVsZW1lbnQuRXZlbnRzLmdldChjKTtpZihkKXtpZihkLm9uUmVtb3ZlKXtkLm9uUmVtb3ZlLmNhbGwodGhpcyxiKTsKfWM9ZC5iYXNlfHxjO31yZXR1cm4oRWxlbWVudC5OYXRpdmVFdmVudHNbY10pP3RoaXMucmVtb3ZlTGlzdGVuZXIoYyxlKTp0aGlzO30sYWRkRXZlbnRzOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYiBpbiBhKXt0aGlzLmFkZEV2ZW50KGIsYVtiXSk7fXJldHVybiB0aGlzOwp9LHJlbW92ZUV2ZW50czpmdW5jdGlvbihhKXt2YXIgYztpZigkdHlwZShhKT09Im9iamVjdCIpe2ZvcihjIGluIGEpe3RoaXMucmVtb3ZlRXZlbnQoYyxhW2NdKTt9cmV0dXJuIHRoaXM7fXZhciBiPXRoaXMucmV0cmlldmUoImV2ZW50cyIpO2lmKCFiKXtyZXR1cm4gdGhpczsKfWlmKCFhKXtmb3IoYyBpbiBiKXt0aGlzLnJlbW92ZUV2ZW50cyhjKTt9dGhpcy5lbGltaW5hdGUoImV2ZW50cyIpO31lbHNle2lmKGJbYV0pe3doaWxlKGJbYV0ua2V5c1swXSl7dGhpcy5yZW1vdmVFdmVudChhLGJbYV0ua2V5c1swXSk7fWJbYV09bnVsbDt9fXJldHVybiB0aGlzOwp9LGZpcmVFdmVudDpmdW5jdGlvbihkLGIsYSl7dmFyIGM9dGhpcy5yZXRyaWV2ZSgiZXZlbnRzIik7aWYoIWN8fCFjW2RdKXtyZXR1cm4gdGhpczt9Y1tkXS5rZXlzLmVhY2goZnVuY3Rpb24oZSl7ZS5jcmVhdGUoe2JpbmQ6dGhpcyxkZWxheTphLCJhcmd1bWVudHMiOmJ9KSgpOwp9LHRoaXMpO3JldHVybiB0aGlzO30sY2xvbmVFdmVudHM6ZnVuY3Rpb24oZCxhKXtkPWRvY3VtZW50LmlkKGQpO3ZhciBjPWQucmV0cmlldmUoImV2ZW50cyIpO2lmKCFjKXtyZXR1cm4gdGhpczt9aWYoIWEpe2Zvcih2YXIgYiBpbiBjKXt0aGlzLmNsb25lRXZlbnRzKGQsYik7Cn19ZWxzZXtpZihjW2FdKXtjW2FdLmtleXMuZWFjaChmdW5jdGlvbihlKXt0aGlzLmFkZEV2ZW50KGEsZSk7fSx0aGlzKTt9fXJldHVybiB0aGlzO319KTtFbGVtZW50Lk5hdGl2ZUV2ZW50cz17Y2xpY2s6MixkYmxjbGljazoyLG1vdXNldXA6Mixtb3VzZWRvd246Mixjb250ZXh0bWVudToyLG1vdXNld2hlZWw6MixET01Nb3VzZVNjcm9sbDoyLG1vdXNlb3ZlcjoyLG1vdXNlb3V0OjIsbW91c2Vtb3ZlOjIsc2VsZWN0c3RhcnQ6MixzZWxlY3RlbmQ6MixrZXlkb3duOjIsa2V5cHJlc3M6MixrZXl1cDoyLGZvY3VzOjIsYmx1cjoyLGNoYW5nZToyLHJlc2V0OjIsc2VsZWN0OjIsc3VibWl0OjIsbG9hZDoxLHVubG9hZDoxLGJlZm9yZXVubG9hZDoyLHJlc2l6ZToxLG1vdmU6MSxET01Db250ZW50TG9hZGVkOjEscmVhZHlzdGF0ZWNoYW5nZToxLGVycm9yOjEsYWJvcnQ6MSxzY3JvbGw6MX07CihmdW5jdGlvbigpe3ZhciBhPWZ1bmN0aW9uKGIpe3ZhciBjPWIucmVsYXRlZFRhcmdldDtpZihjPT11bmRlZmluZWQpe3JldHVybiB0cnVlO31pZihjPT09ZmFsc2Upe3JldHVybiBmYWxzZTt9cmV0dXJuKCR0eXBlKHRoaXMpIT0iZG9jdW1lbnQiJiZjIT10aGlzJiZjLnByZWZpeCE9Inh1bCImJiF0aGlzLmhhc0NoaWxkKGMpKTsKfTtFbGVtZW50LkV2ZW50cz1uZXcgSGFzaCh7bW91c2VlbnRlcjp7YmFzZToibW91c2VvdmVyIixjb25kaXRpb246YX0sbW91c2VsZWF2ZTp7YmFzZToibW91c2VvdXQiLGNvbmRpdGlvbjphfSxtb3VzZXdoZWVsOntiYXNlOihCcm93c2VyLkVuZ2luZS5nZWNrbyk/IkRPTU1vdXNlU2Nyb2xsIjoibW91c2V3aGVlbCJ9fSk7Cn0pKCk7RWxlbWVudC5Qcm9wZXJ0aWVzLnN0eWxlcz17c2V0OmZ1bmN0aW9uKGEpe3RoaXMuc2V0U3R5bGVzKGEpO319O0VsZW1lbnQuUHJvcGVydGllcy5vcGFjaXR5PXtzZXQ6ZnVuY3Rpb24oYSxiKXtpZighYil7aWYoYT09MCl7aWYodGhpcy5zdHlsZS52aXNpYmlsaXR5IT0iaGlkZGVuIil7dGhpcy5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iOwp9fWVsc2V7aWYodGhpcy5zdHlsZS52aXNpYmlsaXR5IT0idmlzaWJsZSIpe3RoaXMuc3R5bGUudmlzaWJpbGl0eT0idmlzaWJsZSI7fX19aWYoIXRoaXMuY3VycmVudFN0eWxlfHwhdGhpcy5jdXJyZW50U3R5bGUuaGFzTGF5b3V0KXt0aGlzLnN0eWxlLnpvb209MTt9aWYoQnJvd3Nlci5FbmdpbmUudHJpZGVudCl7dGhpcy5zdHlsZS5maWx0ZXI9KGE9PTEpPyIiOiJhbHBoYShvcGFjaXR5PSIrYSoxMDArIikiOwp9dGhpcy5zdHlsZS5vcGFjaXR5PWE7dGhpcy5zdG9yZSgib3BhY2l0eSIsYSk7fSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXRyaWV2ZSgib3BhY2l0eSIsMSk7fX07RWxlbWVudC5pbXBsZW1lbnQoe3NldE9wYWNpdHk6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuc2V0KCJvcGFjaXR5IixhLHRydWUpOwp9LGdldE9wYWNpdHk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQoIm9wYWNpdHkiKTt9LHNldFN0eWxlOmZ1bmN0aW9uKGIsYSl7c3dpdGNoKGIpe2Nhc2Uib3BhY2l0eSI6cmV0dXJuIHRoaXMuc2V0KCJvcGFjaXR5IixwYXJzZUZsb2F0KGEpKTtjYXNlImZsb2F0IjpiPShCcm93c2VyLkVuZ2luZS50cmlkZW50KT8ic3R5bGVGbG9hdCI6ImNzc0Zsb2F0IjsKfWI9Yi5jYW1lbENhc2UoKTtpZigkdHlwZShhKSE9InN0cmluZyIpe3ZhciBjPShFbGVtZW50LlN0eWxlcy5nZXQoYil8fCJAIikuc3BsaXQoIiAiKTthPSRzcGxhdChhKS5tYXAoZnVuY3Rpb24oZSxkKXtpZighY1tkXSl7cmV0dXJuIiI7fXJldHVybigkdHlwZShlKT09Im51bWJlciIpP2NbZF0ucmVwbGFjZSgiQCIsTWF0aC5yb3VuZChlKSk6ZTsKfSkuam9pbigiICIpO31lbHNle2lmKGE9PVN0cmluZyhOdW1iZXIoYSkpKXthPU1hdGgucm91bmQoYSk7fX10aGlzLnN0eWxlW2JdPWE7cmV0dXJuIHRoaXM7fSxnZXRTdHlsZTpmdW5jdGlvbihnKXtzd2l0Y2goZyl7Y2FzZSJvcGFjaXR5IjpyZXR1cm4gdGhpcy5nZXQoIm9wYWNpdHkiKTsKY2FzZSJmbG9hdCI6Zz0oQnJvd3Nlci5FbmdpbmUudHJpZGVudCk/InN0eWxlRmxvYXQiOiJjc3NGbG9hdCI7fWc9Zy5jYW1lbENhc2UoKTt2YXIgYT10aGlzLnN0eWxlW2ddO2lmKCEkY2hrKGEpKXthPVtdO2Zvcih2YXIgZiBpbiBFbGVtZW50LlNob3J0U3R5bGVzKXtpZihnIT1mKXtjb250aW51ZTsKfWZvcih2YXIgZSBpbiBFbGVtZW50LlNob3J0U3R5bGVzW2ZdKXthLnB1c2godGhpcy5nZXRTdHlsZShlKSk7fXJldHVybiBhLmpvaW4oIiAiKTt9YT10aGlzLmdldENvbXB1dGVkU3R5bGUoZyk7fWlmKGEpe2E9U3RyaW5nKGEpO3ZhciBjPWEubWF0Y2goL3JnYmE/XChbXGRccyxdK1wpLyk7CmlmKGMpe2E9YS5yZXBsYWNlKGNbMF0sY1swXS5yZ2JUb0hleCgpKTt9fWlmKEJyb3dzZXIuRW5naW5lLnByZXN0b3x8KEJyb3dzZXIuRW5naW5lLnRyaWRlbnQmJiEkY2hrKHBhcnNlSW50KGEsMTApKSkpe2lmKGcudGVzdCgvXihoZWlnaHR8d2lkdGgpJC8pKXt2YXIgYj0oZz09IndpZHRoIik/WyJsZWZ0IiwicmlnaHQiXTpbInRvcCIsImJvdHRvbSJdLGQ9MDsKYi5lYWNoKGZ1bmN0aW9uKGgpe2QrPXRoaXMuZ2V0U3R5bGUoImJvcmRlci0iK2grIi13aWR0aCIpLnRvSW50KCkrdGhpcy5nZXRTdHlsZSgicGFkZGluZy0iK2gpLnRvSW50KCk7fSx0aGlzKTtyZXR1cm4gdGhpc1sib2Zmc2V0IitnLmNhcGl0YWxpemUoKV0tZCsicHgiOwp9aWYoKEJyb3dzZXIuRW5naW5lLnByZXN0bykmJlN0cmluZyhhKS50ZXN0KCJweCIpKXtyZXR1cm4gYTt9aWYoZy50ZXN0KC8oYm9yZGVyKC4rKVdpZHRofG1hcmdpbnxwYWRkaW5nKS8pKXtyZXR1cm4iMHB4Ijt9fXJldHVybiBhO30sc2V0U3R5bGVzOmZ1bmN0aW9uKGIpe2Zvcih2YXIgYSBpbiBiKXt0aGlzLnNldFN0eWxlKGEsYlthXSk7Cn1yZXR1cm4gdGhpczt9LGdldFN0eWxlczpmdW5jdGlvbigpe3ZhciBhPXt9O0FycmF5LmZsYXR0ZW4oYXJndW1lbnRzKS5lYWNoKGZ1bmN0aW9uKGIpe2FbYl09dGhpcy5nZXRTdHlsZShiKTt9LHRoaXMpO3JldHVybiBhO319KTtFbGVtZW50LlN0eWxlcz1uZXcgSGFzaCh7bGVmdDoiQHB4Iix0b3A6IkBweCIsYm90dG9tOiJAcHgiLHJpZ2h0OiJAcHgiLHdpZHRoOiJAcHgiLGhlaWdodDoiQHB4IixtYXhXaWR0aDoiQHB4IixtYXhIZWlnaHQ6IkBweCIsbWluV2lkdGg6IkBweCIsbWluSGVpZ2h0OiJAcHgiLGJhY2tncm91bmRDb2xvcjoicmdiKEAsIEAsIEApIixiYWNrZ3JvdW5kUG9zaXRpb246IkBweCBAcHgiLGNvbG9yOiJyZ2IoQCwgQCwgQCkiLGZvbnRTaXplOiJAcHgiLGxldHRlclNwYWNpbmc6IkBweCIsbGluZUhlaWdodDoiQHB4IixjbGlwOiJyZWN0KEBweCBAcHggQHB4IEBweCkiLG1hcmdpbjoiQHB4IEBweCBAcHggQHB4IixwYWRkaW5nOiJAcHggQHB4IEBweCBAcHgiLGJvcmRlcjoiQHB4IEAgcmdiKEAsIEAsIEApIEBweCBAIHJnYihALCBALCBAKSBAcHggQCByZ2IoQCwgQCwgQCkiLGJvcmRlcldpZHRoOiJAcHggQHB4IEBweCBAcHgiLGJvcmRlclN0eWxlOiJAIEAgQCBAIixib3JkZXJDb2xvcjoicmdiKEAsIEAsIEApIHJnYihALCBALCBAKSByZ2IoQCwgQCwgQCkgcmdiKEAsIEAsIEApIix6SW5kZXg6IkAiLHpvb206IkAiLGZvbnRXZWlnaHQ6IkAiLHRleHRJbmRlbnQ6IkBweCIsb3BhY2l0eToiQCJ9KTsKRWxlbWVudC5TaG9ydFN0eWxlcz17bWFyZ2luOnt9LHBhZGRpbmc6e30sYm9yZGVyOnt9LGJvcmRlcldpZHRoOnt9LGJvcmRlclN0eWxlOnt9LGJvcmRlckNvbG9yOnt9fTtbIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLmVhY2goZnVuY3Rpb24oZyl7dmFyIGY9RWxlbWVudC5TaG9ydFN0eWxlczsKdmFyIGI9RWxlbWVudC5TdHlsZXM7WyJtYXJnaW4iLCJwYWRkaW5nIl0uZWFjaChmdW5jdGlvbihoKXt2YXIgaT1oK2c7ZltoXVtpXT1iW2ldPSJAcHgiO30pO3ZhciBlPSJib3JkZXIiK2c7Zi5ib3JkZXJbZV09YltlXT0iQHB4IEAgcmdiKEAsIEAsIEApIjt2YXIgZD1lKyJXaWR0aCIsYT1lKyJTdHlsZSIsYz1lKyJDb2xvciI7CmZbZV09e307Zi5ib3JkZXJXaWR0aFtkXT1mW2VdW2RdPWJbZF09IkBweCI7Zi5ib3JkZXJTdHlsZVthXT1mW2VdW2FdPWJbYV09IkAiO2YuYm9yZGVyQ29sb3JbY109ZltlXVtjXT1iW2NdPSJyZ2IoQCwgQCwgQCkiO30pOyhmdW5jdGlvbigpe0VsZW1lbnQuaW1wbGVtZW50KHtzY3JvbGxUbzpmdW5jdGlvbihoLGkpe2lmKGIodGhpcykpe3RoaXMuZ2V0V2luZG93KCkuc2Nyb2xsVG8oaCxpKTsKfWVsc2V7dGhpcy5zY3JvbGxMZWZ0PWg7dGhpcy5zY3JvbGxUb3A9aTt9cmV0dXJuIHRoaXM7fSxnZXRTaXplOmZ1bmN0aW9uKCl7aWYoYih0aGlzKSl7cmV0dXJuIHRoaXMuZ2V0V2luZG93KCkuZ2V0U2l6ZSgpO31yZXR1cm57eDp0aGlzLm9mZnNldFdpZHRoLHk6dGhpcy5vZmZzZXRIZWlnaHR9Owp9LGdldFNjcm9sbFNpemU6ZnVuY3Rpb24oKXtpZihiKHRoaXMpKXtyZXR1cm4gdGhpcy5nZXRXaW5kb3coKS5nZXRTY3JvbGxTaXplKCk7fXJldHVybnt4OnRoaXMuc2Nyb2xsV2lkdGgseTp0aGlzLnNjcm9sbEhlaWdodH07fSxnZXRTY3JvbGw6ZnVuY3Rpb24oKXtpZihiKHRoaXMpKXtyZXR1cm4gdGhpcy5nZXRXaW5kb3coKS5nZXRTY3JvbGwoKTsKfXJldHVybnt4OnRoaXMuc2Nyb2xsTGVmdCx5OnRoaXMuc2Nyb2xsVG9wfTt9LGdldFNjcm9sbHM6ZnVuY3Rpb24oKXt2YXIgaT10aGlzLGg9e3g6MCx5OjB9O3doaWxlKGkmJiFiKGkpKXtoLngrPWkuc2Nyb2xsTGVmdDtoLnkrPWkuc2Nyb2xsVG9wO2k9aS5wYXJlbnROb2RlOwp9cmV0dXJuIGg7fSxnZXRPZmZzZXRQYXJlbnQ6ZnVuY3Rpb24oKXt2YXIgaD10aGlzO2lmKGIoaCkpe3JldHVybiBudWxsO31pZighQnJvd3Nlci5FbmdpbmUudHJpZGVudCl7cmV0dXJuIGgub2Zmc2V0UGFyZW50O313aGlsZSgoaD1oLnBhcmVudE5vZGUpJiYhYihoKSl7aWYoZChoLCJwb3NpdGlvbiIpIT0ic3RhdGljIil7cmV0dXJuIGg7Cn19cmV0dXJuIG51bGw7fSxnZXRPZmZzZXRzOmZ1bmN0aW9uKCl7aWYodGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3Qpe3ZhciBtPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaz1kb2N1bWVudC5pZCh0aGlzLmdldERvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KSxpPWsuZ2V0U2Nyb2xsKCksbj0oZCh0aGlzLCJwb3NpdGlvbiIpPT0iZml4ZWQiKTsKcmV0dXJue3g6cGFyc2VJbnQobS5sZWZ0LDEwKSsoKG4pPzA6aS54KS1rLmNsaWVudExlZnQseTpwYXJzZUludChtLnRvcCwxMCkrKChuKT8wOmkueSktay5jbGllbnRUb3B9O312YXIgaj10aGlzLGg9e3g6MCx5OjB9O2lmKGIodGhpcykpe3JldHVybiBoO313aGlsZShqJiYhYihqKSl7aC54Kz1qLm9mZnNldExlZnQ7CmgueSs9ai5vZmZzZXRUb3A7aWYoQnJvd3Nlci5FbmdpbmUuZ2Vja28pe2lmKCFmKGopKXtoLngrPWMoaik7aC55Kz1nKGopO312YXIgbD1qLnBhcmVudE5vZGU7aWYobCYmZChsLCJvdmVyZmxvdyIpIT0idmlzaWJsZSIpe2gueCs9YyhsKTtoLnkrPWcobCk7fX1lbHNle2lmKGohPXRoaXMmJkJyb3dzZXIuRW5naW5lLndlYmtpdCl7aC54Kz1jKGopOwpoLnkrPWcoaik7fX1qPWoub2Zmc2V0UGFyZW50O31pZihCcm93c2VyLkVuZ2luZS5nZWNrbyYmIWYodGhpcykpe2gueC09Yyh0aGlzKTtoLnktPWcodGhpcyk7fXJldHVybiBoO30sZ2V0UG9zaXRpb246ZnVuY3Rpb24oayl7aWYoYih0aGlzKSl7cmV0dXJue3g6MCx5OjB9Owp9dmFyIGw9dGhpcy5nZXRPZmZzZXRzKCksaT10aGlzLmdldFNjcm9sbHMoKTt2YXIgaD17eDpsLngtaS54LHk6bC55LWkueX07dmFyIGo9KGsmJihrPWRvY3VtZW50LmlkKGspKSk/ay5nZXRQb3NpdGlvbigpOnt4OjAseTowfTtyZXR1cm57eDpoLngtai54LHk6aC55LWoueX07Cn0sZ2V0Q29vcmRpbmF0ZXM6ZnVuY3Rpb24oail7aWYoYih0aGlzKSl7cmV0dXJuIHRoaXMuZ2V0V2luZG93KCkuZ2V0Q29vcmRpbmF0ZXMoKTt9dmFyIGg9dGhpcy5nZXRQb3NpdGlvbihqKSxpPXRoaXMuZ2V0U2l6ZSgpO3ZhciBrPXtsZWZ0OmgueCx0b3A6aC55LHdpZHRoOmkueCxoZWlnaHQ6aS55fTsKay5yaWdodD1rLmxlZnQray53aWR0aDtrLmJvdHRvbT1rLnRvcCtrLmhlaWdodDtyZXR1cm4gazt9LGNvbXB1dGVQb3NpdGlvbjpmdW5jdGlvbihoKXtyZXR1cm57bGVmdDpoLngtZSh0aGlzLCJtYXJnaW4tbGVmdCIpLHRvcDpoLnktZSh0aGlzLCJtYXJnaW4tdG9wIil9Owp9LHNldFBvc2l0aW9uOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnNldFN0eWxlcyh0aGlzLmNvbXB1dGVQb3NpdGlvbihoKSk7fX0pO05hdGl2ZS5pbXBsZW1lbnQoW0RvY3VtZW50LFdpbmRvd10se2dldFNpemU6ZnVuY3Rpb24oKXtpZihCcm93c2VyLkVuZ2luZS5wcmVzdG98fEJyb3dzZXIuRW5naW5lLndlYmtpdCl7dmFyIGk9dGhpcy5nZXRXaW5kb3coKTsKcmV0dXJue3g6aS5pbm5lcldpZHRoLHk6aS5pbm5lckhlaWdodH07fXZhciBoPWEodGhpcyk7cmV0dXJue3g6aC5jbGllbnRXaWR0aCx5OmguY2xpZW50SGVpZ2h0fTt9LGdldFNjcm9sbDpmdW5jdGlvbigpe3ZhciBpPXRoaXMuZ2V0V2luZG93KCksaD1hKHRoaXMpOwpyZXR1cm57eDppLnBhZ2VYT2Zmc2V0fHxoLnNjcm9sbExlZnQseTppLnBhZ2VZT2Zmc2V0fHxoLnNjcm9sbFRvcH07fSxnZXRTY3JvbGxTaXplOmZ1bmN0aW9uKCl7dmFyIGk9YSh0aGlzKSxoPXRoaXMuZ2V0U2l6ZSgpO3JldHVybnt4Ok1hdGgubWF4KGkuc2Nyb2xsV2lkdGgsaC54KSx5Ok1hdGgubWF4KGkuc2Nyb2xsSGVpZ2h0LGgueSl9Owp9LGdldFBvc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJue3g6MCx5OjB9O30sZ2V0Q29vcmRpbmF0ZXM6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmdldFNpemUoKTtyZXR1cm57dG9wOjAsbGVmdDowLGJvdHRvbTpoLnkscmlnaHQ6aC54LGhlaWdodDpoLnksd2lkdGg6aC54fTsKfX0pO3ZhciBkPUVsZW1lbnQuZ2V0Q29tcHV0ZWRTdHlsZTtmdW5jdGlvbiBlKGgsaSl7cmV0dXJuIGQoaCxpKS50b0ludCgpfHwwO31mdW5jdGlvbiBmKGgpe3JldHVybiBkKGgsIi1tb3otYm94LXNpemluZyIpPT0iYm9yZGVyLWJveCI7fWZ1bmN0aW9uIGcoaCl7cmV0dXJuIGUoaCwiYm9yZGVyLXRvcC13aWR0aCIpOwp9ZnVuY3Rpb24gYyhoKXtyZXR1cm4gZShoLCJib3JkZXItbGVmdC13aWR0aCIpO31mdW5jdGlvbiBiKGgpe3JldHVybigvXig/OmJvZHl8aHRtbCkkL2kpLnRlc3QoaC50YWdOYW1lKTt9ZnVuY3Rpb24gYShoKXt2YXIgaT1oLmdldERvY3VtZW50KCk7cmV0dXJuKCFpLmNvbXBhdE1vZGV8fGkuY29tcGF0TW9kZT09IkNTUzFDb21wYXQiKT9pLmh0bWw6aS5ib2R5Owp9fSkoKTtFbGVtZW50LmFsaWFzKCJzZXRQb3NpdGlvbiIsInBvc2l0aW9uIik7TmF0aXZlLmltcGxlbWVudChbV2luZG93LERvY3VtZW50LEVsZW1lbnRdLHtnZXRIZWlnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRTaXplKCkueTt9LGdldFdpZHRoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0U2l6ZSgpLng7Cn0sZ2V0U2Nyb2xsVG9wOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0U2Nyb2xsKCkueTt9LGdldFNjcm9sbExlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRTY3JvbGwoKS54O30sZ2V0U2Nyb2xsSGVpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0U2Nyb2xsU2l6ZSgpLnk7Cn0sZ2V0U2Nyb2xsV2lkdGg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRTY3JvbGxTaXplKCkueDt9LGdldFRvcDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFBvc2l0aW9uKCkueTt9LGdldExlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRQb3NpdGlvbigpLng7Cn19KTtOYXRpdmUuaW1wbGVtZW50KFtEb2N1bWVudCxFbGVtZW50XSx7Z2V0RWxlbWVudHM6ZnVuY3Rpb24oaCxnKXtoPWguc3BsaXQoIiwiKTt2YXIgYyxlPXt9O2Zvcih2YXIgZD0wLGI9aC5sZW5ndGg7ZDxiO2QrKyl7dmFyIGE9aFtkXSxmPVNlbGVjdG9ycy5VdGlscy5zZWFyY2godGhpcyxhLGUpOwppZihkIT0wJiZmLml0ZW0pe2Y9JEEoZik7fWM9KGQ9PTApP2Y6KGMuaXRlbSk/JEEoYykuY29uY2F0KGYpOmMuY29uY2F0KGYpO31yZXR1cm4gbmV3IEVsZW1lbnRzKGMse2RkdXA6KGgubGVuZ3RoPjEpLGNhc2g6IWd9KTt9fSk7RWxlbWVudC5pbXBsZW1lbnQoe21hdGNoOmZ1bmN0aW9uKGIpe2lmKCFifHwoYj09dGhpcykpe3JldHVybiB0cnVlOwp9dmFyIGQ9U2VsZWN0b3JzLlV0aWxzLnBhcnNlVGFnQW5kSUQoYik7dmFyIGE9ZFswXSxlPWRbMV07aWYoIVNlbGVjdG9ycy5GaWx0ZXJzLmJ5SUQodGhpcyxlKXx8IVNlbGVjdG9ycy5GaWx0ZXJzLmJ5VGFnKHRoaXMsYSkpe3JldHVybiBmYWxzZTt9dmFyIGM9U2VsZWN0b3JzLlV0aWxzLnBhcnNlU2VsZWN0b3IoYik7CnJldHVybihjKT9TZWxlY3RvcnMuVXRpbHMuZmlsdGVyKHRoaXMsYyx7fSk6dHJ1ZTt9fSk7dmFyIFNlbGVjdG9ycz17Q2FjaGU6e250aDp7fSxwYXJzZWQ6e319fTtTZWxlY3RvcnMuUmVnRXhwcz17aWQ6KC8jKFtcdy1dKykvKSx0YWc6KC9eKFx3K3xcKikvKSxxdWljazooL14oXHcrfFwqKSQvKSxzcGxpdHRlcjooL1xzKihbKz5+XHNdKVxzKihbYS16QS1aIy4qOlxbXSkvZyksY29tYmluZWQ6KC9cLihbXHctXSspfFxbKFx3KykoPzooWyEqXiR+fF0/PSkoWyInXT8pKFteXDRdKj8pXDQpP1xdfDooW1x3LV0rKSg/OlwoWyInXT8oLio/KT9bIiddP1wpfCQpL2cpfTsKU2VsZWN0b3JzLlV0aWxzPXtjaGs6ZnVuY3Rpb24oYixjKXtpZighYyl7cmV0dXJuIHRydWU7fXZhciBhPSR1aWQoYik7aWYoIWNbYV0pe3JldHVybiBjW2FdPXRydWU7fXJldHVybiBmYWxzZTt9LHBhcnNlTnRoQXJndW1lbnQ6ZnVuY3Rpb24oaCl7aWYoU2VsZWN0b3JzLkNhY2hlLm50aFtoXSl7cmV0dXJuIFNlbGVjdG9ycy5DYWNoZS5udGhbaF07Cn12YXIgZT1oLm1hdGNoKC9eKFsrLV0/XGQqKT8oW2Etel0rKT8oWystXT9cZCopPyQvKTtpZighZSl7cmV0dXJuIGZhbHNlO312YXIgZz1wYXJzZUludChlWzFdLDEwKTt2YXIgZD0oZ3x8Zz09PTApP2c6MTt2YXIgZj1lWzJdfHxmYWxzZTt2YXIgYz1wYXJzZUludChlWzNdLDEwKXx8MDsKaWYoZCE9MCl7Yy0tO3doaWxlKGM8MSl7Yys9ZDt9d2hpbGUoYz49ZCl7Yy09ZDt9fWVsc2V7ZD1jO2Y9ImluZGV4Ijt9c3dpdGNoKGYpe2Nhc2UibiI6ZT17YTpkLGI6YyxzcGVjaWFsOiJuIn07YnJlYWs7Y2FzZSJvZGQiOmU9e2E6MixiOjAsc3BlY2lhbDoibiJ9OwpicmVhaztjYXNlImV2ZW4iOmU9e2E6MixiOjEsc3BlY2lhbDoibiJ9O2JyZWFrO2Nhc2UiZmlyc3QiOmU9e2E6MCxzcGVjaWFsOiJpbmRleCJ9O2JyZWFrO2Nhc2UibGFzdCI6ZT17c3BlY2lhbDoibGFzdC1jaGlsZCJ9O2JyZWFrO2Nhc2Uib25seSI6ZT17c3BlY2lhbDoib25seS1jaGlsZCJ9OwpicmVhaztkZWZhdWx0OmU9e2E6KGQtMSksc3BlY2lhbDoiaW5kZXgifTt9cmV0dXJuIFNlbGVjdG9ycy5DYWNoZS5udGhbaF09ZTt9LHBhcnNlU2VsZWN0b3I6ZnVuY3Rpb24oZSl7aWYoU2VsZWN0b3JzLkNhY2hlLnBhcnNlZFtlXSl7cmV0dXJuIFNlbGVjdG9ycy5DYWNoZS5wYXJzZWRbZV07Cn12YXIgZCxoPXtjbGFzc2VzOltdLHBzZXVkb3M6W10sYXR0cmlidXRlczpbXX07d2hpbGUoKGQ9U2VsZWN0b3JzLlJlZ0V4cHMuY29tYmluZWQuZXhlYyhlKSkpe3ZhciBpPWRbMV0sZz1kWzJdLGY9ZFszXSxiPWRbNV0sYz1kWzZdLGo9ZFs3XTtpZihpKXtoLmNsYXNzZXMucHVzaChpKTsKfWVsc2V7aWYoYyl7dmFyIGE9U2VsZWN0b3JzLlBzZXVkby5nZXQoYyk7aWYoYSl7aC5wc2V1ZG9zLnB1c2goe3BhcnNlcjphLGFyZ3VtZW50Omp9KTt9ZWxzZXtoLmF0dHJpYnV0ZXMucHVzaCh7bmFtZTpjLG9wZXJhdG9yOiI9Iix2YWx1ZTpqfSk7fX1lbHNle2lmKGcpe2guYXR0cmlidXRlcy5wdXNoKHtuYW1lOmcsb3BlcmF0b3I6Zix2YWx1ZTpifSk7Cn19fX1pZighaC5jbGFzc2VzLmxlbmd0aCl7ZGVsZXRlIGguY2xhc3Nlczt9aWYoIWguYXR0cmlidXRlcy5sZW5ndGgpe2RlbGV0ZSBoLmF0dHJpYnV0ZXM7fWlmKCFoLnBzZXVkb3MubGVuZ3RoKXtkZWxldGUgaC5wc2V1ZG9zO31pZighaC5jbGFzc2VzJiYhaC5hdHRyaWJ1dGVzJiYhaC5wc2V1ZG9zKXtoPW51bGw7Cn1yZXR1cm4gU2VsZWN0b3JzLkNhY2hlLnBhcnNlZFtlXT1oO30scGFyc2VUYWdBbmRJRDpmdW5jdGlvbihiKXt2YXIgYT1iLm1hdGNoKFNlbGVjdG9ycy5SZWdFeHBzLnRhZyk7dmFyIGM9Yi5tYXRjaChTZWxlY3RvcnMuUmVnRXhwcy5pZCk7cmV0dXJuWyhhKT9hWzFdOiIqIiwoYyk/Y1sxXTpmYWxzZV07Cn0sZmlsdGVyOmZ1bmN0aW9uKGYsYyxlKXt2YXIgZDtpZihjLmNsYXNzZXMpe2ZvcihkPWMuY2xhc3Nlcy5sZW5ndGg7ZC0tO2Qpe3ZhciBnPWMuY2xhc3Nlc1tkXTtpZighU2VsZWN0b3JzLkZpbHRlcnMuYnlDbGFzcyhmLGcpKXtyZXR1cm4gZmFsc2U7fX19aWYoYy5hdHRyaWJ1dGVzKXtmb3IoZD1jLmF0dHJpYnV0ZXMubGVuZ3RoOwpkLS07ZCl7dmFyIGI9Yy5hdHRyaWJ1dGVzW2RdO2lmKCFTZWxlY3RvcnMuRmlsdGVycy5ieUF0dHJpYnV0ZShmLGIubmFtZSxiLm9wZXJhdG9yLGIudmFsdWUpKXtyZXR1cm4gZmFsc2U7fX19aWYoYy5wc2V1ZG9zKXtmb3IoZD1jLnBzZXVkb3MubGVuZ3RoO2QtLTtkKXt2YXIgYT1jLnBzZXVkb3NbZF07CmlmKCFTZWxlY3RvcnMuRmlsdGVycy5ieVBzZXVkbyhmLGEucGFyc2VyLGEuYXJndW1lbnQsZSkpe3JldHVybiBmYWxzZTt9fX1yZXR1cm4gdHJ1ZTt9LGdldEJ5VGFnQW5kSUQ6ZnVuY3Rpb24oYixhLGQpe2lmKGQpe3ZhciBjPShiLmdldEVsZW1lbnRCeUlkKT9iLmdldEVsZW1lbnRCeUlkKGQsdHJ1ZSk6RWxlbWVudC5nZXRFbGVtZW50QnlJZChiLGQsdHJ1ZSk7CnJldHVybihjJiZTZWxlY3RvcnMuRmlsdGVycy5ieVRhZyhjLGEpKT9bY106W107fWVsc2V7cmV0dXJuIGIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYSk7fX0sc2VhcmNoOmZ1bmN0aW9uKG8saCx0KXt2YXIgYj1bXTt2YXIgYz1oLnRyaW0oKS5yZXBsYWNlKFNlbGVjdG9ycy5SZWdFeHBzLnNwbGl0dGVyLGZ1bmN0aW9uKGssaixpKXtiLnB1c2goaik7CnJldHVybiI6KSIraTt9KS5zcGxpdCgiOikiKTt2YXIgcCxlLEE7Zm9yKHZhciB6PTAsdj1jLmxlbmd0aDt6PHY7eisrKXt2YXIgeT1jW3pdO2lmKHo9PTAmJlNlbGVjdG9ycy5SZWdFeHBzLnF1aWNrLnRlc3QoeSkpe3A9by5nZXRFbGVtZW50c0J5VGFnTmFtZSh5KTsKY29udGludWU7fXZhciBhPWJbei0xXTt2YXIgcT1TZWxlY3RvcnMuVXRpbHMucGFyc2VUYWdBbmRJRCh5KTt2YXIgQj1xWzBdLHI9cVsxXTtpZih6PT0wKXtwPVNlbGVjdG9ycy5VdGlscy5nZXRCeVRhZ0FuZElEKG8sQixyKTt9ZWxzZXt2YXIgZD17fSxnPVtdO2Zvcih2YXIgeD0wLHc9cC5sZW5ndGg7Cng8dzt4Kyspe2c9U2VsZWN0b3JzLkdldHRlcnNbYV0oZyxwW3hdLEIscixkKTt9cD1nO312YXIgZj1TZWxlY3RvcnMuVXRpbHMucGFyc2VTZWxlY3Rvcih5KTtpZihmKXtlPVtdO2Zvcih2YXIgdT0wLHM9cC5sZW5ndGg7dTxzO3UrKyl7QT1wW3VdO2lmKFNlbGVjdG9ycy5VdGlscy5maWx0ZXIoQSxmLHQpKXtlLnB1c2goQSk7Cn19cD1lO319cmV0dXJuIHA7fX07U2VsZWN0b3JzLkdldHRlcnM9eyIgIjpmdW5jdGlvbihoLGcsaixhLGUpe3ZhciBkPVNlbGVjdG9ycy5VdGlscy5nZXRCeVRhZ0FuZElEKGcsaixhKTtmb3IodmFyIGM9MCxiPWQubGVuZ3RoO2M8YjtjKyspe3ZhciBmPWRbY107aWYoU2VsZWN0b3JzLlV0aWxzLmNoayhmLGUpKXtoLnB1c2goZik7Cn19cmV0dXJuIGg7fSwiPiI6ZnVuY3Rpb24oaCxnLGosYSxmKXt2YXIgYz1TZWxlY3RvcnMuVXRpbHMuZ2V0QnlUYWdBbmRJRChnLGosYSk7Zm9yKHZhciBlPTAsZD1jLmxlbmd0aDtlPGQ7ZSsrKXt2YXIgYj1jW2VdO2lmKGIucGFyZW50Tm9kZT09ZyYmU2VsZWN0b3JzLlV0aWxzLmNoayhiLGYpKXtoLnB1c2goYik7Cn19cmV0dXJuIGg7fSwiKyI6ZnVuY3Rpb24oYyxiLGEsZSxkKXt3aGlsZSgoYj1iLm5leHRTaWJsaW5nKSl7aWYoYi5ub2RlVHlwZT09MSl7aWYoU2VsZWN0b3JzLlV0aWxzLmNoayhiLGQpJiZTZWxlY3RvcnMuRmlsdGVycy5ieVRhZyhiLGEpJiZTZWxlY3RvcnMuRmlsdGVycy5ieUlEKGIsZSkpe2MucHVzaChiKTsKfWJyZWFrO319cmV0dXJuIGM7fSwifiI6ZnVuY3Rpb24oYyxiLGEsZSxkKXt3aGlsZSgoYj1iLm5leHRTaWJsaW5nKSl7aWYoYi5ub2RlVHlwZT09MSl7aWYoIVNlbGVjdG9ycy5VdGlscy5jaGsoYixkKSl7YnJlYWs7fWlmKFNlbGVjdG9ycy5GaWx0ZXJzLmJ5VGFnKGIsYSkmJlNlbGVjdG9ycy5GaWx0ZXJzLmJ5SUQoYixlKSl7Yy5wdXNoKGIpOwp9fX1yZXR1cm4gYzt9fTtTZWxlY3RvcnMuRmlsdGVycz17YnlUYWc6ZnVuY3Rpb24oYixhKXtyZXR1cm4oYT09IioifHwoYi50YWdOYW1lJiZiLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09YSkpO30sYnlJRDpmdW5jdGlvbihhLGIpe3JldHVybighYnx8KGEuaWQmJmEuaWQ9PWIpKTsKfSxieUNsYXNzOmZ1bmN0aW9uKGIsYSl7cmV0dXJuKGIuY2xhc3NOYW1lJiZiLmNsYXNzTmFtZS5jb250YWlucyhhLCIgIikpO30sYnlQc2V1ZG86ZnVuY3Rpb24oYSxkLGMsYil7cmV0dXJuIGQuY2FsbChhLGMsYik7fSxieUF0dHJpYnV0ZTpmdW5jdGlvbihjLGQsYixlKXt2YXIgYT1FbGVtZW50LnByb3RvdHlwZS5nZXRQcm9wZXJ0eS5jYWxsKGMsZCk7CmlmKCFhKXtyZXR1cm4oYj09IiE9Iik7fWlmKCFifHxlPT11bmRlZmluZWQpe3JldHVybiB0cnVlO31zd2l0Y2goYil7Y2FzZSI9IjpyZXR1cm4oYT09ZSk7Y2FzZSIqPSI6cmV0dXJuKGEuY29udGFpbnMoZSkpO2Nhc2UiXj0iOnJldHVybihhLnN1YnN0cigwLGUubGVuZ3RoKT09ZSk7CmNhc2UiJD0iOnJldHVybihhLnN1YnN0cihhLmxlbmd0aC1lLmxlbmd0aCk9PWUpO2Nhc2UiIT0iOnJldHVybihhIT1lKTtjYXNlIn49IjpyZXR1cm4gYS5jb250YWlucyhlLCIgIik7Y2FzZSJ8PSI6cmV0dXJuIGEuY29udGFpbnMoZSwiLSIpO31yZXR1cm4gZmFsc2U7Cn19O1NlbGVjdG9ycy5Qc2V1ZG89bmV3IEhhc2goe2NoZWNrZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jaGVja2VkO30sZW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4gISh0aGlzLmlubmVyVGV4dHx8dGhpcy50ZXh0Q29udGVudHx8IiIpLmxlbmd0aDt9LG5vdDpmdW5jdGlvbihhKXtyZXR1cm4gIUVsZW1lbnQubWF0Y2godGhpcyxhKTsKfSxjb250YWluczpmdW5jdGlvbihhKXtyZXR1cm4odGhpcy5pbm5lclRleHR8fHRoaXMudGV4dENvbnRlbnR8fCIiKS5jb250YWlucyhhKTt9LCJmaXJzdC1jaGlsZCI6ZnVuY3Rpb24oKXtyZXR1cm4gU2VsZWN0b3JzLlBzZXVkby5pbmRleC5jYWxsKHRoaXMsMCk7fSwibGFzdC1jaGlsZCI6ZnVuY3Rpb24oKXt2YXIgYT10aGlzOwp3aGlsZSgoYT1hLm5leHRTaWJsaW5nKSl7aWYoYS5ub2RlVHlwZT09MSl7cmV0dXJuIGZhbHNlO319cmV0dXJuIHRydWU7fSwib25seS1jaGlsZCI6ZnVuY3Rpb24oKXt2YXIgYj10aGlzO3doaWxlKChiPWIucHJldmlvdXNTaWJsaW5nKSl7aWYoYi5ub2RlVHlwZT09MSl7cmV0dXJuIGZhbHNlOwp9fXZhciBhPXRoaXM7d2hpbGUoKGE9YS5uZXh0U2libGluZykpe2lmKGEubm9kZVR5cGU9PTEpe3JldHVybiBmYWxzZTt9fXJldHVybiB0cnVlO30sIm50aC1jaGlsZCI6ZnVuY3Rpb24oZyxlKXtnPShnPT11bmRlZmluZWQpPyJuIjpnO3ZhciBjPVNlbGVjdG9ycy5VdGlscy5wYXJzZU50aEFyZ3VtZW50KGcpOwppZihjLnNwZWNpYWwhPSJuIil7cmV0dXJuIFNlbGVjdG9ycy5Qc2V1ZG9bYy5zcGVjaWFsXS5jYWxsKHRoaXMsYy5hLGUpO312YXIgZj0wO2UucG9zaXRpb25zPWUucG9zaXRpb25zfHx7fTt2YXIgZD0kdWlkKHRoaXMpO2lmKCFlLnBvc2l0aW9uc1tkXSl7dmFyIGI9dGhpczsKd2hpbGUoKGI9Yi5wcmV2aW91c1NpYmxpbmcpKXtpZihiLm5vZGVUeXBlIT0xKXtjb250aW51ZTt9ZisrO3ZhciBhPWUucG9zaXRpb25zWyR1aWQoYildO2lmKGEhPXVuZGVmaW5lZCl7Zj1hK2Y7YnJlYWs7fX1lLnBvc2l0aW9uc1tkXT1mO31yZXR1cm4oZS5wb3NpdGlvbnNbZF0lYy5hPT1jLmIpOwp9LGluZGV4OmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz0wO3doaWxlKChiPWIucHJldmlvdXNTaWJsaW5nKSl7aWYoYi5ub2RlVHlwZT09MSYmKytjPmEpe3JldHVybiBmYWxzZTt9fXJldHVybihjPT1hKTt9LGV2ZW46ZnVuY3Rpb24oYixhKXtyZXR1cm4gU2VsZWN0b3JzLlBzZXVkb1sibnRoLWNoaWxkIl0uY2FsbCh0aGlzLCIybisxIixhKTsKfSxvZGQ6ZnVuY3Rpb24oYixhKXtyZXR1cm4gU2VsZWN0b3JzLlBzZXVkb1sibnRoLWNoaWxkIl0uY2FsbCh0aGlzLCIybiIsYSk7fSxzZWxlY3RlZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNlbGVjdGVkO30sZW5hYmxlZDpmdW5jdGlvbigpe3JldHVybih0aGlzLmRpc2FibGVkPT09ZmFsc2UpOwp9fSk7RWxlbWVudC5FdmVudHMuZG9tcmVhZHk9e29uQWRkOmZ1bmN0aW9uKGEpe2lmKEJyb3dzZXIubG9hZGVkKXthLmNhbGwodGhpcyk7fX19OyhmdW5jdGlvbigpe3ZhciBiPWZ1bmN0aW9uKCl7aWYoQnJvd3Nlci5sb2FkZWQpe3JldHVybjt9QnJvd3Nlci5sb2FkZWQ9dHJ1ZTsKd2luZG93LmZpcmVFdmVudCgiZG9tcmVhZHkiKTtkb2N1bWVudC5maXJlRXZlbnQoImRvbXJlYWR5Iik7fTtpZihCcm93c2VyLkVuZ2luZS50cmlkZW50KXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsoZnVuY3Rpb24oKXsoJHRyeShmdW5jdGlvbigpe2EuZG9TY3JvbGwoKTsKcmV0dXJuIGRvY3VtZW50LmlkKGEpLmluamVjdChkb2N1bWVudC5ib2R5KS5zZXQoImh0bWwiLCJ0ZW1wIikuZGlzcG9zZSgpO30pKT9iKCk6YXJndW1lbnRzLmNhbGxlZS5kZWxheSg1MCk7fSkoKTt9ZWxzZXtpZihCcm93c2VyLkVuZ2luZS53ZWJraXQmJkJyb3dzZXIuRW5naW5lLnZlcnNpb248NTI1KXsoZnVuY3Rpb24oKXsoWyJsb2FkZWQiLCJjb21wbGV0ZSJdLmNvbnRhaW5zKGRvY3VtZW50LnJlYWR5U3RhdGUpKT9iKCk6YXJndW1lbnRzLmNhbGxlZS5kZWxheSg1MCk7Cn0pKCk7fWVsc2V7d2luZG93LmFkZEV2ZW50KCJsb2FkIixiKTtkb2N1bWVudC5hZGRFdmVudCgiRE9NQ29udGVudExvYWRlZCIsYik7fX19KSgpO3ZhciBKU09OPW5ldyBIYXNoKHskc3BlY2lhbENoYXJzOnsiXGIiOiJcXGIiLCJcdCI6IlxcdCIsIlxuIjoiXFxuIiwiXGYiOiJcXGYiLCJcciI6IlxcciIsJyInOidcXCInLCJcXCI6IlxcXFwifSwkcmVwbGFjZUNoYXJzOmZ1bmN0aW9uKGEpe3JldHVybiBKU09OLiRzcGVjaWFsQ2hhcnNbYV18fCJcXHUwMCIrTWF0aC5mbG9vcihhLmNoYXJDb2RlQXQoKS8xNikudG9TdHJpbmcoMTYpKyhhLmNoYXJDb2RlQXQoKSUxNikudG9TdHJpbmcoMTYpOwp9LGVuY29kZTpmdW5jdGlvbihiKXtzd2l0Y2goJHR5cGUoYikpe2Nhc2Uic3RyaW5nIjpyZXR1cm4nIicrYi5yZXBsYWNlKC9bXHgwMC1ceDFmXFwiXS9nLEpTT04uJHJlcGxhY2VDaGFycykrJyInO2Nhc2UiYXJyYXkiOnJldHVybiJbIitTdHJpbmcoYi5tYXAoSlNPTi5lbmNvZGUpLmNsZWFuKCkpKyJdIjsKY2FzZSJvYmplY3QiOmNhc2UiaGFzaCI6dmFyIGE9W107SGFzaC5lYWNoKGIsZnVuY3Rpb24oZSxkKXt2YXIgYz1KU09OLmVuY29kZShlKTtpZihjKXthLnB1c2goSlNPTi5lbmNvZGUoZCkrIjoiK2MpO319KTtyZXR1cm4ieyIrYSsifSI7Y2FzZSJudW1iZXIiOmNhc2UiYm9vbGVhbiI6cmV0dXJuIFN0cmluZyhiKTsKY2FzZSBmYWxzZTpyZXR1cm4ibnVsbCI7fXJldHVybiBudWxsO30sZGVjb2RlOmZ1bmN0aW9uKHN0cmluZyxzZWN1cmUpe2lmKCR0eXBlKHN0cmluZykhPSJzdHJpbmcifHwhc3RyaW5nLmxlbmd0aCl7cmV0dXJuIG51bGw7fWlmKHNlY3VyZSYmISgvXlssOnt9XFtcXTAtOS5cLStFYWVmbG5yLXUgXG5cclx0XSokLykudGVzdChzdHJpbmcucmVwbGFjZSgvXFwuL2csIkAiKS5yZXBsYWNlKC8iW14iXFxcblxyXSoiL2csIiIpKSl7cmV0dXJuIG51bGw7Cn1yZXR1cm4gZXZhbCgiKCIrc3RyaW5nKyIpIik7fX0pO05hdGl2ZS5pbXBsZW1lbnQoW0hhc2gsQXJyYXksU3RyaW5nLE51bWJlcl0se3RvSlNPTjpmdW5jdGlvbigpe3JldHVybiBKU09OLmVuY29kZSh0aGlzKTt9fSk7dmFyIENvb2tpZT1uZXcgQ2xhc3Moe0ltcGxlbWVudHM6T3B0aW9ucyxvcHRpb25zOntwYXRoOmZhbHNlLGRvbWFpbjpmYWxzZSxkdXJhdGlvbjpmYWxzZSxzZWN1cmU6ZmFsc2UsZG9jdW1lbnQ6ZG9jdW1lbnR9LGluaXRpYWxpemU6ZnVuY3Rpb24oYixhKXt0aGlzLmtleT1iOwp0aGlzLnNldE9wdGlvbnMoYSk7fSx3cml0ZTpmdW5jdGlvbihiKXtiPWVuY29kZVVSSUNvbXBvbmVudChiKTtpZih0aGlzLm9wdGlvbnMuZG9tYWluKXtiKz0iOyBkb21haW49Iit0aGlzLm9wdGlvbnMuZG9tYWluO31pZih0aGlzLm9wdGlvbnMucGF0aCl7Yis9IjsgcGF0aD0iK3RoaXMub3B0aW9ucy5wYXRoOwp9aWYodGhpcy5vcHRpb25zLmR1cmF0aW9uKXt2YXIgYT1uZXcgRGF0ZSgpO2Euc2V0VGltZShhLmdldFRpbWUoKSt0aGlzLm9wdGlvbnMuZHVyYXRpb24qMjQqNjAqNjAqMTAwMCk7Yis9IjsgZXhwaXJlcz0iK2EudG9HTVRTdHJpbmcoKTt9aWYodGhpcy5vcHRpb25zLnNlY3VyZSl7Yis9Ijsgc2VjdXJlIjsKfXRoaXMub3B0aW9ucy5kb2N1bWVudC5jb29raWU9dGhpcy5rZXkrIj0iK2I7cmV0dXJuIHRoaXM7fSxyZWFkOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcHRpb25zLmRvY3VtZW50LmNvb2tpZS5tYXRjaCgiKD86Xnw7KVxccyoiK3RoaXMua2V5LmVzY2FwZVJlZ0V4cCgpKyI9KFteO10qKSIpOwpyZXR1cm4oYSk/ZGVjb2RlVVJJQ29tcG9uZW50KGFbMV0pOm51bGw7fSxkaXNwb3NlOmZ1bmN0aW9uKCl7bmV3IENvb2tpZSh0aGlzLmtleSwkbWVyZ2UodGhpcy5vcHRpb25zLHtkdXJhdGlvbjotMX0pKS53cml0ZSgiIik7cmV0dXJuIHRoaXM7fX0pO0Nvb2tpZS53cml0ZT1mdW5jdGlvbihiLGMsYSl7cmV0dXJuIG5ldyBDb29raWUoYixhKS53cml0ZShjKTsKfTtDb29raWUucmVhZD1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IENvb2tpZShhKS5yZWFkKCk7fTtDb29raWUuZGlzcG9zZT1mdW5jdGlvbihiLGEpe3JldHVybiBuZXcgQ29va2llKGIsYSkuZGlzcG9zZSgpO307dmFyIFN3aWZmPW5ldyBDbGFzcyh7SW1wbGVtZW50czpbT3B0aW9uc10sb3B0aW9uczp7aWQ6bnVsbCxoZWlnaHQ6MSx3aWR0aDoxLGNvbnRhaW5lcjpudWxsLHByb3BlcnRpZXM6e30scGFyYW1zOntxdWFsaXR5OiJoaWdoIixhbGxvd1NjcmlwdEFjY2VzczoiYWx3YXlzIix3TW9kZToidHJhbnNwYXJlbnQiLHN3TGl2ZUNvbm5lY3Q6dHJ1ZX0sY2FsbEJhY2tzOnt9LHZhcnM6e319LHRvRWxlbWVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9iamVjdDsKfSxpbml0aWFsaXplOmZ1bmN0aW9uKGwsbSl7dGhpcy5pbnN0YW5jZT0iU3dpZmZfIiskdGltZSgpO3RoaXMuc2V0T3B0aW9ucyhtKTttPXRoaXMub3B0aW9uczt2YXIgYj10aGlzLmlkPW0uaWR8fHRoaXMuaW5zdGFuY2U7dmFyIGE9ZG9jdW1lbnQuaWQobS5jb250YWluZXIpOwpTd2lmZi5DYWxsQmFja3NbdGhpcy5pbnN0YW5jZV09e307dmFyIGU9bS5wYXJhbXMsZz1tLnZhcnMsZj1tLmNhbGxCYWNrczt2YXIgaD0kZXh0ZW5kKHtoZWlnaHQ6bS5oZWlnaHQsd2lkdGg6bS53aWR0aH0sbS5wcm9wZXJ0aWVzKTt2YXIgaz10aGlzO2Zvcih2YXIgZCBpbiBmKXtTd2lmZi5DYWxsQmFja3NbdGhpcy5pbnN0YW5jZV1bZF09KGZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBuLmFwcGx5KGsub2JqZWN0LGFyZ3VtZW50cyk7Cn07fSkoZltkXSk7Z1tkXT0iU3dpZmYuQ2FsbEJhY2tzLiIrdGhpcy5pbnN0YW5jZSsiLiIrZDt9ZS5mbGFzaFZhcnM9SGFzaC50b1F1ZXJ5U3RyaW5nKGcpO2lmKEJyb3dzZXIuRW5naW5lLnRyaWRlbnQpe2guY2xhc3NpZD0iY2xzaWQ6RDI3Q0RCNkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwIjsKZS5tb3ZpZT1sO31lbHNle2gudHlwZT0iYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giO2guZGF0YT1sO312YXIgaj0nPG9iamVjdCBpZD0iJytiKyciJztmb3IodmFyIGkgaW4gaCl7ais9IiAiK2krJz0iJytoW2ldKyciJzt9ais9Ij4iO2Zvcih2YXIgYyBpbiBlKXtpZihlW2NdKXtqKz0nPHBhcmFtIG5hbWU9IicrYysnIiB2YWx1ZT0iJytlW2NdKyciIC8+JzsKfX1qKz0iPC9vYmplY3Q+Ijt0aGlzLm9iamVjdD0oKGEpP2EuZW1wdHkoKTpuZXcgRWxlbWVudCgiZGl2IikpLnNldCgiaHRtbCIsaikuZmlyc3RDaGlsZDt9LHJlcGxhY2VzOmZ1bmN0aW9uKGEpe2E9ZG9jdW1lbnQuaWQoYSx0cnVlKTthLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKHRoaXMudG9FbGVtZW50KCksYSk7CnJldHVybiB0aGlzO30saW5qZWN0OmZ1bmN0aW9uKGEpe2RvY3VtZW50LmlkKGEsdHJ1ZSkuYXBwZW5kQ2hpbGQodGhpcy50b0VsZW1lbnQoKSk7cmV0dXJuIHRoaXM7fSxyZW1vdGU6ZnVuY3Rpb24oKXtyZXR1cm4gU3dpZmYucmVtb3RlLmFwcGx5KFN3aWZmLFt0aGlzLnRvRWxlbWVudCgpXS5leHRlbmQoYXJndW1lbnRzKSk7Cn19KTtTd2lmZi5DYWxsQmFja3M9e307U3dpZmYucmVtb3RlPWZ1bmN0aW9uKG9iaixmbil7dmFyIHJzPW9iai5DYWxsRnVuY3Rpb24oJzxpbnZva2UgbmFtZT0iJytmbisnIiByZXR1cm50eXBlPSJqYXZhc2NyaXB0Ij4nK19fZmxhc2hfX2FyZ3VtZW50c1RvWE1MKGFyZ3VtZW50cywyKSsiPC9pbnZva2U+Iik7CnJldHVybiBldmFsKHJzKTt9O3ZhciBGeD1uZXcgQ2xhc3Moe0ltcGxlbWVudHM6W0NoYWluLEV2ZW50cyxPcHRpb25zXSxvcHRpb25zOntmcHM6NTAsdW5pdDpmYWxzZSxkdXJhdGlvbjo1MDAsbGluazoiaWdub3JlIn0saW5pdGlhbGl6ZTpmdW5jdGlvbihhKXt0aGlzLnN1YmplY3Q9dGhpcy5zdWJqZWN0fHx0aGlzOwp0aGlzLnNldE9wdGlvbnMoYSk7dGhpcy5vcHRpb25zLmR1cmF0aW9uPUZ4LkR1cmF0aW9uc1t0aGlzLm9wdGlvbnMuZHVyYXRpb25dfHx0aGlzLm9wdGlvbnMuZHVyYXRpb24udG9JbnQoKTt2YXIgYj10aGlzLm9wdGlvbnMud2FpdDtpZihiPT09ZmFsc2Upe3RoaXMub3B0aW9ucy5saW5rPSJjYW5jZWwiOwp9fSxnZXRUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiAtKE1hdGguY29zKE1hdGguUEkqYSktMSkvMjt9O30sc3RlcDpmdW5jdGlvbigpe3ZhciBhPSR0aW1lKCk7aWYoYTx0aGlzLnRpbWUrdGhpcy5vcHRpb25zLmR1cmF0aW9uKXt2YXIgYj10aGlzLnRyYW5zaXRpb24oKGEtdGhpcy50aW1lKS90aGlzLm9wdGlvbnMuZHVyYXRpb24pOwp0aGlzLnNldCh0aGlzLmNvbXB1dGUodGhpcy5mcm9tLHRoaXMudG8sYikpO31lbHNle3RoaXMuc2V0KHRoaXMuY29tcHV0ZSh0aGlzLmZyb20sdGhpcy50bywxKSk7dGhpcy5jb21wbGV0ZSgpO319LHNldDpmdW5jdGlvbihhKXtyZXR1cm4gYTt9LGNvbXB1dGU6ZnVuY3Rpb24oYyxiLGEpe3JldHVybiBGeC5jb21wdXRlKGMsYixhKTsKfSxjaGVjazpmdW5jdGlvbigpe2lmKCF0aGlzLnRpbWVyKXtyZXR1cm4gdHJ1ZTt9c3dpdGNoKHRoaXMub3B0aW9ucy5saW5rKXtjYXNlImNhbmNlbCI6dGhpcy5jYW5jZWwoKTtyZXR1cm4gdHJ1ZTtjYXNlImNoYWluIjp0aGlzLmNoYWluKHRoaXMuY2FsbGVyLmJpbmQodGhpcyxhcmd1bWVudHMpKTsKcmV0dXJuIGZhbHNlO31yZXR1cm4gZmFsc2U7fSxzdGFydDpmdW5jdGlvbihiLGEpe2lmKCF0aGlzLmNoZWNrKGIsYSkpe3JldHVybiB0aGlzO310aGlzLmZyb209Yjt0aGlzLnRvPWE7dGhpcy50aW1lPTA7dGhpcy50cmFuc2l0aW9uPXRoaXMuZ2V0VHJhbnNpdGlvbigpOwp0aGlzLnN0YXJ0VGltZXIoKTt0aGlzLm9uU3RhcnQoKTtyZXR1cm4gdGhpczt9LGNvbXBsZXRlOmZ1bmN0aW9uKCl7aWYodGhpcy5zdG9wVGltZXIoKSl7dGhpcy5vbkNvbXBsZXRlKCk7fXJldHVybiB0aGlzO30sY2FuY2VsOmZ1bmN0aW9uKCl7aWYodGhpcy5zdG9wVGltZXIoKSl7dGhpcy5vbkNhbmNlbCgpOwp9cmV0dXJuIHRoaXM7fSxvblN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5maXJlRXZlbnQoInN0YXJ0Iix0aGlzLnN1YmplY3QpO30sb25Db21wbGV0ZTpmdW5jdGlvbigpe3RoaXMuZmlyZUV2ZW50KCJjb21wbGV0ZSIsdGhpcy5zdWJqZWN0KTtpZighdGhpcy5jYWxsQ2hhaW4oKSl7dGhpcy5maXJlRXZlbnQoImNoYWluQ29tcGxldGUiLHRoaXMuc3ViamVjdCk7Cn19LG9uQ2FuY2VsOmZ1bmN0aW9uKCl7dGhpcy5maXJlRXZlbnQoImNhbmNlbCIsdGhpcy5zdWJqZWN0KS5jbGVhckNoYWluKCk7fSxwYXVzZTpmdW5jdGlvbigpe3RoaXMuc3RvcFRpbWVyKCk7cmV0dXJuIHRoaXM7fSxyZXN1bWU6ZnVuY3Rpb24oKXt0aGlzLnN0YXJ0VGltZXIoKTsKcmV0dXJuIHRoaXM7fSxzdG9wVGltZXI6ZnVuY3Rpb24oKXtpZighdGhpcy50aW1lcil7cmV0dXJuIGZhbHNlO310aGlzLnRpbWU9JHRpbWUoKS10aGlzLnRpbWU7dGhpcy50aW1lcj0kY2xlYXIodGhpcy50aW1lcik7cmV0dXJuIHRydWU7fSxzdGFydFRpbWVyOmZ1bmN0aW9uKCl7aWYodGhpcy50aW1lcil7cmV0dXJuIGZhbHNlOwp9dGhpcy50aW1lPSR0aW1lKCktdGhpcy50aW1lO3RoaXMudGltZXI9dGhpcy5zdGVwLnBlcmlvZGljYWwoTWF0aC5yb3VuZCgxMDAwL3RoaXMub3B0aW9ucy5mcHMpLHRoaXMpO3JldHVybiB0cnVlO319KTtGeC5jb21wdXRlPWZ1bmN0aW9uKGMsYixhKXtyZXR1cm4oYi1jKSphK2M7Cn07RnguRHVyYXRpb25zPXsic2hvcnQiOjI1MCxub3JtYWw6NTAwLCJsb25nIjoxMDAwfTtGeC5DU1M9bmV3IENsYXNzKHtFeHRlbmRzOkZ4LHByZXBhcmU6ZnVuY3Rpb24oZCxlLGIpe2I9JHNwbGF0KGIpO3ZhciBjPWJbMV07aWYoISRjaGsoYykpe2JbMV09YlswXTsKYlswXT1kLmdldFN0eWxlKGUpO312YXIgYT1iLm1hcCh0aGlzLnBhcnNlKTtyZXR1cm57ZnJvbTphWzBdLHRvOmFbMV19O30scGFyc2U6ZnVuY3Rpb24oYSl7YT0kbGFtYmRhKGEpKCk7YT0odHlwZW9mIGE9PSJzdHJpbmciKT9hLnNwbGl0KCIgIik6JHNwbGF0KGEpOwpyZXR1cm4gYS5tYXAoZnVuY3Rpb24oYyl7Yz1TdHJpbmcoYyk7dmFyIGI9ZmFsc2U7RnguQ1NTLlBhcnNlcnMuZWFjaChmdW5jdGlvbihmLGUpe2lmKGIpe3JldHVybjt9dmFyIGQ9Zi5wYXJzZShjKTtpZigkY2hrKGQpKXtiPXt2YWx1ZTpkLHBhcnNlcjpmfTt9fSk7CmI9Ynx8e3ZhbHVlOmMscGFyc2VyOkZ4LkNTUy5QYXJzZXJzLlN0cmluZ307cmV0dXJuIGI7fSk7fSxjb21wdXRlOmZ1bmN0aW9uKGQsYyxiKXt2YXIgYT1bXTsoTWF0aC5taW4oZC5sZW5ndGgsYy5sZW5ndGgpKS50aW1lcyhmdW5jdGlvbihlKXthLnB1c2goe3ZhbHVlOmRbZV0ucGFyc2VyLmNvbXB1dGUoZFtlXS52YWx1ZSxjW2VdLnZhbHVlLGIpLHBhcnNlcjpkW2VdLnBhcnNlcn0pOwp9KTthLiRmYW1pbHk9e25hbWU6ImZ4OmNzczp2YWx1ZSJ9O3JldHVybiBhO30sc2VydmU6ZnVuY3Rpb24oYyxiKXtpZigkdHlwZShjKSE9ImZ4OmNzczp2YWx1ZSIpe2M9dGhpcy5wYXJzZShjKTt9dmFyIGE9W107Yy5lYWNoKGZ1bmN0aW9uKGQpe2E9YS5jb25jYXQoZC5wYXJzZXIuc2VydmUoZC52YWx1ZSxiKSk7Cn0pO3JldHVybiBhO30scmVuZGVyOmZ1bmN0aW9uKGEsZCxjLGIpe2Euc2V0U3R5bGUoZCx0aGlzLnNlcnZlKGMsYikpO30sc2VhcmNoOmZ1bmN0aW9uKGEpe2lmKEZ4LkNTUy5DYWNoZVthXSl7cmV0dXJuIEZ4LkNTUy5DYWNoZVthXTt9dmFyIGI9e307QXJyYXkuZWFjaChkb2N1bWVudC5zdHlsZVNoZWV0cyxmdW5jdGlvbihlLGQpe3ZhciBjPWUuaHJlZjsKaWYoYyYmYy5jb250YWlucygiOi8vIikmJiFjLmNvbnRhaW5zKGRvY3VtZW50LmRvbWFpbikpe3JldHVybjt9dmFyIGY9ZS5ydWxlc3x8ZS5jc3NSdWxlcztBcnJheS5lYWNoKGYsZnVuY3Rpb24oaixnKXtpZighai5zdHlsZSl7cmV0dXJuO312YXIgaD0oai5zZWxlY3RvclRleHQpP2ouc2VsZWN0b3JUZXh0LnJlcGxhY2UoL15cdysvLGZ1bmN0aW9uKGkpe3JldHVybiBpLnRvTG93ZXJDYXNlKCk7Cn0pOm51bGw7aWYoIWh8fCFoLnRlc3QoIl4iK2ErIiQiKSl7cmV0dXJuO31FbGVtZW50LlN0eWxlcy5lYWNoKGZ1bmN0aW9uKGssaSl7aWYoIWouc3R5bGVbaV18fEVsZW1lbnQuU2hvcnRTdHlsZXNbaV0pe3JldHVybjt9az1TdHJpbmcoai5zdHlsZVtpXSk7YltpXT0oay50ZXN0KC9ecmdiLykpP2sucmdiVG9IZXgoKTprOwp9KTt9KTt9KTtyZXR1cm4gRnguQ1NTLkNhY2hlW2FdPWI7fX0pO0Z4LkNTUy5DYWNoZT17fTtGeC5DU1MuUGFyc2Vycz1uZXcgSGFzaCh7Q29sb3I6e3BhcnNlOmZ1bmN0aW9uKGEpe2lmKGEubWF0Y2goL14jWzAtOWEtZl17Myw2fSQvaSkpe3JldHVybiBhLmhleFRvUmdiKHRydWUpOwp9cmV0dXJuKChhPWEubWF0Y2goLyhcZCspLFxzKihcZCspLFxzKihcZCspLykpKT9bYVsxXSxhWzJdLGFbM11dOmZhbHNlO30sY29tcHV0ZTpmdW5jdGlvbihjLGIsYSl7cmV0dXJuIGMubWFwKGZ1bmN0aW9uKGUsZCl7cmV0dXJuIE1hdGgucm91bmQoRnguY29tcHV0ZShjW2RdLGJbZF0sYSkpOwp9KTt9LHNlcnZlOmZ1bmN0aW9uKGEpe3JldHVybiBhLm1hcChOdW1iZXIpO319LE51bWJlcjp7cGFyc2U6cGFyc2VGbG9hdCxjb21wdXRlOkZ4LmNvbXB1dGUsc2VydmU6ZnVuY3Rpb24oYixhKXtyZXR1cm4oYSk/YithOmI7fX0sU3RyaW5nOntwYXJzZTokbGFtYmRhKGZhbHNlKSxjb21wdXRlOiRhcmd1bWVudHMoMSksc2VydmU6JGFyZ3VtZW50cygwKX19KTsKRnguVHdlZW49bmV3IENsYXNzKHtFeHRlbmRzOkZ4LkNTUyxpbml0aWFsaXplOmZ1bmN0aW9uKGIsYSl7dGhpcy5lbGVtZW50PXRoaXMuc3ViamVjdD1kb2N1bWVudC5pZChiKTt0aGlzLnBhcmVudChhKTt9LHNldDpmdW5jdGlvbihiLGEpe2lmKGFyZ3VtZW50cy5sZW5ndGg9PTEpe2E9YjsKYj10aGlzLnByb3BlcnR5fHx0aGlzLm9wdGlvbnMucHJvcGVydHk7fXRoaXMucmVuZGVyKHRoaXMuZWxlbWVudCxiLGEsdGhpcy5vcHRpb25zLnVuaXQpO3JldHVybiB0aGlzO30sc3RhcnQ6ZnVuY3Rpb24oYyxlLGQpe2lmKCF0aGlzLmNoZWNrKGMsZSxkKSl7cmV0dXJuIHRoaXM7Cn12YXIgYj1BcnJheS5mbGF0dGVuKGFyZ3VtZW50cyk7dGhpcy5wcm9wZXJ0eT10aGlzLm9wdGlvbnMucHJvcGVydHl8fGIuc2hpZnQoKTt2YXIgYT10aGlzLnByZXBhcmUodGhpcy5lbGVtZW50LHRoaXMucHJvcGVydHksYik7cmV0dXJuIHRoaXMucGFyZW50KGEuZnJvbSxhLnRvKTsKfX0pO0VsZW1lbnQuUHJvcGVydGllcy50d2Vlbj17c2V0OmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMucmV0cmlldmUoInR3ZWVuIik7aWYoYil7Yi5jYW5jZWwoKTt9cmV0dXJuIHRoaXMuZWxpbWluYXRlKCJ0d2VlbiIpLnN0b3JlKCJ0d2VlbjpvcHRpb25zIiwkZXh0ZW5kKHtsaW5rOiJjYW5jZWwifSxhKSk7Cn0sZ2V0OmZ1bmN0aW9uKGEpe2lmKGF8fCF0aGlzLnJldHJpZXZlKCJ0d2VlbiIpKXtpZihhfHwhdGhpcy5yZXRyaWV2ZSgidHdlZW46b3B0aW9ucyIpKXt0aGlzLnNldCgidHdlZW4iLGEpO310aGlzLnN0b3JlKCJ0d2VlbiIsbmV3IEZ4LlR3ZWVuKHRoaXMsdGhpcy5yZXRyaWV2ZSgidHdlZW46b3B0aW9ucyIpKSk7Cn1yZXR1cm4gdGhpcy5yZXRyaWV2ZSgidHdlZW4iKTt9fTtFbGVtZW50LmltcGxlbWVudCh7dHdlZW46ZnVuY3Rpb24oYSxjLGIpe3RoaXMuZ2V0KCJ0d2VlbiIpLnN0YXJ0KGFyZ3VtZW50cyk7cmV0dXJuIHRoaXM7fSxmYWRlOmZ1bmN0aW9uKGMpe3ZhciBlPXRoaXMuZ2V0KCJ0d2VlbiIpLGQ9Im9wYWNpdHkiLGE7CmM9JHBpY2soYywidG9nZ2xlIik7c3dpdGNoKGMpe2Nhc2UiaW4iOmUuc3RhcnQoZCwxKTticmVhaztjYXNlIm91dCI6ZS5zdGFydChkLDApO2JyZWFrO2Nhc2Uic2hvdyI6ZS5zZXQoZCwxKTticmVhaztjYXNlImhpZGUiOmUuc2V0KGQsMCk7YnJlYWs7Y2FzZSJ0b2dnbGUiOnZhciBiPXRoaXMucmV0cmlldmUoImZhZGU6ZmxhZyIsdGhpcy5nZXQoIm9wYWNpdHkiKT09MSk7CmUuc3RhcnQoZCwoYik/MDoxKTt0aGlzLnN0b3JlKCJmYWRlOmZsYWciLCFiKTthPXRydWU7YnJlYWs7ZGVmYXVsdDplLnN0YXJ0KGQsYXJndW1lbnRzKTt9aWYoIWEpe3RoaXMuZWxpbWluYXRlKCJmYWRlOmZsYWciKTt9cmV0dXJuIHRoaXM7fSxoaWdobGlnaHQ6ZnVuY3Rpb24oYyxhKXtpZighYSl7YT10aGlzLnJldHJpZXZlKCJoaWdobGlnaHQ6b3JpZ2luYWwiLHRoaXMuZ2V0U3R5bGUoImJhY2tncm91bmQtY29sb3IiKSk7CmE9KGE9PSJ0cmFuc3BhcmVudCIpPyIjZmZmIjphO312YXIgYj10aGlzLmdldCgidHdlZW4iKTtiLnN0YXJ0KCJiYWNrZ3JvdW5kLWNvbG9yIixjfHwiI2ZmZmY4OCIsYSkuY2hhaW4oZnVuY3Rpb24oKXt0aGlzLnNldFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIix0aGlzLnJldHJpZXZlKCJoaWdobGlnaHQ6b3JpZ2luYWwiKSk7CmIuY2FsbENoYWluKCk7fS5iaW5kKHRoaXMpKTtyZXR1cm4gdGhpczt9fSk7RnguTW9ycGg9bmV3IENsYXNzKHtFeHRlbmRzOkZ4LkNTUyxpbml0aWFsaXplOmZ1bmN0aW9uKGIsYSl7dGhpcy5lbGVtZW50PXRoaXMuc3ViamVjdD1kb2N1bWVudC5pZChiKTt0aGlzLnBhcmVudChhKTsKfSxzZXQ6ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGE9PSJzdHJpbmciKXthPXRoaXMuc2VhcmNoKGEpO31mb3IodmFyIGIgaW4gYSl7dGhpcy5yZW5kZXIodGhpcy5lbGVtZW50LGIsYVtiXSx0aGlzLm9wdGlvbnMudW5pdCk7fXJldHVybiB0aGlzO30sY29tcHV0ZTpmdW5jdGlvbihlLGQsYyl7dmFyIGE9e307CmZvcih2YXIgYiBpbiBlKXthW2JdPXRoaXMucGFyZW50KGVbYl0sZFtiXSxjKTt9cmV0dXJuIGE7fSxzdGFydDpmdW5jdGlvbihiKXtpZighdGhpcy5jaGVjayhiKSl7cmV0dXJuIHRoaXM7fWlmKHR5cGVvZiBiPT0ic3RyaW5nIil7Yj10aGlzLnNlYXJjaChiKTt9dmFyIGU9e30sZD17fTsKZm9yKHZhciBjIGluIGIpe3ZhciBhPXRoaXMucHJlcGFyZSh0aGlzLmVsZW1lbnQsYyxiW2NdKTtlW2NdPWEuZnJvbTtkW2NdPWEudG87fXJldHVybiB0aGlzLnBhcmVudChlLGQpO319KTtFbGVtZW50LlByb3BlcnRpZXMubW9ycGg9e3NldDpmdW5jdGlvbihhKXt2YXIgYj10aGlzLnJldHJpZXZlKCJtb3JwaCIpOwppZihiKXtiLmNhbmNlbCgpO31yZXR1cm4gdGhpcy5lbGltaW5hdGUoIm1vcnBoIikuc3RvcmUoIm1vcnBoOm9wdGlvbnMiLCRleHRlbmQoe2xpbms6ImNhbmNlbCJ9LGEpKTt9LGdldDpmdW5jdGlvbihhKXtpZihhfHwhdGhpcy5yZXRyaWV2ZSgibW9ycGgiKSl7aWYoYXx8IXRoaXMucmV0cmlldmUoIm1vcnBoOm9wdGlvbnMiKSl7dGhpcy5zZXQoIm1vcnBoIixhKTsKfXRoaXMuc3RvcmUoIm1vcnBoIixuZXcgRnguTW9ycGgodGhpcyx0aGlzLnJldHJpZXZlKCJtb3JwaDpvcHRpb25zIikpKTt9cmV0dXJuIHRoaXMucmV0cmlldmUoIm1vcnBoIik7fX07RWxlbWVudC5pbXBsZW1lbnQoe21vcnBoOmZ1bmN0aW9uKGEpe3RoaXMuZ2V0KCJtb3JwaCIpLnN0YXJ0KGEpOwpyZXR1cm4gdGhpczt9fSk7RnguaW1wbGVtZW50KHtnZXRUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcHRpb25zLnRyYW5zaXRpb258fEZ4LlRyYW5zaXRpb25zLlNpbmUuZWFzZUluT3V0O2lmKHR5cGVvZiBhPT0ic3RyaW5nIil7dmFyIGI9YS5zcGxpdCgiOiIpOwphPUZ4LlRyYW5zaXRpb25zO2E9YVtiWzBdXXx8YVtiWzBdLmNhcGl0YWxpemUoKV07aWYoYlsxXSl7YT1hWyJlYXNlIitiWzFdLmNhcGl0YWxpemUoKSsoYlsyXT9iWzJdLmNhcGl0YWxpemUoKToiIildO319cmV0dXJuIGE7fX0pO0Z4LlRyYW5zaXRpb249ZnVuY3Rpb24oYixhKXthPSRzcGxhdChhKTsKcmV0dXJuICRleHRlbmQoYix7ZWFzZUluOmZ1bmN0aW9uKGMpe3JldHVybiBiKGMsYSk7fSxlYXNlT3V0OmZ1bmN0aW9uKGMpe3JldHVybiAxLWIoMS1jLGEpO30sZWFzZUluT3V0OmZ1bmN0aW9uKGMpe3JldHVybihjPD0wLjUpP2IoMipjLGEpLzI6KDItYigyKigxLWMpLGEpKS8yOwp9fSk7fTtGeC5UcmFuc2l0aW9ucz1uZXcgSGFzaCh7bGluZWFyOiRhcmd1bWVudHMoMCl9KTtGeC5UcmFuc2l0aW9ucy5leHRlbmQ9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiIGluIGEpe0Z4LlRyYW5zaXRpb25zW2JdPW5ldyBGeC5UcmFuc2l0aW9uKGFbYl0pO319O0Z4LlRyYW5zaXRpb25zLmV4dGVuZCh7UG93OmZ1bmN0aW9uKGIsYSl7cmV0dXJuIE1hdGgucG93KGIsYVswXXx8Nik7Cn0sRXhwbzpmdW5jdGlvbihhKXtyZXR1cm4gTWF0aC5wb3coMiw4KihhLTEpKTt9LENpcmM6ZnVuY3Rpb24oYSl7cmV0dXJuIDEtTWF0aC5zaW4oTWF0aC5hY29zKGEpKTt9LFNpbmU6ZnVuY3Rpb24oYSl7cmV0dXJuIDEtTWF0aC5zaW4oKDEtYSkqTWF0aC5QSS8yKTsKfSxCYWNrOmZ1bmN0aW9uKGIsYSl7YT1hWzBdfHwxLjYxODtyZXR1cm4gTWF0aC5wb3coYiwyKSooKGErMSkqYi1hKTt9LEJvdW5jZTpmdW5jdGlvbihmKXt2YXIgZTtmb3IodmFyIGQ9MCxjPTE7MTtkKz1jLGMvPTIpe2lmKGY+PSg3LTQqZCkvMTEpe2U9YypjLU1hdGgucG93KCgxMS02KmQtMTEqZikvNCwyKTsKYnJlYWs7fX1yZXR1cm4gZTt9LEVsYXN0aWM6ZnVuY3Rpb24oYixhKXtyZXR1cm4gTWF0aC5wb3coMiwxMCotLWIpKk1hdGguY29zKDIwKmIqTWF0aC5QSSooYVswXXx8MSkvMyk7fX0pO1siUXVhZCIsIkN1YmljIiwiUXVhcnQiLCJRdWludCJdLmVhY2goZnVuY3Rpb24oYixhKXtGeC5UcmFuc2l0aW9uc1tiXT1uZXcgRnguVHJhbnNpdGlvbihmdW5jdGlvbihjKXtyZXR1cm4gTWF0aC5wb3coYyxbYSsyXSk7Cn0pO30pO3ZhciBSZXF1ZXN0PW5ldyBDbGFzcyh7SW1wbGVtZW50czpbQ2hhaW4sRXZlbnRzLE9wdGlvbnNdLG9wdGlvbnM6e3VybDoiIixkYXRhOiIiLGhlYWRlcnM6eyJYLVJlcXVlc3RlZC1XaXRoIjoiWE1MSHR0cFJlcXVlc3QiLEFjY2VwdDoidGV4dC9qYXZhc2NyaXB0LCB0ZXh0L2h0bWwsIGFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWwsICovKiJ9LGFzeW5jOnRydWUsZm9ybWF0OmZhbHNlLG1ldGhvZDoicG9zdCIsbGluazoiaWdub3JlIixpc1N1Y2Nlc3M6bnVsbCxlbXVsYXRpb246dHJ1ZSx1cmxFbmNvZGVkOnRydWUsZW5jb2Rpbmc6InV0Zi04IixldmFsU2NyaXB0czpmYWxzZSxldmFsUmVzcG9uc2U6ZmFsc2Usbm9DYWNoZTpmYWxzZX0saW5pdGlhbGl6ZTpmdW5jdGlvbihhKXt0aGlzLnhocj1uZXcgQnJvd3Nlci5SZXF1ZXN0KCk7CnRoaXMuc2V0T3B0aW9ucyhhKTt0aGlzLm9wdGlvbnMuaXNTdWNjZXNzPXRoaXMub3B0aW9ucy5pc1N1Y2Nlc3N8fHRoaXMuaXNTdWNjZXNzO3RoaXMuaGVhZGVycz1uZXcgSGFzaCh0aGlzLm9wdGlvbnMuaGVhZGVycyk7fSxvblN0YXRlQ2hhbmdlOmZ1bmN0aW9uKCl7aWYodGhpcy54aHIucmVhZHlTdGF0ZSE9NHx8IXRoaXMucnVubmluZyl7cmV0dXJuOwp9dGhpcy5ydW5uaW5nPWZhbHNlO3RoaXMuc3RhdHVzPTA7JHRyeShmdW5jdGlvbigpe3RoaXMuc3RhdHVzPXRoaXMueGhyLnN0YXR1czt9LmJpbmQodGhpcykpO3RoaXMueGhyLm9ucmVhZHlzdGF0ZWNoYW5nZT0kZW1wdHk7aWYodGhpcy5vcHRpb25zLmlzU3VjY2Vzcy5jYWxsKHRoaXMsdGhpcy5zdGF0dXMpKXt0aGlzLnJlc3BvbnNlPXt0ZXh0OnRoaXMueGhyLnJlc3BvbnNlVGV4dCx4bWw6dGhpcy54aHIucmVzcG9uc2VYTUx9Owp0aGlzLnN1Y2Nlc3ModGhpcy5yZXNwb25zZS50ZXh0LHRoaXMucmVzcG9uc2UueG1sKTt9ZWxzZXt0aGlzLnJlc3BvbnNlPXt0ZXh0Om51bGwseG1sOm51bGx9O3RoaXMuZmFpbHVyZSgpO319LGlzU3VjY2VzczpmdW5jdGlvbigpe3JldHVybigodGhpcy5zdGF0dXM+PTIwMCkmJih0aGlzLnN0YXR1czwzMDApKTsKfSxwcm9jZXNzU2NyaXB0czpmdW5jdGlvbihhKXtpZih0aGlzLm9wdGlvbnMuZXZhbFJlc3BvbnNlfHwoLyhlY21hfGphdmEpc2NyaXB0LykudGVzdCh0aGlzLmdldEhlYWRlcigiQ29udGVudC10eXBlIikpKXtyZXR1cm4gJGV4ZWMoYSk7fXJldHVybiBhLnN0cmlwU2NyaXB0cyh0aGlzLm9wdGlvbnMuZXZhbFNjcmlwdHMpOwp9LHN1Y2Nlc3M6ZnVuY3Rpb24oYixhKXt0aGlzLm9uU3VjY2Vzcyh0aGlzLnByb2Nlc3NTY3JpcHRzKGIpLGEpO30sb25TdWNjZXNzOmZ1bmN0aW9uKCl7dGhpcy5maXJlRXZlbnQoImNvbXBsZXRlIixhcmd1bWVudHMpLmZpcmVFdmVudCgic3VjY2VzcyIsYXJndW1lbnRzKS5jYWxsQ2hhaW4oKTsKfSxmYWlsdXJlOmZ1bmN0aW9uKCl7dGhpcy5vbkZhaWx1cmUoKTt9LG9uRmFpbHVyZTpmdW5jdGlvbigpe3RoaXMuZmlyZUV2ZW50KCJjb21wbGV0ZSIpLmZpcmVFdmVudCgiZmFpbHVyZSIsdGhpcy54aHIpO30sc2V0SGVhZGVyOmZ1bmN0aW9uKGEsYil7dGhpcy5oZWFkZXJzLnNldChhLGIpOwpyZXR1cm4gdGhpczt9LGdldEhlYWRlcjpmdW5jdGlvbihhKXtyZXR1cm4gJHRyeShmdW5jdGlvbigpe3JldHVybiB0aGlzLnhoci5nZXRSZXNwb25zZUhlYWRlcihhKTt9LmJpbmQodGhpcykpO30sY2hlY2s6ZnVuY3Rpb24oKXtpZighdGhpcy5ydW5uaW5nKXtyZXR1cm4gdHJ1ZTsKfXN3aXRjaCh0aGlzLm9wdGlvbnMubGluayl7Y2FzZSJjYW5jZWwiOnRoaXMuY2FuY2VsKCk7cmV0dXJuIHRydWU7Y2FzZSJjaGFpbiI6dGhpcy5jaGFpbih0aGlzLmNhbGxlci5iaW5kKHRoaXMsYXJndW1lbnRzKSk7cmV0dXJuIGZhbHNlO31yZXR1cm4gZmFsc2U7fSxzZW5kOmZ1bmN0aW9uKGspe2lmKCF0aGlzLmNoZWNrKGspKXtyZXR1cm4gdGhpczsKfXRoaXMucnVubmluZz10cnVlO3ZhciBpPSR0eXBlKGspO2lmKGk9PSJzdHJpbmcifHxpPT0iZWxlbWVudCIpe2s9e2RhdGE6a307fXZhciBkPXRoaXMub3B0aW9ucztrPSRleHRlbmQoe2RhdGE6ZC5kYXRhLHVybDpkLnVybCxtZXRob2Q6ZC5tZXRob2R9LGspO3ZhciBnPWsuZGF0YSxiPWsudXJsLGE9ay5tZXRob2QudG9Mb3dlckNhc2UoKTsKc3dpdGNoKCR0eXBlKGcpKXtjYXNlImVsZW1lbnQiOmc9ZG9jdW1lbnQuaWQoZykudG9RdWVyeVN0cmluZygpO2JyZWFrO2Nhc2Uib2JqZWN0IjpjYXNlImhhc2giOmc9SGFzaC50b1F1ZXJ5U3RyaW5nKGcpO31pZih0aGlzLm9wdGlvbnMuZm9ybWF0KXt2YXIgaj0iZm9ybWF0PSIrdGhpcy5vcHRpb25zLmZvcm1hdDsKZz0oZyk/aisiJiIrZzpqO31pZih0aGlzLm9wdGlvbnMuZW11bGF0aW9uJiYhWyJnZXQiLCJwb3N0Il0uY29udGFpbnMoYSkpe3ZhciBoPSJfbWV0aG9kPSIrYTtnPShnKT9oKyImIitnOmg7YT0icG9zdCI7fWlmKHRoaXMub3B0aW9ucy51cmxFbmNvZGVkJiZhPT0icG9zdCIpe3ZhciBjPSh0aGlzLm9wdGlvbnMuZW5jb2RpbmcpPyI7IGNoYXJzZXQ9Iit0aGlzLm9wdGlvbnMuZW5jb2Rpbmc6IiI7CnRoaXMuaGVhZGVycy5zZXQoIkNvbnRlbnQtdHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIrYyk7fWlmKHRoaXMub3B0aW9ucy5ub0NhY2hlKXt2YXIgZj0ibm9DYWNoZT0iK25ldyBEYXRlKCkuZ2V0VGltZSgpO2c9KGcpP2YrIiYiK2c6ZjsKfXZhciBlPWIubGFzdEluZGV4T2YoIi8iKTtpZihlPi0xJiYoZT1iLmluZGV4T2YoIiMiKSk+LTEpe2I9Yi5zdWJzdHIoMCxlKTt9aWYoZyYmYT09ImdldCIpe2I9YisoYi5jb250YWlucygiPyIpPyImIjoiPyIpK2c7Zz1udWxsO310aGlzLnhoci5vcGVuKGEudG9VcHBlckNhc2UoKSxiLHRoaXMub3B0aW9ucy5hc3luYyk7CnRoaXMueGhyLm9ucmVhZHlzdGF0ZWNoYW5nZT10aGlzLm9uU3RhdGVDaGFuZ2UuYmluZCh0aGlzKTt0aGlzLmhlYWRlcnMuZWFjaChmdW5jdGlvbihtLGwpe3RyeXt0aGlzLnhoci5zZXRSZXF1ZXN0SGVhZGVyKGwsbSk7fWNhdGNoKG4pe3RoaXMuZmlyZUV2ZW50KCJleGNlcHRpb24iLFtsLG1dKTsKfX0sdGhpcyk7dGhpcy5maXJlRXZlbnQoInJlcXVlc3QiKTt0aGlzLnhoci5zZW5kKGcpO2lmKCF0aGlzLm9wdGlvbnMuYXN5bmMpe3RoaXMub25TdGF0ZUNoYW5nZSgpO31yZXR1cm4gdGhpczt9LGNhbmNlbDpmdW5jdGlvbigpe2lmKCF0aGlzLnJ1bm5pbmcpe3JldHVybiB0aGlzOwp9dGhpcy5ydW5uaW5nPWZhbHNlO3RoaXMueGhyLmFib3J0KCk7dGhpcy54aHIub25yZWFkeXN0YXRlY2hhbmdlPSRlbXB0eTt0aGlzLnhocj1uZXcgQnJvd3Nlci5SZXF1ZXN0KCk7dGhpcy5maXJlRXZlbnQoImNhbmNlbCIpO3JldHVybiB0aGlzO319KTsoZnVuY3Rpb24oKXt2YXIgYT17fTsKWyJnZXQiLCJwb3N0IiwicHV0IiwiZGVsZXRlIiwiR0VUIiwiUE9TVCIsIlBVVCIsIkRFTEVURSJdLmVhY2goZnVuY3Rpb24oYil7YVtiXT1mdW5jdGlvbigpe3ZhciBjPUFycmF5LmxpbmsoYXJndW1lbnRzLHt1cmw6U3RyaW5nLnR5cGUsZGF0YTokZGVmaW5lZH0pOwpyZXR1cm4gdGhpcy5zZW5kKCRleHRlbmQoYyx7bWV0aG9kOmJ9KSk7fTt9KTtSZXF1ZXN0LmltcGxlbWVudChhKTt9KSgpO0VsZW1lbnQuUHJvcGVydGllcy5zZW5kPXtzZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5yZXRyaWV2ZSgic2VuZCIpO2lmKGIpe2IuY2FuY2VsKCk7Cn1yZXR1cm4gdGhpcy5lbGltaW5hdGUoInNlbmQiKS5zdG9yZSgic2VuZDpvcHRpb25zIiwkZXh0ZW5kKHtkYXRhOnRoaXMsbGluazoiY2FuY2VsIixtZXRob2Q6dGhpcy5nZXQoIm1ldGhvZCIpfHwicG9zdCIsdXJsOnRoaXMuZ2V0KCJhY3Rpb24iKX0sYSkpO30sZ2V0OmZ1bmN0aW9uKGEpe2lmKGF8fCF0aGlzLnJldHJpZXZlKCJzZW5kIikpe2lmKGF8fCF0aGlzLnJldHJpZXZlKCJzZW5kOm9wdGlvbnMiKSl7dGhpcy5zZXQoInNlbmQiLGEpOwp9dGhpcy5zdG9yZSgic2VuZCIsbmV3IFJlcXVlc3QodGhpcy5yZXRyaWV2ZSgic2VuZDpvcHRpb25zIikpKTt9cmV0dXJuIHRoaXMucmV0cmlldmUoInNlbmQiKTt9fTtFbGVtZW50LmltcGxlbWVudCh7c2VuZDpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmdldCgic2VuZCIpOwpiLnNlbmQoe2RhdGE6dGhpcyx1cmw6YXx8Yi5vcHRpb25zLnVybH0pO3JldHVybiB0aGlzO319KTtSZXF1ZXN0LkhUTUw9bmV3IENsYXNzKHtFeHRlbmRzOlJlcXVlc3Qsb3B0aW9uczp7dXBkYXRlOmZhbHNlLGFwcGVuZDpmYWxzZSxldmFsU2NyaXB0czp0cnVlLGZpbHRlcjpmYWxzZX0scHJvY2Vzc0hUTUw6ZnVuY3Rpb24oYyl7dmFyIGI9Yy5tYXRjaCgvPGJvZHlbXj5dKj4oW1xzXFNdKj8pPFwvYm9keT4vaSk7CmM9KGIpP2JbMV06Yzt2YXIgYT1uZXcgRWxlbWVudCgiZGl2Iik7cmV0dXJuICR0cnkoZnVuY3Rpb24oKXt2YXIgZD0iPHJvb3Q+IitjKyI8L3Jvb3Q+IixnO2lmKEJyb3dzZXIuRW5naW5lLnRyaWRlbnQpe2c9bmV3IEFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxET00iKTsKZy5hc3luYz1mYWxzZTtnLmxvYWRYTUwoZCk7fWVsc2V7Zz1uZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKGQsInRleHQveG1sIik7fWQ9Zy5nZXRFbGVtZW50c0J5VGFnTmFtZSgicm9vdCIpWzBdO2lmKCFkKXtyZXR1cm4gbnVsbDt9Zm9yKHZhciBmPTAsZT1kLmNoaWxkTm9kZXMubGVuZ3RoOwpmPGU7ZisrKXt2YXIgaD1FbGVtZW50LmNsb25lKGQuY2hpbGROb2Rlc1tmXSx0cnVlLHRydWUpO2lmKGgpe2EuZ3JhYihoKTt9fXJldHVybiBhO30pfHxhLnNldCgiaHRtbCIsYyk7fSxzdWNjZXNzOmZ1bmN0aW9uKGQpe3ZhciBjPXRoaXMub3B0aW9ucyxiPXRoaXMucmVzcG9uc2U7CmIuaHRtbD1kLnN0cmlwU2NyaXB0cyhmdW5jdGlvbihlKXtiLmphdmFzY3JpcHQ9ZTt9KTt2YXIgYT10aGlzLnByb2Nlc3NIVE1MKGIuaHRtbCk7Yi50cmVlPWEuY2hpbGROb2RlcztiLmVsZW1lbnRzPWEuZ2V0RWxlbWVudHMoIioiKTtpZihjLmZpbHRlcil7Yi50cmVlPWIuZWxlbWVudHMuZmlsdGVyKGMuZmlsdGVyKTsKfWlmKGMudXBkYXRlKXtkb2N1bWVudC5pZChjLnVwZGF0ZSkuZW1wdHkoKS5zZXQoImh0bWwiLGIuaHRtbCk7fWVsc2V7aWYoYy5hcHBlbmQpe2RvY3VtZW50LmlkKGMuYXBwZW5kKS5hZG9wdChhLmdldENoaWxkcmVuKCkpO319aWYoYy5ldmFsU2NyaXB0cyl7JGV4ZWMoYi5qYXZhc2NyaXB0KTsKfXRoaXMub25TdWNjZXNzKGIudHJlZSxiLmVsZW1lbnRzLGIuaHRtbCxiLmphdmFzY3JpcHQpO319KTtFbGVtZW50LlByb3BlcnRpZXMubG9hZD17c2V0OmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMucmV0cmlldmUoImxvYWQiKTtpZihiKXtiLmNhbmNlbCgpO31yZXR1cm4gdGhpcy5lbGltaW5hdGUoImxvYWQiKS5zdG9yZSgibG9hZDpvcHRpb25zIiwkZXh0ZW5kKHtkYXRhOnRoaXMsbGluazoiY2FuY2VsIix1cGRhdGU6dGhpcyxtZXRob2Q6ImdldCJ9LGEpKTsKfSxnZXQ6ZnVuY3Rpb24oYSl7aWYoYXx8IXRoaXMucmV0cmlldmUoImxvYWQiKSl7aWYoYXx8IXRoaXMucmV0cmlldmUoImxvYWQ6b3B0aW9ucyIpKXt0aGlzLnNldCgibG9hZCIsYSk7fXRoaXMuc3RvcmUoImxvYWQiLG5ldyBSZXF1ZXN0LkhUTUwodGhpcy5yZXRyaWV2ZSgibG9hZDpvcHRpb25zIikpKTsKfXJldHVybiB0aGlzLnJldHJpZXZlKCJsb2FkIik7fX07RWxlbWVudC5pbXBsZW1lbnQoe2xvYWQ6ZnVuY3Rpb24oKXt0aGlzLmdldCgibG9hZCIpLnNlbmQoQXJyYXkubGluayhhcmd1bWVudHMse2RhdGE6T2JqZWN0LnR5cGUsdXJsOlN0cmluZy50eXBlfSkpO3JldHVybiB0aGlzOwp9fSk7UmVxdWVzdC5KU09OPW5ldyBDbGFzcyh7RXh0ZW5kczpSZXF1ZXN0LG9wdGlvbnM6e3NlY3VyZTp0cnVlfSxpbml0aWFsaXplOmZ1bmN0aW9uKGEpe3RoaXMucGFyZW50KGEpO3RoaXMuaGVhZGVycy5leHRlbmQoe0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsIlgtUmVxdWVzdCI6IkpTT04ifSk7Cn0sc3VjY2VzczpmdW5jdGlvbihhKXt0aGlzLnJlc3BvbnNlLmpzb249SlNPTi5kZWNvZGUoYSx0aGlzLm9wdGlvbnMuc2VjdXJlKTt0aGlzLm9uU3VjY2Vzcyh0aGlzLnJlc3BvbnNlLmpzb24sYSk7fX0pOw==]]></data>
	</file>
	<file>
	  <filename>/templates/milkbox/js/mootools-1.2.3.1-assets.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly9Nb29Ub29scyBNb3JlLCA8aHR0cDovL21vb3Rvb2xzLm5ldC9tb3JlPi4gQ29weXJpZ2h0IChjKSAyMDA2LTIwMDkgQWFyb24gTmV3dG9uIDxodHRwOi8vY2xpZW50Y2lkZS5jb20vPiwgVmFsZXJpbyBQcm9pZXR0aSA8aHR0cDovL21hZDRtaWxrLm5ldD4gJiB0aGUgTW9vVG9vbHMgdGVhbSA8aHR0cDovL21vb3Rvb2xzLm5ldC9kZXZlbG9wZXJzPiwgTUlUIFN0eWxlIExpY2Vuc2UuCgpNb29Ub29scy5Nb3JlPXt2ZXJzaW9uOiIxLjIuMy4xIn07dmFyIEFzc2V0PXtqYXZhc2NyaXB0OmZ1bmN0aW9uKGYsZCl7ZD0kZXh0ZW5kKHtvbmxvYWQ6JGVtcHR5LGRvY3VtZW50OmRvY3VtZW50LGNoZWNrOiRsYW1iZGEodHJ1ZSl9LGQpO3ZhciBiPW5ldyBFbGVtZW50KCJzY3JpcHQiLHtzcmM6Zix0eXBlOiJ0ZXh0L2phdmFzY3JpcHQifSk7CnZhciBlPWQub25sb2FkLmJpbmQoYiksYT1kLmNoZWNrLGc9ZC5kb2N1bWVudDtkZWxldGUgZC5vbmxvYWQ7ZGVsZXRlIGQuY2hlY2s7ZGVsZXRlIGQuZG9jdW1lbnQ7Yi5hZGRFdmVudHMoe2xvYWQ6ZSxyZWFkeXN0YXRlY2hhbmdlOmZ1bmN0aW9uKCl7aWYoWyJsb2FkZWQiLCJjb21wbGV0ZSJdLmNvbnRhaW5zKHRoaXMucmVhZHlTdGF0ZSkpe2UoKTsKfX19KS5zZXQoZCk7aWYoQnJvd3Nlci5FbmdpbmUud2Via2l0NDE5KXt2YXIgYz0oZnVuY3Rpb24oKXtpZighJHRyeShhKSl7cmV0dXJuO30kY2xlYXIoYyk7ZSgpO30pLnBlcmlvZGljYWwoNTApO31yZXR1cm4gYi5pbmplY3QoZy5oZWFkKTt9LGNzczpmdW5jdGlvbihiLGEpe3JldHVybiBuZXcgRWxlbWVudCgibGluayIsJG1lcmdlKHtyZWw6InN0eWxlc2hlZXQiLG1lZGlhOiJzY3JlZW4iLHR5cGU6InRleHQvY3NzIixocmVmOmJ9LGEpKS5pbmplY3QoZG9jdW1lbnQuaGVhZCk7Cn0saW1hZ2U6ZnVuY3Rpb24oYyxiKXtiPSRtZXJnZSh7b25sb2FkOiRlbXB0eSxvbmFib3J0OiRlbXB0eSxvbmVycm9yOiRlbXB0eX0sYik7dmFyIGQ9bmV3IEltYWdlKCk7dmFyIGE9ZG9jdW1lbnQuaWQoZCl8fG5ldyBFbGVtZW50KCJpbWciKTtbImxvYWQiLCJhYm9ydCIsImVycm9yIl0uZWFjaChmdW5jdGlvbihlKXt2YXIgZj0ib24iK2U7CnZhciBnPWJbZl07ZGVsZXRlIGJbZl07ZFtmXT1mdW5jdGlvbigpe2lmKCFkKXtyZXR1cm47fWlmKCFhLnBhcmVudE5vZGUpe2Eud2lkdGg9ZC53aWR0aDthLmhlaWdodD1kLmhlaWdodDt9ZD1kLm9ubG9hZD1kLm9uYWJvcnQ9ZC5vbmVycm9yPW51bGw7Zy5kZWxheSgxLGEsYSk7CmEuZmlyZUV2ZW50KGUsYSwxKTt9O30pO2Quc3JjPWEuc3JjPWM7aWYoZCYmZC5jb21wbGV0ZSl7ZC5vbmxvYWQuZGVsYXkoMSk7fXJldHVybiBhLnNldChiKTt9LGltYWdlczpmdW5jdGlvbihkLGMpe2M9JG1lcmdlKHtvbkNvbXBsZXRlOiRlbXB0eSxvblByb2dyZXNzOiRlbXB0eSxvbkVycm9yOiRlbXB0eSxwcm9wZXJ0aWVzOnt9fSxjKTsKZD0kc3BsYXQoZCk7dmFyIGE9W107dmFyIGI9MDtyZXR1cm4gbmV3IEVsZW1lbnRzKGQubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBBc3NldC5pbWFnZShlLCRleHRlbmQoYy5wcm9wZXJ0aWVzLHtvbmxvYWQ6ZnVuY3Rpb24oKXtjLm9uUHJvZ3Jlc3MuY2FsbCh0aGlzLGIsZC5pbmRleE9mKGUpKTsKYisrO2lmKGI9PWQubGVuZ3RoKXtjLm9uQ29tcGxldGUoKTt9fSxvbmVycm9yOmZ1bmN0aW9uKCl7Yy5vbkVycm9yLmNhbGwodGhpcyxiLGQuaW5kZXhPZihlKSk7YisrO2lmKGI9PWQubGVuZ3RoKXtjLm9uQ29tcGxldGUoKTt9fX0pKTt9KSk7fX07]]></data>
	</file>
	<file>
	  <filename>/templates/milkbox/readme.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CkhpISBUaGUgb25seSByZWxldmFudCBmaWxlcyBhcmU6CgotIFRob3NlIGluIC9jc3MvbWlsa2JveC8KLSBUaG9zZSBpbiAvanMvCgpUaGUgb3RoZXJzIGFyZSBvbmx5IHRoZXJlIGZvciBkZW1vIHB1cnBvc2VzLgpZb3UgY2FuIHVzZSBtaWxrYm94Lnl1aS5qcyBpbnN0ZWFkIG9mIG1pbGtib3guanMKCg==]]></data>
	</file>
	<file>
	  <filename>/templates/original/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/original/albums.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2ZvcmVhY2ggZnJvbT0kYWxidW1zIGl0ZW09YWxidW19CiAgICA8ZGl2IGNsYXNzPSdwd2FBbGJ1bScgc3R5bGU9J3dpZHRoOnskYWxidW10aHVtYnNpemUrMjB9cHg7aGVpZ2h0OnskYWxidW10aHVtYnNpemUrMzB9cHg7ZmxvYXQ6bGVmdDt0ZXh0LWFsaWduOmNlbnRlcjsnPgogICAgICAgIDxhIHRpdGxlPSJ7JGFsYnVtLT50aXRsZX0iIGhyZWY9InskYWxidW0tPmxpbmt9IiBzdHlsZT0nZGlzcGxheTpibG9jazt3aWR0aDogeyRhbGJ1bXRodW1ic2l6ZSsxMH1weDttYXJnaW46IGF1dG8gYXV0bzsnPgogICAgICAgICAgICA8aW1nIHNyYz0neyRhbGJ1bS0+dGh1bWJ1cmx9JyBzdHlsZT0ncGFkZGluZzowcHg7JyBhbHQ9J3skYWxidW0tPnRpdGxlfScgPgogICAgICAgIDwvYT4KICAgICAgICA8ZGl2IHN0eWxlPSdjbGVhcjpib3RoO3dpZHRoOnskYWxidW10aHVtYnNpemUrMjB9cHg7ZmxvYXQ6bGVmdDt0ZXh0LWFsaWduOmNlbnRlcjsnPgogICAgICAgIHskYWxidW0tPnRpdGxlfQogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CnsvZm9yZWFjaH0K]]></data>
	</file>
	<file>
	  <filename>/templates/original/fancybox.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogRmFuY3lCb3ggdGVtcGxhdGUgKn0KCntpZiAkaW5jbHVkZWpxdWVyeT09IjEifQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjQuMi5taW4uanMiPjwvc2NyaXB0Pgp7L2lmfQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJ7JG1vZHVsZXBhdGh9L3RlbXBsYXRlcy9mYW5jeWJveC9qcXVlcnkubW91c2V3aGVlbC0zLjAuMi5wYWNrLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ieyRtb2R1bGVwYXRofS90ZW1wbGF0ZXMvZmFuY3lib3gvanF1ZXJ5LmVhc2luZy0xLjMucGFjay5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InskbW9kdWxlcGF0aH0vdGVtcGxhdGVzL2ZhbmN5Ym94L2pxdWVyeS5mYW5jeWJveC0xLjMuMS5wYWNrLmpzIj48L3NjcmlwdD4KCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ieyRtb2R1bGVwYXRofS90ZW1wbGF0ZXMvZmFuY3lib3gvanF1ZXJ5LmZhbmN5Ym94LTEuMy4xLmNzcyIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iIC8+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4Ke2xpdGVyYWx9CiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewogICAkKCJhW3JlbD1mYW5jeWJveF0iKS5mYW5jeWJveCh7CiAgICAndGl0bGVQb3NpdGlvbicgCTogJ292ZXInCiAgIH0pOwp9KTsKey9saXRlcmFsfQoKPC9zY3JpcHQ+Cgp7KiBIRUFEL0JPRFkgRElWSURFUiAqfQoKPGJyLz4KPGgyPlBpY3R1cmVzIGZyb206IHskYWxidW10aXRsZX08L2gyPgo8YnIvPgoKPGEgaHJlZj0ieyRzbGlkZXNob3d1cmx9IiB0YXJnZXQ9Il9ibGFuayI+U2hvdyBhcyBzbGlkZXNob3c8L2E+Cjxici8+PGJyLz4KCntmb3JlYWNoIGZyb209JGltYWdlcyBpdGVtPWltYWdlfQogICAgPGRpdiBzdHlsZT0nZmxvYXQ6bGVmdDsgdGV4dC1hbGlnbjpjZW50ZXI7IHZlcnRpY2FsLWFsaWduOiBib3R0b207IGhlaWdodDp7JGltYWdldGh1bWJzaXplKzEwfXB4OyB3aWR0aDp7JGltYWdldGh1bWJzaXplKzEwfXB4Oyc+CiAgICAgICAgPGEgcmVsPSJmYW5jeWJveCIgdGl0bGU9InskaW1hZ2UtPnRpdGxlfSIgaHJlZj0ieyRpbWFnZS0+dXJsfSI+CiAgICAgICAgICAgIDxpbWcgc3JjPSd7JGltYWdlLT50aHVtYnVybH0nICBzdHlsZT0ncGFkZGluZzogMHB4OycvPgogICAgICAgIDwvYT4KICAgIDwvZGl2Pgp7L2ZvcmVhY2h9CntpZiAkYWxidW1EcmlsbERvd259CiAgICA8ZGl2IHN0eWxlPSdjbGVhcjpib3RoOyB0ZXh0LWFsaWduOmNlbnRlcjsgaGVpZ2h0OnskaW1hZ2V0aHVtYnNpemUrMTB9cHg7IHdpZHRoOjEwMCU7Jz4KICAgICAgICA8YSBocmVmPSd7JGxpbmtCYWNrfSc+eyRsaW5rQmFja1RleHR9PC9hPgogICAgPC9kaXY+CnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/templates/original/lightbox.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogTGlnaHRCb3ggVGVtcGxhdGUgKn0KCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InskbW9kdWxlcGF0aH0vdGVtcGxhdGVzL2xpZ2h0Ym94L2pzL3Byb3RvdHlwZS5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InskbW9kdWxlcGF0aH0vdGVtcGxhdGVzL2xpZ2h0Ym94L2pzL3NjcmlwdGFjdWxvdXMuanM/bG9hZD1lZmZlY3RzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ieyRtb2R1bGVwYXRofS90ZW1wbGF0ZXMvbGlnaHRib3gvanMvbGlnaHRib3guanMiPjwvc2NyaXB0PgoKPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ7JG1vZHVsZXBhdGh9L3RlbXBsYXRlcy9saWdodGJveC9jc3MvbGlnaHRib3guY3NzIiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiIgLz4KCnsqIEhFQUQvQk9EWSBESVZJREVSICp9Cgo8YnIvPgo8aDI+UGljdHVyZXMgZnJvbTogeyRhbGJ1bXRpdGxlfTwvaDI+Cjxici8+Cgo8YSBocmVmPSJ7JHNsaWRlc2hvd3VybH0iIHRhcmdldD0iX2JsYW5rIj5TaG93IGFzIHNsaWRlc2hvdzwvYT4KPGJyLz48YnIvPgoKe2ZvcmVhY2ggZnJvbT0kaW1hZ2VzIGl0ZW09aW1hZ2V9CiAgICA8ZGl2IHN0eWxlPSdmbG9hdDpsZWZ0OyB0ZXh0LWFsaWduOmNlbnRlcjsgdmVydGljYWwtYWxpZ246IGJvdHRvbTsgaGVpZ2h0OnskaW1hZ2V0aHVtYnNpemUrMTB9cHg7IHdpZHRoOnskaW1hZ2V0aHVtYnNpemUrMTB9cHg7Jz4KICAgICAgICA8YSByZWw9ImxpZ2h0Ym94W3skYWxidW1pZH1dIiB0aXRsZT0ieyRpbWFnZS0+dGl0bGV9IiBocmVmPSJ7JGltYWdlLT51cmx9Ij4KICAgICAgICAgICAgPGltZyBzcmM9J3skaW1hZ2UtPnRodW1idXJsfScgIHN0eWxlPSdwYWRkaW5nOiAwcHg7Jy8+CiAgICAgICAgPC9hPgogICAgPC9kaXY+CnsvZm9yZWFjaH0Ke2lmICRhbGJ1bURyaWxsRG93bn0KICAgIDxkaXYgc3R5bGU9J2NsZWFyOmJvdGg7IHRleHQtYWxpZ246Y2VudGVyOyBoZWlnaHQ6eyRpbWFnZXRodW1ic2l6ZSsxMH1weDsgd2lkdGg6MTAwJTsnPgogICAgICAgIDxhIGhyZWY9J3skbGlua0JhY2t9Jz57JGxpbmtCYWNrVGV4dH08L2E+CiAgICA8L2Rpdj4Key9pZn0KCgo=]]></data>
	</file>
	<file>
	  <filename>/templates/original/milkbox.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogTWlsa0JveCB0ZW1wbGF0ZSAqfQoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ieyRtb2R1bGVwYXRofS90ZW1wbGF0ZXMvbWlsa2JveC9qcy9tb290b29scy0xLjIuMy1jb3JlLXljLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ieyRtb2R1bGVwYXRofS90ZW1wbGF0ZXMvbWlsa2JveC9qcy9tb290b29scy0xLjIuMy4xLWFzc2V0cy5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InskbW9kdWxlcGF0aH0vdGVtcGxhdGVzL21pbGtib3gvanMvbWlsa2JveC15Yy5qcyI+PC9zY3JpcHQ+Cgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InskbW9kdWxlcGF0aH0vdGVtcGxhdGVzL21pbGtib3gvY3NzL21pbGtib3gvbWlsa2JveC5jc3MiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIiAvPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CntsaXRlcmFsfQp3aW5kb3cuYWRkRXZlbnQoJ2RvbXJlYWR5JywgZnVuY3Rpb24oKXsKICAvL1JlbW92ZSB0aGVzZSB0byBhdm9pZCBhdXRvcGxheWluZyBzbGlkZXNob3cKCW1pbGtib3guc2V0QXV0b1BsYXkoWwoJCXsgZ2FsbGVyeTonYWxidW0wJywgYXV0b3BsYXk6dHJ1ZSwgZGVsYXk6NiB9IC8vUGljYXNhQnJvd3NlciBnZW5lcmF0ZWQgYWxidW1YIGZyb20gMCsKCV0pOwogIG1pbGtib3guY2hhbmdlT3B0aW9ucyh7CiAgICBpbWFnZU9mVGV4dDoney9saXRlcmFsfXskaW1hZ2VvZnRleHR9e2xpdGVyYWx9JywKCQljYW52YXNCb3JkZXJXaWR0aDonMnB4JywKCQljYW52YXNCb3JkZXJDb2xvcjonI2RkZGRkZCcsCgkJY2FudmFzUGFkZGluZzonMnB4JwoJfSk7CiAgLy9DaGVjayBodHRwOi8vcmVnaGVsbGluLmNvbS9taWxrYm94LyBmb3IgZnVydGhlciBvcHRpb25zCn0pOwp7L2xpdGVyYWx9Cjwvc2NyaXB0PgoKeyogSEVBRC9CT0RZIERJVklERVIgKn0KCjxici8+CjxoMj5QaWN0dXJlcyBmcm9tOiB7JGFsYnVtdGl0bGV9PC9oMj4KPGJyLz4KCntmb3JlYWNoIGZyb209JGltYWdlcyBpdGVtPWltYWdlfQogICAgPGRpdiBzdHlsZT0nZmxvYXQ6bGVmdDsgdGV4dC1hbGlnbjpjZW50ZXI7IHZlcnRpY2FsLWFsaWduOiBib3R0b207IGhlaWdodDp7JGltYWdldGh1bWJzaXplKzEwfXB4OyB3aWR0aDp7JGltYWdldGh1bWJzaXplKzEwfXB4Oyc+CiAgICAgICAgPGEgcmVsPSJtaWxrYm94W3skYWxidW1pZH1dIiB0aXRsZT0ieyRpbWFnZS0+dGl0bGV9IiBocmVmPSJ7JGltYWdlLT51cmx9Ij4KICAgICAgICAgICAgPGltZyBzcmM9J3skaW1hZ2UtPnRodW1idXJsfScgIHN0eWxlPSdwYWRkaW5nOiAwcHg7Jy8+CiAgICAgICAgPC9hPgogICAgPC9kaXY+CnsvZm9yZWFjaH0Ke2lmICRhbGJ1bURyaWxsRG93bn0KICAgIDxkaXYgc3R5bGU9J2NsZWFyOmJvdGg7IHRleHQtYWxpZ246Y2VudGVyOyBoZWlnaHQ6eyRpbWFnZXRodW1ic2l6ZSsxMH1weDsgd2lkdGg6MTAwJTsnPgogICAgICAgIDxhIGhyZWY9J3skbGlua0JhY2t9Jz57JGxpbmtCYWNrVGV4dH08L2E+CiAgICA8L2Rpdj4Key9pZn0=]]></data>
	</file>
	<file>
	  <filename>/templates/original/stujoystick.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogU3R1TmljaG9scyBKb3lzdGljayB0ZW1wbGF0ZSAqfQoKe2lmICRpbmNsdWRlanF1ZXJ5PT0iMSJ9CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9jb2RlLmpxdWVyeS5jb20vanF1ZXJ5LTEuNC4yLm1pbi5qcyI+PC9zY3JpcHQ+CnsvaWZ9CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InskbW9kdWxlcGF0aH0vdGVtcGxhdGVzL3N0dW5pY2hvbHMvbXVsdGktc2xpZGUuanMiPjwvc2NyaXB0PgoKPHN0eWxlPgp7bGl0ZXJhbH0KPCEtLQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoaXMgY29weXJpZ2h0IG5vdGljZSBtdXN0IGJlIHVudG91Y2hlZCBhdCBhbGwgdGltZXMuCkNvcHlyaWdodCAoYykgMjAwOSBTdHUgTmljaG9sbHMgLSBzdHVuaWNob2xscy5jb20gLSBhbGwgcmlnaHRzIHJlc2VydmVkLgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojc2xpZGVzaG93IHt3aWR0aDo1ODBweDsgaGVpZ2h0OjQ0NXB4OyBtYXJnaW46MCBhdXRvOyBwb3NpdGlvbjpyZWxhdGl2ZTsgYmFja2dyb3VuZDojMjIyOwotby1ib3gtc2hhZG93OiAzcHggM3B4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjcpOwotaWNhYi1ib3gtc2hhZG93OiAzcHggM3B4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjcpOwota2h0bWwtYm94LXNoYWRvdzogM3B4IDNweCAxNXB4IHJnYmEoMCwgMCwgMCwgMC43KTsKLW1vei1ib3gtc2hhZG93OiAzcHggM3B4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjcpOwotd2Via2l0LWJveC1zaGFkb3c6IDNweCAzcHggMTVweCByZ2JhKDAsIDAsIDAsIDAuNyk7CmJveC1zaGFkb3c6IDNweCAzcHggMTVweCByZ2JhKDAsIDAsIDAsIDAuNyk7Cgotby1ib3JkZXItcmFkaXVzOiAxMHB4OwotaWNhYi1ib3JkZXItcmFkaXVzOiAxMHB4Owota2h0bWwtYm9yZGVyLXJhZGl1czogMTBweDsKLW1vei1ib3JkZXItcmFkaXVzOiAxMHB4Owotd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwcHg7CmJvcmRlci1yYWRpdXM6IDEwcHg7Cn0KI3RodW1icyB7d2lkdGg6NDkwcHg7IGhlaWdodDo0OHB4OyBvdmVyZmxvdzpoaWRkZW47IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjQ5cHg7IHRvcDozOTBweDsgei1pbmRleDoxMDt9CiN0aHVtYkhvbGRlciB7cG9zaXRpb246cmVsYXRpdmU7IHRvcDowOyBsZWZ0OjA7IHdpZHRoOjQ5MHB4O30KI3RodW1icyBpbWcge2Rpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo4cHg7IG1hcmdpbi1ib3R0b206NnB4OyBkaXNwbGF5OmlubGluZTsgcGFkZGluZzoxcHg7IGJhY2tncm91bmQ6I2FhYTsgY3Vyc29yOnBvaW50ZXI7IHdpZHRoOjYwcHg7IGhlaWdodDo0MHB4O30KI2ltYWdlcyB7d2lkdGg6NDgwcHg7IGhlaWdodDozMjBweDsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6NTBweDsgdG9wOjEwcHg7IG92ZXJmbG93OmhpZGRlbjsgei1pbmRleDoxMDsgYm9yZGVyOjFweCBzb2xpZCAjODg4OyBiYWNrZ3JvdW5kOiMyMjIgdXJsKHsvbGl0ZXJhbH17JG1vZHVsZXBhdGh9L3RlbXBsYXRlcy9zdHVuaWNob2xzL2xvYWRpbmcuZ2lme2xpdGVyYWx9KSBuby1yZXBlYXQgMjMwcHggY2VudGVyO30KI2ltYWdlcyBpbWcge3Bvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjQ4MHB4OyB0b3A6MDt9CiN0eHQge3Bvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjUxcHg7IHRvcDoxMXB4OyB3aWR0aDo0ODBweDsgaGVpZ2h0OjMyMHB4OyB3aWR0aDo0ODBweDsgei1pbmRleDoyMDtvdmVyZmxvdzpoaWRkZW47fQojb3BhY2l0eSB7cG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MDsgdG9wOi0zNjBweDsgd2lkdGg6NDgwcHg7IGhlaWdodDozMjBweDsgYmFja2dyb3VuZDojMDAwOyB6LWluZGV4OjEwO30KI3R4dCBwIHtwYWRkaW5nOjVweDsgbWFyZ2luOjA7IHdpZHRoOjQ3MHB4OyBoZWlnaHQ6MzEwcHg7IGNvbG9yOiNkZGQ7IGZvbnQtZmFtaWx5OmFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6MTJweDsgbGluZS1oZWlnaHQ6MThweDsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MjA7IHRvcDotMzYwcHg7IGxlZnQ6MDt9CiN0eHQgcCBzcGFuIHtmb250LXdlaWdodDpib2xkOyBmb250LXNpemU6MTRweDsgY29sb3I6I2ZmZjsgZGlzcGxheTpibG9jazsgcGFkZGluZy1ib3R0b206MTBweDt9CiN0eHQgYSB7Y29sb3I6IzBhZTt9CiN0eHQgYTpob3ZlciB7dGV4dC1kZWNvcmF0aW9uOm5vbmU7fQojcGFkIHt3aWR0aDo0OHB4OyBoZWlnaHQ6NDhweDsgYmFja2dyb3VuZDp1cmwoey9saXRlcmFsfXskbW9kdWxlcGF0aH0vdGVtcGxhdGVzL3N0dW5pY2hvbHMvcGFkLmdpZntsaXRlcmFsfSk7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjI2OHB4OyB0b3A6MzM4cHg7fQojcGFkIHAge21hcmdpbjowOyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTRweDsgaGVpZ2h0OjA7IHBhZGRpbmctdG9wOjE0cHg7IG92ZXJmbG93OmhpZGRlbjsgY3Vyc29yOnBvaW50ZXI7fQojcGFkIHAjcHJldmlvdXMge2xlZnQ6MDsgdG9wOjE3cHg7fQojcGFkIHAjbmV4dCB7cmlnaHQ6MDsgdG9wOjE3cHg7fQojcGFkIHAjc2Nyb2xsVXAge2xlZnQ6MTdweDsgdG9wOjA7fQojcGFkIHAjc2Nyb2xsRG93biB7bGVmdDoxN3B4OyBib3R0b206MDt9CiNwYWQgI2luZm8ge2xlZnQ6MTdweDsgdG9wOjE3cHg7IHdpZHRoOjE2cHg7IGhlaWdodDowOyBwYWRkaW5nLXRvcDoxNnB4O30KLS0+CnsvbGl0ZXJhbH0KPC9zdHlsZT4KCgoKeyogSEVBRC9CT0RZIERJVklERVIgKn0KCjxici8+CjxoMj5QaWN0dXJlcyBmcm9tOiB7JGFsYnVtdGl0bGV9PC9oMj4KPGJyLz4KPGRpdiBpZD0ic2xpZGVzaG93Ij4KCTxkaXYgaWQ9InRodW1icyI+CgkJPGRpdiBpZD0idGh1bWJIb2xkZXIiPgogICAgICB7Zm9yZWFjaCBmcm9tPSRpbWFnZXMgaXRlbT1pbWFnZX0KICAgICAgICA8aW1nIHNyYz0neyRpbWFnZS0+dGh1bWJ1cmx9JyBhbHQ9IiIgLz4KICAgICAgey9mb3JlYWNofQoJCTwvZGl2PgoJPC9kaXY+CgogIDxkaXYgaWQ9InR4dCI+Cgk8ZGl2IGlkPSJvcGFjaXR5Ij48L2Rpdj4KICAge2ZvcmVhY2ggZnJvbT0kaW1hZ2VzIGl0ZW09aW1hZ2V9CiAgICAgICAgPHA+eyRpbWFnZS0+dGl0bGV9PC9wPgogICB7L2ZvcmVhY2h9CiAgPC9kaXY+CgogIDxkaXYgaWQ9ImltYWdlcyI+CiAgIHtmb3JlYWNoIGZyb209JGltYWdlcyBpdGVtPWltYWdlfQogICAgIDxpbWcgc3JjPSd7JGltYWdlLT51cmx9JyBhbHQ9IiIgLz4KICAgey9mb3JlYWNofQogIDwvZGl2PgogIDxkaXYgaWQ9InBhZCI+CgkJPHAgaWQ9InByZXZpb3VzIj5wcmV2aW91czwvcD4KCQk8cCBpZD0ibmV4dCI+bmV4dDwvcD4KCQk8cCBpZD0ic2Nyb2xsVXAiPnVwPC9wPgoJCTxwIGlkPSJzY3JvbGxEb3duIj5kb3duPC9wPgoJCTxwIGlkPSJpbmZvIj5pbmZvPC9wPgoJPC9kaXY+CjwvZGl2PgoKCgp7aWYgJGFsYnVtRHJpbGxEb3dufQogICAgPGRpdiBzdHlsZT0nY2xlYXI6Ym90aDsgdGV4dC1hbGlnbjpjZW50ZXI7IGhlaWdodDp7JGltYWdldGh1bWJzaXplKzEwfXB4OyB3aWR0aDoxMDAlOyc+CiAgICAgICAgPGEgaHJlZj0neyRsaW5rQmFja30nPnskbGlua0JhY2tUZXh0fTwvYT4KICAgIDwvZGl2Pgp7L2lmfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/settings.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19CgkKCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZHVsZS0+TGFuZygnZmlsZW5hbWVkZXNjcmlwdGlvbicpfTwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGZpbGVuYW1lZGVzY3JpcHRpb25pbnB1dH08L3A+Cgk8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZHVsZS0+TGFuZygnaW5jbHVkZWpxdWVyeScpfTwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGluY2x1ZGVqcXVlcnlpbnB1dH17JG1vZHVsZS0+TGFuZygnaW5jbHVkZWpxdWVyeWhlbHAnKX08L3A+Cgk8L2Rpdj4KeyoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3RlbXBsYXRlfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF90ZW1wbGF0ZX08L3A+Cgk8L2Rpdj4qfQo8ZmllbGRzZXQ+CiAgPGxlZ2VuZD57JG1vZHVsZS0+TGFuZygiZGVmYXVsdHNldHRpbmdzIil9PC9sZWdlbmQ+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kdWxlLT5MYW5nKCdkZWZhdWx0dXNlcicpfTwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGRlZmF1bHR1c2VyaW5wdXR9PC9wPgoJPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kdWxlLT5MYW5nKCdkZWZhdWx0aW1hZ2VzaXplJyl9PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZGVmYXVsdGltYWdlc2l6ZWlucHV0fXskbW9kdWxlLT5MYW5nKCdzcXVhcmVzaXplaGVscCcpfTwvcD4KCTwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZHVsZS0+TGFuZygnZGVmYXVsdGltYWdldGh1bWJzaXplJyl9PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZGVmYXVsdGltYWdldGh1bWJzaXplaW5wdXR9eyRtb2R1bGUtPkxhbmcoJ3NxdWFyZXNpemVoZWxwJyl9PC9wPgoJPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kdWxlLT5MYW5nKCdkZWZhdWx0YWxidW10aHVtYnNpemUnKX08L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRkZWZhdWx0YWxidW10aHVtYnNpemVpbnB1dH17JG1vZHVsZS0+TGFuZygnc3F1YXJlc2l6ZWhlbHAnKX08L3A+Cgk8L2Rpdj4KPC9maWVsZHNldD4KCgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH08L3A+Cgk8L2Rpdj4KeyRlbmRmb3JtfQoK]]></data>
	</file>
	<file>
	  <filename>/templates/stunichols/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/stunichols/loading.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAAQAKIHADZmvyRl1FZ5upOjxHWOv7G5yb2/w////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQFAAAHACwAAAAAEAAQAAADQ3i6B8CQORdXCG0eIeC92cZ11seMZBlxjGFUC0EcrgvLcv1W+GzDB1lrxxgMILqi8bhIFgqHJbP5ej6j04gVClxcIwkAIfkEBQAABwAsAAAAABAAEAAAAz94uifCkDkXFwBtHkLgvdnGddbHjGQZcUwQVMswHK4Ly3L9VvhswwcZcFEoDIlFI8xgOCSVESbTCY1Kj4ppJAEAIfkEBQAABwAsAAAAABAADgAAAzt4ukfEkDkXlxBtnjHgvdnGddbHjGQZcQwAVEtRHK4Ly3L9VvhswwcZIxCIGAwQIpFxPA6VzGayCHEqEgAh+QQFAAAHACwAAAAAEAAQAAADPni6N8OQORcXIW2eUuC92cZ11seMZBlxjCBUi2EcrgvLcv1W+GzDBxkDAAAOiUXjAVkMBIzEg9OplE6r1koCACH5BAUAAAcALAAAAAAOABAAAAM8eLpXxVA5F88YbR5j1r3ZxnXWx4xkGXEKQVSM68KtTNc3IwhRECy7HcPnUwR5AMCB+DMik8piBKq8JSEJACH5BAUAAAcALAAAAAAQABAAAAM+eLpnxpA5F1cpbdZzb95cBzLeeAzDGAQnmlbr6r5RzKIquxBEBAAQHo/x+zGEPYHgUAQek8qlcRNdmg7KSgIAIfkEBQAABwAsAAACABAADgAAAz54aqZ+IbzD2Ivx1eaw1Nz1KUUxTQBwlOWppClrurDauq/qDMMpCBMe7/H7PYQ9AuFQBB6TyqURF13iHkpXAgAh+QQFAAAHACwAAAAAEAAQAAADPni6F8GQORfjfADURXPejKeBy7cYBikIB4pu6+qmVcy+4MoURUQQEB6P8fvthIfB4FAEHpPKpXETXZIUykoCADs=]]></data>
	</file>
	<file>
	  <filename>/templates/stunichols/multi-slide.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGlzIGNvcHlyaWdodCBub3RpY2UgbXVzdCBiZSB1bnRvdWNoZWQgYXQgYWxsIHRpbWVzLgpDb3B5cmlnaHQgKGMpIDIwMDggU3R1IE5pY2hvbGxzIC0gc3R1bmljaG9sbHMuY29tIC0gYWxsIHJpZ2h0cyByZXNlcnZlZC4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKZnVuY3Rpb24gc2xpZGVzaG93KCkgewoKLyogc2V0IHVwIGRlZmF1bHRzICovCm1pblBpYyA9IDA7Cm1heFBpYyA9ICQoIiNpbWFnZXMgaW1nIikubGVuZ3RoOwptaW5Sb3cgPSAwOwptYXhSb3cgPSAobWF4UGljLzcpOwppZiAobWF4Um93ID4gcGFyc2VJbnQobWF4Um93KSkge21heFJvdyA9IHBhcnNlSW50KG1heFJvdykrMTt9Cgp2YXIgdGh1bWJzID0gJCgiI3RodW1iSG9sZGVyIGltZyIpOwp2YXIgaW1nID0gJCgiI2ltYWdlcyBpbWciKTsKdmFyIHR4dCA9ICQoIiN0eHQgcCIpOwpzdGF0ZSA9ICJoaWRlIjsKCnBpY1dpZHRoID0gaW1nLmVxKDApLndpZHRoKCk7CmltZy5lcShtaW5QaWMpLmFuaW1hdGUoeyJsZWZ0IjogIjBweCJ9LCA0MDAsICJzd2luZyIpOwoKdGh1bWJzLmFuaW1hdGUoe29wYWNpdHk6IDAuNn0pOwp0aHVtYnMuZXEoMCkuYW5pbWF0ZSh7b3BhY2l0eTogMX0pOwp0aHVtYnMuZXEoMCkuY3NzKCJiYWNrZ3JvdW5kIiwiI2ZmZiIpOwoKJCgiI29wYWNpdHkiKS5jc3MoIm9wYWNpdHkiLCAiMC42Iik7CgovKiBzZXQgYXV0byBydW4gZGVsYXkgdGltZSBpbiBtaWxsaXNlY29uZHMgKi8KdGltZU91dCA9IDUwMDA7CnQ9c2V0VGltZW91dCgidGltZWRDb3VudCgpIix0aW1lT3V0KTsKCi8qIGNvbnRyb2wgcGFkIGZ1bmN0aW9ucyAqLwokKCIjc2Nyb2xsRG93biIpLmNsaWNrKGZ1bmN0aW9uKCl7CmNsZWFyVGltZW91dCh0KTsKbWluUm93KysKaWYgKG1pblJvdyA9PSBtYXhSb3cpIHttaW5Sb3cgPSAwO30KJCgiI3RodW1iSG9sZGVyIikuYW5pbWF0ZSh7InRvcCI6IC0oKG1pblJvdykqNDgpKyJweCJ9LCA0MDAsICJzd2luZyIpOwp9KTsKCiQoIiNzY3JvbGxVcCIpLmNsaWNrKGZ1bmN0aW9uKCl7CmNsZWFyVGltZW91dCh0KTsKbWluUm93LS0KaWYgKG1pblJvdyA9PSAtMSkge21pblJvdyA9IG1heFJvdy0xO30KJCgiI3RodW1iSG9sZGVyIikuYW5pbWF0ZSh7InRvcCI6IC0oKG1pblJvdykqNDgpKyJweCJ9LCA0MDAsICJzd2luZyIpOwp9KTsKCiQoIiNuZXh0IikuY2xpY2soZnVuY3Rpb24oKXsKY2xlYXJUaW1lb3V0KHQpOwp0eHRIaWRlKHR4dCkKdGVzdCA9IHBhcnNlSW50KG1pblBpYy83KTsKaWYgKHRlc3QgIT0gbWluUm93KSB7Cm1pblJvdyA9IHRlc3Q7CiQoIiN0aHVtYkhvbGRlciIpLmFuaW1hdGUoeyJ0b3AiOiAtKChtaW5Sb3cpKjQ4KSsicHgifSwgNDAwLCAic3dpbmciKTsKfQppbWcuZXEobWluUGljKS5hbmltYXRlKHsibGVmdCI6ICItIitwaWNXaWR0aCsicHgifSwgNDAwLCAic3dpbmciKTsKdGh1bWJzLmVxKG1pblBpYykuYW5pbWF0ZSh7b3BhY2l0eTogMC42fSk7CnRodW1icy5lcShtaW5QaWMpLmNzcygiYmFja2dyb3VuZCIsIiNhYWEiKTsKbWluUGljKysKaWYgKG1pblBpYyA9PSBtYXhQaWMpIHttaW5QaWMgPSAwO30KaWYgKChtaW5QaWMvNykgPT0gcGFyc2VJbnQobWluUGljLzcpKSB7Cm1pblJvdyA9IG1pblBpYy83OwokKCIjdGh1bWJIb2xkZXIiKS5hbmltYXRlKHsidG9wIjogLSgobWluUm93KSo0OCkrInB4In0sIDQwMCwgInN3aW5nIik7Cn0KaW1nLmVxKG1pblBpYykuY3NzKCJsZWZ0IiwgcGljV2lkdGgrInB4Iik7CmltZy5lcShtaW5QaWMpLmFuaW1hdGUoeyJsZWZ0IjogIjBweCJ9LCA0MDAsICJzd2luZyIpOwp0aHVtYnMuZXEobWluUGljKS5hbmltYXRlKHtvcGFjaXR5OiAxfSk7CnRodW1icy5lcShtaW5QaWMpLmNzcygiYmFja2dyb3VuZCIsIiNmZmYiKTsKfSk7CgokKCIjcHJldmlvdXMiKS5jbGljayhmdW5jdGlvbigpewpjbGVhclRpbWVvdXQodCk7CnR4dEhpZGUodHh0KQp0ZXN0ID0gcGFyc2VJbnQobWluUGljLzcpOwppZiAodGVzdCAhPSBtaW5Sb3cpIHsKbWluUm93ID0gdGVzdDsKJCgiI3RodW1iSG9sZGVyIikuYW5pbWF0ZSh7InRvcCI6IC0oKG1pblJvdykqNDgpKyJweCJ9LCA0MDAsICJzd2luZyIpOwp9CmltZy5lcShtaW5QaWMpLmFuaW1hdGUoeyJsZWZ0IjogcGljV2lkdGgrInB4In0sIDQwMCwgInN3aW5nIik7CnRodW1icy5lcShtaW5QaWMpLmFuaW1hdGUoe29wYWNpdHk6IDAuNn0pOwp0aHVtYnMuZXEobWluUGljKS5jc3MoImJhY2tncm91bmQiLCIjYWFhIik7Cm1pblBpYy0tCmlmIChtaW5QaWMgPT0gLTEpIHttaW5QaWMgPSBtYXhQaWMtMTt9CmlmICgobWluUGljKzEpLzcgPT0gcGFyc2VJbnQoKG1pblBpYysxKS83KSB8fCBtaW5QaWMgPT0gbWF4UGljLTEpIHsKaWYgKG1pblBpYyA9PSBtYXhQaWMtMSkgewptaW5Sb3cgPSBtYXhSb3ctMTsKfQplbHNlIHsKbWluUm93ID0gKG1pblBpYysxKS83LTE7Cn0KaWYgKG1pblJvdyA9PSAtMSkge21pblJvdyA9IG1heFJvdy0xO30KJCgiI3RodW1iSG9sZGVyIikuYW5pbWF0ZSh7InRvcCI6IC0oKG1pblJvdykqNDgpKyJweCJ9LCA0MDAsICJzd2luZyIpOwp9CmltZy5lcShtaW5QaWMpLmNzcygibGVmdCIsIi0iK3BpY1dpZHRoKyJweCIpOwppbWcuZXEobWluUGljKS5hbmltYXRlKHsibGVmdCI6ICIwcHgifSwgNDAwLCAic3dpbmciKTsKdGh1bWJzLmVxKG1pblBpYykuYW5pbWF0ZSh7b3BhY2l0eTogMX0pOwp0aHVtYnMuZXEobWluUGljKS5jc3MoImJhY2tncm91bmQiLCIjZmZmIik7Cn0pOwoKLyogY2xpY2sgYSB0aHVtYm5haWwgaW1hZ2UgZnVuY3Rpb24gKi8KdGh1bWJzLmNsaWNrKGZ1bmN0aW9uKCkgewpjbGVhclRpbWVvdXQodCk7CnR4dEhpZGUodHh0KQpjdXJyZW50ID0gKCQodGhpcykuaW5kZXgoKSkKaWYgKGN1cnJlbnQgPiBtaW5QaWMpIHsKaW1nLmVxKG1pblBpYykuYW5pbWF0ZSh7ImxlZnQiOiAiLSIrcGljV2lkdGgrInB4In0sIDQwMCwgInN3aW5nIik7CnRodW1icy5lcShtaW5QaWMpLmFuaW1hdGUoe29wYWNpdHk6IDAuNn0pOwp0aHVtYnMuZXEobWluUGljKS5jc3MoImJhY2tncm91bmQiLCIjYWFhIik7Cm1pblBpYyA9IGN1cnJlbnQ7CmltZy5lcShtaW5QaWMpLmNzcygibGVmdCIsIHBpY1dpZHRoKyJweCIpOwppbWcuZXEobWluUGljKS5hbmltYXRlKHsibGVmdCI6ICIwcHgifSwgNDAwLCAic3dpbmciKTsKdGh1bWJzLmVxKG1pblBpYykuYW5pbWF0ZSh7b3BhY2l0eTogMX0pOwp0aHVtYnMuZXEobWluUGljKS5jc3MoImJhY2tncm91bmQiLCIjZmZmIik7Cn0KaWYgKGN1cnJlbnQgPCBtaW5QaWMpIHsKaW1nLmVxKG1pblBpYykuYW5pbWF0ZSh7ImxlZnQiOiBwaWNXaWR0aCsicHgifSwgNDAwLCAic3dpbmciKTsKdGh1bWJzLmVxKG1pblBpYykuYW5pbWF0ZSh7b3BhY2l0eTogMC42fSk7CnRodW1icy5lcShtaW5QaWMpLmNzcygiYmFja2dyb3VuZCIsIiNhYWEiKTsKbWluUGljID0gY3VycmVudDsKaW1nLmVxKG1pblBpYykuY3NzKCJsZWZ0IiwiLSIrcGljV2lkdGgrInB4Iik7CmltZy5lcShtaW5QaWMpLmFuaW1hdGUoeyJsZWZ0IjogIjBweCJ9LCA0MDAsICJzd2luZyIpOwp0aHVtYnMuZXEobWluUGljKS5hbmltYXRlKHtvcGFjaXR5OiAxfSk7CnRodW1icy5lcShtaW5QaWMpLmNzcygiYmFja2dyb3VuZCIsIiNmZmYiKTsKfQp9KTsKCi8qIHNob3cvaGlkZSBpbmZvcm1hdGlvbiBwYW5lbCAqLwokKCIjaW5mbyIpLmNsaWNrKGZ1bmN0aW9uKCl7CmNsZWFyVGltZW91dCh0KTsKdHh0VG9nZ2xlKHR4dCkKfSk7CgovKiBzdG9wL3N0cmF0IHRpbWVyICovCiQoIiNzbGlkZXNob3ciKS5tb3VzZW92ZXIoZnVuY3Rpb24oKSB7CmNsZWFyVGltZW91dCh0KTsKfSk7CiQoIiNzbGlkZXNob3ciKS5tb3VzZW91dChmdW5jdGlvbigpIHsKdD1zZXRUaW1lb3V0KCJ0aW1lZENvdW50KCkiLHRpbWVPdXQpOwp9KTsKCn0KCmZ1bmN0aW9uIHR4dFRvZ2dsZSh0eHQpIHsKaWYgKHN0YXRlID09ICJoaWRlIikgewpzdGF0ZT0gInNob3ciOwokKCIjb3BhY2l0eSIpLmFuaW1hdGUoeyJ0b3AiOiAiMHB4In0sIDQwMCwgInN3aW5nIik7CnR4dC5lcShtaW5QaWMpLmFuaW1hdGUoeyJ0b3AiOiAiMHB4In0sIDQwMCwgInN3aW5nIik7Cn0KZWxzZSB7CnN0YXRlPSJoaWRlIjsKJCgiI29wYWNpdHkiKS5hbmltYXRlKHsidG9wIjogIi0zNjBweCJ9LCA0MDAsICJzd2luZyIpOwp0eHQuZXEobWluUGljKS5hbmltYXRlKHsidG9wIjogIi0zNjBweCJ9LCA0MDAsICJzd2luZyIpOwp9Cn0KCmZ1bmN0aW9uIHR4dEhpZGUodHh0KSB7CmlmIChzdGF0ZSA9PSAic2hvdyIpIHsKc3RhdGU9ImhpZGUiOwokKCIjb3BhY2l0eSIpLmFuaW1hdGUoeyJ0b3AiOiAiLTM2MHB4In0sIDYwMCwgInN3aW5nIik7CnR4dC5lcShtaW5QaWMpLmFuaW1hdGUoeyJ0b3AiOiAiLTM2MHB4In0sIDYwMCwgInN3aW5nIik7Cn0KfQoKLyogYXV0byBydW4gaW1hZ2UgY29udHJvbCAqLwpmdW5jdGlvbiB0aW1lZENvdW50KCkgewoJdmFyIHRodW1icyA9ICQoIiN0aHVtYkhvbGRlciBpbWciKTsKCXZhciBpbWcgPSAkKCIjaW1hZ2VzIGltZyIpOwoJdmFyIHR4dCA9ICQoIiN0eHQgcCIpOwoJdHh0SGlkZSh0eHQpCgl0ZXN0ID0gcGFyc2VJbnQobWluUGljLzcpOwoJaWYgKHRlc3QgIT0gbWluUm93KSB7CgltaW5Sb3cgPSB0ZXN0OwoJJCgiI3RodW1iSG9sZGVyIikuYW5pbWF0ZSh7InRvcCI6IC0oKG1pblJvdykqNDgpKyJweCJ9LCA0MDAsICJzd2luZyIpOwoJfQoJaW1nLmVxKG1pblBpYykuYW5pbWF0ZSh7ImxlZnQiOiAiLSIrcGljV2lkdGgrInB4In0sIDQwMCwgInN3aW5nIik7Cgl0aHVtYnMuZXEobWluUGljKS5hbmltYXRlKHtvcGFjaXR5OiAwLjZ9KTsKCXRodW1icy5lcShtaW5QaWMpLmNzcygiYmFja2dyb3VuZCIsIiNhYWEiKTsKCW1pblBpYysrCglpZiAobWluUGljID09IG1heFBpYykge21pblBpYyA9IDA7fQoJaWYgKChtaW5QaWMvNykgPT0gcGFyc2VJbnQobWluUGljLzcpKSB7CgltaW5Sb3cgPSBtaW5QaWMvNzsKCSQoIiN0aHVtYkhvbGRlciIpLmFuaW1hdGUoeyJ0b3AiOiAtKChtaW5Sb3cpKjQ4KSsicHgifSwgNDAwLCAic3dpbmciKTsKCX0KCWltZy5lcShtaW5QaWMpLmNzcygibGVmdCIsIHBpY1dpZHRoKyJweCIpOwoJaW1nLmVxKG1pblBpYykuYW5pbWF0ZSh7ImxlZnQiOiAiMHB4In0sIDQwMCwgInN3aW5nIik7Cgl0aHVtYnMuZXEobWluUGljKS5hbmltYXRlKHtvcGFjaXR5OiAxfSk7Cgl0aHVtYnMuZXEobWluUGljKS5jc3MoImJhY2tncm91bmQiLCIjZmZmIik7Cgl0PXNldFRpbWVvdXQoInRpbWVkQ291bnQoKSIsdGltZU91dCk7Cn0KCndpbmRvdy5vbmxvYWQ9c2xpZGVzaG93Owo=]]></data>
	</file>
	<file>
	  <filename>/templates/stunichols/pad.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhMAAwAMQAAMzMzMLCwr+/v7e3t62traKiopeXl42NjXd3d21tbWZmZmJiYk1NTUJCQjc3Ny0tLSIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAHAP8ALAAAAAAwADAAAAXlICSOZGmeaKquJQCwcGwKiiLIOEvXdu7PPN7t99sFa0OizHhEKmOAZjP5TAEE2KwW+6p6v+CweEwum00OxxlmMKxZCITYRabreuNoN7Wjqh4JcixRCntATiwLAXYrhIUnTH4nBwAEjCqOjyRMeCoJDZQEMJmaEKSdKwMAgo1NXaeSJw0uDaOuI5yxJggAAVBHhhCRMAUAB788wSJGui0ACceDyXyIKgwuBL7SpSg0zSOzAAVq0sqQ5iYNtVDob+7v8PHy8/T19s4u+fr5a6dTb5yOfAsTsJq7gAPJDKPX5x6We2BCAAA7]]></data>
	</file>
	<file>
	  <filename>/xmlexamples/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/xmlexamples/albums.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4KPGZlZWQgIHhtbG5zOmdwaG90bz0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNycgeG1sbnM6bWVkaWE9J2h0dHA6Ly9zZWFyY2gueWFob28uY29tL21yc3MvJyB4bWxuczpvcGVuU2VhcmNoPSdodHRwOi8vYTkuY29tLy0vc3BlYy9vcGVuc2VhcmNocnNzLzEuMC8nPgogIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9mZWVkL2FwaS91c2VyL2Jvc3NpbmZvNDU8L2lkPgogIDx1cGRhdGVkPjIwMTAtMDYtMjVUMjI6NTY6MzguMDM5WjwvdXBkYXRlZD4KICA8Y2F0ZWdvcnkgc2NoZW1lPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNraW5kJyB0ZXJtPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I3VzZXInLz4KICA8dGl0bGUgdHlwZT0ndGV4dCc+Ym9zc2luZm80NTwvdGl0bGU+CiAgPHN1YnRpdGxlIHR5cGU9J3RleHQnLz4KICA8aWNvbj5odHRwOi8vbGg2LmdncGh0LmNvbS9fMi1mZW05Um94bWcvQUFBQUt4YVJKNHMvQUFBQUFBQUFBQUEvQWlCRE9idm9MMjgvczY0LWMvYm9zc2luZm80NS5qcGc8L2ljb24+CiAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci9ib3NzaW5mbzQ1Jy8+CiAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2Jvc3NpbmZvNDUnLz4KICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjc2xpZGVzaG93JyB0eXBlPSdhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL3MvYy9iaW4vc2xpZGVzaG93LnN3Zj9ob3N0PXBpY2FzYXdlYi5nb29nbGUuY29tJmFtcDtSR0I9MHgwMDAwMDAmYW1wO2ZlZWQ9aHR0cCUzQSUyRiUyRnBpY2FzYXdlYi5nb29nbGUuY29tJTJGZGF0YSUyRmZlZWQlMkZhcGklMkZ1c2VyJTJGYm9zc2luZm80NSUzRmFsdCUzRHJzcycvPgogIDxsaW5rIHJlbD0nc2VsZicgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvYm9zc2luZm80NT9zdGFydC1pbmRleD0xJmFtcDttYXgtcmVzdWx0cz0xMDAwJmFtcDtraW5kPWFsYnVtJmFtcDt0aHVtYnNpemU9MTYwJy8+CiAgPGF1dGhvcj4KICAgIDxuYW1lPk1vZ2VuczwvbmFtZT4KICAgIDx1cmk+aHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2Jvc3NpbmZvNDU8L3VyaT4KICA8L2F1dGhvcj4KICA8Z2VuZXJhdG9yIHZlcnNpb249JzEuMDAnIHVyaT0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLyc+UGljYXNhd2ViPC9nZW5lcmF0b3I+CiAgPG9wZW5TZWFyY2g6dG90YWxSZXN1bHRzPjIzPC9vcGVuU2VhcmNoOnRvdGFsUmVzdWx0cz4KICA8b3BlblNlYXJjaDpzdGFydEluZGV4PjE8L29wZW5TZWFyY2g6c3RhcnRJbmRleD4KICA8b3BlblNlYXJjaDppdGVtc1BlclBhZ2U+MTAwMDwvb3BlblNlYXJjaDppdGVtc1BlclBhZ2U+CiAgPGdwaG90bzp1c2VyPmJvc3NpbmZvNDU8L2dwaG90bzp1c2VyPgogIDxncGhvdG86bmlja25hbWU+TW9nZW5zPC9ncGhvdG86bmlja25hbWU+CiAgPGdwaG90bzp0aHVtYm5haWw+aHR0cDovL2xoNi5nZ3BodC5jb20vXzItZmVtOVJveG1nL0FBQUFLeGFSSjRzL0FBQUFBQUFBQUFBL0FpQkRPYnZvTDI4L3M2NC1jL2Jvc3NpbmZvNDUuanBnPC9ncGhvdG86dGh1bWJuYWlsPgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci9ib3NzaW5mbzQ1L2FsYnVtaWQvNTQ4Njg0Njc3NTU2MDYzMTUzNzwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDYtMjVUMDg6MDM6MjUuMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wNi0yNVQyMjo1NjozOC4wMzlaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNhbGJ1bScvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPnRyYW5zbG9rYXRpb24yMDEwPC90aXRsZT4KICAgIDxzdW1tYXJ5IHR5cGU9J3RleHQnLz4KICAgIDxyaWdodHMgdHlwZT0ndGV4dCc+cHVibGljPC9yaWdodHM+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2ZlZWQnIHR5cGU9J2FwcGxpY2F0aW9uL2F0b20reG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9mZWVkL2FwaS91c2VyL2Jvc3NpbmZvNDUvYWxidW1pZC81NDg2ODQ2Nzc1NTYwNjMxNTM3Jy8+CiAgICA8bGluayByZWw9J2FsdGVybmF0ZScgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vYm9zc2luZm80NS9UcmFuc2xva2F0aW9uMjAxMCcvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvYm9zc2luZm80NS9hbGJ1bWlkLzU0ODY4NDY3NzU1NjA2MzE1MzcnLz4KICAgIDxhdXRob3I+CiAgICAgIDxuYW1lPk1vZ2VuczwvbmFtZT4KICAgICAgPHVyaT5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vYm9zc2luZm80NTwvdXJpPgogICAgPC9hdXRob3I+CiAgICA8Z3Bob3RvOmlkPjU0ODY4NDY3NzU1NjA2MzE1Mzc8L2dwaG90bzppZD4KICAgIDxncGhvdG86bmFtZT5UcmFuc2xva2F0aW9uMjAxMDwvZ3Bob3RvOm5hbWU+CiAgICA8Z3Bob3RvOmxvY2F0aW9uLz4KICAgIDxncGhvdG86YWNjZXNzPnB1YmxpYzwvZ3Bob3RvOmFjY2Vzcz4KICAgIDxncGhvdG86dGltZXN0YW1wPjEyNzc0NTMwMDUwMDA8L2dwaG90bzp0aW1lc3RhbXA+CiAgICA8Z3Bob3RvOm51bXBob3Rvcz4xMjY8L2dwaG90bzpudW1waG90b3M+CiAgICA8Z3Bob3RvOnVzZXI+Ym9zc2luZm80NTwvZ3Bob3RvOnVzZXI+CiAgICA8Z3Bob3RvOm5pY2tuYW1lPk1vZ2VuczwvZ3Bob3RvOm5pY2tuYW1lPgogICAgPGdwaG90bzpjb21tZW50aW5nRW5hYmxlZD50cnVlPC9ncGhvdG86Y29tbWVudGluZ0VuYWJsZWQ+CiAgICA8Z3Bob3RvOmNvbW1lbnRDb3VudD4wPC9ncGhvdG86Y29tbWVudENvdW50PgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDQuZ2dwaHQuY29tL18yLWZlbTlSb3htZy9UQ1V5RW1KSjlQRS9BQUFBQUFBQUY1dy9iZXNtWjVuMG1hby9UcmFuc2xva2F0aW9uMjAxMC5qcGcnIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5Nb2dlbnM8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fMi1mZW05Um94bWcvVENVeUVtSko5UEUvQUFBQUFBQUFGNXcvYmVzbVo1bjBtYW8vczE2MC1jL1RyYW5zbG9rYXRpb24yMDEwLmpwZycgaGVpZ2h0PScxNjAnIHdpZHRoPScxNjAnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz50cmFuc2xva2F0aW9uMjAxMDwvbWVkaWE6dGl0bGU+CiAgICA8L21lZGlhOmdyb3VwPgogIDwvZW50cnk+CiAgCjwvZmVlZD4=]]></data>
	</file>
	<file>
	  <filename>/xmlexamples/hgbilleder.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4KPGZlZWQgIHhtbG5zOmV4aWY9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zL2V4aWYvMjAwNycgeG1sbnM6Z3Bob3RvPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3JyB4bWxuczptZWRpYT0naHR0cDovL3NlYXJjaC55YWhvby5jb20vbXJzcy8nIHhtbG5zOm9wZW5TZWFyY2g9J2h0dHA6Ly9hOS5jb20vLS9zcGVjL29wZW5zZWFyY2hyc3MvMS4wLyc+CiAgPGlkPmh0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvaGdiaWxsZWRlci9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3Nzc8L2lkPgogIDx1cGRhdGVkPjIwMTAtMDktMDRUMTU6NDE6MzkuMTUwWjwvdXBkYXRlZD4KICA8Y2F0ZWdvcnkgc2NoZW1lPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNraW5kJyB0ZXJtPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2FsYnVtJy8+CiAgPHRpdGxlIHR5cGU9J3RleHQnPlgtZmVzdCAyMDEwPC90aXRsZT4KICA8c3VidGl0bGUgdHlwZT0ndGV4dCcvPgogIDxyaWdodHMgdHlwZT0ndGV4dCc+cHVibGljPC9yaWdodHM+CiAgPGljb24+aHR0cDovL2xoNi5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjE0NVdLeHNFL0FBQUFBQUFBQVU4L0QtRWFfVXYzVGhvL3MxNjAtYy9YRmVzdDIwMTAuanBnPC9pY29uPgogIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUjZmVlZCcgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3NycvPgogIDxsaW5rIHJlbD0nYWx0ZXJuYXRlJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvWEZlc3QyMDEwJy8+CiAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I3NsaWRlc2hvdycgdHlwZT0nYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2gnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9zL2MvYmluL3NsaWRlc2hvdy5zd2Y/aG9zdD1waWNhc2F3ZWIuZ29vZ2xlLmNvbSZhbXA7UkdCPTB4MDAwMDAwJmFtcDtmZWVkPWh0dHAlM0ElMkYlMkZwaWNhc2F3ZWIuZ29vZ2xlLmNvbSUyRmRhdGElMkZmZWVkJTJGYXBpJTJGdXNlciUyRjExMzk0NzIzNTUzODI0NzExMTAwNyUyRmFsYnVtaWQlMkY1NTEyODE3MDM5MjA1MTIzNzc3JTNGYWx0JTNEcnNzJy8+CiAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I3JlcG9ydCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcmVwb3J0QWJ1c2U/dW5hbWU9MTEzOTQ3MjM1NTM4MjQ3MTExMDA3JmFtcDthaWQ9NTUxMjgxNzAzOTIwNTEyMzc3NycvPgogIDxsaW5rIHJlbD0nc2VsZicgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Nz9zdGFydC1pbmRleD0xJmFtcDttYXgtcmVzdWx0cz0xMDAwJmFtcDtraW5kPXBob3RvJmFtcDtpbWdtYXg9NTEyJmFtcDt0aHVtYnNpemU9NDgnLz4KICA8YXV0aG9yPgogICAgPG5hbWU+SGVsc2luZ8O4ciBHeW1uYXNpdW1zIEJpbGxlZGFya2l2PC9uYW1lPgogICAgPHVyaT5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vMTEzOTQ3MjM1NTM4MjQ3MTExMDA3PC91cmk+CiAgPC9hdXRob3I+CiAgPGdlbmVyYXRvciB2ZXJzaW9uPScxLjAwJyB1cmk9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS8nPlBpY2FzYXdlYjwvZ2VuZXJhdG9yPgogIDxvcGVuU2VhcmNoOnRvdGFsUmVzdWx0cz41Mzwvb3BlblNlYXJjaDp0b3RhbFJlc3VsdHM+CiAgPG9wZW5TZWFyY2g6c3RhcnRJbmRleD4xPC9vcGVuU2VhcmNoOnN0YXJ0SW5kZXg+CiAgPG9wZW5TZWFyY2g6aXRlbXNQZXJQYWdlPjEwMDA8L29wZW5TZWFyY2g6aXRlbXNQZXJQYWdlPgogIDxncGhvdG86aWQ+NTUxMjgxNzAzOTIwNTEyMzc3NzwvZ3Bob3RvOmlkPgogIDxncGhvdG86bmFtZT5YRmVzdDIwMTA8L2dwaG90bzpuYW1lPgogIDxncGhvdG86bG9jYXRpb24vPgogIDxncGhvdG86YWNjZXNzPnB1YmxpYzwvZ3Bob3RvOmFjY2Vzcz4KICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNDk3MjAwMDAwPC9ncGhvdG86dGltZXN0YW1wPgogIDxncGhvdG86bnVtcGhvdG9zPjUzPC9ncGhvdG86bnVtcGhvdG9zPgogIDxncGhvdG86dXNlcj4xMTM5NDcyMzU1MzgyNDcxMTEwMDc8L2dwaG90bzp1c2VyPgogIDxncGhvdG86bmlja25hbWU+SGVsc2luZ8O4ciBHeW1uYXNpdW1zIEJpbGxlZGFya2l2PC9ncGhvdG86bmlja25hbWU+CiAgPGdwaG90bzpjb21tZW50aW5nRW5hYmxlZD50cnVlPC9ncGhvdG86Y29tbWVudGluZ0VuYWJsZWQ+CiAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICA8Z3Bob3RvOmFsbG93UHJpbnRzPnRydWU8L2dwaG90bzphbGxvd1ByaW50cz4KICA8Z3Bob3RvOmFsbG93RG93bmxvYWRzPnRydWU8L2dwaG90bzphbGxvd0Rvd25sb2Fkcz4KICA8ZW50cnk+CiAgICA8aWQ+aHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcwNDU2MjA3MDQ5Nzg8L2lkPgogICAgPHB1Ymxpc2hlZD4yMDEwLTA5LTAzVDIyOjI1OjQxLjAwMFo8L3B1Ymxpc2hlZD4KICAgIDx1cGRhdGVkPjIwMTAtMDktMDNUMjI6MjU6NDEuODg3WjwvdXBkYXRlZD4KICAgIDxjYXRlZ29yeSBzY2hlbWU9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2tpbmQnIHRlcm09J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcGhvdG8nLz4KICAgIDx0aXRsZSB0eXBlPSd0ZXh0Jz4wMDAwMS5qcGc8L3RpdGxlPgogICAgPHN1bW1hcnkgdHlwZT0ndGV4dCcvPgogICAgPGNvbnRlbnQgdHlwZT0naW1hZ2UvanBlZycgc3JjPSdodHRwOi8vbGgzLmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMTVSUHd4dEkvQUFBQUFBQUFBT1UvOG1GWDk5a0wzVFUvczUxMi8wMDAwMS5qcGcnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUjZmVlZCcgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcwNDU2MjA3MDQ5NzgnLz4KICAgIDxsaW5rIHJlbD0nYWx0ZXJuYXRlJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvWEZlc3QyMDEwIzU1MTI4MTcwNDU2MjA3MDQ5NzgnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNjYW5vbmljYWwnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3Bob3RvL2x1Y2NuMkZUc2hZVkZTc18xYVRaMHcnLz4KICAgIDxsaW5rIHJlbD0nc2VsZicgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3MDQ1NjIwNzA0OTc4Jy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcmVwb3J0JyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9yZXBvcnRBYnVzZT91bmFtZT0xMTM5NDcyMzU1MzgyNDcxMTEwMDcmYW1wO2FpZD01NTEyODE3MDM5MjA1MTIzNzc3JmFtcDtpaWQ9NTUxMjgxNzA0NTYyMDcwNDk3OCcvPgogICAgPGdwaG90bzppZD41NTEyODE3MDQ1NjIwNzA0OTc4PC9ncGhvdG86aWQ+CiAgICA8Z3Bob3RvOnZlcnNpb24+MTwvZ3Bob3RvOnZlcnNpb24+CiAgICA8Z3Bob3RvOnBvc2l0aW9uPjEuMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xNjAwPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xMDYzPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjE5Njc3MDwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjM1ZjE0MDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTM3NjI1MDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+MjI5PC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+OS4wPC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wMDU8L2V4aWY6ZXhwb3N1cmU+CiAgICAgIDxleGlmOmZsYXNoPnRydWU8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjk1LjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz44MDA8L2V4aWY6aXNvPgogICAgICA8ZXhpZjp0aW1lPjEyODM1Mzc2MjUwMDA8L2V4aWY6dGltZT4KICAgICAgPGV4aWY6aW1hZ2VVbmlxdWVJRD45Y2NjMzIxYzEyN2EwY2I2NGE2YTY3NjhiMmJhN2ZlODwvZXhpZjppbWFnZVVuaXF1ZUlEPgogICAgPC9leGlmOnRhZ3M+CiAgICA8bWVkaWE6Z3JvdXA+CiAgICAgIDxtZWRpYTpjb250ZW50IHVybD0naHR0cDovL2xoMy5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjE1UlB3eHRJL0FBQUFBQUFBQU9VLzhtRlg5OWtMM1RVL3M1MTIvMDAwMDEuanBnJyBoZWlnaHQ9JzM0MScgd2lkdGg9JzUxMicgdHlwZT0naW1hZ2UvanBlZycgbWVkaXVtPSdpbWFnZScvPgogICAgICA8bWVkaWE6Y3JlZGl0PkhlbHNpbmfDuHIgR3ltbmFzaXVtcyBCaWxsZWRhcmtpdjwvbWVkaWE6Y3JlZGl0PgogICAgICA8bWVkaWE6ZGVzY3JpcHRpb24gdHlwZT0ncGxhaW4nLz4KICAgICAgPG1lZGlhOmtleXdvcmRzLz4KICAgICAgPG1lZGlhOnRodW1ibmFpbCB1cmw9J2h0dHA6Ly9saDMuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYxNVJQd3h0SS9BQUFBQUFBQUFPVS84bUZYOTlrTDNUVS9zNDgtYy8wMDAwMS5qcGcnIGhlaWdodD0nNDgnIHdpZHRoPSc0OCcvPgogICAgICA8bWVkaWE6dGl0bGUgdHlwZT0ncGxhaW4nPjAwMDAxLmpwZzwvbWVkaWE6dGl0bGU+CiAgICA8L21lZGlhOmdyb3VwPgogIDwvZW50cnk+CiAgPGVudHJ5PgogICAgPGlkPmh0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3MDU4OTE1MTQwMDUwPC9pZD4KICAgIDxwdWJsaXNoZWQ+MjAxMC0wOS0wM1QyMjoyNTo0NC4wMDBaPC9wdWJsaXNoZWQ+CiAgICA8dXBkYXRlZD4yMDEwLTA5LTAzVDIyOjI1OjQ0LjM5Mlo8L3VwZGF0ZWQ+CiAgICA8Y2F0ZWdvcnkgc2NoZW1lPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNraW5kJyB0ZXJtPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I3Bob3RvJy8+CiAgICA8dGl0bGUgdHlwZT0ndGV4dCc+MDAwMDIuanBnPC90aXRsZT4KICAgIDxzdW1tYXJ5IHR5cGU9J3RleHQnLz4KICAgIDxjb250ZW50IHR5cGU9J2ltYWdlL2pwZWcnIHNyYz0naHR0cDovL2xoMy5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjE2Q3had2RJL0FBQUFBQUFBQU9jL2tGWGthb3M0U1RjL3M1MTIvMDAwMDIuanBnJy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2ZlZWQnIHR5cGU9J2FwcGxpY2F0aW9uL2F0b20reG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9mZWVkL2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3MDU4OTE1MTQwMDUwJy8+CiAgICA8bGluayByZWw9J2FsdGVybmF0ZScgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L1hGZXN0MjAxMCM1NTEyODE3MDU4OTE1MTQwMDUwJy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjY2Fub25pY2FsJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9waG90by9qSm56VVE2V2Z5WFJSeVNDXzRiMmR3Jy8+CiAgICA8bGluayByZWw9J3NlbGYnIHR5cGU9J2FwcGxpY2F0aW9uL2F0b20reG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzA1ODkxNTE0MDA1MCcvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I3JlcG9ydCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcmVwb3J0QWJ1c2U/dW5hbWU9MTEzOTQ3MjM1NTM4MjQ3MTExMDA3JmFtcDthaWQ9NTUxMjgxNzAzOTIwNTEyMzc3NyZhbXA7aWlkPTU1MTI4MTcwNTg5MTUxNDAwNTAnLz4KICAgIDxncGhvdG86aWQ+NTUxMjgxNzA1ODkxNTE0MDA1MDwvZ3Bob3RvOmlkPgogICAgPGdwaG90bzp2ZXJzaW9uPjE8L2dwaG90bzp2ZXJzaW9uPgogICAgPGdwaG90bzpwb3NpdGlvbj4yLjA8L2dwaG90bzpwb3NpdGlvbj4KICAgIDxncGhvdG86YWxidW1pZD41NTEyODE3MDM5MjA1MTIzNzc3PC9ncGhvdG86YWxidW1pZD4KICAgIDxncGhvdG86YWNjZXNzPnB1YmxpYzwvZ3Bob3RvOmFjY2Vzcz4KICAgIDxncGhvdG86d2lkdGg+MTYwMDwvZ3Bob3RvOndpZHRoPgogICAgPGdwaG90bzpoZWlnaHQ+MTA2MzwvZ3Bob3RvOmhlaWdodD4KICAgIDxncGhvdG86c2l6ZT4xNzQxNTk8L2dwaG90bzpzaXplPgogICAgPGdwaG90bzpjbGllbnQ+cGljYXNhPC9ncGhvdG86Y2xpZW50PgogICAgPGdwaG90bzpjaGVja3N1bT4zNWYxYzA1MjwvZ3Bob3RvOmNoZWNrc3VtPgogICAgPGdwaG90bzp0aW1lc3RhbXA+MTI4MzUzNzYzMDAwMDwvZ3Bob3RvOnRpbWVzdGFtcD4KICAgIDxncGhvdG86aW1hZ2VWZXJzaW9uPjIzMTwvZ3Bob3RvOmltYWdlVmVyc2lvbj4KICAgIDxncGhvdG86Y29tbWVudENvdW50PjA8L2dwaG90bzpjb21tZW50Q291bnQ+CiAgICA8Z3Bob3RvOmxpY2Vuc2UgaWQ9JzAnIG5hbWU9J0FsbCBSaWdodHMgUmVzZXJ2ZWQnIHVybD0nJz5BTExfUklHSFRTX1JFU0VSVkVEPC9ncGhvdG86bGljZW5zZT4KICAgIDxleGlmOnRhZ3M+CiAgICAgIDxleGlmOmZzdG9wPjYuMzwvZXhpZjpmc3RvcD4KICAgICAgPGV4aWY6bWFrZT5OSUtPTiBDT1JQT1JBVElPTjwvZXhpZjptYWtlPgogICAgICA8ZXhpZjptb2RlbD5OSUtPTiBEOTA8L2V4aWY6bW9kZWw+CiAgICAgIDxleGlmOmV4cG9zdXJlPjAuMDA2MjU8L2V4aWY6ZXhwb3N1cmU+CiAgICAgIDxleGlmOmZsYXNoPnRydWU8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjIwMC4wPC9leGlmOmZvY2FsbGVuZ3RoPgogICAgICA8ZXhpZjppc28+ODAwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTM3NjMwMDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+MTU0OThiYjlmNmJjMzA1ZTYxOGRlMDhhOTk5NDA3MTU8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDMuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYxNkN4WndkSS9BQUFBQUFBQUFPYy9rRlhrYW9zNFNUYy9zNTEyLzAwMDAyLmpwZycgaGVpZ2h0PSczNDEnIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGgzLmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMTZDeFp3ZEkvQUFBQUFBQUFBT2Mva0ZYa2FvczRTVGMvczQ4LWMvMDAwMDIuanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDAwMi5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzA3NDk5OTMyNzM0NjwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6MjU6NDcuMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNTo0Ny45MTZaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDAzLmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDMuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYxNi1zSy1uSS9BQUFBQUFBQUFPay9xbk50TzJpLUk1TS9zNTEyLzAwMDAzLmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzA3NDk5OTMyNzM0NicvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzA3NDk5OTMyNzM0NicvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vQUQ3UVZiVWZ0eEE0ZjVaSTVPSmwzZycvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcwNzQ5OTkzMjczNDYnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3MDc0OTk5MzI3MzQ2Jy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTcwNzQ5OTkzMjczNDY8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+My4wPC9ncGhvdG86cG9zaXRpb24+CiAgICA8Z3Bob3RvOmFsYnVtaWQ+NTUxMjgxNzAzOTIwNTEyMzc3NzwvZ3Bob3RvOmFsYnVtaWQ+CiAgICA8Z3Bob3RvOmFjY2Vzcz5wdWJsaWM8L2dwaG90bzphY2Nlc3M+CiAgICA8Z3Bob3RvOndpZHRoPjE2MDA8L2dwaG90bzp3aWR0aD4KICAgIDxncGhvdG86aGVpZ2h0PjExNzY8L2dwaG90bzpoZWlnaHQ+CiAgICA8Z3Bob3RvOnNpemU+MjA3OTE4PC9ncGhvdG86c2l6ZT4KICAgIDxncGhvdG86Y2xpZW50PnBpY2FzYTwvZ3Bob3RvOmNsaWVudD4KICAgIDxncGhvdG86Y2hlY2tzdW0+NDA4NDAwNTI8L2dwaG90bzpjaGVja3N1bT4KICAgIDxncGhvdG86dGltZXN0YW1wPjEyODM1MzgxMTIwMDA8L2dwaG90bzp0aW1lc3RhbXA+CiAgICA8Z3Bob3RvOmltYWdlVmVyc2lvbj4yMzM8L2dwaG90bzppbWFnZVZlcnNpb24+CiAgICA8Z3Bob3RvOmNvbW1lbnRDb3VudD4wPC9ncGhvdG86Y29tbWVudENvdW50PgogICAgPGdwaG90bzpsaWNlbnNlIGlkPScwJyBuYW1lPSdBbGwgUmlnaHRzIFJlc2VydmVkJyB1cmw9Jyc+QUxMX1JJR0hUU19SRVNFUlZFRDwvZ3Bob3RvOmxpY2Vuc2U+CiAgICA8ZXhpZjp0YWdzPgogICAgICA8ZXhpZjpmc3RvcD42LjM8L2V4aWY6ZnN0b3A+CiAgICAgIDxleGlmOm1ha2U+TklLT04gQ09SUE9SQVRJT048L2V4aWY6bWFrZT4KICAgICAgPGV4aWY6bW9kZWw+TklLT04gRDkwPC9leGlmOm1vZGVsPgogICAgICA8ZXhpZjpleHBvc3VyZT4wLjAwNjI1PC9leGlmOmV4cG9zdXJlPgogICAgICA8ZXhpZjpmbGFzaD50cnVlPC9leGlmOmZsYXNoPgogICAgICA8ZXhpZjpmb2NhbGxlbmd0aD4yMC4wPC9leGlmOmZvY2FsbGVuZ3RoPgogICAgICA8ZXhpZjppc28+ODAwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTM4MTEyMDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+Mzc3ZmRiNmY5MjBjODViYzRmNTk3MjJhZDY3MjQxM2M8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDMuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYxNi1zSy1uSS9BQUFBQUFBQUFPay9xbk50TzJpLUk1TS9zNTEyLzAwMDAzLmpwZycgaGVpZ2h0PSczNzcnIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGgzLmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMTYtc0stbkkvQUFBQUFBQUFBT2svcW5OdE8yaS1JNU0vczQ4LWMvMDAwMDMuanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDAwMy5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzA4MjM5MjU1MDM4NjwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6MjU6NDkuMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNTo0OS45NzZaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDA0LmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDUuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYxN2FPMm1fSS9BQUFBQUFBQUFPcy9SYnpyam54RElwYy9zNTEyLzAwMDA0LmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzA4MjM5MjU1MDM4NicvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzA4MjM5MjU1MDM4NicvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vYzc2cGdXYnoyZ1pHWUpIQ1JJZFFMQScvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcwODIzOTI1NTAzODYnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3MDgyMzkyNTUwMzg2Jy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTcwODIzOTI1NTAzODY8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+NC4wPC9ncGhvdG86cG9zaXRpb24+CiAgICA8Z3Bob3RvOmFsYnVtaWQ+NTUxMjgxNzAzOTIwNTEyMzc3NzwvZ3Bob3RvOmFsYnVtaWQ+CiAgICA8Z3Bob3RvOmFjY2Vzcz5wdWJsaWM8L2dwaG90bzphY2Nlc3M+CiAgICA8Z3Bob3RvOndpZHRoPjE2MDA8L2dwaG90bzp3aWR0aD4KICAgIDxncGhvdG86aGVpZ2h0PjEwNjM8L2dwaG90bzpoZWlnaHQ+CiAgICA8Z3Bob3RvOnNpemU+MTc5Njk3PC9ncGhvdG86c2l6ZT4KICAgIDxncGhvdG86Y2xpZW50PnBpY2FzYTwvZ3Bob3RvOmNsaWVudD4KICAgIDxncGhvdG86Y2hlY2tzdW0+MzYzMjQwNTI8L2dwaG90bzpjaGVja3N1bT4KICAgIDxncGhvdG86dGltZXN0YW1wPjEyODM1MzgxMTQwMDA8L2dwaG90bzp0aW1lc3RhbXA+CiAgICA8Z3Bob3RvOmltYWdlVmVyc2lvbj4yMzU8L2dwaG90bzppbWFnZVZlcnNpb24+CiAgICA8Z3Bob3RvOmNvbW1lbnRDb3VudD4wPC9ncGhvdG86Y29tbWVudENvdW50PgogICAgPGdwaG90bzpsaWNlbnNlIGlkPScwJyBuYW1lPSdBbGwgUmlnaHRzIFJlc2VydmVkJyB1cmw9Jyc+QUxMX1JJR0hUU19SRVNFUlZFRDwvZ3Bob3RvOmxpY2Vuc2U+CiAgICA8ZXhpZjp0YWdzPgogICAgICA8ZXhpZjpmc3RvcD44LjA8L2V4aWY6ZnN0b3A+CiAgICAgIDxleGlmOm1ha2U+TklLT04gQ09SUE9SQVRJT048L2V4aWY6bWFrZT4KICAgICAgPGV4aWY6bW9kZWw+TklLT04gRDkwPC9leGlmOm1vZGVsPgogICAgICA8ZXhpZjpleHBvc3VyZT4wLjAwNTwvZXhpZjpleHBvc3VyZT4KICAgICAgPGV4aWY6Zmxhc2g+dHJ1ZTwvZXhpZjpmbGFzaD4KICAgICAgPGV4aWY6Zm9jYWxsZW5ndGg+MzUuMDwvZXhpZjpmb2NhbGxlbmd0aD4KICAgICAgPGV4aWY6aXNvPjgwMDwvZXhpZjppc28+CiAgICAgIDxleGlmOnRpbWU+MTI4MzUzODExNDAwMDwvZXhpZjp0aW1lPgogICAgICA8ZXhpZjppbWFnZVVuaXF1ZUlEPmYxYmRjZmJhMGY3ODc4YTAyMDk0YTNjYzQwODQ5ZTNmPC9leGlmOmltYWdlVW5pcXVlSUQ+CiAgICA8L2V4aWY6dGFncz4KICAgIDxtZWRpYTpncm91cD4KICAgICAgPG1lZGlhOmNvbnRlbnQgdXJsPSdodHRwOi8vbGg1LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMTdhTzJtX0kvQUFBQUFBQUFBT3MvUmJ6cmpueERJcGMvczUxMi8wMDAwNC5qcGcnIGhlaWdodD0nMzQxJyB3aWR0aD0nNTEyJyB0eXBlPSdpbWFnZS9qcGVnJyBtZWRpdW09J2ltYWdlJy8+CiAgICAgIDxtZWRpYTpjcmVkaXQ+SGVsc2luZ8O4ciBHeW1uYXNpdW1zIEJpbGxlZGFya2l2PC9tZWRpYTpjcmVkaXQ+CiAgICAgIDxtZWRpYTpkZXNjcmlwdGlvbiB0eXBlPSdwbGFpbicvPgogICAgICA8bWVkaWE6a2V5d29yZHMvPgogICAgICA8bWVkaWE6dGh1bWJuYWlsIHVybD0naHR0cDovL2xoNS5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjE3YU8ybV9JL0FBQUFBQUFBQU9zL1JienJqbnhESXBjL3M0OC1jLzAwMDA0LmpwZycgaGVpZ2h0PSc0OCcgd2lkdGg9JzQ4Jy8+CiAgICAgIDxtZWRpYTp0aXRsZSB0eXBlPSdwbGFpbic+MDAwMDQuanBnPC9tZWRpYTp0aXRsZT4KICAgIDwvbWVkaWE6Z3JvdXA+CiAgPC9lbnRyeT4KICA8ZW50cnk+CiAgICA8aWQ+aHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcwOTcwODU1ODMxNTQ8L2lkPgogICAgPHB1Ymxpc2hlZD4yMDEwLTA5LTAzVDIyOjI1OjUzLjAwMFo8L3B1Ymxpc2hlZD4KICAgIDx1cGRhdGVkPjIwMTAtMDktMDNUMjI6MjU6NTMuNTA1WjwvdXBkYXRlZD4KICAgIDxjYXRlZ29yeSBzY2hlbWU9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2tpbmQnIHRlcm09J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcGhvdG8nLz4KICAgIDx0aXRsZSB0eXBlPSd0ZXh0Jz4wMDAwNS5qcGc8L3RpdGxlPgogICAgPHN1bW1hcnkgdHlwZT0ndGV4dCcvPgogICAgPGNvbnRlbnQgdHlwZT0naW1hZ2UvanBlZycgc3JjPSdodHRwOi8vbGgzLmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMThROThmekkvQUFBQUFBQUFBTzAvbHExSEE0UHBXOTQvczUxMi8wMDAwNS5qcGcnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUjZmVlZCcgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcwOTcwODU1ODMxNTQnLz4KICAgIDxsaW5rIHJlbD0nYWx0ZXJuYXRlJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvWEZlc3QyMDEwIzU1MTI4MTcwOTcwODU1ODMxNTQnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNjYW5vbmljYWwnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3Bob3RvL1BrSVJ6WjBMZVZtV09wS0xiWG9XTEEnLz4KICAgIDxsaW5rIHJlbD0nc2VsZicgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3MDk3MDg1NTgzMTU0Jy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcmVwb3J0JyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9yZXBvcnRBYnVzZT91bmFtZT0xMTM5NDcyMzU1MzgyNDcxMTEwMDcmYW1wO2FpZD01NTEyODE3MDM5MjA1MTIzNzc3JmFtcDtpaWQ9NTUxMjgxNzA5NzA4NTU4MzE1NCcvPgogICAgPGdwaG90bzppZD41NTEyODE3MDk3MDg1NTgzMTU0PC9ncGhvdG86aWQ+CiAgICA8Z3Bob3RvOnZlcnNpb24+MTwvZ3Bob3RvOnZlcnNpb24+CiAgICA8Z3Bob3RvOnBvc2l0aW9uPjUuMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xNjAwPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xMDYzPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjE0Nzg3MzwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjM2MzJjMDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTM4MTE4MDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+MjM3PC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+OC4wPC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wMDU8L2V4aWY6ZXhwb3N1cmU+CiAgICAgIDxleGlmOmZsYXNoPnRydWU8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjY1LjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz44MDA8L2V4aWY6aXNvPgogICAgICA8ZXhpZjp0aW1lPjEyODM1MzgxMTgwMDA8L2V4aWY6dGltZT4KICAgICAgPGV4aWY6aW1hZ2VVbmlxdWVJRD43NjA4Y2EyYjY4OWU1MTM4YWQ3ZTMxOWNiMzQ2ZTQyNTwvZXhpZjppbWFnZVVuaXF1ZUlEPgogICAgPC9leGlmOnRhZ3M+CiAgICA8bWVkaWE6Z3JvdXA+CiAgICAgIDxtZWRpYTpjb250ZW50IHVybD0naHR0cDovL2xoMy5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjE4UTk4ZnpJL0FBQUFBQUFBQU8wL2xxMUhBNFBwVzk0L3M1MTIvMDAwMDUuanBnJyBoZWlnaHQ9JzM0MScgd2lkdGg9JzUxMicgdHlwZT0naW1hZ2UvanBlZycgbWVkaXVtPSdpbWFnZScvPgogICAgICA8bWVkaWE6Y3JlZGl0PkhlbHNpbmfDuHIgR3ltbmFzaXVtcyBCaWxsZWRhcmtpdjwvbWVkaWE6Y3JlZGl0PgogICAgICA8bWVkaWE6ZGVzY3JpcHRpb24gdHlwZT0ncGxhaW4nLz4KICAgICAgPG1lZGlhOmtleXdvcmRzLz4KICAgICAgPG1lZGlhOnRodW1ibmFpbCB1cmw9J2h0dHA6Ly9saDMuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYxOFE5OGZ6SS9BQUFBQUFBQUFPMC9scTFIQTRQcFc5NC9zNDgtYy8wMDAwNS5qcGcnIGhlaWdodD0nNDgnIHdpZHRoPSc0OCcvPgogICAgICA8bWVkaWE6dGl0bGUgdHlwZT0ncGxhaW4nPjAwMDA1LmpwZzwvbWVkaWE6dGl0bGU+CiAgICA8L21lZGlhOmdyb3VwPgogIDwvZW50cnk+CiAgPGVudHJ5PgogICAgPGlkPmh0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3MTA0OTE5Mjg4ODM0PC9pZD4KICAgIDxwdWJsaXNoZWQ+MjAxMC0wOS0wM1QyMjoyNTo1NC4wMDBaPC9wdWJsaXNoZWQ+CiAgICA8dXBkYXRlZD4yMDEwLTA5LTAzVDIyOjI1OjU0LjgzMlo8L3VwZGF0ZWQ+CiAgICA8Y2F0ZWdvcnkgc2NoZW1lPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNraW5kJyB0ZXJtPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I3Bob3RvJy8+CiAgICA8dGl0bGUgdHlwZT0ndGV4dCc+MDAwMDYuanBnPC90aXRsZT4KICAgIDxzdW1tYXJ5IHR5cGU9J3RleHQnLz4KICAgIDxjb250ZW50IHR5cGU9J2ltYWdlL2pwZWcnIHNyYz0naHR0cDovL2xoNS5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjE4dUpwWEFJL0FBQUFBQUFBQU84L1c5YUZvS0pKd3Q4L3M1MTIvMDAwMDYuanBnJy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2ZlZWQnIHR5cGU9J2FwcGxpY2F0aW9uL2F0b20reG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9mZWVkL2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3MTA0OTE5Mjg4ODM0Jy8+CiAgICA8bGluayByZWw9J2FsdGVybmF0ZScgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L1hGZXN0MjAxMCM1NTEyODE3MTA0OTE5Mjg4ODM0Jy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjY2Fub25pY2FsJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9waG90by83Y2xLMjRRVnYzOGNMN2hwQi1vdFJBJy8+CiAgICA8bGluayByZWw9J3NlbGYnIHR5cGU9J2FwcGxpY2F0aW9uL2F0b20reG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzEwNDkxOTI4ODgzNCcvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I3JlcG9ydCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcmVwb3J0QWJ1c2U/dW5hbWU9MTEzOTQ3MjM1NTM4MjQ3MTExMDA3JmFtcDthaWQ9NTUxMjgxNzAzOTIwNTEyMzc3NyZhbXA7aWlkPTU1MTI4MTcxMDQ5MTkyODg4MzQnLz4KICAgIDxncGhvdG86aWQ+NTUxMjgxNzEwNDkxOTI4ODgzNDwvZ3Bob3RvOmlkPgogICAgPGdwaG90bzp2ZXJzaW9uPjE8L2dwaG90bzp2ZXJzaW9uPgogICAgPGdwaG90bzpwb3NpdGlvbj42LjA8L2dwaG90bzpwb3NpdGlvbj4KICAgIDxncGhvdG86YWxidW1pZD41NTEyODE3MDM5MjA1MTIzNzc3PC9ncGhvdG86YWxidW1pZD4KICAgIDxncGhvdG86YWNjZXNzPnB1YmxpYzwvZ3Bob3RvOmFjY2Vzcz4KICAgIDxncGhvdG86d2lkdGg+MTYwMDwvZ3Bob3RvOndpZHRoPgogICAgPGdwaG90bzpoZWlnaHQ+MTA2MzwvZ3Bob3RvOmhlaWdodD4KICAgIDxncGhvdG86c2l6ZT4xMDk3OTg8L2dwaG90bzpzaXplPgogICAgPGdwaG90bzpjbGllbnQ+cGljYXNhPC9ncGhvdG86Y2xpZW50PgogICAgPGdwaG90bzpjaGVja3N1bT4zNjRkMDA1MjwvZ3Bob3RvOmNoZWNrc3VtPgogICAgPGdwaG90bzp0aW1lc3RhbXA+MTI4MzUzODI5NjAwMDwvZ3Bob3RvOnRpbWVzdGFtcD4KICAgIDxncGhvdG86aW1hZ2VWZXJzaW9uPjIzOTwvZ3Bob3RvOmltYWdlVmVyc2lvbj4KICAgIDxncGhvdG86Y29tbWVudENvdW50PjA8L2dwaG90bzpjb21tZW50Q291bnQ+CiAgICA8Z3Bob3RvOmxpY2Vuc2UgaWQ9JzAnIG5hbWU9J0FsbCBSaWdodHMgUmVzZXJ2ZWQnIHVybD0nJz5BTExfUklHSFRTX1JFU0VSVkVEPC9ncGhvdG86bGljZW5zZT4KICAgIDxleGlmOnRhZ3M+CiAgICAgIDxleGlmOmZzdG9wPjUuNjwvZXhpZjpmc3RvcD4KICAgICAgPGV4aWY6bWFrZT5OSUtPTiBDT1JQT1JBVElPTjwvZXhpZjptYWtlPgogICAgICA8ZXhpZjptb2RlbD5OSUtPTiBEOTA8L2V4aWY6bW9kZWw+CiAgICAgIDxleGlmOmV4cG9zdXJlPjAuMDE2NjY2NjY4PC9leGlmOmV4cG9zdXJlPgogICAgICA8ZXhpZjpmbGFzaD50cnVlPC9leGlmOmZsYXNoPgogICAgICA8ZXhpZjpmb2NhbGxlbmd0aD4xMDUuMDwvZXhpZjpmb2NhbGxlbmd0aD4KICAgICAgPGV4aWY6aXNvPjgwMDwvZXhpZjppc28+CiAgICAgIDxleGlmOnRpbWU+MTI4MzUzODI5NjAwMDwvZXhpZjp0aW1lPgogICAgICA8ZXhpZjppbWFnZVVuaXF1ZUlEPmY4NDY1ZTc1YTFmNzY0ZjQ5YmQwYjQ3NmJiOTk0ZDUxPC9leGlmOmltYWdlVW5pcXVlSUQ+CiAgICA8L2V4aWY6dGFncz4KICAgIDxtZWRpYTpncm91cD4KICAgICAgPG1lZGlhOmNvbnRlbnQgdXJsPSdodHRwOi8vbGg1LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMTh1SnBYQUkvQUFBQUFBQUFBTzgvVzlhRm9LSkp3dDgvczUxMi8wMDAwNi5qcGcnIGhlaWdodD0nMzQxJyB3aWR0aD0nNTEyJyB0eXBlPSdpbWFnZS9qcGVnJyBtZWRpdW09J2ltYWdlJy8+CiAgICAgIDxtZWRpYTpjcmVkaXQ+SGVsc2luZ8O4ciBHeW1uYXNpdW1zIEJpbGxlZGFya2l2PC9tZWRpYTpjcmVkaXQ+CiAgICAgIDxtZWRpYTpkZXNjcmlwdGlvbiB0eXBlPSdwbGFpbicvPgogICAgICA8bWVkaWE6a2V5d29yZHMvPgogICAgICA8bWVkaWE6dGh1bWJuYWlsIHVybD0naHR0cDovL2xoNS5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjE4dUpwWEFJL0FBQUFBQUFBQU84L1c5YUZvS0pKd3Q4L3M0OC1jLzAwMDA2LmpwZycgaGVpZ2h0PSc0OCcgd2lkdGg9JzQ4Jy8+CiAgICAgIDxtZWRpYTp0aXRsZSB0eXBlPSdwbGFpbic+MDAwMDYuanBnPC9tZWRpYTp0aXRsZT4KICAgIDwvbWVkaWE6Z3JvdXA+CiAgPC9lbnRyeT4KICA8ZW50cnk+CiAgICA8aWQ+aHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcxMTYzMTQ1MzA3MDY8L2lkPgogICAgPHB1Ymxpc2hlZD4yMDEwLTA5LTAzVDIyOjI1OjU3LjAwMFo8L3B1Ymxpc2hlZD4KICAgIDx1cGRhdGVkPjIwMTAtMDktMDNUMjI6MjU6NTcuMjE3WjwvdXBkYXRlZD4KICAgIDxjYXRlZ29yeSBzY2hlbWU9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2tpbmQnIHRlcm09J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcGhvdG8nLz4KICAgIDx0aXRsZSB0eXBlPSd0ZXh0Jz4wMDAwNy5qcGc8L3RpdGxlPgogICAgPHN1bW1hcnkgdHlwZT0ndGV4dCcvPgogICAgPGNvbnRlbnQgdHlwZT0naW1hZ2UvanBlZycgc3JjPSdodHRwOi8vbGg1LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMTlZbWU4NUkvQUFBQUFBQUFBUEUvT21QNFdHUm91encvczUxMi8wMDAwNy5qcGcnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUjZmVlZCcgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcxMTYzMTQ1MzA3MDYnLz4KICAgIDxsaW5rIHJlbD0nYWx0ZXJuYXRlJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvWEZlc3QyMDEwIzU1MTI4MTcxMTYzMTQ1MzA3MDYnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNjYW5vbmljYWwnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3Bob3RvL011aHdzc3JwMnlFSTdVWHBUSXI4WkEnLz4KICAgIDxsaW5rIHJlbD0nc2VsZicgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3MTE2MzE0NTMwNzA2Jy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcmVwb3J0JyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9yZXBvcnRBYnVzZT91bmFtZT0xMTM5NDcyMzU1MzgyNDcxMTEwMDcmYW1wO2FpZD01NTEyODE3MDM5MjA1MTIzNzc3JmFtcDtpaWQ9NTUxMjgxNzExNjMxNDUzMDcwNicvPgogICAgPGdwaG90bzppZD41NTEyODE3MTE2MzE0NTMwNzA2PC9ncGhvdG86aWQ+CiAgICA8Z3Bob3RvOnZlcnNpb24+MTwvZ3Bob3RvOnZlcnNpb24+CiAgICA8Z3Bob3RvOnBvc2l0aW9uPjcuMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xMzcyPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xNjAwPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjE0MzE0OTwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjQwNDIyMDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTM4Mzc1MDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+MjQxPC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+NS42PC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wMTY2NjY2Njg8L2V4aWY6ZXhwb3N1cmU+CiAgICAgIDxleGlmOmZsYXNoPnRydWU8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjIyLjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz44MDA8L2V4aWY6aXNvPgogICAgICA8ZXhpZjp0aW1lPjEyODM1MzgzNzUwMDA8L2V4aWY6dGltZT4KICAgICAgPGV4aWY6aW1hZ2VVbmlxdWVJRD5mMTg3YzhkNTJlOGQwZDhhMGY3NzAxMTZkMzllMDE2ZjwvZXhpZjppbWFnZVVuaXF1ZUlEPgogICAgPC9leGlmOnRhZ3M+CiAgICA8bWVkaWE6Z3JvdXA+CiAgICAgIDxtZWRpYTpjb250ZW50IHVybD0naHR0cDovL2xoNS5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjE5WW1lODVJL0FBQUFBQUFBQVBFL09tUDRXR1JvdXp3L3M1MTIvMDAwMDcuanBnJyBoZWlnaHQ9JzUxMicgd2lkdGg9JzQ0MCcgdHlwZT0naW1hZ2UvanBlZycgbWVkaXVtPSdpbWFnZScvPgogICAgICA8bWVkaWE6Y3JlZGl0PkhlbHNpbmfDuHIgR3ltbmFzaXVtcyBCaWxsZWRhcmtpdjwvbWVkaWE6Y3JlZGl0PgogICAgICA8bWVkaWE6ZGVzY3JpcHRpb24gdHlwZT0ncGxhaW4nLz4KICAgICAgPG1lZGlhOmtleXdvcmRzLz4KICAgICAgPG1lZGlhOnRodW1ibmFpbCB1cmw9J2h0dHA6Ly9saDUuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYxOVltZTg1SS9BQUFBQUFBQUFQRS9PbVA0V0dSb3V6dy9zNDgtYy8wMDAwNy5qcGcnIGhlaWdodD0nNDgnIHdpZHRoPSc0OCcvPgogICAgICA8bWVkaWE6dGl0bGUgdHlwZT0ncGxhaW4nPjAwMDA3LmpwZzwvbWVkaWE6dGl0bGU+CiAgICA8L21lZGlhOmdyb3VwPgogIDwvZW50cnk+CiAgPGVudHJ5PgogICAgPGlkPmh0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3MTI4NzM5MTM5ODQyPC9pZD4KICAgIDxwdWJsaXNoZWQ+MjAxMC0wOS0wM1QyMjoyNjowMC4wMDBaPC9wdWJsaXNoZWQ+CiAgICA8dXBkYXRlZD4yMDEwLTA5LTAzVDIyOjI2OjAwLjM3M1o8L3VwZGF0ZWQ+CiAgICA8Y2F0ZWdvcnkgc2NoZW1lPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNraW5kJyB0ZXJtPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I3Bob3RvJy8+CiAgICA8dGl0bGUgdHlwZT0ndGV4dCc+MDAwMDguanBnPC90aXRsZT4KICAgIDxzdW1tYXJ5IHR5cGU9J3RleHQnLz4KICAgIDxjb250ZW50IHR5cGU9J2ltYWdlL2pwZWcnIHNyYz0naHR0cDovL2xoNS5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjEtRzR2Y1FJL0FBQUFBQUFBQVBNL2sxX29Gd3gwbmlJL3M1MTIvMDAwMDguanBnJy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2ZlZWQnIHR5cGU9J2FwcGxpY2F0aW9uL2F0b20reG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9mZWVkL2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3MTI4NzM5MTM5ODQyJy8+CiAgICA8bGluayByZWw9J2FsdGVybmF0ZScgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L1hGZXN0MjAxMCM1NTEyODE3MTI4NzM5MTM5ODQyJy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjY2Fub25pY2FsJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9waG90by9vYkF3TkpIQVA1QVdUWUNMM3NqUFlnJy8+CiAgICA8bGluayByZWw9J3NlbGYnIHR5cGU9J2FwcGxpY2F0aW9uL2F0b20reG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzEyODczOTEzOTg0MicvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I3JlcG9ydCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcmVwb3J0QWJ1c2U/dW5hbWU9MTEzOTQ3MjM1NTM4MjQ3MTExMDA3JmFtcDthaWQ9NTUxMjgxNzAzOTIwNTEyMzc3NyZhbXA7aWlkPTU1MTI4MTcxMjg3MzkxMzk4NDInLz4KICAgIDxncGhvdG86aWQ+NTUxMjgxNzEyODczOTEzOTg0MjwvZ3Bob3RvOmlkPgogICAgPGdwaG90bzp2ZXJzaW9uPjE8L2dwaG90bzp2ZXJzaW9uPgogICAgPGdwaG90bzpwb3NpdGlvbj44LjA8L2dwaG90bzpwb3NpdGlvbj4KICAgIDxncGhvdG86YWxidW1pZD41NTEyODE3MDM5MjA1MTIzNzc3PC9ncGhvdG86YWxidW1pZD4KICAgIDxncGhvdG86YWNjZXNzPnB1YmxpYzwvZ3Bob3RvOmFjY2Vzcz4KICAgIDxncGhvdG86d2lkdGg+MTYwMDwvZ3Bob3RvOndpZHRoPgogICAgPGdwaG90bzpoZWlnaHQ+MTA2MzwvZ3Bob3RvOmhlaWdodD4KICAgIDxncGhvdG86c2l6ZT4xODgyMTM8L2dwaG90bzpzaXplPgogICAgPGdwaG90bzpjbGllbnQ+cGljYXNhPC9ncGhvdG86Y2xpZW50PgogICAgPGdwaG90bzpjaGVja3N1bT4zNzVmODA1MjwvZ3Bob3RvOmNoZWNrc3VtPgogICAgPGdwaG90bzp0aW1lc3RhbXA+MTI4MzU0MDQ1OTAwMDwvZ3Bob3RvOnRpbWVzdGFtcD4KICAgIDxncGhvdG86aW1hZ2VWZXJzaW9uPjI0MzwvZ3Bob3RvOmltYWdlVmVyc2lvbj4KICAgIDxncGhvdG86Y29tbWVudENvdW50PjA8L2dwaG90bzpjb21tZW50Q291bnQ+CiAgICA8Z3Bob3RvOmxpY2Vuc2UgaWQ9JzAnIG5hbWU9J0FsbCBSaWdodHMgUmVzZXJ2ZWQnIHVybD0nJz5BTExfUklHSFRTX1JFU0VSVkVEPC9ncGhvdG86bGljZW5zZT4KICAgIDxleGlmOnRhZ3M+CiAgICAgIDxleGlmOmZzdG9wPjUuNjwvZXhpZjpmc3RvcD4KICAgICAgPGV4aWY6bWFrZT5OSUtPTiBDT1JQT1JBVElPTjwvZXhpZjptYWtlPgogICAgICA8ZXhpZjptb2RlbD5OSUtPTiBEOTA8L2V4aWY6bW9kZWw+CiAgICAgIDxleGlmOmV4cG9zdXJlPjAuMDE2NjY2NjY4PC9leGlmOmV4cG9zdXJlPgogICAgICA8ZXhpZjpmbGFzaD50cnVlPC9leGlmOmZsYXNoPgogICAgICA8ZXhpZjpmb2NhbGxlbmd0aD4yNC4wPC9leGlmOmZvY2FsbGVuZ3RoPgogICAgICA8ZXhpZjppc28+ODAwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQwNDU5MDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+ODAyMTkzN2RkZTdmNmFjZjQ2ODhmZWZkMzJiYjc4OGY8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDUuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYxLUc0dmNRSS9BQUFBQUFBQUFQTS9rMV9vRnd4MG5pSS9zNTEyLzAwMDA4LmpwZycgaGVpZ2h0PSczNDEnIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGg1LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMS1HNHZjUUkvQUFBQUFBQUFBUE0vazFfb0Z3eDBuaUkvczQ4LWMvMDAwMDguanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDAwOC5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzEzNzQwODkxODcwNjwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6MjY6MDIuMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNjowMi4xMzRaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDA5LmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDUuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYxLW5MeHhMSS9BQUFBQUFBQUFQVS9MVXd5NG1JZDE5by9zNTEyLzAwMDA5LmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzEzNzQwODkxODcwNicvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzEzNzQwODkxODcwNicvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vUTd6eGxhemZfQWVycF9kcXpFaXBMQScvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcxMzc0MDg5MTg3MDYnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3MTM3NDA4OTE4NzA2Jy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTcxMzc0MDg5MTg3MDY8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+OS4wPC9ncGhvdG86cG9zaXRpb24+CiAgICA8Z3Bob3RvOmFsYnVtaWQ+NTUxMjgxNzAzOTIwNTEyMzc3NzwvZ3Bob3RvOmFsYnVtaWQ+CiAgICA8Z3Bob3RvOmFjY2Vzcz5wdWJsaWM8L2dwaG90bzphY2Nlc3M+CiAgICA8Z3Bob3RvOndpZHRoPjE2MDA8L2dwaG90bzp3aWR0aD4KICAgIDxncGhvdG86aGVpZ2h0PjEwNjM8L2dwaG90bzpoZWlnaHQ+CiAgICA8Z3Bob3RvOnNpemU+MTM5OTI1PC9ncGhvdG86c2l6ZT4KICAgIDxncGhvdG86Y2xpZW50PnBpY2FzYTwvZ3Bob3RvOmNsaWVudD4KICAgIDxncGhvdG86Y2hlY2tzdW0+Mzc1YzQwNTI8L2dwaG90bzpjaGVja3N1bT4KICAgIDxncGhvdG86dGltZXN0YW1wPjEyODM1NDA0NjUwMDA8L2dwaG90bzp0aW1lc3RhbXA+CiAgICA8Z3Bob3RvOmltYWdlVmVyc2lvbj4yNDU8L2dwaG90bzppbWFnZVZlcnNpb24+CiAgICA8Z3Bob3RvOmNvbW1lbnRDb3VudD4wPC9ncGhvdG86Y29tbWVudENvdW50PgogICAgPGdwaG90bzpsaWNlbnNlIGlkPScwJyBuYW1lPSdBbGwgUmlnaHRzIFJlc2VydmVkJyB1cmw9Jyc+QUxMX1JJR0hUU19SRVNFUlZFRDwvZ3Bob3RvOmxpY2Vuc2U+CiAgICA8ZXhpZjp0YWdzPgogICAgICA8ZXhpZjpmc3RvcD41LjY8L2V4aWY6ZnN0b3A+CiAgICAgIDxleGlmOm1ha2U+TklLT04gQ09SUE9SQVRJT048L2V4aWY6bWFrZT4KICAgICAgPGV4aWY6bW9kZWw+TklLT04gRDkwPC9leGlmOm1vZGVsPgogICAgICA8ZXhpZjpleHBvc3VyZT4wLjAxNjY2NjY2ODwvZXhpZjpleHBvc3VyZT4KICAgICAgPGV4aWY6Zmxhc2g+dHJ1ZTwvZXhpZjpmbGFzaD4KICAgICAgPGV4aWY6Zm9jYWxsZW5ndGg+NDYuMDwvZXhpZjpmb2NhbGxlbmd0aD4KICAgICAgPGV4aWY6aXNvPjgwMDwvZXhpZjppc28+CiAgICAgIDxleGlmOnRpbWU+MTI4MzU0MDQ2NTAwMDwvZXhpZjp0aW1lPgogICAgICA8ZXhpZjppbWFnZVVuaXF1ZUlEPjcwZDFiMTQxOTZlYzFjZDc2YzcwZmY5MTgxYTVkYjI0PC9leGlmOmltYWdlVW5pcXVlSUQ+CiAgICA8L2V4aWY6dGFncz4KICAgIDxtZWRpYTpncm91cD4KICAgICAgPG1lZGlhOmNvbnRlbnQgdXJsPSdodHRwOi8vbGg1LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMS1uTHh4TEkvQUFBQUFBQUFBUFUvTFV3eTRtSWQxOW8vczUxMi8wMDAwOS5qcGcnIGhlaWdodD0nMzQxJyB3aWR0aD0nNTEyJyB0eXBlPSdpbWFnZS9qcGVnJyBtZWRpdW09J2ltYWdlJy8+CiAgICAgIDxtZWRpYTpjcmVkaXQ+SGVsc2luZ8O4ciBHeW1uYXNpdW1zIEJpbGxlZGFya2l2PC9tZWRpYTpjcmVkaXQ+CiAgICAgIDxtZWRpYTpkZXNjcmlwdGlvbiB0eXBlPSdwbGFpbicvPgogICAgICA8bWVkaWE6a2V5d29yZHMvPgogICAgICA8bWVkaWE6dGh1bWJuYWlsIHVybD0naHR0cDovL2xoNS5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjEtbkx4eExJL0FBQUFBQUFBQVBVL0xVd3k0bUlkMTlvL3M0OC1jLzAwMDA5LmpwZycgaGVpZ2h0PSc0OCcgd2lkdGg9JzQ4Jy8+CiAgICAgIDxtZWRpYTp0aXRsZSB0eXBlPSdwbGFpbic+MDAwMDkuanBnPC9tZWRpYTp0aXRsZT4KICAgIDwvbWVkaWE6Z3JvdXA+CiAgPC9lbnRyeT4KICA8ZW50cnk+CiAgICA8aWQ+aHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcxNDYwODUzNTEyMzQ8L2lkPgogICAgPHB1Ymxpc2hlZD4yMDEwLTA5LTAzVDIyOjI2OjA0LjAwMFo8L3B1Ymxpc2hlZD4KICAgIDx1cGRhdGVkPjIwMTAtMDktMDNUMjI6MjY6MDQuMDgyWjwvdXBkYXRlZD4KICAgIDxjYXRlZ29yeSBzY2hlbWU9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2tpbmQnIHRlcm09J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcGhvdG8nLz4KICAgIDx0aXRsZSB0eXBlPSd0ZXh0Jz4wMDAxMC5qcGc8L3RpdGxlPgogICAgPHN1bW1hcnkgdHlwZT0ndGV4dCcvPgogICAgPGNvbnRlbnQgdHlwZT0naW1hZ2UvanBlZycgc3JjPSdodHRwOi8vbGgzLmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMV9IZ1puMEkvQUFBQUFBQUFBUGMvYnBaUjExaTd3SGsvczUxMi8wMDAxMC5qcGcnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUjZmVlZCcgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcxNDYwODUzNTEyMzQnLz4KICAgIDxsaW5rIHJlbD0nYWx0ZXJuYXRlJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvWEZlc3QyMDEwIzU1MTI4MTcxNDYwODUzNTEyMzQnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNjYW5vbmljYWwnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3Bob3RvL2I4Tmdzc3RkZFIyQjZwN1FJWDB5SUEnLz4KICAgIDxsaW5rIHJlbD0nc2VsZicgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3MTQ2MDg1MzUxMjM0Jy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcmVwb3J0JyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9yZXBvcnRBYnVzZT91bmFtZT0xMTM5NDcyMzU1MzgyNDcxMTEwMDcmYW1wO2FpZD01NTEyODE3MDM5MjA1MTIzNzc3JmFtcDtpaWQ9NTUxMjgxNzE0NjA4NTM1MTIzNCcvPgogICAgPGdwaG90bzppZD41NTEyODE3MTQ2MDg1MzUxMjM0PC9ncGhvdG86aWQ+CiAgICA8Z3Bob3RvOnZlcnNpb24+MTwvZ3Bob3RvOnZlcnNpb24+CiAgICA8Z3Bob3RvOnBvc2l0aW9uPjEwLjA8L2dwaG90bzpwb3NpdGlvbj4KICAgIDxncGhvdG86YWxidW1pZD41NTEyODE3MDM5MjA1MTIzNzc3PC9ncGhvdG86YWxidW1pZD4KICAgIDxncGhvdG86YWNjZXNzPnB1YmxpYzwvZ3Bob3RvOmFjY2Vzcz4KICAgIDxncGhvdG86d2lkdGg+MTYwMDwvZ3Bob3RvOndpZHRoPgogICAgPGdwaG90bzpoZWlnaHQ+MTA2MzwvZ3Bob3RvOmhlaWdodD4KICAgIDxncGhvdG86c2l6ZT4xNzA1MTU8L2dwaG90bzpzaXplPgogICAgPGdwaG90bzpjbGllbnQ+cGljYXNhPC9ncGhvdG86Y2xpZW50PgogICAgPGdwaG90bzpjaGVja3N1bT4zNzVhODA1MjwvZ3Bob3RvOmNoZWNrc3VtPgogICAgPGdwaG90bzp0aW1lc3RhbXA+MTI4MzU0MDQ4NDAwMDwvZ3Bob3RvOnRpbWVzdGFtcD4KICAgIDxncGhvdG86aW1hZ2VWZXJzaW9uPjI0NzwvZ3Bob3RvOmltYWdlVmVyc2lvbj4KICAgIDxncGhvdG86Y29tbWVudENvdW50PjA8L2dwaG90bzpjb21tZW50Q291bnQ+CiAgICA8Z3Bob3RvOmxpY2Vuc2UgaWQ9JzAnIG5hbWU9J0FsbCBSaWdodHMgUmVzZXJ2ZWQnIHVybD0nJz5BTExfUklHSFRTX1JFU0VSVkVEPC9ncGhvdG86bGljZW5zZT4KICAgIDxleGlmOnRhZ3M+CiAgICAgIDxleGlmOmZzdG9wPjUuNjwvZXhpZjpmc3RvcD4KICAgICAgPGV4aWY6bWFrZT5OSUtPTiBDT1JQT1JBVElPTjwvZXhpZjptYWtlPgogICAgICA8ZXhpZjptb2RlbD5OSUtPTiBEOTA8L2V4aWY6bW9kZWw+CiAgICAgIDxleGlmOmV4cG9zdXJlPjAuMDE2NjY2NjY4PC9leGlmOmV4cG9zdXJlPgogICAgICA8ZXhpZjpmbGFzaD50cnVlPC9leGlmOmZsYXNoPgogICAgICA8ZXhpZjpmb2NhbGxlbmd0aD4zNC4wPC9leGlmOmZvY2FsbGVuZ3RoPgogICAgICA8ZXhpZjppc28+ODAwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQwNDg0MDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+NmI4NTZjYWVhMDkyMGM4Yjc1NjE3M2IxYTRiZWRiNjM8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDMuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYxX0hnWm4wSS9BQUFBQUFBQUFQYy9icFpSMTFpN3dIay9zNTEyLzAwMDEwLmpwZycgaGVpZ2h0PSczNDEnIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGgzLmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMV9IZ1puMEkvQUFBQUFBQUFBUGMvYnBaUjExaTd3SGsvczQ4LWMvMDAwMTAuanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDAxMC5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzE0OTEwMzA0NjI3NDwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6MjY6MDUuMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNjowNS44OTFaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDEyLmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDYuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYxX1N2M19vSS9BQUFBQUFBQUFQay9QdzZqR3duSnFvWS9zNTEyLzAwMDEyLmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzE0OTEwMzA0NjI3NCcvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzE0OTEwMzA0NjI3NCcvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vR1M5TXltVkQ5c3VkSEtSWVNTcHdDUScvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcxNDkxMDMwNDYyNzQnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3MTQ5MTAzMDQ2Mjc0Jy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTcxNDkxMDMwNDYyNzQ8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+MTEuMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xNjAwPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xMDYzPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjE0MzQ4MzwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjM3NjE0MDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTQwNTY5MDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+MjQ5PC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+Ni4zPC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wMTY2NjY2Njg8L2V4aWY6ZXhwb3N1cmU+CiAgICAgIDxleGlmOmZsYXNoPnRydWU8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjM4LjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz4xMjUwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQwNTY5MDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+NDgwOGI0MzM0YjEwNzUwM2U2NTNjZWVlNWUzZGQzZDM8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDYuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYxX1N2M19vSS9BQUFBQUFBQUFQay9QdzZqR3duSnFvWS9zNTEyLzAwMDEyLmpwZycgaGVpZ2h0PSczNDEnIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGg2LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMV9TdjNfb0kvQUFBQUFBQUFBUGsvUHc2akd3bkpxb1kvczQ4LWMvMDAwMTIuanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDAxMi5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzE2ODE3Nzc5MTU3MDwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6MjY6MDkuMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNjowOS4zMjdaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDEzLmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDQuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyQVp6cGdsSS9BQUFBQUFBQUFQcy9GbmNIdldORmF6MC9zNTEyLzAwMDEzLmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzE2ODE3Nzc5MTU3MCcvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzE2ODE3Nzc5MTU3MCcvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vNzlMeElfZFpIWUphWk5DZ3Q3elFmdycvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcxNjgxNzc3OTE1NzAnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3MTY4MTc3NzkxNTcwJy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTcxNjgxNzc3OTE1NzA8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+MTIuMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xNjAwPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xMTkwPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjE2MDMzOTwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjQwNGQyMDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTQwNTg1MDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+MjUxPC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+Ni4zPC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wMTY2NjY2Njg8L2V4aWY6ZXhwb3N1cmU+CiAgICAgIDxleGlmOmZsYXNoPnRydWU8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjQwLjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz4xMjUwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQwNTg1MDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+MDU4MWE1YjhjNjQxMDBiM2JiMGE4ZDg2MmM4ZTQ1NjA8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDQuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyQVp6cGdsSS9BQUFBQUFBQUFQcy9GbmNIdldORmF6MC9zNTEyLzAwMDEzLmpwZycgaGVpZ2h0PSczODEnIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkFaenBnbEkvQUFBQUFBQUFBUHMvRm5jSHZXTkZhejAvczQ4LWMvMDAwMTMuanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDAxMy5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzE3NDc1Njc5NzY2NjwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6MjY6MTEuMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNjoxMS4yOTJaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDE0LmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDYuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyQXlVTkxPSS9BQUFBQUFBQUFQMC9VTG9XODlIeUZyUS9zNTEyLzAwMDE0LmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzE3NDc1Njc5NzY2NicvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzE3NDc1Njc5NzY2NicvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vT1JLOXg5X0RYZld0TG5ILVFzQ01VQScvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcxNzQ3NTY3OTc2NjYnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3MTc0NzU2Nzk3NjY2Jy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTcxNzQ3NTY3OTc2NjY8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+MTMuMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xNjAwPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xMDYzPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjE2NTA1MjwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjM3NmE0MDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTQwNjA5MDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+MjUzPC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+Ni4zPC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wMTY2NjY2Njg8L2V4aWY6ZXhwb3N1cmU+CiAgICAgIDxleGlmOmZsYXNoPnRydWU8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjMyLjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz4xMjUwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQwNjA5MDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+NjUwZGQzOGRiMmQzNWY5N2EwMDZjNmNiNTRlNTA2NDY8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDYuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyQXlVTkxPSS9BQUFBQUFBQUFQMC9VTG9XODlIeUZyUS9zNTEyLzAwMDE0LmpwZycgaGVpZ2h0PSczNDEnIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGg2LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkF5VU5MT0kvQUFBQUFBQUFBUDAvVUxvVzg5SHlGclEvczQ4LWMvMDAwMTQuanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDAxNC5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzE4NDUzNDcyMTQyNjwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6MjY6MTMuMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNjoxMy4wOTlaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDE1LmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDMuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyQld2Y2M1SS9BQUFBQUFBQUFQOC94NHRlUGstLUx3VS9zNTEyLzAwMDE1LmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzE4NDUzNDcyMTQyNicvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzE4NDUzNDcyMTQyNicvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vNGpfb3hsSzlTQWFfZl8zOWd0RnJpdycvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcxODQ1MzQ3MjE0MjYnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3MTg0NTM0NzIxNDI2Jy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTcxODQ1MzQ3MjE0MjY8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+MTQuMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xNjAwPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xMDYzPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjEzODg4ODwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjM3NzQwMDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTQwNjU2MDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+MjU1PC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+Ni4zPC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wMTY2NjY2Njg8L2V4aWY6ZXhwb3N1cmU+CiAgICAgIDxleGlmOmZsYXNoPnRydWU8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjMyLjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz4xMjUwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQwNjU2MDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+M2FjNzY2M2QyNWE1ZjkwYzk2ZTViMzU0ZWUxZWIwNDA8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDMuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyQld2Y2M1SS9BQUFBQUFBQUFQOC94NHRlUGstLUx3VS9zNTEyLzAwMDE1LmpwZycgaGVpZ2h0PSczNDEnIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGgzLmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkJXdmNjNUkvQUFBQUFBQUFBUDgveDR0ZVBrLS1Md1UvczQ4LWMvMDAwMTUuanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDAxNS5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzE5NDQ4MTIwNzE1NDwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6MjY6MTUuMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNjoxNS4zMDNaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDE2LmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDQuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyQjd5M3gzSS9BQUFBQUFBQUFRRS91OEZCN1ZsM0Z0MC9zNTEyLzAwMDE2LmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzE5NDQ4MTIwNzE1NCcvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzE5NDQ4MTIwNzE1NCcvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vU3JtZFJqd1JCbDY0MWRDRU1nR3dsZycvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcxOTQ0ODEyMDcxNTQnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3MTk0NDgxMjA3MTU0Jy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTcxOTQ0ODEyMDcxNTQ8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+MTUuMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xNjAwPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xMDYzPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjIxNjM2OTwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjM3N2NjMDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTQwNzI2MDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+MjU3PC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+Ni4zPC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wMTY2NjY2Njg8L2V4aWY6ZXhwb3N1cmU+CiAgICAgIDxleGlmOmZsYXNoPnRydWU8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjI4LjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz4xMjUwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQwNzI2MDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+ZmMxZDI5NzE4Njc2NTc1ZjBiN2FjNzkzMmYzY2IzN2Q8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDQuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyQjd5M3gzSS9BQUFBQUFBQUFRRS91OEZCN1ZsM0Z0MC9zNTEyLzAwMDE2LmpwZycgaGVpZ2h0PSczNDEnIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkI3eTN4M0kvQUFBQUFBQUFBUUUvdThGQjdWbDNGdDAvczQ4LWMvMDAwMTYuanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDAxNi5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzIwNDk2MDkyNjE2MjwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6MjY6MTguMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNjoxOC4zNjNaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDE3LmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDMuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyQ2kxYm1kSS9BQUFBQUFBQUFRUS9vejV3X05XcDNXYy9zNTEyLzAwMDE3LmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzIwNDk2MDkyNjE2MicvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzIwNDk2MDkyNjE2MicvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vOUUwR0x6c1V0aGxVancyakxRbmwxZycvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcyMDQ5NjA5MjYxNjInLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3MjA0OTYwOTI2MTYyJy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTcyMDQ5NjA5MjYxNjI8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+MTYuMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xNjAwPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xMDYzPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjE3OTQyMjwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjM3Nzg0MDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTQwNzUzMDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+MjYwPC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+Ni4zPC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wMTY2NjY2Njg8L2V4aWY6ZXhwb3N1cmU+CiAgICAgIDxleGlmOmZsYXNoPnRydWU8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjQwLjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz4xMjUwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQwNzUzMDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+MjAzNDkxYzBkY2ZjNWVlNzM4YmU0ODg4NGI0NWE2NGE8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDMuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyQ2kxYm1kSS9BQUFBQUFBQUFRUS9vejV3X05XcDNXYy9zNTEyLzAwMDE3LmpwZycgaGVpZ2h0PSczNDEnIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGgzLmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkNpMWJtZEkvQUFBQUFBQUFBUVEvb3o1d19OV3AzV2MvczQ4LWMvMDAwMTcuanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDAxNy5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzIxNDI4OTI1ODQwMjwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6MjY6MjAuMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNjoyMC40OTZaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDE4LmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDQuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyREZsZXA2SS9BQUFBQUFBQUFRWS9UTUpDYmV3UjhvUS9zNTEyLzAwMDE4LmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzIxNDI4OTI1ODQwMicvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzIxNDI4OTI1ODQwMicvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vUTNKY2YtbnBSbVpmRjkxdjdKMWFxQScvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcyMTQyODkyNTg0MDInLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3MjE0Mjg5MjU4NDAyJy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTcyMTQyODkyNTg0MDI8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+MTcuMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xNjAwPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xMDYzPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjE5MTQ4ODwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjM3NzljMDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTQwNzY2MDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+MjYyPC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+Ni4zPC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wMTY2NjY2Njg8L2V4aWY6ZXhwb3N1cmU+CiAgICAgIDxleGlmOmZsYXNoPnRydWU8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjI0LjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz4xMjUwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQwNzY2MDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+MGQwOWE1YzM4ZWU5YTRkYjJlOWFlN2E5YWE2MTU4Nzk8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDQuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyREZsZXA2SS9BQUFBQUFBQUFRWS9UTUpDYmV3UjhvUS9zNTEyLzAwMDE4LmpwZycgaGVpZ2h0PSczNDEnIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkRGbGVwNkkvQUFBQUFBQUFBUVkvVE1KQ2Jld1I4b1EvczQ4LWMvMDAwMTguanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDAxOC5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzIyMjIwNjczMjU5NDwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6MjY6MjIuMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNjoyMi43OTlaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDE5LmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDUuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyRGpGSnVUSS9BQUFBQUFBQUFRZy9sM2RtRlRzY29vVS9zNTEyLzAwMDE5LmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzIyMjIwNjczMjU5NCcvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzIyMjIwNjczMjU5NCcvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vMVlxcXBUVjhNOW1PT3JURTVsckkzZycvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcyMjIyMDY3MzI1OTQnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3MjIyMjA2NzMyNTk0Jy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTcyMjIyMDY3MzI1OTQ8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+MTguMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xNjAwPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xMDYzPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjE5NTk1MjwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjM3ODQwMDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTQwNzg0MDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+MjY0PC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+Ni4zPC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wMTY2NjY2Njg8L2V4aWY6ZXhwb3N1cmU+CiAgICAgIDxleGlmOmZsYXNoPnRydWU8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjI5LjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz4xMjUwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQwNzg0MDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+ZWJkMWNkMmM5MTRhOGM1YzIzZDdjNDVjMjM3NTUyMzI8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDUuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyRGpGSnVUSS9BQUFBQUFBQUFRZy9sM2RtRlRzY29vVS9zNTEyLzAwMDE5LmpwZycgaGVpZ2h0PSczNDEnIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGg1LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkRqRkp1VEkvQUFBQUFBQUFBUWcvbDNkbUZUc2Nvb1UvczQ4LWMvMDAwMTkuanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDAxOS5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzIzMTc5MzE5MjIyNjwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6MjY6MjQuMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNjoyNC4yODFaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDIwLmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDUuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyRUd5dmZTSS9BQUFBQUFBQUFRby9VaGZCSVdfZ2x0dy9zNTEyLzAwMDIwLmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzIzMTc5MzE5MjIyNicvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzIzMTc5MzE5MjIyNicvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vWkZEUzlEeTdfa05qZTFqSEdmSm5JZycvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcyMzE3OTMxOTIyMjYnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3MjMxNzkzMTkyMjI2Jy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTcyMzE3OTMxOTIyMjY8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+MTkuMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xNjAwPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xMDYzPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjk3MzU5PC9ncGhvdG86c2l6ZT4KICAgIDxncGhvdG86Y2xpZW50PnBpY2FzYTwvZ3Bob3RvOmNsaWVudD4KICAgIDxncGhvdG86Y2hlY2tzdW0+Mzc4NTAwNTI8L2dwaG90bzpjaGVja3N1bT4KICAgIDxncGhvdG86dGltZXN0YW1wPjEyODM1NDA3OTEwMDA8L2dwaG90bzp0aW1lc3RhbXA+CiAgICA8Z3Bob3RvOmltYWdlVmVyc2lvbj4yNjY8L2dwaG90bzppbWFnZVZlcnNpb24+CiAgICA8Z3Bob3RvOmNvbW1lbnRDb3VudD4wPC9ncGhvdG86Y29tbWVudENvdW50PgogICAgPGdwaG90bzpsaWNlbnNlIGlkPScwJyBuYW1lPSdBbGwgUmlnaHRzIFJlc2VydmVkJyB1cmw9Jyc+QUxMX1JJR0hUU19SRVNFUlZFRDwvZ3Bob3RvOmxpY2Vuc2U+CiAgICA8ZXhpZjp0YWdzPgogICAgICA8ZXhpZjpmc3RvcD42LjM8L2V4aWY6ZnN0b3A+CiAgICAgIDxleGlmOm1ha2U+TklLT04gQ09SUE9SQVRJT048L2V4aWY6bWFrZT4KICAgICAgPGV4aWY6bW9kZWw+TklLT04gRDkwPC9leGlmOm1vZGVsPgogICAgICA8ZXhpZjpleHBvc3VyZT4wLjAxNjY2NjY2ODwvZXhpZjpleHBvc3VyZT4KICAgICAgPGV4aWY6Zmxhc2g+dHJ1ZTwvZXhpZjpmbGFzaD4KICAgICAgPGV4aWY6Zm9jYWxsZW5ndGg+MTIwLjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz4xMjUwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQwNzkxMDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+MWQ4ODg0YmVlNzUyMTg1ZjA2NWY3ZWYzMjY3MDRhNDU8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDUuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyRUd5dmZTSS9BQUFBQUFBQUFRby9VaGZCSVdfZ2x0dy9zNTEyLzAwMDIwLmpwZycgaGVpZ2h0PSczNDEnIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGg1LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkVHeXZmU0kvQUFBQUFBQUFBUW8vVWhmQklXX2dsdHcvczQ4LWMvMDAwMjAuanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDAyMC5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzI0MjAxNzk4ODM4NjwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6MjY6MjYuMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNjoyNi4wODdaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDIxLmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDUuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyRXM0aGZ5SS9BQUFBQUFBQUFRdy8zR0lMcWVYWlYzYy9zNTEyLzAwMDIxLmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzI0MjAxNzk4ODM4NicvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzI0MjAxNzk4ODM4NicvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vMlByVWZEVzBXQzdQTWFCblNIcy1TZycvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcyNDIwMTc5ODgzODYnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3MjQyMDE3OTg4Mzg2Jy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTcyNDIwMTc5ODgzODY8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+MjAuMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xNjAwPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xMDYzPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjEwNjE3ODwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjM3OGE4MDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTQwODY4MDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+MjY4PC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+Ni4zPC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wMTY2NjY2Njg8L2V4aWY6ZXhwb3N1cmU+CiAgICAgIDxleGlmOmZsYXNoPnRydWU8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjQ4LjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz4xMjUwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQwODY4MDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+MDViODQxYzg3MDAzMWYxMTliZDcwZmNiODllY2EzMjA8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDUuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyRXM0aGZ5SS9BQUFBQUFBQUFRdy8zR0lMcWVYWlYzYy9zNTEyLzAwMDIxLmpwZycgaGVpZ2h0PSczNDEnIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGg1LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkVzNGhmeUkvQUFBQUFBQUFBUXcvM0dJTHFlWFpWM2MvczQ4LWMvMDAwMjEuanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDAyMS5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzI1MDc2ODE1MzM0NjwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6MjY6MjguMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNjoyOC4xNDRaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDIyLmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDQuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyRk5ldWF3SS9BQUFBQUFBQUFRNC9sY18yWmwtSS1iTS9zNTEyLzAwMDIyLmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzI1MDc2ODE1MzM0NicvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzI1MDc2ODE1MzM0NicvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vMno5bEYtY2JEYTFmcTg0SnZZRlVWZycvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcyNTA3NjgxNTMzNDYnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3MjUwNzY4MTUzMzQ2Jy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTcyNTA3NjgxNTMzNDY8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+MjEuMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xMDc4PC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xNjAwPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjE1NjMwNTwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjQwNTc2MDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTQwOTQxMDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+MjcwPC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+Ni4zPC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wMTY2NjY2Njg8L2V4aWY6ZXhwb3N1cmU+CiAgICAgIDxleGlmOmZsYXNoPnRydWU8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjI2LjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz4xMjUwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQwOTQxMDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+YWNhYTVhMzUzOGVhMTc4NGUyNDcxNWZlYjYwOWVkNmY8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDQuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyRk5ldWF3SS9BQUFBQUFBQUFRNC9sY18yWmwtSS1iTS9zNTEyLzAwMDIyLmpwZycgaGVpZ2h0PSc1MTInIHdpZHRoPSczNDUnIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkZOZXVhd0kvQUFBQUFBQUFBUTQvbGNfMlpsLUktYk0vczQ4LWMvMDAwMjIuanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDAyMi5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzI1NzQxNTUwNzA5MDwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6MjY6MzAuMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNjozMC40MjRaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDIzLmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDQuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyRm1Qa19KSS9BQUFBQUFBQUFSQS91TDg0OHdCeEd6QS9zNTEyLzAwMDIzLmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzI1NzQxNTUwNzA5MCcvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzI1NzQxNTUwNzA5MCcvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vdEpWczRvZDVJTHdoLXNCeEtyb2RndycvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcyNTc0MTU1MDcwOTAnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3MjU3NDE1NTA3MDkwJy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTcyNTc0MTU1MDcwOTA8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+MjIuMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xMDAwPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xNjAwPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjE4NTM4OTwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjQwNTUyMDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTQwOTQ4MDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+MjcyPC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+Ni4zPC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wMTY2NjY2Njg8L2V4aWY6ZXhwb3N1cmU+CiAgICAgIDxleGlmOmZsYXNoPnRydWU8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjE4LjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz4xMjUwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQwOTQ4MDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+MzU1NzE5YzRiZTExYjQ3OGQzMjBkZGUwNGYwNmIyMjI8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDQuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyRm1Qa19KSS9BQUFBQUFBQUFSQS91TDg0OHdCeEd6QS9zNTEyLzAwMDIzLmpwZycgaGVpZ2h0PSc1MTInIHdpZHRoPSczMjAnIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkZtUGtfSkkvQUFBQUFBQUFBUkEvdUw4NDh3QnhHekEvczQ4LWMvMDAwMjMuanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDAyMy5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzI2NzM3Mjk5NzkzODwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6MjY6MzIuMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNjozMi41MzBaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDI0LmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDYuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyR0xWb1BUSS9BQUFBQUFBQUFSSS8wSVZPOWJOcF9DYy9zNTEyLzAwMDI0LmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzI2NzM3Mjk5NzkzOCcvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzI2NzM3Mjk5NzkzOCcvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vMUZxSHljMFJxcGtwX1lmTW5Xc0UtZycvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcyNjczNzI5OTc5MzgnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3MjY3MzcyOTk3OTM4Jy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTcyNjczNzI5OTc5Mzg8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+MjMuMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xNjAwPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xMTI5PC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjE2NTQwMTwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjQwNTAyMDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTQwOTcxMDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+Mjc0PC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+Ni4zPC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wMTY2NjY2Njg8L2V4aWY6ZXhwb3N1cmU+CiAgICAgIDxleGlmOmZsYXNoPnRydWU8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjI3LjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz4xMjUwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQwOTcxMDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+NzNkMWYxNTk4MTFmNjBjY2NiZTQ3NzU1Yzc0ZWUxNDU8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDYuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyR0xWb1BUSS9BQUFBQUFBQUFSSS8wSVZPOWJOcF9DYy9zNTEyLzAwMDI0LmpwZycgaGVpZ2h0PSczNjInIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGg2LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkdMVm9QVEkvQUFBQUFBQUFBUkkvMElWTzliTnBfQ2MvczQ4LWMvMDAwMjQuanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDAyNC5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzI3ODY2NTM5MDgwMjwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6MjY6MzUuMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNjozNS42ODRaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDI1LmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDUuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyRzFaOGV0SS9BQUFBQUFBQUFSUS9kVndLblJyQXQ4MC9zNTEyLzAwMDI1LmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzI3ODY2NTM5MDgwMicvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzI3ODY2NTM5MDgwMicvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vMVdpZGlxZ0pGcEhRT0c5cUFGMER0QScvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcyNzg2NjUzOTA4MDInLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3Mjc4NjY1MzkwODAyJy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTcyNzg2NjUzOTA4MDI8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+MjQuMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xNDczPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xNjAwPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjIyNDU3NzwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjQwNWVlMDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTQxMDM5MDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+Mjc2PC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+Ni4zPC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wMTY2NjY2Njg8L2V4aWY6ZXhwb3N1cmU+CiAgICAgIDxleGlmOmZsYXNoPnRydWU8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjkwLjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz4xMjUwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQxMDM5MDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+ODA4NDg1ZWNlN2QwZjJjOTJkZThiMjI0OTBkZTc3NGY8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDUuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyRzFaOGV0SS9BQUFBQUFBQUFSUS9kVndLblJyQXQ4MC9zNTEyLzAwMDI1LmpwZycgaGVpZ2h0PSc1MTInIHdpZHRoPSc0NzInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGg1LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkcxWjhldEkvQUFBQUFBQUFBUlEvZFZ3S25SckF0ODAvczQ4LWMvMDAwMjUuanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDAyNS5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzI5MTY0Mjk2NTc0NjwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6MjY6MzguMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNjozOC4zODFaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDI2LmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDYuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYySGx3Q2p2SS9BQUFBQUFBQUFSWS83blhub0RMOTdfMC9zNTEyLzAwMDI2LmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzI5MTY0Mjk2NTc0NicvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzI5MTY0Mjk2NTc0NicvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vTkRxSlVWUUxxYXNWbEQ1TTVLUGJ1QScvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcyOTE2NDI5NjU3NDYnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3MjkxNjQyOTY1NzQ2Jy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTcyOTE2NDI5NjU3NDY8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+MjUuMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xNjAwPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xMDYzPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjE0OTU2MzwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjM3YTMwMDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTQxMDY0MDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+Mjc4PC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+Ni4zPC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wMTY2NjY2Njg8L2V4aWY6ZXhwb3N1cmU+CiAgICAgIDxleGlmOmZsYXNoPnRydWU8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjI5LjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz4xMjUwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQxMDY0MDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+MmVhM2UxNjA4ZmE2MGE3MDVjMjJiMWMwYjE2MDUxZTU8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDYuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYySGx3Q2p2SS9BQUFBQUFBQUFSWS83blhub0RMOTdfMC9zNTEyLzAwMDI2LmpwZycgaGVpZ2h0PSczNDEnIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGg2LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkhsd0NqdkkvQUFBQUFBQUFBUlkvN25Ybm9ETDk3XzAvczQ4LWMvMDAwMjYuanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDAyNi5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzI5NzQ5NTAzOTQxMDwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6MjY6MzkuMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNjozOS45NzlaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDI3LmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDMuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYySDdqU0hiSS9BQUFBQUFBQUFSZy9qOWY3Z19KNW1lUS9zNTEyLzAwMDI3LmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzI5NzQ5NTAzOTQxMCcvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzI5NzQ5NTAzOTQxMCcvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8veGRlc0pTb1h0c0xwa3YtYUJMb21KUScvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTcyOTc0OTUwMzk0MTAnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3Mjk3NDk1MDM5NDEwJy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTcyOTc0OTUwMzk0MTA8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+MjYuMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xNjAwPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xMDYzPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjExNzI5NTwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjM3YWFjMDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTQxMTI1MDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+MjgwPC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+Ni4zPC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wMTY2NjY2Njg8L2V4aWY6ZXhwb3N1cmU+CiAgICAgIDxleGlmOmZsYXNoPnRydWU8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjc1LjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz4xMjUwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQxMTI1MDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+ODQ2NDkwYzI0NDJlNjI3NmYwOWFjYmJlODcxNTA5OGE8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDMuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYySDdqU0hiSS9BQUFBQUFBQUFSZy9qOWY3Z19KNW1lUS9zNTEyLzAwMDI3LmpwZycgaGVpZ2h0PSczNDEnIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGgzLmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkg3alNIYkkvQUFBQUFBQUFBUmcvajlmN2dfSjVtZVEvczQ4LWMvMDAwMjcuanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDAyNy5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzMwODQ5MDgzMDI3NDwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6MjY6NDIuMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNjo0Mi4zNTRaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDI4LmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDQuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYySWtnNGtjSS9BQUFBQUFBQUFSby9ZNTlYcDhkYk1hby9zNTEyLzAwMDI4LmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzMwODQ5MDgzMDI3NCcvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzMwODQ5MDgzMDI3NCcvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vN3dGc1Z1b2pSX1VwbEh3T19fRk04dycvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTczMDg0OTA4MzAyNzQnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3MzA4NDkwODMwMjc0Jy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTczMDg0OTA4MzAyNzQ8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+MjcuMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xNjAwPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xMDYzPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjIwMzY0ODwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjM3YTg4MDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTQxMTM5MDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+MjgyPC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+Ni4zPC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wMTY2NjY2Njg8L2V4aWY6ZXhwb3N1cmU+CiAgICAgIDxleGlmOmZsYXNoPnRydWU8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjE4LjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz4xMjUwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQxMTM5MDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+YmQ5MGI4MTg3OTI4NGNkZjhkMzRkMTc1YzFhYjk4NDU8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDQuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYySWtnNGtjSS9BQUFBQUFBQUFSby9ZNTlYcDhkYk1hby9zNTEyLzAwMDI4LmpwZycgaGVpZ2h0PSczNDEnIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMklrZzRrY0kvQUFBQUFBQUFBUm8vWTU5WHA4ZGJNYW8vczQ4LWMvMDAwMjguanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDAyOC5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzMxODkwMzA1NTQ5MDwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6MjY6NDQuMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNjo0NC4yNDhaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDI5LmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDQuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYySkxUV2hJSS9BQUFBQUFBQUFSdy9sVnlPaHR4WlF0SS9zNTEyLzAwMDI5LmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzMxODkwMzA1NTQ5MCcvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzMxODkwMzA1NTQ5MCcvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vWDhUc21fSzlwcnBPWlh0c3RaLWZjdycvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTczMTg5MDMwNTU0OTAnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3MzE4OTAzMDU1NDkwJy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTczMTg5MDMwNTU0OTA8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+MjguMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xNjAwPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xMDYzPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjE2MTk4MDwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjM3YjYwMDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTQxMTUxMDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+Mjg0PC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+Ni4zPC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wMTY2NjY2Njg8L2V4aWY6ZXhwb3N1cmU+CiAgICAgIDxleGlmOmZsYXNoPnRydWU8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjEwNS4wPC9leGlmOmZvY2FsbGVuZ3RoPgogICAgICA8ZXhpZjppc28+MTI1MDwvZXhpZjppc28+CiAgICAgIDxleGlmOnRpbWU+MTI4MzU0MTE1MTAwMDwvZXhpZjp0aW1lPgogICAgICA8ZXhpZjppbWFnZVVuaXF1ZUlEPjk4NzdmMWIwMzk1MjI4MTYxNmY2MThkZjdmMzFhMjYxPC9leGlmOmltYWdlVW5pcXVlSUQ+CiAgICA8L2V4aWY6dGFncz4KICAgIDxtZWRpYTpncm91cD4KICAgICAgPG1lZGlhOmNvbnRlbnQgdXJsPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkpMVFdoSUkvQUFBQUFBQUFBUncvbFZ5T2h0eFpRdEkvczUxMi8wMDAyOS5qcGcnIGhlaWdodD0nMzQxJyB3aWR0aD0nNTEyJyB0eXBlPSdpbWFnZS9qcGVnJyBtZWRpdW09J2ltYWdlJy8+CiAgICAgIDxtZWRpYTpjcmVkaXQ+SGVsc2luZ8O4ciBHeW1uYXNpdW1zIEJpbGxlZGFya2l2PC9tZWRpYTpjcmVkaXQ+CiAgICAgIDxtZWRpYTpkZXNjcmlwdGlvbiB0eXBlPSdwbGFpbicvPgogICAgICA8bWVkaWE6a2V5d29yZHMvPgogICAgICA8bWVkaWE6dGh1bWJuYWlsIHVybD0naHR0cDovL2xoNC5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjJKTFRXaElJL0FBQUFBQUFBQVJ3L2xWeU9odHhaUXRJL3M0OC1jLzAwMDI5LmpwZycgaGVpZ2h0PSc0OCcgd2lkdGg9JzQ4Jy8+CiAgICAgIDxtZWRpYTp0aXRsZSB0eXBlPSdwbGFpbic+MDAwMjkuanBnPC9tZWRpYTp0aXRsZT4KICAgIDwvbWVkaWE6Z3JvdXA+CiAgPC9lbnRyeT4KICA8ZW50cnk+CiAgICA8aWQ+aHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTczMjEyMjU4NTYzNTQ8L2lkPgogICAgPHB1Ymxpc2hlZD4yMDEwLTA5LTAzVDIyOjI2OjQ1LjAwMFo8L3B1Ymxpc2hlZD4KICAgIDx1cGRhdGVkPjIwMTAtMDktMDNUMjI6MjY6NDUuOTM0WjwvdXBkYXRlZD4KICAgIDxjYXRlZ29yeSBzY2hlbWU9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2tpbmQnIHRlcm09J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcGhvdG8nLz4KICAgIDx0aXRsZSB0eXBlPSd0ZXh0Jz4wMDAzMC5qcGc8L3RpdGxlPgogICAgPHN1bW1hcnkgdHlwZT0ndGV4dCcvPgogICAgPGNvbnRlbnQgdHlwZT0naW1hZ2UvanBlZycgc3JjPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkpUOUpwV0kvQUFBQUFBQUFBUjQvYkJvZ3lMempRbVEvczUxMi8wMDAzMC5qcGcnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUjZmVlZCcgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTczMjEyMjU4NTYzNTQnLz4KICAgIDxsaW5rIHJlbD0nYWx0ZXJuYXRlJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvWEZlc3QyMDEwIzU1MTI4MTczMjEyMjU4NTYzNTQnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNjYW5vbmljYWwnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3Bob3RvL2JHZm1UbGpVSXhiTlFzdDZoTU9LMncnLz4KICAgIDxsaW5rIHJlbD0nc2VsZicgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3MzIxMjI1ODU2MzU0Jy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcmVwb3J0JyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9yZXBvcnRBYnVzZT91bmFtZT0xMTM5NDcyMzU1MzgyNDcxMTEwMDcmYW1wO2FpZD01NTEyODE3MDM5MjA1MTIzNzc3JmFtcDtpaWQ9NTUxMjgxNzMyMTIyNTg1NjM1NCcvPgogICAgPGdwaG90bzppZD41NTEyODE3MzIxMjI1ODU2MzU0PC9ncGhvdG86aWQ+CiAgICA8Z3Bob3RvOnZlcnNpb24+MTwvZ3Bob3RvOnZlcnNpb24+CiAgICA8Z3Bob3RvOnBvc2l0aW9uPjI5LjA8L2dwaG90bzpwb3NpdGlvbj4KICAgIDxncGhvdG86YWxidW1pZD41NTEyODE3MDM5MjA1MTIzNzc3PC9ncGhvdG86YWxidW1pZD4KICAgIDxncGhvdG86YWNjZXNzPnB1YmxpYzwvZ3Bob3RvOmFjY2Vzcz4KICAgIDxncGhvdG86d2lkdGg+MTYwMDwvZ3Bob3RvOndpZHRoPgogICAgPGdwaG90bzpoZWlnaHQ+MTA2MzwvZ3Bob3RvOmhlaWdodD4KICAgIDxncGhvdG86c2l6ZT4xNDI2NDM8L2dwaG90bzpzaXplPgogICAgPGdwaG90bzpjbGllbnQ+cGljYXNhPC9ncGhvdG86Y2xpZW50PgogICAgPGdwaG90bzpjaGVja3N1bT4zN2I2YzA1MjwvZ3Bob3RvOmNoZWNrc3VtPgogICAgPGdwaG90bzp0aW1lc3RhbXA+MTI4MzU0MTE1NzAwMDwvZ3Bob3RvOnRpbWVzdGFtcD4KICAgIDxncGhvdG86aW1hZ2VWZXJzaW9uPjI4NjwvZ3Bob3RvOmltYWdlVmVyc2lvbj4KICAgIDxncGhvdG86Y29tbWVudENvdW50PjA8L2dwaG90bzpjb21tZW50Q291bnQ+CiAgICA8Z3Bob3RvOmxpY2Vuc2UgaWQ9JzAnIG5hbWU9J0FsbCBSaWdodHMgUmVzZXJ2ZWQnIHVybD0nJz5BTExfUklHSFRTX1JFU0VSVkVEPC9ncGhvdG86bGljZW5zZT4KICAgIDxleGlmOnRhZ3M+CiAgICAgIDxleGlmOmZzdG9wPjYuMzwvZXhpZjpmc3RvcD4KICAgICAgPGV4aWY6bWFrZT5OSUtPTiBDT1JQT1JBVElPTjwvZXhpZjptYWtlPgogICAgICA8ZXhpZjptb2RlbD5OSUtPTiBEOTA8L2V4aWY6bW9kZWw+CiAgICAgIDxleGlmOmV4cG9zdXJlPjAuMDE2NjY2NjY4PC9leGlmOmV4cG9zdXJlPgogICAgICA8ZXhpZjpmbGFzaD50cnVlPC9leGlmOmZsYXNoPgogICAgICA8ZXhpZjpmb2NhbGxlbmd0aD45MC4wPC9leGlmOmZvY2FsbGVuZ3RoPgogICAgICA8ZXhpZjppc28+MTI1MDwvZXhpZjppc28+CiAgICAgIDxleGlmOnRpbWU+MTI4MzU0MTE1NzAwMDwvZXhpZjp0aW1lPgogICAgICA8ZXhpZjppbWFnZVVuaXF1ZUlEPjA3ZGNkMGRhMDc5ODAwNWJkZmE1MGNhMGZkOTk1N2M1PC9leGlmOmltYWdlVW5pcXVlSUQ+CiAgICA8L2V4aWY6dGFncz4KICAgIDxtZWRpYTpncm91cD4KICAgICAgPG1lZGlhOmNvbnRlbnQgdXJsPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkpUOUpwV0kvQUFBQUFBQUFBUjQvYkJvZ3lMempRbVEvczUxMi8wMDAzMC5qcGcnIGhlaWdodD0nMzQxJyB3aWR0aD0nNTEyJyB0eXBlPSdpbWFnZS9qcGVnJyBtZWRpdW09J2ltYWdlJy8+CiAgICAgIDxtZWRpYTpjcmVkaXQ+SGVsc2luZ8O4ciBHeW1uYXNpdW1zIEJpbGxlZGFya2l2PC9tZWRpYTpjcmVkaXQ+CiAgICAgIDxtZWRpYTpkZXNjcmlwdGlvbiB0eXBlPSdwbGFpbicvPgogICAgICA8bWVkaWE6a2V5d29yZHMvPgogICAgICA8bWVkaWE6dGh1bWJuYWlsIHVybD0naHR0cDovL2xoNC5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjJKVDlKcFdJL0FBQUFBQUFBQVI0L2JCb2d5THpqUW1RL3M0OC1jLzAwMDMwLmpwZycgaGVpZ2h0PSc0OCcgd2lkdGg9JzQ4Jy8+CiAgICAgIDxtZWRpYTp0aXRsZSB0eXBlPSdwbGFpbic+MDAwMzAuanBnPC9tZWRpYTp0aXRsZT4KICAgIDwvbWVkaWE6Z3JvdXA+CiAgPC9lbnRyeT4KICA8ZW50cnk+CiAgICA8aWQ+aHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTczMzI1NDUzNDc5NzA8L2lkPgogICAgPHB1Ymxpc2hlZD4yMDEwLTA5LTAzVDIyOjI2OjQ3LjAwMFo8L3B1Ymxpc2hlZD4KICAgIDx1cGRhdGVkPjIwMTAtMDktMDNUMjI6MjY6NDcuODU0WjwvdXBkYXRlZD4KICAgIDxjYXRlZ29yeSBzY2hlbWU9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2tpbmQnIHRlcm09J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcGhvdG8nLz4KICAgIDx0aXRsZSB0eXBlPSd0ZXh0Jz4wMDAzMS5qcGc8L3RpdGxlPgogICAgPHN1bW1hcnkgdHlwZT0ndGV4dCcvPgogICAgPGNvbnRlbnQgdHlwZT0naW1hZ2UvanBlZycgc3JjPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkotSDdZWUkvQUFBQUFBQUFBU0EvOE5kVWtaZEhpNVEvczUxMi8wMDAzMS5qcGcnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUjZmVlZCcgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTczMzI1NDUzNDc5NzAnLz4KICAgIDxsaW5rIHJlbD0nYWx0ZXJuYXRlJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvWEZlc3QyMDEwIzU1MTI4MTczMzI1NDUzNDc5NzAnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNjYW5vbmljYWwnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3Bob3RvL3dlWS1BYXBqdXlXQjVCczgzcnUzcUEnLz4KICAgIDxsaW5rIHJlbD0nc2VsZicgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3MzMyNTQ1MzQ3OTcwJy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcmVwb3J0JyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9yZXBvcnRBYnVzZT91bmFtZT0xMTM5NDcyMzU1MzgyNDcxMTEwMDcmYW1wO2FpZD01NTEyODE3MDM5MjA1MTIzNzc3JmFtcDtpaWQ9NTUxMjgxNzMzMjU0NTM0Nzk3MCcvPgogICAgPGdwaG90bzppZD41NTEyODE3MzMyNTQ1MzQ3OTcwPC9ncGhvdG86aWQ+CiAgICA8Z3Bob3RvOnZlcnNpb24+MTwvZ3Bob3RvOnZlcnNpb24+CiAgICA8Z3Bob3RvOnBvc2l0aW9uPjMwLjA8L2dwaG90bzpwb3NpdGlvbj4KICAgIDxncGhvdG86YWxidW1pZD41NTEyODE3MDM5MjA1MTIzNzc3PC9ncGhvdG86YWxidW1pZD4KICAgIDxncGhvdG86YWNjZXNzPnB1YmxpYzwvZ3Bob3RvOmFjY2Vzcz4KICAgIDxncGhvdG86d2lkdGg+MTYwMDwvZ3Bob3RvOndpZHRoPgogICAgPGdwaG90bzpoZWlnaHQ+MTA2MzwvZ3Bob3RvOmhlaWdodD4KICAgIDxncGhvdG86c2l6ZT4xNzM1OTQ8L2dwaG90bzpzaXplPgogICAgPGdwaG90bzpjbGllbnQ+cGljYXNhPC9ncGhvdG86Y2xpZW50PgogICAgPGdwaG90bzpjaGVja3N1bT4zN2I3YzA1MjwvZ3Bob3RvOmNoZWNrc3VtPgogICAgPGdwaG90bzp0aW1lc3RhbXA+MTI4MzU0MTE2NTAwMDwvZ3Bob3RvOnRpbWVzdGFtcD4KICAgIDxncGhvdG86aW1hZ2VWZXJzaW9uPjI4ODwvZ3Bob3RvOmltYWdlVmVyc2lvbj4KICAgIDxncGhvdG86Y29tbWVudENvdW50PjA8L2dwaG90bzpjb21tZW50Q291bnQ+CiAgICA8Z3Bob3RvOmxpY2Vuc2UgaWQ9JzAnIG5hbWU9J0FsbCBSaWdodHMgUmVzZXJ2ZWQnIHVybD0nJz5BTExfUklHSFRTX1JFU0VSVkVEPC9ncGhvdG86bGljZW5zZT4KICAgIDxleGlmOnRhZ3M+CiAgICAgIDxleGlmOmZzdG9wPjYuMzwvZXhpZjpmc3RvcD4KICAgICAgPGV4aWY6bWFrZT5OSUtPTiBDT1JQT1JBVElPTjwvZXhpZjptYWtlPgogICAgICA8ZXhpZjptb2RlbD5OSUtPTiBEOTA8L2V4aWY6bW9kZWw+CiAgICAgIDxleGlmOmV4cG9zdXJlPjAuMDE2NjY2NjY4PC9leGlmOmV4cG9zdXJlPgogICAgICA8ZXhpZjpmbGFzaD50cnVlPC9leGlmOmZsYXNoPgogICAgICA8ZXhpZjpmb2NhbGxlbmd0aD40Ni4wPC9leGlmOmZvY2FsbGVuZ3RoPgogICAgICA8ZXhpZjppc28+MTI1MDwvZXhpZjppc28+CiAgICAgIDxleGlmOnRpbWU+MTI4MzU0MTE2NTAwMDwvZXhpZjp0aW1lPgogICAgICA8ZXhpZjppbWFnZVVuaXF1ZUlEPmE2ZGEwNGZmNDliMmFhZmEwZThhYTczYzYyMTVhMmI2PC9leGlmOmltYWdlVW5pcXVlSUQ+CiAgICA8L2V4aWY6dGFncz4KICAgIDxtZWRpYTpncm91cD4KICAgICAgPG1lZGlhOmNvbnRlbnQgdXJsPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkotSDdZWUkvQUFBQUFBQUFBU0EvOE5kVWtaZEhpNVEvczUxMi8wMDAzMS5qcGcnIGhlaWdodD0nMzQxJyB3aWR0aD0nNTEyJyB0eXBlPSdpbWFnZS9qcGVnJyBtZWRpdW09J2ltYWdlJy8+CiAgICAgIDxtZWRpYTpjcmVkaXQ+SGVsc2luZ8O4ciBHeW1uYXNpdW1zIEJpbGxlZGFya2l2PC9tZWRpYTpjcmVkaXQ+CiAgICAgIDxtZWRpYTpkZXNjcmlwdGlvbiB0eXBlPSdwbGFpbicvPgogICAgICA8bWVkaWE6a2V5d29yZHMvPgogICAgICA8bWVkaWE6dGh1bWJuYWlsIHVybD0naHR0cDovL2xoNC5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjJKLUg3WVlJL0FBQUFBQUFBQVNBLzhOZFVrWmRIaTVRL3M0OC1jLzAwMDMxLmpwZycgaGVpZ2h0PSc0OCcgd2lkdGg9JzQ4Jy8+CiAgICAgIDxtZWRpYTp0aXRsZSB0eXBlPSdwbGFpbic+MDAwMzEuanBnPC9tZWRpYTp0aXRsZT4KICAgIDwvbWVkaWE6Z3JvdXA+CiAgPC9lbnRyeT4KICA8ZW50cnk+CiAgICA8aWQ+aHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTczNDMzNTU3MDY1Nzg8L2lkPgogICAgPHB1Ymxpc2hlZD4yMDEwLTA5LTAzVDIyOjI2OjUwLjAwMFo8L3B1Ymxpc2hlZD4KICAgIDx1cGRhdGVkPjIwMTAtMDktMDNUMjI6MjY6NTAuMjQwWjwvdXBkYXRlZD4KICAgIDxjYXRlZ29yeSBzY2hlbWU9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2tpbmQnIHRlcm09J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcGhvdG8nLz4KICAgIDx0aXRsZSB0eXBlPSd0ZXh0Jz4wMDAzMi5qcGc8L3RpdGxlPgogICAgPHN1bW1hcnkgdHlwZT0ndGV4dCcvPgogICAgPGNvbnRlbnQgdHlwZT0naW1hZ2UvanBlZycgc3JjPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkttWlVYTkkvQUFBQUFBQUFBU0kvOXU5VkozYkV3d00vczUxMi8wMDAzMi5qcGcnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUjZmVlZCcgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTczNDMzNTU3MDY1NzgnLz4KICAgIDxsaW5rIHJlbD0nYWx0ZXJuYXRlJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvWEZlc3QyMDEwIzU1MTI4MTczNDMzNTU3MDY1NzgnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNjYW5vbmljYWwnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3Bob3RvLzlhSV80TWZBclJ6Y0tKTHYwVklnRWcnLz4KICAgIDxsaW5rIHJlbD0nc2VsZicgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3MzQzMzU1NzA2NTc4Jy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcmVwb3J0JyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9yZXBvcnRBYnVzZT91bmFtZT0xMTM5NDcyMzU1MzgyNDcxMTEwMDcmYW1wO2FpZD01NTEyODE3MDM5MjA1MTIzNzc3JmFtcDtpaWQ9NTUxMjgxNzM0MzM1NTcwNjU3OCcvPgogICAgPGdwaG90bzppZD41NTEyODE3MzQzMzU1NzA2NTc4PC9ncGhvdG86aWQ+CiAgICA8Z3Bob3RvOnZlcnNpb24+MTwvZ3Bob3RvOnZlcnNpb24+CiAgICA8Z3Bob3RvOnBvc2l0aW9uPjMxLjA8L2dwaG90bzpwb3NpdGlvbj4KICAgIDxncGhvdG86YWxidW1pZD41NTEyODE3MDM5MjA1MTIzNzc3PC9ncGhvdG86YWxidW1pZD4KICAgIDxncGhvdG86YWNjZXNzPnB1YmxpYzwvZ3Bob3RvOmFjY2Vzcz4KICAgIDxncGhvdG86d2lkdGg+MTYwMDwvZ3Bob3RvOndpZHRoPgogICAgPGdwaG90bzpoZWlnaHQ+MTA2MzwvZ3Bob3RvOmhlaWdodD4KICAgIDxncGhvdG86c2l6ZT4yMjMzMTM8L2dwaG90bzpzaXplPgogICAgPGdwaG90bzpjbGllbnQ+cGljYXNhPC9ncGhvdG86Y2xpZW50PgogICAgPGdwaG90bzpjaGVja3N1bT4zN2IyNDA1MjwvZ3Bob3RvOmNoZWNrc3VtPgogICAgPGdwaG90bzp0aW1lc3RhbXA+MTI4MzU0MTE4NjAwMDwvZ3Bob3RvOnRpbWVzdGFtcD4KICAgIDxncGhvdG86aW1hZ2VWZXJzaW9uPjI5MDwvZ3Bob3RvOmltYWdlVmVyc2lvbj4KICAgIDxncGhvdG86Y29tbWVudENvdW50PjA8L2dwaG90bzpjb21tZW50Q291bnQ+CiAgICA8Z3Bob3RvOmxpY2Vuc2UgaWQ9JzAnIG5hbWU9J0FsbCBSaWdodHMgUmVzZXJ2ZWQnIHVybD0nJz5BTExfUklHSFRTX1JFU0VSVkVEPC9ncGhvdG86bGljZW5zZT4KICAgIDxleGlmOnRhZ3M+CiAgICAgIDxleGlmOmZzdG9wPjYuMzwvZXhpZjpmc3RvcD4KICAgICAgPGV4aWY6bWFrZT5OSUtPTiBDT1JQT1JBVElPTjwvZXhpZjptYWtlPgogICAgICA8ZXhpZjptb2RlbD5OSUtPTiBEOTA8L2V4aWY6bW9kZWw+CiAgICAgIDxleGlmOmV4cG9zdXJlPjAuMDE2NjY2NjY4PC9leGlmOmV4cG9zdXJlPgogICAgICA8ZXhpZjpmbGFzaD50cnVlPC9leGlmOmZsYXNoPgogICAgICA8ZXhpZjpmb2NhbGxlbmd0aD4yNC4wPC9leGlmOmZvY2FsbGVuZ3RoPgogICAgICA8ZXhpZjppc28+MTI1MDwvZXhpZjppc28+CiAgICAgIDxleGlmOnRpbWU+MTI4MzU0MTE4NjAwMDwvZXhpZjp0aW1lPgogICAgICA8ZXhpZjppbWFnZVVuaXF1ZUlEPjI2ZTA0ODk3Nzc1MmNhODg1MDU2MTEwMDUyYjU0MmFiPC9leGlmOmltYWdlVW5pcXVlSUQ+CiAgICA8L2V4aWY6dGFncz4KICAgIDxtZWRpYTpncm91cD4KICAgICAgPG1lZGlhOmNvbnRlbnQgdXJsPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkttWlVYTkkvQUFBQUFBQUFBU0kvOXU5VkozYkV3d00vczUxMi8wMDAzMi5qcGcnIGhlaWdodD0nMzQxJyB3aWR0aD0nNTEyJyB0eXBlPSdpbWFnZS9qcGVnJyBtZWRpdW09J2ltYWdlJy8+CiAgICAgIDxtZWRpYTpjcmVkaXQ+SGVsc2luZ8O4ciBHeW1uYXNpdW1zIEJpbGxlZGFya2l2PC9tZWRpYTpjcmVkaXQ+CiAgICAgIDxtZWRpYTpkZXNjcmlwdGlvbiB0eXBlPSdwbGFpbicvPgogICAgICA8bWVkaWE6a2V5d29yZHMvPgogICAgICA8bWVkaWE6dGh1bWJuYWlsIHVybD0naHR0cDovL2xoNC5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjJLbVpVWE5JL0FBQUFBQUFBQVNJLzl1OVZKM2JFd3dNL3M0OC1jLzAwMDMyLmpwZycgaGVpZ2h0PSc0OCcgd2lkdGg9JzQ4Jy8+CiAgICAgIDxtZWRpYTp0aXRsZSB0eXBlPSdwbGFpbic+MDAwMzIuanBnPC9tZWRpYTp0aXRsZT4KICAgIDwvbWVkaWE6Z3JvdXA+CiAgPC9lbnRyeT4KICA8ZW50cnk+CiAgICA8aWQ+aHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTczNTEwMjk5MTQyOTA8L2lkPgogICAgPHB1Ymxpc2hlZD4yMDEwLTA5LTAzVDIyOjI2OjUyLjAwMFo8L3B1Ymxpc2hlZD4KICAgIDx1cGRhdGVkPjIwMTAtMDktMDNUMjI6MjY6NTIuNjc5WjwvdXBkYXRlZD4KICAgIDxjYXRlZ29yeSBzY2hlbWU9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2tpbmQnIHRlcm09J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcGhvdG8nLz4KICAgIDx0aXRsZSB0eXBlPSd0ZXh0Jz4wMDAzMy5qcGc8L3RpdGxlPgogICAgPHN1bW1hcnkgdHlwZT0ndGV4dCcvPgogICAgPGNvbnRlbnQgdHlwZT0naW1hZ2UvanBlZycgc3JjPSdodHRwOi8vbGg1LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkxDLV9lckkvQUFBQUFBQUFBU1EvTy0xNExBeVQyVlEvczUxMi8wMDAzMy5qcGcnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUjZmVlZCcgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTczNTEwMjk5MTQyOTAnLz4KICAgIDxsaW5rIHJlbD0nYWx0ZXJuYXRlJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvWEZlc3QyMDEwIzU1MTI4MTczNTEwMjk5MTQyOTAnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNjYW5vbmljYWwnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3Bob3RvLzZ3eTFua3haV0ZiTWE4OWdjdjdBT1EnLz4KICAgIDxsaW5rIHJlbD0nc2VsZicgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3MzUxMDI5OTE0MjkwJy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcmVwb3J0JyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9yZXBvcnRBYnVzZT91bmFtZT0xMTM5NDcyMzU1MzgyNDcxMTEwMDcmYW1wO2FpZD01NTEyODE3MDM5MjA1MTIzNzc3JmFtcDtpaWQ9NTUxMjgxNzM1MTAyOTkxNDI5MCcvPgogICAgPGdwaG90bzppZD41NTEyODE3MzUxMDI5OTE0MjkwPC9ncGhvdG86aWQ+CiAgICA8Z3Bob3RvOnZlcnNpb24+MTwvZ3Bob3RvOnZlcnNpb24+CiAgICA8Z3Bob3RvOnBvc2l0aW9uPjMyLjA8L2dwaG90bzpwb3NpdGlvbj4KICAgIDxncGhvdG86YWxidW1pZD41NTEyODE3MDM5MjA1MTIzNzc3PC9ncGhvdG86YWxidW1pZD4KICAgIDxncGhvdG86YWNjZXNzPnB1YmxpYzwvZ3Bob3RvOmFjY2Vzcz4KICAgIDxncGhvdG86d2lkdGg+MTYwMDwvZ3Bob3RvOndpZHRoPgogICAgPGdwaG90bzpoZWlnaHQ+MTIwODwvZ3Bob3RvOmhlaWdodD4KICAgIDxncGhvdG86c2l6ZT4xOTk5ODc8L2dwaG90bzpzaXplPgogICAgPGdwaG90bzpjbGllbnQ+cGljYXNhPC9ncGhvdG86Y2xpZW50PgogICAgPGdwaG90bzpjaGVja3N1bT40MDU5MDA1MjwvZ3Bob3RvOmNoZWNrc3VtPgogICAgPGdwaG90bzp0aW1lc3RhbXA+MTI4MzU0MTIyODAwMDwvZ3Bob3RvOnRpbWVzdGFtcD4KICAgIDxncGhvdG86aW1hZ2VWZXJzaW9uPjI5MjwvZ3Bob3RvOmltYWdlVmVyc2lvbj4KICAgIDxncGhvdG86Y29tbWVudENvdW50PjA8L2dwaG90bzpjb21tZW50Q291bnQ+CiAgICA8Z3Bob3RvOmxpY2Vuc2UgaWQ9JzAnIG5hbWU9J0FsbCBSaWdodHMgUmVzZXJ2ZWQnIHVybD0nJz5BTExfUklHSFRTX1JFU0VSVkVEPC9ncGhvdG86bGljZW5zZT4KICAgIDxleGlmOnRhZ3M+CiAgICAgIDxleGlmOmZzdG9wPjcuMTwvZXhpZjpmc3RvcD4KICAgICAgPGV4aWY6bWFrZT5OSUtPTiBDT1JQT1JBVElPTjwvZXhpZjptYWtlPgogICAgICA8ZXhpZjptb2RlbD5OSUtPTiBEOTA8L2V4aWY6bW9kZWw+CiAgICAgIDxleGlmOmV4cG9zdXJlPjAuMDA1PC9leGlmOmV4cG9zdXJlPgogICAgICA8ZXhpZjpmbGFzaD50cnVlPC9leGlmOmZsYXNoPgogICAgICA8ZXhpZjpmb2NhbGxlbmd0aD43MC4wPC9leGlmOmZvY2FsbGVuZ3RoPgogICAgICA8ZXhpZjppc28+MTI1MDwvZXhpZjppc28+CiAgICAgIDxleGlmOnRpbWU+MTI4MzU0MTIyODAwMDwvZXhpZjp0aW1lPgogICAgICA8ZXhpZjppbWFnZVVuaXF1ZUlEPmJkZjBjOWIwMjgxMzcyMjA2YzIxMWU1YjcyNDk0MGRmPC9leGlmOmltYWdlVW5pcXVlSUQ+CiAgICA8L2V4aWY6dGFncz4KICAgIDxtZWRpYTpncm91cD4KICAgICAgPG1lZGlhOmNvbnRlbnQgdXJsPSdodHRwOi8vbGg1LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkxDLV9lckkvQUFBQUFBQUFBU1EvTy0xNExBeVQyVlEvczUxMi8wMDAzMy5qcGcnIGhlaWdodD0nMzg3JyB3aWR0aD0nNTEyJyB0eXBlPSdpbWFnZS9qcGVnJyBtZWRpdW09J2ltYWdlJy8+CiAgICAgIDxtZWRpYTpjcmVkaXQ+SGVsc2luZ8O4ciBHeW1uYXNpdW1zIEJpbGxlZGFya2l2PC9tZWRpYTpjcmVkaXQ+CiAgICAgIDxtZWRpYTpkZXNjcmlwdGlvbiB0eXBlPSdwbGFpbicvPgogICAgICA8bWVkaWE6a2V5d29yZHMvPgogICAgICA8bWVkaWE6dGh1bWJuYWlsIHVybD0naHR0cDovL2xoNS5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjJMQy1fZXJJL0FBQUFBQUFBQVNRL08tMTRMQXlUMlZRL3M0OC1jLzAwMDMzLmpwZycgaGVpZ2h0PSc0OCcgd2lkdGg9JzQ4Jy8+CiAgICAgIDxtZWRpYTp0aXRsZSB0eXBlPSdwbGFpbic+MDAwMzMuanBnPC9tZWRpYTp0aXRsZT4KICAgIDwvbWVkaWE6Z3JvdXA+CiAgPC9lbnRyeT4KICA8ZW50cnk+CiAgICA8aWQ+aHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTczNjIwMDMwNzM2NjY8L2lkPgogICAgPHB1Ymxpc2hlZD4yMDEwLTA5LTAzVDIyOjI2OjU0LjAwMFo8L3B1Ymxpc2hlZD4KICAgIDx1cGRhdGVkPjIwMTAtMDktMDNUMjI6MjY6NTQuNzgzWjwvdXBkYXRlZD4KICAgIDxjYXRlZ29yeSBzY2hlbWU9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2tpbmQnIHRlcm09J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcGhvdG8nLz4KICAgIDx0aXRsZSB0eXBlPSd0ZXh0Jz4wMDAzNC5qcGc8L3RpdGxlPgogICAgPHN1bW1hcnkgdHlwZT0ndGV4dCcvPgogICAgPGNvbnRlbnQgdHlwZT0naW1hZ2UvanBlZycgc3JjPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkxyM01tb0kvQUFBQUFBQUFBU1kvOUdEby1hRURha2cvczUxMi8wMDAzNC5qcGcnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUjZmVlZCcgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTczNjIwMDMwNzM2NjYnLz4KICAgIDxsaW5rIHJlbD0nYWx0ZXJuYXRlJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvWEZlc3QyMDEwIzU1MTI4MTczNjIwMDMwNzM2NjYnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNjYW5vbmljYWwnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3Bob3RvL2VURTR6dnlXd2l3TFo2cS1FRnlfT0EnLz4KICAgIDxsaW5rIHJlbD0nc2VsZicgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3MzYyMDAzMDczNjY2Jy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcmVwb3J0JyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9yZXBvcnRBYnVzZT91bmFtZT0xMTM5NDcyMzU1MzgyNDcxMTEwMDcmYW1wO2FpZD01NTEyODE3MDM5MjA1MTIzNzc3JmFtcDtpaWQ9NTUxMjgxNzM2MjAwMzA3MzY2NicvPgogICAgPGdwaG90bzppZD41NTEyODE3MzYyMDAzMDczNjY2PC9ncGhvdG86aWQ+CiAgICA8Z3Bob3RvOnZlcnNpb24+MTwvZ3Bob3RvOnZlcnNpb24+CiAgICA8Z3Bob3RvOnBvc2l0aW9uPjMzLjA8L2dwaG90bzpwb3NpdGlvbj4KICAgIDxncGhvdG86YWxidW1pZD41NTEyODE3MDM5MjA1MTIzNzc3PC9ncGhvdG86YWxidW1pZD4KICAgIDxncGhvdG86YWNjZXNzPnB1YmxpYzwvZ3Bob3RvOmFjY2Vzcz4KICAgIDxncGhvdG86d2lkdGg+MTYwMDwvZ3Bob3RvOndpZHRoPgogICAgPGdwaG90bzpoZWlnaHQ+MTA2MzwvZ3Bob3RvOmhlaWdodD4KICAgIDxncGhvdG86c2l6ZT4xNzQxMzE8L2dwaG90bzpzaXplPgogICAgPGdwaG90bzpjbGllbnQ+cGljYXNhPC9ncGhvdG86Y2xpZW50PgogICAgPGdwaG90bzpjaGVja3N1bT4zN2JiNDA1MjwvZ3Bob3RvOmNoZWNrc3VtPgogICAgPGdwaG90bzp0aW1lc3RhbXA+MTI4MzU0MTI1ODAwMDwvZ3Bob3RvOnRpbWVzdGFtcD4KICAgIDxncGhvdG86aW1hZ2VWZXJzaW9uPjI5NDwvZ3Bob3RvOmltYWdlVmVyc2lvbj4KICAgIDxncGhvdG86Y29tbWVudENvdW50PjA8L2dwaG90bzpjb21tZW50Q291bnQ+CiAgICA8Z3Bob3RvOmxpY2Vuc2UgaWQ9JzAnIG5hbWU9J0FsbCBSaWdodHMgUmVzZXJ2ZWQnIHVybD0nJz5BTExfUklHSFRTX1JFU0VSVkVEPC9ncGhvdG86bGljZW5zZT4KICAgIDxleGlmOnRhZ3M+CiAgICAgIDxleGlmOmZzdG9wPjYuMzwvZXhpZjpmc3RvcD4KICAgICAgPGV4aWY6bWFrZT5OSUtPTiBDT1JQT1JBVElPTjwvZXhpZjptYWtlPgogICAgICA8ZXhpZjptb2RlbD5OSUtPTiBEOTA8L2V4aWY6bW9kZWw+CiAgICAgIDxleGlmOmV4cG9zdXJlPjAuMDE2NjY2NjY4PC9leGlmOmV4cG9zdXJlPgogICAgICA8ZXhpZjpmbGFzaD50cnVlPC9leGlmOmZsYXNoPgogICAgICA8ZXhpZjpmb2NhbGxlbmd0aD4xOC4wPC9leGlmOmZvY2FsbGVuZ3RoPgogICAgICA8ZXhpZjppc28+MTI1MDwvZXhpZjppc28+CiAgICAgIDxleGlmOnRpbWU+MTI4MzU0MTI1ODAwMDwvZXhpZjp0aW1lPgogICAgICA8ZXhpZjppbWFnZVVuaXF1ZUlEPjFiNTk1NTlmNDM5MmZhMGQzMWU4YzRhZDI1YWE5ZWU3PC9leGlmOmltYWdlVW5pcXVlSUQ+CiAgICA8L2V4aWY6dGFncz4KICAgIDxtZWRpYTpncm91cD4KICAgICAgPG1lZGlhOmNvbnRlbnQgdXJsPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMkxyM01tb0kvQUFBQUFBQUFBU1kvOUdEby1hRURha2cvczUxMi8wMDAzNC5qcGcnIGhlaWdodD0nMzQxJyB3aWR0aD0nNTEyJyB0eXBlPSdpbWFnZS9qcGVnJyBtZWRpdW09J2ltYWdlJy8+CiAgICAgIDxtZWRpYTpjcmVkaXQ+SGVsc2luZ8O4ciBHeW1uYXNpdW1zIEJpbGxlZGFya2l2PC9tZWRpYTpjcmVkaXQ+CiAgICAgIDxtZWRpYTpkZXNjcmlwdGlvbiB0eXBlPSdwbGFpbicvPgogICAgICA8bWVkaWE6a2V5d29yZHMvPgogICAgICA8bWVkaWE6dGh1bWJuYWlsIHVybD0naHR0cDovL2xoNC5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjJMcjNNbW9JL0FBQUFBQUFBQVNZLzlHRG8tYUVEYWtnL3M0OC1jLzAwMDM0LmpwZycgaGVpZ2h0PSc0OCcgd2lkdGg9JzQ4Jy8+CiAgICAgIDxtZWRpYTp0aXRsZSB0eXBlPSdwbGFpbic+MDAwMzQuanBnPC9tZWRpYTp0aXRsZT4KICAgIDwvbWVkaWE6Z3JvdXA+CiAgPC9lbnRyeT4KICA8ZW50cnk+CiAgICA8aWQ+aHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTczNjgxNTg2Mjk4OTA8L2lkPgogICAgPHB1Ymxpc2hlZD4yMDEwLTA5LTAzVDIyOjI2OjU2LjAwMFo8L3B1Ymxpc2hlZD4KICAgIDx1cGRhdGVkPjIwMTAtMDktMDNUMjI6MjY6NTYuNjk2WjwvdXBkYXRlZD4KICAgIDxjYXRlZ29yeSBzY2hlbWU9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2tpbmQnIHRlcm09J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcGhvdG8nLz4KICAgIDx0aXRsZSB0eXBlPSd0ZXh0Jz4wMDAzNS5qcGc8L3RpdGxlPgogICAgPHN1bW1hcnkgdHlwZT0ndGV4dCcvPgogICAgPGNvbnRlbnQgdHlwZT0naW1hZ2UvanBlZycgc3JjPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMk1DeXk4QUkvQUFBQUFBQUFBU2cvTWliMUpsdk01Y00vczUxMi8wMDAzNS5qcGcnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUjZmVlZCcgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTczNjgxNTg2Mjk4OTAnLz4KICAgIDxsaW5rIHJlbD0nYWx0ZXJuYXRlJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvWEZlc3QyMDEwIzU1MTI4MTczNjgxNTg2Mjk4OTAnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNjYW5vbmljYWwnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3Bob3RvL2N3bDZpNjhhNHdzVkNoVkhlMmFKYncnLz4KICAgIDxsaW5rIHJlbD0nc2VsZicgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3MzY4MTU4NjI5ODkwJy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcmVwb3J0JyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9yZXBvcnRBYnVzZT91bmFtZT0xMTM5NDcyMzU1MzgyNDcxMTEwMDcmYW1wO2FpZD01NTEyODE3MDM5MjA1MTIzNzc3JmFtcDtpaWQ9NTUxMjgxNzM2ODE1ODYyOTg5MCcvPgogICAgPGdwaG90bzppZD41NTEyODE3MzY4MTU4NjI5ODkwPC9ncGhvdG86aWQ+CiAgICA8Z3Bob3RvOnZlcnNpb24+MTwvZ3Bob3RvOnZlcnNpb24+CiAgICA8Z3Bob3RvOnBvc2l0aW9uPjM0LjA8L2dwaG90bzpwb3NpdGlvbj4KICAgIDxncGhvdG86YWxidW1pZD41NTEyODE3MDM5MjA1MTIzNzc3PC9ncGhvdG86YWxidW1pZD4KICAgIDxncGhvdG86YWNjZXNzPnB1YmxpYzwvZ3Bob3RvOmFjY2Vzcz4KICAgIDxncGhvdG86d2lkdGg+MTYwMDwvZ3Bob3RvOndpZHRoPgogICAgPGdwaG90bzpoZWlnaHQ+MTA2MzwvZ3Bob3RvOmhlaWdodD4KICAgIDxncGhvdG86c2l6ZT4xMzAzMDg8L2dwaG90bzpzaXplPgogICAgPGdwaG90bzpjbGllbnQ+cGljYXNhPC9ncGhvdG86Y2xpZW50PgogICAgPGdwaG90bzpjaGVja3N1bT4zN2I4NDA1MjwvZ3Bob3RvOmNoZWNrc3VtPgogICAgPGdwaG90bzp0aW1lc3RhbXA+MTI4MzU0MTI2NzAwMDwvZ3Bob3RvOnRpbWVzdGFtcD4KICAgIDxncGhvdG86aW1hZ2VWZXJzaW9uPjI5NjwvZ3Bob3RvOmltYWdlVmVyc2lvbj4KICAgIDxncGhvdG86Y29tbWVudENvdW50PjA8L2dwaG90bzpjb21tZW50Q291bnQ+CiAgICA8Z3Bob3RvOmxpY2Vuc2UgaWQ9JzAnIG5hbWU9J0FsbCBSaWdodHMgUmVzZXJ2ZWQnIHVybD0nJz5BTExfUklHSFRTX1JFU0VSVkVEPC9ncGhvdG86bGljZW5zZT4KICAgIDxleGlmOnRhZ3M+CiAgICAgIDxleGlmOmZzdG9wPjYuMzwvZXhpZjpmc3RvcD4KICAgICAgPGV4aWY6bWFrZT5OSUtPTiBDT1JQT1JBVElPTjwvZXhpZjptYWtlPgogICAgICA8ZXhpZjptb2RlbD5OSUtPTiBEOTA8L2V4aWY6bW9kZWw+CiAgICAgIDxleGlmOmV4cG9zdXJlPjAuMDE2NjY2NjY4PC9leGlmOmV4cG9zdXJlPgogICAgICA8ZXhpZjpmbGFzaD50cnVlPC9leGlmOmZsYXNoPgogICAgICA8ZXhpZjpmb2NhbGxlbmd0aD42Mi4wPC9leGlmOmZvY2FsbGVuZ3RoPgogICAgICA8ZXhpZjppc28+MTI1MDwvZXhpZjppc28+CiAgICAgIDxleGlmOnRpbWU+MTI4MzU0MTI2NzAwMDwvZXhpZjp0aW1lPgogICAgICA8ZXhpZjppbWFnZVVuaXF1ZUlEPjdkMTdkYWNlZTkxODU5NzRlOTRlZGJiZTg1YmYxOTgzPC9leGlmOmltYWdlVW5pcXVlSUQ+CiAgICA8L2V4aWY6dGFncz4KICAgIDxtZWRpYTpncm91cD4KICAgICAgPG1lZGlhOmNvbnRlbnQgdXJsPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMk1DeXk4QUkvQUFBQUFBQUFBU2cvTWliMUpsdk01Y00vczUxMi8wMDAzNS5qcGcnIGhlaWdodD0nMzQxJyB3aWR0aD0nNTEyJyB0eXBlPSdpbWFnZS9qcGVnJyBtZWRpdW09J2ltYWdlJy8+CiAgICAgIDxtZWRpYTpjcmVkaXQ+SGVsc2luZ8O4ciBHeW1uYXNpdW1zIEJpbGxlZGFya2l2PC9tZWRpYTpjcmVkaXQ+CiAgICAgIDxtZWRpYTpkZXNjcmlwdGlvbiB0eXBlPSdwbGFpbicvPgogICAgICA8bWVkaWE6a2V5d29yZHMvPgogICAgICA8bWVkaWE6dGh1bWJuYWlsIHVybD0naHR0cDovL2xoNC5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjJNQ3l5OEFJL0FBQUFBQUFBQVNnL01pYjFKbHZNNWNNL3M0OC1jLzAwMDM1LmpwZycgaGVpZ2h0PSc0OCcgd2lkdGg9JzQ4Jy8+CiAgICAgIDxtZWRpYTp0aXRsZSB0eXBlPSdwbGFpbic+MDAwMzUuanBnPC9tZWRpYTp0aXRsZT4KICAgIDwvbWVkaWE6Z3JvdXA+CiAgPC9lbnRyeT4KICA8ZW50cnk+CiAgICA8aWQ+aHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTczNzkzOTk5MDcyMDI8L2lkPgogICAgPHB1Ymxpc2hlZD4yMDEwLTA5LTAzVDIyOjI2OjU4LjAwMFo8L3B1Ymxpc2hlZD4KICAgIDx1cGRhdGVkPjIwMTAtMDktMDNUMjI6MjY6NTguODUyWjwvdXBkYXRlZD4KICAgIDxjYXRlZ29yeSBzY2hlbWU9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2tpbmQnIHRlcm09J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcGhvdG8nLz4KICAgIDx0aXRsZSB0eXBlPSd0ZXh0Jz4wMDAzNi5qcGc8L3RpdGxlPgogICAgPHN1bW1hcnkgdHlwZT0ndGV4dCcvPgogICAgPGNvbnRlbnQgdHlwZT0naW1hZ2UvanBlZycgc3JjPSdodHRwOi8vbGgzLmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMk1zcTdONEkvQUFBQUFBQUFBU28vcDBmYWtObkZCRk0vczUxMi8wMDAzNi5qcGcnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUjZmVlZCcgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTczNzkzOTk5MDcyMDInLz4KICAgIDxsaW5rIHJlbD0nYWx0ZXJuYXRlJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvWEZlc3QyMDEwIzU1MTI4MTczNzkzOTk5MDcyMDInLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNjYW5vbmljYWwnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3Bob3RvL2lFNDhuQ3pSeTV0MExiUGFFQWJhTEEnLz4KICAgIDxsaW5rIHJlbD0nc2VsZicgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3Mzc5Mzk5OTA3MjAyJy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcmVwb3J0JyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9yZXBvcnRBYnVzZT91bmFtZT0xMTM5NDcyMzU1MzgyNDcxMTEwMDcmYW1wO2FpZD01NTEyODE3MDM5MjA1MTIzNzc3JmFtcDtpaWQ9NTUxMjgxNzM3OTM5OTkwNzIwMicvPgogICAgPGdwaG90bzppZD41NTEyODE3Mzc5Mzk5OTA3MjAyPC9ncGhvdG86aWQ+CiAgICA8Z3Bob3RvOnZlcnNpb24+MTwvZ3Bob3RvOnZlcnNpb24+CiAgICA8Z3Bob3RvOnBvc2l0aW9uPjM1LjA8L2dwaG90bzpwb3NpdGlvbj4KICAgIDxncGhvdG86YWxidW1pZD41NTEyODE3MDM5MjA1MTIzNzc3PC9ncGhvdG86YWxidW1pZD4KICAgIDxncGhvdG86YWNjZXNzPnB1YmxpYzwvZ3Bob3RvOmFjY2Vzcz4KICAgIDxncGhvdG86d2lkdGg+MTYwMDwvZ3Bob3RvOndpZHRoPgogICAgPGdwaG90bzpoZWlnaHQ+MTA2MzwvZ3Bob3RvOmhlaWdodD4KICAgIDxncGhvdG86c2l6ZT4xNjI0NzU8L2dwaG90bzpzaXplPgogICAgPGdwaG90bzpjbGllbnQ+cGljYXNhPC9ncGhvdG86Y2xpZW50PgogICAgPGdwaG90bzpjaGVja3N1bT4zN2M2NDA1MjwvZ3Bob3RvOmNoZWNrc3VtPgogICAgPGdwaG90bzp0aW1lc3RhbXA+MTI4MzU0MTI4MTAwMDwvZ3Bob3RvOnRpbWVzdGFtcD4KICAgIDxncGhvdG86aW1hZ2VWZXJzaW9uPjI5ODwvZ3Bob3RvOmltYWdlVmVyc2lvbj4KICAgIDxncGhvdG86Y29tbWVudENvdW50PjA8L2dwaG90bzpjb21tZW50Q291bnQ+CiAgICA8Z3Bob3RvOmxpY2Vuc2UgaWQ9JzAnIG5hbWU9J0FsbCBSaWdodHMgUmVzZXJ2ZWQnIHVybD0nJz5BTExfUklHSFRTX1JFU0VSVkVEPC9ncGhvdG86bGljZW5zZT4KICAgIDxleGlmOnRhZ3M+CiAgICAgIDxleGlmOmZzdG9wPjYuMzwvZXhpZjpmc3RvcD4KICAgICAgPGV4aWY6bWFrZT5OSUtPTiBDT1JQT1JBVElPTjwvZXhpZjptYWtlPgogICAgICA8ZXhpZjptb2RlbD5OSUtPTiBEOTA8L2V4aWY6bW9kZWw+CiAgICAgIDxleGlmOmV4cG9zdXJlPjAuMDE2NjY2NjY4PC9leGlmOmV4cG9zdXJlPgogICAgICA8ZXhpZjpmbGFzaD50cnVlPC9leGlmOmZsYXNoPgogICAgICA8ZXhpZjpmb2NhbGxlbmd0aD41NS4wPC9leGlmOmZvY2FsbGVuZ3RoPgogICAgICA8ZXhpZjppc28+MTI1MDwvZXhpZjppc28+CiAgICAgIDxleGlmOnRpbWU+MTI4MzU0MTI4MTAwMDwvZXhpZjp0aW1lPgogICAgICA8ZXhpZjppbWFnZVVuaXF1ZUlEPjU1NjU0ZThkMGQzNzQ3NjZiMTRmMTMyMTZlOTQwOWYxPC9leGlmOmltYWdlVW5pcXVlSUQ+CiAgICA8L2V4aWY6dGFncz4KICAgIDxtZWRpYTpncm91cD4KICAgICAgPG1lZGlhOmNvbnRlbnQgdXJsPSdodHRwOi8vbGgzLmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMk1zcTdONEkvQUFBQUFBQUFBU28vcDBmYWtObkZCRk0vczUxMi8wMDAzNi5qcGcnIGhlaWdodD0nMzQxJyB3aWR0aD0nNTEyJyB0eXBlPSdpbWFnZS9qcGVnJyBtZWRpdW09J2ltYWdlJy8+CiAgICAgIDxtZWRpYTpjcmVkaXQ+SGVsc2luZ8O4ciBHeW1uYXNpdW1zIEJpbGxlZGFya2l2PC9tZWRpYTpjcmVkaXQ+CiAgICAgIDxtZWRpYTpkZXNjcmlwdGlvbiB0eXBlPSdwbGFpbicvPgogICAgICA8bWVkaWE6a2V5d29yZHMvPgogICAgICA8bWVkaWE6dGh1bWJuYWlsIHVybD0naHR0cDovL2xoMy5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjJNc3E3TjRJL0FBQUFBQUFBQVNvL3AwZmFrTm5GQkZNL3M0OC1jLzAwMDM2LmpwZycgaGVpZ2h0PSc0OCcgd2lkdGg9JzQ4Jy8+CiAgICAgIDxtZWRpYTp0aXRsZSB0eXBlPSdwbGFpbic+MDAwMzYuanBnPC9tZWRpYTp0aXRsZT4KICAgIDwvbWVkaWE6Z3JvdXA+CiAgPC9lbnRyeT4KICA8ZW50cnk+CiAgICA8aWQ+aHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTczOTEyNjAxMTYxMTQ8L2lkPgogICAgPHB1Ymxpc2hlZD4yMDEwLTA5LTAzVDIyOjI3OjAxLjAwMFo8L3B1Ymxpc2hlZD4KICAgIDx1cGRhdGVkPjIwMTAtMDktMDNUMjI6Mjc6MDEuMDYyWjwvdXBkYXRlZD4KICAgIDxjYXRlZ29yeSBzY2hlbWU9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2tpbmQnIHRlcm09J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcGhvdG8nLz4KICAgIDx0aXRsZSB0eXBlPSd0ZXh0Jz4wMDAzNy5qcGc8L3RpdGxlPgogICAgPHN1bW1hcnkgdHlwZT0ndGV4dCcvPgogICAgPGNvbnRlbnQgdHlwZT0naW1hZ2UvanBlZycgc3JjPSdodHRwOi8vbGg2LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMk5ZMm5wSkkvQUFBQUFBQUFBU3cvWXg3MV91NVBWc0kvczUxMi8wMDAzNy5qcGcnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUjZmVlZCcgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTczOTEyNjAxMTYxMTQnLz4KICAgIDxsaW5rIHJlbD0nYWx0ZXJuYXRlJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvWEZlc3QyMDEwIzU1MTI4MTczOTEyNjAxMTYxMTQnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNjYW5vbmljYWwnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3Bob3RvL0ktUnI1dk4yTHJOblhwcThhRG5EN2cnLz4KICAgIDxsaW5rIHJlbD0nc2VsZicgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3MzkxMjYwMTE2MTE0Jy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcmVwb3J0JyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9yZXBvcnRBYnVzZT91bmFtZT0xMTM5NDcyMzU1MzgyNDcxMTEwMDcmYW1wO2FpZD01NTEyODE3MDM5MjA1MTIzNzc3JmFtcDtpaWQ9NTUxMjgxNzM5MTI2MDExNjExNCcvPgogICAgPGdwaG90bzppZD41NTEyODE3MzkxMjYwMTE2MTE0PC9ncGhvdG86aWQ+CiAgICA8Z3Bob3RvOnZlcnNpb24+MTwvZ3Bob3RvOnZlcnNpb24+CiAgICA8Z3Bob3RvOnBvc2l0aW9uPjM2LjA8L2dwaG90bzpwb3NpdGlvbj4KICAgIDxncGhvdG86YWxidW1pZD41NTEyODE3MDM5MjA1MTIzNzc3PC9ncGhvdG86YWxidW1pZD4KICAgIDxncGhvdG86YWNjZXNzPnB1YmxpYzwvZ3Bob3RvOmFjY2Vzcz4KICAgIDxncGhvdG86d2lkdGg+MTYwMDwvZ3Bob3RvOndpZHRoPgogICAgPGdwaG90bzpoZWlnaHQ+MTA2MzwvZ3Bob3RvOmhlaWdodD4KICAgIDxncGhvdG86c2l6ZT4xNzIzODA8L2dwaG90bzpzaXplPgogICAgPGdwaG90bzpjbGllbnQ+cGljYXNhPC9ncGhvdG86Y2xpZW50PgogICAgPGdwaG90bzpjaGVja3N1bT4zN2M1NDA1MjwvZ3Bob3RvOmNoZWNrc3VtPgogICAgPGdwaG90bzp0aW1lc3RhbXA+MTI4MzU0MTMwNjAwMDwvZ3Bob3RvOnRpbWVzdGFtcD4KICAgIDxncGhvdG86aW1hZ2VWZXJzaW9uPjMwMDwvZ3Bob3RvOmltYWdlVmVyc2lvbj4KICAgIDxncGhvdG86Y29tbWVudENvdW50PjA8L2dwaG90bzpjb21tZW50Q291bnQ+CiAgICA8Z3Bob3RvOmxpY2Vuc2UgaWQ9JzAnIG5hbWU9J0FsbCBSaWdodHMgUmVzZXJ2ZWQnIHVybD0nJz5BTExfUklHSFRTX1JFU0VSVkVEPC9ncGhvdG86bGljZW5zZT4KICAgIDxleGlmOnRhZ3M+CiAgICAgIDxleGlmOmZzdG9wPjYuMzwvZXhpZjpmc3RvcD4KICAgICAgPGV4aWY6bWFrZT5OSUtPTiBDT1JQT1JBVElPTjwvZXhpZjptYWtlPgogICAgICA8ZXhpZjptb2RlbD5OSUtPTiBEOTA8L2V4aWY6bW9kZWw+CiAgICAgIDxleGlmOmV4cG9zdXJlPjAuMDE2NjY2NjY4PC9leGlmOmV4cG9zdXJlPgogICAgICA8ZXhpZjpmbGFzaD50cnVlPC9leGlmOmZsYXNoPgogICAgICA8ZXhpZjpmb2NhbGxlbmd0aD4yMC4wPC9leGlmOmZvY2FsbGVuZ3RoPgogICAgICA8ZXhpZjppc28+MTI1MDwvZXhpZjppc28+CiAgICAgIDxleGlmOnRpbWU+MTI4MzU0MTMwNjAwMDwvZXhpZjp0aW1lPgogICAgICA8ZXhpZjppbWFnZVVuaXF1ZUlEPmUyNzVmMDBlZmFiNDI3ZjI4OGY5YWJhY2I0ZmE1NjYxPC9leGlmOmltYWdlVW5pcXVlSUQ+CiAgICA8L2V4aWY6dGFncz4KICAgIDxtZWRpYTpncm91cD4KICAgICAgPG1lZGlhOmNvbnRlbnQgdXJsPSdodHRwOi8vbGg2LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMk5ZMm5wSkkvQUFBQUFBQUFBU3cvWXg3MV91NVBWc0kvczUxMi8wMDAzNy5qcGcnIGhlaWdodD0nMzQxJyB3aWR0aD0nNTEyJyB0eXBlPSdpbWFnZS9qcGVnJyBtZWRpdW09J2ltYWdlJy8+CiAgICAgIDxtZWRpYTpjcmVkaXQ+SGVsc2luZ8O4ciBHeW1uYXNpdW1zIEJpbGxlZGFya2l2PC9tZWRpYTpjcmVkaXQ+CiAgICAgIDxtZWRpYTpkZXNjcmlwdGlvbiB0eXBlPSdwbGFpbicvPgogICAgICA8bWVkaWE6a2V5d29yZHMvPgogICAgICA8bWVkaWE6dGh1bWJuYWlsIHVybD0naHR0cDovL2xoNi5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjJOWTJucEpJL0FBQUFBQUFBQVN3L1l4NzFfdTVQVnNJL3M0OC1jLzAwMDM3LmpwZycgaGVpZ2h0PSc0OCcgd2lkdGg9JzQ4Jy8+CiAgICAgIDxtZWRpYTp0aXRsZSB0eXBlPSdwbGFpbic+MDAwMzcuanBnPC9tZWRpYTp0aXRsZT4KICAgIDwvbWVkaWE6Z3JvdXA+CiAgPC9lbnRyeT4KICA8ZW50cnk+CiAgICA8aWQ+aHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc0MDU2ODE4NzExMjI8L2lkPgogICAgPHB1Ymxpc2hlZD4yMDEwLTA5LTAzVDIyOjI3OjA0LjAwMFo8L3B1Ymxpc2hlZD4KICAgIDx1cGRhdGVkPjIwMTAtMDktMDNUMjI6Mjc6MDQuMjA0WjwvdXBkYXRlZD4KICAgIDxjYXRlZ29yeSBzY2hlbWU9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2tpbmQnIHRlcm09J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcGhvdG8nLz4KICAgIDx0aXRsZSB0eXBlPSd0ZXh0Jz4wMDAzOC5qcGc8L3RpdGxlPgogICAgPHN1bW1hcnkgdHlwZT0ndGV4dCcvPgogICAgPGNvbnRlbnQgdHlwZT0naW1hZ2UvanBlZycgc3JjPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMk9PbENLUkkvQUFBQUFBQUFBUzQvb0gxT1FQc3cwclEvczUxMi8wMDAzOC5qcGcnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUjZmVlZCcgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc0MDU2ODE4NzExMjInLz4KICAgIDxsaW5rIHJlbD0nYWx0ZXJuYXRlJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvWEZlc3QyMDEwIzU1MTI4MTc0MDU2ODE4NzExMjInLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNjYW5vbmljYWwnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3Bob3RvL2hQQkRFWkpkUHJMNGxoMGRBcFJWLWcnLz4KICAgIDxsaW5rIHJlbD0nc2VsZicgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3NDA1NjgxODcxMTIyJy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcmVwb3J0JyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9yZXBvcnRBYnVzZT91bmFtZT0xMTM5NDcyMzU1MzgyNDcxMTEwMDcmYW1wO2FpZD01NTEyODE3MDM5MjA1MTIzNzc3JmFtcDtpaWQ9NTUxMjgxNzQwNTY4MTg3MTEyMicvPgogICAgPGdwaG90bzppZD41NTEyODE3NDA1NjgxODcxMTIyPC9ncGhvdG86aWQ+CiAgICA8Z3Bob3RvOnZlcnNpb24+MTwvZ3Bob3RvOnZlcnNpb24+CiAgICA8Z3Bob3RvOnBvc2l0aW9uPjM3LjA8L2dwaG90bzpwb3NpdGlvbj4KICAgIDxncGhvdG86YWxidW1pZD41NTEyODE3MDM5MjA1MTIzNzc3PC9ncGhvdG86YWxidW1pZD4KICAgIDxncGhvdG86YWNjZXNzPnB1YmxpYzwvZ3Bob3RvOmFjY2Vzcz4KICAgIDxncGhvdG86d2lkdGg+MTYwMDwvZ3Bob3RvOndpZHRoPgogICAgPGdwaG90bzpoZWlnaHQ+MTA2MzwvZ3Bob3RvOmhlaWdodD4KICAgIDxncGhvdG86c2l6ZT4xNTIyMTc8L2dwaG90bzpzaXplPgogICAgPGdwaG90bzpjbGllbnQ+cGljYXNhPC9ncGhvdG86Y2xpZW50PgogICAgPGdwaG90bzpjaGVja3N1bT4zN2MzNDA1MjwvZ3Bob3RvOmNoZWNrc3VtPgogICAgPGdwaG90bzp0aW1lc3RhbXA+MTI4MzU0MTMyMjAwMDwvZ3Bob3RvOnRpbWVzdGFtcD4KICAgIDxncGhvdG86aW1hZ2VWZXJzaW9uPjMwMjwvZ3Bob3RvOmltYWdlVmVyc2lvbj4KICAgIDxncGhvdG86Y29tbWVudENvdW50PjA8L2dwaG90bzpjb21tZW50Q291bnQ+CiAgICA8Z3Bob3RvOmxpY2Vuc2UgaWQ9JzAnIG5hbWU9J0FsbCBSaWdodHMgUmVzZXJ2ZWQnIHVybD0nJz5BTExfUklHSFRTX1JFU0VSVkVEPC9ncGhvdG86bGljZW5zZT4KICAgIDxleGlmOnRhZ3M+CiAgICAgIDxleGlmOmZzdG9wPjYuMzwvZXhpZjpmc3RvcD4KICAgICAgPGV4aWY6bWFrZT5OSUtPTiBDT1JQT1JBVElPTjwvZXhpZjptYWtlPgogICAgICA8ZXhpZjptb2RlbD5OSUtPTiBEOTA8L2V4aWY6bW9kZWw+CiAgICAgIDxleGlmOmV4cG9zdXJlPjAuMDE2NjY2NjY4PC9leGlmOmV4cG9zdXJlPgogICAgICA8ZXhpZjpmbGFzaD50cnVlPC9leGlmOmZsYXNoPgogICAgICA8ZXhpZjpmb2NhbGxlbmd0aD40OC4wPC9leGlmOmZvY2FsbGVuZ3RoPgogICAgICA8ZXhpZjppc28+MTI1MDwvZXhpZjppc28+CiAgICAgIDxleGlmOnRpbWU+MTI4MzU0MTMyMjAwMDwvZXhpZjp0aW1lPgogICAgICA8ZXhpZjppbWFnZVVuaXF1ZUlEPjMwYzY5ZDQxZWM0NTMzMjZjMzA5MTY4YzM2ZGIwOTNjPC9leGlmOmltYWdlVW5pcXVlSUQ+CiAgICA8L2V4aWY6dGFncz4KICAgIDxtZWRpYTpncm91cD4KICAgICAgPG1lZGlhOmNvbnRlbnQgdXJsPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMk9PbENLUkkvQUFBQUFBQUFBUzQvb0gxT1FQc3cwclEvczUxMi8wMDAzOC5qcGcnIGhlaWdodD0nMzQxJyB3aWR0aD0nNTEyJyB0eXBlPSdpbWFnZS9qcGVnJyBtZWRpdW09J2ltYWdlJy8+CiAgICAgIDxtZWRpYTpjcmVkaXQ+SGVsc2luZ8O4ciBHeW1uYXNpdW1zIEJpbGxlZGFya2l2PC9tZWRpYTpjcmVkaXQ+CiAgICAgIDxtZWRpYTpkZXNjcmlwdGlvbiB0eXBlPSdwbGFpbicvPgogICAgICA8bWVkaWE6a2V5d29yZHMvPgogICAgICA8bWVkaWE6dGh1bWJuYWlsIHVybD0naHR0cDovL2xoNC5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjJPT2xDS1JJL0FBQUFBQUFBQVM0L29IMU9RUHN3MHJRL3M0OC1jLzAwMDM4LmpwZycgaGVpZ2h0PSc0OCcgd2lkdGg9JzQ4Jy8+CiAgICAgIDxtZWRpYTp0aXRsZSB0eXBlPSdwbGFpbic+MDAwMzguanBnPC9tZWRpYTp0aXRsZT4KICAgIDwvbWVkaWE6Z3JvdXA+CiAgPC9lbnRyeT4KICA8ZW50cnk+CiAgICA8aWQ+aHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc0MTA0MTk4OTc5Mzg8L2lkPgogICAgPHB1Ymxpc2hlZD4yMDEwLTA5LTAzVDIyOjI3OjA2LjAwMFo8L3B1Ymxpc2hlZD4KICAgIDx1cGRhdGVkPjIwMTAtMDktMDNUMjI6Mjc6MDYuMjg1WjwvdXBkYXRlZD4KICAgIDxjYXRlZ29yeSBzY2hlbWU9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2tpbmQnIHRlcm09J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcGhvdG8nLz4KICAgIDx0aXRsZSB0eXBlPSd0ZXh0Jz4wMDAzOS5qcGc8L3RpdGxlPgogICAgPHN1bW1hcnkgdHlwZT0ndGV4dCcvPgogICAgPGNvbnRlbnQgdHlwZT0naW1hZ2UvanBlZycgc3JjPSdodHRwOi8vbGg2LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMk9nT3F0bEkvQUFBQUFBQUFBVEEvb2RLbWYwUTV2ZXMvczUxMi8wMDAzOS5qcGcnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUjZmVlZCcgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc0MTA0MTk4OTc5MzgnLz4KICAgIDxsaW5rIHJlbD0nYWx0ZXJuYXRlJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvWEZlc3QyMDEwIzU1MTI4MTc0MTA0MTk4OTc5MzgnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNjYW5vbmljYWwnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3Bob3RvL1pJc0ZFSVdrdGdVVUVFR1h6OW5jNmcnLz4KICAgIDxsaW5rIHJlbD0nc2VsZicgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3NDEwNDE5ODk3OTM4Jy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcmVwb3J0JyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9yZXBvcnRBYnVzZT91bmFtZT0xMTM5NDcyMzU1MzgyNDcxMTEwMDcmYW1wO2FpZD01NTEyODE3MDM5MjA1MTIzNzc3JmFtcDtpaWQ9NTUxMjgxNzQxMDQxOTg5NzkzOCcvPgogICAgPGdwaG90bzppZD41NTEyODE3NDEwNDE5ODk3OTM4PC9ncGhvdG86aWQ+CiAgICA8Z3Bob3RvOnZlcnNpb24+MTwvZ3Bob3RvOnZlcnNpb24+CiAgICA8Z3Bob3RvOnBvc2l0aW9uPjM4LjA8L2dwaG90bzpwb3NpdGlvbj4KICAgIDxncGhvdG86YWxidW1pZD41NTEyODE3MDM5MjA1MTIzNzc3PC9ncGhvdG86YWxidW1pZD4KICAgIDxncGhvdG86YWNjZXNzPnB1YmxpYzwvZ3Bob3RvOmFjY2Vzcz4KICAgIDxncGhvdG86d2lkdGg+MTYwMDwvZ3Bob3RvOndpZHRoPgogICAgPGdwaG90bzpoZWlnaHQ+MTA2MzwvZ3Bob3RvOmhlaWdodD4KICAgIDxncGhvdG86c2l6ZT4xNzQxODc8L2dwaG90bzpzaXplPgogICAgPGdwaG90bzpjbGllbnQ+cGljYXNhPC9ncGhvdG86Y2xpZW50PgogICAgPGdwaG90bzpjaGVja3N1bT4zN2NlNDA1MjwvZ3Bob3RvOmNoZWNrc3VtPgogICAgPGdwaG90bzp0aW1lc3RhbXA+MTI4MzU0MTM0NjAwMDwvZ3Bob3RvOnRpbWVzdGFtcD4KICAgIDxncGhvdG86aW1hZ2VWZXJzaW9uPjMwNDwvZ3Bob3RvOmltYWdlVmVyc2lvbj4KICAgIDxncGhvdG86Y29tbWVudENvdW50PjA8L2dwaG90bzpjb21tZW50Q291bnQ+CiAgICA8Z3Bob3RvOmxpY2Vuc2UgaWQ9JzAnIG5hbWU9J0FsbCBSaWdodHMgUmVzZXJ2ZWQnIHVybD0nJz5BTExfUklHSFRTX1JFU0VSVkVEPC9ncGhvdG86bGljZW5zZT4KICAgIDxleGlmOnRhZ3M+CiAgICAgIDxleGlmOmZzdG9wPjYuMzwvZXhpZjpmc3RvcD4KICAgICAgPGV4aWY6bWFrZT5OSUtPTiBDT1JQT1JBVElPTjwvZXhpZjptYWtlPgogICAgICA8ZXhpZjptb2RlbD5OSUtPTiBEOTA8L2V4aWY6bW9kZWw+CiAgICAgIDxleGlmOmV4cG9zdXJlPjAuMDE2NjY2NjY4PC9leGlmOmV4cG9zdXJlPgogICAgICA8ZXhpZjpmbGFzaD50cnVlPC9leGlmOmZsYXNoPgogICAgICA8ZXhpZjpmb2NhbGxlbmd0aD40MC4wPC9leGlmOmZvY2FsbGVuZ3RoPgogICAgICA8ZXhpZjppc28+MTI1MDwvZXhpZjppc28+CiAgICAgIDxleGlmOnRpbWU+MTI4MzU0MTM0NjAwMDwvZXhpZjp0aW1lPgogICAgICA8ZXhpZjppbWFnZVVuaXF1ZUlEPjFlYmU0MjkyMGVlNjA5ZDM4MTQwMmM5ZWRiNDM1OGEyPC9leGlmOmltYWdlVW5pcXVlSUQ+CiAgICA8L2V4aWY6dGFncz4KICAgIDxtZWRpYTpncm91cD4KICAgICAgPG1lZGlhOmNvbnRlbnQgdXJsPSdodHRwOi8vbGg2LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMk9nT3F0bEkvQUFBQUFBQUFBVEEvb2RLbWYwUTV2ZXMvczUxMi8wMDAzOS5qcGcnIGhlaWdodD0nMzQxJyB3aWR0aD0nNTEyJyB0eXBlPSdpbWFnZS9qcGVnJyBtZWRpdW09J2ltYWdlJy8+CiAgICAgIDxtZWRpYTpjcmVkaXQ+SGVsc2luZ8O4ciBHeW1uYXNpdW1zIEJpbGxlZGFya2l2PC9tZWRpYTpjcmVkaXQ+CiAgICAgIDxtZWRpYTpkZXNjcmlwdGlvbiB0eXBlPSdwbGFpbicvPgogICAgICA8bWVkaWE6a2V5d29yZHMvPgogICAgICA8bWVkaWE6dGh1bWJuYWlsIHVybD0naHR0cDovL2xoNi5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjJPZ09xdGxJL0FBQUFBQUFBQVRBL29kS21mMFE1dmVzL3M0OC1jLzAwMDM5LmpwZycgaGVpZ2h0PSc0OCcgd2lkdGg9JzQ4Jy8+CiAgICAgIDxtZWRpYTp0aXRsZSB0eXBlPSdwbGFpbic+MDAwMzkuanBnPC9tZWRpYTp0aXRsZT4KICAgIDwvbWVkaWE6Z3JvdXA+CiAgPC9lbnRyeT4KICA8ZW50cnk+CiAgICA8aWQ+aHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc0MTk3MTY2NjE3MzA8L2lkPgogICAgPHB1Ymxpc2hlZD4yMDEwLTA5LTAzVDIyOjI3OjA4LjAwMFo8L3B1Ymxpc2hlZD4KICAgIDx1cGRhdGVkPjIwMTAtMDktMDNUMjI6Mjc6MDguMzM3WjwvdXBkYXRlZD4KICAgIDxjYXRlZ29yeSBzY2hlbWU9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2tpbmQnIHRlcm09J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcGhvdG8nLz4KICAgIDx0aXRsZSB0eXBlPSd0ZXh0Jz4wMDA0MC5qcGc8L3RpdGxlPgogICAgPHN1bW1hcnkgdHlwZT0ndGV4dCcvPgogICAgPGNvbnRlbnQgdHlwZT0naW1hZ2UvanBlZycgc3JjPSdodHRwOi8vbGg2LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMlBDM01FZUkvQUFBQUFBQUFBVEkvMnJuaDdlN0pxVVEvczUxMi8wMDA0MC5qcGcnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUjZmVlZCcgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc0MTk3MTY2NjE3MzAnLz4KICAgIDxsaW5rIHJlbD0nYWx0ZXJuYXRlJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvWEZlc3QyMDEwIzU1MTI4MTc0MTk3MTY2NjE3MzAnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNjYW5vbmljYWwnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3Bob3RvLy1OVzBaeUNqUElqdTkwaHRfWG0zRlEnLz4KICAgIDxsaW5rIHJlbD0nc2VsZicgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3NDE5NzE2NjYxNzMwJy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcmVwb3J0JyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9yZXBvcnRBYnVzZT91bmFtZT0xMTM5NDcyMzU1MzgyNDcxMTEwMDcmYW1wO2FpZD01NTEyODE3MDM5MjA1MTIzNzc3JmFtcDtpaWQ9NTUxMjgxNzQxOTcxNjY2MTczMCcvPgogICAgPGdwaG90bzppZD41NTEyODE3NDE5NzE2NjYxNzMwPC9ncGhvdG86aWQ+CiAgICA8Z3Bob3RvOnZlcnNpb24+MTwvZ3Bob3RvOnZlcnNpb24+CiAgICA8Z3Bob3RvOnBvc2l0aW9uPjM5LjA8L2dwaG90bzpwb3NpdGlvbj4KICAgIDxncGhvdG86YWxidW1pZD41NTEyODE3MDM5MjA1MTIzNzc3PC9ncGhvdG86YWxidW1pZD4KICAgIDxncGhvdG86YWNjZXNzPnB1YmxpYzwvZ3Bob3RvOmFjY2Vzcz4KICAgIDxncGhvdG86d2lkdGg+MTYwMDwvZ3Bob3RvOndpZHRoPgogICAgPGdwaG90bzpoZWlnaHQ+MTA2MzwvZ3Bob3RvOmhlaWdodD4KICAgIDxncGhvdG86c2l6ZT4xMzk3NDg8L2dwaG90bzpzaXplPgogICAgPGdwaG90bzpjbGllbnQ+cGljYXNhPC9ncGhvdG86Y2xpZW50PgogICAgPGdwaG90bzpjaGVja3N1bT4zN2NjODA1MjwvZ3Bob3RvOmNoZWNrc3VtPgogICAgPGdwaG90bzp0aW1lc3RhbXA+MTI4MzU0MTM2MzAwMDwvZ3Bob3RvOnRpbWVzdGFtcD4KICAgIDxncGhvdG86aW1hZ2VWZXJzaW9uPjMwNjwvZ3Bob3RvOmltYWdlVmVyc2lvbj4KICAgIDxncGhvdG86Y29tbWVudENvdW50PjA8L2dwaG90bzpjb21tZW50Q291bnQ+CiAgICA8Z3Bob3RvOmxpY2Vuc2UgaWQ9JzAnIG5hbWU9J0FsbCBSaWdodHMgUmVzZXJ2ZWQnIHVybD0nJz5BTExfUklHSFRTX1JFU0VSVkVEPC9ncGhvdG86bGljZW5zZT4KICAgIDxleGlmOnRhZ3M+CiAgICAgIDxleGlmOmZzdG9wPjYuMzwvZXhpZjpmc3RvcD4KICAgICAgPGV4aWY6bWFrZT5OSUtPTiBDT1JQT1JBVElPTjwvZXhpZjptYWtlPgogICAgICA8ZXhpZjptb2RlbD5OSUtPTiBEOTA8L2V4aWY6bW9kZWw+CiAgICAgIDxleGlmOmV4cG9zdXJlPjAuMDE2NjY2NjY4PC9leGlmOmV4cG9zdXJlPgogICAgICA8ZXhpZjpmbGFzaD50cnVlPC9leGlmOmZsYXNoPgogICAgICA8ZXhpZjpmb2NhbGxlbmd0aD4yNi4wPC9leGlmOmZvY2FsbGVuZ3RoPgogICAgICA8ZXhpZjppc28+MTI1MDwvZXhpZjppc28+CiAgICAgIDxleGlmOnRpbWU+MTI4MzU0MTM2MzAwMDwvZXhpZjp0aW1lPgogICAgICA8ZXhpZjppbWFnZVVuaXF1ZUlEPmRlYTY1NTUwNmFlY2UzNGIxODUzYzYyMDE4YjQ0NjljPC9leGlmOmltYWdlVW5pcXVlSUQ+CiAgICA8L2V4aWY6dGFncz4KICAgIDxtZWRpYTpncm91cD4KICAgICAgPG1lZGlhOmNvbnRlbnQgdXJsPSdodHRwOi8vbGg2LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMlBDM01FZUkvQUFBQUFBQUFBVEkvMnJuaDdlN0pxVVEvczUxMi8wMDA0MC5qcGcnIGhlaWdodD0nMzQxJyB3aWR0aD0nNTEyJyB0eXBlPSdpbWFnZS9qcGVnJyBtZWRpdW09J2ltYWdlJy8+CiAgICAgIDxtZWRpYTpjcmVkaXQ+SGVsc2luZ8O4ciBHeW1uYXNpdW1zIEJpbGxlZGFya2l2PC9tZWRpYTpjcmVkaXQ+CiAgICAgIDxtZWRpYTpkZXNjcmlwdGlvbiB0eXBlPSdwbGFpbicvPgogICAgICA8bWVkaWE6a2V5d29yZHMvPgogICAgICA8bWVkaWE6dGh1bWJuYWlsIHVybD0naHR0cDovL2xoNi5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjJQQzNNRWVJL0FBQUFBQUFBQVRJLzJybmg3ZTdKcVVRL3M0OC1jLzAwMDQwLmpwZycgaGVpZ2h0PSc0OCcgd2lkdGg9JzQ4Jy8+CiAgICAgIDxtZWRpYTp0aXRsZSB0eXBlPSdwbGFpbic+MDAwNDAuanBnPC9tZWRpYTp0aXRsZT4KICAgIDwvbWVkaWE6Z3JvdXA+CiAgPC9lbnRyeT4KICA8ZW50cnk+CiAgICA8aWQ+aHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc0Mjk4NTQ4MDk1MjI8L2lkPgogICAgPHB1Ymxpc2hlZD4yMDEwLTA5LTAzVDIyOjI3OjEwLjAwMFo8L3B1Ymxpc2hlZD4KICAgIDx1cGRhdGVkPjIwMTAtMDktMDNUMjI6Mjc6MTAuNjg1WjwvdXBkYXRlZD4KICAgIDxjYXRlZ29yeSBzY2hlbWU9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2tpbmQnIHRlcm09J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcGhvdG8nLz4KICAgIDx0aXRsZSB0eXBlPSd0ZXh0Jz4wMDA0MS5qcGc8L3RpdGxlPgogICAgPHN1bW1hcnkgdHlwZT0ndGV4dCcvPgogICAgPGNvbnRlbnQgdHlwZT0naW1hZ2UvanBlZycgc3JjPSdodHRwOi8vbGgzLmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMlBvb1Q3YkkvQUFBQUFBQUFBVFEvOUVPQzlDc0xXWncvczUxMi8wMDA0MS5qcGcnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUjZmVlZCcgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc0Mjk4NTQ4MDk1MjInLz4KICAgIDxsaW5rIHJlbD0nYWx0ZXJuYXRlJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvWEZlc3QyMDEwIzU1MTI4MTc0Mjk4NTQ4MDk1MjInLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNjYW5vbmljYWwnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3Bob3RvL2s4RGFaVkpIa2ZzMXVZN3hBakdjX0EnLz4KICAgIDxsaW5rIHJlbD0nc2VsZicgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3NDI5ODU0ODA5NTIyJy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcmVwb3J0JyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9yZXBvcnRBYnVzZT91bmFtZT0xMTM5NDcyMzU1MzgyNDcxMTEwMDcmYW1wO2FpZD01NTEyODE3MDM5MjA1MTIzNzc3JmFtcDtpaWQ9NTUxMjgxNzQyOTg1NDgwOTUyMicvPgogICAgPGdwaG90bzppZD41NTEyODE3NDI5ODU0ODA5NTIyPC9ncGhvdG86aWQ+CiAgICA8Z3Bob3RvOnZlcnNpb24+MTwvZ3Bob3RvOnZlcnNpb24+CiAgICA8Z3Bob3RvOnBvc2l0aW9uPjQwLjA8L2dwaG90bzpwb3NpdGlvbj4KICAgIDxncGhvdG86YWxidW1pZD41NTEyODE3MDM5MjA1MTIzNzc3PC9ncGhvdG86YWxidW1pZD4KICAgIDxncGhvdG86YWNjZXNzPnB1YmxpYzwvZ3Bob3RvOmFjY2Vzcz4KICAgIDxncGhvdG86d2lkdGg+MTYwMDwvZ3Bob3RvOndpZHRoPgogICAgPGdwaG90bzpoZWlnaHQ+MTA2MzwvZ3Bob3RvOmhlaWdodD4KICAgIDxncGhvdG86c2l6ZT4yMTQzMzI8L2dwaG90bzpzaXplPgogICAgPGdwaG90bzpjbGllbnQ+cGljYXNhPC9ncGhvdG86Y2xpZW50PgogICAgPGdwaG90bzpjaGVja3N1bT4zN2NkODA1MjwvZ3Bob3RvOmNoZWNrc3VtPgogICAgPGdwaG90bzp0aW1lc3RhbXA+MTI4MzU0MTM3MTAwMDwvZ3Bob3RvOnRpbWVzdGFtcD4KICAgIDxncGhvdG86aW1hZ2VWZXJzaW9uPjMwODwvZ3Bob3RvOmltYWdlVmVyc2lvbj4KICAgIDxncGhvdG86Y29tbWVudENvdW50PjA8L2dwaG90bzpjb21tZW50Q291bnQ+CiAgICA8Z3Bob3RvOmxpY2Vuc2UgaWQ9JzAnIG5hbWU9J0FsbCBSaWdodHMgUmVzZXJ2ZWQnIHVybD0nJz5BTExfUklHSFRTX1JFU0VSVkVEPC9ncGhvdG86bGljZW5zZT4KICAgIDxleGlmOnRhZ3M+CiAgICAgIDxleGlmOmZzdG9wPjYuMzwvZXhpZjpmc3RvcD4KICAgICAgPGV4aWY6bWFrZT5OSUtPTiBDT1JQT1JBVElPTjwvZXhpZjptYWtlPgogICAgICA8ZXhpZjptb2RlbD5OSUtPTiBEOTA8L2V4aWY6bW9kZWw+CiAgICAgIDxleGlmOmV4cG9zdXJlPjAuMDE2NjY2NjY4PC9leGlmOmV4cG9zdXJlPgogICAgICA8ZXhpZjpmbGFzaD50cnVlPC9leGlmOmZsYXNoPgogICAgICA8ZXhpZjpmb2NhbGxlbmd0aD43NS4wPC9leGlmOmZvY2FsbGVuZ3RoPgogICAgICA8ZXhpZjppc28+MTI1MDwvZXhpZjppc28+CiAgICAgIDxleGlmOnRpbWU+MTI4MzU0MTM3MTAwMDwvZXhpZjp0aW1lPgogICAgICA8ZXhpZjppbWFnZVVuaXF1ZUlEPjAwYzJhMDc4YWY4Mzk4ZTc2YjA0ODVlNjlkYjRiNDk2PC9leGlmOmltYWdlVW5pcXVlSUQ+CiAgICA8L2V4aWY6dGFncz4KICAgIDxtZWRpYTpncm91cD4KICAgICAgPG1lZGlhOmNvbnRlbnQgdXJsPSdodHRwOi8vbGgzLmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMlBvb1Q3YkkvQUFBQUFBQUFBVFEvOUVPQzlDc0xXWncvczUxMi8wMDA0MS5qcGcnIGhlaWdodD0nMzQxJyB3aWR0aD0nNTEyJyB0eXBlPSdpbWFnZS9qcGVnJyBtZWRpdW09J2ltYWdlJy8+CiAgICAgIDxtZWRpYTpjcmVkaXQ+SGVsc2luZ8O4ciBHeW1uYXNpdW1zIEJpbGxlZGFya2l2PC9tZWRpYTpjcmVkaXQ+CiAgICAgIDxtZWRpYTpkZXNjcmlwdGlvbiB0eXBlPSdwbGFpbicvPgogICAgICA8bWVkaWE6a2V5d29yZHMvPgogICAgICA8bWVkaWE6dGh1bWJuYWlsIHVybD0naHR0cDovL2xoMy5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjJQb29UN2JJL0FBQUFBQUFBQVRRLzlFT0M5Q3NMV1p3L3M0OC1jLzAwMDQxLmpwZycgaGVpZ2h0PSc0OCcgd2lkdGg9JzQ4Jy8+CiAgICAgIDxtZWRpYTp0aXRsZSB0eXBlPSdwbGFpbic+MDAwNDEuanBnPC9tZWRpYTp0aXRsZT4KICAgIDwvbWVkaWE6Z3JvdXA+CiAgPC9lbnRyeT4KICA8ZW50cnk+CiAgICA8aWQ+aHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc0NDA4ODM1OTExODY8L2lkPgogICAgPHB1Ymxpc2hlZD4yMDEwLTA5LTAzVDIyOjI3OjEzLjAwMFo8L3B1Ymxpc2hlZD4KICAgIDx1cGRhdGVkPjIwMTAtMDktMDNUMjI6Mjc6MTMuOTMwWjwvdXBkYXRlZD4KICAgIDxjYXRlZ29yeSBzY2hlbWU9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2tpbmQnIHRlcm09J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcGhvdG8nLz4KICAgIDx0aXRsZSB0eXBlPSd0ZXh0Jz4wMDA0Mi5qcGc8L3RpdGxlPgogICAgPHN1bW1hcnkgdHlwZT0ndGV4dCcvPgogICAgPGNvbnRlbnQgdHlwZT0naW1hZ2UvanBlZycgc3JjPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMlFSdHh5QkkvQUFBQUFBQUFBVFkvMUVyMGg2VUJqNFUvczUxMi8wMDA0Mi5qcGcnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUjZmVlZCcgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc0NDA4ODM1OTExODYnLz4KICAgIDxsaW5rIHJlbD0nYWx0ZXJuYXRlJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvWEZlc3QyMDEwIzU1MTI4MTc0NDA4ODM1OTExODYnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNjYW5vbmljYWwnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3Bob3RvL0NlT3NfS1hkRG1oelNLQ0paRVNVOXcnLz4KICAgIDxsaW5rIHJlbD0nc2VsZicgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3NDQwODgzNTkxMTg2Jy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcmVwb3J0JyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9yZXBvcnRBYnVzZT91bmFtZT0xMTM5NDcyMzU1MzgyNDcxMTEwMDcmYW1wO2FpZD01NTEyODE3MDM5MjA1MTIzNzc3JmFtcDtpaWQ9NTUxMjgxNzQ0MDg4MzU5MTE4NicvPgogICAgPGdwaG90bzppZD41NTEyODE3NDQwODgzNTkxMTg2PC9ncGhvdG86aWQ+CiAgICA8Z3Bob3RvOnZlcnNpb24+MTwvZ3Bob3RvOnZlcnNpb24+CiAgICA8Z3Bob3RvOnBvc2l0aW9uPjQxLjA8L2dwaG90bzpwb3NpdGlvbj4KICAgIDxncGhvdG86YWxidW1pZD41NTEyODE3MDM5MjA1MTIzNzc3PC9ncGhvdG86YWxidW1pZD4KICAgIDxncGhvdG86YWNjZXNzPnB1YmxpYzwvZ3Bob3RvOmFjY2Vzcz4KICAgIDxncGhvdG86d2lkdGg+MTYwMDwvZ3Bob3RvOndpZHRoPgogICAgPGdwaG90bzpoZWlnaHQ+MTA2MzwvZ3Bob3RvOmhlaWdodD4KICAgIDxncGhvdG86c2l6ZT4xNzk1ODI8L2dwaG90bzpzaXplPgogICAgPGdwaG90bzpjbGllbnQ+cGljYXNhPC9ncGhvdG86Y2xpZW50PgogICAgPGdwaG90bzpjaGVja3N1bT4zN2NhYzA1MjwvZ3Bob3RvOmNoZWNrc3VtPgogICAgPGdwaG90bzp0aW1lc3RhbXA+MTI4MzU0MTM4MjAwMDwvZ3Bob3RvOnRpbWVzdGFtcD4KICAgIDxncGhvdG86aW1hZ2VWZXJzaW9uPjMxMDwvZ3Bob3RvOmltYWdlVmVyc2lvbj4KICAgIDxncGhvdG86Y29tbWVudENvdW50PjA8L2dwaG90bzpjb21tZW50Q291bnQ+CiAgICA8Z3Bob3RvOmxpY2Vuc2UgaWQ9JzAnIG5hbWU9J0FsbCBSaWdodHMgUmVzZXJ2ZWQnIHVybD0nJz5BTExfUklHSFRTX1JFU0VSVkVEPC9ncGhvdG86bGljZW5zZT4KICAgIDxleGlmOnRhZ3M+CiAgICAgIDxleGlmOmZzdG9wPjYuMzwvZXhpZjpmc3RvcD4KICAgICAgPGV4aWY6bWFrZT5OSUtPTiBDT1JQT1JBVElPTjwvZXhpZjptYWtlPgogICAgICA8ZXhpZjptb2RlbD5OSUtPTiBEOTA8L2V4aWY6bW9kZWw+CiAgICAgIDxleGlmOmV4cG9zdXJlPjAuMDE2NjY2NjY4PC9leGlmOmV4cG9zdXJlPgogICAgICA8ZXhpZjpmbGFzaD50cnVlPC9leGlmOmZsYXNoPgogICAgICA8ZXhpZjpmb2NhbGxlbmd0aD4yMC4wPC9leGlmOmZvY2FsbGVuZ3RoPgogICAgICA8ZXhpZjppc28+MTI1MDwvZXhpZjppc28+CiAgICAgIDxleGlmOnRpbWU+MTI4MzU0MTM4MjAwMDwvZXhpZjp0aW1lPgogICAgICA8ZXhpZjppbWFnZVVuaXF1ZUlEPjZkOGNlYzczNjAzM2JkYjgzM2RjZWM4YTIwMjIxODY1PC9leGlmOmltYWdlVW5pcXVlSUQ+CiAgICA8L2V4aWY6dGFncz4KICAgIDxtZWRpYTpncm91cD4KICAgICAgPG1lZGlhOmNvbnRlbnQgdXJsPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMlFSdHh5QkkvQUFBQUFBQUFBVFkvMUVyMGg2VUJqNFUvczUxMi8wMDA0Mi5qcGcnIGhlaWdodD0nMzQxJyB3aWR0aD0nNTEyJyB0eXBlPSdpbWFnZS9qcGVnJyBtZWRpdW09J2ltYWdlJy8+CiAgICAgIDxtZWRpYTpjcmVkaXQ+SGVsc2luZ8O4ciBHeW1uYXNpdW1zIEJpbGxlZGFya2l2PC9tZWRpYTpjcmVkaXQ+CiAgICAgIDxtZWRpYTpkZXNjcmlwdGlvbiB0eXBlPSdwbGFpbicvPgogICAgICA8bWVkaWE6a2V5d29yZHMvPgogICAgICA8bWVkaWE6dGh1bWJuYWlsIHVybD0naHR0cDovL2xoNC5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjJRUnR4eUJJL0FBQUFBQUFBQVRZLzFFcjBoNlVCajRVL3M0OC1jLzAwMDQyLmpwZycgaGVpZ2h0PSc0OCcgd2lkdGg9JzQ4Jy8+CiAgICAgIDxtZWRpYTp0aXRsZSB0eXBlPSdwbGFpbic+MDAwNDIuanBnPC9tZWRpYTp0aXRsZT4KICAgIDwvbWVkaWE6Z3JvdXA+CiAgPC9lbnRyeT4KICA8ZW50cnk+CiAgICA8aWQ+aHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc0NTczMzE2OTQ2OTA8L2lkPgogICAgPHB1Ymxpc2hlZD4yMDEwLTA5LTAzVDIyOjI3OjE2LjAwMFo8L3B1Ymxpc2hlZD4KICAgIDx1cGRhdGVkPjIwMTAtMDktMDNUMjI6Mjc6MTYuMTMzWjwvdXBkYXRlZD4KICAgIDxjYXRlZ29yeSBzY2hlbWU9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2tpbmQnIHRlcm09J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcGhvdG8nLz4KICAgIDx0aXRsZSB0eXBlPSd0ZXh0Jz4wMDA0My5qcGc8L3RpdGxlPgogICAgPHN1bW1hcnkgdHlwZT0ndGV4dCcvPgogICAgPGNvbnRlbnQgdHlwZT0naW1hZ2UvanBlZycgc3JjPSdodHRwOi8vbGg1LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMlJPX1Q3R0kvQUFBQUFBQUFBVGcvZ0dGZkt2RTBlblUvczUxMi8wMDA0My5qcGcnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUjZmVlZCcgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc0NTczMzE2OTQ2OTAnLz4KICAgIDxsaW5rIHJlbD0nYWx0ZXJuYXRlJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvWEZlc3QyMDEwIzU1MTI4MTc0NTczMzE2OTQ2OTAnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNjYW5vbmljYWwnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3Bob3RvL0dnNHN2WTN3R0MyRkFkT3FuczBNM3cnLz4KICAgIDxsaW5rIHJlbD0nc2VsZicgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3NDU3MzMxNjk0NjkwJy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcmVwb3J0JyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9yZXBvcnRBYnVzZT91bmFtZT0xMTM5NDcyMzU1MzgyNDcxMTEwMDcmYW1wO2FpZD01NTEyODE3MDM5MjA1MTIzNzc3JmFtcDtpaWQ9NTUxMjgxNzQ1NzMzMTY5NDY5MCcvPgogICAgPGdwaG90bzppZD41NTEyODE3NDU3MzMxNjk0NjkwPC9ncGhvdG86aWQ+CiAgICA8Z3Bob3RvOnZlcnNpb24+MTwvZ3Bob3RvOnZlcnNpb24+CiAgICA8Z3Bob3RvOnBvc2l0aW9uPjQyLjA8L2dwaG90bzpwb3NpdGlvbj4KICAgIDxncGhvdG86YWxidW1pZD41NTEyODE3MDM5MjA1MTIzNzc3PC9ncGhvdG86YWxidW1pZD4KICAgIDxncGhvdG86YWNjZXNzPnB1YmxpYzwvZ3Bob3RvOmFjY2Vzcz4KICAgIDxncGhvdG86d2lkdGg+MTYwMDwvZ3Bob3RvOndpZHRoPgogICAgPGdwaG90bzpoZWlnaHQ+MTA2MzwvZ3Bob3RvOmhlaWdodD4KICAgIDxncGhvdG86c2l6ZT4xMTY3OTk8L2dwaG90bzpzaXplPgogICAgPGdwaG90bzpjbGllbnQ+cGljYXNhPC9ncGhvdG86Y2xpZW50PgogICAgPGdwaG90bzpjaGVja3N1bT4zN2QwODA1MjwvZ3Bob3RvOmNoZWNrc3VtPgogICAgPGdwaG90bzp0aW1lc3RhbXA+MTI4MzU0MTQ1OTAwMDwvZ3Bob3RvOnRpbWVzdGFtcD4KICAgIDxncGhvdG86aW1hZ2VWZXJzaW9uPjMxMjwvZ3Bob3RvOmltYWdlVmVyc2lvbj4KICAgIDxncGhvdG86Y29tbWVudENvdW50PjA8L2dwaG90bzpjb21tZW50Q291bnQ+CiAgICA8Z3Bob3RvOmxpY2Vuc2UgaWQ9JzAnIG5hbWU9J0FsbCBSaWdodHMgUmVzZXJ2ZWQnIHVybD0nJz5BTExfUklHSFRTX1JFU0VSVkVEPC9ncGhvdG86bGljZW5zZT4KICAgIDxleGlmOnRhZ3M+CiAgICAgIDxleGlmOmZzdG9wPjYuMzwvZXhpZjpmc3RvcD4KICAgICAgPGV4aWY6bWFrZT5OSUtPTiBDT1JQT1JBVElPTjwvZXhpZjptYWtlPgogICAgICA8ZXhpZjptb2RlbD5OSUtPTiBEOTA8L2V4aWY6bW9kZWw+CiAgICAgIDxleGlmOmV4cG9zdXJlPjAuMDE2NjY2NjY4PC9leGlmOmV4cG9zdXJlPgogICAgICA8ZXhpZjpmbGFzaD50cnVlPC9leGlmOmZsYXNoPgogICAgICA8ZXhpZjpmb2NhbGxlbmd0aD4zNC4wPC9leGlmOmZvY2FsbGVuZ3RoPgogICAgICA8ZXhpZjppc28+MTI1MDwvZXhpZjppc28+CiAgICAgIDxleGlmOnRpbWU+MTI4MzU0MTQ1OTAwMDwvZXhpZjp0aW1lPgogICAgICA8ZXhpZjppbWFnZVVuaXF1ZUlEPmY1MDY3MmIyMWRjMjhjYzZiNzc5MGE1OGYyMzE3M2JhPC9leGlmOmltYWdlVW5pcXVlSUQ+CiAgICA8L2V4aWY6dGFncz4KICAgIDxtZWRpYTpncm91cD4KICAgICAgPG1lZGlhOmNvbnRlbnQgdXJsPSdodHRwOi8vbGg1LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMlJPX1Q3R0kvQUFBQUFBQUFBVGcvZ0dGZkt2RTBlblUvczUxMi8wMDA0My5qcGcnIGhlaWdodD0nMzQxJyB3aWR0aD0nNTEyJyB0eXBlPSdpbWFnZS9qcGVnJyBtZWRpdW09J2ltYWdlJy8+CiAgICAgIDxtZWRpYTpjcmVkaXQ+SGVsc2luZ8O4ciBHeW1uYXNpdW1zIEJpbGxlZGFya2l2PC9tZWRpYTpjcmVkaXQ+CiAgICAgIDxtZWRpYTpkZXNjcmlwdGlvbiB0eXBlPSdwbGFpbicvPgogICAgICA8bWVkaWE6a2V5d29yZHMvPgogICAgICA8bWVkaWE6dGh1bWJuYWlsIHVybD0naHR0cDovL2xoNS5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjJST19UN0dJL0FBQUFBQUFBQVRnL2dHRmZLdkUwZW5VL3M0OC1jLzAwMDQzLmpwZycgaGVpZ2h0PSc0OCcgd2lkdGg9JzQ4Jy8+CiAgICAgIDxtZWRpYTp0aXRsZSB0eXBlPSdwbGFpbic+MDAwNDMuanBnPC9tZWRpYTp0aXRsZT4KICAgIDwvbWVkaWE6Z3JvdXA+CiAgPC9lbnRyeT4KICA8ZW50cnk+CiAgICA8aWQ+aHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc0NjY2NDIxNDc4MjY8L2lkPgogICAgPHB1Ymxpc2hlZD4yMDEwLTA5LTAzVDIyOjI3OjE5LjAwMFo8L3B1Ymxpc2hlZD4KICAgIDx1cGRhdGVkPjIwMTAtMDktMDNUMjI6Mjc6MTkuNTcxWjwvdXBkYXRlZD4KICAgIDxjYXRlZ29yeSBzY2hlbWU9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2tpbmQnIHRlcm09J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcGhvdG8nLz4KICAgIDx0aXRsZSB0eXBlPSd0ZXh0Jz4wMDA0NC5qcGc8L3RpdGxlPgogICAgPHN1bW1hcnkgdHlwZT0ndGV4dCcvPgogICAgPGNvbnRlbnQgdHlwZT0naW1hZ2UvanBlZycgc3JjPSdodHRwOi8vbGgzLmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMlJ4ckdLZkkvQUFBQUFBQUFBVG8vVWZCNUdQekxWSFUvczUxMi8wMDA0NC5qcGcnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUjZmVlZCcgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc0NjY2NDIxNDc4MjYnLz4KICAgIDxsaW5rIHJlbD0nYWx0ZXJuYXRlJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvWEZlc3QyMDEwIzU1MTI4MTc0NjY2NDIxNDc4MjYnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNjYW5vbmljYWwnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3Bob3RvL3ZVX0VVeUJkMDBGdm5RX3kxX0NtY1EnLz4KICAgIDxsaW5rIHJlbD0nc2VsZicgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3NDY2NjQyMTQ3ODI2Jy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcmVwb3J0JyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9yZXBvcnRBYnVzZT91bmFtZT0xMTM5NDcyMzU1MzgyNDcxMTEwMDcmYW1wO2FpZD01NTEyODE3MDM5MjA1MTIzNzc3JmFtcDtpaWQ9NTUxMjgxNzQ2NjY0MjE0NzgyNicvPgogICAgPGdwaG90bzppZD41NTEyODE3NDY2NjQyMTQ3ODI2PC9ncGhvdG86aWQ+CiAgICA8Z3Bob3RvOnZlcnNpb24+MTwvZ3Bob3RvOnZlcnNpb24+CiAgICA8Z3Bob3RvOnBvc2l0aW9uPjQzLjA8L2dwaG90bzpwb3NpdGlvbj4KICAgIDxncGhvdG86YWxidW1pZD41NTEyODE3MDM5MjA1MTIzNzc3PC9ncGhvdG86YWxidW1pZD4KICAgIDxncGhvdG86YWNjZXNzPnB1YmxpYzwvZ3Bob3RvOmFjY2Vzcz4KICAgIDxncGhvdG86d2lkdGg+MTYwMDwvZ3Bob3RvOndpZHRoPgogICAgPGdwaG90bzpoZWlnaHQ+MTA2MzwvZ3Bob3RvOmhlaWdodD4KICAgIDxncGhvdG86c2l6ZT4xODYxNjM8L2dwaG90bzpzaXplPgogICAgPGdwaG90bzpjbGllbnQ+cGljYXNhPC9ncGhvdG86Y2xpZW50PgogICAgPGdwaG90bzpjaGVja3N1bT4zN2RkMDA1MjwvZ3Bob3RvOmNoZWNrc3VtPgogICAgPGdwaG90bzp0aW1lc3RhbXA+MTI4MzU0MTQ5NTAwMDwvZ3Bob3RvOnRpbWVzdGFtcD4KICAgIDxncGhvdG86aW1hZ2VWZXJzaW9uPjMxNDwvZ3Bob3RvOmltYWdlVmVyc2lvbj4KICAgIDxncGhvdG86Y29tbWVudENvdW50PjA8L2dwaG90bzpjb21tZW50Q291bnQ+CiAgICA8Z3Bob3RvOmxpY2Vuc2UgaWQ9JzAnIG5hbWU9J0FsbCBSaWdodHMgUmVzZXJ2ZWQnIHVybD0nJz5BTExfUklHSFRTX1JFU0VSVkVEPC9ncGhvdG86bGljZW5zZT4KICAgIDxleGlmOnRhZ3M+CiAgICAgIDxleGlmOmZzdG9wPjYuMzwvZXhpZjpmc3RvcD4KICAgICAgPGV4aWY6bWFrZT5OSUtPTiBDT1JQT1JBVElPTjwvZXhpZjptYWtlPgogICAgICA8ZXhpZjptb2RlbD5OSUtPTiBEOTA8L2V4aWY6bW9kZWw+CiAgICAgIDxleGlmOmV4cG9zdXJlPjAuMDE2NjY2NjY4PC9leGlmOmV4cG9zdXJlPgogICAgICA8ZXhpZjpmbGFzaD50cnVlPC9leGlmOmZsYXNoPgogICAgICA8ZXhpZjpmb2NhbGxlbmd0aD4yOS4wPC9leGlmOmZvY2FsbGVuZ3RoPgogICAgICA8ZXhpZjppc28+MTI1MDwvZXhpZjppc28+CiAgICAgIDxleGlmOnRpbWU+MTI4MzU0MTQ5NTAwMDwvZXhpZjp0aW1lPgogICAgICA8ZXhpZjppbWFnZVVuaXF1ZUlEPjg4NGI0N2M2NjNmOGY4MmQ0ODEzZDY3Nzg4NTVhNGM5PC9leGlmOmltYWdlVW5pcXVlSUQ+CiAgICA8L2V4aWY6dGFncz4KICAgIDxtZWRpYTpncm91cD4KICAgICAgPG1lZGlhOmNvbnRlbnQgdXJsPSdodHRwOi8vbGgzLmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMlJ4ckdLZkkvQUFBQUFBQUFBVG8vVWZCNUdQekxWSFUvczUxMi8wMDA0NC5qcGcnIGhlaWdodD0nMzQxJyB3aWR0aD0nNTEyJyB0eXBlPSdpbWFnZS9qcGVnJyBtZWRpdW09J2ltYWdlJy8+CiAgICAgIDxtZWRpYTpjcmVkaXQ+SGVsc2luZ8O4ciBHeW1uYXNpdW1zIEJpbGxlZGFya2l2PC9tZWRpYTpjcmVkaXQ+CiAgICAgIDxtZWRpYTpkZXNjcmlwdGlvbiB0eXBlPSdwbGFpbicvPgogICAgICA8bWVkaWE6a2V5d29yZHMvPgogICAgICA8bWVkaWE6dGh1bWJuYWlsIHVybD0naHR0cDovL2xoMy5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjJSeHJHS2ZJL0FBQUFBQUFBQVRvL1VmQjVHUHpMVkhVL3M0OC1jLzAwMDQ0LmpwZycgaGVpZ2h0PSc0OCcgd2lkdGg9JzQ4Jy8+CiAgICAgIDxtZWRpYTp0aXRsZSB0eXBlPSdwbGFpbic+MDAwNDQuanBnPC9tZWRpYTp0aXRsZT4KICAgIDwvbWVkaWE6Z3JvdXA+CiAgPC9lbnRyeT4KICA8ZW50cnk+CiAgICA8aWQ+aHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc0ODE0NjcxMzEyNTA8L2lkPgogICAgPHB1Ymxpc2hlZD4yMDEwLTA5LTAzVDIyOjI3OjIyLjAwMFo8L3B1Ymxpc2hlZD4KICAgIDx1cGRhdGVkPjIwMTAtMDktMDNUMjI6Mjc6MjIuMTg2WjwvdXBkYXRlZD4KICAgIDxjYXRlZ29yeSBzY2hlbWU9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2tpbmQnIHRlcm09J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcGhvdG8nLz4KICAgIDx0aXRsZSB0eXBlPSd0ZXh0Jz4wMDA0NS5qcGc8L3RpdGxlPgogICAgPHN1bW1hcnkgdHlwZT0ndGV4dCcvPgogICAgPGNvbnRlbnQgdHlwZT0naW1hZ2UvanBlZycgc3JjPSdodHRwOi8vbGg1LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMlNvNXBkWEkvQUFBQUFBQUFBVHcvZFJfNkV5a2tBVTQvczUxMi8wMDA0NS5qcGcnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUjZmVlZCcgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc0ODE0NjcxMzEyNTAnLz4KICAgIDxsaW5rIHJlbD0nYWx0ZXJuYXRlJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvWEZlc3QyMDEwIzU1MTI4MTc0ODE0NjcxMzEyNTAnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNjYW5vbmljYWwnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3Bob3RvL2d0eFFvY29DczI5NU9SNVZhbTNndUEnLz4KICAgIDxsaW5rIHJlbD0nc2VsZicgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3NDgxNDY3MTMxMjUwJy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcmVwb3J0JyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9yZXBvcnRBYnVzZT91bmFtZT0xMTM5NDcyMzU1MzgyNDcxMTEwMDcmYW1wO2FpZD01NTEyODE3MDM5MjA1MTIzNzc3JmFtcDtpaWQ9NTUxMjgxNzQ4MTQ2NzEzMTI1MCcvPgogICAgPGdwaG90bzppZD41NTEyODE3NDgxNDY3MTMxMjUwPC9ncGhvdG86aWQ+CiAgICA8Z3Bob3RvOnZlcnNpb24+MTwvZ3Bob3RvOnZlcnNpb24+CiAgICA8Z3Bob3RvOnBvc2l0aW9uPjQ0LjA8L2dwaG90bzpwb3NpdGlvbj4KICAgIDxncGhvdG86YWxidW1pZD41NTEyODE3MDM5MjA1MTIzNzc3PC9ncGhvdG86YWxidW1pZD4KICAgIDxncGhvdG86YWNjZXNzPnB1YmxpYzwvZ3Bob3RvOmFjY2Vzcz4KICAgIDxncGhvdG86d2lkdGg+MTYwMDwvZ3Bob3RvOndpZHRoPgogICAgPGdwaG90bzpoZWlnaHQ+MTA2MzwvZ3Bob3RvOmhlaWdodD4KICAgIDxncGhvdG86c2l6ZT4xMzczOTQ8L2dwaG90bzpzaXplPgogICAgPGdwaG90bzpjbGllbnQ+cGljYXNhPC9ncGhvdG86Y2xpZW50PgogICAgPGdwaG90bzpjaGVja3N1bT4zN2RiYzA1MjwvZ3Bob3RvOmNoZWNrc3VtPgogICAgPGdwaG90bzp0aW1lc3RhbXA+MTI4MzU0MTUxNzAwMDwvZ3Bob3RvOnRpbWVzdGFtcD4KICAgIDxncGhvdG86aW1hZ2VWZXJzaW9uPjMxNjwvZ3Bob3RvOmltYWdlVmVyc2lvbj4KICAgIDxncGhvdG86Y29tbWVudENvdW50PjA8L2dwaG90bzpjb21tZW50Q291bnQ+CiAgICA8Z3Bob3RvOmxpY2Vuc2UgaWQ9JzAnIG5hbWU9J0FsbCBSaWdodHMgUmVzZXJ2ZWQnIHVybD0nJz5BTExfUklHSFRTX1JFU0VSVkVEPC9ncGhvdG86bGljZW5zZT4KICAgIDxleGlmOnRhZ3M+CiAgICAgIDxleGlmOmZzdG9wPjYuMzwvZXhpZjpmc3RvcD4KICAgICAgPGV4aWY6bWFrZT5OSUtPTiBDT1JQT1JBVElPTjwvZXhpZjptYWtlPgogICAgICA8ZXhpZjptb2RlbD5OSUtPTiBEOTA8L2V4aWY6bW9kZWw+CiAgICAgIDxleGlmOmV4cG9zdXJlPjAuMDE2NjY2NjY4PC9leGlmOmV4cG9zdXJlPgogICAgICA8ZXhpZjpmbGFzaD50cnVlPC9leGlmOmZsYXNoPgogICAgICA8ZXhpZjpmb2NhbGxlbmd0aD43MC4wPC9leGlmOmZvY2FsbGVuZ3RoPgogICAgICA8ZXhpZjppc28+MTI1MDwvZXhpZjppc28+CiAgICAgIDxleGlmOnRpbWU+MTI4MzU0MTUxNzAwMDwvZXhpZjp0aW1lPgogICAgICA8ZXhpZjppbWFnZVVuaXF1ZUlEPjVhYTNlYThmNWMwMDgyZTRmMzRhZmJmZWMzNzYwMjNlPC9leGlmOmltYWdlVW5pcXVlSUQ+CiAgICA8L2V4aWY6dGFncz4KICAgIDxtZWRpYTpncm91cD4KICAgICAgPG1lZGlhOmNvbnRlbnQgdXJsPSdodHRwOi8vbGg1LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMlNvNXBkWEkvQUFBQUFBQUFBVHcvZFJfNkV5a2tBVTQvczUxMi8wMDA0NS5qcGcnIGhlaWdodD0nMzQxJyB3aWR0aD0nNTEyJyB0eXBlPSdpbWFnZS9qcGVnJyBtZWRpdW09J2ltYWdlJy8+CiAgICAgIDxtZWRpYTpjcmVkaXQ+SGVsc2luZ8O4ciBHeW1uYXNpdW1zIEJpbGxlZGFya2l2PC9tZWRpYTpjcmVkaXQ+CiAgICAgIDxtZWRpYTpkZXNjcmlwdGlvbiB0eXBlPSdwbGFpbicvPgogICAgICA8bWVkaWE6a2V5d29yZHMvPgogICAgICA8bWVkaWE6dGh1bWJuYWlsIHVybD0naHR0cDovL2xoNS5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjJTbzVwZFhJL0FBQUFBQUFBQVR3L2RSXzZFeWtrQVU0L3M0OC1jLzAwMDQ1LmpwZycgaGVpZ2h0PSc0OCcgd2lkdGg9JzQ4Jy8+CiAgICAgIDxtZWRpYTp0aXRsZSB0eXBlPSdwbGFpbic+MDAwNDUuanBnPC9tZWRpYTp0aXRsZT4KICAgIDwvbWVkaWE6Z3JvdXA+CiAgPC9lbnRyeT4KICA8ZW50cnk+CiAgICA8aWQ+aHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc0ODc5OTkyNjYzNTQ8L2lkPgogICAgPHB1Ymxpc2hlZD4yMDEwLTA5LTAzVDIyOjI3OjI0LjAwMFo8L3B1Ymxpc2hlZD4KICAgIDx1cGRhdGVkPjIwMTAtMDktMDNUMjI6Mjc6MjQuMzAzWjwvdXBkYXRlZD4KICAgIDxjYXRlZ29yeSBzY2hlbWU9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2tpbmQnIHRlcm09J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcGhvdG8nLz4KICAgIDx0aXRsZSB0eXBlPSd0ZXh0Jz4wMDA0Ni5qcGc8L3RpdGxlPgogICAgPHN1bW1hcnkgdHlwZT0ndGV4dCcvPgogICAgPGNvbnRlbnQgdHlwZT0naW1hZ2UvanBlZycgc3JjPSdodHRwOi8vbGgzLmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMlRCUEI3akkvQUFBQUFBQUFBVDQvZFgwZmVqeklVVTgvczUxMi8wMDA0Ni5qcGcnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUjZmVlZCcgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc0ODc5OTkyNjYzNTQnLz4KICAgIDxsaW5rIHJlbD0nYWx0ZXJuYXRlJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvWEZlc3QyMDEwIzU1MTI4MTc0ODc5OTkyNjYzNTQnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNjYW5vbmljYWwnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3Bob3RvL0EyVkx4eUdyaUtpSE5UbGVOa0VnTGcnLz4KICAgIDxsaW5rIHJlbD0nc2VsZicgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3NDg3OTk5MjY2MzU0Jy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcmVwb3J0JyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9yZXBvcnRBYnVzZT91bmFtZT0xMTM5NDcyMzU1MzgyNDcxMTEwMDcmYW1wO2FpZD01NTEyODE3MDM5MjA1MTIzNzc3JmFtcDtpaWQ9NTUxMjgxNzQ4Nzk5OTI2NjM1NCcvPgogICAgPGdwaG90bzppZD41NTEyODE3NDg3OTk5MjY2MzU0PC9ncGhvdG86aWQ+CiAgICA8Z3Bob3RvOnZlcnNpb24+MTwvZ3Bob3RvOnZlcnNpb24+CiAgICA8Z3Bob3RvOnBvc2l0aW9uPjQ1LjA8L2dwaG90bzpwb3NpdGlvbj4KICAgIDxncGhvdG86YWxidW1pZD41NTEyODE3MDM5MjA1MTIzNzc3PC9ncGhvdG86YWxidW1pZD4KICAgIDxncGhvdG86YWNjZXNzPnB1YmxpYzwvZ3Bob3RvOmFjY2Vzcz4KICAgIDxncGhvdG86d2lkdGg+MTYwMDwvZ3Bob3RvOndpZHRoPgogICAgPGdwaG90bzpoZWlnaHQ+MTA2MzwvZ3Bob3RvOmhlaWdodD4KICAgIDxncGhvdG86c2l6ZT4xNTQ4OTc8L2dwaG90bzpzaXplPgogICAgPGdwaG90bzpjbGllbnQ+cGljYXNhPC9ncGhvdG86Y2xpZW50PgogICAgPGdwaG90bzpjaGVja3N1bT4zN2U4YzA1MjwvZ3Bob3RvOmNoZWNrc3VtPgogICAgPGdwaG90bzp0aW1lc3RhbXA+MTI4MzU0MTY1MzAwMDwvZ3Bob3RvOnRpbWVzdGFtcD4KICAgIDxncGhvdG86aW1hZ2VWZXJzaW9uPjMxODwvZ3Bob3RvOmltYWdlVmVyc2lvbj4KICAgIDxncGhvdG86Y29tbWVudENvdW50PjA8L2dwaG90bzpjb21tZW50Q291bnQ+CiAgICA8Z3Bob3RvOmxpY2Vuc2UgaWQ9JzAnIG5hbWU9J0FsbCBSaWdodHMgUmVzZXJ2ZWQnIHVybD0nJz5BTExfUklHSFRTX1JFU0VSVkVEPC9ncGhvdG86bGljZW5zZT4KICAgIDxleGlmOnRhZ3M+CiAgICAgIDxleGlmOmZzdG9wPjYuMzwvZXhpZjpmc3RvcD4KICAgICAgPGV4aWY6bWFrZT5OSUtPTiBDT1JQT1JBVElPTjwvZXhpZjptYWtlPgogICAgICA8ZXhpZjptb2RlbD5OSUtPTiBEOTA8L2V4aWY6bW9kZWw+CiAgICAgIDxleGlmOmV4cG9zdXJlPjAuMDE2NjY2NjY4PC9leGlmOmV4cG9zdXJlPgogICAgICA8ZXhpZjpmbGFzaD50cnVlPC9leGlmOmZsYXNoPgogICAgICA8ZXhpZjpmb2NhbGxlbmd0aD4zNi4wPC9leGlmOmZvY2FsbGVuZ3RoPgogICAgICA8ZXhpZjppc28+MTI1MDwvZXhpZjppc28+CiAgICAgIDxleGlmOnRpbWU+MTI4MzU0MTY1MzAwMDwvZXhpZjp0aW1lPgogICAgICA8ZXhpZjppbWFnZVVuaXF1ZUlEPjQ5YWUwZWVmNmNjMGU5ZDAzZjY4MWNjMTk3MTRlOTE5PC9leGlmOmltYWdlVW5pcXVlSUQ+CiAgICA8L2V4aWY6dGFncz4KICAgIDxtZWRpYTpncm91cD4KICAgICAgPG1lZGlhOmNvbnRlbnQgdXJsPSdodHRwOi8vbGgzLmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMlRCUEI3akkvQUFBQUFBQUFBVDQvZFgwZmVqeklVVTgvczUxMi8wMDA0Ni5qcGcnIGhlaWdodD0nMzQxJyB3aWR0aD0nNTEyJyB0eXBlPSdpbWFnZS9qcGVnJyBtZWRpdW09J2ltYWdlJy8+CiAgICAgIDxtZWRpYTpjcmVkaXQ+SGVsc2luZ8O4ciBHeW1uYXNpdW1zIEJpbGxlZGFya2l2PC9tZWRpYTpjcmVkaXQ+CiAgICAgIDxtZWRpYTpkZXNjcmlwdGlvbiB0eXBlPSdwbGFpbicvPgogICAgICA8bWVkaWE6a2V5d29yZHMvPgogICAgICA8bWVkaWE6dGh1bWJuYWlsIHVybD0naHR0cDovL2xoMy5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjJUQlBCN2pJL0FBQUFBQUFBQVQ0L2RYMGZlanpJVVU4L3M0OC1jLzAwMDQ2LmpwZycgaGVpZ2h0PSc0OCcgd2lkdGg9JzQ4Jy8+CiAgICAgIDxtZWRpYTp0aXRsZSB0eXBlPSdwbGFpbic+MDAwNDYuanBnPC9tZWRpYTp0aXRsZT4KICAgIDwvbWVkaWE6Z3JvdXA+CiAgPC9lbnRyeT4KICA8ZW50cnk+CiAgICA8aWQ+aHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc0OTcwMjIxNTgwMDI8L2lkPgogICAgPHB1Ymxpc2hlZD4yMDEwLTA5LTAzVDIyOjI3OjI2LjAwMFo8L3B1Ymxpc2hlZD4KICAgIDx1cGRhdGVkPjIwMTAtMDktMDNUMjI6Mjc6MjYuNzk1WjwvdXBkYXRlZD4KICAgIDxjYXRlZ29yeSBzY2hlbWU9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2tpbmQnIHRlcm09J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcGhvdG8nLz4KICAgIDx0aXRsZSB0eXBlPSd0ZXh0Jz4wMDA0Ny5qcGc8L3RpdGxlPgogICAgPHN1bW1hcnkgdHlwZT0ndGV4dCcvPgogICAgPGNvbnRlbnQgdHlwZT0naW1hZ2UvanBlZycgc3JjPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMlRpMlFWTEkvQUFBQUFBQUFBVUEvcmVpUTdDMkd4MmMvczUxMi8wMDA0Ny5qcGcnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUjZmVlZCcgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc0OTcwMjIxNTgwMDInLz4KICAgIDxsaW5rIHJlbD0nYWx0ZXJuYXRlJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvWEZlc3QyMDEwIzU1MTI4MTc0OTcwMjIxNTgwMDInLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNjYW5vbmljYWwnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3Bob3RvL1RpUnJXRGt4MC1pVE5sLTFIRGI1YncnLz4KICAgIDxsaW5rIHJlbD0nc2VsZicgdHlwZT0nYXBwbGljYXRpb24vYXRvbSt4bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3NDk3MDIyMTU4MDAyJy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcmVwb3J0JyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9yZXBvcnRBYnVzZT91bmFtZT0xMTM5NDcyMzU1MzgyNDcxMTEwMDcmYW1wO2FpZD01NTEyODE3MDM5MjA1MTIzNzc3JmFtcDtpaWQ9NTUxMjgxNzQ5NzAyMjE1ODAwMicvPgogICAgPGdwaG90bzppZD41NTEyODE3NDk3MDIyMTU4MDAyPC9ncGhvdG86aWQ+CiAgICA8Z3Bob3RvOnZlcnNpb24+MTwvZ3Bob3RvOnZlcnNpb24+CiAgICA8Z3Bob3RvOnBvc2l0aW9uPjQ2LjA8L2dwaG90bzpwb3NpdGlvbj4KICAgIDxncGhvdG86YWxidW1pZD41NTEyODE3MDM5MjA1MTIzNzc3PC9ncGhvdG86YWxidW1pZD4KICAgIDxncGhvdG86YWNjZXNzPnB1YmxpYzwvZ3Bob3RvOmFjY2Vzcz4KICAgIDxncGhvdG86d2lkdGg+MTYwMDwvZ3Bob3RvOndpZHRoPgogICAgPGdwaG90bzpoZWlnaHQ+MTA2MzwvZ3Bob3RvOmhlaWdodD4KICAgIDxncGhvdG86c2l6ZT4yMTQ4MTk8L2dwaG90bzpzaXplPgogICAgPGdwaG90bzpjbGllbnQ+cGljYXNhPC9ncGhvdG86Y2xpZW50PgogICAgPGdwaG90bzpjaGVja3N1bT4zODJjMDA1MjwvZ3Bob3RvOmNoZWNrc3VtPgogICAgPGdwaG90bzp0aW1lc3RhbXA+MTI4MzU0MjEyNzAwMDwvZ3Bob3RvOnRpbWVzdGFtcD4KICAgIDxncGhvdG86aW1hZ2VWZXJzaW9uPjMyMDwvZ3Bob3RvOmltYWdlVmVyc2lvbj4KICAgIDxncGhvdG86Y29tbWVudENvdW50PjA8L2dwaG90bzpjb21tZW50Q291bnQ+CiAgICA8Z3Bob3RvOmxpY2Vuc2UgaWQ9JzAnIG5hbWU9J0FsbCBSaWdodHMgUmVzZXJ2ZWQnIHVybD0nJz5BTExfUklHSFRTX1JFU0VSVkVEPC9ncGhvdG86bGljZW5zZT4KICAgIDxleGlmOnRhZ3M+CiAgICAgIDxleGlmOmZzdG9wPjQuNTwvZXhpZjpmc3RvcD4KICAgICAgPGV4aWY6bWFrZT5OSUtPTiBDT1JQT1JBVElPTjwvZXhpZjptYWtlPgogICAgICA8ZXhpZjptb2RlbD5OSUtPTiBEOTA8L2V4aWY6bW9kZWw+CiAgICAgIDxleGlmOmV4cG9zdXJlPjAuMDEyNTwvZXhpZjpleHBvc3VyZT4KICAgICAgPGV4aWY6Zmxhc2g+ZmFsc2U8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjE4LjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz4xMjUwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQyMTI3MDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+ZGYyOTJkMGMzM2ZjNDgzY2Q1NGFmZGJlZjNjY2JmODI8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDQuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyVGkyUVZMSS9BQUFBQUFBQUFVQS9yZWlRN0MyR3gyYy9zNTEyLzAwMDQ3LmpwZycgaGVpZ2h0PSczNDEnIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMlRpMlFWTEkvQUFBQUFBQUFBVUEvcmVpUTdDMkd4MmMvczQ4LWMvMDAwNDcuanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDA0Ny5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzUxMzgxODIyNDIyNjwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6Mjc6MzAuMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNzozMC4yMTlaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDQ4LmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDMuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyVWhhdjltSS9BQUFBQUFBQUFVSS9sMTlpOHdrYUtiMC9zNTEyLzAwMDQ4LmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzUxMzgxODIyNDIyNicvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzUxMzgxODIyNDIyNicvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vSVJEN05zQ01UMVl1TmpTU19qcS1xdycvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc1MTM4MTgyMjQyMjYnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3NTEzODE4MjI0MjI2Jy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTc1MTM4MTgyMjQyMjY8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+NDcuMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xNjAwPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xMDYzPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjIyMzA0MjwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjM4MmM0MDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTQyMTMwMDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+MzIyPC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+NC41PC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wNDwvZXhpZjpleHBvc3VyZT4KICAgICAgPGV4aWY6Zmxhc2g+ZmFsc2U8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjQwLjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz4xMjUwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQyMTMwMDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+ZDk3ZTExZDc2OWJlYTU1YzU4MzIxODAyOTZjNDYxNzY8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDMuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyVWhhdjltSS9BQUFBQUFBQUFVSS9sMTlpOHdrYUtiMC9zNTEyLzAwMDQ4LmpwZycgaGVpZ2h0PSczNDEnIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGgzLmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMlVoYXY5bUkvQUFBQUFBQUFBVUkvbDE5aTh3a2FLYjAvczQ4LWMvMDAwNDguanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDA0OC5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzUyNDkxMDk5MzkzODwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6Mjc6MzIuMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNzozMi43NDlaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDQ5LmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDQuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyVkt2ZU1oSS9BQUFBQUFBQUFVVS8tVnJlT2YtcTAxYy9zNTEyLzAwMDQ5LmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzUyNDkxMDk5MzkzOCcvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzUyNDkxMDk5MzkzOCcvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vUWJKbkZOTmMtczRuVE53NGxiT1k5QScvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc1MjQ5MTA5OTM5MzgnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3NTI0OTEwOTkzOTM4Jy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTc1MjQ5MTA5OTM5Mzg8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+NDguMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xNjAwPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xMDYzPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjE3NjcwNjwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjM4MmQ0MDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTQyMTM4MDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+MzI1PC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+NC41PC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wNDwvZXhpZjpleHBvc3VyZT4KICAgICAgPGV4aWY6Zmxhc2g+ZmFsc2U8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjQ0LjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz4xMjUwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQyMTM4MDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+NGZmOTRlODdiNTU0NWNmMWViYWU0YjJlYzVkMWFkMGU8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDQuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyVkt2ZU1oSS9BQUFBQUFBQUFVVS8tVnJlT2YtcTAxYy9zNTEyLzAwMDQ5LmpwZycgaGVpZ2h0PSczNDEnIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMlZLdmVNaEkvQUFBQUFBQUFBVVUvLVZyZU9mLXEwMWMvczQ4LWMvMDAwNDkuanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDA0OS5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzUzMDcxMzIzNzI5ODwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6Mjc6MzQuMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNzozNC42NjRaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDUwLmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDUuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyVmdXMVp6SS9BQUFBQUFBQUFVYy90ZE5nbWJ6WG1tYy9zNTEyLzAwMDUwLmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzUzMDcxMzIzNzI5OCcvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzUzMDcxMzIzNzI5OCcvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vZFFFYUpiZndGT1NlYnRfdHlUZDZnUScvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc1MzA3MTMyMzcyOTgnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3NTMwNzEzMjM3Mjk4Jy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTc1MzA3MTMyMzcyOTg8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+NDkuMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xNjAwPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xMDYzPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjE1Mjc0MzwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjM4M2E4MDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTQyMjc2MDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+MzI3PC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+NC41PC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wMTI1PC9leGlmOmV4cG9zdXJlPgogICAgICA8ZXhpZjpmbGFzaD5mYWxzZTwvZXhpZjpmbGFzaD4KICAgICAgPGV4aWY6Zm9jYWxsZW5ndGg+MjguMDwvZXhpZjpmb2NhbGxlbmd0aD4KICAgICAgPGV4aWY6aXNvPjEyNTA8L2V4aWY6aXNvPgogICAgICA8ZXhpZjp0aW1lPjEyODM1NDIyNzYwMDA8L2V4aWY6dGltZT4KICAgICAgPGV4aWY6aW1hZ2VVbmlxdWVJRD5jZmMwYzBkMWUxOWYzNzE0NjhkMWZjMmVmZmY3ODU1YjwvZXhpZjppbWFnZVVuaXF1ZUlEPgogICAgPC9leGlmOnRhZ3M+CiAgICA8bWVkaWE6Z3JvdXA+CiAgICAgIDxtZWRpYTpjb250ZW50IHVybD0naHR0cDovL2xoNS5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjJWZ1cxWnpJL0FBQUFBQUFBQVVjL3RkTmdtYnpYbW1jL3M1MTIvMDAwNTAuanBnJyBoZWlnaHQ9JzM0MScgd2lkdGg9JzUxMicgdHlwZT0naW1hZ2UvanBlZycgbWVkaXVtPSdpbWFnZScvPgogICAgICA8bWVkaWE6Y3JlZGl0PkhlbHNpbmfDuHIgR3ltbmFzaXVtcyBCaWxsZWRhcmtpdjwvbWVkaWE6Y3JlZGl0PgogICAgICA8bWVkaWE6ZGVzY3JpcHRpb24gdHlwZT0ncGxhaW4nLz4KICAgICAgPG1lZGlhOmtleXdvcmRzLz4KICAgICAgPG1lZGlhOnRodW1ibmFpbCB1cmw9J2h0dHA6Ly9saDUuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyVmdXMVp6SS9BQUFBQUFBQUFVYy90ZE5nbWJ6WG1tYy9zNDgtYy8wMDA1MC5qcGcnIGhlaWdodD0nNDgnIHdpZHRoPSc0OCcvPgogICAgICA8bWVkaWE6dGl0bGUgdHlwZT0ncGxhaW4nPjAwMDUwLmpwZzwvbWVkaWE6dGl0bGU+CiAgICA8L21lZGlhOmdyb3VwPgogIDwvZW50cnk+CiAgPGVudHJ5PgogICAgPGlkPmh0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2VudHJ5L2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3NTQwMTYyMTM4ODgyPC9pZD4KICAgIDxwdWJsaXNoZWQ+MjAxMC0wOS0wM1QyMjoyNzozNi4wMDBaPC9wdWJsaXNoZWQ+CiAgICA8dXBkYXRlZD4yMDEwLTA5LTAzVDIyOjI3OjM2LjM2Mlo8L3VwZGF0ZWQ+CiAgICA8Y2F0ZWdvcnkgc2NoZW1lPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNraW5kJyB0ZXJtPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I3Bob3RvJy8+CiAgICA8dGl0bGUgdHlwZT0ndGV4dCc+MDAwNTEuanBnPC90aXRsZT4KICAgIDxzdW1tYXJ5IHR5cGU9J3RleHQnLz4KICAgIDxjb250ZW50IHR5cGU9J2ltYWdlL2pwZWcnIHNyYz0naHR0cDovL2xoNi5nZ3BodC5jb20vX1JaajNUY0phNi04L1RJRjJXRGpvTXdJL0FBQUFBQUFBQVVrL0tHWUhXQzA3OFcwL3M1MTIvMDAwNTEuanBnJy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2ZlZWQnIHR5cGU9J2FwcGxpY2F0aW9uL2F0b20reG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9mZWVkL2FwaS91c2VyLzExMzk0NzIzNTUzODI0NzExMTAwNy9hbGJ1bWlkLzU1MTI4MTcwMzkyMDUxMjM3NzcvcGhvdG9pZC81NTEyODE3NTQwMTYyMTM4ODgyJy8+CiAgICA8bGluayByZWw9J2FsdGVybmF0ZScgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L1hGZXN0MjAxMCM1NTEyODE3NTQwMTYyMTM4ODgyJy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjY2Fub25pY2FsJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9waG90by9BQXYtS29rQnVPRVZzMTgxV2RBS2VBJy8+CiAgICA8bGluayByZWw9J3NlbGYnIHR5cGU9J2FwcGxpY2F0aW9uL2F0b20reG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzU0MDE2MjEzODg4MicvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I3JlcG9ydCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcmVwb3J0QWJ1c2U/dW5hbWU9MTEzOTQ3MjM1NTM4MjQ3MTExMDA3JmFtcDthaWQ9NTUxMjgxNzAzOTIwNTEyMzc3NyZhbXA7aWlkPTU1MTI4MTc1NDAxNjIxMzg4ODInLz4KICAgIDxncGhvdG86aWQ+NTUxMjgxNzU0MDE2MjEzODg4MjwvZ3Bob3RvOmlkPgogICAgPGdwaG90bzp2ZXJzaW9uPjE8L2dwaG90bzp2ZXJzaW9uPgogICAgPGdwaG90bzpwb3NpdGlvbj41MC4wPC9ncGhvdG86cG9zaXRpb24+CiAgICA8Z3Bob3RvOmFsYnVtaWQ+NTUxMjgxNzAzOTIwNTEyMzc3NzwvZ3Bob3RvOmFsYnVtaWQ+CiAgICA8Z3Bob3RvOmFjY2Vzcz5wdWJsaWM8L2dwaG90bzphY2Nlc3M+CiAgICA8Z3Bob3RvOndpZHRoPjE2MDA8L2dwaG90bzp3aWR0aD4KICAgIDxncGhvdG86aGVpZ2h0PjEwNjM8L2dwaG90bzpoZWlnaHQ+CiAgICA8Z3Bob3RvOnNpemU+MTQwODA2PC9ncGhvdG86c2l6ZT4KICAgIDxncGhvdG86Y2xpZW50PnBpY2FzYTwvZ3Bob3RvOmNsaWVudD4KICAgIDxncGhvdG86Y2hlY2tzdW0+MzgzYjgwNTI8L2dwaG90bzpjaGVja3N1bT4KICAgIDxncGhvdG86dGltZXN0YW1wPjEyODM1NDIyODQwMDA8L2dwaG90bzp0aW1lc3RhbXA+CiAgICA8Z3Bob3RvOmltYWdlVmVyc2lvbj4zMjk8L2dwaG90bzppbWFnZVZlcnNpb24+CiAgICA8Z3Bob3RvOmNvbW1lbnRDb3VudD4wPC9ncGhvdG86Y29tbWVudENvdW50PgogICAgPGdwaG90bzpsaWNlbnNlIGlkPScwJyBuYW1lPSdBbGwgUmlnaHRzIFJlc2VydmVkJyB1cmw9Jyc+QUxMX1JJR0hUU19SRVNFUlZFRDwvZ3Bob3RvOmxpY2Vuc2U+CiAgICA8ZXhpZjp0YWdzPgogICAgICA8ZXhpZjpmc3RvcD40LjA8L2V4aWY6ZnN0b3A+CiAgICAgIDxleGlmOm1ha2U+TklLT04gQ09SUE9SQVRJT048L2V4aWY6bWFrZT4KICAgICAgPGV4aWY6bW9kZWw+TklLT04gRDkwPC9leGlmOm1vZGVsPgogICAgICA8ZXhpZjpleHBvc3VyZT4wLjAxNjY2NjY2ODwvZXhpZjpleHBvc3VyZT4KICAgICAgPGV4aWY6Zmxhc2g+ZmFsc2U8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjI2LjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz4xMjUwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQyMjg0MDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+YjIzNDI4OGIwMGE4ZTBlMzdhNmYxNWNhMjc4NTIxYTc8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDYuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyV0Rqb013SS9BQUFBQUFBQUFVay9LR1lIV0MwNzhXMC9zNTEyLzAwMDUxLmpwZycgaGVpZ2h0PSczNDEnIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGg2LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMldEam9Nd0kvQUFBQUFBQUFBVWsvS0dZSFdDMDc4VzAvczQ4LWMvMDAwNTEuanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDA1MS5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzU0OTYzOTYwNTIzNDwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6Mjc6MzguMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNzozOC44MzFaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDUyLmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDYuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyV20zTzJfSS9BQUFBQUFBQUFVcy9NV3dVNldYaTBnZy9zNTEyLzAwMDUyLmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzU0OTYzOTYwNTIzNCcvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzU0OTYzOTYwNTIzNCcvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vZ0IzeFRhMUtqTUhqckE0M2poUWwtQScvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc1NDk2Mzk2MDUyMzQnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3NTQ5NjM5NjA1MjM0Jy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTc1NDk2Mzk2MDUyMzQ8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+NTEuMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xNjAwPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xMDYzPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjE1Mzg3OTwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjM4NDVjMDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTQyMzMzMDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+MzMxPC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+NC4wPC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wNDwvZXhpZjpleHBvc3VyZT4KICAgICAgPGV4aWY6Zmxhc2g+ZmFsc2U8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjI5LjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz4xMjUwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQyMzMzMDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+M2U5MDU3NmZjYmNmNDI1NjdiMzNmN2VjYjlhMTE4YjQ8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDYuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyV20zTzJfSS9BQUFBQUFBQUFVcy9NV3dVNldYaTBnZy9zNTEyLzAwMDUyLmpwZycgaGVpZ2h0PSczNDEnIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGg2LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMldtM08yX0kvQUFBQUFBQUFBVXMvTVd3VTZXWGkwZ2cvczQ4LWMvMDAwNTIuanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDA1Mi5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzU1NjU4NzQ3ODkxNDwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6Mjc6NDAuMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNzo0MC4zOTFaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDUzLmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDQuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyWEF2dV80SS9BQUFBQUFBQUFVMC9OdmVObG1tTC1CUS9zNTEyLzAwMDUzLmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzU1NjU4NzQ3ODkxNCcvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzU1NjU4NzQ3ODkxNCcvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vTXRhSVFjdmRZSmM4cV9VSFo5bnhyZycvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc1NTY1ODc0Nzg5MTQnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3NTU2NTg3NDc4OTE0Jy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTc1NTY1ODc0Nzg5MTQ8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+NTIuMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xNjAwPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xMDYzPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjEyNDk0NjwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjM4NmY4MDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTQyNjM1MDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+MzMzPC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+NC4wPC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wNjY2NjY2NzwvZXhpZjpleHBvc3VyZT4KICAgICAgPGV4aWY6Zmxhc2g+ZmFsc2U8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjI5LjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz4xMjUwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQyNjM1MDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+YjRiODIxYmZlYTgzMDg4YzVmNjE4ZDYwODc1MzJlM2Y8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDQuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyWEF2dV80SS9BQUFBQUFBQUFVMC9OdmVObG1tTC1CUS9zNTEyLzAwMDUzLmpwZycgaGVpZ2h0PSczNDEnIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMlhBdnVfNEkvQUFBQUFBQUFBVTAvTnZlTmxtbUwtQlEvczQ4LWMvMDAwNTMuanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDA1My5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIDxlbnRyeT4KICAgIDxpZD5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9lbnRyeS9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzU2NDk5MjY3MTEwNjwvaWQ+CiAgICA8cHVibGlzaGVkPjIwMTAtMDktMDNUMjI6Mjc6NDIuMDAwWjwvcHVibGlzaGVkPgogICAgPHVwZGF0ZWQ+MjAxMC0wOS0wM1QyMjoyNzo0Mi43OTRaPC91cGRhdGVkPgogICAgPGNhdGVnb3J5IHNjaGVtZT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9nLzIwMDUja2luZCcgdGVybT0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNwaG90bycvPgogICAgPHRpdGxlIHR5cGU9J3RleHQnPjAwMDU0LmpwZzwvdGl0bGU+CiAgICA8c3VtbWFyeSB0eXBlPSd0ZXh0Jy8+CiAgICA8Y29udGVudCB0eXBlPSdpbWFnZS9qcGVnJyBzcmM9J2h0dHA6Ly9saDQuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyWGdEc0RZSS9BQUFBQUFBQUFVOC85dVZMaEx4RWJlcy9zNTEyLzAwMDU0LmpwZycvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci8xMTM5NDcyMzU1MzgyNDcxMTEwMDcvYWxidW1pZC81NTEyODE3MDM5MjA1MTIzNzc3L3Bob3RvaWQvNTUxMjgxNzU2NDk5MjY3MTEwNicvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExMzk0NzIzNTUzODI0NzExMTAwNy9YRmVzdDIwMTAjNTUxMjgxNzU2NDk5MjY3MTEwNicvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vT3BhVEprMDcxMGQ5dzh3NEFVa0J0dycvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvMTEzOTQ3MjM1NTM4MjQ3MTExMDA3L2FsYnVtaWQvNTUxMjgxNzAzOTIwNTEyMzc3Ny9waG90b2lkLzU1MTI4MTc1NjQ5OTI2NzExMDYnLz4KICAgIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPTExMzk0NzIzNTUzODI0NzExMTAwNyZhbXA7YWlkPTU1MTI4MTcwMzkyMDUxMjM3NzcmYW1wO2lpZD01NTEyODE3NTY0OTkyNjcxMTA2Jy8+CiAgICA8Z3Bob3RvOmlkPjU1MTI4MTc1NjQ5OTI2NzExMDY8L2dwaG90bzppZD4KICAgIDxncGhvdG86dmVyc2lvbj4xPC9ncGhvdG86dmVyc2lvbj4KICAgIDxncGhvdG86cG9zaXRpb24+NTMuMDwvZ3Bob3RvOnBvc2l0aW9uPgogICAgPGdwaG90bzphbGJ1bWlkPjU1MTI4MTcwMzkyMDUxMjM3Nzc8L2dwaG90bzphbGJ1bWlkPgogICAgPGdwaG90bzphY2Nlc3M+cHVibGljPC9ncGhvdG86YWNjZXNzPgogICAgPGdwaG90bzp3aWR0aD4xNjAwPC9ncGhvdG86d2lkdGg+CiAgICA8Z3Bob3RvOmhlaWdodD4xMDYzPC9ncGhvdG86aGVpZ2h0PgogICAgPGdwaG90bzpzaXplPjE2OTg3NzwvZ3Bob3RvOnNpemU+CiAgICA8Z3Bob3RvOmNsaWVudD5waWNhc2E8L2dwaG90bzpjbGllbnQ+CiAgICA8Z3Bob3RvOmNoZWNrc3VtPjM4NmNjMDUyPC9ncGhvdG86Y2hlY2tzdW0+CiAgICA8Z3Bob3RvOnRpbWVzdGFtcD4xMjgzNTQyNjQ2MDAwPC9ncGhvdG86dGltZXN0YW1wPgogICAgPGdwaG90bzppbWFnZVZlcnNpb24+MzM1PC9ncGhvdG86aW1hZ2VWZXJzaW9uPgogICAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICAgIDxncGhvdG86bGljZW5zZSBpZD0nMCcgbmFtZT0nQWxsIFJpZ2h0cyBSZXNlcnZlZCcgdXJsPScnPkFMTF9SSUdIVFNfUkVTRVJWRUQ8L2dwaG90bzpsaWNlbnNlPgogICAgPGV4aWY6dGFncz4KICAgICAgPGV4aWY6ZnN0b3A+Ni4zPC9leGlmOmZzdG9wPgogICAgICA8ZXhpZjptYWtlPk5JS09OIENPUlBPUkFUSU9OPC9leGlmOm1ha2U+CiAgICAgIDxleGlmOm1vZGVsPk5JS09OIEQ5MDwvZXhpZjptb2RlbD4KICAgICAgPGV4aWY6ZXhwb3N1cmU+MC4wMTY2NjY2Njg8L2V4aWY6ZXhwb3N1cmU+CiAgICAgIDxleGlmOmZsYXNoPnRydWU8L2V4aWY6Zmxhc2g+CiAgICAgIDxleGlmOmZvY2FsbGVuZ3RoPjQ4LjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz4xMjUwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjgzNTQyNjQ2MDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+ZjgxMTc5MTZiYmU3ODYyZDBlMmZlODFhMTUwY2FmMWE8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDQuZ2dwaHQuY29tL19SWmozVGNKYTYtOC9USUYyWGdEc0RZSS9BQUFBQUFBQUFVOC85dVZMaEx4RWJlcy9zNTEyLzAwMDU0LmpwZycgaGVpZ2h0PSczNDEnIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5IZWxzaW5nw7hyIEd5bW5hc2l1bXMgQmlsbGVkYXJraXY8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGg0LmdncGh0LmNvbS9fUlpqM1RjSmE2LTgvVElGMlhnRHNEWUkvQUFBQUFBQUFBVTgvOXVWTGhMeEViZXMvczQ4LWMvMDAwNTQuanBnJyBoZWlnaHQ9JzQ4JyB3aWR0aD0nNDgnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDA1NC5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5Pgo8L2ZlZWQ+]]></data>
	</file>
	<file>
	  <filename>/xmlexamples/images.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4KPGZlZWQgIHhtbG5zOmV4aWY9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zL2V4aWYvMjAwNycgeG1sbnM6Z3Bob3RvPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3JyB4bWxuczptZWRpYT0naHR0cDovL3NlYXJjaC55YWhvby5jb20vbXJzcy8nIHhtbG5zOm9wZW5TZWFyY2g9J2h0dHA6Ly9hOS5jb20vLS9zcGVjL29wZW5zZWFyY2hyc3MvMS4wLyc+CiAgPGlkPmh0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9kYXRhL2ZlZWQvYXBpL3VzZXIvYm9zc2luZm80NS9hbGJ1bWlkLzU0ODY4NDY3NzU1NjA2MzE1Mzc8L2lkPgogIDx1cGRhdGVkPjIwMTAtMDYtMjVUMjI6NTY6MzguMDM5WjwvdXBkYXRlZD4KICA8Y2F0ZWdvcnkgc2NoZW1lPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNraW5kJyB0ZXJtPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2FsYnVtJy8+CiAgPHRpdGxlIHR5cGU9J3RleHQnPnRyYW5zbG9rYXRpb24yMDEwPC90aXRsZT4KICA8c3VidGl0bGUgdHlwZT0ndGV4dCcvPgogIDxyaWdodHMgdHlwZT0ndGV4dCc+cHVibGljPC9yaWdodHM+CiAgPGljb24+aHR0cDovL2xoNC5nZ3BodC5jb20vXzItZmVtOVJveG1nL1RDVXlFbUpKOVBFL0FBQUFBQUFBRjV3L2Jlc21aNW4wbWFvL3MxNjAtYy9UcmFuc2xva2F0aW9uMjAxMC5qcGc8L2ljb24+CiAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNmZWVkJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci9ib3NzaW5mbzQ1L2FsYnVtaWQvNTQ4Njg0Njc3NTU2MDYzMTUzNycvPgogIDxsaW5rIHJlbD0nYWx0ZXJuYXRlJyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9ib3NzaW5mbzQ1L1RyYW5zbG9rYXRpb24yMDEwJy8+CiAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I3NsaWRlc2hvdycgdHlwZT0nYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2gnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9zL2MvYmluL3NsaWRlc2hvdy5zd2Y/aG9zdD1waWNhc2F3ZWIuZ29vZ2xlLmNvbSZhbXA7UkdCPTB4MDAwMDAwJmFtcDtmZWVkPWh0dHAlM0ElMkYlMkZwaWNhc2F3ZWIuZ29vZ2xlLmNvbSUyRmRhdGElMkZmZWVkJTJGYXBpJTJGdXNlciUyRmJvc3NpbmZvNDUlMkZhbGJ1bWlkJTJGNTQ4Njg0Njc3NTU2MDYzMTUzNyUzRmFsdCUzRHJzcycvPgogIDxsaW5rIHJlbD0naHR0cDovL3NjaGVtYXMuZ29vZ2xlLmNvbS9waG90b3MvMjAwNyNyZXBvcnQnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2xoL3JlcG9ydEFidXNlP3VuYW1lPWJvc3NpbmZvNDUmYW1wO2FpZD01NDg2ODQ2Nzc1NTYwNjMxNTM3Jy8+CiAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZmVlZC9hcGkvdXNlci9ib3NzaW5mbzQ1L2FsYnVtaWQvNTQ4Njg0Njc3NTU2MDYzMTUzNz9zdGFydC1pbmRleD0xJmFtcDttYXgtcmVzdWx0cz0xMDAwJmFtcDtraW5kPXBob3RvJmFtcDtpbWdtYXg9NTEyJmFtcDt0aHVtYnNpemU9NjQnLz4KICA8YXV0aG9yPgogICAgPG5hbWU+TW9nZW5zPC9uYW1lPgogICAgPHVyaT5odHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vYm9zc2luZm80NTwvdXJpPgogIDwvYXV0aG9yPgogIDxnZW5lcmF0b3IgdmVyc2lvbj0nMS4wMCcgdXJpPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vJz5QaWNhc2F3ZWI8L2dlbmVyYXRvcj4KICA8b3BlblNlYXJjaDp0b3RhbFJlc3VsdHM+MTI2PC9vcGVuU2VhcmNoOnRvdGFsUmVzdWx0cz4KICA8b3BlblNlYXJjaDpzdGFydEluZGV4PjE8L29wZW5TZWFyY2g6c3RhcnRJbmRleD4KICA8b3BlblNlYXJjaDppdGVtc1BlclBhZ2U+MTAwMDwvb3BlblNlYXJjaDppdGVtc1BlclBhZ2U+CiAgPGdwaG90bzppZD41NDg2ODQ2Nzc1NTYwNjMxNTM3PC9ncGhvdG86aWQ+CiAgPGdwaG90bzpuYW1lPlRyYW5zbG9rYXRpb24yMDEwPC9ncGhvdG86bmFtZT4KICA8Z3Bob3RvOmxvY2F0aW9uLz4KICA8Z3Bob3RvOmFjY2Vzcz5wdWJsaWM8L2dwaG90bzphY2Nlc3M+CiAgPGdwaG90bzp0aW1lc3RhbXA+MTI3NzQ1MzAwNTAwMDwvZ3Bob3RvOnRpbWVzdGFtcD4KICA8Z3Bob3RvOm51bXBob3Rvcz4xMjY8L2dwaG90bzpudW1waG90b3M+CiAgPGdwaG90bzp1c2VyPmJvc3NpbmZvNDU8L2dwaG90bzp1c2VyPgogIDxncGhvdG86bmlja25hbWU+TW9nZW5zPC9ncGhvdG86bmlja25hbWU+CiAgPGdwaG90bzpjb21tZW50aW5nRW5hYmxlZD50cnVlPC9ncGhvdG86Y29tbWVudGluZ0VuYWJsZWQ+CiAgPGdwaG90bzpjb21tZW50Q291bnQ+MDwvZ3Bob3RvOmNvbW1lbnRDb3VudD4KICA8Z3Bob3RvOmFsbG93UHJpbnRzPnRydWU8L2dwaG90bzphbGxvd1ByaW50cz4KICA8Z3Bob3RvOmFsbG93RG93bmxvYWRzPnRydWU8L2dwaG90bzphbGxvd0Rvd25sb2Fkcz4KICA8ZW50cnk+CiAgICA8aWQ+aHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvYm9zc2luZm80NS9hbGJ1bWlkLzU0ODY4NDY3NzU1NjA2MzE1MzcvcGhvdG9pZC81NDg2ODQ2Nzg1NTg2MTg4NTc4PC9pZD4KICAgIDxwdWJsaXNoZWQ+MjAxMC0wNi0yNVQyMjo0Nzo0OC4wMDBaPC9wdWJsaXNoZWQ+CiAgICA8dXBkYXRlZD4yMDEwLTA2LTI1VDIyOjQ3OjQ4LjMxOVo8L3VwZGF0ZWQ+CiAgICA8Y2F0ZWdvcnkgc2NoZW1lPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL2cvMjAwNSNraW5kJyB0ZXJtPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I3Bob3RvJy8+CiAgICA8dGl0bGUgdHlwZT0ndGV4dCc+MDAwMDEuanBnPC90aXRsZT4KICAgIDxzdW1tYXJ5IHR5cGU9J3RleHQnLz4KICAgIDxjb250ZW50IHR5cGU9J2ltYWdlL2pwZWcnIHNyYz0naHR0cDovL2xoNS5nZ3BodC5jb20vXzItZmVtOVJveG1nL1RDVXlGTGZiMFNJL0FBQUFBQUFBRnhnL1AxV1pwbzNTSGlrL3M1MTIvMDAwMDEuanBnJy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vZy8yMDA1I2ZlZWQnIHR5cGU9J2FwcGxpY2F0aW9uL2F0b20reG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vZGF0YS9mZWVkL2FwaS91c2VyL2Jvc3NpbmZvNDUvYWxidW1pZC81NDg2ODQ2Nzc1NTYwNjMxNTM3L3Bob3RvaWQvNTQ4Njg0Njc4NTU4NjE4ODU3OCcvPgogICAgPGxpbmsgcmVsPSdhbHRlcm5hdGUnIHR5cGU9J3RleHQvaHRtbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2Jvc3NpbmZvNDUvVHJhbnNsb2thdGlvbjIwMTAjNTQ4Njg0Njc4NTU4NjE4ODU3OCcvPgogICAgPGxpbmsgcmVsPSdodHRwOi8vc2NoZW1hcy5nb29nbGUuY29tL3Bob3Rvcy8yMDA3I2Nhbm9uaWNhbCcgdHlwZT0ndGV4dC9odG1sJyBocmVmPSdodHRwOi8vcGljYXNhd2ViLmdvb2dsZS5jb20vbGgvcGhvdG8vcnZhZFhMQ0FrNFVLS1N4eFlPSFFWQScvPgogICAgPGxpbmsgcmVsPSdzZWxmJyB0eXBlPSdhcHBsaWNhdGlvbi9hdG9tK3htbCcgaHJlZj0naHR0cDovL3BpY2FzYXdlYi5nb29nbGUuY29tL2RhdGEvZW50cnkvYXBpL3VzZXIvYm9zc2luZm80NS9hbGJ1bWlkLzU0ODY4NDY3NzU1NjA2MzE1MzcvcGhvdG9pZC81NDg2ODQ2Nzg1NTg2MTg4NTc4Jy8+CiAgICA8bGluayByZWw9J2h0dHA6Ly9zY2hlbWFzLmdvb2dsZS5jb20vcGhvdG9zLzIwMDcjcmVwb3J0JyB0eXBlPSd0ZXh0L2h0bWwnIGhyZWY9J2h0dHA6Ly9waWNhc2F3ZWIuZ29vZ2xlLmNvbS9saC9yZXBvcnRBYnVzZT91bmFtZT1ib3NzaW5mbzQ1JmFtcDthaWQ9NTQ4Njg0Njc3NTU2MDYzMTUzNyZhbXA7aWlkPTU0ODY4NDY3ODU1ODYxODg1NzgnLz4KICAgIDxncGhvdG86aWQ+NTQ4Njg0Njc4NTU4NjE4ODU3ODwvZ3Bob3RvOmlkPgogICAgPGdwaG90bzp2ZXJzaW9uPjE8L2dwaG90bzp2ZXJzaW9uPgogICAgPGdwaG90bzpwb3NpdGlvbj4xLjA8L2dwaG90bzpwb3NpdGlvbj4KICAgIDxncGhvdG86YWxidW1pZD41NDg2ODQ2Nzc1NTYwNjMxNTM3PC9ncGhvdG86YWxidW1pZD4KICAgIDxncGhvdG86YWNjZXNzPnB1YmxpYzwvZ3Bob3RvOmFjY2Vzcz4KICAgIDxncGhvdG86d2lkdGg+MTYwMDwvZ3Bob3RvOndpZHRoPgogICAgPGdwaG90bzpoZWlnaHQ+MTA2MzwvZ3Bob3RvOmhlaWdodD4KICAgIDxncGhvdG86c2l6ZT4xOTExMDk8L2dwaG90bzpzaXplPgogICAgPGdwaG90bzpjbGllbnQ+cGljYXNhPC9ncGhvdG86Y2xpZW50PgogICAgPGdwaG90bzpjaGVja3N1bT44ZDk2MDA0NjwvZ3Bob3RvOmNoZWNrc3VtPgogICAgPGdwaG90bzp0aW1lc3RhbXA+MTI3NzQ2NDMzMzAwMDwvZ3Bob3RvOnRpbWVzdGFtcD4KICAgIDxncGhvdG86aW1hZ2VWZXJzaW9uPjU5MTI8L2dwaG90bzppbWFnZVZlcnNpb24+CiAgICA8Z3Bob3RvOmNvbW1lbnRDb3VudD4wPC9ncGhvdG86Y29tbWVudENvdW50PgogICAgPGdwaG90bzpsaWNlbnNlIGlkPScwJyBuYW1lPSdBbGwgUmlnaHRzIFJlc2VydmVkJyB1cmw9Jyc+QUxMX1JJR0hUU19SRVNFUlZFRDwvZ3Bob3RvOmxpY2Vuc2U+CiAgICA8ZXhpZjp0YWdzPgogICAgICA8ZXhpZjpmc3RvcD43LjE8L2V4aWY6ZnN0b3A+CiAgICAgIDxleGlmOm1ha2U+TklLT04gQ09SUE9SQVRJT048L2V4aWY6bWFrZT4KICAgICAgPGV4aWY6bW9kZWw+TklLT04gRDkwPC9leGlmOm1vZGVsPgogICAgICA8ZXhpZjpleHBvc3VyZT4wLjAxNjY2NjY2ODwvZXhpZjpleHBvc3VyZT4KICAgICAgPGV4aWY6Zmxhc2g+dHJ1ZTwvZXhpZjpmbGFzaD4KICAgICAgPGV4aWY6Zm9jYWxsZW5ndGg+MTM1LjA8L2V4aWY6Zm9jYWxsZW5ndGg+CiAgICAgIDxleGlmOmlzbz4yMDAwPC9leGlmOmlzbz4KICAgICAgPGV4aWY6dGltZT4xMjc3NDY0MzMzMDAwPC9leGlmOnRpbWU+CiAgICAgIDxleGlmOmltYWdlVW5pcXVlSUQ+YThiMzM5YTQ1MDU0ODc3MWFiYmYxM2Y2ZmMyMjIyOTc8L2V4aWY6aW1hZ2VVbmlxdWVJRD4KICAgIDwvZXhpZjp0YWdzPgogICAgPG1lZGlhOmdyb3VwPgogICAgICA8bWVkaWE6Y29udGVudCB1cmw9J2h0dHA6Ly9saDUuZ2dwaHQuY29tL18yLWZlbTlSb3htZy9UQ1V5RkxmYjBTSS9BQUFBQUFBQUZ4Zy9QMVdacG8zU0hpay9zNTEyLzAwMDAxLmpwZycgaGVpZ2h0PSczNDEnIHdpZHRoPSc1MTInIHR5cGU9J2ltYWdlL2pwZWcnIG1lZGl1bT0naW1hZ2UnLz4KICAgICAgPG1lZGlhOmNyZWRpdD5Nb2dlbnM8L21lZGlhOmNyZWRpdD4KICAgICAgPG1lZGlhOmRlc2NyaXB0aW9uIHR5cGU9J3BsYWluJy8+CiAgICAgIDxtZWRpYTprZXl3b3Jkcy8+CiAgICAgIDxtZWRpYTp0aHVtYm5haWwgdXJsPSdodHRwOi8vbGg1LmdncGh0LmNvbS9fMi1mZW05Um94bWcvVENVeUZMZmIwU0kvQUFBQUFBQUFGeGcvUDFXWnBvM1NIaWsvczY0LWMvMDAwMDEuanBnJyBoZWlnaHQ9JzY0JyB3aWR0aD0nNjQnLz4KICAgICAgPG1lZGlhOnRpdGxlIHR5cGU9J3BsYWluJz4wMDAwMS5qcGc8L21lZGlhOnRpdGxlPgogICAgPC9tZWRpYTpncm91cD4KICA8L2VudHJ5PgogIAo8L2ZlZWQ+]]></data>
	</file>
</module>
