<?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>CGCalendar</name>
	<version>1.14.5</version>
  <mincmsversion>1.11.11</mincmsversion>
	<help><![CDATA[PGgzPk5vdGljZTo8L2gzPgo8cD5WZXJzaW9uIDEuMCBvZiB0aGUgQ2FsZ3V5IENhbGVuZGFyIG1vZHVsZSBpcyBhIGNvbXBsZXRlIGZvcmsgb2YgdGhlIG9sZCBjYWxlbmRhciBtb2R1bGUuICBIb3dldmVyLCB0aGlzIG1vZHVsZSBpcyBub3QgY29tcGF0aWJsZSBpbiBhbnkgd2F5IHdpdGggdGhlIG90aGVyIG1vZHVsZS48L3A+CjxoMz5XaGF0IGRvZXMgdGhpcyBkbz88L2gzPgo8cD5DYWxndXlzIENhbGVuZGFyIGlzIGEgbW9kdWxlIGZvciBkaXNwbGF5aW5nIGV2ZW50cyBvbiB5b3VyIHBhZ2UuIFdoZW4gdGhlCm1vZHVsZSBpcyBpbnN0YWxsZWQsIGEgJnF1b3Q7Q2FsZ3V5cyBDYWxlbmRhciZxdW90OyBhZG1pbiBwYWdlIGlzIGFkZGVkIHRvIHRoZSBwbHVnaW5zIG1lbnUKdGhhdCB3aWxsIGFsbG93IHlvdSB0byBtYW5hZ2UgeW91ciBldmVudHMuPC9wPgo8aDM+U2VjdXJpdHk8L2gzPgo8cD5UaGUgdXNlciBtdXN0IGJlbG9uZyB0byBhIGdyb3VwIHdpdGggdGhlICdNb2RpZnkgQ2FsZW5kYXInIHBlcm1pc3Npb24KaW4gb3JkZXIgdG8gYWRkLCBlZGl0LCBvciBkZWxldGUgY2FsZW5kYXIgZXZlbnQgZW50cmllcy48L3A+CjxoMz5Ib3cgZG8gSSB1c2UgaXQ/PC9oMz4KPG9sPgogIDxsaT5QdXQgdGhlIGNtc19tb2R1bGUgdGFnIGluIHRoZSBwYWdlIGNvbnRlbnQuIE1ha2Ugc3VyZSBpdCBpcyBub3QgZW5jbG9zZWQgaW4gJmx0O3ByZSZndDsuLi4mbHQ7L3ByZSZndDsgdGFncy4gIFlvdSB3aWxsIG5lZWQgdG8gdmlldyBzb3VyY2UgY29kZSBmb3IgdGhpcy4gIFRoZSBjb2RlIHdvdWxkIGxvb2sgc29tZXRoaW5nIGxpa2U6PGJyIC8+CiAgPHR0PntjbXNfbW9kdWxlIG1vZHVsZT0iQ0dDYWxlbmRhciJ9PC90dD48YnIgLz4KICA8bGk+U3R5bGUgdGhlIGNhbGVuZGFyIGFwcHJvcHJpYXRlbHkgZm9yIHlvdXIgZGlzcGxheSAoYW4gZXhhbXBsZSBzdHlsZXNoZWV0IGlzIHByb3ZpZGVkIGZvciB0aGlzIHB1cnBvc2UpPC9saT4KPC9vbD4KPGJyLz4KPHA+PGI+VG8gYXR0YWNoIHRoZSBzYW1wbGUgc3R5bGVzaGVldCB0byB5b3VyIHRlbXBsYXRlOjwvYj48L3A+CjxvbD4KPGxpPkdvIHRvICJMYXlvdXQgLT4gVGVtcGxhdGVzIjwvbGk+CjxsaT5DbGljayB0aGUgQ1NTIGljb24gKEF0dGFjaCBTdHlsZXNoZWV0IHRvIFRlbXBsYXRlKSBidXR0b24gdG8gdGhlIHJpZ2h0IG9mIHlvdXIgdGVtcGxhdGU8L2xpPgo8bGk+Q2hvb3NlICJDYWxndXlzIENhbGVuZGFyIENTUyBleGFtcGxlIiBmcm9tIHRoZSBkcm9wLWRvd24gbWVudS48L2xpPgo8bGk+Q2xpY2sgdGhlICJBZGQgYSBTdHlsZXNoZWV0IiBidXR0b24uPC9saT4KPC9vbD4KPGJyLz4KPGgzPkFkbWluIFRoZW1lczwvaDM+CjxwPlRoaXMgbW9kdWxlcyBhZG1pbiBwYW5lbCA8ZW0+KHZlcnNpb24gMS4xNCspIHJlbGllcyBoZWF2aWx5IG9uIHN0eWxlcyBhbmQgdG9vbHMgaW4gdGhlIENNU01TIE9uZUVsZXZlbiBhZG1pbiB0aGVtZS4gIEl0IG1heSBub3QgZnVuY3Rpb24gcHJvcGVyeSAob3IgYXQgbGVhc3QgbG9vayBwcm9wZXJseSkgaW4gb3RoZXIgYWRtaW4gdGhlbWVzIHRoYXQgZG9uJ3QgZGlyZWN0bHkgcmVwbGljYXRlIHRoZXNlIHN0eWxlcy48L3A+CjxoMz5QYXJhbWV0ZXJzPC9oMz4KPHRhYmxlIGJvcmRlcj0wIGNlbGxwYWRkaW5nPTMgY2VsbHNwYWNpbmc9MD4KICA8dHI+CiAgICAgPHRkPmFjdGlvbjwvdGQ+CiAgICAgPHRkPkFjY2VwdGFibGUgdmFsdWVzOjxicj4KICAgICAgICAiZGVmYXVsdCIgLSBTcGVjaWZpZXMgdGhlIGRlZmF1bHQgYWN0aW9uLCB3b3JrcyBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAiZGlzcGxheSIgcGFyYW1ldGVyIGJlbG93Ljxici8+Cgkic2VhcmNoIiAtIERpc3BsYXkgYSBmb3JtIGZvciBhZHZhbmNlZCBzZWFyY2hpbmcgb2YgY2FsZW5kYXIgZXZlbnRzLjxici8+CiAgICAgICAgIm15ZXZlbnRzIiAtIERpc3BsYXkgYSBsaXN0IG9mIGFsbCBvZiBhIHVzZXJzIGV2ZW50cywgYW5kIGFsbG93IGFkZGluZywgZWRpdGluZyBvciBkZWxldGluZyB0aG9zZSBldmVudHM8YnIvPgogICAgICAgICJhZGRlZGl0X2V2ZW50IiAtIERpc3BsYXkgYSBmb3JtIGFsbG93aW5nIHRvIGFkZCBvciBlZGl0IGEgc2luZ2xlIGV2ZW50LjsKICAgICA8L3RkPgogIDwvdHI+CgogIDx0cj4KICAgICA8dGQ+ZGlzcGxheTwvdGQ+CiAgICAgPHRkPkFjY2VwdGFibGUgdmFsdWVzOjxicj4KCSAiY2FsZW5kYXIiIC0gZGlzcGxheXMgZXZlbnRzIGZvciB0aGUgY3VycmVudCBtb250aCBpbiBhIHRyYWRpdGlvbmFsIGdyaWQuICBJbmNsdWVzIGxpbmtzIHRvIHByZXYuIGFuZCBuZXh0IG1vbnRocy48YnIvPgoJICJldmVudCIgLSBkaXNwbGF5IGEgZGV0YWlsIHJlcG9ydCBmb3IgYSBzcGVjaWZpYyBldmVudC4gIFRvIHVzZSB0aGlzIGRpc3BsYXkgbW9kZSwgdGhlIGV2ZW50X2lkIHBhcmFtZXRlciBtdXN0IGJlIHNwZWNpZmllZC48YnIvPgoJICJsaXN0IiAtIGRpc3BsYXlzIGV2ZW50cyBmb3IgdGhlIGN1cnJlbnQgbW9udGggYXMgYSBsaXN0LiAgSW5jbHVkZXMgbGlua3MgdG8gcHJldi4gYW5kIG5leHQgbW9udGhzLjxici8+CgkgIndlZWtsaXN0IiAtIGRpc3BsYXlzIGV2ZW50cyBmb3IgdGhlIGN1cnJlbnQgd2VlayBhcyBhIGxpc3QuICBJbmNsdWRlcyBsaW5rcyB0byBwcmV2LiBhbmQgbmV4dCB3ZWVrcy48YnIvPgoJICJ5ZWFybGlzdCIgLSBkaXNwbGF5cyBldmVudHMgZm9yIHRoZSBjdXJyZW50IHllYXIgaW4gYSBsaXN0LiAgSW5jbHVkZXMgbGlua3MgdG8gcHJldi4gYW5kIG5leHQgeWVhcnMuPGJyLz4KCSAicGFzdGxpc3QiIC0gZGlzcGxheXMgYWxsIHBhc3QgZXZlbnRzLiAgTm8gcHJldi9uZXh0IGxpbmtzLjxici8+CgkgInVwY29taW5nbGlzdCIgLSBkaXNwbGF5cyBhbGwgdXBjb21pbmcgZXZlbnRzLiAgTm8gcHJldi9uZXh0IGxpbmtzLjxici8+CgkJRGVmYXVsdHMgdG8gImNhbGVuZGFyIiA8ZW0+KG9wdGlvbmFsKTwvZW0+CiAgICAgPC90ZD4KICA8L3RyPgoKICA8dHI+CiAgICAgPHRkPmNhdGVnb3J5PC90ZD4KICAgICA8dGQ+T25seSBkaXNwbGF5IGl0ZW1zIGZvciB0aGF0IGNhdGVnb3J5LiBMZWF2aW5nIHVuc2V0LCB3aWxsIHNob3cgYWxsIGNhdGVnb3JpZXMuIE5vdGUgdGhhdAoJIHlvdSBjYW4gbGltaXQgdG8gbXVsdGlwbGUgY2F0ZWdvcmllcyBieSBzZXBhcmF0aW5nIGVhY2ggb25lIHdpdGggYSBjb21tYS4gVGhpcyBwYXJhbWV0ZXIgY2FuIGJlCiAgICAgICAgIHVzZWQgd2l0aCB0aGUgbXlldmVudHMgYWN0aW9uIGFuZCB3aXRoIHRoZSB2YXJpb3VzIGRpc3BsYXkgb3B0aW9ucy4gIElmIG11bHRpcGxlIGNhdGVnb3J5IG5hbWVzIGFyZSBzcGVjaWZpZWQKICAgICAgICAgYSBtYXRjaCBpcyBkb25lIG9uIEFOWSBvZiB0aGUgY2F0ZWdvcmllcyBzcGVjaWZpZWQuIDxlbT4ob3B0aW9uYWwpPC9lbT48L3RkPgogIDwvdHI+CgogIDx0cj4KICAgICA8dGQ+bW9udGg8L3RkPgogICAgIDx0ZD5EaXNwbGF5IGVudHJpZXMgZm9yIGEgcGFydGljdWxhciBtb250aC4gSWYgeWVhciBpcyBub3Qgc2V0LCB0aGVuIHRoZSBjdXJyZW50IHllYXIgaXMKCSBhc3N1bWVkLiBUaGlzIG9wdGlvbiBvbmx5IHdvcmtzIGlmIGRpc3BsYXkgaXMgc2V0IHRvICJsaXN0IiBvciAiY2FsZW5kYXIiLiA8ZW0+KG9wdGlvbmFsKTwvZW0+PC90ZD4KICA8L3RyPgoKICA8dHI+CiAgICAgPHRkPnllYXI8L3RkPgogICAgIDx0ZD5EaXNwbGF5IGVudHJpZXMgZm9yIGEgcGFydGljdWxhciB5ZWFyLgoJVGhpcyBvcHRpb24gb25seSB3b3JrcyBpZiBkaXNwbGF5IGlzIHNldCB0byAibGlzdCIgb3IgImNhbGVuZGFyIi4gPGVtPihvcHRpb25hbCk8L2VtPjwvdGQ+CiAgPC90cj4KCiAgPHRyPgogICAgIDx0ZD5saW1pdDwvdGQ+Cgk8dGQ+PGVtPihvcHRpb25hbCk8L2VtPiAgU2V0IHRoZSBtYXhpbXVtIG51bWJlciBvZiBldmVudHMgdG8gZGlzcGxheS4gVGhpcyBvcHRpb24gb25seSBhcHBsaWVzIHRvIHRoZSAibGlzdCIsICJwYXN0bGlzdCIgb3IgInVwY29taW5nbGlzdCIgdmlld3MuICBUaGUgbWF4aW11bSB2YWx1ZSBmb3IgdGhlIGxpbWl0IHBhcmFtZXRlciBpcyAxMDAwIGV2ZW50cy4gIFRoZSAicGFzdGxpc3QiIGFuZCAidXBjb21pbmdsaXN0IiB2aWV3cyBzdXBwb3J0IHBhZ2luYXRpb24uICBUaGUgdmFyaW91cyBsaXN0IHZpZXdzIGRvIG5vdC48L2VtPjwvdGQ+CiAgPC90cj4KCiAgPHRyPgogICAgIDx0ZD51c2Vfc2Vzc2lvbjwvdGQ+CiAgICAgPHRkPlVzZSBzZXNzaW9uIHZhcmlhYmxlcyB0byBzdG9yZSB0aGUgY3VycmVudCBkYXRlIG9mIGEgY2FsZW5kYXIgdmlldy4gVGhpcyB3aWxsIGFsbG93IGEgY2FsZW5kYXIgdG8gcmVtZW1iZXIgdGhlIGRhdGUgc2V0dGluZyBvdmVyIG51bWVyb3VzIHBhZ2Ugdmlld3MgYW5kIHdoaWxlIHNjcm9sbGluZyB0byBkaWZmZXJlbnQgbW9udGhzLiAgSW4gdGhlIHNlYXJjaCBmb3JtIGl0IGFsbG93cyBzYXZpbmcgdGhlIHNlYXJjaCBzZXR0aW5ncyB1bnRpbCB0aGUgYnJvd3NlciBpcyByZXNldC4gIERlZmF1bHQgaXMgZmFsc2UuICBJZiB1c2Vfc2Vzc2lvbiBpcyBlbmFibGVkLCBhbGwgbmF2aWdhdGlvbiBsaW5rcyBhcmUgaW5saW5lIGxpbmtzIGFuZCB3aWxsIHJlcGxhY2UgdGhlIG9yaWdpbmFsIHRhZy48ZW0+KG9wdGlvbmFsKTwvZW0+PC90ZD4KICA8L3RyPgoKICA8dHI+CiAgICAgPHRkPmlubGluZSA8ZW0+KGRlcHJlY2F0ZWQpPC9lbT48L3RkPgogICAgICAgPHRkPlNldCB0byAxIHRvIHNldCBhbGwgb2YgdGhlIG5hdmlnYXRpb24gbGlua3MgdG8gaW5saW5lZCBtb2RlICh0aGV5IHdpbGwgcmVwbGFjZSB0aGUgb3JpbmdhbCB0YWcpLiAgRGVmYXVsdCBpcyAwLiBJdCBpcyByZWNvbW1lbmRlZCB5b3UgdXNlIHRoZSBuaV8gKG5vbiBpbmxpbmUpIG9yIGluXyAoaW5saW5lKSBwcmVmaXhlcyB0byBuYXZpZ2F0aW9uIGxpbmtzIGluIHNtYXJ0eS4gIGkuZTogIGhyZWY9eyRuYXZpZ2F0aW9uLmluX3ByZXZ9IHRvIGNyZWF0ZSBhbiBpbmxpbmUgbGluay4gTm90ZSwgdGhpcyBkb2VzIG5vdCBhbGxvdyB0aGUgY2FsZW5kYXIgdmlldyB0byByZW1lbWJlciBpdHMgZGF0ZSBhbmQgbW9udGggYmV0d2VlbiBwYWdlIHJlZnJlc2hlcy4gIElmIHlvdSBhcmUgZGlzcGxheWluZyB0aGUgY2FsZW5kYXIgaW4gdGhlIHNpZGViYXIgeW91IG1heSB3YW50IHRvIGVtcGxveSBib3RoIHRoZSB1c2Vfc2Vzc2lvbiBhbmQgdGhlIGlubGluZSBwYXJhbWV0ZXJzIChvciB1c2UgaW5saW5lIG9yIG5vbi1pbmxpbmUgdXJscyBpbiB0ZW1wbGF0ZXMpLiAgPGVtPihvcHRpb25hbCk8L2VtPjwvdGQ+CiAgPC90cj4KCiAgPHRyPgogICAgIDx0ZD5yZXZlcnNlPC90ZD4KICAgICA8dGQ+U2V0IHRvIHRydWUgdG8gZGlzcGxheSBldmVudHMgaW4gcmV2ZXJzZSBjaHJvbm9sb2dpY2FsIG9yZGVyLiBBcHBsaWNhYmxlIHRvICJsaXN0IiwgInBhc3RsaXN0IiBhbmQgInVwY29taW5nbGlzdCIgZGlzcGxheXMuIERlZmF1bHQgaXMgZmFsc2UuIEZvciB0aGUgInBhc3RsaXN0IiwgcmV2ZXJzZT10cnVlIGlzIGFzc3VtZWQuPGVtPihvcHRpb25hbCk8L2VtPjwvdGQ+CiAgPC90cj4KCiAgPHRyPgogICAgIDx0ZD5kZXRhaWxwYWdlPSJwYWdlYWxpYXMiPC90ZD4KICAgICA8dGQ+UGFnZSB0byBkaXNwbGF5IENhbGVuZGFyIGV2ZW50IGRldGFpbHMgaW4uIFRoaXMgY2FuIGVpdGhlciBiZSBhIHBhZ2UgYWxpYXMgb3IgYW4gaWQuIFVzZWQgdG8gYWxsb3cgZGV0YWlscyB0byBiZSBkaXNwbGF5ZWQgaW4gYSBkaWZmZXJlbnQgdGVtcGxhdGUgZnJvbSB0aGUgc3VtbWFyeS4gRGVmYXVsdCBpcyBjdXJyZW50IHBhZ2UuIDxlbT4ob3B0aW9uYWwpPC9lbT48L3RkPgogIDwvdHI+CgogIDx0cj4KICAgICA8dGQ+ZXZlbnRfaWQ8L3RkPgogICAgIDx0ZD5Vc2VkIHdpdGggdGhlIGRpc3BsYXk9ZXZlbnQgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHlvdSB0byBkaXNwbGF5IGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgZXZlbnQgb24gZGVtYW5kLjwvdGQ+CiAgPC90cj4KCiAgPHRyPgogICAgIDx0ZD5saW1pdDwvdGQ+CiAgICAgPHRkPlVzZWQgd2l0aCB0aGUgbGlzdCBkaXNwbGF5cywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBtYXhpbXVtIG51bWJlciBvZiBldmVudHMgdG8gZGlzcGxheSwgYW5kIHRoZW4gcHJvdmlkZXMgcGFnaW5hdGlvbiBjYXBhYmlsaXRpZXMuPC90ZD4KICA8L3RyPgoKICA8dHI+CiAgICAgPHRkPmNhbGVuZGFydGVtcGxhdGU8L3RkPgogICAgIDx0ZD5Vc2VkIHdpdGggZGlzcGxheT1jYWxlbmRhciwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHlvdSB0byBzcGVjaWZ5IGEgbm9uIGRlZmF1bHQgY2FsZW5kYXIgdGVtcGxhdGUuPC90ZD4KICA8L3RyPgoKICA8dHI+CiAgICAgPHRkPmV2ZW50dGVtcGxhdGU8L3RkPgogICAgIDx0ZD5Vc2VkIHdpdGggZGlzcGxheT1ldmVudCwgb3IgeW91IGNhbiBhbHNvIHNwZWNpZnkgdGhpcyBwYXJhbWV0ZXIgb24gYW55IENhbGVuZGFyIG1vZHVsZSBjYWxsLCB0aGlzIHBhcmFtZXRlciBhbGxvd3MgeW91IHRvIHNwZWNpZnkgYSBub24gZGVmYXVsdCBldmVudCB0ZW1wbGF0ZS4gIFRoaXMgcGFyYW1ldGVyIHdpbGwgaGF2ZSBubyBlZmZlY3QgaWYgcHJldHR5IHVybHMgYXJlIGVuYWJsZWQuPC90ZD4KICA8L3RyPgoKICA8dHI+CiAgICAgPHRkPmxpc3R0ZW1wbGF0ZTwvdGQ+CiAgICAgPHRkPlVzZWQgd2l0aCBkaXNwbGF5PWxpc3QsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyB5b3UgdG8gc3BlY2lmeSBhIG5vbiBkZWZhdWx0IGxpc3QgdGVtcGxhdGUuPC90ZD4KICA8L3RyPgoKICA8dHI+CiAgICAgPHRkPnVwY29taW5nbGlzdHRlbXBsYXRlPC90ZD4KICAgICA8dGQ+VXNlZCB3aXRoIGRpc3BsYXk9dXBjb21pbmdsaXN0LCB0aGlzIHBhcmFtZXRlciBhbGxvd3MgeW91IHRvIHNwZWNpZnkgYSBub24gZGVmYXVsdCB1cGNvbWluZ2xpc3QgdGVtcGxhdGUuPC90ZD4KICA8L3RyPgoKICA8dHI+CiAgICAgPHRkPnVuaXF1ZV9vbmx5PC90ZD4KICAgICA8dGQ+VXNlZCB3aXRoIGRpc3BsYXk9dXBjb21pbmdsaXN0LCBhbmQgd2l0aCBhY3Rpb249c2VhcmNoLCB0aGlzIHBhcmFtZXRlciBhbGxvd3MgeW91IHRvIHNwZWNpZnkgdGhhdCBvbmx5IG9uZSBldmVudCB3aXRoIGEgY2VydGFpbiBuYW1lIHNob3VsZCBiZSByZXR1cm5lZC4gIERlZmF1bHQgdmFsdWUgaXMgMCc7CiAgPC90cj4KCiAgPHRyPgogICAgIDx0ZD5kaXNwbGF5Zm9yZGF5PC90ZD4KICAgICA8dGQ+VXNlZCB3aXRoIGRpc3BsYXk9dXBjb21pbmdsaXN0LCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhhdCAwMDowMSBvZiB0aGUgY3VycmVudCBkYXkgc2hvdWxkIGJlIHVzZWQgZm9yIGNhbGN1bGF0aW5nIHdldGhlciBhbiBldmVudCBzaG91bGQgYmUgZGlzcGxheWVkLCByYXRoZXIgdGhhbiB0aGUgY3VycmVudCBzZXJ2ZXIgdGltZS48L3RkPgogIDwvdHI+Cgo8L3RhYmxlPgoKPGgzPkN1c3RvbSBGaWVsZHM8L2gzPgo8cD5JdCBpcyBwb3NzaWJsZSB0byBkZWZpbmUgYSBudW1iZXIgb2YgY3VzdG9tIGZpZWxkcyB0byBhc3NvY2lhdGUgd2l0aCBlYWNoIGV2ZW50IHVzaW5nIHRoZSBGaWVsZHMgdGFiIGluIHRoZSBhZG1pbi4gT25jZSBvbmUgb3IgbW9yZSBmaWVsZHMgaGFzIGJlZW4gZGVmaW5lZCB0aGUgdmFsdWVzIG9mIHRoYXQgZmllbGQgZm9yIGVhY2ggZXZlbnQgY2FuIGJlIHNldCB1c2luZyB0aGUgZXZlbnRzIHRhYiBpbiB0aGUgYWRtaW4uIFRoZXNlIGZpZWxkIHZhbHVlcyBjYW4gYmUgcmVuZGVyZWQgdXNpbmcgYSB0ZW1wbGF0ZSB1c2luZyB0aGUgc3ludGF4IGV2ZW50LmZpZWxkcy5maWVsZG5hbWUuIEhpbnQgLSBpbnNlcnQge2RlYnVnfSBpbnRvIHlvdXIgdGVtcGxhdGUgc2VlIGFsbCB0aGUgZGF0YSBwYXNzZWQgdG8gdGhlIHRlbXBsYXRlLjwvcD4KCjxoMz5FeGFtcGxlczwvaDM+CjxoND5FeGFtcGxlIG9mIGFsbG93aW5nIENvbW1lbnRzIG9uIENhbGVuZGFyIGV2ZW50czwvaDQ+CjxwPkluc3RhbGwgdGhlIENHRmVlZGJhY2sgbW9kdWxlIGFuZCBwdXQgdGhpcyBpbiB5b3VyIENhbGVuZGFyICJFdmVudCBUZW1wbGF0ZSI6PC9wPgo8cHJlPntDR0ZlZWRCYWNrJ2tleTE9J0NHQ2FsZW5kYXInIGtleTI9JGV2ZW50LmV2ZW50X2lkfTwvcHJlPgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+RGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPgo8bGk+VGhlIGF1dGhvciwgY2FsZ3V5MTAwMCwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LjwvbGk+CjwvdWw+CjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgtMjAxMywgUm9iZXJ0IENhbXBiZWxsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj4mbHQ7Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPgo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQpPciByZWFkIGl0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+b25saW5lPC9hPjwvcD4KPGgzPkhpc3Rvcnk8L2gzPgo8cD5UaGlzIG1vZHVsZSBvcmlnaW5hdGVkIGFzIHRoZSBDYWxlbmRhciBtb2R1bGUgZm9yIENNU01TIGJ5IFJvYiBBbGxlbiA8ZW0+KGFrcmFiYXQpPC9lbT4uICBJdCB3YXMgZm9ya2VkIHRvIENHQ2FsZW5kYXIgYnkgUm9iZXJ0IENhbXBiZWxsIDxlbT4oY2FsZ3V5MTAwMCk8L2VtPiBpbiAyMDA4LCBhbmQgc2luY2UgdGhlbiBoYXMgaGFkIG51bWVyb3VzIGNvbnRyaWJ1dGlvbnMgYnkgTW9ydGVuIFBvdWxzZW4gPGVtPihtb3J0ZW5AcG91bHNlbi5vcmcpPC9lbT4uPC9wPjxoMz5EZXBlbmRlbmNpZXM8L2gzPjx1bD48bGk+Q0dFeHRlbnNpb25zID0mZ3Q7IDEuNDQuNTwvbGk+PGxpPkNHU2ltcGxlU21hcnR5ID0mZ3Q7IDEuNy40PC9saT48L3VsPjxoMz5QYXJhbWV0ZXJzPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbXlldmVudHN0ZW1wbGF0ZT0iIiAtIEFwcGxpY2FibGUgb25seSB0byB0aGUgbXlldmVudHMgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG5vbiBkZWZhdWx0IHRlbXBsYXRlIHRvIHVzZTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZWRpdGV2ZW50dGVtcGxhdGU9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIG15ZXZlbnRzIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCBlZGl0IGV2ZW50IHRlbXBsYXRlIHRvIHVzZSB3aGVuIGEgdXNlciBjcmVhdGVzIG9yIGVkaXRzIGFuIGV2ZW50PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBlZGl0cGFnZT0iIiAtIEFwcGxpY2FibGUgb25seSB0byB0aGUgbXlldmVudHMgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGRpZmZlcmVudCBwYWdlIGZvciB0aGUgZWRpdCBmb3JtLjwvbGk+PC91bD4=]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBSb2JlcnQgQ2FtcGJlbGwgJmx0O2NhbGd1eTEwMDBAZ21haWwuY29tJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuMTQuNTxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjx1bD4KICA8bGk+VmVyc2lvbiAxLjE0LngKICA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IC0gVGhlIDEuMTQgc2VyaWVzIGludHJvZHVjZXMgYSBncmVhdCBkZWFsIG9mIGltcHJvdmVtZW50cy4gIEl0IGFsc28gZml4ZXMgYSBsb3Qgb2Ygb3V0c3RhbmRpbmcgaXNzdWVzLiAgVGhlcmUgd2lsbCBwcm9iYWJseSBiZSB0ZW1wbGF0ZSBpbmNvbXBhdGliaWxpdGllcy48L3A+CiAgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiAtIEZ1dHVyZSByZWxlYXNlcyBpbiB0aGlzIHNlcmllcyB3aWxsIGJlIHJlcGxhY2luZyB0aGUgZnJvbnRlbmQgY2FsZW5kYXIgdmlldyB3aXRoIGZ1bGxjYWxlbmRhci48L3A+CiAgICA8dWw+Cgk8bGk+VmVyc2lvbiAxLjE0LjQKICAgICAgICAgIDx1bD4KCSAgICA8bGk+Zml4ZXMgdG8gZW50aXRpZXMgd2l0aCByZXNwZWN0IHRvIHRoZSBmcm9udGVuZCBmb3JtLiAgTm93IGl0IGlzIHBvc3NpYmxlIHRvIHN1Ym1pdCBIVE1MIHZpYSBhbGwgdGV4dCBhcmVhcy4gIEhUTUwgaXMgc2FuaXRpemVkIGJlZm9yZSBiZWluZyBzdG9yZWQuICBUZXh0IGlucHV0IGZpZWxkcyBhcmUgYWxzbyBzYW5pdGl6ZWQgb24gZnJvbnRlbmQgZm9ybXMuICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+VGhpcyBtYXkgaW50cm9kdWNlIGEgY29tcGF0aWJpbGl0eSBwcm9ibGVtLjwvbGk+CiAgICAgICAgICAgIDxsaT5Ob3cgcmVxdWlyZXMgUEhQIDUuNC4zKzwvbGk+CiAgICAgICAgICA8L3VsPgoJPC9saT4KICAgICAgICAgCgoJPGxpPlZlcnNpb24gMS4xNC4zCgk8cD5UaGUgMS4xNC54IHNlcmllcyBzdG9wcyB1c2luZyB0aGUgaGFyZGNvZGVkIG1vbnRoIGFuZCBkYXkgbmFtZXMgaW4gdGhlIGxhbmcgZmlsZSBhbmQgYmVnYW4gdXNpbmcgbG9jYWxlIHNwZWNpZmllZCBkYXRlIG5hbWVzLiAgSWYgeW91IGFyZSBlbmNvdW50ZXJpbmcgYW4gJ29mZiBieSBvbmUnIHByb2JsZW0gaW4gdGhlIENHQ2FsZW5kYXIgZGlzcGxheSB0ZW1wbGF0ZXMgeW91IHdpbGwgd2FudCB0byBmaXggdXAgeW91ciBmcm9udGVuZCB0ZW1wbGF0ZXMuICBSZXN0b3JpbmcgZnJvbnRlbmQgdGVtcGxhdGVzIHRvIGZhY3RvcnkgZGVmYXVsdHMgc2hvdWxkIHNvbHZlIHRoZSBpc3N1ZS4gIEVzc2VudGlhbGx5LCB5b3Ugc2hvdWxkIG5vdCB1c2UgdGhlIHskbW9udGhfbmFtZXN9IG9yIHskZGF5X25hbWVzfSBhcnJheSAodGhleSBhcmUgb25lIGJhc2VkKS4gIEFuZCBpbnN0ZWFkIHNob3VsZCB1c2UgdGhlIHskZXZlbnQuZXZlbnRfZGF0ZV9zdGFydH0gYW5kIHskZXZlbnQuZXZlbnRfZGF0ZV9lbmR9IHNtYXJ0eSB2YXJpYWJsZXMsIGFuZCB0aGUgZGF0ZV9mb3JtYXQgbW9kaWZpZXIgdG8gZm9ybWF0IGRhdGVzIGFwcHJvcHJpYXRlbHkuPC9wPgoJPHVsPgoJICA8bGk+Rml4ZXMgdG8gdGhlIHVwY29taW5nIGxpc3QgdGVtcGxhdGUuPC9saT4KCTwvdWw+Cgk8L2xpPgoKCTxsaT5WZXJzaW9uIDEuMTQuMgoJPHVsPgoJPGxpPlJlc3RvcmVzIGltcG9ydCBsaW5rIChvb3BzKS48L2xpPgoJPC91bD4KCTwvbGk+CgoJPGxpPlZlcnNpb24gMS4xNC4yCgk8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+ICBpbiB0aGUgbmVhciBmdXR1cmUgKGRlcGVuZGluZyB1cG9uIHNwb25zb3JzaGlwKSBJIHBsYW4gdG8gcmVwbGFjZSB0aGUgY2FsZW5kYXIgdmlldyB3aXRoIGFuIGFqYXh5IGNhbGVuZGFyIChmdWxsY2FsZW5kYXIpLiAgIFRoaXMgd2lsbCBwcm9iYWJseSBicmVhawogICAgIGNvbXBhdGliaWxpdHkuICBZb3UgYXJlIGZvcmV3YXJuZWQuPC9wPgoJPHVsPgoJPGxpPkJ1ZyBmaXhlcy48L2xpPgoJPGxpPlJldmlzZSBsaXN0IHRlbXBsYXRlIHRvIHVzZSBkYXRlX2Zvcm1hdCBpbnN0ZWFkIG9mIGhhcmRjb2RlZCBtb250aC9kYXkgc3R1ZmYuIChzdGlsbCBoYXZlIHRvIGRvIGNhbGVuZGFyIHRlbXBsYXRlKTwvbGk+Cgk8bGk+UmV2aXNlZCB1cGNvbWluZyBsaXN0IGFjdGlvbiB0byBjYWxsIHRoZSB0ZW1wbGF0ZSBldmVuIGlmIHRoZXJlIGFyZSBubyBldmVudHMuPC9saT4KCTxsaT5SZXZpc2VkIHRoZSBldmVudCBsb2FkZXIgdG8gZmlndXJlIG91dCBhIGNvbG9yIGZvciBldmVudCAoYmFzZWQgb24gY2F0ZWdvcnkgY29sb3JzKS48L2xJPgoJPGxpPlJldmlzZSB0aGUgbGlzdCwgYW5kIGNhbGVuZGFyIHRlbXBsYXRlcyB0byBzaG93IHNvbWUgYWpheHkgc3R1ZmYsIGFuZCB0aGUgdXNlIG9mIGNvbG9ycy48L2xpPgoJPC91bD4KCTwvbGk+CgoJPGxpPlZlcnNpb24gMS4xNC4xCgk8dWw+Cgk8bGk+QnVnIGZpeGVzLjwvbGk+Cgk8bGk+V2VlayBhbmQgZGF5IG5hbWVzIGFyZSBub3cgZ2VuZXJhdGVkIGJ5IHRoZSBsb2NhbGUsIG5vdCBmcm9tIGxhbmcgc3RyaW5ncy48L2xpPgoJPC91bD4KCTwvbGk+CgoJPGxpPlZlcnNpb24gMS4xNAoJPHVsPgoJPGxpPkltcGxlbWVudHMgZnVsbGNhbGVuZGFyIGZvciB0aGUgcHJpbWFyeSBldmVudCBsaXN0aW5nLgoJPHVsPgogIAkgIDxsaT5EcmFnIGFuZCBkcm9wIGV2ZW50cyB0byBtb3ZlIHRoZW0gdG8gZGlmZmVyZW50IGRhdGVzLCBvciBhZGp1c3QgZW5kIHRpbWUgKGFqYXgpPC9saT4KCSAgPGxpPkRlbGV0ZSBldmVudHMgdmlhIGFqYXg8bGk+Cgk8L3VsPgoJPC9saT4KCTxsaT5BZGRzIHRoZSBBbGwgZGF5IGV2ZW50IGZsYWc8L2xpPgoJPGxpPkFzc29jaWF0ZXMgY29sb3JzIHdpdGggY2F0ZWdvcmllcyAoc2V4eSBpbiB0aGUgZnVsbGNhbGVuZGFyIHZpZXcpLi4uIG5vdCB5ZXQgYXZhaWxhYmxlIGluIHRoZSBmcm9udGVuZC48L2xpPgoJPGxpPlJld29yayB0byB0aGUgYWRkL2VkaXQgZXZlbnQgZm9ybSAoYWRtaW4pPC9saT4KCTxsaT5Ob3cgZGVwZW5kcyBvbiBDR1NpbXBsZVNtYXJ0eS48L2xpPgoJPGxpPmJ1ZyBmaXhlcy48L2xpPgoJPC91bD4KCTwvbGk+CiAgICA8L3VsPgogIDwvbGk+CgoKPGxpPlZlcnNpb24gMS4xMy54CiAgPHVsPgogICAgPGxpPkFkZHMgdHdvIG5ldyBwZXJtaXNzaW9ucyAoQWRkIENhbGVuZGFyIEV2ZW50cywgRWRpdCBNeSBDYWxlbmRhciBFdmVudHMpLjwvbGk+CiAgICA8bGk+TWlub3IgY2xlYW51cCBvZiB0aGUgYWRtaW4gYWRkIGV2ZW50IHRlbXBsYXRlLjwvbGk+CiAgICA8bGk+TWlub3IgdHdlYWtpbmcgdG8gdGhlIGV2ZW50IGxpc3QgdGVtcGxhdGUuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAxLjEyLnggLSBOb3ZlbWJlciwgMjAxMwogICA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IEluIHRoZSBmdXR1cmUgSSB3aWxsIGJlIG1vdmluZyBpbWFnZXMgaW50byB0aGVpciBvd24gZGlyZWN0b3J5LCBhbmQgY2xlYW5pbmcgdXAgcHJlZmVyZW5jZXMgbW9yZS4gIFRoaXMgd2lsbCBwcm9iYWJseSBjYXVzZSBjb21wYXRpYmlsaXR5IHByb2JsZW1zIGluIHRoZSBmdXR1cmUuPC9wPgogIDx1bD4KICAgIDxsaT5SZW1vdmVkIGFsbCBpbWFnZSBjcm9wcGluZyBvbiB1cGxvYWQuCiAgICAgICA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgY291bGQgY2F1c2UgY29tcGF0aWJpbGl0eSBwcm9ibGVtIHdpdGggZGlzcGxheWluZyBpbWFnZXMgaW4geW91ciBleGlzdGluZyB0ZW1wbGF0ZXMuPC9wPgogICAgPC9saT4KICAgIDxsaT5BZGRzIHRoZSBmaWxlIGF0dGFjaG1lbnQgZmllbGQgdHlwZS48L2xpPgogICAgPGxpPkNvZGUgY2xlYW51cCBhbmQgYnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMS4xMS54IC0gT2N0b2JlciwgMjAxMwogIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhlcmUgcHJvYmFibHkgd2lsbCBiZSBjb21wYXRpYmlsaXR5IHByb2JsZW1zIGZvciBwZW9wbGUgdXBncmFkaW5nIHRvIENHQ2FsZW5kYXIgMS4xMS54IGFuZCBiZXlvbmQgZnJvbQogIHByZXZpb3VzIHZlcnNpb25zLiAgUGFydGljdWxhcmx5IHJlbGF0ZWQgdG8gdGhlIGRyb3BwZWQgcGFyYW1ldGVycyA8ZW0+KHNlZSBiZWxvdyk8L2VtPiBhbmQgc29tZSBvZiB0aGUgaW5saW5lIGZpeGVzIGFuZCBjaGFuZ2VzLgogIFlvdSB3aWxsIG5lZWQgdG8gZG8gdGVzdGluZyBvbiB5b3VyIENHQ2FsZW5kYXIgaW5zdGFsbHMgYW5kIGZpeCBhbnkgY2FsbHMgdG8gQ0dDYWxlbmRhciwgYW5kIGFsc28gbWFrZSBzb21lIGNoYW5nZXMgdG8gdGVtcGxhdGVzLjwvcD4KICA8dWw+CiAgICA8bGk+QnVnIGZpeGVzLjwvbGk+CiAgICA8bGk+RHJvcHBlZCB0aGUgY29sdW1uIHBhcmFtZXRlcnMgKHRoaXMgaXMgYSBkZXNpZ24gcmVsYXRlZCBpdGVtLCBub3QgcmVsYXRlZCB0byBidXNpbmVzcyBsb2dpYyBhbmQgc2hvdWxkIGJlIGRvbmUgaW4gdGVtcGxhdGVzLikuPC9saT4KICAgIDxsaT5Ecm9wcGVkIHRoZSByZXR1cm5saW5rIHBhcmFtZXRlcnMgYXMgdGhleSBkaWRudCB3b3JrIHByb3Blcmx5LiAgVGhpcyBzaG91bGQgYmUgZG9uZSBpbiB0aGUgdGVtcGxhdGVzLiAgKGhpc3RvcnkuZ28oLTEpIG9yIHNvbWV0aGluZykuPC9saT4KICAgIDxsaT5Ecm9wcGVkIHRoZSBmaXJzdC1kYXktb2Ytd2VlayBwYXJhbWV0ZXIsIGFuZCByZXBsYWNlZCBpdCB3aXRoIGEgcHJlZmVyZW5jZS48L2xpPgogICAgPGxpPkFsbCBuYXZpZ2F0aW9uIGxpbmtzIG9uIHByb3RvdHlwZSB0ZW1wbGF0ZXMgbm93IHVzZSBub24taW5saW5lIFVSTFMuPC9saT4KICAgIDxsaT5BZGRlZCBkaXNwbGF5PXdlZWtsaXN0PC9saT4KICAgIDxsaT5SZWZhY3RvcmVkIHRoZSBldmVudCBkaXNwbGF5IGluIHRoZSBhZG1pbiBwYW5lbC4KICAgICAgPHVsPgogICAgICAgIDxsaT5FdmVudHMgYXJlIG5vdyBkaXNwbGF5ZWQgb25seSBmb3IgYSBzcGVjaWZpZWQgbW9udGggYW5kIHllYXIuPC9saT4KICAgICAgICA8bGk+RWFzeSBzZWxlY3Rpb24gb2YgbW9udGggYW5kIHllYXIsIGFuZCBzY3JvbGxpbmcgYmV0d2VlbiBtb250aHMuPC9saT4KICAgICAgICA8bGk+VGhlIGFiaWxpdHkgdG8gZWRpdCBhIHBhcmVudCBldmVudCBmcm9tIGEgY2hpbGQgZXZlbnQuPC9saT4KICAgICAgICA8bGk+RmlsdGVycyBhcmUgc3RvcmVkIGluIHRoZSB1c2VyIHNlc3Npb24uPC9saT4KICAgICAgPC91bD4KICAgIDwvbGk+CiAgICA8bGk+UmVmYWN0b3JlZCBhbmQgY2hlY2tlZCBhbGwgcGFyYW1ldGVycyBwYXNzZWQgdG8gbmF2aWdhdGlvbiBsaW5rcyBpbiB0aGUgaW5kaXZpZHVhbCB2aWVld3M8L2xpPgogICAgPGxpPkFsbCBuYXZpZ2F0aW9uIHZpZXdzIGhhdmUgaW5fIGFuZCBuaV8gdmFyaWFudHMgdG8gYWxsb3cgc2VsZWN0aW5nIGFuIGlubGluZSwgb3Igbm9uIGlubGluZSB2YXJpYW50IG9mIHRoZSBuYXZpZ2F0aW9uIGxpbmsuICBUaG91Z2ggdGhlIG5pXyBwcmVmaXhlZCBVUkxTIG1heSBpbmZhY3QgYmUgaW5saW5lIGxpbmtzIGRlcGVuZGluZyB1cG9uIHRoZSB1c2Vfc2Vzc2lvbiBzdHVmZi48L2xpPgogICAgPGxpPkRheSB2aWV3IFVSTFMgZnJvbSB0aGUgY2FsZW5kYXIgdmlldyBub3cgaGF2ZSBuaV8gYW5kIGluXyB2YXJpYW50cy48L2xpPgogICAgPGxpPlRoZSBpbmxpbmUgcGFyYW1ldGVyIGlzIGRlcHJlY2F0ZWQsIGFuZCB3aWxsIGJlIGRyb3BwZWQgYXQgdGhlIG5leHQgbWFqb3IgdmVyc2lvbi48L2xpPgogICAgPGxpPlJlZmFjdG9yZWQgYWxsIGV2ZW50IHZpZXdzCiAgICAgIDx1bD4KICAgICAgICA8bGk+QWxsIGV2ZW50IHZpZXdzIHVzZSB0aGUgY2djX2V2ZW50X2xvYWRlciBjbGFzcy48L2xpPgogICAgICAgIDxsaT5PcHRpbWl6ZSBjdXN0b20gZmllbGQsIGFuZCBjYXRlZ29yeSBsb2FkaW5nLjwvbGk+CiAgICAgICAgPGxpPkN1c3RvbSBmaWVsZHMgYW5kIGNhdGVnb3JpZXMgYXJlIG5vdyBjb3BpZWQgZnJvbSB0aGUgcGFyZW50IGV2ZW50IGlmIG5vdCBzcGVjaWZpZWQgZm9yIHRoZSBjaGlsZCBldmVudC48L2xpPgogICAgICAgIDxsaT5BbGwgbGlua3MvVVJMcyBnZW5lcmF0ZWQgdG8gZXZlbnRzIHVzZSBwcmV0dHkgVVJMUyAoaWYgZW5hYmxlZCkgYW5kIGFyZSBub24gaW5saW5lLjwvbGk+CiAgICAgICAgPGxpPmF1dGhvciBmaWVsZCBtYXkgYmUgcHJlc2VudCBmb3IgZWFjaCBldmVudCB0aGF0IGhhcyBhbiBhdXRob3IuLi4gYnV0IGF1dGhvcm5hbWUgKHdoaWNoIHdhcyBpbmNvbnNpc3RlbnRseSBhcHBsaWVkKSBoYXMgYmVlbiBkcm9wcGVkLiAgVXNlIGEgc21hcnR5IHBsdWdpbiB0byBleHRyYWN0IHRoZSBhdXRob3IgaW5mb3JtYXRpb24gYW5kIGRpc3BsYXkgaXQuPC9saT4KICAgICAgICA8bGk+dXNlX3Nlc3Npb24gbm93IGF1dG9tYXRpY2FsbHkgdHVybnMgb24gaW5saW5lIG1vZGUuLiBhbmQgd2lsbCB1c2UgaW5saW5lIG1vZGUgZm9yIGV2ZW4gbmlfIGxpbmtzL3VybHM8L2xpPgogICAgICAgIDxsaT51c2Vfc2Vzc2lvbiB2YWx1ZSBpcyBvbmx5IHVzZWQgYXMgYSBwcmVmaXggZm9yIHRoZSBzZXNzaW9uIGtleS4gIFRoZSBzZXNzaW9uIGtleSBpcyB1bmlxdWUgdG8gYWxsIGNhbGxzIG9mIENHQ2FsZW5kYXIuPC9saT4KICAgICAgICA8bGk+ZmllbGQgb3V0cHV0IGlzIG5vdyBjb25zaXN0ZW50IHdpdGggZmllbGQgb3JkZXJpbmcgKGJ5IGRlZmF1bHQpLjwvbGk+CiAgICAgIDwvdWw+CiAgICA8L2xpPgogICAgPGxpPlJlZmFjdG9yZWQgdGhlIGFkbWluIGNhdGVnb3JpZXMgdGFiLgogICAgICA8dWw+CiAgICAgICAgPGxpPkFkZHMgZHJhZyBhbmQgZHJvcCByZW9yZGVyaW5nLjwvbGk+CiAgICAgIDwvdWw+CiAgICA8L2xpPgogICAgPGxpPlJlZmFjdG9yZWQgdGhlIGFkbWluIGZpZWxkcyB0YWIuCiAgICAgIDx1bD4KICAgICAgICA8bGk+QWRkcyBkcmFnIGFuZCBkcm9wIHJlb3JkZXJpbmcuPC9saT4KICAgICAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBzcGVjaWZ5IHdldGhlciBhIHRleHQgYXJlYSBmaWVsZCBoYXMgYSB3eXNpd3lnIChhZG1pbiBpbnRlcmZhY2Ugb25seSkuPC9saT4KICAgICAgPC91bD4KICAgIDwvbGk+CiAgICA8bGk+TW9yZTwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMS4xMC4yIC0gRmVicnVhcnksIDIwMTMKICA8dWw+CiAgICA8bGk+QnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMS4xMCAtIEF1Z3VzdCAyMDEyCiAgPHVsPgogICAgPGxpPkFkZHMgYSB0b2dnbGUgdG8gdXNlIHd5c2l3eWdzIGZvciB0ZXh0YXJlYSBjdXN0b20gZmllbGRzLjwvbGk+CiAgICA8bGk+QWRkcyBhIHByZWZlcmVuY2UgZm9yIHRoZSBmcmllbmRseSBuYW1lLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb246IDEuOS43IC0gSnVseSAyMDEyCiAgPHVsPgogICA8bGk+TnVtZXJvdXMgbWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgIDxsaT5Nb3ZlIGhlbHAgb3V0IG9mIGxhbmcgZmlsZS48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uOiAxLjkuNiAtIEFwcmlsIDIwMTIKICA8dWw+CiAgIDxsaT5OdW1lcm91cyBtaW5vciBidWcgZml4ZXMuPC9saT4KICAgPGxpPkZpeCBqYXZhc2NyaXB0IGlzc3VlIGluIGVkaXQgZXZlbnQuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbjogMS45LjQgLSBNYXJjaCwgMjAxMgogIDx1bD4KICAgPGxpPk51bWVyb3VzIG1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICA8bGk+Rml4ZWQgbm90aWNlcyBpbiBkZWZhdWx0IHRlbXBsYXRlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uOiAxLjkuMSAtIE1hcmNoLCAyMDEyCiAgPHVsPgogICA8bGk+QWRkZWQgYWJpbGl0eSB0byBzcGVjaWZ5IGltcG9ydCBjb2x1bW4gZGVsaW1pdGVyPC9saT4KICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uOiAxLjkgLSBKYW51YXJ5LCAyMDEyCiAgPHVsPgogICA8bGk+SW1wcm92ZWQgZXZlbnQgaW1wb3J0IGNhcGFiaWxpdGllcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uOiAxLjguMiAtIE9jdG9iZXIsIDIwMTEKICA8dWw+CiAgIDxsaT5NaW5vciBldmVudCBuYW1lIGZpeC48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uOiAxLjcuNSAtIEF1Z3VzdCwgMjAxMQogIDx1bD4KICA8bGk+QWRzIGZpcnN0IGRheSwgYW5kIGxhc3QgZGF5IHN0dWZmIHRvIHRoZSBldmVudCBpbiB0aGUgY2FsZW5kYXIgdmlldy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uOiAxLjcuMyAtIEp1bHksIDIwMTEKICA8dWw+CiAgPGxpPk1vcmUgRml4ZXMgdG8gdGhlIGxpc3Qgdmlldy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uOiAxLjcuMiAtIEp1bHksIDIwMTEKICA8dWw+CiAgPGxpPkZpeGVzIHRvIHRoZSBsaXN0IHZpZXcuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbjogMS43LjEgLSBKdWx5LCAyMDExCiAgPHVsPgogIDxsaT5UaGUgdW5pcXVlX29ubHkgcGFyYW1ldGVyIG5vdyBkZWZhdWx0cyB0byAmcXVvdDtvZmYmcXVvdDsgZm9yIGFsbCB2aWV3cy48L2xpPgogIDxsaT5BZGRzIHRoZSBkaXNwbGF5Zm9yZGF5IHBhcmFtZXRlciB0byB0aGUgdXBjb21pbmdsaXN0IHZpZXcuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbjogMS43IC0gSnVuZSwgMjAxMQogIDx1bD4KICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBmaWx0ZXIgdGhlICZxdW90O215ZXZlbnRzJnF1b3Q7IHZpZXcgYnkgYSBjYXRlZ29yeS48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uOiAxLjYuMSAtIEFwcmlsLCAyMDExCiAgPHVsPgogICAgPGxpPlJlbW92ZSBkZWJ1ZyBzdGF0ZW1lbnRzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb246IDEuNiAtIEFwcmlsLCAyMDExCiAgPHVsPgogICAgPGxpPkFkZHMgYSBjb21wYW55IGRpcmVjdG9yeSBmaWVsZCB0eXBlLjwvbGk+CiAgICA8bGk+QnVnIEZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb246IDEuNS43IC0gU2VwdGVtYmVyIDIwMTAKICA8dWw+CiAgICA8bGk+TW9yZSBmaXhlcyB0byBkaXNwbGF5Y2FsZW5kYXIgYW5kIGRpc3BsYXl1cGNvbWluZ2xpc3QuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbjogMS41LjYgLSBTZXB0ZW1iZXIgMjAxMAogIDx1bD4KICAgIDxsaT5GaXhlcyB0byB1cGNvbWluZyBsaXN0IHBhZ2luYXRpb24uPC9saT4KICAgIDxsaT5GaXhlcyB0byB1bmlxdWUgb25seSBwYXJhbSBpbiB1cGNvbWluZyBsaXN0LjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb246IDEuNS41IC0gQXVndXN0IDIwMTAKICA8dWw+CiAgICA8bGk+Tm93IFJlcXVpcmUgQ0dFeHRlbnNpb25zIDEuMTkuNDwvbGk+CiAgICA8bGk+QWRkcyBhIHByZWZlcmVuY2UgZm9yIHRoZSBVUkwgcHJlZml4LjwvbGk+CiAgICA8bGk+QWRkcyBhIHByZWZlcmVuY2UgdG8gZGVmYXVsdCBuZXcgZXZlbnRzIHRvIGFsbCBkYXkgZXZlbnRzLjwvbGk+CiAgICA8bGk+QWRkcyBhIHByZWZlcmVuY2UgZm9yIHRoZSBkZWZhdWx0IHN0YXJ0IHRpbWUgZm9yIG5vbi1hbGxkYXkgZXZlbnRzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb246IDEuNS40IC0gQXVndXN0IDIwMTAKICA8dWw+CiAgICA8bGk+QnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb246IDEuNS4zIC0gSnVseSAyMDEwCiAgPHVsPgogICAgPGxpPk1pbm9yIGJ1ZyBmaXguPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbjogMS41LjIgLSBBcHJpbCAyMDEwCiAgPHVsPgogICAgPGxpPlJlbW92ZSBsZWZ0b3ZlciBkZWJ1ZyBzdGF0ZW1lbnRzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb246IDEuNS4xIC0gQXByaWwgMjAxMAogIDx1bD4KICAgIDxsaT5CdWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbjogMS41IC0gQXByaWwgMjAxMAogIDx1bD4KICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIHBlcmZvcm0gc2VhcmNoIG9uIGN1c3RvbSBmaWVsZCB2YWx1ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbjogMS40IC0gQXByaWwgMjAxMAogIDx1bD4KICAgIDxsaT5CdWcgZml4ZXMgd3J0IGRlbGV0aW5nIGV2ZW50cy48L2xpPgogICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgZm9yIGxvZ2dlZCBpbiBmcm9udGVuZCB1c2VycyB0byBhZGQsIGVkaXQsIG9yIGRlbGV0ZSBjYWxlbmRhciBldmVudHMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbjogMS4zLjEgLSBNYXJjaCAyMDEwCiAgPHVsPgogICAgPGxpPk1pbm9yIGJ1Z2ZpeCBpbiBpbnN0YWxsZXIuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbjogMS4zIC0gRGVjZW1iZXIgMjAwOQogIDx1bD4KICAgIDxsaT5BZGRzIHRoZSBjb25jZXB0IG9mIGFsbCBkYXkgZXZlbnRzLjwvbGk+CiAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBhbGxvdyBldmVudHMgdG8gb3ZlcmxhcCBvciBub3QuPC9saT4KICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIHJlbW92ZSBhbGwgY29uZmxpY3Rpbmcvb3ZlcmxhcHBpbmcgZXZlbnRzLjwvbGk+CiAgICA8bGk+VmFyaW91cyBidWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbjogMS4yLjUgLSBTZXB0ZW1iZXIgMjAwOQogIDx1bD4KICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgoKPGxpPlZlcnNpb246IDEuMi40IC0gU2VwdGVtYmVyIDIwMDkKICA8dWw+CiAgICA8bGk+QWRkcyBzdXBwb3J0IGZvciB0ZXh0YXJlYSBmaWVsZHMuPC9saT4KICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbjogMS4yLjMgLSBTZXB0ZW1iZXIgMjAwOQogIDx1bD4KICAgIDxsaT5GaXhlcyBzdHVwaWQgZXJyb3JzIHdpdGggdGhlIGluc3RhbGxlci48L2xpPgogICAgPGxpPkFkZHMgdW5pcXVlX29ubHkgcGFyYW1ldGVyLjwvbGk+CiAgICA8bGk+QWRkcyBiYXNpYyBpY2FsIHN1cHBvcnQgaW4gZXZlbnQgdmlld3MuKFRlZCk8L2xpPgogICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uOiAxLjIuMiAtIE1heSAyMDA5CiAgPHVsPgogICAgPGxpPkZpeGVzIGVkZ2UgY2FzZSBwcm9ibGVtIHdpdGggZGF0ZXMgcmVjdXJyaW5nIG1vbnRobHkgb24gdGhlIE50aCB3ZWVrZGF5PC9saT4KICAgIDxsaT5GaXhlcyB1cGNvbWluZ2xpc3Qgdmlldy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uOiAxLjIuMSAtIE1heSAyMDA5CiAgPHVsPgogICAgPGxpPkZpeGVzIHByb2JsZW0gd2l0aCBkYXRlcyByZWN1cnJpbmcgbW9udGhseSBvbiB0aGUgTnRoIHdlZWtkYXk8L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uOiAxLjIgLSBBcHJpbCAyMDA5CiAgPHVsPgogICAgPGxpPkFkZHMgcGFnaW5hdGlvbiB0byB1cGNvbWluZyBsaXN0IHZpZXcuPC9saT4KICAgIDxsaT5WYXJpb3VzIGJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uOiAxLjEgLSBNYXJjaCAyMDA5CiA8dWw+CiAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgPGxpPkFkZCBlbmhhbmNlZCBtb250aGx5IHJlY3VyaW5nIGV2ZW50IGNhcGFiaWxpdGllcy48L2xpPgogICA8bGk+QWRkIHNlYXJjaCBmb3JtLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+PHA+VmVyc2lvbjogMS4wPC9wPgo8cD5Gb3JrIHZlcnNpb24gMC44LjIgb2YgdGhlIENhbGVuZGFyIG1vZHVsZSwgYW5kIGNvbXBsZXRlbHkgcmUtZG8gZXZlbnQgYWRkaW5nLCBlZGl0aW5nLCByZWN1cnJpbmcgZXZlbnRzLCBhbmQgdGVtcGxhdGVzLiAgVGhpcyBtb2R1bGUgaXMgbm90IGNvbXB0aWJsZSB3aXRoIHByZXZpb3VzIHZlcnNpb25zIG9mIHRoZSBDYWxlbmRhciBtb2R1bGU8L3A+CjwvbGk+CjxsaT48cD5WZXJzaW9uOiAwLjguMjwvcD4KICA8cD5GaXggdG8gcHJldHR5IHVybHMuPC9wPgo8L2xpPgo8bGk+PHA+VmVyc2lvbjogMC44LjE8L3A+CiAgPHA+TWlub3IgZml4IHRvIHNlYXJjaCBpbnRlZ3JhdGlvbiB3aGVuIHVwZGF0aW5nIGFuIGV2ZW50LjwvcD4KICA8cD5BZGQgY2F0ZWdvcmllcyBpbmZvcm1hdGlvbiB0byB0aGUgbGlzdCBkaXNwbGF5LjwvcD4KPC9saT4KPGxpPjxwPlZlcnNpb246IDAuODwvcD4KICA8cD5BZGRzIHNlYXJjaCBjYXBhYmlsaXRpZXM8L3A+CjwvbGk+CjxsaT48cD5WZXJzaW9uOiAwLjcuMTQ8L3A+CiAgPHA+Rml4ZXMgYSBzZXJpb3VzIGlzc3VlIHRoYXQgY291bGQgcmVzdWx0IGluIHRob3VzYW5kcyBvZiBuZWVkbGVzcyBjYWxlbmRhciBlbnRyaWVzIGJlaW5nIGluc2VydGVkIGludG8gdGhlIHRhYmxlLjwvcD4KPC9saT4KPGxpPjxwPlZlcnNpb246IDAuNy4xMzwvcD4KICA8cD5GaXhlcyBmcmllbmRseSB1cmxzIGZvciBkZXRhaWwgYXJ0aWNsZXM8L3A+CjwvbGk+CjxsaT48cD5WZXJzaW9uOiAwLjcuMTI8L3A+CiAgPHA+Rml4ZXMgZmlsZSB1cGxvYWQgZmllbGRzPC9wPgogIDxwPkZpeGVzIGlzc3VlcyB3aXRoIHJlZmVyZW5jZXMgdG8gdGhlIEFsYnVtIG1vZHVsZTwvcD4KICA8cD5BZGRzIHJlY3VycmluZyBldmVudHM8L3A+CjwvbGk+CjxsaT48cD5WZXJzaW9uOiAwLjcuMTE8L3A+CiAgPHA+Rml4ZWQgYSBidWcgaW50cm9kdWNlZCBieSBicmluaW5nIGluIHRoZSBjYXRlZ29yaWVzLCB3aGVyZWJ5IHRoZSBqb2luIGRpZCBub3Qgd29yayBvbiBlYXJsaWVyIHZlcnNpb25zIG9uIG15U1FMLiAoY29kZXBvZXQpPC9wPgogIDxwPkFkZGVkIGEgbGlzdCBvZiBjYXRlZ29yaWVzIHRoYXQgZWFjaCBldmVudCBpcyBhc3NvY2lhdGVkIHdpdGggdG8gdGhlIGRhdGEgYXZhaWxhYmxlIHRvIHRoZSB0ZW1wbGF0ZS4gKGNvZGVwb2V0KTwvcD4KICA8cD5GaXhlZCBhIGJ1ZyBpbnRyb2R1Y2VkIGluIDAuNy4xMCB0aGF0IHByZXZlbnRzIGEgY2xlYW4gaW5zdGFsbCBmcm9tIHdvcmtpbmcsIGJlY2F1c2Ugb2YgYW4gZXh0cmEgY29tbWEgb24gdGhlIGVuZCBvZiB0aGUgZmllbGQgbGlzdCBmb3IgdGFibGUgY21zX21vZHVsZV9lY2FsYW5kZXJfZXZlbnRfZmllbGRfdmFsdWVzIChjb2RlcG9ldCk8L3A+CjwvbGk+CjxsaT48cD5WZXJzaW9uOiAwLjcuMTAgLSBjYWxndXkxMDAwPC9wPgo8cD5BZGRlZCBzdXBwb3J0IGZvciBmaWxlIHVwbG9hZHMgaW4gY3VzdG9tIGZpZWxkczwvcD4KPHA+QWRkZWQgdGhlIGFiaWxpdHkgdG8gc3VwcGx5IFwnbmV4dFwnIGFzIHRoZSBldmVudF9pZCBpbiB0aGUgZXZlbnQgZGlzcGxheSwgdG8gZGlzcGxheSB0aGUgbmV4dCB1cGNvbWluZyBldmVudC48L3A+CjwvbGk+CjxsaT48cD5WZXJzaW9uOiAwLjcuOTwvcD4KICA8cD5BZGRlZCBjdXN0b20gZmllbGRzIHRoYXQgY2FuIGJlIGFzc29jaWF0ZWQgd2l0aCBlYWNoIGV2ZW50LjwvcD4KPC9saT4KCjxsaT48cD5WZXJzaW9uOiAwLjcuODwvcD4KICA8cD5GaXhlZCBhIGRldGFpbHBhZ2UvcmV0dXJubGluayBidWcuLi4gYWdhaW4uLi48L3A+CjwvbGk+Cgo8bGk+PHA+VmVyc2lvbjogMC43Ljc8L3A+CiAgPHA+QWRkZWQgYSBkZWZhdWx0IGNhdGVnb3J5PC9wPgogIDxwPkFkZGVkIGFuIG9wdGlvbiB0byBhbGxvdyBhbiBldmVudCB0byBiZSBmb3JjZWQgYSBtZW1iZXIgb2YgYXQgbGVhc3QgMSBjYXRlZ29yeTwvcD4KICA8cD5BZGRlZCBvcHRpb25zIG9mIGhvdyBtYW55IHllYXJzIGluIHRoZSBwYXN0IGFuZCBmdXR1cmUgeW91IHNob3VsZCBiZSBhYmxlIHRvIHNlbGVjdDwvcD4KICA8cD5Qcm9ncmVzcyB0b3dhcmRzIG1vcmUgdXB0b2RhdGUgQVBJLXVzYWdlLCB1c2luZyB0ZW1wbGF0ZXMsIGFjdGlvbnMgZXRjLjwvcD4KICA8cD5OdW1lcm91cyBidWdmaXhlczwvcD4KPC9saT4KCjxsaT48cD5WZXJzaW9uOiAwLjcuNjwvcD4KICA8cD5BZGRlZCBjb2x1bW4gc3R5bGUgb3V0cHV0IGZvciB1cGNvbWluZ2xpc3QgYW5kIHBhc3RsaXN0PC9wPgogIDxwPk1vdmVkIGV4YW1wbGUgc3R5bGVzaGVldCB0byB0aGUgc3R5bGVzaGVldGxpc3Q8L3A+CiAgPHA+QWRkZWQgdGFnZ2luZyBvZiBldmVudHMgYW5kIGRlbGV0aW9ucyBvZiB0YWdnZWQgb25lczwvcD4KICA8cD5SZXdvcmtlZCBmb3IgdXNlIG9mIGV4dGVybmFsIGFjdGlvbmZpbGVzPC9wPgogIDxwPkltcHJvdmVkIHRhYi1mdW5jdGlvbmFsaXkgYW5kIGFjdGlvbm1lc3NhZ2VzPC9wPgo8L2xpPgoKPGxpPjxwPlZlcnNpb246IDAuNy41PC9wPgogIDxwPkZpeGVkIGEgbG90IG9mIG9wZW5iYXNlZGlyLWlzc3VlczwvcD4KCjwvbGk+Cgo8bGk+PHA+VmVyc2lvbjogMC43LjQ8L3A+CiAgPHA+Rml4ZWQgaGFyZGNvZGVkIGxlbmd0aCBvZiB0aXRsZSBpbnB1dCBmaWVsZDwvcD4KICA8cD5GaXhlZCBzb21lIG1pc3NpbmcgbG9jYWxpemF0aW9uPC9wPgogIDxwPlJlbW92ZWQgc3VwcG9ydCBmb3IgcHJldHR5IHVybHMgKGl0IHdhcyBub3Qgd29ya2luZywgYXMgc29tZSBwYXJhbWV0ZXJzIHdlcmUgbWlzc2luZywgYW5kIHB1dHRpbmcgdGhlbSBpbiB3b3VsZCBoYXZlIG1hZGUgdGhlIHVybHMgdW5wcmV0dHkgYW55d2F5czwvcD4KCiAgPHA+VXBkYXRlZCBwZXJtaXNzaW9ucyBtb2RlbC4gIE5vdyBuZWVkIFwnTW9kaWZ5IFRlbXBsYXRlc1wnIHBlcm1pc3Npb24gdG8gbW9kaWZ5IHRoZSB0ZW1wbGF0ZXMsIGFuZCBcJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzXCcgcGVybWlzc2lvbiB0byBhZGp1c3QgdGhlIHByZWZlcmVuY2VzLjwvcD4KCjwvbGk+CjxsaT48cD5WZXJzaW9uOiAwLjcuMzwvcD4KICAgIDxwPkFkZGVkIE1pbmltdW0gQ01TIFZlcnNpb248L3A+CiAgICA8cD5BZGRlZCB0aGUgcGFzdGxpc3Qgb3B0aW9uPC9wPgo8L2xpPgo8bGk+PHA+VmVyc2lvbjogMC43LjI8L3A+CiAgICA8cD5DTVMgMS4wIGNvbXBhdGlibGl0eTwvcD4KICAgIDxwPlNwbGl0IG91dCBpbnRvIG51bWVyb3VzIGZpbGVzIGZvciBiZXR0ZXIgbWVtb3J5IGVmZmljaWVuY3k8L3A+CiAgICA8cD5JbnRyb2R1Y2VkIHJlZmVyZW5jZXMgd2hlcmUgbmVjZXNzYXJ5IHRvIGltcHJvdmUgbWVtb3J5IGVmZmljaWVuY3k8L3A+CiAgICA8cD5BZGRlZCBmdW5jdGlvbnMgdG8gYWxsb3cgZm9yIHRhbGtpbmcgd2l0aCB0aGlzIG1vZHVsZSB2aWEgb3RoZXIgbW9kdWxlczwvcD4KICAgIDxwPkFkZGVkIGV2ZW50czwvcD4KICAgIDxwPkltcHJvdmVkIHNlY3VyaXR5IGFuZCByZWR1Y2VkIG1lbW9yeSBmb290cHJpbnQ8L3A+CjwvbGk+CjxsaT48cD5WZXJzaW9uOiAwLjcgc3RhYmxlPC9wPgogICAgPHA+Rml4ZWQgcHJvYmxlbSB3aXRoIGJyb2tlbiBtb250aCBsaXN0IG9uIDMxc3Qgb2YgZWFjaCBtb250aDs8L3A+CiAgICA8cD5GaXhlZCBwcm9ibGVtIHdpdGggQ2FsZW5kYXIgc2hvd2luZyBpbiB0aGUgbWVudSBmb3IgdW5hdXRob3JpemVkIGFkbWluIHVzZXJzLjwvcD4KPC9saT4KPGxpPjxwPlZlcnNpb246IDAuN2JldGEzPC9wPgogICAgPHA+QWRkZWQgdGhlIHllYXJsaXN0IHZpZXcgb3B0aW9uIHRvIGxpc3QgYWxsIGV2ZW50cyBpbiB0aGUgeWVhci4gQWN0cyBsaWtlIHRoZSBsaXN0IG9wdGlvbi48L3A+CjwvbGk+CjxsaT48cD5WZXJzaW9uOiAwLjdiZXRhMjwvcD4KICAgIDxwPkFkZGVkIHRoZSByZXZlcnNlIHBhcmFtZXRlciB0byBzaG93IGV2ZW50cyBpbiByZXZlcnNlIGNocm9ub2xvZ2ljYWwgb3JkZXIuPC9wPgo8L2xpPgo8bGk+PHA+VmVyc2lvbjogMC43YmV0YTE8L3A+CiAgICA8cD5BZGRlZCBuYXZpZ2F0aW9uIGluIHRoZSBsaXN0IHZpZXcsIGZpeGVkIHByb2JsZW0gd2l0aCBldmVudHMgbm90IHNob3dpbmcgdXAgaW4gdGhlIGxpc3Qgdmlldy48L3A+CjwvbGk+CjxsaT48cD5WZXJzaW9uOiAwLjdhbHBoYTI8L3A+CiAgICA8cD48dWw+CiAgICAgICA8bGk+QnVnIGZpeDogaW5jbHVkZSBsYXN0IGRheSBvZiB0aGUgbW9udGghPC9saT4KICAgICAgIDxsaT5CdWcgZml4OiB0ZW1wbGF0ZSB1c2Ugb2YgJHRhYmxlX2lkIHNob3VsZCBoYXZlIHt9IGFyb3VuZCBpdC48L2xpPgogICAgICAgPGxpPkluY2x1ZGUgaWNvbiBmb3IgY29udGVudCBwYWdlLjwvbGk+CiAgICAgICA8bGk+V2hpdGVzcGFjZSBjaGFuZ2VzIC0gdHJhaWxpbmcgc3BhY2VzIGFuZCB0YWJzL3NwYWNlIHRpZHkgdXAuPC9saT4KICAgICAgIDxsaT5NYWtlIGRlZmF1bHQgdGVtcGxhdGVzIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwgY29tcGxpYW50LjwvbGk+CiAgICA8L3VsPjwvcD4KPC9saT4KPGxpPjxwPlZlcnNpb246IDAuN2FscGhhMTwvcD4KICAgIDxwPkNvbXBsZXRlIHJld3JpdGUgdG8gZml0IGludG8gMC4xMC54IGJldHRlci48L3A+CiAgICA8cD5TdXBwb3J0IGxhbmd1YWdlIGZvciBkYXkgYW5kIG1vbnRoIG5hbWVzPC9wPgogICAgPHA+VXNlIHNtYXJ0eSB0ZW1wbGF0ZXMgZm9yIGNvbnRyb2xsaW5nIHRoZSBkaXNwbGF5LjwvcD4KICAgIDxwPlJld3JpdGUgdGhlIFNRTCB1c2VkIHRvIHNlbGVjdCB0aGUgZXZlbnRzIHRvIGhvcGVmdWxseSBiZSBtb3JlIG1haW50YWluYWJsZS48L3A+CiAgICA8cD48c3Ryb25nPk5vdGU8L3N0cm9uZz4gdGhhdCB0aGUgbGFuZ3VhZ2UgZmlsZXMgYXJlIG5vdCBmdWxseSB1cGRhdGVkIGZvciB0aGlzIHZlcnNpb24hPC9wPgo8L2xpPgo8bGk+PHA+VmVyc2lvbjogMC42LjE8L3A+CiAgICA8cD5Nb3JlIGZpeGVzIGZvciBtdWx0aS1kYXkgZXZlbnQgb24gY2FsZW5kYXIuIEFkZGVkIG5ldyBwYXJhbWV0ZXIgInRpbWVfZm9ybWF0IiBzbyB3ZSBjYW4gbWFrZSB0aGUgZGlzcGxheSBvZiBhIHNpbmdsZSBkYXkgZXZlbnQgd2l0aCBhIHN0YXJ0IGFuZCBzdG9wIHRpbWUgbG9vayBiZXR0ZXIuIENoYW5nZSBkZV9ERVwncyAidG8iIHRvICJiaXMiIGFzIHBlciBNb3JkcmFuXCdzIHBvc3Qgb24gdGhlIGJvYXJkcy48L3A+CjwvbGk+CjxsaT48cD5WZXJzaW9uOiAwLjY8L3A+CiAgIDxwPkZpeCBldmVudCBkaXNwbGF5IHNvIHRoYXQgaWYgdGhlIGVuZCBkYXRlIGlzIG5vdCBzZXQsIHdlIGRvblwndCBkaXNwbGF5ICJ0byIuPC9wPgogICA8cD5GaWx0ZXIgYnkgY2F0ZWdvcnkgd2hlbiBkaXNwbGF5aW5nIGFuIHVwY29taW5nbGlzdC48L3A+CiAgIDxwPkZpeCBFbmQgZGF0ZSBzZXR0aW5nIHRoYXQgd2FzIG9mZiBieSBvbmUuPC9wPgogICA8cD5GaXggb2RkIGJlaGF2aW91ciBvZiB5ZWFyIHdoZW4gdHJhbnNpdGlvbmluZyBmcm9tIEphbiB0byBEZWMgb3IgRGVjIHRvIEphbiBpbiB0aGUgY2FsZW5kYXIgdmlldy48L3A+CiAgIDxwPlN1cHBvcnQgbXV0bGktZGF5IGV2ZW50cyBpbiB0aGUgY2FsZW5kYXIgdmlldy48L3A+CjwvbGk+CjxsaT48cD5WZXJzaW9uOiAwLjU8L3A+CiAgICA8cD5GaXggdGhlIGRyb3AgZG93biBsaXN0IGZvciBlbmQgZGF0ZSB5ZWFyLiBGaXggREUgdHJhbnNsYXRpb24gb2YgIlJldHVybiIgKHRoYW5rcyBQaXJhdG9zISkuPC9wPgogICAgPHA+Rml4IHNwYWNpbmcgYXJvdW5kICJ0byIgKHRoYW5rcyBHcmVnISkuIEFkZCBEYW5pc2ggYW5kIER1dGNoIHRyYW5zbGF0aW9ucyBjb3VydGVzeSBvZiBib2FyZCBtZW1iZXJzIGVzbWFubiBhbmQgZG9udC48L3A+CjwvbGk+CjxsaT48cD5WZXJzaW9uOiAwLjQ8L3A+CiAgICA8cD5TdXBwb3J0IGZvciBsYW5ndWFnZSB0cmFuc2xhdGlvbnMuIERlZmF1bHQgdG8gYSBOVUxMIGVuZCBkYXRlLiBJbXByb3ZlZCB0aGUgaGVscCBpbmZvcm1hdGlvbi48L3A+CiAgICA8cD5EaXNwbGF5IHVwY29taW5nIGV2ZW50cyBpbiB0aGUgY29ycmVjdCBvcmRlciEgT3RoZXIgbWlub3IgYnVnIGZpeGVzLjwvcD4KPC9saT4KPGxpPjxwPlZlcnNpb246IDAuMzwvcD4KICAgIDxwPkluaXRpYWwgc3VwcG9ydCBmb3IgIkZyb20iIGFuZCAiVG8iIGRhdGVzIGZvciBldmVudHMuIEFiaWxpdHkgdG8gZmlsdGVyIGFkbWluIGxpc3Qgb2YgZXZlbnRzIGJ5IGNhdGVnb3J5LjwvcD4KPC9saT4KPGxpPjxwPlZlcnNpb246IDAuMjwvcD4KICAgIDxwPk5ldyBkaXNwbGF5IG9wdGlvbjogInVwY29taW5nbGlzdCIuIEFsc28gbWFueSBidWdmaXhlcyE8L3A+CjwvbGk+CjxsaT48cD5WZXJzaW9uOiAwLjE8L3A+CiAgICA8cD5Jbml0aWFsIHJlbGVhc2UuPC9wPgo8L2xpPgo8L3VsPgo8YnIgLz4=]]></about>
	<description><![CDATA[A full featured, and flexible module to allow displaying information about events in numerous formats.]]></description>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.44.5</requiredversion>
	</requires>
	<requires>
	  <requiredname>CGSimpleSmarty</requiredname>
	  <requiredversion>1.7.4</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.addedit_event.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4CiMgICAgICBieSBSb2JlcnQgQWxsZW4gKGFrcmFiYXQpIGFuZAojICAgICAgICAgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBkaXNwbGF5aW5nIGNhbGVuZGFycywKIyAgYW5kIG1hbmFnZW1lbnQgYW5kIGRpc3BsYXkgb2YgdGltZSBiYXNlZCBldmVudHMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCmZ1bmN0aW9uIGhhbmRsZV9udWxsX2RhdGUoJHN0cikKewogIGlmKCAhaXNfbnVsbCgkc3RyKSApIHJldHVybiB0cmltKCRzdHIsIiciKTsKICByZXR1cm4gJHN0cjsKfQoKCi8vCi8vIHNhZmV0eSBjaGVja3MKLy8KJGZldSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwppZiggISRmZXUgKSB7CiAgZWNobyAnPGgzPjxmb250IGNvbG9yPSJyZWQiPicuJHRoaXMtPkxhbmcoJ2Vycm9yX25vZmV1JykuIjwvZm9udD48L2gzPlxuIjsKICByZXR1cm47Cn0KZWxzZSBpZiggISRmZXUtPkxvZ2dlZEluKCkgKSB7CiAgZWNobyAnPGgzPjxmb250IGNvbG9yPSJyZWQiPicuJHRoaXMtPkxhbmcoJ2Vycm9yX2ZldV9sb2dnZWRpbicpLiI8L2ZvbnQ+PC9oMz5cbiI7CiAgcmV0dXJuOwp9CgovLwovLyBpbml0aWFsaXphdGlvbgovLwokZmV1X3VpZCA9ICRmZXUtPkxvZ2dlZEluSWQoKTsKJHRoZXRlbXBsYXRlID0gJ2VkaXRldmVudF8nLiR0aGlzLT5HZXRQcmVmZXJlbmNlKENHQ0FMRU5EQVJfUFJFRl9ERkxURURJVEVWRU5UX1RFTVBMQVRFKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ2VkaXRldmVudHRlbXBsYXRlJ10gKSApICR0aGV0ZW1wbGF0ZSA9ICdlZGl0ZXZlbnRfJy4kcGFyYW1zWydlZGl0ZXZlbnR0ZW1wbGF0ZSddOwokZXZlbnRfaWQgPSBnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsICdldmVudF9pZCcsIC0xKTsKJGV2ZW50ID0gJHRoaXMtPkdldEV2ZW50KCRldmVudF9pZCwkZmV1X3VpZCk7CiRmaWVsZHMgPSAkdGhpcy0+R2V0RmllbGRzKCk7CiRjYXRlZ29yaWVzID0gJHRoaXMtPkdldENhdGVnb3JpZXMoKTsKJHBvbGljeSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdvdmVybGFwX3BvbGNpeScsJ2FsbCcpOwokZm9yY2VfY2F0ZWdvcnkgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZm9yY2VfY2F0ZWdvcnknLDApOwokZGVzdHBhZ2UgPSAkcmV0dXJuaWQ7CmlmKCBpc3NldCgkcGFyYW1zWydyZXR1cm5faWQnXSkgKSB7CiAgJGRlc3RwYWdlID0gKGludCkkcGFyYW1zWydyZXR1cm5faWQnXTsKfQplbHNlIHsKICAkdG1wID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Zyb250ZW5kX3JlZGlyZWN0cGFnZScsJycpOwogIGlmKCAkdG1wICkgewogICAgJHRtcCA9ICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdG1wKTsKICAgIGlmKCAkdG1wICkgewogICAgICAkdG1wID0gJHRoaXMtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHRtcCk7CiAgICAgIGlmKCAkdG1wICkgJGRlc3RwYWdlID0gJHRtcDsKICAgIH0KICB9Cn0KJHN0YXR1cyA9ICcnOwokbWVzc2FnZSA9ICcnOwoKLy8gQWRkIGlucHV0IGNvbnRyb2xzIGZvciBlYWNoIG9mIHRoZSBjdXN0b20gZmllbGRzIHRoYXQgYXJlIGRlZmluZWQuCmlmKCAkZmllbGRzICkgewogICAgJHRtcCA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCRmaWVsZHMgYXMgJGZpZWxkKSB7CiAgICAgICAgJGZpZWxkX3ZhbHVlcyA9ICRldmVudFsnZmllbGRzJ107CiAgICAgICAgJGZpZWxkX25hbWUgPSAkZmllbGRbJ2ZpZWxkX25hbWUnXTsKICAgICAgICAkZmllbGRfdHlwZSA9ICRmaWVsZFsnZmllbGRfdHlwZSddOwogICAgICAgICRmaWVsZF92YWx1ZSA9ICIiOwogICAgICAgIGlmKCBpc3NldCgkZmllbGRfdmFsdWVzWyRmaWVsZF9uYW1lXSkgKSAkZmllbGRfdmFsdWUgPSAkZmllbGRfdmFsdWVzWyRmaWVsZF9uYW1lXTsKCiAgICAgICAgLy8gUmVwbGFjZSBzcGFjZXMgd2l0aCB1bmRlcmJhcnMgZm9yIHRoZSBmb3JtIHBhcmFtZXRlciAoYSBiaXQgb2YgYW4gaWtreSBoYWNrIEkga25vdywKICAgICAgICAvLyBidXQgSSBjYW4gd2VsbCBpbWFnaW5lIGZvbGsgZGVmaW5pbmcgY3VzdG9tIGZpZWxkcyB3aXRoIHNwYWNlcyBpbiB0aGUgbmFtZSkKICAgICAgICAvLyBQZXJoYXBzIGl0IHdvdWxkIGhhdmUgYmVlbiBiZXR0ZXIgaWYgY3VzdG9tIGZpZWxkcyBhbHNvIGhhZCBhIG51bWVyaWMga2V5IC0gaG9odW0gbGl2ZSBhbmQgbGVhcm4hCgogICAgICAgICRvYmogPSBuZXcgU3RkQ2xhc3MoKTsKICAgICAgICAkb2JqLT5uYW1lID0gJGZpZWxkWydmaWVsZF9uYW1lJ107CiAgICAgICAgJG9iai0+c2FmZW5hbWUgPSAgc3RyX3JlcGxhY2UgKCAiICIsICJfIiwgJGZpZWxkX25hbWUgKTsKICAgICAgICAkb2JqLT52YWx1ZSA9ICRmaWVsZF92YWx1ZTsKICAgICAgICAkb2JqLT50eXBlID0gJGZpZWxkX3R5cGU7CiAgICAgICAgaWYoIGlzc2V0KCRmaWVsZFsnZmllbGRfZXh0cmEnXSkgKSAkb2JqLT5leHRyYSA9ICRmaWVsZFsnZmllbGRfZXh0cmEnXTsKICAgICAgICBzd2l0Y2goICRmaWVsZF90eXBlICkgewogICAgICAgIGNhc2UgMDogLy8gdGhlIG5vcm1hbCB0ZXh0IGZpZWxkCiAgICAgICAgICAgICRvYmotPmZpZWxkID0gJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdjYWxfZmllbGRfJy4kb2JqLT5zYWZlbmFtZSwgJGZpZWxkX3ZhbHVlLCA1MCwgMjU1KTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgMToKICAgICAgICAgICAgLy8gYW4gdXBsb2FkIGZpZWxkIHR5cGUKICAgICAgICAgICAgLy8gZGlzcGxheSBhIGxhYmVsIHdpdGggdGhlIGN1cnJlbnQgdmFsdWUsIGFuZCB0aGVuIGFuIHVwbG9hZCBmaWVsZAogICAgICAgICAgICAkb2JqLT52YWx1ZSA9ICRmaWVsZF92YWx1ZTsKICAgICAgICAgICAgJG9iai0+ZmllbGQgPSAkdGhpcy0+Q3JlYXRlRmlsZVVwbG9hZElucHV0KCRpZCwnY2FsX2ZpZWxkXycuJG9iai0+c2FmZW5hbWUsJycsNTApLgogICAgICAgICAgICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnY2FsX3VwbG9hZF9maWVsZF8nLiRvYmotPnNhZmVuYW1lLCRmaWVsZF9uYW1lKS4KICAgICAgICAgICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2NhbF91cGxvYWRfZmllbGRfb2xkdmFsdWVfJy4kb2JqLT5zYWZlbmFtZSwkZmllbGRfdmFsdWUpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAvLyB0ZXh0IGFyZWEKICAgICAgICAgICAgJG9iai0+ZmllbGQgPSAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsJGlkLCRmaWVsZF92YWx1ZSwnY2FsX2ZpZWxkXycuJG9iai0+c2FmZW5hbWUpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAvLyBjb21wYW55IGRpcmVjdG9yeSBlbnRyeS4KICAgICAgICAgICAgJGNkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDb21wYW55RGlyZWN0b3J5Jyk7CiAgICAgICAgICAgIGlmKCAhJGNkbW9kICkgewogICAgICAgICAgICAgICAgLy8gaGF2ZSBmaWVsZCB0eXBlLCBidXQgbm8gY29tcGFueWRpcmVjdG9yeSBtb2R1bGUuCiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBnZXQgYSBsaXN0IG9mIHRoZSBjb21wYW5pZXMgdGhhdCB3ZSB3YW50IHRvIGRpc3BsYXkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpZCxjb21wYW55X25hbWUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIE9SREVSIEJZIGNvbXBhbnlfbmFtZSc7CiAgICAgICAgICAgICAgICAkZGJyID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogICAgICAgICAgICAgICAgaWYoICRkYnIgKSB7CiAgICAgICAgICAgICAgICAgICAgJHRtcDIgPSBhcnJheSgkdGhpcy0+TGFuZygnbm9uZScpPT4tMSk7CiAgICAgICAgICAgICAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGRicik7ICRpKysgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR0bXAyWyRkYnJbJGldWydjb21wYW55X25hbWUnXV0gPSAkZGJyWyRpXVsnaWQnXTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJG9iai0+ZmllbGQgPSAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2NhbF9maWVsZF8nLiRvYmotPnNhZmVuYW1lLCR0bXAyLC0xLCRmaWVsZF92YWx1ZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgLy8gZmlsZSBhdHRhY2htZW50CiAgICAgICAgICAgICRkaXIgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXBsb2FkZGlyZWN0b3J5JywkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSk7CiAgICAgICAgICAgICRwYXR0ZXJuID0gZXhwbG9kZSgnLCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VwbG9hZGZpbGV0eXBlcycsJ2pwZyxqcGVnLGdpZixwbmcnKSk7CiAgICAgICAgICAgICRleGNsdWRlcyA9IGFycmF5KCdfKicsJy4/PyonKTsKICAgICAgICAgICAgZm9yZWFjaCggJHBhdHRlcm4gYXMgJiRvbmUgKSB7CiAgICAgICAgICAgICAgICAkb25lID0gJyouJy4kb25lOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRmaWxlcyA9IGNnZV9kaXI6OnJlY3Vyc2l2ZV9nbG9iKCRkaXIsJHBhdHRlcm4sJ0ZJTEVTJywkZXhjbHVkZXMpOwogICAgICAgICAgICBpZiggIWlzX2FycmF5KCRmaWxlcykgfHwgY291bnQoJGZpbGVzKSA9PSAwICkgY29udGludWU7CgogICAgICAgICAgICAkb3V0ID0gYXJyYXkoJHRoaXMtPkxhbmcoJ25vbmUnKT0+LTEpOwogICAgICAgICAgICBmb3JlYWNoKCAkZmlsZXMgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgICRvbmUgPSBzdWJzdHIoJG9uZSxzdHJsZW4oJGRpcikpOwogICAgICAgICAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJG9uZSwnLycpICkgJG9uZSA9IHN1YnN0cigkb25lLDEpOwogICAgICAgICAgICAgICAgJG91dFskb25lXSA9ICRvbmU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJG9iai0+ZmllbGQgPSAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2NhbF9maWVsZF8nLiRvYmotPnNhZmVuYW1lLCRvdXQsLTEsJGZpZWxkX3ZhbHVlKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgICR0bXBbJG9iai0+c2FmZW5hbWVdID0gJG9iajsKICAgIH0KICAgIGlmKCBjb3VudCgkdG1wKSApICRmaWVsZHMgPSAkdG1wOwp9CgppZiggJGNhdGVnb3JpZXMgKSB7CiAgJGRmbHRfY2F0ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfY2F0ZWdvcnknLCcnKTsKICAkdG1wID0gYXJyYXkoKTsKICBmb3JlYWNoKCAkY2F0ZWdvcmllcyBhcyAkY2F0ZWdvcnkgKSB7CiAgICAkb2JqID0gbmV3IFN0ZENsYXNzKCk7CiAgICAkb2JqLT5pZCA9ICRjYXRlZ29yeVsnY2F0ZWdvcnlfaWQnXTsKICAgICRvYmotPm5hbWUgPSAkY2F0ZWdvcnlbJ2NhdGVnb3J5X25hbWUnXTsKICAgICRvYmotPmNoZWNrZWQgPSAwOwogICAgaWYoICRvYmotPmlkID09ICRkZmx0X2NhdCAmJiAkZXZlbnRfaWQgPT0gLTEgKSB7CiAgICAgICRvYmotPmNoZWNrZWQgPSAxOwogICAgfQogICAgZWxzZSBpZiggaW5fYXJyYXkoJG9iai0+aWQsJGV2ZW50WydjYXRlZ29yaWVzJ10pICkgewogICAgICAkb2JqLT5jaGVja2VkID0gMTsKICAgIH0KICAgICRvYmotPmZpZWxkID0KICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnY2FsX2V2ZW50X2NhdGVnb3JpZXNbJy4kb2JqLT5pZC4nXScsMCkuCiAgICAgICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnY2FsX2V2ZW50X2NhdGVnb3JpZXNbJy4kb2JqLT5pZC4nXScsMSwkb2JqLT5jaGVja2VkLCJpZD0nY2F0ZWdvcnkiLiRvYmotPmlkLiInIik7CiAgICAkdG1wWyRvYmotPmlkXSA9ICRvYmo7CiAgfQogICRjYXRlZ29yaWVzID0gJHRtcDsKfQoKLy8KLy8gUHJvY2VzcyB0aGUgZm9ybQovLwppZiggaXNzZXQoJHBhcmFtc1snY2FsX2NhbmNlbCddKSApIHsKICAgICR0aGlzLT5SZWRpcmVjdENvbnRlbnQoJGRlc3RwYWdlKTsKfQplbHNlIGlmKCBpc3NldCgkcGFyYW1zWydjYWxfc3VibWl0J10pICkgewogICAgJHRtcCA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCAkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlICkgewogICAgICAgIGlmKCBzdGFydHN3aXRoKCRrZXksJ2NhbF8nKSApICRrZXkgPSBzdWJzdHIoJGtleSxzdHJsZW4oJ2NhbF8nKSk7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2V2ZW50X3RpdGxlJzoKICAgICAgICBjYXNlICdldmVudF9zdW1tYXJ5JzoKICAgICAgICAgICAgJHZhbHVlID0gZmlsdGVyX3Zhcih0cmltKCR2YWx1ZSksRklMVEVSX1NBTklUSVpFX1NUUklORyk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdldmVudF9kZXRhaWxzJzoKICAgICAgICAgICAgJHZhbHVlID0gaHRtbF9lbnRpdHlfZGVjb2RlKHRyaW0oJHZhbHVlKSk7CiAgICAgICAgICAgICR2YWx1ZSA9IGNnZV91dGlsczo6Y2xlYW5faW5wdXRfaHRtbCgkdmFsdWUpOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgJHRtcFska2V5XSA9ICR2YWx1ZTsKICAgIH0KICAgICRwYXJhbXMgPSAkdG1wOwogICAgJHRoaXMtPkdldEV2ZW50RnJvbVBhcmFtcygkZXZlbnQsJHRtcCx0cnVlKTsKCiAgICAvLyBjaGVjayBmb3IgZGF0YSBxdWFsaXR5CiAgICBpZiggJGV2ZW50WydldmVudF9kYXRlX2VuZF91dCddICE9IE5VTEwgJiYKICAgICAgICAkZXZlbnRbJ2V2ZW50X2RhdGVfZW5kX3V0J10gPCAkZXZlbnRbJ2V2ZW50X2RhdGVfc3RhcnRfdXQnXSApIHsKICAgICAgICAkc3RhdHVzID0gJ2Vycm9yX2ludmFsaWRfZGF0ZXMnOwogICAgICAgICRtZXNzYWdlID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRfZGF0ZXMnKTsKICAgIH0KICAgIGlmKCBlbXB0eSgkc3RhdHVzKSAmJiBlbXB0eSgkZXZlbnRbJ2V2ZW50X3RpdGxlJ10pICkgewogICAgICAgICRzdGF0dXMgPSAnZXJyb3Jfbm9ldmVudG5hbWUnOwogICAgICAgICRtZXNzYWdlID0gJHRoaXMtPkxhbmcoJ2Vycm9yX25vZXZlbnRuYW1lJyk7CiAgICB9CiAgICBpZiggZW1wdHkoJHN0YXR1cykgJiYgKCFpc3NldCgkcGFyYW1zWydldmVudF9jYXRlZ29yaWVzJ10pIHx8IGVtcHR5KCRwYXJhbXNbJ2V2ZW50X2NhdGVnb3JpZXMnXSkpICkgewogICAgICAgICRzdGF0dXMgPSAnZXJyb3Jfbm9jYXRlZ29yeSc7CiAgICAgICAgJG1lc3NhZ2UgPSAkdGhpcy0+TGFuZygnZXJyb3Jfbm9jYXRlZ29yeScpOwogICAgfQoKICAgIC8vIGNoZWNrIGV2ZW50IGZvciBjb25mbGljdHMuCiAgICBpZiggZW1wdHkoJHN0YXR1cykgJiYgJHBvbGljeSAhPSAnYWxsJyApIHsKICAgICAgICAkY29uZmxpY3QgPSBjZ2NfZXZlbnRfdXRpbHM6OmlzX2V2ZW50X2NvbmZsaWN0ZWQoJGV2ZW50LCRwb2xpY3kpOwogICAgICAgIGlmKCAkY29uZmxpY3QgKSB7CiAgICAgICAgICAgICRzdGF0dXMgPSAnZXJyb3JfZXZlbnRfY29uZmxpY3QnOwogICAgICAgICAgICAkbWVzc2FnZSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9ldmVudF9jb25mbGljdCcpOwogICAgICAgIH0KICAgIH0KCiAgICAvLyBoYW5kbGUgYW55IGZpbGUgZmllbGRzLi4uCiAgICBpZiggaXNzZXQoJF9GSUxFUykgKSB7CiAgICAgICAgZm9yZWFjaCggJHBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSApIHsKICAgICAgICAgICAgaWYoICFzdGFydHN3aXRoKCRrZXksJ3VwbG9hZF9maWVsZF8nKSApIGNvbnRpbnVlOwoKICAgICAgICAgICAgJHRoZWZpZWxkID0gc3Vic3RyKCRrZXksc3RybGVuKCd1cGxvYWRfZmllbGRfJykpOwogICAgICAgICAgICAkZmxkbmFtZSA9ICRpZC4nY2FsX2ZpZWxkXycuJHRoZWZpZWxkOwogICAgICAgICAgICBpZiggIWlzc2V0KCRfRklMRVNbJGZsZG5hbWVdKSB8fCBlbXB0eSgkX0ZJTEVTWyRmbGRuYW1lXVsndG1wX25hbWUnXSkgKSBjb250aW51ZTsKCiAgICAgICAgICAgICRlcnJvciA9ICcnOwogICAgICAgICAgICAkZmlsZW5hbWUgPSAkdGhpcy0+SGFuZGxlVXBsb2FkKCRmbGRuYW1lLCRlcnJvcik7CiAgICAgICAgICAgIGlmKCAkZmlsZW5hbWUgPT09IGZhbHNlICkgewogICAgICAgICAgICAgICAgJHN0YXR1cyA9ICdlcnJvcl91cGxvYWQnOwogICAgICAgICAgICAgICAgJG1lc3NhZ2UgPSAkZXJyb3I7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICAkcGFyYW1zWydmaWVsZF8nLiR0aGVmaWVsZF0gPSAkZmlsZW5hbWU7CiAgICAgICAgfQogICAgfQoKICAgIC8vIG1lcmdlIGZpZWxkIHZhbHVlcyBiYWNrIGludG8gdGhlIGZpZWxkcyBhcnJheQogICAgZm9yZWFjaCggJHBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSApIHsKICAgICAgICBpZiggIXN0YXJ0c3dpdGgoJGtleSwnZmllbGRfJykgKSBjb250aW51ZTsKICAgICAgICAkZmllbGRuYW1lID0gc3Vic3RyKCRrZXksc3RybGVuKCdmaWVsZF8nKSk7CiAgICAgICAgc3dpdGNoKCAkZmllbGRzWyRmaWVsZG5hbWVdLT50eXBlICkgewogICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgJHZhbHVlID0gZmlsdGVyX3Zhcih0cmltKCR2YWx1ZSksRklMVEVSX1NBTklUSVpFX1NUUklORyk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgJHZhbHVlID0gaHRtbF9lbnRpdHlfZGVjb2RlKHRyaW0oJHZhbHVlKSk7CiAgICAgICAgICAgICR2YWx1ZSA9IGNnZV91dGlsczo6Y2xlYW5faW5wdXRfaHRtbCgkdmFsdWUpOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgJGZpZWxkc1skZmllbGRuYW1lXS0+dmFsdWUgPSAkdmFsdWU7CiAgICB9CgogICAgLy8gbWVyZ2UgY2F0ZWdvcnkgdmFsdWVzIGJhY2sgaW50byB0aGUgY2F0ZWdvcmllcyBhcnJheQogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2V2ZW50X2NhdGVnb3JpZXMnXSkgKSB7CiAgICAgICAgZm9yZWFjaCggJGNhdGVnb3JpZXMgYXMgJiRvbmUgKSB7CiAgICAgICAgICAgICRvbmUtPmNoZWNrZWQgPSAwOwogICAgICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1snZXZlbnRfY2F0ZWdvcmllcyddWyRvbmUtPmlkXSkgKSAkb25lLT5jaGVja2VkID0gJHBhcmFtc1snZXZlbnRfY2F0ZWdvcmllcyddWyRvbmUtPmlkXTsKICAgICAgICB9CiAgICB9CgogIC8vIHJlYWR5IHRvIGluc2VydCBvciB1cGRhdGUKICAkZmllbGR0ZXh0ID0gJyc7CiAgJGRvX2luc2VydCA9IGZhbHNlOwogIGlmKCBlbXB0eSgkc3RhdHVzKSApIHsKICAgICAgJGRiciA9ICcnOwogICAgICBpZiggJGV2ZW50WydldmVudF9pZCddID4gMCApIHsKICAgICAgICAgIC8vICBpdCdzIGFuIHVwZGF0ZQogICAgICAgICAgJGRvX2luc2VydCA9IGZhbHNlOwogICAgICAgICAgLy8gdXBkYXRlCiAgICAgICAgICAkc3FsID0gIlVQREFURSAiIC4gJHRoaXMtPmV2ZW50c190YWJsZV9uYW1lIC4gIgogICAgICAgICAgICAgICAgICBTRVQgZXZlbnRfdGl0bGUgPSA/CiAgCQkgICAgICAgICAgICAgICxldmVudF9zdW1tYXJ5ID0gPwoJCSAgICAgICAgICAgICAgLGV2ZW50X2RldGFpbHMgPSA/CiAgICAgICAgICAgICAgICAgICAgICAsZXZlbnRfZGF0ZV9zdGFydCA9ID8KICAgICAgICAgICAgICAgICAgICAgICxldmVudF9kYXRlX2VuZCA9ID8KCQkgICAgICAgICAgICAgICxldmVudF9yZWN1cl9wZXJpb2QgPSA/CgkJICAgICAgICAgICAgICAsZXZlbnRfZGF0ZV9yZWN1cl9lbmQgPSA/CiAgICAgICAgICAgICAgICAgICAgICAsZXZlbnRfcmVjdXJfbmV2ZW50cyA9ID8KICAgICAgICAgICAgICAgICAgICAgICxldmVudF9yZWN1cl9pbnRlcnZhbCA9ID8KICAgICAgICAgICAgICAgICAgICAgICxldmVudF9yZWN1cl93ZWVrZGF5cyA9ID8KICAgICAgICAgICAgICAgICAgICAgICxldmVudF9yZWN1cl9tb250aGRheXMgPSA/CgkJICAgICAgICAgICAgICAsZXZlbnRfbW9kaWZpZWRfZGF0ZSA9IE5PVygpCiAgICAgICAgICAgICAgICAgICAgICAsZXZlbnRfYWxsb3dzX292ZXJsYXAgPSA/CiAgICAgICAgICAgICAgICAgICAgICAsZXZlbnRfYWxsX2RheSA9ID8KCSAgICAgICAgICAgICAgV0hFUkUgZXZlbnRfaWQgPSA/IEFORCBldmVudF9jcmVhdGVkX2J5ID0gPyI7CgogICAgICAgICAgJGRiciA9ICAkZGItPkV4ZWN1dGUoJHNxbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5KCRldmVudFsnZXZlbnRfdGl0bGUnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudFsnZXZlbnRfc3VtbWFyeSddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50WydldmVudF9kZXRhaWxzJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmltKCRldmVudFsnZXZlbnRfZGF0ZV9zdGFydCddLCInIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfbnVsbF9kYXRlKCRldmVudFsnZXZlbnRfZGF0ZV9lbmQnXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnRbJ2V2ZW50X3JlY3VyX3BlcmlvZCddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX251bGxfZGF0ZSgkZXZlbnRbJ2V2ZW50X2RhdGVfcmVjdXJfZW5kJ10pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50WydldmVudF9yZWN1cl9jb3VudCddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50WydldmVudF9yZWN1cl9pbnRlcnZhbCddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1wbG9kZSgnLCcsJGV2ZW50WydldmVudF9yZWN1cl93ZWVrZGF5cyddKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcGxvZGUoJywnLCRldmVudFsnZXZlbnRfcmVjdXJfbW9udGhkYXlzJ10pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50WydldmVudF9hbGxvd3Nfb3ZlcmxhcCddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50WydldmVudF9hbGxfZGF5J10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnRbJ2V2ZW50X2lkJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZmV1X3VpZCkpOwogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgICAgLy8gaXQncyBhbiBpbnNlcnQKICAgICAgICAgICRkb19pbnNlcnQgPSB0cnVlOwogICAgICAgICAgJGV2ZW50WydldmVudF9pZCddID0gJGRiLT5HZW5JRCgkdGhpcy0+ZXZlbnRzX3RhYmxlX25hbWUgLiAiX3NlcSIpOwoKICAgICAgICAgICRzcWwgPSAiSU5TRVJUIElOVE8gIiAuICR0aGlzLT5ldmVudHNfdGFibGVfbmFtZSAuICIKICAgICAgICAgICAgICAgICAgKGV2ZW50X2lkLGV2ZW50X3RpdGxlLGV2ZW50X3N1bW1hcnksZXZlbnRfZGV0YWlscwoJICAgICAgICAgICAgICAsZXZlbnRfZGF0ZV9zdGFydCxldmVudF9kYXRlX2VuZCxldmVudF9wYXJlbnRfaWQKCSAgICAgICAgICAgICAgLGV2ZW50X3JlY3VyX3BlcmlvZCwgZXZlbnRfZGF0ZV9yZWN1cl9lbmQsIGV2ZW50X2NyZWF0ZWRfYnkKICAgICAgICAgICAgICAgICAgLGV2ZW50X3JlY3VyX25ldmVudHMsIGV2ZW50X3JlY3VyX2ludGVydmFsLCBldmVudF9yZWN1cl93ZWVrZGF5cwogICAgICAgICAgICAgICAgICAsZXZlbnRfcmVjdXJfbW9udGhkYXlzLCBldmVudF9hbGxvd3Nfb3ZlcmxhcCwgZXZlbnRfYWxsX2RheQoJICAgICAgICAgICAgICAsZXZlbnRfY3JlYXRlX2RhdGUsIGV2ZW50X21vZGlmaWVkX2RhdGUpCiAgICAgICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyxOT1coKSxOT1coKSkiOwoKICAgICAgICAgICRkYnI9JGRiLT5FeGVjdXRlKCRzcWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgkZXZlbnRbJ2V2ZW50X2lkJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnRbJ2V2ZW50X3RpdGxlJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnRbJ2V2ZW50X3N1bW1hcnknXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudFsnZXZlbnRfZGV0YWlscyddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpbSgkZXZlbnRbJ2V2ZW50X2RhdGVfc3RhcnQnXSwiJyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX251bGxfZGF0ZSgkZXZlbnRbJ2V2ZW50X2RhdGVfZW5kJ10pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50WydldmVudF9wYXJlbnRfaWQnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudFsnZXZlbnRfcmVjdXJfcGVyaW9kJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfbnVsbF9kYXRlKCRldmVudFsnZXZlbnRfZGF0ZV9yZWN1cl9lbmQnXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZmV1X3VpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudFsnZXZlbnRfcmVjdXJfY291bnQnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudFsnZXZlbnRfcmVjdXJfaW50ZXJ2YWwnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcGxvZGUoJywnLCRldmVudFsnZXZlbnRfcmVjdXJfd2Vla2RheXMnXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBsb2RlKCcsJywkZXZlbnRbJ2V2ZW50X3JlY3VyX21vbnRoZGF5cyddKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudFsnZXZlbnRfYWxsb3dzX292ZXJsYXAnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudFsnZXZlbnRfYWxsX2RheSddKSk7CiAgICAgIH0KCiAgICAgIGlmKCAhJGRiciApIHsKICAgICAgICAgICRzdGF0dXMgPSAnZXJyb3JfZGJlcnJvcic7CiAgICAgICAgICAkbWVzc2FnZSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9kYmVycm9yJykuJzogJy4kZGItPnNxbC4nICgnLiRkYi0+RXJyb3JNc2coKS4nKSc7CiAgICAgIH0KICB9CgogIC8vIGluc2VydCBmaWVsZCBkZWZpbml0aW9ucwogIGlmKCBlbXB0eSgkc3RhdHVzKSApIHsKICAgICAgLy8gZGVsZXRlIGV4aXN0aW5nIGN1c3RvbSBmaWVsZCB2YWx1ZXMgZmlyc3QuCiAgICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLiR0aGlzLT5ldmVudF9maWVsZF92YWx1ZXNfdGFibGVfbmFtZS4nIFdIRVJFIGV2ZW50X2lkID0gPyc7CiAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGV2ZW50WydldmVudF9pZCddKSk7CgogICAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy4kdGhpcy0+ZXZlbnRfZmllbGRfdmFsdWVzX3RhYmxlX25hbWUuJyAoZmllbGRfbmFtZSwgZXZlbnRfaWQsIGZpZWxkX3ZhbHVlKSBWQUxVRVMgKD8sPyw/KSc7CgogICAgICBmb3JlYWNoKCAkZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICRmaWVsZG5hbWUgPSAkZmllbGQtPm5hbWU7CiAgICAgICAgICAvLyRmaWVsZC0+dmFsdWUgPSBnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsICdmaWVsZF8nIC4gJGZpZWxkLT5zYWZlbmFtZSwgJycpOwoKICAgICAgICAgIGlmKCAhZW1wdHkoJGZpZWxkLT52YWx1ZSkgKSB7CiAgICAgICAgICAgICAgaWYoICRmaWVsZC0+c2VhcmNoYWJsZSApICRmaWVsZHRleHQgLj0gJGZpZWxkLT52YWx1ZS4nICc7CiAgICAgICAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGZpZWxkLT5uYW1lLCRldmVudFsnZXZlbnRfaWQnXSwkZmllbGQtPnZhbHVlKSk7CiAgICAgICAgICAgICAgaWYoICEkZGJyICkgewogICAgICAgICAgICAgICAgICBkZWJ1Z19kaXNwbGF5KCRkYi0+c3FsLicgLS0gJy4kZGItPkVycm9yTXNnKCkpOyBkaWUoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgIH0KICB9CgogIC8vIGluc2VydCBjYXRlZ29yeSB2YWx1ZXMKICBpZiggZW1wdHkoJHN0YXR1cykgKSB7CiAgICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLiR0aGlzLT5ldmVudHNfdG9fY2F0ZWdvcmllc190YWJsZV9uYW1lLicgV0hFUkUgZXZlbnRfaWQgPSA/JzsKICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkZXZlbnRbJ2V2ZW50X2lkJ10pKTsKCiAgICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLiR0aGlzLT5ldmVudHNfdG9fY2F0ZWdvcmllc190YWJsZV9uYW1lLicgKGNhdGVnb3J5X2lkLGV2ZW50X2lkKSBWQUxVRVMgKD8sPyknOwogICAgICBmb3JlYWNoKCAkY2F0ZWdvcmllcyBhcyAmJG9uZSApIHsKICAgICAgICAgIGlmKCAhJG9uZS0+Y2hlY2tlZCApIGNvbnRpbnVlOwogICAgICAgICAgaWYoICRvbmUtPmlkIDw9IDAgKSBjb250aW51ZTsKCiAgICAgICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRvbmUtPmlkLCRldmVudFsnZXZlbnRfaWQnXSkpOwogICAgICB9CiAgfQoKICBpZiggZW1wdHkoJHN0YXR1cykgKSB7CiAgICAgICRldmVudG5hbWUgPSAnRXZlbnRBZGRlZCc7CiAgICAgICRwYXJtcyA9IGFycmF5KCk7CiAgICAgICRwYXJtc1snZXZlbnRfdGl0bGUnXSA9ICRldmVudFsnZXZlbnRfdGl0bGUnXTsKICAgICAgJHBhcm1zWydldmVudF9zdW1tYXJ5J10gPSAkZXZlbnRbJ2V2ZW50X3N1bW1hcnknXTsKICAgICAgJHBhcm1zWydldmVudF9kZXRhaWxzJ10gPSAkZXZlbnRbJ2V2ZW50X2RldGFpbHMnXTsKICAgICAgJHBhcm1zWydldmVudF9kYXRlX3N0YXJ0J10gPSAkZXZlbnRbJ2V2ZW50X2RhdGVfc3RhcnQnXTsKICAgICAgJHBhcm1zWydldmVudF9kYXRlX2VuZCddID0gJGV2ZW50WydldmVudF9kYXRlX2VuZCddOwogICAgICAkcGFybXNbJ2V2ZW50X2lkJ10gPSAkZXZlbnRbJ2V2ZW50X2lkJ107CiAgICAgIGlmKCAhJGRvX2luc2VydCApICRldmVudG5hbWUgPSAnRXZlbnRFZGl0ZWQnOwogICAgICAkdGhpcy0+U2VuZEV2ZW50KCAkZXZlbnRuYW1lLCAkcGFybXMgKTsKICB9CgogIGlmKCBlbXB0eSgkc3RhdHVzKSApIHsKICAgICAgJHNlYXJjaCA9IGNtc191dGlsczo6Z2V0X3NlYXJjaF9tb2R1bGUoKTsKICAgICAgaWYoICRzZWFyY2ggIT0gRkFMU0UgKSB7CiAgICAgICAgICAkdGV4dCA9ICJ7JGV2ZW50WydldmVudF90aXRsZSddfSB7JGV2ZW50WydldmVudF9zdW1tYXJ5J119IHskZXZlbnRbJ2V2ZW50X2RldGFpbHMnXX0iOwogICAgICAgICAgJHRleHQgLj0gJyAnLiRmaWVsZHRleHQ7CiAgICAgICAgICAkc2VhcmNoLT5BZGRXb3JkcygkdGhpcy0+R2V0TmFtZSgpLCAkZXZlbnRbJ2V2ZW50X2lkJ10sICdldmVudCcsICR0ZXh0LCBOVUxMKTsKICAgICAgfQogIH0KCiAgaWYoIGVtcHR5KCRzdGF0dXMpICkgJHRoaXMtPlJlZGlyZWN0Q29udGVudCgkZGVzdHBhZ2UpOwoKICAvLyBmYWxsIHRocm91Z2guCn0KCi8vCi8vIGJ1aWxkIHRoZSBmb3JtCi8vCiRzbWFydHktPmFzc2lnbignZXZlbnQnLCRldmVudCk7CmlmKCAhZW1wdHkoJHN0YXR1cykgKSAkc21hcnR5LT5hc3NpZ24oJ3N0YXR1cycsJHN0YXR1cyk7CmlmKCAhZW1wdHkoJG1lc3NhZ2UpICkgJHNtYXJ0eS0+YXNzaWduKCdtZXNzYWdlJywkbWVzc2FnZSk7CmlmKCAkZmllbGRzICkgJHNtYXJ0eS0+YXNzaWduKCdmaWVsZHMnLCRmaWVsZHMpOwppZiggJGNhdGVnb3JpZXMgKSAkc21hcnR5LT5hc3NpZ24oJ2NhdGVnb3JpZXMnLCRjYXRlZ29yaWVzKTsKCiRwYXJtcyA9IGFycmF5KCk7CiRwYXJtc1snZXZlbnRfaWQnXSA9ICRldmVudF9pZDsKaWYoIGlzc2V0KCRwYXJhbXNbJ2VkaXRldmVudHRlbXBsYXRlJ10pICkgJHBhcm1zWydlZGl0ZXZlbnR0ZW1wbGF0ZSddID0gJHBhcmFtc1snZWRpdGV2ZW50dGVtcGxhdGUnXTsKaWYoIGlzc2V0KCRwYXJhbXNbJ3JldHVybl9pZCddKSApICRwYXJtc1sncmV0dXJuX2lkJ10gPSAkcGFyYW1zWydyZXR1cm5faWQnXTsKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkZGVkaXRfZXZlbnQnLCRyZXR1cm5pZCwkcGFybXMsZmFsc2UsJ3Bvc3QnLCdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokY3VycmVudF95ZWFyID0gZGF0ZSgnWScpOwokc3RhcnQgPSAkY3VycmVudF95ZWFyIC0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Nob3dwYXN0eWVhcnMnLDIpOwokZW5kID0gJGN1cnJlbnRfeWVhciArICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzaG93ZnV0dXJleWVhcnMnLDEwKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGFydF95ZWFyJywkc3RhcnQpOwokc21hcnR5LT5hc3NpZ24oJ2VuZF95ZWFyJywkZW5kKTsKCi8vCi8vIGRpc3BsYXkKLy8KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCR0aGV0ZW1wbGF0ZSk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_addedit_category.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBDYWxlbmRhciBBdHRyaWJ1dGVzJykgKSByZXR1cm47CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdhZG1pbl9tYW5hZ2VfY2F0ZWdvcmllcycpOwoKLy8gaGFuZGxlIGNhbmNlbAppZiggaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pICkgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKCi8vIHNldHVwCiRjYXRpZCA9IChpbnQpY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnY2F0aWQnKTsKJGNhdGVnb3J5ID0gbnVsbDsKdHJ5IHsKICAgIC8vIGNyZWF0ZS9nZXQgaW5pdGlhbCBlbXB0eSBjYXRlZ29yeSAoZm9yIGFkZGluZykKICAgICRjYXRlZ29yeSA9IG5ldyBcQ0dDYWxlbmRhclxjYXRlZ29yeTsKCiAgICAvLyBpZiB3ZSBoYXZlIGEgY2F0ZWdvcnkgbG9hZCBpdC4KICAgIGlmKCAkY2F0aWQgPiAwICkgJGNhdGVnb3J5ID0gXENHQ2FsZW5kYXJcY2F0ZWdvcnk6OmxvYWQoJGNhdGlkKTsKCiAgICAvLyBoYW5kbGUgc3VibWl0CiAgICBpZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkgewogICAgICAgIC8vIG1lcmdlIHRoZSBmb3JtIGRhdGEgaW50byB0aGUgY2F0ZWdvcnkKICAgICAgICAkY2F0ZWdvcnlbJ25hbWUnXSA9ICRwYXJhbXNbJ25hbWUnXTsKICAgICAgICAkY2F0ZWdvcnlbJ2JnY29sb3InXSA9ICRwYXJhbXNbJ2JnY29sb3InXTsKICAgICAgICAkY2F0ZWdvcnlbJ2ZnY29sb3InXSA9ICRwYXJhbXNbJ2ZnY29sb3InXTsKCiAgICAgICAgLy8gc2F2ZQogICAgICAgICRjYXRlZ29yeS0+c2F2ZSgpOwoKICAgICAgICAvLyByZWRpcmVjdCBvdXRhIGhlcmUuCiAgICAgICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ2NhdGVnb3J5dXBkYXRlZCcpKTsKICAgICAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigpOwogICAgfQoKfQpjYXRjaCggRXhjZXB0aW9uICRlICkgewogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZS0+R2V0TWVzc2FnZSgpKTsKfQoKLy8gZ2l2ZSB0aGUgY2F0ZWdvcnkgdG8gc21hcnR5CiRwYXJtcyA9IGFycmF5KCk7CmlmKCAkY2F0aWQgPiAwICkgJHBhcm1zWydjYXRpZCddID0gJGNhdGlkOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fYWRkZWRpdF9jYXRlZ29yeScsJHJldHVybmlkLCRwYXJtcykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokc21hcnR5LT5hc3NpZ24oJ2NhdGVnb3J5JywkY2F0ZWdvcnkpOwoKLy8gZGlzcGxheSB0aGUgdGVtcGxhdGUKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9hZGRlZGl0X2NhdGVnb3J5LnRwbCcpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_add_event.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4CiMgICAgICBieSBSb2JlcnQgQWxsZW4gKGFrcmFiYXQpIGFuZAojICAgICAgICAgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBkaXNwbGF5aW5nIGNhbGVuZGFycywKIyAgYW5kIG1hbmFnZW1lbnQgYW5kIGRpc3BsYXkgb2YgdGltZSBiYXNlZCBldmVudHMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2RlZmF1bHRhZG1pbicpOwoKLy8gcGVybWlzc2lvbnMgY2hlY2sKJGV2ZW50X2lkID0gY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnZXZlbnRfaWQnLC0xKTsKaWYoICRldmVudF9pZCA8IDEgKSB7CiAgLy8gYWRkaW5nCiAgaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgQ2FsZW5kYXInKSAmJiAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQWRkIENhbGVuZGFyIEV2ZW50cycpICkgewogICAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9wZXJtaXNzaW9uJykpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9BZG1pblRhYigpOwogIH0KfQplbHNlIHsKICAvLyBlZGl0aW5nCiAgaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgQ2FsZW5kYXInKSAmJgogICAgICAhKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0VkaXQgTXkgQ2FsZW5kYXIgRXZlbnRzJykgJiYgJGV2ZW50WydldmVudF9jcmVhdGVkX2J5J10gPT0gJHVzZXJfaWQpICkgewogICAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9wZXJtaXNzaW9uJykpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9BZG1pblRhYigpOwogIH0KfQoKLy8gc2V0dXAKJHVzZXJfaWQgPSBnZXRfdXNlcmlkKCkgKiAtMSAtIDEwMDsKJGNhdGVnb3JpZXMgPSAkdGhpcy0+R2V0Q2F0ZWdvcmllcygpOwoKLy8gR2V0IHRoZSBldmVudAokZXZlbnQgPSAkdGhpcy0+R2V0RXZlbnQoJGV2ZW50X2lkKTsKaWYoICRldmVudF9pZCA8IDEgKSAgewogIC8vIGl0J3MgYW4gYWRkIG9wZXJhdGlvbgogIGlmKCBpc3NldCgkcGFyYW1zWydzdGFydCddKSApIHsKICAgICAgJGV2ZW50WydldmVudF9kYXRlX3N0YXJ0X3V0J10gPSAoaW50KSRwYXJhbXNbJ3N0YXJ0J107CiAgICAgICRldmVudFsnZXZlbnRfZGF0ZV9zdGFydCddID0gJGRiLT5Vbml4VGltZVN0YW1wKCRldmVudFsnZXZlbnRfZGF0ZV9zdGFydF91dCddKTsKICB9Cn0KaWYoIGlzc2V0KCRwYXJhbXNbJ2RvX2dldF9mcm9tX3BhcmFtcyddKSAmJiAkcGFyYW1zWydkb19nZXRfZnJvbV9wYXJhbXMnXSA9PSAxICkgewogICAgJHRoaXMtPkdldEV2ZW50RnJvbVBhcmFtcygkZXZlbnQsJHBhcmFtcyk7Cn0KCiRleHRyYT0iIjsKaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJmb3JjZV9jYXRlZ29yeSIpPT0xKSB7CiAgJGV4dHJhPSJvbnN1Ym1pdD0nZm9yKGk9MDtpPCIuY291bnQoJGNhdGVnb3JpZXMpLiI7aSsrKXt2YXIgbmFtZT1cImNhdGVnb3J5XCIraTsgdmFyIGVsZW1lbnQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobmFtZSk7IGlmIChlbGVtZW50LmNoZWNrZWQpIHJldHVybiB0cnVlO307IGFsZXJ0KFwiIi4kdGhpcy0+TGFuZygiY2F0ZWdvcnlfcmVtaW5kZXIiKS4iXCIpOyByZXR1cm4gZmFsc2U7JyI7Cn0KJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fZXZlbnRfdXBkYXRlJywgJHJldHVybmlkLCAkbWV0aG9kPSdwb3N0JywgJGVuY3R5cGU9J211bHRpcGFydC9mb3JtLWRhdGEnLAoJCQkJCQkgICBmYWxzZSwiIixhcnJheSgpLCRleHRyYSkpOwokc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2V2ZW50X2lkJywgJGV2ZW50X2lkKSk7CgokY3VycmVudF95ZWFyID0gZGF0ZSgnWScpOwokc3RhcnQgPSAkY3VycmVudF95ZWFyIC0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Nob3dwYXN0eWVhcnMnLDIpOwokZW5kID0gJGN1cnJlbnRfeWVhciArICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzaG93ZnV0dXJleWVhcnMnLDEwKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGFydF95ZWFyJywkc3RhcnQpOwokc21hcnR5LT5hc3NpZ24oJ2VuZF95ZWFyJywkZW5kKTsKJHRtcCA9IGNnY2FsZW5kYXJfdXRpbHM6OmdldF91c2VybmFtZSgkZXZlbnRbJ2V2ZW50X2NyZWF0ZWRfYnknXSk7CmlmKCAkdG1wICkgJGV2ZW50Wydvd25lcl9uYW1lJ10gPSAkdG1wOwokc21hcnR5LT5hc3NpZ24oJ2V2ZW50JywkZXZlbnQpOwoKJGV2ZW50X2RhdGVfc3RhcnRfdXQgPSB0aW1lKCk7CmlmKGlzc2V0KCRwYXJhbXNbJ3N0YXJ0ZGF0ZV9Ib3VyJ10pKSB7CiAgJGV2ZW50X2RhdGVfc3RhcnRfdXQgPSBta3RpbWUoJHBhcmFtc1snc3RhcnRkYXRlX0hvdXInXSwkcGFyYW1zWydzdGFydGRhdGVfTWludXRlJ10sMCwKCQkJCSRwYXJhbXNbJ3N0YXJ0ZGF0ZV9Nb250aCddLCRwYXJhbXNbJ3N0YXJ0ZGF0ZV9EYXknXSwkcGFyYW1zWydzdGFydGRhdGVfWWVhciddKTsKfQoKJGV2ZW50X2RhdGVfZW5kX3V0ID0gMDsKaWYoaXNzZXQoJHBhcmFtc1snZW5kZGF0ZV9Ib3VyJ10pKSB7CiAgJGV2ZW50X2RhdGVfZW5kX3V0ID0gbWt0aW1lKCRwYXJhbXNbJ2VuZGRhdGVfSG91ciddLCRwYXJhbXNbJ2VuZGRhdGVfTWludXRlJ10sNTksCgkJCSAgICAgICRwYXJhbXNbJ2VuZGRhdGVfTW9udGgnXSwkcGFyYW1zWydlbmRkYXRlX0RheSddLCRwYXJhbXNbJ2VuZGRhdGVfWWVhciddKTsKfQoKJGV2ZW50X3JlY3VyX3BlcmlvZCA9ICdub25lJzsKaWYgKGlzc2V0KCRldmVudFsnZXZlbnRfcmVjdXJfcGVyaW9kJ10pKSAgJGV2ZW50X3JlY3VyX3BlcmlvZCA9ICRldmVudFsnZXZlbnRfcmVjdXJfcGVyaW9kJ107CgokcmVjdXJfZGF5cyA9IGFycmF5KCk7CiRyZWN1cl9kYXlzWydzcGVjaWZpZWQnXSAgICAgICAgPSAkdGhpcy0+TGFuZygnc3BlY2lmaWVkX2RhdGUnKTsKJHJlY3VyX2RheXNbJzEsMCddICA9ICR0aGlzLT5MYW5nKCdmaXJzdF9zdW5kYXknKTsKJHJlY3VyX2RheXNbJzEsMSddICA9ICR0aGlzLT5MYW5nKCdmaXJzdF9tb25kYXknKTsKJHJlY3VyX2RheXNbJzEsMiddICA9ICR0aGlzLT5MYW5nKCdmaXJzdF90dWVzZGF5Jyk7CiRyZWN1cl9kYXlzWycxLDMnXSAgPSAkdGhpcy0+TGFuZygnZmlyc3Rfd2VkbmVzZGF5Jyk7CiRyZWN1cl9kYXlzWycxLDQnXSAgPSAkdGhpcy0+TGFuZygnZmlyc3RfdGh1cnNkYXknKTsKJHJlY3VyX2RheXNbJzEsNSddICA9ICR0aGlzLT5MYW5nKCdmaXJzdF9mcmlkYXknKTsKJHJlY3VyX2RheXNbJzEsNiddICA9ICR0aGlzLT5MYW5nKCdmaXJzdF9zYXR1cmRheScpOwokcmVjdXJfZGF5c1snMiwwJ10gID0gJHRoaXMtPkxhbmcoJ3NlY29uZF9zdW5kYXknKTsKJHJlY3VyX2RheXNbJzIsMSddICA9ICR0aGlzLT5MYW5nKCdzZWNvbmRfbW9uZGF5Jyk7CiRyZWN1cl9kYXlzWycyLDInXSAgPSAkdGhpcy0+TGFuZygnc2Vjb25kX3R1ZXNkYXknKTsKJHJlY3VyX2RheXNbJzIsMyddICA9ICR0aGlzLT5MYW5nKCdzZWNvbmRfd2VkbmVzZGF5Jyk7CiRyZWN1cl9kYXlzWycyLDQnXSAgPSAkdGhpcy0+TGFuZygnc2Vjb25kX3RodXJzZGF5Jyk7CiRyZWN1cl9kYXlzWycyLDUnXSAgPSAkdGhpcy0+TGFuZygnc2Vjb25kX2ZyaWRheScpOwokcmVjdXJfZGF5c1snMiw2J10gID0gJHRoaXMtPkxhbmcoJ3NlY29uZF9zYXR1cmRheScpOwokcmVjdXJfZGF5c1snMywwJ10gID0gJHRoaXMtPkxhbmcoJ3RoaXJkX3N1bmRheScpOwokcmVjdXJfZGF5c1snMywxJ10gID0gJHRoaXMtPkxhbmcoJ3RoaXJkX21vbmRheScpOwokcmVjdXJfZGF5c1snMywyJ10gID0gJHRoaXMtPkxhbmcoJ3RoaXJkX3R1ZXNkYXknKTsKJHJlY3VyX2RheXNbJzMsMyddICA9ICR0aGlzLT5MYW5nKCd0aGlyZF93ZWRuZXNkYXknKTsKJHJlY3VyX2RheXNbJzMsNCddICA9ICR0aGlzLT5MYW5nKCd0aGlyZF90aHVyc2RheScpOwokcmVjdXJfZGF5c1snMyw1J10gID0gJHRoaXMtPkxhbmcoJ3RoaXJkX2ZyaWRheScpOwokcmVjdXJfZGF5c1snMyw2J10gID0gJHRoaXMtPkxhbmcoJ3RoaXJkX3NhdHVyZGF5Jyk7CiRyZWN1cl9kYXlzWyc0LDAnXSAgPSAkdGhpcy0+TGFuZygnZm91cnRoX3N1bmRheScpOwokcmVjdXJfZGF5c1snNCwxJ10gID0gJHRoaXMtPkxhbmcoJ2ZvdXJ0aF9tb25kYXknKTsKJHJlY3VyX2RheXNbJzQsMiddICA9ICR0aGlzLT5MYW5nKCdmb3VydGhfdHVlc2RheScpOwokcmVjdXJfZGF5c1snNCwzJ10gID0gJHRoaXMtPkxhbmcoJ2ZvdXJ0aF93ZWRuZXNkYXknKTsKJHJlY3VyX2RheXNbJzQsNCddICA9ICR0aGlzLT5MYW5nKCdmb3VydGhfdGh1cnNkYXknKTsKJHJlY3VyX2RheXNbJzQsNSddICA9ICR0aGlzLT5MYW5nKCdmb3VydGhfZnJpZGF5Jyk7CiRyZWN1cl9kYXlzWyc0LDYnXSAgPSAkdGhpcy0+TGFuZygnZm91cnRoX3NhdHVyZGF5Jyk7CiRyZWN1cl9kYXlzWyctMSwwJ10gPSAkdGhpcy0+TGFuZygnbGFzdF9zdW5kYXknKTsKJHJlY3VyX2RheXNbJy0xLDEnXSA9ICR0aGlzLT5MYW5nKCdsYXN0X21vbmRheScpOwokcmVjdXJfZGF5c1snLTEsMiddID0gJHRoaXMtPkxhbmcoJ2xhc3RfdHVlc2RheScpOwokcmVjdXJfZGF5c1snLTEsMyddID0gJHRoaXMtPkxhbmcoJ2xhc3Rfd2VkbmVzZGF5Jyk7CiRyZWN1cl9kYXlzWyctMSw0J10gPSAkdGhpcy0+TGFuZygnbGFzdF90aHVyc2RheScpOwokcmVjdXJfZGF5c1snLTEsNSddID0gJHRoaXMtPkxhbmcoJ2xhc3RfZnJpZGF5Jyk7CiRyZWN1cl9kYXlzWyctMSw2J10gPSAkdGhpcy0+TGFuZygnbGFzdF9zYXR1cmRheScpOwokc21hcnR5LT5hc3NpZ24oJ3JlY3VyX2RheXMnLCRyZWN1cl9kYXlzKTsKCgokd2Vla2RheXMgPSBhcnJheSgkdGhpcy0+TGFuZygnc3VuZGF5Jyk9PicwJywKCQkgICR0aGlzLT5MYW5nKCdtb25kYXknKT0+JzEnLAoJCSAgJHRoaXMtPkxhbmcoJ3R1ZXNkYXknKT0+JzInLAoJCSAgJHRoaXMtPkxhbmcoJ3dlZG5lc2RheScpPT4nMycsCgkJICAkdGhpcy0+TGFuZygndGh1cnNkYXknKT0+JzQnLAoJCSAgJHRoaXMtPkxhbmcoJ2ZyaWRheScpPT4nNScsCgkJICAkdGhpcy0+TGFuZygnc2F0dXJkYXknKT0+JzYnKTsKJHRtcCA9IGFycmF5KCk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfd2Vla2RheXMnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFNlbGVjdExpc3QoJGlkLCdldmVudF9yZWN1cl93ZWVrZGF5c1tdJywkd2Vla2RheXMsJGV2ZW50WydldmVudF9yZWN1cl93ZWVrZGF5cyddLDcpKTsKJHNtYXJ0eS0+YXNzaWduKCdyZXBlYXRfc3RyJywkdGhpcy0+TGFuZygncGx1cmFsXycuJGV2ZW50WydldmVudF9yZWN1cl9wZXJpb2QnXSkpOwokc21hcnR5LT5hc3NpZ24oJ3dlZWtkYXlzJywkd2Vla2RheXMpOwokbnVtcyA9IGFycmF5KCk7CiRudW1zWy0xXSA9ICR0aGlzLT5MYW5nKCd1bmxpbWl0ZWQnKTsKZm9yKCAkaSA9IDA7ICRpIDwgNTA7ICRpKysgKSB7CiAgJG51bXNbJGkrMV0gPSAkaSsxOwp9CiRudW1zWzEwMF0gPSAxMDA7CiRudW1zWzI1MF0gPSAyNTA7CiRzbWFydHktPmFzc2lnbignbWF4aXRlcnMnLCRudW1zKTsKJG51bXMgPSBhcnJheSgpOwpmb3IoICRpID0gMDsgJGkgPCAzMDsgJGkrKyApIHsKICAkbnVtc1skaSsxXSA9ICRpKzE7Cn0KJHNtYXJ0eS0+YXNzaWduKCdudW1zJywkbnVtcyk7CiRzbWFydHktPmFzc2lnbigncmVjdXJfb3B0aW9ucycsCgkJYXJyYXkoJHRoaXMtPkxhbmcoJ25vJyk9PiJub25lIiwKCQkgICAgICAkdGhpcy0+TGFuZygnZGFpbHknKT0+J2RhaWx5JywKCQkgICAgICAkdGhpcy0+TGFuZygnd2Vla2x5Jyk9Pid3ZWVrbHknLAoJCSAgICAgICR0aGlzLT5MYW5nKCdtb250aGx5Jyk9Pidtb250aGx5JywKCQkgICAgICAkdGhpcy0+TGFuZygneWVhcmx5Jyk9Pid5ZWFybHknKSk7CiRzbWFydHktPmFzc2lnbignZXZlbnRfcmVjdXJfcGVyaW9kJywkZXZlbnRfcmVjdXJfcGVyaW9kKTsKCmlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnb3ZlcmxhcF9wb2xpY3knLCdhbGwnKSA9PSAnaW5kaXZpZHVhbCcgKSAkc21hcnR5LT5hc3NpZ24oJ2FsbG93X292ZXJsYXAnLDEpOwoKJHNtYXJ0eS0+YXNzaWduKCdldmVudF90aXRsZScsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdldmVudF90aXRsZScsICRldmVudFsnZXZlbnRfdGl0bGUnXSwgNTAsIDI1NSkpOwoKaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCJoaWRlc3VtbWFyeSIpIT0xKSB7CiAgJHNtYXJ0eS0+YXNzaWduKCdldmVudF9zdW1tYXJ5JywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2V2ZW50X3N1bW1hcnknLCAkZXZlbnRbJ2V2ZW50X3N1bW1hcnknXSwgNTAsIDI1NSkpOwp9CgovLyBBZGQgaW5wdXQgY29udHJvbHMgZm9yIGVhY2ggb2YgdGhlIGN1c3RvbSBmaWVsZHMgdGhhdCBhcmUgZGVmaW5lZC4KJHRtcCA9IGFycmF5KCk7CiRmaWVsZHMgPSAkdGhpcy0+R2V0RmllbGRzKCk7CmZvcmVhY2goJGZpZWxkcyBhcyAkZmllbGQpIHsKICAkZmllbGRfdmFsdWVzID0gJGV2ZW50WydmaWVsZHMnXTsKICAkZmllbGRfbmFtZSA9ICRmaWVsZFsnZmllbGRfbmFtZSddOwogICRmaWVsZF90eXBlID0gJGZpZWxkWydmaWVsZF90eXBlJ107CiAgJGZpZWxkX3ZhbHVlID0gIiI7CiAgaWYoIGlzc2V0KCRmaWVsZF92YWx1ZXNbJGZpZWxkX25hbWVdKSApICRmaWVsZF92YWx1ZSA9ICRmaWVsZF92YWx1ZXNbJGZpZWxkX25hbWVdOwoKICAvLyBSZXBsYWNlIHNwYWNlcyB3aXRoIHVuZGVyYmFycyBmb3IgdGhlIGZvcm0gcGFyYW1ldGVyIChhIGJpdCBvZiBhbiBpa2t5IGhhY2sgSSBrbm93LAogIC8vIGJ1dCBJIGNhbiB3ZWxsIGltYWdpbmUgZm9sayBkZWZpbmluZyBjdXN0b20gZmllbGRzIHdpdGggc3BhY2VzIGluIHRoZSBuYW1lKQogIC8vIFBlcmhhcHMgaXQgd291bGQgaGF2ZSBiZWVuIGJldHRlciBpZiBjdXN0b20gZmllbGRzIGFsc28gaGFkIGEgbnVtZXJpYyBrZXkgLSBob2h1bSBsaXZlIGFuZCBsZWFybiEKICAkc2FmZWZpZWxkbmFtZSA9ICBzdHJfcmVwbGFjZSAoICIgIiwgIl8iLCAkZmllbGRfbmFtZSApOwoKICAkb2JqID0gbmV3IFN0ZENsYXNzKCk7CiAgJG9iai0+bmFtZSA9ICRmaWVsZFsnZmllbGRfbmFtZSddOwogICRvYmotPnZhbHVlID0gJGZpZWxkX3ZhbHVlOwogICRvYmotPnR5cGUgPSAkZmllbGRbJ2ZpZWxkX3R5cGUnXTsKICBzd2l0Y2goICRmaWVsZF90eXBlICkgewogICAgY2FzZSAwOiAvLyB0aGUgbm9ybWFsIHRleHQgZmllbGQKICAgICAgJG9iai0+ZmllbGQgPSAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZpZWxkXycuJHNhZmVmaWVsZG5hbWUsICRmaWVsZF92YWx1ZSwgNTAsIDI1NSk7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgMTogLy8gYW4gdXBsb2FkIGZpZWxkIHR5cGUKICAgICAgLy8gZGlzcGxheSBhIGxhYmVsIHdpdGggdGhlIGN1cnJlbnQgdmFsdWUsIGFuZCB0aGVuIGFuIHVwbG9hZCBmaWVsZAogICAgICAkb2JqLT52YWx1ZSA9ICRmaWVsZF92YWx1ZTsKICAgICAgJG9iai0+ZmllbGQgPSAkdGhpcy0+Q3JlYXRlRmlsZVVwbG9hZElucHV0KCRpZCwnZmllbGRfJy4kc2FmZWZpZWxkbmFtZSwnJyw1MCkuCgkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCd1cGxvYWRfZmllbGRfJy4kc2FmZWZpZWxkbmFtZSwkZmllbGRfbmFtZSkuCgkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCd1cGxvYWRfZmllbGRfb2xkdmFsdWVfJy4kc2FmZWZpZWxkbmFtZSwkZmllbGRfdmFsdWUpOwogICAgICBpZiggJGZpZWxkX3ZhbHVlICkgJG9iai0+ZmllbGQgLj0KCSR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ3JlbW92ZV9maWVsZF8nLiRzYWZlZmllbGRuYW1lLDApLgoJJG9iai0+dmFsdWUuJyZuYnNwOycuCgkkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ3JlbW92ZV9maWVsZF8nLiRzYWZlZmllbGRuYW1lLDEpLicmbmJzcDsnLiR0aGlzLT5MYW5nKCdkZWxldGUnKTsKICAgICAgYnJlYWs7CgogICAgY2FzZSAyOgogICAgICAkd3lzaXd5ZyA9IGZhbHNlOwogICAgICBpZiggaXNzZXQoJGZpZWxkWydmaWVsZF9leHRyYSddWyd3eXNpd3lnJ10pICkgJHd5c2l3eWcgPSAkZmllbGRbJ2ZpZWxkX2V4dHJhJ11bJ3d5c2l3eWcnXTsKICAgICAgJG9iai0+ZmllbGQgPSAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoJHd5c2l3eWcsJGlkLCRmaWVsZF92YWx1ZSwnZmllbGRfJy4kc2FmZWZpZWxkbmFtZSk7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgMzoKICAgICAgLy8gY29tcGFueSBkaXJlY3RvcnkgZW50cnkuCiAgICAgICRjZG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ29tcGFueURpcmVjdG9yeScpOwogICAgICBpZiggISRjZG1vZCApIHsKCS8vIGhhdmUgZmllbGQgdHlwZSwgYnV0IG5vIGNvbXBhbnlkaXJlY3RvcnkgbW9kdWxlLgoJY29udGludWU7CiAgICAgIH0KICAgICAgLy8gZ2V0IGEgbGlzdCBvZiB0aGUgY29tcGFuaWVzIHRoYXQgd2Ugd2FudCB0byBkaXNwbGF5CiAgICAgIHsKCSRxdWVyeSA9ICdTRUxFQ1QgaWQsY29tcGFueV9uYW1lIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBPUkRFUiBCWSBjb21wYW55X25hbWUnOwoJJGRiciA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKCWlmKCAkZGJyICkgewoJICAkdG1wMiA9IGFycmF5KCR0aGlzLT5MYW5nKCdub25lJyk9Pi0xKTsKCSAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGRicik7ICRpKysgKSB7CgkgICAgJHRtcDJbJGRiclskaV1bJ2NvbXBhbnlfbmFtZSddXSA9ICRkYnJbJGldWydpZCddOwoJICB9CgkgICRvYmotPmZpZWxkID0gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdmaWVsZF8nLiRzYWZlZmllbGRuYW1lLCR0bXAyLC0xLCRmaWVsZF92YWx1ZSk7Cgl9CiAgICAgIH0KICAgICAgYnJlYWs7CgogIGNhc2UgNDoKICAgIC8vIGZpbGUgYXR0YWNobWVudAogICAgJGRpciA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cGxvYWRkaXJlY3RvcnknLCRjb25maWdbJ3VwbG9hZHNfcGF0aCddKTsKICAgICRwYXR0ZXJuID0gZXhwbG9kZSgnLCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VwbG9hZGZpbGV0eXBlcycsJ2pwZyxqcGVnLGdpZixwbmcnKSk7CiAgICAkZXhjbHVkZXMgPSBhcnJheSgnXyonLCcuPz8qJyk7CiAgICBmb3JlYWNoKCAkcGF0dGVybiBhcyAmJG9uZSApIHsKICAgICAgJG9uZSA9ICcqLicuJG9uZTsKICAgIH0KICAgICRmaWxlcyA9IGNnZV9kaXI6OnJlY3Vyc2l2ZV9nbG9iKCRkaXIsJHBhdHRlcm4sJ0ZJTEVTJywkZXhjbHVkZXMpOwogICAgaWYoICFpc19hcnJheSgkZmlsZXMpIHx8IGNvdW50KCRmaWxlcykgPT0gMCApIGNvbnRpbnVlOwoKICAgICRvdXQgPSBhcnJheSgkdGhpcy0+TGFuZygnbm9uZScpPT4tMSk7CiAgICBmb3JlYWNoKCAkZmlsZXMgYXMgJG9uZSApIHsKICAgICAgJG9uZSA9IHN1YnN0cigkb25lLHN0cmxlbigkZGlyKSk7CiAgICAgIGlmKCBzdGFydHN3aXRoKCRvbmUsJy8nKSApICRvbmUgPSBzdWJzdHIoJG9uZSwxKTsKICAgICAgJG91dFskb25lXSA9ICRvbmU7CiAgICB9CiAgICAkb2JqLT5maWVsZCA9ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnZmllbGRfJy4kc2FmZWZpZWxkbmFtZSwkb3V0LC0xLCRmaWVsZF92YWx1ZSk7CiAgICBicmVhazsKICB9CiAgJHRtcFtdID0gJG9iajsKfQppZiggY291bnQoJHRtcCkgKSAkc21hcnR5LT5hc3NpZ24oJ2ZpZWxkcycsJHRtcCk7CgppZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoImhpZGVjb250ZW50IikhPTEpIHsKICAkc21hcnR5LT5hc3NpZ24oJ2V2ZW50X2RldGFpbHMnLCAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEodHJ1ZSwgJGlkLCAkZXZlbnRbJ2V2ZW50X2RldGFpbHMnXSwgJ2V2ZW50X2RldGFpbHMnLCAnY29udGVudCcsICRpZCkpOwp9CgokbnVtX2NhdHMgPSBjb3VudCgkY2F0ZWdvcmllcyk7CiRjb3VudCA9IDA7CiR0bXAgPSBhcnJheSgpOwpmb3IoJGkgPSAwOyAkaSA8ICRudW1fY2F0czsgJGkrKywkY291bnQgKyspIHsKICAkY2F0ZWdvcnkgPSAkY2F0ZWdvcmllc1skaV07CiAgJGNhdF9pZCA9ICRjYXRlZ29yeVsnY2F0ZWdvcnlfaWQnXTsKICAkY2F0X25hbWUgPSAkY2F0ZWdvcnlbJ2NhdGVnb3J5X25hbWUnXTsKICAkY2hlY2tlZCA9ICcnOwogIC8vIEZvbGxvd2luZyBsaW5lIHNlZW1zIG5vbi1mdW5jdGlvbi4gY29tbWVudGluZyBvdXQuIC0gRWxpamFoCiAgLy8gaWYoaW5fYXJyYXkoJGNhdF9pZCwgJGV2ZW50WydjYXRlZ29yaWVzJ10pKQkkY2hlY2tlZCA9ICRjYXRfaWQ7CgogIC8vT25seSB0YWcgdGhlIGRlZmF1bHQtY2F0ZWdvcnkgaXMgeW91IGFyZSBhZGRpbmcgYW4gZXZlbnQsIG5vdCBpdCB5b3UgYXJlIGVkaXRpbmcKICBpZiAoJGV2ZW50X2lkPT0tMSkgewogICAgaWYoJGNhdF9pZCA9PSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9jYXRlZ29yeScsICcnKSkgJGNoZWNrZWQgPSAkY2F0X2lkOwogIH0gZWxzZSB7CiAgICBpZihpbl9hcnJheSgkY2F0X2lkLCAkZXZlbnRbJ2NhdGVnb3JpZXMnXSkpCSRjaGVja2VkID0gJGNhdF9pZDsKICB9CiAgJG9iaiA9IG5ldyBTdGRDbGFzcygpOwogICRvYmotPmZpZWxkID0gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZXZlbnRfY2F0ZWdvcmllc1tdJywgJGNhdF9pZCwgJGNoZWNrZWQsImlkPSdjYXRlZ29yeSRpJyIpOwogICRvYmotPm5hbWUgPSAkY2F0X25hbWU7CiAgJG9iai0+aWQgPSAkY2F0X2lkOwogICR0bXBbXSA9ICRvYmo7Cn0KaWYoIGNvdW50KCR0bXApICkgJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yaWVzJywkdG1wKTsKCiRzbWFydHktPmFzc2lnbignY2FuY2VsJywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdjYW5jZWwnLCR0aGlzLT5MYW5nKCdjYW5jZWwnKSkpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9hZGRfZXZlbnQudHBsJyk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_ajax_deleteevent.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDYWxlbmRhcicpICYmICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdBZGQgQ2FsZW5kYXIgRXZlbnRzJykgJiYKICAgICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdFZGl0IE15IENhbGVuZGFyIEV2ZW50cycpICkgZXhpdDsKCmRlYnVnX3RvX2xvZygnYWRtaW5fYWpheF9kZWxldGVldmVudCAxJyk7CiR1c2VyaWQgPSBudWxsOwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDYWxlbmRhcicpICkgJHVzZXJpZCA9IGdldF91c2VyaWQoRkFMU0UpICogLTEgLSAxMDA7CgokcmVzdWx0ID0gbmV3IHN0ZENsYXNzOwokcmVzdWx0LT5zdGF0dXMgPSAwOwokcmVzdWx0LT5tc2cgPSAkdGhpcy0+TGFuZygnZXJyb3JfdW5rbm93bicpOwoKdHJ5IHsKICAgICRldmVudF9pZCA9IChpbnQpY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnZXZlbnRfaWQnKTsKICAgICRkZWxldGVfY2hpbGRyZW4gPSAoaW50KWNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2RlbGV0ZV9jaGlsZHJlbicsMCk7CiAgICBkZWJ1Z190b19sb2coJ2FkbWluX2FqYXhfZGVsZXRlZXZlbnQgMicpOwoKICAgIC8vIGdldCB0aGUgZXZlbnQgKG1ha2Ugc3VyZSBpdCdzIHZhbGlkLCBhbmQgd2UgaGF2ZSBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBpdCwgQU5EIHRoYXQgaXQgaXMgbm90IGEgcGFyZW50KQogICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy4kdGhpcy0+ZXZlbnRzX3RhYmxlX25hbWUuJyBXSEVSRSBldmVudF9pZCA9ID8nOwogICAgJHBhcm1zID0gYXJyYXkoJGV2ZW50X2lkKTsKICAgIGlmKCAhaXNfbnVsbCgkdXNlcmlkKSApIHsKICAgICAgICAkcXVlcnkgLj0gJyBBTkQgZXZlbnRfY3JlYXRlZF9ieSA9ID8nOwogICAgICAgICRwYXJtc1tdID0gJHVzZXJpZDsKICAgIH0KCiAgICAkZXZlbnQgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJGV2ZW50X2lkKSk7CiAgICBpZiggISRldmVudCApIHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2V2ZW50bm90Zm91bmQnKSk7CiAgICBkZWJ1Z190b19sb2coJ2FkbWluX2FqYXhfZGVsZXRlZXZlbnQgMycpOwoKICAgIGlmKCAhJGRlbGV0ZV9jaGlsZHJlbiApIHsKICAgICAgICAvLyBub3cgbWFrZSBzdXJlIGl0J3Mgbm90IGEgcGFyZW50IChkb24ndCB3YW5uYSBsZWF2ZSBvcnBoYW5lZCBldmVudHMgbHlpbmcgYXJvdW5kKQogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgZXZlbnRfaWQgRlJPTSAnLiR0aGlzLT5ldmVudHNfdGFibGVfbmFtZS4nIFdIRVJFIGV2ZW50X3BhcmVudF9pZCA9ID8nOwogICAgICAgICR0bXAgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJGV2ZW50X2lkKSk7CiAgICAgICAgaWYoICR0bXAgPiAwICkgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfZGVsZXRlcGFyZW50ZXZlbnQnKSk7CiAgICB9CgogICAgLy8gd29vdCwgd2UgY2FuIGRlbGV0ZSB0aGUgdGhpbmcuCiAgICBjZ2NhbGVuZGFyX3V0aWxzOjpkZWxldGVfZXZlbnQoJGV2ZW50X2lkKTsKICAgIGRlYnVnX3RvX2xvZygnYWRtaW5fYWpheF9kZWxldGVldmVudCA0Jyk7CiAgICAkcmVzdWx0LT5zdGF0dXMgPSAxOwogICAgZGVidWdfdG9fbG9nKCRyZXN1bHQpOwp9CmNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CiAgICAkcmVzdWx0LT5tc2cgPSAkZS0+R2V0TWVzc2FnZSgpOwogICAgZGVidWdfdG9fbG9nKCdhZG1pbl9hamF4X2RlbGV0ZWV2ZW50IGVyciAnLiRlLT5HZXRNZXNzYWdlKCkpOwp9CgplY2hvIGpzb25fZW5jb2RlKCRyZXN1bHQpOwpleGl0OwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_ajax_editevent.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDYWxlbmRhcicpICYmICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdBZGQgQ2FsZW5kYXIgRXZlbnRzJykgJiYKICAgICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdFZGl0IE15IENhbGVuZGFyIEV2ZW50cycpICkgZXhpdDsKCiR1c2VyaWQgPSBudWxsOwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDYWxlbmRhcicpICkgJHVzZXJpZCA9IGdldF91c2VyaWQoRkFMU0UpICogLTEgLSAxMDA7CgokcmVzdWx0ID0gbmV3IHN0ZENsYXNzOwokcmVzdWx0LT5zdGF0dXMgPSAwOwokcmVzdWx0LT5tc2cgPSAkdGhpcy0+TGFuZygnZXJyb3JfdW5rbm93bicpOwoKdHJ5IHsKICAgIGRlYnVnX3RvX2xvZygnYWRtaW5fYWpheF9lZGl0ZXZlbnQnKTsKICAgIGRlYnVnX3RvX2xvZygkcGFyYW1zKTsKICAgICRldmVudF9pZCA9IChpbnQpY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnZXZlbnRfaWQnKTsKICAgICRkYXlEZWx0YSA9IChpbnQpY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnZGF5RGVsdGEnKTsKICAgICRtaW51dGVEZWx0YSA9IChpbnQpY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnbWludXRlRGVsdGEnKTsKICAgICRhbGxEYXkgPSAoaW50KWNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2FsbERheScpOwogICAgJG1vdmUgPSAoaW50KWNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ21vdmUnLDApOwogICAgaWYoICRldmVudF9pZCA8IDEgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKSk7CiAgICBpZiggJGRheURlbHRhID09IDAgJiYgJG1pbnV0ZURlbHRhID09IDAgJiYgJGFsbERheSA9PSAwICkgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJykpOwoKICAgIC8vIGdldCB0aGUgZXZlbnQgKG1ha2Ugc3VyZSBpdCdzIHZhbGlkLCBhbmQgd2UgaGF2ZSBwZXJtaXNzaW9uIHRvIGVkaXQgaXQpCiAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLiR0aGlzLT5ldmVudHNfdGFibGVfbmFtZS4nIFdIRVJFIGV2ZW50X2lkID0gPyc7CiAgICAkcGFybXMgPSBhcnJheSgkZXZlbnRfaWQpOwogICAgaWYoICFpc19udWxsKCR1c2VyaWQpICkgewogICAgICAgICRxdWVyeSAuPSAnIEFORCBldmVudF9jcmVhdGVkX2J5ID0gPyc7CiAgICAgICAgJHBhcm1zW10gPSAkdXNlcmlkOwogICAgfQoKICAgICRldmVudCA9ICRkYi0+R2V0Um93KCRxdWVyeSxhcnJheSgkZXZlbnRfaWQpKTsKICAgIGlmKCAhJGV2ZW50ICkgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfZXZlbnRub3Rmb3VuZCcpKTsKCiAgICAkZGF5ID0gMjQgKiAzNjAwOwogICAgJHRkaWZmID0gJGRheURlbHRhICogJGRheSArICRtaW51dGVEZWx0YSAqIDYwOwogICAgaWYoICRtb3ZlICkgewogICAgICAgICRldmVudFsnZXZlbnRfZGF0ZV9zdGFydCddID0gJGRiLT5Vbml4VGltZVN0YW1wKCRldmVudFsnZXZlbnRfZGF0ZV9zdGFydCddKTsKICAgICAgICAkZXZlbnRbJ2V2ZW50X2RhdGVfc3RhcnQnXSArPSAkdGRpZmY7CiAgICAgICAgaWYoICRldmVudFsnZXZlbnRfZGF0ZV9lbmQnXSApIHsKICAgICAgICAgICAgJGV2ZW50WydldmVudF9kYXRlX2VuZCddID0gJGRiLT5Vbml4VGltZVN0YW1wKCRldmVudFsnZXZlbnRfZGF0ZV9lbmQnXSkgKyAkdGRpZmY7CiAgICAgICAgfQogICAgfQogICAgZWxzZSB7CiAgICAgICAgJGV2ZW50WydldmVudF9kYXRlX3N0YXJ0J10gPSAkZGItPlVuaXhUaW1lU3RhbXAoJGV2ZW50WydldmVudF9kYXRlX3N0YXJ0J10pOwogICAgICAgIGlmKCAkdGRpZmYgPCAwICkgewogICAgICAgICAgICAkZXZlbnRbJ2V2ZW50X2RhdGVfc3RhcnQnXSArPSAkdGRpZmY7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBubyBlbmQgZGF0ZSB5ZXQuCiAgICAgICAgICAgIC8vIHdlIGhhdmUgdG8gY3JlYXRlIG9uZS4KICAgICAgICAgICAgJGV2ZW50WydldmVudF9kYXRlX2VuZCddID0gJGRiLT5Vbml4VGltZVN0YW1wKCRldmVudFsnZXZlbnRfZGF0ZV9lbmQnXSk7CiAgICAgICAgICAgIGlmKCAkZXZlbnRbJ2V2ZW50X2RhdGVfZW5kJ10gPT0gMCApICRldmVudFsnZXZlbnRfZGF0ZV9lbmQnXSA9ICRldmVudFsnZXZlbnRfZGF0ZV9zdGFydCddICsgMTUgKiA2MDsgLy8gZmlmdGVlbiBtaW51dGVzIGlmIHRoZXJlIGlzIG5vIGVuZCB0aW1lLgogICAgICAgICAgICAkZXZlbnRbJ2V2ZW50X2RhdGVfZW5kJ10gKz0gJHRkaWZmOwogICAgICAgIH0KICAgIH0KICAgICRldmVudFsnZXZlbnRfYWxsX2RheSddID0gJGFsbERheTsKICAgIGRlYnVnX3RvX2xvZygnc3RhcnQgZGF0ZSAnLnN0cmZ0aW1lKCcleCAlWCcsJGV2ZW50WydldmVudF9kYXRlX3N0YXJ0J10pKTsKICAgIGRlYnVnX3RvX2xvZygnZW5kIGRhdGUgJy5zdHJmdGltZSgnJXggJVgnLCRldmVudFsnZXZlbnRfZGF0ZV9lbmQnXSkpOwoKICAgIC8vIGFuZCBzYXZlIHRoZSB0aGluZy4KICAgICRxdWVyeSA9ICdVUERBVEUgJy4kdGhpcy0+ZXZlbnRzX3RhYmxlX25hbWUuJyBTRVQgZXZlbnRfZGF0ZV9zdGFydCA9IEZST01fVU5JWFRJTUUoPyksIGV2ZW50X2RhdGVfZW5kID0gRlJPTV9VTklYVElNRSg/KSwgZXZlbnRfYWxsX2RheSA9ID8sIGV2ZW50X21vZGlmaWVkX2RhdGUgPSBOT1coKQogICAgICAgICAgICAgIFdIRVJFIGV2ZW50X2lkID0gPyc7CiAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRldmVudFsnZXZlbnRfZGF0ZV9zdGFydCddLCRldmVudFsnZXZlbnRfZGF0ZV9lbmQnXSwkZXZlbnRbJ2V2ZW50X2FsbF9kYXknXSwkZXZlbnRbJ2V2ZW50X2lkJ10pKTsKICAgICRyZXN1bHQtPnN0YXR1cyA9IDE7Cn0KY2F0Y2goIEV4Y2VwdGlvbiAkZSApIHsKICAgICRyZXN1bHQtPm1zZyA9ICR0aGlzLT5HZXRNZXNzYWdlKCk7Cn0KCmVjaG8ganNvbl9lbmNvZGUoJHJlc3VsdCk7CmV4aXQ7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_ajax_fetchevents.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDYWxlbmRhcicpICYmCiAgICAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQWRkIENhbGVuZGFyIEV2ZW50cycpICYmCiAgICAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignRWRpdCBNeSBDYWxlbmRhciBFdmVudHMnKSApIGV4aXQ7Cgokc3RhcnQgPSAoaW50KWNnZV91dGlsczo6Z2V0X3BhcmFtKCRfUkVRVUVTVCwnc3RhcnQnKTsKJGVuZCA9IChpbnQpY2dlX3V0aWxzOjpnZXRfcGFyYW0oJF9SRVFVRVNULCdlbmQnKTsKJHNob3djaGlsZHJlbiA9IChpbnQpY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnc2hvd2NoaWxkcmVuJywwKTsKJGNhdGVnb3J5ID0gKGludCljZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdjYXRlZ29yeScsLTEpOwoka2V5d29yZCA9IHRyaW0oY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywna2V5d29yZCcpKTsKJHdoZW4gPSBzdHJ0b2xvd2VyKHRyaW0oY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnd2hlbicsJ2FueScpKSk7Ci8vIHdoZW4gY2FuIG9ubHkgYmUgdXNlZCB3aGVuIHN0YXJ0L2VuZCBhcmUgbm90IHNwZWNpZmllZC4KJGxpbWl0ID0gY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnbGltaXQnLDEwMDAwKTsgLy8gMTAwMDAgaXMgbW9yZSB0aGFuIGVub3VnaC4KCiRzdF9kcyA9ICRkYi0+RGJUaW1lU3RhbXAoJHN0YXJ0KTsKJGVuX2RzID0gJGRiLT5EYlRpbWVTdGFtcCgkZW5kKTsKCmlmKCAkc3RhcnQgPCAxIHx8ICRlbmQgPCAxICkgewogICAgc3dpdGNoKCAkd2hlbiApIHsKICAgIGNhc2UgJ3Bhc3QnOgogICAgICAgICRzdGFydCA9IDE7CiAgICAgICAgJGVuZCA9IHRpbWUoKTsKICAgICAgICBicmVhazsKCiAgICBjYXNlICdmdXR1cmUnOgogICAgICAgICRzdGFydCA9IHRpbWUoKTsKICAgICAgICAkZW5kID0gMjE0NzQ4MzY0ODsgLy8gbWF4IHVuaXggdGltZQogICAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ2FueSc6CiAgICAgICAgYnJlYWs7CiAgICB9Cn0KaWYoICRzdGFydCA+ICRlbmQgKSB7CiAgICAkYyA9ICRzdGFydDsKICAgICRzdGFydCA9ICRlbmQ7CiAgICAkZW5kID0gJGM7Cn0KCiR3aGVyZSA9IGFycmF5KCk7CiRwYXJtcyA9IGFycmF5KCk7Ci8vIGdldCBhbGwgb2YgdGhlIGV2ZW50cwokcXVlcnkgPSAnU0VMRUNUIEUuKiBGUk9NICcuJHRoaXMtPmV2ZW50c190YWJsZV9uYW1lLicgRSc7CmlmKCAkY2F0ZWdvcnkgPiAwICkgewogICAgJHF1ZXJ5IC49ICcgTEVGVCBKT0lOICcuJHRoaXMtPmV2ZW50c190b19jYXRlZ29yaWVzX3RhYmxlX25hbWUuJyBFQyBPTiBFLmV2ZW50X2lkID0gRUMuZXZlbnRfaWQnOwogICAgJHdoZXJlW10gPSAnRUMuY2F0ZWdvcnlfaWQgPSA/JzsKICAgICRwYXJtc1tdID0gJGNhdGVnb3J5Owp9CmlmKCAkc3RhcnQgJiYgJGVuZCApIHsKICAgICR3aGVyZVtdID0gJygoRS5ldmVudF9kYXRlX3N0YXJ0IEJFVFdFRU4gPyBBTkQgPykgT1IgKEUuZXZlbnRfZGF0ZV9lbmQgQkVUV0VFTiA/IEFORCA/KSknOwogICAgJHBhcm1zW10gPSB0cmltKCRkYi0+RGJUaW1lU3RhbXAoJHN0YXJ0KSwiJyIpOwogICAgJHBhcm1zW10gPSB0cmltKCRkYi0+RGJUaW1lU3RhbXAoJGVuZCksIiciKTsKICAgICRwYXJtc1tdID0gdHJpbSgkZGItPkRiVGltZVN0YW1wKCRzdGFydCksIiciKTsKICAgICRwYXJtc1tdID0gdHJpbSgkZGItPkRiVGltZVN0YW1wKCRlbmQpLCInIik7Cn0KaWYoICEkc2hvd2NoaWxkcmVuICkgJHdoZXJlW10gPSAnQ09BTEVTQ0UoRS5ldmVudF9wYXJlbnRfaWQsMCkgPCAxJzsKaWYoICRrZXl3b3JkICkgewogICAgLy8gdXNlIHRoZSBmdWxsIHRleHQgaW5kZXgKICAgICR3aGVyZVtdID0gJ01BVENIKEUuZXZlbnRfdGl0bGUsRS5ldmVudF9zdW1tYXJ5LEUuZXZlbnRfZGV0YWlscykgQUdBSU5TVCAoPyknOwogICAgJHBhcm1zW10gPSAka2V5d29yZDsKfQoKLy8gcHV0IHRoZSBxdWVyeSB0b2dldGhlcgppZiggY291bnQoJHdoZXJlKSApICRxdWVyeSAuPSAnIFdIRVJFICcgLiBpbXBsb2RlKCcgQU5EICcsJHdoZXJlKTsKCiRycyA9ICRkYi0+U2VsZWN0TGltaXQoJHF1ZXJ5LCRsaW1pdCwwLCRwYXJtcyk7CiRsaXN0MSA9IGFycmF5KCk7CndoaWxlKCAhJHJzLT5FT0YgKSB7CiAgICAkbGlzdDFbXSA9ICRycy0+ZmllbGRzOwogICAgJHJzLT5Nb3ZlTmV4dCgpOwp9CnVuc2V0KCRycyk7CgppZiggY291bnQoJGxpc3QxKSApIHsKICAgIGRlYnVnX3RvX2xvZygkbGlzdDEpOwogICAgLy8gZ2V0IHRoZSBjYXRlZ29yaWUocykgZm9yIHRoZXNlIGV2ZW50cwogICAgJGlkbGlzdCA9IGNnZV9hcnJheTo6ZXh0cmFjdF9maWVsZCgkbGlzdDEsJ2V2ZW50X2lkJyk7CiAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLiR0aGlzLT5ldmVudHNfdG9fY2F0ZWdvcmllc190YWJsZV9uYW1lLicgV0hFUkUgZXZlbnRfaWQgSU4gKCcuaW1wbG9kZSgnLCcsJGlkbGlzdCkuJykgT1JERVIgQlkgZXZlbnRfaWQsY2F0ZWdvcnlfaWQnOwogICAgJHRtcCA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKICAgICRjYXRlZ29yeV9saXN0ID0gYXJyYXkoKTsKICAgIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKICAgICAgICBmb3JlYWNoKCAkdG1wIGFzICRyZWMgKSB7CiAgICAgICAgICAgICRjYXRlZ29yeV9saXN0WyRyZWNbJ2V2ZW50X2lkJ11dW10gPSAkcmVjWydjYXRlZ29yeV9pZCddOwogICAgICAgIH0KICAgIH0KCiAgICAvLyBub3cgY29udmVydCB0aGlzIGludG8gc29tZXRoaW5nIGNvbXBhdGlibGUgd2l0aCBmdWxsY2FsZW5kYXIKICAgICRvdXRsaXN0ID0gYXJyYXkoKTsKICAgIGZvcmVhY2goICRsaXN0MSBhcyAkcmVjICkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgICRvdXQgPSBuZXcgc3RkQ2xhc3M7CiAgICAgICAgICAgICRvdXQtPmlkID0gJHJlY1snZXZlbnRfaWQnXTsKICAgICAgICAgICAgJG91dC0+dGl0bGUgPSAkcmVjWydldmVudF90aXRsZSddOwogICAgICAgICAgICAkb3V0LT5zdW1tYXJ5ID0gJHJlY1snZXZlbnRfc3VtbWFyeSddOwogICAgICAgICAgICAkb3V0LT5jYW5lZGl0ID0gMTsKICAgICAgICAgICAgJG91dC0+Y2FuZGVsZXRlID0gMDsKCiAgICAgICAgICAgIGlmKCBpc3NldCgkY2F0ZWdvcnlfbGlzdFskb3V0LT5pZF0pICYmIGNvdW50KCRjYXRlZ29yeV9saXN0WyRvdXQtPmlkXSkgPj0gMSApIHsKICAgICAgICAgICAgICAgIC8vIHRoaXMgZXZlbnQgaXMgaW4gb25seSBvbmUgY2F0ZWdvcnkKICAgICAgICAgICAgICAgIC8vIHdlIGNhbiBzZXQgdGhlIGNvbG9yIGFuZCB0ZXh0Y29sb3IKICAgICAgICAgICAgICAgICRjYXRlZ29yeSA9IFxDR0NhbGVuZGFyXGNhdGVnb3J5Ojpsb2FkKCRjYXRlZ29yeV9saXN0WyRvdXQtPmlkXVswXSk7CiAgICAgICAgICAgICAgICAkb3V0LT5jb2xvciA9ICRjYXRlZ29yeVsnYmdjb2xvciddOwogICAgICAgICAgICAgICAgJG91dC0+dGV4dENvbG9yID0gJGNhdGVnb3J5WydmZ2NvbG9yJ107CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmKCAkcmVjWydldmVudF9wYXJlbnRfaWQnXSA+IDEgKSB7CiAgICAgICAgICAgICAgICAvLyBpcyBhIGNoaWxkIGV2ZW50CiAgICAgICAgICAgICAgICAkb3V0LT50aXRsZSAuPSAiICgiLiR0aGlzLT5MYW5nKCdjaGlsZCcpLiIpIjsKICAgICAgICAgICAgICAgICRvdXQtPmNoaWxkID0gJHJlY1snZXZlbnRfcGFyZW50X2lkJ107CiAgICAgICAgICAgICAgICAkb3V0LT5jYW5kZWxldGUgPSAxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYoICRyZWNbJ2V2ZW50X3JlY3VyX3BlcmlvZCddICYmICRyZWNbJ2V2ZW50X3JlY3VyX3BlcmlvZCddICE9ICdub25lJyApIHsKICAgICAgICAgICAgICAgIC8vIGlzIGEgcGFyZW50IGV2ZW50IG9mIGEgcmVjdXJyaW5nIGV2ZW50CiAgICAgICAgICAgICAgICAkb3V0LT50aXRsZSAuPSAiICgiLiR0aGlzLT5MYW5nKCdyZXBlYXRzJykuJyknOwogICAgICAgICAgICAgICAgJG91dC0+cmVjdXJzID0gMTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRvdXQtPmNhbmRlbGV0ZSA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJG91dC0+c3RhcnQgPSAkZGItPlVuaXhUaW1lU3RhbXAoJHJlY1snZXZlbnRfZGF0ZV9zdGFydCddKTsKICAgICAgICAgICAgJG91dC0+ZW5kID0gJGRiLT5Vbml4VGltZVN0YW1wKCRyZWNbJ2V2ZW50X2RhdGVfZW5kJ10pOwogICAgICAgICAgICAkb3V0LT5hbGxEYXkgPSAoJHJlY1snZXZlbnRfYWxsX2RheSddKT90cnVlOmZhbHNlOwoKICAgICAgICAgICAgJG91dC0+ZWRpdF91cmwgPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2FkbWluX2FkZF9ldmVudCcsJHJldHVybmlkLGFycmF5KCdldmVudF9pZCc9PiRyZWNbJ2V2ZW50X2lkJ10pKTsKICAgICAgICAgICAgJG91dC0+ZWRpdF91cmwgPSBzdHJfcmVwbGFjZSgnJmFtcDsnLCcmJywkb3V0LT5lZGl0X3VybCk7CiAgICAgICAgICAgICRvdXRsaXN0W10gPSAkb3V0OwogICAgICAgIH0KICAgICAgICBjYXRjaCggRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICBkZWJ1Z190b19sb2coJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAgICAgfQogICAgfQoKICAgICRvdXQgPSBqc29uX2VuY29kZSgkb3V0bGlzdCk7CiAgICBlY2hvICRvdXQ7Cn0KZXhpdDsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_ajax_getcategories.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJGNhdGVnb3JpZXMgPSBcQ0dDYWxlbmRhclxjYXRlZ29yeTo6Z2V0X2NhdGVnb3JpZXMoKTsKaWYoIGNvdW50KCRjYXRlZ29yaWVzKSkgJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yaWVzJywkY2F0ZWdvcmllcyk7CiRvdXQgPSAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9hamF4X2dldGNhdGVnb3JpZXMudHBsJyk7CmVjaG8gJG91dDsKZXhpdDsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_ajax_ordercategories.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBDYWxlbmRhciBBdHRyaWJ1dGVzJykgKSBleGl0OwppZiggIWlzc2V0KCRfUkVRVUVTVFsnY2F0J10pIHx8ICFpc19hcnJheSgkX1JFUVVFU1RbJ2NhdCddKSApIGV4aXQ7CgokcXVlcnkgPSAnVVBEQVRFICcuJHRoaXMtPmNhdGVnb3JpZXNfdGFibGVfbmFtZS4nIFNFVCBjYXRlZ29yeV9vcmRlciA9ID8gV0hFUkUgY2F0ZWdvcnlfaWQgPSA/JzsKZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJF9SRVFVRVNUWydjYXQnXSk7ICRpKysgKSB7CiAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRpKzEsJF9SRVFVRVNUWydjYXQnXVskaV0pKTsKfQoKZXhpdDsKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_delete_category.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBDYWxlbmRhciBBdHRyaWJ1dGVzJykgKSByZXR1cm47CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdhZG1pbl9tYW5hZ2VfY2F0ZWdvcmllcycpOwoKJGNhdGlkID0gKGludCljZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdjYXRpZCcpOwppZiggJGNhdGlkIDwgMSApIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJykpOwp9Cgp0cnkgewogICAgXENHQ2FsZW5kYXJcY2F0ZWdvcnk6OmRlbGV0ZSgkY2F0aWQpOwogICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ2NhdGVnb3J5ZGVsZXRlZCcpKTsKfQpjYXRjaCggRXhjZXB0aW9uICRlICkgewogICAgJHRoaXMtPlNldEVycm9yKCRlLT5HZXRNZXNzYWdlKCkpOwp9CgokdGhpcy0+UmVkaXJlY3RUb1RhYigpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_delete_event.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4CiMgICAgICBieSBSb2JlcnQgQWxsZW4gKGFrcmFiYXQpIGFuZAojICAgICAgICAgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBkaXNwbGF5aW5nIGNhbGVuZGFycywKIyAgYW5kIG1hbmFnZW1lbnQgYW5kIGRpc3BsYXkgb2YgdGltZSBiYXNlZCBldmVudHMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIHJldHVybjsKaWYoICFpc3NldCgkcGFyYW1zWydldmVudF9pZCddKSApIHJldHVybjsKZGllKCdub3QgdXNlZCcpOwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2RlZmF1bHRhZG1pbicpOwokcmVzID0gY2djYWxlbmRhcl91dGlsczo6ZGVsZXRlX2V2ZW50KCRwYXJhbXNbJ2V2ZW50X2lkJ10pOwppZiggISRyZXMgKSB7CiAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9kZWxldGVmYWlsZWQnKSk7Cn0KZWxzZSB7CiAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ2V2ZW50ZGVsZXRlZCcpKTsKfQokdGhpcy0+UmVkaXJlY3RUb0FkbWluVGFiKCk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_event_update.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4CiMgICAgICBieSBSb2JlcnQgQWxsZW4gKGFrcmFiYXQpIGFuZAojICAgICAgICAgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBkaXNwbGF5aW5nIGNhbGVuZGFycywKIyAgYW5kIG1hbmFnZW1lbnQgYW5kIGRpc3BsYXkgb2YgdGltZSBiYXNlZCBldmVudHMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2RlZmF1bHRhZG1pbicpOwokbWVzc2FnZT0iIjsKCmZ1bmN0aW9uIGhhbmRsZV9udWxsX2RhdGVfdHMoJHZhbCkKewogICAgaWYoICR2YWwgKSB7CiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICAkc3RyID0gJGRiLT5EYlRpbWVTdGFtcCgkdmFsKTsKICAgICAgICByZXR1cm4gdHJpbSgkc3RyLCInIik7CiAgICB9Cn0KCmZ1bmN0aW9uIGhhbmRsZV9udWxsX2RhdGUoJHN0cikKewogICAgaWYoICFpc19udWxsKCRzdHIpICkgcmV0dXJuIHRyaW0oJHN0ciwiJyIpOwogICAgcmV0dXJuICRzdHI7Cn0KCgpmdW5jdGlvbiBudGhfd2Vla2RheSgkbnRoLCR3ZWVrZGF5LCRmcm9tZGF0ZSkKewogICAgJG1vbnRoID0gZGF0ZSgnbScsJGZyb21kYXRlKTsKICAgICR5ZWFyID0gZGF0ZSgnWScsJGZyb21kYXRlKTsKICAgICRob3VycyA9IGRhdGUoJ0gnLCRmcm9tZGF0ZSk7CiAgICAkbWludXRlcyA9IGRhdGUoJ2knLCRmcm9tZGF0ZSk7CiAgICAkc2Vjb25kcyA9IGRhdGUoJ3MnLCRmcm9tZGF0ZSk7CiAgICAkbmRheXMgPSAtMTsKCiAgICAkbnRoID0gc3RydG9sb3dlcigkbnRoKTsKICAgIHN3aXRjaCggJG50aCApIHsKICAgIGNhc2UgJ2ZpcnN0JzoKICAgICAgICAkbnRoID0gMTsKICAgICAgICBicmVhazsKICAgIGNhc2UgJ3NlY29uZCc6CiAgICAgICAgJG50aCA9IDI7CiAgICAgICAgYnJlYWs7CiAgICBjYXNlICd0aGlyZCc6CiAgICAgICAgJG50aCA9IDM7CiAgICAgICAgYnJlYWs7CiAgICBjYXNlICdmb3VydGgnOgogICAgICAgICRudGggPSA0OwogICAgICAgIGJyZWFrOwogICAgY2FzZSAnbGFzdCc6CiAgICAgICAgJG50aCA9IC0xOwogICAgICAgIGJyZWFrOwogICAgZGVmYXVsdDoKICAgICAgICAkbnRoID0gKGludCkkbnRoOwogICAgICAgIGJyZWFrOwogICAgfQogICAgaWYoICRudGggPT0gLTEgKSB7CiAgICAgICAgJGRheXNfaW5fbW9udGggPSBkYXRlKCd0JywkZnJvbWRhdGUpOwogICAgICAgICR0bXAxID0gbWt0aW1lKDAsMCwwLCRtb250aCwkZGF5c19pbl9tb250aCwkeWVhcik7CiAgICAgICAgJHdlZWtkYXlfb2ZfbGFzdCA9IGRhdGUoJ3cnLCR0bXAxKTsKCiAgICAgICAgaWYoICR3ZWVrZGF5X29mX2xhc3QgPCAkd2Vla2RheSApIHsKICAgICAgICAgICAgLy8kbmRheXMgPSAkZGF5c19pbl9tb250aCAtICR3ZWVrZGF5X29mX2xhc3QgLSAkd2Vla2RheSAtIDE7CiAgICAgICAgICAgICRuZGF5cyA9ICRkYXlzX2luX21vbnRoIC0gJHdlZWtkYXlfb2ZfbGFzdCArICR3ZWVrZGF5IC0gNzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRuZGF5cyA9ICRkYXlzX2luX21vbnRoIC0gJHdlZWtkYXlfb2ZfbGFzdCArICR3ZWVrZGF5OwogICAgICAgIH0KICAgIH0KICAgIGVsc2UgewogICAgICAgICRudGggPSBtYXgoJG50aCwxKTsKICAgICAgICAkbnRoID0gbWluKCRudGgsNCk7CgogICAgICAgIC8vIGdldCB3ZWVrZGF5IG9mIGZpcnN0IG9mIHRoZSBtb250aAogICAgICAgICR0bXAxID0gbWt0aW1lKDAsMCwwLCRtb250aCwxLCR5ZWFyKTsKICAgICAgICAkd2Vla2RheV9vZl9maXJzdCA9IGRhdGUoJ3cnLCR0bXAxKTsKCiAgICAgICAgaWYoICR3ZWVrZGF5X29mX2ZpcnN0IDw9ICR3ZWVrZGF5ICkgewogICAgICAgICAgICAkbmRheXMgPSAoJHdlZWtkYXkgLSAkd2Vla2RheV9vZl9maXJzdCArIDEpICsgKCRudGggLSAxKSAqIDc7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkbmRheXMgPSAoNyAtICR3ZWVrZGF5X29mX2ZpcnN0ICsgJHdlZWtkYXkgKyAxKSArICgkbnRoIC0gMSkgKiA3OwogICAgICAgIH0KICAgIH0KCiAgICAkZGF0ZSA9IG1rdGltZSgkaG91cnMsJG1pbnV0ZXMsJHNlY29uZHMsJG1vbnRoLCRuZGF5cywkeWVhcik7CiAgICByZXR1cm4gJGRhdGU7Cn0KCgoKZnVuY3Rpb24gY2hlY2tfb3ZlcmxhcHBpbmdfZXZlbnRzKCRldmVudF9zdGFydF91dCwkZXZlbnRfZW5kX3V0LCAkY2hpbGRfZXZlbnRzKQp7CiAgICAkdG1wID0gYXJyYXkoKTsKICAgICR0bXBbXSA9IGFycmF5KCdzdGFydCc9PiRldmVudF9zdGFydF91dCwnZW5kJz0+JGV2ZW50X2VuZF91dCk7CiAgICAkdG1wID0gYXJyYXlfbWVyZ2UoJHRtcCwkY2hpbGRfZXZlbnRzKTsKCiAgICAvLyB0cml2aWFsIGNoZWNrLCBpZiB0aGUgZW5kIGRhdGUgaXMgbnVsbCBvciBlbXB0eQogICAgLy8gdGhlcmUgaXMgbm8gY2hhbmNlIHRoYXQgZXZlbnRzIGNhbiBvdmVybGFwLgogICAgaWYoZW1wdHkoJGV2ZW50X2VuZF91dCkgKSByZXR1cm4gZmFsc2U7CgogICAgZm9yKCAkaSA9IDE7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKSB7CiAgICAgICAgJHByZXYgPSYgJHRtcFskaS0xXTsKICAgICAgICAkY3VyID0mICR0bXBbJGldOwogICAgICAgIGlmKCAoJGN1clsnc3RhcnQnXSA+PSAkcHJldlsnc3RhcnQnXSAmJiAkY3VyWydzdGFydCddIDw9ICRwcmV2WydlbmQnXSkgfHwKICAgICAgICAgICAgKCRjdXJbJ2VuZCddID49ICRwcmV2WydzdGFydCddICYmICRjdXJbJ2VuZCddIDw9ICRwcmV2WydlbmQnXSkgKSB7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gZmFsc2U7Cn0KCgpmdW5jdGlvbiBjaGVja19kYl9mb3JfY29uZmxpY3RzKCYkbW9kdWxlLCRldmVudCwkZXZlbnRfaWQsJHBvbGljeSwkZXZlbnRfYWxsb3dzX292ZXJsYXApCnsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgogICAgJHN0ciA9ICcnOwogICAgaWYoICRwb2xpY3kgPT0gJ2luZGl2aWR1YWwnICYmICRldmVudF9hbGxvd3Nfb3ZlcmxhcCkgewogICAgICAgICRzdHIgLj0gJyBBTkQgZXZlbnRfYWxsb3dzX292ZXJsYXAgPSAwJzsKICAgIH0KICAgIGlmKCAkZXZlbnRfaWQgIT0gJycgJiYgJGV2ZW50X2lkICE9IC0xKSB7CiAgICAgICAgJHN0ciAuPSAiIEFORCBldmVudF9pZCAhPSAkZXZlbnRfaWQiOwogICAgfQoKICAgICRkYnIgPSAnJzsKICAgIGlmKCAkZXZlbnRbJ2V2ZW50X2RhdGVfZW5kJ10gPT0gTlVMTCApIHsKICAgICAgICAkc3RhcnQgPSAnJzsKICAgICAgICBpZiggaXNzZXQoJGV2ZW50WydldmVudF9kYXRlX3N0YXJ0J10pICkgewogICAgICAgICAgICAkc3RhcnQgPSAkZXZlbnRbJ2V2ZW50X2RhdGVfc3RhcnQnXTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggaXNzZXQoJGV2ZW50WydzdGFydCddKSApIHsKICAgICAgICAgICAgLy8gYXNzdW1lIHVuaXggdGltZXN0YW1wCiAgICAgICAgICAgICRzdGFydCA9ICRkYi0+RGJUaW1lU3RhbXAoJGV2ZW50WydzdGFydCddKTsKICAgICAgICB9CgogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgZXZlbnRfaWQgRlJPTSAnLiRtb2R1bGUtPmV2ZW50c190YWJsZV9uYW1lLiIgV0hFUkUgKCRzdGFydCBCRVRXRUVOIGV2ZW50X2RhdGVfc3RhcnQgYW5kIGV2ZW50X2RhdGVfZW5kKSI7CiAgICAgICAgJGRiciA9ICRkYi0+R2V0T25lKCRxdWVyeS4kc3RyKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRzdGFydCA9ICcnOwogICAgICAgIGlmKCBpc3NldCgkZXZlbnRbJ2V2ZW50X2RhdGVfc3RhcnQnXSkgKSB7CiAgICAgICAgICAgICRzdGFydCA9ICRldmVudFsnZXZlbnRfZGF0ZV9zdGFydCddOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKCBpc3NldCgkZXZlbnRbJ3N0YXJ0J10pICkgewogICAgICAgICAgICAvLyBhc3N1bWUgdW5peCB0aW1lc3RhbXAKICAgICAgICAgICAgJHN0YXJ0ID0gJGRiLT5EYlRpbWVTdGFtcCgkZXZlbnRbJ3N0YXJ0J10pOwogICAgICAgIH0KCiAgICAgICAgJGVuZCA9ICcnOwogICAgICAgIGlmKCBpc3NldCgkZXZlbnRbJ2V2ZW50X2RhdGVfZW5kJ10pICkgewogICAgICAgICAgICAkZW5kID0gJGV2ZW50WydldmVudF9kYXRlX2VuZCddOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKCBpc3NldCgkZXZlbnRbJ2VuZCddKSApIHsKICAgICAgICAgICAgLy8gYXNzdW1lIHVuaXggdGltZXN0YW1wCiAgICAgICAgICAgICRlbmQgPSAkZGItPkRiVGltZVN0YW1wKCRldmVudFsnZW5kJ10pOwogICAgICAgIH0KCiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBldmVudF9pZCBGUk9NICcuJG1vZHVsZS0+ZXZlbnRzX3RhYmxlX25hbWUuIgogICAgICAgICAgICAgIFdIRVJFICgoJHN0YXJ0IEJFVFdFRU4gZXZlbnRfZGF0ZV9zdGFydCBhbmQgZXZlbnRfZGF0ZV9lbmQpICBPUiAoJGVuZCBCRVRXRUVOIGV2ZW50X2RhdGVfc3RhcnQgYW5kIGV2ZW50X2RhdGVfZW5kKSkiOwogICAgICAgICRkYnIgPSAkZGItPkdldE9uZSgkcXVlcnkuJHN0cik7CiAgICB9CiAgICBpZiggJGRiciApIHJldHVybiB0cnVlOwogICAgcmV0dXJuIGZhbHNlOwp9CgpmdW5jdGlvbiBjYWxjdWxhdGVfcmVjdXJyaW5nX2V2ZW50cygkZXZlbnRfc3RhcnRfdXQsICRldmVudF9lbmRfdXQsJGV2ZW50X3JlY3VyX3BlcmlvZCwkZXZlbnRfcmVjdXJfZW5kX3V0LCRldmVudF9yZWN1cl9pbnRlcnZhbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50X3JlY3VyX2NvdW50LCRldmVudF9yZWN1cl93ZWVrZGF5cywkZXZlbnRfcmVjdXJfbW9udGhkYXlzKQp7CiAgICAkcmVzdWx0cyA9IGFycmF5KCk7CiAgICAkd2Vla2RheXMgPSBhcnJheSgnc3VuZGF5JywnbW9uZGF5JywndHVlc2RheScsJ3dlZG5lc2RheScsJ3RodXJzZGF5JywnZnJpZGF5Jywnc2F0dXJkYXknKTsKICAgICRkYXRlID0gJGV2ZW50X3N0YXJ0X3V0OwogICAgJGRlbHRhdCA9ICRldmVudF9lbmRfdXQgLSAkZXZlbnRfc3RhcnRfdXQ7CiAgICBpZiggKGludCkkZXZlbnRfZW5kX3V0ID09IDAgKSAkZGVsdGF0ID0gMDsKCiAgICAkcGVyaW9kID0gJ2RheSc7CiAgICAkZGF0ZWZtdHN0ciA9ICIrJWQgJXMiOwogICAgJGhvdXIgPSAoaW50KXN0cmZ0aW1lKCclSCcsJGRhdGUpOwogICAgJG1pbnV0ZSA9IChpbnQpc3RyZnRpbWUoJyVNJywkZGF0ZSk7CiAgICBpZiggJGV2ZW50X3JlY3VyX2NvdW50IDwgMCApICRldmVudF9yZWN1cl9jb3VudCA9IDEwMDAwMDA7CgogICAgc3dpdGNoKCAkZXZlbnRfcmVjdXJfcGVyaW9kICkgewogICAgY2FzZSAnZGFpbHknOgogICAgICAgICRwZXJpb2QgPSAnZGF5cyc7CiAgICAgICAgYnJlYWs7CiAgICBjYXNlICd3ZWVrbHknOgogICAgICAgICRkYXRlZm10c3RyID0gIislZCAlcyAlcyAlZDolZCI7CiAgICAgICAgJHBlcmlvZCA9ICd3ZWVrcyc7CiAgICAgICAgJHRtcCA9ICcnOwogICAgICAgIC8vIHRoaXMgbG9vcCBoYW5kbGVzIGV2ZW50IGluIHRoZSBzYW1lIHdlZWsgYXMgdGhlIHN0YXJ0IGV2ZW50CiAgICAgICAgZm9yZWFjaCggJGV2ZW50X3JlY3VyX3dlZWtkYXlzIGFzICR3ZCApIHsKICAgICAgICAgICAgaWYoIGNvdW50KCRyZXN1bHRzKSA+PSAkZXZlbnRfcmVjdXJfY291bnQgKSBicmVhazsKICAgICAgICAgICAgJHN0ciA9IHNwcmludGYoJGRhdGVmbXRzdHIsMCwkcGVyaW9kLCR3ZWVrZGF5c1skd2RdLCRob3VyLCRtaW51dGUpOwogICAgICAgICAgICAkdG1wID0gc3RydG90aW1lKCRzdHIsJGRhdGUpOwogICAgICAgICAgICBpZiggJHRtcCA8PSAkZXZlbnRfc3RhcnRfdXQgKSBjb250aW51ZTsKCiAgICAgICAgICAgICR0bXBhID0gYXJyYXkoKTsKICAgICAgICAgICAgJHRtcGFbJ3N0YXJ0J10gPSAkdG1wOwogICAgICAgICAgICBpZiggJGRlbHRhdCA9PSAwICkgewogICAgICAgICAgICAgICAgJHRtcGFbJ2VuZCddID0gTlVMTDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICR0bXBhWydlbmQnXSA9ICR0bXAgKyAkZGVsdGF0OwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBoZXJlIHdlIGNoZWNrIGZvciBhbiBvdmVybGFwCiAgICAgICAgICAgIC8vIHdpdGggdGhlIHN0YXJ0IGFuZCBlbmQgZGF0ZXMKICAgICAgICAgICAgLy8gYW5kIGlnbm9yZSBhbnl0aGluZyB0aGF0IG1pZ2h0IG92ZXJsYXAKICAgICAgICAgICAgJHRtcDIgPSBhcnJheSgkdG1wYSk7CiAgICAgICAgICAgICR0ZXN0ID0gY2hlY2tfb3ZlcmxhcHBpbmdfZXZlbnRzKCRldmVudF9zdGFydF91dCwkZXZlbnRfZW5kX3V0LCR0bXAyKTsKICAgICAgICAgICAgaWYoICR0ZXN0ID09IGZhbHNlICkgJHJlc3VsdHNbXSA9ICR0bXBhOwogICAgICAgIH0KICAgICAgICBicmVhazsKCiAgICBjYXNlICdtb250aGx5JzoKICAgICAgICAkcGVyaW9kID0gJ21vbnRocyc7CiAgICAgICAgaWYoICRldmVudF9yZWN1cl9tb250aGRheXNbMF0gPT0gJ3NwZWNpZmllZCcgKSB7CiAgICAgICAgICAgICRldmVudF9yZWN1cl9wZXJpb2QgPSAnbW9udGhseV9zcGVjaWZpZWQnOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJGRhdGVmbXRzdHIgPSAiJXMgJXMgJWQgJWQ6JWQiOwogICAgICAgICAgICAvLyB0aGlzIGxvb3AgaGFuZGxlcyBldmVudHMgaW4gdGhlIHNhbWUgbW9udGggYXMgdGhlIHN0YXJ0IGV2ZW50CiAgICAgICAgICAgICRtb250aCA9IGRhdGUoJ00nLCRkYXRlKTsKICAgICAgICAgICAgJHllYXIgPSBkYXRlKCdZJywkZGF0ZSk7CiAgICAgICAgICAgIGZvcmVhY2goICRldmVudF9yZWN1cl9tb250aGRheXMgYXMgJG1kICkgewogICAgICAgICAgICAgICAgaWYoIGNvdW50KCRyZXN1bHRzKSA+PSAkZXZlbnRfcmVjdXJfY291bnQgKSBicmVhazsKICAgICAgICAgICAgICAgIGxpc3QoJG50aCwkd2QpID0gZXhwbG9kZSgnLCcsJG1kLDIpOwogICAgICAgICAgICAgICAgJHRtcCA9IG50aF93ZWVrZGF5KCRudGgsJHdkLCRkYXRlKTsKICAgICAgICAgICAgICAgIC8vJHN0ciA9IHNwcmludGYoJGRhdGVmbXRzdHIsJG1kLCRtb250aCwkeWVhciwkaG91ciwkbWludXRlKTsKICAgICAgICAgICAgICAgIC8vJHRtcCA9IHN0cnRvdGltZSgkc3RyLCRkYXRlKTsKICAgICAgICAgICAgICAgIGlmKCAkdG1wIDw9ICRldmVudF9zdGFydF91dCApIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgJHJlc3VsdHNbXSA9ICR0bXA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHRtcDIgPSBzdHJ0b3RpbWUoc3ByaW50ZignKyVkIG1vbnRocycsJGV2ZW50X3JlY3VyX2ludGVydmFsKSwkZGF0ZSk7CiAgICAgICAgICAgIGlmIChkYXRlKCdkJywkdG1wMik+MjgpICR0bXAyID0gc3RydG90aW1lKCctNCBkYXlzJywkdG1wMik7CiAgICAgICAgICAgICRkYXRlID0gJHRtcDI7CiAgICAgICAgfQogICAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ3llYXJseSc6CiAgICAgICAgJHBlcmlvZCA9ICd5ZWFycyc7CiAgICAgICAgYnJlYWs7CiAgICB9CgogICAgLy8gaGFuZGxlIHRoZSByZWN1cnJpbmcgbmF0dXJlIG9mIHRoaW5ncy4KICAgIHdoaWxlKCBjb3VudCgkcmVzdWx0cykgPCAkZXZlbnRfcmVjdXJfY291bnQgJiYgJGRhdGUgPD0gJGV2ZW50X3JlY3VyX2VuZF91dCApIHsKICAgICAgICBzd2l0Y2goICRldmVudF9yZWN1cl9wZXJpb2QgKSB7CiAgICAgICAgY2FzZSAnd2Vla2x5JzoKICAgICAgICB7CiAgICAgICAgICAgIC8vIGhhbmRsZSBlYWNoIHdlZWtkYXkKICAgICAgICAgICAgJHRtcCA9ICcnOwogICAgICAgICAgICBmb3JlYWNoKCAkZXZlbnRfcmVjdXJfd2Vla2RheXMgYXMgJHdkICkgewogICAgICAgICAgICAgICAgaWYoIGNvdW50KCRyZXN1bHRzKSA+PSAkZXZlbnRfcmVjdXJfY291bnQgKSBicmVhazsKICAgICAgICAgICAgICAgICRzdHIgPSBzcHJpbnRmKCRkYXRlZm10c3RyLCRldmVudF9yZWN1cl9pbnRlcnZhbCwkcGVyaW9kLCR3ZWVrZGF5c1skd2RdLCRob3VyLCRtaW51dGUpOwogICAgICAgICAgICAgICAgJHRtcCA9IHN0cnRvdGltZSgkc3RyLCRkYXRlKTsKICAgICAgICAgICAgICAgIGlmKCAkdG1wID4gJGV2ZW50X3JlY3VyX2VuZF91dCApIGJyZWFrOwogICAgICAgICAgICAgICAgJHRtcGEgPSBhcnJheSgpOwogICAgICAgICAgICAgICAgJHRtcGFbJ3N0YXJ0J10gPSAkdG1wOwogICAgICAgICAgICAgICAgaWYoICRkZWx0YXQgPT0gMCApIHsKICAgICAgICAgICAgICAgICAgICAkdG1wYVsnZW5kJ10gPSBOVUxMOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJHRtcGFbJ2VuZCddID0gJHRtcCArICRkZWx0YXQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkcmVzdWx0c1tdID0gJHRtcGE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGRhdGUgPSAkdG1wOwogICAgICAgIH0KICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnbW9udGhseSc6CiAgICAgICAgewogICAgICAgICAgICAkdG1wID0gJyc7CiAgICAgICAgICAgICRtb250aCA9IGRhdGUoJ00nLCRkYXRlKTsKICAgICAgICAgICAgJHllYXIgPSBkYXRlKCdZJywkZGF0ZSk7CiAgICAgICAgICAgIGZvcmVhY2goICRldmVudF9yZWN1cl9tb250aGRheXMgYXMgJG1kICkgewogICAgICAgICAgICAgICAgaWYoIGNvdW50KCRyZXN1bHRzKSA+PSAkZXZlbnRfcmVjdXJfY291bnQgKSBicmVhazsKICAgICAgICAgICAgICAgIGxpc3QoJG50aCwkd2QpID0gZXhwbG9kZSgnLCcsJG1kLDIpOwogICAgICAgICAgICAgICAgJHRtcCA9IG50aF93ZWVrZGF5KCRudGgsJHdkLCRkYXRlKTsKICAgICAgICAgICAgICAgIC8vJHN0ciA9IHNwcmludGYoJGRhdGVmbXRzdHIsJG1kLCRtb250aCwkeWVhciwkaG91ciwkbWludXRlKTsKICAgICAgICAgICAgICAgIC8vJHRtcCA9IHN0cnRvdGltZSgkc3RyLCRkYXRlKTsKICAgICAgICAgICAgICAgIGlmKCAkdG1wIDw9ICRldmVudF9zdGFydF91dCApIGNvbnRpbnVlOwoKICAgICAgICAgICAgICAgICR0bXBhID0gYXJyYXkoKTsKICAgICAgICAgICAgICAgICR0bXBhWydzdGFydCddID0gJHRtcDsKICAgICAgICAgICAgICAgIGlmKCAkZGVsdGF0ID09IDAgKSB7CiAgICAgICAgICAgICAgICAgICAgJHRtcGFbJ2VuZCddID0gTlVMTDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICR0bXBhWydlbmQnXSA9ICR0bXAgKyAkZGVsdGF0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHJlc3VsdHNbXSA9ICR0bXBhOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkdG1wMiA9IHN0cnRvdGltZShzcHJpbnRmKCcrJWQgbW9udGhzJywkZXZlbnRfcmVjdXJfaW50ZXJ2YWwpLCRkYXRlKTsKICAgICAgICAgICAgaWYgKGRhdGUoJ2QnLCR0bXAyKT4yOCkJJHRtcDIgPSBzdHJ0b3RpbWUoJy00IGRheXMnLCR0bXAyKTsKICAgICAgICAgICAgJGRhdGUgPSAkdG1wMjsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CgogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgewogICAgICAgICAgICAvLyBub3JtYWwgaW5jcmVtZW50aW5nCiAgICAgICAgICAgICR0bXAgPSBzdHJ0b3RpbWUoc3ByaW50ZigkZGF0ZWZtdHN0ciwkZXZlbnRfcmVjdXJfaW50ZXJ2YWwsJHBlcmlvZCksJGRhdGUpOwogICAgICAgICAgICAkdG1wYSA9IGFycmF5KCk7CiAgICAgICAgICAgICR0bXBhWydzdGFydCddID0gJHRtcDsKICAgICAgICAgICAgaWYoICRkZWx0YXQgPT0gMCApIHsKICAgICAgICAgICAgICAgICR0bXBhWydlbmQnXSA9IE5VTEw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkdG1wYVsnZW5kJ10gPSAkdG1wICsgJGRlbHRhdDsKICAgICAgICAgICAgfQogICAgICAgICAgICAkcmVzdWx0c1tdID0gJHRtcGE7CiAgICAgICAgICAgICRkYXRlID0gJHRtcDsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAkcmVzdWx0czsKfQoKJGV2ZW50c190b19jYXRlZ29yaWVzX3RhYmxlX25hbWUgPSAkdGhpcy0+ZXZlbnRzX3RvX2NhdGVnb3JpZXNfdGFibGVfbmFtZTsKaWYoIGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSApICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkLGFycmF5KCJtb2R1bGVfbWVzc2FnZSI9PiRtZXNzYWdlKSk7CgovLwovLyBHYXRoZXIgcGFyYW1ldGVycwovLwokZXZlbnRfaWQgPSBjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdldmVudF9pZCcsLTEpOwokcmVjdXJyaW5nX2V2ZW50cyA9ICcnOwokdXNlcl9pZCA9IGdldF91c2VyaWQoRkFMU0UpICogLTEgLSAxMDA7CiRjYXRlZ29yaWVzID0gZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCAnZXZlbnRfY2F0ZWdvcmllcycsLTEpOwokZXZlbnQgPSAkdGhpcy0+R2V0RXZlbnQoJGV2ZW50X2lkKTsKJHRoaXMtPkdldEV2ZW50RnJvbVBhcmFtcygkZXZlbnQsJHBhcmFtcyx0cnVlKTsKJGV2ZW50X3BhcmVudF9pZCA9ICRldmVudF9pZDsKCi8vIHBlcm1pc3Npb25zIGNoZWNrCmlmKCAkZXZlbnRfaWQgPCAxICkgewogICAgLy8gYWRkaW5nCiAgICBpZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDYWxlbmRhcicpICYmICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdBZGQgQ2FsZW5kYXIgRXZlbnRzJykgKSB7CiAgICAgICAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9wZXJtaXNzaW9uJykpOwogICAgICAgICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoKTsKICAgIH0KfQplbHNlIHsKICAgIC8vIGVkaXRpbmcKICAgIGlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IENhbGVuZGFyJykgJiYKICAgICAgICAhKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0VkaXQgTXkgQ2FsZW5kYXIgRXZlbnRzJykgJiYgJGV2ZW50WydldmVudF9jcmVhdGVkX2J5J10gPT0gJHVzZXJfaWQpICkgewogICAgICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfcGVybWlzc2lvbicpKTsKICAgICAgICAkdGhpcy0+UmVkaXJlY3RUb0FkbWluVGFiKCk7CiAgICB9Cn0KCi8vIENhcnJ5IHRocm91Z2ggYW55IG9sZCB2YWx1ZXMKLy8ganVzdCBpbmNhc2UgYSBuZXcgZmlsZSB3YXMgbm90IHVwbG9hZGVkCmZvcmVhY2goICRwYXJhbXMgYXMgJGsgPT4gJHYgKSB7CiAgICBpZiggcHJlZ19tYXRjaCgnL151cGxvYWRfZmllbGRfb2xkdmFsdWVfLycsICRrKSApIHsKICAgICAgICAkdGhlZmllbGQgPSBzdWJzdHIoJGssc3RybGVuKCd1cGxvYWRfZmllbGRfb2xkdmFsdWVfJykpOwogICAgICAgICRwYXJhbXNbJ2ZpZWxkXycuJHRoZWZpZWxkXSA9ICR2OwogICAgfQp9Ci8vIGhhbmRsZSBkZWxldGlvbgpmb3JlYWNoKCAkcGFyYW1zIGFzICRrID0+ICR2ICkKewogICAgaWYoIHByZWdfbWF0Y2goJy9ecmVtb3ZlX2ZpZWxkXy8nLCAkaykgJiYgJHYgPT0gMSApCiAgICB7CiAgICAgICAgJHRoZWZpZWxkID0gc3Vic3RyKCRrLHN0cmxlbigncmVtb3ZlX2ZpZWxkXycpKTsKICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1sndXBsb2FkX2ZpZWxkX29sZHZhbHVlXycuJHRoZWZpZWxkXSkgKQogICAgICAgIHsKICAgICAgICAgICAgJHYgPSAkcGFyYW1zWyd1cGxvYWRfZmllbGRfb2xkdmFsdWVfJy4kdGhlZmllbGRdOwogICAgICAgICAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAgICAgICAgICRkZXN0RGlyID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VwbG9hZGRpcmVjdG9yeScsJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10pOwogICAgICAgICAgICAkZG4gPSBjbXNfam9pbl9wYXRoKCRkZXN0RGlyLCR2KTsKCiAgICAgICAgICAgIEB1bmxpbmsoJGRuKTsKICAgICAgICAgICAgdW5zZXQoJHBhcmFtc1snZmllbGRfJy4kdGhlZmllbGRdKTsKICAgICAgICB9CiAgICB9Owp9CgovLwovLyBFcnJvciBIYW5kbGluZwovLwppZiggJGV2ZW50WydldmVudF9kYXRlX2VuZF91dCddICE9IE5VTEwgJiYKICAgICRldmVudFsnZXZlbnRfZGF0ZV9lbmRfdXQnXSA8ICRldmVudFsnZXZlbnRfZGF0ZV9zdGFydF91dCddICkgewogICAgJHBhcmFtc1snbW9kdWxlX2Vycm9yJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZF9kYXRlcycpOwogICAgJHBhcmFtc1snZXZlbnRfcmVjdXJfd2Vla2RheXMnXSA9IGltcGxvZGUoJywnLCRwYXJhbXNbJ2V2ZW50X3JlY3VyX3dlZWtkYXlzJ10pOwogICAgJHBhcmFtc1snZXZlbnRfcmVjdXJfbW9udGhkYXlzJ10gPSBpbXBsb2RlKCcsJywkcGFyYW1zWydldmVudF9yZWN1cl9tb250aGRheXMnXSk7CiAgICBpZiggaXNzZXQoJHBhcmFtc1snZXZlbnRfY2F0ZWdvcmllcyddKSAmJiAkcGFyYW1zWydldmVudF9jYXRlZ29yaWVzXSddICkgJHBhcmFtc1snZXZlbnRfY2F0ZWdvcmllcyddID0gc2VyaWFsaXplKCRwYXJhbXNbJ2V2ZW50X2NhdGVnb3JpZXMnXSk7CiAgICAkcGFyYW1zWydkb19nZXRfZnJvbV9wYXJhbXMnXSA9IDE7CiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCdhZG1pbl9hZGRfZXZlbnQnLCRyZXR1cm5pZCwkcGFyYW1zKTsKfQppZigkZXZlbnRbJ2V2ZW50X3JlY3VyX3BlcmlvZCddICE9ICdub25lJyAmJgogICAkZXZlbnRbJ2V2ZW50X2RhdGVfcmVjdXJfZW5kX3V0J10gIT0gTlVMTCAmJgogICAoJGV2ZW50WydldmVudF9kYXRlX3JlY3VyX2VuZF91dCddIDwgJGV2ZW50WydldmVudF9kYXRlX3N0YXJ0X3V0J10gfHwKICAgICgkZXZlbnRbJ2V2ZW50X2RhdGVfZW5kX3V0J10gIT0gTlVMTCAmJgogICAgICRldmVudFsnZXZlbnRfZGF0ZV9yZWN1cl9lbmRfdXQnXSA8ICRldmVudFsnZXZlbnRfZGF0ZV9lbmRfdXQnXSkpICkgewogICAgJHBhcmFtc1snbW9kdWxlX2Vycm9yJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZF9kYXRlcycpOwogICAgJHBhcmFtc1snZXZlbnRfcmVjdXJfd2Vla2RheXMnXSA9IGltcGxvZGUoJywnLCRldmVudFsnZXZlbnRfcmVjdXJfd2Vla2RheXMnXSk7CiAgICAkcGFyYW1zWydldmVudF9yZWN1cl9tb250aGRheXMnXSA9IGltcGxvZGUoJywnLCRldmVudFsnZXZlbnRfcmVjdXJfbW9udGhkYXlzJ10pOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2V2ZW50X2NhdGVnb3JpZXMnXSkgJiYgJHBhcmFtc1snZXZlbnRfY2F0ZWdvcmllcyddICkgJHBhcmFtc1snZXZlbnRfY2F0ZWdvcmllcyddID0gc2VyaWFsaXplKCRwYXJhbXNbJ2V2ZW50X2NhdGVnb3JpZXMnXSk7CiAgICAkcGFyYW1zWydkb19nZXRfZnJvbV9wYXJhbXMnXSA9IDE7CiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCdhZG1pbl9hZGRfZXZlbnQnLCRyZXR1cm5pZCwkcGFyYW1zKTsKfQppZigkZXZlbnRbJ2V2ZW50X3JlY3VyX3BlcmlvZCddID09ICdtb250aGx5JyAmJgogICBjb3VudCgkZXZlbnRbJ2V2ZW50X3JlY3VyX21vbnRoZGF5cyddKSA+IDEgJiYKICAgJGV2ZW50WydldmVudF9yZWN1cl9tb250aGRheXMnXVswXSA9PSAnc3BlY2lmaWVkJykgewogICAgJHBhcmFtc1snbW9kdWxlX2Vycm9yJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZF9yZWN1cl9tb250aGx5X2ZyZXEnKTsKICAgICRwYXJhbXNbJ2V2ZW50X3JlY3VyX3dlZWtkYXlzJ10gPSBpbXBsb2RlKCcsJywkZXZlbnRbJ2V2ZW50X3JlY3VyX3dlZWtkYXlzJ10pOwogICAgJHBhcmFtc1snZXZlbnRfcmVjdXJfbW9udGhkYXlzJ10gPSBpbXBsb2RlKCcsJywkZXZlbnRbJ2V2ZW50X3JlY3VyX21vbnRoZGF5cyddKTsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydldmVudF9jYXRlZ29yaWVzJ10pICYmICRwYXJhbXNbJ2V2ZW50X2NhdGVnb3JpZXMnXSApICRwYXJhbXNbJ2V2ZW50X2NhdGVnb3JpZXMnXSA9IHNlcmlhbGl6ZSgkcGFyYW1zWydldmVudF9jYXRlZ29yaWVzJ10pOwogICAgJHBhcmFtc1snZG9fZ2V0X2Zyb21fcGFyYW1zJ10gPSAxOwogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwnYWRtaW5fYWRkX2V2ZW50JywkcmV0dXJuaWQsJHBhcmFtcyk7Cn0KaWYoIGVtcHR5KCRldmVudFsnZXZlbnRfdGl0bGUnXSkgKSB7CiAgICAkcGFyYW1zWydtb2R1bGVfZXJyb3InXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9ub2V2ZW50bmFtZScpOwogICAgJHBhcmFtc1snZXZlbnRfcmVjdXJfd2Vla2RheXMnXSA9IGltcGxvZGUoJywnLCRldmVudFsnZXZlbnRfcmVjdXJfd2Vla2RheXMnXSk7CiAgICAkcGFyYW1zWydldmVudF9yZWN1cl9tb250aGRheXMnXSA9IGltcGxvZGUoJywnLCRldmVudFsnZXZlbnRfcmVjdXJfbW9udGhkYXlzJ10pOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2V2ZW50X2NhdGVnb3JpZXMnXSkgJiYgJHBhcmFtc1snZXZlbnRfY2F0ZWdvcmllcyddICkgJHBhcmFtc1snZXZlbnRfY2F0ZWdvcmllcyddID0gc2VyaWFsaXplKCRwYXJhbXNbJ2V2ZW50X2NhdGVnb3JpZXMnXSk7CiAgICAkcGFyYW1zWydkb19nZXRfZnJvbV9wYXJhbXMnXSA9IDE7CiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCdhZG1pbl9hZGRfZXZlbnQnLCRyZXR1cm5pZCwkcGFyYW1zKTsKfQppZiggKCRjYXRlZ29yaWVzID09IC0xKSAmJiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZm9yY2VfY2F0ZWdvcnknKSA9PSAxKSB7CiAgICAkcGFyYW1zWydtb2R1bGVfZXJyb3InXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9ub2NhdGVnb3J5Jyk7CiAgICAkcGFyYW1zWydldmVudF9yZWN1cl93ZWVrZGF5cyddID0gaW1wbG9kZSgnLCcsJGV2ZW50WydldmVudF9yZWN1cl93ZWVrZGF5cyddKTsKICAgICRwYXJhbXNbJ2V2ZW50X3JlY3VyX21vbnRoZGF5cyddID0gaW1wbG9kZSgnLCcsJGV2ZW50WydldmVudF9yZWN1cl9tb250aGRheXMnXSk7CiAgICBpZiggaXNzZXQoJHBhcmFtc1snZXZlbnRfY2F0ZWdvcmllcyddKSAmJiAkcGFyYW1zWydldmVudF9jYXRlZ29yaWVzJ10gKSAkcGFyYW1zWydldmVudF9jYXRlZ29yaWVzJ10gPSBzZXJpYWxpemUoJHBhcmFtc1snZXZlbnRfY2F0ZWdvcmllcyddKTsKICAgICRwYXJhbXNbJ2RvX2dldF9mcm9tX3BhcmFtcyddID0gMTsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2FkbWluX2FkZF9ldmVudCcsJHJldHVybmlkLCRwYXJhbXMpOwp9CmlmKCAkZXZlbnRbJ2V2ZW50X3JlY3VyX3BlcmlvZCddICE9ICdub25lJyApIHsKICAgIC8vIGNhbGN1bGF0ZSByZWN1cnJpbmcgZXZlbnRzCiAgICAkcmVjdXJyaW5nX2V2ZW50cyA9IGNhbGN1bGF0ZV9yZWN1cnJpbmdfZXZlbnRzKCRldmVudFsnZXZlbnRfZGF0ZV9zdGFydF91dCddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnRbJ2V2ZW50X2RhdGVfZW5kX3V0J10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudFsnZXZlbnRfcmVjdXJfcGVyaW9kJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudFsnZXZlbnRfZGF0ZV9yZWN1cl9lbmRfdXQnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50WydldmVudF9yZWN1cl9pbnRlcnZhbCddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnRbJ2V2ZW50X3JlY3VyX2NvdW50J10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudFsnZXZlbnRfcmVjdXJfd2Vla2RheXMnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50WydldmVudF9yZWN1cl9tb250aGRheXMnXSk7CgoKCiAgICAvLyBjaGVjayByZWN1cnJpbmcgZXZlbnRzIGZvciBvdmVybGFwCiAgICAkb3ZlcmxhcCA9IGNoZWNrX292ZXJsYXBwaW5nX2V2ZW50cygkZXZlbnRbJ2V2ZW50X2RhdGVfc3RhcnRfdXQnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudFsnZXZlbnRfZGF0ZV9lbmRfdXQnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZWN1cnJpbmdfZXZlbnRzKTsKICAgIGlmKCAkb3ZlcmxhcCA9PT0gdHJ1ZSApIHsKICAgICAgICAkcGFyYW1zWydtb2R1bGVfZXJyb3InXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9ldmVudG92ZXJsYXAnKTsKICAgICAgICAkcGFyYW1zWydldmVudF9yZWN1cl93ZWVrZGF5cyddID0gaW1wbG9kZSgnLCcsJHBhcmFtc1snZXZlbnRfcmVjdXJfd2Vla2RheXMnXSk7CiAgICAgICAgJHBhcmFtc1snZXZlbnRfcmVjdXJfbW9udGhkYXlzJ10gPSBpbXBsb2RlKCcsJywkcGFyYW1zWydldmVudF9yZWN1cl9tb250aGRheXMnXSk7CiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2V2ZW50X2NhdGVnb3JpZXMnXSkgJiYgJHBhcmFtc1snZXZlbnRfY2F0ZWdvcmllcyddICkgJHBhcmFtc1snZXZlbnRfY2F0ZWdvcmllcyddID0gc2VyaWFsaXplKCRwYXJhbXNbJ2V2ZW50X2NhdGVnb3JpZXMnXSk7CiAgICAgICAgJHBhcmFtc1snZG9fZ2V0X2Zyb21fcGFyYW1zJ10gPSAxOwogICAgICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2FkbWluX2FkZF9ldmVudCcsJHJldHVybmlkLCRwYXJhbXMpOwogICAgfQoKfQoKCi8vCi8vIGNoZWNrIGZvciBjb25mbGljdGluZyBldmVudHMuCi8vCiRwb2xpY3kgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnb3ZlcmxhcF9wb2xpY3knLCdhbGwnKTsKaWYoICRwb2xpY3kgIT0gJ2FsbCcgKSB7CiAgICAkY29uZmxpY3QgPSBjaGVja19kYl9mb3JfY29uZmxpY3RzKCR0aGlzLCRldmVudCwkZXZlbnRbJ2V2ZW50X2lkJ10sJHBvbGljeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50WydldmVudF9hbGxvd3Nfb3ZlcmxhcCddKTsKICAgIGlmKCAkY29uZmxpY3QgKSAgewogICAgICAgIC8vIHRoaXMgaXMgdGhlIHBhcmVudCBldmVudC4uLiB3ZSBhbHdheXMgZGlzcGxheSBhbiBlcnJvciBtZXNzYWdlIGlmCiAgICAgICAgLy8gdGhpcyBwYXJlbnQgZXZlbnQgY29uZmxpY3RzIHdpdGggYW5vdGhlciBldmVudC4KICAgICAgICAkcGFyYW1zWydtb2R1bGVfZXJyb3InXSA9ICAkdGhpcy0+TGFuZygnZXJyb3JfZXZlbnRfY29uZmxpY3QnKTsKICAgICAgICAkcGFyYW1zWydldmVudF9yZWN1cl93ZWVrZGF5cyddID0gaW1wbG9kZSgnLCcsJHBhcmFtc1snZXZlbnRfcmVjdXJfd2Vla2RheXMnXSk7CiAgICAgICAgJHBhcmFtc1snZXZlbnRfcmVjdXJfbW9udGhkYXlzJ10gPSBpbXBsb2RlKCcsJywkcGFyYW1zWydldmVudF9yZWN1cl9tb250aGRheXMnXSk7CiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2V2ZW50X2NhdGVnb3JpZXMnXSkgJiYgJHBhcmFtc1snZXZlbnRfY2F0ZWdvcmllcyddICkgJHBhcmFtc1snZXZlbnRfY2F0ZWdvcmllcyddID0gc2VyaWFsaXplKCRwYXJhbXNbJ2V2ZW50X2NhdGVnb3JpZXMnXSk7CiAgICAgICAgJHBhcmFtc1snZG9fZ2V0X2Zyb21fcGFyYW1zJ10gPSAxOwogICAgICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2FkbWluX2FkZF9ldmVudCcsJHJldHVybmlkLCRwYXJhbXMpOwogICAgfQoKICAgIC8vIG5vdyBjaGVjayBhbnkgY2hpbGQgZXZlbnRzCiAgICBpZiggJGV2ZW50WydldmVudF9yZWN1cl9wZXJpb2QnXSAhPSAnbm9uZScgJiYgY291bnQoJHJlY3VycmluZ19ldmVudHMpID4gMCApIHsKICAgICAgICAkbmV3X3JlY3VycmluZyA9IGFycmF5KCk7CiAgICAgICAgZm9yZWFjaCggJHJlY3VycmluZ19ldmVudHMgYXMgJG9uZWV2ZW50ICkgewogICAgICAgICAgICAkY29uZmxpY3QgPSBjaGVja19kYl9mb3JfY29uZmxpY3RzKCR0aGlzLCRvbmVldmVudCwkZXZlbnRbJ2V2ZW50X2lkJ10sJHBvbGljeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnRbJ2V2ZW50X2FsbG93c19vdmVybGFwJ10pOwogICAgICAgICAgICBpZiggJGNvbmZsaWN0ICkgewogICAgICAgICAgICAgICAgaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdvdmVybGFwX2FjdGlvbicsJ2Vycm9yJykgPT0gJ2Vycm9yJyApIHsKICAgICAgICAgICAgICAgICAgICAkcGFyYW1zWydtb2R1bGVfZXJyb3InXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9ldmVudF9jb25mbGljdCcpOwogICAgICAgICAgICAgICAgICAgICRwYXJhbXNbJ2V2ZW50X3JlY3VyX3dlZWtkYXlzJ10gPSBpbXBsb2RlKCcsJywkcGFyYW1zWydldmVudF9yZWN1cl93ZWVrZGF5cyddKTsKICAgICAgICAgICAgICAgICAgICAkcGFyYW1zWydldmVudF9yZWN1cl9tb250aGRheXMnXSA9IGltcGxvZGUoJywnLCRwYXJhbXNbJ2V2ZW50X3JlY3VyX21vbnRoZGF5cyddKTsKICAgICAgICAgICAgICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1snZXZlbnRfY2F0ZWdvcmllcyddKSAmJiAkcGFyYW1zWydldmVudF9jYXRlZ29yaWVzJ10gKSAkcGFyYW1zWydldmVudF9jYXRlZ29yaWVzJ10gPSBzZXJpYWxpemUoJHBhcmFtc1snZXZlbnRfY2F0ZWdvcmllcyddKTsKICAgICAgICAgICAgICAgICAgICAkcGFyYW1zWydkb19nZXRfZnJvbV9wYXJhbXMnXSA9IDE7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwnYWRtaW5fYWRkX2V2ZW50JywkcmV0dXJuaWQsJHBhcmFtcyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvLyBzaWxlbnRseSByZW1vdmUgdGhpcyBldmVudC4KICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAkbmV3X3JlY3VycmluZ1tdID0gJG9uZWV2ZW50OwogICAgICAgIH0KICAgICAgICAkcmVjdXJyaW5nX2V2ZW50cyA9ICRuZXdfcmVjdXJyaW5nOwogICAgfQp9CgoKCi8vCi8vIEZpeCB1cCB0aGUgZXZlbnQgc28gaXQncyBzdWl0YWJsZSBmb3IgdGhlIGRhdGFiYXNlCi8vCgoKLy8KLy8gUHJvY2VzcyBhbnkgZmlsZSB1cGxvYWRzIHRoYXQgbWF5IGhhdmUgb2NjdXJyZWQKLy8KaWYoIGlzc2V0KCAkX0ZJTEVTICkgKSB7CiAgICAkZmxkbmFtZSA9ICcnOwogICAgJHRoZWZpZWxkID0gJyc7CiAgICBmb3JlYWNoKCAkcGFyYW1zIGFzICRrID0+ICR2ICkgewogICAgICAgIC8vIHNlZSBpZiB3ZSdyZSBleHBlY3RpbmcgYW4gdXBsb2FkCiAgICAgICAgaWYoIHByZWdfbWF0Y2goJy9edXBsb2FkX2ZpZWxkXy8nLCAkaykgKSB7CiAgICAgICAgICAgIC8vIHdlIGFyZSBpdCBhcHBlYXJzCiAgICAgICAgICAgICR0aGVmaWVsZCA9IHN1YnN0cigkayxzdHJsZW4oJ3VwbG9hZF9maWVsZF8nKSk7CiAgICAgICAgICAgICRmbGRuYW1lID0gJGlkLidmaWVsZF8nLiR0aGVmaWVsZDsKCiAgICAgICAgICAgIGlmKCAhaXNzZXQoJF9GSUxFU1skZmxkbmFtZV0pIHx8IGVtcHR5KCRfRklMRVNbJGZsZG5hbWVdWyd0bXBfbmFtZSddKSApIGNvbnRpbnVlOwoKICAgICAgICAgICAgJGVycm9yID0gJyc7CiAgICAgICAgICAgICRmaWxlbmFtZSA9ICR0aGlzLT5IYW5kbGVVcGxvYWQoJGZsZG5hbWUsJGVycm9yKTsKICAgICAgICAgICAgaWYoICRmaWxlbmFtZSA9PT0gZmFsc2UgKSB7CiAgICAgICAgICAgICAgICAvLyBhbiBlcnJvciBvY2N1cnJlZAogICAgICAgICAgICAgICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywkcmV0dXJuaWQsYXJyYXkoIm1vZHVsZV9lcnJvciI9PiRlcnJvcikpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkcGFyYW1zWydmaWVsZF8nLiR0aGVmaWVsZF0gPSAkZmlsZW5hbWU7CiAgICAgICAgfQogICAgfQp9CgovLwovLyBQcm9jZXNzIHRoZSBpbnNlcnQgb3IgdXBkYXRlCi8vCiRkb19pbnNlcnQgPSB0cnVlOwppZigkZXZlbnRbJ2V2ZW50X2lkJ10gPiAtMSkgewogICAgJGRvX2luc2VydCA9IGZhbHNlOwogICAgLy8gdXBkYXRlCiAgICAkc3FsID0gIlVQREFURSAiIC4gJHRoaXMtPmV2ZW50c190YWJsZV9uYW1lIC4gIgogICAgICAgICAgICAgICBTRVQgZXZlbnRfdGl0bGUgPSA/LCBldmVudF9zdW1tYXJ5ID0gPywgZXZlbnRfZGV0YWlscyA9ID8sIGV2ZW50X2RhdGVfc3RhcnQgPSA/LCBldmVudF9kYXRlX2VuZCA9ID8sIGV2ZW50X3BhcmVudF9pZCA9ID8sCiAgICAgICAgICAgICAgICAgICBldmVudF9yZWN1cl9wZXJpb2QgPSA/LCBldmVudF9kYXRlX3JlY3VyX2VuZCA9ID8sIGV2ZW50X3JlY3VyX25ldmVudHMgPSA/LAogICAgICAgICAgICAgICAgICAgZXZlbnRfcmVjdXJfaW50ZXJ2YWwgPSA/LGV2ZW50X3JlY3VyX3dlZWtkYXlzID0gPyxldmVudF9yZWN1cl9tb250aGRheXMgPSA/LGV2ZW50X21vZGlmaWVkX2RhdGUgPSBOT1coKSwKICAgICAgICAgICAgICAgICAgIGV2ZW50X2FsbG93c19vdmVybGFwID0gPywgZXZlbnRfYWxsX2RheSA9ID8KCSAgICAgV0hFUkUgZXZlbnRfaWQgPSA/IjsKICAgICRkYnIgPSAgJGRiLT5FeGVjdXRlKCRzcWwsCiAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgkZXZlbnRbJ2V2ZW50X3RpdGxlJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnRbJ2V2ZW50X3N1bW1hcnknXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudFsnZXZlbnRfZGV0YWlscyddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpbSgkZXZlbnRbJ2V2ZW50X2RhdGVfc3RhcnQnXSwiJyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX251bGxfZGF0ZSgkZXZlbnRbJ2V2ZW50X2RhdGVfZW5kJ10pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50WydldmVudF9wYXJlbnRfaWQnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudFsnZXZlbnRfcmVjdXJfcGVyaW9kJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfbnVsbF9kYXRlKCRldmVudFsnZXZlbnRfZGF0ZV9yZWN1cl9lbmQnXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnRbJ2V2ZW50X3JlY3VyX2NvdW50J10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnRbJ2V2ZW50X3JlY3VyX2ludGVydmFsJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBsb2RlKCcsJywkZXZlbnRbJ2V2ZW50X3JlY3VyX3dlZWtkYXlzJ10pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1wbG9kZSgnLCcsJGV2ZW50WydldmVudF9yZWN1cl9tb250aGRheXMnXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnRbJ2V2ZW50X2FsbG93c19vdmVybGFwJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnRbJ2V2ZW50X2FsbF9kYXknXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudFsnZXZlbnRfaWQnXSkpOwogICAgaWYoICEkZGJyICkgewogICAgICAgIGVjaG8gIkZBVEFMIEVSUk9SOjxici8+IjsKICAgICAgICBlY2hvICJRVUVSWSA9ICIuJGRiLT5zcWwuIjxici8+IjsKICAgICAgICBlY2hvICJFUlJPUiA9ICIuJGRiLT5FcnJvck1zZygpLiI8YnIvPjxici8+IjsKICAgICAgICBkaWUoKTsKICAgIH0KCiAgICBpZiggaXNzZXQoJHBhcmFtc1sndXBkYXRlX2NoaWxkcmVuJ10pICkgewogICAgICAgIC8vaGVyZSB3ZSBhbHNvIGRlbGV0ZSBhbnkgYW5kIGFsbCBjaGlsZHJlbiwgYW5kIGFsbCBzdWItdGFibGVzIHRoYXQgbWF5IGhhdmUgYmVlbiBmaWxsZWQgd2l0aCBjaGlsZCBkYXRhLgogICAgICAgICRyZXN1bHQ9JGRiLT5FeGVjdXRlKCJTRUxFQ1QgZXZlbnRfaWQgRlJPTSAiIC4gJHRoaXMtPmV2ZW50c190YWJsZV9uYW1lIC4gIiBXSEVSRSBldmVudF9wYXJlbnRfaWQgPSA/IixhcnJheSgkZXZlbnRbJ2V2ZW50X2lkJ10pKTsKICAgICAgICAkZGItPkV4ZWN1dGUoIkRFTEVURSBGUk9NICIgLiAkdGhpcy0+ZXZlbnRzX3RhYmxlX25hbWUgLiAiIFdIRVJFIGV2ZW50X3BhcmVudF9pZCA9ID8iLGFycmF5KCRldmVudFsnZXZlbnRfaWQnXSkpOwoKICAgICAgICB3aGlsZSAoJHJvdyA9ICRyZXN1bHQtPkZldGNoUm93KCkpIHsKICAgICAgICAgICAgLy9XZSBjbGVhciB0aGVzZSBhcyB0aGV5IHdpbGwgYmUgYWRkZWQgbGF0ZXIgb24KCiAgICAgICAgICAgIC8vZGVsZXRlIGZyb20gY2F0ZWdvcmllcwogICAgICAgICAgICAkZGItPkV4ZWN1dGUoIkRFTEVURSBGUk9NICIgLiAkdGhpcy0+ZXZlbnRzX3RvX2NhdGVnb3JpZXNfdGFibGVfbmFtZSAuICIgV0hFUkUgZXZlbnRfaWQgPSA/IExJTUlUIDEiLGFycmF5KCRyb3dbJ2V2ZW50X2lkJ10pKTsKICAgICAgICAgICAgLy9kZWxldGUgZnJvbSBjdXN0b20gZmllbGRzCiAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgiREVMRVRFIEZST00gIiAuICR0aGlzLT5ldmVudF9maWVsZF92YWx1ZXNfdGFibGVfbmFtZSAuICIgV0hFUkUgZXZlbnRfaWQgPSA/IExJTUlUIDEiLGFycmF5KCRyb3dbJ2V2ZW50X2lkJ10pKTsKICAgICAgICB9CiAgICB9Cgp9Ci8vb3RoZXJ3aXNlIHdlIGFyZSBqdXN0IGFkZGluZyBhIG5ldyBldmVudAplbHNlIHsKICAgICRldmVudFsnZXZlbnRfaWQnXSA9ICRkYi0+R2VuSUQoJHRoaXMtPmV2ZW50c190YWJsZV9uYW1lIC4gIl9zZXEiKTsKCiAgICAkc3FsID0gIklOU0VSVCBJTlRPICIgLiAkdGhpcy0+ZXZlbnRzX3RhYmxlX25hbWUgLiAiCiAgICAgICAgICAgKGV2ZW50X2lkLCBldmVudF90aXRsZSwgZXZlbnRfc3VtbWFyeSwgZXZlbnRfZGV0YWlscywKICAJICAgICAgICBldmVudF9kYXRlX3N0YXJ0LCBldmVudF9kYXRlX2VuZCwgZXZlbnRfcGFyZW50X2lkLAogICAJICAgICAgICBldmVudF9yZWN1cl9wZXJpb2QsIGV2ZW50X2RhdGVfcmVjdXJfZW5kLCBldmVudF9jcmVhdGVkX2J5LAogICAgICAgICAgICBldmVudF9yZWN1cl9uZXZlbnRzLCBldmVudF9yZWN1cl9pbnRlcnZhbCwgZXZlbnRfcmVjdXJfd2Vla2RheXMsCiAgICAgICAgICAgIGV2ZW50X3JlY3VyX21vbnRoZGF5cywgZXZlbnRfYWxsb3dzX292ZXJsYXAsZXZlbnRfYWxsX2RheSwKCSAgICAgICAgZXZlbnRfY3JlYXRlX2RhdGUsIGV2ZW50X21vZGlmaWVkX2RhdGUpCiAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyxOT1coKSxOT1coKSkiOwoKICAgICRkYnI9JGRiLT5FeGVjdXRlKCRzcWwsCiAgICAgICAgICAgICAgICAgICAgICBhcnJheSgkZXZlbnRbJ2V2ZW50X2lkJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnRbJ2V2ZW50X3RpdGxlJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnRbJ2V2ZW50X3N1bW1hcnknXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudFsnZXZlbnRfZGV0YWlscyddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpbSgkZXZlbnRbJ2V2ZW50X2RhdGVfc3RhcnQnXSwiJyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX251bGxfZGF0ZSgkZXZlbnRbJ2V2ZW50X2RhdGVfZW5kJ10pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50WydldmVudF9wYXJlbnRfaWQnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudFsnZXZlbnRfcmVjdXJfcGVyaW9kJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfbnVsbF9kYXRlKCRldmVudFsnZXZlbnRfZGF0ZV9yZWN1cl9lbmQnXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdXNlcl9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudFsnZXZlbnRfcmVjdXJfY291bnQnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudFsnZXZlbnRfcmVjdXJfaW50ZXJ2YWwnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcGxvZGUoJywnLCRldmVudFsnZXZlbnRfcmVjdXJfd2Vla2RheXMnXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBsb2RlKCcsJywkZXZlbnRbJ2V2ZW50X3JlY3VyX21vbnRoZGF5cyddKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudFsnZXZlbnRfYWxsb3dzX292ZXJsYXAnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudFsnZXZlbnRfYWxsX2RheSddKSk7CiAgICBpZiggISRkYnIgKSB7CiAgICAgICAgZWNobyAiRkFUQUwgRVJST1I6PGJyLz4iOwogICAgICAgIGVjaG8gIlFVRVJZID0gIi4kZGItPnNxbC4iPGJyLz4iOwogICAgICAgIGVjaG8gIkVSUk9SID0gIi4kZGItPkVycm9yTXNnKCkuIjxici8+PGJyLz4iOwogICAgICAgIGRpZSgpOwogICAgfQp9CgoKLy8gZGVsZXRlIGN1cnJlbnQgZXZlbnRzX3RvX2NhdGVnb3JpZXMgcmVjb3JkcyBmb3IgdGhpcyBldmVudAokc3FsID0gIkRFTEVURSBGUk9NICIgLiAkdGhpcy0+ZXZlbnRzX3RvX2NhdGVnb3JpZXNfdGFibGVfbmFtZSAuICIgV0hFUkUgZXZlbnRfaWQgPSA/IjsKJHJlc3VsdD0kZGItPkV4ZWN1dGUoJHNxbCxhcnJheSgkZXZlbnRbJ2V2ZW50X2lkJ10pKTsKCi8vIHVwZGF0ZSBldmVudHNfdG9fY2F0ZWdvcmllcwppZihpc19hcnJheSgkY2F0ZWdvcmllcykgJiYgKGNvdW50KCRjYXRlZ29yaWVzKSA+IDApKSB7CiAgICBmb3JlYWNoKCRjYXRlZ29yaWVzIGFzICRjYXRlZ29yeV9pZCkgewogICAgICAgICRjYXRlZ29yeV9pZCA9IGludHZhbCgkY2F0ZWdvcnlfaWQpOwogICAgICAgIGlmKCRjYXRlZ29yeV9pZCA+IDApIHsKICAgICAgICAgICAgJHNxbCA9ICJJTlNFUlQgSU5UTyAiIC4gJHRoaXMtPmV2ZW50c190b19jYXRlZ29yaWVzX3RhYmxlX25hbWUgLiAiIChjYXRlZ29yeV9pZCwgZXZlbnRfaWQpIFZBTFVFUyAoPyw/KSI7CiAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgkc3FsLGFycmF5KCRjYXRlZ29yeV9pZCwkZXZlbnRbJ2V2ZW50X2lkJ10pKTsKICAgICAgICAgICAgLy9lY2hvICRzcWw7CiAgICAgICAgfQogICAgfQp9CgokZmllbGR0ZXh0ID0gJyc7Ci8vIENsZWFyIG91dCBhbGwgdGhlIGN1c3RvbSBmaWVsZCB2YWx1ZXMgZm9yIHRoaXMgZXZlbnQsIGFuZCBhZGQgdGhlIG5ldyBvbmVzIGZyb20gdGhlIGZvcm0KewogICAgJGZpZWxkcyA9ICR0aGlzLT5HZXRGaWVsZHMoKTsKCiAgICAvLyBEZWxldGUgdGhlIGN1c3RvbSBmaWVsZCB2YWx1ZXMgZmlyc3QKICAgIHsKICAgICAgICAkc3FsID0gIkRFTEVURSBGUk9NICIgLiAkdGhpcy0+ZXZlbnRfZmllbGRfdmFsdWVzX3RhYmxlX25hbWUgLiAiIFdIRVJFIGV2ZW50X2lkID0gPyI7CiAgICAgICAgJHJlc3VsdD0kZGItPkV4ZWN1dGUoJHNxbCxhcnJheSgkZXZlbnRbJ2V2ZW50X2lkJ10pKTsKICAgIH0KCiAgICAkY3VzdG9tZmllbGRzdmFsdWVzID0gYXJyYXkoKTsKICAgIGZvcmVhY2ggKCRmaWVsZHMgYXMgJGZpZWxkKSB7CiAgICAgICAgJGZpZWxkbmFtZSA9ICRmaWVsZFsnZmllbGRfbmFtZSddOwogICAgICAgIC8vIFJlcGxhY2Ugc3BhY2VzIHdpdGggdW5kZXJiYXJzIGZvciB0aGUgZm9ybSBwYXJhbWV0ZXIgKGEgYml0IG9mIGFuIGlra3kgaGFjayBJIGtub3csIGJ1dCBJIGNhbiB3ZWxsIGltYWdpbmUgZm9sayBkZWZpbmluZyBjdXN0b20gZmllbGRzIHdpdGggc3BhY2VzIGluIHRoZSBuYW1lKSBQZXJoYXBzIGl0IHdvdWxkIGhhdmUgYmVlbiBiZXR0ZXIgaWYgY3VzdG9tIGZpZWxkcyBhbHNvIGhhZCBhIG51bWVyaWMga2V5IC0gaG9odW0gbGl2ZSBhbmQgbGVhcm4hCiAgICAgICAgJHNhZmVmaWVsZG5hbWUgPSAgc3RyX3JlcGxhY2UgKCAiICIsICJfIiwgJGZpZWxkbmFtZSApOwogICAgICAgICRmaWVsZF92YWx1ZSA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywgJ2ZpZWxkXycgLiAkc2FmZWZpZWxkbmFtZSwgJycpOwoKICAgICAgICAkc3FsID0gIklOU0VSVCBJTlRPICIgLiAkdGhpcy0+ZXZlbnRfZmllbGRfdmFsdWVzX3RhYmxlX25hbWUgLiAiIChmaWVsZF9uYW1lLCBldmVudF9pZCwgZmllbGRfdmFsdWUpIFZBTFVFUyAoPyw/LD8pIjsKCiAgICAgICAgaWYgKCRmaWVsZF92YWx1ZSkgJHJlc3VsdD0kZGItPkV4ZWN1dGUoJHNxbCxhcnJheSgkZmllbGRuYW1lLCRldmVudFsnZXZlbnRfaWQnXSwkZmllbGRfdmFsdWUpKTsKCiAgICAgICAgJGN1c3RvbWZpZWxkc3ZhbHVlc1tdID0gYXJyYXkoJGZpZWxkbmFtZSwkZXZlbnRbJ2V2ZW50X2lkJ10sJGZpZWxkX3ZhbHVlKTsKICAgICAgICBpZiggJGZpZWxkWydmaWVsZF9zZWFyY2hhYmxlJ10gKSAkZmllbGR0ZXh0IC49ICRmaWVsZF92YWx1ZS4nICc7CiAgICB9Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIFVwZGF0ZSBTZWFyY2gKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwokc2VhcmNoID0gY21zX3V0aWxzOjpnZXRfc2VhcmNoX21vZHVsZSgpOwppZiggJHNlYXJjaCAhPSBGQUxTRSApIHsKICAgICR0ZXh0ID0gInskZXZlbnRbJ2V2ZW50X3RpdGxlJ119IHskZXZlbnRbJ2V2ZW50X3N1bW1hcnknXX0geyRldmVudFsnZXZlbnRfZGV0YWlscyddfSI7CiAgICAkdGV4dCAuPSAnICcuJGZpZWxkdGV4dDsKICAgICRzZWFyY2gtPkFkZFdvcmRzKCR0aGlzLT5HZXROYW1lKCksICRldmVudFsnZXZlbnRfaWQnXSwgJ2V2ZW50JywgJHRleHQsIE5VTEwpOwp9CgoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gQWRkIHJlY3VycmluZyBldmVudHMKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwppZiggKCRldmVudFsnZXZlbnRfcmVjdXJfcGVyaW9kJ10gIT0gJ25vbmUnKSAmJgogICAgKGlzX2FycmF5KCRyZWN1cnJpbmdfZXZlbnRzKSAmJiBjb3VudCgkcmVjdXJyaW5nX2V2ZW50cykgPiAwKSAmJgogICAgKGlzc2V0KCRwYXJhbXNbJ3VwZGF0ZV9jaGlsZHJlbiddKSB8fCAoJGRvX2luc2VydCA9PSB0cnVlKSApICkgewogICAgJHNxbCA9ICJJTlNFUlQgSU5UTyAiIC4gJHRoaXMtPmV2ZW50c190YWJsZV9uYW1lIC4gIgogICAgICAgICAgICAgKGV2ZW50X2lkCiAgICAgICAgICAgICAgLGV2ZW50X3RpdGxlCiAgICAgICAgICAgICAgLGV2ZW50X3N1bW1hcnkKICAgICAgICAgICAgICAsZXZlbnRfZGV0YWlscwoJICAgICAgLGV2ZW50X2RhdGVfc3RhcnQKICAgICAgICAgICAgICAsZXZlbnRfZGF0ZV9lbmQKICAgICAgICAgICAgICAsZXZlbnRfcGFyZW50X2lkCiAgICAgICAgICAgICAgLGV2ZW50X2NyZWF0ZWRfYnkKICAgICAgICAgICAgICAsZXZlbnRfYWxsb3dzX292ZXJsYXAKCSAgICAgICxldmVudF9jcmVhdGVfZGF0ZSwgZXZlbnRfbW9kaWZpZWRfZGF0ZSkKICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyw/LD8sTk9XKCksTk9XKCkpIjsKICAgIGZvcmVhY2goICRyZWN1cnJpbmdfZXZlbnRzIGFzICRvbmVldmVudCApIHsKICAgICAgICAkY2hpbGRfZXZlbnRfaWQgPSAkZGItPkdlbklEKCR0aGlzLT5ldmVudHNfdGFibGVfbmFtZSAuICJfc2VxIik7CiAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkc3FsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkoJGNoaWxkX2V2ZW50X2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50WydldmVudF90aXRsZSddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50WydldmVudF9zdW1tYXJ5J10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnRbJ2V2ZW50X2RldGFpbHMnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaW0oJGRiLT5EYlRpbWVTdGFtcCgkb25lZXZlbnRbJ3N0YXJ0J10pLCInIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfbnVsbF9kYXRlX3RzKCRvbmVldmVudFsnZW5kJ10pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50WydldmVudF9pZCddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHVzZXJfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnRbJ2V2ZW50X2FsbG93c19vdmVybGFwJ10pKTsKICAgICAgICBpZiggISRkYnIgKSB7CiAgICAgICAgICAgIGVjaG8gIkZBVEFMIEVSUk9SOjxici8+IjsKICAgICAgICAgICAgZWNobyAiUVVFUlkgPSAiLiRkYi0+c3FsLiI8YnIvPiI7CiAgICAgICAgICAgIGVjaG8gIkVSUk9SID0gIi4kZGItPkVycm9yTXNnKCkuIjxici8+PGJyLz4iOwogICAgICAgICAgICBkaWUoKTsKICAgICAgICB9CgogICAgICAgIGlmKGlzX2FycmF5KCRjYXRlZ29yaWVzKSAmJiAoY291bnQoJGNhdGVnb3JpZXMpID4gMCkpIHsKICAgICAgICAgICAgZm9yZWFjaCgkY2F0ZWdvcmllcyBhcyAkY2F0ZWdvcnlfaWQpIHsKICAgICAgICAgICAgICAgICRjYXRlZ29yeV9pZCA9IGludHZhbCgkY2F0ZWdvcnlfaWQpOwogICAgICAgICAgICAgICAgaWYoJGNhdGVnb3J5X2lkID4gMCkgewogICAgICAgICAgICAgICAgICAgICRzcWwyID0gIklOU0VSVCBJTlRPICIgLiAkdGhpcy0+ZXZlbnRzX3RvX2NhdGVnb3JpZXNfdGFibGVfbmFtZSAuICIgKGNhdGVnb3J5X2lkLCBldmVudF9pZCkgVkFMVUVTICg/LD8pIjsKICAgICAgICAgICAgICAgICAgICAkZGItPkV4ZWN1dGUoJHNxbDIsYXJyYXkoJGNhdGVnb3J5X2lkLCRjaGlsZF9ldmVudF9pZCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgokZXZlbnRuYW1lID0gJ0V2ZW50QWRkZWQnOwokcGFybXMgPSBhcnJheSgpOwokcGFybXNbJ2V2ZW50X3RpdGxlJ10gPSAkZXZlbnRbJ2V2ZW50X3RpdGxlJ107CiRwYXJtc1snZXZlbnRfc3VtbWFyeSddID0gJGV2ZW50WydldmVudF9zdW1tYXJ5J107CiRwYXJtc1snZXZlbnRfZGV0YWlscyddID0gJGV2ZW50WydldmVudF9kZXRhaWxzJ107CiRwYXJtc1snZXZlbnRfZGF0ZV9zdGFydCddID0gJGV2ZW50WydldmVudF9kYXRlX3N0YXJ0J107CiRwYXJtc1snZXZlbnRfZGF0ZV9lbmQnXSA9ICRldmVudFsnZXZlbnRfZGF0ZV9lbmQnXTsKJHBhcm1zWydldmVudF9jcmVhdGVkX2J5J10gPSAkdXNlcl9pZDsKJHBhcm1zWydldmVudF9pZCddID0gJGV2ZW50WydldmVudF9pZCddOwppZiggISRkb19pbnNlcnQgKSAkZXZlbnRuYW1lID0gJ0V2ZW50RWRpdGVkJzsKJHRoaXMtPlNlbmRFdmVudCggJGV2ZW50bmFtZSwgJHBhcm1zICk7CgokbWVzc2FnZT0kdGhpcy0+TGFuZygiZXZlbnR1cGRhdGVkIik7CgovLwovLyBkb25lCi8vCiR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkLGFycmF5KCJtb2R1bGVfbWVzc2FnZSI9PiRtZXNzYWdlKSk7CgoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_fields_update.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4CiMgICAgICBieSBSb2JlcnQgQWxsZW4gKGFrcmFiYXQpIGFuZAojICAgICAgICAgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBkaXNwbGF5aW5nIGNhbGVuZGFycywKIyAgYW5kIG1hbmFnZW1lbnQgYW5kIGRpc3BsYXkgb2YgdGltZSBiYXNlZCBldmVudHMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhJGdDbXMgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oIk1vZGlmeSBDYWxlbmRhciIpICkgcmV0dXJuOwoKZnVuY3Rpb24gX2NnY2FsRGVsZXRlRmllbGQoJGZpZWxkX29sZG5hbWUpCnsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0NhbGVuZGFyJyk7CiAgICAkZmllbGRzX3RhYmxlX25hbWUgPSAkbW9kLT5maWVsZHNfdGFibGVfbmFtZTsKICAgICRldmVudF9maWVsZF92YWx1ZXNfdGFibGVfbmFtZSA9ICRtb2QtPmV2ZW50X2ZpZWxkX3ZhbHVlc190YWJsZV9uYW1lOwoKICAgICRzcWwgPSAiREVMRVRFIEZST00gJCRldmVudF9maWVsZF92YWx1ZXNfdGFibGVfbmFtZSB3aGVyZSBmaWVsZF9uYW1lPSckZmllbGRfb2xkbmFtZSciOwogICAgJGRiLT5FeGVjdXRlKCRzcWwpOwoKICAgICRzcWwgPSAiREVMRVRFIEZST00gJGZpZWxkc190YWJsZV9uYW1lIHdoZXJlIGZpZWxkX25hbWU9JyRmaWVsZF9vbGRuYW1lJyI7CiAgICAkZGItPkV4ZWN1dGUoJHNxbCk7Cn0KCiRlcnJvcj0iIjsKJG1lc3NhZ2U9IiI7CiRzZWFyY2hhYmxlID0gbnVsbDsKJHd5c2l3eWcgPSBudWxsOwokdGhpcy0+U2V0Q3VycmVudFRhYignZmllbGRzJyk7CiRudXBkYXRlcyA9IDA7CiRuYWRkcyA9IDA7CgokaWRzID0gJHBhcmFtc1snZmllbGRfaWRzJ107IC8vIChvbGQgbmFtZXMuLi4gZW1wdHkgdmFsdWUgaW5kaWNhdGVzIGFuIGFkZCkKJG5hbWVzID0gJHBhcmFtc1snZmllbGRfbmFtZXMnXTsKJHR5cGVzID0gJHBhcmFtc1snZmllbGRfdHlwZXMnXTsKaWYoIGlzc2V0KCRwYXJhbXNbJ2ZpZWxkX3NlYXJjaGFibGUnXSkgKSAkc2VhcmNoYWJsZSA9ICRwYXJhbXNbJ2ZpZWxkX3NlYXJjaGFibGUnXTsKaWYoIGlzc2V0KCRwYXJhbXNbJ2ZpZWxkX3d5c2l3eWcnXSkgKSAkd3lzaXd5ZyA9ICRwYXJhbXNbJ2ZpZWxkX3d5c2l3eWcnXTsKCi8vIGZpbmQgZGVsZXRpb25zLgokZmllbGRzID0gJHRoaXMtPkdldEZpZWxkcygpOwokZmllbGRfbmFtZXMgPSBjZ2VfYXJyYXk6OmV4dHJhY3RfZmllbGQoJGZpZWxkcywnZmllbGRfbmFtZScpOwokZGVsZXRlZCA9IGFycmF5KCk7Cgpmb3JlYWNoKCAkZmllbGRfbmFtZXMgYXMgJG5hbWUgKSB7CiAgICBpZiggJG5hbWUgPT0gJycgKSBjb250aW51ZTsKICAgIGlmKCAhaW5fYXJyYXkoJG5hbWUsJG5hbWVzKSApIF9jZ2NhbERlbGV0ZUZpZWxkKCRuYW1lKTsKfQoKLy8gbm93IHByb2Nlc3MgbmV3IHJlY29yZHMgYW5kIHVwZGF0ZXMKJG51bV9yZWNvcmRzID0gY291bnQoJGlkcyk7CiRmaWVsZF9vcmRlciA9IC0xOwpmb3IoJGkgPSAwOyAkaSA8ICRudW1fcmVjb3JkczsgJGkrKykgewogICAgJGZpZWxkX29sZG5hbWUgPSAkaWRzWyRpXTsKICAgICRmaWVsZF9uZXduYW1lID0gdHJpbSgkbmFtZXNbJGldKTsKICAgICRmaWVsZF90eXBlID0gKGludCkkdHlwZXNbJGldOwogICAgJGZpZWxkX3NlYXJjaGFibGUgPSAoaXNzZXQoJHNlYXJjaGFibGVbJGldKSk/JHNlYXJjaGFibGVbJGldOjA7CiAgICAkZmllbGRfZXh0cmEgPSBhcnJheSgnc2VhcmNoYWJsZSc9PjAsJ3d5c2l3eWcnPT4wKTsKICAgICRmaWVsZF9leHRyYVsnc2VhcmNoYWJsZSddID0gKGlzc2V0KCRzZWFyY2hhYmxlWyRpXSkpPyRzZWFyY2hhYmxlWyRpXTowOwogICAgJGZpZWxkX2V4dHJhWyd3eXNpd3lnJ10gPSAoaXNzZXQoJHd5c2l3eWdbJGldKSk/JHd5c2l3eWdbJGldOjA7CgogICAgJGZpZWxkX29yZGVyKys7CgogICAgaWYoICRmaWVsZF9vbGRuYW1lID09ICcnICYmICRmaWVsZF9uZXduYW1lID09ICcnICkgY29udGludWU7IC8vIGVtcHR5Li4uIG5vdGhpbmcgdG8gZG8uCgogICAgaWYoICRmaWVsZF9vbGRuYW1lID09ICcnICYmICRmaWVsZF9uZXduYW1lICE9ICcnICkgewogICAgICAgIC8vIGFuIGFkZC4uCiAgICAgICAgJHNxbCA9ICdJTlNFUlQgSU5UTyAnIC4gJHRoaXMtPmZpZWxkc190YWJsZV9uYW1lIC4gJyAoZmllbGRfbmFtZSxmaWVsZF90eXBlLGZpZWxkX3NlYXJjaGFibGUsZmllbGRfZXh0cmEsZmllbGRfb3JkZXIpIFZBTFVFUyAoPyw/LD8sPyw/KSc7CiAgICAgICAgaWYoICRmaWVsZF9leHRyYSApICRmaWVsZF9leHRyYSA9IHNlcmlhbGl6ZSgkZmllbGRfZXh0cmEpOwogICAgICAgICRkYi0+RXhlY3V0ZSgkc3FsLGFycmF5KCRmaWVsZF9uZXduYW1lLCRmaWVsZF90eXBlLCRmaWVsZF9zZWFyY2hhYmxlLCRmaWVsZF9leHRyYSwkZmllbGRfb3JkZXIpKTsKICAgICAgICAkbmFkZHMrKzsKICAgIH0KICAgIGVsc2UgewogICAgICAgIC8vIGFuIHVwZGF0ZQogICAgICAgICRzcWwgPSAnVVBEQVRFICcgLiAkdGhpcy0+ZmllbGRzX3RhYmxlX25hbWUgLiAnIFNFVCBmaWVsZF9uYW1lID0gPywgZmllbGRfdHlwZSA9ID8sIGZpZWxkX3NlYXJjaGFibGUgPSA/LAogICAgICAgICAgICAgICBmaWVsZF9leHRyYSA9ID8sIGZpZWxkX29yZGVyID0gPyBXSEVSRSBmaWVsZF9uYW1lID0gPyc7CiAgICAgICAgaWYoICRmaWVsZF9leHRyYSApICRmaWVsZF9leHRyYSA9IHNlcmlhbGl6ZSgkZmllbGRfZXh0cmEpOwogICAgICAgICRkYi0+RXhlY3V0ZSgkc3FsLGFycmF5KCRmaWVsZF9uZXduYW1lLCAkZmllbGRfdHlwZSwgJGZpZWxkX3NlYXJjaGFibGUsICRmaWVsZF9leHRyYSwgJGZpZWxkX29yZGVyLCAkZmllbGRfb2xkbmFtZSkpOwogICAgICAgIGlmKCAkZmllbGRfbmV3bmFtZSAhPSAkZmllbGRfb2xkbmFtZSApIHsKICAgICAgICAgICAgJHNxbCA9ICdVUERBVEUgJyAuICR0aGlzLT5ldmVudF9maWVsZF92YWx1ZXNfdGFibGVfbmFtZSAuICcgU0VUIGZpZWxkX25hbWUgPSA/IFdIRVJFIGZpZWxkX25hbWUgPSA/JzsKICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCRzcWwsYXJyYXkoJGZpZWxkX25ld25hbWUsICRmaWVsZF9vbGRuYW1lKSk7CiAgICAgICAgfQogICAgICAgICRudXBkYXRlcysrOwogICAgfQp9CgokdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX2ZpZWxkc3VwZGF0ZWQnKSk7CiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_import.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4IAojICAgICAgYnkgUm9iZXJ0IEFsbGVuIChha3JhYmF0KSBhbmQKIyAgICAgICAgIFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgZGlzcGxheWluZyBjYWxlbmRhcnMsCiMgIGFuZCBtYW5hZ2VtZW50IGFuZCBkaXNwbGF5IG9mIHRpbWUgYmFzZWQgZXZlbnRzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IENhbGVuZGFyJykgKSByZXR1cm47Cgokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdhZG1pbl9pbXBvcnRfZXZlbnRzJywgJHJldHVybmlkLCAncG9zdCcsICdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokc21hcnR5LT5hc3NpZ24oJ2ltcG9ydF9kZWxpbWl0ZXInLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbXBvcnRfZGVsaW1pdGVyJywnLCcpKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9pbXBvcnQudHBsJyk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_import_events.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4CiMgICAgICBieSBSb2JlcnQgQWxsZW4gKGFrcmFiYXQpIGFuZAojICAgICAgICAgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBkaXNwbGF5aW5nIGNhbGVuZGFycywKIyAgYW5kIG1hbmFnZW1lbnQgYW5kIGRpc3BsYXkgb2YgdGltZSBiYXNlZCBldmVudHMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IENhbGVuZGFyJykgKSByZXR1cm47CgpmdW5jdGlvbiBfZmdldHMoJGZoLCRudW0gPSA0MDk2KQp7CiAgaWYoICEkZmggKSByZXR1cm47CiAgJHBvczEgPSBmdGVsbCgkZmgpOwoKICAkbGluZSA9IGZnZXRzKCRmaCwkbnVtKTsKICBpZiggc3RycG9zKCRsaW5lLCJcciIpID09PSBGQUxTRSApIHJldHVybiAkbGluZTsKCiAgLy8gbGluZSBpcyBwcm9iYWJseSBhIGNyYXBweSBtYWMgbGluZS4KICAkbGVuMSA9IHN0cmxlbigkbGluZSk7CiAgJHBvcyA9IHN0cnBvcygkbGluZSwiXHIiKTsKCiAgJGxpbmUgPSBzdWJzdHIoJGxpbmUsMCwkcG9zKTsKICBmc2VlaygkZmgsKCRsZW4xIC0gJHBvcyAtMSApICogLTEsU0VFS19DVVIpOwogIHJldHVybiAkbGluZTsKfQoKZnVuY3Rpb24gX2dldGxpbmUoJGZoKQp7CiAgaWYoICEkZmggKSByZXR1cm47CiAgJGxpbmUgPSBfZmdldHMoJGZoKTsKICAkcG9zID0gc3RycG9zKCRsaW5lLCcvLycpOwogIGlmKCAkcG9zICE9PSBGQUxTRSApIHsKICAgICR0bXAgPSBzdHJwb3MoJGxpbmUsJzovLycpOwogICAgaWYoICR0bXAgPT09IEZBTFNFIHx8ICR0bXAgIT0gJHBvcyAtIDEgKSAkbGluZSA9IHN1YnN0cigkbGluZSwwLCRwb3MpOwogIH0KICAkbGluZSA9IHRyaW0oJGxpbmUpOwogIHJldHVybiAkbGluZTsKfQoKZnVuY3Rpb24gX21hcF9maWVsZCgkZmllbGRtYXAsJGRhdGEsJGZsZG5hbWUpCnsKICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkZmllbGRtYXApOyAkaSsrICkgewogICAgaWYoIHN0cnRvbG93ZXIoJGZpZWxkbWFwWyRpXSkgPT0gc3RydG9sb3dlcigkZmxkbmFtZSkgKSByZXR1cm4gJGRhdGFbJGldOwogIH0KfQoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2RlZmF1bHRhZG1pbicpOwppZiggaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pICkgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKaWYgKCFpc3NldCgkX0ZJTEVTWyRpZC4nY3N2X2ZpbGUnXSkpIHsKICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2NzdmZpbGVub3Rmb3VuZCcpKTsKICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwp9CmVsc2UgewogICRkZWxpbWl0ZXIgPSAoaXNzZXQoJHBhcmFtc1snZGVsaW1pdGVyJ10pKT90cmltKCRwYXJhbXNbJ2RlbGltaXRlciddKTokdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1wb3J0X2RlbGltaXRlcicsJywnKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2RlbGltaXRlcicsJGRlbGltaXRlcik7CgogICR1c2VyX2lkID0gZ2V0X3VzZXJpZCgpOwoKICAvLyBnZXQgYSBjYXRlZ29yeSBtYXAuCiAgJHNxbCA9ICdTRUxFQ1QgY2F0ZWdvcnlfaWQsIGNhdGVnb3J5X25hbWUgRlJPTSAnIC4gJHRoaXMtPmNhdGVnb3JpZXNfdGFibGVfbmFtZTsKICAkcnMgPSAkZGItPkV4ZWN1dGUoJHNxbCk7CiAgJGNhdCA9IGFycmF5KCk7CiAgd2hpbGUoICRycyAmJiAkcm93ID0gJHJzLT5GZXRjaFJvdygpKSB7CiAgICAkY2F0WyRyb3dbJ2NhdGVnb3J5X25hbWUnXV09JHJvd1snY2F0ZWdvcnlfaWQnXTsKICB9CgogIC8vIGdldCBhIGZpZWxkIG1hcC4KICAkZmllbGRzID0gYXJyYXkoKTsKICB7CiAgICAkdG1wID0gJHRoaXMtPkdldEZpZWxkcygpOwogICAgaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkJJGZpZWxkcyA9IGNnZV9hcnJheTo6dG9faGFzaCgkdG1wLCdmaWVsZF9uYW1lJyk7CiAgfQoKICAvLyBvcGVuIHRoZSBmaWxlCiAgJGhhbmRsZSA9IGZvcGVuKCRfRklMRVNbJGlkLidjc3ZfZmlsZSddWyd0bXBfbmFtZSddLCAiciIpOwogIGlmICgkaGFuZGxlID09PSBmYWxzZSkgewogICAgJHRoaXMtPlNldEVycm9yKCdlcnJvcl9jYW50b3BlbmZpbGUnKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgfQoKICAvLyBnZXQgdGhlIGZpcnN0IGxpbmUuCiAgJGxpbmVudW0gPSAxOwogICRsaW5lID0gX2dldGxpbmUoJGhhbmRsZSk7CiAgaWYoIGZlb2YoJGhhbmRsZSkgfHwgJGxpbmUgPT0gJycgKSB7CiAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2NzdmludmFsaWRmaXJzdGxpbmUnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogIH0KCiAgLy8gcGFyc2UgdGhlIGZpcnN0IGxpbmUgaW50byBhIGZpZWxkIG1hcC4KICAkZmllbGRtYXAgPSBjZ2VfYXJyYXk6OnNtYXJ0X2V4cGxvZGUoJGxpbmUsJGRlbGltaXRlcik7CiAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGZpZWxkbWFwKTsgJGkrKyApIHsKICAgICRmaWVsZG1hcFskaV0gPSB0cmltKCRmaWVsZG1hcFskaV0pOwogIH0KCiAgLy8gY2hlY2sgZm9yIHJlcXVpcmVkIGZpZWxkcy4KICAkcmVxdWlyZWRfZmllbGRzID0gYXJyYXkoJ3N0YXJ0IHRpbWUnLCdlbmQgdGltZScsJ3RpdGxlJyk7CiAgJG9wdGlvbmFsX2ZpZWxkcyA9IGFycmF5KCdjYXRlZ29yeScsJ3N1bW1hcnknLCdkZXNjcmlwdGlvbicpOwogIGZvcmVhY2goICRyZXF1aXJlZF9maWVsZHMgYXMgJHJlcWQgKSB7CiAgICAgICRmb3VuZCA9IGZhbHNlOwogICAgICBmb3JlYWNoKCAkZmllbGRtYXAgYXMgJGZsZCApIHsKICAgICAgICAgIGlmKCBzdHJ0b2xvd2VyKCRmbGQpID09ICRyZXFkICkgewogICAgICAgICAgICAgICRmb3VuZCA9IHRydWU7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgIH0KICAgICAgaWYoICEkZm91bmQgKSB7CiAgICAgICAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2NzdmZpcnN0bGluZWZsZG5vdGZvdW5kJywkcmVxZCkpOwogICAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICAgICAgfQogIH0KCiAgLy8gbm93IGNoZWNrIGZvciBmaWVsZHMgb2YgdHlwZSAnZmlsZScgYW5kIGZvciB1bmtub3duIGZpZWxkcy4KICBpZiggMCAmJiBjb3VudCgkZmllbGRzKSApIHsgICAvLyBjb21tZW50ZWQgb3V0LgogICAgICBmb3JlYWNoKCAkZmllbGRtYXAgYXMgJG9uZSApIHsKICAgICAgICAgIGlmKCBpbl9hcnJheShzdHJ0b2xvd2VyKCRvbmUpLCRyZXF1aXJlZF9maWVsZHMpICkgY29udGludWU7CiAgICAgICAgICBpZiggaW5fYXJyYXkoc3RydG9sb3dlcigkb25lKSwkb3B0aW9uYWxfZmllbGRzKSApIGNvbnRpbnVlOwoKICAgICAgICAgICRmbmQgPSBmYWxzZTsKICAgICAgICAgIGZvcmVhY2goICRmaWVsZHMgYXMgJG5hbWUgPT4gJHJlYyApIHsKICAgICAgICAgICAgICBpZiggJG9uZSA9PSAkbmFtZSApIHsKICAgICAgICAgICAgICAgICAgJGZuZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgIGlmKCAkcmVjWydmaWVsZF90eXBlJ10gPT0gMSApIHsKICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfY3N2Zmlyc3RsaW5lZmlsZWZsZCcpKTsKICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYoICEkZm5kICkgewogICAgICAgICAgICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfY3N2Zmlyc3RsaW5laW52YWxpZGZpZWxkJywkb25lKSk7CiAgICAgICAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICAgICAgICAgIH0KICAgICAgfQogIH0KCiAgLy8gbm93IGJlZ2luIGltcG9ydGluZy4KICAkZXJyb3JzID0gYXJyYXkoKTsKICAkaW1wb3J0ZWQgPSAwOwogIHdoaWxlKCAhZmVvZigkaGFuZGxlKSApIHsKICAgICAgJHN0YXJ0X3RpbWUgPSBudWxsOyAkZW5kX3RpbWUgPSBudWxsOyAkYWxsX2RheSA9IGZhbHNlOyAkc3RhcnRfdGltZV90cyA9IG51bGw7ICRlbmRfdGltZV90cyA9IG51bGw7CiAgICAgICRsaW5lID0gX2dldGxpbmUoJGhhbmRsZSk7CiAgICAgICRsaW5lbnVtKys7CiAgICAgIGlmKCAhJGxpbmUgKSBjb250aW51ZTsKICAgICAgJGRhdGEgPSBjZ2VfYXJyYXk6OnNtYXJ0X2V4cGxvZGUoJGxpbmUsJGRlbGltaXRlcik7CgogICAgICAkZXZlbnRfaWQgPSAkZGItPkdlbklEKCR0aGlzLT5ldmVudHNfdGFibGVfbmFtZSAuICJfc2VxIik7CgogICAgICAkdG1wID0gX21hcF9maWVsZCgkZmllbGRtYXAsJGRhdGEsJ3N0YXJ0IHRpbWUnKTsKICAgICAgaWYoICR0bXAgPT0gJ05VTEwnIHx8ICR0bXAgPT0gJycgKSB7CiAgICAgICAgICAvLyBubyBzdGFydCB0aW1lIGlzIGFuIGVycm9yLgogICAgICAgICAgJGVycm9yc1tdID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2Nzdl9pbnNlcnQnLCRsaW5lbnVtKS4nIDEnOwogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgICAgJHN0YXJ0X3RpbWVfdHMgPSBzdHJ0b3RpbWUoJHRtcCk7CiAgICAgICAgICBpZiggISRzdGFydF90aW1lX3RzICkgJHN0YXJ0X3RpbWVfdHMgPSAkZGItPlVuaXhUaW1lU3RhbXAoJHRtcCk7CiAgICAgICAgICBpZiggISRzdGFydF90aW1lX3RzICkgewogICAgICAgICAgICAgICRlcnJvcnNbXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9jc3ZfaW5zZXJ0JywkbGluZW51bSkuJyAxYSc7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgIH0KCiAgICAgICR0bXAgPSBfbWFwX2ZpZWxkKCRmaWVsZG1hcCwkZGF0YSwnYWxsIGRheScpOwogICAgICBpZiggJHRtcCApIHsKICAgICAgICAgICRhbGxfZGF5ID0gMTsKICAgICAgfQoKICAgICAgJHRtcCA9IF9tYXBfZmllbGQoJGZpZWxkbWFwLCRkYXRhLCdlbmQgdGltZScpOwogICAgICBpZiggc3RydG9sb3dlcigkdG1wKSA9PSAnYWxsIGRheScgKSB7CiAgICAgICAgICAvLyBmdWxsIGRheSwgdXNlIHN0YXJ0IGRhdGUsIGJ1dCAyMzo1OSBlbmQgdGltZS4KICAgICAgICAgICRhbGxfZGF5ID0gMTsKICAgICAgfQogICAgICBlbHNlIGlmKCAkdG1wID09ICdOVUxMJyB8fCAkdG1wID09ICcnICkgewogICAgICAgICAgLy8gbm8gZW5kIHRpbWUuCiAgICAgICAgICAkZW5kX3RpbWVfdHMgPSBudWxsOwogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgICAgJGVuZF90aW1lX3RzID0gc3RydG90aW1lKCR0bXAsJHN0YXJ0X3RpbWVfdHMpOwogICAgICAgICAgaWYoICEkZW5kX3RpbWVfdHMgKSAkZW5kX3RpbWVfdHMgPSAkZGItPlVuaXhUaW1lU3RhbXAoJHRtcCk7CiAgICAgIH0KICAgICAgaWYoICRlbmRfdGltZV90cyAmJiAkZW5kX3RpbWVfdHMgPCAkc3RhcnRfdGltZV90cyApIHsKICAgICAgICAgICRlcnJvcnNbXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9jc3ZfaW5zZXJ0JywkbGluZW51bSkuJyAyJzsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICB9CiAgICAgIC8vIHRvZG86IGNoZWNrIGZvciB0b28gbG9uZyBvZiBhbiBldmVudC4uCgogICAgICAkc3RhcnRfdGltZSA9IHRyaW0oJGRiLT5EYlRpbWVTdGFtcCgkc3RhcnRfdGltZV90cyksIiciKTsKICAgICAgaWYoICRlbmRfdGltZV90cyApICRlbmRfdGltZSA9IHRyaW0oJGRiLT5EYlRpbWVTdGFtcCgkZW5kX3RpbWVfdHMpLCInIik7CgogICAgICAkdGl0bGUgPSBfbWFwX2ZpZWxkKCRmaWVsZG1hcCwkZGF0YSwndGl0bGUnKTsKICAgICAgJGRlc2NyaXB0aW9uID0gX21hcF9maWVsZCgkZmllbGRtYXAsJGRhdGEsJ2Rlc2NyaXB0aW9uJyk7CgogICAgICBpZiggJHRpdGxlID09ICcnICkgewogICAgICAgICAgJGVycm9yc1tdID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2Nzdl9pbnNlcnQnLCRsaW5lbnVtKS4nIDJhJzsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICB9CgogICAgJHNxbCA9ICJJTlNFUlQgSU5UTyAiIC4gJHRoaXMtPmV2ZW50c190YWJsZV9uYW1lIC4gIiAoCiAgICAgICAgICAgICAgIGV2ZW50X2lkCiAgICAgICAgICAgICAgLGV2ZW50X3RpdGxlCiAgICAgICAgICAgICAgLGV2ZW50X3N1bW1hcnkKICAgICAgICAgICAgICAsZXZlbnRfZGV0YWlscwogICAgICAgICAgICAgICxldmVudF9wYXJlbnRfaWQKICAgICAgICAgICAgICAsZXZlbnRfZGF0ZV9zdGFydAogICAgICAgICAgICAgICxldmVudF9kYXRlX2VuZAogICAgICAgICAgICAgICxldmVudF9hbGxfZGF5CiAgICAgICAgICAgICAgLGV2ZW50X2FsbG93c19vdmVybGFwCiAgICAgICAgICAgICAgLGV2ZW50X2NyZWF0ZWRfYnkKICAgICAgICAgICAgICAsZXZlbnRfY3JlYXRlX2RhdGUKICAgICAgICAgICAgICAsZXZlbnRfbW9kaWZpZWRfZGF0ZQogICAgICAgICAgICAgICkgVkFMVUVTICg/LD8sPyw/LD8sPyw/LD8sPyw/LE5PVygpLE5PVygpKSI7CgogICAgLy8gaW5zZXJ0IHRoZSBldmVudCByZWNvcmQuCiAgICAkcGFybXMgPSBhcnJheSgkZXZlbnRfaWQKCQkgICAsJHRpdGxlCgkJICAgLF9tYXBfZmllbGQoJGZpZWxkbWFwLCRkYXRhLCdzdW1tYXJ5JykKCQkgICAsJGRlc2NyaXB0aW9uCgkJICAgLC0xCgkJICAgLCRzdGFydF90aW1lCiAgICAgICAgICAgLCRlbmRfdGltZQogICAgICAgICAgICwkYWxsX2RheQoJCSAgICwxCgkJICAgLCR1c2VyX2lkCgkJICAgKTsKICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoICRzcWwsICRwYXJtcyApOwogICAgaWYoICEkZGJyICkgewogICAgICAkZXJyb3JzW10gPSAkdGhpcy0+TGFuZygnZXJyb3JfY3N2X2luc2VydCcsJGxpbmVudW0pLicgMyc7CiAgICAgIGNvbnRpbnVlOwogICAgfQoKICAgICAgLy8gaW5zZXJ0IHRoZSBjYXRlZ29yaWUocykKICAgICR2YWwgPSBfbWFwX2ZpZWxkKCRmaWVsZG1hcCwkZGF0YSwnY2F0ZWdvcnknKTsKICAgIGlmKCAkdmFsICkgewogICAgICAkY2F0ZWdvcmllcyA9IGV4cGxvZGUoJzsnLCR2YWwpOwogICAgICAkX2JhZCA9IGZhbHNlOwogICAgICBmb3JlYWNoKCAkY2F0ZWdvcmllcyBhcyAkb25lICkgewoJJG9uZSA9IHRyaW0oJG9uZSk7CglpZiggaXNzZXQoJGNhdFskb25lXSkgKSB7CgkgICRkYnIgPSAkZGItPkV4ZWN1dGUoJ0lOU0VSVCBJTlRPICcuJHRoaXMtPmV2ZW50c190b19jYXRlZ29yaWVzX3RhYmxlX25hbWUuCgkJCSAgICAgICcgKGNhdGVnb3J5X2lkLCBldmVudF9pZCkgVkFMVUVTICg/LD8pJyxhcnJheSgkY2F0WyRvbmVdLCRldmVudF9pZCkpOwoJICBpZiggISRkYnIgKSB7CgkgICAgLy8gZGVsZXRlIHRoZSBpbnNlcnRlZCByZWNvcmQKCSAgICAkcXVlcnkgPSAnREVMRVRFIEZST00gJy4kdGhpcy0+ZXZlbnRzX3RhYmxlX25hbWUuJyBXSEVSRSBldmVudF9pZCA9ID8nOwoJICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGV2ZW50X2lkKSk7CgoJICAgIC8vIGRlbGV0ZSBhbnkgb3RoZXIgY2F0ZWdvcmllcy4KCSAgICAkcXVlcnkgPSAnREVMRVRFIEZST00gJy4kdGhpcy0+ZXZlbnRzX3RvX2NhdGVnb3JpZXNfdGFibGVfbmFtZS4nIFdIRVJFIGV2ZW50X2lkID0gPyc7CgkgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkZXZlbnRfaWQpKTsKCgkgICAgJGVycm9yc1tdID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2Nzdl9pbnNlcnQnLCRsaW5lbnVtKS4nIDQnOwoJICAgICRfYmFkID0gdHJ1ZTsKCSAgICBicmVhazsKCSAgfQoJfQogICAgICB9CiAgICAgIGlmKCAkX2JhZCApIGNvbnRpbnVlOwogICAgfQoKICAgIC8vIGluc2VydCB0aGUgZmllbGRzLgogICAgJF9iYWQgPSBmYWxzZTsKICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLiR0aGlzLT5ldmVudF9maWVsZF92YWx1ZXNfdGFibGVfbmFtZS4nIChmaWVsZF9uYW1lLGV2ZW50X2lkLGZpZWxkX3ZhbHVlKSBWQUxVRVMgKD8sPyw/KSc7CiAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkZmllbGRtYXApOyAkaSsrICkgewogICAgICAkZmxkbmFtZSA9ICRmaWVsZG1hcFskaV07CiAgICAgIGlmKCBpbl9hcnJheSgkZmxkbmFtZSwkcmVxdWlyZWRfZmllbGRzKSApIGNvbnRpbnVlOwogICAgICBpZiggaW5fYXJyYXkoJGZsZG5hbWUsJG9wdGlvbmFsX2ZpZWxkcykgKSBjb250aW51ZTsKICAgICAgaWYoICFpc3NldCgkZmllbGRzWyRmbGRuYW1lXSkgKSBjb250aW51ZTsgLy8gYW4gdW5rbm93biBmaWVsZC4KICAgICAgaWYoICRmaWVsZHNbJGZsZG5hbWVdWydmaWVsZF90eXBlJ10gPT0gMSApIGNvbnRpbnVlOyAvLyBmaWxlIHR5cGUuCgogICAgICAkdmFsdWUgPSBudWxsOwogICAgICBpZiggaXNzZXQoJGRhdGFbJGldKSApICR2YWx1ZSA9ICRkYXRhWyRpXTsKICAgICAgaWYoIGVtcHR5KCR2YWx1ZSkgKSBjb250aW51ZTsKCiAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRmbGRuYW1lLCRldmVudF9pZCwkdmFsdWUpKTsKICAgICAgaWYoICEkZGJyICkgewoJLy8gZGVsZXRlIHRoZSBpbnNlcnRlZCByZWNvcmQKCSRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLiR0aGlzLT5ldmVudHNfdGFibGVfbmFtZS4nIFdIRVJFIGV2ZW50X2lkID0gPyc7CgkkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRldmVudF9pZCkpOwoKCS8vIGRlbGV0ZSB0aGUgY2F0ZWdvcmllcwoJJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuJHRoaXMtPmV2ZW50c190b19jYXRlZ29yaWVzX3RhYmxlX25hbWUuJyBXSEVSRSBldmVudF9pZCA9ID8nOwoJJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkZXZlbnRfaWQpKTsKCgkkZXJyb3JzW10gPSAkdGhpcy0+TGFuZygnZXJyb3JfY3N2X2luc2VydCcsJGxpbmVudW0pLicgNSc7CgkkX2JhZCA9IHRydWU7CglicmVhazsKICAgICAgfQogICAgfQogICAgaWYoICRfYmFkICkgY29udGludWU7CgogICAgJGltcG9ydGVkKys7CiAgfSAvLyBub3QgZW5kIG9mIGZpbGUuCgogIGZjbG9zZSgkaGFuZGxlKTsKCiAgLy8gZG8gZmluYWwgcmVwb3J0LgogICRzbWFydHktPmFzc2lnbignaW1wb3J0ZWQnLCRpbXBvcnRlZCk7CiAgaWYoIGNvdW50KCRlcnJvcnMpICkgJHNtYXJ0eS0+YXNzaWduKCdlcnJvcnMnLCRlcnJvcnMpOwogICRzbWFydHktPmFzc2lnbignbGluZW51bScsJGxpbmVudW0pOwogIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5faW1wb3J0LnRwbCcpOwp9IC8vIGVsc2UuCgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.admin_remove_conflicted.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHQ2FsZW5kYXIgKGMpIDIwMDggCiMgICAgICBieSBSb2JlcnQgQWxsZW4gKGFrcmFiYXQpIGFuZAojICAgICAgICAgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBkaXNwbGF5aW5nIGNhbGVuZGFycywKIyAgYW5kIG1hbmFnZW1lbnQgYW5kIGRpc3BsYXkgb2YgdGltZSBiYXNlZCBldmVudHMuCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgQ2FsZW5kYXInKSApIHJldHVybjsKCi8vIGZpbmQgYWxsIG9mIHRoZSBldmVudHMgdGhhdCBkbyBub3QgYWxsb3cgb3ZlcmxhcC4KJHF1ZXJ5ID0gJ1NFTEVDVCBldmVudF9pZCxldmVudF9wYXJlbnRfaWQsZXZlbnRfZGF0ZV9zdGFydCxldmVudF9kYXRlX2VuZCBGUk9NICcuJHRoaXMtPmV2ZW50c190YWJsZV9uYW1lLicKICAgICAgICAgICBXSEVSRSBldmVudF9hbGxvd3Nfb3ZlcmxhcCA9IDAgT1JERVIgQlkgZXZlbnRfaWQgQVNDJzsKJGlkcyA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKaWYoICEkaWRzICkKICB7CiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCRyZXR1cm5pZCk7CiAgfQoKJHF1ZXJ5MSA9ICdTRUxFQ1QgZXZlbnRfaWQsZXZlbnRfcGFyZW50X2lkLCBqMS5uY2hpbGRyZW4KICAgICAgICAgICAgRlJPTSAnLiR0aGlzLT5ldmVudHNfdGFibGVfbmFtZS4iIGV2CiAgICAgICAgICBMRUZUIEpPSU4gKFNFTEVDVCBldmVudF9wYXJlbnRfaWQgQVMgcGFyZW50LCBjb3VudChldmVudF9pZCkgQVMgbmNoaWxkcmVuIEZST00gIi4kdGhpcy0+ZXZlbnRzX3RhYmxlX25hbWUuIiBXSEVSRSBldmVudF9wYXJlbnRfaWQgIT0gLTEgR1JPVVAgQlkgZXZlbnRfcGFyZW50X2lkKSBqMSBPTiBldi5ldmVudF9pZCA9IGoxLnBhcmVudAogICAgICAgICAgIFdIRVJFIGV2ZW50X2lkICE9ID8KICAgICAgICAgICAgIEFORCBldmVudF9wYXJlbnRfaWQgIT0gPwogICAgICAgICAgICAgQU5EICgoZXZlbnRfZGF0ZV9zdGFydCBCRVRXRUVOID8gYW5kID8pIE9SIChldmVudF9kYXRlX2VuZCBCRVRXRUVOID8gYW5kID8pKSI7CmZvcmVhY2goICRpZHMgYXMgJG9uZV9ldmVudCApCnsKICAkdG1wID0gJGRiLT5HZXRSb3coJHF1ZXJ5MSxhcnJheSgkb25lX2V2ZW50WydldmVudF9pZCddLAoJCQkJICAkb25lX2V2ZW50WydldmVudF9pZCddLAoJCQkJICB0cmltKCRvbmVfZXZlbnRbJ2V2ZW50X2RhdGVfc3RhcnQnXSwiJyIpLAoJCQkJICB0cmltKCRvbmVfZXZlbnRbJ2V2ZW50X2RhdGVfZW5kJ10sIiciKSwKCQkJCSAgdHJpbSgkb25lX2V2ZW50WydldmVudF9kYXRlX3N0YXJ0J10sIiciKSwKCQkJCSAgdHJpbSgkb25lX2V2ZW50WydldmVudF9kYXRlX2VuZCddLCInIikKCQkJCSAgKSk7CiAgaWYoICEkdG1wICkgCiAgICB7CiAgICAgIC8vIG5vdGhpbmcgY29uZmxpY3RzIHdpdGggdGhpcyBldmVudC4KICAgICAgY29udGludWU7CiAgICB9CgogIC8vIHdlIGhhdmUgYSBjb25mbGljdC4KCiAgLy8gaXMgdGhpcyBhIHBhcmVudCBldmVudCA/CiAgaWYoICR0bXBbJ25jaGlsZHJlbiddICE9IC0xICkKICAgIHsKICAgICAgLy8geWVzLi4uIGdldCB0aGUgZmlyc3QgY2hpbGQgZXZlbnQgaWQuLgogICAgICAkcXVlcnkgPSAnU0VMRUNUIGV2ZW50X2lkIEZST00gJy4kdGhpcy0+ZXZlbnRzX3RhYmxlX25hbWUuIgogICAgICAgICAgICAgICAgIFdIRVJFIGV2ZW50X3BhcmVudF9pZCA9ID8gT1JERVIgQlkgZXZlbnRfaWQgQVNDIjsKICAgICAgJG5ld19wYXJlbnRfaWQgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHRtcFsnZXZlbnRfaWQnXSkpOwogICAgICAKICAgICAgLy8gYW5kIG1ha2UgaXQgdGhlIHBhcmVudAogICAgICAkcXVlcnkgPSAnVVBEQVRFICcuJHRoaXMtPmV2ZW50c190YWJsZV9uYW1lLicKICAgICAgICAgICAgICAgICAgIFNFVCBldmVudF9wYXJlbnRfaWQgPSA/CiAgICAgICAgICAgICAgICAgV0hFUkUgZXZlbnRfcGFyZW50X2lkID0gPwogICAgICAgICAgICAgICAgICAgQU5EIGV2ZW50X2lkICE9ID8nOwogICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRuZXdfcGFyZW50X2lkLCR0bXBbJ2V2ZW50X2lkJ10sJG5ld19wYXJlbnRfaWQpKTsKICAgICAgCiAgICAgIC8vIGFuZCB1cGRhdGUgdGhlIG5ldyBwYXJlbnQgcmVjb3JkCiAgICAgICRxdWVyeSA9ICdVUERBVEUgJy4kdGhpcy0+ZXZlbnRzX3RhYmxlX25hbWUuJwogICAgICAgICAgICAgICAgICAgU0VUIGV2ZW50X3BhcmVudF9pZCA9ID8KICAgICAgICAgICAgICAgICBXSEVSRSBldmVudF9pZCA9ID8nOwogICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KC0xLCRuZXdfcGFyZW50X2lkKSk7CiAgICB9CgogIC8vIGRlbGV0ZSB0aGlzIGV2ZW50LCB1bmxlc3MgaXQgaGFzIGNoaWxkIGV2ZW50cwogIC8vIGluIHdoaWNoIGNhc2Ugd2UgbWFrZSB0aGUgZmlyc3QgY2hpbGQgZXZlbnQgdGhlIHBhcmVudCAgICAgICAKICAkcXVlcnkgPSAnREVMRVRFIEZST00gJy4kdGhpcy0+ZXZlbnRzX3RhYmxlX25hbWUuJwogICAgICAgICAgICAgV0hFUkUgZXZlbnRfaWQgPSA/JzsKICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR0bXBbJ2V2ZW50X2lkJ10pKTsKCiAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuJHRoaXMtPmV2ZW50c190b19jYXRlZ29yaWVzX3RhYmxlX25hbWUuJwogICAgICAgICAgICAgV0hFUkUgZXZlbnRfaWQgPSA/JzsKICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR0bXBbJ2V2ZW50X2lkJ10pKTsKfQoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2RlZmF1bHRhZG1pbicpOwokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_settings_update.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4CiMgICAgICBieSBSb2JlcnQgQWxsZW4gKGFrcmFiYXQpIGFuZAojICAgICAgICAgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBkaXNwbGF5aW5nIGNhbGVuZGFycywKIyAgYW5kIG1hbmFnZW1lbnQgYW5kIGRpc3BsYXkgb2YgdGltZSBiYXNlZCBldmVudHMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCmlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpKSB7CiAgJHN1Ym1pdCA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywgJ3N1Ym1pdCcpOwogIGlmKCRzdWJtaXQgIT0gJycpIHsKCiAgICAkdGhpcy0+U2V0Q3VycmVudFRhYignYWRtaW5fbWFuYWdlX3NldHRpbmdzJyk7CgogICAgJGZpcnN0ZGF5b2Z3ZWVrID0gZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCdmaXJzdGRheW9md2VlaycpOwogICAgJHVzZV90d2VsdmVfaG91cl9jbG9jayA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywndXNlX3R3ZWx2ZV9ob3VyX2Nsb2NrJyk7CiAgICAkZm9yY2VfY2F0ZWdvcnkgPSBnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsICdmb3JjZV9jYXRlZ29yeScpOwogICAgJHNob3dwYXN0eWVhcnMgPSBnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsICdzaG93cGFzdHllYXJzJyk7CiAgICAkc2hvd2Z1dHVyZXllYXJzID0gZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCAnc2hvd2Z1dHVyZXllYXJzJyk7CiAgICAkZGVmYXVsdF9jYXRlZ29yeSA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywgJ2RlZmF1bHRfY2F0ZWdvcnknLCcnKTsKICAgICRoaWRlc3VtbWFyeSA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywgJ2hpZGVzdW1tYXJ5JywwKTsKICAgICRoaWRlY29udGVudCA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywgJ2hpZGVjb250ZW50JywwKTsKICAgICR1cGxvYWRkaXJlY3RvcnkgPSBnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsICd1cGxvYWRkaXJlY3RvcnknKTsKICAgICR1cGxvYWRmaWxldHlwZXMgPSBnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsICd1cGxvYWRmaWxldHlwZXMnKTsKICAgICR1cGxvYWR1bmlxdWUgPSBnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsICd1cGxvYWR1bmlxdWUnKTsKICAgICRvdmVybGFwX3BvbGljeSA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywgJ292ZXJsYXBfcG9saWN5Jyk7CiAgICAkb3ZlcmxhcF9hY3Rpb24gPSBnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsICdvdmVybGFwX2FjdGlvbicpOwogICAgJGZyb250ZW5kX3JlZGlyZWN0cGFnZSA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywgJ2Zyb250ZW5kX3JlZGlyZWN0cGFnZScpOwoKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdvdmVybGFwX3BvbGljeScsJG92ZXJsYXBfcG9saWN5KTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdvdmVybGFwX2FjdGlvbicsJG92ZXJsYXBfYWN0aW9uKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdmaXJzdGRheW9md2VlaycsJGZpcnN0ZGF5b2Z3ZWVrKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1c2VfdHdlbHZlX2hvdXJfY2xvY2snLCAkdXNlX3R3ZWx2ZV9ob3VyX2Nsb2NrKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWZhdWx0Y2FsZW5kYXJwYWdlJywgJF9QT1NUWydwYXJlbnRfaWQnXSk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9jYXRlZ29yeScsICRkZWZhdWx0X2NhdGVnb3J5KTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdmb3JjZV9jYXRlZ29yeScsICRmb3JjZV9jYXRlZ29yeSk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnc2hvd3Bhc3R5ZWFycycsICRzaG93cGFzdHllYXJzKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzaG93ZnV0dXJleWVhcnMnLCAkc2hvd2Z1dHVyZXllYXJzKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdoaWRlc3VtbWFyeScsICRoaWRlc3VtbWFyeSk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaGlkZWNvbnRlbnQnLCAkaGlkZWNvbnRlbnQpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VwbG9hZGRpcmVjdG9yeScsICR1cGxvYWRkaXJlY3RvcnkpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VwbG9hZGZpbGV0eXBlcycsICR1cGxvYWRmaWxldHlwZXMpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VwbG9hZHVuaXF1ZScsICR1cGxvYWR1bmlxdWUpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ZyaWVuZGx5bmFtZScsIHRyaW0oJHBhcmFtc1snZnJpZW5kbHluYW1lJ10pKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZmx0X2ZnY29sb3InLCB0cmltKCRwYXJhbXNbJ2RmbHRfZmdjb2xvciddKSk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGZsdF9iZ2NvbG9yJywgdHJpbSgkcGFyYW1zWydkZmx0X2JnY29sb3InXSkpOwoKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1cmxfcHJlZml4JyxnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsJ3VybF9wcmVmaXgnLCdjYWxlbmRhcicpKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZmx0X2FsbGRheWV2ZW50JyxnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsJ2RmbHRfYWxsZGF5ZXZlbnQnLDApKTsKICAgICRzdGFydF90aW1lID0gJyc7CiAgICAkc3RhcnRfdGltZSA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywnZGZsdF9zdGFydHRpbWVfSG91cicsMTIpLic6Jy5nZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsJ2RmbHRfc3RhcnR0aW1lX01pbnV0ZScsMDApOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RmbHRfc3RhcnR0aW1lJywkc3RhcnRfdGltZSk7CgogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2Zyb250ZW5kX2dyb3VwJ10pICkgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2Zyb250ZW5kX2dyb3VwJywkcGFyYW1zWydmcm9udGVuZF9ncm91cCddKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9yZWRpcmVjdHBhZ2UnLCRmcm9udGVuZF9yZWRpcmVjdHBhZ2UpOwogIH0KCiAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKfQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_templates.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4IAojICAgICAgYnkgUm9iZXJ0IEFsbGVuIChha3JhYmF0KSBhbmQKIyAgICAgICAgIFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgZGlzcGxheWluZyBjYWxlbmRhcnMsCiMgIGFuZCBtYW5hZ2VtZW50IGFuZCBkaXNwbGF5IG9mIHRpbWUgYmFzZWQgZXZlbnRzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkgcmV0dXJuOwoKZWNobyAnPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IiBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7IHdpZHRoOiA4MCU7Ij4nLgokdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnZGVmYXVsdGFkbWluJywkcmV0dXJuaWQsCgkJICAgICAgICR0aGlzLT5MYW5nKCdsYmxfYmFjaycpLCdpY29ucy9zeXN0ZW0vYmFjay5naWYnLGFycmF5KCksJycsJycsZmFsc2UpLic8L2Rpdj48YnIvPic7CgplY2hvICR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdhZG1pbl9jYWxlbmRhcl90ZW1wbGF0ZScsICR0aGlzLT5MYW5nKCdjYWxfY2FsZW5kYXJfdGVtcGxhdGUnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignYWRtaW5fbGlzdF90ZW1wbGF0ZScsICR0aGlzLT5MYW5nKCdjYWxfbGlzdF90ZW1wbGF0ZScpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdhZG1pbl91cGNvbWluZ2xpc3RfdGVtcGxhdGUnLCAkdGhpcy0+TGFuZygnY2FsX3VwY29taW5nbGlzdF90ZW1wbGF0ZScpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdhZG1pbl9ldmVudF90ZW1wbGF0ZScsICR0aGlzLT5MYW5nKCdjYWxfZXZlbnRfdGVtcGxhdGUnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignYWRtaW5fc2VhcmNoX2Zvcm1fdGVtcGxhdGVzJywgJHRoaXMtPkxhbmcoJ2NhbF9zZWFyY2hfZm9ybV90ZW1wbGF0ZXMnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignYWRtaW5fc2VhcmNoX3Jlc3VsdF90ZW1wbGF0ZXMnLCAkdGhpcy0+TGFuZygnY2FsX3NlYXJjaF9yZXN1bHRfdGVtcGxhdGVzJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2FkbWluX215ZXZlbnRzX3RlbXBsYXRlcycsJHRoaXMtPkxhbmcoJ2NhbF9teWV2ZW50c190ZW1wbGF0ZXMnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignYWRtaW5fZWRpdGV2ZW50X3RlbXBsYXRlcycsJHRoaXMtPkxhbmcoJ2NhbF9lZGl0ZXZlbnRfdGVtcGxhdGVzJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2FkbWluX2RlZmF1bHRfdGVtcGxhdGVzJywgJHRoaXMtPkxhbmcoJ2NhbF9kZWZhdWx0X3RlbXBsYXRlcycpKTsKZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCJhZG1pbl9jYWxlbmRhcl90ZW1wbGF0ZSIsJHBhcmFtcyk7CmluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9jYWxlbmRhcl90ZW1wbGF0ZV90YWIucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoImFkbWluX2xpc3RfdGVtcGxhdGUiLCRwYXJhbXMpOwppbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fbGlzdF90ZW1wbGF0ZV90YWIucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoImFkbWluX3VwY29taW5nbGlzdF90ZW1wbGF0ZSIsJHBhcmFtcyk7CmluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl91cGNvbWluZ2xpc3RfdGVtcGxhdGVfdGFiLnBocCcpOwplY2hvICR0aGlzLT5FbmRUYWIoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCJhZG1pbl9ldmVudF90ZW1wbGF0ZSIsJHBhcmFtcyk7CmluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9ldmVudF90ZW1wbGF0ZV90YWIucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoImFkbWluX3NlYXJjaF9mb3JtX3RlbXBsYXRlcyIsJHBhcmFtcyk7CmluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9zZWFyY2hfdGVtcGxhdGVzX3RhYi5waHAnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYigiYWRtaW5fc2VhcmNoX3Jlc3VsdF90ZW1wbGF0ZXMiLCRwYXJhbXMpOwppbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fc2VhcmNoX3Jlc3VsdF90ZW1wbGF0ZXNfdGFiLnBocCcpOwplY2hvICR0aGlzLT5FbmRUYWIoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCJhZG1pbl9teWV2ZW50c190ZW1wbGF0ZXMiLCRwYXJhbXMpOwppbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fbXlldmVudHNfdGVtcGxhdGVzX3RhYi5waHAnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYigiYWRtaW5fZWRpdGV2ZW50X3RlbXBsYXRlcyIsJHBhcmFtcyk7CmluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9lZGl0ZXZlbnRfdGVtcGxhdGVzX3RhYi5waHAnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYigiYWRtaW5fZGVmYXVsdF90ZW1wbGF0ZXMiLCRwYXJhbXMpOwppbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fZGVmYXVsdF90ZW1wbGF0ZXNfdGFiLnBocCcpOwplY2hvICR0aGlzLT5FbmRUYWIoKTsKZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4IAojICAgICAgYnkgUm9iZXJ0IEFsbGVuIChha3JhYmF0KSBhbmQKIyAgICAgICAgIFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgZGlzcGxheWluZyBjYWxlbmRhcnMsCiMgIGFuZCBtYW5hZ2VtZW50IGFuZCBkaXNwbGF5IG9mIHRpbWUgYmFzZWQgZXZlbnRzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKJGRpc3BsYXkgPSBnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsICdkaXNwbGF5JywgJ2NhbGVuZGFyJyk7Cgpzd2l0Y2goJGRpc3BsYXkpIHsKIGNhc2UgJ2NhbGVuZGFyJzoKICAgcmVxdWlyZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmRpc3BsYXljYWxlbmRhci5waHAnKTsKICAgYnJlYWs7CgogY2FzZSAnZXZlbnQnOgogICByZXF1aXJlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uZGlzcGxheWV2ZW50LnBocCcpOwogICBicmVhazsKCiBjYXNlICdsaXN0JzoKICAgcmVxdWlyZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmRpc3BsYXlsaXN0LnBocCcpOwogICBicmVhazsKCiBjYXNlICd3ZWVrbGlzdCc6CiAgIHJlcXVpcmUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5kaXNwbGF5d2Vla2xpc3QucGhwJyk7CiAgIGJyZWFrOwoKIGNhc2UgJ3llYXJsaXN0JzoKICAgcmVxdWlyZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmRpc3BsYXl5ZWFybGlzdC5waHAnKTsKICAgYnJlYWs7CgogY2FzZSAncGFzdGxpc3QnOgogICAkcGFyYW1zWydwYXN0aXRlbXMnXSA9IDE7CiAgIHJlcXVpcmUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5kaXNwbGF5dXBjb21pbmdsaXN0LnBocCcpOwogICBicmVhazsKCiBjYXNlICd1cGNvbWluZ2xpc3QnOgogICByZXF1aXJlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uZGlzcGxheXVwY29taW5nbGlzdC5waHAnKTsKICAgYnJlYWs7CgogZGVmYXVsdDoKICAgZWNobyAiQ2FsZW5kYXI6IHVua25vd24gZGlzcGxheSBhdHRyaWJ1dGUgJyRkaXNwbGF5JyEiOwogICBicmVhazsKIH0KCj8+]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4CiMgICAgICBieSBSb2JlcnQgQWxsZW4gKGFrcmFiYXQpIGFuZAojICAgICAgICAgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBkaXNwbGF5aW5nIGNhbGVuZGFycywKIyAgYW5kIG1hbmFnZW1lbnQgYW5kIGRpc3BsYXkgb2YgdGltZSBiYXNlZCBldmVudHMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgokdG1wID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdDYWxlbmRhcicpOwppZiggaXNfb2JqZWN0KCR0bXApICkgewogIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX2NhbGVuZGFyX2luY29tcGF0aWJsZScpKTsKfQoKLy8gdGhlIHRvcCBuYXYgYmFyCmlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykgKSB7CiAgZWNobyAnPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IiBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7IHdpZHRoOiA4MCU7Ij4nOwogIGVjaG8gJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ2FkbWluX3RlbXBsYXRlcycsJHJldHVybmlkLCR0aGlzLT5MYW5nKCdsYmxfdGVtcGxhdGVzJyksJ2ljb25zL3RvcGZpbGVzL3RlbXBsYXRlLmdpZicsYXJyYXkoKSwnJywnJyxmYWxzZSk7CiAgZWNobyAnPC9kaXY+JzsKfQoKZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCk7CmlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgQ2FsZW5kYXInKSB8fCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdBZGQgQ2FsZW5kYXIgRXZlbnRzJykgfHwKICAgICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0VkaXQgTXkgQ2FsZW5kYXIgRXZlbnRzJykgKSB7CiAgICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2RlZmF1bHRhZG1pbicsICR0aGlzLT5MYW5nKCdjYWxfZXZlbnRzJykpOwp9CmlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNYW5hZ2UgQ2FsZW5kYXIgQXR0cmlidXRlcycpICkgewogICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdhZG1pbl9tYW5hZ2VfY2F0ZWdvcmllcycsICR0aGlzLT5MYW5nKCdjYWxfY2F0ZWdvcmllcycpKTsKICAgIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignZmllbGRzJywkdGhpcy0+TGFuZygnZmllbGRzJykpOwp9CmlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdhZG1pbl9tYW5hZ2Vfc2V0dGluZ3MnLCR0aGlzLT5MYW5nKCdjYWxfc2V0dGluZ3MnKSk7CmVjaG8gJHRoaXMtPkVuZFRhYkhlYWRlcnMoKTsKCgplY2hvICR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKTsKaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDYWxlbmRhcicpIHx8ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0FkZCBDYWxlbmRhciBFdmVudHMnKSB8fAogICAgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignRWRpdCBNeSBDYWxlbmRhciBFdmVudHMnKSApIHsKICBlY2hvICR0aGlzLT5TdGFydFRhYigiZGVmYXVsdGFkbWluIiwkcGFyYW1zKTsKICByZXF1aXJlX29uY2UoX19ESVJfXy4nL2Z1bmN0aW9uLmFkbWluZGlzcGxheW1hbmFnZWV2ZW50cy5waHAnKTsKICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKfQoKaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBDYWxlbmRhciBBdHRyaWJ1dGVzJykgKSB7CiAgICBlY2hvICR0aGlzLT5TdGFydFRhYigiYWRtaW5fbWFuYWdlX2NhdGVnb3JpZXMiLCRwYXJhbXMpOwogICAgaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fY2F0ZWdvcmllc190YWIucGhwJyk7CiAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKCiAgICBlY2hvICR0aGlzLT5TdGFydFRhYigiZmllbGRzIiwkcGFyYW1zKTsKICAgIGluY2x1ZGUoX19ESVJfXy4nL2Z1bmN0aW9uLmFkbWluX2ZpZWxkc3RhYi5waHAnKTsKICAgIGVjaG8gJHRoaXMtPkVuZFRhYigpOwp9CgppZiggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIHsKICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCJhZG1pbl9tYW5hZ2Vfc2V0dGluZ3MiKTsKICAgIGluY2x1ZGUoX19ESVJfXy4nL2Z1bmN0aW9uLmFkbWluX3NldHRpbmdzdGFiLnBocCcpOwogICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7Cn0KCmVjaG8gJHRoaXMtPkVuZFRhYkNvbnRlbnQoKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.deleteevents.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4IAojICAgICAgYnkgUm9iZXJ0IEFsbGVuIChha3JhYmF0KSBhbmQKIyAgICAgICAgIFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgZGlzcGxheWluZyBjYWxlbmRhcnMsCiMgIGFuZCBtYW5hZ2VtZW50IGFuZCBkaXNwbGF5IG9mIHRpbWUgYmFzZWQgZXZlbnRzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiAoIWlzc2V0KCRnQ21zKSkgZGllKCk7CgokdGhpcy0+U2V0Q3VycmVudFRhYignZGVmYXVsdGFkbWluJyk7CgokZXZlbnRfaWRzID0gYXJyYXkoKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ3RhZyddKSApICRldmVudF9pZHMgPSAkcGFyYW1zWyd0YWcnXTsKCmlmKCBjb3VudCgkZXZlbnRfaWRzKSA9PSAwICkgewogICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3Jfbm90aGluZ3NlbGVjdGVkJykpOwogICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoKTsKfQoKJG5kZWxldGVkID0gMDsKZm9yZWFjaCggJGV2ZW50X2lkcyBhcyAkZXZlbnRfaWQgKQp7CiAgJHJlcyA9IGNnY2FsZW5kYXJfdXRpbHM6OmRlbGV0ZV9ldmVudCgkZXZlbnRfaWQpOwogIGlmKCAkcmVzICkgJG5kZWxldGVkKys7Cn0KCmlmKCAkbmRlbGV0ZWQgPT0gMCApIHsKICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX25vbmVkZWxldGVkJykpOwp9CmVsc2UgaWYoICRuZGVsZXRlZCA8IGNvdW50KCRldmVudF9pZHMpICkgewogICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3Jfc29tZWRlbGV0ZWQnKSk7Cn0KZWxzZSB7CiAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ3RhZ2dlZGRlbGV0ZWQnKSk7Cn0KJHRoaXMtPlJlZGlyZWN0VG9BZG1pblRhYigpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.deletetemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8vIGR1bW15IHBocCBmaWxlDQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.delete_event.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4IAojICAgICAgYnkgUm9iZXJ0IEFsbGVuIChha3JhYmF0KSBhbmQKIyAgICAgICAgIFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgZGlzcGxheWluZyBjYWxlbmRhcnMsCiMgIGFuZCBtYW5hZ2VtZW50IGFuZCBkaXNwbGF5IG9mIHRpbWUgYmFzZWQgZXZlbnRzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgovLwovLyBzYWZldHkgY2hlY2tzCi8vCiRmZXUgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKaWYoICEkZmV1ICkgewogICR0aGlzLT5SZWRpcmVjdENvbnRlbnQoJHJldHVybmlkKTsKfQplbHNlIGlmKCAhJGZldS0+TG9nZ2VkSW4oKSApIHsKICAkdGhpcy0+UmVkaXJlY3RDb250ZW50KCRyZXR1cm5pZCk7Cn0KCmlmKCAhaXNzZXQoJHBhcmFtc1snZXZlbnRfaWQnXSkgKSAkdGhpcy0+UmVkaXJlY3RDb250ZW50KCRyZXR1cm5pZCk7CgokZmV1X3VpZCA9ICRmZXUtPkxvZ2dlZEluSWQoKTsKJHF1ZXJ5ID0gJ1NFTEVDVCBldmVudF9pZCBGUk9NICcuJHRoaXMtPmV2ZW50c190YWJsZV9uYW1lLicgV0hFUkUgZXZlbnRfaWQgPSA/IEFORCBldmVudF9jcmVhdGVkX2J5ID0gPyc7CiR0bXAgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoKGludCkkcGFyYW1zWydldmVudF9pZCddLCRmZXVfdWlkKSk7CgppZiggJHRtcCA9PSAkcGFyYW1zWydldmVudF9pZCddICkgewogICRyZXMgPSBjZ2NhbGVuZGFyX3V0aWxzOjpkZWxldGVfZXZlbnQoJHRtcCk7Cn0KCiR0aGlzLT5SZWRpcmVjdENvbnRlbnQoJHJldHVybmlkKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.edittemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gZHVtbXkgcGhwIGZpbGUKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.importtemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gZHVtbXkgcGhwIGZpbGUKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.myevents.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4CiMgICAgICBieSBSb2JlcnQgQWxsZW4gKGFrcmFiYXQpIGFuZAojICAgICAgICAgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBkaXNwbGF5aW5nIGNhbGVuZGFycywKIyAgYW5kIG1hbmFnZW1lbnQgYW5kIGRpc3BsYXkgb2YgdGltZSBiYXNlZCBldmVudHMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCi8vCi8vIEluaXRpYWxpemF0aW9uCi8vCiR0aGV0ZW1wbGF0ZSA9ICdteWV2ZW50c18nLiR0aGlzLT5HZXRQcmVmZXJlbmNlKENHQ0FMRU5EQVJfUFJFRl9ERkxUTVlFVkVOVFNfVEVNUExBVEUpOwppZiggaXNzZXQoJHBhcmFtc1snbXlldmVudHN0ZW1wbGF0ZSddICkgKSAkdGhldGVtcGxhdGUgPSAnbXlldmVudHNfJy4kcGFyYW1zWydteWV2ZW50c3RlbXBsYXRlJ107CiRmZXUgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKaWYoICFpc19vYmplY3QoJGZldSkgKSByZXR1cm47IC8vIG5vIGZldSBtb2R1bGUuCiRmZXVfdWlkID0gJGZldS0+TG9nZ2VkSW5JZCgpOwppZiggJGZldV91aWQgPD0gMCApIHJldHVybjsgLy8gbm90IGxvZ2dlZCBpbgoKJGRlc3RwYWdlID0gJHJldHVybmlkOwp7CiAgJHRtcCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9yZWRpcmVjdHBhZ2UnLCcnKTsKICAkdG1wID0gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCR0bXApOwogIGlmKCBpc3NldCgkcGFyYW1zWydlZGl0cGFnZSddKSApICR0bXAgPSB0cmltKCRwYXJhbXNbJ2VkaXRwYWdlJ10pOwogICR0bXAgPSAkdGhpcy0+cmVzb2x2ZV9hbGlhc19vcl9pZCgkdG1wKTsKICBpZiggJHRtcCApICRkZXN0cGFnZSA9ICR0bXA7Cn0KCi8vCi8vIEdldCBkYXRhCi8vCiRjYXRlZ29yeV9pZHMgPSAnJzsKaWYoIGlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5J10pICYmICRwYXJhbXNbJ2NhdGVnb3J5J10gIT0gJycgKSB7CiAgJGNhdGVnb3J5ID0gZXhwbG9kZSgnLCcsJHBhcmFtc1snY2F0ZWdvcnknXSk7CiAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGNhdGVnb3J5KTsgJGkrKyApIHsKICAgICRjYXRlZ29yeVskaV0gPSAiJyIudHJpbSgkY2F0ZWdvcnlbJGldKS4iJyI7CiAgfQogICRxdWVyeSA9ICdTRUxFQ1QgY2F0ZWdvcnlfaWQgRlJPTSAnLiR0aGlzLT5jYXRlZ29yaWVzX3RhYmxlX25hbWUuJyBXSEVSRSBjYXRlZ29yeV9uYW1lIElOICgnLmltcGxvZGUoJywnLCRjYXRlZ29yeSkuJyknOwogICRjYXRlZ29yeV9pZHMgPSAkZGItPkdldENvbCgkcXVlcnkpOwp9CgokcXBhcm1zID0gYXJyYXkoKTsKJHdoZXJlICA9IGFycmF5KCk7CiRqb2lucyAgPSBhcnJheSgpOwokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLiR0aGlzLT5ldmVudHNfdGFibGVfbmFtZS4nIGV2JzsKJHdoZXJlW10gPSAnZXZlbnRfY3JlYXRlZF9ieSA9ID8nOwokcXBhcm1zW10gPSAoaW50KSRmZXVfdWlkOwppZiggaXNfYXJyYXkoJGNhdGVnb3J5X2lkcykgJiYgY291bnQoJGNhdGVnb3J5X2lkcykgPiAwICkgewogICRqb2luc1tdID0gJyBMRUZUIEpPSU4gJy4kdGhpcy0+ZXZlbnRzX3RvX2NhdGVnb3JpZXNfdGFibGVfbmFtZS4nIGVjIE9OIGV2LmV2ZW50X2lkID0gZWMuZXZlbnRfaWQnOwogICR3aGVyZVtdID0gJ2VjLmNhdGVnb3J5X2lkIElOICgnLmltcGxvZGUoJywnLCRjYXRlZ29yeV9pZHMpLicpJzsKfQokb3JkZXIgPSAnIE9SREVSIEJZIGV2ZW50X21vZGlmaWVkX2RhdGUnOwovLyBidWlsZCB0aGUgcXVlcnkuCmlmKCBjb3VudCgkam9pbnMpICkgJHF1ZXJ5IC49IGltcGxvZGUoJyAnLCRqb2lucyk7CmlmKCBjb3VudCgkd2hlcmUpICkgJHF1ZXJ5IC49ICcgV0hFUkUgJy5pbXBsb2RlKCcgQU5EICcsJHdoZXJlKTsKJHF1ZXJ5IC49ICRvcmRlcjsKJGRhdGEgPSAkZGItPkdldEFycmF5KCRxdWVyeSwkcXBhcm1zKTsKCi8vCi8vIEdpdmUgZGF0YSB0byBzbWFydHkKLy8KJHNtYXJ0eS0+Y2xlYXJfYXNzaWduKCdyZWNvcmRzJyk7CmlmKCBpc19hcnJheSgkZGF0YSkgJiYgY291bnQoJGRhdGEpID4gMCApIHsKICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkZGF0YSk7ICRpKysgKSB7CiAgICAkcmVjID0mICRkYXRhWyRpXTsKICAgICRwYXJtcyA9ICRwYXJhbXM7CiAgICAkcGFybXNbJ3JldHVybl9pZCddID0gJHJldHVybmlkOwogICAgJHBhcm1zWydldmVudF9pZCddID0gJHJlY1snZXZlbnRfaWQnXTsKICAgICRyZWNbJ2VkaXRfdXJsJ10gPSAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwnYWRkZWRpdF9ldmVudCcsJGRlc3RwYWdlLCRwYXJtcyk7CiAgICAkcmVjWydkZWxldGVfdXJsJ10gPSAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwnZGVsZXRlX2V2ZW50JywkZGVzdHBhZ2UsJHBhcm1zKTsKICB9CiAgJHNtYXJ0eS0+YXNzaWduKCdyZWNvcmRzJywkZGF0YSk7Cn0KJGdpZCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9ncm91cCcsJycpOwppZiggJGdpZCAmJiAkZmV1LT5NZW1iZXJPZkdyb3VwKCRmZXVfdWlkLCRnaWQpICkgewogICRzbWFydHktPmFzc2lnbignYWRkX2V2ZW50X3VybCcsJHRoaXMtPkNyZWF0ZVVSTCgkaWQsJ2FkZGVkaXRfZXZlbnQnLCRyZXR1cm5pZCkpOwogfQoKLy8KLy8gUHJvY2VzcyB0aGUgdGVtcGxhdGUuCi8vCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgkdGhldGVtcGxhdGUpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.search.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4IAojICAgICAgYnkgUm9iZXJ0IEFsbGVuIChha3JhYmF0KSBhbmQKIyAgICAgICAgIFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgZGlzcGxheWluZyBjYWxlbmRhcnMsCiMgIGFuZCBtYW5hZ2VtZW50IGFuZCBkaXNwbGF5IG9mIHRpbWUgYmFzZWQgZXZlbnRzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgojCiMgSW5pdGlhbGl6YXRpb24KIwokdGhldGVtcGxhdGUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZShDR0NBTEVOREFSX1BSRUZfREZMVFNFQVJDSF9URU1QTEFURSk7CiRkZXN0cGFnZSA9ICRyZXR1cm5pZDsKJGlubGluZSA9IDA7CiRzZWFyY2hfY2F0ZWdvcnkgPSAtMTsKJHNlYXJjaF9zdGFydF9kYXRlID0gdGltZSgpOwokc2VhcmNoX2VuZF9kYXRlID0gc3RydG90aW1lKCcrMSBtb250aCcsJHNlYXJjaF9zdGFydF9kYXRlKTsKJHNlYXJjaF90ZXh0PScnOwokc2VhcmNocmVzdWx0cyA9ICcnOwokZXJyb3IgPSAnJzsKJHVzZV9zZXNzaW9uID0gJyc7CgojCiMgU2V0dXAKIwppZiggaXNzZXQoJHBhcmFtc1snc2VhcmNodGVtcGxhdGUnXSkgKQogIHsKICAgICR0aGV0ZW1wbGF0ZSA9IHRyaW0oJHBhcmFtc1snc2VhcmNodGVtcGxhdGUnXSk7CiAgfQppZiggaXNzZXQoJHBhcmFtc1snaW5saW5lJ10pICkKICB7CiAgICAkaW5saW5lID0gKGludCkkcGFyYW1zWydpbmxpbmUnXTsKICB9CmlmKCBpc3NldCgkcGFyYW1zWydzZWFyY2hyZXN1bHRwYWdlJ10pICkKICB7CiAgICAkdG1wID0gJHRoaXMtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHBhcmFtc1snc2VhcmNocmVzdWx0cGFnZSddKTsKICAgIGlmKCAhZW1wdHkoJHRtcCkgKSAkZGVzdHBhZ2UgPSAkdG1wOwogIH0KaWYoICRkZXN0cGFnZSAhPSAkcmV0dXJuaWQgKSAkaW5saW5lID0gMDsKaWYoIGlzc2V0KCRwYXJhbXNbJ3VzZV9zZXNzaW9uJ10pICkKICB7CiAgICAkc2VhcmNoX3RleHQgPSAkdGhpcy0+c2Vzc2lvbl9nZXQoJHVzZV9zZXNzaW9uLidzZWFyY2hfdGV4dCcsJHNlYXJjaF90ZXh0KTsKICAgICRzZWFyY2hfY2F0ZWdvcnkgPSAkdGhpcy0+c2Vzc2lvbl9nZXQoJHVzZV9zZXNzaW9uLidzZWFyY2hfY2F0ZWdvcnknLCRzZWFyY2hfY2F0ZWdvcnkpOwogICAgJHNlYXJjaF9zdGFydF9kYXRlID0gJHRoaXMtPnNlc3Npb25fZ2V0KCR1c2Vfc2Vzc2lvbi4nc2VhcmNoX3N0YXJ0X2RhdGUnLCRzZWFyY2hfc3RhcnRfZGF0ZSk7CiAgICAkc2VhcmNoX2VuZF9kYXRlID0gJHRoaXMtPnNlc3Npb25fZ2V0KCR1c2Vfc2Vzc2lvbi4nc2VhcmNoX2VuZF9kYXRlJywkc2VhcmNoX2VuZF9kYXRlKTsKICB9CgojCiMgR2V0IHRoZSBEYXRhCiMKCgoKIwojIEJ1aWxkIHRoZSBmb3JtIGRhdGEKIwokY2F0ZWdvcnlzID0gYXJyYXkoKTsKJGNhdGVnb3JpZXNbLTFdID0gJHRoaXMtPkxhbmcoJ2NhbF9hbnlfY2F0ZWdvcnknKTsKewogICRxdWVyeSA9ICdTRUxFQ1QgY2F0ZWdvcnlfaWQsY2F0ZWdvcnlfbmFtZSBGUk9NICcuJHRoaXMtPmNhdGVnb3JpZXNfdGFibGVfbmFtZS4nCiAgICAgICAgICAgICBPUkRFUiBCWSBjYXRlZ29yeV9vcmRlciBBU0MnOwogICR0bXAgPSAkZGItPkdldEFycmF5KCRxdWVyeSk7CiAgaWYoIGlzX2FycmF5KCR0bXApICkKICAgIHsKICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKQoJewoJICAkY2F0ZWdvcmllc1skdG1wWyRpXVsnY2F0ZWdvcnlfaWQnXV0gPSAkdG1wWyRpXVsnY2F0ZWdvcnlfbmFtZSddOwoJfQogICAgfQp9CgojCiMgR2l2ZSBFdmVyeXRoaW5nIHRvIFNtYXJ0eQojCiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdzZWFyY2hyZXN1bHRzJywkZGVzdHBhZ2UsJHBhcmFtcywkaW5saW5lKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignbGlzdF9jYXRlZ29yaWVzJywkY2F0ZWdvcmllcyk7CiRzbWFydHktPmFzc2lnbignc2VhcmNoX2NhdGVnb3J5Jywkc2VhcmNoX2NhdGVnb3J5KTsKJHNtYXJ0eS0+YXNzaWduKCdzZWFyY2hfc3RhcnRfZGF0ZScsJHNlYXJjaF9zdGFydF9kYXRlKTsKJHNtYXJ0eS0+YXNzaWduKCdzZWFyY2hfZW5kX2RhdGUnLCRzZWFyY2hfZW5kX2RhdGUpOwokc21hcnR5LT5hc3NpZ24oJ3NlYXJjaF90ZXh0Jywkc2VhcmNoX3RleHQpOwoKIwojIEFuZCBEaXNwbGF5IFRoZSBUZW1wbGF0ZQojCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgnc2VhcmNoXycuJHRoZXRlbXBsYXRlKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.searchresults.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4IAojICAgICAgYnkgUm9iZXJ0IEFsbGVuIChha3JhYmF0KSBhbmQKIyAgICAgICAgIFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgZGlzcGxheWluZyBjYWxlbmRhcnMsCiMgIGFuZCBtYW5hZ2VtZW50IGFuZCBkaXNwbGF5IG9mIHRpbWUgYmFzZWQgZXZlbnRzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgojCiMgSW5pdGlhbGl6YXRpb24KIwokcGFnZW51bSA9IDE7CiRsaW1pdCA9IDEwMDA7CiR0aGV0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKENHQ0FMRU5EQVJfUFJFRl9ERkxUU0VBUkNIUkVTVUxUX1RFTVBMQVRFKTsKJGRlc3RwYWdlID0gJHJldHVybmlkOwokc2VhcmNoX3RleHQgPSAnJzsKJHNlYXJjaF90eXBlID0gJ29yJzsKCiMKIyBTZXR1cAojCmlmKCBpc3NldCgkcGFyYW1zWydsaW1pdCddKSApCiAgewogICAgJGxpbWl0ID0gKGludCkkcGFyYW1zWydsaW1pdCddOwogIH0KCmlmKCBpc3NldCgkcGFyYW1zWydkZXRhaWxwYWdlJ10pICkKICB7CiAgICAkZGVzdHBhZ2UgPSB0cmltKCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSk7CiAgfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ3NlYXJjaHJlc3VsdHRlbXBsYXRlJ10pICkKICB7CiAgICAkdGhldGVtcGxhdGUgPSB0cmltKCRwYXJhbXNbJ3NlYXJjaHJlc3VsdHRlbXBsYXRlJ10pOwogIH0KICAgIAppZiggaXNzZXQoJHBhcmFtc1snY2FsX3BhZ2VudW0nXSkgKQogIHsKICAgICRwYWdlbnVtID0gKGludCkkcGFyYW1zWydjYWxfcGFnZW51bSddOwogIH0KCiMKIyBHZXQgRGF0YQojCgojCiMgSGFuZGxlIEZvcm0gU3VibWlzc2lvbgojCmlmKCBpc3NldCgkcGFyYW1zWydjYWxfc2VhcmNoX3N1Ym1pdCddKSApCiAgewogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NhbF9zZWFyY2hfdHlwZSddKSApCiAgICAgIHsKCSRzZWFyY2hfdHlwZSA9IHRyaW0oJHBhcmFtc1snY2FsX3NlYXJjaF90eXBlJ10pOwogICAgICB9CiAgICBpZiggaXNzZXQoJHBhcmFtc1snY2FsX3NlYXJjaF90ZXh0J10pICkKICAgICAgewoJJHNlYXJjaF90ZXh0ID0gdHJpbSgkcGFyYW1zWydjYWxfc2VhcmNoX3RleHQnXSk7CiAgICAgIH0KICAgIGlmKCBpc3NldCgkcGFyYW1zWydjYWxfc2VhcmNoX2NhdGVnb3J5J10pICkKICAgICAgewoJJHNlYXJjaF9jYXRlZ29yeSA9IChpbnQpJHBhcmFtc1snY2FsX3NlYXJjaF9jYXRlZ29yeSddOwogICAgICB9CiAgICBpZiggaXNzZXQoJHBhcmFtc1snY2FsX3NlYXJjaF9zdGFydF9kYXRlX01vbnRoJ10pICkKICAgICAgewoJJHNlYXJjaF9zdGFydF9kYXRlID0gbWt0aW1lKGlzc2V0KCRwYXJhbXNbJ2NhbF9zZWFyY2hfc3RhcnRfZGF0ZV9Ib3VyJ10pPyhpbnQpJHBhcmFtc1snY2FsX3NlYXJjaF9zdGFydF9kYXRlX0hvdXInXTowLAoJCQkJICAgIGlzc2V0KCRwYXJhbXNbJ2NhbF9zZWFyY2hfc3RhcnRfZGF0ZV9NaW51dGUnXSk/KGludCkkcGFyYW1zWydjYWxfc2VhcmNoX3N0YXJ0X2RhdGVfTWludXRlJ106MCwKCQkJCSAgICAwLAoJCQkJICAgIChpbnQpJHBhcmFtc1snY2FsX3NlYXJjaF9zdGFydF9kYXRlX01vbnRoJ10sCgkJCQkgICAgKGludCkkcGFyYW1zWydjYWxfc2VhcmNoX3N0YXJ0X2RhdGVfRGF5J10sCgkJCQkgICAgKGludCkkcGFyYW1zWydjYWxfc2VhcmNoX3N0YXJ0X2RhdGVfWWVhciddKTsKICAgICAgfQogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NhbF9zZWFyY2hfZW5kX2RhdGVfTW9udGgnXSkgKQogICAgICB7Cgkkc2VhcmNoX2VuZF9kYXRlID0gbWt0aW1lKGlzc2V0KCRwYXJhbXNbJ2NhbF9zZWFyY2hfZW5kX2RhdGVfSG91ciddKT8oaW50KSRwYXJhbXNbJ2NhbF9zZWFyY2hfZW5kX2RhdGVfSG91ciddOjIzLAoJCQkJICBpc3NldCgkcGFyYW1zWydjYWxfc2VhcmNoX2VuZF9kYXRlX01pbnV0ZSddKT8oaW50KSRwYXJhbXNbJ2NhbF9zZWFyY2hfZW5kX2RhdGVfTWludXRlJ106NTksCgkJCQkgIDAsCgkJCQkgIChpbnQpJHBhcmFtc1snY2FsX3NlYXJjaF9lbmRfZGF0ZV9Nb250aCddLAoJCQkJICAoaW50KSRwYXJhbXNbJ2NhbF9zZWFyY2hfZW5kX2RhdGVfRGF5J10sCgkJCQkgIChpbnQpJHBhcmFtc1snY2FsX3NlYXJjaF9lbmRfZGF0ZV9ZZWFyJ10pOwogICAgICB9CgogICAgLy8gdmFsaWRhdGUgcmVzdWx0cwogICAgaWYoICRzZWFyY2hfZW5kX2RhdGUgPCAkc2VhcmNoX3N0YXJ0X2RhdGUgKQogICAgICB7CgkkdG1wID0gJHNlYXJjaF9zdGFydF9kYXRlOwoJJHNlYXJjaF9zdGFydF9kYXRlID0gJHNlYXJjaF9lbmRfZGF0ZTsKCSRzZWFyY2hfZW5kX2RhdGUgPSAkdG1wOwogICAgICB9CgogICAgaWYoICRzZWFyY2hfZW5kX2RhdGUgLSAkc2VhcmNoX3N0YXJ0X2RhdGUgPCA2MCApCiAgICAgIHsKCSRlcnJvciA9ICR0aGlzLT5MYW5nKCdlcnJvcl9zZWFyY2hfaW52YWxpZF9kYXRlcycpOwogICAgICB9CgogICAgLy8gc3RvcmUgdGhlIHJlc3VsdHMKICAgIGlmKCBpc3NldCgkcGFyYW1zWyd1c2Vfc2Vzc2lvbiddKSAgKQogICAgICB7CgkkdGhpcy0+c2Vzc2lvbl9wdXQoJHVzZV9zZXNzaW9uLidzZWFyY2hfdGV4dCcsJHNlYXJjaF90ZXh0KTsKCSR0aGlzLT5zZXNzaW9uX3B1dCgkdXNlX3Nlc3Npb24uJ3NlYXJjaF9jYXRlZ29yeScsJHNlYXJjaF9jYXRlZ29yeSk7CgkkdGhpcy0+c2Vzc2lvbl9wdXQoJHVzZV9zZXNzaW9uLidzZWFyY2hfc3RhcnRfZGF0ZScsJHNlYXJjaF9zdGFydF9kYXRlKTsKCSR0aGlzLT5zZXNzaW9uX3B1dCgkdXNlX3Nlc3Npb24uJ3NlYXJjaF9lbmRfZGF0ZScsJHNlYXJjaF9lbmRfZGF0ZSk7CiAgICAgIH0KCiAgICAvLyBkbyB0aGUgc2VhcmNoCiAgICBpZiggZW1wdHkoJGVycm9yKSApCiAgICAgIHsKCS8vIGZpbmQgYWxsIHRoZSBzZWFyY2hhYmxlIGZpZWxkIG5hbWVzLgoJJHF1ZXJ5ID0gJ1NFTEVDVCBmaWVsZF9uYW1lIEZST00gJy4kdGhpcy0+ZmllbGRzX3RhYmxlX25hbWUuJyBXSEVSRSBmaWVsZF9zZWFyY2hhYmxlID0gMSc7Cgkkc2VhcmNoYWJsZV9maWVsZHMgPSAkZGItPkdldENvbCgkcXVlcnkpOwoKCS8vIGFzc2VtYmxlIHRoZSBxdWVyeSBmaXJzdC4KCSRmcm9tID0gYXJyYXkoKTsKCSRmaWVsZHMgPSBhcnJheSgpOwoJLy8kcXVlcnkgPSAnU0VMRUNUIERJU1RJTkNUIGV2LmV2ZW50X2lkLGV2LmV2ZW50X3BhcmVudF9pZCxldi5ldmVudF90aXRsZSc7IEZST00gJy4kdGhpcy0+ZXZlbnRzX3RhYmxlX25hbWUuJyBldic7Cgkkd2hlcmUgPSBhcnJheSgpOwoJJHdoZXJlMiA9IGFycmF5KCk7Cgkkd2hlcmUzID0gYXJyYXkoKTsKCSRoYXZpbmcgPSBhcnJheSgpOwoJJGpvaW5zID0gYXJyYXkoKTsKCSRxcGFybXMgPSBhcnJheSgpOwoJJGRiX3N0ID0gJGRiLT5EYlRpbWVTdGFtcCgkc2VhcmNoX3N0YXJ0X2RhdGUpOwoJJGRiX2V0ID0gJGRiLT5EYlRpbWVTdGFtcCgkc2VhcmNoX2VuZF9kYXRlKTsKCgkkZnJvbVsnZXYnXSA9ICR0aGlzLT5ldmVudHNfdGFibGVfbmFtZTsKCSRmaWVsZHNbXSA9ICdldi5ldmVudF9pZCc7CgkkZmllbGRzW10gPSAnZXYuZXZlbnRfcGFyZW50X2lkJzsKCSRmaWVsZHNbXSA9ICdldi5ldmVudF90aXRsZSc7CgoJLy8gYXV0b21hdGljIGZpbHRlcmluZyBieSBkYXRlLgoJJHdoZXJlW10gPSAiKChldi5ldmVudF9kYXRlX3N0YXJ0IEJFVFdFRU4gJGRiX3N0IEFORCAkZGJfZXQpIE9SIChldi5ldmVudF9kYXRlX2VuZCBCRVRXRUVOICRkYl9zdCBhbmQgJGRiX2V0KSkiOwoKCWlmKCBpc19hcnJheSgkc2VhcmNoYWJsZV9maWVsZHMpICYmIGNvdW50KCRzZWFyY2hhYmxlX2ZpZWxkcykgKQoJICB7CgkgICAgJHRtcCA9IGFycmF5KCk7CgkgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHNlYXJjaGFibGVfZmllbGRzKTsgJGkrKyApCgkgICAgICB7CgkJJHRtcFtdID0gIiciLiRzZWFyY2hhYmxlX2ZpZWxkc1skaV0uIiciOwoJICAgICAgfQoJICAgIC8vJGZyb21bJ2Z2J10gPSAkdGhpcy0+ZXZlbnRfZmllbGRfdmFsdWVzX3RhYmxlX25hbWU7CgkgICAgJGpvaW5zW10gPSAnTEVGVCBKT0lOIAogICAgICAgICAgICAgICAgICAgICAgICAoU0VMRUNUIGV2ZW50X2lkLGdyb3VwX2NvbmNhdChmaWVsZF92YWx1ZSkgQVMgdmFscyAKICAgICAgICAgICAgICAgICAgICAgICAgIEZST00gJy4kdGhpcy0+ZXZlbnRfZmllbGRfdmFsdWVzX3RhYmxlX25hbWUuJwogICAgICAgICAgICAgICAgICAgICAgICAgV0hFUkUgZmllbGRfbmFtZSBJTiAoJy5pbXBsb2RlKCcsJywkdG1wKS4nKQogICAgICAgICAgICAgICAgICAgICAgICAgR1JPVVAgQlkgZXZlbnRfaWQpIEFTIGZ2IE9OIGV2LmV2ZW50X2lkID0gZnYuZXZlbnRfaWQnOwoJICB9CgoJaWYoICRzZWFyY2hfY2F0ZWdvcnkgPiAwICkKCSAgewoJICAgIC8vIGZpbHRlcmluZyBieSBjYXRlZ29yeQoJICAgICR0bXAyID0gYXJyYXkoKTsKCSAgICBmb3JlYWNoKCAkc2VhcmNoYWJsZV9maWVsZHMgYXMgJG9uZSApCgkgICAgICB7CgkJJHRtcDJbXSA9ICInIi4kb25lLiInIjsKCSAgICAgIH0KCSAgICAkc3RyID0gaW1wbG9kZSgnLCcsJHRtcDIpOwoJICAgICRqb2luc1tdID0gJ0xFRlQgSk9JTiAnLiR0aGlzLT5ldmVudHNfdG9fY2F0ZWdvcmllc190YWJsZV9uYW1lLicgZWMgCiAgICAgICAgICAgICAgICAgICAgICAgICBPTiBlYy5ldmVudF9pZCA9IGV2LmV2ZW50X2lkJzsKCSAgICAkd2hlcmVbXSA9ICdlYy5jYXRlZ29yeV9pZCA9ID8nOwoJICAgICRxcGFybXNbXSA9ICRzZWFyY2hfY2F0ZWdvcnk7CgkgIH0KCglpZiggIWVtcHR5KCRzZWFyY2hfdGV4dCkgKQoJICB7CgkgICAgaWYoICRzZWFyY2hfdHlwZSA9PSAnb3InICkKCSAgICAgIHsKCQkkd2hlcmUyW10gPSAnKE1BVENIIChldi5ldmVudF90aXRsZSxldi5ldmVudF9zdW1tYXJ5LGV2LmV2ZW50X2RldGFpbHMpIEFHQUlOU1QgKD8pKSc7CgkJJHFwYXJtc1tdID0gJHNlYXJjaF90ZXh0OwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkd2hlcmUyW10gPSAnKE1BVENIIChldi5ldmVudF90aXRsZSxldi5ldmVudF9zdW1tYXJ5LGV2LmV2ZW50X2RldGFpbHMpIEFHQUlOU1QgKD8gSU4gQk9PTEVBTiBNT0RFKSknOwoJCSRxcGFybXNbXSA9ICRzZWFyY2hfdGV4dDsKCSAgICAgIH0KCSAgfQoJaWYoIGlzX2FycmF5KCRzZWFyY2hhYmxlX2ZpZWxkcykgJiYgY291bnQoJHNlYXJjaGFibGVfZmllbGRzKSApCgkgIHsKCSAgICAvLyBzcGxpdCBhbmQgY2xlYW4gdXAgdGhlIHNlYXJjaCB3b3Jkcy4KCSAgICAkdG1wID0gZXhwbG9kZSgnICcsJHNlYXJjaF90ZXh0KTsKCSAgICAkd29yZHMgPSBhcnJheSgpOwoJICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0bXApOyAkaSsrICkKCSAgICAgIHsKCQkkdG1wMiA9IHRyaW0oJHRtcFskaV0pOwoJCWlmKCAhJHRtcDIgKSBjb250aW51ZTsKCQkkd29yZHNbXSA9ICclJy50cmltKCR0bXBbJGldKS4nJSc7CgkgICAgICB9CgoJICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR3b3Jkcyk7ICRpKysgKQoJICAgICAgewoJCSR3aGVyZTNbXSA9ICcoZnYudmFscyBMSUtFID8pJzsKCQkkcXBhcm1zW10gPSAkd29yZHNbJGldOwoJICAgICAgfQoJICB9CgkKCSRxdWVyeSA9ICdTRUxFQ1QgRElTVElOQ1QgJy5pbXBsb2RlKCcsJywkZmllbGRzKS4nIEZST00gJzsKCXsKCSAgJHRtcCA9IGFycmF5KCk7CgkgIGZvcmVhY2goJGZyb20gYXMgJHRibCA9PiAkc3RyICkKCSAgICB7CgkgICAgICAkdG1wW10gPSAiICRzdHIgJHRibCI7CgkgICAgfQoJICAkcXVlcnkgLj0gIiAiLmltcGxvZGUoJywnLCR0bXApOwoJfQoJaWYoIGNvdW50KCRqb2lucykgKQoJICB7CgkgICAgJHF1ZXJ5IC49ICcgJy5pbXBsb2RlKCcgJywkam9pbnMpOwoJICB9CglpZiggY291bnQoJHdoZXJlKSB8fCAkY291bnQoJHdoZXJlMikgKQoJICB7CgkgICAgJHF1ZXJ5IC49ICcgV0hFUkUgJzsKCSAgfQoJaWYoIGNvdW50KCR3aGVyZSkgKQoJICB7CgkgICAgJHF1ZXJ5IC49IGltcGxvZGUoJyBBTkQgJywkd2hlcmUpOwoJICB9CglpZiggY291bnQoJHdoZXJlMikgKQoJICB7CgkgICAgJGV4cHIgPSAnIEFORCAnOwoJICAgIGlmKCAkc2VhcmNoX3R5cGUgPT0gJ29yJyApICRleHByID0gJyBPUiAnOwoJICAgIGlmKCBjb3VudCgkd2hlcmUpICkKCSAgICAgIHsKCQkkcXVlcnkgLj0gJyBBTkQgJzsKCSAgICAgIH0KCSAgICAkcXVlcnkgLj0gJygnOwoJICAgICRxdWVyeSAuPSBpbXBsb2RlKCRleHByLCR3aGVyZTIpOwoJICAgIGlmKCBjb3VudCgkd2hlcmUzKSApCgkgICAgICB7CgkJJHF1ZXJ5IC49ICcgT1IgJzsKCQkkcXVlcnkgLj0gJygnIC4gaW1wbG9kZSgkZXhwciwgJHdoZXJlMykgLiAnKSc7CgkgICAgICB9CgkgICAgJHF1ZXJ5IC49ICcpJzsKCSAgfQoKCWlmKGlzc2V0KCRwYXJhbXNbJ3VuaXF1ZV9vbmx5J10pICYmICgkcGFyYW1zWyd1bmlxdWVfb25seSddKSkKCSAgewoJICAgICRxdWVyeSAuPSAnIEdST1VQIEJZIGV2LmV2ZW50X3RpdGxlJzsKCSAgfQoKCWlmKCBjb3VudCgkaGF2aW5nKSApCgkgIHsKCSAgICAkcXVlcnkgLj0gJyBIQVZJTkcgJzsKCSAgICAkcXVlcnkgLj0gJygnIC4gaW1wbG9kZSgnIEFORCAnLCRoYXZpbmcpLiAnKSc7CgkgIH0KCgkkcXVlcnkgLj0gJyBPUkRFUiBCWSBldi5ldmVudF9kYXRlX3N0YXJ0IEFTQyc7Cgkkc2VhcmNocmVzdWx0cyA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5LCRxcGFybXMpOwoJaWYoICEkc2VhcmNocmVzdWx0cyAmJiAkZGItPkVycm9yTXNnICE9ICcnICkKCSAgewoJICAgICRlcnJvciA9ICR0aGlzLT5MYW5nKCdlcnJvcl9xdWVyeV9mYWlsZWQnKTsKCSAgfQoJJHNlYXJjaHJlc3VsdHMgPSBjZ2VfYXJyYXk6OmV4dHJhY3RfZmllbGQoJHNlYXJjaHJlc3VsdHMsJ2V2ZW50X2lkJyk7CiAgICAgIH0KICB9CgovLyBjYWxjdWxhdGUgcGFnaW5hdGlvbiBzdHVmZgovLyBhbmQgdGhlIHN1YnNldCBvZiBldmVudCBpZHMuCiRudW1wYWdlcyA9IDA7CiRudW1fbWF0Y2hlcyA9IDA7CmlmKCAhZW1wdHkoJHNlYXJjaHJlc3VsdHMpICkKICB7CiAgICAkbnVtX21hdGNoZXMgPSBjb3VudCgkc2VhcmNocmVzdWx0cyk7CiAgICAkbnVtcGFnZXMgPSAoaW50KShjb3VudCgkc2VhcmNocmVzdWx0cykgLyAkbGltaXQpOwogICAgaWYoIGNvdW50KCRzZWFyY2hyZXN1bHRzKSAlICRsaW1pdCA+IDAgKQogICAgICB7CgkkbnVtcGFnZXMrKzsKICAgICAgfQogICAgJHN0YXJ0b2Zmc2V0ID0gKCRwYWdlbnVtIC0gMSkqJGxpbWl0OwogICAgJGVudHJpZXMgPSBjZ2NhbGVuZGFyX3V0aWxzOjpleHBhbmRfZXZlbnRzKCRzZWFyY2hyZXN1bHRzLCRyZXR1cm5pZCwkcGFyYW1zLCRsaW1pdCwkc3RhcnRvZmZzZXQpOwogICAgaWYoIGlzX2FycmF5KCRlbnRyaWVzKSAmJiBjb3VudCgkZW50cmllcykgKQogICAgICB7CgkkcGFybXMgPSAkcGFyYW1zOwoJaWYoICRwYWdlbnVtID4gMSApCgkgIHsKCSAgICAkcGFybXNbJ2NhbF9wYWdlbnVtJ10gPSAkcGFnZW51bSAtIDE7CgkgICAgJHNtYXJ0eS0+YXNzaWduKCdwcmV2cGFnZV91cmwnLCR0aGlzLT5DcmVhdGVVUkwoJGlkLCdzZWFyY2hyZXN1bHRzJywkcmV0dXJuaWQsJHBhcm1zKSk7CgkgICAgJHBhcm1zWydjYWxfcGFnZW51bSddID0gMTsKCSAgICAkc21hcnR5LT5hc3NpZ24oJ2ZpcnN0cGFnZV91cmwnLCR0aGlzLT5DcmVhdGVVUkwoJGlkLCdzZWFyY2hyZXN1bHRzJywkcmV0dXJuaWQsJHBhcm1zKSk7CgkgIH0KCWlmKCAkcGFnZW51bSA8ICRudW1wYWdlcyApCgkgIHsKCSAgICAkcGFybXNbJ2NhbF9wYWdlbnVtJ10gPSAkcGFnZW51bSArIDE7CgkgICAgJHNtYXJ0eS0+YXNzaWduKCduZXh0cGFnZV91cmwnLCR0aGlzLT5DcmVhdGVVUkwoJGlkLCdzZWFyY2hyZXN1bHRzJywkcmV0dXJuaWQsJHBhcm1zKSk7CgkgICAgJHBhcm1zWydjYWxfcGFnZW51bSddID0gJG51bXBhZ2VzOwoJICAgICRzbWFydHktPmFzc2lnbignbGFzdHBhZ2VfdXJsJywkdGhpcy0+Q3JlYXRlVVJMKCRpZCwnc2VhcmNocmVzdWx0cycsJHJldHVybmlkLCRwYXJtcykpOwoJICB9Cgkkc21hcnR5LT5hc3NpZ24oJ2V2ZW50cycsJGVudHJpZXMpOwogICAgICB9CiAgfQoKIwojIEdpdmUgRXZlcnl0aGluZyB0byBzbWFydHkKIwokc21hcnR5LT5hc3NpZ24oJ251bXBhZ2VzJywkbnVtcGFnZXMpOwokc21hcnR5LT5hc3NpZ24oJ3BhZ2VudW0nLCRwYWdlbnVtKTsKJHNtYXJ0eS0+YXNzaWduKCdzZWFyY2hfc3RhcnRfZGF0ZScsJHNlYXJjaF9zdGFydF9kYXRlKTsKJHNtYXJ0eS0+YXNzaWduKCdzZWFyY2hfZW5kX2RhdGUnLCRzZWFyY2hfZW5kX2RhdGUpOwokc21hcnR5LT5hc3NpZ24oJ3NlYXJjaF9jYXRlZ29yeScsJHNlYXJjaF9jYXRlZ29yeSk7CiRzbWFydHktPmFzc2lnbignc2VhcmNoX3RleHQnLCRzZWFyY2hfdGV4dCk7CgoKIwojIFByb2Nlc3MgVGhlIFRlbXBsYXRlCiMKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCdzZWFyY2hyZXN1bHRfJy4kdGhldGVtcGxhdGUpOwoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.storesession.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4IAojICAgICAgYnkgUm9iZXJ0IEFsbGVuIChha3JhYmF0KSBhbmQKIyAgICAgICAgIFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgZGlzcGxheWluZyBjYWxlbmRhcnMsCiMgIGFuZCBtYW5hZ2VtZW50IGFuZCBkaXNwbGF5IG9mIHRpbWUgYmFzZWQgZXZlbnRzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgokcHJlZml4ID0gJyc7CmlmKCBpc3NldCgkcGFyYW1zWydjYWxfa2V5J10gKSApCiAgewogICAgJHByZWZpeCA9IHRyaW0oJHBhcmFtc1snY2FsX2tleSddKTsKICB9CiRwYXNzdGhydSA9ICdjYWxfcHRfJzsKaWYoIGlzc2V0KCRwYXJhbXNbJ2FjdGlvbiddKSApCiAgewogICAgdW5zZXQoJHBhcmFtc1snYWN0aW9uJ10pOwogIH0KZm9yZWFjaCggJHBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSApCnsKICBpZiggIXN0YXJ0c3dpdGgoJGtleSwkcGFzc3RocnUpICkKICAgIHsKICAgICAgJHRoaXMtPnNlc3Npb25fcHV0KCRwcmVmaXguJGtleSwkdmFsdWUpOwogICAgfQp9CgokdG1wcGFybXMgPSBhcnJheSgpOwpmb3JlYWNoKCAkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlICkKewogIGlmKCBzdGFydHN3aXRoKCRrZXksJHBhc3N0aHJ1KSApCiAgICB7CiAgICAgICR0bXBwYXJtc1tzdWJzdHIoJGtleSxzdHJsZW4oJHBhc3N0aHJ1KSldID0gJHZhbHVlOwogICAgfQp9CgokdXJsID0gJHRoaXMtPnNlc3Npb25fZ2V0KCRwcmVmaXguJ3JlZGlyZWN0X3VybCcpOwppZiggIWVtcHR5KCR1cmwpICkKICB7CiAgICByZWRpcmVjdCgkdXJsKTsKICB9CiR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHQnLCRyZXR1cm5pZCwkdG1wcGFyYW1zKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/CGCalendar.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IHRhYi13aWR0aDogNDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotICovCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBTa2VsZXRvbiAoYykgMjAwOAojICAgICAgYnkgUm9iZXJ0IEFsbGVuIChha3JhYmF0KSBhbmQKIyAgICAgICAgIFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgZGlzcGxheWluZyBjYWxlbmRhcnMsCiMgIGFuZCBtYW5hZ2VtZW50IGFuZCBkaXNwbGF5IG9mIHRpbWUgYmFzZWQgZXZlbnRzLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKJGNnZXh0ZW5zaW9ucyA9IGNtc19qb2luX3BhdGgoJGdDbXMtPmNvbmZpZ1sncm9vdF9wYXRoJ10sJ21vZHVsZXMnLCdDR0V4dGVuc2lvbnMnLCdDR0V4dGVuc2lvbnMubW9kdWxlLnBocCcpOwppZiggIWlzX3JlYWRhYmxlKCAkY2dleHRlbnNpb25zICkgKSB7CiAgZWNobyAnPGgxPjxmb250IGNvbG9yPSJyZWQiPkVSUk9SOiBUaGUgQ0dFeHRlbnNpb25zIG1vZHVsZSBjb3VsZCBub3QgYmUgZm91bmQuPC9mb250PjwvaDE+JzsKICByZXR1cm47Cn0KcmVxdWlyZV9vbmNlKCRjZ2V4dGVuc2lvbnMpOwoKZGVmaW5lKCdDR0NBTEVOREFSX1BSRUZfTkVXQ0FMRU5EQVJfVEVNUExBVEUnLCdjZ2NhbGVuZGFyX3ByZWZfbmV3Y2FsZW5kYXJfdGVtcGxhdGUnKTsKZGVmaW5lKCdDR0NBTEVOREFSX1BSRUZfREZMVENBTEVOREFSX1RFTVBMQVRFJywnY2djYWxlbmRhcl9wcmVmX2RmbHRjYWxlbmRhcl90ZW1wbGF0ZScpOwpkZWZpbmUoJ0NHQ0FMRU5EQVJfUFJFRl9ORVdMSVNUX1RFTVBMQVRFJywnY2djYWxlbmRhcl9wcmVmX25ld2xpc3RfdGVtcGxhdGUnKTsKZGVmaW5lKCdDR0NBTEVOREFSX1BSRUZfREZMVExJU1RfVEVNUExBVEUnLCdjZ2NhbGVuZGFyX3ByZWZfZGZsdGxpc3RfdGVtcGxhdGUnKTsKZGVmaW5lKCdDR0NBTEVOREFSX1BSRUZfTkVXVVBDT01JTkdMSVNUX1RFTVBMQVRFJywnY2djYWxlbmRhcl9wcmVmX25ld3VwY29taW5nbGlzdF90ZW1wbGF0ZScpOwpkZWZpbmUoJ0NHQ0FMRU5EQVJfUFJFRl9ERkxUVVBDT01JTkdMSVNUX1RFTVBMQVRFJywnY2djYWxlbmRhcl9wcmVmX2RmbHR1cGNvbWluZ2xpc3RfdGVtcGxhdGUnKTsKZGVmaW5lKCdDR0NBTEVOREFSX1BSRUZfTkVXRVZFTlRfVEVNUExBVEUnLCdjZ2NhbGVuZGFyX3ByZWZfbmV3ZXZlbnRfdGVtcGxhdGUnKTsKZGVmaW5lKCdDR0NBTEVOREFSX1BSRUZfREZMVEVWRU5UX1RFTVBMQVRFJywnY2djYWxlbmRhcl9wcmVmX2RmbHRldmVudF90ZW1wbGF0ZScpOwpkZWZpbmUoJ0NHQ0FMRU5EQVJfUFJFRl9ORVdTRUFSQ0hfVEVNUExBVEUnLCdjZ2NhbGVuZGFyX3ByZWZfbmV3c2VhcmNoX3RlbXBsYXRlJyk7CmRlZmluZSgnQ0dDQUxFTkRBUl9QUkVGX0RGTFRTRUFSQ0hfVEVNUExBVEUnLCdjZ2NhbGVuZGFyX3ByZWZfZGZsdHNlYXJjaF90ZW1wbGF0ZScpOwpkZWZpbmUoJ0NHQ0FMRU5EQVJfUFJFRl9ORVdTRUFSQ0hSRVNVTFRfVEVNUExBVEUnLCdjZ2NhbGVuZGFyX3ByZWZfbmV3c2VhcmNocmVzdWx0X3RlbXBsYXRlJyk7CmRlZmluZSgnQ0dDQUxFTkRBUl9QUkVGX0RGTFRTRUFSQ0hSRVNVTFRfVEVNUExBVEUnLCdjZ2NhbGVuZGFyX3ByZWZfZGZsdHNlYXJjaHJlc3VsdF90ZW1wbGF0ZScpOwpkZWZpbmUoJ0NHQ0FMRU5EQVJfUFJFRl9ORVdNWUVWRU5UU19URU1QTEFURScsJ2NnY2FsZW5kYXJfcHJlZl9uZXdteWV2ZW50c190ZW1wbGF0ZScpOwpkZWZpbmUoJ0NHQ0FMRU5EQVJfUFJFRl9ERkxUTVlFVkVOVFNfVEVNUExBVEUnLCdjZ2NhbGVuZGFyX3ByZWZfZGZsdG15ZXZlbnRzX3RlbXBsYXRlJyk7CmRlZmluZSgnQ0dDQUxFTkRBUl9QUkVGX05FV0VESVRFVkVOVF9URU1QTEFURScsJ2NnY2FsZW5kYXJfcHJlZl9uZXdlZGl0ZXZlbnRfdGVtcGxhdGUnKTsKZGVmaW5lKCdDR0NBTEVOREFSX1BSRUZfREZMVEVESVRFVkVOVF9URU1QTEFURScsJ2NnY2FsZW5kYXJfcHJlZl9kZmx0ZWRpdGV2ZW50X3RlbXBsYXRlJyk7CgpmaW5hbCBjbGFzcyBDR0NhbGVuZGFyIGV4dGVuZHMgQ0dFeHRlbnNpb25zCnsKICB2YXIgJGNhdGVnb3JpZXNfdGFibGVfbmFtZTsKICB2YXIgJGV2ZW50c190b19jYXRlZ29yaWVzX3RhYmxlX25hbWU7CiAgdmFyICRldmVudHNfdGFibGVfbmFtZTsKICB2YXIgJGZpZWxkc190YWJsZV9uYW1lOwogIHZhciAkZXZlbnRfZmllbGRfdmFsdWVzX3RhYmxlX25hbWU7CiAgdmFyICRhZG1pbl90b29sc19sb2FkZWQ7CiAgc3RhdGljICRfY2FjaGVkX2ZpZWxkczsKCiAgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQogIHsKCXBhcmVudDo6X19jb25zdHJ1Y3QoKTsKCSR0aGlzLT5BZGRJbWFnZURpcignaW1hZ2VzJyk7CgoJJHRoaXMtPmNhdGVnb3JpZXNfdGFibGVfbmFtZSA9IGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfY2djYWxlbmRhcl9jYXRlZ29yaWVzJzsKCSR0aGlzLT5ldmVudHNfdG9fY2F0ZWdvcmllc190YWJsZV9uYW1lID0gY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY2djYWxlbmRhcl9ldmVudHNfdG9fY2F0ZWdvcmllcyc7CgkkdGhpcy0+ZXZlbnRzX3RhYmxlX25hbWUgPSBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ2NhbGVuZGFyX2V2ZW50cyc7CgkkdGhpcy0+ZXZlbnRfZmllbGRfdmFsdWVzX3RhYmxlX25hbWUgPSBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2NnY2FsZW5kYXJfZXZlbnRfZmllbGRfdmFsdWVzJzsKCSR0aGlzLT5maWVsZHNfdGFibGVfbmFtZSA9IGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfY2djYWxlbmRhcl9maWVsZHMnOwoJJHRoaXMtPmFkbWluX3Rvb2xzX2xvYWRlZCA9IGZhbHNlOwogIH0KCiAgZnVuY3Rpb24gU2V0UGFyYW1ldGVycygpCiAgewoJJHRoaXMtPlJlZ2lzdGVyTW9kdWxlUGx1Z2luKCk7CgkkdGhpcy0+UmVzdHJpY3RVbmtub3duUGFyYW1zKCk7CgoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2RheScsQ0xFQU5fSU5UKTsKCgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZGlzcGxheScsQ0xFQU5fU1RSSU5HKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdjYXRlZ29yeScsQ0xFQU5fU1RSSU5HKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCd3ZWVrJyxDTEVBTl9JTlQpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ21vbnRoJyxDTEVBTl9JTlQpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3llYXInLENMRUFOX0lOVCk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZGF0ZScsQ0xFQU5fU1RSSU5HKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCd1c2Vfc2Vzc2lvbicsQ0xFQU5fU1RSSU5HKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpbmxpbmUnLENMRUFOX0lOVCk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncmV2ZXJzZScsQ0xFQU5fU1RSSU5HKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdwYXN0aXRlbXMnLENMRUFOX0lOVCk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZGV0YWlscGFnZScsQ0xFQU5fU1RSSU5HKTsKCgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncGFnZScsQ0xFQU5fSU5UKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdldmVudF9pZCcsQ0xFQU5fSU5UKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdsaW1pdCcsQ0xFQU5fSU5UKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdjYWxlbmRhcnRlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2V2ZW50dGVtcGxhdGUnLENMRUFOX1NUUklORyk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbGlzdHRlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3VwY29taW5nbGlzdHRlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NlYXJjaHRlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOyAvLyB0b2RvLCBkb2MgdGhpcy4KCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzZWFyY2hyZXN1bHR0ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsgLy8gdG9kbywgZG9jIHRoaXMuCgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc2VhcmNocmVzdWx0cGFnZScsQ0xFQU5fU1RSSU5HKTsgLy8gdG9kbywgZG9jIHRoaXMKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdkaXNwbGF5Zm9yZGF5JyxDTEVBTl9JTlQpOwoKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdteWV2ZW50c3RlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2VkaXRldmVudHRlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwoJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2VkaXRwYWdlJyxDTEVBTl9JTlQpOwoKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCd1bmlxdWVfb25seScsQ0xFQU5fSU5UKTsKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdyZXR1cm5faWQnLENMRUFOX0lOVCk7CgkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc2hvd19pY2FsJyxDTEVBTl9TVFJJTkcpOwoKCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKENMRUFOX1JFR0VYUC4nL2NhbF8uKi8nLENMRUFOX1NUUklORyk7CgoJJHByZWZpeCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cmxfcHJlZml4Jyk7CglpZiggISRwcmVmaXggKSAkcHJlZml4ID0gJ2NhbGVuZGFyJzsKCSR0aGlzLT5SZWdpc3RlclJvdXRlKCcvJy4kcHJlZml4LidcLyg/UDxyZXR1cm5pZD5bMC05XSspXC8oP1A8ZXZlbnRfaWQ+WzAtOV0rKS0uKiQvJywKCQkJCQkJIGFycmF5KCdhY3Rpb24nPT4nZGVmYXVsdCcsJ2Rpc3BsYXknPT4nZXZlbnQnKSk7CiAgfQoKICBmdW5jdGlvbiBJbml0aWFsaXplQWRtaW4oKQogIHsKCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ215ZXZlbnRzdGVtcGxhdGUnLCcnLCR0aGlzLT5MYW5nKCdoZWxwX3BhcmFtX215ZXZlbnRzdGVtcGxhdGUnKSk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdlZGl0ZXZlbnR0ZW1wbGF0ZScsJycsJHRoaXMtPkxhbmcoJ2hlbHBfcGFyYW1fZWRpdGV2ZW50dGVtcGxhdGUnKSk7CgkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdlZGl0cGFnZScsJycsJHRoaXMtPkxhbmcoJ2hlbHBfcGFyYW1fZWRpdHBhZ2UnKSk7CiAgfQoKICBmdW5jdGlvbiBJbml0aWFsaXplRnJvbnRlbmQoKSB7ICR0aGlzLT5TZXRQYXJhbWV0ZXJzKCk7IH0KICBmdW5jdGlvbiBHZXROYW1lKCkgeyByZXR1cm4gJ0NHQ2FsZW5kYXInOyB9CiAgZnVuY3Rpb24gR2V0QXV0aG9yKCkgeyByZXR1cm4gJ1JvYmVydCBDYW1wYmVsbCc7IH0KICBmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpIHsgcmV0dXJuICdjYWxndXkxMDAwQGdtYWlsLmNvbSc7IH0KICBmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpIHsgcmV0dXJuIHRydWU7IH0KICBmdW5jdGlvbiBIYXNBZG1pbigpIHsgcmV0dXJuIHRydWU7IH0KICBmdW5jdGlvbiBHZXRFdmVudERlc2NyaXB0aW9uKCAkZXZlbnRuYW1lICkgeyByZXR1cm4gJHRoaXMtPmxhbmcoJ2V2ZW50ZGVzYy0nIC4gJGV2ZW50bmFtZSk7IH0KICBmdW5jdGlvbiBHZXRFdmVudEhlbHAoICRldmVudG5hbWUgKSB7CXJldHVybiAkdGhpcy0+bGFuZygnZXZlbnRoZWxwLScgLiAkZXZlbnRuYW1lKTsgfQogIGZ1bmN0aW9uIEdldFZlcnNpb24oKSB7IHJldHVybiAnMS4xNC41JzsgfQogIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpIHsgcmV0dXJuIGFycmF5KCdDR0V4dGVuc2lvbnMnPT4nMS40NC41JywnQ0dTaW1wbGVTbWFydHknPT4nMS43LjQnKTsgfQogIGZ1bmN0aW9uIEdldERlc2NyaXB0aW9uKCRsYW5nID0gJ2VuX1VTJykgeyByZXR1cm4gJHRoaXMtPkxhbmcoImRlc2NyaXB0aW9uIik7IH0KICBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ2NhbF9kZXNjcmlwdGlvbicpOyB9CiAgZnVuY3Rpb24gR2V0QWRtaW5TZWN0aW9uKCkgeyByZXR1cm4gJ2NvbnRlbnQnOyB9CiAgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKSB7IHJldHVybiAnMS4xMS4xMSc7IH0KICBmdW5jdGlvbiBHZXRDaGFuZ2VMb2coKSB7IHJldHVybiBmaWxlX2dldF9jb250ZW50cyhfX0RJUl9fLicvY2hhbmdlbG9nLmluYycpOyB9CiAgZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ2luc3RhbGxfcG9zdG1lc3NhZ2UnKTsgfQogIGZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKSB7IHJldHVybiAkdGhpcy0+TGFuZygnYXJleW91c3VyZV91bmluc3RhbGwnKTsgfQogIGZ1bmN0aW9uIEFsbG93QXV0b0luc3RhbGwoKSB7IHJldHVybiBGQUxTRTsgfQogIGZ1bmN0aW9uIEFsbG93QXV0b1VwZ3JhZGUoKSB7IHJldHVybiBGQUxTRTsgfQogIGZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkgewlyZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RfdW5pbnN0YWxsJyk7IH0KICBwdWJsaWMgZnVuY3Rpb24gTGF6eUxvYWRGcm9udGVuZCgpIHsgcmV0dXJuIEZBTFNFOyB9CiAgcHVibGljIGZ1bmN0aW9uIExhenlMb2FkQWRtaW4oKSB7IHJldHVybiBUUlVFOyB9CgogIGZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpCiAgewoJJHRtcCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcmllbmRseW5hbWUnKTsKCWlmKCAhJHRtcCApICR0bXAgPSAkdGhpcy0+TGFuZygnY2FsX2NhbGVuZGFyJyk7CglyZXR1cm4gJHRtcDsKICB9CgogIGZ1bmN0aW9uIFZpc2libGVUb0FkbWluVXNlcigpCiAgewoJcmV0dXJuICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDYWxlbmRhcicpIHx8CgkgICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0FkZCBDYWxlbmRhciBFdmVudHMnKSB8fAoJICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdFZGl0IE15IENhbGVuZGFyIEV2ZW50cycpIHx8CgkgICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBDYWxlbmRhciBBdHRyaWJ1dGVzJykgfHwKCSAgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSB8fAoJICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJyk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gR2V0SGVhZGVySFRNTCgpCiAgewogICAgLy8gd291bGQgYmUgbmljZSB0byBwdXQgc3R1ZmYgaW4gaGVyZSBwZXIgYWN0aW9uLgogICAgJHVybGJhc2UgPSAkdGhpcy0+R2V0TW9kdWxlVVJMUGF0aCgpOwogICAgJGpzZm10ID0gJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IiVzIj48L3NjcmlwdD4nLiJcbiI7CiAgICAkY3NzZm10ID0gJzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iJXMiLz4nLiJcbiI7CiAgICAkb3V0ID0gbnVsbDsKICAgICRvdXQgLj0gc3ByaW50ZigkY3NzZm10LCR1cmxiYXNlLiIvbGliL2Z1bGxjYWxlbmRhci9mdWxsY2FsZW5kYXIuY3NzIik7CiAgICAkb3V0IC49IHNwcmludGYoJGNzc2ZtdCwkdXJsYmFzZS4iL2xpYi9jb2xvclBpY2tlci9jb2xvclBpY2tlci5jc3MiKTsKICAgICRvdXQgLj0gc3ByaW50ZigkanNmbXQsJHVybGJhc2UuIi9saWIvZnVsbGNhbGVuZGFyL2Z1bGxjYWxlbmRhci5taW4uanMiKTsKICAgICRvdXQgLj0gc3ByaW50ZigkanNmbXQsJHVybGJhc2UuIi9saWIvY29sb3JQaWNrZXIvanF1ZXJ5LmNvbG9yUGlja2VyLm1pbi5qcyIpOwogICAgcmV0dXJuICRvdXQ7CiAgfQoKICBwcm90ZWN0ZWQgZnVuY3Rpb24gR2V0RXZlbnQoJGV2ZW50X2lkLCR1aWQgPSAtMSkKICB7CgkkcnMgPSBudWxsOwoKCWlmKCAkZXZlbnRfaWQgPiAwICkgewoJICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsgLyogQHZhciAkZGIgQURPQ29ubmVjdGlvbiAqLwoJICAkc3FsID0gJ1NFTEVDVCAqIEZST00gJyAuICR0aGlzLT5ldmVudHNfdGFibGVfbmFtZSAuJyBXSEVSRSBldmVudF9pZCA9ID8nOwoJICAkcGFybXMgPSBhcnJheSgkZXZlbnRfaWQpOwoJICBpZiggJHVpZCAhPSAtMSAmJiAkdWlkICE9IDAgKSB7CgkJJHNxbCAuPSAnIEFORCBldmVudF9jcmVhdGVkX2J5ID0gPyc7CgkJJHBhcm1zW10gPSAkdWlkOwoJICB9CgkgICRycyA9ICRkYi0+RXhlY3V0ZSgkc3FsLCRwYXJtcyk7Cgl9CgoJaWYoJHJzICYmICRycy0+UmVjb3JkQ291bnQoKSA+IDApIHsKCSAgJHJlc3VsdCA9ICRycy0+RmV0Y2hSb3coKTsKCSAgJHJlc3VsdFsnZXZlbnRfZGF0ZV9zdGFydF91dCddID0gJGRiLT5Vbml4VGltZVN0YW1wKCRyZXN1bHRbJ2V2ZW50X2RhdGVfc3RhcnQnXSk7CgkgIGlmKCBpc19udWxsKCRyZXN1bHRbJ2V2ZW50X2RhdGVfZW5kJ10pIHx8ICRyZXN1bHRbJ2V2ZW50X2RhdGVfZW5kJ10gPT0gJzAwMDAtMDAtMDAgMDA6MDA6MDAnKSAkcmVzdWx0WydldmVudF9kYXRlX2VuZCddID0gTlVMTDsKCSAgJHJlc3VsdFsnZXZlbnRfZGF0ZV9lbmRfdXQnXSA9ICRkYi0+VW5peFRpbWVTdGFtcCgkcmVzdWx0WydldmVudF9kYXRlX2VuZCddKTsKCSAgaWYoIGlzX251bGwoJHJlc3VsdFsnZXZlbnRfZGF0ZV9yZWN1cl9lbmQnXSkgfHwgJHJlc3VsdFsnZXZlbnRfZGF0ZV9yZWN1cl9lbmQnXSA9PSAnMDAwMC0wMC0wMCAwMDowMDowMCcgKSB7CgkJJHJlc3VsdFsnZXZlbnRfZGF0ZV9yZWN1cl9lbmQnXSA9IE5VTEw7CgkgIH0KCSAgJHJlc3VsdFsnZXZlbnRfZGF0ZV9yZWN1cl9lbmRfdXQnXSA9ICRkYi0+VW5peFRpbWVTdGFtcCgkcmVzdWx0WydldmVudF9kYXRlX3JlY3VyX2VuZCddKTsKCSAgJHJlc3VsdFsnZXZlbnRfcmVjdXJfY291bnQnXSA9ICRyZXN1bHRbJ2V2ZW50X3JlY3VyX25ldmVudHMnXTsKCSAgJHJlc3VsdFsnZXZlbnRfcmVjdXJfd2Vla2RheXMnXSA9IGV4cGxvZGUoJywnLCRyZXN1bHRbJ2V2ZW50X3JlY3VyX3dlZWtkYXlzJ10pOwoJICAkcmVzdWx0WydldmVudF9yZWN1cl9tb250aGRheXMnXSA9IGV4cGxvZGUoJywnLCRyZXN1bHRbJ2V2ZW50X3JlY3VyX21vbnRoZGF5cyddKTsKCSAgJHJlc3VsdFsnY2F0ZWdvcmllcyddID0gYXJyYXkoKTsKCgkgIC8vIG5vdyBwaWNrIHVwIGNhdGVnb3JpZXMKCSAgJHNxbCA9ICdTRUxFQ1QgY2F0ZWdvcnlfaWQgRlJPTSAnIC4gJHRoaXMtPmV2ZW50c190b19jYXRlZ29yaWVzX3RhYmxlX25hbWUgLiAnIFdIRVJFIGV2ZW50X2lkID0gPyc7CgkgICRycyA9ICRkYi0+RXhlY3V0ZSgkc3FsLGFycmF5KCRldmVudF9pZCkpOwoJICBpZigkcnMpIHsKCQl3aGlsZSgkcm93ID0gJHJzLT5GZXRjaFJvdygpKSB7CgkJICAkcmVzdWx0WydjYXRlZ29yaWVzJ11bXSA9ICRyb3dbJ2NhdGVnb3J5X2lkJ107CgkJfQoJICB9CgoJICAvLyBub3cgcGljayB1cCB0aGUgY3VzdG9tIGZpZWxkcwoJICAkcmVzdWx0WydmaWVsZHMnXSA9IGFycmF5KCk7CgkgICRzcWwgPSAnU0VMRUNUIGZpZWxkX25hbWUsIGZpZWxkX3ZhbHVlIEZST00gJyAuICR0aGlzLT5ldmVudF9maWVsZF92YWx1ZXNfdGFibGVfbmFtZSAuICcgV0hFUkUgZXZlbnRfaWQgPSA/JzsKCSAgJHJzID0gJGRiLT5FeGVjdXRlKCRzcWwsYXJyYXkoJGV2ZW50X2lkKSk7CgkgIGlmKCRycykgewoJCXdoaWxlKCRyb3cgPSAkcnMtPkZldGNoUm93KCkpIHsKCQkgICRyZXN1bHRbJ2ZpZWxkcyddWyRyb3dbJ2ZpZWxkX25hbWUnXV0gPSAkcm93WydmaWVsZF92YWx1ZSddOwoJCX0KCSAgfQoKCSAgLy8gdGVzdCBpZiB0aGlzIGlzIGFuIGFsbCBkYXkgZXZlbnQuCgkgIC8vIGN1eiB3ZSBkb24ndCBzdG9yZSB0aGF0IGluZm8gaW4gdGhlIGRhdGFiYXNlLgoJICAkc2QgPSBkYXRlKCd6JywkcmVzdWx0WydldmVudF9kYXRlX3N0YXJ0X3V0J10pOwoJICAkc2ggPSBkYXRlKCdHJywkcmVzdWx0WydldmVudF9kYXRlX3N0YXJ0X3V0J10pOwoJICAkc20gPSBkYXRlKCdpJywkcmVzdWx0WydldmVudF9kYXRlX3N0YXJ0X3V0J10pOwoJICAkZWQgPSBkYXRlKCd6JywkcmVzdWx0WydldmVudF9kYXRlX2VuZF91dCddKTsKCSAgJGVoID0gZGF0ZSgnRycsJHJlc3VsdFsnZXZlbnRfZGF0ZV9lbmRfdXQnXSk7CgkgICRlbSA9IGRhdGUoJ2knLCRyZXN1bHRbJ2V2ZW50X2RhdGVfZW5kX3V0J10pOwoJICAkcmVzdWx0WydhbGxfZGF5X2V2ZW50J10gPSAkcmVzdWx0WydldmVudF9hbGxfZGF5J107CgkgICRyZXN1bHRbJ2FsdF9lbmRfZGF0ZSddID0gMDsKICAgICAgaWYoICRyZXN1bHRbJ2V2ZW50X2RhdGVfc3RhcnRfdXQnXSA8ICRyZXN1bHRbJ2V2ZW50X2RhdGVfZW5kX3V0J10gKSAkcmVzdWx0WydhbHRfZW5kX2RhdGUnXSA9IDE7CgkgIC8vaWYoICRzZCAhPSAkZWQgKSAkcmVzdWx0WydhbHRfZW5kX2RhdGUnXSA9IDE7Cgl9CgllbHNlIHsKCSAgLy8gY3JlYXRlIGFuIGVtcHR5IHJlY29yZAoJICAkcmVzdWx0ID0gYXJyYXkoKTsKCSAgJHJlc3VsdFsnZXZlbnRfaWQnXSA9IC0xOwoJICAkcmVzdWx0WydldmVudF90aXRsZSddID0gJyc7CgkgICRyZXN1bHRbJ2V2ZW50X3N1bW1hcnknXSA9ICcnOwoJICAkcmVzdWx0WydldmVudF9kZXRhaWxzJ10gPSAnJzsKCSAgJHJlc3VsdFsnZXZlbnRfZGF0ZV9zdGFydCddID0gTlVMTDsKCSAgJHJlc3VsdFsnZXZlbnRfZGF0ZV9lbmQnXSA9IE5VTEw7CgkgICRyZXN1bHRbJ2V2ZW50X2RhdGVfc3RhcnRfdXQnXSA9IHN0cnRvdGltZSgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGZsdF9zdGFydHRpbWUnKSk7CgkgICRyZXN1bHRbJ2V2ZW50X2RhdGVfZW5kX3V0J10gPSBOVUxMOwoJICAkcmVzdWx0WydldmVudF9jcmVhdGVkX2J5J10gPSAtMTsKCSAgJHJlc3VsdFsnZXZlbnRfY3JlYXRlX2RhdGUnXSA9IE5VTEw7CgkgICRyZXN1bHRbJ2V2ZW50X21vZGlmaWVkX2RhdGUnXSA9IE5VTEw7CgkgICRyZXN1bHRbJ2V2ZW50X3JlY3VyX3BlcmlvZCddID0gJ25vbmUnOwoJICAkcmVzdWx0WydldmVudF9kYXRlX3JlY3VyX2VuZF91dCddID0gTlVMTDsKCSAgJHJlc3VsdFsnZXZlbnRfZGF0ZV9yZWN1cl9lbmQnXSA9IE5VTEw7CgkgICRyZXN1bHRbJ2V2ZW50X3JlY3VyX2ludGVydmFsJ10gPSAtMTsKCSAgJHJlc3VsdFsnZXZlbnRfcGFyZW50X2lkJ10gPSAtMTsKCSAgJHJlc3VsdFsnZXZlbnRfcmVjdXJfY291bnQnXSA9IC0xOwoJICAkcmVzdWx0WydldmVudF9yZWN1cl93ZWVrZGF5cyddID0gYXJyYXkoKTsKCSAgJHJlc3VsdFsnZXZlbnRfcmVjdXJfbW9udGhkYXlzJ10gPSBhcnJheSgpOwoJICAkcmVzdWx0WydldmVudF9hbGxvd3Nfb3ZlcmxhcCddID0gMTsgLy8gZGVmYXVsdCB0byB5ZXMuCgkgICRyZXN1bHRbJ2NhdGVnb3JpZXMnXSA9IGFycmF5KCk7CgkgICRyZXN1bHRbJ2ZpZWxkcyddID0gYXJyYXkoKTsKCSAgJHJlc3VsdFsnYWxsX2RheV9ldmVudCddID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RmbHRfYWxsZGF5ZXZlbnQnKTsKCSAgJHJlc3VsdFsnYWx0X2VuZF9kYXRlJ10gPSAwOwoJfQoKCXJldHVybiAkcmVzdWx0OwogIH0KCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIEdldEV2ZW50RnJvbVBhcmFtcygmJGV2ZW50LCRwYXJhbXMsJGlzX2VkaXQgPSBmYWxzZSkKICB7CgkgICRkYiA9ICR0aGlzLT5HZXREYigpOwoJICBpZiggaXNzZXQoJHBhcmFtc1snZXZlbnRfaWQnXSkgKSAgJGV2ZW50WydldmVudF9pZCddID0gIChpbnQpJHBhcmFtc1snZXZlbnRfaWQnXTsKCSAgaWYoIGlzc2V0KCRwYXJhbXNbJ2V2ZW50X3BhcmVudF9pZCddKSApICAkZXZlbnRbJ2V2ZW50X3BhcmVudF9pZCddID0gKGludCkkcGFyYW1zWydldmVudF9wYXJlbnRfaWQnXTsKICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ3JlbW92ZWZyb21wYXJlbnQnXSkgJiYgJHBhcmFtc1sncmVtb3ZlZnJvbXBhcmVudCddICkgJGV2ZW50WydldmVudF9wYXJlbnRfaWQnXSA9IC0xOwoJICBpZiggaXNzZXQoJHBhcmFtc1snZXZlbnRfdGl0bGUnXSkgKSAgJGV2ZW50WydldmVudF90aXRsZSddID0gdHJpbSgkcGFyYW1zWydldmVudF90aXRsZSddKTsKCSAgaWYoIGlzc2V0KCRwYXJhbXNbJ2V2ZW50X3N1bW1hcnknXSkgKSAgJGV2ZW50WydldmVudF9zdW1tYXJ5J10gPSB0cmltKCRwYXJhbXNbJ2V2ZW50X3N1bW1hcnknXSk7CgkgIGlmKCBpc3NldCgkcGFyYW1zWydldmVudF9kZXRhaWxzJ10pICkgICRldmVudFsnZXZlbnRfZGV0YWlscyddID0gdHJpbSgkcGFyYW1zWydldmVudF9kZXRhaWxzJ10pOwoJICBpZiggaXNzZXQoJHBhcmFtc1snZXZlbnRfYWxsb3dzX292ZXJsYXAnXSkgKSB7CgkJJGV2ZW50WydldmVudF9hbGxvd3Nfb3ZlcmxhcCddID0gKGludCkkcGFyYW1zWydldmVudF9hbGxvd3Nfb3ZlcmxhcCddOwoJICB9CgkgIGVsc2UgewoJCSR0bXAgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnb3ZlcmxhcF9wb2xpY3knLCdhbGwnKTsKCQkkZXZlbnRbJ2V2ZW50X2FsbG93c19vdmVybGFwJ10gPSAoJHRtcCA9PSAnYWxsJyk/MTowOwoJICB9CgoJICAkYWxsX2RheV9ldmVudCA9IDA7CgkgIGlmKCBpc3NldCgkcGFyYW1zWydhbGxfZGF5X2V2ZW50J10pICkgICRhbGxfZGF5X2V2ZW50ID0gKGludCkkcGFyYW1zWydhbGxfZGF5X2V2ZW50J107CgkgICRldmVudFsnZXZlbnRfYWxsX2RheSddID0gJGFsbF9kYXlfZXZlbnQ7CgoJICAkc3RhcnRfaG91ciA9IDA7CgkgICRzdGFydF9taW51dGUgPSAwOwoJICBpZiggaXNzZXQoJHBhcmFtc1snc3RhcnRkYXRlX01vbnRoJ10pICkgewogICAgICAgICRzdGFydF9ob3VyID0gJHBhcmFtc1snc3RhcnRkYXRlX0hvdXInXTsKCSAgICAkc3RhcnRfbWludXRlID0gJHBhcmFtc1snc3RhcnRkYXRlX01pbnV0ZSddOwoJICAgIGlmKCBpc3NldCgkcGFyYW1zWydzdGFydGRhdGVfTWVyaWRpYW4nXSkgKSB7CgkgICAJICBpZiggJHBhcmFtc1snc3RhcnRkYXRlX01lcmlkaWFuJ10gPT0gJ2FtJyAmJiAkc3RhcnRfaG91ciA+PSAxMiApIHsKCQkgICAgJHN0YXJ0X2hvdXIgLT0gMTI7CiAgICAgICAgICB9CgkJICBlbHNlIGlmKCAkcGFyYW1zWydzdGFydGRhdGVfTWVyaWRpYW4nXSA9PSAncG0nICYmICRzdGFydF9ob3VyIDwgMTIgKSB7CgkJICAgICRzdGFydF9ob3VyICs9IDEyOwoJCSAgfQoJCX0KCQkkZXZlbnRbJ2V2ZW50X2RhdGVfc3RhcnRfdXQnXSA9IG1rdGltZSgkc3RhcnRfaG91ciwkc3RhcnRfbWludXRlLDAsJHBhcmFtc1snc3RhcnRkYXRlX01vbnRoJ10sJHBhcmFtc1snc3RhcnRkYXRlX0RheSddLAoJCQkJCQkJCQkJCSAgICRwYXJhbXNbJ3N0YXJ0ZGF0ZV9ZZWFyJ10pOwoJCSRldmVudFsnZXZlbnRfZGF0ZV9zdGFydCddID0gJGRiLT5EYlRpbWVTdGFtcCgkZXZlbnRbJ2V2ZW50X2RhdGVfc3RhcnRfdXQnXSk7CgkgIH0KCgkgICRldmVudFsnZXZlbnRfZGF0ZV9lbmQnXSA9IE5VTEw7CgkgICRldmVudFsnZXZlbnRfZGF0ZV9lbmRfdXQnXSA9IE5VTEw7CgkgIGlmKCBpc3NldCgkcGFyYW1zWydlbmRkYXRlX3ZhbGlkJ10pICYmICRwYXJhbXNbJ2VuZGRhdGVfdmFsaWQnXSAmJiBpc3NldCgkcGFyYW1zWydlbmRkYXRlX0RheSddKSApIHsKCQkkZW5kX21vbnRoID0gJHBhcmFtc1snZW5kZGF0ZV9Nb250aCddOwoJCSRlbmRfZGF5ID0gJHBhcmFtc1snZW5kZGF0ZV9EYXknXTsKCQkkZW5kX3llYXIgPSAkcGFyYW1zWydlbmRkYXRlX1llYXInXTsKICAJICAgICRlbmRfaG91ciA9ICRwYXJhbXNbJ2VuZGRhdGVfSG91ciddOwoJCSRlbmRfbWludXRlID0gJHBhcmFtc1snZW5kZGF0ZV9NaW51dGUnXTsKCSAgICBpZiggaXNzZXQoJHBhcmFtc1snZW5kZGF0ZV9NZXJpZGlhbiddKSAmJiAkcGFyYW1zWydlbmRkYXRlX01lcmlkaWFuJ10gPT0gJ2FtJyAmJiAkZW5kX2hvdXIgPj0gMTIgKSB7CgkJICAkZW5kX2hvdXIgLT0gMTI7CgkJfQoJCWVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ2VuZGRhdGVfTWVyaWRpYW4nXSkgJiYgJHBhcmFtc1snZW5kZGF0ZV9NZXJpZGlhbiddID09ICdwbScgJiYgJGVuZF9ob3VyIDwgMTIgKSB7CgkJICAkZW5kX2hvdXIgKz0gMTI7CgkJfQoJCSRldmVudFsnZXZlbnRfZGF0ZV9lbmRfdXQnXSA9IG1rdGltZSgkZW5kX2hvdXIsJGVuZF9taW51dGUsMCwkZW5kX21vbnRoLCRlbmRfZGF5LCRlbmRfeWVhcik7CgkJJGV2ZW50WydldmVudF9kYXRlX2VuZCddID0gJGRiLT5EYlRpbWVTdGFtcCgkZXZlbnRbJ2V2ZW50X2RhdGVfZW5kX3V0J10pOwoJICB9CgoJICBpZiggaXNzZXQoJHBhcmFtc1snZXZlbnRfcmVjdXJfcGVyaW9kJ10pICkgJGV2ZW50WydldmVudF9yZWN1cl9wZXJpb2QnXSA9IHRyaW0oJHBhcmFtc1snZXZlbnRfcmVjdXJfcGVyaW9kJ10pOwoJICBpZiggaXNzZXQoJHBhcmFtc1snZXZlbnRfcmVjdXJfaW50ZXJ2YWwnXSkgKSAkZXZlbnRbJ2V2ZW50X3JlY3VyX2ludGVydmFsJ10gPSAoaW50KSRwYXJhbXNbJ2V2ZW50X3JlY3VyX2ludGVydmFsJ107CgkgIGlmKCBpc3NldCgkcGFyYW1zWydldmVudF9yZWN1cl93ZWVrZGF5cyddKSApIHsKCQlpZiggaXNfYXJyYXkoJHBhcmFtc1snZXZlbnRfcmVjdXJfd2Vla2RheXMnXSkgKSB7CgkJICAkZXZlbnRbJ2V2ZW50X3JlY3VyX3dlZWtkYXlzJ10gPSAkcGFyYW1zWydldmVudF9yZWN1cl93ZWVrZGF5cyddOwoJCX0KCQllbHNlIHsKCQkgICRldmVudFsnZXZlbnRfcmVjdXJfd2Vla2RheXMnXSA9IGV4cGxvZGUoJywnLCRwYXJhbXNbJ2V2ZW50X3JlY3VyX3dlZWtkYXlzJ10pOwoJCX0KCSAgfQoJICBpZiggaXNzZXQoJHBhcmFtc1snZXZlbnRfcmVjdXJfbW9udGhkYXlzJ10pICkgewoJCWlmKCBpc19hcnJheSgkcGFyYW1zWydldmVudF9yZWN1cl9tb250aGRheXMnXSkgKSB7CgkJICAkZXZlbnRbJ2V2ZW50X3JlY3VyX21vbnRoZGF5cyddID0gJHBhcmFtc1snZXZlbnRfcmVjdXJfbW9udGhkYXlzJ107CgkJfQoJCWVsc2UgewoJCSAgJGV2ZW50WydldmVudF9yZWN1cl9tb250aGRheXMnXSA9IGV4cGxvZGUoJywnLCRwYXJhbXNbJ2V2ZW50X3JlY3VyX21vbnRoZGF5cyddKTsKCQl9CgkgIH0KCSAgaWYoIGlzc2V0KCRwYXJhbXNbJ2V2ZW50X3JlY3VyX2NvdW50J10pICkgICRldmVudFsnZXZlbnRfcmVjdXJfY291bnQnXSA9IChpbnQpJHBhcmFtc1snZXZlbnRfcmVjdXJfY291bnQnXTsKCSAgaWYoIGlzc2V0KCRwYXJhbXNbJ2V2ZW50X3JlY3VyX2RhdGVfTW9udGgnXSkgJiYgJHBhcmFtc1snZXZlbnRfcmVjdXJfcGVyaW9kJ10gIT0gJ25vbmUnICkgewoJCSRldmVudFsnZXZlbnRfZGF0ZV9yZWN1cl9lbmRfdXQnXSA9IG1rdGltZSgwLDAsMCwKCQkJCQkJCQkJCQkJICAgJHBhcmFtc1snZXZlbnRfcmVjdXJfZGF0ZV9Nb250aCddLCRwYXJhbXNbJ2V2ZW50X3JlY3VyX2RhdGVfRGF5J10sCgkJCQkJCQkJCQkJCSAgICRwYXJhbXNbJ2V2ZW50X3JlY3VyX2RhdGVfWWVhciddKTsKCQkkZXZlbnRbJ2V2ZW50X2RhdGVfcmVjdXJfZW5kJ10gPSAkZGItPkRiVGltZVN0YW1wKCRldmVudFsnZXZlbnRfZGF0ZV9yZWN1cl9lbmRfdXQnXSk7CgkgIH0KCSAgZWxzZSB7CgkJJGV2ZW50WydldmVudF9kYXRlX3JlY3VyX2VuZCddID0gTlVMTDsKCQkkZXZlbnRbJ2V2ZW50X2RhdGVfcmVjdXJfZW5kX3V0J10gPSBOVUxMOwoJICB9CgogICAgICBpZiggaXNzZXQoJHBhcmFtc1snZXZlbnRfY2F0ZWdvcmllcyddKSApIHsKICAgICAgICBpZiggaXNfc3RyaW5nKCRwYXJhbXNbJ2V2ZW50X2NhdGVnb3JpZXMnXSkgKSAkcGFyYW1zWydldmVudF9jYXRlZ29yaWVzJ10gPSB1bnNlcmlhbGl6ZSgkcGFyYW1zWydldmVudF9jYXRlZ29yaWVzJ10pOwogICAgICB9CiAgfQoKICAvLyBkZXByZWNhdGVkCiAgZnVuY3Rpb24gR2V0Q2F0ZWdvcmllcygpCiAgewogICAgcmV0dXJuIFxDR0NhbGVuZGFyXGNhdGVnb3J5OjpnZXRfY2F0ZWdvcmllcygpOwogIH0KCiAgcHJpdmF0ZSBmdW5jdGlvbiBfTG9hZEFkbWluKCkKICB7CglpZiggJHRoaXMtPmFkbWluX3Rvb2xzX2xvYWRlZCA9PT0gZmFsc2UgKSByZXF1aXJlX29uY2UoJ2Z1bmN0aW9ucy5hZG1pbl90b29scy5waHAnKTsKICB9CgogIGZ1bmN0aW9uIEdldEZpZWxkcygpCiAgewoJaWYoICFpc19hcnJheShzZWxmOjokX2NhY2hlZF9maWVsZHMpICkgewoJICBzZWxmOjokX2NhY2hlZF9maWVsZHMgPSBhcnJheSgpOwoKCSAgJGRiID0gJHRoaXMtPkdldERiKCk7IC8qIEB2YXIgJGRiIEFET0Nvbm5lY3Rpb24gKi8KCSAgJGZpZWxkc190YWJsZV9uYW1lID0gJHRoaXMtPmZpZWxkc190YWJsZV9uYW1lOwoJICAkc3FsID0gIlNFTEVDVCAqIEZST00gJGZpZWxkc190YWJsZV9uYW1lIE9SREVSIEJZIGZpZWxkX29yZGVyLGZpZWxkX25hbWUiOwoKCSAgJHJlc3VsdCA9IGFycmF5KCk7CgkgICRycyA9ICRkYi0+RXhlY3V0ZSgkc3FsKTsKCSAgaWYoJHJzICYmICRycy0+UmVjb3JkQ291bnQoKSA+IDApIHsKCQkkcmVzdWx0ID0gJHJzLT5HZXRBcnJheSgpOwoJCWlmKCBpc19hcnJheSgkcmVzdWx0KSAmJiBjb3VudCgkcmVzdWx0KSApIHsKCQkgIGZvcmVhY2goICRyZXN1bHQgYXMgJiRvbmUgKSB7CgkJCWlmKCAkb25lWydmaWVsZF9leHRyYSddICE9ICcnICkgJG9uZVsnZmllbGRfZXh0cmEnXSA9IHVuc2VyaWFsaXplKCRvbmVbJ2ZpZWxkX2V4dHJhJ10pOwoJCSAgfQoJCX0KCQlzZWxmOjokX2NhY2hlZF9maWVsZHMgPSAkcmVzdWx0OwoJICB9Cgl9CglyZXR1cm4gc2VsZjo6JF9jYWNoZWRfZmllbGRzOwogIH0KCiAgZnVuY3Rpb24gR2V0RGF5TmFtZXMoKQogIHsKICAgICR0bXAgPSBjZ2NhbGVuZGFyX3V0aWxzOjpnZXRfbG9jYWxlX2RhdGVzKCk7CiAgICAkZGF5X25hbWVzID0gJHRtcFsnZGF5TmFtZXMnXTsKCglpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZmlyc3RkYXlvZndlZWsnLDEpKSB7CgkgICRmaXJzdCA9IGFycmF5X3NoaWZ0KCRkYXlfbmFtZXMpOwoJICAkZGF5X25hbWVzW10gPSAkZmlyc3Q7Cgl9CglyZXR1cm4gJGRheV9uYW1lczsKICB9CgogIGZ1bmN0aW9uIEdldERheVNob3J0TmFtZXMoKQogIHsKICAgICR0bXAgPSBjZ2NhbGVuZGFyX3V0aWxzOjpnZXRfbG9jYWxlX2RhdGVzKCk7CiAgICAkZGF5X3Nob3J0X25hbWVzID0gJHRtcFsnZGF5TmFtZXNTaG9ydCddOwoKICAgIGlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmaXJzdGRheW9md2VlaycsMSkpIHsKICAgICAgJGZpcnN0ID0gYXJyYXlfc2hpZnQoJGRheV9zaG9ydF9uYW1lcyk7CiAgICAgICRkYXlfc2hvcnRfbmFtZXNbXSA9ICRmaXJzdDsKICAgIH0KICAgIHJldHVybiAkZGF5X3Nob3J0X25hbWVzOwogIH0KCiAgZnVuY3Rpb24gR2V0TW9udGhOYW1lcygpCiAgewogICAgJHRtcCA9IGNnY2FsZW5kYXJfdXRpbHM6OmdldF9sb2NhbGVfZGF0ZXMoKTsKICAgICRtb250aF9uYW1lcyA9ICR0bXBbJ21vbnRoTmFtZXMnXTsKICAgIHJldHVybiAkbW9udGhfbmFtZXM7CiAgfQoKICBmdW5jdGlvbiBHZXRMYWJlbHMoKQogIHsKICAgICAgJGxhbmdbJ2RhdGUnXSA9ICR0aGlzLT5MYW5nKCdjYWxfZGF0ZScpOwogICAgICAkbGFuZ1snc3VtbWFyeSddID0gJHRoaXMtPkxhbmcoJ2NhbF9zdW1tYXJ5Jyk7CgogICAgICAkbGFuZ1snZGV0YWlscyddID0gJHRoaXMtPkxhbmcoJ2NhbF9kZXRhaWxzJyk7CiAgICAgICRsYW5nWydyZXR1cm4nXSA9ICR0aGlzLT5MYW5nKCdjYWxfcmV0dXJuJyk7CgkgICRsYW5nWydjdXJyZW50J10gPSAkdGhpcy0+TGFuZygnY2FsX2N1cnJlbnQnKTsKCSAgJGxhbmdbJ2Zyb20nXSA9ICR0aGlzLT5MYW5nKCdjYWxfZnJvbScpOwogICAgICAkbGFuZ1sndG8nXSA9ICR0aGlzLT5MYW5nKCdjYWxfdG8nKTsKICAgICAgJGxhbmdbJ25leHQnXSA9ICR0aGlzLT5MYW5nKCdjYWxfbmV4dCcpOwogICAgICAkbGFuZ1sncHJldiddID0gJHRoaXMtPkxhbmcoJ2NhbF9wcmV2Jyk7CiAgICAgICRsYW5nWydwYXN0X2V2ZW50cyddID0gJHRoaXMtPkxhbmcoJ2NhbF9wYXN0X2V2ZW50cycpOwogICAgICAkbGFuZ1sndXBjb21pbmdfZXZlbnRzJ10gPSAkdGhpcy0+TGFuZygnY2FsX3VwY29taW5nX2V2ZW50cycpOwogICAgICByZXR1cm4gJGxhbmc7CiAgfQoKCiAgZnVuY3Rpb24gaXNWYWxpZEZpbGVuYW1lKCRmaWxlbmFtZSkKICB7CiAgICAgICR0aGlzLT5fTG9hZEFkbWluKCk7CiAgICAgIHJldHVybiBjYWxlbmRhcl9pc1ZhbGlkRmlsZW5hbWUoJHRoaXMsJGZpbGVuYW1lKTsKICB9CgoKICBmdW5jdGlvbiBIYW5kbGVVcGxvYWQoJGZsZG5hbWUsJiRlcnJvcikKICB7CiAgICAgICR0aGlzLT5fTG9hZEFkbWluKCk7CiAgICAgIHJldHVybiBjYWxlbmRhcl9IYW5kbGVVcGxvYWQoJHRoaXMsJGZsZG5hbWUsJGVycm9yKTsKICB9CgogIGZ1bmN0aW9uIEdldERlZmF1bHRUZW1wbGF0ZSgkdGVtcGxhdGUpCiAgewogICAgICAkZm4gPSBzcHJpbnRmKCdvcmlnXyVzX3RlbXBsYXRlLnRwbCcsJHRlbXBsYXRlKTsKICAgICAgJGZuID0gY21zX2pvaW5fcGF0aChfX0RJUl9fLCd0ZW1wbGF0ZXMnLCRmbik7CiAgICAgICRkYXRhID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CiAgICAgIHJldHVybiAkZGF0YTsKICB9CgogIGZ1bmN0aW9uIE5vQnJlYWsoJHN0cmluZykgewogICAgcmV0dXJuIHN0cl9yZXBsYWNlKCIgIiwiJm5ic3A7Iiwkc3RyaW5nKTsKICB9CgogIGZ1bmN0aW9uIFNlYXJjaFJlc3VsdCgkcmV0dXJuaWQsICRldmVudF9pZCwgJGF0dHIgPSAnJykKICB7CiAgICAgICRyZXN1bHQgPSBhcnJheSgpOwogICAgICBpZiggJGF0dHIgIT0gJ2V2ZW50JykgcmV0dXJuICRyZXN1bHQ7CgogICAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBldmVudF90aXRsZSBGUk9NICcuJHRoaXMtPmV2ZW50c190YWJsZV9uYW1lLicgV0hFUkUgZXZlbnRfaWQgPSA/JzsKICAgICAgJHRpdGxlID0gJGRiLT5HZXRPbmUoICRxdWVyeSwgYXJyYXkoJGV2ZW50X2lkKSApOwoKICAgICAgJHJlc3VsdFswXSA9ICR0aGlzLT5HZXRGcmllbmRseU5hbWUoKTsKICAgICAgJHJlc3VsdFsxXSA9ICR0aXRsZTsKCiAgICAgICR0aXRsZVNFTyA9IG11bmdlX3N0cmluZ190b191cmwoJHRpdGxlKTsKICAgICAgJGRlc3RwYWdlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRjYWxlbmRhcnBhZ2UnLC0xKTsKICAgICAgJGRlc3RwYWdlPSRkZXN0cGFnZSE9LTE/JGRlc3RwYWdlOiRyZXR1cm5pZDsKICAgICAgJGRlc3RwYWdlPSRkZXRhaWxwYWdlIT0nJz8kZGV0YWlscGFnZTokZGVzdHBhZ2U7CgkgICRwcmVmaXggPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXJsX3ByZWZpeCcpOwoJICBpZiggISRwcmVmaXggKSAkcHJlZml4ID0gJ2NhbGVuZGFyJzsKICAgICAgJHByZXR0eXVybCA9IHNwcmludGYoJHByZWZpeC4iLyVkLyVkLSVzIiwgJGRlc3RwYWdlLCRldmVudF9pZCwkdGl0bGVTRU8pOwogICAgICAkcmVzdWx0WzJdID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkZWZhdWx0JywkZGVzdHBhZ2UsJycsCgkJCQkJCQkJCSBhcnJheSgnZXZlbnRfaWQnPT4kZXZlbnRfaWQsJ2Rpc3BsYXknPT4nZXZlbnQnLCdkZXRhaWxwYWdlJz0+JGRlc3RwYWdlLCdyZXR1cm5faWQnPT4kcmV0dXJuaWQpLAoJCQkJCQkJCQkgJycsIHRydWUsICcnLCAnJywgJHByZXR0eXVybCk7CiAgICAgIHJldHVybiAkcmVzdWx0OwogIH0KCiAgZnVuY3Rpb24gU2VhcmNoUmVpbmRleCgmJG1vZHVsZSkKICB7CiAgICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwoKICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy4kdGhpcy0+ZXZlbnRzX3RhYmxlX25hbWUuJyBPUkRFUiBCWSBldmVudF9kYXRlX3N0YXJ0JzsKICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoKCSAgJGZxdWVyeSA9ICdTRUxFQ1QgZnYuZmllbGRfdmFsdWUgRlJPTSAnLiR0aGlzLT5maWVsZHNfdGFibGVfbmFtZS4nIGZkCiAgICAgICAgICAgICAgICAgICBMRUZUIEpPSU4gJy4kdGhpcy0+ZXZlbnRfZmllbGRfdmFsdWVzX3RhYmxlX25hbWUuJyBmdgogICAgICAgICAgICAgICAgICAgICBPTiBmZC5maWVsZF9uYW1lID0gZnYuZmllbGRfbmFtZSBBTkQgZmQuZmllbGRfc2VhcmNoYWJsZSA9IDEKICAgICAgICAgICAgICAgICAgV0hFUkUgZnYuZXZlbnRfaWQgPSA/JzsKCiAgICAgIHdoaWxlICgkZGJyICYmICEkZGJyLT5FT0YpIHsKCQkkdGV4dCA9ICRkYnItPmZpZWxkc1snZXZlbnRfdGl0bGUnXS4nICcuJGRici0+ZmllbGRzWydldmVudF9zdW1tYXJ5J10uJyAnLiRkYnItPmZpZWxkc1snZXZlbnRfZGV0YWlscyddOwoKCQkkbW9yZXdvcmRzID0gJGRiLT5HZXRDb2woJGZxdWVyeSxhcnJheSgkZGJyLT5maWVsZHNbJ2V2ZW50X2lkJ10pKTsKCQlpZiggJG1vcmV3b3JkcyApICR0ZXh0IC49ICcgJy5pbXBsb2RlKCcgJywkbW9yZXdvcmRzKTsKCQkkbW9kdWxlLT5BZGRXb3JkcygkdGhpcy0+R2V0TmFtZSgpLCAkZGJyLT5maWVsZHNbJ2V2ZW50X2lkJ10sICdldmVudCcsICR0ZXh0LCBOVUxMKTsKCQkkZGJyLT5Nb3ZlTmV4dCgpOwoJICB9CiAgfQoKICBmdW5jdGlvbiBUb0FiYnJldmlhdGVkV2Vla2RheXMoJGRhdGEpCiAgewoJaWYoICFpc19hcnJheSgkZGF0YSkgKSAkZGF0YSA9IGV4cGxvZGUoJywnLCRkYXRhKTsKCgkkd2Vla2RheXMgPSBhcnJheSgwPT4nc3VuZGF5JywKCQkJCQkgIDE9Pidtb25kYXknLAoJCQkJCSAgMj0+J3R1ZXNkYXknLAoJCQkJCSAgMz0+J3dlZG5lc2RheScsCgkJCQkJICA0PT4ndGh1cnNkYXknLAoJCQkJCSAgNT0+J2ZyaWRheScsCgkJCQkJICA2PT4nc2F0dXJkYXknKTsKCSRyZXN1bHQgPSBhcnJheSgpOwoJZm9yZWFjaCggJGRhdGEgYXMgJG9uZSApIHsKCSAgJHJlc3VsdFtdID0gJHRoaXMtPkxhbmcoJ2FiYnJfJy4kd2Vla2RheXNbJG9uZV0pOwoJfQogICAgaWYoICFjb3VudCgkcmVzdWx0KSApIHJldHVybiAnJzsKCSR0bXAgPSBpbXBsb2RlKCcsJywkcmVzdWx0KTsKCXJldHVybiAkdG1wOwogIH0KCiAgLy8gdGltZXN0YW1wIGlzIGEgVW5peCB0aW1lc3RhbXAgKHNlY29uZHMgc2luY2UgZXBvY2gpCiAgLy8gdHpvbmUgaXMgYW4gdGltZS16b25lIG9mZnNldCBmcm9tIEdNVAogIGZ1bmN0aW9uIFVuaXhUaW1lc3RhbXBUb2lDYWwoJHRpbWVzdGFtcCwgJHR6b25lID0gMCkKICB7CgkkenVsdSA9ICR0aW1lc3RhbXAgKyAoJHR6b25lICogMzYwMCk7CgkkaUNhbCAgPSBkYXRlKCJZbWRcVEhpc1xaIiwgJHp1bHUpOwoJcmV0dXJuICRpQ2FsOwogIH0KCiAgZnVuY3Rpb24gR2V0Q2F0ZWdvcnlOYW1lcygkY2F0ZWdvcnlfaWRzKQogIHsKCWlmKCAhaXNfYXJyYXkoJGNhdGVnb3J5X2lkcykgJiYgKGludCkkY2F0ZWdvcnlfaWRzID4gMCApIHsKCSAgJGNhdGVnb3J5X2lkcyA9IGFycmF5KCRjYXRldGVnb3J5X2lkcyk7Cgl9CgoJJGFsbGNhdHMgPSAkdGhpcy0+R2V0Q2F0ZWdvcmllcygpOwoJaWYoICFpc19hcnJheSgkYWxsY2F0cykgfHwgY291bnQoJGFsbGNhdHMpID09IDAgKSByZXR1cm47CgoJJHRtcCA9IGFycmF5KCk7Cglmb3JlYWNoKCAkY2F0ZWdvcnlfaWRzIGFzICRvbmUgKSB7CgkgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRhbGxjYXRzKTsgJGkrKyApIHsKCQlpZiggJG9uZSA9PSAkYWxsY2F0c1skaV1bJ2NhdGVnb3J5X2lkJ10gKSB7CgkJICAkdG1wW10gPSAkYWxsY2F0c1skaV1bJ2NhdGVnb3J5X25hbWUnXTsKCQkgIGJyZWFrOwoJCX0KCSAgfQoJfQoJaWYoIGNvdW50KCR0bXApID4gMCApIHJldHVybiBpbXBsb2RlKCcsICcsJHRtcCk7CiAgfQoKICBmdW5jdGlvbiBDb252ZXJ0Q2F0ZWdvcmllc1RvU3RyaW5nKCRjYXRlZ29yaWVzKQogIHsKCSRhcnkgPSBhcnJheSgpOwoJZm9yZWFjaCAoJGNhdGVnb3JpZXMgYXMgJG9uZSkgewoJICAkYXJ5W10gPSAkb25lWydjYXRlZ29yeV9uYW1lJ107Cgl9CglyZXR1cm4gaW1wbG9kZSgnLCcsICRhcnkpOwogIH0KCn07IC8vIGNsYXNzCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgogIDxsaT5WZXJzaW9uIDEuMTQueAogIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gLSBUaGUgMS4xNCBzZXJpZXMgaW50cm9kdWNlcyBhIGdyZWF0IGRlYWwgb2YgaW1wcm92ZW1lbnRzLiAgSXQgYWxzbyBmaXhlcyBhIGxvdCBvZiBvdXRzdGFuZGluZyBpc3N1ZXMuICBUaGVyZSB3aWxsIHByb2JhYmx5IGJlIHRlbXBsYXRlIGluY29tcGF0aWJpbGl0aWVzLjwvcD4KICA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IC0gRnV0dXJlIHJlbGVhc2VzIGluIHRoaXMgc2VyaWVzIHdpbGwgYmUgcmVwbGFjaW5nIHRoZSBmcm9udGVuZCBjYWxlbmRhciB2aWV3IHdpdGggZnVsbGNhbGVuZGFyLjwvcD4KICAgIDx1bD4KCTxsaT5WZXJzaW9uIDEuMTQuNAogICAgICAgICAgPHVsPgoJICAgIDxsaT5maXhlcyB0byBlbnRpdGllcyB3aXRoIHJlc3BlY3QgdG8gdGhlIGZyb250ZW5kIGZvcm0uICBOb3cgaXQgaXMgcG9zc2libGUgdG8gc3VibWl0IEhUTUwgdmlhIGFsbCB0ZXh0IGFyZWFzLiAgSFRNTCBpcyBzYW5pdGl6ZWQgYmVmb3JlIGJlaW5nIHN0b3JlZC4gIFRleHQgaW5wdXQgZmllbGRzIGFyZSBhbHNvIHNhbml0aXplZCBvbiBmcm9udGVuZCBmb3Jtcy4gIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz5UaGlzIG1heSBpbnRyb2R1Y2UgYSBjb21wYXRpYmlsaXR5IHByb2JsZW0uPC9saT4KICAgICAgICAgICAgPGxpPk5vdyByZXF1aXJlcyBQSFAgNS40LjMrPC9saT4KICAgICAgICAgIDwvdWw+Cgk8L2xpPgogICAgICAgICAKCgk8bGk+VmVyc2lvbiAxLjE0LjMKCTxwPlRoZSAxLjE0Lnggc2VyaWVzIHN0b3BzIHVzaW5nIHRoZSBoYXJkY29kZWQgbW9udGggYW5kIGRheSBuYW1lcyBpbiB0aGUgbGFuZyBmaWxlIGFuZCBiZWdhbiB1c2luZyBsb2NhbGUgc3BlY2lmaWVkIGRhdGUgbmFtZXMuICBJZiB5b3UgYXJlIGVuY291bnRlcmluZyBhbiAnb2ZmIGJ5IG9uZScgcHJvYmxlbSBpbiB0aGUgQ0dDYWxlbmRhciBkaXNwbGF5IHRlbXBsYXRlcyB5b3Ugd2lsbCB3YW50IHRvIGZpeCB1cCB5b3VyIGZyb250ZW5kIHRlbXBsYXRlcy4gIFJlc3RvcmluZyBmcm9udGVuZCB0ZW1wbGF0ZXMgdG8gZmFjdG9yeSBkZWZhdWx0cyBzaG91bGQgc29sdmUgdGhlIGlzc3VlLiAgRXNzZW50aWFsbHksIHlvdSBzaG91bGQgbm90IHVzZSB0aGUgeyRtb250aF9uYW1lc30gb3IgeyRkYXlfbmFtZXN9IGFycmF5ICh0aGV5IGFyZSBvbmUgYmFzZWQpLiAgQW5kIGluc3RlYWQgc2hvdWxkIHVzZSB0aGUgeyRldmVudC5ldmVudF9kYXRlX3N0YXJ0fSBhbmQgeyRldmVudC5ldmVudF9kYXRlX2VuZH0gc21hcnR5IHZhcmlhYmxlcywgYW5kIHRoZSBkYXRlX2Zvcm1hdCBtb2RpZmllciB0byBmb3JtYXQgZGF0ZXMgYXBwcm9wcmlhdGVseS48L3A+Cgk8dWw+CgkgIDxsaT5GaXhlcyB0byB0aGUgdXBjb21pbmcgbGlzdCB0ZW1wbGF0ZS48L2xpPgoJPC91bD4KCTwvbGk+CgoJPGxpPlZlcnNpb24gMS4xNC4yCgk8dWw+Cgk8bGk+UmVzdG9yZXMgaW1wb3J0IGxpbmsgKG9vcHMpLjwvbGk+Cgk8L3VsPgoJPC9saT4KCgk8bGk+VmVyc2lvbiAxLjE0LjIKCTxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gIGluIHRoZSBuZWFyIGZ1dHVyZSAoZGVwZW5kaW5nIHVwb24gc3BvbnNvcnNoaXApIEkgcGxhbiB0byByZXBsYWNlIHRoZSBjYWxlbmRhciB2aWV3IHdpdGggYW4gYWpheHkgY2FsZW5kYXIgKGZ1bGxjYWxlbmRhcikuICAgVGhpcyB3aWxsIHByb2JhYmx5IGJyZWFrCiAgICAgY29tcGF0aWJpbGl0eS4gIFlvdSBhcmUgZm9yZXdhcm5lZC48L3A+Cgk8dWw+Cgk8bGk+QnVnIGZpeGVzLjwvbGk+Cgk8bGk+UmV2aXNlIGxpc3QgdGVtcGxhdGUgdG8gdXNlIGRhdGVfZm9ybWF0IGluc3RlYWQgb2YgaGFyZGNvZGVkIG1vbnRoL2RheSBzdHVmZi4gKHN0aWxsIGhhdmUgdG8gZG8gY2FsZW5kYXIgdGVtcGxhdGUpPC9saT4KCTxsaT5SZXZpc2VkIHVwY29taW5nIGxpc3QgYWN0aW9uIHRvIGNhbGwgdGhlIHRlbXBsYXRlIGV2ZW4gaWYgdGhlcmUgYXJlIG5vIGV2ZW50cy48L2xpPgoJPGxpPlJldmlzZWQgdGhlIGV2ZW50IGxvYWRlciB0byBmaWd1cmUgb3V0IGEgY29sb3IgZm9yIGV2ZW50IChiYXNlZCBvbiBjYXRlZ29yeSBjb2xvcnMpLjwvbEk+Cgk8bGk+UmV2aXNlIHRoZSBsaXN0LCBhbmQgY2FsZW5kYXIgdGVtcGxhdGVzIHRvIHNob3cgc29tZSBhamF4eSBzdHVmZiwgYW5kIHRoZSB1c2Ugb2YgY29sb3JzLjwvbGk+Cgk8L3VsPgoJPC9saT4KCgk8bGk+VmVyc2lvbiAxLjE0LjEKCTx1bD4KCTxsaT5CdWcgZml4ZXMuPC9saT4KCTxsaT5XZWVrIGFuZCBkYXkgbmFtZXMgYXJlIG5vdyBnZW5lcmF0ZWQgYnkgdGhlIGxvY2FsZSwgbm90IGZyb20gbGFuZyBzdHJpbmdzLjwvbGk+Cgk8L3VsPgoJPC9saT4KCgk8bGk+VmVyc2lvbiAxLjE0Cgk8dWw+Cgk8bGk+SW1wbGVtZW50cyBmdWxsY2FsZW5kYXIgZm9yIHRoZSBwcmltYXJ5IGV2ZW50IGxpc3RpbmcuCgk8dWw+CiAgCSAgPGxpPkRyYWcgYW5kIGRyb3AgZXZlbnRzIHRvIG1vdmUgdGhlbSB0byBkaWZmZXJlbnQgZGF0ZXMsIG9yIGFkanVzdCBlbmQgdGltZSAoYWpheCk8L2xpPgoJICA8bGk+RGVsZXRlIGV2ZW50cyB2aWEgYWpheDxsaT4KCTwvdWw+Cgk8L2xpPgoJPGxpPkFkZHMgdGhlIEFsbCBkYXkgZXZlbnQgZmxhZzwvbGk+Cgk8bGk+QXNzb2NpYXRlcyBjb2xvcnMgd2l0aCBjYXRlZ29yaWVzIChzZXh5IGluIHRoZSBmdWxsY2FsZW5kYXIgdmlldykuLi4gbm90IHlldCBhdmFpbGFibGUgaW4gdGhlIGZyb250ZW5kLjwvbGk+Cgk8bGk+UmV3b3JrIHRvIHRoZSBhZGQvZWRpdCBldmVudCBmb3JtIChhZG1pbik8L2xpPgoJPGxpPk5vdyBkZXBlbmRzIG9uIENHU2ltcGxlU21hcnR5LjwvbGk+Cgk8bGk+YnVnIGZpeGVzLjwvbGk+Cgk8L3VsPgoJPC9saT4KICAgIDwvdWw+CiAgPC9saT4KCgo8bGk+VmVyc2lvbiAxLjEzLngKICA8dWw+CiAgICA8bGk+QWRkcyB0d28gbmV3IHBlcm1pc3Npb25zIChBZGQgQ2FsZW5kYXIgRXZlbnRzLCBFZGl0IE15IENhbGVuZGFyIEV2ZW50cykuPC9saT4KICAgIDxsaT5NaW5vciBjbGVhbnVwIG9mIHRoZSBhZG1pbiBhZGQgZXZlbnQgdGVtcGxhdGUuPC9saT4KICAgIDxsaT5NaW5vciB0d2Vha2luZyB0byB0aGUgZXZlbnQgbGlzdCB0ZW1wbGF0ZS48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDEuMTIueCAtIE5vdmVtYmVyLCAyMDEzCiAgIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gSW4gdGhlIGZ1dHVyZSBJIHdpbGwgYmUgbW92aW5nIGltYWdlcyBpbnRvIHRoZWlyIG93biBkaXJlY3RvcnksIGFuZCBjbGVhbmluZyB1cCBwcmVmZXJlbmNlcyBtb3JlLiAgVGhpcyB3aWxsIHByb2JhYmx5IGNhdXNlIGNvbXBhdGliaWxpdHkgcHJvYmxlbXMgaW4gdGhlIGZ1dHVyZS48L3A+CiAgPHVsPgogICAgPGxpPlJlbW92ZWQgYWxsIGltYWdlIGNyb3BwaW5nIG9uIHVwbG9hZC4KICAgICAgIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyBjb3VsZCBjYXVzZSBjb21wYXRpYmlsaXR5IHByb2JsZW0gd2l0aCBkaXNwbGF5aW5nIGltYWdlcyBpbiB5b3VyIGV4aXN0aW5nIHRlbXBsYXRlcy48L3A+CiAgICA8L2xpPgogICAgPGxpPkFkZHMgdGhlIGZpbGUgYXR0YWNobWVudCBmaWVsZCB0eXBlLjwvbGk+CiAgICA8bGk+Q29kZSBjbGVhbnVwIGFuZCBidWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAxLjExLnggLSBPY3RvYmVyLCAyMDEzCiAgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGVyZSBwcm9iYWJseSB3aWxsIGJlIGNvbXBhdGliaWxpdHkgcHJvYmxlbXMgZm9yIHBlb3BsZSB1cGdyYWRpbmcgdG8gQ0dDYWxlbmRhciAxLjExLnggYW5kIGJleW9uZCBmcm9tCiAgcHJldmlvdXMgdmVyc2lvbnMuICBQYXJ0aWN1bGFybHkgcmVsYXRlZCB0byB0aGUgZHJvcHBlZCBwYXJhbWV0ZXJzIDxlbT4oc2VlIGJlbG93KTwvZW0+IGFuZCBzb21lIG9mIHRoZSBpbmxpbmUgZml4ZXMgYW5kIGNoYW5nZXMuCiAgWW91IHdpbGwgbmVlZCB0byBkbyB0ZXN0aW5nIG9uIHlvdXIgQ0dDYWxlbmRhciBpbnN0YWxscyBhbmQgZml4IGFueSBjYWxscyB0byBDR0NhbGVuZGFyLCBhbmQgYWxzbyBtYWtlIHNvbWUgY2hhbmdlcyB0byB0ZW1wbGF0ZXMuPC9wPgogIDx1bD4KICAgIDxsaT5CdWcgZml4ZXMuPC9saT4KICAgIDxsaT5Ecm9wcGVkIHRoZSBjb2x1bW4gcGFyYW1ldGVycyAodGhpcyBpcyBhIGRlc2lnbiByZWxhdGVkIGl0ZW0sIG5vdCByZWxhdGVkIHRvIGJ1c2luZXNzIGxvZ2ljIGFuZCBzaG91bGQgYmUgZG9uZSBpbiB0ZW1wbGF0ZXMuKS48L2xpPgogICAgPGxpPkRyb3BwZWQgdGhlIHJldHVybmxpbmsgcGFyYW1ldGVycyBhcyB0aGV5IGRpZG50IHdvcmsgcHJvcGVybHkuICBUaGlzIHNob3VsZCBiZSBkb25lIGluIHRoZSB0ZW1wbGF0ZXMuICAoaGlzdG9yeS5nbygtMSkgb3Igc29tZXRoaW5nKS48L2xpPgogICAgPGxpPkRyb3BwZWQgdGhlIGZpcnN0LWRheS1vZi13ZWVrIHBhcmFtZXRlciwgYW5kIHJlcGxhY2VkIGl0IHdpdGggYSBwcmVmZXJlbmNlLjwvbGk+CiAgICA8bGk+QWxsIG5hdmlnYXRpb24gbGlua3Mgb24gcHJvdG90eXBlIHRlbXBsYXRlcyBub3cgdXNlIG5vbi1pbmxpbmUgVVJMUy48L2xpPgogICAgPGxpPkFkZGVkIGRpc3BsYXk9d2Vla2xpc3Q8L2xpPgogICAgPGxpPlJlZmFjdG9yZWQgdGhlIGV2ZW50IGRpc3BsYXkgaW4gdGhlIGFkbWluIHBhbmVsLgogICAgICA8dWw+CiAgICAgICAgPGxpPkV2ZW50cyBhcmUgbm93IGRpc3BsYXllZCBvbmx5IGZvciBhIHNwZWNpZmllZCBtb250aCBhbmQgeWVhci48L2xpPgogICAgICAgIDxsaT5FYXN5IHNlbGVjdGlvbiBvZiBtb250aCBhbmQgeWVhciwgYW5kIHNjcm9sbGluZyBiZXR3ZWVuIG1vbnRocy48L2xpPgogICAgICAgIDxsaT5UaGUgYWJpbGl0eSB0byBlZGl0IGEgcGFyZW50IGV2ZW50IGZyb20gYSBjaGlsZCBldmVudC48L2xpPgogICAgICAgIDxsaT5GaWx0ZXJzIGFyZSBzdG9yZWQgaW4gdGhlIHVzZXIgc2Vzc2lvbi48L2xpPgogICAgICA8L3VsPgogICAgPC9saT4KICAgIDxsaT5SZWZhY3RvcmVkIGFuZCBjaGVja2VkIGFsbCBwYXJhbWV0ZXJzIHBhc3NlZCB0byBuYXZpZ2F0aW9uIGxpbmtzIGluIHRoZSBpbmRpdmlkdWFsIHZpZWV3czwvbGk+CiAgICA8bGk+QWxsIG5hdmlnYXRpb24gdmlld3MgaGF2ZSBpbl8gYW5kIG5pXyB2YXJpYW50cyB0byBhbGxvdyBzZWxlY3RpbmcgYW4gaW5saW5lLCBvciBub24gaW5saW5lIHZhcmlhbnQgb2YgdGhlIG5hdmlnYXRpb24gbGluay4gIFRob3VnaCB0aGUgbmlfIHByZWZpeGVkIFVSTFMgbWF5IGluZmFjdCBiZSBpbmxpbmUgbGlua3MgZGVwZW5kaW5nIHVwb24gdGhlIHVzZV9zZXNzaW9uIHN0dWZmLjwvbGk+CiAgICA8bGk+RGF5IHZpZXcgVVJMUyBmcm9tIHRoZSBjYWxlbmRhciB2aWV3IG5vdyBoYXZlIG5pXyBhbmQgaW5fIHZhcmlhbnRzLjwvbGk+CiAgICA8bGk+VGhlIGlubGluZSBwYXJhbWV0ZXIgaXMgZGVwcmVjYXRlZCwgYW5kIHdpbGwgYmUgZHJvcHBlZCBhdCB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uLjwvbGk+CiAgICA8bGk+UmVmYWN0b3JlZCBhbGwgZXZlbnQgdmlld3MKICAgICAgPHVsPgogICAgICAgIDxsaT5BbGwgZXZlbnQgdmlld3MgdXNlIHRoZSBjZ2NfZXZlbnRfbG9hZGVyIGNsYXNzLjwvbGk+CiAgICAgICAgPGxpPk9wdGltaXplIGN1c3RvbSBmaWVsZCwgYW5kIGNhdGVnb3J5IGxvYWRpbmcuPC9saT4KICAgICAgICA8bGk+Q3VzdG9tIGZpZWxkcyBhbmQgY2F0ZWdvcmllcyBhcmUgbm93IGNvcGllZCBmcm9tIHRoZSBwYXJlbnQgZXZlbnQgaWYgbm90IHNwZWNpZmllZCBmb3IgdGhlIGNoaWxkIGV2ZW50LjwvbGk+CiAgICAgICAgPGxpPkFsbCBsaW5rcy9VUkxzIGdlbmVyYXRlZCB0byBldmVudHMgdXNlIHByZXR0eSBVUkxTIChpZiBlbmFibGVkKSBhbmQgYXJlIG5vbiBpbmxpbmUuPC9saT4KICAgICAgICA8bGk+YXV0aG9yIGZpZWxkIG1heSBiZSBwcmVzZW50IGZvciBlYWNoIGV2ZW50IHRoYXQgaGFzIGFuIGF1dGhvci4uLiBidXQgYXV0aG9ybmFtZSAod2hpY2ggd2FzIGluY29uc2lzdGVudGx5IGFwcGxpZWQpIGhhcyBiZWVuIGRyb3BwZWQuICBVc2UgYSBzbWFydHkgcGx1Z2luIHRvIGV4dHJhY3QgdGhlIGF1dGhvciBpbmZvcm1hdGlvbiBhbmQgZGlzcGxheSBpdC48L2xpPgogICAgICAgIDxsaT51c2Vfc2Vzc2lvbiBub3cgYXV0b21hdGljYWxseSB0dXJucyBvbiBpbmxpbmUgbW9kZS4uIGFuZCB3aWxsIHVzZSBpbmxpbmUgbW9kZSBmb3IgZXZlbiBuaV8gbGlua3MvdXJsczwvbGk+CiAgICAgICAgPGxpPnVzZV9zZXNzaW9uIHZhbHVlIGlzIG9ubHkgdXNlZCBhcyBhIHByZWZpeCBmb3IgdGhlIHNlc3Npb24ga2V5LiAgVGhlIHNlc3Npb24ga2V5IGlzIHVuaXF1ZSB0byBhbGwgY2FsbHMgb2YgQ0dDYWxlbmRhci48L2xpPgogICAgICAgIDxsaT5maWVsZCBvdXRwdXQgaXMgbm93IGNvbnNpc3RlbnQgd2l0aCBmaWVsZCBvcmRlcmluZyAoYnkgZGVmYXVsdCkuPC9saT4KICAgICAgPC91bD4KICAgIDwvbGk+CiAgICA8bGk+UmVmYWN0b3JlZCB0aGUgYWRtaW4gY2F0ZWdvcmllcyB0YWIuCiAgICAgIDx1bD4KICAgICAgICA8bGk+QWRkcyBkcmFnIGFuZCBkcm9wIHJlb3JkZXJpbmcuPC9saT4KICAgICAgPC91bD4KICAgIDwvbGk+CiAgICA8bGk+UmVmYWN0b3JlZCB0aGUgYWRtaW4gZmllbGRzIHRhYi4KICAgICAgPHVsPgogICAgICAgIDxsaT5BZGRzIGRyYWcgYW5kIGRyb3AgcmVvcmRlcmluZy48L2xpPgogICAgICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIHNwZWNpZnkgd2V0aGVyIGEgdGV4dCBhcmVhIGZpZWxkIGhhcyBhIHd5c2l3eWcgKGFkbWluIGludGVyZmFjZSBvbmx5KS48L2xpPgogICAgICA8L3VsPgogICAgPC9saT4KICAgIDxsaT5Nb3JlPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAxLjEwLjIgLSBGZWJydWFyeSwgMjAxMwogIDx1bD4KICAgIDxsaT5CdWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAxLjEwIC0gQXVndXN0IDIwMTIKICA8dWw+CiAgICA8bGk+QWRkcyBhIHRvZ2dsZSB0byB1c2Ugd3lzaXd5Z3MgZm9yIHRleHRhcmVhIGN1c3RvbSBmaWVsZHMuPC9saT4KICAgIDxsaT5BZGRzIGEgcHJlZmVyZW5jZSBmb3IgdGhlIGZyaWVuZGx5IG5hbWUuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbjogMS45LjcgLSBKdWx5IDIwMTIKICA8dWw+CiAgIDxsaT5OdW1lcm91cyBtaW5vciBidWcgZml4ZXMuPC9saT4KICAgPGxpPk1vdmUgaGVscCBvdXQgb2YgbGFuZyBmaWxlLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb246IDEuOS42IC0gQXByaWwgMjAxMgogIDx1bD4KICAgPGxpPk51bWVyb3VzIG1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICA8bGk+Rml4IGphdmFzY3JpcHQgaXNzdWUgaW4gZWRpdCBldmVudC48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uOiAxLjkuNCAtIE1hcmNoLCAyMDEyCiAgPHVsPgogICA8bGk+TnVtZXJvdXMgbWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgIDxsaT5GaXhlZCBub3RpY2VzIGluIGRlZmF1bHQgdGVtcGxhdGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb246IDEuOS4xIC0gTWFyY2gsIDIwMTIKICA8dWw+CiAgIDxsaT5BZGRlZCBhYmlsaXR5IHRvIHNwZWNpZnkgaW1wb3J0IGNvbHVtbiBkZWxpbWl0ZXI8L2xpPgogICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb246IDEuOSAtIEphbnVhcnksIDIwMTIKICA8dWw+CiAgIDxsaT5JbXByb3ZlZCBldmVudCBpbXBvcnQgY2FwYWJpbGl0aWVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb246IDEuOC4yIC0gT2N0b2JlciwgMjAxMQogIDx1bD4KICAgPGxpPk1pbm9yIGV2ZW50IG5hbWUgZml4LjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb246IDEuNy41IC0gQXVndXN0LCAyMDExCiAgPHVsPgogIDxsaT5BZHMgZmlyc3QgZGF5LCBhbmQgbGFzdCBkYXkgc3R1ZmYgdG8gdGhlIGV2ZW50IGluIHRoZSBjYWxlbmRhciB2aWV3LjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb246IDEuNy4zIC0gSnVseSwgMjAxMQogIDx1bD4KICA8bGk+TW9yZSBGaXhlcyB0byB0aGUgbGlzdCB2aWV3LjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb246IDEuNy4yIC0gSnVseSwgMjAxMQogIDx1bD4KICA8bGk+Rml4ZXMgdG8gdGhlIGxpc3Qgdmlldy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uOiAxLjcuMSAtIEp1bHksIDIwMTEKICA8dWw+CiAgPGxpPlRoZSB1bmlxdWVfb25seSBwYXJhbWV0ZXIgbm93IGRlZmF1bHRzIHRvICZxdW90O29mZiZxdW90OyBmb3IgYWxsIHZpZXdzLjwvbGk+CiAgPGxpPkFkZHMgdGhlIGRpc3BsYXlmb3JkYXkgcGFyYW1ldGVyIHRvIHRoZSB1cGNvbWluZ2xpc3Qgdmlldy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uOiAxLjcgLSBKdW5lLCAyMDExCiAgPHVsPgogIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGZpbHRlciB0aGUgJnF1b3Q7bXlldmVudHMmcXVvdDsgdmlldyBieSBhIGNhdGVnb3J5LjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb246IDEuNi4xIC0gQXByaWwsIDIwMTEKICA8dWw+CiAgICA8bGk+UmVtb3ZlIGRlYnVnIHN0YXRlbWVudHMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbjogMS42IC0gQXByaWwsIDIwMTEKICA8dWw+CiAgICA8bGk+QWRkcyBhIGNvbXBhbnkgZGlyZWN0b3J5IGZpZWxkIHR5cGUuPC9saT4KICAgIDxsaT5CdWcgRml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbjogMS41LjcgLSBTZXB0ZW1iZXIgMjAxMAogIDx1bD4KICAgIDxsaT5Nb3JlIGZpeGVzIHRvIGRpc3BsYXljYWxlbmRhciBhbmQgZGlzcGxheXVwY29taW5nbGlzdC48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uOiAxLjUuNiAtIFNlcHRlbWJlciAyMDEwCiAgPHVsPgogICAgPGxpPkZpeGVzIHRvIHVwY29taW5nIGxpc3QgcGFnaW5hdGlvbi48L2xpPgogICAgPGxpPkZpeGVzIHRvIHVuaXF1ZSBvbmx5IHBhcmFtIGluIHVwY29taW5nIGxpc3QuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbjogMS41LjUgLSBBdWd1c3QgMjAxMAogIDx1bD4KICAgIDxsaT5Ob3cgUmVxdWlyZSBDR0V4dGVuc2lvbnMgMS4xOS40PC9saT4KICAgIDxsaT5BZGRzIGEgcHJlZmVyZW5jZSBmb3IgdGhlIFVSTCBwcmVmaXguPC9saT4KICAgIDxsaT5BZGRzIGEgcHJlZmVyZW5jZSB0byBkZWZhdWx0IG5ldyBldmVudHMgdG8gYWxsIGRheSBldmVudHMuPC9saT4KICAgIDxsaT5BZGRzIGEgcHJlZmVyZW5jZSBmb3IgdGhlIGRlZmF1bHQgc3RhcnQgdGltZSBmb3Igbm9uLWFsbGRheSBldmVudHMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbjogMS41LjQgLSBBdWd1c3QgMjAxMAogIDx1bD4KICAgIDxsaT5CdWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbjogMS41LjMgLSBKdWx5IDIwMTAKICA8dWw+CiAgICA8bGk+TWlub3IgYnVnIGZpeC48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uOiAxLjUuMiAtIEFwcmlsIDIwMTAKICA8dWw+CiAgICA8bGk+UmVtb3ZlIGxlZnRvdmVyIGRlYnVnIHN0YXRlbWVudHMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbjogMS41LjEgLSBBcHJpbCAyMDEwCiAgPHVsPgogICAgPGxpPkJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uOiAxLjUgLSBBcHJpbCAyMDEwCiAgPHVsPgogICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gcGVyZm9ybSBzZWFyY2ggb24gY3VzdG9tIGZpZWxkIHZhbHVlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uOiAxLjQgLSBBcHJpbCAyMDEwCiAgPHVsPgogICAgPGxpPkJ1ZyBmaXhlcyB3cnQgZGVsZXRpbmcgZXZlbnRzLjwvbGk+CiAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSBmb3IgbG9nZ2VkIGluIGZyb250ZW5kIHVzZXJzIHRvIGFkZCwgZWRpdCwgb3IgZGVsZXRlIGNhbGVuZGFyIGV2ZW50cy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uOiAxLjMuMSAtIE1hcmNoIDIwMTAKICA8dWw+CiAgICA8bGk+TWlub3IgYnVnZml4IGluIGluc3RhbGxlci48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uOiAxLjMgLSBEZWNlbWJlciAyMDA5CiAgPHVsPgogICAgPGxpPkFkZHMgdGhlIGNvbmNlcHQgb2YgYWxsIGRheSBldmVudHMuPC9saT4KICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGFsbG93IGV2ZW50cyB0byBvdmVybGFwIG9yIG5vdC48L2xpPgogICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gcmVtb3ZlIGFsbCBjb25mbGljdGluZy9vdmVybGFwcGluZyBldmVudHMuPC9saT4KICAgIDxsaT5WYXJpb3VzIGJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uOiAxLjIuNSAtIFNlcHRlbWJlciAyMDA5CiAgPHVsPgogICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+Cgo8bGk+VmVyc2lvbjogMS4yLjQgLSBTZXB0ZW1iZXIgMjAwOQogIDx1bD4KICAgIDxsaT5BZGRzIHN1cHBvcnQgZm9yIHRleHRhcmVhIGZpZWxkcy48L2xpPgogICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uOiAxLjIuMyAtIFNlcHRlbWJlciAyMDA5CiAgPHVsPgogICAgPGxpPkZpeGVzIHN0dXBpZCBlcnJvcnMgd2l0aCB0aGUgaW5zdGFsbGVyLjwvbGk+CiAgICA8bGk+QWRkcyB1bmlxdWVfb25seSBwYXJhbWV0ZXIuPC9saT4KICAgIDxsaT5BZGRzIGJhc2ljIGljYWwgc3VwcG9ydCBpbiBldmVudCB2aWV3cy4oVGVkKTwvbGk+CiAgICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb246IDEuMi4yIC0gTWF5IDIwMDkKICA8dWw+CiAgICA8bGk+Rml4ZXMgZWRnZSBjYXNlIHByb2JsZW0gd2l0aCBkYXRlcyByZWN1cnJpbmcgbW9udGhseSBvbiB0aGUgTnRoIHdlZWtkYXk8L2xpPgogICAgPGxpPkZpeGVzIHVwY29taW5nbGlzdCB2aWV3LjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb246IDEuMi4xIC0gTWF5IDIwMDkKICA8dWw+CiAgICA8bGk+Rml4ZXMgcHJvYmxlbSB3aXRoIGRhdGVzIHJlY3VycmluZyBtb250aGx5IG9uIHRoZSBOdGggd2Vla2RheTwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb246IDEuMiAtIEFwcmlsIDIwMDkKICA8dWw+CiAgICA8bGk+QWRkcyBwYWdpbmF0aW9uIHRvIHVwY29taW5nIGxpc3Qgdmlldy48L2xpPgogICAgPGxpPlZhcmlvdXMgYnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb246IDEuMSAtIE1hcmNoIDIwMDkKIDx1bD4KICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICA8bGk+QWRkIGVuaGFuY2VkIG1vbnRobHkgcmVjdXJpbmcgZXZlbnQgY2FwYWJpbGl0aWVzLjwvbGk+CiAgIDxsaT5BZGQgc2VhcmNoIGZvcm0uPC9saT4KIDwvdWw+CjwvbGk+CjxsaT48cD5WZXJzaW9uOiAxLjA8L3A+CjxwPkZvcmsgdmVyc2lvbiAwLjguMiBvZiB0aGUgQ2FsZW5kYXIgbW9kdWxlLCBhbmQgY29tcGxldGVseSByZS1kbyBldmVudCBhZGRpbmcsIGVkaXRpbmcsIHJlY3VycmluZyBldmVudHMsIGFuZCB0ZW1wbGF0ZXMuICBUaGlzIG1vZHVsZSBpcyBub3QgY29tcHRpYmxlIHdpdGggcHJldmlvdXMgdmVyc2lvbnMgb2YgdGhlIENhbGVuZGFyIG1vZHVsZTwvcD4KPC9saT4KPGxpPjxwPlZlcnNpb246IDAuOC4yPC9wPgogIDxwPkZpeCB0byBwcmV0dHkgdXJscy48L3A+CjwvbGk+CjxsaT48cD5WZXJzaW9uOiAwLjguMTwvcD4KICA8cD5NaW5vciBmaXggdG8gc2VhcmNoIGludGVncmF0aW9uIHdoZW4gdXBkYXRpbmcgYW4gZXZlbnQuPC9wPgogIDxwPkFkZCBjYXRlZ29yaWVzIGluZm9ybWF0aW9uIHRvIHRoZSBsaXN0IGRpc3BsYXkuPC9wPgo8L2xpPgo8bGk+PHA+VmVyc2lvbjogMC44PC9wPgogIDxwPkFkZHMgc2VhcmNoIGNhcGFiaWxpdGllczwvcD4KPC9saT4KPGxpPjxwPlZlcnNpb246IDAuNy4xNDwvcD4KICA8cD5GaXhlcyBhIHNlcmlvdXMgaXNzdWUgdGhhdCBjb3VsZCByZXN1bHQgaW4gdGhvdXNhbmRzIG9mIG5lZWRsZXNzIGNhbGVuZGFyIGVudHJpZXMgYmVpbmcgaW5zZXJ0ZWQgaW50byB0aGUgdGFibGUuPC9wPgo8L2xpPgo8bGk+PHA+VmVyc2lvbjogMC43LjEzPC9wPgogIDxwPkZpeGVzIGZyaWVuZGx5IHVybHMgZm9yIGRldGFpbCBhcnRpY2xlczwvcD4KPC9saT4KPGxpPjxwPlZlcnNpb246IDAuNy4xMjwvcD4KICA8cD5GaXhlcyBmaWxlIHVwbG9hZCBmaWVsZHM8L3A+CiAgPHA+Rml4ZXMgaXNzdWVzIHdpdGggcmVmZXJlbmNlcyB0byB0aGUgQWxidW0gbW9kdWxlPC9wPgogIDxwPkFkZHMgcmVjdXJyaW5nIGV2ZW50czwvcD4KPC9saT4KPGxpPjxwPlZlcnNpb246IDAuNy4xMTwvcD4KICA8cD5GaXhlZCBhIGJ1ZyBpbnRyb2R1Y2VkIGJ5IGJyaW5pbmcgaW4gdGhlIGNhdGVnb3JpZXMsIHdoZXJlYnkgdGhlIGpvaW4gZGlkIG5vdCB3b3JrIG9uIGVhcmxpZXIgdmVyc2lvbnMgb24gbXlTUUwuIChjb2RlcG9ldCk8L3A+CiAgPHA+QWRkZWQgYSBsaXN0IG9mIGNhdGVnb3JpZXMgdGhhdCBlYWNoIGV2ZW50IGlzIGFzc29jaWF0ZWQgd2l0aCB0byB0aGUgZGF0YSBhdmFpbGFibGUgdG8gdGhlIHRlbXBsYXRlLiAoY29kZXBvZXQpPC9wPgogIDxwPkZpeGVkIGEgYnVnIGludHJvZHVjZWQgaW4gMC43LjEwIHRoYXQgcHJldmVudHMgYSBjbGVhbiBpbnN0YWxsIGZyb20gd29ya2luZywgYmVjYXVzZSBvZiBhbiBleHRyYSBjb21tYSBvbiB0aGUgZW5kIG9mIHRoZSBmaWVsZCBsaXN0IGZvciB0YWJsZSBjbXNfbW9kdWxlX2VjYWxhbmRlcl9ldmVudF9maWVsZF92YWx1ZXMgKGNvZGVwb2V0KTwvcD4KPC9saT4KPGxpPjxwPlZlcnNpb246IDAuNy4xMCAtIGNhbGd1eTEwMDA8L3A+CjxwPkFkZGVkIHN1cHBvcnQgZm9yIGZpbGUgdXBsb2FkcyBpbiBjdXN0b20gZmllbGRzPC9wPgo8cD5BZGRlZCB0aGUgYWJpbGl0eSB0byBzdXBwbHkgXCduZXh0XCcgYXMgdGhlIGV2ZW50X2lkIGluIHRoZSBldmVudCBkaXNwbGF5LCB0byBkaXNwbGF5IHRoZSBuZXh0IHVwY29taW5nIGV2ZW50LjwvcD4KPC9saT4KPGxpPjxwPlZlcnNpb246IDAuNy45PC9wPgogIDxwPkFkZGVkIGN1c3RvbSBmaWVsZHMgdGhhdCBjYW4gYmUgYXNzb2NpYXRlZCB3aXRoIGVhY2ggZXZlbnQuPC9wPgo8L2xpPgoKPGxpPjxwPlZlcnNpb246IDAuNy44PC9wPgogIDxwPkZpeGVkIGEgZGV0YWlscGFnZS9yZXR1cm5saW5rIGJ1Zy4uLiBhZ2Fpbi4uLjwvcD4KPC9saT4KCjxsaT48cD5WZXJzaW9uOiAwLjcuNzwvcD4KICA8cD5BZGRlZCBhIGRlZmF1bHQgY2F0ZWdvcnk8L3A+CiAgPHA+QWRkZWQgYW4gb3B0aW9uIHRvIGFsbG93IGFuIGV2ZW50IHRvIGJlIGZvcmNlZCBhIG1lbWJlciBvZiBhdCBsZWFzdCAxIGNhdGVnb3J5PC9wPgogIDxwPkFkZGVkIG9wdGlvbnMgb2YgaG93IG1hbnkgeWVhcnMgaW4gdGhlIHBhc3QgYW5kIGZ1dHVyZSB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gc2VsZWN0PC9wPgogIDxwPlByb2dyZXNzIHRvd2FyZHMgbW9yZSB1cHRvZGF0ZSBBUEktdXNhZ2UsIHVzaW5nIHRlbXBsYXRlcywgYWN0aW9ucyBldGMuPC9wPgogIDxwPk51bWVyb3VzIGJ1Z2ZpeGVzPC9wPgo8L2xpPgoKPGxpPjxwPlZlcnNpb246IDAuNy42PC9wPgogIDxwPkFkZGVkIGNvbHVtbiBzdHlsZSBvdXRwdXQgZm9yIHVwY29taW5nbGlzdCBhbmQgcGFzdGxpc3Q8L3A+CiAgPHA+TW92ZWQgZXhhbXBsZSBzdHlsZXNoZWV0IHRvIHRoZSBzdHlsZXNoZWV0bGlzdDwvcD4KICA8cD5BZGRlZCB0YWdnaW5nIG9mIGV2ZW50cyBhbmQgZGVsZXRpb25zIG9mIHRhZ2dlZCBvbmVzPC9wPgogIDxwPlJld29ya2VkIGZvciB1c2Ugb2YgZXh0ZXJuYWwgYWN0aW9uZmlsZXM8L3A+CiAgPHA+SW1wcm92ZWQgdGFiLWZ1bmN0aW9uYWxpeSBhbmQgYWN0aW9ubWVzc2FnZXM8L3A+CjwvbGk+Cgo8bGk+PHA+VmVyc2lvbjogMC43LjU8L3A+CiAgPHA+Rml4ZWQgYSBsb3Qgb2Ygb3BlbmJhc2VkaXItaXNzdWVzPC9wPgoKPC9saT4KCjxsaT48cD5WZXJzaW9uOiAwLjcuNDwvcD4KICA8cD5GaXhlZCBoYXJkY29kZWQgbGVuZ3RoIG9mIHRpdGxlIGlucHV0IGZpZWxkPC9wPgogIDxwPkZpeGVkIHNvbWUgbWlzc2luZyBsb2NhbGl6YXRpb248L3A+CiAgPHA+UmVtb3ZlZCBzdXBwb3J0IGZvciBwcmV0dHkgdXJscyAoaXQgd2FzIG5vdCB3b3JraW5nLCBhcyBzb21lIHBhcmFtZXRlcnMgd2VyZSBtaXNzaW5nLCBhbmQgcHV0dGluZyB0aGVtIGluIHdvdWxkIGhhdmUgbWFkZSB0aGUgdXJscyB1bnByZXR0eSBhbnl3YXlzPC9wPgoKICA8cD5VcGRhdGVkIHBlcm1pc3Npb25zIG1vZGVsLiAgTm93IG5lZWQgXCdNb2RpZnkgVGVtcGxhdGVzXCcgcGVybWlzc2lvbiB0byBtb2RpZnkgdGhlIHRlbXBsYXRlcywgYW5kIFwnTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXNcJyBwZXJtaXNzaW9uIHRvIGFkanVzdCB0aGUgcHJlZmVyZW5jZXMuPC9wPgoKPC9saT4KPGxpPjxwPlZlcnNpb246IDAuNy4zPC9wPgogICAgPHA+QWRkZWQgTWluaW11bSBDTVMgVmVyc2lvbjwvcD4KICAgIDxwPkFkZGVkIHRoZSBwYXN0bGlzdCBvcHRpb248L3A+CjwvbGk+CjxsaT48cD5WZXJzaW9uOiAwLjcuMjwvcD4KICAgIDxwPkNNUyAxLjAgY29tcGF0aWJsaXR5PC9wPgogICAgPHA+U3BsaXQgb3V0IGludG8gbnVtZXJvdXMgZmlsZXMgZm9yIGJldHRlciBtZW1vcnkgZWZmaWNpZW5jeTwvcD4KICAgIDxwPkludHJvZHVjZWQgcmVmZXJlbmNlcyB3aGVyZSBuZWNlc3NhcnkgdG8gaW1wcm92ZSBtZW1vcnkgZWZmaWNpZW5jeTwvcD4KICAgIDxwPkFkZGVkIGZ1bmN0aW9ucyB0byBhbGxvdyBmb3IgdGFsa2luZyB3aXRoIHRoaXMgbW9kdWxlIHZpYSBvdGhlciBtb2R1bGVzPC9wPgogICAgPHA+QWRkZWQgZXZlbnRzPC9wPgogICAgPHA+SW1wcm92ZWQgc2VjdXJpdHkgYW5kIHJlZHVjZWQgbWVtb3J5IGZvb3RwcmludDwvcD4KPC9saT4KPGxpPjxwPlZlcnNpb246IDAuNyBzdGFibGU8L3A+CiAgICA8cD5GaXhlZCBwcm9ibGVtIHdpdGggYnJva2VuIG1vbnRoIGxpc3Qgb24gMzFzdCBvZiBlYWNoIG1vbnRoOzwvcD4KICAgIDxwPkZpeGVkIHByb2JsZW0gd2l0aCBDYWxlbmRhciBzaG93aW5nIGluIHRoZSBtZW51IGZvciB1bmF1dGhvcml6ZWQgYWRtaW4gdXNlcnMuPC9wPgo8L2xpPgo8bGk+PHA+VmVyc2lvbjogMC43YmV0YTM8L3A+CiAgICA8cD5BZGRlZCB0aGUgeWVhcmxpc3QgdmlldyBvcHRpb24gdG8gbGlzdCBhbGwgZXZlbnRzIGluIHRoZSB5ZWFyLiBBY3RzIGxpa2UgdGhlIGxpc3Qgb3B0aW9uLjwvcD4KPC9saT4KPGxpPjxwPlZlcnNpb246IDAuN2JldGEyPC9wPgogICAgPHA+QWRkZWQgdGhlIHJldmVyc2UgcGFyYW1ldGVyIHRvIHNob3cgZXZlbnRzIGluIHJldmVyc2UgY2hyb25vbG9naWNhbCBvcmRlci48L3A+CjwvbGk+CjxsaT48cD5WZXJzaW9uOiAwLjdiZXRhMTwvcD4KICAgIDxwPkFkZGVkIG5hdmlnYXRpb24gaW4gdGhlIGxpc3QgdmlldywgZml4ZWQgcHJvYmxlbSB3aXRoIGV2ZW50cyBub3Qgc2hvd2luZyB1cCBpbiB0aGUgbGlzdCB2aWV3LjwvcD4KPC9saT4KPGxpPjxwPlZlcnNpb246IDAuN2FscGhhMjwvcD4KICAgIDxwPjx1bD4KICAgICAgIDxsaT5CdWcgZml4OiBpbmNsdWRlIGxhc3QgZGF5IG9mIHRoZSBtb250aCE8L2xpPgogICAgICAgPGxpPkJ1ZyBmaXg6IHRlbXBsYXRlIHVzZSBvZiAkdGFibGVfaWQgc2hvdWxkIGhhdmUge30gYXJvdW5kIGl0LjwvbGk+CiAgICAgICA8bGk+SW5jbHVkZSBpY29uIGZvciBjb250ZW50IHBhZ2UuPC9saT4KICAgICAgIDxsaT5XaGl0ZXNwYWNlIGNoYW5nZXMgLSB0cmFpbGluZyBzcGFjZXMgYW5kIHRhYnMvc3BhY2UgdGlkeSB1cC48L2xpPgogICAgICAgPGxpPk1ha2UgZGVmYXVsdCB0ZW1wbGF0ZXMgWEhUTUwgMS4wIFRyYW5zaXRpb25hbCBjb21wbGlhbnQuPC9saT4KICAgIDwvdWw+PC9wPgo8L2xpPgo8bGk+PHA+VmVyc2lvbjogMC43YWxwaGExPC9wPgogICAgPHA+Q29tcGxldGUgcmV3cml0ZSB0byBmaXQgaW50byAwLjEwLnggYmV0dGVyLjwvcD4KICAgIDxwPlN1cHBvcnQgbGFuZ3VhZ2UgZm9yIGRheSBhbmQgbW9udGggbmFtZXM8L3A+CiAgICA8cD5Vc2Ugc21hcnR5IHRlbXBsYXRlcyBmb3IgY29udHJvbGxpbmcgdGhlIGRpc3BsYXkuPC9wPgogICAgPHA+UmV3cml0ZSB0aGUgU1FMIHVzZWQgdG8gc2VsZWN0IHRoZSBldmVudHMgdG8gaG9wZWZ1bGx5IGJlIG1vcmUgbWFpbnRhaW5hYmxlLjwvcD4KICAgIDxwPjxzdHJvbmc+Tm90ZTwvc3Ryb25nPiB0aGF0IHRoZSBsYW5ndWFnZSBmaWxlcyBhcmUgbm90IGZ1bGx5IHVwZGF0ZWQgZm9yIHRoaXMgdmVyc2lvbiE8L3A+CjwvbGk+CjxsaT48cD5WZXJzaW9uOiAwLjYuMTwvcD4KICAgIDxwPk1vcmUgZml4ZXMgZm9yIG11bHRpLWRheSBldmVudCBvbiBjYWxlbmRhci4gQWRkZWQgbmV3IHBhcmFtZXRlciAidGltZV9mb3JtYXQiIHNvIHdlIGNhbiBtYWtlIHRoZSBkaXNwbGF5IG9mIGEgc2luZ2xlIGRheSBldmVudCB3aXRoIGEgc3RhcnQgYW5kIHN0b3AgdGltZSBsb29rIGJldHRlci4gQ2hhbmdlIGRlX0RFXCdzICJ0byIgdG8gImJpcyIgYXMgcGVyIE1vcmRyYW5cJ3MgcG9zdCBvbiB0aGUgYm9hcmRzLjwvcD4KPC9saT4KPGxpPjxwPlZlcnNpb246IDAuNjwvcD4KICAgPHA+Rml4IGV2ZW50IGRpc3BsYXkgc28gdGhhdCBpZiB0aGUgZW5kIGRhdGUgaXMgbm90IHNldCwgd2UgZG9uXCd0IGRpc3BsYXkgInRvIi48L3A+CiAgIDxwPkZpbHRlciBieSBjYXRlZ29yeSB3aGVuIGRpc3BsYXlpbmcgYW4gdXBjb21pbmdsaXN0LjwvcD4KICAgPHA+Rml4IEVuZCBkYXRlIHNldHRpbmcgdGhhdCB3YXMgb2ZmIGJ5IG9uZS48L3A+CiAgIDxwPkZpeCBvZGQgYmVoYXZpb3VyIG9mIHllYXIgd2hlbiB0cmFuc2l0aW9uaW5nIGZyb20gSmFuIHRvIERlYyBvciBEZWMgdG8gSmFuIGluIHRoZSBjYWxlbmRhciB2aWV3LjwvcD4KICAgPHA+U3VwcG9ydCBtdXRsaS1kYXkgZXZlbnRzIGluIHRoZSBjYWxlbmRhciB2aWV3LjwvcD4KPC9saT4KPGxpPjxwPlZlcnNpb246IDAuNTwvcD4KICAgIDxwPkZpeCB0aGUgZHJvcCBkb3duIGxpc3QgZm9yIGVuZCBkYXRlIHllYXIuIEZpeCBERSB0cmFuc2xhdGlvbiBvZiAiUmV0dXJuIiAodGhhbmtzIFBpcmF0b3MhKS48L3A+CiAgICA8cD5GaXggc3BhY2luZyBhcm91bmQgInRvIiAodGhhbmtzIEdyZWchKS4gQWRkIERhbmlzaCBhbmQgRHV0Y2ggdHJhbnNsYXRpb25zIGNvdXJ0ZXN5IG9mIGJvYXJkIG1lbWJlcnMgZXNtYW5uIGFuZCBkb250LjwvcD4KPC9saT4KPGxpPjxwPlZlcnNpb246IDAuNDwvcD4KICAgIDxwPlN1cHBvcnQgZm9yIGxhbmd1YWdlIHRyYW5zbGF0aW9ucy4gRGVmYXVsdCB0byBhIE5VTEwgZW5kIGRhdGUuIEltcHJvdmVkIHRoZSBoZWxwIGluZm9ybWF0aW9uLjwvcD4KICAgIDxwPkRpc3BsYXkgdXBjb21pbmcgZXZlbnRzIGluIHRoZSBjb3JyZWN0IG9yZGVyISBPdGhlciBtaW5vciBidWcgZml4ZXMuPC9wPgo8L2xpPgo8bGk+PHA+VmVyc2lvbjogMC4zPC9wPgogICAgPHA+SW5pdGlhbCBzdXBwb3J0IGZvciAiRnJvbSIgYW5kICJUbyIgZGF0ZXMgZm9yIGV2ZW50cy4gQWJpbGl0eSB0byBmaWx0ZXIgYWRtaW4gbGlzdCBvZiBldmVudHMgYnkgY2F0ZWdvcnkuPC9wPgo8L2xpPgo8bGk+PHA+VmVyc2lvbjogMC4yPC9wPgogICAgPHA+TmV3IGRpc3BsYXkgb3B0aW9uOiAidXBjb21pbmdsaXN0Ii4gQWxzbyBtYW55IGJ1Z2ZpeGVzITwvcD4KPC9saT4KPGxpPjxwPlZlcnNpb246IDAuMTwvcD4KICAgIDxwPkluaXRpYWwgcmVsZWFzZS48L3A+CjwvbGk+CjwvdWw+Cg==]]></data>
	</file>
	<file>
	  <filename>/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/css/stylesheet.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKRXhhbXBsZSBzdHlsZXNoZWV0IGZvciBDYWxlbmRhciBtb2R1bGUKCkZvciB1c2luZyB0aGlzICJiaWciLWNsYXNzIGluc2VydCBzb21ldGhpbmcgbGlrZSB0aGlzIGluIHlvdXIgcGFnZQpvciB0ZW1wbGF0ZTsKCntjbXNfbW9kdWxlIG1vZHVsZT0nQ2FsZW5kYXInfQoKKi8KCgoKLyogbWFrZSBhbGwgbGlua3MgcmVkICovCi5jYWxlbmRhciB0ciB0ZCBhCnsKICBjb2xvcjogcmVkOwp9CgovKiBoaWdobGlnaHQgInRvZGF5IiBmb3IgdGhlIHNtYWxsIGNhbGVuZGFyICovCi5jYWxlbmRhci10b2RheQp7CiAgZm9udC13ZWlnaHQ6IGJvbGQ7Cn0KCi8qIGRpc3BsYXkgdGhlICJ1cGNvbWluZ2xpc3QiIGFzIG9uZSBsaW5lIHBlciBlbnRyeSAoYXNzdW1pbmcgZGVmYXVsdCBjbGFzcyBhbmQgaWQgbmFtZXMpICovCiNjYWwtdXBjb21pbmdsaXN0IC5jYWxlbmRhci1kYXRlLXRpdGxlCiwjY2FsLXVwY29taW5nbGlzdCAuY2FsZW5kYXItc3VtbWFyeS10aXRsZQp7CiAgZGlzcGxheTogbm9uZTsKfQoKI2NhbC11cGNvbWluZ2xpc3QgaDIKLCNjYWwtdXBjb21pbmdsaXN0IC5jYWxlbmRhci1kYXRlCiwjY2FsLXVwY29taW5nbGlzdCAuY2FsZW5kYXItc3VtbWFyeQp7CiAgZGlzcGxheTogaW5saW5lOwogIG1hcmdpbi1yaWdodDogNXB4Owp9CgovKiB0aWR5IHVwIHRleHQgc2l6ZXMgZm9yIGxpc3RzICovCiNjYWwtbGlzdCBoMSwgI2NhbC11cGNvbWluZ2xpc3QgaDEKewogIGNvbG9yOiByZWQ7CiAgZm9udC1zaXplOiAxMjAlOwp9CiNjYWwtbGlzdCBoMiwgY2FsLXVwY29taW5nbGlzdCBoMgp7CiAgZm9udC1zaXplOiAxMTAlOwp9CgovKiogbGFyZ2UgY2FsZW5kYXIgcnVsZXMgKGFzc3VtaW5nIGRlZmF1bHQgY2xhc3MgYW5kIGlkIG5hbWVzKSAqKi8KLyogYm9yZGVyIG9uIGZvciAjY2FsLWNhbGVuZGFyICovCiNjYWwtY2FsZW5kYXJ7CiAgbWFyZ2luOiAwcHg7CiAgYm9yZGVyLWNvbGxhcHNlOiAgICBjb2xsYXBzZTsKICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKfQoKLyogbmljZSBzcXVhcmVzIGZvciB0aGUgI2NhbC1jYWxlbmRhciB0YWJsZSAqLwojY2FsLWNhbGVuZGFyIHRoCnsKICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKICBwYWRkaW5nOiAzcHg7CiAgd2lkdGg6IDc1cHg7Cn0KCiNjYWwtY2FsZW5kYXIgdGQgewogIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOwogIHZlcnRpY2FsLWFsaWduOiB0b3A7CiAgcGFkZGluZzogM3B4OwogIGhlaWdodDogNzVweDsKICB3aWR0aDogNzVweDsKfQoKLyogZm9ybWF0IHN1bW1hcmllcyBuaWNlbHkgaW4gI2NhbC1jYWxlbmRhciAqLwojY2FsLWNhbGVuZGFyIHVsCnsKICBtYXJnaW46IDBweDsKICBwYWRkaW5nOiAwcHg7CiAgcGFkZGluZy1sZWZ0OiA1cHg7Cn0KCiNjYWwtY2FsZW5kYXIgbGkKewogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKICBwYWRkaW5nOiAwcHg7CiAgbWFyZ2luOiAwcHg7Cn0KCi8qIGJhY2tncm91bmQgY29sb3VycyBmb3IgI2NhbC1jYWxlbmRhciAqLwojY2FsLWNhbGVuZGFyIHRkCnsKICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7Cn0KCiNjYWwtY2FsZW5kYXIgLmNhbGVuZGFyLWRheQp7CiAgYmFja2dyb3VuZC1jb2xvcjogIzgwZmY4MDsKfQoKI2NhbC1jYWxlbmRhciAuY2FsZW5kYXItdG9kYXkKewogIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgYmFja2dyb3VuZC1jb2xvcjogIzgwODBmZjsKfQoKLmNhbGVuZGFyLWV2ZW50IC5jYWxlbmRhci1kYXRlLXRpdGxlLAouY2FsZW5kYXItZXZlbnQgLmNhbGVuZGFyLXN1bW1hcnktdGl0bGUsCi5jYWxlbmRhci1ldmVudCAuY2FsZW5kYXItZGV0YWlscy10aXRsZQp7CiAgZGlzcGxheTogbm9uZTsKfQ==]]></data>
	</file>
	<file>
	  <filename>/doc/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMywgMjkgSnVuZSAyMDA3CgogQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiA8aHR0cDovL2ZzZi5vcmcvPgogRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCiBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVhbWJsZQoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgYSBmcmVlLCBjb3B5bGVmdCBsaWNlbnNlIGZvcgpzb2Z0d2FyZSBhbmQgb3RoZXIga2luZHMgb2Ygd29ya3MuCgogIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhbmQgb3RoZXIgcHJhY3RpY2FsIHdvcmtzIGFyZSBkZXNpZ25lZAp0byB0YWtlIGF3YXkgeW91ciBmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgdGhlIHdvcmtzLiAgQnkgY29udHJhc3QsCnRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBpbnRlbmRlZCB0byBndWFyYW50ZWUgeW91ciBmcmVlZG9tIHRvCnNoYXJlIGFuZCBjaGFuZ2UgYWxsIHZlcnNpb25zIG9mIGEgcHJvZ3JhbS0tdG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgZnJlZQpzb2Z0d2FyZSBmb3IgYWxsIGl0cyB1c2Vycy4gIFdlLCB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB1c2UgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3N0IG9mIG91ciBzb2Z0d2FyZTsgaXQgYXBwbGllcyBhbHNvIHRvCmFueSBvdGhlciB3b3JrIHJlbGVhc2VkIHRoaXMgd2F5IGJ5IGl0cyBhdXRob3JzLiAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoZW0gaWYgeW91IHdpc2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQgaWYgeW91CndhbnQgaXQsIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQgaW4gbmV3CmZyZWUgcHJvZ3JhbXMsIGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdzLgoKICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIHByZXZlbnQgb3RoZXJzIGZyb20gZGVueWluZyB5b3UKdGhlc2UgcmlnaHRzIG9yIGFza2luZyB5b3UgdG8gc3VycmVuZGVyIHRoZSByaWdodHMuICBUaGVyZWZvcmUsIHlvdSBoYXZlCmNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZgp5b3UgbW9kaWZ5IGl0OiByZXNwb25zaWJpbGl0aWVzIHRvIHJlc3BlY3QgdGhlIGZyZWVkb20gb2Ygb3RoZXJzLgoKICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyCmdyYXRpcyBvciBmb3IgYSBmZWUsIHlvdSBtdXN0IHBhc3Mgb24gdG8gdGhlIHJlY2lwaWVudHMgdGhlIHNhbWUKZnJlZWRvbXMgdGhhdCB5b3UgcmVjZWl2ZWQuICBZb3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGV5LCB0b28sIHJlY2VpdmUKb3IgY2FuIGdldCB0aGUgc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkKa25vdyB0aGVpciByaWdodHMuCgogIERldmVsb3BlcnMgdGhhdCB1c2UgdGhlIEdOVSBHUEwgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIHR3byBzdGVwczoKKDEpIGFzc2VydCBjb3B5cmlnaHQgb24gdGhlIHNvZnR3YXJlLCBhbmQgKDIpIG9mZmVyIHlvdSB0aGlzIExpY2Vuc2UKZ2l2aW5nIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSBpdC4KCiAgRm9yIHRoZSBkZXZlbG9wZXJzJyBhbmQgYXV0aG9ycycgcHJvdGVjdGlvbiwgdGhlIEdQTCBjbGVhcmx5IGV4cGxhaW5zCnRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZSBzb2Z0d2FyZS4gIEZvciBib3RoIHVzZXJzJyBhbmQKYXV0aG9ycycgc2FrZSwgdGhlIEdQTCByZXF1aXJlcyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIGJlIG1hcmtlZCBhcwpjaGFuZ2VkLCBzbyB0aGF0IHRoZWlyIHByb2JsZW1zIHdpbGwgbm90IGJlIGF0dHJpYnV0ZWQgZXJyb25lb3VzbHkgdG8KYXV0aG9ycyBvZiBwcmV2aW91cyB2ZXJzaW9ucy4KCiAgU29tZSBkZXZpY2VzIGFyZSBkZXNpZ25lZCB0byBkZW55IHVzZXJzIGFjY2VzcyB0byBpbnN0YWxsIG9yIHJ1bgptb2RpZmllZCB2ZXJzaW9ucyBvZiB0aGUgc29mdHdhcmUgaW5zaWRlIHRoZW0sIGFsdGhvdWdoIHRoZSBtYW51ZmFjdHVyZXIKY2FuIGRvIHNvLiAgVGhpcyBpcyBmdW5kYW1lbnRhbGx5IGluY29tcGF0aWJsZSB3aXRoIHRoZSBhaW0gb2YKcHJvdGVjdGluZyB1c2VycycgZnJlZWRvbSB0byBjaGFuZ2UgdGhlIHNvZnR3YXJlLiAgVGhlIHN5c3RlbWF0aWMKcGF0dGVybiBvZiBzdWNoIGFidXNlIG9jY3VycyBpbiB0aGUgYXJlYSBvZiBwcm9kdWN0cyBmb3IgaW5kaXZpZHVhbHMgdG8KdXNlLCB3aGljaCBpcyBwcmVjaXNlbHkgd2hlcmUgaXQgaXMgbW9zdCB1bmFjY2VwdGFibGUuICBUaGVyZWZvcmUsIHdlCmhhdmUgZGVzaWduZWQgdGhpcyB2ZXJzaW9uIG9mIHRoZSBHUEwgdG8gcHJvaGliaXQgdGhlIHByYWN0aWNlIGZvciB0aG9zZQpwcm9kdWN0cy4gIElmIHN1Y2ggcHJvYmxlbXMgYXJpc2Ugc3Vic3RhbnRpYWxseSBpbiBvdGhlciBkb21haW5zLCB3ZQpzdGFuZCByZWFkeSB0byBleHRlbmQgdGhpcyBwcm92aXNpb24gdG8gdGhvc2UgZG9tYWlucyBpbiBmdXR1cmUgdmVyc2lvbnMKb2YgdGhlIEdQTCwgYXMgbmVlZGVkIHRvIHByb3RlY3QgdGhlIGZyZWVkb20gb2YgdXNlcnMuCgogIEZpbmFsbHksIGV2ZXJ5IHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlIHBhdGVudHMuClN0YXRlcyBzaG91bGQgbm90IGFsbG93IHBhdGVudHMgdG8gcmVzdHJpY3QgZGV2ZWxvcG1lbnQgYW5kIHVzZSBvZgpzb2Z0d2FyZSBvbiBnZW5lcmFsLXB1cnBvc2UgY29tcHV0ZXJzLCBidXQgaW4gdGhvc2UgdGhhdCBkbywgd2Ugd2lzaCB0bwphdm9pZCB0aGUgc3BlY2lhbCBkYW5nZXIgdGhhdCBwYXRlbnRzIGFwcGxpZWQgdG8gYSBmcmVlIHByb2dyYW0gY291bGQKbWFrZSBpdCBlZmZlY3RpdmVseSBwcm9wcmlldGFyeS4gIFRvIHByZXZlbnQgdGhpcywgdGhlIEdQTCBhc3N1cmVzIHRoYXQKcGF0ZW50cyBjYW5ub3QgYmUgdXNlZCB0byByZW5kZXIgdGhlIHByb2dyYW0gbm9uLWZyZWUuCgogIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kCm1vZGlmaWNhdGlvbiBmb2xsb3cuCgogICAgICAgICAgICAgICAgICAgICAgIFRFUk1TIEFORCBDT05ESVRJT05TCgogIDAuIERlZmluaXRpb25zLgoKICAiVGhpcyBMaWNlbnNlIiByZWZlcnMgdG8gdmVyc2lvbiAzIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KCiAgIkNvcHlyaWdodCIgYWxzbyBtZWFucyBjb3B5cmlnaHQtbGlrZSBsYXdzIHRoYXQgYXBwbHkgdG8gb3RoZXIga2luZHMgb2YKd29ya3MsIHN1Y2ggYXMgc2VtaWNvbmR1Y3RvciBtYXNrcy4KCiAgIlRoZSBQcm9ncmFtIiByZWZlcnMgdG8gYW55IGNvcHlyaWdodGFibGUgd29yayBsaWNlbnNlZCB1bmRlciB0aGlzCkxpY2Vuc2UuICBFYWNoIGxpY2Vuc2VlIGlzIGFkZHJlc3NlZCBhcyAieW91Ii4gICJMaWNlbnNlZXMiIGFuZAoicmVjaXBpZW50cyIgbWF5IGJlIGluZGl2aWR1YWxzIG9yIG9yZ2FuaXphdGlvbnMuCgogIFRvICJtb2RpZnkiIGEgd29yayBtZWFucyB0byBjb3B5IGZyb20gb3IgYWRhcHQgYWxsIG9yIHBhcnQgb2YgdGhlIHdvcmsKaW4gYSBmYXNoaW9uIHJlcXVpcmluZyBjb3B5cmlnaHQgcGVybWlzc2lvbiwgb3RoZXIgdGhhbiB0aGUgbWFraW5nIG9mIGFuCmV4YWN0IGNvcHkuICBUaGUgcmVzdWx0aW5nIHdvcmsgaXMgY2FsbGVkIGEgIm1vZGlmaWVkIHZlcnNpb24iIG9mIHRoZQplYXJsaWVyIHdvcmsgb3IgYSB3b3JrICJiYXNlZCBvbiIgdGhlIGVhcmxpZXIgd29yay4KCiAgQSAiY292ZXJlZCB3b3JrIiBtZWFucyBlaXRoZXIgdGhlIHVubW9kaWZpZWQgUHJvZ3JhbSBvciBhIHdvcmsgYmFzZWQKb24gdGhlIFByb2dyYW0uCgogIFRvICJwcm9wYWdhdGUiIGEgd29yayBtZWFucyB0byBkbyBhbnl0aGluZyB3aXRoIGl0IHRoYXQsIHdpdGhvdXQKcGVybWlzc2lvbiwgd291bGQgbWFrZSB5b3UgZGlyZWN0bHkgb3Igc2Vjb25kYXJpbHkgbGlhYmxlIGZvcgppbmZyaW5nZW1lbnQgdW5kZXIgYXBwbGljYWJsZSBjb3B5cmlnaHQgbGF3LCBleGNlcHQgZXhlY3V0aW5nIGl0IG9uIGEKY29tcHV0ZXIgb3IgbW9kaWZ5aW5nIGEgcHJpdmF0ZSBjb3B5LiAgUHJvcGFnYXRpb24gaW5jbHVkZXMgY29weWluZywKZGlzdHJpYnV0aW9uICh3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uKSwgbWFraW5nIGF2YWlsYWJsZSB0byB0aGUKcHVibGljLCBhbmQgaW4gc29tZSBjb3VudHJpZXMgb3RoZXIgYWN0aXZpdGllcyBhcyB3ZWxsLgoKICBUbyAiY29udmV5IiBhIHdvcmsgbWVhbnMgYW55IGtpbmQgb2YgcHJvcGFnYXRpb24gdGhhdCBlbmFibGVzIG90aGVyCnBhcnRpZXMgdG8gbWFrZSBvciByZWNlaXZlIGNvcGllcy4gIE1lcmUgaW50ZXJhY3Rpb24gd2l0aCBhIHVzZXIgdGhyb3VnaAphIGNvbXB1dGVyIG5ldHdvcmssIHdpdGggbm8gdHJhbnNmZXIgb2YgYSBjb3B5LCBpcyBub3QgY29udmV5aW5nLgoKICBBbiBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZSBkaXNwbGF5cyAiQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcyIKdG8gdGhlIGV4dGVudCB0aGF0IGl0IGluY2x1ZGVzIGEgY29udmVuaWVudCBhbmQgcHJvbWluZW50bHkgdmlzaWJsZQpmZWF0dXJlIHRoYXQgKDEpIGRpc3BsYXlzIGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UsIGFuZCAoMikKdGVsbHMgdGhlIHVzZXIgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhlIHdvcmsgKGV4Y2VwdCB0byB0aGUKZXh0ZW50IHRoYXQgd2FycmFudGllcyBhcmUgcHJvdmlkZWQpLCB0aGF0IGxpY2Vuc2VlcyBtYXkgY29udmV5IHRoZQp3b3JrIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIGhvdyB0byB2aWV3IGEgY29weSBvZiB0aGlzIExpY2Vuc2UuICBJZgp0aGUgaW50ZXJmYWNlIHByZXNlbnRzIGEgbGlzdCBvZiB1c2VyIGNvbW1hbmRzIG9yIG9wdGlvbnMsIHN1Y2ggYXMgYQptZW51LCBhIHByb21pbmVudCBpdGVtIGluIHRoZSBsaXN0IG1lZXRzIHRoaXMgY3JpdGVyaW9uLgoKICAxLiBTb3VyY2UgQ29kZS4KCiAgVGhlICJzb3VyY2UgY29kZSIgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsKZm9yIG1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgIk9iamVjdCBjb2RlIiBtZWFucyBhbnkgbm9uLXNvdXJjZQpmb3JtIG9mIGEgd29yay4KCiAgQSAiU3RhbmRhcmQgSW50ZXJmYWNlIiBtZWFucyBhbiBpbnRlcmZhY2UgdGhhdCBlaXRoZXIgaXMgYW4gb2ZmaWNpYWwKc3RhbmRhcmQgZGVmaW5lZCBieSBhIHJlY29nbml6ZWQgc3RhbmRhcmRzIGJvZHksIG9yLCBpbiB0aGUgY2FzZSBvZgppbnRlcmZhY2VzIHNwZWNpZmllZCBmb3IgYSBwYXJ0aWN1bGFyIHByb2dyYW1taW5nIGxhbmd1YWdlLCBvbmUgdGhhdAppcyB3aWRlbHkgdXNlZCBhbW9uZyBkZXZlbG9wZXJzIHdvcmtpbmcgaW4gdGhhdCBsYW5ndWFnZS4KCiAgVGhlICJTeXN0ZW0gTGlicmFyaWVzIiBvZiBhbiBleGVjdXRhYmxlIHdvcmsgaW5jbHVkZSBhbnl0aGluZywgb3RoZXIKdGhhbiB0aGUgd29yayBhcyBhIHdob2xlLCB0aGF0IChhKSBpcyBpbmNsdWRlZCBpbiB0aGUgbm9ybWFsIGZvcm0gb2YKcGFja2FnaW5nIGEgTWFqb3IgQ29tcG9uZW50LCBidXQgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhhdCBNYWpvcgpDb21wb25lbnQsIGFuZCAoYikgc2VydmVzIG9ubHkgdG8gZW5hYmxlIHVzZSBvZiB0aGUgd29yayB3aXRoIHRoYXQKTWFqb3IgQ29tcG9uZW50LCBvciB0byBpbXBsZW1lbnQgYSBTdGFuZGFyZCBJbnRlcmZhY2UgZm9yIHdoaWNoIGFuCmltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluIHNvdXJjZSBjb2RlIGZvcm0uICBBCiJNYWpvciBDb21wb25lbnQiLCBpbiB0aGlzIGNvbnRleHQsIG1lYW5zIGEgbWFqb3IgZXNzZW50aWFsIGNvbXBvbmVudAooa2VybmVsLCB3aW5kb3cgc3lzdGVtLCBhbmQgc28gb24pIG9mIHRoZSBzcGVjaWZpYyBvcGVyYXRpbmcgc3lzdGVtCihpZiBhbnkpIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHdvcmsgcnVucywgb3IgYSBjb21waWxlciB1c2VkIHRvCnByb2R1Y2UgdGhlIHdvcmssIG9yIGFuIG9iamVjdCBjb2RlIGludGVycHJldGVyIHVzZWQgdG8gcnVuIGl0LgoKICBUaGUgIkNvcnJlc3BvbmRpbmcgU291cmNlIiBmb3IgYSB3b3JrIGluIG9iamVjdCBjb2RlIGZvcm0gbWVhbnMgYWxsCnRoZSBzb3VyY2UgY29kZSBuZWVkZWQgdG8gZ2VuZXJhdGUsIGluc3RhbGwsIGFuZCAoZm9yIGFuIGV4ZWN1dGFibGUKd29yaykgcnVuIHRoZSBvYmplY3QgY29kZSBhbmQgdG8gbW9kaWZ5IHRoZSB3b3JrLCBpbmNsdWRpbmcgc2NyaXB0cyB0bwpjb250cm9sIHRob3NlIGFjdGl2aXRpZXMuICBIb3dldmVyLCBpdCBkb2VzIG5vdCBpbmNsdWRlIHRoZSB3b3JrJ3MKU3lzdGVtIExpYnJhcmllcywgb3IgZ2VuZXJhbC1wdXJwb3NlIHRvb2xzIG9yIGdlbmVyYWxseSBhdmFpbGFibGUgZnJlZQpwcm9ncmFtcyB3aGljaCBhcmUgdXNlZCB1bm1vZGlmaWVkIGluIHBlcmZvcm1pbmcgdGhvc2UgYWN0aXZpdGllcyBidXQKd2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRoZSB3b3JrLiAgRm9yIGV4YW1wbGUsIENvcnJlc3BvbmRpbmcgU291cmNlCmluY2x1ZGVzIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBzb3VyY2UgZmlsZXMgZm9yCnRoZSB3b3JrLCBhbmQgdGhlIHNvdXJjZSBjb2RlIGZvciBzaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljYWxseQpsaW5rZWQgc3VicHJvZ3JhbXMgdGhhdCB0aGUgd29yayBpcyBzcGVjaWZpY2FsbHkgZGVzaWduZWQgdG8gcmVxdWlyZSwKc3VjaCBhcyBieSBpbnRpbWF0ZSBkYXRhIGNvbW11bmljYXRpb24gb3IgY29udHJvbCBmbG93IGJldHdlZW4gdGhvc2UKc3VicHJvZ3JhbXMgYW5kIG90aGVyIHBhcnRzIG9mIHRoZSB3b3JrLgoKICBUaGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgbmVlZCBub3QgaW5jbHVkZSBhbnl0aGluZyB0aGF0IHVzZXJzCmNhbiByZWdlbmVyYXRlIGF1dG9tYXRpY2FsbHkgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgQ29ycmVzcG9uZGluZwpTb3VyY2UuCgogIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYSB3b3JrIGluIHNvdXJjZSBjb2RlIGZvcm0gaXMgdGhhdApzYW1lIHdvcmsuCgogIDIuIEJhc2ljIFBlcm1pc3Npb25zLgoKICBBbGwgcmlnaHRzIGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlIGFyZSBncmFudGVkIGZvciB0aGUgdGVybSBvZgpjb3B5cmlnaHQgb24gdGhlIFByb2dyYW0sIGFuZCBhcmUgaXJyZXZvY2FibGUgcHJvdmlkZWQgdGhlIHN0YXRlZApjb25kaXRpb25zIGFyZSBtZXQuICBUaGlzIExpY2Vuc2UgZXhwbGljaXRseSBhZmZpcm1zIHlvdXIgdW5saW1pdGVkCnBlcm1pc3Npb24gdG8gcnVuIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0uICBUaGUgb3V0cHV0IGZyb20gcnVubmluZyBhCmNvdmVyZWQgd29yayBpcyBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZSBvbmx5IGlmIHRoZSBvdXRwdXQsIGdpdmVuIGl0cwpjb250ZW50LCBjb25zdGl0dXRlcyBhIGNvdmVyZWQgd29yay4gIFRoaXMgTGljZW5zZSBhY2tub3dsZWRnZXMgeW91cgpyaWdodHMgb2YgZmFpciB1c2Ugb3Igb3RoZXIgZXF1aXZhbGVudCwgYXMgcHJvdmlkZWQgYnkgY29weXJpZ2h0IGxhdy4KCiAgWW91IG1heSBtYWtlLCBydW4gYW5kIHByb3BhZ2F0ZSBjb3ZlcmVkIHdvcmtzIHRoYXQgeW91IGRvIG5vdApjb252ZXksIHdpdGhvdXQgY29uZGl0aW9ucyBzbyBsb25nIGFzIHlvdXIgbGljZW5zZSBvdGhlcndpc2UgcmVtYWlucwppbiBmb3JjZS4gIFlvdSBtYXkgY29udmV5IGNvdmVyZWQgd29ya3MgdG8gb3RoZXJzIGZvciB0aGUgc29sZSBwdXJwb3NlCm9mIGhhdmluZyB0aGVtIG1ha2UgbW9kaWZpY2F0aW9ucyBleGNsdXNpdmVseSBmb3IgeW91LCBvciBwcm92aWRlIHlvdQp3aXRoIGZhY2lsaXRpZXMgZm9yIHJ1bm5pbmcgdGhvc2Ugd29ya3MsIHByb3ZpZGVkIHRoYXQgeW91IGNvbXBseSB3aXRoCnRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UgaW4gY29udmV5aW5nIGFsbCBtYXRlcmlhbCBmb3Igd2hpY2ggeW91IGRvCm5vdCBjb250cm9sIGNvcHlyaWdodC4gIFRob3NlIHRodXMgbWFraW5nIG9yIHJ1bm5pbmcgdGhlIGNvdmVyZWQgd29ya3MKZm9yIHlvdSBtdXN0IGRvIHNvIGV4Y2x1c2l2ZWx5IG9uIHlvdXIgYmVoYWxmLCB1bmRlciB5b3VyIGRpcmVjdGlvbgphbmQgY29udHJvbCwgb24gdGVybXMgdGhhdCBwcm9oaWJpdCB0aGVtIGZyb20gbWFraW5nIGFueSBjb3BpZXMgb2YKeW91ciBjb3B5cmlnaHRlZCBtYXRlcmlhbCBvdXRzaWRlIHRoZWlyIHJlbGF0aW9uc2hpcCB3aXRoIHlvdS4KCiAgQ29udmV5aW5nIHVuZGVyIGFueSBvdGhlciBjaXJjdW1zdGFuY2VzIGlzIHBlcm1pdHRlZCBzb2xlbHkgdW5kZXIKdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGJlbG93LiAgU3VibGljZW5zaW5nIGlzIG5vdCBhbGxvd2VkOyBzZWN0aW9uIDEwCm1ha2VzIGl0IHVubmVjZXNzYXJ5LgoKICAzLiBQcm90ZWN0aW5nIFVzZXJzJyBMZWdhbCBSaWdodHMgRnJvbSBBbnRpLUNpcmN1bXZlbnRpb24gTGF3LgoKICBObyBjb3ZlcmVkIHdvcmsgc2hhbGwgYmUgZGVlbWVkIHBhcnQgb2YgYW4gZWZmZWN0aXZlIHRlY2hub2xvZ2ljYWwKbWVhc3VyZSB1bmRlciBhbnkgYXBwbGljYWJsZSBsYXcgZnVsZmlsbGluZyBvYmxpZ2F0aW9ucyB1bmRlciBhcnRpY2xlCjExIG9mIHRoZSBXSVBPIGNvcHlyaWdodCB0cmVhdHkgYWRvcHRlZCBvbiAyMCBEZWNlbWJlciAxOTk2LCBvcgpzaW1pbGFyIGxhd3MgcHJvaGliaXRpbmcgb3IgcmVzdHJpY3RpbmcgY2lyY3VtdmVudGlvbiBvZiBzdWNoCm1lYXN1cmVzLgoKICBXaGVuIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIHlvdSB3YWl2ZSBhbnkgbGVnYWwgcG93ZXIgdG8gZm9yYmlkCmNpcmN1bXZlbnRpb24gb2YgdGVjaG5vbG9naWNhbCBtZWFzdXJlcyB0byB0aGUgZXh0ZW50IHN1Y2ggY2lyY3VtdmVudGlvbgppcyBlZmZlY3RlZCBieSBleGVyY2lzaW5nIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2Ugd2l0aCByZXNwZWN0IHRvCnRoZSBjb3ZlcmVkIHdvcmssIGFuZCB5b3UgZGlzY2xhaW0gYW55IGludGVudGlvbiB0byBsaW1pdCBvcGVyYXRpb24gb3IKbW9kaWZpY2F0aW9uIG9mIHRoZSB3b3JrIGFzIGEgbWVhbnMgb2YgZW5mb3JjaW5nLCBhZ2FpbnN0IHRoZSB3b3JrJ3MKdXNlcnMsIHlvdXIgb3IgdGhpcmQgcGFydGllcycgbGVnYWwgcmlnaHRzIHRvIGZvcmJpZCBjaXJjdW12ZW50aW9uIG9mCnRlY2hub2xvZ2ljYWwgbWVhc3VyZXMuCgogIDQuIENvbnZleWluZyBWZXJiYXRpbSBDb3BpZXMuCgogIFlvdSBtYXkgY29udmV5IHZlcmJhdGltIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSdzIHNvdXJjZSBjb2RlIGFzIHlvdQpyZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdSBjb25zcGljdW91c2x5IGFuZAphcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2U7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIHN0YXRpbmcgdGhhdCB0aGlzIExpY2Vuc2UgYW5kIGFueQpub24tcGVybWlzc2l2ZSB0ZXJtcyBhZGRlZCBpbiBhY2NvcmQgd2l0aCBzZWN0aW9uIDcgYXBwbHkgdG8gdGhlIGNvZGU7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIG9mIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsgYW5kIGdpdmUgYWxsCnJlY2lwaWVudHMgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBQcm9ncmFtLgoKICBZb3UgbWF5IGNoYXJnZSBhbnkgcHJpY2Ugb3Igbm8gcHJpY2UgZm9yIGVhY2ggY29weSB0aGF0IHlvdSBjb252ZXksCmFuZCB5b3UgbWF5IG9mZmVyIHN1cHBvcnQgb3Igd2FycmFudHkgcHJvdGVjdGlvbiBmb3IgYSBmZWUuCgogIDUuIENvbnZleWluZyBNb2RpZmllZCBTb3VyY2UgVmVyc2lvbnMuCgogIFlvdSBtYXkgY29udmV5IGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSwgb3IgdGhlIG1vZGlmaWNhdGlvbnMgdG8KcHJvZHVjZSBpdCBmcm9tIHRoZSBQcm9ncmFtLCBpbiB0aGUgZm9ybSBvZiBzb3VyY2UgY29kZSB1bmRlciB0aGUKdGVybXMgb2Ygc2VjdGlvbiA0LCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgeW91IG1vZGlmaWVkCiAgICBpdCwgYW5kIGdpdmluZyBhIHJlbGV2YW50IGRhdGUuCgogICAgYikgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgaXQgaXMKICAgIHJlbGVhc2VkIHVuZGVyIHRoaXMgTGljZW5zZSBhbmQgYW55IGNvbmRpdGlvbnMgYWRkZWQgdW5kZXIgc2VjdGlvbgogICAgNy4gIFRoaXMgcmVxdWlyZW1lbnQgbW9kaWZpZXMgdGhlIHJlcXVpcmVtZW50IGluIHNlY3Rpb24gNCB0bwogICAgImtlZXAgaW50YWN0IGFsbCBub3RpY2VzIi4KCiAgICBjKSBZb3UgbXVzdCBsaWNlbnNlIHRoZSBlbnRpcmUgd29yaywgYXMgYSB3aG9sZSwgdW5kZXIgdGhpcwogICAgTGljZW5zZSB0byBhbnlvbmUgd2hvIGNvbWVzIGludG8gcG9zc2Vzc2lvbiBvZiBhIGNvcHkuICBUaGlzCiAgICBMaWNlbnNlIHdpbGwgdGhlcmVmb3JlIGFwcGx5LCBhbG9uZyB3aXRoIGFueSBhcHBsaWNhYmxlIHNlY3Rpb24gNwogICAgYWRkaXRpb25hbCB0ZXJtcywgdG8gdGhlIHdob2xlIG9mIHRoZSB3b3JrLCBhbmQgYWxsIGl0cyBwYXJ0cywKICAgIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZXkgYXJlIHBhY2thZ2VkLiAgVGhpcyBMaWNlbnNlIGdpdmVzIG5vCiAgICBwZXJtaXNzaW9uIHRvIGxpY2Vuc2UgdGhlIHdvcmsgaW4gYW55IG90aGVyIHdheSwgYnV0IGl0IGRvZXMgbm90CiAgICBpbnZhbGlkYXRlIHN1Y2ggcGVybWlzc2lvbiBpZiB5b3UgaGF2ZSBzZXBhcmF0ZWx5IHJlY2VpdmVkIGl0LgoKICAgIGQpIElmIHRoZSB3b3JrIGhhcyBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZXMsIGVhY2ggbXVzdCBkaXNwbGF5CiAgICBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzOyBob3dldmVyLCBpZiB0aGUgUHJvZ3JhbSBoYXMgaW50ZXJhY3RpdmUKICAgIGludGVyZmFjZXMgdGhhdCBkbyBub3QgZGlzcGxheSBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzLCB5b3VyCiAgICB3b3JrIG5lZWQgbm90IG1ha2UgdGhlbSBkbyBzby4KCiAgQSBjb21waWxhdGlvbiBvZiBhIGNvdmVyZWQgd29yayB3aXRoIG90aGVyIHNlcGFyYXRlIGFuZCBpbmRlcGVuZGVudAp3b3Jrcywgd2hpY2ggYXJlIG5vdCBieSB0aGVpciBuYXR1cmUgZXh0ZW5zaW9ucyBvZiB0aGUgY292ZXJlZCB3b3JrLAphbmQgd2hpY2ggYXJlIG5vdCBjb21iaW5lZCB3aXRoIGl0IHN1Y2ggYXMgdG8gZm9ybSBhIGxhcmdlciBwcm9ncmFtLAppbiBvciBvbiBhIHZvbHVtZSBvZiBhIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMgY2FsbGVkIGFuCiJhZ2dyZWdhdGUiIGlmIHRoZSBjb21waWxhdGlvbiBhbmQgaXRzIHJlc3VsdGluZyBjb3B5cmlnaHQgYXJlIG5vdAp1c2VkIHRvIGxpbWl0IHRoZSBhY2Nlc3Mgb3IgbGVnYWwgcmlnaHRzIG9mIHRoZSBjb21waWxhdGlvbidzIHVzZXJzCmJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtzIHBlcm1pdC4gIEluY2x1c2lvbiBvZiBhIGNvdmVyZWQgd29yawppbiBhbiBhZ2dyZWdhdGUgZG9lcyBub3QgY2F1c2UgdGhpcyBMaWNlbnNlIHRvIGFwcGx5IHRvIHRoZSBvdGhlcgpwYXJ0cyBvZiB0aGUgYWdncmVnYXRlLgoKICA2LiBDb252ZXlpbmcgTm9uLVNvdXJjZSBGb3Jtcy4KCiAgWW91IG1heSBjb252ZXkgYSBjb3ZlcmVkIHdvcmsgaW4gb2JqZWN0IGNvZGUgZm9ybSB1bmRlciB0aGUgdGVybXMKb2Ygc2VjdGlvbnMgNCBhbmQgNSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBjb252ZXkgdGhlCm1hY2hpbmUtcmVhZGFibGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwKaW4gb25lIG9mIHRoZXNlIHdheXM6CgogICAgYSkgQ29udmV5IHRoZSBvYmplY3QgY29kZSBpbiwgb3IgZW1ib2RpZWQgaW4sIGEgcGh5c2ljYWwgcHJvZHVjdAogICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGZpeGVkIG9uIGEgZHVyYWJsZSBwaHlzaWNhbCBtZWRpdW0KICAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLgoKICAgIGIpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsIHByb2R1Y3QKICAgIChpbmNsdWRpbmcgYSBwaHlzaWNhbCBkaXN0cmlidXRpb24gbWVkaXVtKSwgYWNjb21wYW5pZWQgYnkgYQogICAgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJzIGFuZCB2YWxpZCBmb3IgYXMKICAgIGxvbmcgYXMgeW91IG9mZmVyIHNwYXJlIHBhcnRzIG9yIGN1c3RvbWVyIHN1cHBvcnQgZm9yIHRoYXQgcHJvZHVjdAogICAgbW9kZWwsIHRvIGdpdmUgYW55b25lIHdobyBwb3NzZXNzZXMgdGhlIG9iamVjdCBjb2RlIGVpdGhlciAoMSkgYQogICAgY29weSBvZiB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgZm9yIGFsbCB0aGUgc29mdHdhcmUgaW4gdGhlCiAgICBwcm9kdWN0IHRoYXQgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UsIG9uIGEgZHVyYWJsZSBwaHlzaWNhbAogICAgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLCBmb3IgYSBwcmljZSBubwogICAgbW9yZSB0aGFuIHlvdXIgcmVhc29uYWJsZSBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWluZyB0aGlzCiAgICBjb252ZXlpbmcgb2Ygc291cmNlLCBvciAoMikgYWNjZXNzIHRvIGNvcHkgdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmcm9tIGEgbmV0d29yayBzZXJ2ZXIgYXQgbm8gY2hhcmdlLgoKICAgIGMpIENvbnZleSBpbmRpdmlkdWFsIGNvcGllcyBvZiB0aGUgb2JqZWN0IGNvZGUgd2l0aCBhIGNvcHkgb2YgdGhlCiAgICB3cml0dGVuIG9mZmVyIHRvIHByb3ZpZGUgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhpcwogICAgYWx0ZXJuYXRpdmUgaXMgYWxsb3dlZCBvbmx5IG9jY2FzaW9uYWxseSBhbmQgbm9uY29tbWVyY2lhbGx5LCBhbmQKICAgIG9ubHkgaWYgeW91IHJlY2VpdmVkIHRoZSBvYmplY3QgY29kZSB3aXRoIHN1Y2ggYW4gb2ZmZXIsIGluIGFjY29yZAogICAgd2l0aCBzdWJzZWN0aW9uIDZiLgoKICAgIGQpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIGZyb20gYSBkZXNpZ25hdGVkCiAgICBwbGFjZSAoZ3JhdGlzIG9yIGZvciBhIGNoYXJnZSksIGFuZCBvZmZlciBlcXVpdmFsZW50IGFjY2VzcyB0byB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGluIHRoZSBzYW1lIHdheSB0aHJvdWdoIHRoZSBzYW1lIHBsYWNlIGF0IG5vCiAgICBmdXJ0aGVyIGNoYXJnZS4gIFlvdSBuZWVkIG5vdCByZXF1aXJlIHJlY2lwaWVudHMgdG8gY29weSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLiAgSWYgdGhlIHBsYWNlIHRvCiAgICBjb3B5IHRoZSBvYmplY3QgY29kZSBpcyBhIG5ldHdvcmsgc2VydmVyLCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UKICAgIG1heSBiZSBvbiBhIGRpZmZlcmVudCBzZXJ2ZXIgKG9wZXJhdGVkIGJ5IHlvdSBvciBhIHRoaXJkIHBhcnR5KQogICAgdGhhdCBzdXBwb3J0cyBlcXVpdmFsZW50IGNvcHlpbmcgZmFjaWxpdGllcywgcHJvdmlkZWQgeW91IG1haW50YWluCiAgICBjbGVhciBkaXJlY3Rpb25zIG5leHQgdG8gdGhlIG9iamVjdCBjb2RlIHNheWluZyB3aGVyZSB0byBmaW5kIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBSZWdhcmRsZXNzIG9mIHdoYXQgc2VydmVyIGhvc3RzIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UsIHlvdSByZW1haW4gb2JsaWdhdGVkIHRvIGVuc3VyZSB0aGF0IGl0IGlzCiAgICBhdmFpbGFibGUgZm9yIGFzIGxvbmcgYXMgbmVlZGVkIHRvIHNhdGlzZnkgdGhlc2UgcmVxdWlyZW1lbnRzLgoKICAgIGUpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgdXNpbmcgcGVlci10by1wZWVyIHRyYW5zbWlzc2lvbiwgcHJvdmlkZWQKICAgIHlvdSBpbmZvcm0gb3RoZXIgcGVlcnMgd2hlcmUgdGhlIG9iamVjdCBjb2RlIGFuZCBDb3JyZXNwb25kaW5nCiAgICBTb3VyY2Ugb2YgdGhlIHdvcmsgYXJlIGJlaW5nIG9mZmVyZWQgdG8gdGhlIGdlbmVyYWwgcHVibGljIGF0IG5vCiAgICBjaGFyZ2UgdW5kZXIgc3Vic2VjdGlvbiA2ZC4KCiAgQSBzZXBhcmFibGUgcG9ydGlvbiBvZiB0aGUgb2JqZWN0IGNvZGUsIHdob3NlIHNvdXJjZSBjb2RlIGlzIGV4Y2x1ZGVkCmZyb20gdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIGFzIGEgU3lzdGVtIExpYnJhcnksIG5lZWQgbm90IGJlCmluY2x1ZGVkIGluIGNvbnZleWluZyB0aGUgb2JqZWN0IGNvZGUgd29yay4KCiAgQSAiVXNlciBQcm9kdWN0IiBpcyBlaXRoZXIgKDEpIGEgImNvbnN1bWVyIHByb2R1Y3QiLCB3aGljaCBtZWFucyBhbnkKdGFuZ2libGUgcGVyc29uYWwgcHJvcGVydHkgd2hpY2ggaXMgbm9ybWFsbHkgdXNlZCBmb3IgcGVyc29uYWwsIGZhbWlseSwKb3IgaG91c2Vob2xkIHB1cnBvc2VzLCBvciAoMikgYW55dGhpbmcgZGVzaWduZWQgb3Igc29sZCBmb3IgaW5jb3Jwb3JhdGlvbgppbnRvIGEgZHdlbGxpbmcuICBJbiBkZXRlcm1pbmluZyB3aGV0aGVyIGEgcHJvZHVjdCBpcyBhIGNvbnN1bWVyIHByb2R1Y3QsCmRvdWJ0ZnVsIGNhc2VzIHNoYWxsIGJlIHJlc29sdmVkIGluIGZhdm9yIG9mIGNvdmVyYWdlLiAgRm9yIGEgcGFydGljdWxhcgpwcm9kdWN0IHJlY2VpdmVkIGJ5IGEgcGFydGljdWxhciB1c2VyLCAibm9ybWFsbHkgdXNlZCIgcmVmZXJzIHRvIGEKdHlwaWNhbCBvciBjb21tb24gdXNlIG9mIHRoYXQgY2xhc3Mgb2YgcHJvZHVjdCwgcmVnYXJkbGVzcyBvZiB0aGUgc3RhdHVzCm9mIHRoZSBwYXJ0aWN1bGFyIHVzZXIgb3Igb2YgdGhlIHdheSBpbiB3aGljaCB0aGUgcGFydGljdWxhciB1c2VyCmFjdHVhbGx5IHVzZXMsIG9yIGV4cGVjdHMgb3IgaXMgZXhwZWN0ZWQgdG8gdXNlLCB0aGUgcHJvZHVjdC4gIEEgcHJvZHVjdAppcyBhIGNvbnN1bWVyIHByb2R1Y3QgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBwcm9kdWN0IGhhcyBzdWJzdGFudGlhbApjb21tZXJjaWFsLCBpbmR1c3RyaWFsIG9yIG5vbi1jb25zdW1lciB1c2VzLCB1bmxlc3Mgc3VjaCB1c2VzIHJlcHJlc2VudAp0aGUgb25seSBzaWduaWZpY2FudCBtb2RlIG9mIHVzZSBvZiB0aGUgcHJvZHVjdC4KCiAgIkluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiIgZm9yIGEgVXNlciBQcm9kdWN0IG1lYW5zIGFueSBtZXRob2RzLApwcm9jZWR1cmVzLCBhdXRob3JpemF0aW9uIGtleXMsIG9yIG90aGVyIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIGluc3RhbGwKYW5kIGV4ZWN1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgYSBjb3ZlcmVkIHdvcmsgaW4gdGhhdCBVc2VyIFByb2R1Y3QgZnJvbQphIG1vZGlmaWVkIHZlcnNpb24gb2YgaXRzIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhlIGluZm9ybWF0aW9uIG11c3QKc3VmZmljZSB0byBlbnN1cmUgdGhhdCB0aGUgY29udGludWVkIGZ1bmN0aW9uaW5nIG9mIHRoZSBtb2RpZmllZCBvYmplY3QKY29kZSBpcyBpbiBubyBjYXNlIHByZXZlbnRlZCBvciBpbnRlcmZlcmVkIHdpdGggc29sZWx5IGJlY2F1c2UKbW9kaWZpY2F0aW9uIGhhcyBiZWVuIG1hZGUuCgogIElmIHlvdSBjb252ZXkgYW4gb2JqZWN0IGNvZGUgd29yayB1bmRlciB0aGlzIHNlY3Rpb24gaW4sIG9yIHdpdGgsIG9yCnNwZWNpZmljYWxseSBmb3IgdXNlIGluLCBhIFVzZXIgUHJvZHVjdCwgYW5kIHRoZSBjb252ZXlpbmcgb2NjdXJzIGFzCnBhcnQgb2YgYSB0cmFuc2FjdGlvbiBpbiB3aGljaCB0aGUgcmlnaHQgb2YgcG9zc2Vzc2lvbiBhbmQgdXNlIG9mIHRoZQpVc2VyIFByb2R1Y3QgaXMgdHJhbnNmZXJyZWQgdG8gdGhlIHJlY2lwaWVudCBpbiBwZXJwZXR1aXR5IG9yIGZvciBhCmZpeGVkIHRlcm0gKHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFyYWN0ZXJpemVkKSwgdGhlCkNvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkIHVuZGVyIHRoaXMgc2VjdGlvbiBtdXN0IGJlIGFjY29tcGFuaWVkCmJ5IHRoZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24uICBCdXQgdGhpcyByZXF1aXJlbWVudCBkb2VzIG5vdCBhcHBseQppZiBuZWl0aGVyIHlvdSBub3IgYW55IHRoaXJkIHBhcnR5IHJldGFpbnMgdGhlIGFiaWxpdHkgdG8gaW5zdGFsbAptb2RpZmllZCBvYmplY3QgY29kZSBvbiB0aGUgVXNlciBQcm9kdWN0IChmb3IgZXhhbXBsZSwgdGhlIHdvcmsgaGFzCmJlZW4gaW5zdGFsbGVkIGluIFJPTSkuCgogIFRoZSByZXF1aXJlbWVudCB0byBwcm92aWRlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiBkb2VzIG5vdCBpbmNsdWRlIGEKcmVxdWlyZW1lbnQgdG8gY29udGludWUgdG8gcHJvdmlkZSBzdXBwb3J0IHNlcnZpY2UsIHdhcnJhbnR5LCBvciB1cGRhdGVzCmZvciBhIHdvcmsgdGhhdCBoYXMgYmVlbiBtb2RpZmllZCBvciBpbnN0YWxsZWQgYnkgdGhlIHJlY2lwaWVudCwgb3IgZm9yCnRoZSBVc2VyIFByb2R1Y3QgaW4gd2hpY2ggaXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgaW5zdGFsbGVkLiAgQWNjZXNzIHRvIGEKbmV0d29yayBtYXkgYmUgZGVuaWVkIHdoZW4gdGhlIG1vZGlmaWNhdGlvbiBpdHNlbGYgbWF0ZXJpYWxseSBhbmQKYWR2ZXJzZWx5IGFmZmVjdHMgdGhlIG9wZXJhdGlvbiBvZiB0aGUgbmV0d29yayBvciB2aW9sYXRlcyB0aGUgcnVsZXMgYW5kCnByb3RvY29scyBmb3IgY29tbXVuaWNhdGlvbiBhY3Jvc3MgdGhlIG5ldHdvcmsuCgogIENvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkLCBhbmQgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uIHByb3ZpZGVkLAppbiBhY2NvcmQgd2l0aCB0aGlzIHNlY3Rpb24gbXVzdCBiZSBpbiBhIGZvcm1hdCB0aGF0IGlzIHB1YmxpY2x5CmRvY3VtZW50ZWQgKGFuZCB3aXRoIGFuIGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluCnNvdXJjZSBjb2RlIGZvcm0pLCBhbmQgbXVzdCByZXF1aXJlIG5vIHNwZWNpYWwgcGFzc3dvcmQgb3Iga2V5IGZvcgp1bnBhY2tpbmcsIHJlYWRpbmcgb3IgY29weWluZy4KCiAgNy4gQWRkaXRpb25hbCBUZXJtcy4KCiAgIkFkZGl0aW9uYWwgcGVybWlzc2lvbnMiIGFyZSB0ZXJtcyB0aGF0IHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMKTGljZW5zZSBieSBtYWtpbmcgZXhjZXB0aW9ucyBmcm9tIG9uZSBvciBtb3JlIG9mIGl0cyBjb25kaXRpb25zLgpBZGRpdGlvbmFsIHBlcm1pc3Npb25zIHRoYXQgYXJlIGFwcGxpY2FibGUgdG8gdGhlIGVudGlyZSBQcm9ncmFtIHNoYWxsCmJlIHRyZWF0ZWQgYXMgdGhvdWdoIHRoZXkgd2VyZSBpbmNsdWRlZCBpbiB0aGlzIExpY2Vuc2UsIHRvIHRoZSBleHRlbnQKdGhhdCB0aGV5IGFyZSB2YWxpZCB1bmRlciBhcHBsaWNhYmxlIGxhdy4gIElmIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMKYXBwbHkgb25seSB0byBwYXJ0IG9mIHRoZSBQcm9ncmFtLCB0aGF0IHBhcnQgbWF5IGJlIHVzZWQgc2VwYXJhdGVseQp1bmRlciB0aG9zZSBwZXJtaXNzaW9ucywgYnV0IHRoZSBlbnRpcmUgUHJvZ3JhbSByZW1haW5zIGdvdmVybmVkIGJ5CnRoaXMgTGljZW5zZSB3aXRob3V0IHJlZ2FyZCB0byB0aGUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucy4KCiAgV2hlbiB5b3UgY29udmV5IGEgY29weSBvZiBhIGNvdmVyZWQgd29yaywgeW91IG1heSBhdCB5b3VyIG9wdGlvbgpyZW1vdmUgYW55IGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgZnJvbSB0aGF0IGNvcHksIG9yIGZyb20gYW55IHBhcnQgb2YKaXQuICAoQWRkaXRpb25hbCBwZXJtaXNzaW9ucyBtYXkgYmUgd3JpdHRlbiB0byByZXF1aXJlIHRoZWlyIG93bgpyZW1vdmFsIGluIGNlcnRhaW4gY2FzZXMgd2hlbiB5b3UgbW9kaWZ5IHRoZSB3b3JrLikgIFlvdSBtYXkgcGxhY2UKYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBvbiBtYXRlcmlhbCwgYWRkZWQgYnkgeW91IHRvIGEgY292ZXJlZCB3b3JrLApmb3Igd2hpY2ggeW91IGhhdmUgb3IgY2FuIGdpdmUgYXBwcm9wcmlhdGUgY29weXJpZ2h0IHBlcm1pc3Npb24uCgogIE5vdHdpdGhzdGFuZGluZyBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgTGljZW5zZSwgZm9yIG1hdGVyaWFsIHlvdQphZGQgdG8gYSBjb3ZlcmVkIHdvcmssIHlvdSBtYXkgKGlmIGF1dGhvcml6ZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXJzIG9mCnRoYXQgbWF0ZXJpYWwpIHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSB3aXRoIHRlcm1zOgoKICAgIGEpIERpc2NsYWltaW5nIHdhcnJhbnR5IG9yIGxpbWl0aW5nIGxpYWJpbGl0eSBkaWZmZXJlbnRseSBmcm9tIHRoZQogICAgdGVybXMgb2Ygc2VjdGlvbnMgMTUgYW5kIDE2IG9mIHRoaXMgTGljZW5zZTsgb3IKCiAgICBiKSBSZXF1aXJpbmcgcHJlc2VydmF0aW9uIG9mIHNwZWNpZmllZCByZWFzb25hYmxlIGxlZ2FsIG5vdGljZXMgb3IKICAgIGF1dGhvciBhdHRyaWJ1dGlvbnMgaW4gdGhhdCBtYXRlcmlhbCBvciBpbiB0aGUgQXBwcm9wcmlhdGUgTGVnYWwKICAgIE5vdGljZXMgZGlzcGxheWVkIGJ5IHdvcmtzIGNvbnRhaW5pbmcgaXQ7IG9yCgogICAgYykgUHJvaGliaXRpbmcgbWlzcmVwcmVzZW50YXRpb24gb2YgdGhlIG9yaWdpbiBvZiB0aGF0IG1hdGVyaWFsLCBvcgogICAgcmVxdWlyaW5nIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMgb2Ygc3VjaCBtYXRlcmlhbCBiZSBtYXJrZWQgaW4KICAgIHJlYXNvbmFibGUgd2F5cyBhcyBkaWZmZXJlbnQgZnJvbSB0aGUgb3JpZ2luYWwgdmVyc2lvbjsgb3IKCiAgICBkKSBMaW1pdGluZyB0aGUgdXNlIGZvciBwdWJsaWNpdHkgcHVycG9zZXMgb2YgbmFtZXMgb2YgbGljZW5zb3JzIG9yCiAgICBhdXRob3JzIG9mIHRoZSBtYXRlcmlhbDsgb3IKCiAgICBlKSBEZWNsaW5pbmcgdG8gZ3JhbnQgcmlnaHRzIHVuZGVyIHRyYWRlbWFyayBsYXcgZm9yIHVzZSBvZiBzb21lCiAgICB0cmFkZSBuYW1lcywgdHJhZGVtYXJrcywgb3Igc2VydmljZSBtYXJrczsgb3IKCiAgICBmKSBSZXF1aXJpbmcgaW5kZW1uaWZpY2F0aW9uIG9mIGxpY2Vuc29ycyBhbmQgYXV0aG9ycyBvZiB0aGF0CiAgICBtYXRlcmlhbCBieSBhbnlvbmUgd2hvIGNvbnZleXMgdGhlIG1hdGVyaWFsIChvciBtb2RpZmllZCB2ZXJzaW9ucyBvZgogICAgaXQpIHdpdGggY29udHJhY3R1YWwgYXNzdW1wdGlvbnMgb2YgbGlhYmlsaXR5IHRvIHRoZSByZWNpcGllbnQsIGZvcgogICAgYW55IGxpYWJpbGl0eSB0aGF0IHRoZXNlIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIGRpcmVjdGx5IGltcG9zZSBvbgogICAgdGhvc2UgbGljZW5zb3JzIGFuZCBhdXRob3JzLgoKICBBbGwgb3RoZXIgbm9uLXBlcm1pc3NpdmUgYWRkaXRpb25hbCB0ZXJtcyBhcmUgY29uc2lkZXJlZCAiZnVydGhlcgpyZXN0cmljdGlvbnMiIHdpdGhpbiB0aGUgbWVhbmluZyBvZiBzZWN0aW9uIDEwLiAgSWYgdGhlIFByb2dyYW0gYXMgeW91CnJlY2VpdmVkIGl0LCBvciBhbnkgcGFydCBvZiBpdCwgY29udGFpbnMgYSBub3RpY2Ugc3RhdGluZyB0aGF0IGl0IGlzCmdvdmVybmVkIGJ5IHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIGEgdGVybSB0aGF0IGlzIGEgZnVydGhlcgpyZXN0cmljdGlvbiwgeW91IG1heSByZW1vdmUgdGhhdCB0ZXJtLiAgSWYgYSBsaWNlbnNlIGRvY3VtZW50IGNvbnRhaW5zCmEgZnVydGhlciByZXN0cmljdGlvbiBidXQgcGVybWl0cyByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcgdW5kZXIgdGhpcwpMaWNlbnNlLCB5b3UgbWF5IGFkZCB0byBhIGNvdmVyZWQgd29yayBtYXRlcmlhbCBnb3Zlcm5lZCBieSB0aGUgdGVybXMKb2YgdGhhdCBsaWNlbnNlIGRvY3VtZW50LCBwcm92aWRlZCB0aGF0IHRoZSBmdXJ0aGVyIHJlc3RyaWN0aW9uIGRvZXMKbm90IHN1cnZpdmUgc3VjaCByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcuCgogIElmIHlvdSBhZGQgdGVybXMgdG8gYSBjb3ZlcmVkIHdvcmsgaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uLCB5b3UKbXVzdCBwbGFjZSwgaW4gdGhlIHJlbGV2YW50IHNvdXJjZSBmaWxlcywgYSBzdGF0ZW1lbnQgb2YgdGhlCmFkZGl0aW9uYWwgdGVybXMgdGhhdCBhcHBseSB0byB0aG9zZSBmaWxlcywgb3IgYSBub3RpY2UgaW5kaWNhdGluZwp3aGVyZSB0byBmaW5kIHRoZSBhcHBsaWNhYmxlIHRlcm1zLgoKICBBZGRpdGlvbmFsIHRlcm1zLCBwZXJtaXNzaXZlIG9yIG5vbi1wZXJtaXNzaXZlLCBtYXkgYmUgc3RhdGVkIGluIHRoZQpmb3JtIG9mIGEgc2VwYXJhdGVseSB3cml0dGVuIGxpY2Vuc2UsIG9yIHN0YXRlZCBhcyBleGNlcHRpb25zOwp0aGUgYWJvdmUgcmVxdWlyZW1lbnRzIGFwcGx5IGVpdGhlciB3YXkuCgogIDguIFRlcm1pbmF0aW9uLgoKICBZb3UgbWF5IG5vdCBwcm9wYWdhdGUgb3IgbW9kaWZ5IGEgY292ZXJlZCB3b3JrIGV4Y2VwdCBhcyBleHByZXNzbHkKcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQgb3RoZXJ3aXNlIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgaXQgaXMgdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIKdGhpcyBMaWNlbnNlIChpbmNsdWRpbmcgYW55IHBhdGVudCBsaWNlbnNlcyBncmFudGVkIHVuZGVyIHRoZSB0aGlyZApwYXJhZ3JhcGggb2Ygc2VjdGlvbiAxMSkuCgogIEhvd2V2ZXIsIGlmIHlvdSBjZWFzZSBhbGwgdmlvbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgdGhlbiB5b3VyCmxpY2Vuc2UgZnJvbSBhIHBhcnRpY3VsYXIgY29weXJpZ2h0IGhvbGRlciBpcyByZWluc3RhdGVkIChhKQpwcm92aXNpb25hbGx5LCB1bmxlc3MgYW5kIHVudGlsIHRoZSBjb3B5cmlnaHQgaG9sZGVyIGV4cGxpY2l0bHkgYW5kCmZpbmFsbHkgdGVybWluYXRlcyB5b3VyIGxpY2Vuc2UsIGFuZCAoYikgcGVybWFuZW50bHksIGlmIHRoZSBjb3B5cmlnaHQKaG9sZGVyIGZhaWxzIHRvIG5vdGlmeSB5b3Ugb2YgdGhlIHZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMKcHJpb3IgdG8gNjAgZGF5cyBhZnRlciB0aGUgY2Vzc2F0aW9uLgoKICBNb3Jlb3ZlciwgeW91ciBsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMKcmVpbnN0YXRlZCBwZXJtYW5lbnRseSBpZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3RpZmllcyB5b3Ugb2YgdGhlCnZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMsIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgeW91IGhhdmUKcmVjZWl2ZWQgbm90aWNlIG9mIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UgKGZvciBhbnkgd29yaykgZnJvbSB0aGF0CmNvcHlyaWdodCBob2xkZXIsIGFuZCB5b3UgY3VyZSB0aGUgdmlvbGF0aW9uIHByaW9yIHRvIDMwIGRheXMgYWZ0ZXIKeW91ciByZWNlaXB0IG9mIHRoZSBub3RpY2UuCgogIFRlcm1pbmF0aW9uIG9mIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgc2VjdGlvbiBkb2VzIG5vdCB0ZXJtaW5hdGUgdGhlCmxpY2Vuc2VzIG9mIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzIG9yIHJpZ2h0cyBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2UuICBJZiB5b3VyIHJpZ2h0cyBoYXZlIGJlZW4gdGVybWluYXRlZCBhbmQgbm90IHBlcm1hbmVudGx5CnJlaW5zdGF0ZWQsIHlvdSBkbyBub3QgcXVhbGlmeSB0byByZWNlaXZlIG5ldyBsaWNlbnNlcyBmb3IgdGhlIHNhbWUKbWF0ZXJpYWwgdW5kZXIgc2VjdGlvbiAxMC4KCiAgOS4gQWNjZXB0YW5jZSBOb3QgUmVxdWlyZWQgZm9yIEhhdmluZyBDb3BpZXMuCgogIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UgaW4gb3JkZXIgdG8gcmVjZWl2ZSBvcgpydW4gYSBjb3B5IG9mIHRoZSBQcm9ncmFtLiAgQW5jaWxsYXJ5IHByb3BhZ2F0aW9uIG9mIGEgY292ZXJlZCB3b3JrCm9jY3VycmluZyBzb2xlbHkgYXMgYSBjb25zZXF1ZW5jZSBvZiB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uCnRvIHJlY2VpdmUgYSBjb3B5IGxpa2V3aXNlIGRvZXMgbm90IHJlcXVpcmUgYWNjZXB0YW5jZS4gIEhvd2V2ZXIsCm5vdGhpbmcgb3RoZXIgdGhhbiB0aGlzIExpY2Vuc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgYW55IGNvdmVyZWQgd29yay4gIFRoZXNlIGFjdGlvbnMgaW5mcmluZ2UgY29weXJpZ2h0IGlmIHlvdSBkbwpub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkgbW9kaWZ5aW5nIG9yIHByb3BhZ2F0aW5nIGEKY292ZXJlZCB3b3JrLCB5b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzby4KCiAgMTAuIEF1dG9tYXRpYyBMaWNlbnNpbmcgb2YgRG93bnN0cmVhbSBSZWNpcGllbnRzLgoKICBFYWNoIHRpbWUgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5CnJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZSBvcmlnaW5hbCBsaWNlbnNvcnMsIHRvIHJ1biwgbW9kaWZ5IGFuZApwcm9wYWdhdGUgdGhhdCB3b3JrLCBzdWJqZWN0IHRvIHRoaXMgTGljZW5zZS4gIFlvdSBhcmUgbm90IHJlc3BvbnNpYmxlCmZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHdpdGggdGhpcyBMaWNlbnNlLgoKICBBbiAiZW50aXR5IHRyYW5zYWN0aW9uIiBpcyBhIHRyYW5zYWN0aW9uIHRyYW5zZmVycmluZyBjb250cm9sIG9mIGFuCm9yZ2FuaXphdGlvbiwgb3Igc3Vic3RhbnRpYWxseSBhbGwgYXNzZXRzIG9mIG9uZSwgb3Igc3ViZGl2aWRpbmcgYW4Kb3JnYW5pemF0aW9uLCBvciBtZXJnaW5nIG9yZ2FuaXphdGlvbnMuICBJZiBwcm9wYWdhdGlvbiBvZiBhIGNvdmVyZWQKd29yayByZXN1bHRzIGZyb20gYW4gZW50aXR5IHRyYW5zYWN0aW9uLCBlYWNoIHBhcnR5IHRvIHRoYXQKdHJhbnNhY3Rpb24gd2hvIHJlY2VpdmVzIGEgY29weSBvZiB0aGUgd29yayBhbHNvIHJlY2VpdmVzIHdoYXRldmVyCmxpY2Vuc2VzIHRvIHRoZSB3b3JrIHRoZSBwYXJ0eSdzIHByZWRlY2Vzc29yIGluIGludGVyZXN0IGhhZCBvciBjb3VsZApnaXZlIHVuZGVyIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGgsIHBsdXMgYSByaWdodCB0byBwb3NzZXNzaW9uIG9mIHRoZQpDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBmcm9tIHRoZSBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCwgaWYKdGhlIHByZWRlY2Vzc29yIGhhcyBpdCBvciBjYW4gZ2V0IGl0IHdpdGggcmVhc29uYWJsZSBlZmZvcnRzLgoKICBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIgcmVzdHJpY3Rpb25zIG9uIHRoZSBleGVyY2lzZSBvZiB0aGUKcmlnaHRzIGdyYW50ZWQgb3IgYWZmaXJtZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgRm9yIGV4YW1wbGUsIHlvdSBtYXkKbm90IGltcG9zZSBhIGxpY2Vuc2UgZmVlLCByb3lhbHR5LCBvciBvdGhlciBjaGFyZ2UgZm9yIGV4ZXJjaXNlIG9mCnJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIHlvdSBtYXkgbm90IGluaXRpYXRlIGxpdGlnYXRpb24KKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQKYW55IHBhdGVudCBjbGFpbSBpcyBpbmZyaW5nZWQgYnkgbWFraW5nLCB1c2luZywgc2VsbGluZywgb2ZmZXJpbmcgZm9yCnNhbGUsIG9yIGltcG9ydGluZyB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbiBvZiBpdC4KCiAgMTEuIFBhdGVudHMuCgogIEEgImNvbnRyaWJ1dG9yIiBpcyBhIGNvcHlyaWdodCBob2xkZXIgd2hvIGF1dGhvcml6ZXMgdXNlIHVuZGVyIHRoaXMKTGljZW5zZSBvZiB0aGUgUHJvZ3JhbSBvciBhIHdvcmsgb24gd2hpY2ggdGhlIFByb2dyYW0gaXMgYmFzZWQuICBUaGUKd29yayB0aHVzIGxpY2Vuc2VkIGlzIGNhbGxlZCB0aGUgY29udHJpYnV0b3IncyAiY29udHJpYnV0b3IgdmVyc2lvbiIuCgogIEEgY29udHJpYnV0b3IncyAiZXNzZW50aWFsIHBhdGVudCBjbGFpbXMiIGFyZSBhbGwgcGF0ZW50IGNsYWltcwpvd25lZCBvciBjb250cm9sbGVkIGJ5IHRoZSBjb250cmlidXRvciwgd2hldGhlciBhbHJlYWR5IGFjcXVpcmVkIG9yCmhlcmVhZnRlciBhY3F1aXJlZCwgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgYnkgc29tZSBtYW5uZXIsIHBlcm1pdHRlZApieSB0aGlzIExpY2Vuc2UsIG9mIG1ha2luZywgdXNpbmcsIG9yIHNlbGxpbmcgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24sCmJ1dCBkbyBub3QgaW5jbHVkZSBjbGFpbXMgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgb25seSBhcyBhCmNvbnNlcXVlbmNlIG9mIGZ1cnRoZXIgbW9kaWZpY2F0aW9uIG9mIHRoZSBjb250cmlidXRvciB2ZXJzaW9uLiAgRm9yCnB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgImNvbnRyb2wiIGluY2x1ZGVzIHRoZSByaWdodCB0byBncmFudApwYXRlbnQgc3VibGljZW5zZXMgaW4gYSBtYW5uZXIgY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YKdGhpcyBMaWNlbnNlLgoKICBFYWNoIGNvbnRyaWJ1dG9yIGdyYW50cyB5b3UgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZQpwYXRlbnQgbGljZW5zZSB1bmRlciB0aGUgY29udHJpYnV0b3IncyBlc3NlbnRpYWwgcGF0ZW50IGNsYWltcywgdG8KbWFrZSwgdXNlLCBzZWxsLCBvZmZlciBmb3Igc2FsZSwgaW1wb3J0IGFuZCBvdGhlcndpc2UgcnVuLCBtb2RpZnkgYW5kCnByb3BhZ2F0ZSB0aGUgY29udGVudHMgb2YgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24uCgogIEluIHRoZSBmb2xsb3dpbmcgdGhyZWUgcGFyYWdyYXBocywgYSAicGF0ZW50IGxpY2Vuc2UiIGlzIGFueSBleHByZXNzCmFncmVlbWVudCBvciBjb21taXRtZW50LCBob3dldmVyIGRlbm9taW5hdGVkLCBub3QgdG8gZW5mb3JjZSBhIHBhdGVudAooc3VjaCBhcyBhbiBleHByZXNzIHBlcm1pc3Npb24gdG8gcHJhY3RpY2UgYSBwYXRlbnQgb3IgY292ZW5hbnQgbm90IHRvCnN1ZSBmb3IgcGF0ZW50IGluZnJpbmdlbWVudCkuICBUbyAiZ3JhbnQiIHN1Y2ggYSBwYXRlbnQgbGljZW5zZSB0byBhCnBhcnR5IG1lYW5zIHRvIG1ha2Ugc3VjaCBhbiBhZ3JlZW1lbnQgb3IgY29tbWl0bWVudCBub3QgdG8gZW5mb3JjZSBhCnBhdGVudCBhZ2FpbnN0IHRoZSBwYXJ0eS4KCiAgSWYgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywga25vd2luZ2x5IHJlbHlpbmcgb24gYSBwYXRlbnQgbGljZW5zZSwKYW5kIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBpcyBub3QgYXZhaWxhYmxlIGZvciBhbnlvbmUKdG8gY29weSwgZnJlZSBvZiBjaGFyZ2UgYW5kIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UsIHRocm91Z2ggYQpwdWJsaWNseSBhdmFpbGFibGUgbmV0d29yayBzZXJ2ZXIgb3Igb3RoZXIgcmVhZGlseSBhY2Nlc3NpYmxlIG1lYW5zLAp0aGVuIHlvdSBtdXN0IGVpdGhlciAoMSkgY2F1c2UgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIHRvIGJlIHNvCmF2YWlsYWJsZSwgb3IgKDIpIGFycmFuZ2UgdG8gZGVwcml2ZSB5b3Vyc2VsZiBvZiB0aGUgYmVuZWZpdCBvZiB0aGUKcGF0ZW50IGxpY2Vuc2UgZm9yIHRoaXMgcGFydGljdWxhciB3b3JrLCBvciAoMykgYXJyYW5nZSwgaW4gYSBtYW5uZXIKY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBMaWNlbnNlLCB0byBleHRlbmQgdGhlIHBhdGVudApsaWNlbnNlIHRvIGRvd25zdHJlYW0gcmVjaXBpZW50cy4gICJLbm93aW5nbHkgcmVseWluZyIgbWVhbnMgeW91IGhhdmUKYWN0dWFsIGtub3dsZWRnZSB0aGF0LCBidXQgZm9yIHRoZSBwYXRlbnQgbGljZW5zZSwgeW91ciBjb252ZXlpbmcgdGhlCmNvdmVyZWQgd29yayBpbiBhIGNvdW50cnksIG9yIHlvdXIgcmVjaXBpZW50J3MgdXNlIG9mIHRoZSBjb3ZlcmVkIHdvcmsKaW4gYSBjb3VudHJ5LCB3b3VsZCBpbmZyaW5nZSBvbmUgb3IgbW9yZSBpZGVudGlmaWFibGUgcGF0ZW50cyBpbiB0aGF0CmNvdW50cnkgdGhhdCB5b3UgaGF2ZSByZWFzb24gdG8gYmVsaWV2ZSBhcmUgdmFsaWQuCgogIElmLCBwdXJzdWFudCB0byBvciBpbiBjb25uZWN0aW9uIHdpdGggYSBzaW5nbGUgdHJhbnNhY3Rpb24gb3IKYXJyYW5nZW1lbnQsIHlvdSBjb252ZXksIG9yIHByb3BhZ2F0ZSBieSBwcm9jdXJpbmcgY29udmV5YW5jZSBvZiwgYQpjb3ZlcmVkIHdvcmssIGFuZCBncmFudCBhIHBhdGVudCBsaWNlbnNlIHRvIHNvbWUgb2YgdGhlIHBhcnRpZXMKcmVjZWl2aW5nIHRoZSBjb3ZlcmVkIHdvcmsgYXV0aG9yaXppbmcgdGhlbSB0byB1c2UsIHByb3BhZ2F0ZSwgbW9kaWZ5Cm9yIGNvbnZleSBhIHNwZWNpZmljIGNvcHkgb2YgdGhlIGNvdmVyZWQgd29yaywgdGhlbiB0aGUgcGF0ZW50IGxpY2Vuc2UKeW91IGdyYW50IGlzIGF1dG9tYXRpY2FsbHkgZXh0ZW5kZWQgdG8gYWxsIHJlY2lwaWVudHMgb2YgdGhlIGNvdmVyZWQKd29yayBhbmQgd29ya3MgYmFzZWQgb24gaXQuCgogIEEgcGF0ZW50IGxpY2Vuc2UgaXMgImRpc2NyaW1pbmF0b3J5IiBpZiBpdCBkb2VzIG5vdCBpbmNsdWRlIHdpdGhpbgp0aGUgc2NvcGUgb2YgaXRzIGNvdmVyYWdlLCBwcm9oaWJpdHMgdGhlIGV4ZXJjaXNlIG9mLCBvciBpcwpjb25kaXRpb25lZCBvbiB0aGUgbm9uLWV4ZXJjaXNlIG9mIG9uZSBvciBtb3JlIG9mIHRoZSByaWdodHMgdGhhdCBhcmUKc3BlY2lmaWNhbGx5IGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgWW91IG1heSBub3QgY29udmV5IGEgY292ZXJlZAp3b3JrIGlmIHlvdSBhcmUgYSBwYXJ0eSB0byBhbiBhcnJhbmdlbWVudCB3aXRoIGEgdGhpcmQgcGFydHkgdGhhdCBpcwppbiB0aGUgYnVzaW5lc3Mgb2YgZGlzdHJpYnV0aW5nIHNvZnR3YXJlLCB1bmRlciB3aGljaCB5b3UgbWFrZSBwYXltZW50CnRvIHRoZSB0aGlyZCBwYXJ0eSBiYXNlZCBvbiB0aGUgZXh0ZW50IG9mIHlvdXIgYWN0aXZpdHkgb2YgY29udmV5aW5nCnRoZSB3b3JrLCBhbmQgdW5kZXIgd2hpY2ggdGhlIHRoaXJkIHBhcnR5IGdyYW50cywgdG8gYW55IG9mIHRoZQpwYXJ0aWVzIHdobyB3b3VsZCByZWNlaXZlIHRoZSBjb3ZlcmVkIHdvcmsgZnJvbSB5b3UsIGEgZGlzY3JpbWluYXRvcnkKcGF0ZW50IGxpY2Vuc2UgKGEpIGluIGNvbm5lY3Rpb24gd2l0aCBjb3BpZXMgb2YgdGhlIGNvdmVyZWQgd29yawpjb252ZXllZCBieSB5b3UgKG9yIGNvcGllcyBtYWRlIGZyb20gdGhvc2UgY29waWVzKSwgb3IgKGIpIHByaW1hcmlseQpmb3IgYW5kIGluIGNvbm5lY3Rpb24gd2l0aCBzcGVjaWZpYyBwcm9kdWN0cyBvciBjb21waWxhdGlvbnMgdGhhdApjb250YWluIHRoZSBjb3ZlcmVkIHdvcmssIHVubGVzcyB5b3UgZW50ZXJlZCBpbnRvIHRoYXQgYXJyYW5nZW1lbnQsCm9yIHRoYXQgcGF0ZW50IGxpY2Vuc2Ugd2FzIGdyYW50ZWQsIHByaW9yIHRvIDI4IE1hcmNoIDIwMDcuCgogIE5vdGhpbmcgaW4gdGhpcyBMaWNlbnNlIHNoYWxsIGJlIGNvbnN0cnVlZCBhcyBleGNsdWRpbmcgb3IgbGltaXRpbmcKYW55IGltcGxpZWQgbGljZW5zZSBvciBvdGhlciBkZWZlbnNlcyB0byBpbmZyaW5nZW1lbnQgdGhhdCBtYXkKb3RoZXJ3aXNlIGJlIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYXBwbGljYWJsZSBwYXRlbnQgbGF3LgoKICAxMi4gTm8gU3VycmVuZGVyIG9mIE90aGVycycgRnJlZWRvbS4KCiAgSWYgY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcgpvdGhlcndpc2UpIHRoYXQgY29udHJhZGljdCB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIHRoZXkgZG8gbm90CmV4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90IGNvbnZleSBhCmNvdmVyZWQgd29yayBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcwpMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91IG1heQpub3QgY29udmV5IGl0IGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiB5b3UgYWdyZWUgdG8gdGVybXMgdGhhdCBvYmxpZ2F0ZSB5b3UKdG8gY29sbGVjdCBhIHJveWFsdHkgZm9yIGZ1cnRoZXIgY29udmV5aW5nIGZyb20gdGhvc2UgdG8gd2hvbSB5b3UgY29udmV5CnRoZSBQcm9ncmFtLCB0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCB0aG9zZSB0ZXJtcyBhbmQgdGhpcwpMaWNlbnNlIHdvdWxkIGJlIHRvIHJlZnJhaW4gZW50aXJlbHkgZnJvbSBjb252ZXlpbmcgdGhlIFByb2dyYW0uCgogIDEzLiBVc2Ugd2l0aCB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgoKICBOb3R3aXRoc3RhbmRpbmcgYW55IG90aGVyIHByb3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UsIHlvdSBoYXZlCnBlcm1pc3Npb24gdG8gbGluayBvciBjb21iaW5lIGFueSBjb3ZlcmVkIHdvcmsgd2l0aCBhIHdvcmsgbGljZW5zZWQKdW5kZXIgdmVyc2lvbiAzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW50byBhIHNpbmdsZQpjb21iaW5lZCB3b3JrLCBhbmQgdG8gY29udmV5IHRoZSByZXN1bHRpbmcgd29yay4gIFRoZSB0ZXJtcyBvZiB0aGlzCkxpY2Vuc2Ugd2lsbCBjb250aW51ZSB0byBhcHBseSB0byB0aGUgcGFydCB3aGljaCBpcyB0aGUgY292ZXJlZCB3b3JrLApidXQgdGhlIHNwZWNpYWwgcmVxdWlyZW1lbnRzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCnNlY3Rpb24gMTMsIGNvbmNlcm5pbmcgaW50ZXJhY3Rpb24gdGhyb3VnaCBhIG5ldHdvcmsgd2lsbCBhcHBseSB0byB0aGUKY29tYmluYXRpb24gYXMgc3VjaC4KCiAgMTQuIFJldmlzZWQgVmVyc2lvbnMgb2YgdGhpcyBMaWNlbnNlLgoKICBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucyBvZgp0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCiAgRWFjaCB2ZXJzaW9uIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuICBJZiB0aGUKUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIGNlcnRhaW4gbnVtYmVyZWQgdmVyc2lvbiBvZiB0aGUgR05VIEdlbmVyYWwKUHVibGljIExpY2Vuc2UgIm9yIGFueSBsYXRlciB2ZXJzaW9uIiBhcHBsaWVzIHRvIGl0LCB5b3UgaGF2ZSB0aGUKb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZWl0aGVyIG9mIHRoYXQgbnVtYmVyZWQKdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4gIElmIHRoZSBQcm9ncmFtIGRvZXMgbm90IHNwZWNpZnkgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkCmJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCgogIElmIHRoZSBQcm9ncmFtIHNwZWNpZmllcyB0aGF0IGEgcHJveHkgY2FuIGRlY2lkZSB3aGljaCBmdXR1cmUKdmVyc2lvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGNhbiBiZSB1c2VkLCB0aGF0IHByb3h5J3MKcHVibGljIHN0YXRlbWVudCBvZiBhY2NlcHRhbmNlIG9mIGEgdmVyc2lvbiBwZXJtYW5lbnRseSBhdXRob3JpemVzIHlvdQp0byBjaG9vc2UgdGhhdCB2ZXJzaW9uIGZvciB0aGUgUHJvZ3JhbS4KCiAgTGF0ZXIgbGljZW5zZSB2ZXJzaW9ucyBtYXkgZ2l2ZSB5b3UgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQKcGVybWlzc2lvbnMuICBIb3dldmVyLCBubyBhZGRpdGlvbmFsIG9ibGlnYXRpb25zIGFyZSBpbXBvc2VkIG9uIGFueQphdXRob3Igb3IgY29weXJpZ2h0IGhvbGRlciBhcyBhIHJlc3VsdCBvZiB5b3VyIGNob29zaW5nIHRvIGZvbGxvdyBhCmxhdGVyIHZlcnNpb24uCgogIDE1LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LgoKICBUSEVSRSBJUyBOTyBXQVJSQU5UWSBGT1IgVEhFIFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZCkFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4gT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQKSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUyBQUk9WSURFIFRIRSBQUk9HUkFNICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWQpPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1NFRCBPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUgUFJPR1JBTQpJUyBXSVRIIFlPVS4gIFNIT1VMRCBUSEUgUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YKQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLgoKICAxNi4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuCgogIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1PRElGSUVTIEFORC9PUiBDT05WRVlTClRIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywgSU5DTFVESU5HIEFOWQpHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBPRiBUSEUKVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRgpEQVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZIFlPVSBPUiBUSElSRApQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSIFBST0dSQU1TKSwKRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgpTVUNIIERBTUFHRVMuCgogIDE3LiBJbnRlcnByZXRhdGlvbiBvZiBTZWN0aW9ucyAxNSBhbmQgMTYuCgogIElmIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5IGFuZCBsaW1pdGF0aW9uIG9mIGxpYWJpbGl0eSBwcm92aWRlZAphYm92ZSBjYW5ub3QgYmUgZ2l2ZW4gbG9jYWwgbGVnYWwgZWZmZWN0IGFjY29yZGluZyB0byB0aGVpciB0ZXJtcywKcmV2aWV3aW5nIGNvdXJ0cyBzaGFsbCBhcHBseSBsb2NhbCBsYXcgdGhhdCBtb3N0IGNsb3NlbHkgYXBwcm94aW1hdGVzCmFuIGFic29sdXRlIHdhaXZlciBvZiBhbGwgY2l2aWwgbGlhYmlsaXR5IGluIGNvbm5lY3Rpb24gd2l0aCB0aGUKUHJvZ3JhbSwgdW5sZXNzIGEgd2FycmFudHkgb3IgYXNzdW1wdGlvbiBvZiBsaWFiaWxpdHkgYWNjb21wYW5pZXMgYQpjb3B5IG9mIHRoZSBQcm9ncmFtIGluIHJldHVybiBmb3IgYSBmZWUuCgogICAgICAgICAgICAgICAgICAgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKCiAgICAgICAgICAgIEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9ncmFtcwoKICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdyZWF0ZXN0CnBvc3NpYmxlIHVzZSB0byB0aGUgcHVibGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlzIGlzIHRvIG1ha2UgaXQKZnJlZSBzb2Z0d2FyZSB3aGljaCBldmVyeW9uZSBjYW4gcmVkaXN0cmlidXRlIGFuZCBjaGFuZ2UgdW5kZXIgdGhlc2UgdGVybXMuCgogIFRvIGRvIHNvLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBwcm9ncmFtLiAgSXQgaXMgc2FmZXN0CnRvIGF0dGFjaCB0aGVtIHRvIHRoZSBzdGFydCBvZiBlYWNoIHNvdXJjZSBmaWxlIHRvIG1vc3QgZWZmZWN0aXZlbHkKc3RhdGUgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAp0aGUgImNvcHlyaWdodCIgbGluZSBhbmQgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4KCiAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgogICAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgogICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKQWxzbyBhZGQgaW5mb3JtYXRpb24gb24gaG93IHRvIGNvbnRhY3QgeW91IGJ5IGVsZWN0cm9uaWMgYW5kIHBhcGVyIG1haWwuCgogIElmIHRoZSBwcm9ncmFtIGRvZXMgdGVybWluYWwgaW50ZXJhY3Rpb24sIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQKbm90aWNlIGxpa2UgdGhpcyB3aGVuIGl0IHN0YXJ0cyBpbiBhbiBpbnRlcmFjdGl2ZSBtb2RlOgoKICAgIDxwcm9ncmFtPiAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KICAgIFRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFk7IGZvciBkZXRhaWxzIHR5cGUgYHNob3cgdycuCiAgICBUaGlzIGlzIGZyZWUgc29mdHdhcmUsIGFuZCB5b3UgYXJlIHdlbGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0CiAgICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9yIGRldGFpbHMuCgpUaGUgaHlwb3RoZXRpY2FsIGNvbW1hbmRzIGBzaG93IHcnIGFuZCBgc2hvdyBjJyBzaG91bGQgc2hvdyB0aGUgYXBwcm9wcmlhdGUKcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHlvdXIgcHJvZ3JhbSdzIGNvbW1hbmRzCm1pZ2h0IGJlIGRpZmZlcmVudDsgZm9yIGEgR1VJIGludGVyZmFjZSwgeW91IHdvdWxkIHVzZSBhbiAiYWJvdXQgYm94Ii4KCiAgWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHNjaG9vbCwKaWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIHByb2dyYW0sIGlmIG5lY2Vzc2FyeS4KRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcywgYW5kIGhvdyB0byBhcHBseSBhbmQgZm9sbG93IHRoZSBHTlUgR1BMLCBzZWUKPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtCmludG8gcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdQptYXkgY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGgKdGhlIGxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLiAgQnV0IGZpcnN0LCBwbGVhc2UgcmVhZAo8aHR0cDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvd2h5LW5vdC1sZ3BsLmh0bWw+Lgo=]]></data>
	</file>
	<file>
	  <filename>/function.admindisplaymanageevents.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4CiMgICAgICBieSBSb2JlcnQgQWxsZW4gKGFrcmFiYXQpIGFuZAojICAgICAgICAgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBkaXNwbGF5aW5nIGNhbGVuZGFycywKIyAgYW5kIG1hbmFnZW1lbnQgYW5kIGRpc3BsYXkgb2YgdGltZSBiYXNlZCBldmVudHMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhJGdDbXMgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDYWxlbmRhcicpICYmCiAgICAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQWRkIENhbGVuZGFyIEV2ZW50cycpICYmCiAgICAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignRWRpdCBNeSBDYWxlbmRhciBFdmVudHMnKSApIHJldHVybjsKCgovLyBnZXQgdGhlIGxvY2FsZSBzcGVjaWZpZWQgZGF0ZXMKJGxvY2FsZV9pbmZvID0gY2djYWxlbmRhcl91dGlsczo6Z2V0X2xvY2FsZV9kYXRlcygpOwpmb3JlYWNoKCAkbG9jYWxlX2luZm8gYXMgJGtleSA9PiAmJHZhbHVlICkgewogICAgJHZhbHVlID0ganNvbl9lbmNvZGUoJHZhbHVlKTsKfQokc21hcnR5LT5hc3NpZ24oJ2ZpcnN0ZGF5b2Z3ZWVrJywoaW50KSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZmlyc3RkYXlvZndlZWsnLDEpKTsKJHNtYXJ0eS0+YXNzaWduKCdkYXRlc3RyaW5ncycsJGxvY2FsZV9pbmZvKTsKJHNtYXJ0eS0+YXNzaWduKCd0ZXh0X3dlZWsnLCR0aGlzLT5MYW5nKCd3ZWVrJykpOwokc21hcnR5LT5hc3NpZ24oJ3RleHRfbW9udGgnLCR0aGlzLT5MYW5nKCdtb250aCcpKTsKJHNtYXJ0eS0+YXNzaWduKCd0ZXh0X2RheScsJHRoaXMtPkxhbmcoJ2RheScpKTsKJHNtYXJ0eS0+YXNzaWduKCd0ZXh0X3RvZGF5JywkdGhpcy0+TGFuZygndG9kYXknKSk7CiRzbWFydHktPmFzc2lnbignZGZsdF9mZ2NvbG9yJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGZsdF9mZ2NvbG9yJywnI2ZmZmZmZicpKTsKJHNtYXJ0eS0+YXNzaWduKCdkZmx0X2JnY29sb3InLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZmx0X2JnY29sb3InLCcjMDA5OTAwJykpOwokY2F0ZWdvcmllcyA9ICR0aGlzLT5HZXRDYXRlZ29yaWVzKCk7CmlmKCBpc19hcnJheSgkY2F0ZWdvcmllcykgJiYgY291bnQoJGNhdGVnb3JpZXMpICkgewogICAgJG91dCA9IGFycmF5KCk7CiAgICAkb3V0Wy0xXSA9ICR0aGlzLT5MYW5nKCdhbnknKTsKICAgIGZvcmVhY2goICRjYXRlZ29yaWVzIGFzICRyb3cgKSB7CiAgICAgICAgJG91dFskcm93WydjYXRlZ29yeV9pZCddXSA9ICRyb3dbJ2NhdGVnb3J5X25hbWUnXTsKICAgIH0KICAgICRzbWFydHktPmFzc2lnbignY2F0ZWdvcmllcycsJG91dCk7Cn0KCi8qCiR1c2VyaWQgPSBudWxsOwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDYWxlbmRhcicpICkgJHVzZXJpZCA9IGdldF91c2VyaWQoRkFMU0UpICogLTEgLSAxMDA7CgokYmFyZV9maWx0ZXIgPSBhcnJheSgnc2hvd2NoaWxkcmVuJz0+MCwna2V5d29yZCc9PicnLCdjYXRlZ29yeSc9Pi0xLCdmaWx0ZXJfYXBwbGllZCc9PjAsJ2ZpbHRlcl9kYXRlJz0+JycsJ25vZGF0ZSc9PjApOwokZmlsdGVyID0gJGJhcmVfZmlsdGVyOwokc2VyX2ZpbHRlciA9ICR0aGlzLT5zZXNzaW9uX2dldCgnZmlsdGVyJyk7CmlmKCAkc2VyX2ZpbHRlciApIHsKICAkdG1wID0gdW5zZXJpYWxpemUoJHNlcl9maWx0ZXIpOwogICRmaWx0ZXIgPSBhcnJheV9tZXJnZSgkZmlsdGVyLCR0bXApOwp9CgovLyBoYW5kbGUgdGhlIGZpbHRlcmluZy4KaWYoIGlzc2V0KCRwYXJhbXNbJ2ZpbHRlcl9ob21lZGF0ZSddKSApIHsKICAkZmlsdGVyWydmaWx0ZXJfZGF0ZSddID0gJyc7CiAgJHRoaXMtPnNlc3Npb25fcHV0KCdmaWx0ZXInLHNlcmlhbGl6ZSgkZmlsdGVyKSk7Cn0KZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snZmlsdGVyX01vbnRoJ10pICYmIGlzc2V0KCRwYXJhbXNbJ2ZpbHRlcl9ZZWFyJ10pICkgewogICRmaWx0ZXJbJ2ZpbHRlcl9kYXRlJ10gPSB0cmltKCRwYXJhbXNbJ2ZpbHRlcl9ZZWFyJ10uJy0nLnRyaW0oJHBhcmFtc1snZmlsdGVyX01vbnRoJ10pKTsKICAkdGhpcy0+c2Vzc2lvbl9wdXQoJ2ZpbHRlcicsc2VyaWFsaXplKCRmaWx0ZXIpKTsKfQplbHNlIGlmKCBpc3NldCgkcGFyYW1zWydkYXRlJ10pICkgewogICRmaWx0ZXJbJ2ZpbHRlcl9kYXRlJ10gPSB0cmltKCRwYXJhbXNbJ2RhdGUnXSk7CiAgJHRoaXMtPnNlc3Npb25fcHV0KCdmaWx0ZXInLHNlcmlhbGl6ZSgkZmlsdGVyKSk7Cn0KZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snZmlsdGVyX3N1Ym1pdCddKSApIHsKICAkZmlsdGVyWydzaG93Y2hpbGRyZW4nXSA9IChpbnQpZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCdmaWx0ZXJfc2hvd2NoaWxkcmVuJywwKTsKICAkZmlsdGVyWydrZXl3b3JkJ10gPSB0cmltKGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywnZmlsdGVyX2tleXdvcmQnLCcnKSk7CiAgJGZpbHRlclsnY2F0ZWdvcnknXSA9IChpbnQpZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCdmaWx0ZXJfY2F0ZWdvcnknLDApOwogIGlmKCAkZmlsdGVyWydrZXl3b3JkJ10gKSAkZmlsdGVyWydub2RhdGUnXSA9IDE7CiAgJHRoaXMtPnNlc3Npb25fcHV0KCdmaWx0ZXInLHNlcmlhbGl6ZSgkZmlsdGVyKSk7Cn0KZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snZmlsdGVyX3Jlc2V0J10pICkgewogICR0aGlzLT5zZXNzaW9uX2NsZWFyKCdmaWx0ZXInKTsKICAkZmlsdGVyID0gJGJhcmVfZmlsdGVyOwp9CmVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ2ZpbHRlcl9jb25mbGljdGluZyddKSApIHsKICAkdGhpcy0+UmVkaXJlY3QoJGlkLCdhZG1pbl9yZW1vdmVfY29uZmxpY3RlZCcsJHJldHVybmlkKTsKICByZXR1cm47Cn0KaWYoICRmaWx0ZXJbJ3Nob3djaGlsZHJlbiddIHx8ICRmaWx0ZXJbJ2tleXdvcmQnXSB8fCAoJGZpbHRlclsnY2F0ZWdvcnknXSA+IDApICkgJGZpbHRlclsnZmlsdGVyX2FwcGxpZWQnXSA9IDE7Cgokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignZmlsdGVyJywkZmlsdGVyKTsKCiRjYXRlZ29yaWVzID0gJHRoaXMtPkdldENhdGVnb3JpZXMoKTsKJGNhdGVnb3J5X2FycmF5ID0gYXJyYXkoJHRoaXMtPkxhbmcoJ2NhbF9hbnlfY2F0ZWdvcnknKT0+LTEpOwpmb3JlYWNoKCRjYXRlZ29yaWVzIGFzICRjYXRlZ29yeSkgewogICRjYXRlZ29yeV9hcnJheVskY2F0ZWdvcnlbJ2NhdGVnb3J5X25hbWUnXV0gPSAkY2F0ZWdvcnlbJ2NhdGVnb3J5X2lkJ107Cn0KJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yaWVzJyxhcnJheV9mbGlwKCRjYXRlZ29yeV9hcnJheSkpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2NhdGVnb3JpZXMnLCR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnY2F0ZWdvcnlfZmlsdGVyJywkY2F0ZWdvcnlfYXJyYXksIC0xLCAkZmlsdGVyWydjYXRlZ29yeSddKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfc3VibWl0JywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdzdWJtaXQnLCR0aGlzLT5MYW5nKCdjYWxfZ28nKSkpOwoKJGFkbWludGhlbWUgPSBjbXNfdXRpbHM6OmdldF90aGVtZV9vYmplY3QoKTsKaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDYWxlbmRhcicpICkgewogICRzbWFydHktPmFzc2lnbignaW1wb3J0X2xpbmsnLAoJCSAgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5faW1wb3J0JywgJHJldHVybmlkLAoJCQkJICAgICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9pbXBvcnQuZ2lmJywgJHRoaXMtPkxhbmcoJ2NhbF9pbXBvcnRfZXZlbnRzJyksJycsJycsJ3N5c3RlbWljb24nKSwKCQkJCSAgICBhcnJheSgpLCAnJywgZmFsc2UsIGZhbHNlLCAnJykuJyAnLgoJCSAgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5faW1wb3J0JywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnY2FsX2ltcG9ydF9ldmVudHMnKSwgYXJyYXkoKSwgJycsIGZhbHNlLCBmYWxzZSwgJ2NsYXNzPSJwYWdlb3B0aW9ucyInKSk7Cn0KaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDYWxlbmRhcicpIHx8ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0FkZCBDYWxlbmRhciBFdmVudHMnKSApIHsKICAkc21hcnR5LT5hc3NpZ24oJ2FkZGxpbmsnLAoJCSAgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2V2ZW50JywgJHJldHVybmlkLAoJCQkJICAgICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJywgJHRoaXMtPkxhbmcoJ2NhbF9hZGRfZXZlbnQnKSwnJywnJywnc3lzdGVtaWNvbicpLAoJCQkJICAgIGFycmF5KCksICcnLCBmYWxzZSwgZmFsc2UsICcnKSAuJyAnLgoJCSAgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2V2ZW50JywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnY2FsX2FkZF9ldmVudCcpLCBhcnJheSgpLCAnJywgZmFsc2UsIGZhbHNlLCAnY2xhc3M9InBhZ2VvcHRpb25zIicpKTsKfQokc21hcnR5LT5hc3NpZ24oJ3Nob3dfY2hpbGRyZW4nLCAkdGhpcy0+Q3JlYXRlSW5wdXRZZXNOb0Ryb3Bkb3duKCRpZCwnc2hvd2NoaWxkcmVuJywkZmlsdGVyWydzaG93Y2hpbGRyZW4nXSkpOwoKJHNkYXRlID0gJGVkYXRlID0gbnVsbDsKaWYoICEkZmlsdGVyWydub2RhdGUnXSApIHsKICAkdG1wZGF0ZSA9ICRmaWx0ZXJbJ2ZpbHRlcl9kYXRlJ107CiAgaWYoICEkdG1wZGF0ZSApICR0bXBkYXRlID0gZGF0ZSgnWScpLictJy5kYXRlKCdtJyk7CiAgbGlzdCgkeWVhciwkbW9udGgpID0gZXhwbG9kZSgnLScsJHRtcGRhdGUsMik7CiAgJHNkYXRlID0gIiR5ZWFyLSRtb250aC0wMSAwMDowMDowMCI7CiAgJGVkYXkgPSBkYXRlKCd0JyxzdHJ0b3RpbWUoIiR5ZWFyLSRtb250aC0wMiIpKTsKICAkZWRhdGUgPSAiJHllYXItJG1vbnRoLSRlZGF5IDIzOjU5OjU5IjsKCiAgJHRfeWVhciA9ICR5ZWFyOwogICR0X21vbnRoID0gJG1vbnRoIC0gMTsKICBpZiggJHRfbW9udGggPCAxICkgewogICAgJHRfeWVhci0tOwogICAgJHRfbW9udGggPSAxMjsKICB9CiAgJHByZXZkYXRlID0gIiR0X3llYXItJHRfbW9udGgiOwogICRzbWFydHktPmFzc2lnbigncHJldm1vbnRoX3VybCcsJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLGFycmF5KCdkYXRlJz0+JHByZXZkYXRlKSkpOwoKICAkdF95ZWFyID0gJHllYXI7CiAgJHRfbW9udGggPSAkbW9udGggKyAxOwogIGlmKCAkdF9tb250aCA+IDEyICkgewogICAgJHRfeWVhcisrOwogICAgJHRfbW9udGggPSAxOwogIH0KICAkbmV4dGRhdGUgPSAiJHRfeWVhci0kdF9tb250aCI7CiAgJHNtYXJ0eS0+YXNzaWduKCduZXh0bW9udGhfdXJsJywkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2RlZmF1bHRhZG1pbicsJycsYXJyYXkoJ2RhdGUnPT4kbmV4dGRhdGUpKSk7Cn0KCiRzcWwgPSAnU0VMRUNUIEUuKiBGUk9NICcuJHRoaXMtPmV2ZW50c190YWJsZV9uYW1lIC4gJyBFJzsKJHdoZXJlID0gYXJyYXkoKTsKCmlmKCAkc2RhdGUgJiYgJGVkYXRlICkgewogICR3aGVyZVtdID0gIigoRS5ldmVudF9kYXRlX3N0YXJ0IEJFVFdFRU4gJ3skc2RhdGV9JyBBTkQgJ3skZWRhdGV9JykgT1IgKEUuZXZlbnRfZGF0ZV9lbmQgQkVUV0VFTiAneyRzZGF0ZX0nIEFORCAneyRlZGF0ZX0nKSkiOwogICRzcWwgPSAnU0VMRUNUIEUuKiBGUk9NICcuICR0aGlzLT5ldmVudHNfdGFibGVfbmFtZSAuICIgRSI7Cn0KCmlmKCAhaXNfbnVsbCgkdXNlcmlkKSApIHsKICAkd2hlcmVbXSA9ICJFLmV2ZW50X2NyZWF0ZWRfYnkgPSB7JHVzZXJpZH0iOwp9CgppZiAoJGZpbHRlclsnY2F0ZWdvcnknXSA+IDAgKSB7CiAgJHNxbCAuPSAnIExFRlQgSk9JTiAnIC4gJHRoaXMtPmV2ZW50c190b19jYXRlZ29yaWVzX3RhYmxlX25hbWUgLiAnIEVDIE9OIEVDLmV2ZW50X2lkID0gRS5ldmVudF9pZCc7CiAgJHdoZXJlW10gPSAnRUMuY2F0ZWdvcnlfaWQgPSAnLiRmaWx0ZXJbJ2NhdGVnb3J5J107Cn0KCmlmKCAhJGZpbHRlclsnc2hvd2NoaWxkcmVuJ10gKSB7CiAgJHdoZXJlW10gPSAnQ09BTEVTQ0UoRS5ldmVudF9wYXJlbnRfaWQsMCkgPCAxJzsKfQoKaWYoICFlbXB0eSgkZmlsdGVyWydrZXl3b3JkJ10pICkgewogICAgJF90bXAgPSAgc3RyX3JlcGxhY2UoJ18nLCdcXF8nLCRmaWx0ZXJbJ2tleXdvcmQnXSk7CiAgICAkdG1wID0gYXJyYXkoKTsKICAgICR0bXBbXSA9ICJFLmV2ZW50X3RpdGxlIExJS0UgJyV7JF90bXB9JSciOwogICAgJHRtcFtdID0gIkUuZXZlbnRfZGV0YWlscyBMSUtFICcleyRfdG1wfSUnIjsKICAgICR0bXBbXSA9ICJFLmV2ZW50X3N1bW1hcnkgTElLRSAnJXskX3RtcH0lJyI7CiAgICAkd2hlcmVbXSA9ICcoJy5pbXBsb2RlKCcgT1IgJywkdG1wKS4nKSc7Cn0KJHNxbCAuPSAnIFdIRVJFICcuaW1wbG9kZSgnIEFORCAnLCR3aGVyZSkuJyBPUkRFUiBCWSBFLmV2ZW50X2RhdGVfc3RhcnQgQVNDLCBFLmV2ZW50X3RpdGxlJzsKCiRycyA9ICRkYi0+RXhlY3V0ZSgkc3FsKTsKJGVudHJpZXMgPSBhcnJheSgpOwppZiAoJHJzICYmICRycy0+UmVjb3JkQ291bnQoKSA+IDApIHsKICAkc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydDInLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnZGVsZXRlZXZlbnRzJywgJHJldHVybmlkKSk7CiAgJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kMicsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CgogIHdoaWxlKCAoJHJvdyA9ICRycy0+RmV0Y2hSb3coKSkgKSB7CiAgICBpZiggJGZpbHRlclsnc2hvd2NoaWxkcmVuJ10gPT0gMCAmJiAkcm93WydldmVudF9wYXJlbnRfaWQnXSA+IDAgKSBjb250aW51ZTsKICAgICR0bXAgPSAkZGItPlVuaXhUaW1lU3RhbXAoJHJvd1snZXZlbnRfZGF0ZV9lbmQnXSk7CiAgICAkcm93Wydpc19wYXJlbnQnXSAgPSAoJHJvd1snZXZlbnRfcmVjdXJfcGVyaW9kJ10gIT0gJ25vbmUnICYmICRyb3dbJ2V2ZW50X3JlY3VyX3BlcmlvZCddICE9ICcnKTsKICAgIGlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgQ2FsZW5kYXInKSB8fCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdFZGl0IE15IENhbGVuZGFyIEV2ZW50cycpICkgewogICAgICAkcm93WydlZGl0X3VybCddICAgPSAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwnYWRtaW5fYWRkX2V2ZW50JywkcmV0dXJuaWQsYXJyYXkoJ2V2ZW50X2lkJz0+JHJvd1snZXZlbnRfaWQnXSkpOwogICAgICAkcm93WydlZGl0bGluayddICAgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9hZGRfZXZlbnQnLCRyZXR1cm5pZCwKCQkJCQkgICAgICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsICR0aGlzLT5MYW5nKCdjYWxfZWRpdCcpLCcnLCcnLCdzeXN0ZW1pY29uJyksCgkJCQkJICAgICBhcnJheSgnZXZlbnRfaWQnPT4kcm93WydldmVudF9pZCddKSk7CiAgICAgICRyb3dbJ2RlbGV0ZWxpbmsnXSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2RlbGV0ZV9ldmVudCcsICRyZXR1cm5pZCwKCQkJCQkgICAgICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywgJHRoaXMtPkxhbmcoJ2NhbF9kZWxldGUnKSwnJywnJywnc3lzdGVtaWNvbicpLAoJCQkJCSAgICAgYXJyYXkoJ2V2ZW50X2lkJz0+JHJvd1snZXZlbnRfaWQnXSksCgkJCQkJICAgICAkdGhpcy0+TGFuZygnY2FsX2FyZXlvdXN1cmUnKS4nICZxdW90OycuYWRkc2xhc2hlcyhzdHJpcF90YWdzKCRyb3dbJ2V2ZW50X3RpdGxlJ10pKS4nJnF1b3Q7Jyk7CiAgICB9CiAgICBpZiggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IENhbGVuZGFyJykgKSB7CiAgICAgIGlmKCAkcm93WydldmVudF9wYXJlbnRfaWQnXSA+IDAgKSB7Cgkkcm93WydlZGl0X3BhcmVudF91cmwnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCdhZG1pbl9hZGRfZXZlbnQnLCRyZXR1cm5pZCxhcnJheSgnZXZlbnRfaWQnPT4kcm93WydldmVudF9wYXJlbnRfaWQnXSkpOwogICAgICB9CiAgICB9CiAgICAkZW50cmllc1tdID0gJHJvdzsKICB9CgogIC8vIGNsb3NlIG9mZiBmaW5hbCBjb2x1bW4KICBpZiggY291bnQoJGVudHJpZXMpICkgJHNtYXJ0eS0+YXNzaWduKCdldmVudHMnLCRlbnRyaWVzKTsKICAkcnMtPkNsb3NlKCk7Cn0KKi8KCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fZXZlbnRzX3RhYi50cGwnKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_calendar_template_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4IAojICAgICAgYnkgUm9iZXJ0IEFsbGVuIChha3JhYmF0KSBhbmQKIyAgICAgICAgIFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgZGlzcGxheWluZyBjYWxlbmRhcnMsCiMgIGFuZCBtYW5hZ2VtZW50IGFuZCBkaXNwbGF5IG9mIHRpbWUgYmFzZWQgZXZlbnRzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgplY2hvICc8cD4nLiR0aGlzLT5MYW5nKCdpbmZvX2NhbGVuZGFyX3RlbXBsYXRlX3RhYicpLic8L3A+JzsKZWNobyAkdGhpcy0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsJHJldHVybmlkLCdjYWxlbmRhcl8nLAoJCQkgICAgIENHQ0FMRU5EQVJfUFJFRl9ORVdDQUxFTkRBUl9URU1QTEFURSwKCQkJICAgICAnYWRtaW5fY2FsZW5kYXJfdGVtcGxhdGUnLAoJCQkgICAgIENHQ0FMRU5EQVJfUFJFRl9ERkxUQ0FMRU5EQVJfVEVNUExBVEUsCgkJCSAgICAgJHRoaXMtPkxhbmcoJ2NhbGVuZGFydGVtcGxhdGVfYWRkZWRpdCcpLAoJCQkgICAgICcnLCdhZG1pbl90ZW1wbGF0ZXMnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_categories_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICRjYXRlZ29yaWVzID0gXENHQ2FsZW5kYXJcY2F0ZWdvcnk6OmdldF9jYXRlZ29yaWVzKCk7CgogICRzbWFydHktPmFzc2lnbignY2F0ZWdvcmllcycsJGNhdGVnb3JpZXMpOwogIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fY2F0ZWdvcmllc190YWIudHBsJyk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_default_templates_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4IAojICAgICAgYnkgUm9iZXJ0IEFsbGVuIChha3JhYmF0KSBhbmQKIyAgICAgICAgIFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgZGlzcGxheWluZyBjYWxlbmRhcnMsCiMgIGFuZCBtYW5hZ2VtZW50IGFuZCBkaXNwbGF5IG9mIHRpbWUgYmFzZWQgZXZlbnRzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgojIFN5c3RlbSBEZWZhdWx0IFJlc291cmNlIENhbGVuZGFyIFRlbXBsYXRlCmVjaG8gJHRoaXMtPkdldERlZmF1bHRUZW1wbGF0ZUZvcm0oJHRoaXMsJGlkLCRyZXR1cm5pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDR0NBTEVOREFSX1BSRUZfTkVXQ0FMRU5EQVJfVEVNUExBVEUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkbWluX3RlbXBsYXRlcycsICdkZWZhdWx0X3RlbXBsYXRlcycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkxhbmcoJ2luZm9fc3lzZGZsdF9jYWxlbmRhcl90ZW1wbGF0ZScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcmlnX2NhbGVuZGFyX3RlbXBsYXRlLnRwbCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkxhbmcoJ2luZm9fc3lzZGZsdF90ZW1wbGF0ZScpKTsKCmVjaG8gJzxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206IDAuNWVtOyBoZWlnaHQ6IDAuNWVtOyBib3JkZXItdG9wOiAxcHggc29saWQgIzAwMDsgd2lkdGg6IDgwJTsiPjwvZGl2PicuIlxuIjsKCiMgU3lzdGVtIERlZmF1bHQgUmVzb3VyY2UgTGlzdCBUZW1wbGF0ZQplY2hvICR0aGlzLT5HZXREZWZhdWx0VGVtcGxhdGVGb3JtKCR0aGlzLCRpZCwkcmV0dXJuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0dDQUxFTkRBUl9QUkVGX05FV0xJU1RfVEVNUExBVEUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkbWluX3RlbXBsYXRlcycsICdkZWZhdWx0X3RlbXBsYXRlcycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkxhbmcoJ2luZm9fc3lzZGZsdF9saXN0X3RlbXBsYXRlJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29yaWdfbGlzdF90ZW1wbGF0ZS50cGwnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5MYW5nKCdpbmZvX3N5c2RmbHRfdGVtcGxhdGUnKSk7CgplY2hvICc8ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOiAwLjVlbTsgaGVpZ2h0OiAwLjVlbTsgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMwMDA7IHdpZHRoOiA4MCU7Ij48L2Rpdj4nLiJcbiI7CgojIFN5c3RlbSBEZWZhdWx0IFJlc291cmNlIFVwY29taW5nbGlzdCBUZW1wbGF0ZQplY2hvICR0aGlzLT5HZXREZWZhdWx0VGVtcGxhdGVGb3JtKCR0aGlzLCRpZCwkcmV0dXJuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0dDQUxFTkRBUl9QUkVGX05FV1VQQ09NSU5HTElTVF9URU1QTEFURSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRtaW5fdGVtcGxhdGVzJywgJ2RlZmF1bHRfdGVtcGxhdGVzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+TGFuZygnaW5mb19zeXNkZmx0X3VwY29taW5nbGlzdF90ZW1wbGF0ZScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcmlnX3VwY29taW5nbGlzdF90ZW1wbGF0ZS50cGwnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5MYW5nKCdpbmZvX3N5c2RmbHRfdGVtcGxhdGUnKSk7CgplY2hvICc8ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOiAwLjVlbTsgaGVpZ2h0OiAwLjVlbTsgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMwMDA7IHdpZHRoOiA4MCU7Ij48L2Rpdj4nLiJcbiI7CgojIFN5c3RlbSBEZWZhdWx0IFNlYXJjaCBGb3JtIFRlbXBsYXRlCmVjaG8gJHRoaXMtPkdldERlZmF1bHRUZW1wbGF0ZUZvcm0oJHRoaXMsJGlkLCRyZXR1cm5pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDR0NBTEVOREFSX1BSRUZfTkVXU0VBUkNIX1RFTVBMQVRFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhZG1pbl90ZW1wbGF0ZXMnLCAnZGVmYXVsdF90ZW1wbGF0ZXMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5MYW5nKCdpbmZvX3N5c2RmbHRfc2VhcmNoX3RlbXBsYXRlJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29yaWdfc2VhcmNoX3RlbXBsYXRlLnRwbCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkxhbmcoJ2luZm9fc3lzZGZsdF90ZW1wbGF0ZScpKTsKZWNobyAnPGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMC41ZW07IGhlaWdodDogMC41ZW07IGJvcmRlci10b3A6IDFweCBzb2xpZCAjMDAwOyB3aWR0aDogODAlOyI+PC9kaXY+Jy4iXG4iOwoKIyBTeXN0ZW0gRGVmYXVsdCBTZWFyY2ggUmVzdWx0IFRlbXBsYXRlCmVjaG8gJHRoaXMtPkdldERlZmF1bHRUZW1wbGF0ZUZvcm0oJHRoaXMsJGlkLCRyZXR1cm5pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDR0NBTEVOREFSX1BSRUZfTkVXU0VBUkNIUkVTVUxUX1RFTVBMQVRFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhZG1pbl90ZW1wbGF0ZXMnLCAnZGVmYXVsdF90ZW1wbGF0ZXMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5MYW5nKCdpbmZvX3N5c2RmbHRfc2VhcmNocmVzdWx0X3RlbXBsYXRlJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29yaWdfc2VhcmNocmVzdWx0X3RlbXBsYXRlLnRwbCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkxhbmcoJ2luZm9fc3lzZGZsdF90ZW1wbGF0ZScpKTsKZWNobyAnPGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMC41ZW07IGhlaWdodDogMC41ZW07IGJvcmRlci10b3A6IDFweCBzb2xpZCAjMDAwOyB3aWR0aDogODAlOyI+PC9kaXY+Jy4iXG4iOwoKIyBTeXN0ZW0gRGVmYXVsdCBSZXNvdXJjZSBFdmVudCBUZW1wbGF0ZQplY2hvICR0aGlzLT5HZXREZWZhdWx0VGVtcGxhdGVGb3JtKCR0aGlzLCRpZCwkcmV0dXJuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0dDQUxFTkRBUl9QUkVGX05FV0VWRU5UX1RFTVBMQVRFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhZG1pbl90ZW1wbGF0ZXMnLCAnZGVmYXVsdF90ZW1wbGF0ZXMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5MYW5nKCdpbmZvX3N5c2RmbHRfZXZlbnRfdGVtcGxhdGUnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb3JpZ19ldmVudF90ZW1wbGF0ZS50cGwnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5MYW5nKCdpbmZvX3N5c2RmbHRfdGVtcGxhdGUnKSk7CgplY2hvICc8ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOiAwLjVlbTsgaGVpZ2h0OiAwLjVlbTsgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMwMDA7IHdpZHRoOiA4MCU7Ij48L2Rpdj4nLiJcbiI7CgojIFN5c3RlbSBEZWZhdWx0IFJlc291cmNlIEV2ZW50IFRlbXBsYXRlCmVjaG8gJHRoaXMtPkdldERlZmF1bHRUZW1wbGF0ZUZvcm0oJHRoaXMsJGlkLCRyZXR1cm5pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDR0NBTEVOREFSX1BSRUZfTkVXTVlFVkVOVFNfVEVNUExBVEUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkbWluX3RlbXBsYXRlcycsICdkZWZhdWx0X3RlbXBsYXRlcycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkxhbmcoJ2luZm9fc3lzZGZsdF9teWV2ZW50c190ZW1wbGF0ZScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcmlnX215ZXZlbnRzX3RlbXBsYXRlLnRwbCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkxhbmcoJ2luZm9fc3lzZGZsdF90ZW1wbGF0ZScpKTsKCgojIFN5c3RlbSBEZWZhdWx0IFJlc291cmNlIEV2ZW50IFRlbXBsYXRlCmVjaG8gJzxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206IDAuNWVtOyBoZWlnaHQ6IDAuNWVtOyBib3JkZXItdG9wOiAxcHggc29saWQgIzAwMDsgd2lkdGg6IDgwJTsiPjwvZGl2PicuIlxuIjsKZWNobyAkdGhpcy0+R2V0RGVmYXVsdFRlbXBsYXRlRm9ybSgkdGhpcywkaWQsJHJldHVybmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENHQ0FMRU5EQVJfUFJFRl9ORVdFRElURVZFTlRfVEVNUExBVEUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkbWluX3RlbXBsYXRlcycsICdkZWZhdWx0X3RlbXBsYXRlcycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkxhbmcoJ2luZm9fc3lzZGZsdF9lZGl0ZXZlbnRfdGVtcGxhdGUnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb3JpZ19lZGl0ZXZlbnRfdGVtcGxhdGUudHBsJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+TGFuZygnaW5mb19zeXNkZmx0X3RlbXBsYXRlJykpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_editevent_templates_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4IAojICAgICAgYnkgUm9iZXJ0IEFsbGVuIChha3JhYmF0KSBhbmQKIyAgICAgICAgIFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgZGlzcGxheWluZyBjYWxlbmRhcnMsCiMgIGFuZCBtYW5hZ2VtZW50IGFuZCBkaXNwbGF5IG9mIHRpbWUgYmFzZWQgZXZlbnRzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgplY2hvICc8cD4nLiR0aGlzLT5MYW5nKCdpbmZvX2VkaXRldmVudF90ZW1wbGF0ZV90YWInKS4nPC9wPic7CmVjaG8gJHRoaXMtPlNob3dUZW1wbGF0ZUxpc3QoJGlkLCRyZXR1cm5pZCwnZWRpdGV2ZW50XycsCgkJCSAgICAgQ0dDQUxFTkRBUl9QUkVGX05FV0VESVRFVkVOVF9URU1QTEFURSwKCQkJICAgICAnYWRtaW5fZWRpdGV2ZW50X3RlbXBsYXRlcycsCgkJCSAgICAgQ0dDQUxFTkRBUl9QUkVGX0RGTFRFRElURVZFTlRfVEVNUExBVEUsCgkJCSAgICAgJHRoaXMtPkxhbmcoJ2VkaXRldmVudHRlbXBsYXRlX2FkZGVkaXQnKSwKCQkJICAgICAnJywnYWRtaW5fdGVtcGxhdGVzJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_event_template_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4IAojICAgICAgYnkgUm9iZXJ0IEFsbGVuIChha3JhYmF0KSBhbmQKIyAgICAgICAgIFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgZGlzcGxheWluZyBjYWxlbmRhcnMsCiMgIGFuZCBtYW5hZ2VtZW50IGFuZCBkaXNwbGF5IG9mIHRpbWUgYmFzZWQgZXZlbnRzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgplY2hvICc8cD4nLiR0aGlzLT5MYW5nKCdpbmZvX2V2ZW50X3RlbXBsYXRlX3RhYicpLic8L3A+JzsKZWNobyAkdGhpcy0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsJHJldHVybmlkLCdldmVudF8nLAoJCQkgICAgIENHQ0FMRU5EQVJfUFJFRl9ORVdFVkVOVF9URU1QTEFURSwKCQkJICAgICAnYWRtaW5fZXZlbnRfdGVtcGxhdGUnLAoJCQkgICAgIENHQ0FMRU5EQVJfUFJFRl9ERkxURVZFTlRfVEVNUExBVEUsCgkJCSAgICAgJHRoaXMtPkxhbmcoJ2V2ZW50dGVtcGxhdGVfYWRkZWRpdCcpLAoJCQkgICAgICcnLCdhZG1pbl90ZW1wbGF0ZXMnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_fieldstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4IAojICAgICAgYnkgUm9iZXJ0IEFsbGVuIChha3JhYmF0KSBhbmQKIyAgICAgICAgIFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgZGlzcGxheWluZyBjYWxlbmRhcnMsCiMgIGFuZCBtYW5hZ2VtZW50IGFuZCBkaXNwbGF5IG9mIHRpbWUgYmFzZWQgZXZlbnRzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7Cgokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fZmllbGRzX3VwZGF0ZScsICRyZXR1cm5pZCwgJ3Bvc3QnLCAnJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokZmllbGRzID0gJHRoaXMtPkdldEZpZWxkcygpOwppZiggaXNfYXJyYXkoJGZpZWxkcykgJiYgY291bnQoJGZpZWxkcykgKSB7CiAgJHNtYXJ0eS0+YXNzaWduKCdmaWVsZHMnLCRmaWVsZHMpOwp9CgokdHlwZXMgPSBhcnJheSgpOwokdHlwZXNbJHRoaXMtPkxhbmcoJ3RleHRmaWVsZCcpXSA9ICcwJzsKJHR5cGVzWyR0aGlzLT5MYW5nKCd1cGxvYWRmaWVsZCcpXSA9ICcxJzsKJHR5cGVzWyR0aGlzLT5MYW5nKCd0ZXh0YXJlYScpXSA9ICcyJzsKJGNkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDb21wYW55RGlyZWN0b3J5Jyk7CmlmKCBpc19vYmplY3QoJGNkbW9kKSApICR0eXBlc1skdGhpcy0+TGFuZygnY2RfY29tcGFueScpXSA9ICczJzsKJHR5cGVzWyR0aGlzLT5MYW5nKCdmaWxlYXR0YWNobWVudCcpXSA9IDQ7CiRzbWFydHktPmFzc2lnbigndHlwZXMnLGFycmF5X2ZsaXAoJHR5cGVzKSk7CgoKJHNtYXJ0eS0+YXNzaWduKCd0eXBldGV4dCcsJHRoaXMtPkxhbmcoJ3R5cGUnKSk7CiRzbWFydHktPmFzc2lnbignbmFtZXRleHQnLCR0aGlzLT5MYW5nKCduYW1lJykpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2ZpZWxkc3RhYi50cGwnKTsKCi8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_list_template_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4IAojICAgICAgYnkgUm9iZXJ0IEFsbGVuIChha3JhYmF0KSBhbmQKIyAgICAgICAgIFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgZGlzcGxheWluZyBjYWxlbmRhcnMsCiMgIGFuZCBtYW5hZ2VtZW50IGFuZCBkaXNwbGF5IG9mIHRpbWUgYmFzZWQgZXZlbnRzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgplY2hvICc8cD4nLiR0aGlzLT5MYW5nKCdpbmZvX2xpc3RfdGVtcGxhdGVfdGFiJykuJzwvcD4nOwplY2hvICR0aGlzLT5TaG93VGVtcGxhdGVMaXN0KCRpZCwkcmV0dXJuaWQsJ2xpc3RfJywKCQkJICAgICBDR0NBTEVOREFSX1BSRUZfTkVXTElTVF9URU1QTEFURSwKCQkJICAgICAnYWRtaW5fbGlzdF90ZW1wbGF0ZScsCgkJCSAgICAgQ0dDQUxFTkRBUl9QUkVGX0RGTFRMSVNUX1RFTVBMQVRFLAoJCQkgICAgICR0aGlzLT5MYW5nKCdsaXN0dGVtcGxhdGVfYWRkZWRpdCcpLAoJCQkgICAgICcnLCdhZG1pbl90ZW1wbGF0ZXMnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_myevents_templates_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4IAojICAgICAgYnkgUm9iZXJ0IEFsbGVuIChha3JhYmF0KSBhbmQKIyAgICAgICAgIFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgZGlzcGxheWluZyBjYWxlbmRhcnMsCiMgIGFuZCBtYW5hZ2VtZW50IGFuZCBkaXNwbGF5IG9mIHRpbWUgYmFzZWQgZXZlbnRzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgplY2hvICc8cD4nLiR0aGlzLT5MYW5nKCdpbmZvX215ZXZlbnRzX3RlbXBsYXRlX3RhYicpLic8L3A+JzsKZWNobyAkdGhpcy0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsJHJldHVybmlkLCdteWV2ZW50c18nLAoJCQkgICAgIENHQ0FMRU5EQVJfUFJFRl9ORVdNWUVWRU5UU19URU1QTEFURSwKCQkJICAgICAnYWRtaW5fbXlldmVudHNfdGVtcGxhdGVzJywKCQkJICAgICBDR0NBTEVOREFSX1BSRUZfREZMVE1ZRVZFTlRTX1RFTVBMQVRFLAoJCQkgICAgICR0aGlzLT5MYW5nKCdteWV2ZW50c3RlbXBsYXRlX2FkZGVkaXQnKSwKCQkJICAgICAnJywnYWRtaW5fdGVtcGxhdGVzJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_search_result_templates_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4IAojICAgICAgYnkgUm9iZXJ0IEFsbGVuIChha3JhYmF0KSBhbmQKIyAgICAgICAgIFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgZGlzcGxheWluZyBjYWxlbmRhcnMsCiMgIGFuZCBtYW5hZ2VtZW50IGFuZCBkaXNwbGF5IG9mIHRpbWUgYmFzZWQgZXZlbnRzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgplY2hvICc8cD4nLiR0aGlzLT5MYW5nKCdpbmZvX3NlYXJjaHJlc3VsdF90ZW1wbGF0ZV90YWInKS4nPC9wPic7CmVjaG8gJHRoaXMtPlNob3dUZW1wbGF0ZUxpc3QoJGlkLCRyZXR1cm5pZCwnc2VhcmNocmVzdWx0XycsCgkJCSAgICAgQ0dDQUxFTkRBUl9QUkVGX05FV1NFQVJDSFJFU1VMVF9URU1QTEFURSwKCQkJICAgICAnYWRtaW5fc2VhcmNoX3Jlc3VsdF90ZW1wbGF0ZXMnLAoJCQkgICAgIENHQ0FMRU5EQVJfUFJFRl9ERkxUU0VBUkNIUkVTVUxUX1RFTVBMQVRFLAoJCQkgICAgICR0aGlzLT5MYW5nKCdzZWFyY2hyZXN1bHR0ZW1wbGF0ZV9hZGRlZGl0JyksCgkJCSAgICAgJycsJ2FkbWluX3RlbXBsYXRlcycpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_search_templates_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4IAojICAgICAgYnkgUm9iZXJ0IEFsbGVuIChha3JhYmF0KSBhbmQKIyAgICAgICAgIFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgZGlzcGxheWluZyBjYWxlbmRhcnMsCiMgIGFuZCBtYW5hZ2VtZW50IGFuZCBkaXNwbGF5IG9mIHRpbWUgYmFzZWQgZXZlbnRzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgplY2hvICc8cD4nLiR0aGlzLT5MYW5nKCdpbmZvX3NlYXJjaF90ZW1wbGF0ZV90YWInKS4nPC9wPic7CmVjaG8gJHRoaXMtPlNob3dUZW1wbGF0ZUxpc3QoJGlkLCRyZXR1cm5pZCwnc2VhcmNoXycsCgkJCSAgICAgQ0dDQUxFTkRBUl9QUkVGX05FV1NFQVJDSF9URU1QTEFURSwKCQkJICAgICAnYWRtaW5fc2VhcmNoX2Zvcm1fdGVtcGxhdGVzJywKCQkJICAgICBDR0NBTEVOREFSX1BSRUZfREZMVFNFQVJDSF9URU1QTEFURSwKCQkJICAgICAkdGhpcy0+TGFuZygnc2VhcmNodGVtcGxhdGVfYWRkZWRpdCcpLAoJCQkgICAgICcnLCdhZG1pbl90ZW1wbGF0ZXMnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_settingstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4CiMgICAgICBieSBSb2JlcnQgQWxsZW4gKGFrcmFiYXQpIGFuZAojICAgICAgICAgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBkaXNwbGF5aW5nIGNhbGVuZGFycywKIyAgYW5kIG1hbmFnZW1lbnQgYW5kIGRpc3BsYXkgb2YgdGltZSBiYXNlZCBldmVudHMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQokZ0NtcyA9IGNtc21zKCk7Cgokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fc2V0dGluZ3NfdXBkYXRlJywgJHJldHVybmlkLCAkbWV0aG9kPSdwb3N0JywgJGVuY3R5cGU9JycpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7Cgokc21hcnR5LT5hc3NpZ24oJ2ZyaWVuZGx5bmFtZScsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ZyaWVuZGx5bmFtZScpKTsKJHNtYXJ0eS0+YXNzaWduKCd0d2VsdmVob3VydGV4dCcsJHRoaXMtPkxhbmcoJ2NhbF91c2VfdHdlbHZlX2hvdXJfY2xvY2snKSk7CiRzbWFydHktPmFzc2lnbigndHdlbHZlaG91cmlucHV0JywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ3VzZV90d2VsdmVfaG91cl9jbG9jaycsIDEsCiAgCSAgICAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZV90d2VsdmVfaG91cl9jbG9jaycsMCkpKTsKCiRzbWFydHktPmFzc2lnbignZm9yY2VjYXR0ZXh0JywkdGhpcy0+TGFuZygnZm9yY2VfY2F0ZWdvcnknKSk7CiRzbWFydHktPmFzc2lnbignZm9yY2VjYXRpbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZm9yY2VfY2F0ZWdvcnknLCAxLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZm9yY2VfY2F0ZWdvcnknLCAwKSkpOwoKJGNhdGVnb3JpZXMgPSAkdGhpcy0+R2V0Q2F0ZWdvcmllcygpOwppZiggaXNfYXJyYXkoJGNhdGVnb3JpZXMpICYmIGNvdW50KCRjYXRlZ29yaWVzKSApIHsKICAkc21hcnR5LT5hc3NpZ24oJ2RlZmNhdHRleHQnLCR0aGlzLT5MYW5nKCdjYWxfZGVmYXVsdF9jYXRlZ29yeScpKTsKICBmb3JlYWNoICgkY2F0ZWdvcmllcyBhcyAka2V5ID0+ICRjYXQpIHsKICAgICRsaXN0X2NhdGVnb3JpZXNbJGNhdFsnY2F0ZWdvcnlfbmFtZSddXSA9ICRjYXRbJ2NhdGVnb3J5X2lkJ107CiAgfQogICRzbWFydHktPmFzc2lnbignZGVmY2F0aW5wdXQnLCR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2RlZmF1bHRfY2F0ZWdvcnknLCAkbGlzdF9jYXRlZ29yaWVzLCAtMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfY2F0ZWdvcnknLCcnKSkpOwp9CgokeWVhcnNfYXJyYXk9YXJyYXkoMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMTksMjApOwokc21hcnR5LT5hc3NpZ24oInBhc3R5ZWFyc3RleHQiLCR0aGlzLT5MYW5nKCJzaG93cGFzdHllYXJzIikpOwokc21hcnR5LT5hc3NpZ24oInBhc3R5ZWFyc2lucHV0IiwkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdzaG93cGFzdHllYXJzJywgJHllYXJzX2FycmF5LCAtMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoInNob3dwYXN0eWVhcnMiLDIpKSk7Cgokc21hcnR5LT5hc3NpZ24oImZ1dHVyZXllYXJzdGV4dCIsJHRoaXMtPkxhbmcoInNob3dmdXR1cmV5ZWFycyIpKTsKJHNtYXJ0eS0+YXNzaWduKCJmdXR1cmV5ZWFyc2lucHV0IiwkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdzaG93ZnV0dXJleWVhcnMnLCAkeWVhcnNfYXJyYXksIC0xLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgic2hvd2Z1dHVyZXllYXJzIiwxMCkpKTsKCiRzbWFydHktPmFzc2lnbignaGlkZXN1bW1hcnl0ZXh0JywkdGhpcy0+TGFuZygnaGlkZXN1bW1hcnknKSk7CiRzbWFydHktPmFzc2lnbignaGlkZXN1bW1hcnlpbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnaGlkZXN1bW1hcnknLCAxLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaGlkZXN1bW1hcnknLCAwKSkpOwoKJHNtYXJ0eS0+YXNzaWduKCdoaWRlY29udGVudHRleHQnLCR0aGlzLT5MYW5nKCdoaWRlY29udGVudCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdoaWRlY29udGVudGlucHV0JywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdoaWRlY29udGVudCcsIDEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdoaWRlY29udGVudCcsIDApKSk7Cgokc21hcnR5LT5hc3NpZ24oJ2RmbHRfZmdjb2xvcicsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RmbHRfZmdjb2xvcicsJyNmZmZmZmYnKSk7CiRzbWFydHktPmFzc2lnbignZGZsdF9iZ2NvbG9yJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGZsdF9iZ2NvbG9yJywnIzAwOTkwMCcpKTsKCiRjb250ZW50b3BzID0gJGdDbXMtPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CiRzbWFydHktPmFzc2lnbignZGVmYXVsdGNhbGVuZGFycGFnZV90ZXh0JywgJHRoaXMtPkxhbmcoJ2RlZmF1bHRjYWxlbmRhcnBhZ2UnKSk7CiRzbWFydHktPmFzc2lnbignZGVmYXVsdGNhbGVuZGFycGFnZV9pbnB1dCcsICRjb250ZW50b3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRjYWxlbmRhcnBhZ2UnLCctMScpKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3VwbG9hZGRpcmVjdG9yeV90ZXh0JywkdGhpcy0+TGFuZygndXBsb2FkZGlyZWN0b3J5JykpOwokc21hcnR5LT5hc3NpZ24oJ3VwbG9hZGRpcmVjdG9yeV9pbnB1dCcsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ3VwbG9hZGRpcmVjdG9yeScsCgkJCQkJCQkgICAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VwbG9hZGRpcmVjdG9yeScsJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10pLAoJCQkJCQkJICAgICAgIDMwKSk7CgokdmFsID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VwbG9hZGZpbGV0eXBlcycsJ2pwZyxqcGVnLGdpZixwbmcnKTsKJHNtYXJ0eS0+YXNzaWduKCd1cGxvYWRmaWxldHlwZXNfdGV4dCcsJHRoaXMtPkxhbmcoJ3VwbG9hZGZpbGV0eXBlcycpKTsKJHNtYXJ0eS0+YXNzaWduKCd1cGxvYWRmaWxldHlwZXNfaW5wdXQnLCR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCd1cGxvYWRmaWxldHlwZXMnLCR2YWwsIDMwKSk7CgokdmFsID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VwbG9hZHVuaXF1ZScsMSk7CiRzbWFydHktPmFzc2lnbigndXBsb2FkdW5pcXVlX3RleHQnLCR0aGlzLT5MYW5nKCd1cGxvYWR1bmlxdWUnKSk7CiRzbWFydHktPmFzc2lnbigndXBsb2FkdW5pcXVlX2lucHV0JywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ3VwbG9hZHVuaXF1ZScsIDEsICR2YWwpKTsKCiRzbWFydHktPmFzc2lnbignZnJvbnRlbmRfcmVkaXJlY3RwYWdlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfcmVkaXJlY3RwYWdlJykpOwoKJHBvbGljaWVzID0gYXJyYXkoKTsKJHBvbGljaWVzWydhbGwnXSA9ICR0aGlzLT5MYW5nKCdwb2xpY3lfYWxsJyk7CiRwb2xpY2llc1snbm9uZSddID0gJHRoaXMtPkxhbmcoJ3BvbGljeV9ub25lJyk7CiRwb2xpY2llc1snaW5kaXZpZHVhbCddID0gJHRoaXMtPkxhbmcoJ3BvbGljeV9pbmRpdmlkdWFsJyk7CiRzbWFydHktPmFzc2lnbignb3ZlcmxhcF9wb2xpY2llcycsJHBvbGljaWVzKTsKJHNtYXJ0eS0+YXNzaWduKCdvdmVybGFwX3BvbGljeScsJHRoaXMtPkdldFByZWZlcmVuY2UoJ292ZXJsYXBfcG9saWN5JywnYWxsJykpOwoKJG92ZXJsYXBfYWN0aW9ucyA9IGFycmF5KCk7CiRvdmVybGFwX2FjdGlvbnNbJ3JlbW92ZSddID0gJHRoaXMtPkxhbmcoJ292ZXJsYXBfYWN0aW9uX3JlbW92ZScpOwokb3ZlcmxhcF9hY3Rpb25zWydlcnJvciddID0gJHRoaXMtPkxhbmcoJ292ZXJsYXBfYWN0aW9uX2Vycm9yJyk7CiRzbWFydHktPmFzc2lnbignb3ZlcmxhcF9hY3Rpb25zJywkb3ZlcmxhcF9hY3Rpb25zKTsKJHNtYXJ0eS0+YXNzaWduKCdvdmVybGFwX2FjdGlvbicsJHRoaXMtPkdldFByZWZlcmVuY2UoJ292ZXJsYXBfYWN0aW9uJywnZXJyb3InKSk7CgokcHJlZml4ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VybF9wcmVmaXgnKTsKaWYoICEkcHJlZml4ICkgJHByZWZpeCA9ICdjYWxlbmRhcic7CiRzbWFydHktPmFzc2lnbigndXJsX3ByZWZpeCcsJHByZWZpeCk7CiRzbWFydHktPmFzc2lnbignZGZsdF9zdGFydHRpbWUnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZmx0X3N0YXJ0dGltZScsJzEyOjAwJykpOwokc21hcnR5LT5hc3NpZ24oJ2RmbHRfYWxsZGF5ZXZlbnQnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZmx0X2FsbGRheWV2ZW50JywwKSk7CiRzbWFydHktPmFzc2lnbignZmlyc3RkYXlvZndlZWsnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmaXJzdGRheW9md2VlaycsMSkpOwokc21hcnR5LT5hc3NpZ24oJ2RheW9wdGlvbnMnLGFycmF5KDA9PiR0aGlzLT5MYW5nKCdzdW5kYXknKSwxPT4kdGhpcy0+TGFuZygnbW9uZGF5JykpKTsKCiRzbWFydHktPmFzc2lnbignc3VibWl0JywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgJHRoaXMtPkxhbmcoJ2NhbF91cGRhdGVzZXR0aW5ncycpKSk7CgokZmV1ID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJyk7CmlmKCAkZmV1ICkKICB7CiAgICAkdG1wID0gJGZldS0+R2V0R3JvdXBMaXN0KCk7CiAgICAkdG1wID0gY2dlX2FycmF5OjpoYXNoX3ByZXBlbmQoJHRtcCwkdGhpcy0+TGFuZygnbm9uZScpLC0xKTsKICAgICRzbWFydHktPmFzc2lnbignZ3JvdXBsaXN0JyxhcnJheV9mbGlwKCR0bXApKTsKICAgICRzbWFydHktPmFzc2lnbignZnJvbnRlbmRfZ3JvdXAnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9ncm91cCcsLTEpKTsKICB9CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnc2V0dGluZ3MudHBsJyk7CgovLyBFT0YKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_upcominglist_template_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4IAojICAgICAgYnkgUm9iZXJ0IEFsbGVuIChha3JhYmF0KSBhbmQKIyAgICAgICAgIFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgZGlzcGxheWluZyBjYWxlbmRhcnMsCiMgIGFuZCBtYW5hZ2VtZW50IGFuZCBkaXNwbGF5IG9mIHRpbWUgYmFzZWQgZXZlbnRzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgplY2hvICc8cD4nLiR0aGlzLT5MYW5nKCdpbmZvX3VwY29taW5nbGlzdF90ZW1wbGF0ZV90YWInKS4nPC9wPic7CmVjaG8gJHRoaXMtPlNob3dUZW1wbGF0ZUxpc3QoJGlkLCRyZXR1cm5pZCwndXBjb21pbmdsaXN0XycsCgkJCSAgICAgQ0dDQUxFTkRBUl9QUkVGX05FV1VQQ09NSU5HTElTVF9URU1QTEFURSwKCQkJICAgICAnYWRtaW5fdXBjb21pbmdsaXN0X3RlbXBsYXRlJywKCQkJICAgICBDR0NBTEVOREFSX1BSRUZfREZMVFVQQ09NSU5HTElTVF9URU1QTEFURSwKCQkJICAgICAkdGhpcy0+TGFuZygndXBjb21pbmdsaXN0dGVtcGxhdGVfYWRkZWRpdCcpLAoJCQkgICAgICcnLCdhZG1pbl90ZW1wbGF0ZXMnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.displaycalendar.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4CiMgICAgICBieSBSb2JlcnQgQWxsZW4gKGFrcmFiYXQpIGFuZAojICAgICAgICAgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBkaXNwbGF5aW5nIGNhbGVuZGFycywKIyAgYW5kIG1hbmFnZW1lbnQgYW5kIGRpc3BsYXkgb2YgdGltZSBiYXNlZCBldmVudHMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKJHVzZV9zZXNzaW9uID0gaXNzZXQoJHBhcmFtc1sndXNlX3Nlc3Npb24nXSkgPyB0cmltKCRwYXJhbXNbJ3VzZV9zZXNzaW9uJ10pIDogJyc7CiRtb250aCA9IC0xOwokeWVhciA9IC0xOwokcF9kZXRhaWxwYWdlID0gJyc7CiRkZXRhaWxwYWdlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRjYWxlbmRhcnBhZ2UnLCRyZXR1cm5pZCk7CmlmKCAkZGV0YWlscGFnZSA8IDEgKSAkZGV0YWlscGFnZSA9ICRyZXR1cm5pZDsKJGNhdGVnb3J5ID0gJyc7CiRpbmxpbmUgPSAwOwokc2Vzc2lvbmtleSA9IG51bGw7CiR0aGV0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKENHQ0FMRU5EQVJfUFJFRl9ERkxUQ0FMRU5EQVJfVEVNUExBVEUpOwppZiggJHVzZV9zZXNzaW9uICkgewogIC8vIHdlIHVzZSBhIHVuaXF1ZSBrZXksIGJhc2VkIG9uIG1vc3QgcGFyYW1ldGVycyAoZXhjZXB0IHRoZSBvbmVzIHRoYXQgY2FuIGNoYW5nZSkKICAvLyBhbmQgb25seSBleHRyYWN0IGl0ZW1zIGZyb20gdGhlIHNlc3Npb24gdGhhdCBjYW4gY2hhbmdlIChsaWtlIGRhdGVzLCBvciBwYWdlIG51bWJlcnMpLgogICRzZXNzaW9ua2V5ID0gJHVzZV9zZXNzaW9uLmNnY2FsZW5kYXJfdXRpbHM6OmdldF9zZXNzaW9ua2V5KCRwYXJhbXMpOwogICRtb250aCA9ICR0aGlzLT5zZXNzaW9uX2dldCgkc2Vzc2lvbmtleS4nY3VyX21vbnRoJywkbW9udGgpOwogICR5ZWFyID0gJHRoaXMtPnNlc3Npb25fZ2V0KCRzZXNzaW9ua2V5LidjdXJfeWVhcicsJHllYXIpOwp9CgovLyBnZXQgc2VsZWN0ZWQgZGF0YSBmcm9tIHBhcmFtZXRlcnMKJHllYXJfbGlzdCA9IGFycmF5KCk7CmZvcigkaSA9IGRhdGUoJ1knKS01OyAkaSA8PSBkYXRlKCdZJykrMjsgJGkrKyApIHsKICAkeWVhcl9saXN0WyRpXSA9ICRpOwp9CiRzbWFydHktPmFzc2lnbigneWVhcl9saXN0JywkeWVhcl9saXN0KTsKJG1vbnRoID0gZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCAnbW9udGgnLCAkbW9udGgpOwokeWVhciA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywgJ3llYXInLCAkeWVhcik7CiRjYXRlZ29yeSA9IGh0bWxfZW50aXR5X2RlY29kZShodG1sX2VudGl0eV9kZWNvZGUoZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCAnY2F0ZWdvcnknLCAkY2F0ZWdvcnkpKSk7CiRpbmxpbmUgPSBnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsJ2lubGluZScsJGlubGluZSk7CiRwX2RldGFpbHBhZ2UgPSBnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsJ2RldGFpbHBhZ2UnLCRwX2RldGFpbHBhZ2UpOwokdGhldGVtcGxhdGUgPSBnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsJ2NhbGVuZGFydGVtcGxhdGUnLCR0aGV0ZW1wbGF0ZSk7CgppZiAoJHBfZGV0YWlscGFnZSkgewogICR0bXAgPSAkdGhpcy0+cmVzb2x2ZV9hbGlhc19vcl9pZCgkcF9kZXRhaWxwYWdlKTsKICBpZiggJHRtcCA+IDAgKSAkZGV0YWlscGFnZSA9ICR0bXA7Cn0KCmlmKCAkbW9udGggPT0gLTEgKSB7CiAgLy8gZmFsbGJhY2sgdG8gY3VycmVudCBtb250aCBhbmQgeWVhcgogICRtb250aCA9IGRhdGUoJ24nKTsKICAkeWVhciAgPSBkYXRlKCdZJyk7Cn0KCmlmKCAhZW1wdHkoJHNlc3Npb25rZXkpICkgewogIC8vIHN0b3JlIHRoZW0gYmFjayBpbiB0aGUgc2Vzc2lvbi4KICAkdGhpcy0+c2Vzc2lvbl9wdXQoJHNlc3Npb25rZXkuJ2N1cl9tb250aCcsJG1vbnRoKTsKICAkdGhpcy0+c2Vzc2lvbl9wdXQoJHNlc3Npb25rZXkuJ2N1cl95ZWFyJywkeWVhcik7CiAgJGlubGluZSA9IDE7Cn0KCi8vIGJhc2ljIGluZm9ybWF0aW9uIGFib3V0IGRhdGVzCiRwcmV2X21vbnRoWyd0aW1lc3RhbXAnXSA9IHN0cnRvdGltZSgiLTEgbW9udGgiLCBta3RpbWUoMCwwLDAsJG1vbnRoLCAxLCAkeWVhcikpOwokcHJldl9tb250aFsneWVhciddID0gZGF0ZSgnWScsICRwcmV2X21vbnRoWyd0aW1lc3RhbXAnXSk7CiRwcmV2X21vbnRoWydtb250aCddID0gZGF0ZSgnbicsICRwcmV2X21vbnRoWyd0aW1lc3RhbXAnXSk7CiRuZXh0X21vbnRoWyd0aW1lc3RhbXAnXSA9IHN0cnRvdGltZSgiKzEgbW9udGgiLCBta3RpbWUoMCwwLDAsJG1vbnRoLCAxLCAkeWVhcikpOwokbmV4dF9tb250aFsneWVhciddID0gZGF0ZSgnWScsICRuZXh0X21vbnRoWyd0aW1lc3RhbXAnXSk7CiRuZXh0X21vbnRoWydtb250aCddID0gZGF0ZSgnbicsICRuZXh0X21vbnRoWyd0aW1lc3RhbXAnXSk7CgokbGFzdF9kYXlfb2ZfbW9udGggPSBkYXRlKCd0JyxzdHJ0b3RpbWUoIiR5ZWFyLSRtb250aC0wMiIpKTsKCiRkYiA9ICR0aGlzLT5HZXREYigpOwokc3RhcnQgPSBta3RpbWUoMCwwLDAsJG1vbnRoLDEsJHllYXIpOwokZW5kID0gbWt0aW1lKDIzLDU5LDU5LCRtb250aCwkbGFzdF9kYXlfb2ZfbW9udGgsJHllYXIpOwokZXZlbnRfaWRzID0gJGRiLT5HZXRDb2woY2djYWxlbmRhcl91dGlsczo6Z2V0X3F1ZXJ5KCRzdGFydCwkZW5kLCRjYXRlZ29yeSxGQUxTRSkpOwoKJGRheXMgPSBhcnJheSgpOwokcGFybXMgPSAkcGFyYW1zOwp1bnNldCgkcGFybXNbJ3JldHVybmlkJ10sJHBhcm1zWydhY3Rpb24nXSwkcGFybXNbJ3BhZ2UnXSk7CiRwYXJtc1snZGlzcGxheSddID0gJ2xpc3QnOwpmb3IoJGkgPSAxOyAkaSA8PSAkbGFzdF9kYXlfb2ZfbW9udGg7ICRpKyspIHsKICAkcGFybXNbJ2RhdGUnXSA9ICIkeWVhci0kbW9udGgtJGkiOwogICRkYXlzWyRpXVsnZGF0ZSddID0gbWt0aW1lKDAsMCwwLCRtb250aCwkaSwkeWVhcik7CiAgJGRheXNbJGldWyd3ZWVrJ10gPSBkYXRlKCdXJywkZGF5c1skaV1bJ2RhdGUnXSk7CiAgJGRheXNbJGldWyd1cmwnXSA9ICR0aGlzLT5jcmVhdGVfdXJsKCRpZCwgJ2RlZmF1bHQnLCAkZGV0YWlscGFnZSwgJHBhcm1zLCAkaW5saW5lKTsgLy8gZGVwcmVjYXRlZC4KICAkZGF5c1skaV1bJ25pX3VybCddID0gJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCAnZGVmYXVsdCcsICRkZXRhaWxwYWdlLCAkcGFybXMsIEZBTFNFICk7CiAgJGRheXNbJGldWydpbl91cmwnXSA9ICR0aGlzLT5jcmVhdGVfdXJsKCRpZCwgJ2RlZmF1bHQnLCAkZGV0YWlscGFnZSwgJHBhcm1zLCBUUlVFICk7CiAgJGRheXNbJGldWydldmVudHMnXSA9IGFycmF5KCk7CiAgJGRheXNbJGldWydjbGFzcyddID0gJyc7Cn0KaWYoJHllYXIgPT0gZGF0ZSgnWScpICYmICRtb250aCA9PSBkYXRlKCdtJykpIHsKICAvLyBtb250aCBiZWluZyBkaXNwbGF5ZWQgaXMgdGhpcyBtb250aC4gVGhlcmVmb3JlIHRvZGF5IGV4aXN0cwogICR0b2RheSA9IGRhdGUoJ2onKTsKICAkZGF5c1skdG9kYXldWydjbGFzcyddIC49ICdjYWxlbmRhci10b2RheSc7Cn0KCmlmKCBpc19hcnJheSgkZXZlbnRfaWRzKSAmJiBjb3VudCgkZXZlbnRfaWRzKSApIHsKICAkbG9hZGVyID0gbmV3IGNnY19ldmVudF9sb2FkZXIoJGlkLCRldmVudF9pZHMsJGRldGFpbHBhZ2UsRkFMU0UpOwogIGlmKCBpc3NldCgkcGFyYW1zWydldmVudHRlbXBsYXRlJ10pICkgJGxvYWRlci0+c2V0X2V2ZW50X3RlbXBsYXRlKCRwYXJhbXNbJ2V2ZW50dGVtcGxhdGUnXSk7CiAgJGV2ZW50cyA9ICRsb2FkZXItPmdldF9ldmVudHMoKTsKCiAgZm9yZWFjaCggJGV2ZW50cyBhcyAmJHJvdyApIHsKICAgICRzdGFydF9kYXRlID0gc3RydG90aW1lKCRyb3dbJ2V2ZW50X2RhdGVfc3RhcnQnXSk7CiAgICAkZW5kX2RhdGUgPSAkc3RhcnRfZGF0ZTsKICAgIGlmKCAkcm93WydldmVudF9kYXRlX2VuZCddICE9ICcnICkgJGVuZF9kYXRlID0gc3RydG90aW1lKCRyb3dbJ2V2ZW50X2RhdGVfZW5kJ10pOwoKICAgICRzdGFydF9tb250aCA9IGRhdGUoJ24nLCAkc3RhcnRfZGF0ZSk7CiAgICAkZW5kX21vbnRoID0gZGF0ZSgnbicsICRlbmRfZGF0ZSk7CiAgICAkc3RhcnRfeWVhciA9IGRhdGUoJ1knLCAkc3RhcnRfZGF0ZSk7CiAgICAkZW5kX3llYXIgPSBkYXRlKCdZJywgJGVuZF9kYXRlKTsKCiAgICAvLyBmaW5kIG91dCB3aGVyZSB0aGUgZXZlbnQgc3RhcnRzIHdpdGhpbiB0aGlzIG1vbnRoCiAgICAkZmlyc3RfZGF5X29mX2V2ZW50X2luX3RoaXNfbW9udGggPSBkYXRlKCdqJywgJHN0YXJ0X2RhdGUpOwogICAgaWYoJHN0YXJ0X21vbnRoIDwgJG1vbnRoIHx8ICRzdGFydF95ZWFyIDwgJHllYXIpICRmaXJzdF9kYXlfb2ZfZXZlbnRfaW5fdGhpc19tb250aCA9IDE7CgogICAgLy8gZmluZCBvdXQgd2hlcmUgdGhlIGV2ZW50IGVuZHMgd2l0aGluIGluIHRoaXMgbW9udGgKICAgICRsYXN0X2RheV9vZl9ldmVudF9pbl90aGlzX21vbnRoID0gZGF0ZSgnaicsICRlbmRfZGF0ZSk7CiAgICBpZigkZW5kX21vbnRoID4gJG1vbnRoIHx8ICRlbmRfeWVhciA+ICR5ZWFyKSAkbGFzdF9kYXlfb2ZfZXZlbnRfaW5fdGhpc19tb250aCA9ICRsYXN0X2RheV9vZl9tb250aDsKCiAgICBmb3IoICRpID0gJGZpcnN0X2RheV9vZl9ldmVudF9pbl90aGlzX21vbnRoOyAkaSA8PSAkbGFzdF9kYXlfb2ZfZXZlbnRfaW5fdGhpc19tb250aDsgJGkrKyApICRkYXlzWyRpXVsnZXZlbnRzJ11bXSA9ICRyb3c7CiAgfQp9CgokcGFybXMgPSAkcGFyYW1zOwp1bnNldCgkcGFybXNbJ3JldHVybmlkJ10sJHBhcm1zWydhY3Rpb24nXSwkcGFybXNbJ3BhZ2UnXSk7Ci8vaWYoICR1c2Vfc2Vzc2lvbiApICRwYXJtc1sndXNlX3Nlc3Npb24nXSA9ICR1c2Vfc2Vzc2lvbjsKJHBhcm1zWyd5ZWFyJ10gPSAkbmV4dF9tb250aFsneWVhciddOwokcGFybXNbJ21vbnRoJ10gPSAkbmV4dF9tb250aFsnbW9udGgnXTsKJG5hdmlnYXRpb25bJ25leHQnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCdkZWZhdWx0JywkcmV0dXJuaWQsJHBhcm1zLCRpbmxpbmUpOyAvLyBkZXByZWNhdGVkCiRuYXZpZ2F0aW9uWyduaV9uZXh0J10gPSAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwnZGVmYXVsdCcsJHJldHVybmlkLCRwYXJtcyxmYWxzZSk7CiRuYXZpZ2F0aW9uWydpbl9uZXh0J10gPSAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwnZGVmYXVsdCcsJHJldHVybmlkLCRwYXJtcyx0cnVlKTsKCiRwYXJtc1sneWVhciddID0gJHByZXZfbW9udGhbJ3llYXInXTsKJHBhcm1zWydtb250aCddID0gJHByZXZfbW9udGhbJ21vbnRoJ107CiRuYXZpZ2F0aW9uWydwcmV2J10gPSAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwnZGVmYXVsdCcsJHJldHVybmlkLCRwYXJtcywkaW5saW5lKTsgLy8gZGVwcmVjYXRlZAokbmF2aWdhdGlvblsnbmlfcHJldiddID0gJHRoaXMtPkNyZWF0ZVVSTCgkaWQsJ2RlZmF1bHQnLCRyZXR1cm5pZCwkcGFybXMsZmFsc2UpOwokbmF2aWdhdGlvblsnaW5fcHJldiddID0gJHRoaXMtPkNyZWF0ZVVSTCgkaWQsJ2RlZmF1bHQnLCRyZXR1cm5pZCwkcGFybXMsdHJ1ZSk7CgokZGF5X25hbWVzID0gJHRoaXMtPkdldERheU5hbWVzKCk7CiRkYXlfc2hvcnRfbmFtZXMgPSAkdGhpcy0+R2V0RGF5U2hvcnROYW1lcygpOwokbW9udGhfbmFtZXMgPSAkdGhpcy0+R2V0TW9udGhOYW1lcygpOwoKLy8gY2FsZW5kYXIgc3R1ZmYKJGZpcnN0X29mX21vbnRoID0gZ21ta3RpbWUoMCwwLDAsJG1vbnRoLDEsJHllYXIpOwokZmlyc3Rfb2ZfbW9udGhfd2Vla2RheV9udW1iZXIgPSBnbXN0cmZ0aW1lKCcldycsJGZpcnN0X29mX21vbnRoKTsKJGZpcnN0X29mX21vbnRoX3dlZWtkYXlfbnVtYmVyID0gKCRmaXJzdF9vZl9tb250aF93ZWVrZGF5X251bWJlciArIDcgLSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZmlyc3RkYXlvZndlZWsnLDEpKSAlIDc7CgovLyBhc3NpZ24gdG8gU21hcnR5CiRzbWFydHktPmFzc2lnbignZGF0ZScsbWt0aW1lKDEsMCwwLCRtb250aCwxLCR5ZWFyKSk7CiRzbWFydHktPmFzc2lnbignbW9udGhfbmFtZXMnLCAkbW9udGhfbmFtZXMpOwokc21hcnR5LT5hc3NpZ24oJ2RheV9uYW1lcycsICRkYXlfbmFtZXMpOwokc21hcnR5LT5hc3NpZ24oJ2RheV9zaG9ydF9uYW1lcycsICRkYXlfc2hvcnRfbmFtZXMpOwokc21hcnR5LT5hc3NpZ24oJ2ZpcnN0X29mX21vbnRoX3dlZWtkYXlfbnVtYmVyJywgJGZpcnN0X29mX21vbnRoX3dlZWtkYXlfbnVtYmVyKTsKJHNtYXJ0eS0+YXNzaWduKCduYXZpZ2F0aW9uJywgJG5hdmlnYXRpb24pOwokc21hcnR5LT5hc3NpZ24oJ2RheXMnLCAkZGF5cyk7CiRzbWFydHktPmFzc2lnbignbW9udGgnLCAkbW9udGgpOwokc21hcnR5LT5hc3NpZ24oJ3llYXInLCAkeWVhcik7CgovLyBEaXNwbGF5IHRlbXBsYXRlCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgnY2FsZW5kYXJfJy4kdGhldGVtcGxhdGUpOwovL2VjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnb3JpZ19jYWxlbmRhcl90ZW1wbGF0ZS50cGwnKTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/function.displayevent.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4CiMgICAgICBieSBSb2JlcnQgQWxsZW4gKGFrcmFiYXQpIGFuZAojICAgICAgICAgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBkaXNwbGF5aW5nIGNhbGVuZGFycywKIyAgYW5kIG1hbmFnZW1lbnQgYW5kIGRpc3BsYXkgb2YgdGltZSBiYXNlZCBldmVudHMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgokZXZlbnRzX3RhYmxlX25hbWUgPSAkdGhpcy0+ZXZlbnRzX3RhYmxlX25hbWU7CiRldmVudF9pZCA9IChpbnQpZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCAnZXZlbnRfaWQnLCAnbmV4dCcpOwoKJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCmlmKCAkZXZlbnRfaWQgPT0gJ25leHQnICkgewogICRzdGFydCA9IGRhdGUoJ1ktbS1kIEg6aTpzJyk7IC8vIHN0YXJ0IG5vdyAhCiAgJHNxbCA9ICJTRUxFQ1QgRElTVElOQ1QgZXZlbnRfaWQgRlJPTSAkZXZlbnRzX3RhYmxlX25hbWUgIjsKICAkc3FsIC49ICJXSEVSRSBldmVudF9kYXRlX3N0YXJ0ID4gJyRzdGFydCcgT1IgZXZlbnRfZGF0ZV9lbmQgPiAnJHN0YXJ0JyI7CiAgJHNxbCAuPSAnIExJTUlUIDEnOwogICRldmVudF9pZCA9ICRkYi0+R2V0T25lKCRzcWwpOwp9CmVsc2UgaWYoIChpbnQpJGV2ZW50X2lkID4gMCApIHsKICAvLyBub3RoaW5nLgp9CmVsc2UgewogIC8vIG5vIGV2ZW50CiAgZWNobyAnPGRpdiBjbGFzcz0iY2FsZW5kYXItZXJyb3IiPicuJHRoaXMtPkxhbmcoJ2Vycm9yX2V2ZW50X25vdF9mb3VuZCcsJGV2ZW50X2lkKS4nPC9kaXY+JzsKICByZXR1cm47Cn0KCiRsb2FkZXIgPSBuZXcgY2djX2V2ZW50X2xvYWRlcigkaWQsYXJyYXkoJGV2ZW50X2lkKSwkcmV0dXJuaWQsRkFMU0UpOwokZXZlbnRzID0gJGxvYWRlci0+Z2V0X2V2ZW50cygpOwppZiggIWlzX2FycmF5KCRldmVudHMpIHx8IGNvdW50KCRldmVudHMpICE9IDEgKSB7CiAgZWNobyAnPGRpdiBjbGFzcz0iY2FsZW5kYXItZXJyb3IiPicuJHRoaXMtPkxhbmcoJ2Vycm9yX2V2ZW50X25vdF9mb3VuZCcsJGV2ZW50X2lkKS4nPC9kaXY+JzsKICByZXR1cm47Cn0KJGV2ZW50ID0gJGV2ZW50c1swXTsKCiRtb250aF9uYW1lcyA9ICR0aGlzLT5HZXRNb250aE5hbWVzKCk7CgovLyBvdGhlciBsYW5ndWFnZSBmaWVsZHMKJGxhbmcgPSAkdGhpcy0+R2V0TGFiZWxzKCk7CgppZiAoaXNzZXQoJHBhcmFtc1snc2hvd19pY2FsJ10pKSB7CiAgJGRvbWFpbiA9ICRnQ21zLT5jb25maWdbJ3Jvb3RfdXJsJ107CiAgJHRpbWVfem9uZSA9IDA7CiAgJG91dHN0ciAgPSAiQkVHSU46VkNBTEVOREFSXG4iOwogICRvdXRzdHIgLj0gIlBST0RJRDotLy8iLiRkb21haW4uIi8vQ0dDYWxlbmRhciAiLiR0aGlzLT5HZXRWZXJzaW9uKCkuIi8vRU5cbiI7CiAgJG91dHN0ciAuPSAiVkVSU0lPTjoyLjBcbiI7CiAgJG91dHN0ciAuPSAiQ0FMU0NBTEU6R1JFR09SSUFOXG4iOwogICRvdXRzdHIgLj0gIk1FVEhPRDpQVUJMSVNIXG4iOwogICRvdXRzdHIgLj0gIlgtV1ItQ0FMTkFNRToiLnN0cnRvdXBwZXIoJHRoaXMtPkNvbnZlcnRDYXRlZ29yaWVzVG9TdHJpbmcoJGNhdGVnb3JpZXMpKS4iXG4iOwogIGlmIChkYXRlKCdlJywgc3RydG90aW1lKCRldmVudFsnZXZlbnRfZGF0ZV9zdGFydCddKSkgIT0gJ2UnKQogICAgJG91dHN0ciAuPSAiWC1XUi1USU1FWk9ORToiLmRhdGUoJ2UnLCBzdHJ0b3RpbWUoJGV2ZW50WydldmVudF9kYXRlX3N0YXJ0J10pKS4iXG4iOwogICRvdXRzdHIgLj0gIlgtV1ItQ0FMREVTQzpTY2hlZHVsZSBmcm9tICIuZ2V0X3NpdGVfcHJlZmVyZW5jZSgnc2l0ZW5hbWUnLCAnQ01TTVMgU2l0ZScpLiJcbiI7CgogICRvdXRzdHIgLj0gIkJFR0lOOlZFVkVOVFxuIjsKICAkb3V0c3RyIC49ICJEVFNUQVJUOiI7CiAgJG91dHN0ciAuPSAkdGhpcy0+VW5peFRpbWVzdGFtcFRvaUNhbChzdHJ0b3RpbWUoJGV2ZW50WydldmVudF9kYXRlX3N0YXJ0J10pLCAkdGltZV96b25lKS4iXG4iOwogICRvdXRzdHIgLj0gIkRURU5EOiI7CiAgJGVuZF9kYXRlID0gc3RydG90aW1lKCRldmVudFsnZXZlbnRfZGF0ZV9zdGFydCddKSArIDM2MDA7CiAgaWYoIShlbXB0eSgkZXZlbnRbJ2V2ZW50X2RhdGVfZW5kJ10pIHx8ICRldmVudFsnZXZlbnRfZGF0ZV9lbmQnXSA9PSBudWxsIHx8ICRldmVudFsnZXZlbnRfZGF0ZV9lbmQnXSA9PSAwKSkgewogICAgJGVuZF9kYXRlID0gc3RydG90aW1lKCRldmVudFsnZXZlbnRfZGF0ZV9lbmQnXSk7CiAgfQogICRvdXRzdHIgLj0gJHRoaXMtPlVuaXhUaW1lc3RhbXBUb2lDYWwoJGVuZF9kYXRlLCAkdGltZV96b25lKS4iXG4iOwogICRvdXRzdHIgLj0gJ1NVTU1BUlk6Jy5zdHJfcmVwbGFjZSgiXG4iLCAiXFxuIiwgJGV2ZW50WydldmVudF90aXRsZSddKS4iXG4iOwogICRvdXRzdHIgLj0gJ0RFU0NSSVBUSU9OOicuc3RyX3JlcGxhY2UoIlxuIiwgIlxcbiIsICRldmVudFsnZXZlbnRfZGV0YWlscyddKTsKICAkZXh0cmFmaWVsZHMgPSAiU0VMRUNUIGZpZWxkX25hbWUsZmllbGRfdmFsdWUgRlJPTSAiLiR0aGlzLT5ldmVudF9maWVsZF92YWx1ZXNfdGFibGVfbmFtZS4iIFdIRVJFIGV2ZW50X2lkID0gPyI7CiAgJGZycyA9ICRkYi0+RXhlY3V0ZSgkZXh0cmFmaWVsZHMsYXJyYXkoJGV2ZW50X2lkKSk7CiAgd2hpbGUgKCRmcnMgJiYgJHJvdz0kZnJzLT5GZXRjaFJvdygpKSB7CiAgICAkb3V0c3RyIC49ICJcXG4iIC4gJHJvd1snZmllbGRfbmFtZSddLic6ICcuc3RyX3JlcGxhY2UoIlxuIiwgIlxcbiIsICRyb3dbJ2ZpZWxkX3ZhbHVlJ10pOwogIH0KICAkb3V0c3RyIC49ICJcbiI7CiAgJG91dHN0ciAuPSAnVUlEOicuJGV2ZW50X2lkLidAJy4kZG9tYWluLiJcbiI7CiAgJG91dHN0ciAuPSAnRFRTVEFNUDonLiR0aGlzLT51bml4VGltZXN0YW1wVG9pQ2FsKHRpbWUoKSwgJHRpbWVfem9uZSkuIlxuIjsKICAkb3V0c3RyIC49ICJDTEFTUzpQVUJMSUNcbiI7CiAgJG91dHN0ciAuPSAiRU5EOlZFVkVOVFxuIjsKICAkb3V0c3RyIC49ICJFTkQ6VkNBTEVOREFSXG4iOwoKICB3aGlsZShAb2JfZW5kX2NsZWFuKCkpOwogIGhlYWRlcignUHJhZ21hOiBwdWJsaWMnKTsKICBoZWFkZXIoJ0V4cGlyZXM6IDAnKTsKICBoZWFkZXIoJ0NhY2hlLUNvbnRyb2w6IG11c3QtcmV2YWxpZGF0ZSwgcG9zdC1jaGVjaz0wLCBwcmUtY2hlY2s9MCcpOwogIGhlYWRlcignQ2FjaGUtQ29udHJvbDogcHJpdmF0ZScsZmFsc2UpOwogIGhlYWRlcignQ29udGVudC1EZXNjcmlwdGlvbjogRmlsZSBUcmFuc2ZlcicpOwogIGhlYWRlcignQ29udGVudC1UeXBlOiB0ZXh0L2NhbGVuZGFyJyk7CiAgaGVhZGVyKCdDb250ZW50LUxlbmd0aDogJyAuIHN0cmxlbigkb3V0c3RyKSk7CiAgaGVhZGVyKCdDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1jYWxlbmRhci5pY3MnKTsKICBlY2hvICRvdXRzdHI7CiAgZXhpdDsKfQplbHNlIHsKICAvLyBhc3NpZ24gdG8gU21hcnR5CiAgJHNtYXJ0eS0+YXNzaWduKCdtb250aF9uYW1lcycsICRtb250aF9uYW1lcyk7CiAgJHNtYXJ0eS0+YXNzaWduKCdldmVudCcsICRldmVudCk7CiAgJHNtYXJ0eS0+YXNzaWduKCdsYW5nJywgJGxhbmcpOwogICRzbWFydHktPmFzc2lnbignaWNhbF91cmwnLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAnJywgYXJyYXkoJ3Nob3dfaWNhbCcgPT4gJ3RydWUnLCAnZGlzcGxheScgPT4gJ2V2ZW50JywgJ2V2ZW50X2lkJyA9PiAkZXZlbnRfaWQpLCAnJywgdHJ1ZSkpOwoKICAvLyBBc3NpZ24gdGl0bGUgdG8gY2xhc3MgdmFyIHNvIGV2ZW50IHRpdGxlIGNhbiBiZSBhZGRlZCB0byBwYWdlIHRpdGxlIGluICBDb250ZW50UG9zdFJlbmRlcigpCiAgJHRoaXMtPmN1cnJlbnRfZXZlbnRfdGl0bGUgPSAkZXZlbnRbJ2V2ZW50X3RpdGxlJ107CgogIC8vIERpc3BsYXkgdGVtcGxhdGUKICAkdGhldGVtcGxhdGUgPSAnZXZlbnRfJy4kdGhpcy0+R2V0UHJlZmVyZW5jZShDR0NBTEVOREFSX1BSRUZfREZMVEVWRU5UX1RFTVBMQVRFKTsKICBpZiAoaXNzZXQoJHBhcmFtc1snZXZlbnR0ZW1wbGF0ZSddKSkgJHRoZXRlbXBsYXRlID0gJ2V2ZW50XycuJHBhcmFtc1snZXZlbnR0ZW1wbGF0ZSddOwogIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgkdGhldGVtcGxhdGUpOwp9Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.displaylist.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4CiMgICAgICBieSBSb2JlcnQgQWxsZW4gKGFrcmFiYXQpIGFuZAojICAgICAgICAgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBkaXNwbGF5aW5nIGNhbGVuZGFycywKIyAgYW5kIG1hbmFnZW1lbnQgYW5kIGRpc3BsYXkgb2YgdGltZSBiYXNlZCBldmVudHMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgokZGV0YWlscGFnZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0Y2FsZW5kYXJwYWdlJywkcmV0dXJuaWQpOwppZiggJGRldGFpbHBhZ2UgPCAxICkgJGRldGFpbHBhZ2UgPSAkcmV0dXJuaWQ7CmlmIChpc3NldCgkcGFyYW1zWydkZXRhaWxwYWdlJ10pKSB7CiAgJHRtcCA9ICR0aGlzLT5yZXNvbHZlX2FsaWFzX29yX2lkKCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSk7CiAgaWYoICR0bXAgPiAwICkgJGRldGFpbHBhZ2UgPSAkdG1wOwp9Cgokc2Vzc2lvbmtleSAgPSBudWxsOwokY2F0ZWdvcnkgPSBodG1sX2VudGl0eV9kZWNvZGUoaHRtbF9lbnRpdHlfZGVjb2RlKGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywgJ2NhdGVnb3J5JywgJGNhdGVnb3J5KSkpOwokbGltaXQgPSBnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsICdsaW1pdCcsIDEwMDApOwokbGltaXQgPSBtaW4oJGxpbWl0LDEwMDApOwokaW5saW5lID0gZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCdpbmxpbmUnLDApOwokcmV2ZXJzZSA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywgJ3JldmVyc2UnLCBmYWxzZSk7CgovLyBkZWZhdWx0cyBmb3IgeS9tZC9kIChkZWZhdWx0IHRvIGN1cnJlbnQgbW9udGggdmlldykuCiR5ZWFyID0gZGF0ZSgnWScpOwokbW9udGggPSBkYXRlKCdtJyk7CiRkYXkgPSAtMTsKJHRoZWRhdGUgPSBzcHJpbnRmKCIlZC0lZCIsKGludCkkeWVhciwoaW50KSRtb250aCk7CmlmKCAkZGF5ID4gMCApICR0aGVkYXRlIC49IHNwcmludGYoJy0lZCcsKGludCkkZGF5KTsKCi8vIGdldCB5L20vZCBmcm9tIHNlc3Npb24KJHVzZV9zZXNzaW9uID0gZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCd1c2Vfc2Vzc2lvbicpOwppZiggJHVzZV9zZXNzaW9uICkgewogICRzZXNzaW9ua2V5ID0gJHVzZV9zZXNzaW9uLmNnY2FsZW5kYXJfdXRpbHM6OmdldF9zZXNzaW9ua2V5KCRwYXJhbXMpOwogIGxpc3QoJHllYXIsJG1vbnRoLCRkYXkpID0gY2djYWxlbmRhcl91dGlsczo6dG9feW1kKCR0aGlzLT5zZXNzaW9uX2dldCgkc2Vzc2lvbmtleS4nZGF0ZScsJHRoZWRhdGUpKTsKfQoKLy8gZ2V0IHkvbS9kIGZyb20gcGFyYW1zCmlmKCBpc3NldCgkcGFyYW1zWydkYXRlJ10pICkgewogICAgbGlzdCgkeWVhciwkbW9udGgsJGRheSkgPSBjZ2NhbGVuZGFyX3V0aWxzOjp0b195bWQoJHBhcmFtc1snZGF0ZSddKTsKfQplbHNlIHsKICAgICR5ZWFyID0gKGludCkgY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywneWVhcicsJHllYXIpOwogICAgJG1vbnRoID0gKGludCkgY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnbW9udGgnLCRtb250aCk7CiAgICAkZGF5ID0gKGludCkgY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnZGF5JywkZGF5KTsKfQoKJHRoZWRhdGUgPSBzcHJpbnRmKCIlZC0lZCIsKGludCkkeWVhciwoaW50KSRtb250aCk7CmlmKCAkZGF5ID4gMCApICR0aGVkYXRlIC49IHNwcmludGYoJy0lZCcsKGludCkkZGF5KTsKaWYoICRkYXkgPiAwICkgJHRoZWRhdGUgLj0gc3ByaW50ZignLSVkJywoaW50KSRkYXkpOwppZiggIWVtcHR5KCRzZXNzaW9ua2V5KSApIHsKICAgICR0aGlzLT5zZXNzaW9uX3B1dCgkc2Vzc2lvbmtleS4nZGF0ZScsJHRoZWRhdGUpOwogICAgJGlubGluZSA9IDE7Cn0KJHRoZWRhdGVfdXQgPSBzdHJ0b3RpbWUoJHRoZWRhdGUpOwokbGFzdF9kYXlfb2ZfbW9udGggPSBkYXRlKCd0JywkdGhlZGF0ZV91dCk7CiRuZXh0ID0gY2djYWxlbmRhcl91dGlsczo6bmV4dF95bWQoJHRoZWRhdGUpOwokcHJldiA9IGNnY2FsZW5kYXJfdXRpbHM6OnByZXZfeW1kKCR0aGVkYXRlKTsKCmlmKCRkYXkgPiAwKSB7CiAgJHN0YXJ0ID0gbWt0aW1lKDAsMCwwLCRtb250aCwkZGF5LCR5ZWFyKTsKICAkZW5kID0gbWt0aW1lKDIzLDU5LDU5LCRtb250aCwkZGF5LCR5ZWFyKTsKfQplbHNlIHsKICAgJHN0YXJ0ID0gbWt0aW1lKDAsMCwwLCRtb250aCwxLCR5ZWFyKTsKICAgJGVuZCA9IG1rdGltZSgyMyw1OSw1OSwkbW9udGgsJGxhc3RfZGF5X29mX21vbnRoLCR5ZWFyKTsKfQoKJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKJGV2ZW50cyA9IG51bGw7CiRldmVudF9pZHMgPSAkZGItPkdldENvbChjZ2NhbGVuZGFyX3V0aWxzOjpnZXRfcXVlcnkoJHN0YXJ0LCRlbmQsJGNhdGVnb3J5LCRyZXZlcnNlKSk7CmlmKCBpc19hcnJheSgkZXZlbnRfaWRzKSAmJiBjb3VudCgkZXZlbnRfaWRzKSApIHsKICAkbG9hZGVyID0gbmV3IGNnY19ldmVudF9sb2FkZXIoJGlkLCRldmVudF9pZHMsJGRldGFpbHBhZ2UsRkFMU0UpOwogIGlmKCBpc3NldCgkcGFyYW1zWydldmVudHRlbXBsYXRlJ10pICkgJGxvYWRlci0+c2V0X2V2ZW50X3RlbXBsYXRlKCRwYXJhbXNbJ2V2ZW50dGVtcGxhdGUnXSk7CiAgJGV2ZW50cyA9ICRsb2FkZXItPmdldF9ldmVudHMoKTsKfQoKJHBhcm1zID0gJHBhcmFtczsKdW5zZXQoJHBhcm1zWydtb250aCddLCRwYXJtc1snZGF5J10sJHBhcm1zWyd5ZWFyJ10sJHBhcm1zWydkYXRlJ10sJHBhcm1zWydyZXR1cm5pZCddLCRwYXJtc1snYWN0aW9uJ10pOwokcGFybXNbJ2Rpc3BsYXknXSA9ICdsaXN0JzsKJHBhcm1zWydkYXRlJ10gPSAkbmV4dDsKJG5hdmlnYXRpb25bJ25leHQnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcm1zLCAkaW5saW5lICk7IC8vIGRlcHJlY2F0ZWQKJG5hdmlnYXRpb25bJ25pX25leHQnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcm1zLCBmYWxzZSApOwokbmF2aWdhdGlvblsnaW5fbmV4dCddID0gJHRoaXMtPkNyZWF0ZVVSTCgkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAkcGFybXMsIHRydWUgKTsKJHBhcm1zWydkYXRlJ10gPSAkcHJldjsKJG5hdmlnYXRpb25bJ3ByZXYnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcm1zLCAkaW5saW5lICk7IC8vIGRlcHJlY2F0ZWQKJG5hdmlnYXRpb25bJ25pX3ByZXYnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcm1zLCBmYWxzZSApOwokbmF2aWdhdGlvblsnaW5fcHJldiddID0gJHRoaXMtPkNyZWF0ZVVSTCgkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAkcGFybXMsIHRydWUgKTsKCiRkYXlfbmFtZXMgPSAkdGhpcy0+R2V0RGF5TmFtZXMoKTsKJGRheV9zaG9ydF9uYW1lcyA9ICR0aGlzLT5HZXREYXlTaG9ydE5hbWVzKCk7CiRtb250aF9uYW1lcyA9ICR0aGlzLT5HZXRNb250aE5hbWVzKCk7CgovLyBvdGhlciBsYW5ndWFnZSBmaWVsZHMKJGxhbmcgPSAkdGhpcy0+R2V0TGFiZWxzKCk7CgovLyBhc3NpZ24gdG8gU21hcnR5CiRzbWFydHktPmFzc2lnbignbW9udGhfbmFtZXMnLCAkbW9udGhfbmFtZXMpOwokc21hcnR5LT5hc3NpZ24oJ2RheV9uYW1lcycsICRkYXlfbmFtZXMpOwokc21hcnR5LT5hc3NpZ24oJ2RheV9zaG9ydF9uYW1lcycsICRkYXlfc2hvcnRfbmFtZXMpOwokc21hcnR5LT5hc3NpZ24oJ2V2ZW50cycsICRldmVudHMpOwokc21hcnR5LT5hc3NpZ24oJ2RheScsICRkYXkpOwokc21hcnR5LT5hc3NpZ24oJ21vbnRoJywgJG1vbnRoKTsKJHNtYXJ0eS0+YXNzaWduKCd5ZWFyJywgJHllYXIpOwokc21hcnR5LT5hc3NpZ24oJ2xhbmcnLCAkbGFuZyk7CiRzbWFydHktPmFzc2lnbignbmF2aWdhdGlvbicsICRuYXZpZ2F0aW9uKTsKJHNtYXJ0eS0+YXNzaWduKCd0aGVkYXRlJyxzdHJ0b3RpbWUoJHRoZWRhdGUpKTsKCi8vIERpc3BsYXkgdGVtcGxhdGUKJHRoZXRlbXBsYXRlID0gJ2xpc3RfJy4kdGhpcy0+R2V0UHJlZmVyZW5jZShDR0NBTEVOREFSX1BSRUZfREZMVExJU1RfVEVNUExBVEUpOwppZiAoaXNzZXQoJHBhcmFtc1snbGlzdHRlbXBsYXRlJ10pKSAkdGhldGVtcGxhdGUgPSAnbGlzdF8nLiRwYXJhbXNbJ2xpc3R0ZW1wbGF0ZSddOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCR0aGV0ZW1wbGF0ZSk7Ci8vZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdvcmlnX2xpc3RfdGVtcGxhdGUudHBsJyk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.displayupcominglist.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4CiMgICAgICBieSBSb2JlcnQgQWxsZW4gKGFrcmFiYXQpIGFuZAojICAgICAgICAgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBkaXNwbGF5aW5nIGNhbGVuZGFycywKIyAgYW5kIG1hbmFnZW1lbnQgYW5kIGRpc3BsYXkgb2YgdGltZSBiYXNlZCBldmVudHMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCi8vIGdldCB0aGUgcGFyYW1ldGVycwokZGV0YWlscGFnZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0Y2FsZW5kYXJwYWdlJywkcmV0dXJuaWQpOwppZiggJGRldGFpbHBhZ2UgPCAxICkgJGRldGFpbHBhZ2UgPSAkcmV0dXJuaWQ7CmlmIChpc3NldCgkcGFyYW1zWydkZXRhaWxwYWdlJ10pKSB7CiAgICAkdG1wID0gJHRoaXMtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHBhcmFtc1snZGV0YWlscGFnZSddKTsKICAgIGlmKCAkdG1wID4gMCApICRkZXRhaWxwYWdlID0gJHRtcDsKfQoKJGNhdGVnb3J5ID0gJyc7CiRwYWdlID0gMTsKJGV4cHIgPSAnPj0nOwokcmV2ZXJzZSA9IGZhbHNlOwokc2Vzc2lvbmtleSA9IG51bGw7CiRpbmxpbmUgPSAwOwokY2F0ZWdvcmllc190YWJsZV9uYW1lID0gJHRoaXMtPmNhdGVnb3JpZXNfdGFibGVfbmFtZTsKJGV2ZW50X2ZpZWxkX3ZhbHVlc190YWJsZV9uYW1lID0gJHRoaXMtPmV2ZW50X2ZpZWxkX3ZhbHVlc190YWJsZV9uYW1lOwokZXZlbnRzX3RvX2NhdGVnb3JpZXNfdGFibGVfbmFtZSA9ICR0aGlzLT5ldmVudHNfdG9fY2F0ZWdvcmllc190YWJsZV9uYW1lOwokZXZlbnRzX3RhYmxlX25hbWUgPSAkdGhpcy0+ZXZlbnRzX3RhYmxlX25hbWU7CiR1c2Vfc2Vzc2lvbiA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywndXNlX3Nlc3Npb24nKTsKaWYoICR1c2Vfc2Vzc2lvbiApIHsKICAgIC8vIHdlIHVzZSBhIHVuaXF1ZSBrZXksIGJhc2VkIG9uIG1vc3QgcGFyYW1ldGVycyAoZXhjZXB0IHRoZSBvbmVzIHRoYXQgY2FuIGNoYW5nZSkKICAgIC8vIGFuZCBvbmx5IGV4dHJhY3QgaXRlbXMgZnJvbSB0aGUgc2Vzc2lvbiB0aGF0IGNhbiBjaGFuZ2UgKGxpa2UgZGF0ZXMsIG9yIHBhZ2UgbnVtYmVycykuCiAgICAkaW5saW5lID0gMTsKICAgICRzZXNzaW9ua2V5ID0gJHVzZV9zZXNzaW9uLmNnY2FsZW5kYXJfdXRpbHM6OmdldF9zZXNzaW9ua2V5KCRwYXJhbXMpOwogICAgJHBhZ2UgPSAkdGhpcy0+c2Vzc2lvbl9nZXQoJHNlc3Npb25rZXkuJ3BhZ2UnLCRwYWdlKTsKfQokY2F0ZWdvcnkgPSBodG1sX2VudGl0eV9kZWNvZGUoaHRtbF9lbnRpdHlfZGVjb2RlKGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywgJ2NhdGVnb3J5JywgJGNhdGVnb3J5KSkpOwokcGFzdGl0ZW1zID0gZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCAncGFzdGl0ZW1zJywgMCk7CiRwYWdlID0gZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCdwYWdlJywkcGFnZSk7CmlmKCAkcGFzdGl0ZW1zICkgewogICAgJGV4cHIgPSAnPCc7CiAgICAkcmV2ZXJzZSA9IHRydWU7Cn0KJGxpbWl0ID0gZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCAnbGltaXQnLCAxMDAwKTsKJGlubGluZSA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywnaW5saW5lJywkaW5saW5lKTsKJHJldmVyc2UgPSBnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsICdyZXZlcnNlJywgJHJldmVyc2UpOwppZiggJHNlc3Npb25rZXkgKSB7CiAgICAvL3RoaXMgcmVtZW1iZXJzIHRoZSBwYWdlIG51bWJlciBmb3IgdGhlIG5leHQgdGltZSB3ZSB2aXNpdCB0aGlzIHBhZ2UuCiAgICAkdGhpcy0+c2Vzc2lvbl9wdXQoJHNlc3Npb25rZXkuJ3BhZ2UnLCRwYWdlKTsKfQoKLy8gYnVpbGQgdGhlIHF1ZXJ5CiRzcWwyID0gIlNFTEVDVCBFLmV2ZW50X2lkIEZST00gJGV2ZW50c190YWJsZV9uYW1lIEVcbiI7CmlmKCFlbXB0eSgkY2F0ZWdvcnkpKSB7CiAgICAkc3FsMiAuPSAiSU5ORVIgSk9JTiAkZXZlbnRzX3RvX2NhdGVnb3JpZXNfdGFibGVfbmFtZSBFQyBPTiBFLmV2ZW50X2lkID0gRUMuZXZlbnRfaWQKICAgICAgICAgICAgSU5ORVIgSk9JTiAkY2F0ZWdvcmllc190YWJsZV9uYW1lIEMgT04gRUMuY2F0ZWdvcnlfaWQgPSBDLmNhdGVnb3J5X2lkIjsKfQoKJHNvcnRpbmcgPSAoJHJldmVyc2UgPT0gJ3RydWUnID8gJ0RFU0MnIDogJ0FTQycpOwokc3RhcnQgPSAkZGItPkRiVGltZVN0YW1wKHRpbWUoKSk7CmlmKCBpc3NldCgkcGFyYW1zWydkaXNwbGF5Zm9yZGF5J10pICkgJHN0YXJ0ID0gJGRiLT5EYlRpbWVTdGFtcChta3RpbWUoMDAsMDAsMzApKTsKCiR0eHQgPSAiV0hFUkUgKEUuZXZlbnRfZGF0ZV9zdGFydCAkZXhwciAkc3RhcnQgT1IgKEUuZXZlbnRfZGF0ZV9lbmQgJGV4cHIgJHN0YXJ0IEFORCBDT0FMRVNDRShFLmV2ZW50X2RhdGVfZW5kLCcqKioqJykgIT0gJyoqKionKSkiOwppZiAoJHBhc3RpdGVtcykgewogICAgJHR4dCA9ICJXSEVSRSAoIChFLmV2ZW50X2RhdGVfc3RhcnQgJGV4cHIgJHN0YXJ0IEFORCBDT0FMRVNDRShFLmV2ZW50X2RhdGVfZW5kLCcqKioqJykgPSAnKioqKicgKSBPUgogICAgICAgICAgICAgICAgICAoRS5ldmVudF9kYXRlX2VuZCAkZXhwciAkc3RhcnQgQU5EIENPQUxFU0NFKEUuZXZlbnRfZGF0ZV9lbmQsJyoqKionKSAhPSAnKioqKicgKSApIjsKfQokc3FsMiAuPSAnICcuJHR4dDsKJHdoZXJlID0gJyBBTkQgJzsKCmlmKCFlbXB0eSgkY2F0ZWdvcnkpKSB7CiAgICAkY2F0cyA9IGV4cGxvZGUoJywnLCAkY2F0ZWdvcnkpOwoKICAgICR0bXAgPSBhcnJheSgpOwogICAgZm9yZWFjaCggJGNhdHMgYXMgJGNhdCApIHsKICAgICAgICAkY2F0ID0gJGRiLT5xc3RyKHRyaW0oJGNhdCkpOwogICAgICAgICR0bXBbXSA9ICIoQy5jYXRlZ29yeV9uYW1lIExJS0UgJGNhdCkiOwogICAgfQogICAgJHR4dCA9ICcoJy5pbXBsb2RlKCcgT1IgJywkdG1wKS4nKSc7CiAgICAkc3FsMiAuPSAnIEFORCAnLiR0eHQ7Cn0KCmlmKCBpc3NldCgkcGFyYW1zWyd1bmlxdWVfb25seSddKSAmJiAkcGFyYW1zWyd1bmlxdWVfb25seSddICkgJHNxbDIgLj0gIiBHUk9VUCBCWSBFLmV2ZW50X3RpdGxlIjsKCiRzcWwxID0gJ1NFTEVDVCBDT1VOVCgqKSBGUk9NICgnLiRzcWwyLicpIEFTIHN1Yic7CiRzcWwyIC49ICIgT1JERVIgQlkgRS5ldmVudF9kYXRlX3N0YXJ0ICRzb3J0aW5nIjsKCi8vIGdldCB0aGUgbnVtYmVyIG9mIGFydGljbGVzCiRldmVudHMgPSBudWxsOwokbmF2aWdhdGlvbiA9IG51bGw7CiRjb3VudCA9ICRkYi0+R2V0T25lKCRzcWwxKTsKaWYoICEkY291bnQgKSB7CiAgJHRtcCA9ICRkYi0+RXJyb3JNc2coKTsKICBpZiggIWVtcHR5KCR0bXApICkgZWNobyAiREVCVUc6IHF1ZXJ5IGZhaWxlZDogIi4kZGItPnNxbC4iPGJyLz4iLiRkYi0+RXJyb3JNc2coKTsKfQppZiggJGNvdW50ICkgewogICAgJG51bXBhZ2VzID0gKGludCkoJGNvdW50IC8gJGxpbWl0KTsKICAgIGlmKCAkY291bnQgJSAkbGltaXQgKSAkbnVtcGFnZXMrKzsKICAgICRvZmZzZXQgPSAoJHBhZ2UgLSAxKSAqICRsaW1pdDsKCiAgICAvLyBnZXQgdGhlIGRhdGEKICAgICRycyA9IGZhbHNlOwogICAgJHJzID0gJGRiLT5TZWxlY3RMaW1pdCgkc3FsMiwgJGxpbWl0LCRvZmZzZXQpOwogICAgJGV2ZW50X2lkcyA9IGFycmF5KCk7CiAgICB3aGlsZSggJHJzICYmICEkcnMtPkVPRigpICkgewogICAgICAgICRldmVudF9pZHNbXSA9IChpbnQpJHJzLT5maWVsZHNbJ2V2ZW50X2lkJ107CiAgICAgICAgJHJzLT5Nb3ZlTmV4dCgpOwogICAgfQoKICAgICRsb2FkZXIgPSBuZXcgY2djX2V2ZW50X2xvYWRlcigkaWQsJGV2ZW50X2lkcywkZGV0YWlscGFnZSwkcmV2ZXJzZSk7CiAgICBpZiggaXNzZXQoJHBhcmFtc1snZXZlbnR0ZW1wbGF0ZSddKSApICRsb2FkZXItPnNldF9ldmVudF90ZW1wbGF0ZSgkcGFyYW1zWydldmVudHRlbXBsYXRlJ10pOwogICAgJGV2ZW50cyA9ICRsb2FkZXItPmdldF9ldmVudHMoKTsKCiAgICAvLyBuYXZpZ2F0aW9uCiAgICAkbmF2aWdhdGlvbiA9IGFycmF5KCk7CiAgICAkcGFybXMgPSAkcGFyYW1zOwogICAgdW5zZXQoJHBhcm1zWydyZXR1cm5pZCddLCRwYXJtc1sncGFnZSddKTsKICAgIGlmKCAkcmV2ZXJzZSApIHsKICAgICAgICBpZiggJHBhZ2UgPCAkbnVtcGFnZXMgKSB7CiAgICAgICAgICAgICRwYXJtc1sncGFnZSddID0gJHBhZ2UgKyAxOwogICAgICAgICAgICAkbmF2aWdhdGlvblsncHJldiddID0gJHRoaXMtPkNyZWF0ZVVSTCgkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAkcGFybXMsICRpbmxpbmUgKTsgLy8gZGVwcmVjYXRlZAogICAgICAgICAgICAkbmF2aWdhdGlvblsnbmlfcHJldiddID0gJHRoaXMtPkNyZWF0ZVVSTCgkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAkcGFybXMsIGZhbHNlICk7CiAgICAgICAgICAgICRuYXZpZ2F0aW9uWydpbl9wcmV2J10gPSAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICRwYXJtcywgdHJ1ZSApOwogICAgICAgIH0KICAgICAgICBpZiggJHBhZ2UgPiAxICkgewogICAgICAgICAgICAkcGFybXNbJ3BhZ2UnXSA9ICRwYWdlIC0gMTsKICAgICAgICAgICAgJG5hdmlnYXRpb25bJ25leHQnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcm1zLCAkaW5saW5lICk7IC8vIGRlcHJlY2F0ZWQKICAgICAgICAgICAgJG5hdmlnYXRpb25bJ25pX25leHQnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcm1zLCBmYWxzZSApOwogICAgICAgICAgICAkbmF2aWdhdGlvblsnaW5fbmV4dCddID0gJHRoaXMtPkNyZWF0ZVVSTCgkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAkcGFybXMsIHRydWUgKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBpZiggJHBhZ2UgPCAkbnVtcGFnZXMgKSB7CiAgICAgICAgICAgICRwYXJtc1sncGFnZSddID0gJHBhZ2UgKyAxOwogICAgICAgICAgICAkbmF2aWdhdGlvblsnbmV4dCddID0gJHRoaXMtPkNyZWF0ZVVSTCgkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAkcGFybXMsICRpbmxpbmUgKTsgLy8gZGVwcmVjYXRlZAogICAgICAgICAgICAkbmF2aWdhdGlvblsnbmlfbmV4dCddID0gJHRoaXMtPkNyZWF0ZVVSTCgkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAkcGFybXMsIGZhbHNlICk7CiAgICAgICAgICAgICRuYXZpZ2F0aW9uWydpbl9uZXh0J10gPSAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICRwYXJtcywgdHJ1ZSApOwogICAgICAgIH0KICAgICAgICBpZiggJHBhZ2UgPiAxICkgewogICAgICAgICAgICAkcGFybXNbJ3BhZ2UnXSA9ICRwYWdlIC0gMTsKICAgICAgICAgICAgJG5hdmlnYXRpb25bJ3ByZXYnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcm1zLCAkaW5saW5lICk7IC8vIGRlcHJlY2F0ZWQKICAgICAgICAgICAgJG5hdmlnYXRpb25bJ25pX3ByZXYnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcm1zLCBmYWxzZSApOwogICAgICAgICAgICAkbmF2aWdhdGlvblsnaW5fcHJldiddID0gJHRoaXMtPkNyZWF0ZVVSTCgkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAkcGFybXMsIHRydWUgKTsKICAgICAgICB9CiAgICB9Cn0KCiRtb250aF9uYW1lcyA9ICR0aGlzLT5HZXRNb250aE5hbWVzKCk7CiRsYW5nID0gJHRoaXMtPkdldExhYmVscygpOwoKLy8gYXNzaWduIHRvIFNtYXJ0eQppZiggY291bnQoJGV2ZW50cykgJiYgY291bnQoJG5hdmlnYXRpb24pICkgICRzbWFydHktPmFzc2lnbignbmF2aWdhdGlvbicsJG5hdmlnYXRpb24pOwokc21hcnR5LT5hc3NpZ24oJ21vbnRoX25hbWVzJywgJG1vbnRoX25hbWVzKTsKJHNtYXJ0eS0+YXNzaWduKCdkYXlfbmFtZXMnLCR0aGlzLT5HZXREYXlOYW1lcygpKTsKJHNtYXJ0eS0+YXNzaWduKCdkYXlfc2hvcnRfbmFtZXMnLCR0aGlzLT5HZXREYXlTaG9ydE5hbWVzKCkpOwokc21hcnR5LT5hc3NpZ24oJ2V2ZW50cycsICRldmVudHMpOwokc21hcnR5LT5hc3NpZ24oJ2xhbmcnLCAkbGFuZyk7CiRzbWFydHktPmFzc2lnbigncGFzdGl0ZW1zJywgJHBhc3RpdGVtcyk7CgovLyBEaXNwbGF5IHRlbXBsYXRlCiR0aGV0ZW1wbGF0ZSA9ICd1cGNvbWluZ2xpc3RfJy4kdGhpcy0+R2V0UHJlZmVyZW5jZShDR0NBTEVOREFSX1BSRUZfREZMVFVQQ09NSU5HTElTVF9URU1QTEFURSk7CmlmIChpc3NldCgkcGFyYW1zWyd1cGNvbWluZ2xpc3R0ZW1wbGF0ZSddKSkgJHRoZXRlbXBsYXRlID0gJ3VwY29taW5nbGlzdF8nLiRwYXJhbXNbJ3VwY29taW5nbGlzdHRlbXBsYXRlJ107CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHRoZXRlbXBsYXRlKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/function.displayweeklist.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHNlc3Npb25rZXkgPSBudWxsOwokeWVhciA9IGRhdGUoJ1knKTsKJHdlZWsgPSBkYXRlKCdXJyk7CiRkZXRhaWxwYWdlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRjYWxlbmRhcnBhZ2UnLCRyZXR1cm5pZCk7CmlmKCAkZGV0YWlscGFnZSA8IDEgKSAkZGV0YWlscGFnZSA9ICRyZXR1cm5pZDsKaWYgKGlzc2V0KCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSkpIHsKICAkdG1wID0gJHRoaXMtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHBhcmFtc1snZGV0YWlscGFnZSddKTsKICBpZiggJHRtcCA+IDAgKSAkZGV0YWlscGFnZSA9ICR0bXA7Cn0KJGlubGluZSA9IChpc3NldCgkcGFyYW1zWydpbmxpbmUnXSkpPyhpbnQpJHBhcmFtc1snaW5saW5lJ106MDsKJGZpcnN0X2RheV9vZl93ZWVrID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ZpcnN0ZGF5b2Z3ZWVrJywxKTsKJGNhdGVnb3J5ID0gaHRtbF9lbnRpdHlfZGVjb2RlKGh0bWxfZW50aXR5X2RlY29kZShnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsICdjYXRlZ29yeScsICRjYXRlZ29yeSkpKTsKJGxpbWl0ID0gZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCAnbGltaXQnLCAxMDAwKTsKJGxpbWl0ID0gbWluKDEwMDAsJGxpbWl0KTsKJHJldmVyc2UgPSBnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsICdyZXZlcnNlJywgZmFsc2UpOwokdXNlX3Nlc3Npb24gPSBnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsICd1c2Vfc2Vzc2lvbicpOwoKaWYoICR1c2Vfc2Vzc2lvbiApIHsKICAkc2Vzc2lvbmtleSA9ICR1c2Vfc2Vzc2lvbi5jZ2NhbGVuZGFyX3V0aWxzOjpnZXRfc2Vzc2lvbmtleSgkcGFyYW1zKTsKICAkeWVhciA9IChpbnQpJHRoaXMtPnNlc3Npb25fZ2V0KCRzZXNzaW9ua2V5Lid5ZWFyJywkeWVhcik7CiAgJHdlZWsgPSAoaW50KSR0aGlzLT5zZXNzaW9uX2dldCgkc2Vzc2lvbmtleS4nd2VlaycsJHdlZWspOwp9CgokeWVhciA9IChpbnQpZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCAneWVhcicsICR5ZWFyKTsKJHdlZWsgPSAoaW50KWdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywgJ3dlZWsnLCAkd2Vlayk7CgppZiggJHNlc3Npb25rZXkgKSB7CiAgJHRoaXMtPnNlc3Npb25fcHV0KCRzZXNzaW9ua2V5Lid5ZWFyJywkeWVhcik7CiAgJHRoaXMtPnNlc3Npb25fcHV0KCRzZXNzaW9ua2V5Lid3ZWVrJywkd2Vlayk7CiAgJGlubGluZSA9IHRydWU7Cn0KCi8vIGZpeCB1cCB3ZWVrIGFuZCB5ZWFyCmlmKCAkd2VlayA8IDEgKSB7CiAgJHdlZWsgPSA1MzsKICAkeWVhci0tOwp9CmVsc2UgaWYoICR3ZWVrID4gNTMgKSB7CiAgJHdlZWsgPSAxOwogICR5ZWFyKys7Cn0KCi8vIGJ1aWxkIHF1ZXJ5CiRmbXQgPSAnJTA0ZC1XJTAyZC0lZCc7CmlmKCAkZmlyc3RfZGF5X29mX3dlZWsgPT0gMSApIHsKICAkc2RheSA9IDE7CiAgJGVkYXkgPSA3Owp9CmVsc2UgewogICRzZGF5ID0gMDsKICAkZWRheSA9IDY7Cn0KJHN0YXJ0X3V0ID0gc3RydG90aW1lKHNwcmludGYoJGZtdCwkeWVhciwkd2Vlaywkc2RheSkpOwokZW5kX3V0ID0gc3RydG90aW1lKHNwcmludGYoJGZtdCwkeWVhciwkd2VlaywkZWRheSkpOwoKJHJzID0gJGRiLT5TZWxlY3RMaW1pdChjZ2NhbGVuZGFyX3V0aWxzOjpnZXRfcXVlcnkoJHN0YXJ0X3V0LCRlbmRfdXQsJGNhdGVnb3J5LCRyZXZlcnNlKSwkbGltaXQpOwoKLy8gZ2V0IHRoZSBsaXN0IG9mIGV2ZW50IGlkJ3MuCiRjdXN0b21maWVsZHMgPSBudWxsOwokZXZlbnRfaWRzID0gYXJyYXkoKTsKd2hpbGUoICRycyAmJiAhJHJzLT5FT0YoKSApIHsKICAkZXZlbnRfaWRzW10gPSAkcnMtPmZpZWxkc1snZXZlbnRfaWQnXTsKICAkcnMtPk1vdmVOZXh0KCk7Cn0KCiRsb2FkZXIgPSBuZXcgY2djX2V2ZW50X2xvYWRlcigkaWQsJGV2ZW50X2lkcywkZGV0YWlscGFnZSwkcmV2ZXJzZSk7CmlmKCBpc3NldCgkcGFyYW1zWydldmVudHRlbXBsYXRlJ10pICkgJGxvYWRlci0+c2V0X2V2ZW50X3RlbXBsYXRlKCRwYXJhbXNbJ2V2ZW50dGVtcGxhdGUnXSk7CiRldmVudHMgPSAkbG9hZGVyLT5nZXRfZXZlbnRzKCk7CgovLyBidWlsZCBuYXZpZ2F0aW9uLgokbmF2aWdhdGlvbiA9IGFycmF5KCk7CiRwYXJtcyA9ICRwYXJhbXM7CnVuc2V0KCRwYXJtc1sncmV0dXJuaWQnXSwkcGFybXNbJ3BhZ2UnXSwkcGFybXNbJ2FjdGlvbiddKTsKJHBhcm1zWydkaXNwbGF5J10gPSAnd2Vla2xpc3QnOwokcGFybXNbJ3llYXInXSA9ICR5ZWFyOwokcGFybXNbJ3dlZWsnXSA9ICgkcmV2ZXJzZSk/JHdlZWstMTokd2VlaysxOwokbmF2aWdhdGlvblsnbmV4dCddID0gJHRoaXMtPkNyZWF0ZVVSTCgkaWQsJ2RlZmF1bHQnLCRyZXR1cm5pZCwkcGFybXMsJGlubGluZSk7IC8vIGRlcHJlY2F0ZWQKJG5hdmlnYXRpb25bJ25pX25leHQnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcm1zLCBmYWxzZSApOwokbmF2aWdhdGlvblsnaW5fbmV4dCddID0gJHRoaXMtPkNyZWF0ZVVSTCgkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAkcGFybXMsIHRydWUgKTsKJHBhcm1zWyd3ZWVrJ10gPSAoJHJldmVyc2UpPyR3ZWVrKzE6JHdlZWstMTsKJG5hdmlnYXRpb25bJ3ByZXYnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCdkZWZhdWx0JywkcmV0dXJuaWQsJHBhcm1zLCRpbmxpbmUpOyAvLyBkZXByZWNhdGVkCiRuYXZpZ2F0aW9uWyduaV9wcmV2J10gPSAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICRwYXJtcywgZmFsc2UgKTsKJG5hdmlnYXRpb25bJ2luX3ByZXYnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcm1zLCB0cnVlICk7CiRwYXJtc1snd2VlayddID0gZGF0ZSgnVycpOwokcGFybXNbJ3llYXInXSA9IGRhdGUoJ1knKTsKJG5hdmlnYXRpb25bJ2N1cnJlbnQnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCdkZWZhdWx0JywkcmV0dXJuaWQsJHBhcm1zLCRpbmxpbmUpOyAvLyBkZXByZWNhdGVkCiRuYXZpZ2F0aW9uWyduaV9jdXJyZW50J10gPSAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICRwYXJtcywgZmFsc2UgKTsKJG5hdmlnYXRpb25bJ2luX2N1cnJlbnQnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcm1zLCB0cnVlICk7CgokZGF5X25hbWVzID0gJHRoaXMtPkdldERheU5hbWVzKCk7CiRkYXlfc2hvcnRfbmFtZXMgPSAkdGhpcy0+R2V0RGF5U2hvcnROYW1lcygpOwokbW9udGhfbmFtZXMgPSAkdGhpcy0+R2V0TW9udGhOYW1lcygpOwoKLy8gb3RoZXIgbGFuZ3VhZ2UgZmllbGRzCiRsYW5nID0gJHRoaXMtPkdldExhYmVscygpOwoKLy8gYXNzaWduIHRvIFNtYXJ0eQokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2RhdGVfdXQnLCRzdGFydF91dCk7CiRzbWFydHktPmFzc2lnbignZW5kX2RhdGVfdXQnLCRlbmRfdXQpOwokc21hcnR5LT5hc3NpZ24oJ21vbnRoX25hbWVzJywgJG1vbnRoX25hbWVzKTsKJHNtYXJ0eS0+YXNzaWduKCdkYXlfbmFtZXMnLCAkZGF5X25hbWVzKTsKJHNtYXJ0eS0+YXNzaWduKCdkYXlfc2hvcnRfbmFtZXMnLCAkZGF5X3Nob3J0X25hbWVzKTsKJHNtYXJ0eS0+YXNzaWduKCdldmVudHMnLCAkZXZlbnRzKTsKJHNtYXJ0eS0+YXNzaWduKCd5ZWFyJywgJHllYXIpOwokc21hcnR5LT5hc3NpZ24oJ3dlZWsnLCR3ZWVrKTsKJHNtYXJ0eS0+YXNzaWduKCdsYW5nJywgJGxhbmcpOwokc21hcnR5LT5hc3NpZ24oJ25hdmlnYXRpb24nLCAkbmF2aWdhdGlvbik7CgovLyBEaXNwbGF5IHRlbXBsYXRlCiR0aGV0ZW1wbGF0ZSA9ICdsaXN0XycuJHRoaXMtPkdldFByZWZlcmVuY2UoQ0dDQUxFTkRBUl9QUkVGX0RGTFRMSVNUX1RFTVBMQVRFKTsKaWYgKGlzc2V0KCRwYXJhbXNbJ2xpc3R0ZW1wbGF0ZSddKSkgJHRoZXRlbXBsYXRlID0gJ2xpc3RfJy4kcGFyYW1zWydsaXN0dGVtcGxhdGUnXTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCR0aGV0ZW1wbGF0ZSk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.displayyearlist.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4CiMgICAgICBieSBSb2JlcnQgQWxsZW4gKGFrcmFiYXQpIGFuZAojICAgICAgICAgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBkaXNwbGF5aW5nIGNhbGVuZGFycywKIyAgYW5kIG1hbmFnZW1lbnQgYW5kIGRpc3BsYXkgb2YgdGltZSBiYXNlZCBldmVudHMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7Cgokc2Vzc2lvbmtleSA9IG51bGw7CiRkZXRhaWxwYWdlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRjYWxlbmRhcnBhZ2UnLCRyZXR1cm5pZCk7CmlmKCAkZGV0YWlscGFnZSA8IDEgKSAkZGV0YWlscGFnZSA9ICRyZXR1cm5pZDsKaWYgKGlzc2V0KCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSkpIHsKICAkdG1wID0gJHRoaXMtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHBhcmFtc1snZGV0YWlscGFnZSddKTsKICBpZiggJHRtcCApICRkZXRhaWxwYWdlID0gKGludCkkdG1wOwp9CiRpbmxpbmUgPSBnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsJ2lubGluZScsMCk7CiRjYXRlZ29yeSA9IGh0bWxfZW50aXR5X2RlY29kZShodG1sX2VudGl0eV9kZWNvZGUoZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCAnY2F0ZWdvcnknLCAkY2F0ZWdvcnkpKSk7CiRsaW1pdCA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywgJ2xpbWl0JywgMTAwMCk7CiRsaW1pdCA9IG1pbigkbGltaXQsMTAwMCk7CiRyZXZlcnNlID0gZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCAncmV2ZXJzZScsIGZhbHNlKTsKCiR1c2Vfc2Vzc2lvbiA9IGdldF9wYXJhbWV0ZXJfdmFsdWUoJHBhcmFtcywgJ3VzZV9zZXNzaW9uJywgdHJ1ZSk7CmlmKCR1c2Vfc2Vzc2lvbikgewogICRzZXNzaW9ua2V5ID0gJHVzZV9zZXNzaW9uLmNnY2FsZW5kYXJfdXRpbHM6OmdldF9zZXNzaW9ua2V5KCRwYXJhbXMpOwogICR5ZWFyID0gJHRoaXMtPnNlc3Npb25fZ2V0KCRzZXNzaW9ua2V5Lid5ZWFyJyk7Cn0KJHllYXIgPSBnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsICd5ZWFyJywgZGF0ZSgnWScpKTsKCmlmKCAkc2Vzc2lvbmtleSApIHsKICAkdGhpcy0+c2Vzc2lvbl9wdXQoJHNlc3Npb25rZXkuJ3llYXInLCR5ZWFyKTsKICAkaW5saW5lID0gMTsKfQoKLy8gYmFzaWMgaW5mb3JtYXRpb24gYWJvdXQgZGF0ZXMKJHByZXZfeWVhclsndGltZXN0YW1wJ10gPSBzdHJ0b3RpbWUoIi0xIHllYXIiLCBta3RpbWUoMCwwLDAsMSwgMSwgJHllYXIpKTsKJHByZXZfeWVhclsneWVhciddID0gZGF0ZSgnWScsICRwcmV2X3llYXJbJ3RpbWVzdGFtcCddKTsKJG5leHRfeWVhclsndGltZXN0YW1wJ10gPSBzdHJ0b3RpbWUoIisxIHllYXIiLCBta3RpbWUoMCwwLDAsMSwgMSwgJHllYXIpKTsKJG5leHRfeWVhclsneWVhciddID0gZGF0ZSgnWScsICRuZXh0X3llYXJbJ3RpbWVzdGFtcCddKTsKJGxhc3RfZGF5X29mX3llYXIgPSBta3RpbWUoMCwgMCwgMCwgMSwgMCwgJG5leHRfeWVhclsneWVhciddKTsKCiRzdGFydCA9IG1rdGltZSgwLDAsMCwxLDEsJHllYXIpOwokZW5kID0gbWt0aW1lKDIzLDU5LDU5LDEyLDMxLCR5ZWFyKTsKCiRpZGxpc3QgPSAkZGItPkdldENvbChjZ2NhbGVuZGFyX3V0aWxzOjpnZXRfcXVlcnkoJHN0YXJ0LCRlbmQsJGNhdGVnb3J5LCRyZXZlcnNlKSk7CiRpZGxpc3QgPSBhcnJheV9zbGljZSgkaWRsaXN0LDAsJGxpbWl0KTsKJGxvYWRlciA9IG5ldyBjZ2NfZXZlbnRfbG9hZGVyKCRpZCwkaWRsaXN0LCRkZXRhaWxwYWdlLCRyZXZlcnNlKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ2V2ZW50dGVtcGxhdGUnXSkgKSAkbG9hZGVyLT5zZXRfZXZlbnRfdGVtcGxhdGUoJHBhcmFtc1snZXZlbnR0ZW1wbGF0ZSddKTsKJGV2ZW50cyA9ICRsb2FkZXItPmdldF9ldmVudHMoKTsKCiRwYXJtcyA9ICRwYXJhbXM7CnVuc2V0KCRwYXJtc1snYWN0aW9uJ10sJHBhcm1zWydyZXR1cm5pZCddLCRwYXJtc1sncGFnZSddKTsKJHBhcm1zWydkaXNwbGF5J10gPSAneWVhcmxpc3QnOwokcGFybXNbJ3llYXInXSA9ICgkcmV2ZXJzZSA9PSBmYWxzZSk/JG5leHRfeWVhclsneWVhciddOiRwcmV2X3llYXJbJ3llYXInXTsKJG5hdmlnYXRpb25bJ25leHQnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcm1zLCAkaW5saW5lICk7IC8vIGRlcHJlY2F0ZWQKJG5hdmlnYXRpb25bJ25pX25leHQnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcm1zLCBmYWxzZSApOwokbmF2aWdhdGlvblsnaW5fbmV4dCddID0gJHRoaXMtPkNyZWF0ZVVSTCgkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAkcGFybXMsIHRydWUgKTsKJHBhcm1zWyd5ZWFyJ10gPSAoJHJldmVyc2UgPT0gZmFsc2UpPyRwcmV2X3llYXJbJ3llYXInXTokbmV4dF95ZWFyWyd5ZWFyJ107CiRuYXZpZ2F0aW9uWydwcmV2J10gPSAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICRwYXJtcywgJGlubGluZSApOyAvLyBkZXByZWNhdGVkCiRuYXZpZ2F0aW9uWyduaV9wcmV2J10gPSAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwgJ2RlZmF1bHQnLCAkcmV0dXJuaWQsICRwYXJtcywgZmFsc2UgKTsKJG5hdmlnYXRpb25bJ2luX3ByZXYnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJHBhcm1zLCB0cnVlICk7CgokZGF5X25hbWVzID0gJHRoaXMtPkdldERheU5hbWVzKCk7CiRkYXlfc2hvcnRfbmFtZXMgPSAkdGhpcy0+R2V0RGF5U2hvcnROYW1lcygpOwokbW9udGhfbmFtZXMgPSAkdGhpcy0+R2V0TW9udGhOYW1lcygpOwoKLy8gb3RoZXIgbGFuZ3VhZ2UgZmllbGRzCiRsYW5nID0gJHRoaXMtPkdldExhYmVscygpOwoKLy8gYXNzaWduIHRvIFNtYXJ0eQokc21hcnR5LT5hc3NpZ24oJ21vbnRoX25hbWVzJywgJG1vbnRoX25hbWVzKTsKJHNtYXJ0eS0+YXNzaWduKCdkYXlfbmFtZXMnLCAkZGF5X25hbWVzKTsKJHNtYXJ0eS0+YXNzaWduKCdkYXlfc2hvcnRfbmFtZXMnLCAkZGF5X3Nob3J0X25hbWVzKTsKJHNtYXJ0eS0+YXNzaWduKCdldmVudHMnLCAkZXZlbnRzKTsKJHNtYXJ0eS0+YXNzaWduKCd5ZWFyJywgJHllYXIpOwokc21hcnR5LT5hc3NpZ24oJ2xhbmcnLCAkbGFuZyk7CiRzbWFydHktPmFzc2lnbignbmF2aWdhdGlvbicsICRuYXZpZ2F0aW9uKTsKCi8vIERpc3BsYXkgdGVtcGxhdGUKJHRoZXRlbXBsYXRlID0gJ2xpc3RfJy4kdGhpcy0+R2V0UHJlZmVyZW5jZShDR0NBTEVOREFSX1BSRUZfREZMVExJU1RfVEVNUExBVEUpOwppZiAoaXNzZXQoJHBhcmFtc1snbGlzdHRlbXBsYXRlJ10pKSAkdGhldGVtcGxhdGUgPSAnbGlzdF8nLiRwYXJhbXNbJ2xpc3R0ZW1wbGF0ZSddOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHRoZXRlbXBsYXRlKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/functions.admin_tools.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4CiMgICAgICBieSBSb2JlcnQgQWxsZW4gKGFrcmFiYXQpIGFuZAojICAgICAgICAgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBkaXNwbGF5aW5nIGNhbGVuZGFycywKIyAgYW5kIG1hbmFnZW1lbnQgYW5kIGRpc3BsYXkgb2YgdGltZSBiYXNlZCBldmVudHMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKZnVuY3Rpb24gY2FsZW5kYXJfaXNWYWxpZEZpbGVuYW1lKCYkbW9kLCRmaWxlbmFtZSkKewogICRmaWxlX25hbWUgPSB0cmltICgkZmlsZW5hbWUpOwogICRleHRlbnNpb24gPSBzdHJ0b2xvd2VyIChzdHJyY2hyICgkZmlsZV9uYW1lLCAiLiIpKTsKCiAgJHZhbGlkX2V4dGVuc2lvbnMgPSBleHBsb2RlKCcsJyxzdHJ0b2xvd2VyKCRtb2QtPkdldFByZWZlcmVuY2UoJ3VwbG9hZGZpbGV0eXBlcycsJ2pwZyxqcGVnLGdpZixwbmcnKSkpOwogICRjb3VudCA9IGNvdW50KCR2YWxpZF9leHRlbnNpb25zKTsKCiAgaWYoICEkZmlsZV9uYW1lICkgcmV0dXJuIGZhbHNlOwogIGlmKCAkY291bnQgPT0gMCApIHJldHVybiB0cnVlOwogIGZvcmVhY2goICR2YWxpZF9leHRlbnNpb25zIGFzICRvbmVleHRlbnNpb24gKSB7CiAgICAkZmMgPSBzdWJzdHIoJG9uZWV4dGVuc2lvbiwgMCwgMSk7CiAgICBpZiggJGZjICE9ICcuJyApICRvbmVleHRlbnNpb24gPSAnLicuJG9uZWV4dGVuc2lvbjsKICAgIGlmKCAkb25lZXh0ZW5zaW9uID09ICRleHRlbnNpb24gKSByZXR1cm4gdHJ1ZTsKICB9CiAgcmV0dXJuIGZhbHNlOwp9CgpmdW5jdGlvbiBjYWxlbmRhcl9IYW5kbGVVcGxvYWQoJiRtb2QsJGZsZG5hbWUsJiRlcnJvcikKewogICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAkZGVzdERpciA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ3VwbG9hZGRpcmVjdG9yeScsJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10pOwoKICBpZiggIWlzc2V0KCRfRklMRVMpIHx8ICFpc3NldCgkX0ZJTEVTWyRmbGRuYW1lXSkgfHwgISRfRklMRVNbJGZsZG5hbWVdWyduYW1lJ10gKSB7CiAgICAkZXJyb3IgPSAkbW9kLT5MYW5nKCdlcnJvcl9ub3VwbG9hZCcpOwogICAgcmV0dXJuIGZhbHNlOwogIH0KCiAgJGZpbGUgPSYgJF9GSUxFU1skZmxkbmFtZV07CiAgaWYoICFpc3NldCgkZmlsZVsndHlwZSddKSApICRmaWxlWyd0eXBlJ10gPSAnJzsKICBpZiggIWlzc2V0KCRmaWxlWyduYW1lJ10pICkgJGZpbGVbJ25hbWUnXSA9ICcnOwogIGlmKCAhaXNzZXQoJGZpbGVbJ3NpemUnXSkgKSAkZmlsZVsnc2l6ZSddID0gJyc7CiAgJGZpbGVbJ25hbWUnXSA9CiAgICBwcmVnX3JlcGxhY2UoJy9bXmEtekEtWjAtOVwuXCRcJVwnXGBcLVxAXHtcfVx+XCFcI1woXClcJlxfXF5dLycsICcnLCBzdHJfcmVwbGFjZSAoYXJyYXkgKCcgJywgJyUyMCcpLCBhcnJheSAoJ18nLCAnXycpLCAkZmlsZVsnbmFtZSddKSk7CiAgaWYoICEkbW9kLT5pc1ZhbGlkRmlsZW5hbWUoICRmaWxlWyduYW1lJ10gKSApIHsKICAgICRlcnJvciA9ICRtb2QtPkxhbmcoJ2Vycm9yX2ludmFsaWRmaWxlbmFtZScpOwogICAgcmV0dXJuIGZhbHNlOwogIH0KCiAgaWYoICRmaWxlWydlcnJvciddICE9IDAgfHwgJGZpbGVbJ3NpemUnXSA9PSAnJyB8fCAkZmlsZVsnc2l6ZSddID09IDAgKSB7CiAgICAkZXJyb3IgPSAkbW9kLT5MYW5nKCdlcnJvcl9wcm9ibGVtd2l0aHVwbG9hZCcpOwogICAgcmV0dXJuIGZhbHNlOwogIH0KCiAgJGRlc3RuYW1lID0gJGZpbGVbJ25hbWUnXTsKICAkZGVzdGZpbGVzcGVjID0gY21zX2pvaW5fcGF0aCggJGRlc3REaXIsICRkZXN0bmFtZSApOwogIGlmKCBmaWxlX2V4aXN0cyggJGRlc3RmaWxlc3BlYyApICkgewogICAgaWYoICRtb2QtPkdldFByZWZlcmVuY2UoJ3VwbG9hZHVuaXF1ZScsMSkgPT0gMSApIHsKICAgICAgJGkgPSAwOwogICAgICBmb3IoICRpID0gMDsgICRpIDwgMTAwOyAkaSsrICkgewoJJGRlc3RuYW1lID0gJGZpbGVbJ25hbWUnXTsKCWlmKCAkaSA+IDAgKSAkZGVzdG5hbWUgPSAkaS4nXycuJGZpbGVbJ25hbWUnXTsKCSRkZXN0ZmlsZXNwZWMgPSBjbXNfam9pbl9wYXRoKCAkZGVzdERpciwgJGRlc3RuYW1lICk7CglpZiggIWZpbGVfZXhpc3RzKCAkZGVzdGZpbGVzcGVjICkgKSBicmVhazsKICAgICAgfQogICAgICBpZiggJGkgPT0gMTAwICkgewoJJGVycm9yID0gJG1vZC0+TGFuZygnZXJyb3JfZmlsZWV4aXN0cycpOwoJcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgJGVycm9yID0gJG1vZC0+TGFuZygnZXJyb3JfZmlsZWV4aXN0cycpOwogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgfQoKICBpZiggIUBjb3B5KCRmaWxlWyd0bXBfbmFtZSddLCAkZGVzdGZpbGVzcGVjKSApIHsKICAgICRlcnJvciA9ICRtb2QtPkxhbmcoJ2Vycm9yX2ZpbGVjb3B5ZmFpbGVkJyk7CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICByZXR1cm4gJGRlc3RuYW1lOwp9CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/help.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPk5vdGljZTo8L2gzPgo8cD5WZXJzaW9uIDEuMCBvZiB0aGUgQ2FsZ3V5IENhbGVuZGFyIG1vZHVsZSBpcyBhIGNvbXBsZXRlIGZvcmsgb2YgdGhlIG9sZCBjYWxlbmRhciBtb2R1bGUuICBIb3dldmVyLCB0aGlzIG1vZHVsZSBpcyBub3QgY29tcGF0aWJsZSBpbiBhbnkgd2F5IHdpdGggdGhlIG90aGVyIG1vZHVsZS48L3A+CjxoMz5XaGF0IGRvZXMgdGhpcyBkbz88L2gzPgo8cD5DYWxndXlzIENhbGVuZGFyIGlzIGEgbW9kdWxlIGZvciBkaXNwbGF5aW5nIGV2ZW50cyBvbiB5b3VyIHBhZ2UuIFdoZW4gdGhlCm1vZHVsZSBpcyBpbnN0YWxsZWQsIGEgJnF1b3Q7Q2FsZ3V5cyBDYWxlbmRhciZxdW90OyBhZG1pbiBwYWdlIGlzIGFkZGVkIHRvIHRoZSBwbHVnaW5zIG1lbnUKdGhhdCB3aWxsIGFsbG93IHlvdSB0byBtYW5hZ2UgeW91ciBldmVudHMuPC9wPgo8aDM+U2VjdXJpdHk8L2gzPgo8cD5UaGUgdXNlciBtdXN0IGJlbG9uZyB0byBhIGdyb3VwIHdpdGggdGhlICdNb2RpZnkgQ2FsZW5kYXInIHBlcm1pc3Npb24KaW4gb3JkZXIgdG8gYWRkLCBlZGl0LCBvciBkZWxldGUgY2FsZW5kYXIgZXZlbnQgZW50cmllcy48L3A+CjxoMz5Ib3cgZG8gSSB1c2UgaXQ/PC9oMz4KPG9sPgogIDxsaT5QdXQgdGhlIGNtc19tb2R1bGUgdGFnIGluIHRoZSBwYWdlIGNvbnRlbnQuIE1ha2Ugc3VyZSBpdCBpcyBub3QgZW5jbG9zZWQgaW4gJmx0O3ByZSZndDsuLi4mbHQ7L3ByZSZndDsgdGFncy4gIFlvdSB3aWxsIG5lZWQgdG8gdmlldyBzb3VyY2UgY29kZSBmb3IgdGhpcy4gIFRoZSBjb2RlIHdvdWxkIGxvb2sgc29tZXRoaW5nIGxpa2U6PGJyIC8+CiAgPHR0PntjbXNfbW9kdWxlIG1vZHVsZT0iQ0dDYWxlbmRhciJ9PC90dD48YnIgLz4KICA8bGk+U3R5bGUgdGhlIGNhbGVuZGFyIGFwcHJvcHJpYXRlbHkgZm9yIHlvdXIgZGlzcGxheSAoYW4gZXhhbXBsZSBzdHlsZXNoZWV0IGlzIHByb3ZpZGVkIGZvciB0aGlzIHB1cnBvc2UpPC9saT4KPC9vbD4KPGJyLz4KPHA+PGI+VG8gYXR0YWNoIHRoZSBzYW1wbGUgc3R5bGVzaGVldCB0byB5b3VyIHRlbXBsYXRlOjwvYj48L3A+CjxvbD4KPGxpPkdvIHRvICJMYXlvdXQgLT4gVGVtcGxhdGVzIjwvbGk+CjxsaT5DbGljayB0aGUgQ1NTIGljb24gKEF0dGFjaCBTdHlsZXNoZWV0IHRvIFRlbXBsYXRlKSBidXR0b24gdG8gdGhlIHJpZ2h0IG9mIHlvdXIgdGVtcGxhdGU8L2xpPgo8bGk+Q2hvb3NlICJDYWxndXlzIENhbGVuZGFyIENTUyBleGFtcGxlIiBmcm9tIHRoZSBkcm9wLWRvd24gbWVudS48L2xpPgo8bGk+Q2xpY2sgdGhlICJBZGQgYSBTdHlsZXNoZWV0IiBidXR0b24uPC9saT4KPC9vbD4KPGJyLz4KPGgzPkFkbWluIFRoZW1lczwvaDM+CjxwPlRoaXMgbW9kdWxlcyBhZG1pbiBwYW5lbCA8ZW0+KHZlcnNpb24gMS4xNCspIHJlbGllcyBoZWF2aWx5IG9uIHN0eWxlcyBhbmQgdG9vbHMgaW4gdGhlIENNU01TIE9uZUVsZXZlbiBhZG1pbiB0aGVtZS4gIEl0IG1heSBub3QgZnVuY3Rpb24gcHJvcGVyeSAob3IgYXQgbGVhc3QgbG9vayBwcm9wZXJseSkgaW4gb3RoZXIgYWRtaW4gdGhlbWVzIHRoYXQgZG9uJ3QgZGlyZWN0bHkgcmVwbGljYXRlIHRoZXNlIHN0eWxlcy48L3A+CjxoMz5QYXJhbWV0ZXJzPC9oMz4KPHRhYmxlIGJvcmRlcj0wIGNlbGxwYWRkaW5nPTMgY2VsbHNwYWNpbmc9MD4KICA8dHI+CiAgICAgPHRkPmFjdGlvbjwvdGQ+CiAgICAgPHRkPkFjY2VwdGFibGUgdmFsdWVzOjxicj4KICAgICAgICAiZGVmYXVsdCIgLSBTcGVjaWZpZXMgdGhlIGRlZmF1bHQgYWN0aW9uLCB3b3JrcyBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAiZGlzcGxheSIgcGFyYW1ldGVyIGJlbG93Ljxici8+Cgkic2VhcmNoIiAtIERpc3BsYXkgYSBmb3JtIGZvciBhZHZhbmNlZCBzZWFyY2hpbmcgb2YgY2FsZW5kYXIgZXZlbnRzLjxici8+CiAgICAgICAgIm15ZXZlbnRzIiAtIERpc3BsYXkgYSBsaXN0IG9mIGFsbCBvZiBhIHVzZXJzIGV2ZW50cywgYW5kIGFsbG93IGFkZGluZywgZWRpdGluZyBvciBkZWxldGluZyB0aG9zZSBldmVudHM8YnIvPgogICAgICAgICJhZGRlZGl0X2V2ZW50IiAtIERpc3BsYXkgYSBmb3JtIGFsbG93aW5nIHRvIGFkZCBvciBlZGl0IGEgc2luZ2xlIGV2ZW50LjsKICAgICA8L3RkPgogIDwvdHI+CgogIDx0cj4KICAgICA8dGQ+ZGlzcGxheTwvdGQ+CiAgICAgPHRkPkFjY2VwdGFibGUgdmFsdWVzOjxicj4KCSAiY2FsZW5kYXIiIC0gZGlzcGxheXMgZXZlbnRzIGZvciB0aGUgY3VycmVudCBtb250aCBpbiBhIHRyYWRpdGlvbmFsIGdyaWQuICBJbmNsdWVzIGxpbmtzIHRvIHByZXYuIGFuZCBuZXh0IG1vbnRocy48YnIvPgoJICJldmVudCIgLSBkaXNwbGF5IGEgZGV0YWlsIHJlcG9ydCBmb3IgYSBzcGVjaWZpYyBldmVudC4gIFRvIHVzZSB0aGlzIGRpc3BsYXkgbW9kZSwgdGhlIGV2ZW50X2lkIHBhcmFtZXRlciBtdXN0IGJlIHNwZWNpZmllZC48YnIvPgoJICJsaXN0IiAtIGRpc3BsYXlzIGV2ZW50cyBmb3IgdGhlIGN1cnJlbnQgbW9udGggYXMgYSBsaXN0LiAgSW5jbHVkZXMgbGlua3MgdG8gcHJldi4gYW5kIG5leHQgbW9udGhzLjxici8+CgkgIndlZWtsaXN0IiAtIGRpc3BsYXlzIGV2ZW50cyBmb3IgdGhlIGN1cnJlbnQgd2VlayBhcyBhIGxpc3QuICBJbmNsdWRlcyBsaW5rcyB0byBwcmV2LiBhbmQgbmV4dCB3ZWVrcy48YnIvPgoJICJ5ZWFybGlzdCIgLSBkaXNwbGF5cyBldmVudHMgZm9yIHRoZSBjdXJyZW50IHllYXIgaW4gYSBsaXN0LiAgSW5jbHVkZXMgbGlua3MgdG8gcHJldi4gYW5kIG5leHQgeWVhcnMuPGJyLz4KCSAicGFzdGxpc3QiIC0gZGlzcGxheXMgYWxsIHBhc3QgZXZlbnRzLiAgTm8gcHJldi9uZXh0IGxpbmtzLjxici8+CgkgInVwY29taW5nbGlzdCIgLSBkaXNwbGF5cyBhbGwgdXBjb21pbmcgZXZlbnRzLiAgTm8gcHJldi9uZXh0IGxpbmtzLjxici8+CgkJRGVmYXVsdHMgdG8gImNhbGVuZGFyIiA8ZW0+KG9wdGlvbmFsKTwvZW0+CiAgICAgPC90ZD4KICA8L3RyPgoKICA8dHI+CiAgICAgPHRkPmNhdGVnb3J5PC90ZD4KICAgICA8dGQ+T25seSBkaXNwbGF5IGl0ZW1zIGZvciB0aGF0IGNhdGVnb3J5LiBMZWF2aW5nIHVuc2V0LCB3aWxsIHNob3cgYWxsIGNhdGVnb3JpZXMuIE5vdGUgdGhhdAoJIHlvdSBjYW4gbGltaXQgdG8gbXVsdGlwbGUgY2F0ZWdvcmllcyBieSBzZXBhcmF0aW5nIGVhY2ggb25lIHdpdGggYSBjb21tYS4gVGhpcyBwYXJhbWV0ZXIgY2FuIGJlCiAgICAgICAgIHVzZWQgd2l0aCB0aGUgbXlldmVudHMgYWN0aW9uIGFuZCB3aXRoIHRoZSB2YXJpb3VzIGRpc3BsYXkgb3B0aW9ucy4gIElmIG11bHRpcGxlIGNhdGVnb3J5IG5hbWVzIGFyZSBzcGVjaWZpZWQKICAgICAgICAgYSBtYXRjaCBpcyBkb25lIG9uIEFOWSBvZiB0aGUgY2F0ZWdvcmllcyBzcGVjaWZpZWQuIDxlbT4ob3B0aW9uYWwpPC9lbT48L3RkPgogIDwvdHI+CgogIDx0cj4KICAgICA8dGQ+bW9udGg8L3RkPgogICAgIDx0ZD5EaXNwbGF5IGVudHJpZXMgZm9yIGEgcGFydGljdWxhciBtb250aC4gSWYgeWVhciBpcyBub3Qgc2V0LCB0aGVuIHRoZSBjdXJyZW50IHllYXIgaXMKCSBhc3N1bWVkLiBUaGlzIG9wdGlvbiBvbmx5IHdvcmtzIGlmIGRpc3BsYXkgaXMgc2V0IHRvICJsaXN0IiBvciAiY2FsZW5kYXIiLiA8ZW0+KG9wdGlvbmFsKTwvZW0+PC90ZD4KICA8L3RyPgoKICA8dHI+CiAgICAgPHRkPnllYXI8L3RkPgogICAgIDx0ZD5EaXNwbGF5IGVudHJpZXMgZm9yIGEgcGFydGljdWxhciB5ZWFyLgoJVGhpcyBvcHRpb24gb25seSB3b3JrcyBpZiBkaXNwbGF5IGlzIHNldCB0byAibGlzdCIgb3IgImNhbGVuZGFyIi4gPGVtPihvcHRpb25hbCk8L2VtPjwvdGQ+CiAgPC90cj4KCiAgPHRyPgogICAgIDx0ZD5saW1pdDwvdGQ+Cgk8dGQ+PGVtPihvcHRpb25hbCk8L2VtPiAgU2V0IHRoZSBtYXhpbXVtIG51bWJlciBvZiBldmVudHMgdG8gZGlzcGxheS4gVGhpcyBvcHRpb24gb25seSBhcHBsaWVzIHRvIHRoZSAibGlzdCIsICJwYXN0bGlzdCIgb3IgInVwY29taW5nbGlzdCIgdmlld3MuICBUaGUgbWF4aW11bSB2YWx1ZSBmb3IgdGhlIGxpbWl0IHBhcmFtZXRlciBpcyAxMDAwIGV2ZW50cy4gIFRoZSAicGFzdGxpc3QiIGFuZCAidXBjb21pbmdsaXN0IiB2aWV3cyBzdXBwb3J0IHBhZ2luYXRpb24uICBUaGUgdmFyaW91cyBsaXN0IHZpZXdzIGRvIG5vdC48L2VtPjwvdGQ+CiAgPC90cj4KCiAgPHRyPgogICAgIDx0ZD51c2Vfc2Vzc2lvbjwvdGQ+CiAgICAgPHRkPlVzZSBzZXNzaW9uIHZhcmlhYmxlcyB0byBzdG9yZSB0aGUgY3VycmVudCBkYXRlIG9mIGEgY2FsZW5kYXIgdmlldy4gVGhpcyB3aWxsIGFsbG93IGEgY2FsZW5kYXIgdG8gcmVtZW1iZXIgdGhlIGRhdGUgc2V0dGluZyBvdmVyIG51bWVyb3VzIHBhZ2Ugdmlld3MgYW5kIHdoaWxlIHNjcm9sbGluZyB0byBkaWZmZXJlbnQgbW9udGhzLiAgSW4gdGhlIHNlYXJjaCBmb3JtIGl0IGFsbG93cyBzYXZpbmcgdGhlIHNlYXJjaCBzZXR0aW5ncyB1bnRpbCB0aGUgYnJvd3NlciBpcyByZXNldC4gIERlZmF1bHQgaXMgZmFsc2UuICBJZiB1c2Vfc2Vzc2lvbiBpcyBlbmFibGVkLCBhbGwgbmF2aWdhdGlvbiBsaW5rcyBhcmUgaW5saW5lIGxpbmtzIGFuZCB3aWxsIHJlcGxhY2UgdGhlIG9yaWdpbmFsIHRhZy48ZW0+KG9wdGlvbmFsKTwvZW0+PC90ZD4KICA8L3RyPgoKICA8dHI+CiAgICAgPHRkPmlubGluZSA8ZW0+KGRlcHJlY2F0ZWQpPC9lbT48L3RkPgogICAgICAgPHRkPlNldCB0byAxIHRvIHNldCBhbGwgb2YgdGhlIG5hdmlnYXRpb24gbGlua3MgdG8gaW5saW5lZCBtb2RlICh0aGV5IHdpbGwgcmVwbGFjZSB0aGUgb3JpbmdhbCB0YWcpLiAgRGVmYXVsdCBpcyAwLiBJdCBpcyByZWNvbW1lbmRlZCB5b3UgdXNlIHRoZSBuaV8gKG5vbiBpbmxpbmUpIG9yIGluXyAoaW5saW5lKSBwcmVmaXhlcyB0byBuYXZpZ2F0aW9uIGxpbmtzIGluIHNtYXJ0eS4gIGkuZTogIGhyZWY9eyRuYXZpZ2F0aW9uLmluX3ByZXZ9IHRvIGNyZWF0ZSBhbiBpbmxpbmUgbGluay4gTm90ZSwgdGhpcyBkb2VzIG5vdCBhbGxvdyB0aGUgY2FsZW5kYXIgdmlldyB0byByZW1lbWJlciBpdHMgZGF0ZSBhbmQgbW9udGggYmV0d2VlbiBwYWdlIHJlZnJlc2hlcy4gIElmIHlvdSBhcmUgZGlzcGxheWluZyB0aGUgY2FsZW5kYXIgaW4gdGhlIHNpZGViYXIgeW91IG1heSB3YW50IHRvIGVtcGxveSBib3RoIHRoZSB1c2Vfc2Vzc2lvbiBhbmQgdGhlIGlubGluZSBwYXJhbWV0ZXJzIChvciB1c2UgaW5saW5lIG9yIG5vbi1pbmxpbmUgdXJscyBpbiB0ZW1wbGF0ZXMpLiAgPGVtPihvcHRpb25hbCk8L2VtPjwvdGQ+CiAgPC90cj4KCiAgPHRyPgogICAgIDx0ZD5yZXZlcnNlPC90ZD4KICAgICA8dGQ+U2V0IHRvIHRydWUgdG8gZGlzcGxheSBldmVudHMgaW4gcmV2ZXJzZSBjaHJvbm9sb2dpY2FsIG9yZGVyLiBBcHBsaWNhYmxlIHRvICJsaXN0IiwgInBhc3RsaXN0IiBhbmQgInVwY29taW5nbGlzdCIgZGlzcGxheXMuIERlZmF1bHQgaXMgZmFsc2UuIEZvciB0aGUgInBhc3RsaXN0IiwgcmV2ZXJzZT10cnVlIGlzIGFzc3VtZWQuPGVtPihvcHRpb25hbCk8L2VtPjwvdGQ+CiAgPC90cj4KCiAgPHRyPgogICAgIDx0ZD5kZXRhaWxwYWdlPSJwYWdlYWxpYXMiPC90ZD4KICAgICA8dGQ+UGFnZSB0byBkaXNwbGF5IENhbGVuZGFyIGV2ZW50IGRldGFpbHMgaW4uIFRoaXMgY2FuIGVpdGhlciBiZSBhIHBhZ2UgYWxpYXMgb3IgYW4gaWQuIFVzZWQgdG8gYWxsb3cgZGV0YWlscyB0byBiZSBkaXNwbGF5ZWQgaW4gYSBkaWZmZXJlbnQgdGVtcGxhdGUgZnJvbSB0aGUgc3VtbWFyeS4gRGVmYXVsdCBpcyBjdXJyZW50IHBhZ2UuIDxlbT4ob3B0aW9uYWwpPC9lbT48L3RkPgogIDwvdHI+CgogIDx0cj4KICAgICA8dGQ+ZXZlbnRfaWQ8L3RkPgogICAgIDx0ZD5Vc2VkIHdpdGggdGhlIGRpc3BsYXk9ZXZlbnQgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHlvdSB0byBkaXNwbGF5IGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgZXZlbnQgb24gZGVtYW5kLjwvdGQ+CiAgPC90cj4KCiAgPHRyPgogICAgIDx0ZD5saW1pdDwvdGQ+CiAgICAgPHRkPlVzZWQgd2l0aCB0aGUgbGlzdCBkaXNwbGF5cywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBtYXhpbXVtIG51bWJlciBvZiBldmVudHMgdG8gZGlzcGxheSwgYW5kIHRoZW4gcHJvdmlkZXMgcGFnaW5hdGlvbiBjYXBhYmlsaXRpZXMuPC90ZD4KICA8L3RyPgoKICA8dHI+CiAgICAgPHRkPmNhbGVuZGFydGVtcGxhdGU8L3RkPgogICAgIDx0ZD5Vc2VkIHdpdGggZGlzcGxheT1jYWxlbmRhciwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHlvdSB0byBzcGVjaWZ5IGEgbm9uIGRlZmF1bHQgY2FsZW5kYXIgdGVtcGxhdGUuPC90ZD4KICA8L3RyPgoKICA8dHI+CiAgICAgPHRkPmV2ZW50dGVtcGxhdGU8L3RkPgogICAgIDx0ZD5Vc2VkIHdpdGggZGlzcGxheT1ldmVudCwgb3IgeW91IGNhbiBhbHNvIHNwZWNpZnkgdGhpcyBwYXJhbWV0ZXIgb24gYW55IENhbGVuZGFyIG1vZHVsZSBjYWxsLCB0aGlzIHBhcmFtZXRlciBhbGxvd3MgeW91IHRvIHNwZWNpZnkgYSBub24gZGVmYXVsdCBldmVudCB0ZW1wbGF0ZS4gIFRoaXMgcGFyYW1ldGVyIHdpbGwgaGF2ZSBubyBlZmZlY3QgaWYgcHJldHR5IHVybHMgYXJlIGVuYWJsZWQuPC90ZD4KICA8L3RyPgoKICA8dHI+CiAgICAgPHRkPmxpc3R0ZW1wbGF0ZTwvdGQ+CiAgICAgPHRkPlVzZWQgd2l0aCBkaXNwbGF5PWxpc3QsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyB5b3UgdG8gc3BlY2lmeSBhIG5vbiBkZWZhdWx0IGxpc3QgdGVtcGxhdGUuPC90ZD4KICA8L3RyPgoKICA8dHI+CiAgICAgPHRkPnVwY29taW5nbGlzdHRlbXBsYXRlPC90ZD4KICAgICA8dGQ+VXNlZCB3aXRoIGRpc3BsYXk9dXBjb21pbmdsaXN0LCB0aGlzIHBhcmFtZXRlciBhbGxvd3MgeW91IHRvIHNwZWNpZnkgYSBub24gZGVmYXVsdCB1cGNvbWluZ2xpc3QgdGVtcGxhdGUuPC90ZD4KICA8L3RyPgoKICA8dHI+CiAgICAgPHRkPnVuaXF1ZV9vbmx5PC90ZD4KICAgICA8dGQ+VXNlZCB3aXRoIGRpc3BsYXk9dXBjb21pbmdsaXN0LCBhbmQgd2l0aCBhY3Rpb249c2VhcmNoLCB0aGlzIHBhcmFtZXRlciBhbGxvd3MgeW91IHRvIHNwZWNpZnkgdGhhdCBvbmx5IG9uZSBldmVudCB3aXRoIGEgY2VydGFpbiBuYW1lIHNob3VsZCBiZSByZXR1cm5lZC4gIERlZmF1bHQgdmFsdWUgaXMgMCc7CiAgPC90cj4KCiAgPHRyPgogICAgIDx0ZD5kaXNwbGF5Zm9yZGF5PC90ZD4KICAgICA8dGQ+VXNlZCB3aXRoIGRpc3BsYXk9dXBjb21pbmdsaXN0LCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhhdCAwMDowMSBvZiB0aGUgY3VycmVudCBkYXkgc2hvdWxkIGJlIHVzZWQgZm9yIGNhbGN1bGF0aW5nIHdldGhlciBhbiBldmVudCBzaG91bGQgYmUgZGlzcGxheWVkLCByYXRoZXIgdGhhbiB0aGUgY3VycmVudCBzZXJ2ZXIgdGltZS48L3RkPgogIDwvdHI+Cgo8L3RhYmxlPgoKPGgzPkN1c3RvbSBGaWVsZHM8L2gzPgo8cD5JdCBpcyBwb3NzaWJsZSB0byBkZWZpbmUgYSBudW1iZXIgb2YgY3VzdG9tIGZpZWxkcyB0byBhc3NvY2lhdGUgd2l0aCBlYWNoIGV2ZW50IHVzaW5nIHRoZSBGaWVsZHMgdGFiIGluIHRoZSBhZG1pbi4gT25jZSBvbmUgb3IgbW9yZSBmaWVsZHMgaGFzIGJlZW4gZGVmaW5lZCB0aGUgdmFsdWVzIG9mIHRoYXQgZmllbGQgZm9yIGVhY2ggZXZlbnQgY2FuIGJlIHNldCB1c2luZyB0aGUgZXZlbnRzIHRhYiBpbiB0aGUgYWRtaW4uIFRoZXNlIGZpZWxkIHZhbHVlcyBjYW4gYmUgcmVuZGVyZWQgdXNpbmcgYSB0ZW1wbGF0ZSB1c2luZyB0aGUgc3ludGF4IGV2ZW50LmZpZWxkcy5maWVsZG5hbWUuIEhpbnQgLSBpbnNlcnQge2RlYnVnfSBpbnRvIHlvdXIgdGVtcGxhdGUgc2VlIGFsbCB0aGUgZGF0YSBwYXNzZWQgdG8gdGhlIHRlbXBsYXRlLjwvcD4KCjxoMz5FeGFtcGxlczwvaDM+CjxoND5FeGFtcGxlIG9mIGFsbG93aW5nIENvbW1lbnRzIG9uIENhbGVuZGFyIGV2ZW50czwvaDQ+CjxwPkluc3RhbGwgdGhlIENHRmVlZGJhY2sgbW9kdWxlIGFuZCBwdXQgdGhpcyBpbiB5b3VyIENhbGVuZGFyICJFdmVudCBUZW1wbGF0ZSI6PC9wPgo8cHJlPntDR0ZlZWRCYWNrJ2tleTE9J0NHQ2FsZW5kYXInIGtleTI9JGV2ZW50LmV2ZW50X2lkfTwvcHJlPgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+RGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPgo8bGk+VGhlIGF1dGhvciwgY2FsZ3V5MTAwMCwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LjwvbGk+CjwvdWw+CjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgtMjAxMywgUm9iZXJ0IENhbXBiZWxsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj4mbHQ7Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPgo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQpPciByZWFkIGl0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+b25saW5lPC9hPjwvcD4KPGgzPkhpc3Rvcnk8L2gzPgo8cD5UaGlzIG1vZHVsZSBvcmlnaW5hdGVkIGFzIHRoZSBDYWxlbmRhciBtb2R1bGUgZm9yIENNU01TIGJ5IFJvYiBBbGxlbiA8ZW0+KGFrcmFiYXQpPC9lbT4uICBJdCB3YXMgZm9ya2VkIHRvIENHQ2FsZW5kYXIgYnkgUm9iZXJ0IENhbXBiZWxsIDxlbT4oY2FsZ3V5MTAwMCk8L2VtPiBpbiAyMDA4LCBhbmQgc2luY2UgdGhlbiBoYXMgaGFkIG51bWVyb3VzIGNvbnRyaWJ1dGlvbnMgYnkgTW9ydGVuIFBvdWxzZW4gPGVtPihtb3J0ZW5AcG91bHNlbi5vcmcpPC9lbT4uPC9wPg==]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/false.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAUANUAAP/U1P7S0v7MzP7Ly/7Dw/7CwvzBwf+9vf68vP25uf63t/23t/y1tfu0tPyzs/+ysvyysvutrf+srP2pqf+oqP+np/2mpv2jo/Sfn/+bm/SdnfyZmfScnPSamvSbm/Obm/Kbm/OZmfaZmfKamvOamvGZmfCZmfKZmeyZmeuZmeqZmeWZmeaZmeGZmeCZmeKZmd+Zmd2ZmdyZmduZmdmZmdiZmdeZmdqZmdaZmdWZmdSZmdOZmc+Zmc2ZmdGZmf///yH5BAEHAD8ALAAAAAAUABQAAAaXwJ9wSCwaj8jkDdlKyg4qIwuAOroei8SM6Ao4KqyiTAIBgRY04UyAAUUoTWJrVCqNFrAVu85xHVt1dgwDGnwxSS+BJR98aUk/MSeKJX6PPzIGig07ljcIHpMTOEk2BB11JCeqJxY8VgUhsSE5NKsnFzJFOgqys0IyqxsZo0SJda5DNSYiKT1HMiY+RjoqzkjSR9iW29xHQQA7]]></data>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhQAAvAPcAAHIcFnshHm8oJXAxLn4wL24zMHg1Mk1PT1ZTU19QUV1eWWtFRGFOTXpIR3dOTGlXVmBZV2dUUntaWV5gXmZlZG5ua2tmZH1sam9wa3FybXR1cXd4cnh5dJwZD4QbFIoYEJwbE5UeGLQOAK8VB6QWDKsXC64bD7MUB7wUBLQWCb0XCbMZDKIdE6gcEoUiHZkgF5YhGZwoH6ogFqYiGasoH7coHIktK4kpJJonIZwqI5YuKZYqJYcwLJoyL4szMI07N544M5k7N6EoILktI6oyLKU0Lqk6NMMUA8wVBMUYB88YBsoXCMUaCs0dDdQWBNoXBN0YBNUaCeQXA+MZBesaBOUbB/EcBMciFeQjDu0iCuwiBPMiBPMjCfQsDuUrGPMtE/MxFvI0G8YrIcs5Lt0+MOo/LeI8LPQ+JfI6JYRBPpZBP55AO6NDP9lFOPRELPZILe9JNulMPvBGMPRKNPROOfdRN/RTPYpKRpVKRZ5IRJZTUphVU5pcXJFcWKpFQatTT6VaWIhhXqFjX4djYIZrZpVsbIJ8eId4dpd6eKx+e+hURvNUQvVZRPVdSvZhTeZnWvVlU/ZsW/RnWfdxXu51aepyZvZ0Y/h5Zfd8a/h+bvh1Ye98cvd/cHmAeIOEf+uCefiEdPiHePiLfPSFeIaFg4mKho2OipiIiI+QjJKTjpSUkpeYk5qblpubm6KKiJ+gm6GinaSko6eoo6mqpqysq6+wq7Gyrq+vsLS0s7e4s7q6try8u+mPh/WNgvmOgPmSg/aUifmWifeZjfmajeyel/abk/idkfmilPejnPmlmfmpnvmsovauqfmxp/Syrfq0qui1s/O2tPq+tvO7uL/Au8HCvvXCvvvAuMTEw8bIw8nKxszNys/Qy9LTzs7R0tTV0tfY09rb1t3e2trX2erEwuzOzfvLxPfKxfrSzOjb2vrb2fjX0t/g2+Lj3vzh3eXm4efo4urr5e3u6eri4fzl4vrp5/vu6+/w6/Lz7fzx7fX28f318vf48/r69v3++gAAACH5BAEAAP8ALAAAAABAAC8AAAj+AP/9MySwgsAJnQQqXMiwocOHECOSM8IHEBE8ifw0cPVvwaF/DwgiIPXvQMSTKCUO8ZFDRIwgI0DokQFijxEYfPzcKPTHAKI7DlwtuIAowSkEFv4hSMlUYbkxPFwcgSHgyIoBI1QQKKHCx4oTP0yYyFMiRx4SeYDkEHRjDx4ehQoQWiDhAQMLEAxRINlUYLo2Y2o8EaMDSRMbKJQESIEEQIolAE6oCHCkhdQdLE7YOKFjxoogJYLIKAJkBp4ce3b08REozaA7hAZd+PgwnSIquKtgKVPGjBcqUaRISfJEigolTko8WaK8xOMPRzqUOOJBhYsRLDqsCLFiR4odK3r+mAAiIwiNPEUA1X6khcuWLW/QIRMlqUsXK1a45MfP3wqVLLhRUUUVwmFxBRRJIMEEE06cgEQJSJCQhIQgqBBCCiCYAMND41SixXvwuQOKG2BM4ksXjDQyByeRfDFHI464IUcydHxxxhdccAFJL5ygkYUVi0jin3BSQDEFGVU4AYUTTjCowkPdfAJiiMqE8oYd6NgxjCPSIGNOJJmYs4wyjaADSTHDzMHFGc7M8cUboUQSSSh1WHKGI46EYYcwctzooxZUTPGQN7xM+YY7k9jXRTPXBBPfL5PMAcoykDxDhzRnYNIMJGs+E8YWdCSzjCa+IPPMJcskE4ooxjhyzCX+ony6hRaDErOFFe+d8cwxvmjChSPmMLLFJcXQeUkwjihzRjNyLgNKF18EA0ojvjyzDCeiABNKI9KKMswxvzwT5xY5boGFQ9hAE8cccrwhBx102DFHGGjIEQYYYLgxbxhn5GvjGWfUmGMYjDASMB1unEHwGXO84UYjjMzhSB1uvGeFFlk4hMs89dRjDz0g06POyOiUfM7J50wzTTTROOMMM8yMiQwyxRQDDDC99PLJJ5tsQgklllQSiSSQONLI0RAvYociDtESjz9QRy311FRXbTXV/fQDtdb79LNPPmDb41As70wtTjXvsAOP1PHswk07a0ftjTjz6BP1PNqIMw7+P1DHs808fPuDzzhx+yOPOIWPLY7WcpOiSiq2MO5PO6WUkgotkm8TCyrdRD0OKa208o7W8NACyzdQy5MLNoy3A0sudvsztjeS+6OPPPLcg48/WfOODz66S94P8IFrrc/vjPejz/K889571vjo83xDrXhjd+1SZ63981rX3j30vUONz+iM47O49vG0sz3120iv/dbdO7/9+/O/f48s98QvTyy78y3PK/Ho3TZqkTXpNUQV1cDH/JpXvwY6cHjUCKD28KGN3fWDH/wQh/uGd4/lKe+AuMjf9uSXNX6U8IElxKDyGkjCCyqwgLhbnj4OeAt51G9rKuSH9ExYP33AI3/+MuxHOL7BQwxSYxva40cuWAGOrN3DFrWQhwwZgopYzON7F4QHNmyIQRVWoxYbLOEsqqG85fFjFp4IYj90QcAL9oMasmji8rqxDSkujyGqINsCwZEBbVwQg9KrxQbg4UYeVgMeOpRhO7hhRh0ir4s8lN7yfnc8fOCxFXtLYj/kcYu94YMf0dPHPdjRyAImcpJmlCEG8SGPd3ySH/foRjYC6ENasEIev7OkQlSBSQUWUR+Q/GQQVSlDeMQjHLnERzuqMYt2yFAcqyBFOzB4v1nAY3n3yEUt4JHLhfDSG/KAJCjj8Q5kClMf4fhiNU6pD1vIYgOk/CQ7VvGKdS5PddT+eMcq4TbJZALvHgtphSq28Y5G8uMbqshGKRBJyW6YYhaskOHytmGLQ+ZylD8MpQz9CY92RA8f8NCFLnB5D3koRKDY2FsiM1gKXKTClbmMBzfC4Ux/9jOX8ohHRqPXDl3YIh6/gwcsPNGNoMKCFeL450lbsYtxfBSY+IgH7vx5Tn/eAxzgQOY9dNcNWMACHLlsRypW8Y1/6oIaHt3qO4yJO5MKJHS48IbuNHq83AHvd/eoRi5eUVS83s8Uq4jHVkfJCllwQ3f3iAc42AHUwQ62rSXNaTzi8dZWxFWKydTFLkyBP8dSIwMVkMU/t0qNXOjih1uVB2odq1rG4g4euZj+RThyKtnJTrayuNAGN+eKD1pUrhSOvQc3qFGNcLAWl8CTKu7aAY5DtnUcpthANbYaj1qsohq0NSY8trvdf8SiFbfAhkeRi49wZIOmiG2rXxMrWHhkQxe5sK1iPZEBW7AXHrKABTck2w64cfe/222Hd1tBC2ywg5XqTWZbc1oNZoJDvkLFAAUebEx2yEIX3ZisduWrU+6+Y60d7W9/BzzGbyxYtdXQRi1mq1x51MITnuCGbY3Jxl2o7b8aBnCHPdwOdoSDjtroBjgU8t1WVKOOUpUqPFahAQXAgrZS1YUs0LbjD68Vbu14B5YBvN13iGOI28DGLnJxC1rcAhe72Mb+OE6qCgRmw5g61SkrYFGLbNS2w1W2spZFzGd26O0b3MjGLnBxi1nIghZmxoWid7GLbDBEoKjYRTX8C+DX7rjL8Pgwn73c4x9zoxqlpUUsRj0LRN/CtIzexUlU8Y/w6oLSXI51n4cY6F1A0dCwkIUsZnHmRTO6LwoJb1PjMQ89g5i7Iv5xmAct6lE7+8yaTTWwH5Lbangjy5reszi+IUtq6AIXtJhFqW9BbkWLVKSqnnZKtpGNa+vNG8smc6FlUYtalJvRDRazutXtDW9oQ9CDJnS5cWFaXVQDGw3et8IV4o1xhBkbEEc4oyO+8IozRBzv7vc2tmHxjj+Esh4POUMCAgIAOw==]]></data>
	</file>
	<file>
	  <filename>/images/true.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFgASAOYAAPb68vT58fD56PD17+L5y935wdz5wdz5wNz4wNjn09nn09Phz7HOpofTR4bSR4bSRoTRRoXRRnnFP3jEPnjFPnfDPXfDPo+0hnS8Q3K6QIaufYaufHC6Pm+5Pm+5PHW2TnC5PnC5P3S1S3W1TXO1THO1S3S1TXS1TGy4OWy3OnO0THS0TW23On+pdXGuUX2ocnCuT3GtUHCtT2+tTm2sSnajam2oUmSsOW2nUnOhZ3ShaGaoQmqiVm+eY2agUWmdWWqeWWqbXmmbXWSXV1ucPWOWVleOSU+MPFCJQiqVKiaTJiWTJRaLFheLFxOKExKJEg+IDwuFCwqFCgiECAKBAgCAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAFYALAAAAAAWABIAAAfDgFaCg4SFggpVAYaLhQpRO1QAjIwJUTQlGVUCk4UJTDQiGBINVZyDnjOhFKQFgwsDi6gnHBQOVa2CC1JPsISeMicgtVUGgwNSLRpNvVYJTTMjIBO2xYIDVT0XGzVOC81LMCYhEw/EhFVG2i85Q1AMSjAfHeRVB4ZTRS86QkA+STEkPFgoZ29RFSRBfvCwEUMFCgsR6nGqcoQHDhcqUkCsgsCUlSpEXKxIUSFiR48fb7CoAIEjykFVWLp8CXMmzUEEUAYCADs=]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBTaW1wbGUgTGFuZ3VhZ2UgZmlsZSBmb3IgdGhlIENhbGVuZGFyIG1vZHVsZS4KIyBDb3B5cmlnaHQgKGMpIDIwMDQgYnkgUm9iIEFsbGVuIDxyb2JAYWtyYWJhdC5jb20+CiRsYW5nWydkYXl2aWV3J10gPSAnRGF5IFZpZXcnOwokbGFuZ1snZWRpdCddID0gJ0VkaXQnOwokbGFuZ1snZXJyb3JfZmV0Y2hpbmdfZXZlbnRzJ10gPSAnT29wcy4uLiBzb21ldGhpbmcgaGFwcGVuZWQgd2hlbiB3ZSB3ZXJlIHRhbGtpbmcgdG8gdGhlIHNlcnZlciwgcGxlYXNlIHRyeSBhZ2Fpbic7CiRsYW5nWydub3Jlc3VsdHMnXSA9ICdTb3JyeSwgbm8gZXZlbnRzIG1hdGNoaW5nIHlvdXIgY3JpdGVyaWEgd2VyZSBmb3VuZCc7CiRsYW5nWydoZWxwX2ZpbmRfd2hlbiddID0gJ1Bhc3QgYW5kIGZ1dHVyZSBldmVudHMgYXJlIGFsd2F5cyByZWxhdGl2ZSB0byB0aGUgYWN0dWFsIGRhdGUnOwokbGFuZ1sncmVvcmRlciddID0gJ1Jlb3JkZXInOwokbGFuZ1snZGZsdF9jb2xvcnMnXSA9ICdEZWZhdWx0IENvbG9ycyc7CiRsYW5nWydlZGl0X2NhdGVnb3J5J10gPSAnRWRpdCBjYXRlZ29yeSc7CiRsYW5nWydmZ2NvbG9yJ10gPSAnRm9yZWdyb3VuZCBDb2xvcic7CiRsYW5nWydiZ2NvbG9yJ10gPSAnQmFja2dyb3VuZCBDb2xvcic7CiRsYW5nWydoZWxwX2ZpbmRfc2hvd2NoaWxkcmVuJ10gPSAnSW5kaWNhdGVzIGlmIGNoaWxkIGV2ZW50cyBzaG91bGQgYmUgaW5jbHVkZWQgaW4gc2VhcmNoIHJlc3VsdHM/JzsKJGxhbmdbJ2hlbHBfZmluZF9ldmVudF9rZXl3b3JkJ10gPSAnRW50ZXIgb25lIG9yIG1vcmUga2V5d29yZHMgdG8gc2VhcmNoIGJ5LiAgVGhlIGV2ZW50IHRpdGxlLCBzdW1tYXJ5LCBhbmQgZGV0YWlsIGZpZWxkcyB3aWxsIGJlIHNlYXJjaGVkIGZvciB0aGUgbWF0Y2hpbmcgd29yZHMuJzsKJGxhbmdbJ2luZm9fZmluZF9yZXN1bHRzJ10gPSAnVGhlIGZpcnN0IDEwIG1hdGNoZXMgb2YgeW91ciBxdWVyeSBhcmUgZGlzcGxheWVkIGJlbG93Ljxici8+Q2xpY2tpbmcgb24gdGhlIGV2ZW50IHRpdGxlIHdpbGwgYWxsb3cgeW91IHRvIGVkaXQgdGhlIGV2ZW50Ljxici8+Q2xpY2sgb24gdGhlIHZpZXcgaWNvbiB0byBuYXZpZ2F0ZSB0aGUgY2FsZW5kYXIgdG8gdGhlIGFwcHJveGltYXRlIGRhdGUgb2YgdGhlIGV2ZW50IDxlbT4oZGVwZW5kaW5nIG9uIHRoZSB2aWV3KTwvZW0+JzsKJGxhbmdbJ2dvdG9fZGF0ZSddID0gJ0dvIHRvIHRoaXMgZGF0ZSc7CiRsYW5nWydpbmZvX2ZpbmRfZXZlbnRzJ10gPSAnU2VhcmNoIGZvciBtYXRjaGluZyBldmVudHMuICBVcCB0byAxMCBtYXRjaGluZyBldmVudHMgd2lsbCBiZSByZXR1cm5lZC4nOwokbGFuZ1sncmVzdWx0cyddID0gJ1Jlc3VsdHMnOwokbGFuZ1sna2V5d29yZHMnXSA9ICdLZXl3b3Jkcyc7CiRsYW5nWydmaW5kX3Nob3djaGlsZHJlbiddID0gJ1Nob3cgQ2hpbGRyZW4nOwokbGFuZ1snYW55J10gPSAnQW55JzsKJGxhbmdbJ3Bhc3QnXSA9ICdQYXN0JzsKJGxhbmdbJ2Z1dHVyZSddID0gJ0Z1dHVyZSc7CiRsYW5nWydmaW5kX3doZW4nXSA9ICdXaGVuJzsKJGxhbmdbJ2ZpbmRfcGFyZW50c29ubHknXSA9ICdQYXJlbnRzIE9ubHknOwokbGFuZ1snZmluZCddID0gJ0ZpbmQuLi4nOwokbGFuZ1snZWRpdHBhcmVudCddID0gJ0VkaXQgcGFyZW50JzsKJGxhbmdbJ2hlbHBfZXZlbnRzdGFiJ10gPSAnPHA+VGhlIGV2ZW50cyB0YWIgcHJvdmlkZXMgYSBzaW1wbGUgd2F5IHRvIGJyb3dzZSBldmVudHMgYnkgZGF0ZS4gIFRoZSBzZWxlY3RlZCBkYXRlIGlzIHNhdmVkIDxlbT4oaW4gYSBjb29raWUpPC9lbT4gZm9yIHR3byBkYXlzLiAgVGhpcyB2aWV3IGFsc28gcHJvdmlkZXMgc2ltcGxlIGVkaXRpbmcgYW5kIGRlbGV0aW9uIGZ1bmN0aW9uYWxpdHkuPC9wPjxici8+PHA+SW4gdGhlIG1vbnRoIHZpZXcgZHJhZ2dpbmcgYW4gZXZlbnQgd2lsbCBjaGFuZ2UgdGhlIHN0YXJ0IGRheSA8ZW0+KGJ1dCBub3QgdGhlIHRpbWUpLjwvZW0+LiAgUmVzaXppbmcgdGhlIGV2ZW50IHdpbGwgY2hhbmdlIHRoZSBldmVudHMgZW5kIGRhdGUuPC9wPjxici8+PHA+SW4gdGhlIHdlZWssIGFuZCBkYXkgdmlld3MgdGhlIHN0YXJ0IGRhdGUvdGltZSBvZiB0aGUgZXZlbnQgY2FuIGJlIGNoYW5nZWQgYnkgZHJhZ2dpbmcgdGhlIGV2ZW50LiAgVGhlIGVuZCBkYXRlL3RpbWUgb2YgdGhlIGV2ZW50IGNhbiBiZSBjaGFuZ2VkIGJ5IHJlc2l6aW5nIGl0LiAgQWRkaXRpb25hbGx5LCB0aGVzZSB2aWV3cyBzdXBwb3J0IHRoZSBhYmlsaXR5IHRvIHF1aWNrbHkgY2hhbmdlIGFuIGV2ZW50IHRvIGFuIGFsbCBkYXkgZXZlbnQgYnkgZHJhZ2dpbmcgaXQgaW50byB0aGUgJnF1b3Q7QWxsIERheSZxdW90OyBhcmVhIGF0IHRoZSB0b3AuPC9wPjxici8+PHA+Tm8gY2hlY2tzIGZvciBjb25mbGljdHMgYXJlIHBlcmZvcm1lZCB3aGVuIGRyYWdnaW5nIGV2ZW50cy48L3A+JzsKJGxhbmdbJ3Byb21wdF9yZW1vdmVmcm9tcGFyZW50J10gPSAnUmVtb3ZlIHRoaXMgZXZlbnQgZnJvbSB0aGUgcGFyZW50IGV2ZW50JzsKJGxhbmdbJ2luZm9fcmVtb3ZlZnJvbXBhcmVudCddID0gJ0lmIHNlbGVjdGVkLCB0aGlzIHBhcnRpY3VsYXIgZXZlbnQgd2lsbCBub3QgYmUgZWZmZWN0ZWQgYnkgYW55IGNoYW5nZXMgaW4gdGhlIHBhcmVudCBldmVudC4nOwokbGFuZ1snaW5mb19lZGl0X3BhcmVudGV2ZW50J10gPSAnPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIGV2ZW50IHJlY3VycyBvbiBvbmUgb3IgbW9yZSBkaWZmZXJlbnQgZGF0ZXMuICBDbGljayB0aGUgb3B0aW9uIGJlbG93IHVwZGF0ZSBjaGlsZCBldmVudHMgd2l0aCB0aGUgZGV0YWlscyBvZiB0aGlzIGV2ZW50Lic7CiRsYW5nWydpbmZvX2VkaXRfY2hpbGRldmVudCddID0gJzxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyBldmVudCBpcyB0aGUgY2hpbGQgb2YgYW5vdGhlciBldmVudC4gIENoYW5nZXMgbWFkZSBoZXJlIHdpbGwgZWZmZWN0IG9ubHkgdGhpcyBwYXJ0aWN1bGFyIGNoaWxkLiAgVG8gZWZmZWN0IGFsbCByZWN1cnJhbmNlcyB5b3Ugc2hvdWxkIGFkanVzdCB0aGUgcGFyZW50IGV2ZW50Lic7CiRsYW5nWydhbGxkYXlfZXZlbnQnXSA9ICdUaGlzIGlzIGFuIGFsbGRheSBldmVudCc7CiRsYW5nWydub3RlJ10gPSAnTm90ZSc7CiRsYW5nWyd0aXRsZV9wYXJlbnRfZXZlbnQnXSA9ICdUaGlzIGV2ZW50IHJlY3VycywgYW5kIGNvbnRhaW5zIGNoaWxkIGV2ZW50cyc7CiRsYW5nWydzdGFydCddID0gJ1N0YXJ0JzsKJGxhbmdbJ2VuZCddID0gJ0VuZCc7CiRsYW5nWydldmVudF9hY3Rpb24nXSA9ICdFdmVudCBBY3Rpb24nOwokbGFuZ1snaW5mb19ldmVudF9hY3Rpb24nXSA9ICdTZWxlY3QgdGhlIGFjdGlvbiB0byBwZXJmb3JtIG9uIHRoaXMgZXZlbnQuPGJyLz5FZGl0aW5nIHRoZSBldmVudCB3aWxsIHJlZGlyZWN0IHRvIGEgbmV3IHBhZ2UuJzsKJGxhbmdbJ2Vycm9yX2RlbGV0ZXBhcmVudGV2ZW50J10gPSAnU29ycnksIGJ1dCB5b3UgY2Fubm90IGRlbGV0ZSBhIHBhcmVudCBldmVudCc7CiRsYW5nWydjaGlsZCddID0gJ0NoaWxkJzsKJGxhbmdbJ3JlcGVhdHMnXSA9ICdyZXBlYXRzJzsKJGxhbmdbJ2Vycm9yX2V2ZW50bm90Zm91bmQnXSA9ICdFdmVudCBub3QgZm91bmQnOwokbGFuZ1snZXJyb3JfdW5rbm93biddID0gJ1Vua25vd24gZXJyb3InOwokbGFuZ1snaW5mb19jYWxfZmlsdGVyX2J5J10gPSAnV2hlbiBzZWFyY2hpbmcgPGVtPihmaWx0ZXJpbmcpPC9lbT4gYnkgd29yZHMgaW4gdGhlIHRpdGxlLCBkYXRlIHNjcm9sbGluZyBpcyBub3QgYXZhaWxhYmxlJzsKJGxhbmdbJ21zZ19ub2RhdGVzJ10gPSAnVGl0bGUgc2VhcmNoIGFwcGxpZWQnOwokbGFuZ1sndGl0bGVfcmVjdXJyaW5nX2V2ZW50J10gPSAnVGhpcyBpcyBhIHJlY3VycmluZyBldmVudCB3aXRoIGNoaWxkcmVuJzsKJGxhbmdbJ3RpdGxlX2NoaWxkX2V2ZW50J10gPSAnVGhpcyBpcyBhIHJlY3VycmFuY2Ugb2YgYSBwYXJlbnQgZXZlbnQnOwokbGFuZ1snZXJyb3Jfc29tZWRlbGV0ZWQnXSA9ICdTb21lIG9mIHRoZSBldmVudHMgd2VyZSBkZWxldGVkLiAgSG93ZXZlciwgZHVlIHRvIHBlcm1pc3Npb25zIHNvbWUgd2VyZSBub3QnOwokbGFuZ1snZXJyb3Jfbm9uZWRlbGV0ZWQnXSA9ICdEdWUgdG8gcGVybWlzc2lvbnMgb3Igb3RoZXIgZXJyb3JzLCBub25lIG9mIHRoZSBzZWxlY3RlZCBldmVudHMgd2VyZSBkZWxldGVkJzsKJGxhbmdbJ2Vycm9yX2RlbGV0ZWZhaWxlZCddID0gJ0V2ZW50IGRlbGV0aW9uIGZhaWxlZCc7CiRsYW5nWydmaWxlYXR0YWNobWVudCddID0gJ0ZpbGUgQXR0YWNobWVudCc7CiRsYW5nWydwcm9tcHRfZ2VuZXJhbF9zZXR0aW5ncyddID0gJ0dlbmVyYWwgU2V0dGluZ3MnOwokbGFuZ1sncHJvbXB0X2VkaXRpbmdfc2V0dGluZ3MnXSA9ICdFdmVudCBFZGl0aW5nIFNldHRpbmdzJzsKJGxhbmdbJ3Byb21wdF9mZWVkaXRfc2V0dGluZ3MnXSA9ICdGcm9udGVuZCBFZGl0aW5nIFNldHRpbmdzJzsKJGxhbmdbJ3ByZXZfbW9udGgnXSA9ICdHbyB0byB0aGUgcHJldmlvdXMgbW9udGgnOwokbGFuZ1snbmV4dF9tb250aCddID0gJ0dvIHRvIHRoZSBuZXh0IG1vbnRoJzsKJGxhbmdbJ2luZm9fY3VzdG9tZmllbGRzX3RhYiddID0gJ0N1c3RvbSBmaWVsZHMgY2FuIGJlIHJlb3JkZXJlZCBieSBkcmFnZ2luZyBhbmQgZHJvcHBpbmcgcm93cy4gIE9ubHkgdGV4dCBmaWVsZHMgYXJlIHNlYXJjaGFibGUsIGFuZCBvbmx5IHRleHQgYXJlYXMgY2FuIGhhdmUgV1lTSVdZRyBmaWVsZHMgYXR0YWNoZWQuIDxzdHJvbmcgc3R5bGU9ImNvbG9yOiByZWQ7Ij5Ob3RlOjwvc3Ryb25nPiBXWVNJV1lHIGZpZWxkcyB3aWxsIG5vdCBiZSBzaG93biBmb3IgdGV4dGFyZWEgZmllbGRzIG9uIHRoZSBmcm9udGVuZC4nOwokbGFuZ1snbXNnX2NhdGVnb3JpZXNfdXBkYXRlZCddID0gJ0NhdGVnb3JpZXMgdXBkYXRlZCc7CiRsYW5nWydtc2dfZmllbGRzdXBkYXRlZCddID0gJ0ZpZWxkIGRlZmluaXRpb25zIHVwZGF0ZWQnOwokbGFuZ1snd3lzaXd5ZyddID0gJ1dZU0lXWUcnOwokbGFuZ1snaW5mb19yZW9yZGVyX2NhdGVnb3JpZXMnXSA9ICdDYXRlZ29yeSBvcmRlciBjYW4gYmUgZGVmaW5lZCBieSBkcmFnZ2luZyBhbmQgZHJvcHBpbmcgcm93cyc7CiRsYW5nWydlcnJvcl9jYXRlZ29yeW5hbWVyb3cnXSA9ICdUaGUgbmFtZSBoYXMgYmVlbiBlcmFzZWQgZm9yIGEgdmFsaWQgY2F0ZWdvcnkgYXQgcm93Oic7CiRsYW5nWydjb25maXJtX25vY2F0ZWdvcmllcyddID0gJ1dlIGRldGVjdGVkIG5vIHZhbGlkIGNhdGVnb3JpZXMuICBBcmUgeW91IHN1cmUgdGhhdCB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8/JzsKJGxhbmdbJ2FkZF9maWVsZCddID0gJ0FkZCBmaWVsZCc7CiRsYW5nWydhZGRfY2F0ZWdvcnknXSA9ICdBZGQgY2F0ZWdvcnknOwokbGFuZ1sncHJvbXB0X2ZpcnN0ZGF5b2Z3ZWVrJ10gPSAnRmlyc3QgZGF5IG9mIHRoZSB3ZWVrJzsKJGxhbmdbJ2VkaXRfZXZlbnQnXSA9ICdFZGl0IHRoaXMgZXZlbnQnOwokbGFuZ1snZWRpdF9wYXJlbnRfZXZlbnQnXSA9ICdFZGl0IHRoZSBwYXJlbnQgZXZlbnQnOwokbGFuZ1sndGl0bGVfY2hpbGRfZXZlbnQnXSA9ICdUaGlzIGlzIGEgY2hpbGQgb2YgYSBwYXJlbnQgcmVjdXJyaW5nIGV2ZW50JzsKJGxhbmdbJ3NlbGVjdF9wZXJpb2QnXSA9ICdQZXJpb2QnOwokbGFuZ1snc2hvd19maWx0ZXInXSA9ICdTaG93IGZpbHRlcic7CiRsYW5nWydzaG93X2ZpbHRlcl9hcHBsaWVkJ10gPSAnU2hvdyBmaWx0ZXIgPGVtPihhcHBsaWVkKTwvZW0+JzsKJGxhbmdbJ3Jlc2V0J10gPSAnUmVzZXQnOwokbGFuZ1snY2FsX2N1cnJlbnQnXSA9ICdUaGlzIHBlcmlvZCc7CiRsYW5nWydjYWxfZnJvbSddID0gJ0Zyb20nOwokbGFuZ1snZXJyb3JfZmV1X2xvZ2dlZGluJ10gPSAnVGhlIHVzZXIgaXMgbm90IGxvZ2dlZCBpbiB0byBGRVUuICBBZGRpbmcgb3IgZWRpdGluZyBldmVudHMgaXMgbm90IHBlcm1pdHRlZCc7CiRsYW5nWydwcm9tcHRfZnJpZW5kbHluYW1lJ10gPSAnRnJpZW5kbHkgTmFtZSBmb3IgdGhpcyBNb2R1bGUgaW4gQWRtaW4gTmF2aWdhdGlvbic7CiRsYW5nWydpbmZvX2ZyaWVuZGx5bmFtZSddID0gJ05vdGU6IFlvdSBtYXkgbmVlZCB0byBjbGVhciB0aGUgc2l0ZSBjYWNoZSBmb3IgdGhpcyBwcmVmZXJlbmNlIHRvIGhhdmUgZWZmZWN0LiAgSWYgbm8gdmFsdWUgaXMgc3VwcGxpZWQgYSBkZWZhdWx0IHdpbGwgYmUgdXNlZC4nOwokbGFuZ1sndXNlX3d5c2l3eWcnXSA9ICdVc2UgV3lzaXd5Zyc7CiRsYW5nWydlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnXSA9ICdJbnN1ZmZpY2llbnQgb3IgaW52YWxpZCBwYXJhbWV0ZXJzJzsKJGxhbmdbJ2NvbHVtbl9kZWxpbWl0ZXInXSA9ICdJbXBvcnQgZmlsZSBjb2x1bW4gZGVsaW1pdGVyJzsKJGxhbmdbJ2ltcG9ydF9jb21wbGV0ZWQnXSA9ICdJbXBvcnQgQ29tcGxldGUnOwokbGFuZ1snbnVtX2ltcG9ydGVkJ10gPSAnTnVtYmVyIG9mIGV2ZW50cyBjcmVhdGVkOiAlZCc7CiRsYW5nWydpbXBvcnRfbGluZXMnXSA9ICdOdW1iZXIgb2YgbGluZXMgcHJvY2Vzc2VkIGZyb20gZmlsZTogJWQnOwokbGFuZ1snZXJyb3JzJ10gPSAnRXJyb3JzJzsKJGxhbmdbJ2Vycm9yX2NzdmZpcnN0bGluZWludmFsaWRmaWVsZCddID0gJ0ZpZWxkOiAlcyBpcyBub3QgcmVjb2duaXplZCwgYW5kIGlzIG5vdCBhIGN1c3RvbSBmaWVsZCc7CiRsYW5nWydpbmZvX2Nzdl9mb3JtYXQnXSA9IDw8PEVPVAo8aDQ+Q1NWIEZpbGUgRm9ybWF0IEluZm9ybWF0aW9uLjwvaDQ+Cjx1bD4KICA8bGk+R2VuZXJhbCBJbmZvcm1hdGlvbjoKICAgPHVsPgogICAgIDxsaT5UaGUgZmlsZSBtdXN0IGJlIGFuIEFTQ0lJIGZpbGUgd2l0aCB1bml4IChwcmVmZXJyZWQpLCBkb3MsIG9yIG1hYyBsaW5lIGVuZGluZ3MuPC9saT4KICAgICA8bGk+Q29tbWVudHMgc3RhcnQgd2l0aCAvLyBhbnkgY2hhcmFjdGVycyBhZnRlciB0aGlzIG9uIGEgbGluZSB3aWxsIGJlIGlnbm9yZWQgKGluY2x1ZGluZyB3aXRoaW4gcXVvdGVzLjwvbGk+CiAgICAgPGxpPkVtcHR5IGxpbmVzIGFyZSBpZ25vcmVkPC9saT4KICAgICA8bGk+RmllbGQgZGVsaW1pdGVycyBhcmUgdXNlciBjb250cm9sbGFibGUsIGhvd2V2ZXIgYSBkZWxpbWl0ZXIgY2FuIGJlIHVzZWQgYXMgYSB2YWx1ZSB3aXRoaW4gYSBmaWVsZCBpZiB0aGUgZmllbGQgaXMgZGVsaW1pdGVkIGJ5IGRvdWJsZSBxdW90ZXMuPC9saT4KICAgICA8bGk+Um93cyBhcmUgZGVsaW1pdGVkIGJ5IG5ld2xpbmUgY2hhcnMgKGFzIGFib3ZlKS48L2xpPgogICA8L3VsPgogIDwvbGk+CiAgPGxpPlRoZSBGaWVsZCBNYXA6CiAgIDx1bD4KICAgIDxsaT5UaGUgZmlyc3QgbGluZSBkZWZpbmVzIHRoZSBvcmRlciBvZiB0aGUgZmllbGRzLCBhbmQgd2hhdCAmcXVvdDtjdXN0b20gZmllbGRzJnF1b3Q7IGFyZSBkZWZpbmVkIGluIHRoZSBmaWxlLiBEYXRhIGNhbiBzdGFydCBvbiB0aGUgc2Vjb25kIG5vbi1lbXB0eSBsaW5lLCBvciBhZnRlci48L2xpPgogICAgPGxpPlRoZXJlcyBhcmUgdGhlIHJlcXVpcmVkIGZpZWxkczogc3RhcnQgdGltZSwgZW5kIHRpbWUsIHRpdGxlLCBzdW1tYXJ5LCBhbmQgZGVzY3JpcHRpb24uICBXaXRob3V0IGRlZmluaW5nIHRoZXNlIGZpZWxkcyBpbiB0aGUgaGVhZGVyIHRoZSBpbXBvcnQgd2lsbCBub3QgcHJvY2VlZC4gIFJlcXVpcmVkIGZpZWxkIG5hbWVzIGFyZSBub3QgY2FzZSBzZW5zaXRpdmUuPC9saT4KICAgIDxsaT5UaGVyZSBpcyBvbmUgb3B0aW9uYWwgY29sdW1uOjogJnF1b3Q7Y2F0ZWdvcnkmcXVvdDsuICBJZiBzcGVjaWZpZWQgaXQgY2FuIGNvbnRhaW4gYSA7IHNlcGFyYXRlZCBsaXN0IG9mIGNhdGVnb3J5IG5hbWVzIHRoYXQgdGhlIGV2ZW50IHdpbGwgYmVsb25nIHRvLjwvbGk+CiAgIDwvdWw+CiAgPC9saT4KICA8bGk+VGhlIERhdGEgUm93czoKICAgPHVsPgogICAgPGxpPlRoZSBzdGFydCB0aW1lLCB0aXRsZSwgYW5kIGRlc2NyaXB0aW9uIGZpZWxkcyBtdXN0IG5vdCBiZSBlbXB0eS48L2xpPgo8bGk+U3RhcnQgYW5kIEVuZCBUaW1lczo8L2xpPgogIDx1bD4KICAgPGxpPlN0YXJ0IHRpbWUgcHJvY2Vzc2luZyBpcyBmbGV4aWJsZS4gIFlvdSBjYW4gc3BlY2lmeSBlaXRoZXIgIFlZWVktTU0tREQgSEg6TU0gZm9ybWF0LCBvciBtYW55IGZvcm1hdHMgYXMgZGVmaW5lZCBieSB0aGUgc3RydG90aW1lIGZ1bmN0aW9uLCBpbmNsdWRpbmcgcmVsYXRpdmUgdGltZXMuICBJZiBhIHJlbGF0aXZlIHRpbWUgaXMgc3VwcGxpZWQgaXQgaXMgYXNzdW1lZCB0byBiZSByZWxhdGl2ZSB0byB0aGUgY3VycmVudCB0aW1lLjwvbGk+CiAgIDxsaT5FbmQgdGltZSBwcm9jZXNzaW5nIGlzIGZsZXhpYmxlLCBhbmQgbWF5IGJlIGVtcHR5LiAgWW91IGNhbiBzcGVjaWZ5IGVpdGhlciBhbiBhYnNvbHV0ZSB0aW1lIChpbiB0aGUgc2FtZSBmb3JtYXQgYXMgdGhlIHN0YXJ0IHRpbWUpIG9yIGEgcmVsYXRpdmUgdGltZS4gIElmIGEgcmVsYXRpdmUgdGltZSBpcyBzcGVjaWZpZWQsIGl0IGlzIGFzc3VtZWQgdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IHRpbWUuICAgaS5lOiAmcXVvdDsrNCBob3VycyZxdW90OyB3b3VsZCBpbmRpY2F0ZSA0IGhvdXJzIGZyb20gdGhlIHN0YXJ0IHRpbWUgY29sdW1uLjwvbGk+CiAgIDxsaT5JZiB0aGUgZW5kIHRpbWUgY29sdW1lIGlzIHRoZSBzdHJpbmcgJnF1b3Q7QWxsIGRheSZxdW90OyA8ZW0+KGNhc2UgaW5zZW5zaXRpdmUpPC9lbT4gaXQgd2lsbCBhc3N1bWUgYW4gYWxsIGRheSBldmVudCBmcm9tIHRoZSBzdGFydCB0aW1lLjwvbGk+CiAgIDxsaT5JZiB0aGUgZW5kIHRpbWUgY29sdW1uIGlzIGVtcHR5LCB0aGVuIG5vIGVuZCB0aW1lIHZhbHVlIHdpbGwgYmUgY3JlYXRlZCBpbiB0aGUgZGF0YWJhc2UuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+Q2F0ZWdvcmllcwogIDx1bD4KICAgPGxpPklmIHNwZWNpZmllZCwgdGhlIGNhdGVnb3J5IGNvbHVtbiBjYW4gY29udGFpbiBhIGxpc3QgKHNlcGFyYXRlZCBieSA7KSBvZiBjYXRlZ29yeSBuYW1lcyBmb3Igd2hpY2ggdGhlIGV2ZW50IHNob3VsZCBiZWxvbmcuPC9saT4KICAgPGxpPkNhdGVnb3J5IG5hbWVzIGFyZSBjYXNlIHNlbnNpdGl2ZS48L2xpPgogICA8bGk+Q2F0ZWdvcmllcyBhcmUgbm90IGNyZWF0ZWQgaWYgdGhleSBkbyBub3QgZXhpc3QuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+Q3VzdG9tIEZpZWxkczoKICA8dWw+CiAgICA8bGk+Q3VzdG9tIGZpZWxkIG5hbWVzIChldmVuIGluIHRoZSBmaXJzdCBsaW5lIHRoYXQgZGV0ZXJtaW5lcyB0aGUgZmllbGQgbWFwcGluZykgYXJlIGNhc2Ugc2Vuc2l0aXZlLjwvbGk+CiAgICA8bGk+Q3V0b20gZmllbGRzIGFyZSBub3QgY3JlYXRlZCBpZiBzcGVjaWZpZWQgaW4gdGhlIENTViBmaWxlLiAgVW5rbm93biBjdXN0b20gZmllbGQgY29sdW1ucyB3aWxsIGJlIGlnbm9yZWQuPC9saT4KICAgIDxsaT5DdXN0b20gZmllbGRzIG9mIHR5cGUgJnF1b3Q7ZmlsZSZxdW90OyBjYW5ub3QgYmUgaW1wb3J0ZWQuICBUaGUgZW50aXJlIGltcG9ydCBvcGVyYXRpb24gd2lsbCBmYWlsLjwvbGk+CiAgPC91bD4KICA8L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5BIHNhbXBsZSBjc3YgZmlsZSBleGlzdHMgaW4gdGhlIG1vZHVsZXMgc291cmNlIGNvZGUgZGlyZWN0b3J5LjwvbGk+CjwvdWw+CkVPVDsKJGxhbmdbJ3Byb21wdF9jc3ZfZmlsZSddID0gJ1NlbGVjdCBJbXBvcnQgRmlsZSc7CiRsYW5nWydkZWxldGUnXSA9ICdEZWxldGUnOwokbGFuZ1snY2RfY29tcGFueSddID0gJ0NvbXBhbnkgRGlyZWN0b3J5IENvbXBhbnknOwokbGFuZ1snZGZsdF91cmxwcmVmaXgnXSA9ICdEZWZhdWx0IFVSTCBwcmVmaXggZm9yIFByZXR0eSBVUkxTJzsKJGxhbmdbJ2RmbHRfYWxsZGF5ZXZlbnQnXSA9ICdOZXcgZXZlbnRzIGFyZSAmcXVvdDtBbGwgRGF5JnF1b3Q7IGV2ZW50cyBieSBkZWZhdWx0JzsKJGxhbmdbJ2RmbHRfc3RhcnR0aW1lJ10gPSAnRGVmYXVsdCBzdGFydCB0aW1lIGZvciBuZXcgZXZlbnRzJzsKJGxhbmdbJ2luZm9fZGZsdF9zdGFydHRpbWUnXSA9ICc8ZW0+KGFwcGxpZXMgb25seSBpZiBuZXcgZXZlbnRzIGFyZSBub3QgJnF1b3Q7QWxsIERheSZxdW90OyBldmVudHMuKTwvZW0+JzsKJGxhbmdbJ3NlYXJjaF90eXBlJ10gPSAnU2VhcmNoIFR5cGUnOwokbGFuZ1snc2VhcmNoX2FueSddID0gJ1JldHVybiByZXN1bHRzIG1hdGNoaW5nIGFueSB3b3JkJzsKJGxhbmdbJ3NlYXJjaF9hbGwnXSA9ICdSZXR1cm4gcmVzdWx0cyBtYXRjaGluZyBhbGwgd29yZHMnOwokbGFuZ1snc2VhcmNoYWJsZSddID0gJ1NlYXJjaGFibGUnOwokbGFuZ1snaGVscF9wYXJhbV9lZGl0ZXZlbnR0ZW1wbGF0ZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgbXlldmVudHMgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG5vbiBkZWZhdWx0IGVkaXQgZXZlbnQgdGVtcGxhdGUgdG8gdXNlIHdoZW4gYSB1c2VyIGNyZWF0ZXMgb3IgZWRpdHMgYW4gZXZlbnQnOwokbGFuZ1snaGVscF9wYXJhbV9lZGl0cGFnZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgbXlldmVudHMgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGRpZmZlcmVudCBwYWdlIGZvciB0aGUgZWRpdCBmb3JtLic7CiRsYW5nWydoZWxwX3BhcmFtX215ZXZlbnRzdGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIG15ZXZlbnRzIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCB0ZW1wbGF0ZSB0byB1c2UnOwokbGFuZ1snY2FsX2VkaXRfZXZlbnQnXSA9ICdFZGl0IENhbGVuZGFyIEV2ZW50JzsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdEYXRhYmFzZSBFcnJvcic7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOwokbGFuZ1snaW5mb19zeXNkZmx0X2VkaXRldmVudF90ZW1wbGF0ZSddID0gJ1Byb3RvdHlwZSAmcXVvdDtFZGl0IEV2ZW50JnF1b3Q7IFRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9teWV2ZW50c190ZW1wbGF0ZSddID0gJ1Byb3RvdHlwZSAmcXVvdDtNeSBFdmVudHMmcXVvdDsgVGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X2ZlZWRpdF9ncm91cCddID0gJ01lbWJlcnMgb2YgdGhpcyBGRVUgZ3JvdXAgY2FuIGFkZCBldmVudHMnOwokbGFuZ1sncHJvbXB0X2ZlZWRpdF9wYWdlJ10gPSAnRGVmYXVsdCBwYWdlIGZvciB0aGUgZnJvbnRlbmQgZWRpdCBmb3JtLic7CiRsYW5nWydub25lJ10gPSAnTm9uZSc7CiRsYW5nWydvd25lciddID0gJ093bmVyJzsKJGxhbmdbJ2NhbF9lZGl0ZXZlbnRfdGVtcGxhdGVzJ10gPSAnRWRpdCBFdmVudCBGb3JtIFRlbXBsYXRlcyc7CiRsYW5nWydpbmZvX2VkaXRldmVudF90ZW1wbGF0ZV90YWInXSA9ICdUaGUgbGlzdCBvZiB0ZW1wbGF0ZXMgdGhhdCBhcmUgYXZhaWxhYmxlIGZvciB0aGUgZWRpdCBldmVudCBmb3JtJzsKJGxhbmdbJ2VkaXRldmVudHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBhbiBFZGl0IEV2ZW50IEZvcm0gVGVtcGxhdGUnOwokbGFuZ1snY2FsX215ZXZlbnRzX3RlbXBsYXRlcyddID0gJ015IEV2ZW50cyBMaXN0IFRlbXBsYXRlcyc7CiRsYW5nWydpbmZvX215ZXZlbnRzX3RlbXBsYXRlX3RhYiddID0gJ1RoZSBsaXN0IG9mIHRlbXBsYXRlcyB0aGF0IGFyZSBhdmFpbGFibGUgdG8gZGlzcGxheSBhIGxpc3Qgb2YgdXNlciBldmVudHMnOwokbGFuZ1snbXlldmVudHN0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgYSAmcXVvdDtNeSBFdmVudHMmcXVvdDsgcmVwb3J0IHRlbXBsYXRlJzsKJGxhbmdbJ2FyZXlvdXN1cmVfcmVtb3ZlY29uZmxpY3RpbmcnXSA9ICdUaGlzIGFjdGlvbiB3aWxsIHJlbW92ZSBhbnkgZXZlbnRzIHRoYXQgY29uZmxpY3Qgd2l0aCBub24tb3ZlcmxhcHBhYmxlIGV2ZW50cy4gIEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkbyB0aGlzPyc7CiRsYW5nWydmaWx0ZXJfY29uZmxpY3RpbmcnXSA9ICdGaWx0ZXIgQ29uZmxpY3RpbmcgRXZlbnRzJzsKJGxhbmdbJ292ZXJsYXBfYWN0aW9uX3JlbW92ZSddID0gJ1NpbGVudGx5IHJlbW92ZSBjb25mbGljdGluZyBldmVudHMnOwokbGFuZ1snb3ZlcmxhcF9hY3Rpb25fZXJyb3InXSA9ICdEaXNwbGF5IGFuIGVycm9yJzsKJGxhbmdbJ3Byb21wdF9vdmVybGFwX2FjdGlvbiddID0gJ1doYXQgc2hvdWxkIGhhcHBlbiB3aGVuIGEgY29uZmxpY3QgaXMgZGV0ZWN0ZWQgZHVyaW5nIGVkaXRpbmcgb3IgYWRkaW5nIG9mIGFuIGV2ZW50JzsKJGxhbmdbJ2Vycm9yX2V2ZW50X2NvbmZsaWN0J10gPSAnVGhlIGV2ZW50IHZhbHVlcyBzcGVjaWZpZWQgb3ZlcmxhcCB3aXRoIGFuIGV4aXN0aW5nIGV2ZW50IHRoYXQgZG9lcyBub3QgYWxsb3cgY29uZmxpY3RzJzsKJGxhbmdbJ2NhbF9pbmZvX292ZXJsYXAnXSA9ICdBcHBsaWVzIG9ubHkgdG8gZXZlbnRzIHdpdGggYW4gZW5kIHRpbWUgKG9yIGFsbCBkYXkgZXZlbnRzKSc7CiRsYW5nWydjYWxfb3ZlcmxhcCddID0gJ0FsbG93IG5ldyBldmVudHMgdG8gb3ZlcmxhcCB3aXRoIHRoaXMgb25lJzsKJGxhbmdbJ3Byb21wdF9vdmVybGFwX3BvbGljeSddID0gJ0V2ZW50IE92ZXJsYXAgUG9saWN5JzsKJGxhbmdbJ3BvbGljeV9hbGwnXSA9ICdBbGwgRXZlbnRzIGNhbiBvdmVybGFwJzsKJGxhbmdbJ3BvbGljeV9ub25lJ10gPSAnTm8gRXZlbnRzIGNhbiBvdmVybGFwJzsKJGxhbmdbJ3BvbGljeV9pbmRpdmlkdWFsJ10gPSAnRGVjaWRlZCBvbiBhbiBldmVudCBieSBldmVudCBiYXNpcyc7CiRsYW5nWydsYmxfYmFjayddID0gJ0JhY2snOwokbGFuZ1snbGJsX3RlbXBsYXRlcyddID0gJ1RlbXBsYXRlcyc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ1RleHQgQXJlYSc7CiRsYW5nWydlcnJvcl9jYWxlbmRhcl9pbmNvbXBhdGlibGUnXSA9ICdXZSBoYXZlIGRldGVjdGVkIHRoYXQgdGhlIENhbGVuZGFyIG1vZHVsZSBpcyBhbHNvIGluc3RhbGxlZC4uICBUaGlzIG1vZHVsZSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBDYWxlbmRhciBtb2R1bGUgYW5kIGNhbm5vdCBjby1leGlzdCB3aXRoIGl0IG9uIHRoZSBzYW1lIGluc3RhbGwuICBQbGVhc2UgdW5pbnN0YWxsIHRoZSBDYWxlbmRhciBtb2R1bGUnOwokbGFuZ1snZXJyb3JfZXZlbnRfbm90X2ZvdW5kJ10gPSAnRWl0aGVyIGV2ZW50X2lkIGlzIG5vdCBpbiB0aGUgZGF0YWJhc2UsIG9yIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgZXZlbnQgd2l0aCB0aGlzIGlkISAoJWQpJzsKJGxhbmdbJ2ZpcnN0X3BhZ2UnXSA9ICcmbHQ7Jmx0Oyc7CiRsYW5nWydwcmV2X3BhZ2UnXSA9ICcmbHQ7JzsKJGxhbmdbJ25leHRfcGFnZSddID0gJyZndDsnOwokbGFuZ1snbGFzdF9wYWdlJ10gPSAnJmd0OyZndDsnOwokbGFuZ1sncGFnZV9vZiddID0gJ1BhZ2UgJWQgb2YgJWQnOwokbGFuZ1snc2VhcmNoX3Jlc3VsdHMnXSA9ICdDYWxlbmRhciBTZWFyY2ggUmVzdWx0cyc7CiRsYW5nWydzZWFyY2hfd29yZHMnXSA9ICdTZWFyY2ggV29yZHMnOwokbGFuZ1snbm9fcmVzdWx0c19mb3VuZCddID0gJ05vIGRpc3BsYXlhYmxlIGV2ZW50cyBmb3VuZCBmb3IgdGhpcyBwZXJpb2QuJzsKJGxhbmdbJ2ZyZXF1ZW5jeSddID0gJ0ZyZXF1ZW5jeSc7CiRsYW5nWydzcGVjaWZpZWRfZGF0ZSddID0gJ1VzZSB0aGUgc3BlY2lmaWVkIGRhdGUnOwokbGFuZ1snZmlyc3Rfc3VuZGF5J10gPSAnRmlyc3QgU3VuZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydmaXJzdF9tb25kYXknXSA9ICdGaXJzdCBNb25kYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2ZpcnN0X3R1ZXNkYXknXSA9ICdGaXJzdCBUdWVzZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydmaXJzdF93ZWRuZXNkYXknXSA9ICdGaXJzdCBXZWRuZXNkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2ZpcnN0X3RodXJzZGF5J10gPSAnRmlyc3QgVGh1cnNkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2ZpcnN0X2ZyaWRheSddID0gJ0ZpcnN0IEZyaWRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snZmlyc3Rfc2F0dXJkYXknXSA9ICdGaXJzdCBTYXR1cmRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snc2Vjb25kX3N1bmRheSddID0gJ1NlY29uZCBTdW5kYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ3NlY29uZF9tb25kYXknXSA9ICdTZWNvbmQgTW9uZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydzZWNvbmRfdHVlc2RheSddID0gJ1NlY29uZCBUdWVzZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydzZWNvbmRfd2VkbmVzZGF5J10gPSAnU2Vjb25kIFdlZG5lc2RheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snc2Vjb25kX3RodXJzZGF5J10gPSAnU2Vjb25kIFRodXJzZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydzZWNvbmRfZnJpZGF5J10gPSAnU2Vjb25kIEZyaWRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snc2Vjb25kX3NhdHVyZGF5J10gPSAnU2Vjb25kIFNhdHVyZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWyd0aGlyZF9zdW5kYXknXSA9ICdUaGlyZCBTdW5kYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ3RoaXJkX21vbmRheSddID0gJ1RoaXJkIE1vbmRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1sndGhpcmRfdHVlc2RheSddID0gJ1RoaXJkIFR1ZXNkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ3RoaXJkX3dlZG5lc2RheSddID0gJ1RoaXJkIFdlZG5lc2RheSBvZiB0aGUgTW9udGgnOwokbGFuZ1sndGhpcmRfdGh1cnNkYXknXSA9ICdUaGlyZCBUaHVyc2RheSBvZiB0aGUgTW9udGgnOwokbGFuZ1sndGhpcmRfZnJpZGF5J10gPSAnVGhpcmQgRnJpZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWyd0aGlyZF9zYXR1cmRheSddID0gJ1RoaXJkIFNhdHVyZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydmb3VydGhfc3VuZGF5J10gPSAnRm91cnRoIFN1bmRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snZm91cnRoX21vbmRheSddID0gJ0ZvdXJ0aCBNb25kYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2ZvdXJ0aF90dWVzZGF5J10gPSAnRm91cnRoIFR1ZXNkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2ZvdXJ0aF93ZWRuZXNkYXknXSA9ICdGb3VydGggV2VkbmVzZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydmb3VydGhfdGh1cnNkYXknXSA9ICdGb3VydGggVGh1cnNkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2ZvdXJ0aF9mcmlkYXknXSA9ICdGb3VydGggRnJpZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydmb3VydGhfc2F0dXJkYXknXSA9ICdGb3VydGggU2F0dXJkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2xhc3Rfc3VuZGF5J10gPSAnTGFzdCBTdW5kYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2xhc3RfbW9uZGF5J10gPSAnTGFzdCBNb25kYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2xhc3RfdHVlc2RheSddID0gJ0xhc3QgVHVlc2RheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snbGFzdF93ZWRuZXNkYXknXSA9ICdMYXN0IFdlZG5lc2RheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snbGFzdF90aHVyc2RheSddID0gJ0xhc3QgVGh1cnNkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2xhc3RfZnJpZGF5J10gPSAnTGFzdCBGcmlkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2xhc3Rfc2F0dXJkYXknXSA9ICdMYXN0IFNhdHVyZGF5IG9mIHRoZSBNb250aCc7CgokbGFuZ1snZXJyb3JfaW52YWxpZF9yZWN1cl9tb250aGx5X2ZyZXEnXSA9ICdJbnZhbGlkIGZyZXF1ZW5jeS4uLi4geW91IGNhbm5vdCBzcGVjaWZ5IGJvdGggdGhlIHNwZWNpZmllZCBkYXRlIEFORCBvdGhlciB2YWx1ZXMnOwokbGFuZ1snc2VhcmNocmVzdWx0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IGEgU2VhcmNoIFJlc3VsdCBUZW1wbGF0ZSc7CiRsYW5nWydpbmZvX3NlYXJjaHJlc3VsdF90ZW1wbGF0ZV90YWInXSA9ICdUaGUgbGlzdCBvZiB0ZW1wbGF0ZXMgdGhhdCBhcmUgYXZhaWxhYmxlIGZvciB0aGUgc2VhcmNoIHJlc3VsdHMgZGlzcGxheSc7CiRsYW5nWydpbmZvX3N5c2RmbHRfc2VhcmNocmVzdWx0X3RlbXBsYXRlJ10gPSAnUHJvdG90eXBlIFNlYXJjaCBSZXN1bHQgVGVtcGxhdGUnOwokbGFuZ1snY2FsX3NlYXJjaF9yZXN1bHRfdGVtcGxhdGVzJ10gPSAnU2VhcmNoIFJlc3VsdCBUZW1wbGF0ZXMnOwokbGFuZ1snZXJyb3JfcXVlcnlfZmFpbGVkJ10gPSAnRGF0YWJhc2UgUXVlcnkgRmFpbGVkJzsKJGxhbmdbJ2Vycm9yX3NlYXJjaF9pbnZhbGlkX2RhdGVzJ10gPSAnSW52YWxpZCBTZWFyY2ggRGF0ZXMgU3BlY2lmaWVkJzsKJGxhbmdbJ3RleHQnXSA9ICdUZXh0JzsKJGxhbmdbJ3NlYXJjaCddID0gJ1NlYXJjaCc7CiRsYW5nWydjYXRlZ29yeSddID0gJ0NhdGVnb3J5JzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9zZWFyY2hfdGVtcGxhdGUnXSA9ICdQcm90b3R5cGUgU2VhcmNoIEZvcm0gVGVtcGxhdGUnOwokbGFuZ1snc2VhcmNodGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IGEgU2VhcmNoIEZvcm0gVGVtcGxhdGUnOwokbGFuZ1snaW5mb19zZWFyY2hfdGVtcGxhdGVfdGFiJ10gPSAnVGhlIGxpc3Qgb2YgdGVtcGxhdGVzIHRoYXQgYXJlIGF2YWlsYWJsZSBmb3IgdGhlIHNlYXJjaCBmb3JtJzsKJGxhbmdbJ2NhbF9zZWFyY2hfZm9ybV90ZW1wbGF0ZXMnXSA9ICdTZWFyY2ggRm9ybSBUZW1wbGF0ZXMnOwokbGFuZ1snbWF4J10gPSAnbWF4JzsKJGxhbmdbJ3RpbWVzJ10gPSAndGltZXMnOwokbGFuZ1snb24nXSA9ICdvbic7CiRsYW5nWydhcmV5b3VzdXJlX3VuaW5zdGFsbCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkbyB0aGlzPyAgQ29udGludWluZyB3aWxsIHBlcm1hbmVuZW50bHkgZXJhc2UgYWxsIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbW9kdWxlLic7CiRsYW5nWydwb3N0X3VuaW5zdGFsbCddID0gJ1RoZSBDYWxlbmRhciBtb2R1bGUgaGFzIGJlZW4gdW5pbnN0YWxsZWQgYW5kIGFsbCBldmVudCBhbmQgdGVtcGxhdGUgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbW92ZWQnOwokbGFuZ1snZmllbGR1cGRhdGVkJ10gPSAnRmllbGQgVXBkYXRlZCc7CiRsYW5nWydldmVyeSddID0gJ0V2ZXJ5JzsKJGxhbmdbJ29yJ10gPSAnb3InOwokbGFuZ1sndXBkYXRlX2NoaWxkcmVuJ10gPSAnVXBkYXRlIENoaWxkIEV2ZW50cyc7CiRsYW5nWydlcnJvcl9ub2NhdGVnb3J5J10gPSAnWW91IG11c3Qgc2VsZWN0IGF0IGxlYXN0IG9uZSBjYXRlZ29yeSc7CiRsYW5nWydlcnJvcl9ub3RoaW5nc2VsZWN0ZWQnXSA9ICdOb3RoaW5nIGhhcyBiZWVuIHNlbGVjdGVkIHRvIGRlbGV0ZSc7CiRsYW5nWydlcnJvcl9ldmVudG92ZXJsYXAnXSA9ICdUaGUgcmVjdXJpbmcgZXZlbnQgcGFyYW1ldGVycyB5b3UgaGF2ZSBzcGVjaWZpZWQgd291bGQgcmVzdWx0IGluIG92ZXJsYXBwaW5nIGV2ZW50cy4nOwokbGFuZ1sncmVjdXJzJ10gPSAnUmVjdXJzJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfZGF0ZXMnXSA9ICdPbmUgb3IgbW9yZSBvZiB0aGUgZGF0ZSB2YWx1ZXMgZW50ZXJlZCB3ZXJlIGludmFsaWQnOwokbGFuZ1snc3VuZGF5J10gPSAnU3VuZGF5JzsKJGxhbmdbJ21vbmRheSddID0gJ01vbmRheSc7CiRsYW5nWyd0dWVzZGF5J10gPSAnVHVlc2RheSc7CiRsYW5nWyd3ZWRuZXNkYXknXSA9ICdXZWRuZXNkYXknOwokbGFuZ1sndGh1cnNkYXknXSA9ICdUaHVyc2RheSc7CiRsYW5nWydmcmlkYXknXSA9ICdGcmlkYXknOwokbGFuZ1snc2F0dXJkYXknXSA9ICdTYXR1cmRheSc7CgokbGFuZ1snYWJicl9zdW5kYXknXSA9ICdTdSc7CiRsYW5nWydhYmJyX21vbmRheSddID0gJ01vJzsKJGxhbmdbJ2FiYnJfdHVlc2RheSddID0gJ1R1JzsKJGxhbmdbJ2FiYnJfd2VkbmVzZGF5J10gPSAnV2UnOwokbGFuZ1snYWJicl90aHVyc2RheSddID0gJ1RoJzsKJGxhbmdbJ2FiYnJfZnJpZGF5J10gPSAnRnInOwokbGFuZ1snYWJicl9zYXR1cmRheSddID0gJ1NhJzsKCiRsYW5nWyd3ZWVrJ10gPSAnV2Vlayc7CiRsYW5nWydtb250aCddID0gJ01vbnRoJzsKJGxhbmdbJ2RheSddID0gJ0RheSc7CiRsYW5nWyd0b2RheSddID0gJ1RvZGF5JzsKJGxhbmdbJ3dlZWtkYXlzJ10gPSAnV2Vla2RheXMnOwokbGFuZ1sncGx1cmFsX25vbmUnXSA9ICdOb25lJzsKJGxhbmdbJ3BsdXJhbF9kYWlseSddID0gJ0RheXMnOwokbGFuZ1sncGx1cmFsX3dlZWtseSddID0gJ1dlZWtzJzsKJGxhbmdbJ3BsdXJhbF9tb250aGx5J10gPSAnTW9udGhzJzsKJGxhbmdbJ3BsdXJhbF95ZWFybHknXSA9ICdZZWFycyc7CiRsYW5nWydubyddID0gJ05vJzsKJGxhbmdbJ2RhaWx5J10gPSAnRGFpbHknOwokbGFuZ1snd2Vla2x5J10gPSAnV2Vla2x5JzsKJGxhbmdbJ21vbnRobHknXSA9ICdNb250aGx5JzsKJGxhbmdbJ3llYXJseSddID0gJ1llYXJseSc7CiRsYW5nWydpbnRlcnZhbCddID0gJ1JlcGVhdCBldmVyeSc7CiRsYW5nWydjYWxfcmVjdXJfZGV0YWlscyddID0gJ1JlY3VycmluZyBFdmVudCBEZXRhaWxzJzsKJGxhbmdbJ3VubGltaXRlZCddID0gJ1VubGltaXRlZCc7CiRsYW5nWydtYXhfcmVjdXJfZXZlbnRzJ10gPSAnTWF4aW11bSBudW1iZXIgb2YgY2hpbGQgZXZlbnRzJzsKJGxhbmdbJ3VzZV90b19kYXRlJ10gPSAnU3BlY2lmeSBhIGRpZmZlcmVudCBlbmQgZGF0ZS90aW1lPyc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWwnOwokbGFuZ1snc2hvd19jaGlsZF9ldmVudHMnXSA9ICdTaG93IENoaWxkIEV2ZW50cyA8ZW0+KG1heSByZXN1bHQgaW4gdmVyeSBsb25nIGRpc3BsYXkpPC9lbT4nOwokbGFuZ1snbi9hJ10gPSAnbi9hJzsKJGxhbmdbJ3JlY3Vyc191bnRpbCddID0gJ1JlY3VyIFVudGlsJzsKJGxhbmdbJ3BhcmVudCddID0gJ1BhcmVudCc7CiRsYW5nWydyZWN1cl9wZXJpb2QnXSA9ICdSZWN1ciBQZXJpb2QnOwokbGFuZ1snZmlsdGVyJ10gPSAnRmlsdGVyJzsKJGxhbmdbJ3N0YXJ0X2RhdGUnXSA9ICdTdGFydCBEYXRlJzsKJGxhbmdbJ2VuZF9kYXRlJ10gPSAnRW5kIERhdGUnOwokbGFuZ1snaW5mb191cGNvbWluZ2xpc3RfdGVtcGxhdGVfdGFiJ10gPSAnVGhlIGxpc3Qgb2YgdGVtcGxhdGVzIHRoYXQgYXJlIGF2YWlsYWJsZSBmb3IgdXBjb21pbmdsaXN0IHZpZXdzJzsKJGxhbmdbJ3VwY29taW5nbGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBhbiBVcGNvbWluZ2xpc3QgRGlzcGxheSBUZW1wbGF0ZSc7CiRsYW5nWydpbmZvX3N5c2RmbHRfdXBjb21pbmdsaXN0X3RlbXBsYXRlJ10gPSAnUHJvdG90eXBlIFVwY29taW5nbGlzdCBUZW1wbGF0ZSc7CiRsYW5nWydpbmZvX2xpc3RfdGVtcGxhdGVfdGFiJ10gPSAnVGhlIGxpc3Qgb2YgdGVtcGxhdGVzIHRoYXQgYXJlIGF2YWlsYWJsZSBmb3IgbGlzdCB2aWV3cyc7CiRsYW5nWydsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IGFuIExpc3QgRGlzcGxheSBUZW1wbGF0ZSc7CiRsYW5nWydpbmZvX3N5c2RmbHRfbGlzdF90ZW1wbGF0ZSddID0gJ1Byb3RvdHlwZSBMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fZXZlbnRfdGVtcGxhdGVfdGFiJ10gPSAnVGhlIGxpc3Qgb2YgdGVtcGxhdGVzIHRoYXQgYXJlIGF2YWlsYWJsZSBmb3IgZXZlbnQgdmlld3MnOwokbGFuZ1snZXZlbnR0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgYW4gRXZlbnQgRGlzcGxheSBUZW1wbGF0ZSc7CiRsYW5nWydpbmZvX3N5c2RmbHRfZXZlbnRfdGVtcGxhdGUnXSA9ICdQcm90b3R5cGUgRXZlbnQgVGVtcGxhdGUnOwokbGFuZ1snaW5mb19jYWxlbmRhcl90ZW1wbGF0ZV90YWInXSA9ICdUaGUgbGlzdCBvZiB0ZW1wbGF0ZXMgdGhhdCBhcmUgYXZhaWxhYmxlIGZvciBjYWxlbmRhciB2aWV3cyc7CiRsYW5nWydjYWxlbmRhcnRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBhIENhbGVuZGFyIERpc3BsYXkgVGVtcGxhdGUnOwokbGFuZ1snaW5mb19zeXNkZmx0X2NhbGVuZGFyX3RlbXBsYXRlJ10gPSAnUHJvdG90eXBlIENhbGVuZGFyIFRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF90ZW1wbGF0ZSddID0gJ1RoaXMgZm9ybSBkZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHdpbGwgYmUgdXNlZCB3aGVuIHlvdSBjbGljayAmcXVvdDtOZXcgVGVtcGxhdGUmcXVvdDsgaW4gdGhlIGFwcHJvcHJpYXRlIHRhYi4gIENoYW5naW5nIHRoaXMgdmFsdWUgd2lsbCBoYXZlIG5vIGltbWVkaWF0ZSBlZmZlY3Qgb24gdGhlIGRpc3BsYXlzIGdlbmVyYXRlZCBmcm9tIHRoaXMgbW9kdWxlLic7CgojIExhbmd1YWdlOiBlbl9VUwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50QWRkZWQnXSA9ICdDYWxsZWQgYWZ0ZXIgYWRkaW5nIGEgY2FsZW5kYXIgZXZlbnQnOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50RWRpdGVkJ10gPSAnQ2FsbGVkIGFmdGVyIGVkaXRpbmcgYW4gZXhpc3RpbmcgY2FsZW5kYXIgZXZlbnQnOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50RGVsZXRlZCddID0gJ0NhbGxlZCBhZnRlciBhbiBldmVudCBoYXMgYmVlbiBkZWxldGVkJzsKJGxhbmdbJ2V2ZW50ZGVzYy1DYXRlZ29yeUFkZGVkJ10gPSAnQ2FsbGVkIGFmdGVyIGEgY2F0ZWdvcnkgaXMgY3JlYXRlZCc7CiRsYW5nWydldmVudGRlc2MtQ2F0ZWdvcnlFZGl0ZWQnXSA9ICdDYWxsZWQgYWZ0ZXIgYSBjYXRlZ29yeSBpcyBlZGl0ZWQnOwokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5RGVsZXRlZCddID0gJ0NhbGxlZCBhZnRlciBhIGNhdGVnb3J5IGlzIGRlbGV0ZWQnOwoKJGxhbmdbJ2V2ZW50aGVscC1FdmVudEFkZGVkJ10gPSAnCjxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGV2ZW50IGlzIGFkZGVkLjwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT5cImV2ZW50X3RpdGxlXCIgLSBFdmVudCBUaXRsZTwvbGk+CjxsaT5cImV2ZW50X3N1bW1hcnlcIiAtIFN1bW1hcnkgVGV4dDwvbGk+CjxsaT5cImV2ZW50X2RldGFpbHNcIiAtIERldGFpbGVkIERlc2NyaXB0aW9uPC9saT4KPGxpPlwiZXZlbnRfZGF0ZV9zdGFydFwiIC0gVGhlIGV2ZW50IHN0YXJ0IGRhdGUvdGltZTwvbGk+CjxsaT5cImV2ZW50X2RhdGVfZW5kXCIgLSBUaGUgZXZlbnQgZW5kIGRhdGUvdGltZTwvbGk+CjxsaT5cImV2ZW50X2NyZWF0ZWRfYnlcIiAtIFRoZSB1c2VyaWQgb2YgdGhlIGF1dGhvcjwvbGk+CjxsaT5cImV2ZW50X2lkXCIgLSBUaGUgZXZlbnQgaWQ8L2xpPgo8L3VsPgonOwokbGFuZ1snZXZlbnRoZWxwLUV2ZW50RWRpdGVkJ10gPSAnCjxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGV2ZW50IGlzIGVkaXRlZC48L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+XCJldmVudF90aXRsZVwiIC0gRXZlbnQgVGl0bGU8L2xpPgo8bGk+XCJldmVudF9zdW1tYXJ5XCIgLSBTdW1tYXJ5IFRleHQ8L2xpPgo8bGk+XCJldmVudF9kZXRhaWxzXCIgLSBEZXRhaWxlZCBEZXNjcmlwdGlvbjwvbGk+CjxsaT5cImV2ZW50X2RhdGVfc3RhcnRcIiAtIFRoZSBldmVudCBzdGFydCBkYXRlL3RpbWU8L2xpPgo8bGk+XCJldmVudF9kYXRlX2VuZFwiIC0gVGhlIGV2ZW50IGVuZCBkYXRlL3RpbWU8L2xpPgo8bGk+XCJldmVudF9jcmVhdGVkX2J5XCIgLSBUaGUgdXNlcmlkIG9mIHRoZSBhdXRob3I8L2xpPgo8bGk+XCJldmVudF9pZFwiIC0gVGhlIGV2ZW50IGlkPC9saT4KPC91bD4KJzsKJGxhbmdbJ2V2ZW50aGVscC1FdmVudERlbGV0ZWQnXSA9ICcKPHA+U2VudCB3aGVuIGEgY2FsZW5kYXIgZXZlbnQgaXMgZGVsZXRlZC48L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+XCJldmVudF9pZFwiIC0gVGhlIGV2ZW50IGlkPC9saT4KPC91bD4KJzsKJGxhbmdbJ2V2ZW50aGVscC1DYXRlZ29yeUFkZGVkJ10gPSAnCjxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGNhdGVnb3J5IGlzIGFkZGVkLjwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT5cImNhdGVnb3J5X2lkXCIgLSBUaGUgY2F0ZWdvcnkgaWQ8L2xpPgo8L3VsPgonOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5RWRpdGVkJ10gPSAnCjxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGNhdGVnb3J5IGlzIGVkaXRlZC48L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+XCJjYXRlZ29yeV9pZFwiIC0gVGhlIGNhdGVnb3J5IGlkPC9saT4KPGxpPlwiY2F0ZWdvcnlfbmFtZVwiIC0gVGhlIGNhdGVnb3J5IG5hbWU8L2xpPgo8bGk+XCJjYXRlZ29yeV9vcmRlclwiIC0gVGhlIGNhdGVnb3J5IHNvcnQgb3JkZXI8L2xpPgo8L3VsPgonOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5RGVsZXRlZCddID0gJwo8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBjYXRlZ29yeSBpcyBkZWxldGVkLjwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT5cImNhdGVnb3J5X2lkXCIgLSBUaGUgY2F0ZWdvcnkgaWQ8L2xpPgo8bGk+XCJjYXRlZ29yeV9uYW1lXCIgLSBUaGUgY2F0ZWdvcnkgbmFtZTwvbGk+CjxsaT5cImNhdGVnb3J5X29yZGVyXCIgLSBUaGUgY2F0ZWdvcnkgc29ydCBvcmRlcjwvbGk+CjwvdWw+Cic7CgokbGFuZ1snZXJyb3JfY3N2X2luc2VydCddID0gJ0Vycm9yIGltcG9ydGluZyBldmVudCBmcm9tIGNzdiBhdCBsaW5lICVkJzsKJGxhbmdbJ2Vycm9yX2NzdmZpcnN0bGluZWZsZG5vdGZvdW5kJ10gPSAnQSByZXF1aXJlZCBmaWVsZDogJXMsIGNvdWxkIG5vdCBiZSBmb3VuZCBpbiB0aGUgY3N2IGZpbGUgaGVhZGVyIGxpbmUnOwokbGFuZ1snZXJyb3JfY3N2aW52YWxpZGZpcnN0bGluZSddID0gJ0NvdWxkIG5vdCBmaW5kIGEgdmFsaWQgZmlyc3QgbGluZSBvZiB0aGUgQ1NWIGZpbGUnOwokbGFuZ1snbXNnX2V2ZW50YWRkZWQnXSA9ICdFdmVudCBBZGRlZCc7CiRsYW5nWydlcnJvcl9ub2V2ZW50bmFtZSddID0gJ0EgdGl0bGUgZm9yIHRoZSBldmVudCBpcyByZXF1aXJlZCc7CiRsYW5nWydlcnJvcl9ub3VwbG9hZCddID0gJ0VSUk9SOiBObyB1cGxvYWRlZCBmaWxlIGZvdW5kJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRmaWxlbmFtZSddID0gJ0VSUk9SOiBUaGUgZmlsZSB1cGxvYWRlZCBjYW5ub3QgYmUgYWNjZXB0ZWQnOwokbGFuZ1snZXJyb3JfcHJvYmxlbXdpdGh1cGxvYWQnXSA9ICdFUlJPUjogQSBwcm9ibGVtIG9jY3VycmVkIHRyeWluZyB0byB1cGxvYWQgdGhlIGZpbGUnOwokbGFuZ1snZXJyb3JfZmlsZWNvcHlmYWlsZWQnXSA9ICdFUlJPUjogQSBQcm9ibGVtIG9jY3VycmVkIHdoZW4gY29weWluZyB0aGUgZmlsZSB0byBpdHMgZmluYWwgZGVzdGluYXRpb24nOwokbGFuZ1snZXJyb3JfZmlsZWV4aXN0cyddID0gJ0VSUk9SOiBBIGZpbGUgYnkgdGhhdCBuYW1lIGFscmVhZHkgZXhpc3RzJzsKJGxhbmdbJ2Vycm9yX2NzdmZpbGVub3Rmb3VuZCddID0gJ0VSUk9SOiBDb3VsZCBub3QgZmluZCB0aGUgQ1NWIEZpbGUnOwokbGFuZ1snZXJyb3JfY2FudG9wZW5maWxlJ10gPSAnRVJST1I6IENhbm5vdCBvcGVuIGZpbGUnOwokbGFuZ1snZXJyb3JfY2F0ZWdvcnlleGlzdHMnXSA9ICdFUlJPUjogQSBjYXRlZ29yeSB3aXRoIHRoZSBuYW1lICVzIGFscmVhZHkgZXhpc3RzJzsKCiRsYW5nWydjYWxfaWQnXSA9ICdJZCc7CiRsYW5nWydjYWxfY2FsZW5kYXInXSA9ICdDYWxndXlzIENhbGVuZGFyJzsKJGxhbmdbJ2NhbF9kZWZhdWx0X3RlbXBsYXRlcyddID0gJ1Byb3RvdHlwZSB0ZW1wbGF0ZXMnOwokbGFuZ1snY2FsX2Rlc2NyaXB0aW9uJ10gPSAnQWRkLCBlZGl0IGFuZCByZW1vdmUgZXZlbnRzJzsKJGxhbmdbJ2NhbF9hZGRldmVudCddID0gJ0FkZCBldmVudCc7CiRsYW5nWydjYWxfaW1wb3J0X2V2ZW50cyddID0gJ0ltcG9ydCBldmVudHMnOwokbGFuZ1snY2FsX2V2ZW50cyddID0gJ0V2ZW50cyc7CiRsYW5nWydjYWxfY2F0ZWdvcmllcyddID0gJ0NhdGVnb3JpZXMnOwokbGFuZ1snY2FsX2NhbGVuZGFyX3RlbXBsYXRlJ10gPSAnQ2FsZW5kYXIgdGVtcGxhdGVzJzsKJGxhbmdbJ2NhbF9saXN0X3RlbXBsYXRlJ10gPSAnTGlzdCBUZW1wbGF0ZXMnOwokbGFuZ1snY2FsX3VwY29taW5nbGlzdF90ZW1wbGF0ZSddID0gJ1VwY29taW5nIHRlbXBsYXRlcyc7CiRsYW5nWydjYWxfZXZlbnRfdGVtcGxhdGUnXSA9ICdFdmVudCB0ZW1wbGF0ZXMnOwokbGFuZ1snY2FsX3NldHRpbmdzJ10gPSAnU2V0dGluZ3MnOwokbGFuZ1snY2FsX3ByZXYnXSA9ICcmbGFxdW87IFByZXYnOwokbGFuZ1snY2FsX25leHQnXSA9ICdOZXh0ICZyYXF1bzsnOwoKJGxhbmdbJ2NhbF9jYXRlZ29yaWVzX3VwZGF0ZWQnXSA9ICdDYXRlZ29yaWVzIHVwZGF0ZWQnOwokbGFuZ1snY2FsX3NldHRpbmdzX3VwZGF0ZWQnXSA9ICdTZXR0aW5ncyB1cGRhdGVkJzsKJGxhbmdbJ2NhbF9hZGRfZXZlbnQnXSA9ICdBZGQgZXZlbnQnOwokbGFuZ1snY2FsX2VkaXQnXSA9ICdFZGl0IHRoaXMgZXZlbnQnOwokbGFuZ1snY2FsX2RlbGV0ZSddID0gJ0RlbGV0ZSB0aGlzIGV2ZW50JzsKJGxhbmdbJ2NhbF9hcmV5b3VzdXJlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSc7CiRsYW5nWydjYWxfdXBkYXRlX3RlbXBsYXRlJ10gPSAnVXBkYXRlIHRlbXBsYXRlJzsKCiRsYW5nWydjYWxfc3VuZGF5J10gPSAnU3VuZGF5JzsKJGxhbmdbJ2NhbF9tb25kYXknXSA9ICdNb25kYXknOwokbGFuZ1snY2FsX3R1ZXNkYXknXSA9ICdUdWVzZGF5JzsKJGxhbmdbJ2NhbF93ZWRuZXNkYXknXSA9ICdXZWRuZXNkYXknOwokbGFuZ1snY2FsX3RodXJzZGF5J10gPSAnVGh1cnNkYXknOwokbGFuZ1snY2FsX2ZyaWRheSddID0gJ0ZyaWRheSc7CiRsYW5nWydjYWxfc2F0dXJkYXknXSA9ICdTYXR1cmRheSc7CiRsYW5nWydjYWxfc3VuJ10gPSAnU3VuJzsKJGxhbmdbJ2NhbF9tb24nXSA9ICdNb24nOwokbGFuZ1snY2FsX3R1ZXMnXSA9ICdUdWUnOwokbGFuZ1snY2FsX3dlZCddID0gJ1dlZCc7CiRsYW5nWydjYWxfdGh1cnMnXSA9ICdUaHUnOwokbGFuZ1snY2FsX2ZyaSddID0gJ0ZyaSc7CiRsYW5nWydjYWxfc2F0J10gPSAnU2F0JzsKCiRsYW5nWydjYWxfamFudWFyeSddID0gJ0phbnVhcnknOwokbGFuZ1snY2FsX2ZlYnJ1YXJ5J10gPSAnRmVicnVhcnknOwokbGFuZ1snY2FsX21hcmNoJ10gPSAnTWFyY2gnOwokbGFuZ1snY2FsX2FwcmlsJ10gPSAnQXByaWwnOwokbGFuZ1snY2FsX21heSddID0gJ01heSc7CiRsYW5nWydjYWxfanVuZSddID0gJ0p1bmUnOwokbGFuZ1snY2FsX2p1bHknXSA9ICdKdWx5JzsKJGxhbmdbJ2NhbF9hdWd1c3QnXSA9ICdBdWd1c3QnOwokbGFuZ1snY2FsX3NlcHRlbWJlciddID0gJ1NlcHRlbWJlcic7CiRsYW5nWydjYWxfb2N0b2JlciddID0gJ09jdG9iZXInOwokbGFuZ1snY2FsX25vdmVtYmVyJ10gPSAnTm92ZW1iZXInOwokbGFuZ1snY2FsX2RlY2VtYmVyJ10gPSAnRGVjZW1iZXInOwoKJGxhbmdbJ2NhbF9hZGQnXSA9ICdBZGQnOwokbGFuZ1snY2FsX3VwZGF0ZSddID0gJ1VwZGF0ZSc7CiRsYW5nWydjYWxfZXZlbnQnXSA9ICdFdmVudCc7CiRsYW5nWydjYWxfZGF0ZSddID0gJ0RhdGUnOwokbGFuZ1snY2FsX3N1bW1hcnknXSA9ICdTdW1tYXJ5JzsKJGxhbmdbJ2NhbF9kZXRhaWxzJ10gPSAnRGV0YWlscyc7CiRsYW5nWydjYWxfbW9yZSddID0gJ21vcmUgPj4nOwokbGFuZ1snY2FsX3JldHVybiddID0gJ1JldHVybic7CiRsYW5nWydjYWxfdG8nXSA9ICd0byc7CiRsYW5nWydjYWxfcGFzdF9ldmVudHMnXSA9ICdQYXN0IGV2ZW50cyc7CiRsYW5nWydjYWxfdXBjb21pbmdfZXZlbnRzJ10gPSAnVXBjb21pbmcgZXZlbnRzJzsKJGxhbmdbJ2NhbF9hbnlfY2F0ZWdvcnknXSA9ICdBbnkgY2F0ZWdvcnknOwokbGFuZ1snY2FsX3Nob3dfb25seV9ldmVudHNfaW4nXSA9ICdTaG93IG9ubHkgZXZlbnRzIGluJzsKJGxhbmdbJ2NhbF9maWx0ZXJfYnknXSA9ICdTZWFyY2ggdGl0bGUgPGVtPihyZWdleCk8L2VtPic7CiRsYW5nWydjYWxfZ28nXSA9ICdHbyc7CiRsYW5nWydjYWxfdGl0bGUnXSA9ICdUaXRsZSc7CiRsYW5nWydjYWxfZnJvbWRhdGUnXSA9ICdTdGFydCBEYXRlJzsKJGxhbmdbJ2NhbF90b2RhdGUnXSA9ICdUbyBEYXRlJzsKJGxhbmdbJ2NhbF9zdW1tYXJ5J10gPSAnU3VtbWFyeSc7CiRsYW5nWydjYWxfZGVzY3JpcHRpb24nXSA9ICdBIGZ1bGwgZmVhdHVyZWQsIGFuZCBmbGV4aWJsZSBtb2R1bGUgdG8gYWxsb3cgZGlzcGxheWluZyBpbmZvcm1hdGlvbiBhYm91dCBldmVudHMgaW4gbnVtZXJvdXMgZm9ybWF0cy4nOwokbGFuZ1snY2FsX3VwZGF0ZV9jYXRlZ29yaWVzJ10gPSAnVXBkYXRlIENhdGVnb3JpZXMnOwokbGFuZ1snY2FsX2xhbmd1YWdlJ10gPSAnTGFuZ3VhZ2UnOwokbGFuZ1snY2FsX3VwZGF0ZXNldHRpbmdzJ10gPSAnVXBkYXRlIFNldHRpbmdzJzsKJGxhbmdbJ2NhbF91c2VfdHdlbHZlX2hvdXJfY2xvY2snXSA9ICdVc2UgdHdlbHZlIGhvdXIgY2xvY2sgb24gaG91ciBkcm9wLWRvd25zPyc7CiRsYW5nWydjYWxfZGVmYXVsdF9jYXRlZ29yeSddID0gJ0RlZmF1bHQgQ2F0ZWdvcnknOwokbGFuZ1snY2FsX3VwZGF0ZV9maWVsZHMnXSA9ICdVcGRhdGUgRmllbGRzJzsKJGxhbmdbJ2ZvcmNlX2NhdGVnb3J5J109J0ZvcmNlIGF0IGxlYXN0IG9uZSBjYXRlZ29yeSc7CiRsYW5nWydzaG93cGFzdHllYXJzJ109J0hvdyBtYW55IHllYXJzIGluIHRoZSBwYXN0IGlzIGFsbG93ZWQnOwokbGFuZ1snc2hvd2Z1dHVyZXllYXJzJ109J0hvdyBtYW55IHllYXIgaW50byB0aGUgZnV0dXJlIGlzIGFsbG93ZWQnOwokbGFuZ1snaGlkZXN1bW1hcnknXT0nU2hvdWxkIHRoZSBzdW1tYXJ5IGZpZWxkIGJlIGhpZGRlbic7CiRsYW5nWydoaWRlY29udGVudCddPSdTaG91bGQgdGhlIGNvbnRlbnQgZmllbGQgYmUgaGlkZGVuJzsKCiRsYW5nWydjYXRlZ29yeV9yZW1pbmRlciddPSdQbGVhc2UgY2hlY2sgb25lIG9yIG1vcmUgY2F0ZWdvcmllcyBmb3IgdGhpcyBldmVudCc7CiRsYW5nWyJtb2R1bGVfZXhhbXBsZV9zdHlsZXNoZWV0Il09IkNhbGd1eXMgQ2FsZW5kYXIgQ1NTIGV4YW1wbGUiOwoKJGxhbmdbJ2Vycm9yX3Blcm1pc3Npb24nXSA9ICdZb3UgZG8gbm90IGhhdmUgdGhlIGFwcHJvcHJpYXRlIHBlcm1pc3Npb24gdG8gYWNjZXNzIHRoaXMgZnVuY3Rpb25hbGl0eSAob3IgeW91IG1heSBub3Qgb3duIHRoZSBldmVudCB5b3UgYXJlIHRyeWluZyB0byBtb2RpZnkpJzsKJGxhbmdbJ2luc3RhbGxfcG9zdG1lc3NhZ2UnXSA9ICdNYWtlIHN1cmUgdG8gc2V0IHRoZSAiTW9kaWZ5IENhbGVuZGFyIiBwZXJtaXNzaW9uIG9uIHVzZXJzIHdobyB3aWxsIGJlIGFkbWluaXN0ZXJpbmcgY2FsZW5kYXIgZXZlbnRzLic7CgokbGFuZ1siZGVsZXRldGFnZ2VkIl09IkRlbGV0ZSB0YWdnZWQgZXZlbnRzIjsKJGxhbmdbImNvbmZpcm1kZWxldGV0YWdnZWQiXT0iQXJlIHlvdSBzdXJlIHRoZXNlIGV2ZW50cyBzaG91bGQgYmUgZGVsZXRlZD8iOwokbGFuZ1sidGFnZ2VkZGVsZXRlZCJdPSJUYWdnZWQgZXZlbnRzIHN1Y2Nlc3NmdWxseSBkZWxldGVkIjsKJGxhbmdbJ3RlbXBsYXRlcyddID0gJ1RlbXBsYXRlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9oZWxwJ10gPSAnVGVtcGxhdGUgSGVscCc7CiRsYW5nWydmaWxlX3RlbXBsYXRlcyddID0gJ0ZpbGUgVGVtcGxhdGVzJzsKJGxhbmdbJ2FkZHRlbXBsYXRlJ10gPSAnQWRkIFRlbXBsYXRlJzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUnOwokbGFuZ1sndGVtcGxhdGVuYW1ldGV4dCddID0gJ1RlbXBsYXRlIE5hbWUnOwokbGFuZ1snZWRpdHRlbXBsYXRlJ10gPSAnRWRpdCBUZW1wbGF0ZSc7CiRsYW5nWydkZWxldGV0ZW1wbGF0ZSddID0gJ0RlbGV0ZSBUZW1wbGF0ZSc7CiRsYW5nWyduZXd0ZW1wbGF0ZSddID0gJ05ldyBUZW1wbGF0ZSBOYW1lJzsKJGxhbmdbJ3RlbXBsYXRlbmFtZWV4aXN0cyddID0gJ0Vycm9yOiBBIHRlbXBsYXRlIHdpdGggdGhhdCBuYW1lIGFscmVhZHkgZXhpc3RzLiBQbGVhc2UgY2hvb3NlIGEgZGlmZmVyZW50IG5hbWUuJzsKJGxhbmdbJ3RlbXBsYXRlaW1wb3J0ZWQnXSA9ICdUaGUgdGVtcGxhdGUgd2FzIHN1Y2Vzc2Z1bGx5IGltcG9ydGVkIGludG8gdGhlIGRhdGFiYXNlIGFuZCBpcyBub3cgaW5zdGFsbGVkIGZvciB1c2UuJzsKJGxhbmdbJ3ZpZXdfZGVmYXVsdF9zdHlsZXNoZWV0J10gPSAnVmlldyBEZWZhdWx0IFN0eWxlc2hlZXQnOwokbGFuZ1snZmlsZW5hbWUnXSA9ICdGaWxlbmFtZSc7CiRsYW5nWydpbXBvcnR0ZW1wbGF0ZSddID0gJ0ltcG9ydCBUZW1wbGF0ZSc7CiRsYW5nWyd0ZW1wbGF0ZV9kZWxldGVkJ10gPSAnVGhlIHRlbXBsYXRlIHdhcyBzdWNjZXNzZnVsbHkgZGVsZXRlZCBmcm9tIHRoZSBkYXRhYmFzZS4nOwokbGFuZ1sidXBkYXRldGVtcGxhdGVzdWNjZXNzIl09IlRoZSB0ZW1wbGF0ZSB3YXMgdXBkYXRlZCBzdWNjZXNzZnVsbHkiOwokbGFuZ1sidXBkYXRldGVtcGxhdGVmYWlsdXJlIl09IkFuIGVycm9yIG9jY3VycmVkIHVwZGF0aW5nIHRoZSB0ZW1wbGF0ZSI7CiRsYW5nWyJzZXR0aW5nc3NhdmVkIl09IlNldHRpbmdzIHdlcmUgc2F2ZWQgc3VjY2Vzc2Z1bGx5IjsKJGxhbmdbImNhdGVnb3J5ZGVsZXRlZCJdPSJDYXRlZ29yeSBkZWxldGVkIjsKJGxhbmdbImNhdGVnb3J5dXBkYXRlZCJdPSJDYXRlZ29yeSB1cGRhdGVkIjsKJGxhbmdbImNhdGVnb3J5YWRkZWQiXT0iQ2F0ZWdvcnkgYWRkZWQiOwokbGFuZ1siZXZlbnRkZWxldGVkIl09IkV2ZW50KHMpIGRlbGV0ZWQgc3VjY2Vzc2Z1bGx5IjsKJGxhbmdbImV2ZW50dXBkYXRlZCJdPSJUaGUgZXZlbnQgd2FzIHVwZGF0ZWQiOwokbGFuZ1snZGVmYXVsdF9wYWdlX2Vycm9yJ10gPSAnRXJyb3I6IFlvdSBtdXN0IHNldCBhIGRlZmF1bHQgcGFnZSBpbiBvcmRlciB0byB1c2UgQ2FsZW5kYXIgd2l0aCBwcmV0dHkgVVJMcyB0dXJuZWQgb24uIFBsZWFzZSBnbyB0byB0aGUgQ2FsZW5kYXIgc2V0dGluZ3MgdGFiIGFuZCBjaG9vc2Ugb25lLic7CiRsYW5nWyJ0aW1lX2F0Il09ImF0IjsKJGxhbmdbJ3R5cGUnXT0nVHlwZSc7CiRsYW5nWyJuYW1lIl09Ik5hbWUiOwokbGFuZ1sib3JkZXIiXT0iT3JkZXIiOwoKJGxhbmdbJ2ZpZWxkYWRkZWQnXSA9ICdGaWVsZCBTdWNjZXNzZnVsbHkgQWRkZWQnOwokbGFuZ1snZmllbGRkZWxldGVkJ10gPSAnRmllbGQgRGVsZXRlZCc7CiRsYW5nWydmaWVsZHMnXSA9ICdDdXN0b20gRmllbGRzJzsKJGxhbmdbJ3RleHRmaWVsZCddID0gJ1RleHQgRmllbGQnOwokbGFuZ1sndXBsb2FkZmllbGQnXSA9ICdGaWxlIHVwbG9hZCBmaWVsZCc7CiRsYW5nWyJkZXNjcmlwdGlvbiJdPSI8cD5DYWxlbmRhciBpcyBhIG1vZHVsZSBmb3IgZGlzcGxheWluZyBldmVudHMgb24geW91ciBwYWdlLiBXaGVuIHRoZQoJCW1vZHVsZSBpcyBpbnN0YWxsZWQsIGEgQ2FsZW5kYXIgYWRtaW4gcGFnZSBpcyBhZGRlZCB0byB0aGUgY29udGVudCBtZW51CgkJdGhhdCB3aWxsIGFsbG93IHlvdSB0byBtYW5hZ2UgeW91ciBldmVudHMuPC9wPiI7CgokbGFuZ1snZGVmYXVsdGNhbGVuZGFycGFnZSddID0gJ0RlZmF1bHQgZXZlbnQgdmlldyBwYWdlJzsKJGxhbmdbJ3VwbG9hZGRpcmVjdG9yeSddID0gJ0RpcmVjdG9yeSB3aGVyZSBmaWxlIHVwbG9hZHMgc2hvdWxkIGJlIHBsYWNlZCc7CiRsYW5nWyd1cGxvYWRmaWxldHlwZXMnXSA9ICdBbGxvd2VkIGZpbGUgdHlwZXMnOwokbGFuZ1sndXBsb2FkdW5pcXVlJ10gPSAnRW5zdXJlIHVuaXF1ZSBmaWxlbmFtZXMnOwoKJGxhbmdbJ2NhbF9yZWN1cl9wZXJpb2QnXSA9ICdSZWN1cnMnOwokbGFuZ1snY2FsX3JlY3VyX3VudGlsJ10gPSAnUmVjdXJzIFVudGlsJzsKCgokbGFuZ1snaGVscF90ZW1wbGF0ZSddID0gJwo8cD48Yj5QcmludCBBdXRob3IgTmFtZTo8L2I+PC9wPgo8Y29kZT5BdXRob3I6IHskZXZlbnQuYXV0aG9ybmFtZX08L2NvZGU+Cic7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/ca_ES.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ21heCddID0gJ20mYWdyYXZlO3hpbSc7CiRsYW5nWyd0aW1lcyddID0gJ3ZlZ2FkZXMnOwokbGFuZ1snb24nXSA9ICdhJzsKJGxhbmdbJ2FyZXlvdXN1cmVfdW5pbnN0YWxsJ10gPSAnTiYjMDM5O2VzdCZhZ3JhdmU7cyBzZWd1ciBxdWUgdm9scyBmZXIgYWl4Jm9ncmF2ZTs/IFNpIGNvbnRpbnVlcywgZXNib3JyYXImYWdyYXZlO3MgcGVybWFuZW50bWVudCB0b3RlcyBsZXMgZGFkZXMgYXNzb2NpYWRlcyBhIGFxdWVzdCBtJm9ncmF2ZTtkdWwuJzsKJGxhbmdbJ3Bvc3RfdW5pbnN0YWxsJ10gPSAnRWwgbSZvZ3JhdmU7ZHVsIENhbGVuZGFyaSBoYSBlc3RhdCBkZXNpbnN0YWwubGF0IGkgdG90YSBsYSBpbmZvcm1hY2kmb2FjdXRlOyBkJiMwMzk7ZXNkZXZlbmltZW50cyBpIHBsYW54ZXRlcyBhc3NpY2lhZGEgYSBhcXVlc3QgbSZvZ3JhdmU7ZHVsIGhhIGVzdGF0IGVsaW1pbmFkYS4nOwokbGFuZ1snZmllbGR1cGRhdGVkJ10gPSAnQ2FtcCBhY3R1YWxpdHphdCc7CiRsYW5nWydldmVyeSddID0gJ0NhZGEnOwokbGFuZ1snb3InXSA9ICdvJzsKJGxhbmdbJ3VwZGF0ZV9jaGlsZHJlbiddID0gJ0FjdHVhbGl0emEgZWxzIGV2ZW50IGZpbGxzJzsKJGxhbmdbJ2Vycm9yX25vY2F0ZWdvcnknXSA9ICdDYWwgcXVlIHRyaSZpdW1sO3MgYWxlbW55cyB1bmEgY2F0ZWdvcmlhJzsKJGxhbmdbJ2Vycm9yX25vdGhpbmdzZWxlY3RlZCddID0gJ05vIHMmIzAzOTtoYSB0cmlhdCByZXMgcGVyIGVzYm9ycmFyJzsKJGxhbmdbJ2Vycm9yX2V2ZW50b3ZlcmxhcCddID0gJ0VscyBwYXImYWdyYXZlO21ldHJlcyBxdWUgaGFzIGVzcGVjaWZpY2F0IHBlciBsJiMwMzk7ZXNkZXZlbmltZW50IHJlY3VycmVudCByZXN1bHRhcmFuIGVuIGVzZGV2ZW5pbWVudHMgc29icmVwb3NhdHMuJzsKJGxhbmdbJ3JlY3VycyddID0gJ1JlcGV0ZWl4JzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfZGF0ZXMnXSA9ICdVbmEgbyBtJmVhY3V0ZTtzIGRlIGxlcyBkYXRlcyBlbnRyYWRlcyBlcmEgaW52JmFncmF2ZTtsaWRhJzsKJGxhbmdbJ3N1bmRheSddID0gJ0RpdW1lbmdlJzsKJGxhbmdbJ21vbmRheSddID0gJ0RpbGx1bnMnOwokbGFuZ1sndHVlc2RheSddID0gJ0RpbWFydHMnOwokbGFuZ1snd2VkbmVzZGF5J10gPSAnRGltZWNyZXMnOwokbGFuZ1sndGh1cnNkYXknXSA9ICdEaWpvdXMnOwokbGFuZ1snZnJpZGF5J10gPSAnRGl2ZW5kcmVzJzsKJGxhbmdbJ3NhdHVyZGF5J10gPSAnRGlzc2FidGUnOwokbGFuZ1snYWJicl9zdW5kYXknXSA9ICdEZyc7CiRsYW5nWydhYmJyX21vbmRheSddID0gJ0RsJzsKJGxhbmdbJ2FiYnJfdHVlc2RheSddID0gJ0RtJzsKJGxhbmdbJ2FiYnJfd2VkbmVzZGF5J10gPSAnRGMnOwokbGFuZ1snYWJicl90aHVyc2RheSddID0gJ0RqJzsKJGxhbmdbJ2FiYnJfZnJpZGF5J10gPSAnRHYnOwokbGFuZ1snYWJicl9zYXR1cmRheSddID0gJ0RzJzsKJGxhbmdbJ3dlZWtkYXlzJ10gPSAnRGllcyBkZSBjYWRhIGRpYSc7CiRsYW5nWydwbHVyYWxfZGFpbHknXSA9ICdEaWVzJzsKJGxhbmdbJ3BsdXJhbF93ZWVrbHknXSA9ICdTZXRtYW5lcyc7CiRsYW5nWydwbHVyYWxfbW9udGhseSddID0gJ01lc29zJzsKJGxhbmdbJ3BsdXJhbF95ZWFybHknXSA9ICdBbnlzJzsKJGxhbmdbJ25vJ10gPSAnTm8nOwokbGFuZ1snZGFpbHknXSA9ICdEaSZhZ3JhdmU7cmlhbWVudCc7CiRsYW5nWyd3ZWVrbHknXSA9ICdTZXRtYW5hbG1lbnQnOwokbGFuZ1snbW9udGhseSddID0gJ01lbnN1YWxtZW50JzsKJGxhbmdbJ3llYXJseSddID0gJ0FudWFsbWFuZXQnOwokbGFuZ1snaW50ZXJ2YWwnXSA9ICdSZXBldGVpeCBjYWRhJzsKJGxhbmdbJ2NhbF9yZWN1cl9kZXRhaWxzJ10gPSAnRGV0YWxscyBkJiMwMzk7ZXNkZXZlbmltZW50IHJlY3VycmVudC4nOwokbGFuZ1sndW5saW1pdGVkJ10gPSAnSWwubGltaXRhdCc7CiRsYW5nWydtYXhfcmVjdXJfZXZlbnRzJ10gPSAnTm9tYnJlIG0mYWdyYXZlO3hpbSBkJiMwMzk7ZXNkZXZlbmltZW50cyBmaWxscyc7CiRsYW5nWyd1c2VfdG9fZGF0ZSddID0gJ0VzcGVjaWZpY2EgdW5hIGRhdGEgZGUgZmluYWwgZGlmZXJlbnQ/JzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbC5sYSc7CiRsYW5nWydzaG93X2NoaWxkX2V2ZW50cyddID0gJ01vc3RyYSBlc2RldmVuaW1lbnRzIGZpbGxzIDxlbT4ocG90IHJlc3VsdGFyIGVuIHVuYSBsbGlzdGEgbW9sdCBsbGFyZ2EpPC9lbT4nOwokbGFuZ1snbi9hJ10gPSAnbi9hJzsKJGxhbmdbJ3JlY3Vyc191bnRpbCddID0gJ1JlcGV0aXIgZmlucyc7CiRsYW5nWydwYXJlbnQnXSA9ICdQYXJlJzsKJGxhbmdbJ3JlY3VyX3BlcmlvZCddID0gJ1BlcmlvZGUgZGUgcmVwZXRpY2kmb2FjdXRlOyc7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0cmUnOwokbGFuZ1snc3RhcnRfZGF0ZSddID0gJ0RhdGEgaW5pY2lhbCc7CiRsYW5nWydlbmRfZGF0ZSddID0gJ0RhdGEgZmluYWwnOwokbGFuZ1snaW5mb191cGNvbWluZ2xpc3RfdGVtcGxhdGVfdGFiJ10gPSAnTGEgbGxpc3RhIGRlIHBsYW50aWxsZXMgcXVlIGVzdGFuIGRpc3BvbmlibGVzIHBlciBsZXMgdmlzdGVzIGRlIFByb3BlcnMgRXNkZXZlJzsKJGxhbmdbJ3VwY29taW5nbGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZmVnZWl4L21vZGlmaWNhIHVuYSBwbGFudGlsbGEgZCYjMDM5O0VzZGV2ZW5pbWVudCBQcm9wZXInOwokbGFuZ1snaW5mb19zeXNkZmx0X3VwY29taW5nbGlzdF90ZW1wbGF0ZSddID0gJ1N5c3RlbSBEZWZhdWx0IFVwY29taW5nbGlzdCBUZW1wbGF0ZSc7CiRsYW5nWydpbmZvX2xpc3RfdGVtcGxhdGVfdGFiJ10gPSAnVGhlIGxpc3Qgb2YgdGVtcGxhdGVzIHRoYXQgYXJlIGF2YWlsYWJsZSBmb3IgbGlzdCB2aWV3cyc7CiRsYW5nWydsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IGFuIExpc3QgRGlzcGxheSBUZW1wbGF0ZSc7CiRsYW5nWydpbmZvX3N5c2RmbHRfbGlzdF90ZW1wbGF0ZSddID0gJ1N5c3RlbSBEZWZhdWx0IExpc3QgVGVtcGxhdGUnOwokbGFuZ1snaW5mb19ldmVudF90ZW1wbGF0ZV90YWInXSA9ICdUaGUgbGlzdCBvZiB0ZW1wbGF0ZXMgdGhhdCBhcmUgYXZhaWxhYmxlIGZvciBldmVudCB2aWV3cyc7CiRsYW5nWydldmVudHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBhbiBFdmVudCBEaXNwbGF5IFRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9ldmVudF90ZW1wbGF0ZSddID0gJ1N5c3RlbSBEZWZhdWx0IEV2ZW50IFRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fY2FsZW5kYXJfdGVtcGxhdGVfdGFiJ10gPSAnVGhlIGxpc3Qgb2YgdGVtcGxhdGVzIHRoYXQgYXJlIGF2YWlsYWJsZSBmb3IgY2FsZW5kYXIgdmlld3MnOwokbGFuZ1snY2FsZW5kYXJ0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgYSBDYWxlbmRhciBEaXNwbGF5IFRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9jYWxlbmRhcl90ZW1wbGF0ZSddID0gJ1N5c3RlbSBEZWZhdWx0IENhbGVuZGFyIFRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF90ZW1wbGF0ZSddID0gJ1RoaXMgZm9ybSBkZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHdpbGwgYmUgdXNlZCB3aGVuIHlvdSBjbGljayAmcXVvdDtOZXcgVGVtcGxhdGUmcXVvdDsgaW4gdGhlIGFwcHJvcHJpYXRlIHRhYi4gIENoYW5naW5nIHRoaXMgdmFsdWUgd2lsbCBoYXZlIG5vIGltbWVkaWF0ZSBlZmZlY3Qgb24gdGhlIGRpc3BsYXlzIGdlbmVyYXRlZCBmcm9tIHRoaXMgbW9kdWxlLic7CiRsYW5nWydldmVudGRlc2MtRXZlbnRBZGRlZCddID0gJ0NyaWRhdCBkZXNwciZlYWN1dGU7cyBkJiMwMzk7YWZlZ2lyIHVuIGVzZGV2ZW5pbWVudCBkZWwgY2FsZW5kYXJpJzsKJGxhbmdbJ2V2ZW50ZGVzYy1FdmVudEVkaXRlZCddID0gJ0NyaWRhdCBkZXNwciZlYWN1dGU7cyBkZSBtb2RpaWZjYXIgdW4gZXNkZXZlbmltZW50IGRlbCBjYWxlbmRhcmknOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50RGVsZXRlZCddID0gJ0NyaWRhdCBkZXNwciZlYWN1dGU7cyBkJiMwMzk7ZXNib3JyYSB1biBlc2RldmVuaW1lbnQnOwokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5QWRkZWQnXSA9ICdDcmlkYXRzIGRlc3ByJmVhY3V0ZTtzIGRlIGNyZWFyIHVuYSBjYXRlZ29yaWEnOwokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5RWRpdGVkJ10gPSAnQ3JpZGF0IGRlc3ByJmVhY3V0ZTtzIGRlIG1vZGlmaWNhciB1bmEgY2F0ZWdvcmlhJzsKJGxhbmdbJ2V2ZW50ZGVzYy1DYXRlZ29yeURlbGV0ZWQnXSA9ICdDcmlkYXQgZGVzcHImZWFjdXRlO3MgZCYjMDM5O2VzYm9ycmFyIHVuYSBjYXRlZ29yaWEnOwokbGFuZ1snZXZlbnRoZWxwLUV2ZW50QWRkZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBldmVudCBpcyBhZGRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2V2ZW50X3RpdGxlXCZxdW90OyAtIEV2ZW50IFRpdGxlPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfc3VtbWFyeVwmcXVvdDsgLSBTdW1tYXJ5IFRleHQ8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kZXRhaWxzXCZxdW90OyAtIERldGFpbGVkIERlc2NyaXB0aW9uPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGF0ZV9zdGFydFwmcXVvdDsgLSBUaGUgZXZlbnQgc3RhcnQgZGF0ZS90aW1lPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGF0ZV9lbmRcJnF1b3Q7IC0gVGhlIGV2ZW50IGVuZCBkYXRlL3RpbWU8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9jcmVhdGVkX2J5XCZxdW90OyAtIFRoZSB1c2VyaWQgb2YgdGhlIGF1dGhvcjwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2lkXCZxdW90OyAtIFRoZSBldmVudCBpZDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50aGVscC1FdmVudEVkaXRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGV2ZW50IGlzIGVkaXRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2V2ZW50X3RpdGxlXCZxdW90OyAtIEV2ZW50IFRpdGxlPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfc3VtbWFyeVwmcXVvdDsgLSBTdW1tYXJ5IFRleHQ8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kZXRhaWxzXCZxdW90OyAtIERldGFpbGVkIERlc2NyaXB0aW9uPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGF0ZV9zdGFydFwmcXVvdDsgLSBUaGUgZXZlbnQgc3RhcnQgZGF0ZS90aW1lPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGF0ZV9lbmRcJnF1b3Q7IC0gVGhlIGV2ZW50IGVuZCBkYXRlL3RpbWU8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9jcmVhdGVkX2J5XCZxdW90OyAtIFRoZSB1c2VyaWQgb2YgdGhlIGF1dGhvcjwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2lkXCZxdW90OyAtIFRoZSBldmVudCBpZDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50aGVscC1FdmVudERlbGV0ZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBldmVudCBpcyBkZWxldGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7ZXZlbnRfaWRcJnF1b3Q7IC0gVGhlIGV2ZW50IGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5QWRkZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBjYXRlZ29yeSBpcyBhZGRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2NhdGVnb3J5X2lkXCZxdW90OyAtIFRoZSBjYXRlZ29yeSBpZDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50aGVscC1DYXRlZ29yeUVkaXRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGNhdGVnb3J5IGlzIGVkaXRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2NhdGVnb3J5X2lkXCZxdW90OyAtIFRoZSBjYXRlZ29yeSBpZDwvbGk+DQo8bGk+XCZxdW90O2NhdGVnb3J5X25hbWVcJnF1b3Q7IC0gVGhlIGNhdGVnb3J5IG5hbWU8L2xpPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9vcmRlclwmcXVvdDsgLSBUaGUgY2F0ZWdvcnkgc29ydCBvcmRlcjwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50aGVscC1DYXRlZ29yeURlbGV0ZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBjYXRlZ29yeSBpcyBkZWxldGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfaWRcJnF1b3Q7IC0gVGhlIGNhdGVnb3J5IGlkPC9saT4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfbmFtZVwmcXVvdDsgLSBUaGUgY2F0ZWdvcnkgbmFtZTwvbGk+DQo8bGk+XCZxdW90O2NhdGVnb3J5X29yZGVyXCZxdW90OyAtIFRoZSBjYXRlZ29yeSBzb3J0IG9yZGVyPC9saT4NCjwvdWw+DQonOwokbGFuZ1snbXNnX2V2ZW50YWRkZWQnXSA9ICdFdmVudCBBZGRlZCc7CiRsYW5nWydlcnJvcl9ub2V2ZW50bmFtZSddID0gJ0EgbmFtZSBmb3IgdGhlIGV2ZW50IGlzIHJlcXVpcmVkJzsKJGxhbmdbJ2Vycm9yX25vdXBsb2FkJ10gPSAnRVJST1I6IE5vIHVwbG9hZGVkIGZpbGUgZm91bmQnOwokbGFuZ1snZXJyb3JfaW52YWxpZGZpbGVuYW1lJ10gPSAnRVJST1I6IFRoZSBmaWxlIHVwbG9hZGVkIGNhbm5vdCBiZSBhY2NlcHRlZCc7CiRsYW5nWydlcnJvcl9wcm9ibGVtd2l0aHVwbG9hZCddID0gJ0VSUk9SOiBBIHByb2JsZW0gb2NjdXJyZWQgdHJ5aW5nIHRvIHVwbG9hZCB0aGUgZmlsZSc7CiRsYW5nWydlcnJvcl9maWxlY29weWZhaWxlZCddID0gJ0VSUk9SOiBBIFByb2JsZW0gb2NjdXJyZWQgd2hlbiBjb3B5aW5nIHRoZSBmaWxlIHRvIGl0cyBmaW5hbCBkZXN0aW5hdGlvbic7CiRsYW5nWydlcnJvcl9maWxlZXhpc3RzJ10gPSAnRVJST1I6IEEgZmlsZSBieSB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snZXJyb3JfY3N2ZmlsZW5vdGZvdW5kJ10gPSAnRVJST1I6IENvdWxkIG5vdCBmaW5kIHRoZSBDU1YgRmlsZSc7CiRsYW5nWydlcnJvcl9jYW50b3BlbmZpbGUnXSA9ICdFUlJPUjogQ2Fubm90IG9wZW4gZmlsZSc7CiRsYW5nWydlcnJvcl9jYXRlZ29yeWV4aXN0cyddID0gJ0VSUk9SOiBBIGNhdGVnb3J5IHdpdGggdGhlIG5hbWUgJXMgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snY2FsX2lkJ10gPSAnSWQnOwokbGFuZ1snY2FsX2NhbGVuZGFyJ10gPSAnQ2FsZW5kYXInOwokbGFuZ1snY2FsX2RlZmF1bHRfdGVtcGxhdGVzJ10gPSAnRGVmYXVsdCBUZW1wbGF0ZXMnOwokbGFuZ1snY2FsX2Rlc2NyaXB0aW9uJ10gPSAnQSBmdWxsIGZlYXR1cmVkLCBhbmQgZmxleGlibGUgbW9kdWxlIHRvIGFsbG93IGRpc3BsYXlpbmcgaW5mb3JtYXRpb24gYWJvdXQgZXZlbnRzIGluIG51bWVyb3VzIGZvcm1hdHMuJzsKJGxhbmdbJ2NhbF9hZGRldmVudCddID0gJ0FkZCBFdmVudCc7CiRsYW5nWydjYWxfaW1wb3J0X2V2ZW50cyddID0gJ0ltcG9ydCBFdmVudHMnOwokbGFuZ1snY2FsX2V2ZW50cyddID0gJ0V2ZW50cyc7CiRsYW5nWydjYWxfY2F0ZWdvcmllcyddID0gJ0NhdGVnb3JpZXMnOwokbGFuZ1snY2FsX2NhbGVuZGFyX3RlbXBsYXRlJ10gPSAnQ2FsZW5kYXIgVGVtcGxhdGVzJzsKJGxhbmdbJ2NhbF9saXN0X3RlbXBsYXRlJ10gPSAnTGlzdCBUZW1wbGF0ZXMnOwokbGFuZ1snY2FsX3VwY29taW5nbGlzdF90ZW1wbGF0ZSddID0gJ1VwY29taW5nIFRlbXBsYXRlcyc7CiRsYW5nWydjYWxfZXZlbnRfdGVtcGxhdGUnXSA9ICdFdmVudCBUZW1wbGF0ZXMnOwokbGFuZ1snY2FsX3NldHRpbmdzJ10gPSAnU2V0dGluZ3MnOwokbGFuZ1snY2FsX3ByZXYnXSA9ICcmbGFxdW87IFByZXYnOwokbGFuZ1snY2FsX25leHQnXSA9ICdOZXh0ICZyYXF1bzsnOwokbGFuZ1snY2FsX2NhdGVnb3JpZXNfdXBkYXRlZCddID0gJ0NhdGVnb3JpZXMgVXBkYXRlZCc7CiRsYW5nWydjYWxfc2V0dGluZ3NfdXBkYXRlZCddID0gJ1NldHRpbmdzIFVwZGF0ZWQnOwokbGFuZ1snY2FsX2FkZF9ldmVudCddID0gJ0FkZCBFdmVudCc7CiRsYW5nWydjYWxfZWRpdCddID0gJ0VkaXQnOwokbGFuZ1snY2FsX2RlbGV0ZSddID0gJ0RlbGV0ZSc7CiRsYW5nWydjYWxfYXJleW91c3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUnOwokbGFuZ1snY2FsX3VwZGF0ZV90ZW1wbGF0ZSddID0gJ1VwZGF0ZSBUZW1wbGF0ZSc7CiRsYW5nWydjYWxfc3VuZGF5J10gPSAnRGl1bWVuZ2UnOwokbGFuZ1snY2FsX21vbmRheSddID0gJ0RpbGx1bnMnOwokbGFuZ1snY2FsX3R1ZXNkYXknXSA9ICdEaW1hcnRzJzsKJGxhbmdbJ2NhbF93ZWRuZXNkYXknXSA9ICdEaW1lY3Jlcyc7CiRsYW5nWydjYWxfdGh1cnNkYXknXSA9ICdEaWpvdXMnOwokbGFuZ1snY2FsX2ZyaWRheSddID0gJ0RpdmVuZHJlcyc7CiRsYW5nWydjYWxfc2F0dXJkYXknXSA9ICdEaXNzYWJ0ZSc7CiRsYW5nWydjYWxfc3VuJ10gPSAnRGcnOwokbGFuZ1snY2FsX21vbiddID0gJ0RsJzsKJGxhbmdbJ2NhbF90dWVzJ10gPSAnRG0nOwokbGFuZ1snY2FsX3dlZCddID0gJ0RjJzsKJGxhbmdbJ2NhbF90aHVycyddID0gJ0RqJzsKJGxhbmdbJ2NhbF9mcmknXSA9ICdEdic7CiRsYW5nWydjYWxfc2F0J10gPSAnRHMnOwokbGFuZ1snY2FsX2phbnVhcnknXSA9ICdHZW5lcic7CiRsYW5nWydjYWxfZmVicnVhcnknXSA9ICdGZWJyZXInOwokbGFuZ1snY2FsX21hcmNoJ10gPSAnTWFyJmNjZWRpbDsnOwokbGFuZ1snY2FsX2FwcmlsJ10gPSAnQWJyaWwnOwokbGFuZ1snY2FsX21heSddID0gJ01haWcnOwokbGFuZ1snY2FsX2p1bmUnXSA9ICdKdW55JzsKJGxhbmdbJ2NhbF9qdWx5J10gPSAnSnVsaW9sJzsKJGxhbmdbJ2NhbF9hdWd1c3QnXSA9ICdBZ29zdCc7CiRsYW5nWydjYWxfc2VwdGVtYmVyJ10gPSAnU2V0ZW1icmUnOwokbGFuZ1snY2FsX29jdG9iZXInXSA9ICdPY3R1YnJlJzsKJGxhbmdbJ2NhbF9ub3ZlbWJlciddID0gJ05vdmVtYnJlJzsKJGxhbmdbJ2NhbF9kZWNlbWJlciddID0gJ0Rlc2VtYnJlJzsKJGxhbmdbJ2NhbF9hZGQnXSA9ICdBZmVnZWl4JzsKJGxhbmdbJ2NhbF91cGRhdGUnXSA9ICdNb2RpZmljYSc7CiRsYW5nWydjYWxfZXZlbnQnXSA9ICdFc2RldmVuaW1lbnQnOwokbGFuZ1snY2FsX2RhdGUnXSA9ICdEYXRhJzsKJGxhbmdbJ2NhbF9zdW1tYXJ5J10gPSAnUmVzdW0nOwokbGFuZ1snY2FsX2RldGFpbHMnXSA9ICdEZXRhbGxzJzsKJGxhbmdbJ2NhbF9tb3JlJ10gPSAnbSZlYWN1dGU7cyA+Pic7CiRsYW5nWydjYWxfcmV0dXJuJ10gPSAnVHJvbmEnOwokbGFuZ1snY2FsX3RvJ10gPSAndG9hJzsKJGxhbmdbJ2NhbF9wYXN0X2V2ZW50cyddID0gJ0VzZGV2ZW5pbWVudHMgcGFzc2F0cyc7CiRsYW5nWydjYWxfdXBjb21pbmdfZXZlbnRzJ10gPSAnRXNkZXZlbmltZW50cyBwcm9wZXJzJzsKJGxhbmdbJ2NhbF9hbnlfY2F0ZWdvcnknXSA9ICdRdWFsc2V2b2wgY2F0ZWdvcmlhJzsKJGxhbmdbJ2NhbF9zaG93X29ubHlfZXZlbnRzX2luJ10gPSAnTW9zdHJhIG5vbSZlYWN1dGU7cyBlc2RldmVuaW1lbnRzIGVuICc7CiRsYW5nWydjYWxfZmlsdGVyX2J5J10gPSAnRmlsdHJhIFQmaWFjdXRlO3RvbCBwZXIgPGVtPihyZWdleCk8L2VtPic7CiRsYW5nWydjYWxfZ28nXSA9ICdWJmVhY3V0ZTtzJzsKJGxhbmdbJ2NhbF90aXRsZSddID0gJ1QmaWFjdXRlO3RvbCc7CiRsYW5nWydjYWxfZnJvbWRhdGUnXSA9ICdEZXMgZGUgbGEgZGF0YSc7CiRsYW5nWydjYWxfdG9kYXRlJ10gPSAnQSBsYSBkYXRhJzsKJGxhbmdbJ2NhbF91cGRhdGVfY2F0ZWdvcmllcyddID0gJ01vZGlmaWNhIGNhdGVnb3JpZXMnOwokbGFuZ1snY2FsX2xhbmd1YWdlJ10gPSAnSWRpb21hJzsKJGxhbmdbJ2NhbF91cGRhdGVzZXR0aW5ncyddID0gJ0FjdHVhbGl0emEgdmFsb3MgZGUgY29uZmlndXJhY2kmb2FjdXRlOyc7CiRsYW5nWydjYWxfdXNlX3R3ZWx2ZV9ob3VyX2Nsb2NrJ10gPSAnVXRpbGl0emEgcmVsbG90Z2UgZGUgZG90emUgaG9yZXMgZW4gZWxzIGRlc3BsZWdhYmxlcz8nOwokbGFuZ1snY2FsX2RlZmF1bHRfY2F0ZWdvcnknXSA9ICdDYXRlZ29yaWEgcGVyIGRlZmVjdGUnOwokbGFuZ1snY2FsX3VwZGF0ZV9maWVsZHMnXSA9ICdNb2RpZmljYSBjYW1wcyc7CiRsYW5nWydmb3JjZV9jYXRlZ29yeSddID0gJ0ZvciZjY2VkaWw7YSBhbG1lbnlzIHVuYSBjYXRlZ29yaWEnOwokbGFuZ1snc2hvd3Bhc3R5ZWFycyddID0gJ1F1YW50cyBhbnlzIGNhcCBhbCBwYXNzYXQgZXMgcGVybWV0ZW4nOwokbGFuZ1snc2hvd2Z1dHVyZXllYXJzJ10gPSAnUXVhbnRzIGFueXMgY2FwIGFsIGZ1dHVyIGVzIHBlcm1ldGVuJzsKJGxhbmdbJ2hpZGVzdW1tYXJ5J10gPSAnQ2FsIG9jdWx0YXIgZWwgY2FtcCBkZSByZXN1bSc7CiRsYW5nWydoaWRlY29udGVudCddID0gJ0NhbCBvY3VsdGFyIGVsIGNhbXAgZGUgY29udGluZ3V0JzsKJGxhbmdbJ2NhdGVnb3J5X3JlbWluZGVyJ10gPSAnU2kgZXQgcGxhdSwgdHJpYSB1bmEgbyBtJmVhY3V0ZTtzIGNhdGVnb3JpZXMgcGVyIGwmIzAzOTtlc2RldmVuaW1lbnQnOwokbGFuZ1snbW9kdWxlX2V4YW1wbGVfc3R5bGVzaGVldCddID0gJ0V4ZW1wbGUgZGUgQ2FsZW5kYXJpIENTUyc7CiRsYW5nWydlcnJvcl9wZXJtaXNzaW9uJ10gPSAnWW91IG5lZWQgdGhlIGFwcHJvcHJpYXRlIHBlcm1pc3Npb24gKCVzKSB0byBhY2Nlc3MgdGhpcyBmdW5jdGlvbmFsaXR5JzsKJGxhbmdbJ2luc3RhbGxfcG9zdG1lc3NhZ2UnXSA9ICdNYWtlIHN1cmUgdG8gc2V0IHRoZSAmcXVvdDtNb2RpZnkgQ2FsZW5kYXImcXVvdDsgcGVybWlzc2lvbiBvbiB1c2VycyB3aG8gd2lsbCBiZSBhZG1pbmlzdGVyaW5nIGNhbGVuZGFyIGV2ZW50cy4nOwokbGFuZ1snZGVsZXRldGFnZ2VkJ10gPSAnRGVsZXRlIHRhZ2dlZCBldmVudHMnOwokbGFuZ1snY29uZmlybWRlbGV0ZXRhZ2dlZCddID0gJ0FyZSB5b3Ugc3VyZSB0aGVzZSBldmVudHMgc2hvdWxkIGJlIGRlbGV0ZWQ/JzsKJGxhbmdbJ3RhZ2dlZGRlbGV0ZWQnXSA9ICdUYWdnZWQgZXZlbnRzIHN1Y2Nlc3NmdWxseSBkZWxldGVkJzsKJGxhbmdbJ3RlbXBsYXRlcyddID0gJ1RlbXBsYXRlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9oZWxwJ10gPSAnVGVtcGxhdGUgSGVscCc7CiRsYW5nWydmaWxlX3RlbXBsYXRlcyddID0gJ0ZpbGUgVGVtcGxhdGVzJzsKJGxhbmdbJ2FkZHRlbXBsYXRlJ10gPSAnQWRkIFRlbXBsYXRlJzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUnOwokbGFuZ1sndGVtcGxhdGVuYW1ldGV4dCddID0gJ1RlbXBsYXRlIE5hbWUnOwokbGFuZ1snZWRpdHRlbXBsYXRlJ10gPSAnRWRpdCBUZW1wbGF0ZSc7CiRsYW5nWydkZWxldGV0ZW1wbGF0ZSddID0gJ0RlbGV0ZSBUZW1wbGF0ZSc7CiRsYW5nWyduZXd0ZW1wbGF0ZSddID0gJ05ldyBUZW1wbGF0ZSBOYW1lJzsKJGxhbmdbJ3RlbXBsYXRlbmFtZWV4aXN0cyddID0gJ0Vycm9yOiBBIHRlbXBsYXRlIHdpdGggdGhhdCBuYW1lIGFscmVhZHkgZXhpc3RzLiBQbGVhc2UgY2hvb3NlIGEgZGlmZmVyZW50IG5hbWUuJzsKJGxhbmdbJ3RlbXBsYXRlaW1wb3J0ZWQnXSA9ICdUaGUgdGVtcGxhdGUgd2FzIHN1Y2Vzc2Z1bGx5IGltcG9ydGVkIGludG8gdGhlIGRhdGFiYXNlIGFuZCBpcyBub3cgaW5zdGFsbGVkIGZvciB1c2UuJzsKJGxhbmdbJ3ZpZXdfZGVmYXVsdF9zdHlsZXNoZWV0J10gPSAnVmlldyBEZWZhdWx0IFN0eWxlc2hlZXQnOwokbGFuZ1snZmlsZW5hbWUnXSA9ICdGaWxlbmFtZSc7CiRsYW5nWydpbXBvcnR0ZW1wbGF0ZSddID0gJ0ltcG9ydCBUZW1wbGF0ZSc7CiRsYW5nWyd0ZW1wbGF0ZV9kZWxldGVkJ10gPSAnVGhlIHRlbXBsYXRlIHdhcyBzdWNjZXNzZnVsbHkgZGVsZXRlZCBmcm9tIHRoZSBkYXRhYmFzZS4nOwokbGFuZ1sndXBkYXRldGVtcGxhdGVzdWNjZXNzJ10gPSAnVGhlIHRlbXBsYXRlIHdhcyB1cGRhdGVkIHN1Y2Nlc3NmdWxseSc7CiRsYW5nWyd1cGRhdGV0ZW1wbGF0ZWZhaWx1cmUnXSA9ICdBbiBlcnJvciBvY2N1cnJlZCB1cGRhdGluZyB0aGUgdGVtcGxhdGUnOwokbGFuZ1snc2V0dGluZ3NzYXZlZCddID0gJ1NldHRpbmdzIHdhcyBzYXZlZCBzdWNjZXNzZnVsbHknOwokbGFuZ1snY2F0ZWdvcnlkZWxldGVkJ10gPSAnQ2F0ZWdvcnkgZGVsZXRlZCc7CiRsYW5nWydjYXRlZ29yeXVwZGF0ZWQnXSA9ICdDYXRlZ29yeSB1cGRhdGVkJzsKJGxhbmdbJ2NhdGVnb3J5YWRkZWQnXSA9ICdDYXRlZ29yeSBhZGRlZCc7CiRsYW5nWydldmVudGRlbGV0ZWQnXSA9ICdUaGUgZXZlbnQgd2FzIGRlbGV0ZWQnOwokbGFuZ1snZXZlbnR1cGRhdGVkJ10gPSAnVGhlIGV2ZW50IHdhcyB1cGRhdGVkJzsKJGxhbmdbJ2RlZmF1bHRfcGFnZV9lcnJvciddID0gJ0Vycm9yOiBZb3UgbXVzdCBzZXQgYSBkZWZhdWx0IHBhZ2UgaW4gb3JkZXIgdG8gdXNlIENhbGVuZGFyIHdpdGggcHJldHR5IFVSTHMgdHVybmVkIG9uLiBQbGVhc2UgZ28gdG8gdGhlIENhbGVuZGFyIHNldHRpbmdzIHRhYiBhbmQgY2hvb3NlIG9uZS4nOwokbGFuZ1sndGltZV9hdCddID0gJ2F0JzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXBlJzsKJGxhbmdbJ25hbWUnXSA9ICdOYW1lJzsKJGxhbmdbJ29yZGVyJ10gPSAnT3JkZXInOwokbGFuZ1snZmllbGRhZGRlZCddID0gJ0ZpZWxkIFN1Y2Nlc3NmdWxseSBBZGRlZCc7CiRsYW5nWydmaWVsZGRlbGV0ZWQnXSA9ICdGaWVsZCBEZWxldGVkJzsKJGxhbmdbJ2ZpZWxkcyddID0gJ0N1c3RvbSBGaWVsZHMnOwokbGFuZ1sndGV4dGZpZWxkJ10gPSAnVGV4dCBGaWVsZCc7CiRsYW5nWyd1cGxvYWRmaWVsZCddID0gJ0ZpbGUgdXBsb2FkIGZpZWxkJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnPHA+Q2FsZW5kYXIgaXMgYSBtb2R1bGUgZm9yIGRpc3BsYXlpbmcgZXZlbnRzIG9uIHlvdXIgcGFnZS4gV2hlbiB0aGUNCgkJbW9kdWxlIGlzIGluc3RhbGxlZCwgYSBDYWxlbmRhciBhZG1pbiBwYWdlIGlzIGFkZGVkIHRvIHRoZSBjb250ZW50IG1lbnUNCgkJdGhhdCB3aWxsIGFsbG93IHlvdSB0byBtYW5hZ2UgeW91ciBldmVudHMuPC9wPic7CiRsYW5nWydkZWZhdWx0Y2FsZW5kYXJwYWdlJ10gPSAnRGVmYXVsdCBwYWdlIHRoYXQgY29udGFpbnMgQ2FsZW5kYXIuIFRoaXMgcGFnZSBtdXN0IGNvbnRhaW4gYSBTbWFydHkgdGFnIHRoYXQgY2FsbHMgQ2FsZW5kYXIuIFJlcXVpcmVkIGlmIHlvdSB1c2UgdGhlIHByZXR0eSBVUkxzLic7CiRsYW5nWyd1cGxvYWRkaXJlY3RvcnknXSA9ICdEaXJlY3Rvcnkgd2hlcmUgZmlsZSB1cGxvYWRzIHNob3VsZCBiZSBwbGFjZWQnOwokbGFuZ1sndXBsb2FkZmlsZXR5cGVzJ10gPSAnQWxsb3dlZCBmaWxlIHR5cGVzJzsKJGxhbmdbJ3VwbG9hZHVuaXF1ZSddID0gJ0Vuc3VyZSB1bmlxdWUgZmlsZW5hbWVzJzsKJGxhbmdbJ3RodW1iX3dpZHRoJ10gPSAnVGh1bWJuYWlsIFdpZHRoJzsKJGxhbmdbJ3RodW1iX2hlaWdodCddID0gJ1RodW1ibmFpbCBIZWlnaHQnOwokbGFuZ1snbGFyZ2Vfd2lkdGgnXSA9ICdMYXJnZSBJbWFnZSBXaWR0aCc7CiRsYW5nWydsYXJnZV9oZWlnaHQnXSA9ICdMYXJnZSBJbWFnZSBIZWlnaHQnOwokbGFuZ1snY2FsX3JlY3VyX3BlcmlvZCddID0gJ1JlY3Vycyc7CiRsYW5nWydjYWxfcmVjdXJfdW50aWwnXSA9ICdSZWN1cnMgVW50aWwnOwokbGFuZ1snaGVscF90ZW1wbGF0ZSddID0gJzxwPjxiPlByaW50IEF1dGhvciBOYW1lOjwvYj48L3A+DQo8Y29kZT5BdXRob3I6IHskZXZlbnQuYXV0aG9ybmFtZX08L2NvZGU+DQonOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/cs_CZ.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ21heCddID0gJ21heCc7CiRsYW5nWyd0aW1lcyddID0gJ2tyJmFhY3V0ZTt0JzsKJGxhbmdbJ29uJ10gPSAnbmEnOwokbGFuZ1snYXJleW91c3VyZV91bmluc3RhbGwnXSA9ICdPcHJhdmR1IHRvIGNoY2V0ZSBwcm92JmVhY3V0ZTtzdD8gIFRhdG8gYWtjZSBrb21wbGV0bsSbIHZ5bWHFvmUgZGF0YSBzcG9qZW4mYWFjdXRlOyBzIG1vZHVsZW0uJzsKJGxhbmdbJ3Bvc3RfdW5pbnN0YWxsJ10gPSAnTW9kdWwgS2FsZW5kJmFhY3V0ZTvFmSBieWwgb2RpbnN0YWxvdiZhYWN1dGU7biBhIHYmc2Nhcm9uO2VjaG55IHVkJmFhY3V0ZTtsb3N0aSBhICZzY2Fyb247YWJsb255IHMgbiZpYWN1dGU7bSBzcG9qZW4mZWFjdXRlOyBieWx5IG9kZWJyJmFhY3V0ZTtueS4nOwokbGFuZ1snZmllbGR1cGRhdGVkJ10gPSAnUG9sZSBieWxvIGFrdHVhbGl6b3YmYWFjdXRlO25vJzsKJGxhbmdbJ2V2ZXJ5J10gPSAnS2HFvmQmeWFjdXRlOyc7CiRsYW5nWydvciddID0gJ25lYm8nOwokbGFuZ1sndXBkYXRlX2NoaWxkcmVuJ10gPSAnQWt0dWFsaXpvdmF0IHZub8WZZW4mZWFjdXRlOyB1ZCZhYWN1dGU7bG9zdGknOwokbGFuZ1snZXJyb3Jfbm9jYXRlZ29yeSddID0gJ011cyZpYWN1dGU7dGUgdnlicmF0IG5lam0mZWFjdXRlO27EmyBqZWRudSBrYXRlZ29yaWknOwokbGFuZ1snZXJyb3Jfbm90aGluZ3NlbGVjdGVkJ10gPSAnTmljIG5lYnlsbyB2eWJyJmFhY3V0ZTtubyBrZSBzbWF6JmFhY3V0ZTtuJmlhY3V0ZTsnOwokbGFuZ1snZXJyb3JfZXZlbnRvdmVybGFwJ10gPSAnT3Bha292JmFhY3V0ZTtuJmlhY3V0ZTsgdWQmYWFjdXRlO2xvc3RpLCBrdGVyJmVhY3V0ZTsganN0ZSB6YWRhbGksIHpwxa9zb2ImaWFjdXRlOyBwxZlla3ImeWFjdXRlO3YmYWFjdXRlO24maWFjdXRlOyB1ZCZhYWN1dGU7bG9zdCZpYWN1dGU7Lic7CiRsYW5nWydyZWN1cnMnXSA9ICdPcGFrdWplIHNlJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfZGF0ZXMnXSA9ICdKZWRlbiBuZWJvIHYmaWFjdXRlO2NlIHphZGFuJnlhY3V0ZTtjaCBkYXR1bcWvIGplIG5lcGxhdG4meWFjdXRlO2NoJzsKJGxhbmdbJ3N1bmRheSddID0gJ05lZMSbbGUnOwokbGFuZ1snbW9uZGF5J10gPSAnUG9uZMSbbCZpYWN1dGU7JzsKJGxhbmdbJ3R1ZXNkYXknXSA9ICcmVWFjdXRlO3RlciZ5YWN1dGU7JzsKJGxhbmdbJ3dlZG5lc2RheSddID0gJ1N0xZllZGEnOwokbGFuZ1sndGh1cnNkYXknXSA9ICfEjHR2cnRlayc7CiRsYW5nWydmcmlkYXknXSA9ICdQJmFhY3V0ZTt0ZWsnOwokbGFuZ1snc2F0dXJkYXknXSA9ICdTb2JvdGEnOwokbGFuZ1snYWJicl9zdW5kYXknXSA9ICdOZSc7CiRsYW5nWydhYmJyX21vbmRheSddID0gJ1BvJzsKJGxhbmdbJ2FiYnJfdHVlc2RheSddID0gJyZVYWN1dGU7dCc7CiRsYW5nWydhYmJyX3dlZG5lc2RheSddID0gJ1N0JzsKJGxhbmdbJ2FiYnJfdGh1cnNkYXknXSA9ICfEjHQnOwokbGFuZ1snYWJicl9mcmlkYXknXSA9ICdQJmFhY3V0ZTsnOwokbGFuZ1snYWJicl9zYXR1cmRheSddID0gJ1NvJzsKJGxhbmdbJ3dlZWtkYXlzJ10gPSAnRG55IHYgdCZ5YWN1dGU7ZG51JzsKJGxhbmdbJ3BsdXJhbF9kYWlseSddID0gJ0RueSc7CiRsYW5nWydwbHVyYWxfd2Vla2x5J10gPSAnVCZ5YWN1dGU7ZG55JzsKJGxhbmdbJ3BsdXJhbF9tb250aGx5J10gPSAnTcSbcyZpYWN1dGU7Y2UnOwokbGFuZ1sncGx1cmFsX3llYXJseSddID0gJ1Jva3knOwokbGFuZ1snbm8nXSA9ICdOZSc7CiRsYW5nWydkYWlseSddID0gJ0Rlbm7Emyc7CiRsYW5nWyd3ZWVrbHknXSA9ICdUJnlhY3V0ZTtkbsSbJzsKJGxhbmdbJ21vbnRobHknXSA9ICdNxJtzJmlhY3V0ZTvEjW7Emyc7CiRsYW5nWyd5ZWFybHknXSA9ICdSb8SNbsSbJzsKJGxhbmdbJ2ludGVydmFsJ10gPSAnT3Bha292YXQnOwokbGFuZ1snY2FsX3JlY3VyX2RldGFpbHMnXSA9ICdEZXRhaWx5IG9wYWt1aiZpYWN1dGU7YyZpYWN1dGU7Y2ggc2UgdWQmYWFjdXRlO2xvc3QmaWFjdXRlOyc7CiRsYW5nWyd1bmxpbWl0ZWQnXSA9ICdOZW9tZXplbiZlYWN1dGU7JzsKJGxhbmdbJ21heF9yZWN1cl9ldmVudHMnXSA9ICdNYXhpbSZhYWN1dGU7bG4maWFjdXRlOyBwb8SNZXQgdm5vxZllbiZ5YWN1dGU7Y2ggdWQmYWFjdXRlO2xvc3QmaWFjdXRlOyc7CiRsYW5nWyd1c2VfdG9fZGF0ZSddID0gJ1VyxI1pdCBvZGxpJnNjYXJvbjtuJmVhY3V0ZTsgZGF0dW0ga29uY2UgdWQmYWFjdXRlO2xvc3RpPyc7CiRsYW5nWydjYW5jZWwnXSA9ICdTdG9ybm8nOwokbGFuZ1snc2hvd19jaGlsZF9ldmVudHMnXSA9ICdVayZhYWN1dGU7emF0IHZub8WZZW4mZWFjdXRlOyB1ZCZhYWN1dGU7bG9zdGkgPGVtPihzZXpuYW0gbcWvxb5lIGImeWFjdXRlO3QgdmVsbWkgZGxvdWgmeWFjdXRlOyk8L2VtPic7CiRsYW5nWyduL2EnXSA9ICduL2EnOwokbGFuZ1sncmVjdXJzX3VudGlsJ10gPSAnT3Bha292YXQgZG8nOwokbGFuZ1sncGFyZW50J10gPSAnU291xI0mYWFjdXRlO3N0IHVkJmFhY3V0ZTtsb3N0aSc7CiRsYW5nWydyZWN1cl9wZXJpb2QnXSA9ICdQZXJpb2RhIG9wYWtvdiZhYWN1dGU7biZpYWN1dGU7JzsKJGxhbmdbJ2ZpbHRlciddID0gJ0ZpbHRyJzsKJGxhbmdbJ3N0YXJ0X2RhdGUnXSA9ICdEYXR1bSB6YcSNJmFhY3V0ZTt0a3UnOwokbGFuZ1snZW5kX2RhdGUnXSA9ICdEYXR1bSBrb25jZSc7CiRsYW5nWydpbmZvX3VwY29taW5nbGlzdF90ZW1wbGF0ZV90YWInXSA9ICdTZXpuYW0gJnNjYXJvbjthYmxvbiwga3RlciZlYWN1dGU7IGpzb3UgayBkaXNwb3ppY2kgcHJvIHBvaGxlZCBuYSBidWRvdWMmaWFjdXRlOyB1ZCZhYWN1dGU7bG9zdGknOwokbGFuZ1sndXBjb21pbmdsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ1DFmWlkYXQvVXByYXZpdCAmc2Nhcm9uO2FibG9udSBzZXpuYW11IGJ1ZG91YyZpYWN1dGU7Y2ggdWQmYWFjdXRlO2xvc3QmaWFjdXRlOyc7CiRsYW5nWydpbmZvX3N5c2RmbHRfdXBjb21pbmdsaXN0X3RlbXBsYXRlJ10gPSAnUMWZZWRuYXN0YXZlbiZhYWN1dGU7ICZzY2Fyb247YWJsb25hIHNlem5hbXUgYnVkb3VjJmlhY3V0ZTtjaCB1ZCZhYWN1dGU7bG9zdCZpYWN1dGU7JzsKJGxhbmdbJ2luZm9fbGlzdF90ZW1wbGF0ZV90YWInXSA9ICdTZXpuYW0gJnNjYXJvbjthYmxvbiwga3RlciZlYWN1dGU7IGpzb3UgayBkaXNwb3ppY2kgcHJvIHBvaGxlZCBuYSBzZXpuYW0gdWQmYWFjdXRlO2xvc3QmaWFjdXRlOyc7CiRsYW5nWydsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ1DFmWlkYXQvVXByYXZpdCAmc2Nhcm9uO2FibG9udSBzZXpuYW11IHVkJmFhY3V0ZTtsb3N0JmlhY3V0ZTsnOwokbGFuZ1snaW5mb19zeXNkZmx0X2xpc3RfdGVtcGxhdGUnXSA9ICdQxZllZG5hc3RhdmVuJmFhY3V0ZTsgJnNjYXJvbjthYmxvbmEgc2V6bmFtdSB1ZCZhYWN1dGU7bG9zdCZpYWN1dGU7JzsKJGxhbmdbJ2luZm9fZXZlbnRfdGVtcGxhdGVfdGFiJ10gPSAnU2V6bmFtICZzY2Fyb247YWJsb24sIGt0ZXImZWFjdXRlOyBqc291IGsgZGlzcG96aWNpIHBybyBwb2hsZWQgbmEgamVkbm90bGl2b3UgdWQmYWFjdXRlO2xvc3QnOwokbGFuZ1snZXZlbnR0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnUMWZaWRhdC9VcHJhdml0ICZzY2Fyb247YWJsb251IGplZG5vdGxpdiZlYWN1dGU7IHVkJmFhY3V0ZTtsb3N0aSc7CiRsYW5nWydpbmZvX3N5c2RmbHRfZXZlbnRfdGVtcGxhdGUnXSA9ICdQxZllZG5hc3RhdmVuJmFhY3V0ZTsgJnNjYXJvbjthYmxvbmEgamVkbm90bGl2JmVhY3V0ZTsgdWQmYWFjdXRlO2xvc3RpJzsKJGxhbmdbJ2luZm9fY2FsZW5kYXJfdGVtcGxhdGVfdGFiJ10gPSAnU2V6bmFtICZzY2Fyb247YWJsb24sIGt0ZXImZWFjdXRlOyBqc291IGsgZGlzcG96aWNpIHBybyBwb2hsZWQgbmEga2FsZW5kJmFhY3V0ZTvFmSc7CiRsYW5nWydjYWxlbmRhcnRlbXBsYXRlX2FkZGVkaXQnXSA9ICdQxZlpZGF0L1VwcmF2aXQgJnNjYXJvbjthYmxvbnUga2FsZW5kJmFhY3V0ZTvFmWUnOwokbGFuZ1snaW5mb19zeXNkZmx0X2NhbGVuZGFyX3RlbXBsYXRlJ10gPSAnUMWZZWRuYXN0YXZlbiZhYWN1dGU7ICZzY2Fyb247YWJsb25hIGthbGVuZCZhYWN1dGU7xZllJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF90ZW1wbGF0ZSddID0gJ1QmaWFjdXRlO210byBmb3JtdWwmYWFjdXRlO8WZZW0gbcWvxb5ldGUgbmFzdGF2aXQgJnNjYXJvbjthYmxvbnUsIGt0ZXImYWFjdXRlOyBzZSBvYmpldiZpYWN1dGU7LCBrZHnFviBrbGlrbmV0ZSBuYSAmYW1wO3F1b3Q7Tm92JmFhY3V0ZTsgJnNjYXJvbjthYmxvbmEmYW1wO3F1b3Q7IHYgcMWZJmlhY3V0ZTtzbHUmc2Nhcm9uO24mZWFjdXRlOyB6JmFhY3V0ZTtsb8W+Y2UuIFptxJtuYSB0JmVhY3V0ZTt0byBob2Rub3R5IG5lbSZhYWN1dGU7IMW+JmFhY3V0ZTtkbiZ5YWN1dGU7IGJlenByb3N0xZllZG4maWFjdXRlOyBlZmVrdCBuYSB2JnlhY3V0ZTtzdHVweSBnZW5lcm92YW4mZWFjdXRlOyB0JmlhY3V0ZTttdG8gbW9kdWxlbS4nOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50QWRkZWQnXSA9ICdaYXZvbCZhYWN1dGU7bm8gcG8gcMWZaWQmYWFjdXRlO24maWFjdXRlOyB1ZCZhYWN1dGU7bG9zdGkgdiBrYWxlbmQmYWFjdXRlO8WZaSc7CiRsYW5nWydldmVudGRlc2MtRXZlbnRFZGl0ZWQnXSA9ICdaYXZvbCZhYWN1dGU7bm8gcG8gZWRpdGFjaSBleGlzdHVqJmlhY3V0ZTtjJmlhY3V0ZTsgdWQmYWFjdXRlO2xvc3RpIHYga2FsZW5kJmFhY3V0ZTvFmWknOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50RGVsZXRlZCddID0gJ1phdm9sJmFhY3V0ZTtubyBwbyB0b20sIGNvIGJ5bGEgdiBrYWxlZG4mYWFjdXRlO8WZaSBzbWF6JmFhY3V0ZTtuYSB1ZCZhYWN1dGU7bG9zdCc7CiRsYW5nWydldmVudGRlc2MtQ2F0ZWdvcnlBZGRlZCddID0gJ1phdm9sJmFhY3V0ZTtubyBwbyB2eXR2b8WZZW4maWFjdXRlOyBrYWdvcmllJzsKJGxhbmdbJ2V2ZW50ZGVzYy1DYXRlZ29yeUVkaXRlZCddID0gJ1phdm9sJmFhY3V0ZTtubyBwbyBlZGl0YWNpIGthdGVnb3JpZSc7CiRsYW5nWydldmVudGRlc2MtQ2F0ZWdvcnlEZWxldGVkJ10gPSAnWmF2b2wmYWFjdXRlO25vIHBvIHNtYXomYWFjdXRlO24maWFjdXRlOyBrYXRlZ29yaWUnOwokbGFuZ1snZXZlbnRoZWxwLUV2ZW50QWRkZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBldmVudCBpcyBhZGRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2V2ZW50X3RpdGxlXCZxdW90OyAtIEV2ZW50IFRpdGxlPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfc3VtbWFyeVwmcXVvdDsgLSBTdW1tYXJ5IFRleHQ8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kZXRhaWxzXCZxdW90OyAtIERldGFpbGVkIERlc2NyaXB0aW9uPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGF0ZV9zdGFydFwmcXVvdDsgLSBUaGUgZXZlbnQgc3RhcnQgZGF0ZS90aW1lPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGF0ZV9lbmRcJnF1b3Q7IC0gVGhlIGV2ZW50IGVuZCBkYXRlL3RpbWU8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9jcmVhdGVkX2J5XCZxdW90OyAtIFRoZSB1c2VyaWQgb2YgdGhlIGF1dGhvcjwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2lkXCZxdW90OyAtIFRoZSBldmVudCBpZDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50aGVscC1FdmVudEVkaXRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGV2ZW50IGlzIGVkaXRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2V2ZW50X3RpdGxlXCZxdW90OyAtIEV2ZW50IFRpdGxlPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfc3VtbWFyeVwmcXVvdDsgLSBTdW1tYXJ5IFRleHQ8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kZXRhaWxzXCZxdW90OyAtIERldGFpbGVkIERlc2NyaXB0aW9uPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGF0ZV9zdGFydFwmcXVvdDsgLSBUaGUgZXZlbnQgc3RhcnQgZGF0ZS90aW1lPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGF0ZV9lbmRcJnF1b3Q7IC0gVGhlIGV2ZW50IGVuZCBkYXRlL3RpbWU8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9jcmVhdGVkX2J5XCZxdW90OyAtIFRoZSB1c2VyaWQgb2YgdGhlIGF1dGhvcjwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2lkXCZxdW90OyAtIFRoZSBldmVudCBpZDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50aGVscC1FdmVudERlbGV0ZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBldmVudCBpcyBkZWxldGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7ZXZlbnRfaWRcJnF1b3Q7IC0gVGhlIGV2ZW50IGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5QWRkZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBjYXRlZ29yeSBpcyBhZGRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2NhdGVnb3J5X2lkXCZxdW90OyAtIFRoZSBjYXRlZ29yeSBpZDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50aGVscC1DYXRlZ29yeUVkaXRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGNhdGVnb3J5IGlzIGVkaXRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2NhdGVnb3J5X2lkXCZxdW90OyAtIFRoZSBjYXRlZ29yeSBpZDwvbGk+DQo8bGk+XCZxdW90O2NhdGVnb3J5X25hbWVcJnF1b3Q7IC0gVGhlIGNhdGVnb3J5IG5hbWU8L2xpPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9vcmRlclwmcXVvdDsgLSBUaGUgY2F0ZWdvcnkgc29ydCBvcmRlcjwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50aGVscC1DYXRlZ29yeURlbGV0ZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBjYXRlZ29yeSBpcyBkZWxldGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfaWRcJnF1b3Q7IC0gVGhlIGNhdGVnb3J5IGlkPC9saT4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfbmFtZVwmcXVvdDsgLSBUaGUgY2F0ZWdvcnkgbmFtZTwvbGk+DQo8bGk+XCZxdW90O2NhdGVnb3J5X29yZGVyXCZxdW90OyAtIFRoZSBjYXRlZ29yeSBzb3J0IG9yZGVyPC9saT4NCjwvdWw+DQonOwokbGFuZ1snbXNnX2V2ZW50YWRkZWQnXSA9ICdVZCZhYWN1dGU7bG9zdCBwxZlpZCZhYWN1dGU7bmEnOwokbGFuZ1snZXJyb3Jfbm9ldmVudG5hbWUnXSA9ICdBIG5hbWUgZm9yIHRoZSBldmVudCBpcyByZXF1aXJlZCc7CiRsYW5nWydlcnJvcl9ub3VwbG9hZCddID0gJ0NIWUJBOiBzb3Vib3IgdXLEjWVuJnlhY3V0ZTsgayB1cGxvYWR1IG5lbmFsZXplbic7CiRsYW5nWydlcnJvcl9pbnZhbGlkZmlsZW5hbWUnXSA9ICdDSFlCQTogc291Ym9yIHVyxI1lbiZ5YWN1dGU7IGsgdXBsb2FkdSBuZWJ5bCBwxZlpamF0JzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW13aXRodXBsb2FkJ10gPSAnQ0hZQkE6IHDFmWkgdXBsb2FkdSBzb3Vib3J1IGRvJnNjYXJvbjtsbyBrIHByb2JsJmVhY3V0ZTttdSc7CiRsYW5nWydlcnJvcl9maWxlY29weWZhaWxlZCddID0gJ0NIWUJBOiBwxZlpIGtvcCZpYWN1dGU7cm92JmFhY3V0ZTtuJmlhY3V0ZTsgc291Ym9ydSBkbyBjJmlhY3V0ZTtsb3YmZWFjdXRlO2hvIHVtJmlhY3V0ZTtzdMSbbiZpYWN1dGU7IGRvJnNjYXJvbjtsbyBrIHByb2JsJmVhY3V0ZTttdSc7CiRsYW5nWydlcnJvcl9maWxlZXhpc3RzJ10gPSAnQ0hZQkE6IHNvdWJvciBzIHQmaWFjdXRlO210byBqbSZlYWN1dGU7bmVtIGppxb4gZXhpc3R1amUnOwokbGFuZ1snZXJyb3JfY3N2ZmlsZW5vdGZvdW5kJ10gPSAnQ0hZQkE6IE5lbHplIG5hbCZlYWN1dGU7enQgc291Ym9yIHZlIGZvcm0mYWFjdXRlO3R1IC5jc3YnOwokbGFuZ1snZXJyb3JfY2FudG9wZW5maWxlJ10gPSAnQ0hZQkE6IE5lbHplIG90ZXbFmSZpYWN1dGU7dCBzb3Vib3InOwokbGFuZ1snZXJyb3JfY2F0ZWdvcnlleGlzdHMnXSA9ICdDSFlCQTogS2F0ZWdvcmllIHBvam1lbm92YW4mYWFjdXRlOyAlcyBqacW+IGV4aXN0dWplJzsKJGxhbmdbJ2NhbF9pZCddID0gJ0lkJzsKJGxhbmdbJ2NhbF9jYWxlbmRhciddID0gJ0thbGVuZCZhYWN1dGU7xZknOwokbGFuZ1snY2FsX2RlZmF1bHRfdGVtcGxhdGVzJ10gPSAnViZ5YWN1dGU7Y2hveiZpYWN1dGU7ICZzY2Fyb247YWJsb255JzsKJGxhbmdbJ2NhbF9kZXNjcmlwdGlvbiddID0gJ1Zsb8W+aXQsIHVwcmF2aXQgYSBvZGVicmF0IHVkJmFhY3V0ZTtsb3N0aSc7CiRsYW5nWydjYWxfYWRkZXZlbnQnXSA9ICdWbG/Fvml0IHVkJmFhY3V0ZTtsb3N0JzsKJGxhbmdbJ2NhbF9pbXBvcnRfZXZlbnRzJ10gPSAnSW1wb3J0b3ZhdCB1ZCZhYWN1dGU7bG9zdGknOwokbGFuZ1snY2FsX2V2ZW50cyddID0gJ1VkJmFhY3V0ZTtsb3N0aSc7CiRsYW5nWydjYWxfY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpZSc7CiRsYW5nWydjYWxfY2FsZW5kYXJfdGVtcGxhdGUnXSA9ICcmU2Nhcm9uO2FibG9uYSBrYWxlbmQmYWFjdXRlO8WZZSc7CiRsYW5nWydjYWxfbGlzdF90ZW1wbGF0ZSddID0gJyZTY2Fyb247YWJsb25hIHNlem5hbXUnOwokbGFuZ1snY2FsX3VwY29taW5nbGlzdF90ZW1wbGF0ZSddID0gJyZTY2Fyb247YWJsb25hIG5hZGNoJmFhY3V0ZTt6ZWomaWFjdXRlO2MmaWFjdXRlO2NoIHVkJmFhY3V0ZTtsb3N0JmlhY3V0ZTsnOwokbGFuZ1snY2FsX2V2ZW50X3RlbXBsYXRlJ10gPSAnJlNjYXJvbjthYmxvbmEgdWQmYWFjdXRlO2xvc3RpJzsKJGxhbmdbJ2NhbF9zZXR0aW5ncyddID0gJ05hc3RhdmVuJmlhY3V0ZTsnOwokbGFuZ1snY2FsX3ByZXYnXSA9ICcmbGFxdW87IFDFmWVkY2hveiZpYWN1dGU7JzsKJGxhbmdbJ2NhbF9uZXh0J10gPSAnRGFsJnNjYXJvbjsmaWFjdXRlOyAmcmFxdW87JzsKJGxhbmdbJ2NhbF9jYXRlZ29yaWVzX3VwZGF0ZWQnXSA9ICdLYXRlZ29yaWUgYWt0dWFsaXpvdiZhYWN1dGU7bnknOwokbGFuZ1snY2FsX3NldHRpbmdzX3VwZGF0ZWQnXSA9ICdOYXN0YXZlbiZpYWN1dGU7IGFrdHVhbGl6b3YmYWFjdXRlO25vJzsKJGxhbmdbJ2NhbF9hZGRfZXZlbnQnXSA9ICdWbG/Fvml0IHVkJmFhY3V0ZTtsb3N0JzsKJGxhbmdbJ2NhbF9lZGl0J10gPSAnVXByYXZpdCc7CiRsYW5nWydjYWxfZGVsZXRlJ10gPSAnU21hemF0JzsKJGxhbmdbJ2NhbF9hcmV5b3VzdXJlJ10gPSAnT3ByYXZkdSBjaGNldGUgc21hemF0JzsKJGxhbmdbJ2NhbF91cGRhdGVfdGVtcGxhdGUnXSA9ICdBa3R1YWxpem92YXQgJnNjYXJvbjthYmxvbnUnOwokbGFuZ1snY2FsX3N1bmRheSddID0gJ05lZMSbbGUnOwokbGFuZ1snY2FsX21vbmRheSddID0gJ1BvbmTEm2wmaWFjdXRlOyc7CiRsYW5nWydjYWxfdHVlc2RheSddID0gJyZVYWN1dGU7dGVyJnlhY3V0ZTsnOwokbGFuZ1snY2FsX3dlZG5lc2RheSddID0gJ1N0xZllZGEnOwokbGFuZ1snY2FsX3RodXJzZGF5J10gPSAnxIx0dnJ0ZWsnOwokbGFuZ1snY2FsX2ZyaWRheSddID0gJ1AmYWFjdXRlO3Rlayc7CiRsYW5nWydjYWxfc2F0dXJkYXknXSA9ICdTb2JvdGEnOwokbGFuZ1snY2FsX3N1biddID0gJ05lJzsKJGxhbmdbJ2NhbF9tb24nXSA9ICdQbyc7CiRsYW5nWydjYWxfdHVlcyddID0gJyZVYWN1dGU7dCc7CiRsYW5nWydjYWxfd2VkJ10gPSAnU3QnOwokbGFuZ1snY2FsX3RodXJzJ10gPSAnxIx0JzsKJGxhbmdbJ2NhbF9mcmknXSA9ICdQJmFhY3V0ZTsnOwokbGFuZ1snY2FsX3NhdCddID0gJ1NvJzsKJGxhbmdbJ2NhbF9qYW51YXJ5J10gPSAnTGVkbmEnOwokbGFuZ1snY2FsX2ZlYnJ1YXJ5J10gPSAnJlVhY3V0ZTtub3JhJzsKJGxhbmdbJ2NhbF9tYXJjaCddID0gJ0LFmWV6bmEnOwokbGFuZ1snY2FsX2FwcmlsJ10gPSAnRHVibmEnOwokbGFuZ1snY2FsX21heSddID0gJ0t2xJt0bmEnOwokbGFuZ1snY2FsX2p1bmUnXSA9ICfEjGVydm5hJzsKJGxhbmdbJ2NhbF9qdWx5J10gPSAnxIxlcnZlbmNlJzsKJGxhbmdbJ2NhbF9hdWd1c3QnXSA9ICdTcnBuYSc7CiRsYW5nWydjYWxfc2VwdGVtYmVyJ10gPSAnWiZhYWN1dGU7xZkmaWFjdXRlOyc7CiRsYW5nWydjYWxfb2N0b2JlciddID0gJ8WYJmlhY3V0ZTtqbmEnOwokbGFuZ1snY2FsX25vdmVtYmVyJ10gPSAnTGlzdG9wYWR1JzsKJGxhbmdbJ2NhbF9kZWNlbWJlciddID0gJ1Byb3NpbmNlJzsKJGxhbmdbJ2NhbF9hZGQnXSA9ICdQxZlpZGF0JzsKJGxhbmdbJ2NhbF91cGRhdGUnXSA9ICdBa3R1YWxpem92YXQnOwokbGFuZ1snY2FsX2V2ZW50J10gPSAnVWQmYWFjdXRlO2xvc3QnOwokbGFuZ1snY2FsX2RhdGUnXSA9ICdEYXR1bSc7CiRsYW5nWydjYWxfc3VtbWFyeSddID0gJ1NvdWhybic7CiRsYW5nWydjYWxfZGV0YWlscyddID0gJ0RldGFpbHknOwokbGFuZ1snY2FsX21vcmUnXSA9ICd2JmlhY3V0ZTtjZSA+Pic7CiRsYW5nWydjYWxfcmV0dXJuJ10gPSAnTiZhYWN1dGU7dnJhdCc7CiRsYW5nWydjYWxfdG8nXSA9ICdkbyc7CiRsYW5nWydjYWxfcGFzdF9ldmVudHMnXSA9ICdVZCZhYWN1dGU7bG9zdGkgdiBtaW51bG9zdGknOwokbGFuZ1snY2FsX3VwY29taW5nX2V2ZW50cyddID0gJ05hZGNoJmFhY3V0ZTt6ZWomaWFjdXRlO2MmaWFjdXRlOyB1ZCZhYWN1dGU7bG9zdGknOwokbGFuZ1snY2FsX2FueV9jYXRlZ29yeSddID0gJ0phayZhYWN1dGU7a29saXYga2F0ZWdvcmllJzsKJGxhbmdbJ2NhbF9zaG93X29ubHlfZXZlbnRzX2luJ10gPSAnWm9icmF6aXQgcG91emUgdWQmYWFjdXRlO2xvc3RpIHYnOwokbGFuZ1snY2FsX2ZpbHRlcl9ieSddID0gJ1TFmSZpYWN1dGU7ZGl0IHBvZGxlJzsKJGxhbmdbJ2NhbF9nbyddID0gJ0pkaSc7CiRsYW5nWydjYWxfdGl0bGUnXSA9ICdUaXR1bGVrJzsKJGxhbmdbJ2NhbF9mcm9tZGF0ZSddID0gJ0RhdHVtIHphxI0mYWFjdXRlO3RrdSc7CiRsYW5nWydjYWxfdG9kYXRlJ10gPSAnRGF0dW0ga29uY2UnOwokbGFuZ1snY2FsX3VwZGF0ZV9jYXRlZ29yaWVzJ10gPSAnQWt0dWFsaXpvdmF0IGthdGVnb3JpZSc7CiRsYW5nWydjYWxfbGFuZ3VhZ2UnXSA9ICdKYXp5ayc7CiRsYW5nWydjYWxfdXBkYXRlc2V0dGluZ3MnXSA9ICdBa3R1YWxpem92YXQgbmFzdGF2ZW4maWFjdXRlOyc7CiRsYW5nWydjYWxfdXNlX3R3ZWx2ZV9ob3VyX2Nsb2NrJ10gPSAnUG91xb4maWFjdXRlO3ZhdCBkdmFuJmFhY3V0ZTtjdGlob2Rpbm92JmVhY3V0ZTsgcm96ZMSbbGVuJmlhY3V0ZTsgxI1hc3UgcMWZaSB2JnlhY3V0ZTtixJtydSBob2Rpbj8nOwokbGFuZ1snY2FsX2RlZmF1bHRfY2F0ZWdvcnknXSA9ICdQxZllZG5hc3RhdmVuJmFhY3V0ZTsga2F0ZWdvcmllJzsKJGxhbmdbJ2NhbF91cGRhdGVfZmllbGRzJ10gPSAnQWt0dWFsaXpvdmF0IFBvbGUnOwokbGFuZ1snZm9yY2VfY2F0ZWdvcnknXSA9ICdWeW51dGl0IHZ5dHZvxZllbiZpYWN1dGU7IGFsc3BvxYggamVkbiZlYWN1dGU7IGthdGVnb3JpZSc7CiRsYW5nWydzaG93cGFzdHllYXJzJ10gPSAnS29saWsgbGV0IGRvIG1pbnVsb3N0aSBqZSBwb3ZvbGVubyc7CiRsYW5nWydzaG93ZnV0dXJleWVhcnMnXSA9ICdLb2xpayBsZXQgZG8gYnVkb3Vjbm9zdGkgamUgcG92b2xlbm8nOwokbGFuZ1snaGlkZXN1bW1hcnknXSA9ICdNxJtsbyBieSBiJnlhY3V0ZTt0IHN1bW1hcnkgcG9sZSBza3J5dCZlYWN1dGU7JzsKJGxhbmdbJ2hpZGVjb250ZW50J10gPSAnTcSbbG8gYnkgYiZ5YWN1dGU7dCBjb250ZW50IHBvbGUgc2tyeXQmZWFjdXRlOyc7CiRsYW5nWydjYXRlZ29yeV9yZW1pbmRlciddID0gJ1Byb3MmaWFjdXRlO20gdnliZXJ0ZSBqZWRudSBuZWJvIHYmaWFjdXRlO2NlIGthdGVnb3JpJmlhY3V0ZTssIGRvIGt0ZXImeWFjdXRlO2NoIHNwYWQmYWFjdXRlOyB0YXRvIHVkJmFhY3V0ZTtsb3N0Lic7CiRsYW5nWydtb2R1bGVfZXhhbXBsZV9zdHlsZXNoZWV0J10gPSAnVWsmYWFjdXRlO3prb3YmZWFjdXRlOyBDU1Mga2FsZW5kJmFhY3V0ZTvFmWUnOwokbGFuZ1snZXJyb3JfcGVybWlzc2lvbiddID0gJ1BvdMWZZWJ1amV0ZSBvZHBvdiZpYWN1dGU7ZGFqJmlhY3V0ZTtjJmlhY3V0ZTsgb3ByJmFhY3V0ZTt2bsSbbiZpYWN1dGU7ICglcykgcHJvIHDFmSZpYWN1dGU7c3R1cCBrIHQmZWFjdXRlO3RvIGZ1bmtjaSc7CiRsYW5nWydpbnN0YWxsX3Bvc3RtZXNzYWdlJ10gPSAnWmFqaXN0xJt0ZSBuYXN0YXZlbiZpYWN1dGU7ICZxdW90O01vZGlmeSBjYWxlbmRhciZxdW90OyBvcHImYWFjdXRlO3ZuxJtuJmlhY3V0ZTsgcHJvIHYmc2Nhcm9uO2VjaG55IHXFvml2YXRlbGUsIGt0ZcWZJmlhY3V0ZTsgYnVkb3Uga2FsZWRuJmFhY3V0ZTvFmSBzcHJhdm92YXQuJzsKJGxhbmdbJ2RlbGV0ZXRhZ2dlZCddID0gJ1NtYXphdCBvem5hxI1lbiZlYWN1dGU7IHVkJmFhY3V0ZTtsb3N0aSc7CiRsYW5nWydjb25maXJtZGVsZXRldGFnZ2VkJ10gPSAnSnN0ZSBzaSBqaXN0aSB2eW1heiZhYWN1dGU7biZpYWN1dGU7bSB0xJtjaHRvIHVkJmFhY3V0ZTtsb3N0JmlhY3V0ZTs/JzsKJGxhbmdbJ3RhZ2dlZGRlbGV0ZWQnXSA9ICdPem5hxI1lbiZlYWN1dGU7IHVkJmFhY3V0ZTtsb3N0aSBieWx5IHNtYXomYWFjdXRlO255JzsKJGxhbmdbJ3RlbXBsYXRlcyddID0gJyZTY2Fyb247YWJsb255JzsKJGxhbmdbJ3RlbXBsYXRlX2hlbHAnXSA9ICdOJmFhY3V0ZTtwb3bEm2RhIGsgJnNjYXJvbjthYmxvbiZhYWN1dGU7bSc7CiRsYW5nWydmaWxlX3RlbXBsYXRlcyddID0gJyZTY2Fyb247YWJsb255IHNvdWJvcsWvJzsKJGxhbmdbJ2FkZHRlbXBsYXRlJ10gPSAnUMWZaWRhdCAmc2Nhcm9uO2FibG9udSc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJyZTY2Fyb247YWJsb25hJzsKJGxhbmdbJ3RlbXBsYXRlbmFtZXRleHQnXSA9ICdKbSZlYWN1dGU7bm8gJnNjYXJvbjthYmxvbnknOwokbGFuZ1snZWRpdHRlbXBsYXRlJ10gPSAnVXByYXZpdCAmc2Nhcm9uO2FibG9udSc7CiRsYW5nWydkZWxldGV0ZW1wbGF0ZSddID0gJ1NtYXphdCAmc2Nhcm9uO2FibG9udSc7CiRsYW5nWyduZXd0ZW1wbGF0ZSddID0gJ0ptJmVhY3V0ZTtubyBub3YmZWFjdXRlOyAmc2Nhcm9uO2FibG9ueSc7CiRsYW5nWyd0ZW1wbGF0ZW5hbWVleGlzdHMnXSA9ICdDSFlCQTogJnNjYXJvbjthYmxvbmEgcyB0JmlhY3V0ZTttdG8gam0mZWFjdXRlO25lbSBqacW+IGV4aXN0dWplLiBWeWJlcnRlIHByb3MmaWFjdXRlO20gamluJmVhY3V0ZTsgam0mZWFjdXRlO25vLic7CiRsYW5nWyd0ZW1wbGF0ZWltcG9ydGVkJ10gPSAnJlNjYXJvbjthYmxvbmEgYnlsYSAmdWFjdXRlO3NwxJsmc2Nhcm9uO27EmyBpbXBvcnRvdiZhYWN1dGU7bmEgZG8gZGF0YWImYWFjdXRlO3plIGEgamUgbmFpbnN0YWxvdiZhYWN1dGU7bmEgYSBwxZlpcHJhdmVuYSBrIHBvdcW+aXQmaWFjdXRlOy4nOwokbGFuZ1sndmlld19kZWZhdWx0X3N0eWxlc2hlZXQnXSA9ICdab2JyYXppdCBwxZllZG5hc3RhdmVuJnlhY3V0ZTsgc3R5bCAoQ1NTKSc7CiRsYW5nWydmaWxlbmFtZSddID0gJ0ptJmVhY3V0ZTtubyBzb3Vib3J1JzsKJGxhbmdbJ2ltcG9ydHRlbXBsYXRlJ10gPSAnSW1wb3J0b3ZhdCAmc2Nhcm9uO2FibG9udSc7CiRsYW5nWyd0ZW1wbGF0ZV9kZWxldGVkJ10gPSAnJlNjYXJvbjthYmxvbmEgYnlsYSAmdWFjdXRlO3NwxJsmc2Nhcm9uO27EmyBzbWF6JmFhY3V0ZTtuYSB6IGRhdGFiJmFhY3V0ZTt6ZS4nOwokbGFuZ1sndXBkYXRldGVtcGxhdGVzdWNjZXNzJ10gPSAnJlNjYXJvbjthYmxvbmEgYnlsYSAmdWFjdXRlO3NwxJsmc2Nhcm9uO27EmyBha3R1YWxpem92JmFhY3V0ZTtuYSc7CiRsYW5nWyd1cGRhdGV0ZW1wbGF0ZWZhaWx1cmUnXSA9ICdQxZlpIGFrdHVhbGl6YWNpICZzY2Fyb247YWJsb255IGRvJnNjYXJvbjtsbyBrIGNoeWLEmyc7CiRsYW5nWydzZXR0aW5nc3NhdmVkJ10gPSAnTmFzdGF2ZW4maWFjdXRlOyBieWxhICZ1YWN1dGU7c3DEmyZzY2Fyb247bsSbIHVsb8W+ZW5hJzsKJGxhbmdbJ2NhdGVnb3J5ZGVsZXRlZCddID0gJ0thdGVnb3JpZSBieWxhIHNtYXomYWFjdXRlO25hJzsKJGxhbmdbJ2NhdGVnb3J5dXBkYXRlZCddID0gJ0thdGVnb3JpZSBieWxhIGFrdHVhbGl6b3YmYWFjdXRlO25hJzsKJGxhbmdbJ2NhdGVnb3J5YWRkZWQnXSA9ICdLYXRlZ29yaWUgYnlsYSBwxZlpZCZhYWN1dGU7bmEnOwokbGFuZ1snZXZlbnRkZWxldGVkJ10gPSAnVWQmYWFjdXRlO2xvc3QgYnlsYSBzbWF6JmFhY3V0ZTtuYSc7CiRsYW5nWydldmVudHVwZGF0ZWQnXSA9ICdVZCZhYWN1dGU7bG9zdCBieWxhIGFrdHVhbGl6b3YmYWFjdXRlO25hJzsKJGxhbmdbJ2RlZmF1bHRfcGFnZV9lcnJvciddID0gJ0NoeWJhOiBNdXMmaWFjdXRlO3RlIG5lamTFmSZpYWN1dGU7dmUgbmFzdGF2aXQgdiZ5YWN1dGU7Y2hveiZpYWN1dGU7IHN0ciZhYWN1dGU7bmt1IGFieSBqc3RlIG1vaGxpIHBvdcW+JmlhY3V0ZTt2YXQgS2FsZW5kJmFhY3V0ZTvFmSBzZSB6YXBudXQmeWFjdXRlO21hIHByZXR0eSBVUkwuIFByb3MmaWFjdXRlO20gamTEm3RlIG5hIG5hc3RhdmVuJmlhY3V0ZTsgS2FsZW5kJmFhY3V0ZTvFmWUgYSB2eWJlcnRlIGplZG51Lic7CiRsYW5nWyd0aW1lX2F0J10gPSAndmUnOwokbGFuZ1sndHlwZSddID0gJ1R5cCc7CiRsYW5nWyduYW1lJ10gPSAnSm0mZWFjdXRlO25vJzsKJGxhbmdbJ29yZGVyJ10gPSAnUG/FmWFkJmlhY3V0ZTsnOwokbGFuZ1snZmllbGRhZGRlZCddID0gJ1BvbGUgJnVhY3V0ZTtzcMSbJnNjYXJvbjtuxJsgcMWZaWQmYWFjdXRlO25vJzsKJGxhbmdbJ2ZpZWxkZGVsZXRlZCddID0gJ1BvbGUgc21heiZhYWN1dGU7bm8nOwokbGFuZ1snZmllbGRzJ10gPSAnVmxhc3RuJmlhY3V0ZTsgUG9sZSc7CiRsYW5nWyd0ZXh0ZmllbGQnXSA9ICdUZXh0b3YmZWFjdXRlOyBwb2xlJzsKJGxhbmdbJ3VwbG9hZGZpZWxkJ10gPSAnUG9sZSBwcm8gdXBsb2FkIHNvdWJvcnUnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICc8cD5LYWxlbmQmYWFjdXRlO8WZIGplIG1vZHVsIHBybyB6b2JyYXpvdiZhYWN1dGU7biZpYWN1dGU7IHVkJmFhY3V0ZTtsb3N0JmlhY3V0ZTsgbmEgVmEmc2Nhcm9uO2ljaCBzdHImYWFjdXRlO25rJmFhY3V0ZTtjaC4gS2R5xb4gamUgbW9kdWwgbmFpbnN0YWxvdiZhYWN1dGU7biwgYWRtaW5pc3RyYcSNbiZpYWN1dGU7IHJvemhyYW4maWFjdXRlOyBLYWxlbmQmYWFjdXRlO8WZZSBqZSBwxZlpZCZhYWN1dGU7bm8gZG8gbWVudSBPYnNhaCwgY2/FviB2JmFhY3V0ZTttIHVtb8W+biZpYWN1dGU7IHNwcmF2b3ZhdCB1ZCZhYWN1dGU7bG9zdGkuPC9wPic7CiRsYW5nWydkZWZhdWx0Y2FsZW5kYXJwYWdlJ10gPSAnU3RyJmFhY3V0ZTtua2EsIGt0ZXImYWFjdXRlOyBvYnNhaHVqZSBrYWxlbmQmYWFjdXRlO8WZLiBUYXRvIHN0ciZhYWN1dGU7bmthIG11cyZpYWN1dGU7IG9ic2Fob3ZhdCBTbWFydHkgdGFnLCBrdGVyJnlhY3V0ZTsgdm9sJmFhY3V0ZTsga2FsZW5kJmFhY3V0ZTvFmS4gUG/FmWFkb3ZhbiZlYWN1dGU7IHBva3VkIHBvdcW+JmlhY3V0ZTt2JmFhY3V0ZTt0ZSBwcmV0dHkgVVJMcy4nOwokbGFuZ1sndXBsb2FkZGlyZWN0b3J5J10gPSAnQWRyZXMmYWFjdXRlO8WZIHBybyB1a2wmYWFjdXRlO2QmYWFjdXRlO24maWFjdXRlOyB1cGxvYWTFryc7CiRsYW5nWyd1cGxvYWRmaWxldHlwZXMnXSA9ICdQb3ZvbGVuJmVhY3V0ZTsgdHlweSBzb3Vib3LFryc7CiRsYW5nWyd1cGxvYWR1bmlxdWUnXSA9ICdaYWppc3RpdCBqZWRpbmXEjW4mYWFjdXRlOyBqbSZlYWN1dGU7bmEgc291Ym9yxa8nOwokbGFuZ1sndGh1bWJfd2lkdGgnXSA9ICcmU2Nhcm9uOyZpYWN1dGU7xZlrYSBtaW5pYXR1cnknOwokbGFuZ1sndGh1bWJfaGVpZ2h0J10gPSAnViZ5YWN1dGU7JnNjYXJvbjtrYSBtaW5pYXR1cnknOwokbGFuZ1snbGFyZ2Vfd2lkdGgnXSA9ICcmU2Nhcm9uOyZpYWN1dGU7xZlrYSB2ZWxrJmVhY3V0ZTtobyBvYnImYWFjdXRlO3prdSc7CiRsYW5nWydsYXJnZV9oZWlnaHQnXSA9ICdWJnlhY3V0ZTsmc2Nhcm9uO2thIHZlbGsmZWFjdXRlO2hvIG9iciZhYWN1dGU7emt1JzsKJGxhbmdbJ2NhbF9yZWN1cl9wZXJpb2QnXSA9ICdPcGFrdWplIHNlJzsKJGxhbmdbJ2NhbF9yZWN1cl91bnRpbCddID0gJ09wYWt1amUgc2UgZG8nOwokbGFuZ1snaGVscF90ZW1wbGF0ZSddID0gJzxwPjxiPlZ5cCZpYWN1dGU7JnNjYXJvbjtlIEF1dG9yb3ZvIEptJmVhY3V0ZTtubzo8L2I+PC9wPg0KPGNvZGU+QXV0b3I6IHskZXZlbnQuYXV0aG9ybmFtZX08L2NvZGU+DQonOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/da_DK.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ3RleHRhcmVhJ10gPSAnVGV4dCBBcmVhJzsKJGxhbmdbJ2Vycm9yX2NhbGVuZGFyX2luY29tcGF0aWJsZSddID0gJ1dlIGhhdmUgZGV0ZWN0ZWQgdGhhdCB0aGUgQ2FsZW5kYXIgbW9kdWxlIGlzIGFsc28gaW5zdGFsbGVkLi4gIFRoaXMgbW9kdWxlIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIENhbGVuZGFyIG1vZHVsZSBhbmQgY2Fubm90IGNvLWV4aXN0IHdpdGggaXQgb24gdGhlIHNhbWUgaW5zdGFsbC4gIFBsZWFzZSB1bmluc3RhbGwgdGhlIENhbGVuZGFyIG1vZHVsZSc7CiRsYW5nWydlcnJvcl9ldmVudF9ub3RfZm91bmQnXSA9ICdFaXRoZXIgZXZlbnRfaWQgaXMgbm90IGluIHRoZSBkYXRhYmFzZSwgb3IgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBldmVudCB3aXRoIHRoaXMgaWQhICglZCknOwokbGFuZ1snZmlyc3RfcGFnZSddID0gJzw8JzsKJGxhbmdbJ3ByZXZfcGFnZSddID0gJzwnOwokbGFuZ1snbmV4dF9wYWdlJ10gPSAnPic7CiRsYW5nWydsYXN0X3BhZ2UnXSA9ICc+Pic7CiRsYW5nWydwYWdlX29mJ10gPSAnUGFnZSAlZCBvZiAlZCc7CiRsYW5nWydzZWFyY2hfcmVzdWx0cyddID0gJ0NhbGVuZGFyIFNlYXJjaCBSZXN1bHRzJzsKJGxhbmdbJ3NlYXJjaF93b3JkcyddID0gJ1NlYXJjaCBXb3Jkcyc7CiRsYW5nWydub19yZXN1bHRzX2ZvdW5kJ10gPSAnTm8gcmVzdWx0cyBmb3VuZCBtYXRjaGluZyB0aGUgcXVlcnkgc3BlY2lmaWVkJzsKJGxhbmdbJ2ZyZXF1ZW5jeSddID0gJ0ZyZXF1ZW5jeSc7CiRsYW5nWydzcGVjaWZpZWRfZGF0ZSddID0gJ1VzZSB0aGUgc3BlY2lmaWVkIGRhdGUnOwokbGFuZ1snZmlyc3Rfc3VuZGF5J10gPSAnRmlyc3QgU3VuZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydmaXJzdF9tb25kYXknXSA9ICdGaXJzdCBNb25kYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2ZpcnN0X3R1ZXNkYXknXSA9ICdGaXJzdCBUdWVzZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydmaXJzdF93ZWRuZXNkYXknXSA9ICdGaXJzdCBXZWRuZXNkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2ZpcnN0X3RodXJzZGF5J10gPSAnRmlyc3QgVGh1cnNkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2ZpcnN0X2ZyaWRheSddID0gJ0ZpcnN0IEZyaWRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snZmlyc3Rfc2F0dXJkYXknXSA9ICdGaXJzdCBTYXR1cmRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snc2Vjb25kX3N1bmRheSddID0gJ1NlY29uZCBTdW5kYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ3NlY29uZF9tb25kYXknXSA9ICdTZWNvbmQgTW9uZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydzZWNvbmRfdHVlc2RheSddID0gJ1NlY29uZCBUdWVzZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydzZWNvbmRfd2VkbmVzZGF5J10gPSAnU2Vjb25kIFdlZG5lc2RheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snc2Vjb25kX3RodXJzZGF5J10gPSAnU2Vjb25kIFRodXJzZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydzZWNvbmRfZnJpZGF5J10gPSAnU2Vjb25kIEZyaWRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snc2Vjb25kX3NhdHVyZGF5J10gPSAnU2Vjb25kIFNhdHVyZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWyd0aGlyZF9zdW5kYXknXSA9ICdUaGlyZCBTdW5kYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ3RoaXJkX21vbmRheSddID0gJ1RoaXJkIE1vbmRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1sndGhpcmRfdHVlc2RheSddID0gJ1RoaXJkIFR1ZXNkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ3RoaXJkX3dlZG5lc2RheSddID0gJ1RoaXJkIFdlZG5lc2RheSBvZiB0aGUgTW9udGgnOwokbGFuZ1sndGhpcmRfdGh1cnNkYXknXSA9ICdUaGlyZCBUaHVyc2RheSBvZiB0aGUgTW9udGgnOwokbGFuZ1sndGhpcmRfZnJpZGF5J10gPSAnVGhpcmQgRnJpZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWyd0aGlyZF9zYXR1cmRheSddID0gJ1RoaXJkIFNhdHVyZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydmb3VydGhfc3VuZGF5J10gPSAnRm91cnRoIFN1bmRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snZm91cnRoX21vbmRheSddID0gJ0ZvdXJ0aCBNb25kYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2ZvdXJ0aF90dWVzZGF5J10gPSAnRm91cnRoIFR1ZXNkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2ZvdXJ0aF93ZWRuZXNkYXknXSA9ICdGb3VydGggV2VkbmVzZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydmb3VydGhfdGh1cnNkYXknXSA9ICdGb3VydGggVGh1cnNkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2ZvdXJ0aF9mcmlkYXknXSA9ICdGb3VydGggRnJpZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydmb3VydGhfc2F0dXJkYXknXSA9ICdGb3VydGggU2F0dXJkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2xhc3Rfc3VuZGF5J10gPSAnTGFzdCBTdW5kYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2xhc3RfbW9uZGF5J10gPSAnTGFzdCBNb25kYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2xhc3RfdHVlc2RheSddID0gJ0xhc3QgVHVlc2RheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snbGFzdF93ZWRuZXNkYXknXSA9ICdMYXN0IFdlZG5lc2RheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snbGFzdF90aHVyc2RheSddID0gJ0xhc3QgVGh1cnNkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2xhc3RfZnJpZGF5J10gPSAnTGFzdCBGcmlkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2xhc3Rfc2F0dXJkYXknXSA9ICdMYXN0IFNhdHVyZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX3JlY3VyX21vbnRobHlfZnJlcSddID0gJ0ludmFsaWQgZnJlcXVlbmN5Li4uLiB5b3UgY2Fubm90IHNwZWNpZnkgYm90aCB0aGUgc3BlY2lmaWVkIGRhdGUgQU5EIG90aGVyIHZhbHVlcyc7CiRsYW5nWydzZWFyY2hyZXN1bHR0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgYSBTZWFyY2ggUmVzdWx0IFRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fc2VhcmNocmVzdWx0X3RlbXBsYXRlX3RhYiddID0gJ1RoZSBsaXN0IG9mIHRlbXBsYXRlcyB0aGF0IGFyZSBhdmFpbGFibGUgZm9yIHRoZSBzZWFyY2ggcmVzdWx0cyBkaXNwbGF5JzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9zZWFyY2hyZXN1bHRfdGVtcGxhdGUnXSA9ICdTeXN0ZW0gRGVmYXVsdCBTZWFyY2ggUmVzdWx0IFRlbXBsYXRlJzsKJGxhbmdbJ2NhbF9zZWFyY2hfcmVzdWx0X3RlbXBsYXRlcyddID0gJ1NlYXJjaCBSZXN1bHQgVGVtcGxhdGVzJzsKJGxhbmdbJ2Vycm9yX3F1ZXJ5X2ZhaWxlZCddID0gJ0RhdGFiYXNlIFF1ZXJ5IEZhaWxlZCc7CiRsYW5nWydlcnJvcl9zZWFyY2hfaW52YWxpZF9kYXRlcyddID0gJ0ludmFsaWQgU2VhcmNoIERhdGVzIFNwZWNpZmllZCc7CiRsYW5nWyd0ZXh0J10gPSAnVGV4dCc7CiRsYW5nWydzZWFyY2gnXSA9ICdTZWFyY2gnOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdDYXRlZ29yeSc7CiRsYW5nWydpbmZvX3N5c2RmbHRfc2VhcmNoX3RlbXBsYXRlJ10gPSAnU3lzdGVtIERlZmF1bHQgU2VhcmNoIEZvcm0gVGVtcGxhdGUnOwokbGFuZ1snc2VhcmNodGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IGEgU2VhcmNoIEZvcm0gVGVtcGxhdGUnOwokbGFuZ1snaW5mb19zZWFyY2hfdGVtcGxhdGVfdGFiJ10gPSAnVGhlIGxpc3Qgb2YgdGVtcGxhdGVzIHRoYXQgYXJlIGF2YWlsYWJsZSBmb3IgdGhlIHNlYXJjaCBmb3JtJzsKJGxhbmdbJ2NhbF9zZWFyY2hfZm9ybV90ZW1wbGF0ZXMnXSA9ICdTZWFyY2ggRm9ybSBUZW1wbGF0ZXMnOwokbGFuZ1snbWF4J10gPSAnbWFrcyc7CiRsYW5nWyd0aW1lcyddID0gJ2dhbmdlJzsKJGxhbmdbJ29uJ10gPSAndGlsJzsKJGxhbmdbJ2FyZXlvdXN1cmVfdW5pbnN0YWxsJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7IGR1IHZpbCBnJm9zbGFzaDtyZSBkZXR0ZT8gSHZpcyBkdSBmb3J0cyZhZWxpZzt0dGVyIHNsZXR0ZXMgYWxsZSBkYXRhIHRpbGtueXR0ZXQgZGV0dGUgbW9kdWwgcGVybWFuZW50Lic7CiRsYW5nWydwb3N0X3VuaW5zdGFsbCddID0gJ1RoZSBDYWxlbmRhciBtb2R1bGUgaGFzIGJlZW4gdW5pbnN0YWxsZWQgYW5kIGFsbCBldmVudCBhbmQgdGVtcGxhdGUgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbW92ZWQnOwokbGFuZ1snZmllbGR1cGRhdGVkJ10gPSAnRmVsdCBvcGRhdGVyZXQnOwokbGFuZ1snZXZlcnknXSA9ICdIdmVyJzsKJGxhbmdbJ29yJ10gPSAnZWxsZXInOwokbGFuZ1sndXBkYXRlX2NoaWxkcmVuJ10gPSAnT3BkYXQmZWFjdXRlO3IgdW5kZXItaCZhZWxpZztuZGVsc2VyJzsKJGxhbmdbJ2Vycm9yX25vY2F0ZWdvcnknXSA9ICdEdSBza2FsIHYmYWVsaWc7bGdlIG1pbmRzdCBlbiBrYXRlZ29yaSc7CiRsYW5nWydlcnJvcl9ub3RoaW5nc2VsZWN0ZWQnXSA9ICdEZXIgZXIgaWtrZSB2YWxndCBub2dldCB0aWwgc2xldG5pbmcnOwokbGFuZ1snZXJyb3JfZXZlbnRvdmVybGFwJ10gPSAnRGVuIGdlbnRhZ2VuZGUgaCZhZWxpZztuZGVsc2UgZHUgaGFyIGFuZ2l2ZXQgdmlsbGUgcmVzdWx0ZXJlIGkgb3ZlcmxhcHBlbmRlIGgmYWVsaWc7bmRlbHNlci4nOwokbGFuZ1sncmVjdXJzJ10gPSAnR2VudGFnZXMnOwokbGFuZ1snZXJyb3JfaW52YWxpZF9kYXRlcyddID0gJ0VuIGVsbGVyIGZsZXJlIGF0IGRlIGFuZ2l2bmUgZGF0b2VyIGVyIHVneWxkaWcnOwokbGFuZ1snc3VuZGF5J10gPSAnUyZvc2xhc2g7bmRhZyc7CiRsYW5nWydtb25kYXknXSA9ICdNYW5kYWcnOwokbGFuZ1sndHVlc2RheSddID0gJ1RpcnNkYWcnOwokbGFuZ1snd2VkbmVzZGF5J10gPSAnT25zZGFnJzsKJGxhbmdbJ3RodXJzZGF5J10gPSAnVG9yc2RhZyc7CiRsYW5nWydmcmlkYXknXSA9ICdGcmVkYWcnOwokbGFuZ1snc2F0dXJkYXknXSA9ICdMJm9zbGFzaDtyZGFnJzsKJGxhbmdbJ2FiYnJfc3VuZGF5J10gPSAnUyZvc2xhc2g7bic7CiRsYW5nWydhYmJyX21vbmRheSddID0gJ01hbic7CiRsYW5nWydhYmJyX3R1ZXNkYXknXSA9ICdUaXInOwokbGFuZ1snYWJicl93ZWRuZXNkYXknXSA9ICdPbnMnOwokbGFuZ1snYWJicl90aHVyc2RheSddID0gJ1Rvcic7CiRsYW5nWydhYmJyX2ZyaWRheSddID0gJ0ZyZSc7CiRsYW5nWydhYmJyX3NhdHVyZGF5J10gPSAnTCZvc2xhc2g7cic7CiRsYW5nWyd3ZWVrZGF5cyddID0gJ1VnZWRhZ2UnOwokbGFuZ1sncGx1cmFsX2RhaWx5J10gPSAnRGFnZSc7CiRsYW5nWydwbHVyYWxfd2Vla2x5J10gPSAnVWdlcic7CiRsYW5nWydwbHVyYWxfbW9udGhseSddID0gJ00mYXJpbmc7bmVkZXInOwokbGFuZ1sncGx1cmFsX3llYXJseSddID0gJyZBcmluZztyJzsKJGxhbmdbJ25vJ10gPSAnTmVqJzsKJGxhbmdbJ2RhaWx5J10gPSAnRGFnbGlndCc7CiRsYW5nWyd3ZWVrbHknXSA9ICdVZ2VudGxpZ3QnOwokbGFuZ1snbW9udGhseSddID0gJ00mYXJpbmc7bmVkbGlndCc7CiRsYW5nWyd5ZWFybHknXSA9ICcmQXJpbmc7cmxpZ3QnOwokbGFuZ1snaW50ZXJ2YWwnXSA9ICdHZW50YWcgaHZlcic7CiRsYW5nWydjYWxfcmVjdXJfZGV0YWlscyddID0gJ0RldGFsamVyIG9tIHRpbGJhZ2V2ZW5kZW5kZSBoJmFlbGlnO25kZWxzZSc7CiRsYW5nWyd1bmxpbWl0ZWQnXSA9ICdVYmVnciZhZWxpZztuc2V0JzsKJGxhbmdbJ21heF9yZWN1cl9ldmVudHMnXSA9ICdNYWtzaW1hbHQgYW50YWwgdW5kZXIgaCZhZWxpZztuZGVsc2VyJzsKJGxhbmdbJ3VzZV90b19kYXRlJ10gPSAnQW5naXYgZW4gYWx0ZXJuYXRpdiBzbHV0IGRhdG8/JzsKJGxhbmdbJ2NhbmNlbCddID0gJ0FmYnJ5ZCc7CiRsYW5nWydzaG93X2NoaWxkX2V2ZW50cyddID0gJ1ZpcyB1bmRlci1oJmFlbGlnO25kZWxzZXIgPGVtPihrYW4gbWVkZiZvc2xhc2g7cmUgbWVnZXQgbGFuZyB2aXNuaW5nKTwvZW0+JzsKJGxhbmdbJ24vYSddID0gJ24vYSc7CiRsYW5nWydyZWN1cnNfdW50aWwnXSA9ICdHZW50YWcgaW5kdGlsJzsKJGxhbmdbJ3BhcmVudCddID0gJ092ZXJoJmFlbGlnO25kZWxzZXInOwokbGFuZ1sncmVjdXJfcGVyaW9kJ10gPSAnR2VudGFnZWxzZXNwZXJpb2RlJzsKJGxhbmdbJ2ZpbHRlciddID0gJ0ZpbHRlcic7CiRsYW5nWydzdGFydF9kYXRlJ10gPSAnU3RhcnQgZGF0byc7CiRsYW5nWydlbmRfZGF0ZSddID0gJ1NsdXQgZGF0byc7CiRsYW5nWydpbmZvX3VwY29taW5nbGlzdF90ZW1wbGF0ZV90YWInXSA9ICdUaGUgbGlzdCBvZiB0ZW1wbGF0ZXMgdGhhdCBhcmUgYXZhaWxhYmxlIGZvciB1cGNvbWluZ2xpc3Qgdmlld3MnOwokbGFuZ1sndXBjb21pbmdsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IGFuIFVwY29taW5nbGlzdCBEaXNwbGF5IFRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF91cGNvbWluZ2xpc3RfdGVtcGxhdGUnXSA9ICdTeXN0ZW0gRGVmYXVsdCBVcGNvbWluZ2xpc3QgVGVtcGxhdGUnOwokbGFuZ1snaW5mb19saXN0X3RlbXBsYXRlX3RhYiddID0gJ1RoZSBsaXN0IG9mIHRlbXBsYXRlcyB0aGF0IGFyZSBhdmFpbGFibGUgZm9yIGxpc3Qgdmlld3MnOwokbGFuZ1snbGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBhbiBMaXN0IERpc3BsYXkgVGVtcGxhdGUnOwokbGFuZ1snaW5mb19zeXNkZmx0X2xpc3RfdGVtcGxhdGUnXSA9ICdTeXN0ZW0gRGVmYXVsdCBMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fZXZlbnRfdGVtcGxhdGVfdGFiJ10gPSAnVGhlIGxpc3Qgb2YgdGVtcGxhdGVzIHRoYXQgYXJlIGF2YWlsYWJsZSBmb3IgZXZlbnQgdmlld3MnOwokbGFuZ1snZXZlbnR0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgYW4gRXZlbnQgRGlzcGxheSBUZW1wbGF0ZSc7CiRsYW5nWydpbmZvX3N5c2RmbHRfZXZlbnRfdGVtcGxhdGUnXSA9ICdTeXN0ZW0gRGVmYXVsdCBFdmVudCBUZW1wbGF0ZSc7CiRsYW5nWydpbmZvX2NhbGVuZGFyX3RlbXBsYXRlX3RhYiddID0gJ1RoZSBsaXN0IG9mIHRlbXBsYXRlcyB0aGF0IGFyZSBhdmFpbGFibGUgZm9yIGNhbGVuZGFyIHZpZXdzJzsKJGxhbmdbJ2NhbGVuZGFydGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IGEgQ2FsZW5kYXIgRGlzcGxheSBUZW1wbGF0ZSc7CiRsYW5nWydpbmZvX3N5c2RmbHRfY2FsZW5kYXJfdGVtcGxhdGUnXSA9ICdTeXN0ZW0gRGVmYXVsdCBDYWxlbmRhciBUZW1wbGF0ZSc7CiRsYW5nWydpbmZvX3N5c2RmbHRfdGVtcGxhdGUnXSA9ICdUaGlzIGZvcm0gZGVmaW5lcyB0aGUgdGVtcGxhdGUgdGhhdCB3aWxsIGJlIHVzZWQgd2hlbiB5b3UgY2xpY2sgJnF1b3Q7TmV3IFRlbXBsYXRlJnF1b3Q7IGluIHRoZSBhcHByb3ByaWF0ZSB0YWIuICBDaGFuZ2luZyB0aGlzIHZhbHVlIHdpbGwgaGF2ZSBubyBpbW1lZGlhdGUgZWZmZWN0IG9uIHRoZSBkaXNwbGF5cyBnZW5lcmF0ZWQgZnJvbSB0aGlzIG1vZHVsZS4nOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50QWRkZWQnXSA9ICdLYWxkZXMgZWZ0ZXIgZW4gaCZhZWxpZztuZGVsc2UgZXIgdGlsZiZvc2xhc2g7amV0JzsKJGxhbmdbJ2V2ZW50ZGVzYy1FdmVudEVkaXRlZCddID0gJ0thbGRlcyBlZnRlciBlbiBoJmFlbGlnO25kZWxzZSBlciBibGV2ZXQgJmFlbGlnO25kcmV0JzsKJGxhbmdbJ2V2ZW50ZGVzYy1FdmVudERlbGV0ZWQnXSA9ICdLYWxkZXMgZWZ0ZXIgZW4gaCZhZWxpZztuZGVsc2UgZXIgYmxldmV0IHNsZXR0ZXQnOwokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5QWRkZWQnXSA9ICdLYWxkZXMgZWZ0ZXIgZW4ga2F0ZWdvcmkgZXIgb3ByZXR0ZXQnOwokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5RWRpdGVkJ10gPSAnS2FsZGVzIGVmdGVyIGVuIGthdGVnb3JpIGVyIGJsZXZldCByZWRpZ2VyZXQnOwokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5RGVsZXRlZCddID0gJ0thbGRlcyBlZnRlciBlbiBrYXRlZ29yaSBlciBibGV2ZXQgc2xldHRldCc7CiRsYW5nWydldmVudGhlbHAtRXZlbnRBZGRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGV2ZW50IGlzIGFkZGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7ZXZlbnRfdGl0bGVcJnF1b3Q7IC0gRXZlbnQgVGl0bGU8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9zdW1tYXJ5XCZxdW90OyAtIFN1bW1hcnkgVGV4dDwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2RldGFpbHNcJnF1b3Q7IC0gRGV0YWlsZWQgRGVzY3JpcHRpb248L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kYXRlX3N0YXJ0XCZxdW90OyAtIFRoZSBldmVudCBzdGFydCBkYXRlL3RpbWU8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kYXRlX2VuZFwmcXVvdDsgLSBUaGUgZXZlbnQgZW5kIGRhdGUvdGltZTwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2NyZWF0ZWRfYnlcJnF1b3Q7IC0gVGhlIHVzZXJpZCBvZiB0aGUgYXV0aG9yPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfaWRcJnF1b3Q7IC0gVGhlIGV2ZW50IGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUV2ZW50RWRpdGVkJ10gPSAnPHA+U2VudCB3aGVuIGEgY2FsZW5kYXIgZXZlbnQgaXMgZWRpdGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7ZXZlbnRfdGl0bGVcJnF1b3Q7IC0gRXZlbnQgVGl0bGU8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9zdW1tYXJ5XCZxdW90OyAtIFN1bW1hcnkgVGV4dDwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2RldGFpbHNcJnF1b3Q7IC0gRGV0YWlsZWQgRGVzY3JpcHRpb248L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kYXRlX3N0YXJ0XCZxdW90OyAtIFRoZSBldmVudCBzdGFydCBkYXRlL3RpbWU8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kYXRlX2VuZFwmcXVvdDsgLSBUaGUgZXZlbnQgZW5kIGRhdGUvdGltZTwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2NyZWF0ZWRfYnlcJnF1b3Q7IC0gVGhlIHVzZXJpZCBvZiB0aGUgYXV0aG9yPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfaWRcJnF1b3Q7IC0gVGhlIGV2ZW50IGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUV2ZW50RGVsZXRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGV2ZW50IGlzIGRlbGV0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtldmVudF9pZFwmcXVvdDsgLSBUaGUgZXZlbnQgaWQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGhlbHAtQ2F0ZWdvcnlBZGRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGNhdGVnb3J5IGlzIGFkZGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfaWRcJnF1b3Q7IC0gVGhlIGNhdGVnb3J5IGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5RWRpdGVkJ10gPSAnPHA+U2VudCB3aGVuIGEgY2FsZW5kYXIgY2F0ZWdvcnkgaXMgZWRpdGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfaWRcJnF1b3Q7IC0gVGhlIGNhdGVnb3J5IGlkPC9saT4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfbmFtZVwmcXVvdDsgLSBUaGUgY2F0ZWdvcnkgbmFtZTwvbGk+DQo8bGk+XCZxdW90O2NhdGVnb3J5X29yZGVyXCZxdW90OyAtIFRoZSBjYXRlZ29yeSBzb3J0IG9yZGVyPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5RGVsZXRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGNhdGVnb3J5IGlzIGRlbGV0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9pZFwmcXVvdDsgLSBUaGUgY2F0ZWdvcnkgaWQ8L2xpPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9uYW1lXCZxdW90OyAtIFRoZSBjYXRlZ29yeSBuYW1lPC9saT4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfb3JkZXJcJnF1b3Q7IC0gVGhlIGNhdGVnb3J5IHNvcnQgb3JkZXI8L2xpPg0KPC91bD4NCic7CiRsYW5nWydtc2dfZXZlbnRhZGRlZCddID0gJ0gmYWVsaWc7bmRlbHNlIHRpbGYmb3NsYXNoO2pldCc7CiRsYW5nWydlcnJvcl9ub2V2ZW50bmFtZSddID0gJ0gmYWVsaWc7bmRlbHNlbiBza2FsIGhhdmUgZXQgbmF2bic7CiRsYW5nWydlcnJvcl9ub3VwbG9hZCddID0gJ0VSUk9SOiBObyB1cGxvYWRlZCBmaWxlIGZvdW5kJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRmaWxlbmFtZSddID0gJ0VSUk9SOiBUaGUgZmlsZSB1cGxvYWRlZCBjYW5ub3QgYmUgYWNjZXB0ZWQnOwokbGFuZ1snZXJyb3JfcHJvYmxlbXdpdGh1cGxvYWQnXSA9ICdFUlJPUjogQSBwcm9ibGVtIG9jY3VycmVkIHRyeWluZyB0byB1cGxvYWQgdGhlIGZpbGUnOwokbGFuZ1snZXJyb3JfZmlsZWNvcHlmYWlsZWQnXSA9ICdFUlJPUjogQSBQcm9ibGVtIG9jY3VycmVkIHdoZW4gY29weWluZyB0aGUgZmlsZSB0byBpdHMgZmluYWwgZGVzdGluYXRpb24nOwokbGFuZ1snZXJyb3JfZmlsZWV4aXN0cyddID0gJ0VSUk9SOiBBIGZpbGUgYnkgdGhhdCBuYW1lIGFscmVhZHkgZXhpc3RzJzsKJGxhbmdbJ2Vycm9yX2NzdmZpbGVub3Rmb3VuZCddID0gJ0Zlamw6IGt1bm5lIGlra2UgZmluZGUgQ1NWLWZpbGVuJzsKJGxhbmdbJ2Vycm9yX2NhbnRvcGVuZmlsZSddID0gJ0Zlamw6IGthbiBpa2tlICZhcmluZztibmUgZmlsZW4nOwokbGFuZ1snZXJyb3JfY2F0ZWdvcnlleGlzdHMnXSA9ICdFUlJPUjogQSBjYXRlZ29yeSB3aXRoIHRoZSBuYW1lICVzIGFscmVhZHkgZXhpc3RzJzsKJGxhbmdbJ2NhbF9pZCddID0gJ0lkJzsKJGxhbmdbJ2NhbF9jYWxlbmRhciddID0gJ0thbGVuZGVyJzsKJGxhbmdbJ2NhbF9kZWZhdWx0X3RlbXBsYXRlcyddID0gJ1N0YW5kYXJkIHNrYWJlbG9uZXInOwokbGFuZ1snY2FsX2Rlc2NyaXB0aW9uJ10gPSAnVGlsZiZvc2xhc2g7aiwgcmV0IG9nIHNsZXQgaCZhZWxpZztuZGVsc2VyJzsKJGxhbmdbJ2NhbF9hZGRldmVudCddID0gJ1RpbGYmb3NsYXNoO2ogaCZhZWxpZztuZGVsc2UnOwokbGFuZ1snY2FsX2ltcG9ydF9ldmVudHMnXSA9ICdJbXBvcnQmZWFjdXRlO3IgaCZhZWxpZztuZGVsc2VyJzsKJGxhbmdbJ2NhbF9ldmVudHMnXSA9ICdIJmFlbGlnO25kZWxzZXInOwokbGFuZ1snY2FsX2NhdGVnb3JpZXMnXSA9ICdLYXRlZ29yaWVyJzsKJGxhbmdbJ2NhbF9jYWxlbmRhcl90ZW1wbGF0ZSddID0gJ0thbGVuZGVyIHNrYWJlbG9uJzsKJGxhbmdbJ2NhbF9saXN0X3RlbXBsYXRlJ10gPSAnTGlzdGUgc2thYmVsb24nOwokbGFuZ1snY2FsX3VwY29taW5nbGlzdF90ZW1wbGF0ZSddID0gJ1NrYWJlbG9uIGZvciBrb21tZW5kZSBoJmFlbGlnO25kZWxzZXInOwokbGFuZ1snY2FsX2V2ZW50X3RlbXBsYXRlJ10gPSAnU2thYmVsb24gZm9yIGgmYWVsaWc7bmRlbHNlJzsKJGxhbmdbJ2NhbF9zZXR0aW5ncyddID0gJ0luZHN0aWxsaW5nZXInOwokbGFuZ1snY2FsX3ByZXYnXSA9ICcmbGFxdW87IEZvcnJpZ2UnOwokbGFuZ1snY2FsX25leHQnXSA9ICdOJmFlbGlnO3N0ZSAmcmFxdW87JzsKJGxhbmdbJ2NhbF9jYXRlZ29yaWVzX3VwZGF0ZWQnXSA9ICdLYXRlZ29yaWVyIG9wZGF0ZXJldCc7CiRsYW5nWydjYWxfc2V0dGluZ3NfdXBkYXRlZCddID0gJ0luZHN0aWxsaW5nZXIgb3BkYXRlcmV0JzsKJGxhbmdbJ2NhbF9hZGRfZXZlbnQnXSA9ICdUaWxmJm9zbGFzaDtqIGgmYWVsaWc7bmRlbHNlJzsKJGxhbmdbJ2NhbF9lZGl0J10gPSAnUmV0JzsKJGxhbmdbJ2NhbF9kZWxldGUnXSA9ICdTbGV0JzsKJGxhbmdbJ2NhbF9hcmV5b3VzdXJlJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7IGR1IHZpbCBzbGV0dGUnOwokbGFuZ1snY2FsX3VwZGF0ZV90ZW1wbGF0ZSddID0gJ09wZGF0JmVhY3V0ZTtyIHNrYWJlbG9uJzsKJGxhbmdbJ2NhbF9zdW5kYXknXSA9ICdTJm9zbGFzaDtuZGFnJzsKJGxhbmdbJ2NhbF9tb25kYXknXSA9ICdNYW5kYWcnOwokbGFuZ1snY2FsX3R1ZXNkYXknXSA9ICdUaXJzZGFnJzsKJGxhbmdbJ2NhbF93ZWRuZXNkYXknXSA9ICdPbnNkYWcnOwokbGFuZ1snY2FsX3RodXJzZGF5J10gPSAnVG9yc2RhZyc7CiRsYW5nWydjYWxfZnJpZGF5J10gPSAnRnJlZGFnJzsKJGxhbmdbJ2NhbF9zYXR1cmRheSddID0gJ0wmb3NsYXNoO3JkYWcnOwokbGFuZ1snY2FsX3N1biddID0gJ1Mmb3NsYXNoO24nOwokbGFuZ1snY2FsX21vbiddID0gJ01hbic7CiRsYW5nWydjYWxfdHVlcyddID0gJ1Rpcic7CiRsYW5nWydjYWxfd2VkJ10gPSAnT25zJzsKJGxhbmdbJ2NhbF90aHVycyddID0gJ1Rvcic7CiRsYW5nWydjYWxfZnJpJ10gPSAnRnJlJzsKJGxhbmdbJ2NhbF9zYXQnXSA9ICdMJm9zbGFzaDtyJzsKJGxhbmdbJ2NhbF9qYW51YXJ5J10gPSAnSmFudWFyJzsKJGxhbmdbJ2NhbF9mZWJydWFyeSddID0gJ0ZlYnJ1YXInOwokbGFuZ1snY2FsX21hcmNoJ10gPSAnTWFydHMnOwokbGFuZ1snY2FsX2FwcmlsJ10gPSAnQXByaWwnOwokbGFuZ1snY2FsX21heSddID0gJ01haic7CiRsYW5nWydjYWxfanVuZSddID0gJ0p1bmknOwokbGFuZ1snY2FsX2p1bHknXSA9ICdKdWxpJzsKJGxhbmdbJ2NhbF9hdWd1c3QnXSA9ICdBdWd1c3QnOwokbGFuZ1snY2FsX3NlcHRlbWJlciddID0gJ1NlcHRlbWJlcic7CiRsYW5nWydjYWxfb2N0b2JlciddID0gJ09rdG9iZXInOwokbGFuZ1snY2FsX25vdmVtYmVyJ10gPSAnTm92ZW1iZXInOwokbGFuZ1snY2FsX2RlY2VtYmVyJ10gPSAnRGVjZW1iZXInOwokbGFuZ1snY2FsX2FkZCddID0gJ09wZGF0JmVhY3V0ZTtyJzsKJGxhbmdbJ2NhbF91cGRhdGUnXSA9ICdUaWxmJm9zbGFzaDtqJzsKJGxhbmdbJ2NhbF9ldmVudCddID0gJ0gmYWVsaWc7bmRlbHNlJzsKJGxhbmdbJ2NhbF9kYXRlJ10gPSAnRGF0byc7CiRsYW5nWydjYWxfc3VtbWFyeSddID0gJ092ZXJzaWd0JzsKJGxhbmdbJ2NhbF9kZXRhaWxzJ10gPSAnRGV0YWxqZXInOwokbGFuZ1snY2FsX21vcmUnXSA9ICdtZXJlID4+JzsKJGxhbmdbJ2NhbF9yZXR1cm4nXSA9ICdUaWxiYWdlJzsKJGxhbmdbJ2NhbF90byddID0gJ3RpbCc7CiRsYW5nWydjYWxfcGFzdF9ldmVudHMnXSA9ICdPdmVyc3QmYXJpbmc7ZWRlIGgmYWVsaWc7bmRlbHNlcic7CiRsYW5nWydjYWxfdXBjb21pbmdfZXZlbnRzJ10gPSAnS29tbWVuZGUgaCZhZWxpZztuZGVsc2VyJzsKJGxhbmdbJ2NhbF9hbnlfY2F0ZWdvcnknXSA9ICdBbGxlIGthdGVnb3JpZXInOwokbGFuZ1snY2FsX3Nob3dfb25seV9ldmVudHNfaW4nXSA9ICdWaXMga3VuIGgmYWVsaWc7bmRlbHNlciBpJzsKJGxhbmdbJ2NhbF9maWx0ZXJfYnknXSA9ICdGaWx0ciZlYWN1dGU7ciBwJmFyaW5nOyc7CiRsYW5nWydjYWxfZ28nXSA9ICdLJm9zbGFzaDtyJzsKJGxhbmdbJ2NhbF90aXRsZSddID0gJ1RpdGVsJzsKJGxhbmdbJ2NhbF9mcm9tZGF0ZSddID0gJ0ZyYSBkYXRvJzsKJGxhbmdbJ2NhbF90b2RhdGUnXSA9ICdUaWwgZGF0byc7CiRsYW5nWydjYWxfdXBkYXRlX2NhdGVnb3JpZXMnXSA9ICdPcGRhdCZlYWN1dGU7ciBrYXRlZ29yaWVyJzsKJGxhbmdbJ2NhbF9sYW5ndWFnZSddID0gJ1Nwcm9nJzsKJGxhbmdbJ2NhbF91cGRhdGVzZXR0aW5ncyddID0gJ09wZGF0JmVhY3V0ZTtyIGluZHN0aWxsaW5nZXInOwokbGFuZ1snY2FsX3VzZV90d2VsdmVfaG91cl9jbG9jayddID0gJ0Jlbnl0IDEyLXRpZHNhbmdpdmVsc2UgaSBkcm9wZG93bi4nOwokbGFuZ1snY2FsX2RlZmF1bHRfY2F0ZWdvcnknXSA9ICdTdGFuZGFyZCBrYXRlZ29yaSc7CiRsYW5nWydjYWxfdXBkYXRlX2ZpZWxkcyddID0gJ09wZGF0ZXIgZmVsdGVyJzsKJGxhbmdbJ2ZvcmNlX2NhdGVnb3J5J10gPSAnUCZhcmluZzt0dmluZyBtaW5kc3QgZW4ga2F0ZWdvcmknOwokbGFuZ1snc2hvd3Bhc3R5ZWFycyddID0gJ0h2b3IgbWFuZ2UgJmFyaW5nO3IgdGlsYmFnZSBpIHRpZGVuIGRlciBrYW4gYW5naXZlcyc7CiRsYW5nWydzaG93ZnV0dXJleWVhcnMnXSA9ICdIdm9yIG1hbmdlICZhcmluZztyIHVkIGkgZnJlbXRpZGVuIGRlciBrYW4gYW5naXZlcyc7CiRsYW5nWydoaWRlc3VtbWFyeSddID0gJ1NrYWwgcmVzdW1lIGZlbHRldCBza2p1bGVzJzsKJGxhbmdbJ2hpZGVjb250ZW50J10gPSAnU2thbCBpbmRob2xkc2ZlbHRldCBza2p1bGVzJzsKJGxhbmdbJ2NhdGVnb3J5X3JlbWluZGVyJ10gPSAnQW5naXYgbWluZHN0IGVuIGthdGVnb3JpIGZvciBkZW5uZSBoJmFlbGlnO25kZWxzZSc7CiRsYW5nWydtb2R1bGVfZXhhbXBsZV9zdHlsZXNoZWV0J10gPSAnS2FsZW5kZXIgQ1NTIGVrc2VtcGVsJzsKJGxhbmdbJ2Vycm9yX3Blcm1pc3Npb24nXSA9ICdEdSBza2FsIGhhdmUgZGVuIG4mb3NsYXNoO2R2ZW5kaWdlIHRpbGxhZGVsc2UgKCVzKSBmb3IgYXQga3VubmUgYmVueXR0ZSBkZW4gZnVua3Rpb24nOwokbGFuZ1snaW5zdGFsbF9wb3N0bWVzc2FnZSddID0gJ0h1c2sgYXQgc2wmYXJpbmc7IHRpbGxhZGVsc2VuICZxdW90O01vZGlmeSBDYWxlbmRhciZxdW90OyB0aWwgZm9yIGJydWdlcmUgZGVyIHNrYWwga3VubmUgYWRtaW5pc3RyZXJlIGthbGVuZGVyZW4uJzsKJGxhbmdbJ2RlbGV0ZXRhZ2dlZCddID0gJ1NsZXQgbWFya2VyZWRlIGgmYWVsaWc7bmRlbHNlcic7CiRsYW5nWydjb25maXJtZGVsZXRldGFnZ2VkJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7IGRpc3NlIGgmYWVsaWc7bmRlbHNlciBza2FsIHNsZXR0ZXM/JzsKJGxhbmdbJ3RhZ2dlZGRlbGV0ZWQnXSA9ICdNYXJrZXJlZGUgaCZhZWxpZztuZGVsc2VyIGJsZXYgc2xldHRldCc7CiRsYW5nWyd0ZW1wbGF0ZXMnXSA9ICdTa2FiZWxvbmVyJzsKJGxhbmdbJ3RlbXBsYXRlX2hlbHAnXSA9ICdTa2FiZWxvbiBoaiZhZWxpZztscCc7CiRsYW5nWydmaWxlX3RlbXBsYXRlcyddID0gJ0ZpbC1za2FiZWxvbmVyJzsKJGxhbmdbJ2FkZHRlbXBsYXRlJ10gPSAnVGlsZiZvc2xhc2g7aiBza2FiZWxvbic7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ1NrYWJlbG9uJzsKJGxhbmdbJ3RlbXBsYXRlbmFtZXRleHQnXSA9ICdTa2FiZWxvbiBuYXZuJzsKJGxhbmdbJ2VkaXR0ZW1wbGF0ZSddID0gJ1JlZGlnJmVhY3V0ZTtyIHNrYWJlbG9uJzsKJGxhbmdbJ2RlbGV0ZXRlbXBsYXRlJ10gPSAnU2xldCBza2FiZWxvbic7CiRsYW5nWyduZXd0ZW1wbGF0ZSddID0gJ055dCBza2FiZWxvbiBuYXZuJzsKJGxhbmdbJ3RlbXBsYXRlbmFtZWV4aXN0cyddID0gJ0Zlamw6IEVuIHNrYWJlbG9uIG1lZCBkZXQgbmF2biBla3Npc3RlcmVyIGFsbGVyZWRlJzsKJGxhbmdbJ3RlbXBsYXRlaW1wb3J0ZWQnXSA9ICdTa2FiZWxvbmVuIGJsZXYgaW1wb3J0ZXJldCBpIGRhdGFiYXNlbiBvZyBlciBudSBrbGFyIHRpbCBicnVnLic7CiRsYW5nWyd2aWV3X2RlZmF1bHRfc3R5bGVzaGVldCddID0gJ1ZpcyBzdGFuZGFyZCBzdHlsZXNoZWV0JzsKJGxhbmdbJ2ZpbGVuYW1lJ10gPSAnRmlsbmF2bic7CiRsYW5nWydpbXBvcnR0ZW1wbGF0ZSddID0gJ0ltcG9ydCZlYWN1dGU7ciBza2FiZWxvbic7CiRsYW5nWyd0ZW1wbGF0ZV9kZWxldGVkJ10gPSAnU2thYmVsb25lbiBibGV2IHNsZXR0ZXQgZnJhIGRhdGFiYXNlbic7CiRsYW5nWyd1cGRhdGV0ZW1wbGF0ZXN1Y2Nlc3MnXSA9ICdTa2FiZWxvbmVuIGJsZXYgb3BkYXRlcmV0JzsKJGxhbmdbJ3VwZGF0ZXRlbXBsYXRlZmFpbHVyZSddID0gJ0RlciBza2V0ZSBlbiBmZWpsIHZlZCBvcGRhdGVyaW5nJzsKJGxhbmdbJ3NldHRpbmdzc2F2ZWQnXSA9ICdJbmRzdGlsbGluZ2VybmUgYmxldiBnZW10JzsKJGxhbmdbJ2NhdGVnb3J5ZGVsZXRlZCddID0gJ0thdGVnb3JpZW4gYmxldiBzbGV0dGV0JzsKJGxhbmdbJ2NhdGVnb3J5dXBkYXRlZCddID0gJ0thdGVnb3JpZW4gYmxldiBvcGRhdGVyZXQnOwokbGFuZ1snY2F0ZWdvcnlhZGRlZCddID0gJ0thdGVnb3JpZW4gYmxldiB0aWxmJm9zbGFzaDtqZXQnOwokbGFuZ1snZXZlbnRkZWxldGVkJ10gPSAnSCZhZWxpZztuZGVsc2VuIGJsZXYgc2xldHRldCc7CiRsYW5nWydldmVudHVwZGF0ZWQnXSA9ICdIJmFlbGlnO25kZWxzZSBibGV2IG9wZGF0ZXJldCc7CiRsYW5nWydkZWZhdWx0X3BhZ2VfZXJyb3InXSA9ICdGZWpsOiBEdSBza2FsIGFuZ2l2ZSBlbiBzdGFuZGFyZHNpZGUgaHZpcyBkdSB2aWwgYmVueXR0ZSBrYWxlbmRlcmVuIG1lZCBwcmV0dHkgVVJMJiMwMzk7cyBzbCZhcmluZztldCB0aWwuIEcmYXJpbmc7IHZlbmxpZ3N0IHRpbCBrYWxlbmRlciBpbmRzdGlsbGluZ2VybmUgb2cgdiZhZWxpZztsZyBlbi4nOwokbGFuZ1sndGltZV9hdCddID0gJ2tsLic7CiRsYW5nWyd0eXBlJ10gPSAnVHlwZSc7CiRsYW5nWyduYW1lJ10gPSAnTmF2bic7CiRsYW5nWydvcmRlciddID0gJ1ImYWVsaWc7a2tlZiZvc2xhc2g7bGdlJzsKJGxhbmdbJ2ZpZWxkYWRkZWQnXSA9ICdGZWx0ZXQgYmxldiB0aWxmJm9zbGFzaDtqZXQnOwokbGFuZ1snZmllbGRkZWxldGVkJ10gPSAnRmVsdGV0IHNsZXR0ZXQnOwokbGFuZ1snZmllbGRzJ10gPSAnQnJ1Z2VyZGVmaW5lcmVkZSBmZWx0ZXInOwokbGFuZ1sndGV4dGZpZWxkJ10gPSAnVGVrc3QgZmVsdCc7CiRsYW5nWyd1cGxvYWRmaWVsZCddID0gJ0ZpbC11cGxvYWQgZmVsdCc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJzxwPkthbGVuZGVyIG1vZHVsZXQgYnJ1Z2VzIHRpbCBhdCB2aXNlIGJlZ2l2ZW5oZWRlciBwJmFyaW5nOyBkaW4gc2lkZS4gTiZhcmluZztyIG1vZHVsZXQgZXIgaW5zdGFsbGVyZXQgYmxpdmVyIGRlciB0aWxmJm9zbGFzaDtqZXQgZW4ga2FsZW5kZSBhZG1pbiBzaWRlIHRpbCBpbmRob2xkc21lbnVlbiwgZGVyIHZpbCBsYWRlIGRpZyBzdHlyZSBkaW5lIGJlZ2l2ZW5oZWRlci48L3A+JzsKJGxhbmdbJ2RlZmF1bHRjYWxlbmRhcnBhZ2UnXSA9ICdTaWRlbiwgZGVyIHNvbSBzdGFuZGFyZCBpbmRlaG9sZGVyIEthbGVuZGVyZW4uIERlbm5lIHNpZGUgc2thbCBpbmRlaG9sZGUgZW4gU21hcnR5IHRhZyBkZXIga2FsZGVyIEthbGVuZGVyLiBOJm9zbGFzaDtkdmVuZGlnIGh2aXMgZHUgJm9zbGFzaDtuc2tlciBhdCBiZW55dHRlICZxdW90O3ByZXR0eSBVUkxzJnF1b3Q7JzsKJGxhbmdbJ3VwbG9hZGRpcmVjdG9yeSddID0gJ0RpcmVjdG9yeSB3aGVyZXIgZmlsZSB1cGxvYWRzIHNob3VsZCBiZSBwbGFjZWQnOwokbGFuZ1sndXBsb2FkZmlsZXR5cGVzJ10gPSAnVGlsbGFkdGUgZmlsdHlwZXInOwokbGFuZ1sndXBsb2FkdW5pcXVlJ10gPSAnVHZpbmcgdW5pa2tlIGZpbG5hdm5lJzsKJGxhbmdbJ3RodW1iX3dpZHRoJ10gPSAnVGh1bWJuYWlsIGJyZWRkZSc7CiRsYW5nWyd0aHVtYl9oZWlnaHQnXSA9ICdUaHVtYm5haWwgaCZvc2xhc2g7amRlJzsKJGxhbmdbJ2xhcmdlX3dpZHRoJ10gPSAnU3RvcnQgYmlsbGVkZSBicmVkZGUnOwokbGFuZ1snbGFyZ2VfaGVpZ2h0J10gPSAnU3RvcnQgYmlsbGVkZSBoJm9zbGFzaDtqZGUnOwokbGFuZ1snY2FsX3JlY3VyX3BlcmlvZCddID0gJ0dlbnRhZ2VzJzsKJGxhbmdbJ2NhbF9yZWN1cl91bnRpbCddID0gJ0dlbnRhZ2VzIGluZHRpbCc7CiRsYW5nWydoZWxwX3RlbXBsYXRlJ10gPSAnPHA+PGI+UHJpbnQgQXV0aG9yIE5hbWU6PC9iPjwvcD4NCjxjb2RlPkF1dGhvcjogeyRldmVudC5hdXRob3JuYW1lfTwvY29kZT4NCic7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ25vcmVzdWx0cyddID0gJ0VzIGtvbm50ZW4ga2VpbmUgVGVybWluZSBmw7xyIGRpZSBhbmdlZ2ViZW5lbiBTdWNoa3JpdGVyaWVuIGdlZnVuZGVuIHdlcmRlbi4nOwokbGFuZ1snaGVscF9maW5kX3doZW4nXSA9ICdWZXJnYW5nZW5lIHVuZCB6dWvDvG5mdGlnZSBUZXJtaW5lIHNpbmQgaW1tZXIgcmVsYXRpdiB6dW0gZWlnZW50bGljaGVuIERhdHVtJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdOZXUgYW5vcmRuZW4nOwokbGFuZ1snZGZsdF9jb2xvcnMnXSA9ICdTdGFuZGFyZGZhcmJlbic7CiRsYW5nWydlZGl0X2NhdGVnb3J5J10gPSAnS2F0ZWdvcmllIGJlYXJiZWl0ZW4nOwokbGFuZ1snZmdjb2xvciddID0gJ1RleHRmYXJiZSc7CiRsYW5nWydiZ2NvbG9yJ10gPSAnSGludGVyZ3J1bmRmYXJiZSc7CiRsYW5nWydoZWxwX2ZpbmRfc2hvd2NoaWxkcmVuJ10gPSAnR2lidCBhbiwgb2IgdW50ZXJnZW9yZG5ldGUgVGVybWluZSBpbiBkaWUgU3VjaGVyZ2Vibmlzc2UgZWluZ2VzY2hsb3NzZW4gc2VpbiBzb2xsZW4uJzsKJGxhbmdbJ2dvdG9fZGF0ZSddID0gJ1p1IGRpZXNlbSBEYXR1bSBzcHJpbmdlbic7CiRsYW5nWydpbmZvX2ZpbmRfZXZlbnRzJ10gPSAnU3VjaGUgbmFjaCBwYXNzZW5kZW4gVGVybWluZW47IGJpcyB6dSB6ZWhuIFRlcm1pbmUgd2VyZGVuIGF1c2dlZ2ViZW4nOwokbGFuZ1sncmVzdWx0cyddID0gJ0VyZ2Vibmlzc2UnOwokbGFuZ1sna2V5d29yZHMnXSA9ICdTdWNoYmVncmlmZmUnOwokbGFuZ1snZmluZF9zaG93Y2hpbGRyZW4nXSA9ICdVbnRlcmdlb3JkbmV0ZSBhbnplaWdlbic7CiRsYW5nWydhbnknXSA9ICdlZ2FsJzsKJGxhbmdbJ3Bhc3QnXSA9ICd2ZXJnYW5nZW4nOwokbGFuZ1snZnV0dXJlJ10gPSAnenVrw7xuZnRpZyc7CiRsYW5nWydmaW5kX3doZW4nXSA9ICdXYW5uJzsKJGxhbmdbJ2ZpbmRfcGFyZW50c29ubHknXSA9ICdOdXIgw7xiZXJnZW9yZG5ldGUnOwokbGFuZ1snZmluZCddID0gJ0ZpbmRlbuKApic7CiRsYW5nWydlZGl0cGFyZW50J10gPSAnw5xiZXJnZW9yZG5ldGVzIGJlYXJiZWl0ZW4nOwokbGFuZ1sncHJvbXB0X3JlbW92ZWZyb21wYXJlbnQnXSA9ICdEaWVzZW4gVGVybWluIGF1cyBkZW0gw7xiZXJnZW9yZG5ldGVuIFRlcm1pbiBlbnRmZXJuZW4nOwokbGFuZ1snYWxsZGF5X2V2ZW50J10gPSAnRGllcyBpc3QgZWluIGdhbnp0w6RnaWdlciBUZXJtaW4nOwokbGFuZ1snbm90ZSddID0gJ0hpbndlaXMnOwokbGFuZ1sndGl0bGVfcGFyZW50X2V2ZW50J10gPSAnRGllc2VyIFRlcm1pbiBpc3Qgd2llZGVya2VocmVuZCB1bmQgZW50aMOkbHQgdW50ZXJnZW9yZG5ldGUnOwokbGFuZ1snc3RhcnQnXSA9ICdCZWdpbm4nOwokbGFuZ1snZW5kJ10gPSAnRW5kZSc7CiRsYW5nWydldmVudF9hY3Rpb24nXSA9ICdUZXJtaW5ha3Rpb24nOwokbGFuZ1snZXJyb3JfZGVsZXRlcGFyZW50ZXZlbnQnXSA9ICdFaW4gVGVybWluIG1pdCB1bnRlcmdlb3JkbmV0ZW4gVGVybWluZW4ga2FubiBuaWNodCBnZWzDtnNjaHQgd2VyZGVuJzsKJGxhbmdbJ2NoaWxkJ10gPSAndW50ZXJnZW9yZG5ldCc7CiRsYW5nWydyZXBlYXRzJ10gPSAnd2llZGVya2VocmVuZCc7CiRsYW5nWydlcnJvcl9ldmVudG5vdGZvdW5kJ10gPSAnVGVybWluIG5pY2h0IGdlZnVuZGVuJzsKJGxhbmdbJ2Vycm9yX3Vua25vd24nXSA9ICdVbmJla2FubnRlciBGZWhsZXInOwokbGFuZ1snbXNnX25vZGF0ZXMnXSA9ICdUaXRlbHN1Y2hlIGFuZ2V3ZW5kZXQnOwokbGFuZ1sndGl0bGVfcmVjdXJyaW5nX2V2ZW50J10gPSAnRGllcyBpc3QgZWluIHdpZWRlcmtlaHJlbmRlcyBFcmVpZ25pcyBtaXQgdW50ZXJnZW9yZG5ldGVuIEVpbnRyw6RnZW4nOwokbGFuZ1sndGl0bGVfY2hpbGRfZXZlbnQnXSA9ICdEaWVzIGlzdCBlaW4gdW50ZXJnZW9yZG5ldGVyIEVpbnRyYWcgZWluZXMgd2llZGVya2VocmVuZGVuIEVyZWlnbmlzc2VzJzsKJGxhbmdbJ2Vycm9yX3NvbWVkZWxldGVkJ10gPSAnQXVmZ3J1bmQgdm9uIEJlcmVjaHRpZ3VuZ3NlaW5zY2hyw6Rua3VuZ2VuIHd1cmRlbiBlaW5pZ2UgRXJlaWduaXNzZSBuaWNodCBnZWzDtnNjaHQuJzsKJGxhbmdbJ2Vycm9yX2RlbGV0ZWZhaWxlZCddID0gJ0zDtnNjaGVuIGRlcyBUZXJtaW5zIGZlaGxnZXNjaGxhZ2VuJzsKJGxhbmdbJ2ZpbGVhdHRhY2htZW50J10gPSAnRGF0ZWlhbmhhbmcnOwokbGFuZ1sncHJvbXB0X2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdBbGxnZW1laW5lIEVpbnN0ZWxsdW5nZW4nOwokbGFuZ1sncHJvbXB0X2VkaXRpbmdfc2V0dGluZ3MnXSA9ICdUZXJtaW5iZWFyYmVpdHVuZ3NlaW5zdGVsbHVuZ2VuJzsKJGxhbmdbJ3ByZXZfbW9udGgnXSA9ICdadW0gdm9yaWdlbiBNb25hdCc7CiRsYW5nWyduZXh0X21vbnRoJ10gPSAnWnVtIG7DpGNoc3RlbiBNb25hdCc7CiRsYW5nWydtc2dfY2F0ZWdvcmllc191cGRhdGVkJ10gPSAnS2F0ZWdvcmllbiBha3R1YWxpc2llcnQnOwokbGFuZ1snbXNnX2ZpZWxkc3VwZGF0ZWQnXSA9ICdGZWxkZGVmaW5pdGlvbmVuIGFrdHVhbGlzaWVydCc7CiRsYW5nWyd3eXNpd3lnJ10gPSAnV1lTSVdZRyc7CiRsYW5nWydpbmZvX3Jlb3JkZXJfY2F0ZWdvcmllcyddID0gJ0RpZSBSZWloZW5mb2xnZSBkZXIgS2F0ZWdvcmllbiBrYW5uIGR1cmNoIFppZWhlbiBkZXIgWmVpbGVuIGdlw6RuZGVydCB3ZXJkZW4uJzsKJGxhbmdbJ2FkZF9maWVsZCddID0gJ0ZlbGQgaGluenVmw7xnZW4nOwokbGFuZ1snYWRkX2NhdGVnb3J5J10gPSAnS2F0ZWdvcmllIGhpbnp1ZsO8Z2VuJzsKJGxhbmdbJ3Byb21wdF9maXJzdGRheW9md2VlayddID0gJ1dvY2hlIGJlZ2lubnQgYW0nOwokbGFuZ1snZWRpdF9ldmVudCddID0gJ0VyZWlnbmlzIGJlYXJiZWl0ZW4nOwokbGFuZ1snZWRpdF9wYXJlbnRfZXZlbnQnXSA9ICfDnGJlcmdlb3JkbmV0ZXMgRXJlaWduaXMgYmVhcmJlaXRlbic7CiRsYW5nWydzZWxlY3RfcGVyaW9kJ10gPSAnWmVpdHJhdW0nOwokbGFuZ1snc2hvd19maWx0ZXInXSA9ICdGaWx0ZXIgYW56ZWlnZW4nOwokbGFuZ1snc2hvd19maWx0ZXJfYXBwbGllZCddID0gJ0ZpbHRlciBhbnplaWdlbiA8ZW0+KGFuZ2V3ZW5kZXQpPC9lbT4nOwokbGFuZ1sncmVzZXQnXSA9ICdadXLDvGNrc2V0emVuJzsKJGxhbmdbJ2NhbF9jdXJyZW50J10gPSAnRGllc2VyIFplaXRyYXVtJzsKJGxhbmdbJ2NhbF9mcm9tJ10gPSAndm9uJzsKJGxhbmdbJ3Byb21wdF9mcmllbmRseW5hbWUnXSA9ICdTZWxic3RnZXfDpGhsdGVyIE5hbWUgZsO8ciBkaWVzZXMgTW9kdWwgaW0gQWRtaW5pc3RyYXRpb25zYmVyZWljaCc7CiRsYW5nWydpbmZvX2ZyaWVuZGx5bmFtZSddID0gJ0hpbndlaXM6IERhbWl0IGRpZXNlIMOEbmRlcnVuZyBzaWNodGJhciB3aXJkLCBtdXNzIHUuIFUuIGRlciBad2lzY2hlbnNwZWljaGVyIGdlbGVlcnQgd2VyZGVuLiBXZW5uIG5pY2h0cyBhbmdlZ2ViZW4gd2lyZCwgd2lyZCBkaWUgU3RhbmRhcmRiZXplaWNobnVuZyB2ZXJ3ZW5kZXQuJzsKJGxhbmdbJ3VzZV93eXNpd3lnJ10gPSAnV1lTSVdZRy1FZGl0b3IgdmVyd2VuZGVuJzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcyddID0gJ1VuZ2Vuw7xnZW5kZSBQYXJhbWV0ZXInOwokbGFuZ1snY29sdW1uX2RlbGltaXRlciddID0gJ1NwYWx0ZW50cmVubmVyJzsKJGxhbmdbJ2ltcG9ydF9jb21wbGV0ZWQnXSA9ICdJbXBvcnQgdm9sbHN0w6RuZGlnJzsKJGxhbmdbJ251bV9pbXBvcnRlZCddID0gJ0FuemFobCBkZXIgZWluZ2V0cmFnZW5lbiBUZXJtaW5lOiAlZCc7CiRsYW5nWydpbXBvcnRfbGluZXMnXSA9ICdBbnphaGwgZGVyIGF1cyBkZXIgRGF0ZWkgdmVyYXJiZWl0ZXRlbiBaZWlsZW46ICVkJzsKJGxhbmdbJ2Vycm9ycyddID0gJ0ZlaGxlcic7CiRsYW5nWydlcnJvcl9jc3ZmaXJzdGxpbmVpbnZhbGlkZmllbGQnXSA9ICdGZWxkICVzIHd1cmRlIG5pY2h0IGVya2FubnQgdW5kIGlzdCBrZWluIGFuZ2VwYXNzdGVzIEZlbGQnOwokbGFuZ1snaW5mb19jc3ZfZm9ybWF0J10gPSAnPGg0PkNTViBGaWxlIEZvcm1hdCBJbmZvcm1hdGlvbi48L2g0Pg0KPHVsPg0KICA8bGk+R2VuZXJhbCBJbmZvcm1hdGlvbjoNCiAgIDx1bD4NCiAgICAgPGxpPlRoZSBmaWxlIG11c3QgYmUgYW4gQVNDSUkgZmlsZSB3aXRoIHVuaXgsIGRvcywgb3IgKGhvcGVmdWxseSkgbWFjIGxpbmUgZW5kaW5ncy48L2xpPg0KICAgICA8bGk+Q29tbWVudHMgc3RhcnQgd2l0aCAvLyBhbnkgY2hhcmFjdGVycyBhZnRlciB0aGlzIG9uIGEgbGluZSB3aWxsIGJlIGlnbm9yZWQgKGluY2x1ZGluZyB3aXRoaW4gcXVvdGVzLjwvbGk+DQogICAgIDxsaT5FbXB0eSBsaW5lcyBhcmUgaWdub3JlLmQ8L2xpPg0KICAgICA8bGk+RmllbGRzIGFyZSBkZWxpbWl0ZWQgd2l0aCBhICwgaG93ZXZlciBhICwgY2FuIGJlIHVzZWQgYXMgYSB2YWx1ZSB3aXRoaW4gYSBmaWVsZCBpZiB0aGUgZmllbGQgaXMgZGVsaW1pdGVkIGJ5IGRvdWJsZSBxdW90ZXMuPC9saT4NCiAgICAgPGxpPlJvd3MgYXJlIGRlbGltaXRlZCBieSBuZXdsaW5lIGNoYXJzIChhcyBhYm92ZSkuPC9saT4NCiAgIDwvdWw+DQogIDwvbGk+DQogIDxsaT5UaGUgRmllbGQgTWFwOg0KICAgPHVsPg0KICAgIDxsaT5UaGUgZmlyc3QgbGluZSBkZWZpbmVzIHRoZSBvcmRlciBvZiB0aGUgZmllbGRzLCBhbmQgd2hhdCAiY3VzdG9tIGZpZWxkcyIgYXJlIGRlZmluZWQgaW4gdGhlIGZpbGUuIERhdGEgY2FuIHN0YXJ0IG9uIHRoZSBzZWNvbmQgbm9uLWVtcHR5IGxpbmUsIG9yIGFmdGVyLjwvbGk+DQogICAgPGxpPlRoZXJlcyBhcmUgdGhlIHJlcXVpcmVkIGZpZWxkczogc3RhcnQgdGltZSwgZW5kIHRpbWUsIHRpdGxlLCBzdW1tYXJ5LCBhbmQgZGVzY3JpcHRpb24uICBXaXRob3V0IGRlZmluaW5nIHRoZXNlIGZpZWxkcyBpbiB0aGUgaGVhZGVyIHRoZSBpbXBvcnQgd2lsbCBub3QgcHJvY2VlZC4gIFJlcXVpcmVkIGZpZWxkIG5hbWVzIGFyZSBub3QgY2FzZSBzZW5zaXRpdmUuPC9saT4NCiAgICA8bGk+VGhlcmUgaXMgb25lIG9wdGlvbmFsIGNvbHVtbjo6ICJjYXRlZ29yeSIuICBJZiBzcGVjaWZpZWQgaXQgY2FuIGNvbnRhaW4gYSA7IHNlcGFyYXRlZCBsaXN0IG9mIGNhdGVnb3J5IG5hbWVzIHRoYXQgdGhlIGV2ZW50IHdpbGwgYmVsb25nIHRvLjwvbGk+DQogICA8L3VsPg0KICA8L2xpPg0KICA8bGk+VGhlIERhdGEgUm93czoNCiAgIDx1bD4NCiAgICA8bGk+VGhlIHN0YXJ0IHRpbWUsIHRpdGxlLCBhbmQgZGVzY3JpcHRpb24gZmllbGRzIG11c3Qgbm90IGJlIGVtcHR5LjwvbGk+DQo8bGk+U3RhcnQgYW5kIEVuZCBUaW1lczo8L2xpPg0KICA8dWw+DQogICA8bGk+U3RhcnQgdGltZSBwcm9jZXNzaW5nIGlzIGZsZXhpYmxlLiAgWW91IGNhbiBzcGVjaWZ5IGVpdGhlciAgWVlZWS1NTS1ERCBISDpNTSBmb3JtYXQsIG9yIG1hbnkgZm9ybWF0cyBhcyBkZWZpbmVkIGJ5IHRoZSBzdHJ0b3RpbWUgZnVuY3Rpb24sIGluY2x1ZGluZyByZWxhdGl2ZSB0aW1lcy4gIElmIGEgcmVsYXRpdmUgdGltZSBpcyBzdXBwbGllZCBpdCBpcyBhc3N1bWVkIHRvIGJlIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHRpbWUuPC9saT4NCiAgIDxsaT5FbmQgdGltZSBwcm9jZXNzaW5nIGlzIGZsZXhpYmxlLCBhbmQgbWF5IGJlIGVtcHR5LiAgWW91IGNhbiBzcGVjaWZ5IGVpdGhlciBhbiBhYnNvbHV0ZSB0aW1lIChpbiB0aGUgc2FtZSBmb3JtYXQgYXMgdGhlIHN0YXJ0IHRpbWUpIG9yIGEgcmVsYXRpdmUgdGltZS4gIElmIGEgcmVsYXRpdmUgdGltZSBpcyBzcGVjaWZpZWQsIGl0IGlzIGFzc3VtZWQgdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IHRpbWUuICAgaS5lOiAiKzQgaG91cnMiIHdvdWxkIGluZGljYXRlIDQgaG91cnMgZnJvbSB0aGUgc3RhcnQgdGltZSBjb2x1bW4uPC9saT4NCiAgIDxsaT5JZiB0aGUgZW5kIHRpbWUgY29sdW1lIGlzIHRoZSBzdHJpbmcgIkFsbCBkYXkiIDxlbT4oY2FzZSBpbnNlbnNpdGl2ZSk8L2VtPiBpdCB3aWxsIGFzc3VtZSBhbiBhbGwgZGF5IGV2ZW50IGZyb20gdGhlIHN0YXJ0IHRpbWUuPC9saT4NCiAgIDxsaT5JZiB0aGUgZW5kIHRpbWUgY29sdW1uIGlzIGVtcHR5LCB0aGVuIG5vIGVuZCB0aW1lIHZhbHVlIHdpbGwgYmUgY3JlYXRlZCBpbiB0aGUgZGF0YWJhc2UuPC9saT4NCiAgPC91bD4NCjwvbGk+DQo8bGk+Q2F0ZWdvcmllcw0KICA8dWw+DQogICA8bGk+SWYgc3BlY2lmaWVkLCB0aGUgY2F0ZWdvcnkgY29sdW1uIGNhbiBjb250YWluIGEgbGlzdCAoc2VwYXJhdGVkIGJ5IDspIG9mIGNhdGVnb3J5IG5hbWVzIGZvciB3aGljaCB0aGUgZXZlbnQgc2hvdWxkIGJlbG9uZy48L2xpPg0KICAgPGxpPkNhdGVnb3J5IG5hbWVzIGFyZSBjYXNlIHNlbnNpdGl2ZS48L2xpPg0KICAgPGxpPkNhdGVnb3JpZXMgYXJlIG5vdCBjcmVhdGVkIGlmIHRoZXkgZG8gbm90IGV4aXN0LjwvbGk+DQogIDwvdWw+DQo8L2xpPg0KPGxpPkN1c3RvbSBGaWVsZHM6DQogIDx1bD4NCiAgICA8bGk+Q3VzdG9tIGZpZWxkIG5hbWVzIChldmVuIGluIHRoZSBmaXJzdCBsaW5lIHRoYXQgZGV0ZXJtaW5lcyB0aGUgZmllbGQgbWFwcGluZykgYXJlIGNhc2Ugc2Vuc2l0aXZlLjwvbGk+DQogICAgPGxpPkN1dG9tIGZpZWxkcyBhcmUgbm90IGNyZWF0ZWQgaWYgc3BlY2lmaWVkIGluIHRoZSBDU1YgZmlsZS4gIFVua25vd24gY3VzdG9tIGZpZWxkIGNvbHVtbnMgd2lsbCBiZSBpZ25vcmVkLjwvbGk+DQogICAgPGxpPkN1c3RvbSBmaWVsZHMgb2YgdHlwZSAiZmlsZSIgY2Fubm90IGJlIGltcG9ydGVkLiAgVGhlIGVudGlyZSBpbXBvcnQgb3BlcmF0aW9uIHdpbGwgZmFpbC48L2xpPg0KICA8L3VsPg0KICA8L2xpPg0KICA8L3VsPg0KPC9saT4NCjxsaT5BIHNhbXBsZSBjc3YgZmlsZSBleGlzdHMgaW4gdGhlIG1vZHVsZXMgc291cmNlIGNvZGUgZGlyZWN0b3J5LjwvbGk+DQo8L3VsPic7CiRsYW5nWydwcm9tcHRfY3N2X2ZpbGUnXSA9ICdEaWUgenUgaW1wb3J0aWVyZW5kZSBEYXRlaSBhdXN3w6RobGVuJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0zDtnNjaGVuJzsKJGxhbmdbJ2NkX2NvbXBhbnknXSA9ICdGaXJtZW52ZXJ6ZWljaG5pcyc7CiRsYW5nWydkZmx0X3VybHByZWZpeCddID0gJ1ZvcmVpbmdlc3RlbGx0ZXMgVVJMLVByw6RmaXggZsO8ciBQcmV0dHkgVVJMcyc7CiRsYW5nWydkZmx0X2FsbGRheWV2ZW50J10gPSAnTmV1ZSBUZXJtaW5lIHNvbGxlbiB2b3JlaW5nZXN0ZWxsdCBnYW56dMOkZ2lnIHNlaW4nOwokbGFuZ1snZGZsdF9zdGFydHRpbWUnXSA9ICdWb3JlaW5nZXN0ZWxsdGUgU3RhcnR6ZWl0IGbDvHIgbmV1ZSBUZXJtaW5lJzsKJGxhbmdbJ2luZm9fZGZsdF9zdGFydHRpbWUnXSA9ICc8ZW0+KHdpcmQgbnVyIGRhbm4gYW5nZXdlbmRldCwgd2VubiBuZXVlIFRlcm1pbmUga2VpbmUgZ2FuenTDpHRpZ2VuIFRlcm1pbmUgc2luZC4pPC9lbT4nOwokbGFuZ1snc2VhcmNoX3R5cGUnXSA9ICdTdWNoLVR5cCc7CiRsYW5nWydzZWFyY2hfYW55J10gPSAnR2lidCBFcmdlYm5pc3NlIHp1csO8Y2ssIHdlbm4gaXJnZW5kIGVpbiBXb3J0IGVudGhhbHRlbiBpc3QnOwokbGFuZ1snc2VhcmNoX2FsbCddID0gJ0dpYnQgRXJnZWJuaXNzZSB6dXLDvGNrLCB3ZW5uIGFsbGUgV29ydGUgZW50aGFsdGVuIHNpbmQnOwokbGFuZ1snc2VhcmNoYWJsZSddID0gJ0R1cmNoc3VjaGJhcic7CiRsYW5nWydoZWxwX3BhcmFtX2VkaXRldmVudHRlbXBsYXRlJ10gPSAnS2FubiBudXIgenVzYW1tZW4gbWl0IGRlciBBa3Rpb24g4oCebXlldmVudHPigJwgdmVyd2VuZGV0IHdlcmRlbi4gTWl0IGRpZXNlbSBQYXJhbWV0ZXIga2FubiBlaW5lIHZvbiBkZW4gVm9yZWluc3RlbGx1bmdlbiBhYndlaWNoZW5kZSBWb3JsYWdlIGZlc3RnZWxlZ3Qgd2VyZGVuLCB3ZW5uIGVpbiBCZW51dHplciBlaW5lbiBUZXJtaW4gZXJzdGVsbHQgb2RlciBiZWFyYmVpdGV0JzsKJGxhbmdbJ2hlbHBfcGFyYW1fZWRpdHBhZ2UnXSA9ICdLYW5uIG51ciB6dXNhbW1lbiBtaXQgZGVyIEFrdGlvbiBteWV2ZW50cyB2ZXJ3ZW5kZXQgd2VyZGVuLiBNaXQgZGllc2VtIFBhcmFtZXRlciBrYW5uIGVpbmUgdm9uIGRlbiBWb3JlaW5zdGVsbHVuZ2VuIGFid2VpY2hlbmRlIFNlaXRlIGbDvHIgZGFzIEJlYXJiZWl0dW5nc2Zvcm11bGFyIGZlc3RnZWxlZ3Qgd2VyZGVuLic7CiRsYW5nWydoZWxwX3BhcmFtX215ZXZlbnRzdGVtcGxhdGUnXSA9ICdLYW5uIG51ciB6dXNhbW1lbiBtaXQgZGVyIEFrdGlvbiBteWV2ZW50cyB2ZXJ3ZW5kZXQgd2VyZGVuLiBNaXQgZGllc2VtIFBhcmFtZXRlciBrYW5uIGVpbmUgdm9uIGRlbiBWb3JlaW5zdGVsbHVuZ2VuIGFid2VpY2hlbmRlIFZvcmxhZ2UgZmVzdGdlbGVndCB3ZXJkZW4uJzsKJGxhbmdbJ2NhbF9lZGl0X2V2ZW50J10gPSAnS2FsZW5kZXItRWludHJhZyBiZWFyYmVpdGVuJzsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdEYXRlbmJhbmtmZWhsZXInOwokbGFuZ1snc3VibWl0J10gPSAnQWJzZW5kZW4nOwokbGFuZ1snaW5mb19zeXNkZmx0X2VkaXRldmVudF90ZW1wbGF0ZSddID0gJ1ZvcmVpbmdlc3RlbGx0ZSBWb3JsYWdlIGbDvHIg4oCeVGVybWluIGJlYXJiZWl0ZW7igJwnOwokbGFuZ1snaW5mb19zeXNkZmx0X215ZXZlbnRzX3RlbXBsYXRlJ10gPSAnVm9yZWluZ2VzdGVsbHRlIFZvcmxhZ2UgZsO8ciDigJ5NZWluZSBUZXJtaW5l4oCcJzsKJGxhbmdbJ3Byb21wdF9mZWVkaXRfZ3JvdXAnXSA9ICdNaXRnbGllZGVyIGRpZXNlciBGRVUtR3J1cHBlIGTDvHJmZW4gVGVybWluZSBoaW56dWbDvGdlbic7CiRsYW5nWydwcm9tcHRfZmVlZGl0X3BhZ2UnXSA9ICdWb3JlaW5nZXN0ZWxsdGUgU2VpdGUgZsO8ciBkYXMgQmVhcmJlaXR1bmdzZm9ybXVsYXIgYXVmIGRlciBXZWJzZWl0ZS9Gcm9udGVuZCc7CiRsYW5nWydub25lJ10gPSAnS2VpbihlKS9vaG5lIFZvcmdhYmUnOwokbGFuZ1snb3duZXInXSA9ICdFaWdlbnTDvG1lcic7CiRsYW5nWydjYWxfZWRpdGV2ZW50X3RlbXBsYXRlcyddID0gJ1ZvcmxhZ2VuIHp1bSBCZWFyYmVpdGVuIHZvbiBUZXJtaW4tRm9ybXVsYXJlbic7CiRsYW5nWydpbmZvX2VkaXRldmVudF90ZW1wbGF0ZV90YWInXSA9ICdEaWUgTGlzdGUgZGVyIFZvcmxhZ2VuLCBkaWUgZsO8ciBkaWUgQmVhcmJlaXR1bmcgdm9uIFRlcm1pbi1Gb3JtdWxhcmVuIHZlcmbDvGdiYXIgc2luZCc7CiRsYW5nWydlZGl0ZXZlbnR0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnRWluZSBWb3JsYWdlIHp1bSBCZWFyYmVpdGVuIHZvbiBUZXJtaW4tRm9ybXVsYXJlbiBoaW56dWbDvGdlbi9iZWFyYmVpdGVuJzsKJGxhbmdbJ2NhbF9teWV2ZW50c190ZW1wbGF0ZXMnXSA9ICdNZWluZSBUZXJtaW5saXN0ZW4tVm9ybGFnZW4nOwokbGFuZ1snaW5mb19teWV2ZW50c190ZW1wbGF0ZV90YWInXSA9ICdEaWUgTGlzdGUgZGVyIFZvcmxhZ2VuLCBkaWUgZsO8ciBkaWUgQW56ZWlnZSBlaW5lciBMaXN0ZSB2b24gQmVudXR6ZXJ0ZXJtaW5lbiB2ZXJmw7xnYmFyIHNpbmQnOwokbGFuZ1snbXlldmVudHN0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnRWluZSDigJ5NZWluZSBUZXJtaW5l4oCcLUJlcmljaHRzdm9ybGFnZSBoaW56dWbDvGdlbi9iZWFyYmVpdGVuJzsKJGxhbmdbJ2FyZXlvdXN1cmVfcmVtb3ZlY29uZmxpY3RpbmcnXSA9ICdNaXQgZGllc2VyIEFrdGlvbiB3ZXJkZW4gYWxsZSBUZXJtaW5lIGVudGZlcm50LCBkaWUgS29uZmxpa3RlIG1pdCBUZXJtaW5lbiBoZXJ2b3JydWZlbiwgZGllIG5pY2h0IHZvbiBhbmRlcmVuIFRlcm1pbmVuIMO8YmVybGFwcHQgd2VyZGVuIGTDvHJmZW4uIFdvbGxlbiBTaWUgZGFzIHdpcmtsaWNoPyc7CiRsYW5nWydmaWx0ZXJfY29uZmxpY3RpbmcnXSA9ICdLb25mbGlrdGJlaGFmdGV0ZSBUZXJtaW5lIGZpbHRlcm4nOwokbGFuZ1snb3ZlcmxhcF9hY3Rpb25fcmVtb3ZlJ10gPSAnS29uZmxpa3RiZWhhZnRldGUgVGVybWluZSBzdGlsbCBlbnRmZXJuZW4nOwokbGFuZ1snb3ZlcmxhcF9hY3Rpb25fZXJyb3InXSA9ICdFaW5lbiBGZWhsZXIgYW56ZWlnZW4nOwokbGFuZ1sncHJvbXB0X292ZXJsYXBfYWN0aW9uJ10gPSAnV2FzIHNvbGwgcGFzc2llcmVuLCB3ZW5uIGVpbiBLb25mbGlrdCBiZWltIEVyc3RlbGxlbiBvZGVyIEJlYXJiZWl0ZW4gZWluZXMgVGVybWlucyBmZXN0Z2VzdGVsbHQgd2lyZD8nOwokbGFuZ1snZXJyb3JfZXZlbnRfY29uZmxpY3QnXSA9ICdEaWUgZsO8ciBkZW4gVGVybWluIGVpbmdlZ2ViZW5lbiBXZXJ0ZSDDvGJlcnNjaG5laWRlbiBzaWNoIG1pdCBlaW5lbSBiZXJlaXRzIGV4aXN0aWVyZW5kZW4gVGVybWluLCBkZXIgbmljaHQgw7xiZXJsYXBwdCB3ZXJkZW4gZGFyZic7CiRsYW5nWydjYWxfaW5mb19vdmVybGFwJ10gPSAnTnVyIGF1ZiBUZXJtaW5lIG1pdCBlaW5lciBFbmR6ZWl0IG9kZXIgZ2FuenTDpGdpZ2VuIFRlcm1pbmVuIGFud2VuZGVuJzsKJGxhbmdbJ2NhbF9vdmVybGFwJ10gPSAnTmV1ZW4gVGVybWluZW4gZXJsYXViZW4sIHNpY2ggbWl0IGRpZXNlbiB6dSDDvGJlcnNjaG5laWRlbic7CiRsYW5nWydwcm9tcHRfb3ZlcmxhcF9wb2xpY3knXSA9ICdSZWdlbCBmw7xyIFRlcm1pbsO8YmVyc2NobmVpZHVuZ2VuJzsKJGxhbmdbJ3BvbGljeV9hbGwnXSA9ICdBbGxlIFRlcm1pbmUga8O2bm5lbiBzaWNoIMO8YmVyc2NobmVpZGVuJzsKJGxhbmdbJ3BvbGljeV9ub25lJ10gPSAnS2VpbiBUZXJtaW4gZGFyZiBzaWNoIMO8YmVyc2NobmVpZGVuJzsKJGxhbmdbJ3BvbGljeV9pbmRpdmlkdWFsJ10gPSAnU29sbCBmw7xyIGplZGVuIFRlcm1pbiBpbmRpdmlkdWVsbCBmZXN0Z2VsZWd0IHdlcmRlbiBrw7ZubmVuJzsKJGxhbmdbJ2xibF9iYWNrJ10gPSAnWnVyw7xjayc7CiRsYW5nWydsYmxfdGVtcGxhdGVzJ10gPSAnVm9ybGFnZW4nOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZXh0YmVyZWljaCc7CiRsYW5nWydlcnJvcl9jYWxlbmRhcl9pbmNvbXBhdGlibGUnXSA9ICdFcyB3dXJkZSBmZXN0Z2VzdGVsbHQsIGRhc3MgZGFzIE1vZHVsIOKAnkNhbGVuZGFy4oCcIGViZW5mYWxscyBpbnN0YWxsaWVydCBpc3QuIERpZXNlcyBNb2R1bCBpc3QgTklDSFQga29tcGF0aWJlbCBtaXQgZGllc2VtIEthbGVuZGVybW9kdWwgdW5kIGthbm4gYXVjaCBOSUNIVCBnbGVpY2h6ZWl0aWcgaW5zdGFsbGllcnQgc2Vpbi4gQml0dGUgZGVpbnN0YWxsaWVyZW4gU2llIGRhcyDigJ5DYWxlbmRhcuKAnC1Nb2R1bC4nOwokbGFuZ1snZXJyb3JfZXZlbnRfbm90X2ZvdW5kJ10gPSAnRW50d2VkZXIgaXN0IGRpZSBldmVudF9pZCBuaWNodCBpbiBkZXIgRGF0ZW5iYW5rIHZvcmhhbmRlbiwgb2RlciBlcyBnaWJ0IG1laHJlcmUgRWludHLDpGdlIG1pdCBkaWVzZXIgSUQhICglZCknOwokbGFuZ1snZmlyc3RfcGFnZSddID0gJ8KrJzsKJGxhbmdbJ3ByZXZfcGFnZSddID0gJ+KAuSc7CiRsYW5nWyduZXh0X3BhZ2UnXSA9ICfigLonOwokbGFuZ1snbGFzdF9wYWdlJ10gPSAnwrsnOwokbGFuZ1sncGFnZV9vZiddID0gJ1NlaXRlICVkIHZvbiAlZCc7CiRsYW5nWydzZWFyY2hfcmVzdWx0cyddID0gJ0thbGVuZGVyLVN1Y2hlcmdlYm5pc3NlJzsKJGxhbmdbJ3NlYXJjaF93b3JkcyddID0gJ1N1Y2hiZWdyaWZmZSc7CiRsYW5nWydub19yZXN1bHRzX2ZvdW5kJ10gPSAnRXMgd3VyZGVuIGtlaW5lIEVyZ2Vibmlzc2UgenVtIGFuZ2VnZWJlbmVuIFN1Y2hiZWdyaWZmIGdlZnVuZGVuJzsKJGxhbmdbJ2ZyZXF1ZW5jeSddID0gJ1dpZWRlcmhvbHVuZyc7CiRsYW5nWydzcGVjaWZpZWRfZGF0ZSddID0gJ0VpbiBiZXN0aW1tdGVzIERhdHVtIGJlbnV0emVuJzsKJGxhbmdbJ2ZpcnN0X3N1bmRheSddID0gJ0Vyc3RlciBTb25udGFnIGRlcyBNb25hdHMnOwokbGFuZ1snZmlyc3RfbW9uZGF5J10gPSAnRXJzdGVyIE1vbnRhZyBkZXMgTW9uYXRzJzsKJGxhbmdbJ2ZpcnN0X3R1ZXNkYXknXSA9ICdFcnN0ZXIgRGllbnN0YWcgZGVzIE1vbmF0cyc7CiRsYW5nWydmaXJzdF93ZWRuZXNkYXknXSA9ICdFcnN0ZXIgTWl0dHdvY2ggZGVzIE1vbmF0cyc7CiRsYW5nWydmaXJzdF90aHVyc2RheSddID0gJ0Vyc3RlciBEb25uZXJzdGFnIGRlcyBNb25hdHMnOwokbGFuZ1snZmlyc3RfZnJpZGF5J10gPSAnRXJzdGVyIEZyZWl0YWcgZGVzIE1vbmF0cyc7CiRsYW5nWydmaXJzdF9zYXR1cmRheSddID0gJ0Vyc3RlciBTYW1zdGFnIGRlcyBNb25hdHMnOwokbGFuZ1snc2Vjb25kX3N1bmRheSddID0gJ1p3ZWl0ZXIgU29ubnRhZyBkZXMgTW9uYXRzJzsKJGxhbmdbJ3NlY29uZF9tb25kYXknXSA9ICdad2VpdGVyIE1vbnRhZyBkZXMgTW9uYXRzJzsKJGxhbmdbJ3NlY29uZF90dWVzZGF5J10gPSAnWndlaXRlciBEaWVuc3RhZyBkZXMgTW9uYXRzJzsKJGxhbmdbJ3NlY29uZF93ZWRuZXNkYXknXSA9ICdad2VpdGVyIE1pdHR3b2NoIGRlcyBNb25hdHMnOwokbGFuZ1snc2Vjb25kX3RodXJzZGF5J10gPSAnWndlaXRlciBEb25uZXJzdGFnIGRlcyBNb25hdHMnOwokbGFuZ1snc2Vjb25kX2ZyaWRheSddID0gJ1p3ZWl0ZXIgRnJlaXRhZyBkZXMgTW9uYXRzJzsKJGxhbmdbJ3NlY29uZF9zYXR1cmRheSddID0gJ1p3ZWl0ZXIgU2Ftc3RhZyBkZXMgTW9uYXRzJzsKJGxhbmdbJ3RoaXJkX3N1bmRheSddID0gJ0RyaXR0ZXIgU29ubnRhZyBkZXMgTW9uYXRzJzsKJGxhbmdbJ3RoaXJkX21vbmRheSddID0gJ0RyaXR0ZXIgTW9udGFnIGRlcyBNb25hdHMnOwokbGFuZ1sndGhpcmRfdHVlc2RheSddID0gJ0RyaXR0ZXIgRGllbnN0YWcgZGVzIE1vbmF0cyc7CiRsYW5nWyd0aGlyZF93ZWRuZXNkYXknXSA9ICdEcml0dGVyIE1pdHR3b2NoIGRlcyBNb25hdHMnOwokbGFuZ1sndGhpcmRfdGh1cnNkYXknXSA9ICdEcml0dGVyIERvbm5lcnN0YWcgZGVzIE1vbmF0cyc7CiRsYW5nWyd0aGlyZF9mcmlkYXknXSA9ICdEcml0dGVyIEZyZWl0YWcgZGVzIE1vbmF0cyc7CiRsYW5nWyd0aGlyZF9zYXR1cmRheSddID0gJ0RyaXR0ZXIgU2Ftc3RhZyBkZXMgTW9uYXRzJzsKJGxhbmdbJ2ZvdXJ0aF9zdW5kYXknXSA9ICdWaWVydGVyIFNvbm50YWcgZGVzIE1vbmF0cyc7CiRsYW5nWydmb3VydGhfbW9uZGF5J10gPSAnVmllcnRlciBNb250YWcgZGVzIE1vbmF0cyc7CiRsYW5nWydmb3VydGhfdHVlc2RheSddID0gJ1ZpZXJ0ZXIgRGllbnN0YWcgZGVzIE1vbmF0cyc7CiRsYW5nWydmb3VydGhfd2VkbmVzZGF5J10gPSAnVmllcnRlciBNaXR0d29jaCBkZXMgTW9uYXRzJzsKJGxhbmdbJ2ZvdXJ0aF90aHVyc2RheSddID0gJ1ZpZXJ0ZXIgRG9ubmVyc3RhZyBkZXMgTW9uYXRzJzsKJGxhbmdbJ2ZvdXJ0aF9mcmlkYXknXSA9ICdWaWVydGVyIEZyZWl0YWcgZGVzIE1vbmF0cyc7CiRsYW5nWydmb3VydGhfc2F0dXJkYXknXSA9ICdWaWVydGVyIFNhbXN0YWcgZGVzIE1vbmF0cyc7CiRsYW5nWydsYXN0X3N1bmRheSddID0gJ0xldHp0ZXIgU29ubnRhZyBkZXMgTW9uYXRzJzsKJGxhbmdbJ2xhc3RfbW9uZGF5J10gPSAnTGV0enRlciBNb250YWcgZGVzIE1vbmF0cyc7CiRsYW5nWydsYXN0X3R1ZXNkYXknXSA9ICdMZXR6dGVyIERpZW5zdGFnIGRlcyBNb25hdHMnOwokbGFuZ1snbGFzdF93ZWRuZXNkYXknXSA9ICdMZXR6dGVyIE1pdHR3b2NoIGRlcyBNb25hdHMnOwokbGFuZ1snbGFzdF90aHVyc2RheSddID0gJ0xldHp0ZXIgRG9ubmVyc3RhZyBkZXMgTW9uYXRzJzsKJGxhbmdbJ2xhc3RfZnJpZGF5J10gPSAnTGV0enRlciBGcmVpdGFnIGRlcyBNb25hdHMnOwokbGFuZ1snbGFzdF9zYXR1cmRheSddID0gJ0xldHp0ZXIgU2Ftc3RhZyBkZXMgTW9uYXRzJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfcmVjdXJfbW9udGhseV9mcmVxJ10gPSAnVW5nw7xsdGlnZSBXaWVkZXJob2x1bmcg4oCTIGVpbiBiZXN0aW1tdGVzIERhdHVtIGthbm4gbmljaHQgenVzYW1tZW4gbWl0IGFuZGVyZW4gV2VydGVuIGFuZ2VnZWJlbiB3ZXJkZW4nOwokbGFuZ1snc2VhcmNocmVzdWx0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0VpbmUgU3VjaGVyZ2Vibmlzdm9ybGFnZSBoaW56dWbDvGdlbi9iZWFyYmVpdGVuJzsKJGxhbmdbJ2luZm9fc2VhcmNocmVzdWx0X3RlbXBsYXRlX3RhYiddID0gJ0VpbmUgTGlzdGUgZGVyIFZvcmxhZ2VuLCBkaWUgZsO8ciBkaWUgQW56ZWlnZSBkZXIgU3VjaGVyZ2Vibmlzc2UgdmVyZsO8Z2JhciBzaW5kJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9zZWFyY2hyZXN1bHRfdGVtcGxhdGUnXSA9ICdWb3JlaW5nZXN0ZWxsdGUgVm9ybGFnZSBmw7xyIFN1Y2hlcmdlYm5pcyc7CiRsYW5nWydjYWxfc2VhcmNoX3Jlc3VsdF90ZW1wbGF0ZXMnXSA9ICdWb3JsYWdlbiBmw7xyIFN1Y2hlcmdlYm5pc3NlJzsKJGxhbmdbJ2Vycm9yX3F1ZXJ5X2ZhaWxlZCddID0gJ0RhdGVuYmFua2FiZnJhZ2UgZmVobGdlc2NobGFnZW4nOwokbGFuZ1snZXJyb3Jfc2VhcmNoX2ludmFsaWRfZGF0ZXMnXSA9ICdVbmfDvGx0aWdlIFN1Y2hkYXRlbiBhbmdlZ2ViZW4nOwokbGFuZ1sndGV4dCddID0gJ1RleHQnOwokbGFuZ1snc2VhcmNoJ10gPSAnU3VjaGUnOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdLYXRlZ29yaWUnOwokbGFuZ1snaW5mb19zeXNkZmx0X3NlYXJjaF90ZW1wbGF0ZSddID0gJ1ZvcmVpbmdlc3RlbGx0ZSBTdWNoZm9ybXVsYXJ2b3JsYWdlJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdFaW4gU3VjaGZvcm11bGFydm9ybGFnZSBoaW56dWbDvGdlbi9iZWFyYmVpdGVuJzsKJGxhbmdbJ2luZm9fc2VhcmNoX3RlbXBsYXRlX3RhYiddID0gJ0xpc3RlIGRlciBWb3JsYWdlbiwgZGllIGbDvHIgZGllIEFuemVpZ2UgZGVzIFN1Y2hmb3JtdWxhcnMgdmVyZsO8Z2JhciBzaW5kJzsKJGxhbmdbJ2NhbF9zZWFyY2hfZm9ybV90ZW1wbGF0ZXMnXSA9ICdTdWNoZm9ybXVsYXJ2b3JsYWdlbic7CiRsYW5nWydtYXgnXSA9ICdtYXhpbWFsJzsKJGxhbmdbJ3RpbWVzJ10gPSAnTWFsJzsKJGxhbmdbJ29uJ10gPSAnYW4nOwokbGFuZ1snYXJleW91c3VyZV91bmluc3RhbGwnXSA9ICdXb2xsZW4gU2llIGRhcyB3aXJrbGljaCB0dW4/IEluIGRpZXNlbSBGYWxsIHdlcmRlbiBhbGxlIG1pdCBkaWVzZW0gTW9kdWwgdmVyYnVuZGVuZW4gRGF0ZW4gZGF1ZXJoYWZ0IGdlbMO2c2NodC4nOwokbGFuZ1sncG9zdF91bmluc3RhbGwnXSA9ICdEYXMgS2FsZW5kZXItTW9kdWwgd3VyZGUgZGVpbnN0YWxsaWVydC4gU8OkbXRsaWNoZSwgaW4gZGVtIE1vZHVsIHZvcmhhbmRlbmVuIEVyZWlnbmlzc2UgdW5kIFRlbXBsYXRlcyB3dXJkZW4gZW50ZmVybnQuJzsKJGxhbmdbJ2ZpZWxkdXBkYXRlZCddID0gJ0ZlbGQgYWt0dWFsaXNpZXJ0JzsKJGxhbmdbJ2V2ZXJ5J10gPSAnSmVkZW4nOwokbGFuZ1snb3InXSA9ICdvZGVyJzsKJGxhbmdbJ3VwZGF0ZV9jaGlsZHJlbiddID0gJ1VudGVyZ2VvcmRuZXRlIEVyZWlnbmlzc2UgYWt0dWFsaXNpZXJlbic7CiRsYW5nWydlcnJvcl9ub2NhdGVnb3J5J10gPSAnU2llIG3DvHNzZW4gbWluZGVzdGVucyBlaW5lIEthdGVnb3JpZSBhdXN3w6RobGVuJzsKJGxhbmdbJ2Vycm9yX25vdGhpbmdzZWxlY3RlZCddID0gJ0VzIHd1cmRlIG5pY2h0cyB6dW0gTMO2c2NoZW4gYXVzZ2V3w6RobHQnOwokbGFuZ1snZXJyb3JfZXZlbnRvdmVybGFwJ10gPSAnRGllIHZvcmdlZ2ViZW5lbiBQYXJhbWV0ZXIgZsO8ciBkYXMgRXJlaWduaXMgaGF0IGVpbmUgw5xiZXJzY2huZWlkdW5nIHZvbiBFcmVpZ25pc3NlbiB6dXIgRm9sZ2UuJzsKJGxhbmdbJ3JlY3VycyddID0gJ1dpZWRlcmtlaHJlbmQnOwokbGFuZ1snZXJyb3JfaW52YWxpZF9kYXRlcyddID0gJ0VpbiBvZGVyIG1laHJlcmUgZGVyIGVpbmdlZ2ViZW5lbiBEYXRlbiBzaW5kIHVuZ8O8bHRpZyc7CiRsYW5nWydzdW5kYXknXSA9ICdTb25udGFnJzsKJGxhbmdbJ21vbmRheSddID0gJ01vbnRhZyc7CiRsYW5nWyd0dWVzZGF5J10gPSAnRGllbnN0YWcnOwokbGFuZ1snd2VkbmVzZGF5J10gPSAnTWl0dHdvY2gnOwokbGFuZ1sndGh1cnNkYXknXSA9ICdEb25uZXJzdGFnJzsKJGxhbmdbJ2ZyaWRheSddID0gJ0ZyZWl0YWcnOwokbGFuZ1snc2F0dXJkYXknXSA9ICdTb25uYWJlbmQnOwokbGFuZ1snYWJicl9zdW5kYXknXSA9ICdTbyc7CiRsYW5nWydhYmJyX21vbmRheSddID0gJ01vJzsKJGxhbmdbJ2FiYnJfdHVlc2RheSddID0gJ0RpJzsKJGxhbmdbJ2FiYnJfd2VkbmVzZGF5J10gPSAnTWknOwokbGFuZ1snYWJicl90aHVyc2RheSddID0gJ0RvJzsKJGxhbmdbJ2FiYnJfZnJpZGF5J10gPSAnRnInOwokbGFuZ1snYWJicl9zYXR1cmRheSddID0gJ1NhJzsKJGxhbmdbJ3dlZWsnXSA9ICdXb2NoZSc7CiRsYW5nWydtb250aCddID0gJ01vbmF0JzsKJGxhbmdbJ2RheSddID0gJ1RhZyc7CiRsYW5nWyd0b2RheSddID0gJ0hldXRlJzsKJGxhbmdbJ3dlZWtkYXlzJ10gPSAnV29jaGVudGFnZSc7CiRsYW5nWydwbHVyYWxfZGFpbHknXSA9ICdUYWdlJzsKJGxhbmdbJ3BsdXJhbF93ZWVrbHknXSA9ICdXb2NoZW4nOwokbGFuZ1sncGx1cmFsX21vbnRobHknXSA9ICdNb25hdGUnOwokbGFuZ1sncGx1cmFsX3llYXJseSddID0gJ0phaHJlJzsKJGxhbmdbJ25vJ10gPSAnTmVpbic7CiRsYW5nWydkYWlseSddID0gJ1TDpGdsaWNoJzsKJGxhbmdbJ3dlZWtseSddID0gJ1fDtmNoZW50bGljaCc7CiRsYW5nWydtb250aGx5J10gPSAnTW9uYXRsaWNoJzsKJGxhbmdbJ3llYXJseSddID0gJ0rDpGhybGljaCc7CiRsYW5nWydpbnRlcnZhbCddID0gJ1dpZWRlcmhvbHVuZyc7CiRsYW5nWydjYWxfcmVjdXJfZGV0YWlscyddID0gJ0RldGFpbHMgenUgd2llZGVya2VocmVuZGVuIFRlcm1pbmVuJzsKJGxhbmdbJ3VubGltaXRlZCddID0gJ1VuYmVzY2hyw6Rua3QnOwokbGFuZ1snbWF4X3JlY3VyX2V2ZW50cyddID0gJ01heGltYWxlIEFuemFobCB2b24gdW50ZXJnZW9yZG5ldGVuIFRlcm1pbmVuJzsKJGxhbmdbJ3VzZV90b19kYXRlJ10gPSAnTcO2Y2h0ZW4gU2llIGVpbiBhYndlaWNoZW5kZXMgRW5kZGF0dW0gZWluZ2ViZW4/JzsKJGxhbmdbJ2NhbmNlbCddID0gJ0FiYnJlY2hlbic7CiRsYW5nWydzaG93X2NoaWxkX2V2ZW50cyddID0gJ1VudGVyZ2VvcmRuZXRlIFRlcm1pbmUgYW56ZWlnZW4gPGVtPihkYXMgRXJnZWJuaXMga2FubiBlaW5lIHNlaHIgbGFuZ2UgTGlzdGUgc2Vpbik8L2VtPic7CiRsYW5nWyduL2EnXSA9ICdrZWluZSBBbmdhYmUnOwokbGFuZ1sncmVjdXJzX3VudGlsJ10gPSAnV2llZGVya2VocmVuZCBiaXMnOwokbGFuZ1sncGFyZW50J10gPSAnw5xiZXJnZW9yZG5ldCc7CiRsYW5nWydyZWN1cl9wZXJpb2QnXSA9ICdIw6R1Zmlna2VpdCc7CiRsYW5nWydmaWx0ZXInXSA9ICdBbnplaWdlIGZpbHRlcm4nOwokbGFuZ1snc3RhcnRfZGF0ZSddID0gJ0JlZ2lubic7CiRsYW5nWydlbmRfZGF0ZSddID0gJ0VuZGUnOwokbGFuZ1snaW5mb191cGNvbWluZ2xpc3RfdGVtcGxhdGVfdGFiJ10gPSAnTGlzdGUgZGVyIFZvcmxhZ2VuLCBkaWUgZsO8ciBkaWUgQW56ZWlnZSBkZXIgTGlzdGUgZsO8ciB6dWvDvG5mdGlnZSBUZXJtaW5lIHZlcmbDvGdiYXIgc2luZCc7CiRsYW5nWyd1cGNvbWluZ2xpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnRWluZSBWb3JsYWdlIGbDvHIgZGllIEFuemVpZ2UgZWluZXIgTGlzdGUgbWl0IHp1a8O8bmZ0aWdlbiBUZXJtaW5lbiBoaW56dWbDvGdlbi9iZWFyYmVpdGVuJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF91cGNvbWluZ2xpc3RfdGVtcGxhdGUnXSA9ICdTdGFuZGFyZHZvcmxhZ2UgZsO8ciB6dWvDvG5mdGlnZSBFcmVpZ25pc3NlJzsKJGxhbmdbJ2luZm9fbGlzdF90ZW1wbGF0ZV90YWInXSA9ICdEaWUgTGlzdGUgZGVyIFZvcmxhZ2VuLCBkaWUgZsO8ciBkaWUgQW56ZWlnZSBkZXIgTGlzdGUgZsO8ciBFcmVpZ25pc3NlIHZlcmbDvGdiYXIgc2luZCc7CiRsYW5nWydsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0VpbmUgVm9ybGFnZSBmw7xyIGRpZSBBbnplaWdlIHZvbiBMaXN0ZW4gaGluenVmw7xnZW4vYmVhcmJlaXRlbic7CiRsYW5nWydpbmZvX3N5c2RmbHRfbGlzdF90ZW1wbGF0ZSddID0gJ1N0YW5kYXJkLUxpc3RlbnZvcmxhZ2UnOwokbGFuZ1snaW5mb19ldmVudF90ZW1wbGF0ZV90YWInXSA9ICdMaXN0ZSBkZXIgVm9ybGFnZW4sIGRpZSBmw7xyIGRpZSBBbnplaWdlIGRlciBUZXJtaW5lbiBiZXJlaXQgc3RlaGVuJzsKJGxhbmdbJ2V2ZW50dGVtcGxhdGVfYWRkZWRpdCddID0gJ0VpbmUgVm9ybGFnZSBmw7xyIGRpZSBBbnplaWdlIHZvbiBUZXJtaW5lbiBoaW56dWbDvGdlbi9iZWFyYmVpdGVuJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9ldmVudF90ZW1wbGF0ZSddID0gJ1N0YW5kYXJkLUVyZWlnbmlzdm9ybGFnZSc7CiRsYW5nWydpbmZvX2NhbGVuZGFyX3RlbXBsYXRlX3RhYiddID0gJ0RpZSBMaXN0ZSBkZXIgVm9ybGFnZW4sIGRpZSBmw7xyIGRpZSBBbnplaWdlIGRlcyBLYWxlbmRlcnMgYmVyZWl0IHN0ZWhlbic7CiRsYW5nWydjYWxlbmRhcnRlbXBsYXRlX2FkZGVkaXQnXSA9ICdFaW5lIFZvcmxhZ2UgZsO8ciBkaWUgQW56ZWlnZSBlaW5lcyBLYWxlbmRlcnMgaGluenVmw7xnZW4vYmVhcmJlaXRlbic7CiRsYW5nWydpbmZvX3N5c2RmbHRfY2FsZW5kYXJfdGVtcGxhdGUnXSA9ICdTdGFuZGFyZC1LYWxlbmRlcnZvcmxhZ2UnOwokbGFuZ1snaW5mb19zeXNkZmx0X3RlbXBsYXRlJ10gPSAnSW4gZGllc2VtIEZvcm11bGFyIGvDtm5uZW4gVm9ybGFnZW4gZmVzdGdlbGVndCB3ZXJkZW4sIGRpZSBkYW5uIGVpbmdlZsO8Z3Qgd2VyZGVuLCB3ZW5uIFNpZSBpbiBkZXIgamV3ZWlsaWdlbiBSZWdpc3RlcmthcnRlIGF1ZiDigJ5OZXVlIFZvcmxhZ2XigJwga2xpY2tlbi4gSGllciB2b3JnZW5vbW1lbmUgw4RuZGVydW5nZW4gaGFiZW4ga2VpbmUgZGlyZWt0ZSBBdXN3aXJrdW5nZW4gYXVmIGRpZSBBdXNnYWJlIGRpZXNlcyBNb2R1bHMuJzsKJGxhbmdbJ2V2ZW50ZGVzYy1FdmVudEFkZGVkJ10gPSAnQXVzZsO8aHJlbiwgbmFjaGRlbSBlaW4gVGVybWluIGhpbnp1ZsO8Z3Qgd3VyZGUnOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50RWRpdGVkJ10gPSAnQXVzZsO8aHJlbiwgbmFjaGRlbSBlaW4gVGVybWluIGJlYXJiZWl0ZXQgd3VyZGUnOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50RGVsZXRlZCddID0gJ0F1c2bDvGhyZW4sIG5hY2hkZW0gZWluIFRlcm1pbiBnZWzDtnNjaHQgd3VyZGUnOwokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5QWRkZWQnXSA9ICdBdXNmw7xocmVuLCBuYWNoZGVtIGVpbmUgS2F0ZWdvcmllIGhpbnp1Z2Vmw7xndCB3dXJkZSc7CiRsYW5nWydldmVudGRlc2MtQ2F0ZWdvcnlFZGl0ZWQnXSA9ICdBdXNmw7xocmVuLCBuYWNoZGVtIGVpbmUgS2F0ZWdvcmllIGJlYXJiZWl0ZXQgd3VyZGUnOwokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5RGVsZXRlZCddID0gJ0F1c2bDvGhyZW4sIG5hY2hkZW0gZWluZSBLYXRlZ29yaWUgZ2Vsw7ZzY2h0IHd1cmRlJzsKJGxhbmdbJ2V2ZW50aGVscC1FdmVudEFkZGVkJ10gPSAnPHA+QXVzZsO8aHJlbiwgd2VubiBlaW4gVGVybWluIGhpbnp1Z2Vmw7xndCB3dXJkZS48L3A+DQo8dGFibGU+DQoJPHRoZWFkPg0KCQk8dHI+DQoJCQk8dGg+UGFyYW1ldGVyPC90aD4NCgkJCTx0ZD5CZXNjaHJlaWJ1bmc8L3RkPg0KCQk8L3RyPg0KCTwvdGhlYWQ+DQoJPHRib2R5Pg0KPHRyPg0KPHRoPmV2ZW50X3RpdGxlPC90aD4NCjx0ZD5OYW1lIGRlcyBUZXJtaW5zPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGg+ZXZlbnRfc3VtbWFyeTwvdGg+DQo8dGQ+WnVzYW1tZW5mYXNzdW5nIGRlcyBUZXJtaW5zPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGg+ZXZlbnRfZGV0YWlsczwvdGg+DQo8dGQ+RGV0YWlsbGllcnRlIEJlc2NocmVpYnVuZzwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRoPmV2ZW50X2RhdGVfc3RhcnQ8L3RoPg0KPHRkPlN0YXJ0ZGF0dW0vLXplaXQgZGVzIFRlcm1pbnM8L3RkPg0KPC90cj4NCjx0cj4NCjx0aD5ldmVudF9kYXRlX2VuZDwvdGg+DQo8dGQ+RW5kZGF0dW0vLXplaXQgZGVzIFRlcm1pbnM8L3RkPg0KPC90cj4NCjx0cj4NCjx0aD5ldmVudF9jcmVhdGVkX2J5PC90aD4NCjx0ZD5CZW51dHplci1JRCBkZXMgQXV0b3JzPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGg+ZXZlbnRfaWQ8L3RoPg0KPHRkPklEIGRlcyBUZXJtaW5zPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4nOwokbGFuZ1snZXZlbnRoZWxwLUV2ZW50RWRpdGVkJ10gPSAnPHA+QXVzZsO8aHJlbiwgd2VubiBlaW4gVGVybWluIGJlYXJiZWl0ZXQgd3VyZGUuPC9wPg0KPHRhYmxlPg0KCTx0aGVhZD4NCgkJPHRyPg0KCQkJPHRoPlBhcmFtZXRlcjwvdGg+DQoJCQk8dGQ+QmVzY2hyZWlidW5nPC90ZD4NCgkJPC90cj4NCgk8L3RoZWFkPg0KCTx0Ym9keT4NCjx0cj4NCjx0aD5ldmVudF90aXRsZTwvdGg+DQo8dGQ+TmFtZSBkZXMgVGVybWluczwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRoPmV2ZW50X3N1bW1hcnk8L3RoPg0KPHRkPlp1c2FtbWVuZmFzc3VuZyBkZXMgVGVybWluczwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRoPmV2ZW50X2RldGFpbHM8L3RoPg0KPHRkPkRldGFpbGxpZXJ0ZSBCZXNjaHJlaWJ1bmc8L3RkPg0KPC90cj4NCjx0cj4NCjx0aD5ldmVudF9kYXRlX3N0YXJ0PC90aD4NCjx0ZD5TdGFydGRhdHVtLy16ZWl0IGRlcyBUZXJtaW5zPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGg+ZXZlbnRfZGF0ZV9lbmQ8L3RoPg0KPHRkPkVuZGRhdHVtLy16ZWl0IGRlcyBUZXJtaW5zPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGg+ZXZlbnRfY3JlYXRlZF9ieTwvdGg+DQo8dGQ+QmVudXR6ZXItSUQgZGVzIEF1dG9yczwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRoPmV2ZW50X2lkPC90aD4NCjx0ZD5JRCBkZXMgVGVybWluczwvdGQ+DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+JzsKJGxhbmdbJ2V2ZW50aGVscC1FdmVudERlbGV0ZWQnXSA9ICc8cD5BdXNmw7xocmVuLCB3ZW5uIGVpbiBUZXJtaW4gZ2Vsw7ZzY2h0IHd1cmRlLjwvcD4NCjx0YWJsZT4NCgk8dGhlYWQ+DQoJCTx0cj4NCgkJCTx0aD5QYXJhbWV0ZXI8L3RoPg0KCQkJPHRkPkJlc2NocmVpYnVuZzwvdGQ+DQoJCTwvdHI+DQoJPC90aGVhZD4NCgk8dGJvZHk+DQo8dHI+DQo8dGg+ZXZlbnRfaWQ8L3RoPg0KPHRkPklEIGRlcyBUZXJtaW5zPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4nOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5QWRkZWQnXSA9ICc8cD5BdXNmw7xocmVuLCB3ZW5uIGVpbmUgS2FsZW5kZXItS2F0ZWdvcmllIGhpbnp1Z2Vmw7xndCB3dXJkZS48L3A+DQo8dGFibGU+DQoJPHRoZWFkPg0KCQk8dHI+DQoJCQk8dGg+UGFyYW1ldGVyPC90aD4NCgkJCTx0ZD5CZXNjaHJlaWJ1bmc8L3RkPg0KCQk8L3RyPg0KCTwvdGhlYWQ+DQoJPHRib2R5Pg0KPHRyPg0KPHRoPmNhdGVnb3J5X2lkPC90aD4NCjx0ZD5JRCBkZXIgS2F0ZWdvcmllPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4nOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5RWRpdGVkJ10gPSAnPHA+QXVzZsO8aHJlbiwgd2VubiBlaW5lIEthbGVuZGVyLUthdGVnb3JpZSBiZWFyYmVpdGV0IHd1cmRlLjwvcD4NCjx0YWJsZT4NCgk8dGhlYWQ+DQoJCTx0cj4NCgkJCTx0aD5QYXJhbWV0ZXI8L3RoPg0KCQkJPHRkPkJlc2NocmVpYnVuZzwvdGQ+DQoJCTwvdHI+DQoJPC90aGVhZD4NCgk8dGJvZHk+DQo8dHI+DQo8dGg+Y2F0ZWdvcnlfaWQ8L3RoPg0KPHRkPklEIGRlciBLYXRlZ29yaWU8L3RkPg0KPC90cj4NCjx0cj4NCjx0aD5jYXRlZ29yeV9uYW1lPC90aD4NCjx0ZD5OYW1lIGRlciBLYXRlZ29yaWU8L3RkPg0KPC90cj4NCjx0cj4NCjx0aD5jYXRlZ29yeV9vcmRlcjwvdGg+DQo8dGQ+U29ydGllcnVuZyBkZXIgS2F0ZWdvcmllPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4nOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5RGVsZXRlZCddID0gJzxwPkF1c2bDvGhyZW4sIHdlbm4gZWluZSBLYWxlbmRlci1LYXRlZ29yaWUgZ2Vsw7ZzY2h0IHd1cmRlLjwvcD4NCjx0YWJsZT4NCgk8dGhlYWQ+DQoJCTx0cj4NCgkJCTx0aD5QYXJhbWV0ZXI8L3RoPg0KCQkJPHRkPkJlc2NocmVpYnVuZzwvdGQ+DQoJCTwvdHI+DQoJPC90aGVhZD4NCgk8dGJvZHk+DQo8dHI+DQo8dGg+Y2F0ZWdvcnlfaWQ8L3RoPg0KPHRkPklEIGRlciBLYXRlZ29yaWU8L3RkPg0KPC90cj4NCjx0cj4NCjx0aD5jYXRlZ29yeV9uYW1lPC90aD4NCjx0ZD5OYW1lIGRlciBLYXRlZ29yaWU8L3RkPg0KPC90cj4NCjx0cj4NCjx0aD5jYXRlZ29yeV9vcmRlcjwvdGg+DQo8dGQ+U29ydGllcnVuZyBkZXIgS2F0ZWdvcmllPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4nOwokbGFuZ1snZXJyb3JfY3N2X2luc2VydCddID0gJ0ZlaGxlciBiZWltIEltcG9ydGllcmVuIGVpbmVzIFRlcm1pbnMgaW4gZGVyIENTVi1EYXRlaSBpbiBaZWlsZSAlZCc7CiRsYW5nWydlcnJvcl9jc3ZmaXJzdGxpbmVmbGRub3Rmb3VuZCddID0gJ0RhcyBQZmxpY2h0ZmVsZCAlcyBrb25udGUgaW4gZGVyIEtvcGZ6ZWlsZSBkZXIgQ1NWIG5pY2h0IGdlZnVuZGVuIHdlcmRlbic7CiRsYW5nWydlcnJvcl9jc3ZpbnZhbGlkZmlyc3RsaW5lJ10gPSAnSW4gZGVyIENTVi1EYXRlaSBrb25udGUga2VpbmUgZ8O8bHRpZ2UgZXJzdGUgWmVpbGUgZ2VmdW5kZW4gd2VyZGVuJzsKJGxhbmdbJ21zZ19ldmVudGFkZGVkJ10gPSAnVGVybWluIGhpbnp1Z2Vmw7xndCc7CiRsYW5nWydlcnJvcl9ub2V2ZW50bmFtZSddID0gJ1NpZSBtw7xzc2VuIGVpbmVuIE5hbWVuIGbDvHIgZGVuIFRlcm1pbiBlaW5nZWJlbic7CiRsYW5nWydlcnJvcl9ub3VwbG9hZCddID0gJ0ZFSExFUjogRXMgd3VyZGUga2VpbmUgaG9jaGdlbGFkZW5lIERhdGVpIGdlZnVuZGVuJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRmaWxlbmFtZSddID0gJ0ZFSExFUjogRGllIGhvY2hnZWxhZGVuZSBEYXRlaSBrYW5uIG5pY2h0IGFremVwdGllcnQgd2VyZGVuJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW13aXRodXBsb2FkJ10gPSAnRkVITEVSOiBCZWltIEhvY2hsYWRlbiBkZXIgRGF0ZWkgaXN0IGVpbiBGZWhsZXIgYXVmZ2V0cmV0ZW4nOwokbGFuZ1snZXJyb3JfZmlsZWNvcHlmYWlsZWQnXSA9ICdGRUhMRVI6IEJlaW0gS29waWVyZW4gZGVyIERhdGVpIGFuIGRlbiBaaWVsb3J0IGlzdCBlaW4gRmVobGVyIGF1ZmdldHJldGVuJzsKJGxhbmdbJ2Vycm9yX2ZpbGVleGlzdHMnXSA9ICdGRUhMRVI6IEVpbmUgRGF0ZWkgbWl0IGRpZXNlbSBOYW1lbiBleGlzdGllcnQgYmVyZWl0cyc7CiRsYW5nWydlcnJvcl9jc3ZmaWxlbm90Zm91bmQnXSA9ICdGRUhMRVI6IEtvbm50ZSBkaWUgQ1NWLURhdGVpIG5pY2h0IGZpbmRlbic7CiRsYW5nWydlcnJvcl9jYW50b3BlbmZpbGUnXSA9ICdGRUhMRVI6IEtvbm50ZSBkaWUgRGF0ZWkgbmljaHQgw7ZmZm5lbic7CiRsYW5nWydlcnJvcl9jYXRlZ29yeWV4aXN0cyddID0gJ0ZFSExFUjogRWluZSBLYXRlZ29yaWUgbWl0IGRlbSBOYW1lbiAlcyBleGlzdGllcnQgYmVyZWl0cyc7CiRsYW5nWydjYWxfaWQnXSA9ICdJRCc7CiRsYW5nWydjYWxfY2FsZW5kYXInXSA9ICdLYWxlbmRlciAo4oCeQ0dDYWxlbmRhcuKAnCknOwokbGFuZ1snY2FsX2RlZmF1bHRfdGVtcGxhdGVzJ10gPSAnU3RhbmRhcmR2b3JsYWdlbic7CiRsYW5nWydjYWxfZGVzY3JpcHRpb24nXSA9ICdFaW4gZmxleGlibGVzIE1vZHVsLCB1bSBJbmZvcm1hdGlvbmVuIMO8YmVyIFRlcm1pbmUgaW4gdmVyc2NoaWVkZW5lbiBGb3JtYXRlbiBhbnp1emVpZ2VuLic7CiRsYW5nWydjYWxfYWRkZXZlbnQnXSA9ICdUZXJtaW4gaGluenVmw7xnZW4nOwokbGFuZ1snY2FsX2ltcG9ydF9ldmVudHMnXSA9ICdUZXJtaW5lIGltcG9ydGllcmVuJzsKJGxhbmdbJ2NhbF9ldmVudHMnXSA9ICdUZXJtaW5lJzsKJGxhbmdbJ2NhbF9jYXRlZ29yaWVzJ10gPSAnS2F0ZWdvcmllbic7CiRsYW5nWydjYWxfY2FsZW5kYXJfdGVtcGxhdGUnXSA9ICdLYWxlbmRlcnZvcmxhZ2UnOwokbGFuZ1snY2FsX2xpc3RfdGVtcGxhdGUnXSA9ICdMaXN0ZW52b3JsYWdlJzsKJGxhbmdbJ2NhbF91cGNvbWluZ2xpc3RfdGVtcGxhdGUnXSA9ICdWb3JsYWdlIGbDvHIgYmV2b3JzdGVoZW5kZSBUZXJtaW5lJzsKJGxhbmdbJ2NhbF9ldmVudF90ZW1wbGF0ZSddID0gJ1Rlcm1pbnZvcmxhZ2UnOwokbGFuZ1snY2FsX3NldHRpbmdzJ10gPSAnRWluc3RlbGx1bmdlbic7CiRsYW5nWydjYWxfcHJldiddID0gJ+KAuSB6dXLDvGNrJzsKJGxhbmdbJ2NhbF9uZXh0J10gPSAnd2VpdGVyIOKAuic7CiRsYW5nWydjYWxfY2F0ZWdvcmllc191cGRhdGVkJ10gPSAnS2F0ZWdvcmllbiBha3R1YWxpc2llcnQnOwokbGFuZ1snY2FsX3NldHRpbmdzX3VwZGF0ZWQnXSA9ICdFaW5zdGVsbHVuZ2VuIGFrdHVhbGlzaWVydCc7CiRsYW5nWydjYWxfYWRkX2V2ZW50J10gPSAnVGVybWluIGhpbnp1ZsO8Z2VuJzsKJGxhbmdbJ2NhbF9lZGl0J10gPSAnQmVhcmJlaXRlbic7CiRsYW5nWydjYWxfZGVsZXRlJ10gPSAnTMO2c2NoZW4nOwokbGFuZ1snY2FsX2FyZXlvdXN1cmUnXSA9ICdXb2xsZW4gU2llIGRpZXMgd2lya2xpY2ggbMO2c2NoZW4/JzsKJGxhbmdbJ2NhbF91cGRhdGVfdGVtcGxhdGUnXSA9ICdWb3JsYWdlIGFrdHVhbGlzaWVyZW4nOwokbGFuZ1snY2FsX3N1bmRheSddID0gJ1Nvbm50YWcnOwokbGFuZ1snY2FsX21vbmRheSddID0gJ01vbnRhZyc7CiRsYW5nWydjYWxfdHVlc2RheSddID0gJ0RpZW5zdGFnJzsKJGxhbmdbJ2NhbF93ZWRuZXNkYXknXSA9ICdNaXR0d29jaCc7CiRsYW5nWydjYWxfdGh1cnNkYXknXSA9ICdEb25uZXJzdGFnJzsKJGxhbmdbJ2NhbF9mcmlkYXknXSA9ICdGcmVpdGFnJzsKJGxhbmdbJ2NhbF9zYXR1cmRheSddID0gJ1NhbXN0YWcnOwokbGFuZ1snY2FsX3N1biddID0gJ1NvJzsKJGxhbmdbJ2NhbF9tb24nXSA9ICdNbyc7CiRsYW5nWydjYWxfdHVlcyddID0gJ0RpJzsKJGxhbmdbJ2NhbF93ZWQnXSA9ICdNaSc7CiRsYW5nWydjYWxfdGh1cnMnXSA9ICdEbyc7CiRsYW5nWydjYWxfZnJpJ10gPSAnRnInOwokbGFuZ1snY2FsX3NhdCddID0gJ1NhJzsKJGxhbmdbJ2NhbF9qYW51YXJ5J10gPSAnSmFudWFyJzsKJGxhbmdbJ2NhbF9mZWJydWFyeSddID0gJ0ZlYnJ1YXInOwokbGFuZ1snY2FsX21hcmNoJ10gPSAnTcOkcnonOwokbGFuZ1snY2FsX2FwcmlsJ10gPSAnQXByaWwnOwokbGFuZ1snY2FsX21heSddID0gJ01haSc7CiRsYW5nWydjYWxfanVuZSddID0gJ0p1bmknOwokbGFuZ1snY2FsX2p1bHknXSA9ICdKdWxpJzsKJGxhbmdbJ2NhbF9hdWd1c3QnXSA9ICdBdWd1c3QnOwokbGFuZ1snY2FsX3NlcHRlbWJlciddID0gJ1NlcHRlbWJlcic7CiRsYW5nWydjYWxfb2N0b2JlciddID0gJ09rdG9iZXInOwokbGFuZ1snY2FsX25vdmVtYmVyJ10gPSAnTm92ZW1iZXInOwokbGFuZ1snY2FsX2RlY2VtYmVyJ10gPSAnRGV6ZW1iZXInOwokbGFuZ1snY2FsX2FkZCddID0gJ0hpbnp1ZsO8Z2VuJzsKJGxhbmdbJ2NhbF91cGRhdGUnXSA9ICdBa3R1YWxpc2llcmVuJzsKJGxhbmdbJ2NhbF9ldmVudCddID0gJ1Rlcm1pbic7CiRsYW5nWydjYWxfZGF0ZSddID0gJ0RhdHVtJzsKJGxhbmdbJ2NhbF9zdW1tYXJ5J10gPSAnWnVzYW1tZW5mYXNzdW5nJzsKJGxhbmdbJ2NhbF9kZXRhaWxzJ10gPSAnRGV0YWlscyc7CiRsYW5nWydjYWxfbW9yZSddID0gJ21laHIgwrsnOwokbGFuZ1snY2FsX3JldHVybiddID0gJ1p1csO8Y2snOwokbGFuZ1snY2FsX3RvJ10gPSAnYmlzJzsKJGxhbmdbJ2NhbF9wYXN0X2V2ZW50cyddID0gJ1ZlcmdhbmdlbmUgVGVybWluZSc7CiRsYW5nWydjYWxfdXBjb21pbmdfZXZlbnRzJ10gPSAnQmV2b3JzdGVoZW5kZSBUZXJtaW5lJzsKJGxhbmdbJ2NhbF9hbnlfY2F0ZWdvcnknXSA9ICdJcmdlbmRlaW5lciBLYXRlZ29yaWUnOwokbGFuZ1snY2FsX3Nob3dfb25seV9ldmVudHNfaW4nXSA9ICdOdXIgVGVybWluZSBhbnplaWdlbiBhdXMnOwokbGFuZ1snY2FsX2ZpbHRlcl9ieSddID0gJ1RpdGVsIGZpbHRlcm4gbWl0IDxlbT4ocmVnZXgpPC9lbT4nOwokbGFuZ1snY2FsX2dvJ10gPSAnRmlsdGVybic7CiRsYW5nWydjYWxfdGl0bGUnXSA9ICdUaXRlbCc7CiRsYW5nWydjYWxfZnJvbWRhdGUnXSA9ICdBbmZhbmdzZGF0dW0nOwokbGFuZ1snY2FsX3RvZGF0ZSddID0gJ0VuZGRhdHVtJzsKJGxhbmdbJ2NhbF91cGRhdGVfY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpZW4gYWt0dWFsaXNpZXJlbic7CiRsYW5nWydjYWxfbGFuZ3VhZ2UnXSA9ICdTcHJhY2hlJzsKJGxhbmdbJ2NhbF91cGRhdGVzZXR0aW5ncyddID0gJ0VpbnN0ZWxsdW5nZW4gYWt0dWFsaXNpZXJlbic7CiRsYW5nWydjYWxfdXNlX3R3ZWx2ZV9ob3VyX2Nsb2NrJ10gPSAnSW4gZGVuIExpc3Rlbm1lbsO8ZmVsZGVybiBkaWUgMTItU3R1bmRlbi1BbnplaWdlIHZlcndlbmRlbj8nOwokbGFuZ1snY2FsX2RlZmF1bHRfY2F0ZWdvcnknXSA9ICdTdGFuZGFyZGthdGVnb3JpZSc7CiRsYW5nWydjYWxfdXBkYXRlX2ZpZWxkcyddID0gJ0ZlbGRlciBha3R1YWxpc2llcmVuJzsKJGxhbmdbJ2ZvcmNlX2NhdGVnb3J5J10gPSAnRsO8ciBkZW4gVGVybWluIG11c3MgbWluZGVzdGVucyBlaW5lIEthdGVnb3JpZSBmZXN0Z2VsZWd0IHdlcmRlbic7CiRsYW5nWydzaG93cGFzdHllYXJzJ10gPSAnV2lldmllbGUgSmFocmUgaW4gZGllIFZlcmdhbmdlbmhlaXQgc29sbGVuIGFuZ2V6ZWlndCB3ZXJkZW4nOwokbGFuZ1snc2hvd2Z1dHVyZXllYXJzJ10gPSAnV2lldmllbGUgSmFocmUgaW4gZGllIFp1a3VuZnQgc29sbGVuIGFuZ2V6ZWlndCB3ZXJkZW4nOwokbGFuZ1snaGlkZXN1bW1hcnknXSA9ICdEaWUgQW56ZWlnZSBkZXMgWnVzYW1tZW5mYXNzdW5nc2ZlbGRlcyBkZWFrdGl2ZXJlbiAobnVyIGluIGRlciBBZG1pbmlzdHJhdGlvbiknOwokbGFuZ1snaGlkZWNvbnRlbnQnXSA9ICdEaWUgQW56ZWlnZSBkZXMgRGV0YWlsZmVsZGVzIGRlYWt0aXZlcmVuIChudXIgaW4gZGVyIEFkbWluaXN0cmF0aW9uKSc7CiRsYW5nWydjYXRlZ29yeV9yZW1pbmRlciddID0gJ0JpdHRlIGxlZ2VuIFNpZSBlaW5lIG9kZXIgbWVocmVyZSBLYXRlZ29yaWVuIGbDvHIgZGllc2VuIFRlcm1pbiBmZXN0Lic7CiRsYW5nWydtb2R1bGVfZXhhbXBsZV9zdHlsZXNoZWV0J10gPSAnQ1NTLUJlaXNwaWVsIGbDvHIgZGVuIEthbGVuZGVyJzsKJGxhbmdbJ2Vycm9yX3Blcm1pc3Npb24nXSA9ICdTaWUgYmVuw7Z0aWdlbiBkaWUgQmVyZWNodGlndW5nICVzLCB1bSBkaWVzZSBGdW5rdGlvbiBudXR6ZW4genUga8O2bm5lbi4nOwokbGFuZ1snaW5zdGFsbF9wb3N0bWVzc2FnZSddID0gJ1N0ZWxsZW4gU2llIHNpY2hlciwgZGFzcyBkaWUgQmVudXR6ZXIsIGRpZSBkaWUgVGVybWluZSBpbSBLYWxlbmRlciB2ZXJ3YWx0ZW4sIGRpZSBCZXJlY2h0aWd1bmcg4oCeTW9kaWZ5IENhbGVuZGFy4oCcIGhhYmVuLic7CiRsYW5nWydkZWxldGV0YWdnZWQnXSA9ICdNYXJraWVydGUgVGVybWluZSBsw7ZzY2hlbic7CiRsYW5nWydjb25maXJtZGVsZXRldGFnZ2VkJ10gPSAnV29sbGVuIFNpZSBkaWVzZSBUZXJtaW5lIHdpcmtsaWNoIGzDtnNjaGVuPyc7CiRsYW5nWyd0YWdnZWRkZWxldGVkJ10gPSAnRGllIG1hcmtpZXJ0ZW4gVGVybWluZSB3dXJkZW4gZ2Vsw7ZzY2h0JzsKJGxhbmdbJ3RlbXBsYXRlcyddID0gJ1ZvcmxhZ2VuJzsKJGxhbmdbJ3RlbXBsYXRlX2hlbHAnXSA9ICdWb3JsYWdlbmhpbGZlJzsKJGxhbmdbJ2ZpbGVfdGVtcGxhdGVzJ10gPSAnRGF0ZWl2b3JsYWdlbic7CiRsYW5nWydhZGR0ZW1wbGF0ZSddID0gJ1ZvcmxhZ2UgaGluenVmw7xnZW4nOwokbGFuZ1sndGVtcGxhdGUnXSA9ICdWb3JsYWdlJzsKJGxhbmdbJ3RlbXBsYXRlbmFtZXRleHQnXSA9ICdWb3JsYWdlbm5hbWUnOwokbGFuZ1snZWRpdHRlbXBsYXRlJ10gPSAnVm9ybGFnZSBiZWFyYmVpdGVuJzsKJGxhbmdbJ2RlbGV0ZXRlbXBsYXRlJ10gPSAnVm9ybGFnZSBsw7ZzY2hlbic7CiRsYW5nWyduZXd0ZW1wbGF0ZSddID0gJ05ldWVyIFZvcmxhZ2VubmFtZSc7CiRsYW5nWyd0ZW1wbGF0ZW5hbWVleGlzdHMnXSA9ICdGZWhsZXI6IEVpbmUgVm9ybGFnZSBtaXQgZGllc2VtIE5hbWVuIGV4aXN0aWVydCBiZXJlaXRzLiBCaXR0ZSB3w6RobGVuIFNpZSBlaW5lbiBhbmRlcmVuIE5hbWVuLic7CiRsYW5nWyd0ZW1wbGF0ZWltcG9ydGVkJ10gPSAnRGllIFZvcmxhZ2Ugd3VyZGUgZXJmb2xncmVpY2ggaW4gZGllIERhdGVuYmFuayBpbXBvcnRpZXJ0IHVuZCBzdGVodCBudW4genVyIHdlaXRlcmVuIFZlcndlbmR1bmcgYmVyZWl0Lic7CiRsYW5nWyd2aWV3X2RlZmF1bHRfc3R5bGVzaGVldCddID0gJ1N0YW5kYXJkLVN0eWxlc2hlZXQgYW56ZWlnZW4nOwokbGFuZ1snZmlsZW5hbWUnXSA9ICdEYXRlaW5hbWUnOwokbGFuZ1snaW1wb3J0dGVtcGxhdGUnXSA9ICdWb3JsYWdlIGltcG9ydGllcmVuJzsKJGxhbmdbJ3RlbXBsYXRlX2RlbGV0ZWQnXSA9ICdEaWUgVm9ybGFnZSB3dXJkZSBhdXMgZGVyIERhdGVuYmFuayBnZWzDtnNjaHQuJzsKJGxhbmdbJ3VwZGF0ZXRlbXBsYXRlc3VjY2VzcyddID0gJ0RpZSBWb3JsYWdlIHd1cmRlIGFrdHVhbGlzaWVydC4nOwokbGFuZ1sndXBkYXRldGVtcGxhdGVmYWlsdXJlJ10gPSAnQmVpbSBBa3R1YWxpc2llcmVuIGRlciBWb3JsYWdlIGlzdCBlaW4gRmVobGVyIGF1ZmdldHJldGVuLic7CiRsYW5nWydzZXR0aW5nc3NhdmVkJ10gPSAnRGllIEVpbnN0ZWxsdW5nZW4gd3VyZGVuIGVyZm9sZ3JlaWNoIGdlc3BlaWNoZXJ0Lic7CiRsYW5nWydjYXRlZ29yeWRlbGV0ZWQnXSA9ICdLYXRlZ29yaWUgZ2Vsw7ZzY2h0JzsKJGxhbmdbJ2NhdGVnb3J5dXBkYXRlZCddID0gJ0thdGVnb3JpZSBha3R1YWxpc2llcnQnOwokbGFuZ1snY2F0ZWdvcnlhZGRlZCddID0gJ0thdGVnb3JpZSBoaW56dWdlZsO8Z3QnOwokbGFuZ1snZXZlbnRkZWxldGVkJ10gPSAnRGVyIFRlcm1pbiB3dXJkZSBnZWzDtnNjaHQuJzsKJGxhbmdbJ2V2ZW50dXBkYXRlZCddID0gJ0RlciBUZXJtaW4gd3VyZGUgYWt0dWFsaXNpZXJ0Lic7CiRsYW5nWydkZWZhdWx0X3BhZ2VfZXJyb3InXSA9ICdGRUhMRVI6IFVtIGRhcyBLYWxlbmRlci1Nb2R1bCBtaXQgZGVyIEZ1bmt0aW9uIOKAnlByZXR0eSBVUkzigJwgbnV0emVuIHp1IGvDtm5uZW4sIG11c3MgZWluZSBTdGFuZGFyZHNlaXRlIGZlc3RnZWxlZ3Qgd2VyZGVuLiBHZWhlbiBTaWUgZGFmw7xyIGluIGRpZSBSZWdpc3RlcmthcnRlIOKAnkVpbnN0ZWxsdW5nZW7igJwgdW5kIHfDpGhsZW4gZG9ydCBlaW5lIFNlaXRlIGF1cy4nOwokbGFuZ1sndGltZV9hdCddID0gJ2FtJzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXAnOwokbGFuZ1snbmFtZSddID0gJ05hbWUnOwokbGFuZ1snb3JkZXInXSA9ICdTb3J0aWVydW5nJzsKJGxhbmdbJ2ZpZWxkYWRkZWQnXSA9ICdEYXMgRmVsZCB3dXJkZSBlcmZvbGdyZWljaCBoaW56dWdlZsO8Z3QnOwokbGFuZ1snZmllbGRkZWxldGVkJ10gPSAnRGFzIEZlbGQgd3VyZGUgZ2Vsw7ZzY2h0JzsKJGxhbmdbJ2ZpZWxkcyddID0gJ0JlbnV0emVyZGVmaW5pZXJ0ZSBGZWxkZXInOwokbGFuZ1sndGV4dGZpZWxkJ10gPSAnVGV4dGZlbGQnOwokbGFuZ1sndXBsb2FkZmllbGQnXSA9ICdGZWxkIHp1bSBIb2NobGFkZW4gdm9uIERhdGVpJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnPHA+TWl0IGRlbSBLYWxlbmRlci1Nb2R1bCBrw7ZubmVuIFRlcm1pbmVuIGF1ZiBJaHJlciBXZWJzZWl0ZSBhbmdlemVpZ3Qgd2VyZGVuLiBOYWNoIGRlciBJbnN0YWxsYXRpb24ga8O2bm5lbiBTaWUgaW4gZGVyIEFkbWluaXN0cmF0aW9uIMO8YmVyIGRhcyBNZW7DvCDigJ5JbmhhbHRlID4gS2FsZW5kZXLigJwgSWhyZSBUZXJtaW5lL0VyZWlnbmlzc2UgdmVyd2FsdGVuLjwvcD4nOwokbGFuZ1snZGVmYXVsdGNhbGVuZGFycGFnZSddID0gJ1N0YW5kYXJkc2VpdGUsIGF1ZiBkZXIgZGFzIEthbGVuZGVyLU1vZHVsIGFuZ2V6ZWlndCB3aXJkLiAoRGllc2UgU2VpdGUgbXVzcyBkZW4gU21hcnR5LVRhZyB6dW0gQXVmcnVmIGRlcyBLYWxlbmRlci1Nb2R1bHMgZW50aGFsdGVuLiBXZW5uIFNpZSBkaWUgRnVua3Rpb24g4oCeUHJldHR5IFVSTOKAnCBudXR6ZW4gd29sbGVuLCBpc3QgZGllc2UgRWluc3RlbGx1bmcgendpbmdlbmQgZXJmb3JkZXJsaWNoLiknOwokbGFuZ1sndXBsb2FkZGlyZWN0b3J5J10gPSAnVmVyemVpY2huaXMsIGluIGRlbSBkaWUgaG9jaGdlbGFkZW5lbiBEYXRlaWVuIGFiZ2VsZWd0IHdlcmRlbiBzb2xsZW4nOwokbGFuZ1sndXBsb2FkZmlsZXR5cGVzJ10gPSAnRXJsYXVidGUgRGF0ZWl0eXBlbic7CiRsYW5nWyd1cGxvYWR1bmlxdWUnXSA9ICdBdWYgZWluZGV1dGlnZSBEYXRlaW5hbWVuIGFjaHRlbic7CiRsYW5nWydjYWxfcmVjdXJfcGVyaW9kJ10gPSAnV2llZGVyaG9sZW4nOwokbGFuZ1snY2FsX3JlY3VyX3VudGlsJ10gPSAnV2llZGVyaG9sZW4gYmlzJzsKJGxhbmdbJ2hlbHBfdGVtcGxhdGUnXSA9ICc8cD48c3Ryb25nPk5hbWUgZGVzIEF1dG9ycyBhdXNnZWJlbjo8L3N0cm9uZz48L3A+DQo8Y29kZT5BdXRvcjogeyRldmVudC5hdXRob3JuYW1lfTwvY29kZT4nOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/el_GR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2NhbF9jYWxlbmRhciddID0gJ86XzrzOtc+Bzr/Ou8+MzrPOuc6/JzsKJGxhbmdbJ2NhbF9kZXNjcmlwdGlvbiddID0gJ86gz4HOv8+DzrjOrs66zrcsIM6Vz4DOtc6+zrXPgc6zzrHPg86vzrEsIM66zrHOuSDOus6xz4TOrM+BzrPOt8+DzrcgzrTPgc6sz4POtc+Jzr0nOwokbGFuZ1snY2FsX2FkZGV2ZW50J10gPSAnzqDPgc6/z4POuM6uzrrOtyDOtM+BzqzPg863z4InOwokbGFuZ1snY2FsX2V2ZW50cyddID0gJ86Uz4HOrM+DzrXOuc+CJzsKJGxhbmdbJ2NhbF9jYXRlZ29yaWVzJ10gPSAnzprOsc+EzrfOs86/z4HOr861z4InOwokbGFuZ1snY2FsX2NhbGVuZGFyX3RlbXBsYXRlJ10gPSAnzqDPgc+Mz4TPhc+Azr8gzrfOvM61z4HOv867zr/Os86vzr/PhSc7CiRsYW5nWydjYWxfbGlzdF90ZW1wbGF0ZSddID0gJ86gz4HPjM+Ez4XPgM6/IM66zrHPhM6xzrvPjM6zzr/PhSc7CiRsYW5nWydjYWxfdXBjb21pbmdsaXN0X3RlbXBsYXRlJ10gPSAnzqDPgc+Mz4TPhc+Azr8gzrXPgM61z4HPh86/zrzOrc69z4nOvSc7CiRsYW5nWydjYWxfZXZlbnRfdGVtcGxhdGUnXSA9ICfOoM+Bz4zPhM+Fz4DOvyDOtM+BzqzPg863z4InOwokbGFuZ1snY2FsX3NldHRpbmdzJ10gPSAnzqHPhc64zrzOr8+DzrXOuc+CJzsKJGxhbmdbJ2NhbF9wcmV2J10gPSAnwqsgzqDPgc6/zrfOs86/z43OvM61zr3Ovyc7CiRsYW5nWydjYWxfbmV4dCddID0gJ86Vz4DPjM68zrXOvc6/IMK7JzsKJGxhbmdbJ2NhbF9jYXRlZ29yaWVzX3VwZGF0ZWQnXSA9ICfOn865IM66zrHPhM63zrPOv8+Bzq/Otc+CIM61zr3Ot868zrXPgc+OzrjOt866zrHOvSc7CiRsYW5nWydjYWxfc2V0dGluZ3NfdXBkYXRlZCddID0gJ86fzrkgz4HPhc64zrzOr8+DzrXOuc+CIM61zr3Ot868zrXPgc+OzrjOt866zrHOvSc7CiRsYW5nWydjYWxfYWRkX2V2ZW50J10gPSAnzqDPgc6/z4POuM6uzrrOtyDOtM+BzqzPg863z4InOwokbGFuZ1snY2FsX2VkaXQnXSA9ICfOlc+AzrXOvs61z4HOs86xz4POr86xJzsKJGxhbmdbJ2NhbF9kZWxldGUnXSA9ICfOlM65zrHOs8+BzrHPhs6uJzsKJGxhbmdbJ2NhbF9hcmV5b3VzdXJlJ10gPSAnzpXPgM65zrLOtc6yzrHOr8+Jz4POtyDOtM65zrHOs8+BzrHPhs6uz4InOwokbGFuZ1snY2FsX3VwZGF0ZV90ZW1wbGF0ZSddID0gJ86Vzr3Ot868zq3Pgc+Jz4POtyDPgM+Bzr/PhM+Nz4DOv8+FJzsKJGxhbmdbJ2NhbF9zdW5kYXknXSA9ICfOms+Fz4HOuc6xzrrOric7CiRsYW5nWydjYWxfbW9uZGF5J10gPSAnzpTOtc+Fz4TOrc+BzrEnOwokbGFuZ1snY2FsX3R1ZXNkYXknXSA9ICfOpM+Bzq/PhM63JzsKJGxhbmdbJ2NhbF93ZWRuZXNkYXknXSA9ICfOpM61z4TOrM+Bz4TOtyc7CiRsYW5nWydjYWxfdGh1cnNkYXknXSA9ICfOoM6tzrzPgM+EzrcnOwokbGFuZ1snY2FsX2ZyaWRheSddID0gJ86gzrHPgc6xz4POus61z4XOric7CiRsYW5nWydjYWxfc2F0dXJkYXknXSA9ICfOo86szrLOss6xz4TOvyc7CiRsYW5nWydjYWxfc3VuJ10gPSAnzprPhc+BzrnOsc66zq4nOwokbGFuZ1snY2FsX21vbiddID0gJ86UzrUnOwokbGFuZ1snY2FsX3R1ZXMnXSA9ICfOpM+BJzsKJGxhbmdbJ2NhbF93ZWQnXSA9ICfOpM61JzsKJGxhbmdbJ2NhbF90aHVycyddID0gJ86gzrUnOwokbGFuZ1snY2FsX2ZyaSddID0gJ86gzrEnOwokbGFuZ1snY2FsX3NhdCddID0gJ86jzrEnOwokbGFuZ1snY2FsX2phbnVhcnknXSA9ICfOmc6xzr3Ov8+FzqzPgc65zr/Pgic7CiRsYW5nWydjYWxfZmVicnVhcnknXSA9ICfOps61zrLPgc6/z4XOrM+BzrnOv8+CJzsKJGxhbmdbJ2NhbF9tYXJjaCddID0gJ86czqzPgc+EzrnOv8+CJzsKJGxhbmdbJ2NhbF9hcHJpbCddID0gJ86Rz4DPgc6vzrvOuc6/z4InOwokbGFuZ1snY2FsX21heSddID0gJ86czqzPis6/z4InOwokbGFuZ1snY2FsX2p1bmUnXSA9ICfOmc6/z43Ovc65zr/Pgic7CiRsYW5nWydjYWxfanVseSddID0gJ86Zzr/Pjc67zrnOv8+CJzsKJGxhbmdbJ2NhbF9hdWd1c3QnXSA9ICfOkc+NzrPOv8+Fz4PPhM6/z4InOwokbGFuZ1snY2FsX3NlcHRlbWJlciddID0gJ86jzrXPgM+Ezq3OvM6yz4HOuc6/z4InOwokbGFuZ1snY2FsX29jdG9iZXInXSA9ICfOn866z4TPjs6yz4HOuc6/z4InOwokbGFuZ1snY2FsX25vdmVtYmVyJ10gPSAnzp3Ov86tzrzOss+BzrnOv8+CJzsKJGxhbmdbJ2NhbF9kZWNlbWJlciddID0gJ86UzrXOus6tzrzOss+BzrnOv8+CJzsKJGxhbmdbJ2NhbF9kYXRlJ10gPSAnzpfOvM61z4HOv868zrfOvc6vzrEnOwokbGFuZ1snY2FsX3N1bW1hcnknXSA9ICfOo8+Nzr3Ov8+IzrcnOwokbGFuZ1snY2FsX2RldGFpbHMnXSA9ICfOm861z4DPhM6/zrzOrc+BzrXOuc61z4InOwokbGFuZ1snY2FsX21vcmUnXSA9ICfPgM61z4HOuc+Dz4PPjM+EzrXPgc6xID4+JzsKJGxhbmdbJ2NhbF9yZXR1cm4nXSA9ICfOlc+AzrnPg8+Ez4HOv8+Gzq4nOwokbGFuZ1snY2FsX3RvJ10gPSAnz4POtSc7CiRsYW5nWydjYWxfdXBjb21pbmdfZXZlbnRzJ10gPSAnzpXPgM61z4HPh8+MzrzOtc69zrXPgiDOtM+BzqzPg861zrnPgic7CiRsYW5nWydjYWxfYW55X2NhdGVnb3J5J10gPSAnzp/PgM6/zrnOsc60zq7PgM6/z4TOtSDOus6xz4TOt86zzr/Pgc6vzrEnOwokbGFuZ1snY2FsX3Nob3dfb25seV9ldmVudHNfaW4nXSA9ICfOlc68z4bOrM69zrnPg863IM+Ez4nOvSDOtM+BzqzPg861z4nOvSDOvM+Mzr3Ov869IM+DzrUnOwokbGFuZ1snY2FsX2ZpbHRlcl9ieSddID0gJ86czrUgzrXPhs6xz4HOvM6/zrPOriDPhs6vzrvPhM+Bzr/PhSDOus6xz4TOsSc7CiRsYW5nWydjYWxfZ28nXSA9ICfOnM61z4TOsc+Gzr/Pgc6sIM+DzrUnOwokbGFuZ1snY2FsX3RpdGxlJ10gPSAnzqTOr8+EzrvOv8+CJzsKJGxhbmdbJ2NhbF9mcm9tZGF0ZSddID0gJ86Rz4DOvyDPhM63zr0gzrfOvM61z4HOv868zrfOvc6vzrEnOwokbGFuZ1snY2FsX3RvZGF0ZSddID0gJ86jz4TOt869IM63zrzOtc+Bzr/OvM63zr3Or86xJzsKJGxhbmdbJ2NhbF91cGRhdGVfY2F0ZWdvcmllcyddID0gJ86Vzr3Ot868zq3Pgc+Jz4POtyDOus6xz4TOt86zzr/Pgc65z47OvSc7CiRsYW5nWydjYWxfbGFuZ3VhZ2UnXSA9ICfOk867z47Pg8+DzrEnOwokbGFuZ1snY2FsX3VwZGF0ZXNldHRpbmdzJ10gPSAnzpXOvc63zrzOrc+Bz4nPg863IM+Bz4XOuM68zq/Pg861z4nOvSc7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/en_GB.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBTaW1wbGUgTGFuZ3VhZ2UgZmlsZSBmb3IgdGhlIENhbGVuZGFyIG1vZHVsZS4KIyBDb3B5cmlnaHQgKGMpIDIwMDQgYnkgUm9iIEFsbGVuIDxyb2JAYWtyYWJhdC5jb20+CgojIExhbmd1YWdlOiBlbl9VUwoKJGxhbmdbJ2NhbF9kZXNjcmlwdGlvbiddID0gJ0FkZCwgZWRpdCBhbmQgcmVtb3ZlIGV2ZW50cyc7CiRsYW5nWydjYWxfYWRkZXZlbnQnXSA9ICdBZGQgRXZlbnQnOwokbGFuZ1snY2FsX2V2ZW50cyddID0gJ0V2ZW50cyc7CiRsYW5nWydjYWxfY2F0ZWdvcmllcyddID0gJ0NhdGVnb3JpZXMnOwokbGFuZ1snY2FsX2NhbGVuZGFyX3RlbXBsYXRlJ10gPSAnQ2FsZW5kYXIgVGVtcGxhdGUnOwokbGFuZ1snY2FsX2xpc3RfdGVtcGxhdGUnXSA9ICdMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ2NhbF91cGNvbWluZ2xpc3RfdGVtcGxhdGUnXSA9ICdVcGNvbWluZyBUZW1wbGF0ZSc7CiRsYW5nWydjYWxfZXZlbnRfdGVtcGxhdGUnXSA9ICdFdmVudCBUZW1wbGF0ZSc7CiRsYW5nWydjYWxfc2V0dGluZ3MnXSA9ICdTZXR0aW5ncyc7CgokbGFuZ1snY2FsX2NhdGVnb3JpZXNfdXBkYXRlZCddID0gJ0NhdGVnb3JpZXMgVXBkYXRlZCc7CiRsYW5nWydjYWxfc2V0dGluZ3NfdXBkYXRlZCddID0gJ1NldHRpbmdzIFVwZGF0ZWQnOwokbGFuZ1snY2FsX2FkZF9ldmVudCddID0gJ0FkZCBFdmVudCc7CiRsYW5nWydjYWxfZWRpdCddID0gJ0VkaXQnOwokbGFuZ1snY2FsX2RlbGV0ZSddID0gJ0RlbGV0ZSc7CiRsYW5nWydjYWxfYXJleW91c3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUnOwokbGFuZ1snY2FsX3VwZGF0ZV90ZW1wbGF0ZSddID0gJ1VwZGF0ZSBUZW1wbGF0ZSc7CgokbGFuZ1snY2FsX3N1bmRheSddID0gJ1N1bmRheSc7CiRsYW5nWydjYWxfbW9uZGF5J10gPSAnTW9uZGF5JzsKJGxhbmdbJ2NhbF90dWVzZGF5J10gPSAnVHVlc2RheSc7CiRsYW5nWydjYWxfd2VkbmVzZGF5J10gPSAnV2VkbmVzZGF5JzsKJGxhbmdbJ2NhbF90aHVyc2RheSddID0gJ1RodXJzZGF5JzsKJGxhbmdbJ2NhbF9mcmlkYXknXSA9ICdGcmlkYXknOwokbGFuZ1snY2FsX3NhdHVyZGF5J10gPSAnU2F0dXJkYXknOwokbGFuZ1snY2FsX3N1biddID0gJ1N1bic7CiRsYW5nWydjYWxfbW9uJ10gPSAnTW9uJzsKJGxhbmdbJ2NhbF90dWVzJ10gPSAnVHVlcyc7CiRsYW5nWydjYWxfd2VkJ10gPSAnV2VkJzsKJGxhbmdbJ2NhbF90aHVycyddID0gJ1RodXJzJzsKJGxhbmdbJ2NhbF9mcmknXSA9ICdGcmknOwokbGFuZ1snY2FsX3NhdCddID0gJ1NhdCc7CgokbGFuZ1snY2FsX2phbnVhcnknXSA9ICdKYW51YXJ5JzsKJGxhbmdbJ2NhbF9mZWJydWFyeSddID0gJ0ZlYnJ1YXJ5JzsKJGxhbmdbJ2NhbF9tYXJjaCddID0gJ01hcmNoJzsKJGxhbmdbJ2NhbF9hcHJpbCddID0gJ0FwcmlsJzsKJGxhbmdbJ2NhbF9tYXknXSA9ICdNYXknOwokbGFuZ1snY2FsX2p1bmUnXSA9ICdKdW5lJzsKJGxhbmdbJ2NhbF9qdWx5J10gPSAnSnVseSc7CiRsYW5nWydjYWxfYXVndXN0J10gPSAnQXVndXN0JzsKJGxhbmdbJ2NhbF9zZXB0ZW1iZXInXSA9ICdTZXB0ZW1iZXInOwokbGFuZ1snY2FsX29jdG9iZXInXSA9ICdPY3RvYmVyJzsKJGxhbmdbJ2NhbF9ub3ZlbWJlciddID0gJ05vdmVtYmVyJzsKJGxhbmdbJ2NhbF9kZWNlbWJlciddID0gJ0RlY2VtYmVyJzsKCiRsYW5nWydjYWxfZGF0ZSddID0gJ0RhdGUnOwokbGFuZ1snY2FsX3N1bW1hcnknXSA9ICdTdW1tYXJ5JzsKJGxhbmdbJ2NhbF9kZXRhaWxzJ10gPSAnRGV0YWlscyc7CiRsYW5nWydjYWxfcmV0dXJuJ10gPSAnUmV0dXJuJzsKJGxhbmdbJ2NhbF90byddID0gJ3RvJzsKJGxhbmdbJ2NhbF91cGNvbWluZ19ldmVudHMnXSA9ICdVcGNvbWluZyBFdmVudHMnOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/es_ES.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ21heCddID0gJ21heGltbyc7CiRsYW5nWyd0aW1lcyddID0gJ3RpZW1wb3MnOwokbGFuZ1snb24nXSA9ICdhY3Rpdm8nOwokbGFuZ1snYXJleW91c3VyZV91bmluc3RhbGwnXSA9ICdFc3QmYWFjdXRlOyBzZWd1cm8gZGUgcXVlcmVyIGhhY2VyIGVzdG8/IFNpIGNvbnRpbnVhLCBsYSBpbmZvcm1hY2lvbiBhc29jaWFkYSBjb24gZXN0ZSBtb2R1bG8gIHNlIGJvcnJhciZhYWN1dGU7IHBlcm1hbmVudGVtZW50ZS4nOwokbGFuZ1sncG9zdF91bmluc3RhbGwnXSA9ICdFbCBtb2R1bG8gQ2FsZW5kYXJpbyBoYSBzaWRvIGRlc2luc3RhbGFkbyB5IHRvZGEgbGEgaW5mb3JtYWNpJm9hY3V0ZTtuIGRlIGV2ZW50b3MgYXNvY2lhZGEgYWwgbSZvYWN1dGU7ZHVsbyBmdWUgcmVtb3ZpZGEgdGFtYmllbi4nOwokbGFuZ1snZmllbGR1cGRhdGVkJ10gPSAnQ2FtcG8gYWN0dWFsaXphZG8nOwokbGFuZ1snZXZlcnknXSA9ICdDYWRhJzsKJGxhbmdbJ29yJ10gPSAnJm9hY3V0ZTsnOwokbGFuZ1sndXBkYXRlX2NoaWxkcmVuJ10gPSAnQWN0dWFsaXphciBFdmVudG9zICZxdW90O0hpam8mcXVvdDsnOwokbGFuZ1snZXJyb3Jfbm9jYXRlZ29yeSddID0gJ0RlYmUgc2VsZWNjaW9uYXIgcG9yIGxvIG1lbm9zIHVuYSBjYXRlZ29yaWEnOwokbGFuZ1snZXJyb3Jfbm90aGluZ3NlbGVjdGVkJ10gPSAnTm8gc2UgaGEgc2VsZWNjaW9uYWRvIG5hZGEgcGFyYSBib3JyYXInOwokbGFuZ1snZXJyb3JfZXZlbnRvdmVybGFwJ10gPSAnTG9zIHBhcmFtZXRyb3MgZGUgcmVwZXRpY2kmb2FjdXRlO24gZXNwZWNpZmljYWRvcyByZXN1bHRhcmFuIGVuIGV2ZW50b3MgdHJhc2xhcGFkb3MuJzsKJGxhbmdbJ3JlY3VycyddID0gJ1NlIHJlcGl0ZSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX2RhdGVzJ10gPSAnVW5vIG8gbWFzIGRlIGxvcyB2YWxvcmVzIGRlIGZlY2hhIGluZ3Jlc2Fkb3Mgc29uIGludmFsaWRvcyc7CiRsYW5nWydzdW5kYXknXSA9ICdEb21pbmdvJzsKJGxhbmdbJ21vbmRheSddID0gJ0x1bmVzJzsKJGxhbmdbJ3R1ZXNkYXknXSA9ICdNYXJ0ZXMnOwokbGFuZ1snd2VkbmVzZGF5J10gPSAnTWllcmNvbGVzJzsKJGxhbmdbJ3RodXJzZGF5J10gPSAnSnVldmVzJzsKJGxhbmdbJ2ZyaWRheSddID0gJ1ZpZXJuZXMnOwokbGFuZ1snc2F0dXJkYXknXSA9ICdTJmFhY3V0ZTtiYWRvJzsKJGxhbmdbJ2FiYnJfc3VuZGF5J10gPSAnRG8nOwokbGFuZ1snYWJicl9tb25kYXknXSA9ICdMdSc7CiRsYW5nWydhYmJyX3R1ZXNkYXknXSA9ICdNYSc7CiRsYW5nWydhYmJyX3dlZG5lc2RheSddID0gJ01pJzsKJGxhbmdbJ2FiYnJfdGh1cnNkYXknXSA9ICdKdSc7CiRsYW5nWydhYmJyX2ZyaWRheSddID0gJ1ZpJzsKJGxhbmdbJ2FiYnJfc2F0dXJkYXknXSA9ICdTYSc7CiRsYW5nWyd3ZWVrZGF5cyddID0gJ0RpYXMgZGUgU2VtYW5hJzsKJGxhbmdbJ3BsdXJhbF9kYWlseSddID0gJ0RpYXMnOwokbGFuZ1sncGx1cmFsX3dlZWtseSddID0gJ1NlbWFuYXMnOwokbGFuZ1sncGx1cmFsX21vbnRobHknXSA9ICdNZXNlcyc7CiRsYW5nWydwbHVyYWxfeWVhcmx5J10gPSAnQSZudGlsZGU7b3MnOwokbGFuZ1snbm8nXSA9ICdObyAnOwokbGFuZ1snZGFpbHknXSA9ICdEaWFyaW8nOwokbGFuZ1snd2Vla2x5J10gPSAnU2VtYW5hbCc7CiRsYW5nWydtb250aGx5J10gPSAnTWVuc3VhbCc7CiRsYW5nWyd5ZWFybHknXSA9ICdBbmFsJzsKJGxhbmdbJ2ludGVydmFsJ10gPSAnUmVwZXRpciBjYWRhJzsKJGxhbmdbJ2NhbF9yZWN1cl9kZXRhaWxzJ10gPSAnRGV0YWxsZXMgZGUgZXZlbnRvIHJlcGV0aXRpdm8nOwokbGFuZ1sndW5saW1pdGVkJ10gPSAnSWxpbWl0YWRvJzsKJGxhbmdbJ21heF9yZWN1cl9ldmVudHMnXSA9ICdOdW1lcm8gbWF4aW1vIGRlIGV2ZW50b3MgJnF1b3Q7aGlqbyZxdW90Oyc7CiRsYW5nWyd1c2VfdG9fZGF0ZSddID0gJ0VzcGVjaWZpY2FyIGZlY2hhIGZpbmFsIGRpc3RpbnRhPyc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWxhcic7CiRsYW5nWydzaG93X2NoaWxkX2V2ZW50cyddID0gJ1Nob3cgQ2hpbGQgRXZlbnRzJzsKJGxhbmdbJ24vYSddID0gJ24vYSAnOwokbGFuZ1sncmVjdXJzX3VudGlsJ10gPSAnUmVjdXJyaXIgSGFzdGEnOwokbGFuZ1sncGFyZW50J10gPSAnUGFkcmUnOwokbGFuZ1sncmVjdXJfcGVyaW9kJ10gPSAnUGVyaW9kbyBSZWN1cnJpcic7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0cm8nOwokbGFuZ1snc3RhcnRfZGF0ZSddID0gJ0ZlY2hhIGRlIEluaWNpbyc7CiRsYW5nWydlbmRfZGF0ZSddID0gJ0ZlY2hhIEZpbmFsJzsKJGxhbmdbJ2luZm9fdXBjb21pbmdsaXN0X3RlbXBsYXRlX3RhYiddID0gJ0xpc3RhIGRlIHBsYW50aWxsYXMgZGlzcG9uaWJsZXMgcGFyYSBsYSB2aXN0YSAmcXVvdDt1cGNvbWluZ2xpc3QmcXVvdDsnOwokbGFuZ1sndXBjb21pbmdsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FncmVnYXIvRWRpdGFyIHVuYSBwbGFudGlsbGEgZGUgdmlzdGEgJnF1b3Q7dXBjb21pbmdsaXN0JnF1b3Q7JzsKJGxhbmdbJ2luZm9fc3lzZGZsdF91cGNvbWluZ2xpc3RfdGVtcGxhdGUnXSA9ICdQbGFudGlsbGEgcG9yIG9taXNpJm9hY3V0ZTtuIFVwY29taW5nbGlzdCc7CiRsYW5nWydpbmZvX2xpc3RfdGVtcGxhdGVfdGFiJ10gPSAnRWwgbGlzdGFkbyBkZSBwbGFudGlsbGFzIHF1ZSBlc3RhbiBkaXNwb25pYmxlcyBwYXJhIHZpc3RhIGRlIGxpc3Rhcyc7CiRsYW5nWydsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FncmVnYXIvRWRpdGFyIHVuYSBwbGFudGlsbGEgZGUgZGVzcGxpZWd1ZSc7CiRsYW5nWydpbmZvX3N5c2RmbHRfbGlzdF90ZW1wbGF0ZSddID0gJ1BsYW50aWxsYSBwb3Igb21pc2kmb2FjdXRlO24gZGUgTGlzdGFkbyc7CiRsYW5nWydpbmZvX2V2ZW50X3RlbXBsYXRlX3RhYiddID0gJ0xpc3RhZG8gZGUgcGxhbnRpbGxhcyBkaXNwb25pYmxlcyBwYXJhIHZpc3RhcyBkZSBldmVudG9zJzsKJGxhbmdbJ2V2ZW50dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FncmVnYXIvRWRpdGFyIHVuYSBwbGFudGlsbGEgZGUgRGVzcGxpZWd1ZSBkZSBFdmVudG9zJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9ldmVudF90ZW1wbGF0ZSddID0gJ1BsYW50aWxsYSBwb3Igb21pc2kmb2FjdXRlO24gZGUgRXZlbnRvcyc7CiRsYW5nWydpbmZvX2NhbGVuZGFyX3RlbXBsYXRlX3RhYiddID0gJ0xpc3RhZG8gZGUgcGxhbnRpbGxhcyBkaXNwb25pYmxlcyBwYXJhIHZpc3RhcyBkZSBjYWxlbmRhcmlvJzsKJGxhbmdbJ2NhbGVuZGFydGVtcGxhdGVfYWRkZWRpdCddID0gJ0FncmVnYXIvRWRpdGFyIHVuYSBwbGFudGlsbGEgZGUgRGVzcGxpZWd1ZSBkZSBDYWxlbmRhcmlvJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9jYWxlbmRhcl90ZW1wbGF0ZSddID0gJ1BsYW50aWxsYSBwb3Igb21pc2kmb2FjdXRlO24gZGUgQ2FsZW5kYXJpbyc7CiRsYW5nWydpbmZvX3N5c2RmbHRfdGVtcGxhdGUnXSA9ICdFc3RlIGZvcm11bGFyaW8gZGVmaW5lIGxhIHBsYW50aWxsYSBxdSBzZXJhIHVzYWRhIGN1YW5kbyBoYWdhcyBjbGljayBlbiAmcXVvdDtOdWV2YSBQbGFudGlsbGEmcXVvdDsgZW4gbGEgcGVzdGEmbnRpbGRlO2EgY29ycmVzcG9uZGllbnRlLiBDYW1iaWFyIGVzdGUgdmFsb3Igbm8gdGVuZHImYWFjdXRlOyBlZmVjdG8gaW5tZWRpYXRvIGVuIGVsIGRpc3BsYXkgZGUgZXN0ZSBtJm9hY3V0ZTtkdWxvLic7CiRsYW5nWydldmVudGRlc2MtRXZlbnRBZGRlZCddID0gJ0xsYW1hZG8gbHVlZ28gZGUgYWdyZWdhciB1biBldmVudG8gYWwgY2FsZW5kYXJpbyc7CiRsYW5nWydldmVudGRlc2MtRXZlbnRFZGl0ZWQnXSA9ICdMbGFtYWRvIGx1ZWdvIGRlIGVkaXRhciB1biBldmVudG8gZXhpc3RlbnRlIGVuIGVsIGNhbGVuZGFyaW8nOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50RGVsZXRlZCddID0gJ0xsYW1hZG8gbHVlZ28gZGUgZWxpbWluYXIgdW4gZXZlbnRvJzsKJGxhbmdbJ2V2ZW50ZGVzYy1DYXRlZ29yeUFkZGVkJ10gPSAnTGxhbWFkbyBsdWVnbyBkZSBjcmVhciB1bmEgY2F0ZWdvciZpYWN1dGU7YSc7CiRsYW5nWydldmVudGRlc2MtQ2F0ZWdvcnlFZGl0ZWQnXSA9ICdMbGFtYWRvIGx1ZWdvIGRlIGVkaXRhciB1bmEgY2F0ZWdvciZpYWN1dGU7YSc7CiRsYW5nWydldmVudGRlc2MtQ2F0ZWdvcnlEZWxldGVkJ10gPSAnTGxhbWFkbyBsdWVnbyBkZSBlbGltaW5hciB1bmEgY2F0ZWdvciZpYWN1dGU7YSc7CiRsYW5nWydldmVudGhlbHAtRXZlbnRBZGRlZCddID0gJzxwPkVudmlhZG8gY3VhbmRvIHVuIGV2ZW50byBlcyBhZ3JlZ2FkbyBlbiBlbCBjYWxlbmRhcmlvLjwvcD4NCjxoND5QYXImYWFjdXRlO21ldHJvczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2V2ZW50X3RpdGxlXCZxdW90OyAtIFQmaWFjdXRlO3R1bG8gZGVsIEV2ZW50bzwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X3N1bW1hcnlcJnF1b3Q7IC0gVGV4dG8gZGVsIFJlc3VtZW48L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kZXRhaWxzXCZxdW90OyAtIERlc2NyaXBjaSZvYWN1dGU7biBEZXRhbGxhZGE8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kYXRlX3N0YXJ0XCZxdW90OyAtIExhIGZlY2hhL2hvcmEgZGUgY29taWVuem8gZGVsIGV2ZW50bzwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2RhdGVfZW5kXCZxdW90OyAtIExhIGZlY2hhL2hvcmEgZGUgZmluIGRlbCBldmVudG88L2xpPg0KPGxpPlwmcXVvdDtldmVudF9jcmVhdGVkX2J5XCZxdW90OyAtIEVsIGlkIGRlIHVzdWFyaW8gZGVsIGF1dG9yPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfaWRcJnF1b3Q7IC0gRWwgaWQgZGVsIGV2ZW50bzwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50aGVscC1FdmVudEVkaXRlZCddID0gJzxwPkVudmlhZG8gY3VhbmRvIHVuIGV2ZW50byBlcyBlZGl0YWRvIGVuIGVsIGNhbGVuZGFyaW8uPC9wPg0KPGg0PlBhciZhYWN1dGU7bWV0cm9zPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7ZXZlbnRfdGl0bGVcJnF1b3Q7IC0gVCZpYWN1dGU7dHVsbyBkZWwgRXZlbnRvPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfc3VtbWFyeVwmcXVvdDsgLSBUZXh0byBkZWwgUmVzdW1lbjwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2RldGFpbHNcJnF1b3Q7IC0gRGVzY3JpcGNpJm9hY3V0ZTtuIERldGFsbGFkYTwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2RhdGVfc3RhcnRcJnF1b3Q7IC0gTGEgZmVjaGEvaG9yYSBkZSBjb21pZW56byBkZWwgZXZlbnRvPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGF0ZV9lbmRcJnF1b3Q7IC0gTGEgZmVjaGEvaG9yYSBkZSBmaW4gZGVsIGV2ZW50bzwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2NyZWF0ZWRfYnlcJnF1b3Q7IC0gRWwgaWQgZGUgdXN1YXJpbyBkZWwgYXV0b3I8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9pZFwmcXVvdDsgLSBFbCBpZCBkZWwgZXZlbnRvPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUV2ZW50RGVsZXRlZCddID0gJzxwPkVudmlhZG8gY3VhbmRvIHVuIGV2ZW50byBlcyBlbGltaW5hZG8gZW4gZWwgY2FsZW5kYXJpby48L3A+DQo8aDQ+UGFyJmFhY3V0ZTttZXRyb3M8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtldmVudF9pZFwmcXVvdDsgLSBFbCBpZCBkZWwgZXZlbnRvPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5QWRkZWQnXSA9ICc8cD5FbnZpYWRvIGN1YW5kbyB1bmEgY2F0ZWdvciZpYWN1dGU7YSBkZWwgY2FsZW5kYXJpbyBlcyBhZ3JlZ2FkYS48L3A+DQo8aDQ+UGFyJmFhY3V0ZTttZXRyb3M8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9pZFwmcXVvdDsgLSBJZCBkZSBsYSBDYXRlZ29yJmlhY3V0ZTthPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5RWRpdGVkJ10gPSAnPHA+RW52aWFkbyBjdWFuZG8gdW5hIGNhdGVnb3ImaWFjdXRlO2EgZGVsIGNhbGVuZGFyaW8gZXMgZWRpdGFkYS48L3A+DQo8aDQ+UGFyJmFhY3V0ZTttZXRyb3M8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9pZFwmcXVvdDsgLSBJZCBkZSBsYSBjYXRlZ29yJmlhY3V0ZTthPC9saT4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfbmFtZVwmcXVvdDsgLSBOb21icmUgZGUgbGEgY2F0ZWdvciZpYWN1dGU7YTwvbGk+DQo8bGk+XCZxdW90O2NhdGVnb3J5X29yZGVyXCZxdW90OyAtIEZvcm1hIGRlIG9yZGVuYXIgbGEgY2F0ZWdvciZpYWN1dGU7YTwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50aGVscC1DYXRlZ29yeURlbGV0ZWQnXSA9ICc8cD5FbnZpYWRvIGN1YW5kbyB1bmEgY2F0ZWdvciZpYWN1dGU7YSBkZWwgY2FsZW5kYXJpbyBlcyBlbGltaW5hZGEuPC9wPg0KPGg0PlBhciZhYWN1dGU7bWV0cm9zPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfaWRcJnF1b3Q7IC0gSWQgZGUgbGEgY2F0ZWdvciZpYWN1dGU7YTwvbGk+DQo8bGk+XCZxdW90O2NhdGVnb3J5X25hbWVcJnF1b3Q7IC0gTm9tYnJlIGRlIGxhIGNhdGVnb3ImaWFjdXRlO2E8L2xpPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9vcmRlclwmcXVvdDsgLSBGb3JtYSBkZSBvcmRlbmFyIGxhIGNhdGVnb3ImaWFjdXRlO2E8L2xpPg0KPC91bD4NCic7CiRsYW5nWydtc2dfZXZlbnRhZGRlZCddID0gJ0V2ZW50byBBZ3JlZ2Fkbyc7CiRsYW5nWydlcnJvcl9ub2V2ZW50bmFtZSddID0gJ0VsIG5vbWJyZSBwYXJhIGVzdGUgZXZlbnRvIGVzIHJlcXVlcmlkbyc7CiRsYW5nWydlcnJvcl9ub3VwbG9hZCddID0gJ0VSUk9SOiBObyBzZSBlbmNvbnRyJm9hY3V0ZTsgYXJjaGl2byBzdWJpZG8nOwokbGFuZ1snZXJyb3JfaW52YWxpZGZpbGVuYW1lJ10gPSAnRVJST1I6IEVsIGFyY2hpdm8gc3ViaWRvIGVzIGluYWNlcHRhYmxlJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW13aXRodXBsb2FkJ10gPSAnRVJST1I6IE9jdXJyaSZvYWN1dGU7IHVuIHByb2JsZW1hIHN1YmllbmRvIGVsIGFyY2hpdm8nOwokbGFuZ1snZXJyb3JfZmlsZWNvcHlmYWlsZWQnXSA9ICdFUlJPUjogT2N1cnJpJm9hY3V0ZTsgdW4gcHJvYmxlbWEgYWwgY29waWFyIGVsIGFyY2hpdm8gZW4gc3UgZGVzdGlubyBmaW5hbCc7CiRsYW5nWydlcnJvcl9maWxlZXhpc3RzJ10gPSAnRVJST1I6IFlhIGV4aXN0ZSB1biBhcmNoaXZvIGNvbiBlc2Ugbm9tYnJlJzsKJGxhbmdbJ2Vycm9yX2NzdmZpbGVub3Rmb3VuZCddID0gJ0VSUk9SOiBObyBzZSBwdWRvIGhhbGxhciBlbCBhcmNoaXZvIENTVic7CiRsYW5nWydlcnJvcl9jYW50b3BlbmZpbGUnXSA9ICdFUlJPUjogTm9zIHNlIHB1ZWRlIGFicmlyaSBlbCBhcmNoaXZvaSc7CiRsYW5nWydlcnJvcl9jYXRlZ29yeWV4aXN0cyddID0gJ0VSUk9SOiBZYSBoYXkgdW5hIGNhdGVnb3JpYSBjb24gZWwgbm9tYnJlICVzJzsKJGxhbmdbJ2NhbF9pZCddID0gJ0lkICc7CiRsYW5nWydjYWxfY2FsZW5kYXInXSA9ICdDYWxlbmRhcmlvJzsKJGxhbmdbJ2NhbF9kZWZhdWx0X3RlbXBsYXRlcyddID0gJ1BsYW50aWxsYXMgcG9yIERlZmVjdG8nOwokbGFuZ1snY2FsX2Rlc2NyaXB0aW9uJ10gPSAnQSZudGlsZGU7YWRpciwgZWRpdGFyIHkgYm9ycmFyIGV2ZW50b3MnOwokbGFuZ1snY2FsX2FkZGV2ZW50J10gPSAnQSZudGlsZGU7YWRpciBFdmVudG8nOwokbGFuZ1snY2FsX2ltcG9ydF9ldmVudHMnXSA9ICdJbXBvcnRhciBFdmVudG9zJzsKJGxhbmdbJ2NhbF9ldmVudHMnXSA9ICdFdmVudG9zJzsKJGxhbmdbJ2NhbF9jYXRlZ29yaWVzJ10gPSAnQ2F0ZWdvciZpYWN1dGU7YXMnOwokbGFuZ1snY2FsX2NhbGVuZGFyX3RlbXBsYXRlJ10gPSAnUGxhbnRpbGxhIGRlbCBDYWxlbmRhcmlvJzsKJGxhbmdbJ2NhbF9saXN0X3RlbXBsYXRlJ10gPSAnUGxhbnRpbGxhIGRlbCBMaXN0YWRvJzsKJGxhbmdbJ2NhbF91cGNvbWluZ2xpc3RfdGVtcGxhdGUnXSA9ICdQbGFudGlsbGEgZGUgQXZhbmNlcyc7CiRsYW5nWydjYWxfZXZlbnRfdGVtcGxhdGUnXSA9ICdQbGFudGlsbGEgZGUgRXZlbnRvJzsKJGxhbmdbJ2NhbF9zZXR0aW5ncyddID0gJ0NvbmZpZ3VyYWNpJm9hY3V0ZTtuJzsKJGxhbmdbJ2NhbF9wcmV2J10gPSAnJmxhcXVvOyBQcmUuJzsKJGxhbmdbJ2NhbF9uZXh0J10gPSAnU2lnLiAmcmFxdW87JzsKJGxhbmdbJ2NhbF9jYXRlZ29yaWVzX3VwZGF0ZWQnXSA9ICdDYXRlZ29yJmlhY3V0ZTthcyBBY3R1YWxpemFkYXMnOwokbGFuZ1snY2FsX3NldHRpbmdzX3VwZGF0ZWQnXSA9ICdDb25maWd1cmFjaSZvYWN1dGU7biBBY3R1YWxpemFkYSc7CiRsYW5nWydjYWxfYWRkX2V2ZW50J10gPSAnQSZudGlsZGU7YWRpciBFdmVudG8nOwokbGFuZ1snY2FsX2VkaXQnXSA9ICdFZGl0YXInOwokbGFuZ1snY2FsX2RlbGV0ZSddID0gJ0JvcnJhcic7CiRsYW5nWydjYWxfYXJleW91c3VyZSddID0gJyZpcXVlc3Q7U2VndXJvIHF1ZSBxdWllcmVzIGJvcnJhcj8nOwokbGFuZ1snY2FsX3VwZGF0ZV90ZW1wbGF0ZSddID0gJ1BsYW50aWxsYSBBY3R1YWxpemFkYSc7CiRsYW5nWydjYWxfc3VuZGF5J10gPSAnRG9taW5nbyc7CiRsYW5nWydjYWxfbW9uZGF5J10gPSAnTHVuZXMnOwokbGFuZ1snY2FsX3R1ZXNkYXknXSA9ICdNYXJ0ZXMnOwokbGFuZ1snY2FsX3dlZG5lc2RheSddID0gJ01pJmVhY3V0ZTtyY29sZXMnOwokbGFuZ1snY2FsX3RodXJzZGF5J10gPSAnSnVldmVzJzsKJGxhbmdbJ2NhbF9mcmlkYXknXSA9ICdWaWVybmVzJzsKJGxhbmdbJ2NhbF9zYXR1cmRheSddID0gJ1MmYWFjdXRlO2JhZG8nOwokbGFuZ1snY2FsX3N1biddID0gJ0RvbSc7CiRsYW5nWydjYWxfbW9uJ10gPSAnTHVuJzsKJGxhbmdbJ2NhbF90dWVzJ10gPSAnTWFyJzsKJGxhbmdbJ2NhbF93ZWQnXSA9ICdNaWUnOwokbGFuZ1snY2FsX3RodXJzJ10gPSAnSnVlJzsKJGxhbmdbJ2NhbF9mcmknXSA9ICdWaWUnOwokbGFuZ1snY2FsX3NhdCddID0gJ1NhYic7CiRsYW5nWydjYWxfamFudWFyeSddID0gJ0VuZXJvJzsKJGxhbmdbJ2NhbF9mZWJydWFyeSddID0gJ0ZlYnJlcm8nOwokbGFuZ1snY2FsX21hcmNoJ10gPSAnTWFyem8nOwokbGFuZ1snY2FsX2FwcmlsJ10gPSAnQWJyaWwnOwokbGFuZ1snY2FsX21heSddID0gJ01heW8nOwokbGFuZ1snY2FsX2p1bmUnXSA9ICdKdW5pbyc7CiRsYW5nWydjYWxfanVseSddID0gJ0p1bGlvJzsKJGxhbmdbJ2NhbF9hdWd1c3QnXSA9ICdBZ29zdG8nOwokbGFuZ1snY2FsX3NlcHRlbWJlciddID0gJ1NlcHRpZW1icmUnOwokbGFuZ1snY2FsX29jdG9iZXInXSA9ICdPY3R1YnJlJzsKJGxhbmdbJ2NhbF9ub3ZlbWJlciddID0gJ05vdmllbWJyZSc7CiRsYW5nWydjYWxfZGVjZW1iZXInXSA9ICdEaWNpZW1icmUnOwokbGFuZ1snY2FsX2FkZCddID0gJ0FncmVnYXInOwokbGFuZ1snY2FsX3VwZGF0ZSddID0gJ0FjdHVhbGl6YXInOwokbGFuZ1snY2FsX2V2ZW50J10gPSAnRXZlbnRvJzsKJGxhbmdbJ2NhbF9kYXRlJ10gPSAnRmVjaGEnOwokbGFuZ1snY2FsX3N1bW1hcnknXSA9ICdTdW1hcmlvJzsKJGxhbmdbJ2NhbF9kZXRhaWxzJ10gPSAnRGV0YWxsZXMnOwokbGFuZ1snY2FsX21vcmUnXSA9ICdtJmFhY3V0ZTtzRSA+Pic7CiRsYW5nWydjYWxfcmV0dXJuJ10gPSAnVm9sdmVyJzsKJGxhbmdbJ2NhbF90byddID0gJ2EnOwokbGFuZ1snY2FsX3Bhc3RfZXZlbnRzJ10gPSAnRXZlbnRvcyBPY3Vycmlkb3MnOwokbGFuZ1snY2FsX3VwY29taW5nX2V2ZW50cyddID0gJ0F2YW5jZSBkZSBFdmVudG9zJzsKJGxhbmdbJ2NhbF9hbnlfY2F0ZWdvcnknXSA9ICdDdWFscXVpZXIgQ2F0ZWdvciZpYWN1dGU7YSc7CiRsYW5nWydjYWxfc2hvd19vbmx5X2V2ZW50c19pbiddID0gJ01vc3RyYXIgUyZvYWN1dGU7bG8gRXZlbnRvcyBFbic7CiRsYW5nWydjYWxfZmlsdGVyX2J5J10gPSAnRmlsdHJhciBwb3InOwokbGFuZ1snY2FsX2dvJ10gPSAnSXInOwokbGFuZ1snY2FsX3RpdGxlJ10gPSAnVCZpYWN1dGU7dHVsbyc7CiRsYW5nWydjYWxfZnJvbWRhdGUnXSA9ICdEZXNkZSBGZWNoYSc7CiRsYW5nWydjYWxfdG9kYXRlJ10gPSAnSGFzdGEgRmVjaGEnOwokbGFuZ1snY2FsX3VwZGF0ZV9jYXRlZ29yaWVzJ10gPSAnQWN0dWFsaXphciBDYXRlZ29yJmlhY3V0ZTthcyc7CiRsYW5nWydjYWxfbGFuZ3VhZ2UnXSA9ICdJZGlvbWFBJzsKJGxhbmdbJ2NhbF91cGRhdGVzZXR0aW5ncyddID0gJ0FjdHVhbGl6YXIgQ29uZmlndXJhY2kmb2FjdXRlO24nOwokbGFuZ1snY2FsX3VzZV90d2VsdmVfaG91cl9jbG9jayddID0gJyZpcXVlc3Q7VXNhciBkb2NlIGhvcmFzIGVuIGxvcyBkZXNwbGVnYWJsZXMgZGUgaG9yYT8nOwokbGFuZ1snY2FsX2RlZmF1bHRfY2F0ZWdvcnknXSA9ICdDYXRlZ29yJmlhY3V0ZTthIHBvciBEZWZlY3RvQSc7CiRsYW5nWydjYWxfdXBkYXRlX2ZpZWxkcyddID0gJ0FjdHVhbGl6YXIgQ2FtcG9zJzsKJGxhbmdbJ2ZvcmNlX2NhdGVnb3J5J10gPSAnRm9yemFyIGFsIG1lbm9zIHVuYSBjYXRlZ29yJmlhY3V0ZTthJzsKJGxhbmdbJ3Nob3dwYXN0eWVhcnMnXSA9ICdDdWFudG9zIGEmbnRpbGRlO29zIGVuIGVsIHBhc2FkbyBlcyBwZXJtaXRpZG8nOwokbGFuZ1snc2hvd2Z1dHVyZXllYXJzJ10gPSAnQ3VhbnRvcyBhJm50aWxkZTtvcyBlbiBlbCBmdXR1cm8gZXMgcGVybWl0aWRvJzsKJGxhbmdbJ2hpZGVzdW1tYXJ5J10gPSAnRGViZXImaWFjdXRlO2EgZXN0YXIgZWwgY2FtcG8gcmVzdW1lbiBlc2NvbmRpZG8nOwokbGFuZ1snaGlkZWNvbnRlbnQnXSA9ICdEZWJlciZpYWN1dGU7YSBlc3RhciBlbCBjYW1wbyBjb250ZW5pZG8gZXNjb25kaWRvJzsKJGxhbmdbJ2NhdGVnb3J5X3JlbWluZGVyJ10gPSAnUG9yIGZhdm9yIGNoZXF1ZWFyIHVuYSBvIG0mYWFjdXRlO3MgY2F0ZWdvciZpYWN1dGU7YXMgcGFyYSBlc3RlIGV2ZW50byc7CiRsYW5nWydtb2R1bGVfZXhhbXBsZV9zdHlsZXNoZWV0J10gPSAnRWplbXBsbyBkZSBDU1MgcGFyYSBDYWxlbmRhcmlvJzsKJGxhbmdbJ2Vycm9yX3Blcm1pc3Npb24nXSA9ICdVc3RlZCBuZWNlc2l0YSBkZSBsb3MgcGVybWlzb3MgZGUgKCVzKSBhcHJvcGlhZG9zIHBhcmEgYWNjZWRlciBhIGVzdGEgZnVuY2lvbmFsaWRhZCc7CiRsYW5nWydpbnN0YWxsX3Bvc3RtZXNzYWdlJ10gPSAnQXNlZ3VyYXJzZSBkZSBxdWUgc2UgaGFuIGNvbmZpZ3VyYWRvIGxvcyBwZXJtaXNvcyBhZGVjdWFkb3MgcGFyYSAmcXVvdDtNb2RpZmljYXIgZWwgQ2FsZW5kYXJpbyZxdW90OyBlbiBsb3MgdXN1YXJpb3MgcXVlIHNlIG9jdXBhciZhYWN1dGU7biBkZSBhZG1pbmlzdHJhciBsb3MgZXZlbnRvcyBkZW50cm8gZGVsIGNhbGVuZGFyaW8uJzsKJGxhbmdbJ2RlbGV0ZXRhZ2dlZCddID0gJ0VsaW1pbmFyIGxvcyBldmVudG9zIGV0aXF1ZXRhZG9zJzsKJGxhbmdbJ2NvbmZpcm1kZWxldGV0YWdnZWQnXSA9ICcmaXF1ZXN0O0VzdCZhYWN1dGU7IHNlZ3VybyBxdWUgZWwgZXZlbnRvIGRlYmUgc2VyIGVsaW1pbmFkbz8nOwokbGFuZ1sndGFnZ2VkZGVsZXRlZCddID0gJ0xvcyBldmVudG9zIGV0aXF1ZXRhZG9zIHNlIGhhbiBlbGltaW5hZG8nOwokbGFuZ1sndGVtcGxhdGVzJ10gPSAnUGxhbnRpbGxhcyc7CiRsYW5nWyd0ZW1wbGF0ZV9oZWxwJ10gPSAnQXl1ZGEgcGFyYSBQbGFudGlsbGFzJzsKJGxhbmdbJ2ZpbGVfdGVtcGxhdGVzJ10gPSAnQXJjaGl2b3MgZGUgUGxhbnRpbGxhcyc7CiRsYW5nWydhZGR0ZW1wbGF0ZSddID0gJ0FncmVnYXIgUGxhbnRpbGxhJzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnUGxhbnRpbGxhJzsKJGxhbmdbJ3RlbXBsYXRlbmFtZXRleHQnXSA9ICdOb21icmUgZGUgUGxhbnRpbGxhJzsKJGxhbmdbJ2VkaXR0ZW1wbGF0ZSddID0gJ0VkaXRhciBQbGFudGlsbGEnOwokbGFuZ1snZGVsZXRldGVtcGxhdGUnXSA9ICdFbGltaW5hciBQbGFudGlsbGEnOwokbGFuZ1snbmV3dGVtcGxhdGUnXSA9ICdOb21icmUgZGUgTnVldmEgUGxhbnRpbGxhJzsKJGxhbmdbJ3RlbXBsYXRlbmFtZWV4aXN0cyddID0gJ0Vycm9yOiBVbmEgcGxhbnRpbGxhIGNvbiBlc2Ugbm9tYnJlIHlhIGV4aXN0ZS4gUG9yIGZhdm9yIGVsaWphIG90cm8gbm9tYnJlLic7CiRsYW5nWyd0ZW1wbGF0ZWltcG9ydGVkJ10gPSAnTGEgcGxhbnRpbGxhIHNlIGltcG9ydG8gY29uICZlYWN1dGU7eGl0byBhIGxhIGJhc2UgZGUgZGF0b3MgeSBlc3QmYWFjdXRlOyBhaG9yYSBpbnN0YWxhZGEgbGlzdGEgcGFyYSBzdSB1c28uJzsKJGxhbmdbJ3ZpZXdfZGVmYXVsdF9zdHlsZXNoZWV0J10gPSAnVmVyIEhvamEgZGUgRXN0aWxvIHBvciBETm9lZmVjdG8nOwokbGFuZ1snZmlsZW5hbWUnXSA9ICdOb21icmUgZGUgQXJjaGl2byc7CiRsYW5nWydpbXBvcnR0ZW1wbGF0ZSddID0gJ0ltcG9ydGFyIFBsYW50aWxsYSc7CiRsYW5nWyd0ZW1wbGF0ZV9kZWxldGVkJ10gPSAnTGEgcGxhbnRpbGxhIGZ1JmVhY3V0ZTsgZWxpbWluYWRhIGNvbiBleGl0byBlbiBsYSBiYXNlIGRlIGRhdG9zLic7CiRsYW5nWyd1cGRhdGV0ZW1wbGF0ZXN1Y2Nlc3MnXSA9ICdMYSBwbGFudGlsbGEgZnUmZWFjdXRlOyBhY3R1YWxpemFkYSBjb24gJmVhY3V0ZTt4aXRvJzsKJGxhbmdbJ3VwZGF0ZXRlbXBsYXRlZmFpbHVyZSddID0gJ0hhIG9jdXJyaWRvIHVuIGVycm9yIGFsIGFjdHVhbGl6YXIgbGEgcGxhbnRpbGxhJzsKJGxhbmdbJ3NldHRpbmdzc2F2ZWQnXSA9ICdTZSBndWFyZG8gY29uICZlYWN1dGU7eGl0byBsYXMgY29uZmlndXJhY2lvbmVzJzsKJGxhbmdbJ2NhdGVnb3J5ZGVsZXRlZCddID0gJ0NhdGVnb3ImaWFjdXRlO2EgZWxpbWluYWRhJzsKJGxhbmdbJ2NhdGVnb3J5dXBkYXRlZCddID0gJ0NhdGVnb3ImaWFjdXRlO2EgYWN0dWFsaXphZGEmaWFjdXRlOyc7CiRsYW5nWydjYXRlZ29yeWFkZGVkJ10gPSAnQ2F0ZWdvciZpYWN1dGU7YSBhZ3JlZ2FkYSc7CiRsYW5nWydldmVudGRlbGV0ZWQnXSA9ICdFbCBldmVudG8gc2UgaGEgZWxpbWluYWRvJzsKJGxhbmdbJ2V2ZW50dXBkYXRlZCddID0gJ0VsIGV2ZW50byBzZSBoYSBhY3R1YWxpemFkbyc7CiRsYW5nWydkZWZhdWx0X3BhZ2VfZXJyb3InXSA9ICdFcnJvcjogVXN0ZWQgZGViZSBlc3RhYmxlY2VyIHVuYSBwJmFhY3V0ZTtnaW5hIHBvciBkZWZlY3RvIHBhcmEgdXRpbGl6YXIgYWwgQ2FsZW5kYXJpbyBjb24gcHJldHR5IFVSTHMgcHJlbmRpZG8uIFBvciBmYXZvciB2YXlhIGEgbGEgc29sYXBhIGRlIENvbmZpZ3VyYWNpJm9hY3V0ZTtuIGRlbCBDYWxlbmRhcmlvIHkgZWxpamEgdW5hLic7CiRsYW5nWyd0aW1lX2F0J10gPSAnZW4nOwokbGFuZ1sndHlwZSddID0gJ1RpcG8nOwokbGFuZ1snbmFtZSddID0gJ05vbWJyZSc7CiRsYW5nWydvcmRlciddID0gJ09yZGVuJzsKJGxhbmdbJ2ZpZWxkYWRkZWQnXSA9ICdDYW1wbyBBZ3JlZ2FkbyBjb24gJkVhY3V0ZTt4aXRvJzsKJGxhbmdbJ2ZpZWxkZGVsZXRlZCddID0gJ0NhbXBvIEVsaW1pbmFkbyc7CiRsYW5nWydmaWVsZHMnXSA9ICdDYW1wb3MgYSBNZWRpZGEnOwokbGFuZ1sndGV4dGZpZWxkJ10gPSAnQ2FtcG8gVGV4dG8nOwokbGFuZ1sndXBsb2FkZmllbGQnXSA9ICdDYW1wbyBkZSBzdWJpZGEgZGUgYXJjaGl2byc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJzxwPkNhbGVuZGFyIGlzIGEgbW9kdWxlIGZvciBkaXNwbGF5aW5nIGV2ZW50cyBvbiB5b3VyIHBhZ2UuIFdoZW4gdGhlDQoJCW1vZHVsZSBpcyBpbnN0YWxsZWQsIGEgQ2FsZW5kYXIgYWRtaW4gcGFnZSBpcyBhZGRlZCB0byB0aGUgY29udGVudCBtZW51DQoJCXRoYXQgd2lsbCBhbGxvdyB5b3UgdG8gbWFuYWdlIHlvdXIgZXZlbnRzLjwvcD4nOwokbGFuZ1snZGVmYXVsdGNhbGVuZGFycGFnZSddID0gJ1AmYWFjdXRlO2dpbmEgcG9yIGRlZmVjdG8gcXVlIGNvbnRpZW5lIGVsIENhbGVuZGFyaW8uIEVzdGEgcCZhYWN1dGU7Z2luYSBkZWJlIGNvbnRlbmVyIHVuIHRhZyBTbWFydHkgcXVlIGxsYW1lIGFsIENhbGVuZGFyaW8uIEVzIHJlcXVlcmlkbyBzaSB1c3RlZCB1c2EgbGFzIHByZXR0eSBVUkxzLic7CiRsYW5nWyd1cGxvYWRkaXJlY3RvcnknXSA9ICdEaXJlY3RvcmlvIGRvbmRlIGxvcyBhcmNoaXZvcyBzdWJpZG9zIGRlYmVuIHViaWNhcnNlJzsKJGxhbmdbJ3VwbG9hZGZpbGV0eXBlcyddID0gJ1RpcG8gZGUgYXJjaGl2b3MgcGVybWl0aWRvcyc7CiRsYW5nWyd1cGxvYWR1bmlxdWUnXSA9ICdBc2VndXJhciBub21icmUgJnVhY3V0ZTtuaWNvIGRlIGFyY2hpdm9zJzsKJGxhbmdbJ3RodW1iX3dpZHRoJ10gPSAnTWluaWF0dXJhIChhbmNobyknOwokbGFuZ1sndGh1bWJfaGVpZ2h0J10gPSAnTWluaWF0dXJhIChhbHR1cmEpJzsKJGxhbmdbJ2xhcmdlX3dpZHRoJ10gPSAnSW1hZ2VuIGdyYW5kZSAoYW5jaG8pJzsKJGxhbmdbJ2xhcmdlX2hlaWdodCddID0gJ0ltYWdlbiBncmFuZGUgKGFsdG8pJzsKJGxhbmdbJ2NhbF9yZWN1cl9wZXJpb2QnXSA9ICdSZXNlcnZhcic7CiRsYW5nWydjYWxfcmVjdXJfdW50aWwnXSA9ICdSZXNlcnZhciBoYXN0YSc7CiRsYW5nWydoZWxwX3RlbXBsYXRlJ10gPSAnPHA+PGI+SW1wcmltaXIgTm9tYnJlIGRlIEF1dG9yOjwvYj48L3A+DQo8Y29kZT5BdXRvcjogeyRldmVudC5hdXRob3JuYW1lfTwvY29kZT4NCic7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/et_EE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMgU2ltcGxlIExhbmd1YWdlIGZpbGUgZm9yIHRoZSBDYWxlbmRhciBtb2R1bGUuDQojIENvcHlyaWdodCAoYykgMjAwNCBieSBSb2IgQWxsZW4gPHJvYkBha3JhYmF0LmNvbT4NCg0KIyBMYW5ndWFnZTogZXRfRVQNCg0KJGxhbmdbJ2NhbF9jYWxlbmRhciddID0gJ0thbGVuZGVyJzsNCiRsYW5nWydjYWxfZGVzY3JpcHRpb24nXSA9ICdMaXNhLCBtdXVkYSBqYSBrdXN0dXRhICYjMjUyO3JpdHVzaSc7DQokbGFuZ1snY2FsX2FkZGV2ZW50J10gPSAnTGlzYSAmIzI1MjtyaXR1cyc7DQokbGFuZ1snY2FsX2V2ZW50cyddID0gJyYjMjIwO3JpdHVzZWQnOw0KJGxhbmdbJ2NhbF9jYXRlZ29yaWVzJ10gPSAnS2F0ZWdvb3JpYWQnOw0KJGxhbmdbJ2NhbF9jYWxlbmRhcl90ZW1wbGF0ZSddID0gJ0thbGVuZHJpIHZhYXRlIGt1anVuZHVzJzsNCiRsYW5nWydjYWxfbGlzdF90ZW1wbGF0ZSddID0gJ05pbWVraXJqYSB2YWF0ZSBrdWp1bmR1cyc7DQokbGFuZ1snY2FsX3VwY29taW5nbGlzdF90ZW1wbGF0ZSddID0gJ0VlbHNlaXN2YXRlICYjMjUyO3JpdHVzdGUgdmFhdGUga3VqdW5kdXMnOw0KJGxhbmdbJ2NhbF9ldmVudF90ZW1wbGF0ZSddID0gJyYjMjIwO3JpdHVzZSB2YWF0ZSBrdWp1bmR1cyc7DQokbGFuZ1snY2FsX3NldHRpbmdzJ10gPSAnU2VhZGVkJzsNCiRsYW5nWydjYWxfcHJldiddID0gJyZsYXF1bzsgRWVlbG1pbmUnOw0KJGxhbmdbJ2NhbF9uZXh0J10gPSAnSiYjMjI4O3JnbWluZSAmcmFxdW87JzsNCg0KJGxhbmdbJ2NhbF9jYXRlZ29yaWVzX3VwZGF0ZWQnXSA9ICdLYXRlZ29vcmlhZCB1dWVuZGF0dWQnOw0KJGxhbmdbJ2NhbF9zZXR0aW5nc191cGRhdGVkJ10gPSAnU2VhZGVkIHV1ZW5kYXR1ZCc7DQokbGFuZ1snY2FsX2FkZF9ldmVudCddID0gJ0xpc2EgJiMyNTI7cml0dXMnOw0KJGxhbmdbJ2NhbF9lZGl0J10gPSAnTXV1ZGEnOw0KJGxhbmdbJ2NhbF9kZWxldGUnXSA9ICdLdXN0dXRhJzsNCiRsYW5nWydjYWxfYXJleW91c3VyZSddID0gJ09sZWQga2luZGVsLCBldCBzb292aWQga3VzdHV0YWRhJzsNCiRsYW5nWydjYWxfdXBkYXRlX3RlbXBsYXRlJ10gPSAnVXVlbmRhIGt1anVuZHVzdCc7DQoNCiRsYW5nWydjYWxfc3VuZGF5J10gPSAnUCYjMjUyO2hhcCYjMjI4O2V2JzsNCiRsYW5nWydjYWxfbW9uZGF5J10gPSAnRXNtYXNwJiMyMjg7ZXYnOw0KJGxhbmdbJ2NhbF90dWVzZGF5J10gPSAnVGVpc2lwJiMyMjg7ZXYnOw0KJGxhbmdbJ2NhbF93ZWRuZXNkYXknXSA9ICdLb2xtYXAmIzIyODtldic7DQokbGFuZ1snY2FsX3RodXJzZGF5J10gPSAnTmVsamFwJiMyMjg7ZXYnOw0KJGxhbmdbJ2NhbF9mcmlkYXknXSA9ICdSZWVkZSc7DQokbGFuZ1snY2FsX3NhdHVyZGF5J10gPSAnTGF1cCYjMjI4O2V2JzsNCiRsYW5nWydjYWxfc3VuJ10gPSAnUCYjMjUyO2hhcCc7DQokbGFuZ1snY2FsX21vbiddID0gJ0VzbWFzcCc7DQokbGFuZ1snY2FsX3R1ZXMnXSA9ICdUZWlzaXAnOw0KJGxhbmdbJ2NhbF93ZWQnXSA9ICdLb2xtYXAnOw0KJGxhbmdbJ2NhbF90aHVycyddID0gJ05lbGphcCc7DQokbGFuZ1snY2FsX2ZyaSddID0gJ1JlZWRlJzsNCiRsYW5nWydjYWxfc2F0J10gPSAnTGF1cCc7DQoNCiRsYW5nWydjYWxfamFudWFyeSddID0gJ0phYW51YXInOw0KJGxhbmdbJ2NhbF9mZWJydWFyeSddID0gJ1ZlZWJydWFyJzsNCiRsYW5nWydjYWxfbWFyY2gnXSA9ICdNJiMyMjg7cnRzJzsNCiRsYW5nWydjYWxfYXByaWwnXSA9ICdBcHJpbGwnOw0KJGxhbmdbJ2NhbF9tYXknXSA9ICdNYWknOw0KJGxhbmdbJ2NhbF9qdW5lJ10gPSAnSnV1bmknOw0KJGxhbmdbJ2NhbF9qdWx5J10gPSAnSnV1bGknOw0KJGxhbmdbJ2NhbF9hdWd1c3QnXSA9ICdBdWd1c3QnOw0KJGxhbmdbJ2NhbF9zZXB0ZW1iZXInXSA9ICdTZXB0ZW1iZXInOw0KJGxhbmdbJ2NhbF9vY3RvYmVyJ10gPSAnT2t0b29iZXInOw0KJGxhbmdbJ2NhbF9ub3ZlbWJlciddID0gJ05vdmVtYmVyJzsNCiRsYW5nWydjYWxfZGVjZW1iZXInXSA9ICdEZXRzZW1iZXInOw0KJGxhbmdbJ2NhbF9kYXRlJ10gPSAnS3V1cCYjMjI4O2V2JzsNCiRsYW5nWydjYWxfc3VtbWFyeSddID0gJ0tpcmplbGR1cyc7DQokbGFuZ1snY2FsX2RldGFpbHMnXSA9ICdUJiMyMjg7cHNlbWFsdCc7DQokbGFuZ1snY2FsX21vcmUnXSA9ICd2ZWVsID4+JzsNCiRsYW5nWydjYWxfcmV0dXJuJ10gPSAnVGFnYXNpJzsNCiRsYW5nWydjYWxfdG8nXSA9ICcnOw0KJGxhbmdbJ2NhbF91cGNvbWluZ19ldmVudHMnXSA9ICdFZWxzZWlzdmFkICYjMjUyO3JpdHVzZWQnOw0KJGxhbmdbJ2NhbF9hbnlfY2F0ZWdvcnknXSA9ICdLJiMyNDU7aWsga2F0ZWdvb3JpYWQnOw0KJGxhbmdbJ2NhbF9zaG93X29ubHlfZXZlbnRzX2luJ10gPSAnTiYjMjI4O2l0YSAmIzI1MjtyaXR1c2kgYWludWx0JzsNCiRsYW5nWydjYWxfZmlsdGVyX2J5J10gPSAnRmlsdGVyJzsNCiRsYW5nWydjYWxfZ28nXSA9ICdNaW5lJzsNCiRsYW5nWydjYWxfdGl0bGUnXSA9ICdOaW1ldHVzJzsNCiRsYW5nWydjYWxfZnJvbWRhdGUnXSA9ICdBbGdhYic7DQokbGFuZ1snY2FsX3RvZGF0ZSddID0gJ0tlc3RhYiBrdW5pJzsNCiRsYW5nWydjYWxfc3VtbWFyeSddID0gJ0tpcmplbGR1cyc7DQokbGFuZ1snY2FsX3VwZGF0ZV9jYXRlZ29yaWVzJ10gPSAnVXVlbmRhIGthdGVnb29yaWFpZCc7DQokbGFuZ1snY2FsX2xhbmd1YWdlJ10gPSAnS2VlbCc7DQokbGFuZ1snY2FsX3VwZGF0ZXNldHRpbmdzJ10gPSAnVXVlbmRhIHNlYWRlaWQnOw0KPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fi_FI.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2Vycm9yX2ZldV9sb2dnZWRpbiddID0gJ0smYXVtbDt5dHQmYXVtbDtqJmF1bWw7IGVpIG9sZSBraXJqYXV0dW51dCAoRkVVKS4gVGFwYWh0dW1pZW4gbGlzJmF1bWw7JmF1bWw7bWluZW4gdGFpIG11b2trYWFtaW5lbiBlaSBvbGUgc2FsbGl0dHVhJzsKJGxhbmdbJ3Byb21wdF9mcmllbmRseW5hbWUnXSA9ICdGcmllbmRseSBOYW1lIGZvciB0aGlzIE1vZHVsZSBpbiBBZG1pbiBOYXZpZ2F0aW9uJzsKJGxhbmdbJ2luZm9fZnJpZW5kbHluYW1lJ10gPSAnTm90ZTogWW91IG1heSBuZWVkIHRvIGNsZWFyIHRoZSBzaXRlIGNhY2hlIGZvciB0aGlzIHByZWZlcmVuY2UgdG8gaGF2ZSBlZmZlY3QuICBJZiBubyB2YWx1ZSBpcyBzdXBwbGllZCBhIGRlZmF1bHQgd2lsbCBiZSB1c2VkLic7CiRsYW5nWyd1c2Vfd3lzaXd5ZyddID0gJ0smYXVtbDt5dCZhdW1sOyBXeXNpd3lnaSZhdW1sOyc7CiRsYW5nWydlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnXSA9ICdQdXV0dGVlbGxpc2V0IHBhcmFtZXRyaXQnOwokbGFuZ1snY29sdW1uX2RlbGltaXRlciddID0gJ0ltcG9ydCBmaWxlIGNvbHVtbiBkZWxpbWl0ZXInOwokbGFuZ1snaW1wb3J0X2NvbXBsZXRlZCddID0gJ1R1b250aSBzdW9yaXRldHR1JzsKJGxhbmdbJ251bV9pbXBvcnRlZCddID0gJ051bWJlciBvZiBldmVudHMgY3JlYXRlZDogJWQnOwokbGFuZ1snaW1wb3J0X2xpbmVzJ10gPSAnTnVtYmVyIG9mIGxpbmVzIHByb2Nlc3NlZCBmcm9tIGZpbGU6ICVkJzsKJGxhbmdbJ2Vycm9ycyddID0gJ0Vycm9yaXQnOwokbGFuZ1snZXJyb3JfY3N2Zmlyc3RsaW5laW52YWxpZGZpZWxkJ10gPSAnRmllbGQ6ICVzIGlzIG5vdCByZWNvZ25pemVkLCBhbmQgaXMgbm90IGEgY3VzdG9tIGZpZWxkJzsKJGxhbmdbJ2luZm9fY3N2X2Zvcm1hdCddID0gJzxoND5DU1YgRmlsZSBGb3JtYXQgSW5mb3JtYXRpb24uPC9oND4NCjx1bD4NCiAgPGxpPkdlbmVyYWwgSW5mb3JtYXRpb246DQogICA8dWw+DQogICAgIDxsaT5UaGUgZmlsZSBtdXN0IGJlIGFuIEFTQ0lJIGZpbGUgd2l0aCB1bml4IChwcmVmZXJyZWQpLCBkb3MsIG9yIG1hYyBsaW5lIGVuZGluZ3MuPC9saT4NCiAgICAgPGxpPkNvbW1lbnRzIHN0YXJ0IHdpdGggLy8gYW55IGNoYXJhY3RlcnMgYWZ0ZXIgdGhpcyBvbiBhIGxpbmUgd2lsbCBiZSBpZ25vcmVkIChpbmNsdWRpbmcgd2l0aGluIHF1b3Rlcy48L2xpPg0KICAgICA8bGk+RW1wdHkgbGluZXMgYXJlIGlnbm9yZWQ8L2xpPg0KICAgICA8bGk+RmllbGQgZGVsaW1pdGVycyBhcmUgdXNlciBjb250cm9sbGFibGUsIGhvd2V2ZXIgYSBkZWxpbWl0ZXIgY2FuIGJlIHVzZWQgYXMgYSB2YWx1ZSB3aXRoaW4gYSBmaWVsZCBpZiB0aGUgZmllbGQgaXMgZGVsaW1pdGVkIGJ5IGRvdWJsZSBxdW90ZXMuPC9saT4NCiAgICAgPGxpPlJvd3MgYXJlIGRlbGltaXRlZCBieSBuZXdsaW5lIGNoYXJzIChhcyBhYm92ZSkuPC9saT4NCiAgIDwvdWw+DQogIDwvbGk+DQogIDxsaT5UaGUgRmllbGQgTWFwOg0KICAgPHVsPg0KICAgIDxsaT5UaGUgZmlyc3QgbGluZSBkZWZpbmVzIHRoZSBvcmRlciBvZiB0aGUgZmllbGRzLCBhbmQgd2hhdCAmcXVvdDtjdXN0b20gZmllbGRzJnF1b3Q7IGFyZSBkZWZpbmVkIGluIHRoZSBmaWxlLiBEYXRhIGNhbiBzdGFydCBvbiB0aGUgc2Vjb25kIG5vbi1lbXB0eSBsaW5lLCBvciBhZnRlci48L2xpPg0KICAgIDxsaT5UaGVyZXMgYXJlIHRoZSByZXF1aXJlZCBmaWVsZHM6IHN0YXJ0IHRpbWUsIGVuZCB0aW1lLCB0aXRsZSwgc3VtbWFyeSwgYW5kIGRlc2NyaXB0aW9uLiAgV2l0aG91dCBkZWZpbmluZyB0aGVzZSBmaWVsZHMgaW4gdGhlIGhlYWRlciB0aGUgaW1wb3J0IHdpbGwgbm90IHByb2NlZWQuICBSZXF1aXJlZCBmaWVsZCBuYW1lcyBhcmUgbm90IGNhc2Ugc2Vuc2l0aXZlLjwvbGk+DQogICAgPGxpPlRoZXJlIGlzIG9uZSBvcHRpb25hbCBjb2x1bW46OiAmcXVvdDtjYXRlZ29yeSZxdW90Oy4gIElmIHNwZWNpZmllZCBpdCBjYW4gY29udGFpbiBhIDsgc2VwYXJhdGVkIGxpc3Qgb2YgY2F0ZWdvcnkgbmFtZXMgdGhhdCB0aGUgZXZlbnQgd2lsbCBiZWxvbmcgdG8uPC9saT4NCiAgIDwvdWw+DQogIDwvbGk+DQogIDxsaT5UaGUgRGF0YSBSb3dzOg0KICAgPHVsPg0KICAgIDxsaT5UaGUgc3RhcnQgdGltZSwgdGl0bGUsIGFuZCBkZXNjcmlwdGlvbiBmaWVsZHMgbXVzdCBub3QgYmUgZW1wdHkuPC9saT4NCjxsaT5TdGFydCBhbmQgRW5kIFRpbWVzOjwvbGk+DQogIDx1bD4NCiAgIDxsaT5TdGFydCB0aW1lIHByb2Nlc3NpbmcgaXMgZmxleGlibGUuICBZb3UgY2FuIHNwZWNpZnkgZWl0aGVyICBZWVlZLU1NLUREIEhIOk1NIGZvcm1hdCwgb3IgbWFueSBmb3JtYXRzIGFzIGRlZmluZWQgYnkgdGhlIHN0cnRvdGltZSBmdW5jdGlvbiwgaW5jbHVkaW5nIHJlbGF0aXZlIHRpbWVzLiAgSWYgYSByZWxhdGl2ZSB0aW1lIGlzIHN1cHBsaWVkIGl0IGlzIGFzc3VtZWQgdG8gYmUgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgdGltZS48L2xpPg0KICAgPGxpPkVuZCB0aW1lIHByb2Nlc3NpbmcgaXMgZmxleGlibGUsIGFuZCBtYXkgYmUgZW1wdHkuICBZb3UgY2FuIHNwZWNpZnkgZWl0aGVyIGFuIGFic29sdXRlIHRpbWUgKGluIHRoZSBzYW1lIGZvcm1hdCBhcyB0aGUgc3RhcnQgdGltZSkgb3IgYSByZWxhdGl2ZSB0aW1lLiAgSWYgYSByZWxhdGl2ZSB0aW1lIGlzIHNwZWNpZmllZCwgaXQgaXMgYXNzdW1lZCB0byBiZSByZWxhdGl2ZSB0byB0aGUgc3RhcnQgdGltZS4gICBpLmU6ICZxdW90Oys0IGhvdXJzJnF1b3Q7IHdvdWxkIGluZGljYXRlIDQgaG91cnMgZnJvbSB0aGUgc3RhcnQgdGltZSBjb2x1bW4uPC9saT4NCiAgIDxsaT5JZiB0aGUgZW5kIHRpbWUgY29sdW1lIGlzIHRoZSBzdHJpbmcgJnF1b3Q7QWxsIGRheSZxdW90OyA8ZW0+KGNhc2UgaW5zZW5zaXRpdmUpPC9lbT4gaXQgd2lsbCBhc3N1bWUgYW4gYWxsIGRheSBldmVudCBmcm9tIHRoZSBzdGFydCB0aW1lLjwvbGk+DQogICA8bGk+SWYgdGhlIGVuZCB0aW1lIGNvbHVtbiBpcyBlbXB0eSwgdGhlbiBubyBlbmQgdGltZSB2YWx1ZSB3aWxsIGJlIGNyZWF0ZWQgaW4gdGhlIGRhdGFiYXNlLjwvbGk+DQogIDwvdWw+DQo8L2xpPg0KPGxpPkNhdGVnb3JpZXMNCiAgPHVsPg0KICAgPGxpPklmIHNwZWNpZmllZCwgdGhlIGNhdGVnb3J5IGNvbHVtbiBjYW4gY29udGFpbiBhIGxpc3QgKHNlcGFyYXRlZCBieSA7KSBvZiBjYXRlZ29yeSBuYW1lcyBmb3Igd2hpY2ggdGhlIGV2ZW50IHNob3VsZCBiZWxvbmcuPC9saT4NCiAgIDxsaT5DYXRlZ29yeSBuYW1lcyBhcmUgY2FzZSBzZW5zaXRpdmUuPC9saT4NCiAgIDxsaT5DYXRlZ29yaWVzIGFyZSBub3QgY3JlYXRlZCBpZiB0aGV5IGRvIG5vdCBleGlzdC48L2xpPg0KICA8L3VsPg0KPC9saT4NCjxsaT5DdXN0b20gRmllbGRzOg0KICA8dWw+DQogICAgPGxpPkN1c3RvbSBmaWVsZCBuYW1lcyAoZXZlbiBpbiB0aGUgZmlyc3QgbGluZSB0aGF0IGRldGVybWluZXMgdGhlIGZpZWxkIG1hcHBpbmcpIGFyZSBjYXNlIHNlbnNpdGl2ZS48L2xpPg0KICAgIDxsaT5DdXRvbSBmaWVsZHMgYXJlIG5vdCBjcmVhdGVkIGlmIHNwZWNpZmllZCBpbiB0aGUgQ1NWIGZpbGUuICBVbmtub3duIGN1c3RvbSBmaWVsZCBjb2x1bW5zIHdpbGwgYmUgaWdub3JlZC48L2xpPg0KICAgIDxsaT5DdXN0b20gZmllbGRzIG9mIHR5cGUgJnF1b3Q7ZmlsZSZxdW90OyBjYW5ub3QgYmUgaW1wb3J0ZWQuICBUaGUgZW50aXJlIGltcG9ydCBvcGVyYXRpb24gd2lsbCBmYWlsLjwvbGk+DQogIDwvdWw+DQogIDwvbGk+DQogIDwvdWw+DQo8L2xpPg0KPGxpPkEgc2FtcGxlIGNzdiBmaWxlIGV4aXN0cyBpbiB0aGUgbW9kdWxlcyBzb3VyY2UgY29kZSBkaXJlY3RvcnkuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3Byb21wdF9jc3ZfZmlsZSddID0gJ1NlbGVjdCBJbXBvcnQgRmlsZSc7CiRsYW5nWydkZWxldGUnXSA9ICdQb2lzdGEnOwokbGFuZ1snY2RfY29tcGFueSddID0gJ1lodGkmb3VtbDsgSGFrZW1pc3RvIFlodGkmb3VtbDsnOwokbGFuZ1snZGZsdF91cmxwcmVmaXgnXSA9ICdVUkwtb3NvaXR0ZWlkZW4gb2xldHVzIGV0dWxpaXRlJzsKJGxhbmdbJ2RmbHRfYWxsZGF5ZXZlbnQnXSA9ICdVdWRldCB0YXBhaHR1bWF0IG92YXQgb2xldHVrc2VuYSAmcXVvdDtLb2tvIHAmYXVtbDtpdiZhdW1sO24mcXVvdDstdGFwYWh0dW1pYSc7CiRsYW5nWydkZmx0X3N0YXJ0dGltZSddID0gJ1V1c2llbiB0YXBhaHR1bWllbiBvbGV0dXMgYWxrYW1pc2Fpa2EnOwokbGFuZ1snaW5mb19kZmx0X3N0YXJ0dGltZSddID0gJzxlbT4ocCZhdW1sO3RlZSBhaW5vYXN0YWFuLCBqb3MgdXVkZXQgdGFwYWh0dW1hdCBlaXYmYXVtbDt0IG9sZSAmYW1wO3F1b3Q7S29rbyBwJmF1bWw7aXYmYXVtbDtuJnF1b3Q7LXRhcGFodHVtaWEpPC9lbT4nOwokbGFuZ1snc2VhcmNoX3R5cGUnXSA9ICdIYWt1dHl5cHBpJzsKJGxhbmdbJ3NlYXJjaF9hbnknXSA9ICdOJmF1bWw7eXQmYXVtbDsgdHVsb2tzZXQsIGpvdGthIHQmYXVtbDtzbSZhdW1sOyZhdW1sO3YmYXVtbDt0IG1paGluIHRhaGFuc2Egc2FuYWFuJzsKJGxhbmdbJ3NlYXJjaF9hbGwnXSA9ICdOJmF1bWw7eXQmYXVtbDsgdHVsb2tzZXQsIGpvdGthIHQmYXVtbDtzbSZhdW1sOyZhdW1sO3YmYXVtbDt0IGthaWtraWluIHNhbm9paGluJzsKJGxhbmdbJ2luZm9fY3VzdG9tZmllbGRzJ10gPSAnPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+SHVvbWFhOjwvc3Bhbj4gJnF1b3Q7VGllZG9zdG9ubCZhdW1sO2hldHlzJnF1b3Q7LWtlbnR0JmF1bWw7IGVpIG9sZSBoYWV0dGF2aXNzYS4nOwokbGFuZ1snc2VhcmNoYWJsZSddID0gJ0hhZXR0YXZpc3NhJzsKJGxhbmdbJ2hlbHBfcGFyYW1fZWRpdGV2ZW50dGVtcGxhdGUnXSA9ICdLb3NrZWUgYWlub2FzdGFhbiBteWV2ZW50cy10b2ltaW50b2EsIHQmYXVtbDttJmF1bWw7IHBhcmFtZXRyaSBzYWxsaWkgbSZhdW1sOyZhdW1sO3JpdGVsbCZhdW1sOyBvbGV0dWtzZXN0YSBwb2lra2VhdmFuIHNpdnVwb2hqYW4gdGFwYWh0dW1pZW4gbXVva2thYW1pc2Vlbiwga3VuIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7IGx1byB0YWkgbXVva2thYSB0YXBhaHR1bWFhLic7CiRsYW5nWydoZWxwX3BhcmFtX2VkaXRwYWdlJ10gPSAnS29za2VlIGFpbm9hc3RhYW4gbXlldmVudHMtdG9pbWludG9hLCB0JmF1bWw7bSZhdW1sOyBwYXJhbWV0cmkgc2FsbGlpIHRvaXNlbiBzaXZ1biBtJmF1bWw7JmF1bWw7cml0dGVsZW1pc2VuIGxvbWFra2VlbGxlLic7CiRsYW5nWydoZWxwX3BhcmFtX215ZXZlbnRzdGVtcGxhdGUnXSA9ICdLb3NrZWUgYWlub2FzdGFhbiBteWV2ZW50cy10b2ltaW50b2EsIHQmYXVtbDttJmF1bWw7IHNhbGxpaSBvbGV0dWtzZXN0YSBwb2lra2VhdmFuIHNpdnVwb2hqYW4gbSZhdW1sOyZhdW1sO3JpdHRlbGVtaXNlbi4nOwokbGFuZ1snY2FsX2VkaXRfZXZlbnQnXSA9ICdNdW9ra2FhIGthbGVudGVyaXRhcGFodHVtYWEnOwokbGFuZ1snZXJyb3JfZGJlcnJvciddID0gJ1RpZXRva2FudGF2aXJoZSc7CiRsYW5nWydzdWJtaXQnXSA9ICdMJmF1bWw7aGV0JmF1bWw7JzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9lZGl0ZXZlbnRfdGVtcGxhdGUnXSA9ICdKJmF1bWw7cmplc3RlbG0mYXVtbDtuIG9sZXR1cyAmcXVvdDtNdW9ra2FhIHRhcGFodHVtYWEmcXVvdDstc2l2dXBvaGphJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9teWV2ZW50c190ZW1wbGF0ZSddID0gJ0omYXVtbDtyamVzdGVsbSZhdW1sO24gb2xldHVzICZxdW90O09tYXQgdGFwYWh0dW1hdCZxdW90Oy1zaXZ1cG9oamEnOwokbGFuZ1sncHJvbXB0X2ZlZWRpdF9ncm91cCddID0gJ1QmYXVtbDttJmF1bWw7biByeWhtJmF1bWw7biBGcm9udEVuZFVzZXJzLW1vZHV1bGluIGomYXVtbDtzZW5ldCB2b2l2YXQgbGlzJmF1bWw7dCZhdW1sOyB0YXBhaHR1bWlhLic7CiRsYW5nWydwcm9tcHRfZmVlZGl0X3BhZ2UnXSA9ICdPbGV0dXNzaXZ1IGp1bGtpc3RlbiBzaXZ1amVuIG11b2trYXVzbG9tYWtrZWVsbGUuJzsKJGxhbmdbJ25vbmUnXSA9ICdFaSBtaXQmYXVtbDsmYXVtbDtuJzsKJGxhbmdbJ293bmVyJ10gPSAnT21pc3RhamEnOwokbGFuZ1snY2FsX2VkaXRldmVudF90ZW1wbGF0ZXMnXSA9ICdUYXBhaHR1bWFuIG11b2trYXVzIC1sb21ha2UnOwokbGFuZ1snaW5mb19lZGl0ZXZlbnRfdGVtcGxhdGVfdGFiJ10gPSAnU2FhdGF2aWxsYSBvbGV2aWVuIHNpdnVwb2hqaWVuIGxpc3RhIHRhcGFodHVtYW4gbXVva2thdXNsb21ha2tlZWxsZS4nOwokbGFuZ1snZWRpdGV2ZW50dGVtcGxhdGVfYWRkZWRpdCddID0gJ0xpcyZhdW1sOyZhdW1sOy9tdW9ra2FhIHRhcGFodHVtYW4gbXVva2thdXMgLWxvbWFra2VlbiBzaXZ1cG9oamFhJzsKJGxhbmdbJ2NhbF9teWV2ZW50c190ZW1wbGF0ZXMnXSA9ICdPbWF0IHRhcGFodHVtYXQgLWxpc3RhJzsKJGxhbmdbJ2luZm9fbXlldmVudHNfdGVtcGxhdGVfdGFiJ10gPSAnU2FhdGF2aWxsYSBvbGV2aWVuIHNpdnVwb2hqaWVuIGxpc3RhLCBqb2lsbGEgdm9pIG4mYXVtbDt5dHQmYXVtbDsmYXVtbDsgayZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIHRhcGFodHVtaWVuIGxpc3Rhbic7CiRsYW5nWydteWV2ZW50c3RlbXBsYXRlX2FkZGVkaXQnXSA9ICdMaXMmYXVtbDsmYXVtbDsgdGFpIHBvaXN0YSAmcXVvdDtPbWF0IHRhcGFodHVtYXQmcXVvdDsgcmFwb3J0aW4gc2l2dXBvaGphYSc7CiRsYW5nWydhcmV5b3VzdXJlX3JlbW92ZWNvbmZsaWN0aW5nJ10gPSAnVCZhdW1sO20mYXVtbDsgdG9pbWludGEgcG9pc3RhYSB0YXBhaHR1bWF0LCBqb3RrYSBvdmF0IHJpc3RpcmlpZGFzc2Egc2VsbGFpc3RlbiB0YXBhaHR1bWllbiBrYW5zc2EsIGpvdGthIGVpdiZhdW1sO3Qgdm9pIG9sbGEgcCZhdW1sOyZhdW1sO2xsZWtrJmF1bWw7aW4uIE9sZXRrbyB2YXJtYSwgZXR0JmF1bWw7IGhhbHVhdCB0ZWhkJmF1bWw7IHQmYXVtbDttJmF1bWw7bj8nOwokbGFuZ1snZmlsdGVyX2NvbmZsaWN0aW5nJ10gPSAnU3VvZGF0YSBwJmF1bWw7JmF1bWw7bGxla2smYXVtbDtpbiBtZW5ldiZhdW1sO3QgdGFwYWh0dW1hdCc7CiRsYW5nWydvdmVybGFwX2FjdGlvbl9yZW1vdmUnXSA9ICdQb2lzdGEgcCZhdW1sOyZhdW1sO2xsZWtrJmF1bWw7aW4gbWVuZXYmYXVtbDt0IHRhcGFodHVtYXQgaGlsamFpc2VzdGknOwokbGFuZ1snb3ZlcmxhcF9hY3Rpb25fZXJyb3InXSA9ICdOJmF1bWw7eXQmYXVtbDsgdmlyaGUnOwokbGFuZ1sncHJvbXB0X292ZXJsYXBfYWN0aW9uJ10gPSAnTWl0JmF1bWw7IHRhcGFodHV1LCBrdW4gdGFwYWh0dW1hbiBsaXMmYXVtbDt5a3Nlc3MmYXVtbDsgdGFpIG11b2trYXVrc2Vzc2EgaHVvbWF0YWFuIHAmYXVtbDsmYXVtbDtsbGVrayZhdW1sO2lzeXlzJzsKJGxhbmdbJ2Vycm9yX2V2ZW50X2NvbmZsaWN0J10gPSAnVGFwYWh0dW1hbiBwJmF1bWw7aXYmYXVtbDttJmF1bWw7JmF1bWw7ciZhdW1sO3QgbWVuZXYmYXVtbDt0IHAmYXVtbDsmYXVtbDtsbGVrayZhdW1sO2luIHNlbGxhaXNlbiB0YXBhaHR1bWFuIGthbnNzYSwgam9ua2EgcCZhdW1sOyZhdW1sO2xsZSBlaSB2b2kgbGFpdHRhYSB0b2lzdGEgdGFwYWh0dW1hYSc7CiRsYW5nWydjYWxfaW5mb19vdmVybGFwJ10gPSAnS29za2VlIGFpbm9hc3RhYW4gdGFwYWh0dW1pYSwgam9pbGxhIG9uIGxvcHB1bWlzYWlrYSAodGFpIGtva28gcCZhdW1sO2l2JmF1bWw7biBrZXN0JmF1bWw7dmkmYXVtbDsgdGFwYWh0dW1pYSknOwokbGFuZ1snY2FsX292ZXJsYXAnXSA9ICdTYWxsaSB1dXNpZW4gdGFwYWh0dW1pZW4gbWVubiZhdW1sOyBwJmF1bWw7JmF1bWw7bGxla2smYXVtbDtpbiB0JmF1bWw7bSZhdW1sO24ga2Fuc3NhJzsKJGxhbmdbJ3Byb21wdF9vdmVybGFwX3BvbGljeSddID0gJ1RhcGFodHVtYW4gcCZhdW1sOyZhdW1sO2xsZWtrJmF1bWw7aXN5eXMgayZhdW1sO3l0JmF1bWw7bnQmb3VtbDsnOwokbGFuZ1sncG9saWN5X2FsbCddID0gJ0thaWtraSB0YXBhaHR1bWF0IHZvaXZhdCBtZW5uJmF1bWw7IHAmYXVtbDsmYXVtbDtsbGVrayZhdW1sO2luJzsKJGxhbmdbJ3BvbGljeV9ub25lJ10gPSAnVGFwYWh0dW1hdCBlaXYmYXVtbDt0IHZvaSBtZW5uJmF1bWw7IHAmYXVtbDsmYXVtbDtsbGVrayZhdW1sO2luJzsKJGxhbmdbJ3BvbGljeV9pbmRpdmlkdWFsJ10gPSAnVmFsaXRhYW4gdGFwYWh0dW1ha29odGFpc2VzdGknOwokbGFuZ1snbGJsX2JhY2snXSA9ICdUYWthaXNpbic7CiRsYW5nWydsYmxfdGVtcGxhdGVzJ10gPSAnU2l2dXBvaGphdCc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ1Rla3N0aWtlbnR0JmF1bWw7JzsKJGxhbmdbJ2Vycm9yX2NhbGVuZGFyX2luY29tcGF0aWJsZSddID0gJ0h1b21hc2ltbWUsIGV0dCZhdW1sOyBteSZvdW1sO3Mga2FsZW50ZXJpbW9kdXVsaSBvbiBhc2VubmV0dHVuYS4gVCZhdW1sO20mYXVtbDsgbW9kdXVsaSBlaSBvbGUgc2VuIGthbnNzYSB5aHRlZW5zb3BpdmEgZWlrJmF1bWw7IG5lIHZvaSBvbGxhIHlodCZhdW1sO2Fpa2FhIGFzZW5uZXR0dW5hLiBPbGUgaHl2JmF1bWw7IGphIHBvaXN0YSBrYWxlbnRlcmltb2R1dWxpIGVuc2luLic7CiRsYW5nWydlcnJvcl9ldmVudF9ub3RfZm91bmQnXSA9ICdKb2tvIHRhcGFodHVtYW4gdHVubmlzdGV0dGEgZWkgb2xlIHRpZXRva2FubmFzc2EsIHRhaSB0aWV0b2thbm5hc3NhIG9uIHVzZWFtcGkgdGFwYWh0dW1hIHQmYXVtbDtsbCZhdW1sOyB0dW5uaXN0ZWVsbGEhICglZCknOwokbGFuZ1snZmlyc3RfcGFnZSddID0gJzw8JzsKJGxhbmdbJ3ByZXZfcGFnZSddID0gJzwnOwokbGFuZ1snbmV4dF9wYWdlJ10gPSAnPic7CiRsYW5nWydsYXN0X3BhZ2UnXSA9ICc+Pic7CiRsYW5nWydwYWdlX29mJ10gPSAnU2l2dSAlZCAvICZhbXA7ZCc7CiRsYW5nWydzZWFyY2hfcmVzdWx0cyddID0gJ0thbGVudGVyaW4gaGFrdXR1bG9rc2V0JzsKJGxhbmdbJ3NlYXJjaF93b3JkcyddID0gJ0hha3VzYW5hdCc7CiRsYW5nWydub19yZXN1bHRzX2ZvdW5kJ10gPSAnRWkgdHVsb2tzaWEnOwokbGFuZ1snZnJlcXVlbmN5J10gPSAnRnJla3ZlbnNzaSc7CiRsYW5nWydzcGVjaWZpZWRfZGF0ZSddID0gJ0smYXVtbDt5dCZhdW1sOyB0aWV0dHkmYXVtbDsgcCZhdW1sO2l2JmF1bWw7bSZhdW1sOyZhdW1sO3ImYXVtbDsmYXVtbDsnOwokbGFuZ1snZmlyc3Rfc3VuZGF5J10gPSAnS3V1a2F1ZGVuIGVuc2ltbSZhdW1sO2luZW4gc3VubnVudGFpJzsKJGxhbmdbJ2ZpcnN0X21vbmRheSddID0gJ0t1dWthdWRlbiBlbnNpbW0mYXVtbDtpbmVuIG1hYW5hbnRhaSc7CiRsYW5nWydmaXJzdF90dWVzZGF5J10gPSAnS3V1a2F1ZGVuIGVuc2ltbSZhdW1sO2luZW4gdGlpc3RhaSc7CiRsYW5nWydmaXJzdF93ZWRuZXNkYXknXSA9ICdLdXVrYXVkZW4gZW5zaW1tJmF1bWw7aW5lbiBrZXNraXZpaWtrbyc7CiRsYW5nWydmaXJzdF90aHVyc2RheSddID0gJ0t1dWthdWRlbiBlbnNpbW0mYXVtbDtpbmVuIHRvcnN0YWknOwokbGFuZ1snZmlyc3RfZnJpZGF5J10gPSAnS3V1a2F1ZGVuIGVuc2ltbSZhdW1sO2luZW4gcGVyamFudGFpJzsKJGxhbmdbJ2ZpcnN0X3NhdHVyZGF5J10gPSAnS3V1a2F1ZGVuIGVuc2ltbSZhdW1sO2luZW4gbGF1YW50YWknOwokbGFuZ1snc2Vjb25kX3N1bmRheSddID0gJ0t1dWthdWRlbiB0b2luZW4gc3VubnVudGFpJzsKJGxhbmdbJ3NlY29uZF9tb25kYXknXSA9ICdLdXVrYXVkZW4gdG9pbmVuIG1hYW5hbnRhaSc7CiRsYW5nWydzZWNvbmRfdHVlc2RheSddID0gJ0t1dWthdWRlbiB0b2luZW4gdGlpc3RhaSc7CiRsYW5nWydzZWNvbmRfd2VkbmVzZGF5J10gPSAnS3V1a2F1ZGVuIHRvaW5lbiBrZXNraXZpaWtrbyc7CiRsYW5nWydzZWNvbmRfdGh1cnNkYXknXSA9ICdLdXVrYXVkZW4gdG9pbmVuIHRvcnN0YWknOwokbGFuZ1snc2Vjb25kX2ZyaWRheSddID0gJ0t1dWthdWRlbiB0b2luZW4gcGVyamFudGFpJzsKJGxhbmdbJ3NlY29uZF9zYXR1cmRheSddID0gJ0t1dWthdWRlbiB0b2luZW4gbGF1YW50YWknOwokbGFuZ1sndGhpcmRfc3VuZGF5J10gPSAnS3V1a2F1ZGVuIGtvbG1hcyBzdW5udW50YWknOwokbGFuZ1sndGhpcmRfbW9uZGF5J10gPSAnS3V1a2F1ZGVuIGtvbG1hcyBtYWFuYW50YWknOwokbGFuZ1sndGhpcmRfdHVlc2RheSddID0gJ0t1dWthdWRlbiBrb2xtYXMgdGlpc3RhaSc7CiRsYW5nWyd0aGlyZF93ZWRuZXNkYXknXSA9ICdLdXVrYXVkZW4ga29sbWFzIGtlc2tpdmlpa2tvJzsKJGxhbmdbJ3RoaXJkX3RodXJzZGF5J10gPSAnS3V1a2F1ZGVuIGtvbG1hcyB0b3JzdGFpJzsKJGxhbmdbJ3RoaXJkX2ZyaWRheSddID0gJ0t1dWthdWRlbiBrb2xtYXMgcGVyamFudGFpJzsKJGxhbmdbJ3RoaXJkX3NhdHVyZGF5J10gPSAnS3V1a2F1ZGVuIGtvbG1hcyBsYXVhbmF0YWknOwokbGFuZ1snZm91cnRoX3N1bmRheSddID0gJ0t1dWthdWRlbiBuZWxqJmF1bWw7cyBzdW5udW50YWknOwokbGFuZ1snZm91cnRoX21vbmRheSddID0gJ0t1dWthdWRlbiBuZWxqJmF1bWw7cyBtYWFuYW50YWknOwokbGFuZ1snZm91cnRoX3R1ZXNkYXknXSA9ICdLdXVrYXVkZW4gbmVsaiZhdW1sO3MgdGlpc3RhaSc7CiRsYW5nWydmb3VydGhfd2VkbmVzZGF5J10gPSAnS3V1a2F1ZGVuIG5lbGomYXVtbDtzIGtlc2tpdmlpa2tvJzsKJGxhbmdbJ2ZvdXJ0aF90aHVyc2RheSddID0gJ0t1dWthdWRlbiBuZWxqJmF1bWw7cyB0b3JzdGFpJzsKJGxhbmdbJ2ZvdXJ0aF9mcmlkYXknXSA9ICdLdXVrYXVkZW4gbmVsaiZhdW1sO3MgcGVyamFudGFpJzsKJGxhbmdbJ2ZvdXJ0aF9zYXR1cmRheSddID0gJ0t1dWthdWRlbiBuZWxqJmF1bWw7cyBsYXVhbnRhaSc7CiRsYW5nWydsYXN0X3N1bmRheSddID0gJ0t1dWthdWRlbiB2aWltZWluZW4gc3VubnVudGFpJzsKJGxhbmdbJ2xhc3RfbW9uZGF5J10gPSAnS3V1a2F1ZGVuIHZpaW1laW5lbiBtYWFuYW50YWknOwokbGFuZ1snbGFzdF90dWVzZGF5J10gPSAnS3V1a2F1ZGVuIHZpaW1laW5lbiB0aWlzdGFpJzsKJGxhbmdbJ2xhc3Rfd2VkbmVzZGF5J10gPSAnS3V1a2F1ZGVuIHZpaW1laW5lbiBrZXNraXZpaWtrbyc7CiRsYW5nWydsYXN0X3RodXJzZGF5J10gPSAnS3V1a2F1ZGVuIHZpaW1laW5lbiB0b3JzdGFpJzsKJGxhbmdbJ2xhc3RfZnJpZGF5J10gPSAnS3V1a2F1ZGVuIHZpaW1laW5lbiBwZXJqYW50YWknOwokbGFuZ1snbGFzdF9zYXR1cmRheSddID0gJ0t1dWthdWRlbiB2aWltZWluZW4gbGF1YW50YWknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9yZWN1cl9tb250aGx5X2ZyZXEnXSA9ICdWaXJoZWVsbGluZW4gZnJla3ZlbnNzaS4uLiBldCB2b2kgbSZhdW1sOyZhdW1sO3JpdGVsbCZhdW1sOyBzZWsmYXVtbDsgdGlldHR5JmF1bWw7IHAmYXVtbDtpdiZhdW1sO20mYXVtbDsmYXVtbDtyJmF1bWw7JmF1bWw7IEpBIG11aXRhIGFydm9qYSc7CiRsYW5nWydzZWFyY2hyZXN1bHR0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGlzJmF1bWw7JmF1bWw7L211b2trYWEgaGFrdXR1bG9zdGVuIHNpdnVwb2hqYWEnOwokbGFuZ1snaW5mb19zZWFyY2hyZXN1bHRfdGVtcGxhdGVfdGFiJ10gPSAnU2FhdGF2aWxsYSBvbGV2YSBsaXN0YSBoYWt1dHVsb3N0ZW4gc2l2dXBvaGppc3RhJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9zZWFyY2hyZXN1bHRfdGVtcGxhdGUnXSA9ICdKJmF1bWw7cmplc3RlbG0mYXVtbDtuIG9sZXR1c3NpdnVwb2hqYSBoYWt1dHVsb2tzaWxsZSc7CiRsYW5nWydjYWxfc2VhcmNoX3Jlc3VsdF90ZW1wbGF0ZXMnXSA9ICdIYWt1dHVsb2tzZXQnOwokbGFuZ1snZXJyb3JfcXVlcnlfZmFpbGVkJ10gPSAnVGlldG9rYW5uYXN0YSBoYWt1IGVwJmF1bWw7b25uaXN0dWknOwokbGFuZ1snZXJyb3Jfc2VhcmNoX2ludmFsaWRfZGF0ZXMnXSA9ICdWaXJoZWVsbGlzZXQgcCZhdW1sO2l2JmF1bWw7bSZhdW1sOyZhdW1sO3ImYXVtbDt0JzsKJGxhbmdbJ3RleHQnXSA9ICdUZWtzdGknOwokbGFuZ1snc2VhcmNoJ10gPSAnSGFrdSc7CiRsYW5nWydjYXRlZ29yeSddID0gJ0thdGVnb3JpYSc7CiRsYW5nWydpbmZvX3N5c2RmbHRfc2VhcmNoX3RlbXBsYXRlJ10gPSAnSiZhdW1sO3JqZXN0ZWxtJmF1bWw7biBvbGV0dXNzaXZ1cG9oamEgaGFrdWxvbWFra2VlbGxlJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMaXMmYXVtbDsmYXVtbDsvbXVva2thYSBoYWt1bG9tYWtrZWVuIHNpdnVwb2hqYWEnOwokbGFuZ1snaW5mb19zZWFyY2hfdGVtcGxhdGVfdGFiJ10gPSAnU2FhdGF2aWxsYSBvbGV2YSBsaXN0YSBoYWt1bG9tYWtrZWVuIHNpdnVwb2hqaXN0YSc7CiRsYW5nWydjYWxfc2VhcmNoX2Zvcm1fdGVtcGxhdGVzJ10gPSAnSGFrdWxvbWFrZSc7CiRsYW5nWydtYXgnXSA9ICdtYXguJzsKJGxhbmdbJ3RpbWVzJ10gPSAna2VydGFhJzsKJGxhbmdbJ29uJ10gPSAnb24gJzsKJGxhbmdbJ2FyZXlvdXN1cmVfdW5pbnN0YWxsJ10gPSAnT2xldGtvIHZhcm1hLCBldHQmYXVtbDsgaGFsdWF0IHRlaGQmYXVtbDsgdCZhdW1sO20mYXVtbDtuPyBKYXRrYW1pbmVuIHBvaXN0YWEga2Fpa2tpIHQmYXVtbDtoJmF1bWw7biBtb2R1dWxpaW4gbGlpdHR5diZhdW1sO3QgdGllZG90Lic7CiRsYW5nWydwb3N0X3VuaW5zdGFsbCddID0gJ0thbGVudGVyaW1vZHV1bGkgb24gcG9pc3RldHR1IG9ubmlzdHVuZWVzdGkgamEgdCZhdW1sO2gmYXVtbDtuIG1vZHV1bGlpbiBsaWl0dHl2JmF1bWw7dCBzaXZ1cG9oamF0IG9uIHBvaXN0ZXR0dS4nOwokbGFuZ1snZmllbGR1cGRhdGVkJ10gPSAnS2VudHQmYXVtbDsgcCZhdW1sO2l2aXRldHR5JzsKJGxhbmdbJ2V2ZXJ5J10gPSAnSm9rYSc7CiRsYW5nWydvciddID0gJ3RhaSc7CiRsYW5nWyd1cGRhdGVfY2hpbGRyZW4nXSA9ICdQJmF1bWw7aXZpdCZhdW1sOyBhbGF0YXBhaHR1bWF0JzsKJGxhbmdbJ2Vycm9yX25vY2F0ZWdvcnknXSA9ICdTaW51biB0JmF1bWw7eXR5eSB2YWxpdGEgYWluYWtpbiB5a3NpIGthdGVnb3JpYSc7CiRsYW5nWydlcnJvcl9ub3RoaW5nc2VsZWN0ZWQnXSA9ICdFaSB2YWxpdHR1IG1pdCZhdW1sOyZhdW1sO24gcG9pc3RldHRhdmFrc2knOwokbGFuZ1snZXJyb3JfZXZlbnRvdmVybGFwJ10gPSAnQW50YW1hc2kgcGFyYW1ldHJpdCB0b2lzdHV2YWxsZSB0YXBhaHR1bWFsbGEgYWloZXV0dGFpc2kgcCZhdW1sOyZhdW1sO2xsZWtrJmF1bWw7aXNlbiB0YXBhaHR1bWFuLic7CiRsYW5nWydyZWN1cnMnXSA9ICdUb2lzdHV1JzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfZGF0ZXMnXSA9ICdZa3NpIHRhaSB1c2VhbXBpIGFubmV0dHUgYXJ2byBvbGkgdmlyaGVlbGxpbmVuJzsKJGxhbmdbJ3N1bmRheSddID0gJ3N1bm51bnRhaSc7CiRsYW5nWydtb25kYXknXSA9ICdtYWFuYW50YWknOwokbGFuZ1sndHVlc2RheSddID0gJ3RpaXN0YWknOwokbGFuZ1snd2VkbmVzZGF5J10gPSAna2Vza2l2aWlra28nOwokbGFuZ1sndGh1cnNkYXknXSA9ICd0b3JzdGFpJzsKJGxhbmdbJ2ZyaWRheSddID0gJ3BlcmphbnRhaSc7CiRsYW5nWydzYXR1cmRheSddID0gJ2xhdWFudGFpJzsKJGxhbmdbJ2FiYnJfc3VuZGF5J10gPSAnc3UnOwokbGFuZ1snYWJicl9tb25kYXknXSA9ICdtYSc7CiRsYW5nWydhYmJyX3R1ZXNkYXknXSA9ICd0aSc7CiRsYW5nWydhYmJyX3dlZG5lc2RheSddID0gJ2tlJzsKJGxhbmdbJ2FiYnJfdGh1cnNkYXknXSA9ICd0byc7CiRsYW5nWydhYmJyX2ZyaWRheSddID0gJ3BlJzsKJGxhbmdbJ2FiYnJfc2F0dXJkYXknXSA9ICdsYSc7CiRsYW5nWyd3ZWVrZGF5cyddID0gJ1ZpaWtvbnAmYXVtbDtpdiZhdW1sO3QnOwokbGFuZ1sncGx1cmFsX2RhaWx5J10gPSAnUCZhdW1sO2l2JmF1bWw7JmF1bWw7JzsKJGxhbmdbJ3BsdXJhbF93ZWVrbHknXSA9ICdWaWlra29hJzsKJGxhbmdbJ3BsdXJhbF9tb250aGx5J10gPSAnS3V1a2F1dHRhJzsKJGxhbmdbJ3BsdXJhbF95ZWFybHknXSA9ICdWdW90dGEnOwokbGFuZ1snbm8nXSA9ICdFaSc7CiRsYW5nWydkYWlseSddID0gJ1AmYXVtbDtpdml0dCZhdW1sO2luJzsKJGxhbmdbJ3dlZWtseSddID0gJ1ZpaWtvdHRhaW4nOwokbGFuZ1snbW9udGhseSddID0gJ0t1dWthdXNpdHRhaW4nOwokbGFuZ1sneWVhcmx5J10gPSAnVnVvc2l0dGFpbic7CiRsYW5nWydpbnRlcnZhbCddID0gJ1RvaXN0YSBqb2thJzsKJGxhbmdbJ2NhbF9yZWN1cl9kZXRhaWxzJ10gPSAnVG9pc3R1dmFuIHRhcGFodHVtYW4gdGllZG90JzsKJGxhbmdbJ3VubGltaXRlZCddID0gJ1Jham9pdHRhbWF0b24nOwokbGFuZ1snbWF4X3JlY3VyX2V2ZW50cyddID0gJ0FsYXRhcGFodHVtaWVuIG1ha3NpbWltJmF1bWw7JmF1bWw7ciZhdW1sOyc7CiRsYW5nWyd1c2VfdG9fZGF0ZSddID0gJ00mYXVtbDsmYXVtbDtyaXR0ZWxlIHRvaW5lbiBsb3BwdW1pc3AmYXVtbDtpdiZhdW1sO20mYXVtbDsmYXVtbDtyJmF1bWw7Pyc7CiRsYW5nWydjYW5jZWwnXSA9ICdQZXJ1dXRhJzsKJGxhbmdbJ3Nob3dfY2hpbGRfZXZlbnRzJ10gPSAnTiZhdW1sO3l0JmF1bWw7IGFsYXRhcGFodHVtYXQgPGVtPih2b2kgYWloZXV0dGFhIGVyaXR0JmF1bWw7aW4gcGl0ayZhdW1sO24gbGlzdGFuKTwvZW0+JzsKJGxhbmdbJ24vYSddID0gJ2VpIG1pdCZhdW1sOyZhdW1sO24nOwokbGFuZ1sncmVjdXJzX3VudGlsJ10gPSAnVG9pc3RhIGt1bm5lcyc7CiRsYW5nWydwYXJlbnQnXSA9ICdQJmF1bWw7JmF1bWw7dGFwYWh0dW1hJzsKJGxhbmdbJ3JlY3VyX3BlcmlvZCddID0gJ1RvaXN0dW1pc2Fpa2EnOwokbGFuZ1snZmlsdGVyJ10gPSAnU3VvZGF0YSc7CiRsYW5nWydzdGFydF9kYXRlJ10gPSAnQWxrYW1pc3AmYXVtbDtpdiZhdW1sO20mYXVtbDsmYXVtbDtyJmF1bWw7JzsKJGxhbmdbJ2VuZF9kYXRlJ10gPSAnTG9wcHVtaXNwJmF1bWw7aXYmYXVtbDttJmF1bWw7JmF1bWw7ciZhdW1sOyc7CiRsYW5nWydpbmZvX3VwY29taW5nbGlzdF90ZW1wbGF0ZV90YWInXSA9ICdTYWF0YXZpbGxhIG9sZXZhIGxpc3RhIHNpdnVwb2hqaXN0YSB0dWxldmlsbGUgdGFwYWh0dW1pbGxlJzsKJGxhbmdbJ3VwY29taW5nbGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMaXMmYXVtbDsmYXVtbDsvbXVva2thYSB0dWxldmllbiB0YXBhaHR1bWllbiBuJmF1bWw7eXR0JmF1bWw7bWlzZW4gc2l2dXBvaGppYSc7CiRsYW5nWydpbmZvX3N5c2RmbHRfdXBjb21pbmdsaXN0X3RlbXBsYXRlJ10gPSAnSiZhdW1sO3JqZXN0ZWxtJmF1bWw7biBvbGV0dXNzaXZ1cG9oamEgdHVsZXZpZW4gdGFwYWh0dW1pZW4gbiZhdW1sO3l0dCZhdW1sO21pc2Vrc2knOwokbGFuZ1snaW5mb19saXN0X3RlbXBsYXRlX3RhYiddID0gJ1NhYXRhdmlsbGEgb2xldmEgbGlzdGEgc2l2dXBvaGppc3RhIHRhcGFodHVtaWVuIGxpc3RhbiBuJmF1bWw7eXR0JmF1bWw7bWlzZWtzaSc7CiRsYW5nWydsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0xpcyZhdW1sOyZhdW1sOy9tdW9ra2FhIHNpdnVwb2hqYWEgdGFwYWh0dW1hbGlzdGFuIG4mYXVtbDt5dHQmYXVtbDttaXNla3NpJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9saXN0X3RlbXBsYXRlJ10gPSAnSiZhdW1sO3JqZXN0ZWxtJmF1bWw7biBvbGV0dXNzaXZ1cG9oamEgdGFwYWh0dW1hbGlzdGFsbGUnOwokbGFuZ1snaW5mb19ldmVudF90ZW1wbGF0ZV90YWInXSA9ICdTYWF0YXZpbGxhIG9sZXZpZW4gc2l2dXBvaGppZW4gbGlzdGEgdGFwYWh0dW1pZW4gbiZhdW1sO3l0dCZhdW1sO21pc2Vrc2knOwokbGFuZ1snZXZlbnR0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGlzJmF1bWw7JmF1bWw7L211b2trYWEgc2l2dXBvaGphYSB0YXBhaHR1bWFuIG4mYXVtbDt5dHQmYXVtbDttaXNla3NpJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9ldmVudF90ZW1wbGF0ZSddID0gJ0omYXVtbDtyamVzdGVsbSZhdW1sO24gb2xldHVzIHNpdnVwb2hqYSB0YXBhaHR1bWFuIG4mYXVtbDt5dHQmYXVtbDttaXNla3NpJzsKJGxhbmdbJ2luZm9fY2FsZW5kYXJfdGVtcGxhdGVfdGFiJ10gPSAnU2FhdGF2aWxsYSBvbGV2YSBsaXN0YSBzaXZ1cG9oamlzdGEga2FsZW50ZXJpbiBuJmF1bWw7eXR0JmF1bWw7bWlzZWtzaSc7CiRsYW5nWydjYWxlbmRhcnRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMaXMmYXVtbDsmYXVtbDsvbXVva2thYSBzaXZ1cG9oamlhIGthbGVudGVyaW4gbiZhdW1sO3l0dCZhdW1sO21pc2Vrc2knOwokbGFuZ1snaW5mb19zeXNkZmx0X2NhbGVuZGFyX3RlbXBsYXRlJ10gPSAnSiZhdW1sO3JqZXN0ZWxtJmF1bWw7biBvbGV0dXNzaXZ1cG9oamEga2FsZW50ZXJpbiBuJmF1bWw7eXR0JmF1bWw7bWlzZWtzaSc7CiRsYW5nWydpbmZvX3N5c2RmbHRfdGVtcGxhdGUnXSA9ICdUJmF1bWw7bSZhdW1sOyBsb21ha2UgbSZhdW1sOyZhdW1sO3JpdHRlbGVlIHNpdnVwb2hqYW4sIGpvdGEgayZhdW1sO3l0ZXQmYXVtbDsmYXVtbDtuLCBrdW4ga2xpa2thYXQgJnF1b3Q7VXVzaSBzaXZ1cG9oamEmcXVvdDstcGFpbmlrZXR0YSB2JmF1bWw7bGlsZWhkZXNzJmF1bWw7LiBUJmF1bWw7bSZhdW1sO24gYXJ2b24gbXV1dHRhbWlzZWxsZSBlaSBvbGUgdmFpa3V0dXN0YSBoZXRpIHQmYXVtbDttJmF1bWw7biBtb2R1dWxpbiBsdW9taWxsZSBzaXZ1aWxsZS4nOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50QWRkZWQnXSA9ICdLdXRzdXRhYW4ga2FsZW50ZXJpdGFwYWh0dW1hbiBsaXMmYXVtbDsmYXVtbDttaXNlbiBqJmF1bWw7bGtlZW4nOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50RWRpdGVkJ10gPSAnS3V0c3V0YWFuIGthbGVudGVyaXRhcGFodHVtYW4gbXV1dG9rc2VuIGomYXVtbDtsa2Vlbic7CiRsYW5nWydldmVudGRlc2MtRXZlbnREZWxldGVkJ10gPSAnS3V0c3V0YWFuIHRhcGFodHVtYW4gcG9pc3RvbiBqJmF1bWw7bGtlZW4nOwokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5QWRkZWQnXSA9ICdLdXRzdXRhYW4ga2F0ZWdvcmlhbiBsaXMmYXVtbDsmYXVtbDttaXNlbiBqJmF1bWw7bGtlZW4nOwokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5RWRpdGVkJ10gPSAnS3V0c3V0YWFuIGthdGVnb3JpYW4gbXV1dG9rc2VuIGomYXVtbDtsa2Vlbic7CiRsYW5nWydldmVudGRlc2MtQ2F0ZWdvcnlEZWxldGVkJ10gPSAnS3V0c3V0YWFuIGthdGVnb3JpYW4gcG9pc3RvbiBqJmF1bWw7bGtlZW4nOwokbGFuZ1snZXZlbnRoZWxwLUV2ZW50QWRkZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBldmVudCBpcyBhZGRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2V2ZW50X3RpdGxlXCZxdW90OyAtIEV2ZW50IFRpdGxlPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfc3VtbWFyeVwmcXVvdDsgLSBTdW1tYXJ5IFRleHQ8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kZXRhaWxzXCZxdW90OyAtIERldGFpbGVkIERlc2NyaXB0aW9uPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGF0ZV9zdGFydFwmcXVvdDsgLSBUaGUgZXZlbnQgc3RhcnQgZGF0ZS90aW1lPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGF0ZV9lbmRcJnF1b3Q7IC0gVGhlIGV2ZW50IGVuZCBkYXRlL3RpbWU8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9jcmVhdGVkX2J5XCZxdW90OyAtIFRoZSB1c2VyaWQgb2YgdGhlIGF1dGhvcjwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2lkXCZxdW90OyAtIFRoZSBldmVudCBpZDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50aGVscC1FdmVudEVkaXRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGV2ZW50IGlzIGVkaXRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2V2ZW50X3RpdGxlXCZxdW90OyAtIEV2ZW50IFRpdGxlPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfc3VtbWFyeVwmcXVvdDsgLSBTdW1tYXJ5IFRleHQ8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kZXRhaWxzXCZxdW90OyAtIERldGFpbGVkIERlc2NyaXB0aW9uPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGF0ZV9zdGFydFwmcXVvdDsgLSBUaGUgZXZlbnQgc3RhcnQgZGF0ZS90aW1lPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGF0ZV9lbmRcJnF1b3Q7IC0gVGhlIGV2ZW50IGVuZCBkYXRlL3RpbWU8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9jcmVhdGVkX2J5XCZxdW90OyAtIFRoZSB1c2VyaWQgb2YgdGhlIGF1dGhvcjwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2lkXCZxdW90OyAtIFRoZSBldmVudCBpZDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50aGVscC1FdmVudERlbGV0ZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBldmVudCBpcyBkZWxldGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7ZXZlbnRfaWRcJnF1b3Q7IC0gVGhlIGV2ZW50IGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5QWRkZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBjYXRlZ29yeSBpcyBhZGRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2NhdGVnb3J5X2lkXCZxdW90OyAtIFRoZSBjYXRlZ29yeSBpZDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50aGVscC1DYXRlZ29yeUVkaXRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGNhdGVnb3J5IGlzIGVkaXRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2NhdGVnb3J5X2lkXCZxdW90OyAtIFRoZSBjYXRlZ29yeSBpZDwvbGk+DQo8bGk+XCZxdW90O2NhdGVnb3J5X25hbWVcJnF1b3Q7IC0gVGhlIGNhdGVnb3J5IG5hbWU8L2xpPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9vcmRlclwmcXVvdDsgLSBUaGUgY2F0ZWdvcnkgc29ydCBvcmRlcjwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50aGVscC1DYXRlZ29yeURlbGV0ZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBjYXRlZ29yeSBpcyBkZWxldGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfaWRcJnF1b3Q7IC0gVGhlIGNhdGVnb3J5IGlkPC9saT4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfbmFtZVwmcXVvdDsgLSBUaGUgY2F0ZWdvcnkgbmFtZTwvbGk+DQo8bGk+XCZxdW90O2NhdGVnb3J5X29yZGVyXCZxdW90OyAtIFRoZSBjYXRlZ29yeSBzb3J0IG9yZGVyPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXJyb3JfY3N2X2luc2VydCddID0gJ0Vycm9yIGltcG9ydGluZyBldmVudCBmcm9tIGNzdiBhdCBsaW5lICVkJzsKJGxhbmdbJ2Vycm9yX2NzdmZpcnN0bGluZWZsZG5vdGZvdW5kJ10gPSAnQSByZXF1aXJlZCBmaWVsZDogJXMsIGNvdWxkIG5vdCBiZSBmb3VuZCBpbiB0aGUgY3N2IGZpbGUgaGVhZGVyIGxpbmUnOwokbGFuZ1snZXJyb3JfY3N2aW52YWxpZGZpcnN0bGluZSddID0gJ0NvdWxkIG5vdCBmaW5kIGEgdmFsaWQgZmlyc3QgbGluZSBvZiB0aGUgQ1NWIGZpbGUnOwokbGFuZ1snbXNnX2V2ZW50YWRkZWQnXSA9ICdUYXBhaHR1bWEgbGlzJmF1bWw7dHR5JzsKJGxhbmdbJ2Vycm9yX25vZXZlbnRuYW1lJ10gPSAnVGFwYWh0dW1hbGxhIHQmYXVtbDt5dHl5IG9sbGEgbmltaSc7CiRsYW5nWydlcnJvcl9ub3VwbG9hZCddID0gJ1ZpcmhlOiBQYWx2ZWxpbWVsbGUgc2lpcnJldHR5JmF1bWw7IHRpZWRvc3RvYSBlaSBsJm91bWw7eXR5bnl0JzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRmaWxlbmFtZSddID0gJ1ZpcmhlOiBUaWVkb3N0b24gc2lpcnRvYSBlaSB2b2lkYSBoeXYmYXVtbDtrc3kmYXVtbDsnOwokbGFuZ1snZXJyb3JfcHJvYmxlbXdpdGh1cGxvYWQnXSA9ICdWaXJoZTogVGllZG9zdG9uIHNpaXJyb3NzYSB0YXBhaHR1aSB2aXJoZSc7CiRsYW5nWydlcnJvcl9maWxlY29weWZhaWxlZCddID0gJ1ZpcmhlOiBUaWVkb3N0b24ga29waW9pbm5pc3NhIGxvcHVsbGlzZWVuIHNpamFpbnRpaW5zYSB0YXBhaHR1aSB2aXJoZSc7CiRsYW5nWydlcnJvcl9maWxlZXhpc3RzJ10gPSAnVmlyaGU6IFNhbWFubmltaW5lbiB0aWVkb3N0byBvbiBqbyBvbGVtYXNzYSc7CiRsYW5nWydlcnJvcl9jc3ZmaWxlbm90Zm91bmQnXSA9ICdWaXJoZTogIENTVi10aWVkb3N0b2EgZWkgdm9pdHUgbCZvdW1sO3l0JmF1bWw7JmF1bWw7JzsKJGxhbmdbJ2Vycm9yX2NhbnRvcGVuZmlsZSddID0gJ1ZpcmhlOiBUaWVkb3N0b2EgZWkgdm9pZGEgYXZhdGEnOwokbGFuZ1snZXJyb3JfY2F0ZWdvcnlleGlzdHMnXSA9ICdWaXJoZTogS2F0ZWdvcmlhIG5pbWVsbCZhdW1sOyAlcyBvbiBqbyBvbGVtYXNzYSc7CiRsYW5nWydjYWxfaWQnXSA9ICdJRCc7CiRsYW5nWydjYWxfY2FsZW5kYXInXSA9ICdLYWxlbnRlcmknOwokbGFuZ1snY2FsX2RlZmF1bHRfdGVtcGxhdGVzJ10gPSAnT2xldHVrc2V0JzsKJGxhbmdbJ2NhbF9kZXNjcmlwdGlvbiddID0gJ01vbmlwdW9saW5lbiBtb2R1dWxpLCBqb25rYSBhdnVsbGEgdm9pdCBuJmF1bWw7eXR0JmF1bWw7JmF1bWw7IHRhcGFodHVtaWEgdXNlaXNzYSBlcmkgbXVvZG9pc3NhLic7CiRsYW5nWydjYWxfYWRkZXZlbnQnXSA9ICdMaXMmYXVtbDsmYXVtbDsgdGFwYWh0dW1hJzsKJGxhbmdbJ2NhbF9pbXBvcnRfZXZlbnRzJ10gPSAnVHVvIHRhcGFodHVtaWEnOwokbGFuZ1snY2FsX2V2ZW50cyddID0gJ1RhcGFodHVtYXQnOwokbGFuZ1snY2FsX2NhdGVnb3JpZXMnXSA9ICdLYXRlZ29yaWF0JzsKJGxhbmdbJ2NhbF9jYWxlbmRhcl90ZW1wbGF0ZSddID0gJ0thbGVudGVyaSc7CiRsYW5nWydjYWxfbGlzdF90ZW1wbGF0ZSddID0gJ1RhcGFodHVtYWxpc3RhJzsKJGxhbmdbJ2NhbF91cGNvbWluZ2xpc3RfdGVtcGxhdGUnXSA9ICdUdWxldmF0IHRhcGFodHVtYXQnOwokbGFuZ1snY2FsX2V2ZW50X3RlbXBsYXRlJ10gPSAnVGFwYWh0dW1hJzsKJGxhbmdbJ2NhbF9zZXR0aW5ncyddID0gJ0FzZXR1a3NldCc7CiRsYW5nWydjYWxfcHJldiddID0gJyZsYXF1bzsgRWRlbGxpbmVuJzsKJGxhbmdbJ2NhbF9uZXh0J10gPSAnU2V1cmFhdmEgJnJhcXVvOyc7CiRsYW5nWydjYWxfY2F0ZWdvcmllc191cGRhdGVkJ10gPSAnS2F0ZWdvcmlhdCBwJmF1bWw7aXZpdGV0dHknOwokbGFuZ1snY2FsX3NldHRpbmdzX3VwZGF0ZWQnXSA9ICdBc2V0dWtzZXQgcCZhdW1sO2l2aXRldHR5JzsKJGxhbmdbJ2NhbF9hZGRfZXZlbnQnXSA9ICdMaXMmYXVtbDsmYXVtbDsgdGFwYWh0dW1hJzsKJGxhbmdbJ2NhbF9lZGl0J10gPSAnTXVva2thYSc7CiRsYW5nWydjYWxfZGVsZXRlJ10gPSAnUG9pc3RhJzsKJGxhbmdbJ2NhbF9hcmV5b3VzdXJlJ10gPSAnT2xldGtvIHZhcm1hPyc7CiRsYW5nWydjYWxfdXBkYXRlX3RlbXBsYXRlJ10gPSAnUCZhdW1sO2l2aXQmYXVtbDsgcG9oamEnOwokbGFuZ1snY2FsX3N1bmRheSddID0gJ3N1bm51bnRhaSc7CiRsYW5nWydjYWxfbW9uZGF5J10gPSAnbWFhbmFudGFpJzsKJGxhbmdbJ2NhbF90dWVzZGF5J10gPSAndGlpc3RhaSc7CiRsYW5nWydjYWxfd2VkbmVzZGF5J10gPSAna2Vza2l2aWlra28nOwokbGFuZ1snY2FsX3RodXJzZGF5J10gPSAndG9yc3RhaSc7CiRsYW5nWydjYWxfZnJpZGF5J10gPSAncGVyamFudGFpJzsKJGxhbmdbJ2NhbF9zYXR1cmRheSddID0gJ2xhdWFudGFpJzsKJGxhbmdbJ2NhbF9zdW4nXSA9ICdzdSc7CiRsYW5nWydjYWxfbW9uJ10gPSAnbWEnOwokbGFuZ1snY2FsX3R1ZXMnXSA9ICd0aSc7CiRsYW5nWydjYWxfd2VkJ10gPSAna2UnOwokbGFuZ1snY2FsX3RodXJzJ10gPSAndG8nOwokbGFuZ1snY2FsX2ZyaSddID0gJ3BlJzsKJGxhbmdbJ2NhbF9zYXQnXSA9ICdsYSc7CiRsYW5nWydjYWxfamFudWFyeSddID0gJ3RhbW1pa3V1JzsKJGxhbmdbJ2NhbF9mZWJydWFyeSddID0gJ2hlbG1pa3V1JzsKJGxhbmdbJ2NhbF9tYXJjaCddID0gJ21hYWxpc2t1dSc7CiRsYW5nWydjYWxfYXByaWwnXSA9ICdodWh0aWt1dSc7CiRsYW5nWydjYWxfbWF5J10gPSAndG91a29rdXUnOwokbGFuZ1snY2FsX2p1bmUnXSA9ICdrZXMmYXVtbDtrdXUnOwokbGFuZ1snY2FsX2p1bHknXSA9ICdoZWluJmF1bWw7a3V1JzsKJGxhbmdbJ2NhbF9hdWd1c3QnXSA9ICdlbG9rdXUnOwokbGFuZ1snY2FsX3NlcHRlbWJlciddID0gJ3N5eXNrdXUnOwokbGFuZ1snY2FsX29jdG9iZXInXSA9ICdsb2tha3V1JzsKJGxhbmdbJ2NhbF9ub3ZlbWJlciddID0gJ21hcnJhc2t1dSc7CiRsYW5nWydjYWxfZGVjZW1iZXInXSA9ICdqb3VsdWt1dSc7CiRsYW5nWydjYWxfYWRkJ10gPSAnTGlzJmF1bWw7JmF1bWw7JzsKJGxhbmdbJ2NhbF91cGRhdGUnXSA9ICdQJmF1bWw7aXZpdCZhdW1sOyc7CiRsYW5nWydjYWxfZXZlbnQnXSA9ICdUYXBhaHR1bWEnOwokbGFuZ1snY2FsX2RhdGUnXSA9ICdQJmF1bWw7aXYmYXVtbDsnOwokbGFuZ1snY2FsX3N1bW1hcnknXSA9ICdUaWl2aXN0ZWxtJmF1bWw7JzsKJGxhbmdbJ2NhbF9kZXRhaWxzJ10gPSAnTGlzJmF1bWw7dGllZG90JzsKJGxhbmdbJ2NhbF9tb3JlJ10gPSAnTGlzJmF1bWw7JmF1bWw7ICZyYXF1bzsnOwokbGFuZ1snY2FsX3JldHVybiddID0gJ1BhbGFhJzsKJGxhbmdbJ2NhbF90byddID0gJyAtICc7CiRsYW5nWydjYWxfcGFzdF9ldmVudHMnXSA9ICdNZW5uZWV0IHRhcGFodHVtYXQnOwokbGFuZ1snY2FsX3VwY29taW5nX2V2ZW50cyddID0gJ1R1bGV2YXQgdGFwYWh0dW1hdCc7CiRsYW5nWydjYWxfYW55X2NhdGVnb3J5J10gPSAnS2Fpa2tpIGthdGVnb3JpYXQnOwokbGFuZ1snY2FsX3Nob3dfb25seV9ldmVudHNfaW4nXSA9ICdOJmF1bWw7eXQmYXVtbDsgdmFpbiAnOwokbGFuZ1snY2FsX2ZpbHRlcl9ieSddID0gJ1N1b2RhdGEgb3RzaWtrbyc7CiRsYW5nWydjYWxfZ28nXSA9ICdNZW5lJzsKJGxhbmdbJ2NhbF90aXRsZSddID0gJ090c2lra28nOwokbGFuZ1snY2FsX2Zyb21kYXRlJ10gPSAnTWlzdCZhdW1sOyc7CiRsYW5nWydjYWxfdG9kYXRlJ10gPSAnTWloaW4nOwokbGFuZ1snY2FsX3VwZGF0ZV9jYXRlZ29yaWVzJ10gPSAnUCZhdW1sO2l2aXQmYXVtbDsga2F0ZWdvcmlhdCc7CiRsYW5nWydjYWxfbGFuZ3VhZ2UnXSA9ICdLaWVsaSc7CiRsYW5nWydjYWxfdXBkYXRlc2V0dGluZ3MnXSA9ICdQJmF1bWw7aXZpdCZhdW1sOyBhc2V0dWtzZXQnOwokbGFuZ1snY2FsX3VzZV90d2VsdmVfaG91cl9jbG9jayddID0gJ0smYXVtbDt5dGV0JmF1bWw7JmF1bWw7bmsmb3VtbDsgcHVkb3R1c3ZhbGlrb2lzc2EgMTItdHVubmluIGtlbGxvYT8nOwokbGFuZ1snY2FsX2RlZmF1bHRfY2F0ZWdvcnknXSA9ICdPbGV0dXNrYXRlZ29yaWEnOwokbGFuZ1snY2FsX3VwZGF0ZV9maWVsZHMnXSA9ICdQJmF1bWw7aXZpdCZhdW1sOyBrZW50JmF1bWw7dCc7CiRsYW5nWydmb3JjZV9jYXRlZ29yeSddID0gJ1Bha290YSB2JmF1bWw7aGludCZhdW1sOyZhdW1sO24geWtzaSBrYXRlZ29yaWEnOwokbGFuZ1snc2hvd3Bhc3R5ZWFycyddID0gJ0t1aW5rYSBtb250YSB2dW90dGEgbWVubmVpc3l5dGVlbiBvbiBzYWxsaXR0dWEnOwokbGFuZ1snc2hvd2Z1dHVyZXllYXJzJ10gPSAnS3VpbmthIG1vbnRhIHZ1b3R0YSB0dWxldmFpc3V1dGVlbiBvbiBzYWxsaXR0dWEnOwokbGFuZ1snaGlkZXN1bW1hcnknXSA9ICdQaWlsb3RldGFhbmtvIHlodGVlbnZldG9rZW50dCZhdW1sOyc7CiRsYW5nWydoaWRlY29udGVudCddID0gJ1BpaWxvdGV0YWFua28gc2lzJmF1bWw7bHQmb3VtbDtrZW50dCZhdW1sOyc7CiRsYW5nWydjYXRlZ29yeV9yZW1pbmRlciddID0gJ1ZhbGl0c2UgdGFwYWh0dW1hbGxlIHlrc2kgdGFpIHVzZWFtcGlhIGthdGVnb3JpYSc7CiRsYW5nWydtb2R1bGVfZXhhbXBsZV9zdHlsZXNoZWV0J10gPSAnQ1NTLWVzaW1lcmtraSBrYWxlbnRlcmlsbGUnOwokbGFuZ1snZXJyb3JfcGVybWlzc2lvbiddID0gJ1RhcnZpdHNldCBhc2lhYW5rdWx1dmF0IG9pa2V1ZGV0ICglcykgdCZhdW1sO2gmYXVtbDtuIHRvaW1pbm5hbGxpc3V1dGVlbic7CiRsYW5nWydpbnN0YWxsX3Bvc3RtZXNzYWdlJ10gPSAnVmFybWlzdGEsIGV0dCZhdW1sOyBsaXMmYXVtbDsmYXVtbDt0IG9pa2V1ZGVuICZxdW90O011b2thdGEga2FsZW50ZXJpYSZxdW90OyBuaWlsbGUgayZhdW1sO3l0dCZhdW1sO2ppbGxlLCBqb3RrYSB5bGwmYXVtbDtwaXQmYXVtbDt2JmF1bWw7dCBrYWxlbnRlcml0YXBhaHR1bWlhLic7CiRsYW5nWydkZWxldGV0YWdnZWQnXSA9ICdQb2lzdGEgdmFsaXR1dCB0YXBhaHR1bWF0JzsKJGxhbmdbJ2NvbmZpcm1kZWxldGV0YWdnZWQnXSA9ICdIYWx1YXRrbyB2YXJtYXN0aSBwb2lzdGFhIG4mYXVtbDttJmF1bWw7IHRhcGFodHVtYXQ/JzsKJGxhbmdbJ3RhZ2dlZGRlbGV0ZWQnXSA9ICdWYWxpdHV0IHRhcGFodHVtYXQgcG9pc3RldHR1JzsKJGxhbmdbJ3RlbXBsYXRlcyddID0gJ1NpdnVwb2hqYXQnOwokbGFuZ1sndGVtcGxhdGVfaGVscCddID0gJ1NpdnVwb2hqaWVuIG9oamUnOwokbGFuZ1snZmlsZV90ZW1wbGF0ZXMnXSA9ICdUaWVkb3N0b3BvaGphdCc7CiRsYW5nWydhZGR0ZW1wbGF0ZSddID0gJ0xpcyZhdW1sOyZhdW1sOyBzaXZ1cG9oamEnOwokbGFuZ1sndGVtcGxhdGUnXSA9ICdTaXZ1cG9oamEnOwokbGFuZ1sndGVtcGxhdGVuYW1ldGV4dCddID0gJ1NpdnVwb2hqYW4gbmltaSc7CiRsYW5nWydlZGl0dGVtcGxhdGUnXSA9ICdNdW9ra2FhIHNpdnVwb2hqYWEnOwokbGFuZ1snZGVsZXRldGVtcGxhdGUnXSA9ICdQb2lzdGEgc2l2dXBvaGphJzsKJGxhbmdbJ25ld3RlbXBsYXRlJ10gPSAnVXVkZW4gc2l2dXBvaGphbiBuaW1pJzsKJGxhbmdbJ3RlbXBsYXRlbmFtZWV4aXN0cyddID0gJ1ZpcmhlOiBTYW1hbm5pbWluZW4gc2l2dXBvaGphIG9uIGpvIG9sZW1hc3NhLiBWYWxpdHNlIHRvaW5lbiBuaW1pJzsKJGxhbmdbJ3RlbXBsYXRlaW1wb3J0ZWQnXSA9ICdQb2hqYSB0dW90aWluIG9ubmlzdHVuZWVzdGkgdGlldG9rYW50YWFuIGphIG9uIG55dCBhc2VubmV0dHUgayZhdW1sO3l0ZXR0JmF1bWw7diZhdW1sO2tzaS4nOwokbGFuZ1sndmlld19kZWZhdWx0X3N0eWxlc2hlZXQnXSA9ICdOJmF1bWw7eXQmYXVtbDsgb2xldHVzdHl5bGlzaXZ1IChDU1MpJzsKJGxhbmdbJ2ZpbGVuYW1lJ10gPSAnVGllZG9zdG9uaW1pJzsKJGxhbmdbJ2ltcG9ydHRlbXBsYXRlJ10gPSAnVHVvIHNpdnVwb2hqYSc7CiRsYW5nWyd0ZW1wbGF0ZV9kZWxldGVkJ10gPSAnU2l2dXBvaGphIHBvaXN0ZXR0dSBvbm5pc3R1bmVlc3RpIHRpZXRva2FubmFzdGEnOwokbGFuZ1sndXBkYXRldGVtcGxhdGVzdWNjZXNzJ10gPSAnU2l2dXBvaGphIHAmYXVtbDtpdml0ZXR0eSBvbm5pc3R1bmVlc3RpJzsKJGxhbmdbJ3VwZGF0ZXRlbXBsYXRlZmFpbHVyZSddID0gJ1NpdnVwb2hqYW4gcCZhdW1sO2l2aXR5a3Nlc3MmYXVtbDsgdGFwYWh0dWkgdmlyaGUnOwokbGFuZ1snc2V0dGluZ3NzYXZlZCddID0gJ0FzZXR1a3NldCB0YWxsZW5uZXR0dSBvbm5pc3R1bmVlc3RpJzsKJGxhbmdbJ2NhdGVnb3J5ZGVsZXRlZCddID0gJ0thdGVnb3JpYSBwb2lzdGV0dHUnOwokbGFuZ1snY2F0ZWdvcnl1cGRhdGVkJ10gPSAnS2F0ZWdvcmlhIHAmYXVtbDtpdml0ZXR0eSc7CiRsYW5nWydjYXRlZ29yeWFkZGVkJ10gPSAnS2F0ZWdvcmlhIGxpcyZhdW1sO3R0eSc7CiRsYW5nWydldmVudGRlbGV0ZWQnXSA9ICdUYXBhaHR1bWEgcG9pc3RldHR1JzsKJGxhbmdbJ2V2ZW50dXBkYXRlZCddID0gJ1RhcGFodHVtYSBwJmF1bWw7aXZpdGV0dHknOwokbGFuZ1snZGVmYXVsdF9wYWdlX2Vycm9yJ10gPSAnVmlyaGU6IFNpbnVuIHQmYXVtbDt5dHl5IGFzZXR0YWEgb2xldHVzc2l2dSwgam90dGEgdm9pdCBrJmF1bWw7eXR0JmF1bWw7JmF1bWw7IGthbGVudGVyaWEgc2lldmllbiBVUkwtb3NvaXR0ZWlkZW4gb2xsZXNzYSBwJmF1bWw7JmF1bWw7bGwmYXVtbDsuIE1lbmUga2FsZW50ZXJpbiBhc2V0dWtzaWluIGphIHZhbGl0c2Ugb2xldHVzc2l2dS4nOwokbGFuZ1sndGltZV9hdCddID0gJ2tsbyc7CiRsYW5nWyd0eXBlJ10gPSAnVHl5cHBpJzsKJGxhbmdbJ25hbWUnXSA9ICdOaW1pJzsKJGxhbmdbJ29yZGVyJ10gPSAnSiZhdW1sO3JqZXN0eXMnOwokbGFuZ1snZmllbGRhZGRlZCddID0gJ0tlbnR0JmF1bWw7IGxpcyZhdW1sO3R0eSBvbm5pc3R1bmVlc3RpJzsKJGxhbmdbJ2ZpZWxkZGVsZXRlZCddID0gJ0tlbnR0JmF1bWw7IHBvaXN0ZXR0dSc7CiRsYW5nWydmaWVsZHMnXSA9ICdNdWthdXRldHV0IGtlbnQmYXVtbDt0JzsKJGxhbmdbJ3RleHRmaWVsZCddID0gJ1Rla3N0aWtlbnR0JmF1bWw7JzsKJGxhbmdbJ3VwbG9hZGZpZWxkJ10gPSAnVGllZG9zdG9ubGF0YXVza2VudHQmYXVtbDsnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICc8cD5DYWxlbmRhciBpcyBhIG1vZHVsZSBmb3IgZGlzcGxheWluZyBldmVudHMgb24geW91ciBwYWdlLiBXaGVuIHRoZQ0KCQltb2R1bGUgaXMgaW5zdGFsbGVkLCBhIENhbGVuZGFyIGFkbWluIHBhZ2UgaXMgYWRkZWQgdG8gdGhlIGNvbnRlbnQgbWVudQ0KCQl0aGF0IHdpbGwgYWxsb3cgeW91IHRvIG1hbmFnZSB5b3VyIGV2ZW50cy48L3A+JzsKJGxhbmdbJ2RlZmF1bHRjYWxlbmRhcnBhZ2UnXSA9ICdLYWxlbnRlcmluIHNpcyZhdW1sO2x0JmF1bWw7diZhdW1sOyBvbGV0dXNzaXZ1LiBUJmF1bWw7bSZhdW1sO24gc2l2dW4gdHVsZWUgc2lzJmF1bWw7bHQmYXVtbDsmYXVtbDsgU21hcnR5LXRhZ2ksIGpva2Ega3V0c3V1IGthbGVudGVyaWEuIFQmYXVtbDtsbGFpbmVuIHZhYWRpdGFhbiwgam9zIGsmYXVtbDt5dCZhdW1sO3Qga2F1bmlzdGV0dHVqYSBVUkxlamEuJzsKJGxhbmdbJ3VwbG9hZGRpcmVjdG9yeSddID0gJ0hha2VtaXN0byBwYWx2ZWxpbWVsbGUgc2lpcnJldHlpbGxlIHRpZWRvc3RvaWxsZSc7CiRsYW5nWyd1cGxvYWRmaWxldHlwZXMnXSA9ICdTYWxsaXR1dCB0aWVkb3N0b3R5eXBpdCc7CiRsYW5nWyd1cGxvYWR1bmlxdWUnXSA9ICdWYXJtaXN0YSB1bmlpa2l0IHRpZWRvc3RvbmltZXQnOwokbGFuZ1sndGh1bWJfd2lkdGgnXSA9ICdQaWVub2lza3V2YW4gbGV2ZXlzJzsKJGxhbmdbJ3RodW1iX2hlaWdodCddID0gJ1BpZW5vaXNrdXZhbiBrb3JrZXVzJzsKJGxhbmdbJ2xhcmdlX3dpZHRoJ10gPSAnVCZhdW1sO3lzaWtva29pc2VuIGt1dmFuIGxldmV5cyc7CiRsYW5nWydsYXJnZV9oZWlnaHQnXSA9ICdUJmF1bWw7eXNpa29rb2lzZW4ga3V2YW4ga29ya2V1cyc7CiRsYW5nWydjYWxfcmVjdXJfcGVyaW9kJ10gPSAnVG9pc3R1dSc7CiRsYW5nWydjYWxfcmVjdXJfdW50aWwnXSA9ICdUb2lzdHV1IGt1bm5lcyc7CiRsYW5nWydoZWxwX3RlbXBsYXRlJ10gPSAnPHA+PGI+UHJpbnQgQXV0aG9yIE5hbWU6PC9iPjwvcD4NCjxjb2RlPkF1dGhvcjogeyRldmVudC5hdXRob3JuYW1lfTwvY29kZT4NCic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjE0NzQ3Nzc4MzkuMTM2MjA3OTQ2Ni4xMzYyMDc5NDY2LjEzNjIwNzk0NjYuMSc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTM2MjA3OTQ2Ni4xLjEudXRtY2NuPShkaXJlY3QpfHV0bWNzcj0oZGlyZWN0KXx1dG1jbWQ9KG5vbmUpJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2RheXZpZXcnXSA9ICdWdWUgam91cic7CiRsYW5nWydlZGl0J10gPSAnRWRpdGVyJzsKJGxhbmdbJ2Vycm9yX2ZldGNoaW5nX2V2ZW50cyddID0gJ0FpZS4uLiBxdWVscXVlIGNob3NlIGVzdCBhcnJpdsOpIHBlbmRhbnQgbFwnw6ljaGFuZ2UgYXZlYyBsZSBzZXJ2ZXVyLCB2ZXVpbGxleiByw6llc3NheWVyJzsKJGxhbmdbJ25vcmVzdWx0cyddID0gJ0TDqXNvbMOpLCBhdWN1biDDqXbDqW5lbWVudCBuZSBjb3JyZXNwb25kIMOgIHZvcyBjcml0w6hyZXMnOwokbGFuZ1snaGVscF9maW5kX3doZW4nXSA9ICdMZXMgw6l2w6luZW1lbnRzIHBhc3PDqXMgZXQgZnV0dXJzIHNvbnQgdG91am91cnMgcmVsYXRpZnMgw6AgbGEgZGF0ZSBhY3R1ZWxsZSc7CiRsYW5nWydyZW9yZGVyJ10gPSAnUsOpb3Jkb25uZXInOwokbGFuZ1snZGZsdF9jb2xvcnMnXSA9ICdDb3VsZXVycyBwYXIgZMOpZmF1dCc7CiRsYW5nWydlZGl0X2NhdGVnb3J5J10gPSAnRWRpdGVyIGxhIGNhdMOpZ29yaWUnOwokbGFuZ1snZmdjb2xvciddID0gJ0NvdWxldXIgZGUgcHJlbWllciBwbGFuJzsKJGxhbmdbJ2JnY29sb3InXSA9ICdDb3VsZXVyIGRlIGZvbmQnOwokbGFuZ1snaGVscF9maW5kX3Nob3djaGlsZHJlbiddID0gJ0luZGlxdWUgc2kgZGVzIMOpdsOpbmVtZW50cyBlbmZhbnRzIGRvaXZlbnQgw6p0cmUgaW5jbHVzIGRhbnMgbGVzIHLDqXN1bHRhdHMgZGUgcmVjaGVyY2hlJzsKJGxhbmdbJ2hlbHBfZmluZF9ldmVudF9rZXl3b3JkJ10gPSAnRW50cmV6IHVuIG91IHBsdXNpZXVycyBtb3RzLWNsw6kgw6AgcmVjaGVyY2hlci4gTGEgcmVjaGVyY2hlIHN1ciBsZXMgbW90cyBjb3JyZXNwb25kYW50IHNlcmEgZWZmZWN0dcOpZSBkYW5zIGxlcyBjaGFtcHMgdGl0cmUsIHNvbW1haXJlIGV0IGTDqXRhaWwgZGUgbFwnw6l2w6luZW1lbnQnOwokbGFuZ1snaW5mb19maW5kX3Jlc3VsdHMnXSA9ICdMZXMgMTAgcHJlbWnDqHJlcyBvY2N1cmVuY2VzIGRlIHZvdHJlIHJlcXXDqnRlIHNvbnQgYWZmaWNow6lzIGNpLWRlc3NvdXMuPGJyLz5DbGlxdWVyIHN1ciBsZSB0aXRyZSBkZSBsXCfDqXbDqW5lbWVudCB2b3VzIHBlcm1ldCBkZSBsXCfDqWRpdGVyLjxici8+Q2xpcXVlciBzdXIgbFwnaWPDtG5lIHZ1ZSBwb3VyIGTDqXBsYWNlciBsZSBjYWxlbmRyaWVyIHN1ciBsYSBkYXRlIGFwcHJveGltYXRpdmUgZGUgbFwnw6l2w6luZW1lbnQgPGVtPihkw6lwZW5kIGRlIGxhIHZ1ZSB1dGlsaXPDqWUpPC9lbT4nOwokbGFuZ1snZ290b19kYXRlJ10gPSAnQWxsZXIgw6AgY2V0dGUgZGF0ZSc7CiRsYW5nWydpbmZvX2ZpbmRfZXZlbnRzJ10gPSAnUmVjaGVyY2hlciBsZXMgw6l2w6luZW1lbnRzIGNvcnJlc3BvbmRhbnQuIEp1c3F1XCfDoCAxMCBvY2N1cmVuY2VzIHBldXZlbnQgw6p0cmUgYWZmaWNow6llcy4nOwokbGFuZ1sncmVzdWx0cyddID0gJ1LDqXN1bHRhdHMnOwokbGFuZ1sna2V5d29yZHMnXSA9ICdNb3RzLWNsw6knOwokbGFuZ1snZmluZF9zaG93Y2hpbGRyZW4nXSA9ICdNb250cmVyIGxlcyBlbmZhbnRzJzsKJGxhbmdbJ2FueSddID0gJ1RvdXMnOwokbGFuZ1sncGFzdCddID0gJ1Bhc3PDqXMnOwokbGFuZ1snZnV0dXJlJ10gPSAnRnV0dXJzJzsKJGxhbmdbJ2ZpbmRfd2hlbiddID0gJ1F1YW5kID8nOwokbGFuZ1snZmluZF9wYXJlbnRzb25seSddID0gJ1VuaXF1ZW1lbnQgbGVzIHBhcmVudHMnOwokbGFuZ1snZmluZCddID0gJ1Ryb3V2ZXIuLi4nOwokbGFuZ1snZWRpdHBhcmVudCddID0gJ0VkaXRlciBsZSBwYXJlbnQnOwokbGFuZ1snaGVscF9ldmVudHN0YWInXSA9ICc8cD5MXCdvbmdsZXQgZGVzIMOpdsOpbmVtZW50cyBmb3Vybml0IHVuIG1veWVuIHNpbXBsZSBkZSBwYXJjb3VyaXIgbGVzIMOpdsOpbmVtZW50cyBwYXIgZGF0ZS4gTGEgZGF0ZSBzw6lsZWN0aW9ubsOpZSBlc3Qgc2F1dsOpZSA8ZW0+KGRhbnMgdW4gY29va2llKTwvZW0+IHBlbmRhbnQgZGV1eCBqb3Vycy4gQ2V0dGUgdnVlIHBlcm1ldCDDqWdhbGVtZW50IGxcJ8OpZGl0aW9uIGV0IGxhIHN1cHByZXNzaW9uLjwvcD48YnIvPjxwPkdsaXNzZXItZMOpcG9zZXIgdW4gw6l2w6luZW1lbnQgZGFucyBsYSB2dWUgbWVuc3VlbGxlIHZhIG1vZGlmaWVyIGxhIGRhdGUgZGUgZMOpcGFydCA8ZW0+KG1haXMgcGFzIGxhIGR1csOpZSk8L2VtPi4gUmVkaW1lbnNpb25uZXIgbFwnw6l2w6luZW1lbnQgdmEgbW9kaWZpZXIgc2EgZGF0ZSBkZSBmaW4uPC9wPjxici8+PHA+RGFucyBsZXMgdnVlcyBoZWJkb21hZGFpcmUgZXQgam91cm5hbGnDqHJlLCBsYSBkYXRlIGRlIGTDqXBhcnQvZHVyw6llIGRcJ3VuIMOpdsOpbmVtZW50IHBldXQtw6p0cmUgbW9kaWZpw6llIGF2ZWMgdW4gZ2xpc3Nlci1kw6lwb3Nlci4gTGEgZGF0ZSBkZSBmaW4vZHVyw6llIGRlIGxcJ8OpdsOpbmVtZW50IHBldXQtw6p0cmUgbW9kaWZpw6llIGVuIGxlIHJlZGltZW5zaW9ubmFudC4gRGUgcGx1cywgY2VzIHZ1ZXMgc3VwcG9ydGVudCBsYSBjYXBhY2l0w6kgZGUgbW9kaWZpZXIgcmFwaWRlbWVudCB1biDDqXbDqW5lbWVudCBlbiB1biDDqXbDqW5lbWVudCBkXCd1bmUgam91cm7DqWUgY29tcGzDqHRlIGF2ZWMgdW4gZ2xpc3Nlci1kw6lwb3NlciBkYW5zIGxhIHpvbmUgIkpvdXIgZW50aWVyIiBzaXR1w6llIGVuIGhhdXQuPC9wPjxici8+PHA+QXVjdW5lIHbDqXJpZmljYXRpb24gZGUgY29uZmxpdCBuXCdlc3QgZWZmZWN0dcOpZSBsb3JzIGRlcyBnbGlzc2VyLWTDqXBvc2VyIGRcJ8OpdsOpbmVtZW50LjwvcD4nOwokbGFuZ1sncHJvbXB0X3JlbW92ZWZyb21wYXJlbnQnXSA9ICdTdXBwcmltZXIgY2V0IGV2ZW5lbWVudCBkZSBzb24gcGFyZW50JzsKJGxhbmdbJ2luZm9fcmVtb3ZlZnJvbXBhcmVudCddID0gJ1NpIHNlbGVjdGlvbm7DqSwgY2V0IMOpdsOpbmVtZW50IG5lIHNlcmEgcGFzIGFmZmVjdMOpIHBhciBsZXMgY2hhbmdlbWVudHMgZGUgc29uIHBhcmVudC4nOwokbGFuZ1snaW5mb19lZGl0X3BhcmVudGV2ZW50J10gPSAnPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBDZXQgw6l2w6luZW1lbnQgZXN0IHLDqWN1cnJlbnQuIENvY2hlciBsYSBjYXNlIDxlbT5NZXR0cmUgw6Agam91ciBsZXMgc291cy3DqXbDqW5lbWVudHMgYXNzb2Npw6lzPC9lbT4gcsOpcGVyY3V0ZXJhIGxlcyBtb2RpZmljYXRpb25zIHN1ciB0b3V0ZXMgbGVzIG9jY3VyZW5jZXMuJzsKJGxhbmdbJ2luZm9fZWRpdF9jaGlsZGV2ZW50J10gPSAnPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBDZXQgw6l2w6luZW1lbnQgZXN0IHVuZSBvY2N1cmVuY2UgZFwndW4gYXV0cmUuIExlcyBjaGFuZ2VtZW50cyBvcMOpcsOpcyBpY2kgblwnYWZmZWN0ZXJvbnMgcXVlIGx1aS4gUG91ciBtZXR0cmUgw6Agam91ciB0b3V0ZXMgbGVzIG9jY3VyYW5jZXMgdm91cyBkZXZyZXogbW9kaWZpZXIgbFwnw6l2w6luZW1lbnQgcGFyZW50Lic7CiRsYW5nWydhbGxkYXlfZXZlbnQnXSA9ICdDXCdlc3QgdW4gZXZlbmVtZW50IHN1ciBsYSBqb3VybsOpZSc7CiRsYW5nWydub3RlJ10gPSAnTm90ZSc7CiRsYW5nWyd0aXRsZV9wYXJlbnRfZXZlbnQnXSA9ICdDZXQgZXZlbmVtZW50IGVzdCByw6ljdXJhbnQgZXQgY29udGllbnQgZGVzIGVuZmFudHMnOwokbGFuZ1snc3RhcnQnXSA9ICdEZWJ1dCc7CiRsYW5nWydlbmQnXSA9ICdGaW4nOwokbGFuZ1snZXZlbnRfYWN0aW9uJ10gPSAnQWN0aW9uJzsKJGxhbmdbJ2luZm9fZXZlbnRfYWN0aW9uJ10gPSAnQ2hvaXNpc3NleiB1bmUgYWN0aW9uIMOgIGZhaXJlIHN1ciBjZXQgZXZlbmVtZW50Ljxici8+TW9kaWZpZXIgY2V0IGV2ZW5lbWVudCByZWRpcmlnZXJhIHZlcnMgdW5lIG5vdXZlbGxlIHBhZ2UuJzsKJGxhbmdbJ2Vycm9yX2RlbGV0ZXBhcmVudGV2ZW50J10gPSAnVm91cyBuZSBwb3V2ZXogcGFzIHN1cHByaW1lciB1biDDqXbDqW5lbWVudCBwYXJlbnQuJzsKJGxhbmdbJ2NoaWxkJ10gPSAnRW5mYW50JzsKJGxhbmdbJ3JlcGVhdHMnXSA9ICdyw6ljdXJyZW5jZXMnOwokbGFuZ1snZXJyb3JfZXZlbnRub3Rmb3VuZCddID0gJ0V2w6luZW1lbnQgbm9uIHRyb3V2w6knOwokbGFuZ1snZXJyb3JfdW5rbm93biddID0gJ0VycmV1ciBpbmNvbm51ZSc7CiRsYW5nWydpbmZvX2NhbF9maWx0ZXJfYnknXSA9ICdTaSBvbiByZWNoZXJjaGUgPGVtPihmaWx0cmUpPC9lbT4gcGFyIG1vdHMgZGFucyBsZSB0aXRyZSwgbGUgZMOpZmlsZW1lbnQgZGUgbGEgZGF0ZSBuXCdlc3QgcGFzIGRpc3BvbmlibGUnOwokbGFuZ1snbXNnX25vZGF0ZXMnXSA9ICdSZWNoZXJjaGUgZHUgdGl0cmUgYXBwbGlxdcOpZSc7CiRsYW5nWyd0aXRsZV9yZWN1cnJpbmdfZXZlbnQnXSA9ICdDXCdlc3QgdW4gw6l2w6luZW1lbnQgcsOpY3VycmVudCBhdmVjIGVuZmFudHMnOwokbGFuZ1sndGl0bGVfY2hpbGRfZXZlbnQnXSA9ICdDXCdlc3QgdW4gZW5mYW50IGRcJ3VuIMOpdsOpbmVtZW50IHBhcmVudCByw6ljdXJyZW50JzsKJGxhbmdbJ2Vycm9yX3NvbWVkZWxldGVkJ10gPSAnQ2VydGFpbnMgw6l2w6luZW1lbnRzIG9udCDDqXTDqSBzdXBwcmltw6lzLiBDZXBlbmRhbnQsIGRcJ2F1dHJlcyBuZSBsXCdvbnQgcGFzIMOpdMOpLCDDoCBjYXVzZSBkZSBwZXJtaXNzaW9ucyc7CiRsYW5nWydlcnJvcl9ub25lZGVsZXRlZCddID0gJ8OAIGNhdXNlIGRlIHBlcm1pc3Npb25zIG91IGRcJ2F1dHJlcyBlcnJldXJzLCBhdWN1biBkZXMgw6l2w6luZW1lbnRzIHPDqWxlY3Rpb25uw6lzIG5cJ29udCDDqXTDqSBzdXBwcmltw6lzJzsKJGxhbmdbJ2Vycm9yX2RlbGV0ZWZhaWxlZCddID0gJ0xhIHN1cHByZXNzaW9uIGRcJ8OpdsOpbmVtZW50IGEgw6ljaG91w6knOwokbGFuZ1snZmlsZWF0dGFjaG1lbnQnXSA9ICdGaWNoaWVyIGpvaW50JzsKJGxhbmdbJ3Byb21wdF9nZW5lcmFsX3NldHRpbmdzJ10gPSAnUGFyYW3DqHRyZXMgZ2xvYmF1eCc7CiRsYW5nWydwcm9tcHRfZWRpdGluZ19zZXR0aW5ncyddID0gJ1BhcmFtw6h0cmVzIGRcJ8OpZGl0aW9uIGRcJ8OpdsOpbmVtZW50cyc7CiRsYW5nWydwcm9tcHRfZmVlZGl0X3NldHRpbmdzJ10gPSAnUGFyYW3DqHRyZXMgZFwnw6lkaXRpb24gZGUgbGEgcGFydGllIHB1YmxpcXVlIGR1IHNpdGUgKGZyb250ZW5kKSc7CiRsYW5nWydwcmV2X21vbnRoJ10gPSAnQWxsZXIgYXUgbW9pcyBwcsOpY8OpZGVudCc7CiRsYW5nWyduZXh0X21vbnRoJ10gPSAnQWxsZXIgYXUgbW9pcyBzdWl2YW50JzsKJGxhbmdbJ2luZm9fY3VzdG9tZmllbGRzX3RhYiddID0gJ0xlcyBjaGFtcHMgcGVyc29ubmFsaXPDqXMgcGV1dmVudCDDqnRyZSByw6lvcmRvbm7DqXMgZW4gZ2xpc3NhbnQgLyBkw6lwb3NhbnQgbGVzIGxpZ25lcy4gTGEgcmVjaGVyY2hlIG5cJ2VzdCBwb3NzaWJsZSBxdWUgZGFucyBsZXMgY2hhbXBzIHRleHRlLCBldCBzZXVsZXMgbGVzIHpvbmVzIGRlIHRleHRlIHBldXZlbnQgYXZvaXIgZGVzIGNoYW1wcyBXWVNJV1lHIGxpw6lzLiA8c3Ryb25nIHN0eWxlPSJjb2xvcjogcmVkOyI+Tm90ZSA6PC9zdHJvbmc+IExlcyBjaGFtcHMgV1lTSVdZRyBuZSBzZXJvbnQgcGFzIGFmZmljaMOpcyBwb3VyIGxlcyB6b25lcyBkZSB0ZXh0ZSBzdXIgbGEgcGFydGllIHB1YmxpcXVlIGR1IHNpdGUgKGZyb250ZW5kKS4nOwokbGFuZ1snbXNnX2NhdGVnb3JpZXNfdXBkYXRlZCddID0gJ0NhdMOpZ29yaWVzIG1pc2VzIMOgIGpvdXInOwokbGFuZ1snbXNnX2ZpZWxkc3VwZGF0ZWQnXSA9ICdEw6lmaW5pdGlvbnMgZGUgY2hhbXAgbWlzZXMgw6Agam91cic7CiRsYW5nWyd3eXNpd3lnJ10gPSAnV1lTSVdZRyc7CiRsYW5nWydpbmZvX3Jlb3JkZXJfY2F0ZWdvcmllcyddID0gJ0xcJ29yZHJlIGRlcyBjYXTDqWdvcmllcyBwZXV0LcOqdHJlIGTDqWZpbmkgZW4gZ2xpc3NhbnQgLyBkw6lwb3NhbnQgbGVzIGxpZ25lcyc7CiRsYW5nWydlcnJvcl9jYXRlZ29yeW5hbWVyb3cnXSA9ICdMZSBub20gYSDDqXTDqSBlZmZhY8OpIHBvdXIgdW5lIGNhdMOpZ29yaWUgdmFsaWRlIMOgIGxhIGxpZ25lJm5ic3A7Oic7CiRsYW5nWydjb25maXJtX25vY2F0ZWdvcmllcyddID0gJ05vdXMgblwnYXZvbnMgZMOpdGVjdMOpIGF1Y3VuZSBjYXTDqWdvcmllIHZhbGlkZS4gw4p0ZXMtdm91cyBzw7tyIHF1ZSBjXCdlc3QgYmllbiBjZSBxdWUgdm91cyB2b3VsZXogZmFpcmUgPyc7CiRsYW5nWydhZGRfZmllbGQnXSA9ICdBam91dGVyIHVuIGNoYW1wJzsKJGxhbmdbJ2FkZF9jYXRlZ29yeSddID0gJ0Fqb3V0ZXIgdW5lIGNhdMOpZ29yaWUnOwokbGFuZ1sncHJvbXB0X2ZpcnN0ZGF5b2Z3ZWVrJ10gPSAnUHJlbWllciBqb3VyIGRlIGxhIHNlbWFpbmUnOwokbGFuZ1snZWRpdF9ldmVudCddID0gJ8OJZGl0ZXIgbFwnw6l2w6luZW1lbnQnOwokbGFuZ1snZWRpdF9wYXJlbnRfZXZlbnQnXSA9ICfDiWRpdGVyIGxcJ8OpdsOpbmVtZW50IHBhcmVudCc7CiRsYW5nWydzZWxlY3RfcGVyaW9kJ10gPSAnUMOpcmlvZGUnOwokbGFuZ1snc2hvd19maWx0ZXInXSA9ICdNb250cmVyIGxlIGZpbHRyZSc7CiRsYW5nWydzaG93X2ZpbHRlcl9hcHBsaWVkJ10gPSAnTW9udHJlciBsZSBmaWx0cmUgPGVtPihhcHBsaXF1w6kpPC9lbT4nOwokbGFuZ1sncmVzZXQnXSA9ICdSZW1ldHRyZSDDoCB6w6lybyc7CiRsYW5nWydjYWxfY3VycmVudCddID0gJ0NldHRlIHDDqXJpb2RlJzsKJGxhbmdbJ2NhbF9mcm9tJ10gPSAnRGUnOwokbGFuZ1snZXJyb3JfZmV1X2xvZ2dlZGluJ10gPSAnQ2V0IHV0aWxpc2F0ZXVyIG5cJ2VzdCBwYXMgY29ubmVjdMOpIMOgIEZFVS4gQWpvdXRlciBvdSBtb2RpZmllciBsZXMgw6l2w6luZW1lbnRzIG5cJ2VzdCBwYXMgcGVybWlzLic7CiRsYW5nWydwcm9tcHRfZnJpZW5kbHluYW1lJ10gPSAnTm9tICJjb252aXZpYWwiIHBvdXIgY2UgbW9kdWxlIGRhbnMgbGEgbmF2aWdhdGlvbiBkZSBsXCdhZG1pbmlzdHJhdGlvbic7CiRsYW5nWydpbmZvX2ZyaWVuZGx5bmFtZSddID0gJ05vdGUgOiBJbCBzZSBwZXV0IHF1ZSB2b3VzIGF5ZXogw6AgdmlkZXIgbGUgY2FjaGUgZHUgc2l0ZSBwb3VyIHF1ZSBjZXR0ZSBwcsOpZsOpcmVuY2UgcHJlbm5lIGVmZmV0LiBTaSBhdWN1bmUgdmFsZXVyIG5cJ2VzdCBmb3VybmllLCB1bmUgdmFsZXVyIHBhciBkw6lmYXV0IHNlcmEgdXRpbGlzw6llLic7CiRsYW5nWyd1c2Vfd3lzaXd5ZyddID0gJ1V0aWxpc2UgbGUgV3lzaXd5Zyc7CiRsYW5nWydlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnXSA9ICdQYXJhbcOodHJlcyBpbnN1ZmZpc2FudHMnOwokbGFuZ1snY29sdW1uX2RlbGltaXRlciddID0gJ1PDqXBhcmF0ZXVyIGRlIGNvbG9ubmVzIGRhbnMgbGUgZmljaGllciBpbXBvcnTDqSc7CiRsYW5nWydpbXBvcnRfY29tcGxldGVkJ10gPSAnSW1wb3J0YXRpb24gdGVybWluw6knOwokbGFuZ1snbnVtX2ltcG9ydGVkJ10gPSAnTm9tYnJlIGRcJ8OpdsOobmVtZW50cyBjcsOpw6lzOiAlZCc7CiRsYW5nWydpbXBvcnRfbGluZXMnXSA9ICdOb21icmUgZGUgbGlnbmVzIHRyYWl0w6llcyBkdSBmaWNoaWVyOiAlZCc7CiRsYW5nWydlcnJvcnMnXSA9ICdFcnJldXJzJzsKJGxhbmdbJ2Vycm9yX2NzdmZpcnN0bGluZWludmFsaWRmaWVsZCddID0gJ0NoYW1wIDogJXMgbm9uIHJlY29ubnUsIGV0IG5cJ2VzdCBwYXMgdW4gY2hhbXAgcGVyc29ubmFsaXPDqS4nOwokbGFuZ1snaW5mb19jc3ZfZm9ybWF0J10gPSAnPGg0PkNTViBGaWxlIEZvcm1hdCBJbmZvcm1hdGlvbi48L2g0Pg0KPHVsPg0KICA8bGk+R2VuZXJhbCBJbmZvcm1hdGlvbjoNCiAgIDx1bD4NCiAgICAgPGxpPlRoZSBmaWxlIG11c3QgYmUgYW4gQVNDSUkgZmlsZSB3aXRoIHVuaXgsIGRvcywgb3IgKGhvcGVmdWxseSkgbWFjIGxpbmUgZW5kaW5ncy48L2xpPg0KICAgICA8bGk+Q29tbWVudHMgc3RhcnQgd2l0aCAvLyBhbnkgY2hhcmFjdGVycyBhZnRlciB0aGlzIG9uIGEgbGluZSB3aWxsIGJlIGlnbm9yZWQgKGluY2x1ZGluZyB3aXRoaW4gcXVvdGVzLjwvbGk+DQogICAgIDxsaT5FbXB0eSBsaW5lcyBhcmUgaWdub3JlLmQ8L2xpPg0KICAgICA8bGk+RmllbGRzIGFyZSBkZWxpbWl0ZWQgd2l0aCBhICwgaG93ZXZlciBhICwgY2FuIGJlIHVzZWQgYXMgYSB2YWx1ZSB3aXRoaW4gYSBmaWVsZCBpZiB0aGUgZmllbGQgaXMgZGVsaW1pdGVkIGJ5IGRvdWJsZSBxdW90ZXMuPC9saT4NCiAgICAgPGxpPlJvd3MgYXJlIGRlbGltaXRlZCBieSBuZXdsaW5lIGNoYXJzIChhcyBhYm92ZSkuPC9saT4NCiAgIDwvdWw+DQogIDwvbGk+DQogIDxsaT5UaGUgRmllbGQgTWFwOg0KICAgPHVsPg0KICAgIDxsaT5UaGUgZmlyc3QgbGluZSBkZWZpbmVzIHRoZSBvcmRlciBvZiB0aGUgZmllbGRzLCBhbmQgd2hhdCAiY3VzdG9tIGZpZWxkcyIgYXJlIGRlZmluZWQgaW4gdGhlIGZpbGUuIERhdGEgY2FuIHN0YXJ0IG9uIHRoZSBzZWNvbmQgbm9uLWVtcHR5IGxpbmUsIG9yIGFmdGVyLjwvbGk+DQogICAgPGxpPlRoZXJlcyBhcmUgdGhlIHJlcXVpcmVkIGZpZWxkczogc3RhcnQgdGltZSwgZW5kIHRpbWUsIHRpdGxlLCBzdW1tYXJ5LCBhbmQgZGVzY3JpcHRpb24uICBXaXRob3V0IGRlZmluaW5nIHRoZXNlIGZpZWxkcyBpbiB0aGUgaGVhZGVyIHRoZSBpbXBvcnQgd2lsbCBub3QgcHJvY2VlZC4gIFJlcXVpcmVkIGZpZWxkIG5hbWVzIGFyZSBub3QgY2FzZSBzZW5zaXRpdmUuPC9saT4NCiAgICA8bGk+VGhlcmUgaXMgb25lIG9wdGlvbmFsIGNvbHVtbjo6ICJjYXRlZ29yeSIuICBJZiBzcGVjaWZpZWQgaXQgY2FuIGNvbnRhaW4gYSA7IHNlcGFyYXRlZCBsaXN0IG9mIGNhdGVnb3J5IG5hbWVzIHRoYXQgdGhlIGV2ZW50IHdpbGwgYmVsb25nIHRvLjwvbGk+DQogICA8L3VsPg0KICA8L2xpPg0KICA8bGk+VGhlIERhdGEgUm93czoNCiAgIDx1bD4NCiAgICA8bGk+VGhlIHN0YXJ0IHRpbWUsIHRpdGxlLCBhbmQgZGVzY3JpcHRpb24gZmllbGRzIG11c3Qgbm90IGJlIGVtcHR5LjwvbGk+DQo8bGk+U3RhcnQgYW5kIEVuZCBUaW1lczo8L2xpPg0KICA8dWw+DQogICA8bGk+U3RhcnQgdGltZSBwcm9jZXNzaW5nIGlzIGZsZXhpYmxlLiAgWW91IGNhbiBzcGVjaWZ5IGVpdGhlciAgWVlZWS1NTS1ERCBISDpNTSBmb3JtYXQsIG9yIG1hbnkgZm9ybWF0cyBhcyBkZWZpbmVkIGJ5IHRoZSBzdHJ0b3RpbWUgZnVuY3Rpb24sIGluY2x1ZGluZyByZWxhdGl2ZSB0aW1lcy4gIElmIGEgcmVsYXRpdmUgdGltZSBpcyBzdXBwbGllZCBpdCBpcyBhc3N1bWVkIHRvIGJlIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHRpbWUuPC9saT4NCiAgIDxsaT5FbmQgdGltZSBwcm9jZXNzaW5nIGlzIGZsZXhpYmxlLCBhbmQgbWF5IGJlIGVtcHR5LiAgWW91IGNhbiBzcGVjaWZ5IGVpdGhlciBhbiBhYnNvbHV0ZSB0aW1lIChpbiB0aGUgc2FtZSBmb3JtYXQgYXMgdGhlIHN0YXJ0IHRpbWUpIG9yIGEgcmVsYXRpdmUgdGltZS4gIElmIGEgcmVsYXRpdmUgdGltZSBpcyBzcGVjaWZpZWQsIGl0IGlzIGFzc3VtZWQgdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IHRpbWUuICAgaS5lOiAiKzQgaG91cnMiIHdvdWxkIGluZGljYXRlIDQgaG91cnMgZnJvbSB0aGUgc3RhcnQgdGltZSBjb2x1bW4uPC9saT4NCiAgIDxsaT5JZiB0aGUgZW5kIHRpbWUgY29sdW1lIGlzIHRoZSBzdHJpbmcgIkFsbCBkYXkiIDxlbT4oY2FzZSBpbnNlbnNpdGl2ZSk8L2VtPiBpdCB3aWxsIGFzc3VtZSBhbiBhbGwgZGF5IGV2ZW50IGZyb20gdGhlIHN0YXJ0IHRpbWUuPC9saT4NCiAgIDxsaT5JZiB0aGUgZW5kIHRpbWUgY29sdW1uIGlzIGVtcHR5LCB0aGVuIG5vIGVuZCB0aW1lIHZhbHVlIHdpbGwgYmUgY3JlYXRlZCBpbiB0aGUgZGF0YWJhc2UuPC9saT4NCiAgPC91bD4NCjwvbGk+DQo8bGk+Q2F0ZWdvcmllcw0KICA8dWw+DQogICA8bGk+SWYgc3BlY2lmaWVkLCB0aGUgY2F0ZWdvcnkgY29sdW1uIGNhbiBjb250YWluIGEgbGlzdCAoc2VwYXJhdGVkIGJ5IDspIG9mIGNhdGVnb3J5IG5hbWVzIGZvciB3aGljaCB0aGUgZXZlbnQgc2hvdWxkIGJlbG9uZy48L2xpPg0KICAgPGxpPkNhdGVnb3J5IG5hbWVzIGFyZSBjYXNlIHNlbnNpdGl2ZS48L2xpPg0KICAgPGxpPkNhdGVnb3JpZXMgYXJlIG5vdCBjcmVhdGVkIGlmIHRoZXkgZG8gbm90IGV4aXN0LjwvbGk+DQogIDwvdWw+DQo8L2xpPg0KPGxpPkN1c3RvbSBGaWVsZHM6DQogIDx1bD4NCiAgICA8bGk+Q3VzdG9tIGZpZWxkIG5hbWVzIChldmVuIGluIHRoZSBmaXJzdCBsaW5lIHRoYXQgZGV0ZXJtaW5lcyB0aGUgZmllbGQgbWFwcGluZykgYXJlIGNhc2Ugc2Vuc2l0aXZlLjwvbGk+DQogICAgPGxpPkN1dG9tIGZpZWxkcyBhcmUgbm90IGNyZWF0ZWQgaWYgc3BlY2lmaWVkIGluIHRoZSBDU1YgZmlsZS4gIFVua25vd24gY3VzdG9tIGZpZWxkIGNvbHVtbnMgd2lsbCBiZSBpZ25vcmVkLjwvbGk+DQogICAgPGxpPkN1c3RvbSBmaWVsZHMgb2YgdHlwZSAiZmlsZSIgY2Fubm90IGJlIGltcG9ydGVkLiAgVGhlIGVudGlyZSBpbXBvcnQgb3BlcmF0aW9uIHdpbGwgZmFpbC48L2xpPg0KICA8L3VsPg0KICA8L2xpPg0KICA8L3VsPg0KPC9saT4NCjxsaT5BIHNhbXBsZSBjc3YgZmlsZSBleGlzdHMgaW4gdGhlIG1vZHVsZXMgc291cmNlIGNvZGUgZGlyZWN0b3J5LjwvbGk+DQo8L3VsPic7CiRsYW5nWydwcm9tcHRfY3N2X2ZpbGUnXSA9ICdTw6lsZWN0aW9ubmVyIGxlIGZpY2hpZXIgZFwnaW1wb3J0YXRpb24nOwokbGFuZ1snZGVsZXRlJ10gPSAnRWZmYWNlcic7CiRsYW5nWydkZmx0X3VybHByZWZpeCddID0gJ1Byw6lmaXhlIGRcJ1VSTCBwYXIgZMOpZmF1dCBwb3VyICJwcmV0dHkgVVJMUyInOwokbGFuZ1snZGZsdF9hbGxkYXlldmVudCddID0gJ0xlcyBub3V2ZWF1eCDDqXbDqW5lbWVudHMgc29udCBkZXMgw6l2w6luZW1lbnRzICJqb3VyIGVudGllciAoYWxsIGRheSkiIHBhciBkw6lmYXV0JzsKJGxhbmdbJ2RmbHRfc3RhcnR0aW1lJ10gPSAnSGV1cmUgZGUgZMOpYnV0IHBhciBkw6lmYXV0IHBvdXIgbGVzIG5vdXZlYXV4IMOpdsOpbmVtZW50cyc7CiRsYW5nWydpbmZvX2RmbHRfc3RhcnR0aW1lJ10gPSAnPGVtPihTXCdhcHBsaXF1ZSB1bmlxdWVtZW50IHNpIGxlcyBub3V2ZWF1eCDDqXbDqW5lbWVudHMgbmUgc29udCBwYXMgZGVzIMOpdsOpbmVtZW50cyAiam91ciBlbnRpZXIgLyBBbGwgRGF5Ii4pPC9lbT4nOwokbGFuZ1snc2VhcmNoX3R5cGUnXSA9ICdUeXBlIGRlIHJlY2hlcmNoZSc7CiRsYW5nWydzZWFyY2hfYW55J10gPSAncmVudm9pZSBsZSByw6lzdWx0YXQgc3VyIG5cJ2ltcG9ydGUgbGVxdWVsIGRlcyBtb3RzIHJlY2hlcmNow6lzJzsKJGxhbmdbJ3NlYXJjaF9hbGwnXSA9ICdyZW52b2llIGxlIHLDqXN1bHRhdCBkZSByZWNoZXJjaGUgc3VyIHRvdXMgbGVzIG1vdHMgcmVjaGVyY2jDqXMnOwokbGFuZ1snc2VhcmNoYWJsZSddID0gJ1V0aWxpc2FibGUgY29tbWUgY3JpdMOocmUgZGUgcmVjaGVyY2hlJzsKJGxhbmdbJ2hlbHBfcGFyYW1fZWRpdGV2ZW50dGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIHVuaXF1ZW1lbnQgcG91ciBsXCdhY3Rpb24gTWVzIMOJdsOpbmVtZW50cywgY2UgcGFyYW3DqHRyZSBwZXJtZXQgZGUgc3DDqWNpZmllciB1biBhdXRyZSBnYWJhcml0IGRcJ8OpZGl0aW9uIGRcJ8OpdsOpbmVtZW50IChpbnZvcXXDqSBsb3JzcXVlIGxcJ3V0aWxpc2F0ZXVyIGNyw6llIG91IMOpZGl0ZSB1biDDqXbDqW5lbWVudCkgcXVlIGNlbHVpIHV0aWxpc8OpIHBhciBkw6lmYXV0Lic7CiRsYW5nWydoZWxwX3BhcmFtX2VkaXRwYWdlJ10gPSAnQXBwbGljYWJsZSB1bmlxdWVtZW50IHBvdXIgbFwnYWN0aW9uIE1lcyDDiXbDqW5lbWVudHMsIGNlIHBhcmFtw6h0cmUgcGVybWV0IGRlIHNww6ljaWZpZXIgdW5lIGF1dHJlIHBhZ2UgcG91ciBsZSBmb3JtdWxhaXJlIGRcJ8OpZGl0aW9uLic7CiRsYW5nWydoZWxwX3BhcmFtX215ZXZlbnRzdGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIHVuaXF1ZW1lbnQgcG91ciBsXCdhY3Rpb24gTWVzIMOJdsOpbmVtZW50cywgY2UgcGFyYW3DqHRyZSBwZXJtZXQgZGUgc3DDqWNpZmllciB1biBhdXRyZSBnYWJhcml0IHF1ZSBjZWx1aSB1dGlsaXPDqSBwYXIgZMOpZmF1dC4nOwokbGFuZ1snY2FsX2VkaXRfZXZlbnQnXSA9ICdFZGl0ZXIgdW4gw6l2w6luZW1lbnQgZHUgY2FsZW5kcmllcic7CiRsYW5nWydlcnJvcl9kYmVycm9yJ10gPSAnRXJyZXVyIGRlIGJhc2UgZGUgZG9ubsOpZXMnOwokbGFuZ1snc3VibWl0J10gPSAnU291bWV0dHJlJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9lZGl0ZXZlbnRfdGVtcGxhdGUnXSA9ICdHYWJhcml0IHN5c3TDqG1lIHBvdXIgIkVkaXRlciB1biDDqXbDqW5lbWVudCInOwokbGFuZ1snaW5mb19zeXNkZmx0X215ZXZlbnRzX3RlbXBsYXRlJ10gPSAnR2FiYXJpdCBzeXN0w6htZSBwb3VyICJNZXMgw4l2w6luZW1lbnRzIic7CiRsYW5nWydwcm9tcHRfZmVlZGl0X2dyb3VwJ10gPSAnTGVzIG1lbWJyZXMgZGUgY2UgZ3JvdXBlIEZFVSBwZXV2ZW50IGFqb3V0ZXIgZGVzIMOpdsOpbmVtZW50cyc7CiRsYW5nWydwcm9tcHRfZmVlZGl0X3BhZ2UnXSA9ICdQYWdlIHBhciBkw6lmYXV0IHBvdXIgbGUgZm9ybXVsYWlyZSBkXCfDqWRpdGlvbiBlbiBmcm9udGVuZC4nOwokbGFuZ1snbm9uZSddID0gJ0F1Y3VuJzsKJGxhbmdbJ293bmVyJ10gPSAnUHJvcHJpw6l0YWlyZSc7CiRsYW5nWydjYWxfZWRpdGV2ZW50X3RlbXBsYXRlcyddID0gJ0dhYmFyaXRzIGRlIGZvcm11bGFpcmUgZFwnw6lkaXRpb24gZFwnw6l2w6luZW1lbnQnOwokbGFuZ1snaW5mb19lZGl0ZXZlbnRfdGVtcGxhdGVfdGFiJ10gPSAnTGEgbGlzdGUgZGVzIGdhYmFyaXRzIGRpc3BvbmlibGVzIHBvdXIgbGUgZm9ybXVsYWlyZSBkXCfDqWRpdGlvbiBkXCfDqXbDqW5lbWVudCc7CiRsYW5nWydlZGl0ZXZlbnR0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWpvdXRlci9FZGl0ZXIgdW4gZ2FiYXJpdCBkZSBmb3JtdWxhaXJlIGRcJ8OpZGl0aW9uIGRcJ8OpdsOpbmVtZW50JzsKJGxhbmdbJ2NhbF9teWV2ZW50c190ZW1wbGF0ZXMnXSA9ICdHYWJhcml0cyBkZSBsaXN0ZSBcJ01lcyDDiXbDqW5lbWVudHNcJyc7CiRsYW5nWydpbmZvX215ZXZlbnRzX3RlbXBsYXRlX3RhYiddID0gJ0xhIGxpc3RlIGRlcyBnYWJhcml0cyBkaXNwb25pYmxlcyBwb3VyIGFmZmljaGVyIHVuZSBsaXN0ZSBkXCfDqXbDqW5lbWVudHMgZFwndXRpbGlzYXRldXInOwokbGFuZ1snbXlldmVudHN0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWpvdXRlci9FZGl0ZXIgdW4gZ2FiYXJpdCBkZSByYXBwb3J0IGRlICJNZXMgRXbDqW5lbWVudHMiJzsKJGxhbmdbJ2FyZXlvdXN1cmVfcmVtb3ZlY29uZmxpY3RpbmcnXSA9ICdDZXR0ZSBhY3Rpb24gdmEgc3VwcHJpbWVyIHRvdXMgbGVzIMOpdsOpbmVtZW50cyBlbiBjb25mbGl0IGF2ZWMgZGVzIMOpdsOpbmVtZW50cyBxdWkgbmUgcGV1dmVudCBzZSBjaGV2YXVjaGVyLiDDinRlcy12b3VzIHPDu3IgZGUgdm91bG9pciBmYWlyZSDDp2EgPyc7CiRsYW5nWydmaWx0ZXJfY29uZmxpY3RpbmcnXSA9ICdGaWx0cmUgZGVzIMOpdsOpbmVtZW50cyBlbiBjb25mbGl0JzsKJGxhbmdbJ292ZXJsYXBfYWN0aW9uX3JlbW92ZSddID0gJ0VmZmFjZXIgc2lsZW5jaWV1c2VtZW50IGRlcyDDqXbDqW5lbWVudHMgZW4gY29uZmxpdCc7CiRsYW5nWydvdmVybGFwX2FjdGlvbl9lcnJvciddID0gJ0FmZmljaGUgdW5lIGVycmV1cic7CiRsYW5nWydwcm9tcHRfb3ZlcmxhcF9hY3Rpb24nXSA9ICdDZSBxdVwnaWwgZGV2cmFpdCBzZSBwYXNzZXIgcXVhbmQgdW4gY29uZmxpdCBlc3QgZMOpdGVjdMOpIMOgIGxcJ8OpZGl0aW9uIG91IMOgIGxcJ2Fqb3V0IGRcJ3VuIMOpdsOpbmVtZW50JzsKJGxhbmdbJ2Vycm9yX2V2ZW50X2NvbmZsaWN0J10gPSAnTGVzIHZhbGV1cnMgc3DDqWNpZmnDqWVzIGRlIGxcJ8OpdsOpbmVtZW50IGNoZXZhdWNoZW50IHVuIMOpdsOpbmVtZW50IGV4aXN0YW50IHF1aSBuXCdhdXRvcmlzZSBwYXMgbGUgY29uZmxpdC4nOwokbGFuZ1snY2FsX2luZm9fb3ZlcmxhcCddID0gJ1NcJ2FwcGxpcXVlIHNldWxlbWVudCBhdXggw6l2w6luZW1lbnRzIGNvbXBvcnRhbnQgdW5lIGhldXJlIGRlIGZpbiAob3UgbGVzIMOpdsOpbmVtZW50cyBkZSB0b3VzIGxlcyBqb3VycyknOwokbGFuZ1snY2FsX292ZXJsYXAnXSA9ICdBdXRvcmlzZSBsZXMgbm91dmVhdXggw6l2w6luZW1lbnRzIMOgIGNoZXZhdWNoZXIgY2VsdWktbMOgJzsKJGxhbmdbJ3Byb21wdF9vdmVybGFwX3BvbGljeSddID0gJ1BvbGl0aXF1ZSBkZSBjaGV2YXVjaGVtZW50IGRcJ8OpdsOpbmVtZW50JzsKJGxhbmdbJ3BvbGljeV9hbGwnXSA9ICdUb3VzIGxlcyDDqXbDqW5lbWVudHMgcGV1dmVudCBzZSBjaGV2YXVjaGVyJzsKJGxhbmdbJ3BvbGljeV9ub25lJ10gPSAnQXVjdW4gw6l2w6luZW1lbnQgbmUgcGV1dCBzZSBjaGV2YXVjaGVyJzsKJGxhbmdbJ3BvbGljeV9pbmRpdmlkdWFsJ10gPSAnQ2hvaXggcG91ciBjaGFxdWUgw6l2w6luZW1lbnQnOwokbGFuZ1snbGJsX2JhY2snXSA9ICdSZXRvdXInOwokbGFuZ1snbGJsX3RlbXBsYXRlcyddID0gJ0dhYmFyaXRzJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnWm9uZSBkZSBUZXh0ZSAoVGV4dGFyZWEpJzsKJGxhbmdbJ2Vycm9yX2NhbGVuZGFyX2luY29tcGF0aWJsZSddID0gJ05vdXMgYXZvbnMgZMOpdGVjdMOpIHF1ZSBsZSBtb2R1bGUgQ2FsZW5kYXIgZXN0IGTDqWrDoCBpbnN0YWxsw6kuIENlIG1vZHVsZSBuXCdlc3QgcGFzIGNvbXBhdGlibGUgYXZlYyBsZSBtb2R1bGUgQ2FsZW5kYXIgZXQgbmUgcGV1dCBwYXMgY29leGlzdGVyIGF2ZWMgbHVpIHN1ciBsYSBtw6ptZSBpbnN0YWxsYXRpb24uIFZldWlsbGV6IGTDqXNpbnN0YWxsZXIgbGUgbW9kdWxlIENhbGVuZGFyJzsKJGxhbmdbJ2Vycm9yX2V2ZW50X25vdF9mb3VuZCddID0gJ1NvaXQgbFwnZXZlbnRfaWQgblwnZXN0IHBhcyBwcsOpc2VudCBlbiBiYXNlIGRlIGRvbm7DqWVzLCBzb2l0IGlsIHkgYSBwbHVzIGRcJ3VuIMOpdsOpbmVtZW50IHBvc3PDqWRhbnQgY2V0IGlkICEgKCVkKSc7CiRsYW5nWydmaXJzdF9wYWdlJ10gPSAnPDwnOwokbGFuZ1sncHJldl9wYWdlJ10gPSAnPCc7CiRsYW5nWyduZXh0X3BhZ2UnXSA9ICc+JzsKJGxhbmdbJ2xhc3RfcGFnZSddID0gJz4+JzsKJGxhbmdbJ3BhZ2Vfb2YnXSA9ICdQYWdlICVkIHN1ciAlZCc7CiRsYW5nWydzZWFyY2hfcmVzdWx0cyddID0gJ1LDqXN1bHRhdHMgZGUgbGEgUmVjaGVyY2hlIGR1IENhbGVuZHJpZXInOwokbGFuZ1snc2VhcmNoX3dvcmRzJ10gPSAnTW90cyBSZWNoZXJjaMOpcyc7CiRsYW5nWydub19yZXN1bHRzX2ZvdW5kJ10gPSAnQXVjdW4gcsOpc3VsdGF0IHRyb3V2w6kgY29ycmVzcG9uZGFudCDDoCBsYSBkZW1hbmRlJzsKJGxhbmdbJ2ZyZXF1ZW5jeSddID0gJ0Zyw6lxdWVuY2UnOwokbGFuZ1snc3BlY2lmaWVkX2RhdGUnXSA9ICdVdGlsaXNlciBsYSBkYXRlIHNww6ljaWZpw6llJzsKJGxhbmdbJ2ZpcnN0X3N1bmRheSddID0gJ1ByZW1pZXIgZGltYW5jaGUgZHUgbW9pcyc7CiRsYW5nWydmaXJzdF9tb25kYXknXSA9ICdQcmVtaWVyIGx1bmRpIGR1IG1vaXMnOwokbGFuZ1snZmlyc3RfdHVlc2RheSddID0gJ1ByZW1pZXIgbWFyZGkgZHUgbW9pcyc7CiRsYW5nWydmaXJzdF93ZWRuZXNkYXknXSA9ICdQcmVtaWVyIG1lcmNyZWRpIGR1IG1vaXMnOwokbGFuZ1snZmlyc3RfdGh1cnNkYXknXSA9ICdQcmVtaWVyIGpldWRpIGR1IG1vaXMnOwokbGFuZ1snZmlyc3RfZnJpZGF5J10gPSAnUHJlbWllciB2ZW5kcmVkaSBkdSBtb2lzJzsKJGxhbmdbJ2ZpcnN0X3NhdHVyZGF5J10gPSAnUHJlbWllciBzYW1lZGkgZHUgbW9pcyc7CiRsYW5nWydzZWNvbmRfc3VuZGF5J10gPSAnRGV1eGnDqG1lIGRpbWFuY2hlIGR1IG1vaXMnOwokbGFuZ1snc2Vjb25kX21vbmRheSddID0gJ0RldXhpw6htZSBsdW5kaSBkdSBtb2lzJzsKJGxhbmdbJ3NlY29uZF90dWVzZGF5J10gPSAnRGV1eGnDqG1lIG1hcmRpIGR1IG1vaXMnOwokbGFuZ1snc2Vjb25kX3dlZG5lc2RheSddID0gJ0RldXhpw6htZSBtZXJjcmVkaSBkdSBtb2lzJzsKJGxhbmdbJ3NlY29uZF90aHVyc2RheSddID0gJ0RldXhpw6htZSBqZXVkaSBkdSBtb2lzJzsKJGxhbmdbJ3NlY29uZF9mcmlkYXknXSA9ICdEZXV4acOobWUgdmVuZHJlZGkgZHUgbW9pcyc7CiRsYW5nWydzZWNvbmRfc2F0dXJkYXknXSA9ICdEZXV4acOobWUgc2FtZWRpIGR1IG1vaXMnOwokbGFuZ1sndGhpcmRfc3VuZGF5J10gPSAnVHJvaXNpw6htZSBkaW1hbmNoZSBkdSBtb2lzJzsKJGxhbmdbJ3RoaXJkX21vbmRheSddID0gJ1Ryb2lzacOobWUgbHVuZGkgZHUgbW9pcyc7CiRsYW5nWyd0aGlyZF90dWVzZGF5J10gPSAnVHJvaXNpw6htZSBtYXJkaSBkdSBtb2lzJzsKJGxhbmdbJ3RoaXJkX3dlZG5lc2RheSddID0gJ1Ryb2lzacOobWUgbWVyY3JlZGkgZHUgbW9pcyc7CiRsYW5nWyd0aGlyZF90aHVyc2RheSddID0gJ1Ryb2lzacOobWUgamV1ZGkgZHUgbW9pcyc7CiRsYW5nWyd0aGlyZF9mcmlkYXknXSA9ICdUcm9pc2nDqG1lIHZlbmRyZWRpIGR1IG1vaXMnOwokbGFuZ1sndGhpcmRfc2F0dXJkYXknXSA9ICdUcm9pc2nDqG1lIHNhbWVkaSBkdSBtb2lzJzsKJGxhbmdbJ2ZvdXJ0aF9zdW5kYXknXSA9ICdRdWF0cmnDqG1lIGRpbWFuY2hlIGR1IG1vaXMnOwokbGFuZ1snZm91cnRoX21vbmRheSddID0gJ1F1YXRyacOobWUgbHVuZGkgZHUgbW9pcyc7CiRsYW5nWydmb3VydGhfdHVlc2RheSddID0gJ1F1YXRyacOobWUgbWFyZGkgZHUgbW9pcyc7CiRsYW5nWydmb3VydGhfd2VkbmVzZGF5J10gPSAnUXVhdHJpw6htZSBtZXJjcmVkaSBkdSBtb2lzJzsKJGxhbmdbJ2ZvdXJ0aF90aHVyc2RheSddID0gJ1F1YXRyacOobWUgamV1ZGkgZHUgbW9pcyc7CiRsYW5nWydmb3VydGhfZnJpZGF5J10gPSAnUXVhdHJpw6htZSB2ZW5kcmVkaSBkdSBtb2lzJzsKJGxhbmdbJ2ZvdXJ0aF9zYXR1cmRheSddID0gJ1F1YXRyacOobWUgc2FtZWRpIGR1IG1vaXMnOwokbGFuZ1snbGFzdF9zdW5kYXknXSA9ICdEZXJuaWVyIGRpbWFuY2hlIGR1IG1vaXMnOwokbGFuZ1snbGFzdF9tb25kYXknXSA9ICdEZXJuaWVyIGx1bmRpIGR1IG1vaXMnOwokbGFuZ1snbGFzdF90dWVzZGF5J10gPSAnRGVybmllciBtYXJkaSBkdSBtb2lzJzsKJGxhbmdbJ2xhc3Rfd2VkbmVzZGF5J10gPSAnRGVybmllciBtZXJjcmVkaSBkdSBtb2lzJzsKJGxhbmdbJ2xhc3RfdGh1cnNkYXknXSA9ICdEZXJuaWVyIGpldWRpIGR1IG1vaXMnOwokbGFuZ1snbGFzdF9mcmlkYXknXSA9ICdEZXJuaWVyIHZlbmRyZWRpIGR1IG1vaXMnOwokbGFuZ1snbGFzdF9zYXR1cmRheSddID0gJ0Rlcm5pZXIgc2FtZWRpIGR1IG1vaXMnOwokbGFuZ1snZXJyb3JfaW52YWxpZF9yZWN1cl9tb250aGx5X2ZyZXEnXSA9ICdGcsOpcXVlbmNlIGludmFsaWRlLi4uIHZvdXMgbmUgcG91dmV6IHNww6ljaWZpZXIgRVQgbGEgZGF0ZSBFVCBkXCdhdXRyZXMgdmFsZXVycyc7CiRsYW5nWydzZWFyY2hyZXN1bHR0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWpvdXRlci9Nb2RpZmllciB1biBnYWJhcml0IHBvdXIgbGVzIHLDqXN1bHRhdHMgZGUgcmVjaGVyY2hlJzsKJGxhbmdbJ2luZm9fc2VhcmNocmVzdWx0X3RlbXBsYXRlX3RhYiddID0gJ0xhIGxpc3RlIGRlcyBnYWJhcml0cyBxdWkgc29udCBkaXNwb25pYmxlcyBwb3VyIGxcJ2FmZmljaGFnZSBkZXMgcsOpc3VsdGF0cyBkZSBsYSByZWNoZXJjaGUnOwokbGFuZ1snaW5mb19zeXNkZmx0X3NlYXJjaHJlc3VsdF90ZW1wbGF0ZSddID0gJ0dhYmFyaXQgZGUgZm9ybXVsYWlyZSBkZSByw6lzdWx0YXQgcGFyIGTDqWZhdXQnOwokbGFuZ1snY2FsX3NlYXJjaF9yZXN1bHRfdGVtcGxhdGVzJ10gPSAnR2FiYXJpdCBwb3VyIGxlcyByw6lzdWx0YXRzIGRlIHJlY2hlcmNoZSc7CiRsYW5nWydlcnJvcl9xdWVyeV9mYWlsZWQnXSA9ICdSw6pxdWV0ZSBlbiBiYXNlIMOpY2hvdcOpZSc7CiRsYW5nWydlcnJvcl9zZWFyY2hfaW52YWxpZF9kYXRlcyddID0gJ0xlcyBkYXRlcyBpbmRpcXXDqWVzIHBvdXIgbGEgcmVjaGVyY2hlIHNvbnQgaW52YWxpZGVzJzsKJGxhbmdbJ3RleHQnXSA9ICdUZXh0ZSc7CiRsYW5nWydzZWFyY2gnXSA9ICdSZWNoZXJjaGUnOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdDYXTDqWdvcmllJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9zZWFyY2hfdGVtcGxhdGUnXSA9ICdHYWJhcml0IGRlIGZvcm11bGFpcmUgZGUgcmVjaGVyY2hlIHBhciBkw6lmYXV0JzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBam91dGVyL01vZGlmaWVyIHVuIGdhYmFyaXQgZGUgZm9ybXVsYWlyZSBkZSByZWNoZXJjaGUnOwokbGFuZ1snaW5mb19zZWFyY2hfdGVtcGxhdGVfdGFiJ10gPSAnTGEgbGlzdGUgZGVzIGdhYmFyaXRzIHF1aSBzb250IGRpc3BvbmlibGVzIHBvdXIgbGUgZm9ybXVsYWlyZSBkZSByZWNoZXJjaGUnOwokbGFuZ1snY2FsX3NlYXJjaF9mb3JtX3RlbXBsYXRlcyddID0gJ0dhYmFyaXRzIGRlIGZvcm11bGFpcmUgZGUgcmVjaGVyY2hlJzsKJGxhbmdbJ21heCddID0gJ21heC4nOwokbGFuZ1sndGltZXMnXSA9ICdmb2lzJzsKJGxhbmdbJ29uJ10gPSAnc3VyJzsKJGxhbmdbJ2FyZXlvdXN1cmVfdW5pbnN0YWxsJ10gPSAnw4p0ZXMtdm91cyBzw7tyIGRlIHZvdWxvaXIgZmFpcmUgY2VjaSA/IFNpIHZvdXMgcG91cnN1aXZleiwgdm91cyBhbGxlciBlZmZhY2VyIGRlIG1hbmnDqHJlIGTDqWZpbml0aXZlIHRvdXRlcyBsZXMgZG9ubsOpZXMgYXNzb2Npw6llcyDDoCBjZSBtb2R1bGUuJzsKJGxhbmdbJ3Bvc3RfdW5pbnN0YWxsJ10gPSAnTGUgbW9kdWxlIENhbGVuZHJpZXIgKENHKSBhIMOpdMOpIGTDqXNpbnN0YWxsw6kgZXQgdG91cyBsZXMgw6l2w6luZW1lbnRzIGV0IGxlcyBpbmZvcm1hdGlvbnMgZGUgZ2FiYXJpdCBhc3NvY2nDqXMgw6AgY2UgbW9kdWxlIG9udCDDqXTDqSBzdXBwcmltw6lzLic7CiRsYW5nWydmaWVsZHVwZGF0ZWQnXSA9ICdDaGFtcCBtaXMgw6Agam91ci4nOwokbGFuZ1snZXZlcnknXSA9ICdUb3VzIGxlcyc7CiRsYW5nWydvciddID0gJ291JzsKJGxhbmdbJ3VwZGF0ZV9jaGlsZHJlbiddID0gJ01ldHRyZSDDoCBqb3VyIGxlcyBzb3VzLcOpdsOpbmVtZW50cyBhc3NvY2nDqXMnOwokbGFuZ1snZXJyb3Jfbm9jYXRlZ29yeSddID0gJ1ZvdXMgZGV2ZXogc8OpbGVjdGlvbm5lciBhdSBtb2lucyB1bmUgY2F0w6lnb3JpZS4nOwokbGFuZ1snZXJyb3Jfbm90aGluZ3NlbGVjdGVkJ10gPSAnUmllbiBuXCdhIMOpdMOpIHPDqWxlY3Rpb25uw6kgcG91ciBsXCdlZmZhY2VtZW50Lic7CiRsYW5nWydlcnJvcl9ldmVudG92ZXJsYXAnXSA9ICdWb3MgcGFyYW3DqHRyZXMgZGUgcsOpcMOpdGl0aW9uIGRcJ8OpdsOpbmVtZW50IGVuZ2VuZHJlbnQgdW4gY2hldmF1Y2hlbWVudCBkXCfDqXbDqW5lbWVudHMuJzsKJGxhbmdbJ3JlY3VycyddID0gJ1LDqXDDqXRpdGlvbnMnOwokbGFuZ1snZXJyb3JfaW52YWxpZF9kYXRlcyddID0gJ1VuZSBvdSBwbHVzaWV1cnMgdmFsZXVycyBlbnRyw6llcyBwb3VyIGxhIGRhdGUgc29udCBpbmNvcnJlY3Rlcyc7CiRsYW5nWydzdW5kYXknXSA9ICdEaW1hbmNoZSc7CiRsYW5nWydtb25kYXknXSA9ICdMdW5kaSc7CiRsYW5nWyd0dWVzZGF5J10gPSAnTWFyZGknOwokbGFuZ1snd2VkbmVzZGF5J10gPSAnTWVyY3JlZGknOwokbGFuZ1sndGh1cnNkYXknXSA9ICdKZXVkaSc7CiRsYW5nWydmcmlkYXknXSA9ICdWZW5kcmVkaSc7CiRsYW5nWydzYXR1cmRheSddID0gJ1NhbWVkaSc7CiRsYW5nWydhYmJyX3N1bmRheSddID0gJ0RpJzsKJGxhbmdbJ2FiYnJfbW9uZGF5J10gPSAnTHUnOwokbGFuZ1snYWJicl90dWVzZGF5J10gPSAnTWEnOwokbGFuZ1snYWJicl93ZWRuZXNkYXknXSA9ICdNZSc7CiRsYW5nWydhYmJyX3RodXJzZGF5J10gPSAnSmUnOwokbGFuZ1snYWJicl9mcmlkYXknXSA9ICdWZSc7CiRsYW5nWydhYmJyX3NhdHVyZGF5J10gPSAnU2EnOwokbGFuZ1snd2VlayddID0gJ1NlbWFpbmUnOwokbGFuZ1snbW9udGgnXSA9ICdNb2lzJzsKJGxhbmdbJ2RheSddID0gJ0pvdXInOwokbGFuZ1sndG9kYXknXSA9ICdBdWpvdXJkXCdodWknOwokbGFuZ1snd2Vla2RheXMnXSA9ICdKb3VycyBkZSBsYSBzZW1haW5lJzsKJGxhbmdbJ3BsdXJhbF9ub25lJ10gPSAnUmllbic7CiRsYW5nWydwbHVyYWxfZGFpbHknXSA9ICdKb3Vycyc7CiRsYW5nWydwbHVyYWxfd2Vla2x5J10gPSAnU2VtYWluZXMnOwokbGFuZ1sncGx1cmFsX21vbnRobHknXSA9ICdNb2lzJzsKJGxhbmdbJ3BsdXJhbF95ZWFybHknXSA9ICdBbm7DqWVzJzsKJGxhbmdbJ25vJ10gPSAnTm9uJzsKJGxhbmdbJ2RhaWx5J10gPSAnQ2hhcXVlIGpvdXInOwokbGFuZ1snd2Vla2x5J10gPSAnQ2hhcXVlIHNlbWFpbmUnOwokbGFuZ1snbW9udGhseSddID0gJ0NoYXF1ZSBtb2lzJzsKJGxhbmdbJ3llYXJseSddID0gJ0NoYXF1ZSBhbm7DqWUnOwokbGFuZ1snaW50ZXJ2YWwnXSA9ICdSw6lww6l0ZXIgY2hhcXVlJzsKJGxhbmdbJ2NhbF9yZWN1cl9kZXRhaWxzJ10gPSAnRMOpdGFpbHMgZGVzIMOpdsOpbmVtZW50cyByw6lww6l0aXRpZnMnOwokbGFuZ1sndW5saW1pdGVkJ10gPSAnSWxsaW1pdMOpJzsKJGxhbmdbJ21heF9yZWN1cl9ldmVudHMnXSA9ICdOb21icmUgbWF4aW11bSBkZSBzb3VzLcOpdsOpbmVtZW50cyc7CiRsYW5nWyd1c2VfdG9fZGF0ZSddID0gJ1Nww6ljaWZpZXIgdW5lIGRhdGUgZGUgZmluIGRpZmbDqXJlbnRlID8nOwokbGFuZ1snY2FuY2VsJ10gPSAnQW5udWxlcic7CiRsYW5nWydzaG93X2NoaWxkX2V2ZW50cyddID0gJ0FmZmljaGVyIGxlcyBzb3VzLcOpdsOpbmVtZW50cyA8ZW0+KHBldXQgY2F1c2VyIHVuIGFmZmljaGFnZSB0csOocyBsb25nKTwvZW0+JzsKJGxhbmdbJ24vYSddID0gJ24vYSc7CiRsYW5nWydyZWN1cnNfdW50aWwnXSA9ICdSw6lww6l0aXRpb24ganVzcXVcJ8OgJzsKJGxhbmdbJ3BhcmVudCddID0gJ1BhcmVudCc7CiRsYW5nWydyZWN1cl9wZXJpb2QnXSA9ICdQw6lyaW9kZSBkZSByw6lww6l0aXRpb24nOwokbGFuZ1snZmlsdGVyJ10gPSAnRmlsdHJlJzsKJGxhbmdbJ3N0YXJ0X2RhdGUnXSA9ICdEYXRlIGRlIGTDqWJ1dCc7CiRsYW5nWydlbmRfZGF0ZSddID0gJ0RhdGUgZGUgZmluJzsKJGxhbmdbJ2luZm9fdXBjb21pbmdsaXN0X3RlbXBsYXRlX3RhYiddID0gJ0xhIGxpc3RlIGRlcyBnYWJhcml0cyBkaXNwb25pYmxlcyBwb3VyIGFmZmljaGVyIGxlcyDDqXbDqW5lbWVudHMgw6AgdmVuaXInOwokbGFuZ1sndXBjb21pbmdsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0Fqb3V0ZXIvbW9kaWZpZXIgdW4gZ2FiYXJpdCBkXCdhZmZpY2hhZ2UgZGVzIMOpdsOpbmVtZW50cyDDoCB2ZW5pcic7CiRsYW5nWydpbmZvX3N5c2RmbHRfdXBjb21pbmdsaXN0X3RlbXBsYXRlJ10gPSAnR2FiYXJpdC1zeXN0w6htZSBwYXIgZMOpZmF1dCBwb3VyIGFmZmljaGVyIGxlcyDDqXbDqW5lbWVudHMgw6AgdmVuaXInOwokbGFuZ1snaW5mb19saXN0X3RlbXBsYXRlX3RhYiddID0gJ0xhIGxpc3RlIGRlcyBnYWJhcml0cyBkaXNwb25pYmxlcyBwb3VyIGFmZmljaGVyIGxhIGxpc3RlIGRlcyDDqXbDqW5lbWVudHMnOwokbGFuZ1snbGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBam91dGVyL21vZGlmaWVyIHVuIGdhYmFyaXQgcG91ciBhZmZpY2hlciBsYSBsaXN0ZSBkZXMgw6l2w6luZW1lbnRzJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9saXN0X3RlbXBsYXRlJ10gPSAnR2FiYXJpdC1zeXN0w6htZSBwYXIgZMOpZmF1dCBwb3VyIGFmZmljaGVyIGxhIGxpc3RlIGRlcyDDqXbDqW5lbWVudHMnOwokbGFuZ1snaW5mb19ldmVudF90ZW1wbGF0ZV90YWInXSA9ICdMYSBsaXN0ZSBkZXMgZ2FiYXJpdHMgZGlzcG9uaWJsZXMgcG91ciBhZmZpY2hlciB1biDDqXbDqW5lbWVudCBlbiBkw6l0YWlsJzsKJGxhbmdbJ2V2ZW50dGVtcGxhdGVfYWRkZWRpdCddID0gJ0Fqb3V0ZXIvbW9kaWZpZXIgdW4gZ2FiYXJpdCBkXCdhZmZpY2hhZ2UgZFwndW4gw6l2w6luZW1lbnQgZW4gZMOpdGFpbCc7CiRsYW5nWydpbmZvX3N5c2RmbHRfZXZlbnRfdGVtcGxhdGUnXSA9ICdHYWJhcml0LXN5c3TDqG1lIHBhciBkw6lmYXV0IHBvdXIgYWZmaWNoZXIgdW4gw6l2w6luZW1lbnRzIGVuIGTDqXRhaWwnOwokbGFuZ1snaW5mb19jYWxlbmRhcl90ZW1wbGF0ZV90YWInXSA9ICdMYSBsaXN0ZSBkZXMgZ2FiYXJpdHMgZGlzcG9uaWJsZXMgcG91ciBhZmZpY2hlciB1biBjYWxlbmRyaWVyJzsKJGxhbmdbJ2NhbGVuZGFydGVtcGxhdGVfYWRkZWRpdCddID0gJ0Fqb3V0ZXIvbW9kaWZpZXIgdW4gZ2FiYXJpdCBkXCdhZmZpY2hhZ2UgZFwndW4gY2FsZW5kcmllcic7CiRsYW5nWydpbmZvX3N5c2RmbHRfY2FsZW5kYXJfdGVtcGxhdGUnXSA9ICdHYWJhcml0LXN5c3TDqG1lIHBhciBkw6lmYXV0IHBvdXIgYWZmaWNoZXIgdW4gY2FsZW5kcmllcic7CiRsYW5nWydpbmZvX3N5c2RmbHRfdGVtcGxhdGUnXSA9ICdDZSBmb3JtdWxhaXJlIGTDqWZpbml0IGxlIGdhYmFyaXQgcXVpIHNlcmEgdXRpbGlzw6kgbG9yc3F1ZSB2b3VzIGNsaXF1ZXJleiBzdXIgIk5vdXZlYXUgZ2FiYXJpdCIgZGFucyBsXCdvbmdsZXQgYXBwcm9wcmnDqS4gTW9kaWZpZXIgc29uIGNvbnRlbnUgblwnYSBwYXMgZFwnZWZmZXQgaW1tw6lkaWF0IHN1ciBsZXMgYWZmaWNoYWdlcyBpbnZvcXVhbnQgZGVzIGdhYmFyaXRzIGV4aXN0YW50cywgbWFpcyBzXCdhcHBsaXF1ZXJhIGF1eCBwcm9jaGFpbnMgZ2FiYXJpdHMgY3LDqcOpcy4nOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50QWRkZWQnXSA9ICdBcHBlbMOpIGFwcsOocyBsXCdham91dCBkXCd1biDDqXbDqW5lbWVudCBkZSBjYWxlbmRyaWVyJzsKJGxhbmdbJ2V2ZW50ZGVzYy1FdmVudEVkaXRlZCddID0gJ0FwcGVsw6kgYXByw6hzIGxcJ8OpZGl0aW9uIGRcJ3VuIMOpdsOpbmVtZW50IGRlIGNhbGVuZHJpZXIgZXhpc3RhbnQnOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50RGVsZXRlZCddID0gJ0FwcGVsw6kgYXByw6hzIHF1XCd1biDDqXbDqW5lbWVudCBhaXQgw6l0w6kgc3VwcHJpbcOpJzsKJGxhbmdbJ2V2ZW50ZGVzYy1DYXRlZ29yeUFkZGVkJ10gPSAnQXBwZWzDqSBhcHLDqHMgbGEgY3LDqWF0aW9uIGRcJ3VuZSBjYXTDqWdvcmllJzsKJGxhbmdbJ2V2ZW50ZGVzYy1DYXRlZ29yeUVkaXRlZCddID0gJ0FwcGVsw6kgYXByw6hzIGxcJ8OpZGl0aW9uIGRcJ3VuZSBjYXTDqWdvcmllJzsKJGxhbmdbJ2V2ZW50ZGVzYy1DYXRlZ29yeURlbGV0ZWQnXSA9ICdBcHBlbMOpIGFwcsOocyBxdVwndW5lIGNhdMOpZ29yaWUgYWllIMOpdMOpIHN1cHByaW3DqWUnOwokbGFuZ1snZXZlbnRoZWxwLUV2ZW50QWRkZWQnXSA9ICc8cD5FbnZvecOpIHF1YW5kIHVuIMOpdsOpbmVtZW50IGRlIGNhbGVuZHJpZXIgZXN0IGFqb3V0w6kuPC9wPg0KPGg0PlBhcmFtw6h0cmVzPC9oND4NCjx1bD4NCjxsaT5cImV2ZW50X3RpdGxlXCIgLSBUaXRyZSBkZSBsXCfDqXbDqW5lbWVudDwvbGk+DQo8bGk+XCJldmVudF9zdW1tYXJ5XCIgLSBUZXh0ZSBkdSBzb21tYWlyZTwvbGk+DQo8bGk+XCJldmVudF9kZXRhaWxzXCIgLSBEZXNjcmlwdGlvbiBkw6l0YWlsbMOpZTwvbGk+DQo8bGk+XCJldmVudF9kYXRlX3N0YXJ0XCIgLSBEYXRlIGV0IGhldXJlIGR1IGTDqWJ1dCBkZSBsXCfDqXbDqW5lbWVudDwvbGk+DQo8bGk+XCJldmVudF9kYXRlX2VuZFwiIC0gRGF0ZSBldCBoZXVyZSBkZSBsYSBmaW4gZGUgbFwnw6l2w6luZW1lbnQ8L2xpPg0KPGxpPlwiZXZlbnRfY3JlYXRlZF9ieVwiIC0gTGUgdXNlcmlkIGRlIGxcJ2F1dGV1cjwvbGk+DQo8bGk+XCJldmVudF9pZFwiIC0gTFwnaWQgZGUgbFwnw6l2w6luZW1lbnQ8L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRoZWxwLUV2ZW50RWRpdGVkJ10gPSAnPHA+RW52b3nDqSBxdWFuZCB1biDDqXbDqW5lbWVudCBkZSBjYWxlbmRyaWVyIGVzdCDDqWRpdMOpLjwvcD4NCjxoND5QYXJhbcOodHJlczwvaDQ+DQo8dWw+DQo8bGk+XCJldmVudF90aXRsZVwiIC0gVGl0cmUgZGUgbFwnw6l2w6luZW1lbnQ8L2xpPg0KPGxpPlwiZXZlbnRfc3VtbWFyeVwiIC0gVGV4dGUgZHUgc29tbWFpcmU8L2xpPg0KPGxpPlwiZXZlbnRfZGV0YWlsc1wiIC0gRGVzY3JpcHRpb24gZMOpdGFpbGzDqWU8L2xpPg0KPGxpPlwiZXZlbnRfZGF0ZV9zdGFydFwiIC0gRGF0ZSBldCBoZXVyZSBkdSBkw6lidXQgZGUgbFwnw6l2w6luZW1lbnQ8L2xpPg0KPGxpPlwiZXZlbnRfZGF0ZV9lbmRcIiAtIERhdGUgZXQgaGV1cmUgZGUgbGEgZmluIGRlIGxcJ8OpdsOpbmVtZW50PC9saT4NCjxsaT5cImV2ZW50X2NyZWF0ZWRfYnlcIiAtIExlIHVzZXJpZCBkZSBsXCdhdXRldXI8L2xpPg0KPGxpPlwiZXZlbnRfaWRcIiAtIExcJ2lkIGRlIGxcJ8OpdsOpbmVtZW50PC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V2ZW50aGVscC1FdmVudERlbGV0ZWQnXSA9ICc8cD5FbnZvecOpIHF1YW5kIHVuIMOpdsOpbmVtZW50IGRlIGNhbGVuZHJpZXIgZXN0IHN1cHByaW3DqS48L3A+DQo8aDQ+UGFyYW3DqHRyZXM8L2g0Pg0KPHVsPg0KPGxpPlwiZXZlbnRfaWRcIiAtIExcJ2lkIGRlIGxcJ8OpdsOpbmVtZW50PC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V2ZW50aGVscC1DYXRlZ29yeUFkZGVkJ10gPSAnPHA+RW52b3nDqSBxdWFuZCB1bmUgY2F0w6lnb3JpZSBkZSBjYWxlbmRyaWVyIGVzdCBham91dMOpZS48L3A+DQo8aDQ+UGFyYW3DqHRyZXM8L2g0Pg0KPHVsPg0KPGxpPlwiY2F0ZWdvcnlfaWRcIiAtIExcJ2lkIGRlIGxhIGNhdMOpZ29yaWU8L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5RWRpdGVkJ10gPSAnPHA+RW52b3nDqSBxdWFuZCB1bmUgY2F0w6lnb3JpZSBkZSBjYWxlbmRyaWVyIGVzdCDDqWRpdMOpZS48L3A+DQo8aDQ+UGFyYW3DqHRyZXM8L2g0Pg0KPHVsPg0KPGxpPlwiY2F0ZWdvcnlfaWRcIiAtIExcJ2lkIGRlIGxhIGNhdMOpZ29yaWU8L2xpPg0KPGxpPlwiY2F0ZWdvcnlfbmFtZVwiIC0gTGUgbm9tIGRlIGxhIGNhdMOpZ29yaWU8L2xpPg0KPGxpPlwiY2F0ZWdvcnlfb3JkZXJcIiAtIExcJ29yZHJlIGRlIHRyaSBkZSBsYSBjYXTDqWdvcmllPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V2ZW50aGVscC1DYXRlZ29yeURlbGV0ZWQnXSA9ICc8cD5FbnZvecOpIHF1YW5kIHVuZSBjYXTDqWdvcmllIGRlIGNhbGVuZHJpZXIgZXN0IHN1cHByaW3DqWUuPC9wPg0KPGg0PlBhcmFtw6h0cmVzPC9oND4NCjx1bD4NCjxsaT5cImNhdGVnb3J5X2lkXCIgLSBMXCdpZCBkZSBsYSBjYXTDqWdvcmllPC9saT4NCjxsaT5cImNhdGVnb3J5X25hbWVcIiAtIExlIG5vbSBkZSBsYSBjYXTDqWdvcmllPC9saT4NCjxsaT5cImNhdGVnb3J5X29yZGVyXCIgLSBMXCdvcmRyZSBkZSB0cmkgZGUgbGEgY2F0w6lnb3JpZTwvbGk+DQo8L3VsPic7CiRsYW5nWydlcnJvcl9jc3ZfaW5zZXJ0J10gPSAnRXJyZXVyIGR1cmFudCBsXCdpbXBvcnRhdGlvbiBkZXMgw6l2w6huZW1lbnRzIGRlcHVpcyBsZSBjc3Mgw6AgbGEgbGlnbmUgJWQnOwokbGFuZ1snZXJyb3JfY3N2Zmlyc3RsaW5lZmxkbm90Zm91bmQnXSA9ICdVbiBjaGFtcHMgb2JsaWdhdG9pcmU6ICVzLCBuXCdhIHB1IMOqdHJlIHRyb3V2w6kgZGFucyBsYSBsaWduZSBkXCdlbnTDqnRlIGR1IGZpY2hpZXIgY3N2JzsKJGxhbmdbJ2Vycm9yX2NzdmludmFsaWRmaXJzdGxpbmUnXSA9ICdOZSBwZXV0IHRyb3V2ZXIgdW5lIGxpZ25lIGRcJ2VudMOqdGUgdmFsaWRlIGRhbnMgbGUgZmljaGllciBDU1YnOwokbGFuZ1snbXNnX2V2ZW50YWRkZWQnXSA9ICfDiXbDqW5lbWVudCBham91dMOpJzsKJGxhbmdbJ2Vycm9yX25vZXZlbnRuYW1lJ10gPSAnVW4gbm9tIHBvdXIgbFwnw6l2w6luZW1lbnQgZG9pdCDDqnRyZSBkw6lmaW5pdCc7CiRsYW5nWydlcnJvcl9ub3VwbG9hZCddID0gJ0VSUkVVUiZuYnNwOzogQXVjdW4gZmljaGllciB1cGxvYWTDqSB0cm91dsOpJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRmaWxlbmFtZSddID0gJ0VSUkVVUiZuYnNwOzogTGUgZmljaGllciB1cGxvYWTDqSBuZSBwZXV0IHBhcyDDqnRyZSBhY2NlcHTDqSc7CiRsYW5nWydlcnJvcl9wcm9ibGVtd2l0aHVwbG9hZCddID0gJ0VSUkVVUiZuYnNwOzogSWwgeSBhIGV1IHVuIHByb2Jsw6htZSBsb3JzIGRlIGxcJ3VwbG9hZCBkdSBmaWNoaWVyJzsKJGxhbmdbJ2Vycm9yX2ZpbGVjb3B5ZmFpbGVkJ10gPSAnRVJSRVVSJm5ic3A7OiBJbCB5IGEgZXUgdW4gcHJvYmzDqG1lIGxvcnMgZGUgbGEgY29waWUgZHUgZmljaGllciDDoCBzb24gZW1wbGFjZW1lbnQgZmluYWwnOwokbGFuZ1snZXJyb3JfZmlsZWV4aXN0cyddID0gJ0VSUkVVUiZuYnNwOzogVW4gZmljaGllciBhdmVjIGxlIG3Dqm1lIG5vbSBleGlzdGUgZMOpasOgJzsKJGxhbmdbJ2Vycm9yX2NzdmZpbGVub3Rmb3VuZCddID0gJ0VSUkVVUiZuYnNwOzogSW1wb3NzaWJsZSBkZSB0cm91dmVyIGxlIGZpY2hpZXIgQ1NWJzsKJGxhbmdbJ2Vycm9yX2NhbnRvcGVuZmlsZSddID0gJ0VSUkVVUiZuYnNwOzogSW1wb3NzaWJsZSBkXCdvdXZyaXIgbGUgZmljaGllcic7CiRsYW5nWydlcnJvcl9jYXRlZ29yeWV4aXN0cyddID0gJ0VSUkVVUiZuYnNwOzogVW5lIGNhdMOpZ29yaWUgYXZlYyBsZSBub20gJXMgZXhpc3RlIGTDqWrDoCc7CiRsYW5nWydjYWxfaWQnXSA9ICdJRCc7CiRsYW5nWydjYWxfY2FsZW5kYXInXSA9ICdDYWxlbmRyaWVyIChDRyknOwokbGFuZ1snY2FsX2RlZmF1bHRfdGVtcGxhdGVzJ10gPSAnR2FiYXJpdHMgcGFyIGTDqWZhdXQnOwokbGFuZ1snY2FsX2Rlc2NyaXB0aW9uJ10gPSAnQWpvdXQsIMOpZGl0aW9uIGV0IHN1cHByZXNzaW9uIGRcJ8OpdsOpbmVtZW50cyc7CiRsYW5nWydjYWxfYWRkZXZlbnQnXSA9ICdBam91dGVyIHVuIMOpdsOpbmVtZW50JzsKJGxhbmdbJ2NhbF9pbXBvcnRfZXZlbnRzJ10gPSAnSW1wb3J0ZXIgZGVzIMOpdsOpbmVtZW50cyc7CiRsYW5nWydjYWxfZXZlbnRzJ10gPSAnw4l2w6luZW1lbnRzJzsKJGxhbmdbJ2NhbF9jYXRlZ29yaWVzJ10gPSAnQ2F0w6lnb3JpZXMnOwokbGFuZ1snY2FsX2NhbGVuZGFyX3RlbXBsYXRlJ10gPSAnR2FiYXJpdHMgZGUgY2FsZW5kcmllcic7CiRsYW5nWydjYWxfbGlzdF90ZW1wbGF0ZSddID0gJ0dhYmFyaXRzIGRlIGxpc3RlJzsKJGxhbmdbJ2NhbF91cGNvbWluZ2xpc3RfdGVtcGxhdGUnXSA9ICdHYWJhcml0cyBkXCfDqXbDqW5lbWVudCDDoCB2ZW5pcic7CiRsYW5nWydjYWxfZXZlbnRfdGVtcGxhdGUnXSA9ICdHYWJhcml0cyBkXCfDqXbDqW5lbWVudCBkw6l0YWlsbMOpcyc7CiRsYW5nWydjYWxfc2V0dGluZ3MnXSA9ICdQYXJhbcOodHJlcyc7CiRsYW5nWydjYWxfcHJldiddID0gJ8KrIFByw6ljw6lkZW50JzsKJGxhbmdbJ2NhbF9uZXh0J10gPSAnU3VpdmFudCDCuyc7CiRsYW5nWydjYWxfY2F0ZWdvcmllc191cGRhdGVkJ10gPSAnQ2F0w6lnb3JpZXMgbWlzZXMgw6Agam91cic7CiRsYW5nWydjYWxfc2V0dGluZ3NfdXBkYXRlZCddID0gJ1BhcmFtw6h0cmVzIG1pcyDDoCBqb3VyJzsKJGxhbmdbJ2NhbF9hZGRfZXZlbnQnXSA9ICdBam91dGVyIHVuIMOpdsOpbmVtZW50JzsKJGxhbmdbJ2NhbF9lZGl0J10gPSAnRWRpdGVyJzsKJGxhbmdbJ2NhbF9kZWxldGUnXSA9ICdTdXBwcmltZXInOwokbGFuZ1snY2FsX2FyZXlvdXN1cmUnXSA9ICfDinRlcy12b3VzIHPDu3IgZGUgdm91bG9pciBzdXBwcmltZXIgPyc7CiRsYW5nWydjYWxfdXBkYXRlX3RlbXBsYXRlJ10gPSAnTWV0dHJlIMOgIGpvdXIgbGUgZ2FiYXJpdCc7CiRsYW5nWydjYWxfc3VuZGF5J10gPSAnRGltYW5jaGUnOwokbGFuZ1snY2FsX21vbmRheSddID0gJ0x1bmRpJzsKJGxhbmdbJ2NhbF90dWVzZGF5J10gPSAnTWFyZGknOwokbGFuZ1snY2FsX3dlZG5lc2RheSddID0gJ01lcmNyZWRpJzsKJGxhbmdbJ2NhbF90aHVyc2RheSddID0gJ0pldWRpJzsKJGxhbmdbJ2NhbF9mcmlkYXknXSA9ICdWZW5kcmVkaSc7CiRsYW5nWydjYWxfc2F0dXJkYXknXSA9ICdTYW1lZGknOwokbGFuZ1snY2FsX3N1biddID0gJ0RpbSc7CiRsYW5nWydjYWxfbW9uJ10gPSAnTHVuJzsKJGxhbmdbJ2NhbF90dWVzJ10gPSAnTWFyJzsKJGxhbmdbJ2NhbF93ZWQnXSA9ICdNZXInOwokbGFuZ1snY2FsX3RodXJzJ10gPSAnSmV1JzsKJGxhbmdbJ2NhbF9mcmknXSA9ICdWZW4nOwokbGFuZ1snY2FsX3NhdCddID0gJ1NhbSc7CiRsYW5nWydjYWxfamFudWFyeSddID0gJ0phbnZpZXInOwokbGFuZ1snY2FsX2ZlYnJ1YXJ5J10gPSAnRsOpdnJpZXInOwokbGFuZ1snY2FsX21hcmNoJ10gPSAnTWFycyc7CiRsYW5nWydjYWxfYXByaWwnXSA9ICdBdnJpbCc7CiRsYW5nWydjYWxfbWF5J10gPSAnTWFpJzsKJGxhbmdbJ2NhbF9qdW5lJ10gPSAnSnVpbic7CiRsYW5nWydjYWxfanVseSddID0gJ0p1aWxsZXQnOwokbGFuZ1snY2FsX2F1Z3VzdCddID0gJ0Fvw7t0JzsKJGxhbmdbJ2NhbF9zZXB0ZW1iZXInXSA9ICdTZXB0ZW1icmUnOwokbGFuZ1snY2FsX29jdG9iZXInXSA9ICdPY3RvYnJlJzsKJGxhbmdbJ2NhbF9ub3ZlbWJlciddID0gJ05vdmVtYnJlJzsKJGxhbmdbJ2NhbF9kZWNlbWJlciddID0gJ0TDqWNlbWJyZSc7CiRsYW5nWydjYWxfYWRkJ10gPSAnQWpvdXQnOwokbGFuZ1snY2FsX3VwZGF0ZSddID0gJ01pc2Ugw6Agam91cic7CiRsYW5nWydjYWxfZXZlbnQnXSA9ICfDiXbDqW5lbWVudCc7CiRsYW5nWydjYWxfZGF0ZSddID0gJ0RhdGUnOwokbGFuZ1snY2FsX3N1bW1hcnknXSA9ICdTb21tYWlyZSc7CiRsYW5nWydjYWxfZGV0YWlscyddID0gJ0TDqXRhaWxzJzsKJGxhbmdbJ2NhbF9tb3JlJ10gPSAncGx1cyA+Pic7CiRsYW5nWydjYWxfcmV0dXJuJ10gPSAnUmV0b3VyJzsKJGxhbmdbJ2NhbF90byddID0gJ2F1JzsKJGxhbmdbJ2NhbF9wYXN0X2V2ZW50cyddID0gJ8OJdsOpbmVtZW50cyBwYXNzw6lzJzsKJGxhbmdbJ2NhbF91cGNvbWluZ19ldmVudHMnXSA9ICdFdsOpbmVtZW50cyDDoCB2ZW5pcic7CiRsYW5nWydjYWxfYW55X2NhdGVnb3J5J10gPSAnTlwnaW1wb3J0ZSBxdWVsbGUgY2F0w6lnb3JpZSc7CiRsYW5nWydjYWxfc2hvd19vbmx5X2V2ZW50c19pbiddID0gJ0FmZmljaGVyIHNldWxlbWVudCBsZXMgw6l2w6luZW1lbnRzIGRlIGxhIGNhdMOpZ29yaWUnOwokbGFuZ1snY2FsX2ZpbHRlcl9ieSddID0gJ0ZpbHRyZSBwYXIgPGVtPihleHByZXNzaW9uIHLDqWd1bGnDqHJlKTwvZW0+JzsKJGxhbmdbJ2NhbF9nbyddID0gJ0FsbGVyJzsKJGxhbmdbJ2NhbF90aXRsZSddID0gJ1RpdHJlJzsKJGxhbmdbJ2NhbF9mcm9tZGF0ZSddID0gJ0RhdGUgZGUgZMOpYnV0JzsKJGxhbmdbJ2NhbF90b2RhdGUnXSA9ICdEYXRlIGRlIGZpbic7CiRsYW5nWydjYWxfdXBkYXRlX2NhdGVnb3JpZXMnXSA9ICdNaXNlIMOgIGpvdXIgZGVzIGNhdMOpZ29yaWVzJzsKJGxhbmdbJ2NhbF9sYW5ndWFnZSddID0gJ0xhbmd1ZSc7CiRsYW5nWydjYWxfdXBkYXRlc2V0dGluZ3MnXSA9ICdNaXNlIMOgIGpvdXIgZGVzIHBhcmFtw6h0cmVzJzsKJGxhbmdbJ2NhbF91c2VfdHdlbHZlX2hvdXJfY2xvY2snXSA9ICdVdGlsaXNlciBsZSBmb3JtYXQgMTIgaGV1cmVzIGRhbnMgbGVzIG1lbnVzIGTDqXJvdWxhbnRzIGRcJ2hldXJlcyA/JzsKJGxhbmdbJ2NhbF9kZWZhdWx0X2NhdGVnb3J5J10gPSAnQ2F0w6lnb3JpZSBwYXIgZMOpZmF1dCc7CiRsYW5nWydjYWxfdXBkYXRlX2ZpZWxkcyddID0gJ01ldHRyZSDDoCBqb3VyIGxlcyBjaGFtcHMnOwokbGFuZ1snZm9yY2VfY2F0ZWdvcnknXSA9ICdGb3JjZXIgYXUgbW9pbnMgdW5lIGNhdMOpZ29yaWUnOwokbGFuZ1snc2hvd3Bhc3R5ZWFycyddID0gJ05vbWJyZSBkXCdhbm7DqWVzIGF1dG9yaXPDqWVzIGRhbnMgbGUgcGFzc8OpJzsKJGxhbmdbJ3Nob3dmdXR1cmV5ZWFycyddID0gJ05vbWJyZSBkXCdhbm7DqWVzIGF1dG9yaXPDqWVzIGRhbnMgbGUgZnV0dXInOwokbGFuZ1snaGlkZXN1bW1hcnknXSA9ICdMZSBjaGFtcCBzb21tYWlyZSBkb2l0LWlsIMOqdHJlIGNhY2jDqSA/JzsKJGxhbmdbJ2hpZGVjb250ZW50J10gPSAnTGUgY2hhbXAgY29udGVudSBkb2l0LWlsIMOqdHJlIGNhY2jDqSA/JzsKJGxhbmdbJ2NhdGVnb3J5X3JlbWluZGVyJ10gPSAnVmV1aWxsZXogc8OpbGVjdGlvbm5lciB1bmUgb3UgcGx1c2lldXJzIGNhdMOpZ29yaWUocykgcG91ciBjZXQgw6l2w6luZW1lbnQnOwokbGFuZ1snbW9kdWxlX2V4YW1wbGVfc3R5bGVzaGVldCddID0gJ0NhbGVuZHJpZXIgKENHKSA6IGV4ZW1wbGUgZGUgQ1NTJzsKJGxhbmdbJ2Vycm9yX3Blcm1pc3Npb24nXSA9ICdWb3VzIGF2ZXogYmVzb2luIGRlIGxhIHBlcm1pc3Npb24gYXBwcm9wcmnDqWUgKCVzKSBwb3VyIGFjY8OpZGVyIMOgIGNldHRlIGZvbmN0aW9ubmFsaXTDqSc7CiRsYW5nWydpbnN0YWxsX3Bvc3RtZXNzYWdlJ10gPSAnQXNzdXJlei12b3VzIGRlIGTDqWZpbmlyIGxhIHBlcm1pc3Npb24gIk1vZGlmeSBDYWxlbmRhciIgcG91ciBsZXMgdXRpbGlzYXRldXJzIHF1aSBhZG1pbmlzdHJlcm9udCBsZXMgw6l2w6luZW1lbnRzIGRlIGNhbGVuZHJpZXInOwokbGFuZ1snZGVsZXRldGFnZ2VkJ10gPSAnU3VwcHJpbWVyIGxlcyDDqXbDqW5lbWVudHMgc8OpbGVjdGlvbm7DqXMnOwokbGFuZ1snY29uZmlybWRlbGV0ZXRhZ2dlZCddID0gJ8OKdGVzLXZvdXMgc8O7ciBkZSB2b3Vsb2lyIHN1cHByaW1lciBjZXMgw6l2w6luZW1lbnRzID8nOwokbGFuZ1sndGFnZ2VkZGVsZXRlZCddID0gJ0xlcyDDqXbDqW5lbWVudHMgc8OpbGVjdGlvbm7DqXMgb250IMOpdMOpIHN1cHByaW3DqXMnOwokbGFuZ1sndGVtcGxhdGVzJ10gPSAnR2FiYXJpdHMnOwokbGFuZ1sndGVtcGxhdGVfaGVscCddID0gJ0FpZGUgcG91ciBsZXMgZ2FiYXJpdHMnOwokbGFuZ1snZmlsZV90ZW1wbGF0ZXMnXSA9ICdHYWJhcml0cyBzb3VzIGZvcm1lIGRlIGZpY2hpZXJzJzsKJGxhbmdbJ2FkZHRlbXBsYXRlJ10gPSAnQWpvdXRlciB1biBnYWJhcml0JzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnR2FiYXJpdCc7CiRsYW5nWyd0ZW1wbGF0ZW5hbWV0ZXh0J10gPSAnTm9tIGR1IGdhYmFyaXQnOwokbGFuZ1snZWRpdHRlbXBsYXRlJ10gPSAnw4lkaXRlciBsZSBnYWJhcml0JzsKJGxhbmdbJ2RlbGV0ZXRlbXBsYXRlJ10gPSAnU3VwcHJpbWVyIGxlIGdhYmFyaXQnOwokbGFuZ1snbmV3dGVtcGxhdGUnXSA9ICdOb20gZHUgbm91dmVhdSBnYWJhcml0JzsKJGxhbmdbJ3RlbXBsYXRlbmFtZWV4aXN0cyddID0gJ0VycmV1ciZuYnNwOzogVW4gZ2FiYXJpdCBleGlzdGUgZMOpasOgIGF2ZWMgY2Ugbm9tLiBWZXVpbGxleiBjaG9pc2lyIHVuIGF1dHJlIG5vbS4nOwokbGFuZ1sndGVtcGxhdGVpbXBvcnRlZCddID0gJ0xlIGdhYmFyaXQgYSDDqXTDqSBpbXBvcnTDqSBhdmVjIHN1Y2PDqHMgZGFucyBsYSBiYXNlIGRlIGRvbm7DqWVzIGV0IGVzdCBtYWludGVuYW50IGluc3RhbGzDqSBldCBwcsOqdCDDoCDDqnRyZSB1dGlsaXPDqS4nOwokbGFuZ1sndmlld19kZWZhdWx0X3N0eWxlc2hlZXQnXSA9ICdWb2lyIGxhIGZldWlsbGUgZGUgc3R5bGUgcGFyIGTDqWZhdXQnOwokbGFuZ1snZmlsZW5hbWUnXSA9ICdOb20gZGUgZmljaGllcic7CiRsYW5nWydpbXBvcnR0ZW1wbGF0ZSddID0gJ0ltcG9ydGVyIHVuIGdhYmFyaXQnOwokbGFuZ1sndGVtcGxhdGVfZGVsZXRlZCddID0gJ0xlIGdhYmFyaXQgYSDDqXTDqSBzdXBwcmltw6kgZGUgbGEgYmFzZSBkZSBkb25uw6llcyBhdmVjIHN1Y2PDqHMnOwokbGFuZ1sndXBkYXRldGVtcGxhdGVzdWNjZXNzJ10gPSAnTGUgZ2FiYXJpdCBhIMOpdMOpIG1pcyDDoCBqb3VyIGF2ZWMgc3VjY8Oocyc7CiRsYW5nWyd1cGRhdGV0ZW1wbGF0ZWZhaWx1cmUnXSA9ICdVbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZSBwZW5kYW50IGxhIG1pc2Ugw6Agam91ciBkdSBnYWJhcml0JzsKJGxhbmdbJ3NldHRpbmdzc2F2ZWQnXSA9ICdMZXMgcGFyYW3DqHRyZXMgb250IMOpdMOpIHNhdXZlZ2FyZMOpcyBhdmVjIHN1Y2PDqHMnOwokbGFuZ1snY2F0ZWdvcnlkZWxldGVkJ10gPSAnTGEgY2F0w6lnb3JpZSBhIMOpdMOpIHN1cHByaW3DqWUnOwokbGFuZ1snY2F0ZWdvcnl1cGRhdGVkJ10gPSAnTGEgY2F0w6lnb3JpZSBhIMOpdMOpIG1pc2Ugw6Agam91cic7CiRsYW5nWydjYXRlZ29yeWFkZGVkJ10gPSAnTGEgY2F0w6lnb3JpZSBhIMOpdMOpIGFqb3V0w6llJzsKJGxhbmdbJ2V2ZW50ZGVsZXRlZCddID0gJ0xcJ8OpdsOpbmVtZW50IGEgw6l0w6kgc3VwcHJpbcOpJzsKJGxhbmdbJ2V2ZW50dXBkYXRlZCddID0gJ0xcJ8OpdsOpbmVtZW50IGEgw6l0w6kgbWlzIMOgIGpvdXInOwokbGFuZ1snZGVmYXVsdF9wYWdlX2Vycm9yJ10gPSAnRXJyZXVyJm5ic3A7OiBWb3VzIGRldmV6IGTDqWZpbmlyIHVuZSBwYWdlIHBhciBkw6lmYXV0IHBvdXIgdXRpbGlzZXIgbGUgY2FsZW5kcmllciBsb3JzcXVlICJwcmV0dHkgVVJMcyIgZXN0IGFjdGl2w6kuIFZldWlsbGV6IGFsbGVyIMOgIGxcJ29uZ2xldCBkZXMgcGFyYW3DqHRyZXMgZHUgY2FsZW5kcmllciBldCBkw6lmaW5pciB1bmUgcGFnZSBwYXIgZMOpZmF1dC4nOwokbGFuZ1sndGltZV9hdCddID0gJ8OgJzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXBlJzsKJGxhbmdbJ25hbWUnXSA9ICdOb20nOwokbGFuZ1snb3JkZXInXSA9ICdPcmRyZSc7CiRsYW5nWydmaWVsZGFkZGVkJ10gPSAnQ2hhbXAgYWpvdXTDqSBhdmVjIHN1Y2PDqHMnOwokbGFuZ1snZmllbGRkZWxldGVkJ10gPSAnQ2hhbXAgc3VwcHJpbcOpJzsKJGxhbmdbJ2ZpZWxkcyddID0gJ0NoYW1wcyBwYXIgZMOpZmF1dCc7CiRsYW5nWyd0ZXh0ZmllbGQnXSA9ICdDaGFtcCB0ZXh0ZSc7CiRsYW5nWyd1cGxvYWRmaWVsZCddID0gJ0NoYW1wIGRcJ3VwbG9hZCBkZSBmaWNoaWVyJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnPHA+TGUgbW9kdWxlIENhbGVuZHJpZXIgKENHKSBhZmZpY2hlIGRlcyDDqXbDqW5lbWVudHMgc3VyIHZvdHJlIHBhZ2UuIFF1YW5kIGxlIG1vZHVsZSBlc3QgaW5zdGFsbMOpLCB1bmUgcGFnZSBkXCdhZG1pbmlzdHJhdGlvbiBkZSBjYWxlbmRyaWVyIGVzdCBham91dMOpZSBhdSBtZW51IENvbnRlbnUsIGV0IHZvdXMgcGVybWV0IGRlIGfDqXJlciB2b3Mgw6l2w6luZW1lbnRzLjwvcD4nOwokbGFuZ1snZGVmYXVsdGNhbGVuZGFycGFnZSddID0gJ1BhZ2UgcGFyIGTDqWZhdXQgcXVpIGNvbnRpZW50IGxlIGNhbGVuZHJpZXIuIENldHRlIHBhZ2UgZG9pdCBjb250ZW5pciBsYSBiYWxpc2Ugc21hcnR5IHF1aSBhcHBlbGxlIGxlIGNhbGVuZHJpZXIuIE7DqWNlc3NhaXJlIHNpIHZvdXMgdXRpbGlzZXogbGVzICJwcmV0dHkgVVJMcyIuJzsKJGxhbmdbJ3VwbG9hZGRpcmVjdG9yeSddID0gJ0Rvc3NpZXIgb8O5IGxlcyBmaWNoaWVycyB1cGxvYWTDqXMgZG9pdmVudCDDqnRyZSBzdG9ja8Opcyc7CiRsYW5nWyd1cGxvYWRmaWxldHlwZXMnXSA9ICdUeXBlcyBkZSBmaWNoaWVycyBhdXRvcmlzw6lzJzsKJGxhbmdbJ3VwbG9hZHVuaXF1ZSddID0gJ1NcJ2Fzc3VyZXIgcXVlIGxlcyBub21zIGRlIGZpY2hpZXJzIHNvaWVudCB1bmlxdWVzJzsKJGxhbmdbJ2NhbF9yZWN1cl9wZXJpb2QnXSA9ICdSw6lww6l0aXRpb24nOwokbGFuZ1snY2FsX3JlY3VyX3VudGlsJ10gPSAnUsOpcMOodGUganVzcXVcJ8OgJzsKJGxhbmdbJ2hlbHBfdGVtcGxhdGUnXSA9ICc8cD48Yj5BZmZpY2hlIGxlIG5vbSBkZSBsXCdhdXRldXIgOjwvYj48L3A+DQo8Y29kZT5BdXRldXIgOiB7JGV2ZW50LmF1dGhvcm5hbWV9PC9jb2RlPic7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/hu_HU.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2V2ZW50ZGVzYy1FdmVudEFkZGVkJ10gPSAnTmFwdCZhYWN1dGU7ciBlc2VtJmVhY3V0ZTtueSBmZWx2JmVhY3V0ZTt0ZWxlIHV0JmFhY3V0ZTtuIGgmaWFjdXRlO3Ymb2FjdXRlO2Rpayc7CiRsYW5nWydldmVudGRlc2MtRXZlbnRFZGl0ZWQnXSA9ICdOYXB0JmFhY3V0ZTtyIGVzZW0mZWFjdXRlO255IHN6ZWtyZXN6dCZlYWN1dGU7c2UgdXQmYWFjdXRlO24gaCZpYWN1dGU7diZvYWN1dGU7ZGlrJzsKJGxhbmdbJ2V2ZW50ZGVzYy1FdmVudERlbGV0ZWQnXSA9ICdOYXB0JmFhY3V0ZTtyIGVzZW0mZWFjdXRlO255IHQmb3VtbDtybCZlYWN1dGU7c2UgdXQmYWFjdXRlO24gaCZpYWN1dGU7diZvYWN1dGU7ZGlrJzsKJGxhbmdbJ2V2ZW50ZGVzYy1DYXRlZ29yeUFkZGVkJ10gPSAnS2F0ZWcmb2FjdXRlO3JpYSBsJmVhY3V0ZTt0cmVob3omYWFjdXRlO3NhIHV0JmFhY3V0ZTtuIGgmaWFjdXRlO3Ymb2FjdXRlO2Rpayc7CiRsYW5nWydldmVudGRlc2MtQ2F0ZWdvcnlFZGl0ZWQnXSA9ICdLYXRlZyZvYWN1dGU7cmlhIHN6ZXJrZXN6dCZlYWN1dGU7c2UgdXQmYWFjdXRlO24gaCZpYWN1dGU7diZvYWN1dGU7ZGlrJzsKJGxhbmdbJ2V2ZW50ZGVzYy1DYXRlZ29yeURlbGV0ZWQnXSA9ICdLYXRlZyZvYWN1dGU7cmlhIHQmb3VtbDtybCZlYWN1dGU7c2UgdXQmYWFjdXRlO24gaCZpYWN1dGU7diZvYWN1dGU7ZGlrJzsKJGxhbmdbJ2V2ZW50aGVscC1FdmVudEFkZGVkJ10gPSAnPHA+U2VudCB3aGVuIGEgY2FsZW5kYXIgZXZlbnQgaXMgYWRkZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtldmVudF90aXRsZVwmcXVvdDsgLSBFdmVudCBUaXRsZTwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X3N1bW1hcnlcJnF1b3Q7IC0gU3VtbWFyeSBUZXh0PC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGV0YWlsc1wmcXVvdDsgLSBEZXRhaWxlZCBEZXNjcmlwdGlvbjwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2RhdGVfc3RhcnRcJnF1b3Q7IC0gVGhlIGV2ZW50IHN0YXJ0IGRhdGUvdGltZTwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2RhdGVfZW5kXCZxdW90OyAtIFRoZSBldmVudCBlbmQgZGF0ZS90aW1lPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfY3JlYXRlZF9ieVwmcXVvdDsgLSBUaGUgdXNlcmlkIG9mIHRoZSBhdXRob3I8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9pZFwmcXVvdDsgLSBUaGUgZXZlbnQgaWQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGhlbHAtRXZlbnRFZGl0ZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBldmVudCBpcyBlZGl0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtldmVudF90aXRsZVwmcXVvdDsgLSBFdmVudCBUaXRsZTwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X3N1bW1hcnlcJnF1b3Q7IC0gU3VtbWFyeSBUZXh0PC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGV0YWlsc1wmcXVvdDsgLSBEZXRhaWxlZCBEZXNjcmlwdGlvbjwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2RhdGVfc3RhcnRcJnF1b3Q7IC0gVGhlIGV2ZW50IHN0YXJ0IGRhdGUvdGltZTwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2RhdGVfZW5kXCZxdW90OyAtIFRoZSBldmVudCBlbmQgZGF0ZS90aW1lPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfY3JlYXRlZF9ieVwmcXVvdDsgLSBUaGUgdXNlcmlkIG9mIHRoZSBhdXRob3I8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9pZFwmcXVvdDsgLSBUaGUgZXZlbnQgaWQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGhlbHAtRXZlbnREZWxldGVkJ10gPSAnPHA+U2VudCB3aGVuIGEgY2FsZW5kYXIgZXZlbnQgaXMgZGVsZXRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2V2ZW50X2lkXCZxdW90OyAtIFRoZSBldmVudCBpZDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50aGVscC1DYXRlZ29yeUFkZGVkJ10gPSAnPHA+U2VudCB3aGVuIGEgY2FsZW5kYXIgY2F0ZWdvcnkgaXMgYWRkZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9pZFwmcXVvdDsgLSBUaGUgY2F0ZWdvcnkgaWQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGhlbHAtQ2F0ZWdvcnlFZGl0ZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBjYXRlZ29yeSBpcyBlZGl0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9pZFwmcXVvdDsgLSBUaGUgY2F0ZWdvcnkgaWQ8L2xpPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9uYW1lXCZxdW90OyAtIFRoZSBjYXRlZ29yeSBuYW1lPC9saT4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfb3JkZXJcJnF1b3Q7IC0gVGhlIGNhdGVnb3J5IHNvcnQgb3JkZXI8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGhlbHAtQ2F0ZWdvcnlEZWxldGVkJ10gPSAnPHA+U2VudCB3aGVuIGEgY2FsZW5kYXIgY2F0ZWdvcnkgaXMgZGVsZXRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2NhdGVnb3J5X2lkXCZxdW90OyAtIFRoZSBjYXRlZ29yeSBpZDwvbGk+DQo8bGk+XCZxdW90O2NhdGVnb3J5X25hbWVcJnF1b3Q7IC0gVGhlIGNhdGVnb3J5IG5hbWU8L2xpPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9vcmRlclwmcXVvdDsgLSBUaGUgY2F0ZWdvcnkgc29ydCBvcmRlcjwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ21zZ19ldmVudGFkZGVkJ10gPSAnQXogZXNlbSZlYWN1dGU7bnl0IGhvenomYWFjdXRlO2FkdHVrLic7CiRsYW5nWydlcnJvcl9ub3VwbG9hZCddID0gJ0hJQkE6IE5pbmNzIGZlbHQmb3VtbDtsdHZlIGYmYWFjdXRlO2psLic7CiRsYW5nWydlcnJvcl9pbnZhbGlkZmlsZW5hbWUnXSA9ICdISUJBOiBBIGZlbHQmb3VtbDtsdCZvdW1sO3R0IGYmYWFjdXRlO2psIG5lbSBlbGZvZ2FkaGF0Jm9hY3V0ZTsnOwokbGFuZ1snZXJyb3JfcHJvYmxlbXdpdGh1cGxvYWQnXSA9ICdISUJBOiBBIGYmYWFjdXRlO2psIGZlbHQmb3VtbDtsdCZlYWN1dGU7c2UgayZvdW1sO3piZW4gaGliYSB0Jm91bWw7cnQmZWFjdXRlO250JzsKJGxhbmdbJ2Vycm9yX2ZpbGVjb3B5ZmFpbGVkJ10gPSAnSElCQTogSGliYSB0Jm91bWw7cnQmZWFjdXRlO250IG1payZvdW1sO3piZW4gYSB2JmVhY3V0ZTtnbGVnZXMgaGVseSZlYWN1dGU7cmUgbSZhYWN1dGU7c29sdHVrIGEgZiZhYWN1dGU7amx0JzsKJGxhbmdbJ2Vycm9yX2ZpbGVleGlzdHMnXSA9ICdISUJBOiBJbHllbiBuZXbFsSBmJmFhY3V0ZTtqbCBtJmFhY3V0ZTtyIGwmZWFjdXRlO3RlemlrJzsKJGxhbmdbJ2Vycm9yX2NzdmZpbGVub3Rmb3VuZCddID0gJ0hJQkE6IE5lbSB0YWwmYWFjdXRlO2xvbSBhIENTViBmJmFhY3V0ZTtqbHQnOwokbGFuZ1snZXJyb3JfY2FudG9wZW5maWxlJ10gPSAnSElCQTogTmVtIHR1ZG9tIG1lZ255aXRuaSBhIGYmYWFjdXRlO2psdCc7CiRsYW5nWydjYWxfY2FsZW5kYXInXSA9ICdOYXB0JmFhY3V0ZTtyJzsKJGxhbmdbJ2NhbF9kZXNjcmlwdGlvbiddID0gJ0xlJmlhY3V0ZTtyJmFhY3V0ZTtzJzsKJGxhbmdbJ2NhbF9hZGRldmVudCddID0gJ0VzZW0mZWFjdXRlO255IGZlbHYmZWFjdXRlO3RlbGUnOwokbGFuZ1snY2FsX2ltcG9ydF9ldmVudHMnXSA9ICdFc2VtJmVhY3V0ZTtueWVrIGltcG9ydCZhYWN1dGU7bCZhYWN1dGU7c2EnOwokbGFuZ1snY2FsX2V2ZW50cyddID0gJ0VzZW0mZWFjdXRlO255ZWsnOwokbGFuZ1snY2FsX2NhdGVnb3JpZXMnXSA9ICdLYXRlZyZvYWN1dGU7cmkmYWFjdXRlO2snOwokbGFuZ1snY2FsX2NhbGVuZGFyX3RlbXBsYXRlJ10gPSAnTmFwdCZhYWN1dGU7ciBzYWJsb24nOwokbGFuZ1snY2FsX2xpc3RfdGVtcGxhdGUnXSA9ICdMaXN0YSBzYWJsb24nOwokbGFuZ1snY2FsX3VwY29taW5nbGlzdF90ZW1wbGF0ZSddID0gJ0smdXVtbDtzeiZvdW1sO2Imb3VtbDtuICZhYWN1dGU7bGwmb2FjdXRlOyBlc2VtJmVhY3V0ZTtueWVrIHNhYmxvbmphJzsKJGxhbmdbJ2NhbF9ldmVudF90ZW1wbGF0ZSddID0gJ0VzZW0mZWFjdXRlO255IHNhYmxvbic7CiRsYW5nWydjYWxfc2V0dGluZ3MnXSA9ICdCZSZhYWN1dGU7bGwmaWFjdXRlO3QmYWFjdXRlO3Nvayc7CiRsYW5nWydjYWxfcHJldiddID0gJyZsYXF1bzsgRWzFkXrFkSc7CiRsYW5nWydjYWxfbmV4dCddID0gJ0smb3VtbDt2ZXRrZXrFkSAmcmFxdW87JzsKJGxhbmdbJ2NhbF9jYXRlZ29yaWVzX3VwZGF0ZWQnXSA9ICdBIGthdGVnJm9hY3V0ZTtyaSZhYWN1dGU7a2F0IGZyaXNzJmlhY3V0ZTt0ZXR0JnV1bWw7ayc7CiRsYW5nWydjYWxfc2V0dGluZ3NfdXBkYXRlZCddID0gJ0EgYmUmYWFjdXRlO2xsJmlhY3V0ZTt0JmFhY3V0ZTtzb2thdCBmcnNzJmlhY3V0ZTt0ZXR0JnV1bWw7ayc7CiRsYW5nWydjYWxfYWRkX2V2ZW50J10gPSAnRXNlbSZlYWN1dGU7bnkgZmVsdiZlYWN1dGU7dGVsZSc7CiRsYW5nWydjYWxfZWRpdCddID0gJ1N6ZXJrZXN6dCZlYWN1dGU7cyc7CiRsYW5nWydjYWxfZGVsZXRlJ10gPSAnVCZvdW1sO3JsJmVhY3V0ZTtzJzsKJGxhbmdbJ2NhbF9hcmV5b3VzdXJlJ10gPSAnQml6dG9zYW4gdCZvdW1sO3Imb3VtbDtsbmkgYWthcm9kJzsKJGxhbmdbJ2NhbF91cGRhdGVfdGVtcGxhdGUnXSA9ICdTYWJsb24gZnJpc3MmaWFjdXRlO3QmZWFjdXRlO3NlJzsKJGxhbmdbJ2NhbF9zdW5kYXknXSA9ICdWYXMmYWFjdXRlO3JuYXAnOwokbGFuZ1snY2FsX21vbmRheSddID0gJ0gmZWFjdXRlO3RmxZEnOwokbGFuZ1snY2FsX3R1ZXNkYXknXSA9ICdLZWRkJzsKJGxhbmdbJ2NhbF93ZWRuZXNkYXknXSA9ICdTemVyZGEnOwokbGFuZ1snY2FsX3RodXJzZGF5J10gPSAnQ3MmdXVtbDt0Jm91bWw7cnQmb3VtbDtrJzsKJGxhbmdbJ2NhbF9mcmlkYXknXSA9ICdQJmVhY3V0ZTtudGVrJzsKJGxhbmdbJ2NhbF9zYXR1cmRheSddID0gJ1N6b21iYXQnOwokbGFuZ1snY2FsX3N1biddID0gJ1Zhcyc7CiRsYW5nWydjYWxfbW9uJ10gPSAnSCZlYWN1dGU7dCc7CiRsYW5nWydjYWxfdHVlcyddID0gJ0tlZCc7CiRsYW5nWydjYWxfd2VkJ10gPSAnU3plJzsKJGxhbmdbJ2NhbF90aHVycyddID0gJ0NzJnV1bWw7JzsKJGxhbmdbJ2NhbF9mcmknXSA9ICdQJmVhY3V0ZTtuJzsKJGxhbmdbJ2NhbF9zYXQnXSA9ICdTem8nOwokbGFuZ1snY2FsX2phbnVhcnknXSA9ICdqYW51JmFhY3V0ZTtyJzsKJGxhbmdbJ2NhbF9mZWJydWFyeSddID0gJ2ZlYnJ1JmFhY3V0ZTtyJzsKJGxhbmdbJ2NhbF9tYXJjaCddID0gJ20mYWFjdXRlO3JjaXVzJzsKJGxhbmdbJ2NhbF9hcHJpbCddID0gJyZhYWN1dGU7cHJpbGlzJzsKJGxhbmdbJ2NhbF9tYXknXSA9ICdtJmFhY3V0ZTtqdXMnOwokbGFuZ1snY2FsX2p1bmUnXSA9ICdqJnVhY3V0ZTtuaXVzJzsKJGxhbmdbJ2NhbF9qdWx5J10gPSAnaiZ1YWN1dGU7bGl1cyc7CiRsYW5nWydjYWxfYXVndXN0J10gPSAnYXVndXN6dHVzJzsKJGxhbmdbJ2NhbF9zZXB0ZW1iZXInXSA9ICdzemVwdGVtYmVyJzsKJGxhbmdbJ2NhbF9vY3RvYmVyJ10gPSAnb2t0Jm9hY3V0ZTtiZXInOwokbGFuZ1snY2FsX25vdmVtYmVyJ10gPSAnbm92ZW1iZXInOwokbGFuZ1snY2FsX2RlY2VtYmVyJ10gPSAnZGVjZW1iZXInOwokbGFuZ1snY2FsX2FkZCddID0gJ0hvenomYWFjdXRlO2FkJmFhY3V0ZTtzJzsKJGxhbmdbJ2NhbF91cGRhdGUnXSA9ICdGcmlzcyZpYWN1dGU7dCZlYWN1dGU7cyc7CiRsYW5nWydjYWxfZXZlbnQnXSA9ICdFc2VtJmVhY3V0ZTtueSc7CiRsYW5nWydjYWxfZGF0ZSddID0gJ0QmYWFjdXRlO3R1bSc7CiRsYW5nWydjYWxfc3VtbWFyeSddID0gJyZPdW1sO3NzemVmb2dsYWwmb2FjdXRlOyc7CiRsYW5nWydjYWxfZGV0YWlscyddID0gJ1ImZWFjdXRlO3N6bGV0ZWsnOwokbGFuZ1snY2FsX21vcmUnXSA9ICd0b3YmYWFjdXRlO2JiID4+JzsKJGxhbmdbJ2NhbF9yZXR1cm4nXSA9ICdWaXNzemEnOwokbGFuZ1snY2FsX3RvJ10gPSAnaWcnOwokbGFuZ1snY2FsX3Bhc3RfZXZlbnRzJ10gPSAnTSZ1YWN1dGU7bHRiZWxpIGVzZW0mZWFjdXRlO255ZWsnOwokbGFuZ1snY2FsX3VwY29taW5nX2V2ZW50cyddID0gJ0smdXVtbDtzeiZvdW1sO2Imb3VtbDtuICZhYWN1dGU7bGwmb2FjdXRlOyBlc2VtJmVhY3V0ZTtueWVrJzsKJGxhbmdbJ2NhbF9hbnlfY2F0ZWdvcnknXSA9ICdUZXRzesWRbGVnZXMga2F0ZWcmb2FjdXRlO3JpYSc7CiRsYW5nWydjYWxfc2hvd19vbmx5X2V2ZW50c19pbiddID0gJ0NzYWsgYXogZXplbiBpZMWRc3pha3JhIGVzxZEgZXNlbSZlYWN1dGU7bnllayBtdXRhdCZhYWN1dGU7c2E6JzsKJGxhbmdbJ2NhbF9maWx0ZXJfYnknXSA9ICdTesWxciZlYWN1dGU7c2kgZmVsdCZlYWN1dGU7dGVsJzsKJGxhbmdbJ2NhbF9nbyddID0gJ0hhZGQgbWVuamVuJzsKJGxhbmdbJ2NhbF90aXRsZSddID0gJ0MmaWFjdXRlO20nOwokbGFuZ1snY2FsX2Zyb21kYXRlJ10gPSAnS2V6ZMWRZCZhYWN1dGU7dHVtJzsKJGxhbmdbJ2NhbF90b2RhdGUnXSA9ICdCZWZlamV6xZEgZCZhYWN1dGU7dHVtJzsKJGxhbmdbJ2NhbF91cGRhdGVfY2F0ZWdvcmllcyddID0gJ0thdGVnJm9hY3V0ZTtyaSZhYWN1dGU7ayBmcmlzcyZpYWN1dGU7dCZlYWN1dGU7c2UnOwokbGFuZ1snY2FsX2xhbmd1YWdlJ10gPSAnTnllbHYnOwokbGFuZ1snY2FsX3VwZGF0ZXNldHRpbmdzJ10gPSAnQmUmYWFjdXRlO2xsJmlhY3V0ZTt0JmFhY3V0ZTtzb2sgZnJpc3MmaWFjdXRlO3QmZWFjdXRlO3NlJzsKJGxhbmdbJ2NhbF91c2VfdHdlbHZlX2hvdXJfY2xvY2snXSA9ICcxMiAmb2FjdXRlO3ImYWFjdXRlO3MgJm9hY3V0ZTtyJmFhY3V0ZTt0IGhhc3puJmFhY3V0ZTtsanVuayBhIGxlZyZvdW1sO3JkJnV1bWw7bMWRIGxpc3QmYWFjdXRlO2tiYW4/JzsKJGxhbmdbJ2NhbF9kZWZhdWx0X2NhdGVnb3J5J10gPSAnQWxhcCZlYWN1dGU7cnRlbG1lemV0dCBrYXRlZyZvYWN1dGU7cmlhJzsKJGxhbmdbJ2NhbF91cGRhdGVfZmllbGRzJ10gPSAnTWV6xZFrIGZyaXNzJmlhY3V0ZTt0JmVhY3V0ZTtzZSc7CiRsYW5nWydmb3JjZV9jYXRlZ29yeSddID0gJ0xlZ2FsJmFhY3V0ZTtiYiBlZ3kga2F0ZWcmb2FjdXRlO3JpYSBtZWdhZCZhYWN1dGU7cyZhYWN1dGU7bmFrIGsmb3VtbDt0ZWxlesWRdiZlYWN1dGU7IHQmZWFjdXRlO3RlbGUnOwokbGFuZ1snc2hvd3Bhc3R5ZWFycyddID0gJ0gmYWFjdXRlO255IG0mdWFjdXRlO2x0YmVsaSAmZWFjdXRlO3YgbWVnZW5nZWRldHQ/JzsKJGxhbmdbJ3Nob3dmdXR1cmV5ZWFycyddID0gJ0gmYWFjdXRlO255IGomb3VtbDt2xZFiZWxpICZlYWN1dGU7diBtZWdlbmdlZGV0dD8nOwokbGFuZ1snaGlkZXN1bW1hcnknXSA9ICdFbHJlanRzJnV1bWw7ayBheiAmb3VtbDtzc3plZm9nbGFsJm9hY3V0ZTsgbWV6xZF0Pyc7CiRsYW5nWydoaWRlY29udGVudCddID0gJ0VscmVqdHMmdXVtbDtrIGEgdGFydGFsb20gbWV6xZF0Pyc7CiRsYW5nWydjYXRlZ29yeV9yZW1pbmRlciddID0gJ0smZWFjdXRlO3JsZWssIGVsbGVuxZFyaXpkIGEga2F0ZWcmb2FjdXRlO3JpJmFhY3V0ZTtrYXQgZWhoZXogYXogZXNlbSZlYWN1dGU7bnloZXonOwokbGFuZ1snbW9kdWxlX2V4YW1wbGVfc3R5bGVzaGVldCddID0gJ1AmZWFjdXRlO2xkYSBuYXB0JmFhY3V0ZTtyIENTUy1yZSc7CiRsYW5nWydlcnJvcl9wZXJtaXNzaW9uJ10gPSAnTWVnZmVsZWzFkSBqb2dvc3VsdHMmYWFjdXRlO2dyYSAoJXMpIHZhbiBzeiZ1dW1sO2tzJmVhY3V0ZTtnIGV6ZW4gZnVua2Npb25hbGl0JmFhY3V0ZTtzIGVsJmVhY3V0ZTtyJmVhY3V0ZTtzJmVhY3V0ZTtoZXonOwokbGFuZ1snaW5zdGFsbF9wb3N0bWVzc2FnZSddID0gJ0d5xZF6xZFkaiBtZWcgciZvYWN1dGU7bGEsIGhvZ3kgbWVnYWR0YWQgYSAmcXVvdDtNb2RpZnkgQ2FsZW5kYXImcXVvdDsgam9nb3N1bHRzJmFhY3V0ZTtnb3QgYXpva25hayBhIGZlbGhhc3puJmFhY3V0ZTtsJm9hY3V0ZTtrbmFrLCBha2lrIGEgbmFwdCZhYWN1dGU7cmF0IGZvZ2omYWFjdXRlO2sga2FyYmFudGFydGFuaSc7CiRsYW5nWydkZWxldGV0YWdnZWQnXSA9ICdNZWdqZWwmb3VtbDtsdCBlc2VtJmVhY3V0ZTtueWVrIHQmb3VtbDtybCZlYWN1dGU7c2UnOwokbGFuZ1snY29uZmlybWRlbGV0ZXRhZ2dlZCddID0gJ0JpenRvc2FuIHQmb3VtbDtybCZvdW1sO2QgZXpla2V0IGF6IGVzZW0mZWFjdXRlO255ZWtldD8nOwokbGFuZ1sndGFnZ2VkZGVsZXRlZCddID0gJ0EgbWVnamVsJm91bWw7bHQgZXNlbSZlYWN1dGU7bnlla2V0IHQmb3VtbDtyJm91bWw7bHQmdXVtbDtrJzsKJGxhbmdbJ3RlbXBsYXRlcyddID0gJ1NhYmxvbm9rJzsKJGxhbmdbJ3RlbXBsYXRlX2hlbHAnXSA9ICdTYWJsb24gcyZ1YWN1dGU7ZyZvYWN1dGU7JzsKJGxhbmdbJ2ZpbGVfdGVtcGxhdGVzJ10gPSAnRiZhYWN1dGU7amwgc2FibG9ub2snOwokbGFuZ1snYWRkdGVtcGxhdGUnXSA9ICdTYWJsb24gaG96eiZhYWN1dGU7YWQmYWFjdXRlO3NhJzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnU2FibG9uJzsKJGxhbmdbJ3RlbXBsYXRlbmFtZXRleHQnXSA9ICdTYWJsb24gbmV2ZSc7CiRsYW5nWydlZGl0dGVtcGxhdGUnXSA9ICdTYWJsb24gc3plcmtlc3p0JmVhY3V0ZTtzZSc7CiRsYW5nWydkZWxldGV0ZW1wbGF0ZSddID0gJ1NhYmxvbiB0Jm91bWw7cmwmZWFjdXRlO3NlJzsKJGxhbmdbJ25ld3RlbXBsYXRlJ10gPSAnJlVhY3V0ZTtqIHNhYmxvbiBuZXZlJzsKJGxhbmdbJ3RlbXBsYXRlbmFtZWV4aXN0cyddID0gJ0hpYmE6IGlseWVuIG5ldsWxIHNhYmxvbiBtJmFhY3V0ZTtyIHZhbi4gSyZlYWN1dGU7cmxlaywgdiZhYWN1dGU7bGFzc3ogbSZhYWN1dGU7cyBuZXZldC4nOwokbGFuZ1sndGVtcGxhdGVpbXBvcnRlZCddID0gJ0Egc2FibG9udCBzaWtlcmVzZW4gaW1wb3J0JmFhY3V0ZTtsdHVrIGF6IGFkYXRiJmFhY3V0ZTt6aXNiYSwgbW9zdCBtJmFhY3V0ZTtyIGhhc3puJmFhY3V0ZTtsaGF0Jm9hY3V0ZTsuJzsKJGxhbmdbJ3ZpZXdfZGVmYXVsdF9zdHlsZXNoZWV0J10gPSAnQWxhcCZlYWN1dGU7cnRlbG1lemV0dCBzdCZpYWN1dGU7bHVzbGFwIG1lZ3Rla2ludCZlYWN1dGU7c2UnOwokbGFuZ1snZmlsZW5hbWUnXSA9ICdGJmFhY3V0ZTtqbG4mZWFjdXRlO3YnOwokbGFuZ1snaW1wb3J0dGVtcGxhdGUnXSA9ICdTYWJsb24gaW1wb3J0JmFhY3V0ZTtsJmFhY3V0ZTtzYSc7CiRsYW5nWyd0ZW1wbGF0ZV9kZWxldGVkJ10gPSAnQSBzYWJsb250IHNpa2VyZXNlbiB0Jm91bWw7ciZvdW1sO2x0JnV1bWw7ayBheiBhZGF0YiZhYWN1dGU7emlzYiZvYWN1dGU7bCc7CiRsYW5nWyd1cGRhdGV0ZW1wbGF0ZXN1Y2Nlc3MnXSA9ICdBIHNhYmxvbnQgc2lrZXJlc2VuIGZyaXNzJmlhY3V0ZTt0ZXR0JnV1bWw7ayc7CiRsYW5nWyd1cGRhdGV0ZW1wbGF0ZWZhaWx1cmUnXSA9ICdIaWJhIHQmb3VtbDtydCZlYWN1dGU7bnQgYSBzYWJsb24gZnJpc3MmaWFjdXRlO3QmZWFjdXRlO3NlIGsmb3VtbDt6YmVuJzsKJGxhbmdbJ3NldHRpbmdzc2F2ZWQnXSA9ICdBIGJlJmFhY3V0ZTtsbCZpYWN1dGU7dCZhYWN1dGU7c29rYXQgbWVudGV0dCZ1dW1sO2suJzsKJGxhbmdbJ2NhdGVnb3J5ZGVsZXRlZCddID0gJ0Ega2F0ZWcmb2FjdXRlO3JpJmFhY3V0ZTt0IHNpa2VyZXNlbiB0Jm91bWw7ciZvdW1sO2x0JnV1bWw7ay4nOwokbGFuZ1snY2F0ZWdvcnl1cGRhdGVkJ10gPSAnQSBrYXRlZyZvYWN1dGU7cmkmYWFjdXRlO3Qgc2lrZXJlc2VuIGZyaXNzJmlhY3V0ZTt0ZXR0JnV1bWw7ay4nOwokbGFuZ1snY2F0ZWdvcnlhZGRlZCddID0gJ0Ega2F0ZWcmb2FjdXRlO3JpJmFhY3V0ZTt0IHNpa2VyZXNlbiBob3p6JmFhY3V0ZTthZHR1ay4nOwokbGFuZ1snZXZlbnRkZWxldGVkJ10gPSAnQXogZXNlbSZlYWN1dGU7bnl0IHQmb3VtbDtyJm91bWw7bHQmdXVtbDtrLic7CiRsYW5nWydldmVudHVwZGF0ZWQnXSA9ICdBeiBlc2VtJmVhY3V0ZTt5dCBmcmlzcyZpYWN1dGU7dGV0dCZ1dW1sO2suJzsKJGxhbmdbJ2RlZmF1bHRfcGFnZV9lcnJvciddID0gJ0hpYmE6IEsmb3VtbDt0ZWxlesWRIGFsYXAmZWFjdXRlO3J0ZWxtZXpldHQgb2xkYWx0IGJlJmFhY3V0ZTtsbCZpYWN1dGU7dGFuaSwgaGEgYSBuYXB0JmFhY3V0ZTtydCBwcmV0dHkgdXJsLWVra2VsIGVneSZ1dW1sO3R0IGFrYXJvZCBoYXN6biZhYWN1dGU7bG5pLiBLJmVhY3V0ZTtybGVrLCBrYXR0aW50cyBhIG5hcHQmYWFjdXRlO3IgYmUmYWFjdXRlO2xsJmlhY3V0ZTt0JmFhY3V0ZTtzb2sgZiZ1dW1sO2xyZSwgJmVhY3V0ZTtzIHYmYWFjdXRlO2xhc3N6IGtpIGVneWV0Lic7CiRsYW5nWyd0aW1lX2F0J10gPSAnLWtvcic7CiRsYW5nWyd0eXBlJ10gPSAnVCZpYWN1dGU7cHVzJzsKJGxhbmdbJ25hbWUnXSA9ICdOJmVhY3V0ZTt2JzsKJGxhbmdbJ29yZGVyJ10gPSAnU29ycmVuZCc7CiRsYW5nWydmaWVsZGFkZGVkJ10gPSAnQSBtZXrFkXQgc2lrZXJlc2VuIGhvenomYWFjdXRlO2FkdHVrLic7CiRsYW5nWydmaWVsZGRlbGV0ZWQnXSA9ICdBIG1lesWRdCBzaWtlcmVzZW4gdCZvdW1sO3Imb3VtbDtsdCZ1dW1sO2suJzsKJGxhbmdbJ2ZpZWxkcyddID0gJ1NhaiZhYWN1dGU7dCBtZXrFkWsnOwokbGFuZ1sndGV4dGZpZWxkJ10gPSAnU3omb3VtbDt2ZWdlcyBtZXrFkSc7CiRsYW5nWyd1cGxvYWRmaWVsZCddID0gJ0YmYWFjdXRlO2psIGZlbHQmb3VtbDtsdMWRIG1lesWRJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnPHA+Q2FsZW5kYXIgaXMgYSBtb2R1bGUgZm9yIGRpc3BsYXlpbmcgZXZlbnRzIG9uIHlvdXIgcGFnZS4gV2hlbiB0aGUNCgkJbW9kdWxlIGlzIGluc3RhbGxlZCwgYSBDYWxlbmRhciBhZG1pbiBwYWdlIGlzIGFkZGVkIHRvIHRoZSBjb250ZW50IG1lbnUNCgkJdGhhdCB3aWxsIGFsbG93IHlvdSB0byBtYW5hZ2UgeW91ciBldmVudHMuPC9wPic7CiRsYW5nWydkZWZhdWx0Y2FsZW5kYXJwYWdlJ10gPSAnQXogYWxhcCZlYWN1dGU7cnRlbG1lemV0dCBvbGRhbCwgYW1pIGEgTmFwdCZhYWN1dGU7cmF0IHRhcnRhbG1henphLiBFeiBrZWxsLCBob2d5IHRhcnRhbG1henpvbiBvbHlhbiBTbWFydHkgdGFnLWV0LCBhbWkgYSBOYXB0JmFhY3V0ZTtycmEgaGl2YXRrb3ppay4gSyZvdW1sO3RlbGV6xZEgYmUmYWFjdXRlO2xsJmlhY3V0ZTt0YW5pLCBoYSBwcmV0dHkgdXJsLWVrZXQgaGFzem4mYWFjdXRlO2xzei4nOwokbGFuZ1sndXBsb2FkZGlyZWN0b3J5J10gPSAnQXogYSBrJm91bWw7bnl2dCZhYWN1dGU7ciwgYWhvdmEgYSBmZWx0Jm91bWw7bHQmb3VtbDt0dCBmJmFhY3V0ZTtqbG9rIGtlciZ1dW1sO2xuZWsuJzsKJGxhbmdbJ3VwbG9hZGZpbGV0eXBlcyddID0gJ01lZ2VuZ2VkZXR0IGYmYWFjdXRlO2psdCZpYWN1dGU7cHVzb2snOwokbGFuZ1sndXBsb2FkdW5pcXVlJ10gPSAnRWd5ZWRpIGYmYWFjdXRlO2psbmV2ZWsgYml6dG9zJmlhY3V0ZTt0JmFhY3V0ZTtzYSc7CiRsYW5nWyd0aHVtYl93aWR0aCddID0gJ01pbmlhdMWxciBzeiZlYWN1dGU7bGVzcyZlYWN1dGU7Zyc7CiRsYW5nWyd0aHVtYl9oZWlnaHQnXSA9ICdNaW5pYXTFsXIgbWFnYXNzJmFhY3V0ZTtnJzsKJGxhbmdbJ2xhcmdlX3dpZHRoJ10gPSAnTm9ybSZhYWN1dGU7bCBrJmVhY3V0ZTtwIHN6JmVhY3V0ZTtsZXNzJmVhY3V0ZTtnJzsKJGxhbmdbJ2xhcmdlX2hlaWdodCddID0gJ05vcm0mYWFjdXRlO2wgayZlYWN1dGU7cCBtYWdhc3MmYWFjdXRlO2cnOwokbGFuZ1snY2FsX3JlY3VyX3BlcmlvZCddID0gJ1Zpc3N6YWhpdmF0a296JmFhY3V0ZTtzb2snOwokbGFuZ1snY2FsX3JlY3VyX3VudGlsJ10gPSAnVmlzc3phaGl2YXRrb3omYWFjdXRlO3NvayBlZGRpZzonOwokbGFuZ1snaGVscF90ZW1wbGF0ZSddID0gJzxwPjxiPlByaW50IEF1dGhvciBOYW1lOjwvYj48L3A+DQo8Y29kZT5BdXRob3I6IHskZXZlbnQuYXV0aG9ybmFtZX08L2NvZGU+DQonOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/it_IT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2luZm9fY2FsX2ZpbHRlcl9ieSddID0gJ1F1YW5kbyBzaSByaWNlcmNhIDxlbT4oZmlsdHJvKTwvZW0+IHRyYW1pdGUgcGFyb2xlIG5lbCB0aXRvbG8sIGxvIHNjb3JyaW1lbnRvIGRlbGxlIGRhdGUgbm9uICZlZ3JhdmU7IGRpc3BvbmliaWxlJzsKJGxhbmdbJ21zZ19ub2RhdGVzJ10gPSAnUmljZXJjYSBwZXIgdGl0b2xvIGF0dGl2YXRhJzsKJGxhbmdbJ3RpdGxlX3JlY3VycmluZ19ldmVudCddID0gJ1F1ZXN0byAmZWdyYXZlOyB1biBldmVudG8gcmlwZXRpdGl2byBjb24gZGVyaXZhdGknOwokbGFuZ1sndGl0bGVfY2hpbGRfZXZlbnQnXSA9ICdRdWVzdG8gJmVncmF2ZTsgdW4gZGVyaXZhdG8gZGkgdW4gZWxlbWVudG8gcmlwZXRpdGl2byBzdXBlcmlvcmUnOwokbGFuZ1snZXJyb3Jfc29tZWRlbGV0ZWQnXSA9ICdQYXJ0ZSBkZWdsaSBldmVudGkgc29ubyBzdGF0aSBlbGltaW5hdGkuIFR1dHRhdmlhIGFsY3VuaSBub24gc29ubyBzdGF0aSBjYW5jZWxsYXRpIGEgY2F1c2EgZGVpIHBlcm1lc3NpJzsKJGxhbmdbJ2Vycm9yX25vbmVkZWxldGVkJ10gPSAnQSBjYXVzYSBkZWkgcGVybWVzc2kgbyBhbHRyaSBlcnJvcmksIG5lc3N1bm8gZGVnbGkgZWxlbWVudGkgc2VsZXppb25hdGkgJmVncmF2ZTsgc3RhdG8gZWxpbWluYXRvJzsKJGxhbmdbJ2Vycm9yX2RlbGV0ZWZhaWxlZCddID0gJ0VsaW1pbmF6aW9uZSBkZWdsaSBlbGVtZW50aSBmYWxsaXRhJzsKJGxhbmdbJ2ZpbGVhdHRhY2htZW50J10gPSAnQWxsZWdhIGZpbGUnOwokbGFuZ1sncHJvbXB0X2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdJbXBvc3RhemlvbmkgR2VuZXJhbGknOwokbGFuZ1sncHJvbXB0X2VkaXRpbmdfc2V0dGluZ3MnXSA9ICdJbXBvc3RhemlvbmkgZGkgTW9kaWZpY2EgRXZlbnRvJzsKJGxhbmdbJ3Byb21wdF9mZWVkaXRfc2V0dGluZ3MnXSA9ICdJbXBvc3RhemlvbmkgZGkgTW9kaWZpY2EgTGF0byBVdGVudGUnOwokbGFuZ1sncHJldl9tb250aCddID0gJ1ZhaSBhbCBtZXNlIHByZWNlZGVudGUnOwokbGFuZ1snbmV4dF9tb250aCddID0gJ1ZhaSBhbCBtZXNlIHN1Y2Nlc3Npdm8nOwokbGFuZ1snaW5mb19jdXN0b21maWVsZHNfdGFiJ10gPSAnSSBjYW1waSBwZXJzb25hbGl6emF0aSBwb3Nzb25vIGVzc2VyZSByaW9yZGluYXRpIHRyYXNjaW5hbmRvIGxlIHJpZ2hlLiBTb2xvIGkgY2FtcGkgZGkgdGVzdG8gc29ubyByaWNlcmNhYmlsaSBlIHNvbG8gbGUgdGV4dCBhcmVhIHBvc3Nvbm8gYXZlcmUgY2FtcGkgV1lTSVdZRyBhbGxlZ2F0aS4gPHN0cm9uZyBzdHlsZT0mcXVvdDtjb2xvcjogcmVkOyZxdW90Oz5Ob3RhOjwvc3Ryb25nPiBJIGNhbXBpIFdZU0lXWUcgbm9uIHZlcnJhbm5vIHZpc3VhbGl6emF0aSBwZXIgaSBjYW1waSB0ZXh0IGFyZWEgbGF0byB1dGVudGUuJzsKJGxhbmdbJ21zZ19jYXRlZ29yaWVzX3VwZGF0ZWQnXSA9ICdDYXRlZ29yaWUgYWdnaW9ybmF0ZSc7CiRsYW5nWydtc2dfZmllbGRzdXBkYXRlZCddID0gJ0RlZmluaXppb25pIGRlbCBjYW1wbyBhZ2dpb3JuYXRlJzsKJGxhbmdbJ3d5c2l3eWcnXSA9ICdXWVNJV1lHJzsKJGxhbmdbJ2luZm9fcmVvcmRlcl9jYXRlZ29yaWVzJ10gPSAnTCYjMDM5O29yZGluZSBkZWxsZSBjYXRlZ29yaWUgcHUmb2dyYXZlOyBlc3NlcmUgZGVmaW5pdG8gdHJhc2NpbmFuZG8gbGUgcmlnaGUnOwokbGFuZ1snZXJyb3JfY2F0ZWdvcnluYW1lcm93J10gPSAnSWwgbm9tZSAmZWdyYXZlOyBzdGF0byBjYW5jZWxsYXRvIHBlciB1bmEgY2F0ZWdvcmlhIHZhbGlkYSBhbGxhIHJpZ2E6JzsKJGxhbmdbJ2NvbmZpcm1fbm9jYXRlZ29yaWVzJ10gPSAnTm9uIGFiYmlhbW8gaW5kaXZpZHVhdG8gY2F0ZWdvcmllIHZhbGlkZS4gU2lldGUgY2VydGkgZGkgdm9sZXJlIGVzZWd1aXJlIGwmIzAzOTtvcGVyYXppb25lPyc7CiRsYW5nWydhZGRfZmllbGQnXSA9ICdBZ2dpdW5naSBDYW1wbyc7CiRsYW5nWydhZGRfY2F0ZWdvcnknXSA9ICdBZ2dpdW5naSBDYXRlZ29yaWEnOwokbGFuZ1sncHJvbXB0X2ZpcnN0ZGF5b2Z3ZWVrJ10gPSAnUHJpbW8gZ2lvcm5vIGRlbGxhIHNldHRpbWFuYSc7CiRsYW5nWydlZGl0X2V2ZW50J10gPSAnTW9kaWZpY2EgRXZlbnRvJzsKJGxhbmdbJ2VkaXRfcGFyZW50X2V2ZW50J10gPSAnTW9kaWZpY2EgbCYjMDM5O2V2ZW50byBnZW5pdG9yZSc7CiRsYW5nWydzZWxlY3RfcGVyaW9kJ10gPSAnUGVyaW9kbyc7CiRsYW5nWydzaG93X2ZpbHRlciddID0gJ01vc3RyYSBGaWx0cm8nOwokbGFuZ1snc2hvd19maWx0ZXJfYXBwbGllZCddID0gJ01vc3RyYSBGaWx0cm8gPGVtPihlc2VndWl0byk8L2VtPic7CiRsYW5nWydyZXNldCddID0gJ1Jlc2V0JzsKJGxhbmdbJ2NhbF9jdXJyZW50J10gPSAnUXVlc3RvIFBlcmlvZG8nOwokbGFuZ1snY2FsX2Zyb20nXSA9ICdEYSc7CiRsYW5nWydlcnJvcl9mZXVfbG9nZ2VkaW4nXSA9ICdMJiMwMzk7dXRlbnRlIG5vbiBoYSBlZmZldHR1YXRvIGlsIGxvZ2luIGluIEZFVS4gIE5vbiAmZWdyYXZlOyBwZXJtZXNzbyBhZ2dpdW5nZXJlIG8gbW9kaWZpY2FyZSBldmVudGknOwokbGFuZ1sncHJvbXB0X2ZyaWVuZGx5bmFtZSddID0gJ05vbWUgc2VtcGxpY2UgcGVyIHF1ZXN0byBtb2R1bG8gbmVsbGEgbmF2aWdhemlvbmUgbGF0byBhbW1pbmlzdHJhdG9yZSc7CiRsYW5nWydpbmZvX2ZyaWVuZGx5bmFtZSddID0gJ05vdGEgYmVuZTogRSYjMDM5OyBwb3NzaWJpbGUgY2hlIHNpYSBuZWNlc3NhcmlvIGNhbmNlbGxhcmUgbGEgY2FjaGUgcGVyY2gmZWdyYXZlOyBxdWVzdCYjMDM5O29wemlvbmUgYWJiaWEgZWZmZXR0by4gU2Ugbm9uIHZpZW5lIGluc2VyaXRvIGFsY3VuIHZhbG9yZSBuZSB2ZXJyJmFncmF2ZTsgdXRpbGl6emF0byB1bm8gcHJlZGVmaW5pdG8uJzsKJGxhbmdbJ3VzZV93eXNpd3lnJ10gPSAnVXNhIGVkaXRvciBXeXNpd3lnJzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcyddID0gJ1BhcmFtZW50cmkgSW5zdWZmaWNpZW50aSc7CiRsYW5nWydjb2x1bW5fZGVsaW1pdGVyJ10gPSAnRGVsaW1pdGF0b3JlIGRpIGNvbG9ubmEgZGVsIGZpbGUgaW1wb3J0YXRvJzsKJGxhbmdbJ2ltcG9ydF9jb21wbGV0ZWQnXSA9ICdJbXBvcnRhemlvbmUgQ29tcGxldGF0YSc7CiRsYW5nWydudW1faW1wb3J0ZWQnXSA9ICdOdW1lcm8gZGkgZXZlbnRpIGNyZWF0aTogJWQnOwokbGFuZ1snaW1wb3J0X2xpbmVzJ10gPSAnTnVtZXJvIGRpIGxpbmVlIGVsYWJvcmF0ZSBkYWwgZmlsZTogJWQnOwokbGFuZ1snZXJyb3JzJ10gPSAnRXJyb3JpJzsKJGxhbmdbJ2Vycm9yX2NzdmZpcnN0bGluZWludmFsaWRmaWVsZCddID0gJ0NhbXBvOiAlcyBub24gJmVncmF2ZTsgc3RhdG8gcmljb25vc2NpdXRvIGUgbm9uICZlZ3JhdmU7IHVuIGNhbXBvIHBlcnNvbmFsaXp6YXRvJzsKJGxhbmdbJ2luZm9fY3N2X2Zvcm1hdCddID0gJzxoND5JbmZvcm1hemlvbmkgc3VsIGZvcm1hdG8gQ1NWLjwvaDQ+DQo8dWw+DQogIDxsaT5JbmZvcm1hemlvbmkgR2VuZXJhbGk6DQogICA8dWw+DQogICAgIDxsaT5JbCBmaWxlIGRldiYjMDM5O2Vzc2VyZSBkaSB0aXBvIEFTQ0lJIGNvbiBmaW5lIGxpbmVhIGRpIHRpcG8gdW5peCwgZG9zLCBvIG1hYy48L2xpPg0KICAgICA8bGk+SSBjb21tZW50aSBpbml6aWFubyBjb24gLy8gPGJyIC8+T2duaSBjYXJhdHRlcmUgZG9wbyBxdWVzdGkgc3UgdW5hIHJpZ2EgdmVycmFubm8gaWdub3JhdGkgKGNvbXByZXNpIHF1ZWxsaSB0cmEgdmlyZ29sZXR0ZSBlIGFwaWNpKS48L2xpPg0KICAgICA8bGk+TGUgbGluZWUgdnVvdGUgdmVuZ29ubyBpZ25vcmF0ZS48L2xpPg0KICAgICA8bGk+SSBjYW1waSBzb25vIGRlbGltaXRhdGkgZGEgJnF1b3Q7LCZxdW90OywgdHV0dGF2aWEgdW5hICZxdW90OywmcXVvdDsgcHUmb2dyYXZlOyBlc3NlcmUgdXRpbGl6emF0YSBjb21lIHZhbG9yZSBhbGwmIzAzOTtpbnRlcm5vIGRpIHVuIGNhbXBvIHNlIGlsIGNhbXBvICZlZ3JhdmU7IGRlbGltaXRhdG8gZGEgdmlyZ29sZXR0ZS48L2xpPg0KICAgICA8bGk+TGUgUmlnaGUgc29ubyBkZWxpbWl0YXRlIGRhIGNhcmF0dGVyaSBkaSBpbnRlcnJ1emlvbmUgZGkgbGluZWEgKGNvbWUgc29wcmEpLjwvbGk+DQogICA8L3VsPg0KICA8L2xpPg0KICA8bGk+VGhlIEZpZWxkIE1hcDoNCiAgIDx1bD4NCiAgICA8bGk+VGhlIGZpcnN0IGxpbmUgZGVmaW5lcyB0aGUgb3JkZXIgb2YgdGhlIGZpZWxkcywgYW5kIHdoYXQgJnF1b3Q7Y3VzdG9tIGZpZWxkcyZxdW90OyBhcmUgZGVmaW5lZCBpbiB0aGUgZmlsZS4gRGF0YSBjYW4gc3RhcnQgb24gdGhlIHNlY29uZCBub24tZW1wdHkgbGluZSwgb3IgYWZ0ZXIuPC9saT4NCiAgICA8bGk+VGhlcmVzIGFyZSB0aGUgcmVxdWlyZWQgZmllbGRzOiBzdGFydCB0aW1lLCBlbmQgdGltZSwgdGl0bGUsIHN1bW1hcnksIGFuZCBkZXNjcmlwdGlvbi4gIFdpdGhvdXQgZGVmaW5pbmcgdGhlc2UgZmllbGRzIGluIHRoZSBoZWFkZXIgdGhlIGltcG9ydCB3aWxsIG5vdCBwcm9jZWVkLiAgUmVxdWlyZWQgZmllbGQgbmFtZXMgYXJlIG5vdCBjYXNlIHNlbnNpdGl2ZS48L2xpPg0KICAgIDxsaT5UaGVyZSBpcyBvbmUgb3B0aW9uYWwgY29sdW1uOjogJnF1b3Q7Y2F0ZWdvcnkmcXVvdDsuICBJZiBzcGVjaWZpZWQgaXQgY2FuIGNvbnRhaW4gYSA7IHNlcGFyYXRlZCBsaXN0IG9mIGNhdGVnb3J5IG5hbWVzIHRoYXQgdGhlIGV2ZW50IHdpbGwgYmVsb25nIHRvLjwvbGk+DQogICA8L3VsPg0KICA8L2xpPg0KICA8bGk+VGhlIERhdGEgUm93czoNCiAgIDx1bD4NCiAgICA8bGk+VGhlIHN0YXJ0IHRpbWUsIHRpdGxlLCBhbmQgZGVzY3JpcHRpb24gZmllbGRzIG11c3Qgbm90IGJlIGVtcHR5LjwvbGk+DQo8bGk+U3RhcnQgYW5kIEVuZCBUaW1lczo8L2xpPg0KICA8dWw+DQogICA8bGk+U3RhcnQgdGltZSBwcm9jZXNzaW5nIGlzIGZsZXhpYmxlLiAgWW91IGNhbiBzcGVjaWZ5IGVpdGhlciAgWVlZWS1NTS1ERCBISDpNTSBmb3JtYXQsIG9yIG1hbnkgZm9ybWF0cyBhcyBkZWZpbmVkIGJ5IHRoZSBzdHJ0b3RpbWUgZnVuY3Rpb24sIGluY2x1ZGluZyByZWxhdGl2ZSB0aW1lcy4gIElmIGEgcmVsYXRpdmUgdGltZSBpcyBzdXBwbGllZCBpdCBpcyBhc3N1bWVkIHRvIGJlIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHRpbWUuPC9saT4NCiAgIDxsaT5FbmQgdGltZSBwcm9jZXNzaW5nIGlzIGZsZXhpYmxlLCBhbmQgbWF5IGJlIGVtcHR5LiAgWW91IGNhbiBzcGVjaWZ5IGVpdGhlciBhbiBhYnNvbHV0ZSB0aW1lIChpbiB0aGUgc2FtZSBmb3JtYXQgYXMgdGhlIHN0YXJ0IHRpbWUpIG9yIGEgcmVsYXRpdmUgdGltZS4gIElmIGEgcmVsYXRpdmUgdGltZSBpcyBzcGVjaWZpZWQsIGl0IGlzIGFzc3VtZWQgdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IHRpbWUuICAgaS5lOiAmcXVvdDsrNCBob3VycyZxdW90OyB3b3VsZCBpbmRpY2F0ZSA0IGhvdXJzIGZyb20gdGhlIHN0YXJ0IHRpbWUgY29sdW1uLjwvbGk+DQogICA8bGk+SWYgdGhlIGVuZCB0aW1lIGNvbHVtZSBpcyB0aGUgc3RyaW5nICZxdW90O0FsbCBkYXkmcXVvdDsgPGVtPihjYXNlIGluc2Vuc2l0aXZlKTwvZW0+IGl0IHdpbGwgYXNzdW1lIGFuIGFsbCBkYXkgZXZlbnQgZnJvbSB0aGUgc3RhcnQgdGltZS48L2xpPg0KICAgPGxpPklmIHRoZSBlbmQgdGltZSBjb2x1bW4gaXMgZW1wdHksIHRoZW4gbm8gZW5kIHRpbWUgdmFsdWUgd2lsbCBiZSBjcmVhdGVkIGluIHRoZSBkYXRhYmFzZS48L2xpPg0KICA8L3VsPg0KPC9saT4NCjxsaT5DYXRlZ29yaWVzDQogIDx1bD4NCiAgIDxsaT5JZiBzcGVjaWZpZWQsIHRoZSBjYXRlZ29yeSBjb2x1bW4gY2FuIGNvbnRhaW4gYSBsaXN0IChzZXBhcmF0ZWQgYnkgOykgb2YgY2F0ZWdvcnkgbmFtZXMgZm9yIHdoaWNoIHRoZSBldmVudCBzaG91bGQgYmVsb25nLjwvbGk+DQogICA8bGk+Q2F0ZWdvcnkgbmFtZXMgYXJlIGNhc2Ugc2Vuc2l0aXZlLjwvbGk+DQogICA8bGk+Q2F0ZWdvcmllcyBhcmUgbm90IGNyZWF0ZWQgaWYgdGhleSBkbyBub3QgZXhpc3QuPC9saT4NCiAgPC91bD4NCjwvbGk+DQo8bGk+Q3VzdG9tIEZpZWxkczoNCiAgPHVsPg0KICAgIDxsaT5DdXN0b20gZmllbGQgbmFtZXMgKGV2ZW4gaW4gdGhlIGZpcnN0IGxpbmUgdGhhdCBkZXRlcm1pbmVzIHRoZSBmaWVsZCBtYXBwaW5nKSBhcmUgY2FzZSBzZW5zaXRpdmUuPC9saT4NCiAgICA8bGk+Q3V0b20gZmllbGRzIGFyZSBub3QgY3JlYXRlZCBpZiBzcGVjaWZpZWQgaW4gdGhlIENTViBmaWxlLiAgVW5rbm93biBjdXN0b20gZmllbGQgY29sdW1ucyB3aWxsIGJlIGlnbm9yZWQuPC9saT4NCiAgICA8bGk+Q3VzdG9tIGZpZWxkcyBvZiB0eXBlICZxdW90O2ZpbGUmcXVvdDsgY2Fubm90IGJlIGltcG9ydGVkLiAgVGhlIGVudGlyZSBpbXBvcnQgb3BlcmF0aW9uIHdpbGwgZmFpbC48L2xpPg0KICA8L3VsPg0KICA8L2xpPg0KICA8L3VsPg0KPC9saT4NCjxsaT5BIHNhbXBsZSBjc3YgZmlsZSBleGlzdHMgaW4gdGhlIG1vZHVsZXMgc291cmNlIGNvZGUgZGlyZWN0b3J5LjwvbGk+DQo8L3VsPic7CiRsYW5nWydwcm9tcHRfY3N2X2ZpbGUnXSA9ICdTZWxlemlvbmFyZSBGaWxlIGRhIEltcG9ydGFyZSc7CiRsYW5nWydkZWxldGUnXSA9ICdFbGltaW5hJzsKJGxhbmdbJ2NkX2NvbXBhbnknXSA9ICdBemllbmRhIERpcmVjdG9yeSBDb21wYW55JzsKJGxhbmdbJ2RmbHRfdXJscHJlZml4J10gPSAnUHJlZmlzc28gVVJMIHByZWRlZmluaXRvIHBlciBQcmV0dHkgVVJMJzsKJGxhbmdbJ2RmbHRfYWxsZGF5ZXZlbnQnXSA9ICdJIG51b3ZpIGV2ZW50aSBzb25vICZxdW90O1R1dHRvIGlsIGdpb3JubyZxdW90OyBkaSBkZWZhdWx0JzsKJGxhbmdbJ2RmbHRfc3RhcnR0aW1lJ10gPSAnT3JhIGRpIGluaXppbyBwcmVkZWZpbml0YSBwZXIgaSBudW92aSBldmVudGknOwokbGFuZ1snaW5mb19kZmx0X3N0YXJ0dGltZSddID0gJzxlbT4oc2kgYXBwbGljYSBzb2xvIHNlIGkgbnVvdmkgZXZlbnRpIG5vbiBzb25vICZxdW90O1R1dHRvIGlsIGdpb3JubyZxdW90Oy4pPC9lbT4nOwokbGFuZ1snc2VhcmNoX3R5cGUnXSA9ICdDZXJjYSBUaXBvJzsKJGxhbmdbJ3NlYXJjaF9hbnknXSA9ICdDb3JyaXNwb25kZW56YSBkaSBxdWFsc2lhc2kgdGVybWluZSc7CiRsYW5nWydzZWFyY2hfYWxsJ10gPSAnQ29ycmlzcG9uZGVuemEgZGkgdHV0dGkgaSB0ZXJtaW5pJzsKJGxhbmdbJ3NlYXJjaGFibGUnXSA9ICdSaWNlcmNhYmlsZSc7CiRsYW5nWydoZWxwX3BhcmFtX2VkaXRldmVudHRlbXBsYXRlJ10gPSAnQXBwbGljYWJpbGUgc29sbyBhbGwmIzAzOTthemlvbmUgJnF1b3Q7bXlldmVudHMmcXVvdDssIHF1ZXN0byBwYXJhbWV0cm8gcGVybWV0dGUgZGkgc3BlY2lmaWNhcmUgdW4gbW9kZWxsbyBkaSBtb2RpZmljYSBldmVudG8gbm9uIHByZWRlZmluaXRvIHF1YW5kbyB1biB1dGVudGUgY3JlYSBvIG1vZGlmaWNhIHVuIGV2ZW50byc7CiRsYW5nWydoZWxwX3BhcmFtX2VkaXRwYWdlJ10gPSAnQXBwbGljYWJpbGUgc29sbyBhbGwmIzAzOTthemlvbmUgJnF1b3Q7bXlldmVudCZxdW90OywgcXVlc3RvIHBhcmFtZXRybyBwZXJtZXR0ZSBkaSBzcGVjaWZpY2FyZSB1bmEgcGFnaW5hIGRpZmZlcmVudGUgcGVyIGlsIG1vZHVsbyBkaSBtb2RpZmljYS4nOwokbGFuZ1snaGVscF9wYXJhbV9teWV2ZW50c3RlbXBsYXRlJ10gPSAnQXBwbGljYWJpbGUgc29sbyBhbGwmIzAzOTthemlvbmUgJnF1b3Q7bXlldmVudCZxdW90OywgcXVlc3RvIHBhcmFtZXRybyBwZXJtZXR0ZSBkaSBzcGVjaWZpY2FyZSBsJiMwMzk7dXNvIGRpIHVuIG1vZGVsbG8gbm9uIHByZWRlZmluaXRvJzsKJGxhbmdbJ2NhbF9lZGl0X2V2ZW50J10gPSAnTW9kaWZpY2EgRXZlbnRvIENhbGVuZGFyaW8nOwokbGFuZ1snZXJyb3JfZGJlcnJvciddID0gJ0Vycm9yZSBkZWwgRGF0YWJhc2UnOwokbGFuZ1snc3VibWl0J10gPSAnSW52aWEnOwokbGFuZ1snaW5mb19zeXNkZmx0X2VkaXRldmVudF90ZW1wbGF0ZSddID0gJ01vZGVsbG8gUHJlZGVmaW5pdG8gZGkgU2lzdGVtYSAmcXVvdDtNb2RpZmljYSBFdmVudG8mcXVvdDsnOwokbGFuZ1snaW5mb19zeXNkZmx0X215ZXZlbnRzX3RlbXBsYXRlJ10gPSAnTW9kZWxsbyBQcmVkZWZpbml0byBkaSBTaXN0ZW1hICZxdW90O01pZWkgRXZlbnRpJnF1b3Q7JzsKJGxhbmdbJ3Byb21wdF9mZWVkaXRfZ3JvdXAnXSA9ICdJIG1lbWJyaSBkaSBxdWVzdG8gZ3J1cHBvIEZFVSBwb3Nzb25vIGFnZ2l1bmdlcmUgZXZlbnRpJzsKJGxhbmdbJ3Byb21wdF9mZWVkaXRfcGFnZSddID0gJ1BhZ2luYSBwcmVkZWZpbml0YSBsYXRvIHV0ZW50ZSBwZXIgaWwgbW9kdWxvIGRpIG1vZGlmaWNhLic7CiRsYW5nWydub25lJ10gPSAnTmVzc3Vubyc7CiRsYW5nWydvd25lciddID0gJ1Byb3ByaWV0YXJpbyc7CiRsYW5nWydjYWxfZWRpdGV2ZW50X3RlbXBsYXRlcyddID0gJ01vZGVsbGkgZGVsIE1vZHVsbyBkaSBNb2RpZmljYSBFdmVudG8nOwokbGFuZ1snaW5mb19lZGl0ZXZlbnRfdGVtcGxhdGVfdGFiJ10gPSAnTGEgbGlzdGEgZGVpIG1vZGVsbGkgZGlzcG9uaWJpbGkgcGVyIGlsIG1vZHVsbyBkaSBtb2RpZmljYSBldmVudG8nOwokbGFuZ1snZWRpdGV2ZW50dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FnZ2l1bmdpL21vZGlmaWNhIHVuIE1vZGVsbG8gTW9kdWxvIGRpIE1vZGlmaWNhIEV2ZW50byc7CiRsYW5nWydjYWxfbXlldmVudHNfdGVtcGxhdGVzJ10gPSAnTW9kZWxsaSBkaSBMaXN0YSBNaWVpIEV2ZW50aSc7CiRsYW5nWydpbmZvX215ZXZlbnRzX3RlbXBsYXRlX3RhYiddID0gJ0xhIGxpc3RhIGRlaSBtb2RlbGxpIGRpc3BvbmliaWxpIHBlciBsYSB2aXN1YWxpenphemlvbmUgZGkgdW5hIGxpc3RhIGRpIGV2ZW50aSBkZWxsJiMwMzk7dXRlbnRlJzsKJGxhbmdbJ215ZXZlbnRzdGVtcGxhdGVfYWRkZWRpdCddID0gJ0FnZ2l1bmdpL01vZGlmaWNhIHVuIG1vZGVsbG8gZGkgcmVwb3J0ICZxdW90O01pZWkgRXZlbnRpJnF1b3Q7JzsKJGxhbmdbJ2FyZXlvdXN1cmVfcmVtb3ZlY29uZmxpY3RpbmcnXSA9ICdRdWVzdGEgYXppb25lIHJpbXVvdmVyJmFncmF2ZTsgb2duaSBldmVudG8gaW4gY29uZmxpdHRvIGNvbiBldmVudGkgbm9uIHNvdnJhcHBvbmliaWxpLiBTaWV0ZSBjZXJ0aSBkaSB2b2xlcmUgcHJvY2VkZXJlPyc7CiRsYW5nWydmaWx0ZXJfY29uZmxpY3RpbmcnXSA9ICdGaWx0cmEgRXZlbnRpIGluIENvbmZsaXR0byc7CiRsYW5nWydvdmVybGFwX2FjdGlvbl9yZW1vdmUnXSA9ICdSaW11b3ZpIGV2ZW50aSBpbiBjb25mbGl0dG8gc2lsZW56aW9zYW1lbnRlJzsKJGxhbmdbJ292ZXJsYXBfYWN0aW9uX2Vycm9yJ10gPSAnVmlzdWFsaXp6YSB1biBlcnJvcmUnOwokbGFuZ1sncHJvbXB0X292ZXJsYXBfYWN0aW9uJ10gPSAnQ29zYSBkb3ZyZWJiZSBhY2NhZGVyZSBxdWFuZG8gdmllbmUgdHJvdmF0byB1biBjb25mbGl0dG8gZHVyYW50ZSBsJiMwMzk7YWdnaXVudGEgbyBsYSBtb2RpZmljYSBkaSB1biBldmVudG8nOwokbGFuZ1snZXJyb3JfZXZlbnRfY29uZmxpY3QnXSA9ICdJIHZhbG9yaSBkZWxsJiMwMzk7ZXZlbnRvIHNwZWNpZmljYXRvIHNpIHNvdnJhcHBvbmdvbm8gY29uIHVuIGV2ZW50byBlc2lzdGVudGUgY2hlIG5vbiBwZXJtZXR0ZSBjb25mbGl0dGknOwokbGFuZ1snY2FsX2luZm9fb3ZlcmxhcCddID0gJ1NpIGFwcGxpY2Egc29sbyBhZ2xpIGV2ZW50aSBjb24gdW5hIGRhdGEgZGkgZmluZSAobyBldmVudGkgZ2lvcm5hbGllcmkpJzsKJGxhbmdbJ2NhbF9vdmVybGFwJ10gPSAnUGVybWV0dGUgbGEgc292cmFwcG9zaXppb25lIGRpIG51b3ZpIGV2ZW50aSBjb24gaWwgY29ycmVudGUnOwokbGFuZ1sncHJvbXB0X292ZXJsYXBfcG9saWN5J10gPSAnR2VzdGlvbmUgU292cmFwcG9zaXppb25lIEV2ZW50aSc7CiRsYW5nWydwb2xpY3lfYWxsJ10gPSAnVHV0dGkgZ2xpIGV2ZW50aSBzaSBwb3Nzb25vIHNvdnJhcHBvcnJlJzsKJGxhbmdbJ3BvbGljeV9ub25lJ10gPSAnTmVzc3VuIGV2ZW50byBzaSBwdSZvZ3JhdmU7IHNvdnJhcHBvcnJlJzsKJGxhbmdbJ3BvbGljeV9pbmRpdmlkdWFsJ10gPSAnRGVmaW5pdG8gZXZlbnRvIHBlciBldmVudG8nOwokbGFuZ1snbGJsX2JhY2snXSA9ICdJbmRpZXRybyc7CiRsYW5nWydsYmxfdGVtcGxhdGVzJ10gPSAnTW9kZWxsaSc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ0FyZWEgZGkgVGVzdG8nOwokbGFuZ1snZXJyb3JfY2FsZW5kYXJfaW5jb21wYXRpYmxlJ10gPSAnQWJiaWFtbyB2ZXJpZmljYXRvIGxhIHByZXNlbnphIGFuY2hlIGRlbCBtb2R1bG8gQ2FsZW5kYXIuIFF1ZXN0byBtb2R1bG8gbm9uICZlZ3JhdmU7IGNvbXBhdGliaWxlIGNvbiBpbCBtb2R1bG8gQ2FsZW5kYXIgZSBpIGR1ZSBub24gcG9zc29ubyBjb2VzaXN0ZXJlIG5lbGxhIHN0ZXNzYSBpbnN0YWxsYXppb25lLiBWaSBjaGllZGlhbW8gZGkgZGlzaW5zdGFsbGFyZSBpbCBtb2R1bG8gQ2FsZW5kYXIuJzsKJGxhbmdbJ2Vycm9yX2V2ZW50X25vdF9mb3VuZCddID0gJ0V2ZW50X2lkIG5vbiBwcmVzZW50ZSBuZWwgZGF0YWJhc2UsIG9wcHVyZSBjJiMwMzk7JmVncmF2ZTsgcGkmdWdyYXZlOyBkaSB1biBldmVudG8gY29uIHF1ZXN0byBpZCEgKCVkKSc7CiRsYW5nWydmaXJzdF9wYWdlJ10gPSAnPDwnOwokbGFuZ1sncHJldl9wYWdlJ10gPSAnPCc7CiRsYW5nWyduZXh0X3BhZ2UnXSA9ICc+JzsKJGxhbmdbJ2xhc3RfcGFnZSddID0gJz4+JzsKJGxhbmdbJ3BhZ2Vfb2YnXSA9ICdQYWdpbmEgJWQgZGkgJWQnOwokbGFuZ1snc2VhcmNoX3Jlc3VsdHMnXSA9ICdSaXN1bHRhdGkgUmljZXJjYSBDYWxlbmRhcmlvJzsKJGxhbmdbJ3NlYXJjaF93b3JkcyddID0gJ0NlcmNhIFBhcm9sZSc7CiRsYW5nWydub19yZXN1bHRzX2ZvdW5kJ10gPSAnTmVzc3VuIHJpc3VsdGF0byBpbiBiYXNlIGFpIGNyaXRlcmkgc3BlY2lmaWNhdGknOwokbGFuZ1snZnJlcXVlbmN5J10gPSAnRnJlcXVlbnphJzsKJGxhbmdbJ3NwZWNpZmllZF9kYXRlJ10gPSAnVXNhIGxhIGRhdGEgc3BlY2lmaWNhdGEnOwokbGFuZ1snZmlyc3Rfc3VuZGF5J10gPSAnUHJpbWEgRG9tZW5pY2EgZGVsIE1lc2UnOwokbGFuZ1snZmlyc3RfbW9uZGF5J10gPSAnUHJpbW8gTHVuZWQmaWdyYXZlOyBkZWwgTWVzZSc7CiRsYW5nWydmaXJzdF90dWVzZGF5J10gPSAnUHJpbW8gTWFydGVkJmlncmF2ZTsgZGVsIE1lc2UnOwokbGFuZ1snZmlyc3Rfd2VkbmVzZGF5J10gPSAnUHJpbW8gTWVyY29sZWQmaWdyYXZlOyBkZWwgTWVzZSc7CiRsYW5nWydmaXJzdF90aHVyc2RheSddID0gJ1ByaW1vIEdpb3ZlZCZpZ3JhdmU7IGRlbCBNZXNlJzsKJGxhbmdbJ2ZpcnN0X2ZyaWRheSddID0gJ1ByaW1vIFZlbmVyZCZpZ3JhdmU7IGRlbCBNZXNlJzsKJGxhbmdbJ2ZpcnN0X3NhdHVyZGF5J10gPSAnUHJpbW8gU2FiYXRvIGRlbCBNZXNlJzsKJGxhbmdbJ3NlY29uZF9zdW5kYXknXSA9ICdTZWNvbmRhIERvbWVuaWNhIGRlbCBNZXNlJzsKJGxhbmdbJ3NlY29uZF9tb25kYXknXSA9ICdTZWNvbmRvIEx1bmVkJmlncmF2ZTsgZGVsIE1lc2UnOwokbGFuZ1snc2Vjb25kX3R1ZXNkYXknXSA9ICdTZWNvbmRvIE1hcnRlZCZpZ3JhdmU7IGRlbCBNZXNlJzsKJGxhbmdbJ3NlY29uZF93ZWRuZXNkYXknXSA9ICdTZWNvbmRvIE1lcmNvbGVkJmlncmF2ZTsgZGVsIE1lc2UnOwokbGFuZ1snc2Vjb25kX3RodXJzZGF5J10gPSAnU2Vjb25kbyBHaW92ZWQmaWdyYXZlOyBkZWwgTWVzZSc7CiRsYW5nWydzZWNvbmRfZnJpZGF5J10gPSAnU2Vjb25kbyBWZW5lcmQmaWdyYXZlOyBkZWwgTWVzZSc7CiRsYW5nWydzZWNvbmRfc2F0dXJkYXknXSA9ICdTZWNvbmRvIFNhYmF0byBkZWwgTWVzZSc7CiRsYW5nWyd0aGlyZF9zdW5kYXknXSA9ICdUZXJ6YSBEb21lbmljYSBkZWwgTWVzZSc7CiRsYW5nWyd0aGlyZF9tb25kYXknXSA9ICdUZXJ6byBMdW5lZCZpZ3JhdmU7IGRlbCBNZXNlJzsKJGxhbmdbJ3RoaXJkX3R1ZXNkYXknXSA9ICdUZXJ6byBNYXJ0ZWQmaWdyYXZlOyBkZWwgTWVzZSc7CiRsYW5nWyd0aGlyZF93ZWRuZXNkYXknXSA9ICdUZXJ6byBNZXJjb2xlZCZpZ3JhdmU7IGRlbCBNZXNlJzsKJGxhbmdbJ3RoaXJkX3RodXJzZGF5J10gPSAnVGVyem8gR2lvdmVkJmlncmF2ZTsgZGVsIE1lc2UnOwokbGFuZ1sndGhpcmRfZnJpZGF5J10gPSAnVGVyem8gVmVuZXJkJmlncmF2ZTsgZGVsIE1lc2UnOwokbGFuZ1sndGhpcmRfc2F0dXJkYXknXSA9ICdUZXJ6byBTYWJhdG8gZGVsIE1lc2UnOwokbGFuZ1snZm91cnRoX3N1bmRheSddID0gJ1F1YXJ0YSBEb21lbmljYSBkZWwgTWVzZSc7CiRsYW5nWydmb3VydGhfbW9uZGF5J10gPSAnUXVhcnRvIEx1bmVkJmlncmF2ZTsgZGVsIE1lc2UnOwokbGFuZ1snZm91cnRoX3R1ZXNkYXknXSA9ICdRdWFydG8gTWFydGVkJmlncmF2ZTsgZGVsIE1lc2UnOwokbGFuZ1snZm91cnRoX3dlZG5lc2RheSddID0gJ1F1YXJ0byBNZXJjb2xlZCZpZ3JhdmU7IGRlbCBNZXNlJzsKJGxhbmdbJ2ZvdXJ0aF90aHVyc2RheSddID0gJ1F1YXJ0byBHaW92ZWQmaWdyYXZlOyBkZWwgTWVzZSc7CiRsYW5nWydmb3VydGhfZnJpZGF5J10gPSAnUXVhcnRvIFZlbmVyZCZpZ3JhdmU7IGRlbCBNZXNlJzsKJGxhbmdbJ2ZvdXJ0aF9zYXR1cmRheSddID0gJ1F1YXJ0byBTYWJhdG8gZGVsIE1lc2UnOwokbGFuZ1snbGFzdF9zdW5kYXknXSA9ICdVbHRpbWEgRG9tZW5pY2EgZGVsIE1lc2UnOwokbGFuZ1snbGFzdF9tb25kYXknXSA9ICdVbHRpbW8gTHVuZWQmaWdyYXZlOyBkZWwgTWVzZSc7CiRsYW5nWydsYXN0X3R1ZXNkYXknXSA9ICdVbHRpbW8gTWFydGVkJmlncmF2ZTsgZGVsIE1lc2UnOwokbGFuZ1snbGFzdF93ZWRuZXNkYXknXSA9ICdVbHRpbW8gTWVyY29sZWQmaWdyYXZlOyBkZWwgTWVzZSc7CiRsYW5nWydsYXN0X3RodXJzZGF5J10gPSAnVWx0aW1vIEdpb3ZlZCZpZ3JhdmU7IGRlbCBNZXNlJzsKJGxhbmdbJ2xhc3RfZnJpZGF5J10gPSAnVWx0aW1vIFZlbmVyZCZpZ3JhdmU7IGRlbCBNZXNlJzsKJGxhbmdbJ2xhc3Rfc2F0dXJkYXknXSA9ICdVbHRpbW8gU2FiYXRvIGRlbCBNZXNlJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfcmVjdXJfbW9udGhseV9mcmVxJ10gPSAnRnJlcXVlbnphIG5vbiB2YWxpZGEuLi4gbm9uIHBvdGV0ZSB1dGlsaXp6YXJlIHNpYSBsYSBkYXRhIHNwZWNpZmljYSBjaGUgYWx0cmkgdmFsb3JpJzsKJGxhbmdbJ3NlYXJjaHJlc3VsdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZ2dpdW5naS9Nb2RpZmljYSB1biBNb2RlbGxvIGRpIFJpc3VsdGF0byBSaWNlcmNhJzsKJGxhbmdbJ2luZm9fc2VhcmNocmVzdWx0X3RlbXBsYXRlX3RhYiddID0gJ0xhIGxpc3RhIGRlaSBNb2RlbGxpIGNoZSBzb25vIGRpc3BvbmliaWxpIHBlciBsYSB2aXN1YWxpenphemlvbmUgZGVpIHJpc3VsdGF0aSBkaSByaWNlcmNhJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9zZWFyY2hyZXN1bHRfdGVtcGxhdGUnXSA9ICdNb2RlbGxvIGRpIFJpc3VsdGF0byBSaWNlcmNhIFByZWRlZmluaXRvIGRpIFNpc3RlbWEnOwokbGFuZ1snY2FsX3NlYXJjaF9yZXN1bHRfdGVtcGxhdGVzJ10gPSAnTW9kZWxsaSBkaSBSaXN1bHRhdG8gUmljZXJjYSc7CiRsYW5nWydlcnJvcl9xdWVyeV9mYWlsZWQnXSA9ICdJbnRlcnJvZ2F6aW9uZSBEYXRhYmFzZSBGYWxsaXRhJzsKJGxhbmdbJ2Vycm9yX3NlYXJjaF9pbnZhbGlkX2RhdGVzJ10gPSAnRGF0ZSBkaSByaWNlcmNhIHNwZWNpZmljYXRlIG5vbiB2YWxpZGUnOwokbGFuZ1sndGV4dCddID0gJ1Rlc3RvJzsKJGxhbmdbJ3NlYXJjaCddID0gJ0NlcmNhJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnQ2F0ZWdvcmlhJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9zZWFyY2hfdGVtcGxhdGUnXSA9ICdNb2RlbGxvIGRpIE1vZHVsbyBkaSBSaWNlcmNhIFByZWRlZmluaXRvIGRpIFNpc3RlbWEnOwokbGFuZ1snc2VhcmNodGVtcGxhdGVfYWRkZWRpdCddID0gJ0FnZ2l1bmdpL01vZGlmaWNhIE1vZGVsbG8gTW9kdWxvIGRpIFJpY2VyY2EnOwokbGFuZ1snaW5mb19zZWFyY2hfdGVtcGxhdGVfdGFiJ10gPSAnTGEgbGlzdGEgZGVpIG1vZGVsbGkgY2hlIHNvbm8gZGlzcG9uaWJpbGkgcGVyIGlsIG1vZHVsbyBkaSByaWNlcmNhJzsKJGxhbmdbJ2NhbF9zZWFyY2hfZm9ybV90ZW1wbGF0ZXMnXSA9ICdNb2RlbGxpIE1vZHVsbyBSaWNlcmNhJzsKJGxhbmdbJ21heCddID0gJ21hc3NpbW8nOwokbGFuZ1sndGltZXMnXSA9ICd2b2x0ZSc7CiRsYW5nWydvbiddID0gJ2EnOwokbGFuZ1snYXJleW91c3VyZV91bmluc3RhbGwnXSA9ICdTaWV0ZSBzaWN1cmkgZGkgdm9sZXJlIHByb2NlZGVyZT8gQ29udGludWFuZG8gY2FuY2VsbGVyZXRlIHBlcm1hbmVudGVtZW50ZSB0dXR0aSBpIGRhdGkgYXNzb2NpYXRpIGEgcXVlc3RvIG1vZHVsby4nOwokbGFuZ1sncG9zdF91bmluc3RhbGwnXSA9ICdJbCBtb2R1bG8gQ2FsZW5kYXIgJmVncmF2ZTsgc3RhdG8gZGlzaW5zdGFsbGF0byBlIHNvbm8gc3RhdGkgcmltb3NzaSB0dXR0aSBnbGkgZXZlbnRpIGVkIGkgdGVtcGxhdGUgYXNzb2NpYXRpIGNvbiBxdWVzdG8gbW9kdWxvJzsKJGxhbmdbJ2ZpZWxkdXBkYXRlZCddID0gJ0NhbXBvIGFnZ2lvcm5hdG8nOwokbGFuZ1snZXZlcnknXSA9ICdPZ25pJzsKJGxhbmdbJ29yJ10gPSAnbyc7CiRsYW5nWyd1cGRhdGVfY2hpbGRyZW4nXSA9ICdBZ2dpb3JuYSBnbGkgRXZlbnRpIGZpZ2xpJzsKJGxhbmdbJ2Vycm9yX25vY2F0ZWdvcnknXSA9ICdEb3ZldGUgc2VsZXppb25hcmUgYWxtZW5vIHVuYSBjYXRlZ29yaWEnOwokbGFuZ1snZXJyb3Jfbm90aGluZ3NlbGVjdGVkJ10gPSAnTm9uICZlZ3JhdmU7IHN0YXRvIHNlbGV6aW9uYXRvIG51bGxhIHBlciBsYSBjYW5jZWxsYXppb25lJzsKJGxhbmdbJ2Vycm9yX2V2ZW50b3ZlcmxhcCddID0gJ0kgcGFyYW1ldHJpIGRpIHJpcGV0aXppb25lIGRlZ2xpIGV2ZW50aSBjaGUgYXZldGUgc3BlY2lmaWNhdG8gcG90cmViYmVybyByaXN1bHRhcmUgaW4gdW5hIHNvdnJhcHBvc2l6aW9uZSBkaSBldmVudGkuJzsKJGxhbmdbJ3JlY3VycyddID0gJ1JpY29ycmUnOwokbGFuZ1snZXJyb3JfaW52YWxpZF9kYXRlcyddID0gJ1VubyBvIHBpJnVncmF2ZTsgdmFsb3JpIGRpIGRhdGEgaW5zZXJpdGkgZXJhbm8gaW52YWxpZGknOwokbGFuZ1snc3VuZGF5J10gPSAnRG9tZW5pY2EnOwokbGFuZ1snbW9uZGF5J10gPSAnTHVuZWQmaWdyYXZlOyc7CiRsYW5nWyd0dWVzZGF5J10gPSAnTWFydGVkJmlncmF2ZTsnOwokbGFuZ1snd2VkbmVzZGF5J10gPSAnTWVyY29sZWQmaWdyYXZlOyc7CiRsYW5nWyd0aHVyc2RheSddID0gJ0dpb3ZlZCZpZ3JhdmU7JzsKJGxhbmdbJ2ZyaWRheSddID0gJ1ZlbmVyZCZpZ3JhdmU7JzsKJGxhbmdbJ3NhdHVyZGF5J10gPSAnU2FiYXRvJzsKJGxhbmdbJ2FiYnJfc3VuZGF5J10gPSAnRG8nOwokbGFuZ1snYWJicl9tb25kYXknXSA9ICdMdSc7CiRsYW5nWydhYmJyX3R1ZXNkYXknXSA9ICdNYSc7CiRsYW5nWydhYmJyX3dlZG5lc2RheSddID0gJ01lJzsKJGxhbmdbJ2FiYnJfdGh1cnNkYXknXSA9ICdHaSc7CiRsYW5nWydhYmJyX2ZyaWRheSddID0gJ1ZlJzsKJGxhbmdbJ2FiYnJfc2F0dXJkYXknXSA9ICdTYSc7CiRsYW5nWyd3ZWVrZGF5cyddID0gJ0dpb3JuaSBzZXR0aW1hbmEnOwokbGFuZ1sncGx1cmFsX2RhaWx5J10gPSAnR2lvcm5pJzsKJGxhbmdbJ3BsdXJhbF93ZWVrbHknXSA9ICdTZXR0aW1hbmUnOwokbGFuZ1sncGx1cmFsX21vbnRobHknXSA9ICdNZXNpJzsKJGxhbmdbJ3BsdXJhbF95ZWFybHknXSA9ICdBbm5pJzsKJGxhbmdbJ25vJ10gPSAnTm8nOwokbGFuZ1snZGFpbHknXSA9ICdHaW9ybmFsbWVudGUnOwokbGFuZ1snd2Vla2x5J10gPSAnU2V0dGltYW5hbG1lbnRlJzsKJGxhbmdbJ21vbnRobHknXSA9ICdNZW5zaWxtZW50ZSc7CiRsYW5nWyd5ZWFybHknXSA9ICdBbm51YWxtZW50ZSc7CiRsYW5nWydpbnRlcnZhbCddID0gJ1JpcGV0aSBvZ25pJzsKJGxhbmdbJ2NhbF9yZWN1cl9kZXRhaWxzJ10gPSAnRGV0dGFnbGlvIGV2ZW50byByaWNvcnJlbnRlJzsKJGxhbmdbJ3VubGltaXRlZCddID0gJ05vbiBsaW1pdGF0byc7CiRsYW5nWydtYXhfcmVjdXJfZXZlbnRzJ10gPSAnTWFzc2ltbyBudW1lcm8gZGkgZXZlbnRpIGZpZ2xpJzsKJGxhbmdbJ3VzZV90b19kYXRlJ10gPSAnU3BlY2lmaWNhcmUgZGF0YSBkaSBmaW5lIGRpdmVyc2E/JzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbGxhJzsKJGxhbmdbJ3Nob3dfY2hpbGRfZXZlbnRzJ10gPSAnTW9zdHJhIEV2ZW50aSBmaWdsaSA8ZW0+KHBvdHJlYmJlIHJlc3RpdHVpcmUgdW5hIHNjaGVybWF0YSBtb2x0byBsdW5nYSk8L2VtPic7CiRsYW5nWyduL2EnXSA9ICduL2QnOwokbGFuZ1sncmVjdXJzX3VudGlsJ10gPSAnUmlwZXRpIGZpbm8nOwokbGFuZ1sncGFyZW50J10gPSAnR2VuaXRvcmUnOwokbGFuZ1sncmVjdXJfcGVyaW9kJ10gPSAnUGVyaW9kbyBkaSByaWNvcnNpb25lJzsKJGxhbmdbJ2ZpbHRlciddID0gJ0ZpbHRybyc7CiRsYW5nWydzdGFydF9kYXRlJ10gPSAnRGF0YSBwYXJ0ZW56YSc7CiRsYW5nWydlbmRfZGF0ZSddID0gJ0RhdGEgYXJyaXZvJzsKJGxhbmdbJ2luZm9fdXBjb21pbmdsaXN0X3RlbXBsYXRlX3RhYiddID0gJ0xhIGxpc3RhIGRlaSB0ZW1wbGF0ZSBjaGUgc29ubyB1dGlsaXp6YWJpbGkgcGVyIGdsaSBldmVudGkgaW1taW5lbnRpJzsKJGxhbmdbJ3VwY29taW5nbGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZ2dpdW5naS9Nb2RpZmljYSB1biBNb2RlbGxvIHBlciBsYSB2aXN1YWxpenphemlvbmUgVXBjb21pbmdsaXN0IChwcm9zc2ltaSBldmVudGkpJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF91cGNvbWluZ2xpc3RfdGVtcGxhdGUnXSA9ICdNb2RlbGxvIFByZWRlZmluaXRvIGRpIFNpc3RlbWEgcGVyIGxhIHZpc3VhbGl6emF6aW9uZSBVcGNvbWluZ2xpc3QgKHByb3NzaW1pIGV2ZW50aSknOwokbGFuZ1snaW5mb19saXN0X3RlbXBsYXRlX3RhYiddID0gJ0xhIGxpc3RhIGRlaSBtb2RlbGxpIGNoZSBzb25vIGRpc3BvbmliaWxpIHBlciBsYSB2aXN0YSBkaSBsaXN0ZSc7CiRsYW5nWydsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FnZ2l1bmdpL01vZGlmaWNhIHVuIE1vZGVsbG8gcGVyIGxhIHZpc3VhbGl6emF6aW9uZSBMaXN0IChsaXN0YSknOwokbGFuZ1snaW5mb19zeXNkZmx0X2xpc3RfdGVtcGxhdGUnXSA9ICdNb2RlbGxvIFByZWRlZmluaXRvIGRpIFNpc3RlbWEgcGVyIGxhIHZpc3VhbGl6emF6aW9uZSBMaXN0IChsaXN0YSknOwokbGFuZ1snaW5mb19ldmVudF90ZW1wbGF0ZV90YWInXSA9ICdMYSBsaXN0YSBkZWkgbW9kZWxsaSBjaGUgc29ubyBkaXNwb25pYmlsaSBwZXIgbGEgdmlzdGEgZGkgZXZlbnRpJzsKJGxhbmdbJ2V2ZW50dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FnZ2l1bmdpL01vZGlmaWNhIHVuIE1vZGVsbG8gcGVyIGxhIHZpc3VhbGl6emF6aW9uZSBFdmVudCAoZXZlbnRvKSc7CiRsYW5nWydpbmZvX3N5c2RmbHRfZXZlbnRfdGVtcGxhdGUnXSA9ICdNb2RlbGxvIFByZWRlZmluaXRvIGRpIFNpc3RlbWEgcGVyIGxhIHZpc3VhbGl6emF6aW9uZSBFdmVudCAoZXZlbnRvKSc7CiRsYW5nWydpbmZvX2NhbGVuZGFyX3RlbXBsYXRlX3RhYiddID0gJ0xhIGxpc3RhIGRlaSBtb2RlbGxpIGNoZSBzb25vIGRpc3BvbmliaWxpIHBlciBsYSB2aXN0YSBkaSBjYWxlbmRhcmknOwokbGFuZ1snY2FsZW5kYXJ0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWdnaXVuZ2kvTW9kaWZpY2EgdW4gTW9kZWxsbyBwZXIgbGEgdmlzdWFsaXp6YXppb25lIENhbGVuZGFyIChjYWxlbmRhcmlvKSc7CiRsYW5nWydpbmZvX3N5c2RmbHRfY2FsZW5kYXJfdGVtcGxhdGUnXSA9ICdNb2RlbGxvIFByZWRlZmluaXRvIGRpIFNpc3RlbWEgcGVyIGxhIHZpc3VhbGl6emF6aW9uZSBDYWxlbmRhciAoY2FsZW5kYXJpbyknOwokbGFuZ1snaW5mb19zeXNkZmx0X3RlbXBsYXRlJ10gPSAnUXVlc3RvIG1vZHVsbyBkZWZpbmlzY2UgaWwgbW9kZWxsbyBjaGUgc2FyJmFncmF2ZTsgdXRpbGl6emF0byBxdWFuZG8gY2xpY2NhdGUgc3UgJnF1b3Q7TnVvdm8gTW9kZWxsbyZxdW90OyBuZWxsYSBzY2hlZGEgYXBwcm9wcmlhdGEuICBNb2RpZmljYXJlIHF1ZXN0byB2YWxvcmUgbm9uIGF2ciZhZ3JhdmU7IGVmZmV0dGkgaW1tZWRpYXRpIHN1bGxlIHZpc3VhbGl6emF6aW9uaSBnZW5lcmF0ZSBkYSBxdWVzdG8gbW9kdWxvLic7CiRsYW5nWydldmVudGRlc2MtRXZlbnRBZGRlZCddID0gJ0NoaWFtYXRvIGRvcG8gYXZlciBhZ2dpdW50byB1biBldmVudG8gYWwgY2FsZW5kYXJpbyc7CiRsYW5nWydldmVudGRlc2MtRXZlbnRFZGl0ZWQnXSA9ICdDaGlhbWF0byBkb3BvIGF2ZXIgbW9kaWZpY2F0byB1biBldmVudG8gZXNpc3RlbnRlJzsKJGxhbmdbJ2V2ZW50ZGVzYy1FdmVudERlbGV0ZWQnXSA9ICdDaGlhbWF0byBkb3BvIGF2ZXIgZWxpbWluYXRvIHVuIGV2ZW50byc7CiRsYW5nWydldmVudGRlc2MtQ2F0ZWdvcnlBZGRlZCddID0gJ0NoaWFtYXRvIGRvcG8gbGEgY3JlYXppb25lIGRpIHVuYSBjYXRlZ29yaWEnOwokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5RWRpdGVkJ10gPSAnQ2hpYW1hdG8gZG9wbyBhdmVyIG1vZGlmaWNhdG8gdW5hIGNhdGVnb3JpYSc7CiRsYW5nWydldmVudGRlc2MtQ2F0ZWdvcnlEZWxldGVkJ10gPSAnQ2hpYW1hdG8gZG9wbyBhdmVyIGVsaW1pbmF0byB1bmEgY2F0ZWdvcmlhJzsKJGxhbmdbJ2V2ZW50aGVscC1FdmVudEFkZGVkJ10gPSAnPHA+SW52aWF0byBxdWFuZG8gdmllbmUgYWdnaXVudG8gdW4gZXZlbnRvIGFsIGNhbGVuZGFyaW8uPC9wPg0KPGg0PlBhcmFtZXRlcmk8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtldmVudF90aXRsZVwmcXVvdDsgLSBUaXRvbG8gZXZlbnRvPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfc3VtbWFyeVwmcXVvdDsgLSBTb21tYXJpbzwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2RldGFpbHNcJnF1b3Q7IC0gRGV0dGFnbGlvPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGF0ZV9zdGFydFwmcXVvdDsgLSBEYXRhIGUgb3JhIGRlbGwmIzAzOTtpbml6aW8gZGVsbCYjMDM5O2V2ZW50bzwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2RhdGVfZW5kXCZxdW90OyAtIERhdGEgZSBvcmEgZGVsbGEgZmluZSBkZWxsJiMwMzk7ZXZlbnRvPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfY3JlYXRlZF9ieVwmcXVvdDsgLSBMYSB1c2VyaWQgZGVsbCYjMDM5O2F1dG9yZTwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2lkXCZxdW90OyAtIGlkIGRlbGwmIzAzOTtldmVudG88L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRoZWxwLUV2ZW50RWRpdGVkJ10gPSAnPHA+SW52aWF0byBxdWFuZG8gdmllbmUgbW9kaWZpY2F0byB1biBldmVudG8gZXNpc3RlbnRlLjwvcD4NCjxoND5QYXJhbWV0ZXJpPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7ZXZlbnRfdGl0bGVcJnF1b3Q7IC0gVGl0b2xvIGV2ZW50bzwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X3N1bW1hcnlcJnF1b3Q7IC0gU29tbWFyaW88L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kZXRhaWxzXCZxdW90OyAtIERldHRhZ2xpbzwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2RhdGVfc3RhcnRcJnF1b3Q7IC0gRGF0YSBlIG9yYSBkZWxsJiMwMzk7aW5pemlvIGRlbGwmIzAzOTtldmVudG88L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kYXRlX2VuZFwmcXVvdDsgLSBEYXRhIGUgb3JhIGRlbGxhIGZpbmUgZGVsbCYjMDM5O2V2ZW50bzwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2NyZWF0ZWRfYnlcJnF1b3Q7IC0gTGEgdXNlcmlkIGRlbGwmIzAzOTthdXRvcmU8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9pZFwmcXVvdDsgLSBpZCBkZWxsJiMwMzk7ZXZlbnRvPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V2ZW50aGVscC1FdmVudERlbGV0ZWQnXSA9ICc8cD5JbnZpYXRvIHF1YW5kbyB2aWVuZSBlbGltaW5hdG8gdW4gZXZlbnRvLjwvcD4NCjxoND5QYXJhbWV0ZXJpPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7ZXZlbnRfaWRcJnF1b3Q7IC0gaWQgZGVsbCYjMDM5O2V2ZW50bzwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudGhlbHAtQ2F0ZWdvcnlBZGRlZCddID0gJzxwPkludmlhdG8gcXVhbmRvIHZpZW5lIGFnZ2l1bnRhIHVuYSBjYXRlZ29yaWEuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9pZFwmcXVvdDsgLSBpZCBkZWxsYSBjYXRlZ29yaWE8L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5RWRpdGVkJ10gPSAnPHA+SW52aWF0byBxdWFuZG8gdmllbmUgbW9kaWZpY2F0YSB1bmEgY2F0ZWdvcmlhLjwvcD4NCjxoND5QYXJhbWV0ZXJpPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfaWRcJnF1b3Q7IC0gaWQgZGVsbGEgY2F0ZWdvcmlhPC9saQ0KPGxpPlwmcXVvdDtjYXRlZ29yeV9uYW1lXCZxdW90OyAtIE5vbWUgZGVsbGEgY2F0ZWdvcmlhPC9saT4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfb3JkZXJcJnF1b3Q7IC0gUG9zaXppb25lIGRlbGxhIGNhdGVnb3JpYSBuZWxsJiMwMzk7b3JkaW5hbWVudG88L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5RGVsZXRlZCddID0gJzxwPkludmlhdG8gcXVhbmRvIHZpZW5lIGVsaW1pbmF0YSB1bmEgY2F0ZWdvcmlhLjwvcD4NCjxoND5QYXJhbWV0ZXJpPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfaWRcJnF1b3Q7IC0gaWQgZGVsbGEgY2F0ZWdvcmlhPC9saQ0KPGxpPlwmcXVvdDtjYXRlZ29yeV9uYW1lXCZxdW90OyAtIE5vbWUgZGVsbGEgY2F0ZWdvcmlhPC9saT4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfb3JkZXJcJnF1b3Q7IC0gUG9zaXppb25lIGRlbGxhIGNhdGVnb3JpYSBuZWxsJiMwMzk7b3JkaW5hbWVudG88L2xpPg0KPC91bD4nOwokbGFuZ1snZXJyb3JfY3N2X2luc2VydCddID0gJ0Vycm9yZSBkdXJhbnRlIGwmIzAzOTtpbXBvcnRhemlvbmUgZGkgZXZlbnRpIGRhIGNzdiBhbGxhIGxpbmVhICVkJzsKJGxhbmdbJ2Vycm9yX2NzdmZpcnN0bGluZWZsZG5vdGZvdW5kJ10gPSAnVW4gY2FtcG8gcmljaGllc3RvICggJXMgKSBub24gJmVncmF2ZTsgc3RhdG8gdHJvdmF0byBuZWxsYSByaWdhIGRpIGludGVzdGF6aW9uZSBkZWwgZmlsZSBjc3YnOwokbGFuZ1snZXJyb3JfY3N2aW52YWxpZGZpcnN0bGluZSddID0gJ05vbiAmZWdyYXZlOyBwb3NzaWJpbGUgaW5kaXZpZHVhcmUgdW5hIHByaW1hIHJpZ2EgdmFsaWRhIG5lbCBmaWxlIENTVic7CiRsYW5nWydtc2dfZXZlbnRhZGRlZCddID0gJ0V2ZW50byBhZ2dpdW50byc7CiRsYW5nWydlcnJvcl9ub2V2ZW50bmFtZSddID0gJ1VuIG5vbWUgcGVyIGwmIzAzOTtldmVudG8gJmVncmF2ZTsgcmljaGllc3RvJzsKJGxhbmdbJ2Vycm9yX25vdXBsb2FkJ10gPSAnRVJST1JFOiBOb24gJmVncmF2ZTsgc3RhdG8gdHJvdmF0byBhbGN1biBmaWxlIGNhcmljYXRvJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRmaWxlbmFtZSddID0gJ0VSUk9SRTogSWwgZmlsZSBjYXJpY2F0byBub24gcHUmb2dyYXZlOyBlc3NlcmUgYWNjZXR0YXRvJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW13aXRodXBsb2FkJ10gPSAnRVJST1JFOiBFJiMwMzk7IGF2dmVudXRvIHVuIHByb2JsZW1hIGR1cmFudGUgaWwgY2FyaWNhbWVudG8gZGVsIGZpbGUnOwokbGFuZ1snZXJyb3JfZmlsZWNvcHlmYWlsZWQnXSA9ICdFUlJPUkU6IEUmIzAzOTsgYXZ2ZW51dG8gdW4gcHJvYmxlbWEgbWVudHJlIGlsIGZpbGUgdmVuaXZhIGNvcGlhdG8gbmVsbGEgc3VhIGRlc3RpbmF6aW9uZSBmaW5hbGUnOwokbGFuZ1snZXJyb3JfZmlsZWV4aXN0cyddID0gJ0VSUk9SRTogRXNpc3RlIGdpJmFncmF2ZTsgdW4gZmlsZSBjb24gcXVlbCBub21lJzsKJGxhbmdbJ2Vycm9yX2NzdmZpbGVub3Rmb3VuZCddID0gJ0VSUk9SRTogTm9uIHBvc3NvIHRyb3ZhcmUgaWwgZmlsZSBDU1YnOwokbGFuZ1snZXJyb3JfY2FudG9wZW5maWxlJ10gPSAnRVJST1JFOiBOb24gcG9zc28gYXByaXJlIGlsIGZpbGUnOwokbGFuZ1snZXJyb3JfY2F0ZWdvcnlleGlzdHMnXSA9ICdFUlJPUkU6IFVuYSBjYXRlZ29yaWEgY29uIGlsIG5vbWUgJXMgZ2kmYWdyYXZlOyBlc2lzdGUnOwokbGFuZ1snY2FsX2lkJ10gPSAnSUQnOwokbGFuZ1snY2FsX2NhbGVuZGFyJ10gPSAnQ2FsZW5kYXJpbyc7CiRsYW5nWydjYWxfZGVmYXVsdF90ZW1wbGF0ZXMnXSA9ICdUZW1wbGF0ZSBwcmVkZWZpbml0aSc7CiRsYW5nWydjYWxfZGVzY3JpcHRpb24nXSA9ICdBZ2dpdW5nZSwgbW9kaWZpY2EgZSByaW11b3ZlIGV2ZW50aSc7CiRsYW5nWydjYWxfYWRkZXZlbnQnXSA9ICdBZ2dpdW5naSBFdmVudGknOwokbGFuZ1snY2FsX2ltcG9ydF9ldmVudHMnXSA9ICdJbXBvcnRhIEV2ZW50aSc7CiRsYW5nWydjYWxfZXZlbnRzJ10gPSAnRXZlbnRpJzsKJGxhbmdbJ2NhbF9jYXRlZ29yaWVzJ10gPSAnQ2F0ZWdvcmllJzsKJGxhbmdbJ2NhbF9jYWxlbmRhcl90ZW1wbGF0ZSddID0gJ01vZGVsbG8gZGVsIGNhbGVuZGFyaW8nOwokbGFuZ1snY2FsX2xpc3RfdGVtcGxhdGUnXSA9ICdNb2RlbGxvIGRlbGxhIGxpc3RhJzsKJGxhbmdbJ2NhbF91cGNvbWluZ2xpc3RfdGVtcGxhdGUnXSA9ICdNb2RlbGxvIGRpIGV2ZW50byBpbW1pbmVudGUnOwokbGFuZ1snY2FsX2V2ZW50X3RlbXBsYXRlJ10gPSAnTW9kZWxsbyBkZWdsaSBldmVudGknOwokbGFuZ1snY2FsX3NldHRpbmdzJ10gPSAnQ29uZmlndXJhemlvbmknOwokbGFuZ1snY2FsX3ByZXYnXSA9ICcmbGFxdW87IFByZWNlZGVudGUnOwokbGFuZ1snY2FsX25leHQnXSA9ICdQcm9zc2ltbyAmcmFxdW87JzsKJGxhbmdbJ2NhbF9jYXRlZ29yaWVzX3VwZGF0ZWQnXSA9ICdDYXRlZ29yaWUgYWdnaW9ybmF0ZSc7CiRsYW5nWydjYWxfc2V0dGluZ3NfdXBkYXRlZCddID0gJ0NvbmZpZ3VyYXppb25pIGFnZ2lvcm5hdGUnOwokbGFuZ1snY2FsX2FkZF9ldmVudCddID0gJ0FnZ2l1bmdpIGV2ZW50byc7CiRsYW5nWydjYWxfZWRpdCddID0gJ01vZGlmaWNhJzsKJGxhbmdbJ2NhbF9kZWxldGUnXSA9ICdDYW5jZWxsYSc7CiRsYW5nWydjYWxfYXJleW91c3VyZSddID0gJ1NlaSBzaWN1cm8gZGkgdm9sZXIgY2FuY2VsbGFyZSc7CiRsYW5nWydjYWxfdXBkYXRlX3RlbXBsYXRlJ10gPSAnQWdnaW9ybmFtZW50byBNb2RlbGxvJzsKJGxhbmdbJ2NhbF9zdW5kYXknXSA9ICdEb21lbmljYSc7CiRsYW5nWydjYWxfbW9uZGF5J10gPSAnTHVuZWQmaWdyYXZlOyc7CiRsYW5nWydjYWxfdHVlc2RheSddID0gJ01hcnRlZCZpZ3JhdmU7JzsKJGxhbmdbJ2NhbF93ZWRuZXNkYXknXSA9ICdNZXJjb2xlZCZpZ3JhdmU7JzsKJGxhbmdbJ2NhbF90aHVyc2RheSddID0gJ0dpb3ZlZCZpZ3JhdmU7JzsKJGxhbmdbJ2NhbF9mcmlkYXknXSA9ICdWZW5lcmQmaWdyYXZlOyc7CiRsYW5nWydjYWxfc2F0dXJkYXknXSA9ICdTYWJhdG8nOwokbGFuZ1snY2FsX3N1biddID0gJ0RvbSc7CiRsYW5nWydjYWxfbW9uJ10gPSAnTHVuJzsKJGxhbmdbJ2NhbF90dWVzJ10gPSAnTWFyJzsKJGxhbmdbJ2NhbF93ZWQnXSA9ICdNZXInOwokbGFuZ1snY2FsX3RodXJzJ10gPSAnR2lvJzsKJGxhbmdbJ2NhbF9mcmknXSA9ICdWZW4nOwokbGFuZ1snY2FsX3NhdCddID0gJ1NhYic7CiRsYW5nWydjYWxfamFudWFyeSddID0gJ0dlbm5haW8nOwokbGFuZ1snY2FsX2ZlYnJ1YXJ5J10gPSAnRmViYnJhaW8nOwokbGFuZ1snY2FsX21hcmNoJ10gPSAnTWFyem8nOwokbGFuZ1snY2FsX2FwcmlsJ10gPSAnQXByaWxlJzsKJGxhbmdbJ2NhbF9tYXknXSA9ICdNYWdnaW8nOwokbGFuZ1snY2FsX2p1bmUnXSA9ICdHaXVnbm8nOwokbGFuZ1snY2FsX2p1bHknXSA9ICdMdWdsaW8nOwokbGFuZ1snY2FsX2F1Z3VzdCddID0gJ0Fnb3N0byc7CiRsYW5nWydjYWxfc2VwdGVtYmVyJ10gPSAnU2V0dGVtYnJlJzsKJGxhbmdbJ2NhbF9vY3RvYmVyJ10gPSAnT3R0b2JyZSc7CiRsYW5nWydjYWxfbm92ZW1iZXInXSA9ICdOb3ZlbWJyZSc7CiRsYW5nWydjYWxfZGVjZW1iZXInXSA9ICdEaWNlbWJyZSc7CiRsYW5nWydjYWxfYWRkJ10gPSAnQWdnaW9ybmEnOwokbGFuZ1snY2FsX3VwZGF0ZSddID0gJ0FnZ2l1bmdpJzsKJGxhbmdbJ2NhbF9ldmVudCddID0gJ0V2ZW50byc7CiRsYW5nWydjYWxfZGF0ZSddID0gJ0RhdGEnOwokbGFuZ1snY2FsX3N1bW1hcnknXSA9ICdTb21tYXJpbyc7CiRsYW5nWydjYWxfZGV0YWlscyddID0gJ0RldHRhZ2xpbyc7CiRsYW5nWydjYWxfbW9yZSddID0gJ2FsdHJvID4+JzsKJGxhbmdbJ2NhbF9yZXR1cm4nXSA9ICdSaXRvcm5vJzsKJGxhbmdbJ2NhbF90byddID0gJ2EnOwokbGFuZ1snY2FsX3Bhc3RfZXZlbnRzJ10gPSAnRXZlbnRpIHBhc3NhdGknOwokbGFuZ1snY2FsX3VwY29taW5nX2V2ZW50cyddID0gJ0V2ZW50aSBmdXR1cmknOwokbGFuZ1snY2FsX2FueV9jYXRlZ29yeSddID0gJ1F1YWxzaWFzaSBjYXRlZ29yaWEnOwokbGFuZ1snY2FsX3Nob3dfb25seV9ldmVudHNfaW4nXSA9ICdNb3N0cmEgc29sbyBnbGkgZXZlbnRpIGluJzsKJGxhbmdbJ2NhbF9maWx0ZXJfYnknXSA9ICdGaWx0cmEgVGl0b2xvIHBlciA8ZW0+KHJlZ2V4KTwvZW0+JzsKJGxhbmdbJ2NhbF9nbyddID0gJ1ZhaSc7CiRsYW5nWydjYWxfdGl0bGUnXSA9ICdUaXRvbG8nOwokbGFuZ1snY2FsX2Zyb21kYXRlJ10gPSAnRGFsbGEgZGF0YSc7CiRsYW5nWydjYWxfdG9kYXRlJ10gPSAnQWxsYSBkYXRhJzsKJGxhbmdbJ2NhbF91cGRhdGVfY2F0ZWdvcmllcyddID0gJ0FnZ2lvbmEgY2F0ZWdvcmllJzsKJGxhbmdbJ2NhbF9sYW5ndWFnZSddID0gJ0xpbmd1YSc7CiRsYW5nWydjYWxfdXBkYXRlc2V0dGluZ3MnXSA9ICdBZ2dpb3JuYSBjb25maWd1cmF6aW9uZSc7CiRsYW5nWydjYWxfdXNlX3R3ZWx2ZV9ob3VyX2Nsb2NrJ10gPSAnVXNhcmUgaWwgbCYjMDM5O29yb2xvZ2lvIGEgMTIgb3JlIG5lbCBtZW51IGEgdGVuZGluYSBkZWxsZSBvcmU/JzsKJGxhbmdbJ2NhbF9kZWZhdWx0X2NhdGVnb3J5J10gPSAnQ2F0ZWdvcmlhIFByZWRlZmluaXRhJzsKJGxhbmdbJ2NhbF91cGRhdGVfZmllbGRzJ10gPSAnQWdnaW9ybmEgQ2FtcGknOwokbGFuZ1snZm9yY2VfY2F0ZWdvcnknXSA9ICdGb3J6YSBhbG1lbm8gdW5hIGNhdGVnb3JpYSc7CiRsYW5nWydzaG93cGFzdHllYXJzJ10gPSAnTnVtZXJvIGRpIGFubmkgcGFzc2F0aSBwZXJtZXNzaSc7CiRsYW5nWydzaG93ZnV0dXJleWVhcnMnXSA9ICdOdW1lcm8gZGkgYW5uaSBmdXR1cmkgcGVybWVzc2knOwokbGFuZ1snaGlkZXN1bW1hcnknXSA9ICdEZXZlIGVzc2VyZSBuYXNjb3N0byBpbCBjYW1wbyBTb21tYXJpbyc7CiRsYW5nWydoaWRlY29udGVudCddID0gJ0RldmUgZXNzZXJlIG5hc2Nvc3RvIGlsIGNhbXBvIENvbnRlbnV0byc7CiRsYW5nWydjYXRlZ29yeV9yZW1pbmRlciddID0gJ1NlbGV6aW9uYXRlIHVuYSBvIHBpJnVncmF2ZTsgY2F0ZWdvcmllIHBlciBxdXN0byBldmVudG8nOwokbGFuZ1snbW9kdWxlX2V4YW1wbGVfc3R5bGVzaGVldCddID0gJ0VzZW1waW8gZGkgRm9nbGlvIGRpIFN0aWxlIHBlciBpbCBDYWxlbmRhcmlvJzsKJGxhbmdbJ2Vycm9yX3Blcm1pc3Npb24nXSA9ICdBdmV0ZSBiaXNvZ25vIGRpIHBlcm1lc3NpIGFwcHJvcHJpYXRpICglcykgcGVyIGFjY2VkZXJlIGEgcXVlc3RhIGZ1bnppb25hbGl0JmFncmF2ZTsnOwokbGFuZ1snaW5zdGFsbF9wb3N0bWVzc2FnZSddID0gJ0Vzc2VyZSBzaWN1cmkgZGkgY29uZmlndXJhcmUgaWwgcGVybWVzc28gJnF1b3Q7TW9kaWZ5IENhbGVuZGFyJnF1b3Q7IHBlciBnbGkgdXRlbnRpIGNoZSBkb3ZyYW5ubyBhbW1pbmlzdHJhcmUgZ2xpIGV2ZW50aSBkZWwgY2FsZW5kYXJpby4nOwokbGFuZ1snZGVsZXRldGFnZ2VkJ10gPSAnQ2FuY2VsbGEgZXZlbnRpIHNlbGV6aW9uYXRpJzsKJGxhbmdbJ2NvbmZpcm1kZWxldGV0YWdnZWQnXSA9ICdTaWV0ZSBzaWN1cmkgY2hlIHF1ZXN0aSBldmVudGkgZGViYmFubyBlc3NlcmUgY2FuY2VsbGF0aT8nOwokbGFuZ1sndGFnZ2VkZGVsZXRlZCddID0gJ0dsaSBldmVudGkgc2VsZXppb25hdGkgc29ubyBzdGF0aSBjYW5jZWxsYXRpJzsKJGxhbmdbJ3RlbXBsYXRlcyddID0gJ01vZGVsbGkgKHRlbXBsYXRlcyknOwokbGFuZ1sndGVtcGxhdGVfaGVscCddID0gJ0FpdXRvIHBlciBpIE1vZGVsbGknOwokbGFuZ1snZmlsZV90ZW1wbGF0ZXMnXSA9ICdNb2RlbGxpIGRpIEZpbGUnOwokbGFuZ1snYWRkdGVtcGxhdGUnXSA9ICdBZ2dpdW5naSBNb2RlbGxvJzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnTW9kZWxsbyc7CiRsYW5nWyd0ZW1wbGF0ZW5hbWV0ZXh0J10gPSAnTm9tZSBNb2RlbGxvJzsKJGxhbmdbJ2VkaXR0ZW1wbGF0ZSddID0gJ01vZGlmaWNhIE1vZGVsbG8nOwokbGFuZ1snZGVsZXRldGVtcGxhdGUnXSA9ICdDYW5jZWxsYSBNb2RlbGxvJzsKJGxhbmdbJ25ld3RlbXBsYXRlJ10gPSAnTm9tZSBkZWwgTnVvdm8gTW9kZWxsbyc7CiRsYW5nWyd0ZW1wbGF0ZW5hbWVleGlzdHMnXSA9ICdFcnJvcmU6ICZlZ3JhdmU7IGdpJmFncmF2ZTsgcHJlc2VudGUgdW4gbW9kZWxsbyBjb24gbG8gc3Rlc3NvIG5vbWUuIFNjZWdsaWV0ZW5lIHVubyBkaXZlcnNvJzsKJGxhbmdbJ3RlbXBsYXRlaW1wb3J0ZWQnXSA9ICdJbCBtb2RlbGxvICZlZ3JhdmU7IHN0YXRvIGltcG9ydGF0byBuZWwgZGF0YWJhc2UgY29uIHN1Y2Nlc3NvIGUgb3JhICZlZ3JhdmU7IGluc3RhbGxhdG8gcGVyIGwmIzAzOTt1c28uJzsKJGxhbmdbJ3ZpZXdfZGVmYXVsdF9zdHlsZXNoZWV0J10gPSAnVmlzdWFsaXp6YSBGb2dsaW8gZGkgU3RpbGUgcHJlZGVmaW5pdG8nOwokbGFuZ1snZmlsZW5hbWUnXSA9ICdOb21lIGZpbGUnOwokbGFuZ1snaW1wb3J0dGVtcGxhdGUnXSA9ICdJbXBvcnRhIE1vZGVsbG8nOwokbGFuZ1sndGVtcGxhdGVfZGVsZXRlZCddID0gJ0lsIE1vZGVsbG8gJmVncmF2ZTsgc3RhdG8gY2FuY2VsbGF0byBkYWwgZGF0YWJhc2UgY29uIHN1Y2Nlc3NvLic7CiRsYW5nWyd1cGRhdGV0ZW1wbGF0ZXN1Y2Nlc3MnXSA9ICdJbCBtb2RlbGxvICZlZ3JhdmU7IHN0YXRvIGFnZ2lvcm5hdG8gY29uIHN1Y2Nlc3NvJzsKJGxhbmdbJ3VwZGF0ZXRlbXBsYXRlZmFpbHVyZSddID0gJ1NpICZlZ3JhdmU7IHZlcmlmaWNhdG8gdW4gZXJyb3JlIGFnZ2lvcm5hbmRvIGlsIG1vZGVsbG8nOwokbGFuZ1snc2V0dGluZ3NzYXZlZCddID0gJ0xlIGltcG9zdGF6aW9uaSBzb25vIHN0YXRlIHNhbHZhdGUgY29uIHN1Y2Nlc3NvJzsKJGxhbmdbJ2NhdGVnb3J5ZGVsZXRlZCddID0gJ0NhdGVnb3JpYSBjYW5jZWxsYXRhJzsKJGxhbmdbJ2NhdGVnb3J5dXBkYXRlZCddID0gJ0NhdGVnb3JpYSBhZ2dpb3JuYXRhJzsKJGxhbmdbJ2NhdGVnb3J5YWRkZWQnXSA9ICdDYXRlZ29yaWEgYWdnaXVudGEnOwokbGFuZ1snZXZlbnRkZWxldGVkJ10gPSAnTCYjMDM5O2V2ZW50byAmZWdyYXZlOyBzdGF0byBjYW5jZWxsYXRvJzsKJGxhbmdbJ2V2ZW50dXBkYXRlZCddID0gJ1F1ZXN0byBldmVudG8gJmVncmF2ZTsgc3RhdG8gYWdnaW9ybmF0byc7CiRsYW5nWydkZWZhdWx0X3BhZ2VfZXJyb3InXSA9ICdFcnJvcmU6IGRvdmV0ZSBpbXBvc3RhcmUgdW5hIHBhZ2luYSBwcmVkZWZpbml0YSBwZXIgcG90ZXJlIHV0aWxpenphcmUgaWwgbW9kdWxvIENhbGVuZGFyIGNvbiBpIHByZXR0eSBVUkwgYXR0aXZhdGkuIEFuZGF0ZSBuZWwgbWVudSBkZWxsZSBpbXBvc3RhemlvbmkgZGkgQ2FsZW5kYXIgZSBzY2VnbGlldGVuZSB1bmEuJzsKJGxhbmdbJ3RpbWVfYXQnXSA9ICdhbGxlJzsKJGxhbmdbJ3R5cGUnXSA9ICdUaXBvJzsKJGxhbmdbJ25hbWUnXSA9ICdOb21lJzsKJGxhbmdbJ29yZGVyJ10gPSAnT3JkaW5lJzsKJGxhbmdbJ2ZpZWxkYWRkZWQnXSA9ICdDYW1wbyBhZ2dpdW50byBjb24gc3VjY2Vzc28nOwokbGFuZ1snZmllbGRkZWxldGVkJ10gPSAnQ2FtcG8gY2FuY2VsbGF0byc7CiRsYW5nWydmaWVsZHMnXSA9ICdDYW1waSBwZXJzb25hbGl6emF0aSc7CiRsYW5nWyd0ZXh0ZmllbGQnXSA9ICdDYW1wbyB0ZXN0byc7CiRsYW5nWyd1cGxvYWRmaWVsZCddID0gJ0NhbXBvIGRpIGNhcmljYW1lbnRvIGZpbGUnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICc8cD5DYWxlbmRhciAmZWdyYXZlOyB1biBtb2R1bG8gcGVyIHZpc3VhbGl6emFyZSBldmVudGkgc3VsbGUgY29zdHJlIHBhZ2luZS4gUXVhbmRvIGlsIG1vZHVsbyAmZWdyYXZlOyBpbnN0YWxsYXRvIHZpZW5lIGFnZ2l1bnRhIHVuYSBQYWdpbmEgZGkgQW1taW5pc3RyYXppb25lIENhbGVuZGFyIG5lbCBtZW51IGRpIGNvbnRlbnV0bywgY2hlIHBlcm1ldHRlIGRpIGdlc3RpcmUgaSB2b3N0cmkgZXZlbnRpLjwvcD4nOwokbGFuZ1snZGVmYXVsdGNhbGVuZGFycGFnZSddID0gJ1BhZ2luYSBwcmVkZWZpbml0YSBjaGUgY29udGllbmUgQ2FsZW5kYXIuIERldmUgY29udGVuZXJlIHVubyBTbWFydHkgdGFnIGNoZSByaWNoaWFtYSBDYWxlbmRhci4gT2JibGlnYXRvcmlvIHNlIHVzYXRlIGwmIzAzOTtvcHppb25lIHByZXR0eSBVUkwuJzsKJGxhbmdbJ3VwbG9hZGRpcmVjdG9yeSddID0gJ0NhcnRlbGxhIGluIHBvc2l6aW9uYXJlIGkgZmlsZSBjYXJpY2F0aSc7CiRsYW5nWyd1cGxvYWRmaWxldHlwZXMnXSA9ICdUaXBpIGRpIGZpbGUgcGVybWVzc2knOwokbGFuZ1sndXBsb2FkdW5pcXVlJ10gPSAnVmVyaWZpY2Egbm9taSBkaSBmaWxlIHVuaWNpJzsKJGxhbmdbJ2NhbF9yZWN1cl9wZXJpb2QnXSA9ICdSaXBldGl6aW9uZSBFdmVudG8nOwokbGFuZ1snY2FsX3JlY3VyX3VudGlsJ10gPSAnU2kgcmlwZXRlIGZpbm8gYWwnOwokbGFuZ1snaGVscF90ZW1wbGF0ZSddID0gJzxwPjxiPlN0YW1wYSBOb21lIEF1dG9yZTo8L2I+PC9wPg0KPGNvZGU+QXV0b3JlOiB7JGV2ZW50LmF1dGhvcm5hbWV9PC9jb2RlPic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjgzODgxMTM3OS4xMzg1MTI5MTQzLjEzODkxOTg4NzIuMTM4OTcwNzEyNC40JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTM4OTE5ODg3Mi4zLjMudXRtY3NyPXNvbGdlYS5uZXR8dXRtY2NuPShyZWZlcnJhbCl8dXRtY21kPXJlZmVycmFsfHV0bWNjdD0vY21zbXMvYWRtaW4vaW5kZXgucGhwJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/lt_LT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2V2ZW50ZGVzYy1FdmVudEFkZGVkJ10gPSAnUHJhbmUmc2Nhcm9uO3RpIHBvIMSvdnlraW8gxK9kxJdqaW1vJzsKJGxhbmdbJ2V2ZW50ZGVzYy1FdmVudEVkaXRlZCddID0gJ1ByYW5lJnNjYXJvbjt0aSBwbyBlc2FuxI1pbyDEr3Z5a2lvIHJlZGFnYXZpbW8nOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50RGVsZXRlZCddID0gJ1ByYW5lJnNjYXJvbjt0aSBwbyDEr3Z5a2lvIGkmc2Nhcm9uO3RyaW5pbW8nOwokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5QWRkZWQnXSA9ICdQcmFuZSZzY2Fyb247dGkgcG8ga2F0ZWdvcmlqb3Mgc3VrxatyaW1vJzsKJGxhbmdbJ2V2ZW50ZGVzYy1DYXRlZ29yeUVkaXRlZCddID0gJ1ByYW5lJnNjYXJvbjt0aSBwbyBrYXRlZ29yaWpvcyByZWRhZ2F2aW1vJzsKJGxhbmdbJ2V2ZW50ZGVzYy1DYXRlZ29yeURlbGV0ZWQnXSA9ICdQcmFuZXMmc2Nhcm9uO3RpIHBvIGthdGVnb3Jpam9zIGkmc2Nhcm9uO3RyeW5pbW8nOwokbGFuZ1snZXZlbnRoZWxwLUV2ZW50QWRkZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBldmVudCBpcyBhZGRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2V2ZW50X3RpdGxlXCZxdW90OyAtIEV2ZW50IFRpdGxlPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfc3VtbWFyeVwmcXVvdDsgLSBTdW1tYXJ5IFRleHQ8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kZXRhaWxzXCZxdW90OyAtIERldGFpbGVkIERlc2NyaXB0aW9uPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGF0ZV9zdGFydFwmcXVvdDsgLSBUaGUgZXZlbnQgc3RhcnQgZGF0ZS90aW1lPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGF0ZV9lbmRcJnF1b3Q7IC0gVGhlIGV2ZW50IGVuZCBkYXRlL3RpbWU8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9jcmVhdGVkX2J5XCZxdW90OyAtIFRoZSB1c2VyaWQgb2YgdGhlIGF1dGhvcjwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2lkXCZxdW90OyAtIFRoZSBldmVudCBpZDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50aGVscC1FdmVudEVkaXRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGV2ZW50IGlzIGVkaXRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2V2ZW50X3RpdGxlXCZxdW90OyAtIEV2ZW50IFRpdGxlPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfc3VtbWFyeVwmcXVvdDsgLSBTdW1tYXJ5IFRleHQ8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kZXRhaWxzXCZxdW90OyAtIERldGFpbGVkIERlc2NyaXB0aW9uPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGF0ZV9zdGFydFwmcXVvdDsgLSBUaGUgZXZlbnQgc3RhcnQgZGF0ZS90aW1lPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGF0ZV9lbmRcJnF1b3Q7IC0gVGhlIGV2ZW50IGVuZCBkYXRlL3RpbWU8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9jcmVhdGVkX2J5XCZxdW90OyAtIFRoZSB1c2VyaWQgb2YgdGhlIGF1dGhvcjwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2lkXCZxdW90OyAtIFRoZSBldmVudCBpZDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50aGVscC1FdmVudERlbGV0ZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBldmVudCBpcyBkZWxldGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7ZXZlbnRfaWRcJnF1b3Q7IC0gVGhlIGV2ZW50IGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5QWRkZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBjYXRlZ29yeSBpcyBhZGRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2NhdGVnb3J5X2lkXCZxdW90OyAtIFRoZSBjYXRlZ29yeSBpZDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50aGVscC1DYXRlZ29yeUVkaXRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGNhdGVnb3J5IGlzIGVkaXRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2NhdGVnb3J5X2lkXCZxdW90OyAtIFRoZSBjYXRlZ29yeSBpZDwvbGk+DQo8bGk+XCZxdW90O2NhdGVnb3J5X25hbWVcJnF1b3Q7IC0gVGhlIGNhdGVnb3J5IG5hbWU8L2xpPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9vcmRlclwmcXVvdDsgLSBUaGUgY2F0ZWdvcnkgc29ydCBvcmRlcjwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50aGVscC1DYXRlZ29yeURlbGV0ZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBjYXRlZ29yeSBpcyBkZWxldGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfaWRcJnF1b3Q7IC0gVGhlIGNhdGVnb3J5IGlkPC9saT4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfbmFtZVwmcXVvdDsgLSBUaGUgY2F0ZWdvcnkgbmFtZTwvbGk+DQo8bGk+XCZxdW90O2NhdGVnb3J5X29yZGVyXCZxdW90OyAtIFRoZSBjYXRlZ29yeSBzb3J0IG9yZGVyPC9saT4NCjwvdWw+DQonOwokbGFuZ1snbXNnX2V2ZW50YWRkZWQnXSA9ICfErnZ5a2lzIHByaWTEl3Rhcyc7CiRsYW5nWydlcnJvcl9ub3VwbG9hZCddID0gJ0VSUk9SOiBObyB1cGxvYWRlZCBmaWxlIGZvdW5kJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRmaWxlbmFtZSddID0gJ0VSUk9SOiBUaGUgZmlsZSB1cGxvYWRlZCBjYW5ub3QgYmUgYWNjZXB0ZWQnOwokbGFuZ1snZXJyb3JfcHJvYmxlbXdpdGh1cGxvYWQnXSA9ICdFUlJPUjogQSBwcm9ibGVtIG9jY3VycmVkIHRyeWluZyB0byB1cGxvYWQgdGhlIGZpbGUnOwokbGFuZ1snZXJyb3JfZmlsZWNvcHlmYWlsZWQnXSA9ICdFUlJPUjogQSBQcm9ibGVtIG9jY3VycmVkIHdoZW4gY29weWluZyB0aGUgZmlsZSB0byBpdHMgZmluYWwgZGVzdGluYXRpb24nOwokbGFuZ1snZXJyb3JfZmlsZWV4aXN0cyddID0gJ0VSUk9SOiBBIGZpbGUgYnkgdGhhdCBuYW1lIGFscmVhZHkgZXhpc3RzJzsKJGxhbmdbJ2Vycm9yX2NzdmZpbGVub3Rmb3VuZCddID0gJ0tsYWlkYTogTmXEr21hbm8gcmFzdGkgQ1NWIGJ5bGEnOwokbGFuZ1snZXJyb3JfY2FudG9wZW5maWxlJ10gPSAnS2xhaWRhOiBOZcSvbWFub21hIGF0aWRhcnl0aSBieWxvcyc7CiRsYW5nWydjYWxfY2FsZW5kYXInXSA9ICdLYWxlbmRvcml1cyc7CiRsYW5nWydjYWxfZGVzY3JpcHRpb24nXSA9ICdTdWt1cnRpLCByZWRhZ3VvdGkgaXIgcGEmc2Nhcm9uO2FsaW50aSDEr3Z5a2l1cyc7CiRsYW5nWydjYWxfYWRkZXZlbnQnXSA9ICdTdWt1cnRpIMSvdnlrxK8nOwokbGFuZ1snY2FsX2ltcG9ydF9ldmVudHMnXSA9ICdJbXBvcnR1b3RpIMSvdnlraXVzJzsKJGxhbmdbJ2NhbF9ldmVudHMnXSA9ICfErnZ5a2lhaSc7CiRsYW5nWydjYWxfY2F0ZWdvcmllcyddID0gJ0thdGVnb3Jpam9zJzsKJGxhbmdbJ2NhbF9jYWxlbmRhcl90ZW1wbGF0ZSddID0gJ0thbGVuZG9yaWF1cyAmc2Nhcm9uO2FibG9uYXMnOwokbGFuZ1snY2FsX2xpc3RfdGVtcGxhdGUnXSA9ICdTxIVyYSZzY2Fyb247byAmc2Nhcm9uO2FibG9uYXMnOwokbGFuZ1snY2FsX3VwY29taW5nbGlzdF90ZW1wbGF0ZSddID0gJ0LFq3NpbcWzIMSvdnlracWzICZzY2Fyb247YWJsb25hcyc7CiRsYW5nWydjYWxfZXZlbnRfdGVtcGxhdGUnXSA9ICfErnZ5a2lvICZzY2Fyb247YWJsb25hcyc7CiRsYW5nWydjYWxfc2V0dGluZ3MnXSA9ICdOdXN0YXR5bWFpJzsKJGxhbmdbJ2NhbF9wcmV2J10gPSAnJmxhcXVvOyBBbmtzdGVzbmlzJzsKJGxhbmdbJ2NhbF9uZXh0J10gPSAnVsSXbGVzbmlzICZyYXF1bzsnOwokbGFuZ1snY2FsX2NhdGVnb3JpZXNfdXBkYXRlZCddID0gJ0thdGVnb3Jpam9zIGF0bmF1amludG9zJzsKJGxhbmdbJ2NhbF9zZXR0aW5nc191cGRhdGVkJ10gPSAnTnVzdGF0eW1haSBhdG5hdWppbnRpJzsKJGxhbmdbJ2NhbF9hZGRfZXZlbnQnXSA9ICdTdWt1cnRpIMSvdnlrxK8nOwokbGFuZ1snY2FsX2VkaXQnXSA9ICdSZWRhZ3VvdGknOwokbGFuZ1snY2FsX2RlbGV0ZSddID0gJ0kmc2Nhcm9uO3RyaW50aSc7CiRsYW5nWydjYWxfYXJleW91c3VyZSddID0gJ0FyIHRpa3JhaSBub3JpdGUgaSZzY2Fyb247dHJpbnRpJzsKJGxhbmdbJ2NhbF91cGRhdGVfdGVtcGxhdGUnXSA9ICdBdG5hdWppbnRpICZzY2Fyb247YWJsb27EhSc7CiRsYW5nWydjYWxfc3VuZGF5J10gPSAnU2VrbWFkaWVuaXMnOwokbGFuZ1snY2FsX21vbmRheSddID0gJ1Bpcm1hZGllbmlzJzsKJGxhbmdbJ2NhbF90dWVzZGF5J10gPSAnQW50cmFkaWVuaXMnOwokbGFuZ1snY2FsX3dlZG5lc2RheSddID0gJ1RyZcSNaWFkaWVuaXMnOwokbGFuZ1snY2FsX3RodXJzZGF5J10gPSAnS2V0dmlydGFkaWVuaXMnOwokbGFuZ1snY2FsX2ZyaWRheSddID0gJ1Blbmt0YWRpZW5pcyc7CiRsYW5nWydjYWxfc2F0dXJkYXknXSA9ICcmU2Nhcm9uO2Umc2Nhcm9uO3RhZGllbmlzJzsKJGxhbmdbJ2NhbF9zdW4nXSA9ICdTZWsnOwokbGFuZ1snY2FsX21vbiddID0gJ1Bpcic7CiRsYW5nWydjYWxfdHVlcyddID0gJ0FudCc7CiRsYW5nWydjYWxfd2VkJ10gPSAnVHJlJzsKJGxhbmdbJ2NhbF90aHVycyddID0gJ0tldCc7CiRsYW5nWydjYWxfZnJpJ10gPSAnUGVuJzsKJGxhbmdbJ2NhbF9zYXQnXSA9ICcmU2Nhcm9uO2Umc2Nhcm9uOyc7CiRsYW5nWydjYWxfamFudWFyeSddID0gJ1NhdXNpbyc7CiRsYW5nWydjYWxfZmVicnVhcnknXSA9ICdWYXNhcmlvJzsKJGxhbmdbJ2NhbF9tYXJjaCddID0gJ0tvdm8nOwokbGFuZ1snY2FsX2FwcmlsJ10gPSAnQmFsYW5kxb5pbyc7CiRsYW5nWydjYWxfbWF5J10gPSAnR2VndcW+xJdzJzsKJGxhbmdbJ2NhbF9qdW5lJ10gPSAnQmlyxb5lbGlvJzsKJGxhbmdbJ2NhbF9qdWx5J10gPSAnTGllcG9zJzsKJGxhbmdbJ2NhbF9hdWd1c3QnXSA9ICdSdWdwasWrxI1pbyc7CiRsYW5nWydjYWxfc2VwdGVtYmVyJ10gPSAnUnVnc8SXam8nOwokbGFuZ1snY2FsX29jdG9iZXInXSA9ICdTcGFsaW8nOwokbGFuZ1snY2FsX25vdmVtYmVyJ10gPSAnTGFwa3JpxI1pbyc7CiRsYW5nWydjYWxfZGVjZW1iZXInXSA9ICdHcnVvZMW+aW8nOwokbGFuZ1snY2FsX2FkZCddID0gJ1ByaWTEl3RpJzsKJGxhbmdbJ2NhbF91cGRhdGUnXSA9ICdBdG5hdWppbnRpJzsKJGxhbmdbJ2NhbF9ldmVudCddID0gJ8SudnlraXMnOwokbGFuZ1snY2FsX2RhdGUnXSA9ICdEYXRhJzsKJGxhbmdbJ2NhbF9zdW1tYXJ5J10gPSAnU2FudHJhdWthJzsKJGxhbmdbJ2NhbF9kZXRhaWxzJ10gPSAnRGV0YWzEl3MnOwokbGFuZ1snY2FsX21vcmUnXSA9ICdwbGHEjWlhdSA+Pic7CiRsYW5nWydjYWxfcmV0dXJuJ10gPSAnR3LEr8W+dGknOwokbGFuZ1snY2FsX3RvJ10gPSAnaWtpJzsKJGxhbmdbJ2NhbF9wYXN0X2V2ZW50cyddID0gJ1ByYcSXasSZIMSvdnlraWFpJzsKJGxhbmdbJ2NhbF91cGNvbWluZ19ldmVudHMnXSA9ICdBcnTEl2phbnR5cyDEr3Z5a2lhaSc7CiRsYW5nWydjYWxfYW55X2NhdGVnb3J5J10gPSAnVmlzb3Mga2F0ZWdvcmlqb3MnOwokbGFuZ1snY2FsX3Nob3dfb25seV9ldmVudHNfaW4nXSA9ICfErnZ5a2l1cyByb2R5dGkgdGlrJzsKJGxhbmdbJ2NhbF9maWx0ZXJfYnknXSA9ICdGaWx0cnVvdGkgcGFnYWwnOwokbGFuZ1snY2FsX2dvJ10gPSAnUGlybXluJzsKJGxhbmdbJ2NhbF90aXRsZSddID0gJ1BhdmFkaW5pbWFzJzsKJGxhbmdbJ2NhbF9mcm9tZGF0ZSddID0gJ051byBkYXRvcyc7CiRsYW5nWydjYWxfdG9kYXRlJ10gPSAnSWtpIGRhdG9zJzsKJGxhbmdbJ2NhbF91cGRhdGVfY2F0ZWdvcmllcyddID0gJ0F0bmF1amludGkga2F0ZWdvcmlqYXMnOwokbGFuZ1snY2FsX2xhbmd1YWdlJ10gPSAnS2FsYmEnOwokbGFuZ1snY2FsX3VwZGF0ZXNldHRpbmdzJ10gPSAnQXRuYXVqaW50aSBudXN0YXR5bXVzJzsKJGxhbmdbJ2NhbF91c2VfdHdlbHZlX2hvdXJfY2xvY2snXSA9ICduYXVkb3RpIDEyIHZhbGFuxbMgZm9ybWF0xIU/JzsKJGxhbmdbJ2NhbF9kZWZhdWx0X2NhdGVnb3J5J10gPSAnxK5wcmFzdGEga2F0ZWdvcmlqYSc7CiRsYW5nWydjYWxfdXBkYXRlX2ZpZWxkcyddID0gJ1VwZGF0ZSBGaWVsZHMnOwokbGFuZ1snZm9yY2VfY2F0ZWdvcnknXSA9ICdCxat0aW5haSBiZW50IHZpZW5hIGthdGVnb3JpamEgcGFzaXJpbmt0aSc7CiRsYW5nWydzaG93cGFzdHllYXJzJ10gPSAnS2llayBtZXTFsyDEryBwcmFlaXRpIGxlaXN0aSc7CiRsYW5nWydzaG93ZnV0dXJleWVhcnMnXSA9ICdLaWVrIG1ldMWzIMSvIGF0ZWl0xK8gbGVpc3RpJzsKJGxhbmdbJ2hpZGVzdW1tYXJ5J10gPSAnQXIgc2FudHJhdWtvcyBsYXVrZWxpcyB0dXLEl3TFsyBixat0IHBhc2zEl3B0YXMnOwokbGFuZ1snaGlkZWNvbnRlbnQnXSA9ICdBciB0dXJpbmlvbGF1a2VsaXMgdHVyxJd0xbMgYsWrdCBwYXNsxJdwdGFzJzsKJGxhbmdbJ2NhdGVnb3J5X3JlbWluZGVyJ10gPSAnUHJhJnNjYXJvbjtvbWUgcGFzaXJpbmt0aSB2aWVuYSBhciBrZWxpYXMga2F0ZWdvcmlqYXMnOwokbGFuZ1snbW9kdWxlX2V4YW1wbGVfc3R5bGVzaGVldCddID0gJ0thbGVuZG9yaWF1cyBDU1MgcGF2eXpkeXMnOwokbGFuZ1snZXJyb3JfcGVybWlzc2lvbiddID0gJ1R1cml0ZSB0dXLEl3RpIGF0aXRpbmthbcSFICglcykgbGVpZG3EhSAmc2Nhcm9uO2lhaSBmdW5rY2lqYWknOwokbGFuZ1snaW5zdGFsbF9wb3N0bWVzc2FnZSddID0gJ8Suc2l0aW5raXRlLCBrYWQgJnF1b3Q7bW9kaWZ5IGNhbGVuZGFyJnF1b3Q7IGxlaWRpbWFpIG51c3RhdHl0aSB0aW5rYW1haSB2YXJ0b3RvamFtcyBrdXJpZSBuYXVkb3NpIGthbGVuZG9yaWF1cyBmdW5rY2lqYSc7CiRsYW5nWydkZWxldGV0YWdnZWQnXSA9ICdUcmludGkgcGHFvnltxJd0dXMgxK92eWtpdXMnOwokbGFuZ1snY29uZmlybWRlbGV0ZXRhZ2dlZCddID0gJ0FyIHRpa3JhaSBub3JpdCBpJnNjYXJvbjt0cmludGk/JzsKJGxhbmdbJ3RhZ2dlZGRlbGV0ZWQnXSA9ICdQYXNpcmlua3RpIMSvdnlraWFpIGkmc2Nhcm9uO3RyaW50aSc7CiRsYW5nWyd0ZW1wbGF0ZXMnXSA9ICcmU2Nhcm9uO2FibG9uYWknOwokbGFuZ1sndGVtcGxhdGVfaGVscCddID0gJyZTY2Fyb247YWJsb25vIHBhZ2FsYmEnOwokbGFuZ1snZmlsZV90ZW1wbGF0ZXMnXSA9ICdCeWzFsyAmc2Nhcm9uO2FibG9uYWknOwokbGFuZ1snYWRkdGVtcGxhdGUnXSA9ICdQcmlkxJd0aSAmc2Nhcm9uO2FibG9uxIUnOwokbGFuZ1sndGVtcGxhdGUnXSA9ICcmU2Nhcm9uO2FibG9uYXMnOwokbGFuZ1sndGVtcGxhdGVuYW1ldGV4dCddID0gJyZTY2Fyb247YWJsb25vIHBhdmFkaW5pbWFzJzsKJGxhbmdbJ2VkaXR0ZW1wbGF0ZSddID0gJ1JlZGFndW90aSAmc2Nhcm9uO2FibG9uxIUnOwokbGFuZ1snZGVsZXRldGVtcGxhdGUnXSA9ICdJJnNjYXJvbjt0cmludGkgJnNjYXJvbjthYmxvbsSFJzsKJGxhbmdbJ25ld3RlbXBsYXRlJ10gPSAnTmF1am8gJnNjYXJvbjthYmxvbm8gcGF2YWRpbmltYXMnOwokbGFuZ1sndGVtcGxhdGVuYW1lZXhpc3RzJ10gPSAnRXJyb3I6IEEgdGVtcGxhdGUgd2l0aCB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMuIFBsZWFzZSBjaG9vc2UgYSBkaWZmZXJlbnQgbmFtZS4nOwokbGFuZ1sndGVtcGxhdGVpbXBvcnRlZCddID0gJ1RoZSB0ZW1wbGF0ZSB3YXMgc3VjZXNzZnVsbHkgaW1wb3J0ZWQgaW50byB0aGUgZGF0YWJhc2UgYW5kIGlzIG5vdyBpbnN0YWxsZWQgZm9yIHVzZS4nOwokbGFuZ1sndmlld19kZWZhdWx0X3N0eWxlc2hlZXQnXSA9ICdWaWV3IERlZmF1bHQgU3R5bGVzaGVldCc7CiRsYW5nWydmaWxlbmFtZSddID0gJ0J5bG9zIHBhdmFkaW5pbWFzJzsKJGxhbmdbJ2ltcG9ydHRlbXBsYXRlJ10gPSAnSW1wb3J0dW90aSAmc2Nhcm9uO2FibG9uxIUnOwokbGFuZ1sndGVtcGxhdGVfZGVsZXRlZCddID0gJyZTY2Fyb247YWJsb25hcyBidXZvIHPEl2ttaW5nYWkgaSZzY2Fyb247IGR1b21lbsWzIGJhesSXcyBpJnNjYXJvbjt0cmludGFzJzsKJGxhbmdbJ3VwZGF0ZXRlbXBsYXRlc3VjY2VzcyddID0gJyZTY2Fyb247YWJsb25hcyBhdG5hdWppbnRhcyBzxJdrbWluZ2FpJzsKJGxhbmdbJ3VwZGF0ZXRlbXBsYXRlZmFpbHVyZSddID0gJ0tsYWlkYSBhdG5hdWppbmFudCAmc2Nhcm9uO2FibG9uxIUnOwokbGFuZ1snc2V0dGluZ3NzYXZlZCddID0gJ051c3RhdHltYWkgc8SXa21pbmdhaSBpJnNjYXJvbjtzYXVnb3RpJzsKJGxhbmdbJ2NhdGVnb3J5ZGVsZXRlZCddID0gJ0thdGVnb3JpamEgcGEmc2Nhcm9uO2FsaW50YSc7CiRsYW5nWydjYXRlZ29yeXVwZGF0ZWQnXSA9ICdLYXRlZ29yaWphIGF0bmF1amludGEnOwokbGFuZ1snY2F0ZWdvcnlhZGRlZCddID0gJ0thdGVnb3JpamEgcHJpZMSXdGEnOwokbGFuZ1snZXZlbnRkZWxldGVkJ10gPSAnxK52eWtpcyBwYSZzY2Fyb247YWxpbnRhcyc7CiRsYW5nWydldmVudHVwZGF0ZWQnXSA9ICfErnZ5a2lzIGF0bmF1amludGFzJzsKJGxhbmdbJ2RlZmF1bHRfcGFnZV9lcnJvciddID0gJ0Vycm9yOiBZb3UgbXVzdCBzZXQgYSBkZWZhdWx0IHBhZ2UgaW4gb3JkZXIgdG8gdXNlIENhbGVuZGFyIHdpdGggcHJldHR5IFVSTHMgdHVybmVkIG9uLiBQbGVhc2UgZ28gdG8gdGhlIENhbGVuZGFyIHNldHRpbmdzIHRhYiBhbmQgY2hvb3NlIG9uZS4nOwokbGFuZ1sndGltZV9hdCddID0gJ2lraSc7CiRsYW5nWyd0eXBlJ10gPSAnVGlwYXMnOwokbGFuZ1snbmFtZSddID0gJ1BhdmFkaW5pbWFzJzsKJGxhbmdbJ29yZGVyJ10gPSAnVHZhcmthJzsKJGxhbmdbJ2ZpZWxkYWRkZWQnXSA9ICdMYXVrYXMgc8SXa21pbmdhaSBwcmlkxJd0YXMnOwokbGFuZ1snZmllbGRkZWxldGVkJ10gPSAnTGF1a2FzIGkmc2Nhcm9uO3RyaW50YXMnOwokbGFuZ1snZmllbGRzJ10gPSAnQ3VzdG9tIEZpZWxkcyc7CiRsYW5nWyd0ZXh0ZmllbGQnXSA9ICdUZXh0IEZpZWxkJzsKJGxhbmdbJ3VwbG9hZGZpZWxkJ10gPSAnRmlsZSB1cGxvYWQgZmllbGQnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICc8cD5DYWxlbmRhciBpcyBhIG1vZHVsZSBmb3IgZGlzcGxheWluZyBldmVudHMgb24geW91ciBwYWdlLiBXaGVuIHRoZQ0KCQltb2R1bGUgaXMgaW5zdGFsbGVkLCBhIENhbGVuZGFyIGFkbWluIHBhZ2UgaXMgYWRkZWQgdG8gdGhlIGNvbnRlbnQgbWVudQ0KCQl0aGF0IHdpbGwgYWxsb3cgeW91IHRvIG1hbmFnZSB5b3VyIGV2ZW50cy48L3A+JzsKJGxhbmdbJ2RlZmF1bHRjYWxlbmRhcnBhZ2UnXSA9ICdEZWZhdWx0IHBhZ2UgdGhhdCBjb250YWlucyBDYWxlbmRhci4gVGhpcyBwYWdlIG11c3QgY29udGFpbiBhIFNtYXJ0eSB0YWcgdGhhdCBjYWxscyBDYWxlbmRhci4gUmVxdWlyZWQgaWYgeW91IHVzZSB0aGUgcHJldHR5IFVSTHMuJzsKJGxhbmdbJ3VwbG9hZGRpcmVjdG9yeSddID0gJ0RpcmVjdG9yeSB3aGVyZXIgZmlsZSB1cGxvYWRzIHNob3VsZCBiZSBwbGFjZWQnOwokbGFuZ1sndXBsb2FkZmlsZXR5cGVzJ10gPSAnTGVpZMW+aWFtaSBieWzFsyB0aXBhaSc7CiRsYW5nWyd1cGxvYWR1bmlxdWUnXSA9ICdFbnN1cmUgdW5pcXVlIGZpbGVzbmFtZXMnOwokbGFuZ1sndGh1bWJfd2lkdGgnXSA9ICdUaHVtYm5haWwgV2lkdGgnOwokbGFuZ1sndGh1bWJfaGVpZ2h0J10gPSAnVGh1bWJuYWlsIEhlaWdodCc7CiRsYW5nWydsYXJnZV93aWR0aCddID0gJ0xhcmdlIEltYWdlIFdpZHRoJzsKJGxhbmdbJ2xhcmdlX2hlaWdodCddID0gJ0xhcmdlIEltYWdlIEhlaWdodCc7CiRsYW5nWydjYWxfcmVjdXJfcGVyaW9kJ10gPSAnUmVjdXJzJzsKJGxhbmdbJ2NhbF9yZWN1cl91bnRpbCddID0gJ1JlY3VycyBVbnRpbCc7CiRsYW5nWydoZWxwX3RlbXBsYXRlJ10gPSAnPHA+PGI+UHJpbnQgQXV0aG9yIE5hbWU6PC9iPjwvcD4NCjxjb2RlPkF1dGhvcjogeyRldmVudC5hdXRob3JuYW1lfTwvY29kZT4NCic7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2Vycm9yX2ZldV9sb2dnZWRpbiddID0gJ0JydWtlcmVuIGVyIGlra2UgbG9nZ2V0IGlubiBpIEZFVS4gTGVnZ2UgdGlsIGVsbGVyIHJlZGlnZXJlIGhlbmRlbHNlciBlciBpa2tlIHRpbGxhdHQnOwokbGFuZ1sncHJvbXB0X2ZyaWVuZGx5bmFtZSddID0gJ1Zlbm5saWcgbmF2biBmb3IgZGVubmUgbW9kdWxlbiBpIGFkbWluIG1lbnllbic7CiRsYW5nWydpbmZvX2ZyaWVuZGx5bmFtZSddID0gJ01lcms6IER1IHZpbCBrYW5za2plIHRyZW5nZSAmYXJpbmc7IHQmb3NsYXNoO21tZSBuZXR0c3RlZGV0cyBtZWxsb21sYWdlciBmb3IgYXQgZGVubmUgaW5uc3RpbGxpbmdlbiBza2FsIGYmYXJpbmc7IGVmZmVrdC4gT20gaW5nZW4gdmVyZGkgZXIgb3BwZ2l0dCBzJmFyaW5nOyB2aWwgZW4gc3RhbmRhcmQgYmVueXR0ZXMuJzsKJGxhbmdbJ3VzZV93eXNpd3lnJ10gPSAnQmVueXR0IFd5c2l3eWcnOwokbGFuZ1snZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJ10gPSAnVXRpbHN0cmVra2VsaWdlIHBhcmFtZXRlcmUnOwokbGFuZ1snY29sdW1uX2RlbGltaXRlciddID0gJ1NraWxsZXRlZ24gZm9yIGltcG9ydGZpbGVucyBrb2xvbm5lcic7CiRsYW5nWydpbXBvcnRfY29tcGxldGVkJ10gPSAnSW1wb3J0IGZ1bGxmJm9zbGFzaDtydCc7CiRsYW5nWydudW1faW1wb3J0ZWQnXSA9ICdBbnRhbGwgYmVnaXZlbmhldGVyIG9wcHJldHRldDogJWQnOwokbGFuZ1snaW1wb3J0X2xpbmVzJ10gPSAnQW50YWxsIGxpbmplciBiZWhhbmRsZXQgZnJhIGZpbGVuOiAlZCc7CiRsYW5nWydlcnJvcnMnXSA9ICdGZWlsJzsKJGxhbmdbJ2Vycm9yX2NzdmZpcnN0bGluZWludmFsaWRmaWVsZCddID0gJ0ZlbHQ6ICVzIGVyIGlra2UgZ2plbmtqZW50LCBvZyBlciBpa2tlIGV0IGVnZW5kZWZpbmVydCBmZWx0JzsKJGxhbmdbJ2luZm9fY3N2X2Zvcm1hdCddID0gJzxoND5DU1YgRmlsZSBGb3JtYXQgSW5mb3JtYXRpb24uPC9oND4NCjx1bD4NCiAgPGxpPkdlbmVyYWwgSW5mb3JtYXRpb246DQogICA8dWw+DQogICAgIDxsaT5UaGUgZmlsZSBtdXN0IGJlIGFuIEFTQ0lJIGZpbGUgd2l0aCB1bml4IChwcmVmZXJyZWQpLCBkb3MsIG9yIG1hYyBsaW5lIGVuZGluZ3MuPC9saT4NCiAgICAgPGxpPkNvbW1lbnRzIHN0YXJ0IHdpdGggLy8gYW55IGNoYXJhY3RlcnMgYWZ0ZXIgdGhpcyBvbiBhIGxpbmUgd2lsbCBiZSBpZ25vcmVkIChpbmNsdWRpbmcgd2l0aGluIHF1b3Rlcy48L2xpPg0KICAgICA8bGk+RW1wdHkgbGluZXMgYXJlIGlnbm9yZWQ8L2xpPg0KICAgICA8bGk+RmllbGQgZGVsaW1pdGVycyBhcmUgdXNlciBjb250cm9sbGFibGUsIGhvd2V2ZXIgYSBkZWxpbWl0ZXIgY2FuIGJlIHVzZWQgYXMgYSB2YWx1ZSB3aXRoaW4gYSBmaWVsZCBpZiB0aGUgZmllbGQgaXMgZGVsaW1pdGVkIGJ5IGRvdWJsZSBxdW90ZXMuPC9saT4NCiAgICAgPGxpPlJvd3MgYXJlIGRlbGltaXRlZCBieSBuZXdsaW5lIGNoYXJzIChhcyBhYm92ZSkuPC9saT4NCiAgIDwvdWw+DQogIDwvbGk+DQogIDxsaT5UaGUgRmllbGQgTWFwOg0KICAgPHVsPg0KICAgIDxsaT5UaGUgZmlyc3QgbGluZSBkZWZpbmVzIHRoZSBvcmRlciBvZiB0aGUgZmllbGRzLCBhbmQgd2hhdCAmcXVvdDtjdXN0b20gZmllbGRzJnF1b3Q7IGFyZSBkZWZpbmVkIGluIHRoZSBmaWxlLiBEYXRhIGNhbiBzdGFydCBvbiB0aGUgc2Vjb25kIG5vbi1lbXB0eSBsaW5lLCBvciBhZnRlci48L2xpPg0KICAgIDxsaT5UaGVyZXMgYXJlIHRoZSByZXF1aXJlZCBmaWVsZHM6IHN0YXJ0IHRpbWUsIGVuZCB0aW1lLCB0aXRsZSwgc3VtbWFyeSwgYW5kIGRlc2NyaXB0aW9uLiAgV2l0aG91dCBkZWZpbmluZyB0aGVzZSBmaWVsZHMgaW4gdGhlIGhlYWRlciB0aGUgaW1wb3J0IHdpbGwgbm90IHByb2NlZWQuICBSZXF1aXJlZCBmaWVsZCBuYW1lcyBhcmUgbm90IGNhc2Ugc2Vuc2l0aXZlLjwvbGk+DQogICAgPGxpPlRoZXJlIGlzIG9uZSBvcHRpb25hbCBjb2x1bW46OiAmcXVvdDtjYXRlZ29yeSZxdW90Oy4gIElmIHNwZWNpZmllZCBpdCBjYW4gY29udGFpbiBhIDsgc2VwYXJhdGVkIGxpc3Qgb2YgY2F0ZWdvcnkgbmFtZXMgdGhhdCB0aGUgZXZlbnQgd2lsbCBiZWxvbmcgdG8uPC9saT4NCiAgIDwvdWw+DQogIDwvbGk+DQogIDxsaT5UaGUgRGF0YSBSb3dzOg0KICAgPHVsPg0KICAgIDxsaT5UaGUgc3RhcnQgdGltZSwgdGl0bGUsIGFuZCBkZXNjcmlwdGlvbiBmaWVsZHMgbXVzdCBub3QgYmUgZW1wdHkuPC9saT4NCjxsaT5TdGFydCBhbmQgRW5kIFRpbWVzOjwvbGk+DQogIDx1bD4NCiAgIDxsaT5TdGFydCB0aW1lIHByb2Nlc3NpbmcgaXMgZmxleGlibGUuICBZb3UgY2FuIHNwZWNpZnkgZWl0aGVyICBZWVlZLU1NLUREIEhIOk1NIGZvcm1hdCwgb3IgbWFueSBmb3JtYXRzIGFzIGRlZmluZWQgYnkgdGhlIHN0cnRvdGltZSBmdW5jdGlvbiwgaW5jbHVkaW5nIHJlbGF0aXZlIHRpbWVzLiAgSWYgYSByZWxhdGl2ZSB0aW1lIGlzIHN1cHBsaWVkIGl0IGlzIGFzc3VtZWQgdG8gYmUgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgdGltZS48L2xpPg0KICAgPGxpPkVuZCB0aW1lIHByb2Nlc3NpbmcgaXMgZmxleGlibGUsIGFuZCBtYXkgYmUgZW1wdHkuICBZb3UgY2FuIHNwZWNpZnkgZWl0aGVyIGFuIGFic29sdXRlIHRpbWUgKGluIHRoZSBzYW1lIGZvcm1hdCBhcyB0aGUgc3RhcnQgdGltZSkgb3IgYSByZWxhdGl2ZSB0aW1lLiAgSWYgYSByZWxhdGl2ZSB0aW1lIGlzIHNwZWNpZmllZCwgaXQgaXMgYXNzdW1lZCB0byBiZSByZWxhdGl2ZSB0byB0aGUgc3RhcnQgdGltZS4gICBpLmU6ICZxdW90Oys0IGhvdXJzJnF1b3Q7IHdvdWxkIGluZGljYXRlIDQgaG91cnMgZnJvbSB0aGUgc3RhcnQgdGltZSBjb2x1bW4uPC9saT4NCiAgIDxsaT5JZiB0aGUgZW5kIHRpbWUgY29sdW1lIGlzIHRoZSBzdHJpbmcgJnF1b3Q7QWxsIGRheSZxdW90OyA8ZW0+KGNhc2UgaW5zZW5zaXRpdmUpPC9lbT4gaXQgd2lsbCBhc3N1bWUgYW4gYWxsIGRheSBldmVudCBmcm9tIHRoZSBzdGFydCB0aW1lLjwvbGk+DQogICA8bGk+SWYgdGhlIGVuZCB0aW1lIGNvbHVtbiBpcyBlbXB0eSwgdGhlbiBubyBlbmQgdGltZSB2YWx1ZSB3aWxsIGJlIGNyZWF0ZWQgaW4gdGhlIGRhdGFiYXNlLjwvbGk+DQogIDwvdWw+DQo8L2xpPg0KPGxpPkNhdGVnb3JpZXMNCiAgPHVsPg0KICAgPGxpPklmIHNwZWNpZmllZCwgdGhlIGNhdGVnb3J5IGNvbHVtbiBjYW4gY29udGFpbiBhIGxpc3QgKHNlcGFyYXRlZCBieSA7KSBvZiBjYXRlZ29yeSBuYW1lcyBmb3Igd2hpY2ggdGhlIGV2ZW50IHNob3VsZCBiZWxvbmcuPC9saT4NCiAgIDxsaT5DYXRlZ29yeSBuYW1lcyBhcmUgY2FzZSBzZW5zaXRpdmUuPC9saT4NCiAgIDxsaT5DYXRlZ29yaWVzIGFyZSBub3QgY3JlYXRlZCBpZiB0aGV5IGRvIG5vdCBleGlzdC48L2xpPg0KICA8L3VsPg0KPC9saT4NCjxsaT5DdXN0b20gRmllbGRzOg0KICA8dWw+DQogICAgPGxpPkN1c3RvbSBmaWVsZCBuYW1lcyAoZXZlbiBpbiB0aGUgZmlyc3QgbGluZSB0aGF0IGRldGVybWluZXMgdGhlIGZpZWxkIG1hcHBpbmcpIGFyZSBjYXNlIHNlbnNpdGl2ZS48L2xpPg0KICAgIDxsaT5DdXRvbSBmaWVsZHMgYXJlIG5vdCBjcmVhdGVkIGlmIHNwZWNpZmllZCBpbiB0aGUgQ1NWIGZpbGUuICBVbmtub3duIGN1c3RvbSBmaWVsZCBjb2x1bW5zIHdpbGwgYmUgaWdub3JlZC48L2xpPg0KICAgIDxsaT5DdXN0b20gZmllbGRzIG9mIHR5cGUgJnF1b3Q7ZmlsZSZxdW90OyBjYW5ub3QgYmUgaW1wb3J0ZWQuICBUaGUgZW50aXJlIGltcG9ydCBvcGVyYXRpb24gd2lsbCBmYWlsLjwvbGk+DQogIDwvdWw+DQogIDwvbGk+DQogIDwvdWw+DQo8L2xpPg0KPGxpPkEgc2FtcGxlIGNzdiBmaWxlIGV4aXN0cyBpbiB0aGUgbW9kdWxlcyBzb3VyY2UgY29kZSBkaXJlY3RvcnkuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3Byb21wdF9jc3ZfZmlsZSddID0gJ1ZlbGcgZmlsICZhcmluZzsgaW1wb3J0ZXJlJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1NsZXR0JzsKJGxhbmdbJ2NkX2NvbXBhbnknXSA9ICdDb21wYW55IERpcmVjdG9yeSBmaXJtYSc7CiRsYW5nWydkZmx0X3VybHByZWZpeCddID0gJ1N0YW5kYXJkIFVSTC1wcmVmaWtzIGZvciBicnVrZXJ2ZW5ubGlnZSBVUkxlcic7CiRsYW5nWydkZmx0X2FsbGRheWV2ZW50J10gPSAnTnllIGJlZ2l2ZW5oZXRlciBlciAmcXVvdDtIZWxlIGRhZ2VuJnF1b3Q7IGJlZ2l2ZW5oZXRlciBzb20gc3RhbmRhcmQnOwokbGFuZ1snZGZsdF9zdGFydHRpbWUnXSA9ICdTdGFuZGFyZCBzdGFydHRpZCBmb3IgbnllIGJlZ2l2ZW5oZXRlcic7CiRsYW5nWydpbmZvX2RmbHRfc3RhcnR0aW1lJ10gPSAnPGVtPihrdW4gZ3lsZGlnIG9tIG55ZSBiZWdpdmVuaGV0ZXIgaWtrZSBlciAmcXVvdDtIZWxlIGRhZ2VuJnF1b3Q7IGJlZ2l2ZW5oZXRlci4pPC9lbT4nOwokbGFuZ1snc2VhcmNoX3R5cGUnXSA9ICdTJm9zbGFzaDtrZXR5cGUnOwokbGFuZ1snc2VhcmNoX2FueSddID0gJ1ZpcyByZXN1bHRhdGVyIHNvbSBwYXNzZXIgaHZpbGtldCBzb20gaGVsc3Qgb3JkJzsKJGxhbmdbJ3NlYXJjaF9hbGwnXSA9ICdWaXMgcmVzdWx0YXRlciBzb20gcGFzc2VyIGFsbGUgb3JkZW5lJzsKJGxhbmdbJ2luZm9fY3VzdG9tZmllbGRzJ10gPSAnPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+TWVyazo8L3NwYW4+ICZxdW90O0ZpbG9wcGxhc3RpbmdzZmVsdCZxdW90OyBlciBpa2tlIHMmb3NsYXNoO2tiYXJlLiAmQXJpbmc7IGtsaWtrZSBwJmFyaW5nOyBhdmtyeXNuaW5nc2Jva3MgZm9yIGFuZHJlIGZlbHRlciB2aWwgaWtrZSBoYSBlZmZla3QuJzsKJGxhbmdbJ3NlYXJjaGFibGUnXSA9ICdTJm9zbGFzaDtrYmFyJzsKJGxhbmdbJ2hlbHBfcGFyYW1fZWRpdGV2ZW50dGVtcGxhdGUnXSA9ICdHamVsZGVyIGt1biB0aWwgbXlldmVudHMgaGFuZGxpbmdlbiwgZGVubmUgcGFyYW1ldGVyZW4ga2FuIGFuZ2kgZW4gaWtrZSBzdGFuZGFyZCAmIzAzOTtyZWRpZ2VyIGJlZ2l2ZW5oZXQmIzAzOTsgbWFsIHNvbSBza2FsIGJydWtlcyBuJmFyaW5nO3IgZW4gYnJ1a2VyIG9wcHJldHRlciBlbGxlciByZWRpZ2VyZXIgZW4gYmVnaXZlbmhldCc7CiRsYW5nWydoZWxwX3BhcmFtX2VkaXRwYWdlJ10gPSAnR2plbGRlciBrdW4gdGlsIG15ZXZlbnRzIGhhbmRsaW5nZW4sIGRlbm5lIHBhcmFtZXRlcmVuIGthbiBhbmdpIGVuIGFubmVuIHNpZGUgZm9yIHJlZGlnZXJpbmdzIHNramVtYWV0Lic7CiRsYW5nWydoZWxwX3BhcmFtX215ZXZlbnRzdGVtcGxhdGUnXSA9ICdHamVsZGVyIGt1biB0aWwgbXlldmVudHMgaGFuZGxpbmdlbiwgZGVubmUgcGFyYW1ldGVyZW4ga2FuIGFuZ2kgZW4gaWtrZSBzdGFuZGFyZCBtYWwgJmFyaW5nOyBiZW55dHRlJzsKJGxhbmdbJ2NhbF9lZGl0X2V2ZW50J10gPSAnUmVkaWdlciBLYWxlbmRlcmJlZ2l2ZW5oZXQnOwokbGFuZ1snZXJyb3JfZGJlcnJvciddID0gJ0RhdGFzZWZlaWwnOwokbGFuZ1snc3VibWl0J10gPSAnTGFncmUnOwokbGFuZ1snaW5mb19zeXNkZmx0X2VkaXRldmVudF90ZW1wbGF0ZSddID0gJ1N5c3RlbXN0YW5kYXJkICZxdW90O1JlZGlnZXIgYmVnaXZlbmhldCZxdW90OyBtYWwnOwokbGFuZ1snaW5mb19zeXNkZmx0X215ZXZlbnRzX3RlbXBsYXRlJ10gPSAnU3lzdGVtc3RhbmRhcmQgJnF1b3Q7TWluZSBiZWdpdmVuaGV0ZXImcXVvdDsgbWFsJzsKJGxhbmdbJ3Byb21wdF9mZWVkaXRfZ3JvdXAnXSA9ICdNZWRsZW1tZXIgYXYgZGVubmUgRkVVLWdydXBwZSBrYW4gbGVnZ2UgdGlsIGJlZ2l2ZW5oZXRlcic7CiRsYW5nWydwcm9tcHRfZmVlZGl0X3BhZ2UnXSA9ICdTdGFuZGFyZCBzaWRlIGZvciBmcm9udGVuZCByZWRpZ2VyaW5nc2tqZW1hJzsKJGxhbmdbJ25vbmUnXSA9ICdJbmdlbic7CiRsYW5nWydvd25lciddID0gJ0VpZXInOwokbGFuZ1snY2FsX2VkaXRldmVudF90ZW1wbGF0ZXMnXSA9ICdSZWRpZ2VyIEJlZ2l2ZWhldHNramVtYSBtYWxlcic7CiRsYW5nWydpbmZvX2VkaXRldmVudF90ZW1wbGF0ZV90YWInXSA9ICdMaXN0ZW4gbWVkIG1hbGVyIHNvbSBlciB0aWxnamVuZ2VsaWdlIGZvciAmcXVvdDtSZWRpZ2VyIGhhbmRlbHNlJnF1b3Q7IHNramVtYSc7CiRsYW5nWydlZGl0ZXZlbnR0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGVnZyB0aWwvcmVkaWdlciBlbiAmcXVvdDtSZWRpZ2VyIGJlZ2l2ZW5oZXQmcXVvdDsgc2tqZW1hbWFsJzsKJGxhbmdbJ2NhbF9teWV2ZW50c190ZW1wbGF0ZXMnXSA9ICcmcXVvdDtNaW5lIEJlZ2l2ZW5oZXRlciZxdW90OyBsaXN0ZW1hbGVyJzsKJGxhbmdbJ2luZm9fbXlldmVudHNfdGVtcGxhdGVfdGFiJ10gPSAnTGlzdGVuIG1lZCBtYWxlciBzb20gZXIgdGlsZ2plbmdlbGlnZSBmb3IgJmFyaW5nOyB2aXNlIGVuIGxpc3RlIG1lZCBicnVrZXJiZWdpdmVuaGV0ZXInOwokbGFuZ1snbXlldmVudHN0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGVnZyB0aWwvcmVkaWdlciBlbiAmcXVvdDtNaW5lIGJlZ2l2ZW5oZXRlciZxdW90OyByYXBwb3J0bWFsJzsKJGxhbmdbJ2FyZXlvdXN1cmVfcmVtb3ZlY29uZmxpY3RpbmcnXSA9ICdEZW5uZSBoYW5kbGluZ2VuIHZpbCBmamVybmUgZXZlbnR1ZWxsZSBiZWdpdmVuaGV0ZXIgc29tIGVyIGkga29uZmxpa3QgbWVkIGJlZ2l2ZW5oZXRlciBzb20gaWtrZSBza2FsIHYmYWVsaWc7cmUgb3ZlcmxhcHBlbmRlLiBFciBkdSBzaWtrZXIgcCZhcmluZzsgYXQgZHUgdmlsIGdqJm9zbGFzaDtyZSBkZXR0ZT8nOwokbGFuZ1snZmlsdGVyX2NvbmZsaWN0aW5nJ10gPSAnRmlsdHJlciBtb3RzdHJpZGVuZGUgYmVnaXZlbmhldGVyJzsKJGxhbmdbJ292ZXJsYXBfYWN0aW9uX3JlbW92ZSddID0gJ0ZqZXJuIG1vdHN0cmlkZW5kZSBiZWdpdmVuaGV0ZXIgc3RpbGxlJzsKJGxhbmdbJ292ZXJsYXBfYWN0aW9uX2Vycm9yJ10gPSAnVmlzIGVuIGZlaWxtZWxkaW5nJzsKJGxhbmdbJ3Byb21wdF9vdmVybGFwX2FjdGlvbiddID0gJ0h2YSBiJm9zbGFzaDtyIHNramUgbiZhcmluZztyIGVuIGtvbmZsaWt0IG9wcGRhZ2VzIHVuZGVyIHJlZGlnZXJpbmcgZWxsZXIgdW5kZXIgb3BwcmV0dGVsc2UgYXYgZW4gYmVnaXZlbmhldCc7CiRsYW5nWydlcnJvcl9ldmVudF9jb25mbGljdCddID0gJ0JlZ2l2ZW5oZXRzdmVyZGllbmUgYW5naXR0IG92ZXJsYXBwZXIgbWVkIGVuIGVrc2lzdGVyZW5kZSBiZWdpdmVuaGV0IHNvbSBpa2tlIHRpbGxhdGVyIGtvbmZsaWt0ZXInOwokbGFuZ1snY2FsX2luZm9fb3ZlcmxhcCddID0gJ0dqZWxkZXIgYmFyZSBmb3IgYmVnaXZlbmhldGVyIG1lZCBlbiBzbHV0dGlkIChlbGxlciBoZWxlIGRhZ2VuIGJlZ2l2ZW5oZXRlciknOwokbGFuZ1snY2FsX292ZXJsYXAnXSA9ICdUaWxsYXQgbnllIGFycmFuZ2VtZW50ZXIgZm9yICZhcmluZzsgb3ZlcmxhcHBlIG1lZCBkZW5uZSc7CiRsYW5nWydwcm9tcHRfb3ZlcmxhcF9wb2xpY3knXSA9ICdCZWdpdmVuaGV0IG92ZXJsYXBwaW5nc3JlZ2xlcic7CiRsYW5nWydwb2xpY3lfYWxsJ10gPSAnQWxsZSBiZWdpdmVuaGV0ZXIga2FuIG92ZXJsYXBwZSc7CiRsYW5nWydwb2xpY3lfbm9uZSddID0gJ0luZ2VuIGJlZ2l2ZW5oZXRlciBrYW4gb3ZlcmxhcHBlJzsKJGxhbmdbJ3BvbGljeV9pbmRpdmlkdWFsJ10gPSAnQmVzdGVtdCB2ZWQgaHZlciBiZWdpdmVuaGV0JzsKJGxhbmdbJ2xibF9iYWNrJ10gPSAnVGlsYmFrZSc7CiRsYW5nWydsYmxfdGVtcGxhdGVzJ10gPSAnTWFsZXInOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZWtzdG9tciZhcmluZztkZSc7CiRsYW5nWydlcnJvcl9jYWxlbmRhcl9pbmNvbXBhdGlibGUnXSA9ICdWaSBoYXIgb3BwZGFnZXQgYXQgY2FsZW5kYXIgbW9kdWxlbiBlciBpbnN0YWxsZXJ0IG9ncyZhcmluZzsuLi4gRGVubmUgbW9kdWxlbiBlciBpa2tlIGtvbXBhdGliZWwgbWVkIGNhbGVuZGFyIG1vZHVsZW4gb2cga2FuIGlra2UgdiZhZWxpZztyZSBpbnN0YWxsZXJ0IHAmYXJpbmc7IHNhbW1lIG5ldHRzdGVkLiBWZW5ubGlnc3QgYXZpbnN0YWxsZXIgQ2FsZW5kYXIgbW9kdWxlbic7CiRsYW5nWydlcnJvcl9ldmVudF9ub3RfZm91bmQnXSA9ICdFbnRlbiBlciBpa2tlIGV2ZW50X2lkIGkgZGF0YWJhc2VuLCBlbGxlciBzJmFyaW5nOyBlciBkZXQgbWVyIGVubiBlbiBiZWdpdmVuaGV0IG1lZCBkZW5uZSBpZCEgKCVkKSc7CiRsYW5nWydmaXJzdF9wYWdlJ10gPSAnPDwgJzsKJGxhbmdbJ3ByZXZfcGFnZSddID0gJzwgJzsKJGxhbmdbJ25leHRfcGFnZSddID0gJyA+JzsKJGxhbmdbJ2xhc3RfcGFnZSddID0gJyA+Pic7CiRsYW5nWydwYWdlX29mJ10gPSAnU2lkZSAlZCBhdiAlZCc7CiRsYW5nWydzZWFyY2hfcmVzdWx0cyddID0gJ0thbGVuZGVyIHMmb3NsYXNoO2tlcmVzdWx0YXRlcic7CiRsYW5nWydzZWFyY2hfd29yZHMnXSA9ICdTJm9zbGFzaDtrZW9yZCc7CiRsYW5nWydub19yZXN1bHRzX2ZvdW5kJ10gPSAnSW5nZW4gZnVubiBmb3Igc3Amb3NsYXNoO3JyaW5nZW4gZHUgYW5nYSc7CiRsYW5nWydmcmVxdWVuY3knXSA9ICdIeXBwaWdoZXQnOwokbGFuZ1snc3BlY2lmaWVkX2RhdGUnXSA9ICdCcnVrIGRlbiBzcGVzaWZpc2VydGUgZGF0byc7CiRsYW5nWydmaXJzdF9zdW5kYXknXSA9ICdGJm9zbGFzaDtyc3RlIHMmb3NsYXNoO25kYWcgaSBtJmFyaW5nO25lZGVuJzsKJGxhbmdbJ2ZpcnN0X21vbmRheSddID0gJ2Ymb3NsYXNoO3JzdGUgbWFuZGFnIGkgbSZhcmluZztuZWRlbic7CiRsYW5nWydmaXJzdF90dWVzZGF5J10gPSAnRiZvc2xhc2g7cnN0ZSB0aXJzZGFnIGkgbSZhcmluZztuZWRlbic7CiRsYW5nWydmaXJzdF93ZWRuZXNkYXknXSA9ICdmJm9zbGFzaDtyc3RlIG9uc2RhZyBpIG0mYXJpbmc7bmVkZW4nOwokbGFuZ1snZmlyc3RfdGh1cnNkYXknXSA9ICdGJm9zbGFzaDtyc3RlIHRvcnNkYWcgaSBtJmFyaW5nO25lZGVuJzsKJGxhbmdbJ2ZpcnN0X2ZyaWRheSddID0gJ0Ymb3NsYXNoO3JzdGUgZnJlZGFnIGkgbSZhcmluZztuZWRlbic7CiRsYW5nWydmaXJzdF9zYXR1cmRheSddID0gJ2Ymb3NsYXNoO3JzdGUgbCZvc2xhc2g7cmRhZyBpIG0mYXJpbmc7bmVkZW4nOwokbGFuZ1snc2Vjb25kX3N1bmRheSddID0gJ0FuZHJlIHMmb3NsYXNoO25kYWcgaSBtJmFyaW5nO25lZGVuJzsKJGxhbmdbJ3NlY29uZF9tb25kYXknXSA9ICdBbmRyZSBtYW5kYWcgaSBtJmFyaW5nO25lZGVuJzsKJGxhbmdbJ3NlY29uZF90dWVzZGF5J10gPSAnQW5kcmUgdGlyc2RhZyBpIG0mYXJpbmc7bmVkZW4nOwokbGFuZ1snc2Vjb25kX3dlZG5lc2RheSddID0gJ0FuZHJlIG9uc2RhZyBpIG0mYXJpbmc7bmVkZW4nOwokbGFuZ1snc2Vjb25kX3RodXJzZGF5J10gPSAnQW5kcmUgdG9yc2RhZyBpIG0mYXJpbmc7bmVkZW4nOwokbGFuZ1snc2Vjb25kX2ZyaWRheSddID0gJ0FuZHJlIGZyZWRhZyBpIG0mYXJpbmc7bmVkZW4nOwokbGFuZ1snc2Vjb25kX3NhdHVyZGF5J10gPSAnQW5kcmUgbCZvc2xhc2g7cmRhZyBpIG0mYXJpbmc7bmVkZW4nOwokbGFuZ1sndGhpcmRfc3VuZGF5J10gPSAnVHJlZGplIHMmb3NsYXNoO25kYWcgaSBtJmFyaW5nO25lZGVuJzsKJGxhbmdbJ3RoaXJkX21vbmRheSddID0gJ1RyZWRqZSBtYW5kYWcgaSBtJmFyaW5nO25lZGVuJzsKJGxhbmdbJ3RoaXJkX3R1ZXNkYXknXSA9ICdUcmVkamUgdGlyc2RhZyBpIG0mYXJpbmc7bmVkZW4nOwokbGFuZ1sndGhpcmRfd2VkbmVzZGF5J10gPSAnVHJlZGplIG9uc2RhZyBpIG0mYXJpbmc7bmVkZW4nOwokbGFuZ1sndGhpcmRfdGh1cnNkYXknXSA9ICdUcmVkamUgdG9yc2RhZyBpIG0mYXJpbmc7bmVkZW4nOwokbGFuZ1sndGhpcmRfZnJpZGF5J10gPSAnVHJlZGplIGZyZWRhZyBpIG0mYXJpbmc7bmVkZW4nOwokbGFuZ1sndGhpcmRfc2F0dXJkYXknXSA9ICd0cmVkamUgbCZvc2xhc2g7cmRhZyBpIG0mYXJpbmc7bmVkZW4nOwokbGFuZ1snZm91cnRoX3N1bmRheSddID0gJ0ZqZXJkZSBzJm9zbGFzaDtuZGFnIGkgbSZhcmluZztuZWRlbic7CiRsYW5nWydmb3VydGhfbW9uZGF5J10gPSAnRmplcmRlIG1hbmRhZyBpIG0mYXJpbmc7bmVkZW4nOwokbGFuZ1snZm91cnRoX3R1ZXNkYXknXSA9ICdGamVyZGUgdGlyc2RhZyBpIG0mYXJpbmc7bmVkZW4nOwokbGFuZ1snZm91cnRoX3dlZG5lc2RheSddID0gJ0ZqZXJkZSBvbnNkYWcgaSBtJmFyaW5nO25lZGVuJzsKJGxhbmdbJ2ZvdXJ0aF90aHVyc2RheSddID0gJ0ZqZXJkZSB0b3JzZGFnIGkgbSZhcmluZztuZWRlbic7CiRsYW5nWydmb3VydGhfZnJpZGF5J10gPSAnRmplcmRlIGZyZWRhZyBpIG0mYXJpbmc7bmVkZW4nOwokbGFuZ1snZm91cnRoX3NhdHVyZGF5J10gPSAnRmplcmRlIGwmb3NsYXNoO3JkYWcgaSBtJmFyaW5nO25lZGVuJzsKJGxhbmdbJ2xhc3Rfc3VuZGF5J10gPSAnU2lzdGUgcyZvc2xhc2g7bmRhZyBpIG0mYXJpbmc7bmVkZW4nOwokbGFuZ1snbGFzdF9tb25kYXknXSA9ICdTaXN0ZSBtYW5kYWcgaSBtJmFyaW5nO25lZGVuJzsKJGxhbmdbJ2xhc3RfdHVlc2RheSddID0gJ1Npc3RlIHRpcnNkYWcgaSBtJmFyaW5nO25lZGVuJzsKJGxhbmdbJ2xhc3Rfd2VkbmVzZGF5J10gPSAnU2lzdGUgb25zZGFnIGkgbSZhcmluZztuZWRlbic7CiRsYW5nWydsYXN0X3RodXJzZGF5J10gPSAnU2lzdGUgdG9yc2RhZyBpIG0mYXJpbmc7bmVkZW4nOwokbGFuZ1snbGFzdF9mcmlkYXknXSA9ICdTaXN0ZSBmcmVkYWcgaSBtJmFyaW5nO25lZGVuJzsKJGxhbmdbJ2xhc3Rfc2F0dXJkYXknXSA9ICdTaXN0ZSBsJm9zbGFzaDtyZGFnIGkgbSZhcmluZztuZWRlbic7CiRsYW5nWydlcnJvcl9pbnZhbGlkX3JlY3VyX21vbnRobHlfZnJlcSddID0gJ1VneWxkaWcgaHlwcGlnaGV0Li4uLiBkdSBrYW4gaWtrZSBzcGVzaWZpc2VyZSBiJmFyaW5nO2RlIGVuIHNwZXNpZmlrayBkYXRvIE9HIGFuZHJlIHZhbGcnOwokbGFuZ1snc2VhcmNocmVzdWx0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0xlZ2cgdGlsL3JlZGlnZXIgZW4gcyZvc2xhc2g7a2VyZXN1bHRhdCBtYWwnOwokbGFuZ1snaW5mb19zZWFyY2hyZXN1bHRfdGVtcGxhdGVfdGFiJ10gPSAnTGlzdGVuIG1lZCBtYWxlciBzb20gZXIgdGlsZ2plbmdlbGlnIGZvciBzJm9zbGFzaDtrZXJlc3VsdGF0IHZpc25pbmdlbic7CiRsYW5nWydpbmZvX3N5c2RmbHRfc2VhcmNocmVzdWx0X3RlbXBsYXRlJ10gPSAnU3lzdGVtc3RhbmRhcmQgcyZvc2xhc2g7a2VyZXN1bHRhdCBtYWwnOwokbGFuZ1snY2FsX3NlYXJjaF9yZXN1bHRfdGVtcGxhdGVzJ10gPSAnUyZvc2xhc2g7a2VyZXN1bHRhdCBtYWxlcic7CiRsYW5nWydlcnJvcl9xdWVyeV9mYWlsZWQnXSA9ICdEYXRhYmFzZXNwJm9zbGFzaDtycmluZyBmZWlsZXQnOwokbGFuZ1snZXJyb3Jfc2VhcmNoX2ludmFsaWRfZGF0ZXMnXSA9ICcqVWd5bGRpZ2UgcyZvc2xhc2g7a2VkYXRvZXIgc3Blc2lmaXNlcnQnOwokbGFuZ1sndGV4dCddID0gJ1Rla3N0JzsKJGxhbmdbJ3NlYXJjaCddID0gJ1Mmb3NsYXNoO2snOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdLYXRlZ29yaSc7CiRsYW5nWydpbmZvX3N5c2RmbHRfc2VhcmNoX3RlbXBsYXRlJ10gPSAnU3lzdGVtc3RhbmRhcmQgcyZvc2xhc2g7a2Vza2plbWUgbWFsJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbC9yZWRpZ2VyIHMmb3NsYXNoO2tlc2tqZW1hIG1hbCc7CiRsYW5nWydpbmZvX3NlYXJjaF90ZW1wbGF0ZV90YWInXSA9ICdMaXN0ZW4gbWVkIG1hbGVyIHNvbSBlciB0aWxnamVuZ2VsaWcgZm9yIHMmb3NsYXNoO2tlc2tqZW1hZXQnOwokbGFuZ1snY2FsX3NlYXJjaF9mb3JtX3RlbXBsYXRlcyddID0gJ1Mmb3NsYXNoO2tlc2tqZW1hIG1hbGVyJzsKJGxhbmdbJ21heCddID0gJ21ha3MnOwokbGFuZ1sndGltZXMnXSA9ICdnYW5nZXInOwokbGFuZ1snb24nXSA9ICdwJmFyaW5nOyc7CiRsYW5nWydhcmV5b3VzdXJlX3VuaW5zdGFsbCddID0gJ0VyIGR1IHNpa2tlciBwJmFyaW5nOyBhdCBkdSB2aWwgZ2omb3NsYXNoO3JlIGRldHRlPyAmQXJpbmc7IGZvcnRzZXR0ZSB2aWwgcGVybWFuZW50IHNsZXR0ZSBhbGwgZGF0YSBhc3Nvc2llcnQgbWVkIGRlbm5lIG1vZHVsZW4uJzsKJGxhbmdbJ3Bvc3RfdW5pbnN0YWxsJ10gPSAnQ2FsZW5kYXIgbW9kdWxlbiBoYXIgYmxpdHQgYXZpbnN0YWxsZXJ0IG9nIGFsbCBiZWdpdmVuaGV0LSBvZyBtYWxpbmZvcm1hc2pvbiBhc3Nvc2llcnQgbWVkIGRlbm5lIG1vZHVsZW4gaGFyIGJsaXR0IGZqZXJuZXQnOwokbGFuZ1snZmllbGR1cGRhdGVkJ10gPSAnRmVsdCBvcHBkYXRlcnQnOwokbGFuZ1snZXZlcnknXSA9ICdIdmVyJzsKJGxhbmdbJ29yJ10gPSAnZWxsZXInOwokbGFuZ1sndXBkYXRlX2NoaWxkcmVuJ10gPSAnT3BwZGF0ZXIgdW5kZXJsaWdnZW5kZSBiZWdpdmVuaGV0ZXInOwokbGFuZ1snZXJyb3Jfbm9jYXRlZ29yeSddID0gJ0R1IG0mYXJpbmc7IHZlbGdlIG1pbnN0IGVuIGthdGVnb3JpJzsKJGxhbmdbJ2Vycm9yX25vdGhpbmdzZWxlY3RlZCddID0gJ0luZ2VudGluZyBlciB2YWxndCBmb3Igc2xldHRpbmcnOwokbGFuZ1snZXJyb3JfZXZlbnRvdmVybGFwJ10gPSAnR2plbnRhdHQgYmVnaXZlbmhldCBwYXJhbWV0ZXJuZSBkdSBoYXIgb3BwZ2l0dCB2aWwgcmVzdWx0ZXJlIGkgb3ZlcmxhcHBlbmRlIGJlZ2l2ZW5oZXRlci4nOwokbGFuZ1sncmVjdXJzJ10gPSAnR2plbnRhcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX2RhdGVzJ10gPSAnRW4gZWxsZXIgZmxlcmUgYXYgZGF0b3ZlcmRpZW5lIHNvbSBlZXIgb3BwZ2l0dCB2YXIgaWtrZSBneWxkaWcnOwokbGFuZ1snc3VuZGF5J10gPSAnUyZvc2xhc2g7bmRhZyc7CiRsYW5nWydtb25kYXknXSA9ICdNYW5kYWcnOwokbGFuZ1sndHVlc2RheSddID0gJ1RpcnNkYWcnOwokbGFuZ1snd2VkbmVzZGF5J10gPSAnT25zZGFnJzsKJGxhbmdbJ3RodXJzZGF5J10gPSAnVG9yc2RhZyc7CiRsYW5nWydmcmlkYXknXSA9ICdGcmVkYWcnOwokbGFuZ1snc2F0dXJkYXknXSA9ICdMJm9zbGFzaDtyZGFnJzsKJGxhbmdbJ2FiYnJfc3VuZGF5J10gPSAnUyZvc2xhc2g7JzsKJGxhbmdbJ2FiYnJfbW9uZGF5J10gPSAnTWEnOwokbGFuZ1snYWJicl90dWVzZGF5J10gPSAnVGknOwokbGFuZ1snYWJicl93ZWRuZXNkYXknXSA9ICdPbic7CiRsYW5nWydhYmJyX3RodXJzZGF5J10gPSAnVG8nOwokbGFuZ1snYWJicl9mcmlkYXknXSA9ICdGciAnOwokbGFuZ1snYWJicl9zYXR1cmRheSddID0gJ0wmb3NsYXNoOyc7CiRsYW5nWyd3ZWVrZGF5cyddID0gJ1VrZWRhZ2VyJzsKJGxhbmdbJ3BsdXJhbF9kYWlseSddID0gJ0RhZ2VyJzsKJGxhbmdbJ3BsdXJhbF93ZWVrbHknXSA9ICdVa2VyJzsKJGxhbmdbJ3BsdXJhbF9tb250aGx5J10gPSAnTSZhcmluZztuZWRlcic7CiRsYW5nWydwbHVyYWxfeWVhcmx5J10gPSAnJkFyaW5nO3InOwokbGFuZ1snbm8nXSA9ICdOZWknOwokbGFuZ1snZGFpbHknXSA9ICdEYWdsaWcnOwokbGFuZ1snd2Vla2x5J10gPSAnVWtlbnRsaWcnOwokbGFuZ1snbW9udGhseSddID0gJ00mYXJpbmc7bmVkbGlnJzsKJGxhbmdbJ3llYXJseSddID0gJyZBcmluZztybGlnJzsKJGxhbmdbJ2ludGVydmFsJ10gPSAnR2plbnRhIGh2ZXInOwokbGFuZ1snY2FsX3JlY3VyX2RldGFpbHMnXSA9ICdHamVudGFrZW5kZSBiZWdpdmVuaGV0c2RldGFsamVyJzsKJGxhbmdbJ3VubGltaXRlZCddID0gJ1ViZWdyZW5zZXQnOwokbGFuZ1snbWF4X3JlY3VyX2V2ZW50cyddID0gJ01ha3NpbWFsdCBhbnRhbGwgdW5kZXJsaWdnZW5kZSBiZWdpdmVuaGV0ZXInOwokbGFuZ1sndXNlX3RvX2RhdGUnXSA9ICdTcGVzaWZpc2VyIGVuIGFubmVuIHNsdXR0ZGF0bz8nOwokbGFuZ1snY2FuY2VsJ10gPSAnQXZicnl0JzsKJGxhbmdbJ3Nob3dfY2hpbGRfZXZlbnRzJ10gPSAnVmlzIHVuZGVyLWJlZ2l2ZW5oZXQnOwokbGFuZ1snbi9hJ10gPSAnaS90JzsKJGxhbmdbJ3JlY3Vyc191bnRpbCddID0gJ0dqZW50YSBpbm50aWwnOwokbGFuZ1sncGFyZW50J10gPSAnT3Zlcm9yZG5ldCc7CiRsYW5nWydyZWN1cl9wZXJpb2QnXSA9ICdHamVudGFrZWxzZXNwZXJpb2RlJzsKJGxhbmdbJ2ZpbHRlciddID0gJ0ZpbHRyZXInOwokbGFuZ1snc3RhcnRfZGF0ZSddID0gJ1N0YXJ0ZGF0byc7CiRsYW5nWydlbmRfZGF0ZSddID0gJ1N1dHRkYXRvJzsKJGxhbmdbJ2luZm9fdXBjb21pbmdsaXN0X3RlbXBsYXRlX3RhYiddID0gJ0xpc3RlbiBtZWQgbWFsZXIgc29tIGVyIHRpbGdqZW5nZWxpZ2UgZm9yIHVwY29taW5nbGlzdChrb21tZW5kZSBiZWdpdmVuaGV0ZXJzbGlzdGUpIHZpc25pbmcnOwokbGFuZ1sndXBjb21pbmdsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0xlZ2cgdGlsL3JlZGlnZXIgVXBjb21pbmdsaXN0KGtvbW1lbmRlIGJlZ2l2ZW5oZXRlcnNsaXN0ZSkgdmlzbmluZ3NtYWwnOwokbGFuZ1snaW5mb19zeXNkZmx0X3VwY29taW5nbGlzdF90ZW1wbGF0ZSddID0gJ1N5c3RlbXN0YW5kYXJkIFVwY29taW5nbGlzdChrb21tZW5kZSBiZWdpdmVuaGV0ZXJzbGlzdGUpIG1hbCc7CiRsYW5nWydpbmZvX2xpc3RfdGVtcGxhdGVfdGFiJ10gPSAnTGlzdGVuIG1lZCBtYWxlciBzb20gZXIgdGlsZ2plbmdlbGlnZSBmb3IgbGlzdGV2aXNuaW5nZXInOwokbGFuZ1snbGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbC9yZWRpZ2VyIGVuIExpc3RldmlzbmluZ3NtYWwnOwokbGFuZ1snaW5mb19zeXNkZmx0X2xpc3RfdGVtcGxhdGUnXSA9ICdTeXN0ZW1zdGFuZGFyZCBMaXN0ZXZpc25pbmdzbWFsJzsKJGxhbmdbJ2luZm9fZXZlbnRfdGVtcGxhdGVfdGFiJ10gPSAnTGlzdGVuIG1lZCBtYWxlciBzb20gZXIgdGlsZ2plbmdlbGlnZSBmb3IgQmVnaXZlbmhldHN2aXNuaW5nZXInOwokbGFuZ1snZXZlbnR0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGVnZyB0aWwvcmVkaWdlciBlbiBCZWdpdmVuaGV0c3Zpc25pbmdzbWFsJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9ldmVudF90ZW1wbGF0ZSddID0gJ1N5c3RlbXN0YW5kYXJkICBCZWdpdmVuaGV0c21hbCc7CiRsYW5nWydpbmZvX2NhbGVuZGFyX3RlbXBsYXRlX3RhYiddID0gJ0xpc3RlbiBtZWQgbWFsZXIgc29tIGVyIHRpbGdqZW5nZWxpZ2UgZm9yIGthbGVuZGVydmlzbmluZ2VyJzsKJGxhbmdbJ2NhbGVuZGFydGVtcGxhdGVfYWRkZWRpdCddID0gJ0xlZ2cgdGlsL3JlZGlnZXIgZW4gS2FsZW5kZXJ2aXNuaW5nc21hbCc7CiRsYW5nWydpbmZvX3N5c2RmbHRfY2FsZW5kYXJfdGVtcGxhdGUnXSA9ICdTeXN0ZW1zdGFuZGFyZCBLYWxlbmRlcm1hbCc7CiRsYW5nWydpbmZvX3N5c2RmbHRfdGVtcGxhdGUnXSA9ICdEZXR0ZSBza2plbWEgZGVmaW5lcmVyIG1hbGVuIHNvbSB2aWwgYmxpIGJlbnl0dGV0IG4mYXJpbmc7ciBkdSBrbGlra2VyICZxdW90O055IG1hbCZxdW90OyBpIGRlbiBha3R1ZWxsZSBmYW5lbi4gJkFyaW5nOyBlbmRyZSBub2UgaGVyIHZpbCBpa2tlIGhhIG5vZW4gdW1pZGRlbGJhciBlZmZla3QgcCZhcmluZzsgdmlzbmluZ2VyIGdlbmVyZXJ0IGZyYSBkZW5uZSBtb2R1bGVuLic7CiRsYW5nWydldmVudGRlc2MtRXZlbnRBZGRlZCddID0gJ0thbGx0IGV0dGVyIGVuIGthbGVuZGVyYmVnaXZlbmhldCBsZWdnZXMgdGlsJzsKJGxhbmdbJ2V2ZW50ZGVzYy1FdmVudEVkaXRlZCddID0gJ0thbGx0IGV0dGVyIGVuIGthbGxlbmRlcmJlZ2l2ZW5oZXQgZXIgcmVkaWdlcnQnOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50RGVsZXRlZCddID0gJ0thbGx0IGV0dGVyIGVuIGJlZ2l2ZW5oZXQgaGFyIGJsaXR0IHNsZXR0ZXQnOwokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5QWRkZWQnXSA9ICdLYWxsdCBldHRlciBlbiBrYXRlZ29yaSBlciBvcHByZXR0ZXQnOwokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5RWRpdGVkJ10gPSAnS2FsbHQgZXR0ZXIgZW4ga2F0ZWdvcmkgZXIgcmVkaWdlcnQnOwokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5RGVsZXRlZCddID0gJ0thbGx0IGV0dGVyIGVuIGthdGVnb3JpIGVyIHNsZXR0ZXQnOwokbGFuZ1snZXZlbnRoZWxwLUV2ZW50QWRkZWQnXSA9ICc8cD5TZW5kdCBuJmFyaW5nO3IgZW4ga2FsZW5kZXJiZWdpdmVuaGV0IGVyIGxhZ3QgdGlsLjwvcD4NCjxoND5QYXJhbWV0ZXJlPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7ZXZlbnRfdGl0bGVcJnF1b3Q7IC0gQmVnaXZlbmhldHMgVGl0dGVsPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfc3VtbWFyeVwmcXVvdDsgLSBTYW1tZW5kcmFnIHRla3N0PC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGV0YWlsc1wmcXVvdDsgLSBEZXRhbGplcnQgYmVza3JpdmVsc2U8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kYXRlX3N0YXJ0XCZxdW90OyAtIEJlZ2l2ZW5oZXRlbnMgc3RhcnQgZGF0by90aWQ8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kYXRlX2VuZFwmcXVvdDsgLSBCZWdpdmVuaGV0ZW5zIHNsdXR0IGRhdG8vdGlkPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfY3JlYXRlZF9ieVwmcXVvdDsgLSBCcnVrZXJJRGVuIGZvciBvcHBoYXZzbWFubmVuPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfaWRcJnF1b3Q7IC0gQmVnaXZlbmhldGVucyBJRDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50aGVscC1FdmVudEVkaXRlZCddID0gJzxwPlNlbmR0IG4mYXJpbmc7ciBlbiBrYWxlbmRlcmJlZ2l2ZW5oZXQgZXIgcmVkaWdlcnQuPC9wPg0KPGg0PlBhcmFtZXRlcmU8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtldmVudF90aXRsZVwmcXVvdDsgLSBCZWdpdmVuaGV0cyB0aXR0ZWw8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9zdW1tYXJ5XCZxdW90OyAtIFNhbW1lbmRyYWcgdGVrc3Q8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kZXRhaWxzXCZxdW90OyAtIERldGFsamVydCBiZXNrcml2ZWxzZTwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2RhdGVfc3RhcnRcJnF1b3Q7IC0gQmVnaXZlbmhldGVucyBzdGFydCBkYXRvL3RpZDwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2RhdGVfZW5kXCZxdW90OyAtIEJlZ2l2ZW5oZXRlbnMgc2x1dHQgZGF0by90aWQ8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9jcmVhdGVkX2J5XCZxdW90OyAtIEJydWtlcklEZW4gZm9yIG9wcGhhdnNtYW5uZW48L2xpPg0KPGxpPlwmcXVvdDtldmVudF9pZFwmcXVvdDsgLSBCZWdpdmVuaGV0ZW5zIElEPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUV2ZW50RGVsZXRlZCddID0gJzxwPlNlbmR0IG4mYXJpbmc7ciBlbiBrYWxlbmRlcmJlZ2l2ZW5oZXQgZXIgc2xldHRldC48L3A+DQo8aDQ+UGFyYW1ldGVyZTwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2V2ZW50X2lkXCZxdW90OyAtIEJlZ2l2ZW5oZXRlbnMgSUQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGhlbHAtQ2F0ZWdvcnlBZGRlZCddID0gJzxwPlNlbmR0IG4mYXJpbmc7ciBlbiBrYWxlbmRlciBrYXRlZ29yaSBlciBsYWd0IHRpbC48L3A+DQo8aDQ+UGFyYW1ldGVyZTwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2NhdGVnb3J5X2lkXCZxdW90OyAtIEthdGVnb3JpIElEZW48L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGhlbHAtQ2F0ZWdvcnlFZGl0ZWQnXSA9ICc8cD5TZW5kdCBuJmFyaW5nO3IgZW4ga2FsZW5kZXIga2F0ZWdvcmkgZXIgcmVkaWdlcnQuPC9wPg0KPGg0PlBhcmFtZXRlcmU8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9pZFwmcXVvdDsgLSBLYXRlZ29yaSBJRGVuPC9saT4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfbmFtZVwmcXVvdDsgLSBLYXRlZ29yaSBuYXZuZXQ8L2xpPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9vcmRlclwmcXVvdDsgLSBLYXRlZ29yaSBzb3J0ZXJpbmdzcmVra2VmJm9zbGFzaDtsZ2VuPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5RGVsZXRlZCddID0gJzxwPlNlbmR0IG4mYXJpbmc7ciBlbiBrYWxlbmRlciBrYXRlZ29yaSBlciBzbGV0dGV0LjwvcD4NCjxoND5QYXJhbWV0ZXJlPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfaWRcJnF1b3Q7IC0gS2F0ZWdvcmkgSURlbjwvbGk+DQo8bGk+XCZxdW90O2NhdGVnb3J5X25hbWVcJnF1b3Q7IC0gS2F0ZWdvcmkgbmF2bmV0PC9saT4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfb3JkZXJcJnF1b3Q7IC0gS2F0ZWdvcmkgc29ydGVyaW5nc3Jla2tlZiZvc2xhc2g7bGdlbjwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2Vycm9yX2Nzdl9pbnNlcnQnXSA9ICdGZWlsIHZlZCBpbXBvcnQgYXYgYmVnaXZlbmhldCBmcmEgY3N2IHAmYXJpbmc7IGxpbmplICVkJzsKJGxhbmdbJ2Vycm9yX2NzdmZpcnN0bGluZWZsZG5vdGZvdW5kJ10gPSAnRXQgcCZhcmluZztrcmV2ZCBmZWx0OiAlcywgYmxlIGlra2UgZnVubmV0IGkgZGVubmUgQ1NWLWZpbGVucyBvdmVyc2tyaWZ0c2xpbmplJzsKJGxhbmdbJ2Vycm9yX2NzdmludmFsaWRmaXJzdGxpbmUnXSA9ICdLbGFydGUgaWtrZSAmYXJpbmc7IGZpbm5lIGVuIGd5bGRpZyBmJm9zbGFzaDtyc3RlIGxpbmplIGkgQ1NWLWZpbGVuJzsKJGxhbmdbJ21zZ19ldmVudGFkZGVkJ10gPSAnQmVnaXZlbmhldCBsYWd0IHRpbCc7CiRsYW5nWydlcnJvcl9ub2V2ZW50bmFtZSddID0gJ0V0IG5hdm4gcCZhcmluZzsgYmVnaXZlbmhldGVuIGVyIHAmYXJpbmc7a3JldmQnOwokbGFuZ1snZXJyb3Jfbm91cGxvYWQnXSA9ICdGRUlMOiBJbmdlbiBvcHBsYXN0ZXQgZmlsIGZ1bm5ldCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZmlsZW5hbWUnXSA9ICdGRUlMOiBEZW4gb3BwbGFzdGVkZSBmaWxlbiBrYW4gaWtrZSBha3NlcHRlcmVzJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW13aXRodXBsb2FkJ10gPSAnRkVJTDogRXQgcHJvYmxlbSBvcHBzdG9kIHVuZGVyIGZvcnMmb3NsYXNoO2sgcCZhcmluZzsgJmFyaW5nOyBsYXN0ZSBvcHAgZmlsZW4nOwokbGFuZ1snZXJyb3JfZmlsZWNvcHlmYWlsZWQnXSA9ICdGRUlMOiBFdCBwcm9ibGVtIG9wcHN0b2QgdW5kZXIga29waWVyaW5nIGF2IGZpbGEgdGlsIHNpbiBtJmFyaW5nO2xwbGFzc2VyaW5nJzsKJGxhbmdbJ2Vycm9yX2ZpbGVleGlzdHMnXSA9ICdGRUlMOiBFbiBmaWwgbWVkIGRldHRlIG5hdm5ldCBla3Npc3RlcmVyIGFsbGVyZWRlJzsKJGxhbmdbJ2Vycm9yX2NzdmZpbGVub3Rmb3VuZCddID0gJ0ZFSUw6IEt1bm5lIGlra2UgZmlubmUgQ1NWIEZpbGVuJzsKJGxhbmdbJ2Vycm9yX2NhbnRvcGVuZmlsZSddID0gJ0ZFSUw6IEthbiBpa2tlICZhcmluZztwbmUgZmlsZW4nOwokbGFuZ1snZXJyb3JfY2F0ZWdvcnlleGlzdHMnXSA9ICdFUlJPUjogRW4ga2F0ZWdvcmkgbWVkIG5hdm5ldCAlcyBla3Npc3RlcmVyIGFsbGVyZWRlJzsKJGxhbmdbJ2NhbF9pZCddID0gJ0lEJzsKJGxhbmdbJ2NhbF9jYWxlbmRhciddID0gJ0NhbGd1eXMgS2FsZW5kZXInOwokbGFuZ1snY2FsX2RlZmF1bHRfdGVtcGxhdGVzJ10gPSAnU3RhbmRhcmQgbWFsZXInOwokbGFuZ1snY2FsX2Rlc2NyaXB0aW9uJ10gPSAnRW4gZmxla3NpYmVsIG1vZHVsIG1lZCBtYW5nZSBlZ2Vuc2thcGVyIHNvbSB0aWxsYXRlciB2aXNuaW5nIGF2IGluZm9ybWFzam9uIG9tIGJlZ2l2ZW5oZXRlciBwJmFyaW5nOyBtYW5nZSBmb3Jza2plbGxpZ2UgbSZhcmluZzt0ZXIuJzsKJGxhbmdbJ2NhbF9hZGRldmVudCddID0gJ0xlZ2cgdGlsIGJlZ2l2ZW5oZXQnOwokbGFuZ1snY2FsX2ltcG9ydF9ldmVudHMnXSA9ICdJbXBvcnQgYmVnaXZlbmhldGVyJzsKJGxhbmdbJ2NhbF9ldmVudHMnXSA9ICdCZWdpdmVuaGV0ZXInOwokbGFuZ1snY2FsX2NhdGVnb3JpZXMnXSA9ICdLYXRlZ29yaWVyJzsKJGxhbmdbJ2NhbF9jYWxlbmRhcl90ZW1wbGF0ZSddID0gJ01hbCBmb3Iga2FsZW5kZXInOwokbGFuZ1snY2FsX2xpc3RfdGVtcGxhdGUnXSA9ICdNYWwgZm9yIGxpc3RldmlzbmluZyc7CiRsYW5nWydjYWxfdXBjb21pbmdsaXN0X3RlbXBsYXRlJ10gPSAnTWFsIGZvciBmb3Jlc3QmYXJpbmc7ZW5kZSBiZWdpdmVuaGV0ZXInOwokbGFuZ1snY2FsX2V2ZW50X3RlbXBsYXRlJ10gPSAnTWFsIGZvciBiZWdpdmVuaGV0ZXInOwokbGFuZ1snY2FsX3NldHRpbmdzJ10gPSAnS29uZmlndXJhc2pvbic7CiRsYW5nWydjYWxfcHJldiddID0gJyZsYXF1bzsgRm9ycmlnZSc7CiRsYW5nWydjYWxfbmV4dCddID0gJ05lc3RlICZyYXF1bzsnOwokbGFuZ1snY2FsX2NhdGVnb3JpZXNfdXBkYXRlZCddID0gJ0thdGVnb3JpZXIgZXIgb3BwZGF0ZXJ0JzsKJGxhbmdbJ2NhbF9zZXR0aW5nc191cGRhdGVkJ10gPSAnS29uZmlndXJhc2pvbiBlciBvcHBkYXRlcnQnOwokbGFuZ1snY2FsX2FkZF9ldmVudCddID0gJ0xlZ2cgdGlsIGJlZ2l2ZW5oZXQnOwokbGFuZ1snY2FsX2VkaXQnXSA9ICdFbmRyZSc7CiRsYW5nWydjYWxfZGVsZXRlJ10gPSAnU2xldHQnOwokbGFuZ1snY2FsX2FyZXlvdXN1cmUnXSA9ICcmT3NsYXNoO25za2VyIGR1IHZpcmtlbGlnICZhcmluZzsgc2xldHRlJzsKJGxhbmdbJ2NhbF91cGRhdGVfdGVtcGxhdGUnXSA9ICdPcHBkYXRlciBtYWwnOwokbGFuZ1snY2FsX3N1bmRheSddID0gJ1Mmb3NsYXNoO25kYWcnOwokbGFuZ1snY2FsX21vbmRheSddID0gJ01hbmRhZyc7CiRsYW5nWydjYWxfdHVlc2RheSddID0gJ1RpcnNkYWcnOwokbGFuZ1snY2FsX3dlZG5lc2RheSddID0gJ09uc2RhZyc7CiRsYW5nWydjYWxfdGh1cnNkYXknXSA9ICdUb3JzZGFnJzsKJGxhbmdbJ2NhbF9mcmlkYXknXSA9ICdGcmVkYWcnOwokbGFuZ1snY2FsX3NhdHVyZGF5J10gPSAnTCZvc2xhc2g7cmRhZyc7CiRsYW5nWydjYWxfc3VuJ10gPSAnUyZvc2xhc2g7bic7CiRsYW5nWydjYWxfbW9uJ10gPSAnTWFuJzsKJGxhbmdbJ2NhbF90dWVzJ10gPSAnVGlyJzsKJGxhbmdbJ2NhbF93ZWQnXSA9ICdPbnMnOwokbGFuZ1snY2FsX3RodXJzJ10gPSAnVG9yJzsKJGxhbmdbJ2NhbF9mcmknXSA9ICdGcmUnOwokbGFuZ1snY2FsX3NhdCddID0gJ0wmb3NsYXNoO3InOwokbGFuZ1snY2FsX2phbnVhcnknXSA9ICdKYW51YXInOwokbGFuZ1snY2FsX2ZlYnJ1YXJ5J10gPSAnRmVicnVhcic7CiRsYW5nWydjYWxfbWFyY2gnXSA9ICdNYXJzJzsKJGxhbmdbJ2NhbF9hcHJpbCddID0gJ0FwcmlsICc7CiRsYW5nWydjYWxfbWF5J10gPSAnTWFpJzsKJGxhbmdbJ2NhbF9qdW5lJ10gPSAnSnVuaSc7CiRsYW5nWydjYWxfanVseSddID0gJ0p1bGknOwokbGFuZ1snY2FsX2F1Z3VzdCddID0gJ0F1Z3VzdCAnOwokbGFuZ1snY2FsX3NlcHRlbWJlciddID0gJ1NlcHRlbWJlciAnOwokbGFuZ1snY2FsX29jdG9iZXInXSA9ICdPa3RvYmVyJzsKJGxhbmdbJ2NhbF9ub3ZlbWJlciddID0gJ05vdmVtYmVyICc7CiRsYW5nWydjYWxfZGVjZW1iZXInXSA9ICdEZXNlbWJlcic7CiRsYW5nWydjYWxfYWRkJ10gPSAnTGVnZyB0aWwnOwokbGFuZ1snY2FsX3VwZGF0ZSddID0gJ0xhZ3JlIG9nIGx1a2snOwokbGFuZ1snY2FsX2V2ZW50J10gPSAnQmVnaXZlbmhldCc7CiRsYW5nWydjYWxfZGF0ZSddID0gJ0RhdG8nOwokbGFuZ1snY2FsX3N1bW1hcnknXSA9ICdTYW1tZW5kcmFnJzsKJGxhbmdbJ2NhbF9kZXRhaWxzJ10gPSAnRGV0YWxqZXInOwokbGFuZ1snY2FsX21vcmUnXSA9ICdtZXIgPj4nOwokbGFuZ1snY2FsX3JldHVybiddID0gJ1RpbGJha2UnOwokbGFuZ1snY2FsX3RvJ10gPSAndGlsJzsKJGxhbmdbJ2NhbF9wYXN0X2V2ZW50cyddID0gJ0dhbWxlIGJlZ2l2ZW5oZXRlcic7CiRsYW5nWydjYWxfdXBjb21pbmdfZXZlbnRzJ10gPSAnS29tbWVuZGUgYmVnaXZlbmhldGVyJzsKJGxhbmdbJ2NhbF9hbnlfY2F0ZWdvcnknXSA9ICdBbGxlIGthdGVnb3JpZXInOwokbGFuZ1snY2FsX3Nob3dfb25seV9ldmVudHNfaW4nXSA9ICdWaXMgYmFyZSBiZWdpdmVuaGV0ZXIgaSAnOwokbGFuZ1snY2FsX2ZpbHRlcl9ieSddID0gJ0ZpbHRyZXIgbWVkJzsKJGxhbmdbJ2NhbF9nbyddID0gJ09LJzsKJGxhbmdbJ2NhbF90aXRsZSddID0gJ1RpdHRlbCc7CiRsYW5nWydjYWxfZnJvbWRhdGUnXSA9ICdGcmEgZGF0byc7CiRsYW5nWydjYWxfdG9kYXRlJ10gPSAnVGlsIGRhdG8nOwokbGFuZ1snY2FsX3VwZGF0ZV9jYXRlZ29yaWVzJ10gPSAnT3BwZGF0ZXIga2F0ZWdvcmllcic7CiRsYW5nWydjYWxfbGFuZ3VhZ2UnXSA9ICdTcHImYXJpbmc7ayc7CiRsYW5nWydjYWxfdXBkYXRlc2V0dGluZ3MnXSA9ICdPcHBkYXRlciBpbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ2NhbF91c2VfdHdlbHZlX2hvdXJfY2xvY2snXSA9ICdCcnVrIHRvbHYtdGltZXJzIGtsb2trZSBmb3IgdGltZSBuZWR0cmVraz8nOwokbGFuZ1snY2FsX2RlZmF1bHRfY2F0ZWdvcnknXSA9ICdTdGFuZGFyZCBLYXRlZ29yaSc7CiRsYW5nWydjYWxfdXBkYXRlX2ZpZWxkcyddID0gJ09wcGRhdGVyIGZlbHRlcic7CiRsYW5nWydmb3JjZV9jYXRlZ29yeSddID0gJ0tyZXYgbWluc3QgZW4ga2F0ZWdvcmknOwokbGFuZ1snc2hvd3Bhc3R5ZWFycyddID0gJ0h2b3IgbWFuZ2UgaGlzdG9yaXNrZSAmYXJpbmc7ciBlciB0aWxsYXR0JzsKJGxhbmdbJ3Nob3dmdXR1cmV5ZWFycyddID0gJ0h2b3IgbWFuZ2UgZnJlbXRpZGlnZSAmYXJpbmc7ciBlciB0aWxsYXR0JzsKJGxhbmdbJ2hpZGVzdW1tYXJ5J10gPSAnU2thbCBzYW1tZW5kcmFnLWZlbHRldCB2JmFlbGlnO3JlIHNranVsdCc7CiRsYW5nWydoaWRlY29udGVudCddID0gJ1NrYWwgaW5uaG9sZC1mZWx0ZXQgdiZhZWxpZztyZSBza2p1bHQnOwokbGFuZ1snY2F0ZWdvcnlfcmVtaW5kZXInXSA9ICdWZW5ubGlnc3QgdmVsZyBlbiBlbGxlciBmbGVyZSBrYXRlZ29yaWVyIGZvciBkZW5uZSBiZWdpdmVuaGV0JzsKJGxhbmdbJ21vZHVsZV9leGFtcGxlX3N0eWxlc2hlZXQnXSA9ICdLYWxlbmRlciBDU1MgZWtzZW1wZWwnOwokbGFuZ1snZXJyb3JfcGVybWlzc2lvbiddID0gJ0R1IHRyZW5nZXIgbiZvc2xhc2g7ZHZlbmRpZyB0aWxsYXRlbHNlICglcykgZm9yICZhcmluZzsgZiZhcmluZzsgdGlsZ2FuZyB0aWwgZGVubmUgZnVua3Nqb25lbic7CiRsYW5nWydpbnN0YWxsX3Bvc3RtZXNzYWdlJ10gPSAnSHVzayAmYXJpbmc7IHNldHRlICZxdW90O01vZGlmeSBDYWxlbmRhciZxdW90OyB0aWxsYXRlbHNlIGZvciBicnVrZXJlIHNvbSBza2FsIGFkbWluaXN0cmVyZSBLYWxlbmRlciBiZWdpdmVuaGV0ZXIuJzsKJGxhbmdbJ2RlbGV0ZXRhZ2dlZCddID0gJ1NsZXR0IG1lcmtlZGUgYmVnaXZlbmhldGVyJzsKJGxhbmdbJ2NvbmZpcm1kZWxldGV0YWdnZWQnXSA9ICdFciBkdSBzaWtrZXIgcCZhcmluZzsgYXQgZGlzc2UgYmVnaXZlbmhldGVyIHNrYWwgc2xldHRlcz8nOwokbGFuZ1sndGFnZ2VkZGVsZXRlZCddID0gJ01lcmtlZGUgYmVnaXZlbmhldGVyIGJsZSBzbGV0dGV0JzsKJGxhbmdbJ3RlbXBsYXRlcyddID0gJ01hbGVyJzsKJGxhbmdbJ3RlbXBsYXRlX2hlbHAnXSA9ICdNYWwgSGplbHAnOwokbGFuZ1snZmlsZV90ZW1wbGF0ZXMnXSA9ICdGaWwgTWFsZXInOwokbGFuZ1snYWRkdGVtcGxhdGUnXSA9ICdMZWdnIHRpbCBtYWwnOwokbGFuZ1sndGVtcGxhdGUnXSA9ICdNYWwnOwokbGFuZ1sndGVtcGxhdGVuYW1ldGV4dCddID0gJ01hbG5hdm4nOwokbGFuZ1snZWRpdHRlbXBsYXRlJ10gPSAnUmVkaWdlciBtYWwnOwokbGFuZ1snZGVsZXRldGVtcGxhdGUnXSA9ICdTbGV0dCBtYWwnOwokbGFuZ1snbmV3dGVtcGxhdGUnXSA9ICdOeXR0IG1hbG5hdm4nOwokbGFuZ1sndGVtcGxhdGVuYW1lZXhpc3RzJ10gPSAnRmVpbDogRW4gbWFsIG1lZCBkZXQgbmF2bmV0IGVrc2lzdGVyZXIgYWxsZXJlZGUuIFZlbm5saWdzdCB2ZWxnIGV0IGFubmV0IG5hdm4uJzsKJGxhbmdbJ3RlbXBsYXRlaW1wb3J0ZWQnXSA9ICdFbiBtYWwgYmxlIHZlbGx5a2tldCBpbXBvcnRlcnQgdGlsIGRhdGFiYXNlbiBvZyBlciBuJmFyaW5nOyBpbnN0YWxsZXJ0IGZvciBicnVrLic7CiRsYW5nWyd2aWV3X2RlZmF1bHRfc3R5bGVzaGVldCddID0gJ1ZpcyBTdGFuZGFyZCBzdGlsYXJrJzsKJGxhbmdbJ2ZpbGVuYW1lJ10gPSAnRmlsbmF2bic7CiRsYW5nWydpbXBvcnR0ZW1wbGF0ZSddID0gJ0ltcG9ydGVyIG1hbCc7CiRsYW5nWyd0ZW1wbGF0ZV9kZWxldGVkJ10gPSAnTWFsZW4gYmxlIHNsZXR0ZXQgZnJhIGRhdGFiYXNlbi4nOwokbGFuZ1sndXBkYXRldGVtcGxhdGVzdWNjZXNzJ10gPSAnTWFsZW4gYmxlIHZlbGx5a2tldCBvcHBkYXRlcnQnOwokbGFuZ1sndXBkYXRldGVtcGxhdGVmYWlsdXJlJ10gPSAnRW4gZmVpbCBvcHBzdG9kIHVuZGVyIG9wcGRhdGVyaW5nIGF2IG1hbGVuJzsKJGxhbmdbJ3NldHRpbmdzc2F2ZWQnXSA9ICdJbm5zdGlsbGluZ2VuZSBibGUgbGFncmV0JzsKJGxhbmdbJ2NhdGVnb3J5ZGVsZXRlZCddID0gJ0thdGVnb3JpIHNsZXR0ZXQnOwokbGFuZ1snY2F0ZWdvcnl1cGRhdGVkJ10gPSAnS2F0ZWdvcmkgb3BwZGF0ZXJ0JzsKJGxhbmdbJ2NhdGVnb3J5YWRkZWQnXSA9ICdLYXRlZ29yaSBsYWd0IHRpbCc7CiRsYW5nWydldmVudGRlbGV0ZWQnXSA9ICdCZWdpdmVuaGV0ZW4gYmxlIHNsZXR0ZXQnOwokbGFuZ1snZXZlbnR1cGRhdGVkJ10gPSAnQmVnaXZlbmhldGVuIGJsZSBvcHBkYXRlcnQnOwokbGFuZ1snZGVmYXVsdF9wYWdlX2Vycm9yJ10gPSAnRmVpbDogRHUgbSZhcmluZzsgc2V0dGUgZW4gc3RhbmRhcmQgc2lkZSBmb3IgJmFyaW5nOyBrdW5uZSBiZW55dHRlIEthbGVuZGVyIG1lZCB2YWtyZSBVUkxlciBha3RpdmVydC4gVmVubmxpZ3N0IGcmYXJpbmc7IHRpbCBLYWxlbmRlciBpbm5zdGlsbGluZ2VyIG9nIHZlbGcgZW4gc2lkZS4nOwokbGFuZ1sndGltZV9hdCddID0gJ3AmYXJpbmc7JzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXBlICc7CiRsYW5nWyduYW1lJ10gPSAnTmF2bic7CiRsYW5nWydvcmRlciddID0gJ1NvcnRlcic7CiRsYW5nWydmaWVsZGFkZGVkJ10gPSAnRmVsdGV0IGJsZSBsYWd0IHRpbCc7CiRsYW5nWydmaWVsZGRlbGV0ZWQnXSA9ICdGZWx0IHNsZXR0ZXQnOwokbGFuZ1snZmllbGRzJ10gPSAnRWtzdHJhZmVsdGVyKEN1c3RvbSBmaWVsZHMpJzsKJGxhbmdbJ3RleHRmaWVsZCddID0gJ1Rla3N0ZmVsdCc7CiRsYW5nWyd1cGxvYWRmaWVsZCddID0gJ0ZpbG9wcGxhc3RpbmdzZmVsdCc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJzxwPkthbGVuZGVyKENHQ2FsZW5kYXIpIGVyIGVuIG1vZHVsIGZvciB2aXNuaW5nIGF2IGJlZ2l2ZW5oZXRlciBwJmFyaW5nOyBkaW4gbmV0dHNpZGUuIE4mYXJpbmc7ciBtb2R1bGVuIGVyIGluc3RhbGxlcnQgYmxpciBlbiBhZG1pbmlzdHJhc2pvbnNpZGUgZm9yIEthbGVuZGVyIGxhZ3QgdGlsIGlubmhvbGRzbWVueWVuIHNvbSB2aWwgdGlsbGF0ZSBkZWcgJmFyaW5nOyBhZG1pbmlzdHJlcmUgZGluZSBiZWdpdmVuaGV0ZXIuPC9wPic7CiRsYW5nWydkZWZhdWx0Y2FsZW5kYXJwYWdlJ10gPSAnU3RhbmRhcmQgc2lkZSBzb20gaW5uZWhvbGRlciBLYWxlbmRlci4gRGVubmUgc2lkZW4gbSZhcmluZzsgaW5uZWhvbGRlIGVuIFNtYXJ0eSB0YWdnIHNvbSBrYWxsZXIgb3BwIEthbGVuZGVyLiBEZXR0ZSBlciBrcmV2ZCBvbSBkdSBiZW55dHRlciB2YWtyZSBVUkxlci4nOwokbGFuZ1sndXBsb2FkZGlyZWN0b3J5J10gPSAnS2F0YWxvZyBodm9yIGZpbG9wcGxhc3RpbmdlciBza2FsIHBsYXNzZXJlcyc7CiRsYW5nWyd1cGxvYWRmaWxldHlwZXMnXSA9ICdUaWxsYXR0ZSBmaWx0eXBlcic7CiRsYW5nWyd1cGxvYWR1bmlxdWUnXSA9ICdTamVrayBmb3IgdW5pa2UgZmlsbmF2bic7CiRsYW5nWyd0aHVtYl93aWR0aCddID0gJ01pbmlhdHlyYmlsZGUgYnJlZGRlJzsKJGxhbmdbJ3RodW1iX2hlaWdodCddID0gJ01pbmlhdHlyYmlsZGUgaCZvc2xhc2g7eWRlJzsKJGxhbmdbJ2xhcmdlX3dpZHRoJ10gPSAnU3RvcnQgYmlsZGUgYnJlZGRlJzsKJGxhbmdbJ2xhcmdlX2hlaWdodCddID0gJ1N0b3J0IGJpbGRlIGgmb3NsYXNoO3lkZSc7CiRsYW5nWydjYWxfcmVjdXJfcGVyaW9kJ10gPSAnZ2plbnRhcyc7CiRsYW5nWydjYWxfcmVjdXJfdW50aWwnXSA9ICdHamVudGFzIGlubnRpbCc7CiRsYW5nWydoZWxwX3RlbXBsYXRlJ10gPSAnPHA+PGI+U2tyaXYgT3BwaGF2c21hbm4gbmF2bjo8L2I+PC9wPg0KPGNvZGU+T3BwaGF2c21hbm46IHskZXZlbnQuYXV0aG9ybmFtZX08L2NvZGU+DQonOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My43ODc0NjQ3MDIuMTM1NTk5MDc3NS4xMzU2OTU3NzE5LjEzNTc4MjQxNTQuNCc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEzNTU5OTA3NzUuMS4xLnV0bWNzcj0oZGlyZWN0KXx1dG1jY249KGRpcmVjdCl8dXRtY21kPShub25lKSc7CiRsYW5nWydxY2EnXSA9ICdQMC0xNzgzMDY3MzExLTEzMjMzNjYxMTQxMTAnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2RmbHRfY29sb3JzJ10gPSAnU3RhbmRhYXJkIGtsZXVyZW4nOwokbGFuZ1snZWRpdF9jYXRlZ29yeSddID0gJ1dpanppZyBjYXRlZ29yaWUnOwokbGFuZ1snZmdjb2xvciddID0gJ1Zvb3Jncm9uZCBrbGV1cic7CiRsYW5nWydiZ2NvbG9yJ10gPSAnQWNodGVyZ3JvbmQga2xldXInOwokbGFuZ1snZ290b19kYXRlJ10gPSAnR2EgbmFhciBkZXplIGRhdHVtJzsKJGxhbmdbJ3Jlc3VsdHMnXSA9ICdSZXN1bHRhYXQnOwokbGFuZ1sncGFzdCddID0gJ1ZlcmxlZGVuJzsKJGxhbmdbJ2Z1dHVyZSddID0gJ1RvZWtvbXN0JzsKJGxhbmdbJ2ZpbmRfd2hlbiddID0gJ1dhbm5lZXInOwokbGFuZ1snZmluZCddID0gJ1pvZWsuLi4nOwokbGFuZ1snbm90ZSddID0gJ09wbWVya2luZyc7CiRsYW5nWydzdGFydCddID0gJ1N0YXJ0JzsKJGxhbmdbJ2VuZCddID0gJ0VpbmRlJzsKJGxhbmdbJ2Vycm9yX3Vua25vd24nXSA9ICdPbmJla2VuZGUgZm91dCc7CiRsYW5nWydmaWxlYXR0YWNobWVudCddID0gJ0dla29wcGVsZCBiZXN0YW5kJzsKJGxhbmdbJ3Byb21wdF9nZW5lcmFsX3NldHRpbmdzJ10gPSAnQWxnZW1lbmUgSW5zdGVsbGluZ2VuJzsKJGxhbmdbJ3ByZXZfbW9udGgnXSA9ICdHYSBuYWFyIGRlIHZvcmlnZSBtYWFuZCc7CiRsYW5nWyduZXh0X21vbnRoJ10gPSAnR2EgbmFhciBkZSB2b2xnZW5kZSBtYWFuZCc7CiRsYW5nWydtc2dfY2F0ZWdvcmllc191cGRhdGVkJ10gPSAnQ2F0ZWdvcmllw6tuIHppam4gYmlqZ2V3ZXJrdCc7CiRsYW5nWydtc2dfZmllbGRzdXBkYXRlZCddID0gJ1ZlbGRlbiB6aWpuIGJpamdld2Vya3QnOwokbGFuZ1snd3lzaXd5ZyddID0gJ3d5c2l3eWcnOwokbGFuZ1snaW5mb19yZW9yZGVyX2NhdGVnb3JpZXMnXSA9ICdEZSBjYXRlZ29yaWUgdm9sZ29yZGUga2FuIHdvcmRlbiBnZXdpanppZ2QgZG9vciBkZSByZWdlbHMgdGUgc2xlcGVuJzsKJGxhbmdbJ2FkZF9maWVsZCddID0gJ1ZlbGQgdG9ldm9lZ2VuJzsKJGxhbmdbJ2FkZF9jYXRlZ29yeSddID0gJ0NhdGVnb3JpZSB0b2V2b2VnZW4nOwokbGFuZ1sncHJvbXB0X2ZpcnN0ZGF5b2Z3ZWVrJ10gPSAnRWVyc3RlIGRhZyB2YW4gZGUgd2Vlayc7CiRsYW5nWydlZGl0X2V2ZW50J10gPSAnR2ViZXVydGVuaXMgd2lqemlnZW4nOwokbGFuZ1snZWRpdF9wYXJlbnRfZXZlbnQnXSA9ICdCb3ZlbmxpZ2dlbmRlIGdlYmV1cnRlbmlzIHdpanppZ2VuJzsKJGxhbmdbJ3NlbGVjdF9wZXJpb2QnXSA9ICdQZXJpb2RlJzsKJGxhbmdbJ3Nob3dfZmlsdGVyJ10gPSAnVG9vbiBmaWx0ZXInOwokbGFuZ1snc2hvd19maWx0ZXJfYXBwbGllZCddID0gJ1Rvb24gZmlsdGVyIDxlbT4oYWN0aWVmKTwvZW0+JzsKJGxhbmdbJ3Jlc2V0J10gPSAnSGVyc3RlbGxlbic7CiRsYW5nWydjYWxfY3VycmVudCddID0gJ0RlemUgcGVyaW9kZSc7CiRsYW5nWydjYWxfZnJvbSddID0gJ3Zhbic7CiRsYW5nWydlcnJvcl9mZXVfbG9nZ2VkaW4nXSA9ICdEZSBnZWJydWlrZXIgaXMgbmlldCBhYW5nZW1lbGQgaW4gZGUgRkVVIG1vZHVsZS4gIEhldCB0b2V2b2VnZW4gb2Ygd2lqemlnZW4gdmFuIGdlYmV1cnRlbmlzc2VuIGlzIG5pZXQgbW9nZWxpamsnOwokbGFuZ1sncHJvbXB0X2ZyaWVuZGx5bmFtZSddID0gJ0dlYnJ1aWtzdnJpZW5kZWxpamtlIG5hYW0gdm9vciBkZXplIG1vZHVsZSBiaW5uZW4gaGV0IGJlaGVlcnBhbmVlbCc7CiRsYW5nWydpbmZvX2ZyaWVuZGx5bmFtZSddID0gJ09wbWVya2luZzogVSBkaWVudCBtb2dlbGlqayBkZSBjYWNoZSB0ZSBsZWdlbiBvbSBkZXplIGluc3RlbGxpbmcgdGUgbGF0ZW4gd2Vya2VuLiBXYW5uZWVyIGdlZW4gd2FhcmRlIGlzIG9wZ2VnZXZlbiB6YWwgZWVuIHN0YW5kYWFyZHdhYXJkZSB3b3JkZW4gZ2VicnVpa3QuJzsKJGxhbmdbJ3VzZV93eXNpd3lnJ10gPSAnR2VicnVpayBXWVNJV1lHJzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcyddID0gJ1ZlcmtlZXJkZSBQYXJhbWV0ZXJzJzsKJGxhbmdbJ2NvbHVtbl9kZWxpbWl0ZXInXSA9ICdJbXBvcnQgYmVzdGFuZHNrb2xvbSBkZWxpbWl0ZXInOwokbGFuZ1snaW1wb3J0X2NvbXBsZXRlZCddID0gJ0ltcG9ydGVyZW4gdm9sdG9vaWQnOwokbGFuZ1snbnVtX2ltcG9ydGVkJ10gPSAnQWFudGFsIGFhbmdlbWFha3RlIGV2ZW50czogJWQnOwokbGFuZ1snaW1wb3J0X2xpbmVzJ10gPSAnQWFudGFsIHJlZ2VscyB2ZXJ3ZXJrdCB1aXQgaGV0IGJlc3RhbmQ6ICVkJzsKJGxhbmdbJ2Vycm9ycyddID0gJ0ZvdXRlbic7CiRsYW5nWydlcnJvcl9jc3ZmaXJzdGxpbmVpbnZhbGlkZmllbGQnXSA9ICdWZWxkOiAlcyBpcyBuaWV0IGhlcmVrZW5kIGVuIGhldCBpcyBnZWVuIHNwZWNpZmllayB2ZWxkJzsKJGxhbmdbJ3Byb21wdF9jc3ZfZmlsZSddID0gJ1NlbGVjdGVlciBpbXBvcnRiZXN0YW5kJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1ZlcndpamRlcic7CiRsYW5nWydjZF9jb21wYW55J10gPSAnQ29tcGFueSBEaXJlY3RvcnkgQmVkcmlqZic7CiRsYW5nWydkZmx0X3VybHByZWZpeCddID0gJ1RlIGdlYnJ1aWtlbiBwcmVmaXggdm9vciBQcmV0dHkgVVJMUyc7CiRsYW5nWydkZmx0X2FsbGRheWV2ZW50J10gPSAnTmlldXdlIGV2ZW5lbWVudGVuIGJlc2xhYW4gc3RhbmRhYXJkIGRlIGdlaGVsZSBkYWcnOwokbGFuZ1snZGZsdF9zdGFydHRpbWUnXSA9ICdTdGFuZGFhcmQgc3RhcnR0aWpkIHZvb3IgbmlldXdlIGV2ZW5lbWVudGVuJzsKJGxhbmdbJ2luZm9fZGZsdF9zdGFydHRpbWUnXSA9ICc8ZW0+KGFsbGVlbiB2YW4gdG9lcGFzc2luZyBhbHMgbmlldXdlIGV2ZW5lbWVudGVuIG5pZXQgZGUgZ2VoZWxlIGRhZyBiZXNsYWFuKTwvZW0+JzsKJGxhbmdbJ3NlYXJjaF90eXBlJ10gPSAnWm9layBUeXBlJzsKJGxhbmdbJ3NlYXJjaF9hbnknXSA9ICdFw6luIG9mIG1lZXIgem9la3Rlcm1lbiBtb2V0ZW4gb3ZlcmVlbmtvbWVuJzsKJGxhbmdbJ3NlYXJjaF9hbGwnXSA9ICdBbGxlIHpvZWt0ZXJtZW4gbW9ldGVuIG92ZXJlZW5rb21lbic7CiRsYW5nWydzZWFyY2hhYmxlJ10gPSAnRG9vcnpvZWtiYWFyJzsKJGxhbmdbJ2hlbHBfcGFyYW1fZWRpdGV2ZW50dGVtcGxhdGUnXSA9ICdBbGxlZW4gdG9lcGFzYmFhciBpbiBkZSBteWV2ZW50cy1iZXdlcmtpbmcsIGRlemUgcGFyYW1ldGVyIHNwZWNpZmljZWVydCBlZW4gbmlldC1zdGFuZGFhcmQgZXZlbmVtZW50c2phYmxvb24gb20gdGUgZ2VicnVpa2VuIHdhbm5lZXIgZWVuIGdlYnJ1aWtlciBlZW4gZXZlbmVtZW50IGFhbm1hYWt0IG9mIHdpanppZ3QuJzsKJGxhbmdbJ2hlbHBfcGFyYW1fZWRpdHBhZ2UnXSA9ICdFbmtlbCB0b2VwYXNiYWFyIG9wIGRlIG15ZXZlbnRzLWJld2Vya2luZywgZGV6ZSBwYXJhbWV0ZXIgc3BlY2lmaWNlZXJ0IGVlbiBhbmRlcmUgcGFnaW5hIHZvb3IgZGUgZWRpdC1mb3JtJzsKJGxhbmdbJ2hlbHBfcGFyYW1fbXlldmVudHN0ZW1wbGF0ZSddID0gJ0Vua2VsIHRvZXBhc2JhYXIgb3AgZGUgbXlldmVudHMtYmV3ZXJraW5nLCBkZXplIHBhcmFtZXRlciBzcGVjaWZpY2VlcnQgZWVuIG5pZXQtc3RhbmRhYXJkIHNqYWJsb29uIHZvb3IgZ2VicnVpayc7CiRsYW5nWydjYWxfZWRpdF9ldmVudCddID0gJ1dpanppZyBLYWxlbmRlciBFdmVuZW1lbnQnOwokbGFuZ1snZXJyb3JfZGJlcnJvciddID0gJ0RhdGFiYXNlIEZvdXQnOwokbGFuZ1snc3VibWl0J10gPSAnVG9ldm9lZ2VuJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9lZGl0ZXZlbnRfdGVtcGxhdGUnXSA9ICdTdGFuZGFhcmQgIldpanppZyBNaWpuIEV2ZW5lbWVudGVuIiBTamFibG9vbic7CiRsYW5nWydpbmZvX3N5c2RmbHRfbXlldmVudHNfdGVtcGxhdGUnXSA9ICdTdGFuZGFhcmQgIldpanppZyBNaWpuIEV2ZW5lbWVudGVuIiBTamFibG9vbic7CiRsYW5nWydwcm9tcHRfZmVlZGl0X2dyb3VwJ10gPSAnTGlkIHZhbiBkZXplIEZFVSBncm9lcCBrYW4gZXZlbmVtZW50ZW4gdG9ldm9lZ2VuJzsKJGxhbmdbJ3Byb21wdF9mZWVkaXRfcGFnZSddID0gJ1N0YW5kYWFyZCBwYWdpbmEgdm9vciBkZSBmcm9udGVuZCB3aWp6aWcgZm9ybXVsaWVyLic7CiRsYW5nWydub25lJ10gPSAnR2Vlbic7CiRsYW5nWydvd25lciddID0gJ0VpZ2VuYWFyJzsKJGxhbmdbJ2NhbF9lZGl0ZXZlbnRfdGVtcGxhdGVzJ10gPSAnV2lqemlnIEV2ZW5lbWVudCBGb3JtdWxpZXIgU2phYmxvbmVuJzsKJGxhbmdbJ2luZm9fZWRpdGV2ZW50X3RlbXBsYXRlX3RhYiddID0gJ0VlbiBvdmVyemljaHQgdmFuIHNqYWJsb25lbiBkaWUgYmVzY2hpa2JhYXIgemlqbiB2b29yIGVlbiB3aWp6aWctZXZlbmVtZW50IGZvcm11bGllcic7CiRsYW5nWydlZGl0ZXZlbnR0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnVG9ldm9lZ2VuL3dpanppZ2VuIHZhbiBlZW4gV2lqemlnIEV2ZW5lbWVudCBGb3JtdWxpZXIgU2phYmxvb24nOwokbGFuZ1snY2FsX215ZXZlbnRzX3RlbXBsYXRlcyddID0gJ01pam4gRXZlbmVtZW50ZW4gTGlqc3QgU2phYmxvbmVuJzsKJGxhbmdbJ2luZm9fbXlldmVudHNfdGVtcGxhdGVfdGFiJ10gPSAnRGUgbGlqc3QgbWV0IHNqYWJsb25lbiBkaWUgYnJ1aWtiYWFyIHppam4gdm9vciBoZXQgdG9uZW4gdmFuIGVlbiBsaWpzdCBtZXQgZ2VicnVpa2VycyBldmVuZW1lbnRlbic7CiRsYW5nWydteWV2ZW50c3RlbXBsYXRlX2FkZGVkaXQnXSA9ICdUb2V2b2VnZW4vd2lqemlnZW4gdmFuIGVlbiAiTWlqbiBFdmVuZW1lbnRlbiIgc2phYmxvb24nOwokbGFuZ1snYXJleW91c3VyZV9yZW1vdmVjb25mbGljdGluZyddID0gJ0RlemUgYmV3ZXJraW5nIHphbCBpZWRlciBldmVuZW1lbnQgdmVyd2lqZGVyZW4gZGllIGNvbmZsaWN0ZWVydCBtZXQgbmlldC1vdmVybGFwYmFyZSBldmVuZW1lbnRlbi4gV2VldCBqZSB6ZWtlciBkYXQgamUgZG9vciB3aWwgZ2Fhbj8nOwokbGFuZ1snZmlsdGVyX2NvbmZsaWN0aW5nJ10gPSAnRmlsdGVyIENvbmZsaWN0ZW4gYmlqIEV2ZW5lbWVudGVuJzsKJGxhbmdbJ292ZXJsYXBfYWN0aW9uX3JlbW92ZSddID0gJ1ZlcndpamRlciBzdGlsendpamdlbmQgY29uZmxpY3RlbiBiaWogRXZlbmVtZW50ZW4nOwokbGFuZ1snb3ZlcmxhcF9hY3Rpb25fZXJyb3InXSA9ICdMYXRlbiB6aWVuIGJpaiBlZW4gZm91dCc7CiRsYW5nWydwcm9tcHRfb3ZlcmxhcF9hY3Rpb24nXSA9ICdCZXdlcmtpbmcgZGllIHVpdGdldm9lcmQgbW9ldCB3b3JkZW4gYmlqIGVlbiBjb25mbGljdCBiaWogdG9ldm9lZ2VuL3dpanppZ2VuIHZhbiBlZW4gZXZlbmVtZW50JzsKJGxhbmdbJ2Vycm9yX2V2ZW50X2NvbmZsaWN0J10gPSAnRGl0IGV2ZW5lbWVudCBzcGVjaWZpY2VlcnQgb3ZlcmxhcCBtZXQgZWVuIGJlc3RhYW5kIGV2ZW5lbWVudCB3YXQgZ2VlbiBjb25mbGljdCB0b2VzdGFhdCc7CiRsYW5nWydjYWxfaW5mb19vdmVybGFwJ10gPSAnQWxsZWVuIHRvZXBhc3NlbiB2b29yIGV2ZW5lbWVudGVuIG1ldCBlZW4gZWluZHRpamQgKG9mICJnZWhlbGUgZGFnIiBldmVuZW1lbnRlbiknOwokbGFuZ1snY2FsX292ZXJsYXAnXSA9ICdTdGEgdG9lIGRhdCBuaWV1d2UgZXZlbmVtZW50ZW4gb3ZlcmxhcCBtZXQgZGV6ZSc7CiRsYW5nWydwcm9tcHRfb3ZlcmxhcF9wb2xpY3knXSA9ICdFdmVuZW1lbnRlbiBvdmVybGFwIGluc3RlbGxpbmdlbic7CiRsYW5nWydwb2xpY3lfYWxsJ10gPSAnQWxsZSBFdmVuZW1lbnRlbiBrdW5uZW4gb3ZlcmxhcHBlbic7CiRsYW5nWydwb2xpY3lfbm9uZSddID0gJ0V2ZW5lbWVudGVuIGt1bm5lbiBuaWV0IG92ZXJsYXBwZW4nOwokbGFuZ1sncG9saWN5X2luZGl2aWR1YWwnXSA9ICdCZXNsaXNzZW4gcGVyIGV2ZW5lbWVudCc7CiRsYW5nWydsYmxfYmFjayddID0gJ1RlcnVnJzsKJGxhbmdbJ2xibF90ZW1wbGF0ZXMnXSA9ICdTamFibG9uZW4nOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZWtzdHJ1aW10ZSc7CiRsYW5nWydlcnJvcl9jYWxlbmRhcl9pbmNvbXBhdGlibGUnXSA9ICdMZXQgb3AhIERlIG1vZHVsZSBDYWxlbmRhciBpcyBvb2sgb3AgZGV6ZSB3ZWJzaXRlIGdlw69uc3RhbGxlZXJkLiBEZXplIHZlcm91ZGVyZGUgbW9kdWxlIGthbiBuaWV0IHNhbWVuIG1ldCBDR0NhbGVuZGFyIGZ1bmN0aW9uZXJlbi4gVmVyd2lqZGVyIGRlIG91ZGUgQ2FsZW5kYXIgbW9kdWxlIGVlcnN0ISc7CiRsYW5nWydlcnJvcl9ldmVudF9ub3RfZm91bmQnXSA9ICdPZiBcJ2V2ZW50X2lkXCcgc3RhYXQgbmlldCBpbiBkZSBkYXRhYmFzZSwgb2YgZXIgaXMgbWVlciBkYW4gw6nDqW4gZ2ViZXVydGVuaXMgbWV0IGRpdCBpZCEgKCVkKSc7CiRsYW5nWydmaXJzdF9wYWdlJ10gPSAnPDwnOwokbGFuZ1sncHJldl9wYWdlJ10gPSAnPCc7CiRsYW5nWyduZXh0X3BhZ2UnXSA9ICc+JzsKJGxhbmdbJ2xhc3RfcGFnZSddID0gJz4+JzsKJGxhbmdbJ3BhZ2Vfb2YnXSA9ICdQYWdpbmEgJWQgdmFuICVkJzsKJGxhbmdbJ3NlYXJjaF9yZXN1bHRzJ10gPSAnS2FsZW5kZXIgWm9layBSZXN1bHRhdGVuJzsKJGxhbmdbJ3NlYXJjaF93b3JkcyddID0gJ1pvZWt3b29yZGVuJzsKJGxhbmdbJ25vX3Jlc3VsdHNfZm91bmQnXSA9ICdHZWVuIHJlc3VsdGF0ZW4gZ2V2b25kZW4nOwokbGFuZ1snZnJlcXVlbmN5J10gPSAnRnJlcXVlbnRpZSc7CiRsYW5nWydzcGVjaWZpZWRfZGF0ZSddID0gJ0dlYnJ1aWsgZGUgZ2Vub2VtZGUgZGF0dW0nOwokbGFuZ1snZmlyc3Rfc3VuZGF5J10gPSAnRWVyc3RlIHpvbmRhZyB2YW4gZGUgbWFhbmQnOwokbGFuZ1snZmlyc3RfbW9uZGF5J10gPSAnRWVyc3RlIG1hYW5kYWcgdmFuIGRlIG1hYW5kJzsKJGxhbmdbJ2ZpcnN0X3R1ZXNkYXknXSA9ICdFZXJzdGUgZGluc2RhZyB2YW4gZGUgbWFhbmQnOwokbGFuZ1snZmlyc3Rfd2VkbmVzZGF5J10gPSAnRWVyc3RlIHdvZW5zZGFnIHZhbiBkZSBtYWFuZCc7CiRsYW5nWydmaXJzdF90aHVyc2RheSddID0gJ0VlcnN0ZSBkb25kZXJkYWcgdmFuIGRlIG1hYW5kJzsKJGxhbmdbJ2ZpcnN0X2ZyaWRheSddID0gJ0VlcnN0ZSB2cmlqZGFnIHZhbiBkZSBtYWFuZCc7CiRsYW5nWydmaXJzdF9zYXR1cmRheSddID0gJ0VlcnN0ZSB6YXRlcmRhZyB2YW4gZGUgbWFhbmQnOwokbGFuZ1snc2Vjb25kX3N1bmRheSddID0gJ1R3ZWVkZSB6b25kYWcgdmFuIGRlIG1hYW5kJzsKJGxhbmdbJ3NlY29uZF9tb25kYXknXSA9ICdUd2VlZGUgbWFhbmRhZyB2YW4gZGUgbWFhbmQnOwokbGFuZ1snc2Vjb25kX3R1ZXNkYXknXSA9ICdUd2VlZGUgZGluc2RhZyB2YW4gZGUgbWFhbmQnOwokbGFuZ1snc2Vjb25kX3dlZG5lc2RheSddID0gJ1R3ZWVkZSB3b2Vuc2RhZyB2YW4gZGUgbWFhbmQnOwokbGFuZ1snc2Vjb25kX3RodXJzZGF5J10gPSAnVHdlZWRlIGRvbmRlcmRhZyB2YW4gZGUgbWFhbmQnOwokbGFuZ1snc2Vjb25kX2ZyaWRheSddID0gJ1R3ZWVkZSB2cmlqZGFnIHZhbiBkZSBtYWFuZCc7CiRsYW5nWydzZWNvbmRfc2F0dXJkYXknXSA9ICdUd2VlZGUgemF0ZXJkYWcgdmFuIGRlIG1hYW5kJzsKJGxhbmdbJ3RoaXJkX3N1bmRheSddID0gJ0RlcmRlIHpvbmRhZyB2YW4gZGUgbWFhbmQnOwokbGFuZ1sndGhpcmRfbW9uZGF5J10gPSAnRGVyZGUgbWFhbmRhZyB2YW4gZGUgbWFhbmQnOwokbGFuZ1sndGhpcmRfdHVlc2RheSddID0gJ0RlcmRlIGRpbnNkYWcgdmFuIGRlIG1hYW5kJzsKJGxhbmdbJ3RoaXJkX3dlZG5lc2RheSddID0gJ0RlcmRlIHdvZXNkYWcgdmFuIGRlIG1hYW5kJzsKJGxhbmdbJ3RoaXJkX3RodXJzZGF5J10gPSAnRGVyZGUgZG9uZGVyZGFnIHZhbiBkZSBtYWFuZCc7CiRsYW5nWyd0aGlyZF9mcmlkYXknXSA9ICdEZXJkZSB2cmlqZGFnIHZhbiBkZSBtYWFuZCc7CiRsYW5nWyd0aGlyZF9zYXR1cmRheSddID0gJ0RlcmRlIHphdGVyZGFnIHZhbiBkZSBtYWFuZCc7CiRsYW5nWydmb3VydGhfc3VuZGF5J10gPSAnVmllcmRlIHpvbmRhZyB2YW4gZGUgbWFhbmQnOwokbGFuZ1snZm91cnRoX21vbmRheSddID0gJ1ZpZXJkZSBtYWFuZGFnIHZhbiBkZSBtYWFuZCc7CiRsYW5nWydmb3VydGhfdHVlc2RheSddID0gJ1ZpZXJkZSBkaW5zZGFnIHZhbiBkZSBtYWFuZCc7CiRsYW5nWydmb3VydGhfd2VkbmVzZGF5J10gPSAnVmllcmRlIHdvZW5zZGFnIHZhbiBkZSBtYWFuZCc7CiRsYW5nWydmb3VydGhfdGh1cnNkYXknXSA9ICdWaWVyZGUgZG9uZGVyZGFnIHZhbiBkZSBtYWFuZCc7CiRsYW5nWydmb3VydGhfZnJpZGF5J10gPSAnVmllcmRlIHZyaWpkYWcgdmFuIGRlIG1hYW5kJzsKJGxhbmdbJ2ZvdXJ0aF9zYXR1cmRheSddID0gJ1ZpZXJkZSB6YXRlcmRhZyB2YW4gZGUgbWFhbmQnOwokbGFuZ1snbGFzdF9zdW5kYXknXSA9ICdMYWF0c3RlIHpvbmRhZyB2YW4gZGUgbWFhbmQnOwokbGFuZ1snbGFzdF9tb25kYXknXSA9ICdMYWF0c3RlIG1hYW5kYWcgdmFuIGRlIG1hYW5kJzsKJGxhbmdbJ2xhc3RfdHVlc2RheSddID0gJ0xhYXRzdGUgZGluc2RhZyB2YW4gZGUgbWFhbmQnOwokbGFuZ1snbGFzdF93ZWRuZXNkYXknXSA9ICdMYWF0c3RlIHdvZW5zZGFnIHZhbiBkZSBtYWFuZCc7CiRsYW5nWydsYXN0X3RodXJzZGF5J10gPSAnTGFhdHN0ZSBkb25kZXJkYWcgdmFuIGRlIG1hYW5kJzsKJGxhbmdbJ2xhc3RfZnJpZGF5J10gPSAnTGFhdHN0ZSB2cmlqZGFnIHZhbiBkZSBtYWFuZCc7CiRsYW5nWydsYXN0X3NhdHVyZGF5J10gPSAnTGFhdHN0ZSB6YXRlcmRhZyB2YW4gZGUgbWFhbmQnOwokbGFuZ1snZXJyb3JfaW52YWxpZF9yZWN1cl9tb250aGx5X2ZyZXEnXSA9ICdWZXJrZWVyZGUgZnJlcXVlbnRpZS4uLiBVIGt1bnQgbmlldCB0ZWdlbGlqa2VydGlqZCBlZW4gZGF0dW0gZW4gZWVuIGFuZGVyZSB3YWFyZGUgc3BlY2lmaWNlcmVuJzsKJGxhbmdbJ3NlYXJjaHJlc3VsdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdUb2V2b2VnZW4vd2lqemlnZW4gWm9la3Jlc3VsdGFhdCBTamFibG9vbic7CiRsYW5nWydpbmZvX3NlYXJjaHJlc3VsdF90ZW1wbGF0ZV90YWInXSA9ICdEZSBsaWpzdCB2YW4gYmVzY2hpa2JhcmUgc2phYmxvbmVuIHZvb3IgaGV0IHpvZWtyZXN1bHRhYXRzY2hlcm0nOwokbGFuZ1snaW5mb19zeXNkZmx0X3NlYXJjaHJlc3VsdF90ZW1wbGF0ZSddID0gJ1N5c3RlZW0gU3RhbmRhYXJkIFpvZWtyZXN1bHRhYXQgU2phYmxvb24nOwokbGFuZ1snY2FsX3NlYXJjaF9yZXN1bHRfdGVtcGxhdGVzJ10gPSAnWm9la3Jlc3VsdGFhdCBzamFibG9uZW4nOwokbGFuZ1snZXJyb3JfcXVlcnlfZmFpbGVkJ10gPSAnRGF0YWJhc2UgUXVlcnkgTWlzbHVrdCc7CiRsYW5nWydlcnJvcl9zZWFyY2hfaW52YWxpZF9kYXRlcyddID0gJ1ZlcmtlZXJkZSB6b2VrZ2VnZXZlbnMgaW5nZXZvZXJkJzsKJGxhbmdbJ3RleHQnXSA9ICdUZWtzdCc7CiRsYW5nWydzZWFyY2gnXSA9ICdab2VrJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnQ2F0ZWdvcmllJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9zZWFyY2hfdGVtcGxhdGUnXSA9ICdTeXN0ZWVtIFN0YW5kYWFyZCBab2VrIEZvcm11bGllciBTamFibG9vbic7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnVG9ldm9lZ2VuL3dpanppZ2VuIFpvZWsgRm9ybXVsaWVyIFNqYWJsb29uJzsKJGxhbmdbJ2luZm9fc2VhcmNoX3RlbXBsYXRlX3RhYiddID0gJ0RlIGxpanN0IHZhbiBiZXNjaGlrYmFyZSBzamFibG9uZW4gdm9vciBoZXQgem9la2Zvcm11bGllcic7CiRsYW5nWydjYWxfc2VhcmNoX2Zvcm1fdGVtcGxhdGVzJ10gPSAnWm9layBGb3JtdWxpZXIgU2phYmxvbmVuJzsKJGxhbmdbJ21heCddID0gJ21heGltYWFsJzsKJGxhbmdbJ3RpbWVzJ10gPSAna2Vlcic7CiRsYW5nWydvbiddID0gJ2Fhbic7CiRsYW5nWydhcmV5b3VzdXJlX3VuaW5zdGFsbCddID0gJ1dlZXQgdSB6ZWtlciBkYXQgdSBkaXQgd2lsdCBkb2VuPyBBbHMgdSBkb29yZ2FhdCB3b3JkIGFsbGUgZGF0YSBkZWZpbml0aWVmIHZlcndpamRlcmQuJzsKJGxhbmdbJ3Bvc3RfdW5pbnN0YWxsJ10gPSAnRGUgQ2FsZW5kYXIgbW9kdWxlIGlzIGdlZGXDr25zdGFsbGVlcmQgZW4gYWxsZSBnZWJldXJ0ZW5pc3NlbiBlbiB0ZW1wbGF0ZXMgemlqbiB2ZXJ3aWpkZXJkLic7CiRsYW5nWydmaWVsZHVwZGF0ZWQnXSA9ICdWZWxkIGdlw7xwZGF0ZSc7CiRsYW5nWydldmVyeSddID0gJ0llZGVyZSc7CiRsYW5nWydvciddID0gJ29mJzsKJGxhbmdbJ3VwZGF0ZV9jaGlsZHJlbiddID0gJ1VwZGF0ZSBvbmRlcmxpZ2dlbmRlIGdlYmV1cnRlbmlzc2VuJzsKJGxhbmdbJ2Vycm9yX25vY2F0ZWdvcnknXSA9ICdVIG1vZXQgaW4gaWVkZXIgZ2V2YWwgw6nDqW4gY2F0ZWdvcmllIHNlbGVjdGVyZW4nOwokbGFuZ1snZXJyb3Jfbm90aGluZ3NlbGVjdGVkJ10gPSAnRXIgaXMgbmlldHMgZ2VzZWxlY3RlZXJkIG9tIHZlcndpamRlcmQgdGUgd29yZGVuJzsKJGxhbmdbJ2Vycm9yX2V2ZW50b3ZlcmxhcCddID0gJ0RlIHBhcmFtZXRlcnMgdC5iLnYuIGRlIGhlcmhhbGVuZGUgZ2ViZXVydGVuaXNzZW4gem91ZGVuIGxlaWRlbiB0b3Qgb3ZlcmxhcHBlbmRlIGdlYmV1cnRlbmlzc2VuJzsKJGxhbmdbJ3JlY3VycyddID0gJ0hlcmhhbGluZyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX2RhdGVzJ10gPSAnRcOpbiBvZiBtZWVyZGVyZSBpbmdldm9lcmRlIGRhdHVtcyB6aWpuIG9uZ2VsZGlnJzsKJGxhbmdbJ3N1bmRheSddID0gJ1pvbmRhZyc7CiRsYW5nWydtb25kYXknXSA9ICdNYWFuZGFnJzsKJGxhbmdbJ3R1ZXNkYXknXSA9ICdEaW5zZGFnJzsKJGxhbmdbJ3dlZG5lc2RheSddID0gJ1dvZW5zZGFnJzsKJGxhbmdbJ3RodXJzZGF5J10gPSAnRG9uZGVyZGFnJzsKJGxhbmdbJ2ZyaWRheSddID0gJ1ZyaWpkYWcnOwokbGFuZ1snc2F0dXJkYXknXSA9ICdaYXRlcmRhZyc7CiRsYW5nWydhYmJyX3N1bmRheSddID0gJ1pvJzsKJGxhbmdbJ2FiYnJfbW9uZGF5J10gPSAnTWEnOwokbGFuZ1snYWJicl90dWVzZGF5J10gPSAnRGknOwokbGFuZ1snYWJicl93ZWRuZXNkYXknXSA9ICdXbyc7CiRsYW5nWydhYmJyX3RodXJzZGF5J10gPSAnRG8nOwokbGFuZ1snYWJicl9mcmlkYXknXSA9ICdWcic7CiRsYW5nWydhYmJyX3NhdHVyZGF5J10gPSAnWmEnOwokbGFuZ1snd2VlayddID0gJ1dlZWsnOwokbGFuZ1snbW9udGgnXSA9ICdNYWFuZCc7CiRsYW5nWydkYXknXSA9ICdEYWcnOwokbGFuZ1sndG9kYXknXSA9ICdWYW5kYWFnJzsKJGxhbmdbJ3dlZWtkYXlzJ10gPSAnV2Vla2RhZ2VuJzsKJGxhbmdbJ3BsdXJhbF9kYWlseSddID0gJ0RhZ2VuJzsKJGxhbmdbJ3BsdXJhbF93ZWVrbHknXSA9ICdXZWtlbic7CiRsYW5nWydwbHVyYWxfbW9udGhseSddID0gJ01hYW5kZW4nOwokbGFuZ1sncGx1cmFsX3llYXJseSddID0gJ0phcmVuJzsKJGxhbmdbJ25vJ10gPSAnTmVlJzsKJGxhbmdbJ2RhaWx5J10gPSAnRGFnZWxpamtzJzsKJGxhbmdbJ3dlZWtseSddID0gJ1dla2VsaWprcyc7CiRsYW5nWydtb250aGx5J10gPSAnTWFhbmRlbGlqa3MnOwokbGFuZ1sneWVhcmx5J10gPSAnSmFhcmxpamtzJzsKJGxhbmdbJ2ludGVydmFsJ10gPSAnSGVyaGFhbCBpZWRlcmUnOwokbGFuZ1snY2FsX3JlY3VyX2RldGFpbHMnXSA9ICdHZWdldmVucyBoZXJoYWxlbmRlIGdlYmV1cnRlbmlzJzsKJGxhbmdbJ3VubGltaXRlZCddID0gJ09uZ2VsaW1pdGVlcmQnOwokbGFuZ1snbWF4X3JlY3VyX2V2ZW50cyddID0gJ01heGltdW0gYWFudGFsIHZhbiBvbmRlcmxpZ2dlbmRlIGdlYmV1cnRlbmlzc2VuJzsKJGxhbmdbJ3VzZV90b19kYXRlJ10gPSAnRWVuIGFuZGVyZSBlaW5kZGF0dW0gaW52b2VyZW4/JzsKJGxhbmdbJ2NhbmNlbCddID0gJ0FubnVsZWVyJzsKJGxhbmdbJ3Nob3dfY2hpbGRfZXZlbnRzJ10gPSAnVG9vbiBvbmRlcmxpZ2dlbmRlIGFjdGl2aXRlaXRlbiA8ZW0+KGthbiBsZWlkZW4gdG90IGVlbiBlcmcgbGFuZ2UgbGlqc3QpPC9lbT4nOwokbGFuZ1snbi9hJ10gPSAnbi52LnQuJzsKJGxhbmdbJ3JlY3Vyc191bnRpbCddID0gJ0hlcmhhbGVuIHRvdCc7CiRsYW5nWydwYXJlbnQnXSA9ICdIb29mZGdlYmV1cnRlbmlzJzsKJGxhbmdbJ3JlY3VyX3BlcmlvZCddID0gJ0hlcmhhYWwgcGVyaW9kZSc7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0ZXInOwokbGFuZ1snc3RhcnRfZGF0ZSddID0gJ1N0YXJ0ZGF0dW0nOwokbGFuZ1snZW5kX2RhdGUnXSA9ICdFaW5kZGF0dW0nOwokbGFuZ1snaW5mb191cGNvbWluZ2xpc3RfdGVtcGxhdGVfdGFiJ10gPSAnRWVuIG92ZXJ6aWNodCB2YW4gYmVzY2hpa2JhcmUgc2phYmxvbmVuIHZvb3IgYWFua29tZW5kZSBnZWJldXJ0ZW5pc3Nlbic7CiRsYW5nWyd1cGNvbWluZ2xpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnVG9ldm9lZ2VuL3dpanppZ2VuIHZhbiAiVXBjb21pbmdsaXN0IiBTamFibG9vbic7CiRsYW5nWydpbmZvX3N5c2RmbHRfdXBjb21pbmdsaXN0X3RlbXBsYXRlJ10gPSAnU3lzdGVlbSBTdGFuZGFhcmQgIlVwY29taW5nbGlzdCIgU2phYmxvb24nOwokbGFuZ1snaW5mb19saXN0X3RlbXBsYXRlX3RhYiddID0gJ0VlbiBvdmVyemljaHQgdmFuIGJlc2NoaWtiYXJlIHNqYWJsb25lbiB2b29yIGxpanN0d2VlcmdhdmVzJzsKJGxhbmdbJ2xpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnVG9ldm9lZ2VuL3dpanppZ2VuIHZhbiBlZW4gTGlqc3R3ZWVyZ2F2ZSBTamFibG9vbic7CiRsYW5nWydpbmZvX3N5c2RmbHRfbGlzdF90ZW1wbGF0ZSddID0gJ1N5c3RlZW0gU3RhbmRhYXJkIExpanN0d2VlcmdhdmUgU2phYmxvb24nOwokbGFuZ1snaW5mb19ldmVudF90ZW1wbGF0ZV90YWInXSA9ICdFZW4gb3ZlcnppY2h0IHZhbiBiZXNjaGlrYmFyZSBzamFibG9uZW4gdm9vciBnZWJldXJ0ZW5pcyBvdmVyemljaHRlbic7CiRsYW5nWydldmVudHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdUb2V2b2VnZW4vd2lqemlnZW4gZ2ViZXVydGVuaXN3ZWVyZ2F2ZSBzamFibG9vbic7CiRsYW5nWydpbmZvX3N5c2RmbHRfZXZlbnRfdGVtcGxhdGUnXSA9ICdTdGFuZGFhcmQgZ2ViZXVydGVuaXN3ZWVyZ2F2ZSBzamFibG9vbic7CiRsYW5nWydpbmZvX2NhbGVuZGFyX3RlbXBsYXRlX3RhYiddID0gJ0VlbiBvdmVyemljaHQgdmFuIGJlc2NoaWtiYXJlIHNqYWJsb25lbiB2b29yIEthbGVuZGVyIHdlZXJnYXZlcyc7CiRsYW5nWydjYWxlbmRhcnRlbXBsYXRlX2FkZGVkaXQnXSA9ICdUb2V2b2VnZW4vd2lqemlnZW4gZWVuIEthbGVuZGVyd2VlcmdhdmUgc2phYmxvb24nOwokbGFuZ1snaW5mb19zeXNkZmx0X2NhbGVuZGFyX3RlbXBsYXRlJ10gPSAnU3RhbmRhYXJkIGthbGVuZGVyd2VlcmdhdmUgc2phYmxvb24nOwokbGFuZ1snaW5mb19zeXNkZmx0X3RlbXBsYXRlJ10gPSAnRGV6ZSBzamFibG9uZW4gemlqbiBkZSBzdGFuZGFhcmQgd2FhcmRlbiBkaWUgd29yZGVuIGdldG9vbmQgYWxzIHUgb3AgZGUgTmlldXcgU2phYmxvb24iIHRvZXRzIGtsaWt0IGluIGRlIGdld2Vuc3RlIHRhYi4gIEhldCB3aWp6aWdlbiB2YW4gZGV6ZSBzamFibG9uZW4gemFsIGRhYXJvbSBvb2sgZ2VlbiBkaXJlY3QgZ2V2b2xnIGhlYmJlbiB2b29yIHV3IHdlYnNpdGUuJzsKJGxhbmdbJ2V2ZW50ZGVzYy1FdmVudEFkZGVkJ10gPSAnRWVuIHRhZyBkaWUgd29yZHQgYWFuZ2Vyb2VwZW4gbmEgdG9ldm9lZ2luZyB2YW4gZWVuIGthbGVuZGVyZ2ViZXVydGVuaXMnOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50RWRpdGVkJ10gPSAnRWVuIHRhZyBkaWUgd29yZHQgYWFuZ2Vyb2VwZW4gbmEgYmV3ZXJraW5nIHZhbiBlZW4gYmVzdGFhbmRlIGthbGVuZGVyZ2ViZXVydGVuaXMnOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50RGVsZXRlZCddID0gJ0VlbiB0YWcgZGllIHdvcmR0IGFhbmdlcm9lcGVuIG5hIHZlcndpamRlcmluZyB2YW4gZWVuIGthbGVuZGVyZ2ViZXVydGVuaXMnOwokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5QWRkZWQnXSA9ICdFZW4gdGFnIGRpZSB3b3JkdCBhYW5nZXJvZXBlbiBuYSBhYW5tYWtlbiB2YW4gZWVuIGNhdGVnb3JpZSc7CiRsYW5nWydldmVudGRlc2MtQ2F0ZWdvcnlFZGl0ZWQnXSA9ICdFZW4gdGFnIGRpZSB3b3JkdCBhYW5nZXJvZXBlbiBuYSBiZXdlcmtpbmcgdmFuIGVlbiBjYXRlZ29yaWUnOwokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5RGVsZXRlZCddID0gJ0VlbiB0YWcgZGllIHdvcmR0IGFhbmdlcm9lcGVuIG5hIHZlcndpamRlcmluZyB2YW4gZWVuIGNhdGVnb3JpZSc7CiRsYW5nWydlcnJvcl9jc3ZfaW5zZXJ0J10gPSAnRm91dCBiaWogaGV0IGltcG9ydGVyZW4gdmFuIGhldCBldmVudCB1aXQgZGUgY3N2IG9wIHJlZ2VsICVkJzsKJGxhbmdbJ2Vycm9yX2NzdmZpcnN0bGluZWZsZG5vdGZvdW5kJ10gPSAnRWVuIHZlcmVpc3QgdmVsZDogJXMsIGtvbiBuaWV0IHdvcmRlbiBnZXZvbmRlbiBpbiBkZSBlZXJzdGUgcmVnZWwgdmFuIGhldCBjc3YtYmVzdGFuZCc7CiRsYW5nWydlcnJvcl9jc3ZpbnZhbGlkZmlyc3RsaW5lJ10gPSAnS2FuIGdlZW4gZ2VsZGlnZSBlZXJzdGUgcmVnZWwgdmluZGVuIHZhbiBoZXQgQ1NWLWJlc3RhbmQnOwokbGFuZ1snbXNnX2V2ZW50YWRkZWQnXSA9ICdHZWJldXJ0ZW5pcyB0b2VnZXZvZWdkJzsKJGxhbmdbJ2Vycm9yX25vZXZlbnRuYW1lJ10gPSAnRWVuIG5hYW0gdm9vciBlZW4gZ2ViZXVydGVuaXMgaXMgdmVycGxpY2h0JzsKJGxhbmdbJ2Vycm9yX25vdXBsb2FkJ10gPSAnRm91dDogZ2VlbiBnZcO8cGxvYWQgYmVzdGFuZCBnZXZvbmRlbic7CiRsYW5nWydlcnJvcl9pbnZhbGlkZmlsZW5hbWUnXSA9ICdGb3V0OiBoZXQgZ2XDvHBsb2FkZSBiZXN0YW5kIHdvcmR0IG5pZXQgZ2VhY2NlcHRlZXJkJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW13aXRodXBsb2FkJ10gPSAnRm91dDogZWVuIHByb2JsZWVtIHRyYWQgb3AgdGlqZGVucyBoZXQgdXBsb2FkZW4gdmFuIGhldCBiZXN0YW5kJzsKJGxhbmdbJ2Vycm9yX2ZpbGVjb3B5ZmFpbGVkJ10gPSAnRm91dDogZWVuIHByb2JsZWVtIHRyYWQgb3AgdGlqZGVucyBoZXQga29wacOrcmVuIHZhbiBoZXQgYmVzdGFuZCBuYWFyIGRlIHVpdGVpbmRlbGlqa2UgYmVzdGVtbWluZyc7CiRsYW5nWydlcnJvcl9maWxlZXhpc3RzJ10gPSAnRm91dDogZWVuIGJlc3RhbmQgbWV0IGRlemUgbmFhbSBiZXN0YWF0IGFsJzsKJGxhbmdbJ2Vycm9yX2NzdmZpbGVub3Rmb3VuZCddID0gJ0ZvdXQ6IGthbiBoZXQgQ1NWLWJlc3RhbmQgbmlldCB2aW5kZW4nOwokbGFuZ1snZXJyb3JfY2FudG9wZW5maWxlJ10gPSAnRm91dDoga2FuIGhldCBiZXN0YW5kIG5pZXQgb3BlbmVuJzsKJGxhbmdbJ2Vycm9yX2NhdGVnb3J5ZXhpc3RzJ10gPSAnRm91dDogRWVuIGNhdGVnb3JpZSBtZXQgZGUgbmFhbSAlcyBiZXN0YWF0IGFsJzsKJGxhbmdbJ2NhbF9pZCddID0gJ0lEJzsKJGxhbmdbJ2NhbF9jYWxlbmRhciddID0gJ0NHIEthbGVuZGVyJzsKJGxhbmdbJ2NhbF9kZWZhdWx0X3RlbXBsYXRlcyddID0gJ1N0YW5kYWFyZCBzamFibG9uZW4nOwokbGFuZ1snY2FsX2Rlc2NyaXB0aW9uJ10gPSAnVG9ldm9lZ2VuLCB3aWp6aWdlbiBlbiB2ZXJ3aWpkZXJlbiB2YW4gZ2ViZXVydGVuaXNzZW4gaW4gZGUgd2Vic2l0ZSBrYWxlbmRlci4nOwokbGFuZ1snY2FsX2FkZGV2ZW50J10gPSAnR2ViZXVydGVuaXMgdG9ldm9lZ2VuJzsKJGxhbmdbJ2NhbF9pbXBvcnRfZXZlbnRzJ10gPSAnSW1wb3J0ZWVyIEdlYmV1cnRlbmlzc2VuJzsKJGxhbmdbJ2NhbF9ldmVudHMnXSA9ICdHZWJldXJ0ZW5pc3Nlbic7CiRsYW5nWydjYWxfY2F0ZWdvcmllcyddID0gJ0NhdGVnb3JpZcOrbic7CiRsYW5nWydjYWxfY2FsZW5kYXJfdGVtcGxhdGUnXSA9ICdLYWxlbmRlcnNqYWJsb29uJzsKJGxhbmdbJ2NhbF9saXN0X3RlbXBsYXRlJ10gPSAnT3ZlcnppY2h0c3NqYWJsb29uJzsKJGxhbmdbJ2NhbF91cGNvbWluZ2xpc3RfdGVtcGxhdGUnXSA9ICdUb2Vrb21zdGlnZSBnZWJldXJ0ZW5pc3NlbnNqYWJsb29uJzsKJGxhbmdbJ2NhbF9ldmVudF90ZW1wbGF0ZSddID0gJ0dlYmV1cnRlbmlzc2phYmxvb24nOwokbGFuZ1snY2FsX3NldHRpbmdzJ10gPSAnSW5zdGVsbGluZ2VuJzsKJGxhbmdbJ2NhbF9wcmV2J10gPSAnPCBWb3JpZ2UnOwokbGFuZ1snY2FsX25leHQnXSA9ICdWb2xnZW5kZSA+JzsKJGxhbmdbJ2NhbF9jYXRlZ29yaWVzX3VwZGF0ZWQnXSA9ICdDYXRlZ29yaWXDq24gYmlqZ2V3ZXJrdCc7CiRsYW5nWydjYWxfc2V0dGluZ3NfdXBkYXRlZCddID0gJ0luc3RlbGxpbmdlbiBiaWpnZXdlcmt0JzsKJGxhbmdbJ2NhbF9hZGRfZXZlbnQnXSA9ICdHZWJldXJ0ZW5pcyB0b2V2b2VnZW4nOwokbGFuZ1snY2FsX2VkaXQnXSA9ICdCZXdlcmsnOwokbGFuZ1snY2FsX2RlbGV0ZSddID0gJ1ZlcndpamRlcic7CiRsYW5nWydjYWxfYXJleW91c3VyZSddID0gJ1dlZXQgdSB6ZWtlciBkYXQgdSB3aWx0IHZlcndpamRlcmVuJzsKJGxhbmdbJ2NhbF91cGRhdGVfdGVtcGxhdGUnXSA9ICdTamFibG9vbiBCaWp3ZXJrZW4nOwokbGFuZ1snY2FsX3N1bmRheSddID0gJ1pvbmRhZyc7CiRsYW5nWydjYWxfbW9uZGF5J10gPSAnTWFhbmRhZyc7CiRsYW5nWydjYWxfdHVlc2RheSddID0gJ0RpbnNkYWcnOwokbGFuZ1snY2FsX3dlZG5lc2RheSddID0gJ1dvZW5zZGFnJzsKJGxhbmdbJ2NhbF90aHVyc2RheSddID0gJ0RvbmRlcmRhZyc7CiRsYW5nWydjYWxfZnJpZGF5J10gPSAnVnJpamRhZyc7CiRsYW5nWydjYWxfc2F0dXJkYXknXSA9ICdaYXRlcmRhZyc7CiRsYW5nWydjYWxfc3VuJ10gPSAnWm9uJzsKJGxhbmdbJ2NhbF9tb24nXSA9ICdNYSc7CiRsYW5nWydjYWxfdHVlcyddID0gJ0RpJzsKJGxhbmdbJ2NhbF93ZWQnXSA9ICdXbyc7CiRsYW5nWydjYWxfdGh1cnMnXSA9ICdEbyc7CiRsYW5nWydjYWxfZnJpJ10gPSAnVnInOwokbGFuZ1snY2FsX3NhdCddID0gJ1phJzsKJGxhbmdbJ2NhbF9qYW51YXJ5J10gPSAnamFudWFyaSc7CiRsYW5nWydjYWxfZmVicnVhcnknXSA9ICdmZWJydWFyaSc7CiRsYW5nWydjYWxfbWFyY2gnXSA9ICdtYWFydCc7CiRsYW5nWydjYWxfYXByaWwnXSA9ICdhcHJpbCc7CiRsYW5nWydjYWxfbWF5J10gPSAnbWVpJzsKJGxhbmdbJ2NhbF9qdW5lJ10gPSAnanVuaSc7CiRsYW5nWydjYWxfanVseSddID0gJ2p1bGknOwokbGFuZ1snY2FsX2F1Z3VzdCddID0gJ2F1Z3VzdHVzJzsKJGxhbmdbJ2NhbF9zZXB0ZW1iZXInXSA9ICdzZXB0ZW1iZXInOwokbGFuZ1snY2FsX29jdG9iZXInXSA9ICdva3RvYmVyJzsKJGxhbmdbJ2NhbF9ub3ZlbWJlciddID0gJ25vdmVtYmVyJzsKJGxhbmdbJ2NhbF9kZWNlbWJlciddID0gJ2RlY2VtYmVyJzsKJGxhbmdbJ2NhbF9hZGQnXSA9ICdUb2V2b2VnZW4nOwokbGFuZ1snY2FsX3VwZGF0ZSddID0gJ0Jpandlcmtlbic7CiRsYW5nWydjYWxfZXZlbnQnXSA9ICdHZWJldXJ0ZW5pcyc7CiRsYW5nWydjYWxfZGF0ZSddID0gJ0RhdHVtJzsKJGxhbmdbJ2NhbF9zdW1tYXJ5J10gPSAnU2FtZW52YXR0aW5nJzsKJGxhbmdbJ2NhbF9kZXRhaWxzJ10gPSAnRGV0YWlscyc7CiRsYW5nWydjYWxfbW9yZSddID0gJ21lZXIgPj4nOwokbGFuZ1snY2FsX3JldHVybiddID0gJ1RlcnVnJzsKJGxhbmdbJ2NhbF90byddID0gJ3RvdCc7CiRsYW5nWydjYWxfcGFzdF9ldmVudHMnXSA9ICdPdWRlIGdlYmV1cnRlbmlzc2VuJzsKJGxhbmdbJ2NhbF91cGNvbWluZ19ldmVudHMnXSA9ICdLb21lbmRlIGdlYmV1cnRlbmlzc2VuJzsKJGxhbmdbJ2NhbF9hbnlfY2F0ZWdvcnknXSA9ICdJZWRlcmUgY2F0ZWdvcmllJzsKJGxhbmdbJ2NhbF9zaG93X29ubHlfZXZlbnRzX2luJ10gPSAnVG9vbiBlbmtlbCBnZWJldXJ0ZW5pc3NlbiBpbic7CiRsYW5nWydjYWxfZmlsdGVyX2J5J10gPSAnRmlsdGVyIHRpdGVsIG9wIDxlbT4ocmVnZXgpPC9lbT4nOwokbGFuZ1snY2FsX2dvJ10gPSAnR2EnOwokbGFuZ1snY2FsX3RpdGxlJ10gPSAnVGl0ZWwnOwokbGFuZ1snY2FsX2Zyb21kYXRlJ10gPSAnVmFuYWYgZGF0dW0nOwokbGFuZ1snY2FsX3RvZGF0ZSddID0gJ1RvdCBkYXR1bSc7CiRsYW5nWydjYWxfdXBkYXRlX2NhdGVnb3JpZXMnXSA9ICdDYXRlZ29yaWXDq24gYmlqd2Vya2VuJzsKJGxhbmdbJ2NhbF9sYW5ndWFnZSddID0gJ1RhYWwnOwokbGFuZ1snY2FsX3VwZGF0ZXNldHRpbmdzJ10gPSAnSW5zdGVsbGluZ2VuIG9wc2xhYW4nOwokbGFuZ1snY2FsX3VzZV90d2VsdmVfaG91cl9jbG9jayddID0gJ0dlYnJ1aWsgbWFrZW4gdmFuIHR3YWFsZiB1dXJzIGtsb2sgYmlqIGRlIHVyZW4tdWl0dm91d21lbnVcJ3M/JzsKJGxhbmdbJ2NhbF9kZWZhdWx0X2NhdGVnb3J5J10gPSAnU3RhbmRhYXJkIGNhdGVnb3JpZSc7CiRsYW5nWydjYWxfdXBkYXRlX2ZpZWxkcyddID0gJ1ZlbGRlbiBvcHNsYWFuJzsKJGxhbmdbJ2ZvcmNlX2NhdGVnb3J5J10gPSAnRWlzIG1pbnN0ZW5zIGVlbiBjYXRlZ29yaWUnOwokbGFuZ1snc2hvd3Bhc3R5ZWFycyddID0gJ0hvZXZlZWwgamFyZW4gaW4gaGV0IHZlcmxlZGVuIHppam4gdG9lZ2VzdGFhbj8nOwokbGFuZ1snc2hvd2Z1dHVyZXllYXJzJ10gPSAnSG9ldmVlbCBqYXJlbiBpbiBkZSB0b2Vrb21zdCB6aWpuIHRvZWdlc3RhYW4/JzsKJGxhbmdbJ2hpZGVzdW1tYXJ5J10gPSAnTW9ldCBoZXQgc2FtZW52YXR0aW5nc3ZlbGQgdmVyYm9yZ2VuIHppam4/JzsKJGxhbmdbJ2hpZGVjb250ZW50J10gPSAnTW9ldCBoZXQgaW5ob3Vkc3ZlbGQgdmVyYm9yZ2VuIHppam4/JzsKJGxhbmdbJ2NhdGVnb3J5X3JlbWluZGVyJ10gPSAnU2VsZWN0ZWVyIGVlbiBvZiBtZWVyZGVyZSBjYXRlZ29yaWXDq24gdm9vciBkZXplIGdlYmV1cnRlbmlzJzsKJGxhbmdbJ21vZHVsZV9leGFtcGxlX3N0eWxlc2hlZXQnXSA9ICdDRyBLYWxlbmRlciBDU1Mgdm9vcmJlZWxkJzsKJGxhbmdbJ2Vycm9yX3Blcm1pc3Npb24nXSA9ICdVIG1vZXQgZGUgZ2VzY2hpa3RlIHJlY2h0ZW4gKCVzKSBoZWJiZW4gb20gZGV6ZSBmdW5jdGlvbmFsaXRlaXQgdGUgZ2VicnVpa2VuJzsKJGxhbmdbJ2luc3RhbGxfcG9zdG1lc3NhZ2UnXSA9ICdWZXJnZWV0IG5pZXQgb20gZGUgIk1vZGlmeSBDYWxlbmRhciItcmVjaHRlbiB2b29yIGdlYnJ1aWtlcnMgZGllIGRlIGthbGVuZGVyZ2ViZXVydGVuaXNzZW4gbW9ldGVuIGJlaGVyZW4gaW4gdGUgc3RlbGxlbic7CiRsYW5nWydkZWxldGV0YWdnZWQnXSA9ICdWZXJ3aWpkZXIgZGUgZ2VzZWxlY3RlZXJkZSBnZWJldXJ0ZW5pc3Nlbic7CiRsYW5nWydjb25maXJtZGVsZXRldGFnZ2VkJ10gPSAnV2VldCB1IHpla2VyIGRhdCBkZXplIGdlYmV1cnRlbmlzc2VuIHZlcndpamRlcmQgbW9ldGVuIHdvcmRlbj8nOwokbGFuZ1sndGFnZ2VkZGVsZXRlZCddID0gJ0dlc2VsZWN0ZWVyZGUgZ2ViZXVydGVuaXNzZW4gemlqbiB2ZXJ3aWpkZXJkJzsKJGxhbmdbJ3RlbXBsYXRlcyddID0gJ1NqYWJsb25lbic7CiRsYW5nWyd0ZW1wbGF0ZV9oZWxwJ10gPSAnU2phYmxvb25odWxwJzsKJGxhbmdbJ2ZpbGVfdGVtcGxhdGVzJ10gPSAnQmVzdGFuZHNzamFibG9vbic7CiRsYW5nWydhZGR0ZW1wbGF0ZSddID0gJ1ZvZWcgZWVuIHNqYWJsb29uIHRvZSc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ1NqYWJsb29uJzsKJGxhbmdbJ3RlbXBsYXRlbmFtZXRleHQnXSA9ICdTamFibG9vbm5hYW0nOwokbGFuZ1snZWRpdHRlbXBsYXRlJ10gPSAnQmV3ZXJrIHNqYWJsb29uJzsKJGxhbmdbJ2RlbGV0ZXRlbXBsYXRlJ10gPSAnVmVyd2lqZGVyIHNqYWJsb29uJzsKJGxhbmdbJ25ld3RlbXBsYXRlJ10gPSAnTmFhbSBuaWV1dyBzamFibG9vbic7CiRsYW5nWyd0ZW1wbGF0ZW5hbWVleGlzdHMnXSA9ICdGb3V0OiBFZW4gc2phYmxvb24gbWV0IGRpZSBuYWFtIGJlc3RhYXQgYWwuIEtpZXMgZWVuIGFuZGVyZSBuYWFtLic7CiRsYW5nWyd0ZW1wbGF0ZWltcG9ydGVkJ10gPSAnSGV0IHNqYWJsb29uIGlzIGdlw69tcG9ydGVlcmQgaW4gZGUgZGF0YWJhc2UgZW4ga2FuIGdlYnJ1aWt0IHdvcmRlbi4nOwokbGFuZ1sndmlld19kZWZhdWx0X3N0eWxlc2hlZXQnXSA9ICdCZWtpamsgc3RhbmRhYXJkIHN0eWxlc2hlZXQnOwokbGFuZ1snZmlsZW5hbWUnXSA9ICdCZXN0YW5kc25hYW0nOwokbGFuZ1snaW1wb3J0dGVtcGxhdGUnXSA9ICdJbXBvcnRlZXIgc2phYmxvb24nOwokbGFuZ1sndGVtcGxhdGVfZGVsZXRlZCddID0gJ0RlIHNqYWJsb29uIGlzIHZlcndpamRlcmQgdWl0IGRlIGRhdGFiYXNlLic7CiRsYW5nWyd1cGRhdGV0ZW1wbGF0ZXN1Y2Nlc3MnXSA9ICdEZSBzamFibG9vbiBpcyBiaWpnZXdlcmt0JzsKJGxhbmdbJ3VwZGF0ZXRlbXBsYXRlZmFpbHVyZSddID0gJ0VlbiBmb3V0IGlzIHRpamRlbnMgaGV0IGJpandlcmtlbiB2YW4gaGV0IHNqYWJsb29uIG9udHN0YWFuJzsKJGxhbmdbJ3NldHRpbmdzc2F2ZWQnXSA9ICdJbnN0ZWxsaW5nZW4gemlqbiBvcGdlc2xhZ2VuJzsKJGxhbmdbJ2NhdGVnb3J5ZGVsZXRlZCddID0gJ0NhdGVnb3JpZSB2ZXJ3aWpkZXJkJzsKJGxhbmdbJ2NhdGVnb3J5dXBkYXRlZCddID0gJ0NhdGVnb3JpZSBiaWpnZXdlcmt0JzsKJGxhbmdbJ2NhdGVnb3J5YWRkZWQnXSA9ICdDYXRlZ29yaWUgdG9lZ2V2b2VnZCc7CiRsYW5nWydldmVudGRlbGV0ZWQnXSA9ICdEZSBnZWJldXJ0ZW5pcyBpcyB2ZXJ3aWpkZXJkJzsKJGxhbmdbJ2V2ZW50dXBkYXRlZCddID0gJ0RlIGdlYmV1cnRlbmlzIGlzIGJpamdld2Vya3QnOwokbGFuZ1snZGVmYXVsdF9wYWdlX2Vycm9yJ10gPSAnRm91dDogTWV0IGRlIHRvZXBhc3NpbmcgdmFuIFByZXR0eSBVUkxzIG1vZXQgZWVuIGVlbiBzdGFuZGFhcmQgcGFnaW5hIG9wZ2V2ZW4gd29yZGVuLCBvbSBkZSBrYWxlbmRlciB0ZSBrdW5uZW4gZ2VicnVpa2VuLic7CiRsYW5nWyd0aW1lX2F0J10gPSAnb20nOwokbGFuZ1sndHlwZSddID0gJ1R5cGUnOwokbGFuZ1snbmFtZSddID0gJ05hYW0nOwokbGFuZ1snb3JkZXInXSA9ICdWb2xnb3JkZSc7CiRsYW5nWydmaWVsZGFkZGVkJ10gPSAnVmVsZCB0b2VnZXZvZWdkJzsKJGxhbmdbJ2ZpZWxkZGVsZXRlZCddID0gJ1ZlbGQgdmVyd2lqZGVyZCc7CiRsYW5nWydmaWVsZHMnXSA9ICdJbnN0ZWxiYXJlIHZlbGRlbic7CiRsYW5nWyd0ZXh0ZmllbGQnXSA9ICdUZWtzdHZlbGQnOwokbGFuZ1sndXBsb2FkZmllbGQnXSA9ICdCZXN0YW5kIHVwbG9hZCB2ZWxkJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnPHA+Q0cgS2FsZW5kZXIgaXMgZWVuIG1vZHVsZSBvbSBnZWJldXJ0ZW5pc3NlbiBvcCBlZW4gcGFnaW5hIHRlIHRvbmVuLiBBbHMgZGUgbW9kdWxlIGdlw69uc3RhbGxlZXJkIGlzLCB3b3JkdCBlciBlZW4gS2FsZW5kZXIgYmVoZWVyIHBhZ2luYSBhYW4gaGV0IEluaG91ZC1tZW51IHRvZWdldm9lZ2QgZGllIGhldCBiZWhlZXIgdmFuIGRlIGdlYmV1cnRlbmlzc2VuIG1vZ2VsaWprIG1hYWt0LjwvcD4nOwokbGFuZ1snZGVmYXVsdGNhbGVuZGFycGFnZSddID0gJ1N0YW5kYWFyZCBwYWdpbmEgZGllIGRlIGthbGVuZGVyIGJldmF0LiBEZXplIHBhZ2luYSBtb2V0IGVlbiBTbWFydHktdGFnIGJldmF0dGVuIGRpZSBkZSBrYWxlbmRlciBhYW5yb2VwdC4gVmVycGxpY2h0IGFscyB1IGRlIHByZXR0eSBVUkxcJ3MgZ2VicnVpa3QuJzsKJGxhbmdbJ3VwbG9hZGRpcmVjdG9yeSddID0gJ01hcCB3YWFyIGRlIGdlw7xwbG9hZGUgYmVzdGFuZGVuIG1vZXRlbiB3b3JkZW4gZ2VwbGFhdHN0JzsKJGxhbmdbJ3VwbG9hZGZpbGV0eXBlcyddID0gJ1RvZWdlc3RhbmUgYmVzdGFuZHN0eXBlbic7CiRsYW5nWyd1cGxvYWR1bmlxdWUnXSA9ICdHYXJhbmRlZXIgdW5pZWtlIGJlc3RhbmRzbmFtZW4nOwokbGFuZ1snY2FsX3JlY3VyX3BlcmlvZCddID0gJ1RlcnVna2VyZW5kJzsKJGxhbmdbJ2NhbF9yZWN1cl91bnRpbCddID0gJ1RlcnVna2VyZW5kIHRvdCc7CiRsYW5nWydoZWxwX3RlbXBsYXRlJ10gPSAnPHA+PGI+VG9vbiBhdXRldXJzbmFhbTo8L2I+PC9wPg0KPGNvZGU+QXV0ZXVyOiB7JGV2ZW50LmF1dGhvcm5hbWV9PC9jb2RlPic7CiRsYW5nWydnYSddID0gJ0dBMS4yLjc2Nzk2NTAyMC4xNDAwNjEyMzY0JzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pl_PL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2V2ZW50ZGVzYy1FdmVudEFkZGVkJ10gPSAnQ2FsbGVkIGFmdGVyIGFkZGluZyBhIGNhbGVuZGFyIGV2ZW50JzsKJGxhbmdbJ2V2ZW50ZGVzYy1FdmVudEVkaXRlZCddID0gJ0NhbGxlZCBhZnRlciBlZGl0aW5nIGFuIGV4aXN0aW5nIGNhbGVuZGFyIGV2ZW50JzsKJGxhbmdbJ2V2ZW50ZGVzYy1FdmVudERlbGV0ZWQnXSA9ICdDYWxsZWQgYWZ0ZXIgYW4gZXZlbnQgaGFzIGJlZW4gZGVsZXRlZCc7CiRsYW5nWydldmVudGRlc2MtQ2F0ZWdvcnlBZGRlZCddID0gJ0NhbGxlZCBhZnRlciBhIGNhdGVnb3J5IGlzIGNyZWF0ZWQnOwokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5RWRpdGVkJ10gPSAnQ2FsbGVkIGFmdGVyIGEgY2F0ZWdvcnkgaXMgZWRpdGVkJzsKJGxhbmdbJ2V2ZW50ZGVzYy1DYXRlZ29yeURlbGV0ZWQnXSA9ICdDYWxsZWQgYWZ0ZXIgYSBjYXRlZ29yeSBpcyBkZWxldGVkJzsKJGxhbmdbJ2V2ZW50aGVscC1FdmVudEFkZGVkJ10gPSAnPHA+U2VudCB3aGVuIGEgY2FsZW5kYXIgZXZlbnQgaXMgYWRkZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtldmVudF90aXRsZVwmcXVvdDsgLSBFdmVudCBUaXRsZTwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X3N1bW1hcnlcJnF1b3Q7IC0gU3VtbWFyeSBUZXh0PC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGV0YWlsc1wmcXVvdDsgLSBEZXRhaWxlZCBEZXNjcmlwdGlvbjwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2RhdGVfc3RhcnRcJnF1b3Q7IC0gVGhlIGV2ZW50IHN0YXJ0IGRhdGUvdGltZTwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2RhdGVfZW5kXCZxdW90OyAtIFRoZSBldmVudCBlbmQgZGF0ZS90aW1lPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfY3JlYXRlZF9ieVwmcXVvdDsgLSBUaGUgdXNlcmlkIG9mIHRoZSBhdXRob3I8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9pZFwmcXVvdDsgLSBUaGUgZXZlbnQgaWQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGhlbHAtRXZlbnRFZGl0ZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBldmVudCBpcyBlZGl0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtldmVudF90aXRsZVwmcXVvdDsgLSBFdmVudCBUaXRsZTwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X3N1bW1hcnlcJnF1b3Q7IC0gU3VtbWFyeSBUZXh0PC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGV0YWlsc1wmcXVvdDsgLSBEZXRhaWxlZCBEZXNjcmlwdGlvbjwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2RhdGVfc3RhcnRcJnF1b3Q7IC0gVGhlIGV2ZW50IHN0YXJ0IGRhdGUvdGltZTwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2RhdGVfZW5kXCZxdW90OyAtIFRoZSBldmVudCBlbmQgZGF0ZS90aW1lPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfY3JlYXRlZF9ieVwmcXVvdDsgLSBUaGUgdXNlcmlkIG9mIHRoZSBhdXRob3I8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9pZFwmcXVvdDsgLSBUaGUgZXZlbnQgaWQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGhlbHAtRXZlbnREZWxldGVkJ10gPSAnPHA+U2VudCB3aGVuIGEgY2FsZW5kYXIgZXZlbnQgaXMgZGVsZXRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2V2ZW50X2lkXCZxdW90OyAtIFRoZSBldmVudCBpZDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50aGVscC1DYXRlZ29yeUFkZGVkJ10gPSAnPHA+U2VudCB3aGVuIGEgY2FsZW5kYXIgY2F0ZWdvcnkgaXMgYWRkZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9pZFwmcXVvdDsgLSBUaGUgY2F0ZWdvcnkgaWQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGhlbHAtQ2F0ZWdvcnlFZGl0ZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBjYXRlZ29yeSBpcyBlZGl0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9pZFwmcXVvdDsgLSBUaGUgY2F0ZWdvcnkgaWQ8L2xpPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9uYW1lXCZxdW90OyAtIFRoZSBjYXRlZ29yeSBuYW1lPC9saT4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfb3JkZXJcJnF1b3Q7IC0gVGhlIGNhdGVnb3J5IHNvcnQgb3JkZXI8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGhlbHAtQ2F0ZWdvcnlEZWxldGVkJ10gPSAnPHA+U2VudCB3aGVuIGEgY2FsZW5kYXIgY2F0ZWdvcnkgaXMgZGVsZXRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2NhdGVnb3J5X2lkXCZxdW90OyAtIFRoZSBjYXRlZ29yeSBpZDwvbGk+DQo8bGk+XCZxdW90O2NhdGVnb3J5X25hbWVcJnF1b3Q7IC0gVGhlIGNhdGVnb3J5IG5hbWU8L2xpPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9vcmRlclwmcXVvdDsgLSBUaGUgY2F0ZWdvcnkgc29ydCBvcmRlcjwvbGk+DQo8L3VsPic7CiRsYW5nWydtc2dfZXZlbnRhZGRlZCddID0gJ1pkYXJ6ZW5pZSBkb2RhbmUnOwokbGFuZ1snZXJyb3Jfbm91cGxvYWQnXSA9ICdFUlJPUjogTm8gdXBsb2FkZWQgZmlsZSBmb3VuZCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZmlsZW5hbWUnXSA9ICdFUlJPUjogVGhlIGZpbGUgdXBsb2FkZWQgY2Fubm90IGJlIGFjY2VwdGVkJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW13aXRodXBsb2FkJ10gPSAnRVJST1I6IEEgcHJvYmxlbSBvY2N1cnJlZCB0cnlpbmcgdG8gdXBsb2FkIHRoZSBmaWxlJzsKJGxhbmdbJ2Vycm9yX2ZpbGVjb3B5ZmFpbGVkJ10gPSAnRVJST1I6IEEgUHJvYmxlbSBvY2N1cnJlZCB3aGVuIGNvcHlpbmcgdGhlIGZpbGUgdG8gaXRzIGZpbmFsIGRlc3RpbmF0aW9uJzsKJGxhbmdbJ2Vycm9yX2ZpbGVleGlzdHMnXSA9ICdFUlJPUjogQSBmaWxlIGJ5IHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cyc7CiRsYW5nWydlcnJvcl9jc3ZmaWxlbm90Zm91bmQnXSA9ICdCxYHEhEQ6IG5pZSBvZG5hbGV6aW9ubyBwbGlrdSBDU1YnOwokbGFuZ1snZXJyb3JfY2FudG9wZW5maWxlJ10gPSAnQsWBxIREOiBuaWUgbW/FvG5hIG90d29yennEhyBwbGlrdSc7CiRsYW5nWydjYWxfY2FsZW5kYXInXSA9ICdLYWxlbmRhcnonOwokbGFuZ1snY2FsX2Rlc2NyaXB0aW9uJ10gPSAnT3Bpcyc7CiRsYW5nWydjYWxfYWRkZXZlbnQnXSA9ICdEb2RhaiB6ZGFyemVuaWUnOwokbGFuZ1snY2FsX2ltcG9ydF9ldmVudHMnXSA9ICdJbXBvcnR1aiB6ZGFyemVuaWEnOwokbGFuZ1snY2FsX2V2ZW50cyddID0gJ1pkYXJ6ZW5pYSc7CiRsYW5nWydjYWxfY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpZSc7CiRsYW5nWydjYWxfY2FsZW5kYXJfdGVtcGxhdGUnXSA9ICdTemFibG9uIGthbGVuZGFyemEnOwokbGFuZ1snY2FsX2xpc3RfdGVtcGxhdGUnXSA9ICdTemFibG9uIGxpc3R5JzsKJGxhbmdbJ2NhbF91cGNvbWluZ2xpc3RfdGVtcGxhdGUnXSA9ICdTemFibG9uIG5hZGNob2R6xIVjeWNoIHpkYXJ6ZcWEJzsKJGxhbmdbJ2NhbF9ldmVudF90ZW1wbGF0ZSddID0gJ1N6YWJsb24gemRhcnplbmlhJzsKJGxhbmdbJ2NhbF9zZXR0aW5ncyddID0gJ1VzdGF3aWVuaWEnOwokbGFuZ1snY2FsX3ByZXYnXSA9ICcmbGFxdW87IFBvcHJ6ZWRuaSc7CiRsYW5nWydjYWxfbmV4dCddID0gJ05hc3TEmXBueSAmcmFxdW87JzsKJGxhbmdbJ2NhbF9jYXRlZ29yaWVzX3VwZGF0ZWQnXSA9ICdLYXRlZ29yaWUgYWt0dWFsaXpvd2Fubyc7CiRsYW5nWydjYWxfc2V0dGluZ3NfdXBkYXRlZCddID0gJ1VzdGF3aWVuaWEgYWt0dWFsaXpvd2Fubyc7CiRsYW5nWydjYWxfYWRkX2V2ZW50J10gPSAnRG9kYWogemRhcnplbmllJzsKJGxhbmdbJ2NhbF9lZGl0J10gPSAnRWR5dHVqJzsKJGxhbmdbJ2NhbF9kZWxldGUnXSA9ICdTa2FzdWonOwokbGFuZ1snY2FsX2FyZXlvdXN1cmUnXSA9ICdDenkgamVzdGXFmyBwZXduaWVuLCDFvGUgY2hjZXN6IHVzdW7EhcSHJzsKJGxhbmdbJ2NhbF91cGRhdGVfdGVtcGxhdGUnXSA9ICdBa3R1YWxpenVqIHN6YWJsb24nOwokbGFuZ1snY2FsX3N1bmRheSddID0gJ05pZWR6aWVsYSc7CiRsYW5nWydjYWxfbW9uZGF5J10gPSAnUG9uaWVkemlhxYJlayc7CiRsYW5nWydjYWxfdHVlc2RheSddID0gJ1d0b3Jlayc7CiRsYW5nWydjYWxfd2VkbmVzZGF5J10gPSAnxZpyb2RhJzsKJGxhbmdbJ2NhbF90aHVyc2RheSddID0gJ0N6d2FydGVrJzsKJGxhbmdbJ2NhbF9mcmlkYXknXSA9ICdQacSFdGVrJzsKJGxhbmdbJ2NhbF9zYXR1cmRheSddID0gJ1NvYm90YSc7CiRsYW5nWydjYWxfc3VuJ10gPSAnTic7CiRsYW5nWydjYWxfbW9uJ10gPSAnUG4nOwokbGFuZ1snY2FsX3R1ZXMnXSA9ICdXJzsKJGxhbmdbJ2NhbF93ZWQnXSA9ICfFmic7CiRsYW5nWydjYWxfdGh1cnMnXSA9ICdDeic7CiRsYW5nWydjYWxfZnJpJ10gPSAnUCc7CiRsYW5nWydjYWxfc2F0J10gPSAnUyc7CiRsYW5nWydjYWxfamFudWFyeSddID0gJ3N0eWN6ZcWEJzsKJGxhbmdbJ2NhbF9mZWJydWFyeSddID0gJ2x1dHknOwokbGFuZ1snY2FsX21hcmNoJ10gPSAnbWFyemVjJzsKJGxhbmdbJ2NhbF9hcHJpbCddID0gJ2t3aWVjaWXFhCc7CiRsYW5nWydjYWxfbWF5J10gPSAnbWFqJzsKJGxhbmdbJ2NhbF9qdW5lJ10gPSAnY3plcndpZWMnOwokbGFuZ1snY2FsX2p1bHknXSA9ICdsaXBpZWMnOwokbGFuZ1snY2FsX2F1Z3VzdCddID0gJ3NpZXJwaWXFhCc7CiRsYW5nWydjYWxfc2VwdGVtYmVyJ10gPSAnd3J6ZXNpZcWEJzsKJGxhbmdbJ2NhbF9vY3RvYmVyJ10gPSAncGHFumR6aWVybmlrJzsKJGxhbmdbJ2NhbF9ub3ZlbWJlciddID0gJ2xpc3RvcGFkJzsKJGxhbmdbJ2NhbF9kZWNlbWJlciddID0gJ2dydWR6aWXFhCc7CiRsYW5nWydjYWxfYWRkJ10gPSAnRG9kYWonOwokbGFuZ1snY2FsX3VwZGF0ZSddID0gJ0FrdHVhbGl6dWonOwokbGFuZ1snY2FsX2V2ZW50J10gPSAnWmRhcnplbmllJzsKJGxhbmdbJ2NhbF9kYXRlJ10gPSAnRGF0YSc7CiRsYW5nWydjYWxfc3VtbWFyeSddID0gJ09waXMnOwokbGFuZ1snY2FsX2RldGFpbHMnXSA9ICdTemN6ZWcmb2FjdXRlO8WCeSc7CiRsYW5nWydjYWxfbW9yZSddID0gJ3dpxJljZWogPj4nOwokbGFuZ1snY2FsX3JldHVybiddID0gJ1dyJm9hY3V0ZTvEhyc7CiRsYW5nWydjYWxfdG8nXSA9ICdkbyc7CiRsYW5nWydjYWxfcGFzdF9ldmVudHMnXSA9ICdaZGFyemVuaWEgcHJ6ZXN6xYJlJzsKJGxhbmdbJ2NhbF91cGNvbWluZ19ldmVudHMnXSA9ICdaZGFyemVuaWEgbmFkY2hvZHrEhWNlJzsKJGxhbmdbJ2NhbF9hbnlfY2F0ZWdvcnknXSA9ICdXc3p5c3RraWUga2F0ZWdvcmllJzsKJGxhbmdbJ2NhbF9zaG93X29ubHlfZXZlbnRzX2luJ10gPSAnUG9rYcW8IHR5bGtvIHpkYXJ6ZW5pYSB6JzsKJGxhbmdbJ2NhbF9maWx0ZXJfYnknXSA9ICdGaWx0cnVqIHBvJzsKJGxhbmdbJ2NhbF9nbyddID0gJ0lkxbonOwokbGFuZ1snY2FsX3RpdGxlJ10gPSAnVHl0dcWCJzsKJGxhbmdbJ2NhbF9mcm9tZGF0ZSddID0gJ0RhdGEgb2QnOwokbGFuZ1snY2FsX3RvZGF0ZSddID0gJ0RhdGEgZG8nOwokbGFuZ1snY2FsX3VwZGF0ZV9jYXRlZ29yaWVzJ10gPSAnQWt0dWFsaXp1aiBrYXRlZ29yaWUnOwokbGFuZ1snY2FsX2xhbmd1YWdlJ10gPSAnSsSZenlrJzsKJGxhbmdbJ2NhbF91cGRhdGVzZXR0aW5ncyddID0gJ0FrdHVhbGl6dWogdXN0YXdpZW5pYSc7CiRsYW5nWydjYWxfdXNlX3R3ZWx2ZV9ob3VyX2Nsb2NrJ10gPSAnVcW8eXdhaiB6ZWdhcmEgMTIgZ29kemlubmVnbyB3IGxpc3RhY2ggcm96d2lqYW55Y2g/JzsKJGxhbmdbJ2NhbF9kZWZhdWx0X2NhdGVnb3J5J10gPSAnRG9tecWbbG5hIGthdGVnb3JpYSc7CiRsYW5nWydjYWxfdXBkYXRlX2ZpZWxkcyddID0gJ0FrdHVhbGl6dWogcG9sYSc7CiRsYW5nWydmb3JjZV9jYXRlZ29yeSddID0gJ1d5bXXFmyBjbyBuYWptbmllaiBqZWRuxIUga2F0ZWdvcmnEmSc7CiRsYW5nWydzaG93cGFzdHllYXJzJ10gPSAnSmFrIGR1xbxvIGxhdCBwcnplc3rFgnljaCBqZXN0IGRvendvbG9uZSc7CiRsYW5nWydzaG93ZnV0dXJleWVhcnMnXSA9ICdKYWsgZHXFvG8gbGF0IHByenlzesWCeWNoIGplc3QgZG96d29sb25lJzsKJGxhbmdbJ2hpZGVzdW1tYXJ5J10gPSAnUG9sZSBvcGlzdSBwb3dpbm5vIGJ5xIcgdWtyeXRlJzsKJGxhbmdbJ2hpZGVjb250ZW50J10gPSAnUG9sZSB0cmXFm2NpIHBvd2lubm8gYnnEhyB1a3J5dGUnOwokbGFuZ1snY2F0ZWdvcnlfcmVtaW5kZXInXSA9ICdaYXpuYWN6IGplZG7EhSBsdWIgd2nEmWNlaiBrYXRlZ29yaWkgZGxhIHRlZ28gd3lkYXJ6ZW5pYSc7CiRsYW5nWydtb2R1bGVfZXhhbXBsZV9zdHlsZXNoZWV0J10gPSAnUHJ6eWvFgmFkIENTUy1hIGRsYSBrYWxlbmRhcnphJzsKJGxhbmdbJ2Vycm9yX3Blcm1pc3Npb24nXSA9ICdXeW1hZ2FuZSBqZXN0IG9kcG93aWVkbmllIHVwcmF3bmllbmllICglcykgYnkgbWllxIcgZG9zdMSZcCBkbyB0ZWogZnVua2NqaSc7CiRsYW5nWydpbnN0YWxsX3Bvc3RtZXNzYWdlJ10gPSAnVXBld25paiBzacSZLCDFvGUgdXN0YXdpb25lIGplc3QgdXByYXduaWVuaWUgJnF1b3Q7TW9keWZpa3VqIGthbGVuZGFyeiZxdW90OyBkbGEgZ3J1cCB1xbx5dGtvd25payZvYWN1dGU7dywga3Qmb2FjdXRlO3J6eSBixJlkxIUgemFyesSFZHphxIcga2FsZW5kYXJ6ZW0nOwokbGFuZ1snZGVsZXRldGFnZ2VkJ10gPSAnVXN1xYQgemF6bmFjem9uZSB3eWRhcnplbmlhJzsKJGxhbmdbJ2NvbmZpcm1kZWxldGV0YWdnZWQnXSA9ICdKZXN0ZcWbIHBld2llbiwgxbxlIHRlIHd5ZGFyemVuaWEgcG93aW5ueSBiecSHIHVzdW5pxJl0ZT8nOwokbGFuZ1sndGFnZ2VkZGVsZXRlZCddID0gJ1phem5hY3pvbmUgd3lkYXJ6ZW5pYSB6b3N0YcWCeSB1c3VuacSZdGUnOwokbGFuZ1sndGVtcGxhdGVzJ10gPSAnU3phYmxvbnknOwokbGFuZ1sndGVtcGxhdGVfaGVscCddID0gJ1N6YWJsb24gcG9tb2N5JzsKJGxhbmdbJ2ZpbGVfdGVtcGxhdGVzJ10gPSAnU3phYmxvbnkgdyBwbGlrYWNoJzsKJGxhbmdbJ2FkZHRlbXBsYXRlJ10gPSAnRG9kYWogc3phYmxvbic7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ1N6YWJsb24nOwokbGFuZ1sndGVtcGxhdGVuYW1ldGV4dCddID0gJ05hendhIHN6YWJsb251JzsKJGxhbmdbJ2VkaXR0ZW1wbGF0ZSddID0gJ0VkeXR1aiBzemFibG9uJzsKJGxhbmdbJ2RlbGV0ZXRlbXBsYXRlJ10gPSAnVXN1xYQgc3phYmxvbic7CiRsYW5nWyduZXd0ZW1wbGF0ZSddID0gJ05hendhIG5vd2VnbyBzemFibG9udSc7CiRsYW5nWyd0ZW1wbGF0ZW5hbWVleGlzdHMnXSA9ICdCxYHEhEQ6IFN6YWJsb24geiB0xIUgbmF6d8SFIGp1xbwgaXN0bmllamUuIFdwcm93YWTFuiBpbm7EhSBuYXp3xJkuJzsKJGxhbmdbJ3RlbXBsYXRlaW1wb3J0ZWQnXSA9ICdTemFibG9uIHpvc3RhxYIgcG9tecWbbG5pZSB6YWltcG9ydG93YW55IGRvIGJhenkgZGFueWNoIGkgamVzdCBqdcW8IGdvdG93eSBkbyB1xbx5Y2lhLic7CiRsYW5nWyd2aWV3X2RlZmF1bHRfc3R5bGVzaGVldCddID0gJ1pvYmFjeiBkb215xZtsbmUgYXJrdXN6ZSBzdHnFgiZvYWN1dGU7dyc7CiRsYW5nWydmaWxlbmFtZSddID0gJ05hendhIHBsaWt1JzsKJGxhbmdbJ2ltcG9ydHRlbXBsYXRlJ10gPSAnSW1wb3J0dWogc3phYmxvbic7CiRsYW5nWyd0ZW1wbGF0ZV9kZWxldGVkJ10gPSAnU3phYmxvbiB6b3N0YcWCIHNrYXNvd2FueSB6IGJhenkgZGFueWNoJzsKJGxhbmdbJ3VwZGF0ZXRlbXBsYXRlc3VjY2VzcyddID0gJ1N6YWJsb24gYWt0dWFsaXpvd2FubyBwb215xZtsbmllJzsKJGxhbmdbJ3VwZGF0ZXRlbXBsYXRlZmFpbHVyZSddID0gJ1BvZGN6YXMgYWt0dWFsaXphY2ppIHN6YWJsb251IHd5c3TEhXBpxYIgYsWCxIVkJzsKJGxhbmdbJ3NldHRpbmdzc2F2ZWQnXSA9ICdVc3Rhd2llbmlhIHpvc3RhxYJ5IHphcGlzYW5lIHBvbXnFm2xuaWUnOwokbGFuZ1snY2F0ZWdvcnlkZWxldGVkJ10gPSAnS2F0ZWdvcmlhIHpvc3RhxYJhIHVzdW5pxJl0YSc7CiRsYW5nWydjYXRlZ29yeXVwZGF0ZWQnXSA9ICdLYXRlZ29yaWEgem9zdGHFgmEgemFrdHVhbGl6b3dhbmEnOwokbGFuZ1snY2F0ZWdvcnlhZGRlZCddID0gJ0thdGVnb3JpYSB6b3N0YcWCYSBkb2RhbmEnOwokbGFuZ1snZXZlbnRkZWxldGVkJ10gPSAnV3lkYXJ6ZW5pZSB6b3N0YcWCbyB1c3VuacSZdGUnOwokbGFuZ1snZXZlbnR1cGRhdGVkJ10gPSAnV3lkYXJ6ZW5pZSB6b3N0YcWCdSB6YWt0dWFsaXpvd2FuZSc7CiRsYW5nWydkZWZhdWx0X3BhZ2VfZXJyb3InXSA9ICdCxYHEhEQ6IE11c2lzeiB1c3Rhd2nEhyBkb215xZtsbsSFIHN0cm9uxJkgYnkgdcW8eXdhxIcgbW9kdcWCIEthbGVuZGFyeiB6IG9wY2rEhSAmIzAzOTtwcmV0dHkgVVJMcyYjMDM5Oy4gV2VqZMW6IHcgemFrxYJhZGvEmSB1c2F0d2llxYQgbW9kdcWCdSBpIHd5YmllcnogamFrxIXFmyBkb215xZtsbsSFIHN0cm9uxJkuJzsKJGxhbmdbJ3RpbWVfYXQnXSA9ICdvJzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXAnOwokbGFuZ1snbmFtZSddID0gJ05hendhJzsKJGxhbmdbJ29yZGVyJ10gPSAnS29sZWpub8WbxIcnOwokbGFuZ1snZmllbGRhZGRlZCddID0gJ1BvbGUgZG9kYW5lJzsKJGxhbmdbJ2ZpZWxkZGVsZXRlZCddID0gJ1BvbGUgc2thc293YW5lJzsKJGxhbmdbJ2ZpZWxkcyddID0gJ1BvbGEgdcW8eXRrb3duaWthJzsKJGxhbmdbJ3RleHRmaWVsZCddID0gJ1BvbGUgdGVrc3Rvd2UnOwokbGFuZ1sndXBsb2FkZmllbGQnXSA9ICdQb2xlIHdncnl3YW5pYSBwbGlrJm9hY3V0ZTt3JzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnPHA+TW9kdcWCIEthbGVuZGFyeiBzxYJ1xbx5IHd5xZt3aWV0bGFuaXUgemRhcnplxYQgbmEgVHdvamVqIHN0cm9uaWUuIFBvIHphaW5zdGFsb3dhbml1IG1vZHXFgnUgdyBtZW51IHBvamF3aSBzacSZIHBvenljamEgJnF1b3Q7emFyesSFZHphaiBrYWxlbmRhcnplbSZxdW90OyAtIHRhbSB1c3Rhd2lzeiB3c3p5c3RraWUgemRhcnplbmlhLg0KPC9wPic7CiRsYW5nWydkZWZhdWx0Y2FsZW5kYXJwYWdlJ10gPSAnRG9tecWbbG5hIHN0cm9uYSB3ecWbd2lldGxhasSFY2Ega2FsZW5kYXJ6LiBOYSB0ZWogc3Ryb25pZSBtdXNpIHBvamF3acSHIHNpxJkgem5hY3puaWsgc21hcnR5ICh3xIVzYXR5IG5hd2lhcykgeiB3eXdvxYJhbmllbSBtb2R1xYJ1IEthbGVuZGFyei4gVXN0YXdpZW5pZSB0ZWogb3BjamkgamVzdCBrb25pZWN6bmUgcHJ6eSB1xbx5Y2l1IG9wY2ppICYjMDM5O3ByZXR0eSBVUkxzJiMwMzk7IC0gc2tyJm9hY3V0ZTtjb255Y2ggYWRyZXMmb2FjdXRlO3cgc3Ryb24uJzsKJGxhbmdbJ3VwbG9hZGRpcmVjdG9yeSddID0gJ0thdGFsb2csIGRvIGt0Jm9hY3V0ZTtyZWdvIHRyYWZpxIUgd2dyeXdhbmUgcGxpa2knOwokbGFuZ1sndXBsb2FkZmlsZXR5cGVzJ10gPSAnRG96d29sb25lIHR5cHkgcGxpayZvYWN1dGU7dyc7CiRsYW5nWyd1cGxvYWR1bmlxdWUnXSA9ICdVcGV3bmlqIHNpxJksIMW8ZSBuYXp3eSBwbGlrJm9hY3V0ZTt3IHPEhSB1bmlrYWxuZSc7CiRsYW5nWyd0aHVtYl93aWR0aCddID0gJ1RodW1ibmFpbCBXaWR0aCc7CiRsYW5nWyd0aHVtYl9oZWlnaHQnXSA9ICdUaHVtYm5haWwgSGVpZ2h0JzsKJGxhbmdbJ2xhcmdlX3dpZHRoJ10gPSAnTGFyZ2UgSW1hZ2UgV2lkdGgnOwokbGFuZ1snbGFyZ2VfaGVpZ2h0J10gPSAnTGFyZ2UgSW1hZ2UgSGVpZ2h0JzsKJGxhbmdbJ2NhbF9yZWN1cl9wZXJpb2QnXSA9ICdQb3d0YXJ6YWxub8WbxIcnOwokbGFuZ1snY2FsX3JlY3VyX3VudGlsJ10gPSAnUG93dGFyemFqIGRvJzsKJGxhbmdbJ2hlbHBfdGVtcGxhdGUnXSA9ICc8cD48Yj5XeWRydWsgbmF6d3kgYXV0b3JhOjwvYj48L3A+DQo8Y29kZT5BdXRvcjogeyRldmVudC5hdXRob3JuYW1lfTwvY29kZT4nOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pt_PT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ21heCddID0gJ21heCAnOwokbGFuZ1sndGltZXMnXSA9ICd2ZXplcyc7CiRsYW5nWydvbiddID0gJ2VtJzsKJGxhbmdbJ2FyZXlvdXN1cmVfdW5pbnN0YWxsJ10gPSAnVGVtIGEgY2VydGV6YSBxdWUgcXVlciBmYXplciBpc3NvPyBDb250aW51YW5kbyB2YWkgYXBhZ2FyIHRvZG9zIG9zIGRhZG9zIGFzc29jaWFkb3MgYSBlc3RlIG0mb2FjdXRlO2R1bG8uJzsKJGxhbmdbJ3Bvc3RfdW5pbnN0YWxsJ10gPSAnTyBtJm9hY3V0ZTtkdWxvIENhbGVuZCZhYWN1dGU7cmlvIGZvaSBkZXNpbnN0YWxhZG8gZSB0b2RvcyBvcyBldmVudG9zIGRlIHRlbXBsYXRlcyBlIGFzIGluZm9ybWEmY2NlZGlsOyZvdGlsZGU7ZXMgYXNzb2NpYWRhcyBhIGVzdGUgbSZvYWN1dGU7ZHVsbyBmb3JhbSByZW1vdmlkb3MnOwokbGFuZ1snZmllbGR1cGRhdGVkJ10gPSAnQ2FtcG8gIEFjdHVhbGl6YWRvJzsKJGxhbmdbJ2V2ZXJ5J10gPSAnQ2FkYSB1bSc7CiRsYW5nWydvciddID0gJ291JzsKJGxhbmdbJ3VwZGF0ZV9jaGlsZHJlbiddID0gJ0FjdHVhbGl6YSZjY2VkaWw7JmF0aWxkZTtvIFN1Yi1FdmVudG9zJzsKJGxhbmdbJ2Vycm9yX25vY2F0ZWdvcnknXSA9ICdEZXZlIHNlbGVjaW9uYXIgcGVsbyBtZW5vcyB1bWEgY2F0ZWdvcmlhJzsKJGxhbmdbJ2Vycm9yX25vdGhpbmdzZWxlY3RlZCddID0gJ05hZGEgZm9pIHNlbGVjaW9uYWRvIHBhcmEgYXBhZ2FyJzsKJGxhbmdbJ2Vycm9yX2V2ZW50b3ZlcmxhcCddID0gJ09zIGV2ZW50b3MgZGUgcGFyJmFjaXJjO21ldHJvcyByZXBldGkmY2NlZGlsOyZhdGlsZGU7byBhbyBlc3BlY2lmaWNhciByZXN1bHRhciZhYWN1dGU7IG5hIHNvYnJlcG9zaSZjY2VkaWw7JmF0aWxkZTtvIGRlIGV2ZW50b3MuJzsKJGxhbmdbJ3JlY3VycyddID0gJ1JlcGV0aSZjY2VkaWw7JmF0aWxkZTtvJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfZGF0ZXMnXSA9ICdVbSBvdSBtYWlzIGRvcyB2YWxvcmVzIGRhIGRhdGEgaW5zY3JpdGEgcyZhdGlsZGU7byBpbnYmYWFjdXRlO2xpZG9zJzsKJGxhbmdbJ3N1bmRheSddID0gJ0RvbWluZ28nOwokbGFuZ1snbW9uZGF5J10gPSAnU2VndW5kYSc7CiRsYW5nWyd0dWVzZGF5J10gPSAnVGVyJmNjZWRpbDthJzsKJGxhbmdbJ3dlZG5lc2RheSddID0gJ1F1YXJ0YSc7CiRsYW5nWyd0aHVyc2RheSddID0gJ1F1aW50YSc7CiRsYW5nWydmcmlkYXknXSA9ICdTZXh0YSc7CiRsYW5nWydzYXR1cmRheSddID0gJ1NhYmFkbyc7CiRsYW5nWydhYmJyX3N1bmRheSddID0gJ0RvbSc7CiRsYW5nWydhYmJyX21vbmRheSddID0gJ1NlZyc7CiRsYW5nWydhYmJyX3R1ZXNkYXknXSA9ICdUZXInOwokbGFuZ1snYWJicl93ZWRuZXNkYXknXSA9ICdRdWEnOwokbGFuZ1snYWJicl90aHVyc2RheSddID0gJ1F1aSc7CiRsYW5nWydhYmJyX2ZyaWRheSddID0gJ1NleCc7CiRsYW5nWydhYmJyX3NhdHVyZGF5J10gPSAnU2FiJzsKJGxhbmdbJ3dlZWtkYXlzJ10gPSAnRGlhcyAmdWFjdXRlO3RlaXMnOwokbGFuZ1sncGx1cmFsX2RhaWx5J10gPSAnRGlhcyc7CiRsYW5nWydwbHVyYWxfd2Vla2x5J10gPSAnU2VtYW5hcyc7CiRsYW5nWydwbHVyYWxfbW9udGhseSddID0gJ01lc2VzJzsKJGxhbmdbJ3BsdXJhbF95ZWFybHknXSA9ICdBbm9zJzsKJGxhbmdbJ25vJ10gPSAnTiZhdGlsZGU7byc7CiRsYW5nWydkYWlseSddID0gJ0RpJmFhY3V0ZTtyaWFtZW50ZSc7CiRsYW5nWyd3ZWVrbHknXSA9ICdTZW1hbmFsbWVudGUnOwokbGFuZ1snbW9udGhseSddID0gJ01lbnNhbG1lbnRlJzsKJGxhbmdbJ3llYXJseSddID0gJ0FudWFsbWVudGUnOwokbGFuZ1snaW50ZXJ2YWwnXSA9ICdSZXBldGlyIGEgY2FkYSc7CiRsYW5nWydjYWxfcmVjdXJfZGV0YWlscyddID0gJ1JlcGV0aSZjY2VkaWw7JmF0aWxkZTtvICBFdmVudG9zIERldGFsaGVzJzsKJGxhbmdbJ3VubGltaXRlZCddID0gJ0lsaW1pdGFkbyc7CiRsYW5nWydtYXhfcmVjdXJfZXZlbnRzJ10gPSAnTiZ1YWN1dGU7bWVybyBtJmFhY3V0ZTt4aW1vIGRlIHN1Yi1ldmVudG9zJzsKJGxhbmdbJ3VzZV90b19kYXRlJ10gPSAnRXNwZWNpZmljYXIgdW1hIGRhdGEgZmluYWwgZGlmZXJlbnRlPyc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWxhcic7CiRsYW5nWydzaG93X2NoaWxkX2V2ZW50cyddID0gJ01vc3RyYXIgU3ViLUV2ZW50b3MgPGVtPihwb2RlbSByZXN1bHRhciBlbSB1bSBsb25nbyBkaXNwbGF5KTwvZW0+JzsKJGxhbmdbJ24vYSddID0gJ24vYSAnOwokbGFuZ1sncmVjdXJzX3VudGlsJ10gPSAnUmVwZXRpciBBdCZlYWN1dGU7JzsKJGxhbmdbJ3BhcmVudCddID0gJ1BhcmVudGUnOwokbGFuZ1sncmVjdXJfcGVyaW9kJ10gPSAnUmVwZXRpciBQZXImaWFjdXRlO29kbyc7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0cm8nOwokbGFuZ1snc3RhcnRfZGF0ZSddID0gJ0RhdGEgSW5pY2lvJzsKJGxhbmdbJ2VuZF9kYXRlJ10gPSAnRGF0YSBGaW5hbCc7CiRsYW5nWydpbmZvX3VwY29taW5nbGlzdF90ZW1wbGF0ZV90YWInXSA9ICdBIGxpc3RhIGRlIHRlbXBsYXRlcyBxdWUgZXN0JmF0aWxkZTtvIGRpc3BvbiZpYWN1dGU7dmVpcyBwYXJhIGEgcHImb2FjdXRlO3hpbWEgbGlzdGEgZGUgdmlzdWFsaXphJmNjZWRpbDsmb3RpbGRlO2VzJzsKJGxhbmdbJ3VwY29taW5nbGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGljaW9uYXIvRWRpdGFyIHVtIHByJm9hY3V0ZTt4aW1vICBEaXNwbGF5IFRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF91cGNvbWluZ2xpc3RfdGVtcGxhdGUnXSA9ICdTaXN0ZW1hIFBhZHImYXRpbGRlO28gZGUgUHImb2FjdXRlO3hpbW9zIFRlbXBsYXRlcyc7CiRsYW5nWydpbmZvX2xpc3RfdGVtcGxhdGVfdGFiJ10gPSAnQSBsaXN0YSBkZSB0ZW1wbGF0ZXMgcXVlIGVzdCZhdGlsZGU7byBkaXNwb24maWFjdXRlO3ZlaXMgcGFyYSBhIGxpc3RhIHZpc3VhbGl6YSZjY2VkaWw7Jm90aWxkZTtlcyc7CiRsYW5nWydsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkaWNpb25hci9FZGl0YXIgYSBMaXN0YSBEaXNwbGF5IFRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9saXN0X3RlbXBsYXRlJ10gPSAnU2lzdGVtYSBQYWRyJmF0aWxkZTtvIExpc3RhIFRlbXBsYXRlcyc7CiRsYW5nWydpbmZvX2V2ZW50X3RlbXBsYXRlX3RhYiddID0gJ0EgbGlzdGEgZGUgdGVtcGxhdGVzIHF1ZSBlc3QmYXRpbGRlO28gZGlzcG9uJmlhY3V0ZTt2ZWlzIHBhcmEgbyBldmVudG8gdmlzdWFsaXphJmNjZWRpbDsmb3RpbGRlO2VzJzsKJGxhbmdbJ2V2ZW50dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkaWNpb25hci9FZGl0YXIgdW0gRXZlbnRvIERpc3BsYXkgVGVtcGxhdGUnOwokbGFuZ1snaW5mb19zeXNkZmx0X2V2ZW50X3RlbXBsYXRlJ10gPSAnU2lzdGVtYSBQYWRyJmF0aWxkZTtvIEV2ZW50byBUZW1wbGF0ZXMnOwokbGFuZ1snaW5mb19jYWxlbmRhcl90ZW1wbGF0ZV90YWInXSA9ICdBIGxpc3RhIGRlIHRlbXBsYXRlcyBxdWUgZXN0JmF0aWxkZTtvIGRpc3BvbiZpYWN1dGU7dmVpcyBwYXJhIGEgdmlzdWFsaXNheiZhdGlsZGU7byBkbyBDYWxlbmQmYWFjdXRlO3Jpbyc7CiRsYW5nWydjYWxlbmRhcnRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGljaW9uYXIvRWRpdGFyIHVtIENhbGVuZCZhYWN1dGU7cmlvIERpc3BsYXkgVGVtcGxhdGUnOwokbGFuZ1snaW5mb19zeXNkZmx0X2NhbGVuZGFyX3RlbXBsYXRlJ10gPSAnU2lzdGVtYSBQYWRyJmF0aWxkZTtvIENhbGVuZCZhYWN1dGU7cmlvIFRlbXBsYXRlcyc7CiRsYW5nWydpbmZvX3N5c2RmbHRfdGVtcGxhdGUnXSA9ICdFc3RhIGZvcm11bCZhYWN1dGU7cmlvIGRlZmluZSBvIHRlbXBsYXRlIHF1ZSBzZXImYWFjdXRlOyB1c2FkbyBxdWFuZG8gIGNsaWNhciBlbSAmcXVvdDtOb3ZvIFRlbXBsYXRlJnF1b3Q7IG5hIHRhYiBhcHJvcHJpYWRhLiBBbHRlcmFyIGVzc2UgdmFsb3IgbiZhdGlsZGU7byB0ZXImYWFjdXRlOyBxdWFscXVlciBlZmVpdG8gaW1lZGlhdG8gc29icmUgb3MgZGlzcGxheXMgZ2VyYWRvcyBhIHBhcnRpciBkZXN0ZSBtJm9hY3V0ZTtkdWxvLic7CiRsYW5nWydldmVudGRlc2MtRXZlbnRBZGRlZCddID0gJ0NoYW1hZGEgYXAmb2FjdXRlO3Mgc2UgYWRpY2lvbmFyIHVtIGV2ZW50byBubyBjYWxlbmQmYWFjdXRlO3JpbyAnOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50RWRpdGVkJ10gPSAnQ2hhbWFkYSBhcCZvYWN1dGU7cyBzZSBlZGl0YXIgdW0gZXZlbnRvIG5vIGNhbGVuZCZhYWN1dGU7cmlvIGV4aXN0ZW50ZSAnOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50RGVsZXRlZCddID0gJ0NoYW1hZGEgYXAmb2FjdXRlO3Mgc2UgZWxpbWluYXIgdW0gZXZlbnRvJzsKJGxhbmdbJ2V2ZW50ZGVzYy1DYXRlZ29yeUFkZGVkJ10gPSAnQ2hhbWFkYSBhcCZvYWN1dGU7cyBzZSBhZGljaW9uYXIgdW1hIGNhdGVnb3JpYSc7CiRsYW5nWydldmVudGRlc2MtQ2F0ZWdvcnlFZGl0ZWQnXSA9ICdDaGFtYWRhIGFwJm9hY3V0ZTtzIHNlIGVkaXRhciB1bWEgY2F0ZWdvcmlhJzsKJGxhbmdbJ2V2ZW50ZGVzYy1DYXRlZ29yeURlbGV0ZWQnXSA9ICdDaGFtYWRhIGFwJm9hY3V0ZTtzIHNlIGVsaW1pbmFyIHVtYSBjYXRlZ29yaWEnOwokbGFuZ1snZXZlbnRoZWxwLUV2ZW50QWRkZWQnXSA9ICc8cD5FbnZpYWRvIHF1YW5kbyB1bSBjYWxlbmQmYWFjdXRlO3JpbyBldmVudG8gJmVhY3V0ZTsgYWRpY2lvbmFkby48L3A+DQo8aDQ+UGFyJmFjaXJjO21ldHJvczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2V2ZW50X3RpdGxlXCZxdW90OyAtIEV2ZW50byBUaXR1bG88L2xpPg0KPGxpPlwmcXVvdDtldmVudF9zdW1tYXJ5XCZxdW90OyAtIFN1bSZhYWN1dGU7cmlvIFRleHRvPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGV0YWlsc1wmcXVvdDsgLSBEZXNjcmkmY2NlZGlsOyZhdGlsZGU7byBEZXRhbGhhZGE8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kYXRlX3N0YXJ0XCZxdW90OyAtIE8gZXZlbnRvIGNvbWUmY2NlZGlsO2EgZGF0YS9ob3JhPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGF0ZV9lbmRcJnF1b3Q7IC0gTyBldmVudG8gdGVybWluYSBkYXRhL2hvcmE8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9jcmVhdGVkX2J5XCZxdW90OyAtIE8gdXNlcmlkIGRvIGF1dG9yPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfaWRcJnF1b3Q7IC0gTyBldmVudG8gaWQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGhlbHAtRXZlbnRFZGl0ZWQnXSA9ICc8cD5FbnZpYWRvIHF1YW5kbyB1bSBjYWxlbmQmYWFjdXRlO3JpbyBldmVudG8gJmVhY3V0ZTsgZWRpdGFkby48L3A+DQo8aDQ+UGFyJmFjaXJjO21ldHJvczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2V2ZW50X3RpdGxlXCZxdW90OyAtIEV2ZW50byBUaXR1bG88L2xpPg0KPGxpPlwmcXVvdDtldmVudF9zdW1tYXJ5XCZxdW90OyAtIFN1bSZhYWN1dGU7cmlvIFRleHRvPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGV0YWlsc1wmcXVvdDsgLSBEZXNjcmkmY2NlZGlsOyZhdGlsZGU7byBEZXRhbGhhZGE8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kYXRlX3N0YXJ0XCZxdW90OyAtIE8gZXZlbnRvIGNvbWUmY2NlZGlsO2EgZGF0YS9ob3JhPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGF0ZV9lbmRcJnF1b3Q7IC0gTyBldmVudG8gdGVybWluYSBkYXRhL2hvcmE8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9jcmVhdGVkX2J5XCZxdW90OyAtIE8gdXNlcmlkIGRvIGF1dG9yPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfaWRcJnF1b3Q7IC0gTyBldmVudG8gaWQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGhlbHAtRXZlbnREZWxldGVkJ10gPSAnPHA+RW52aWFkbyBxdWFuZG8gdW0gY2FsZW5kJmFhY3V0ZTtyaW8gZXZlbnRvICZlYWN1dGU7IGVsaW1pbmFkby48L3A+DQo8aDQ+UGFyJmFjaXJjO21ldHJvczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2V2ZW50X2lkXCZxdW90OyAtIE8gZXZlbnRvIGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5QWRkZWQnXSA9ICc8cD5FbnZpYWRvIHF1YW5kbyB1bWEgY2F0ZWdvcmlhIGRhIGFnZW5kYSAgJmVhY3V0ZTsgYWRpY2lvbmFkYS48L3A+DQo8aDQ+UGFyJmFjaXJjO21ldHJvczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2NhdGVnb3J5X2lkXCZxdW90OyAtIEEgY2F0ZWdvcmlhIGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5RWRpdGVkJ10gPSAnPHA+RW52aWFkbyBxdWFuZG8gdW1hIGNhdGVnb3JpYSBkYSBhZ2VuZGEgICZlYWN1dGU7IGVkaXRhZGEuPC9wPg0KPGg0PlBhciZhY2lyYzttZXRyb3M8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9pZFwmcXVvdDsgLSBUaGUgY2F0ZWdvcnkgaWQ8L2xpPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9uYW1lXCZxdW90OyAtIEEgY2F0ZWdvcmlhIG5vbWU8L2xpPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9vcmRlclwmcXVvdDsgLSBBIGNhdGVnb3JpYSBvcmRhZGVuYSZjY2VkaWw7JmF0aWxkZTtvPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5RGVsZXRlZCddID0gJzxwPkVudmlhZG8gcXVhbmRvIHVtYSBjYXRlZ29yaWEgZGEgYWdlbmRhICAmZWFjdXRlOyBlbGltaW5hZGEuPC9wPg0KPGg0PlBhciZhY2lyYzttZXRyb3M8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9pZFwmcXVvdDsgLSBUaGUgY2F0ZWdvcnkgaWQ8L2xpPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9uYW1lXCZxdW90OyAtIEEgY2F0ZWdvcmlhIG5vbWU8L2xpPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9vcmRlclwmcXVvdDsgLSBBIGNhdGVnb3JpYSBvcmRhZGVuYSZjY2VkaWw7JmF0aWxkZTtvPC9saT4NCjwvdWw+DQonOwokbGFuZ1snbXNnX2V2ZW50YWRkZWQnXSA9ICdFdmVudG8gQWRpY2lvbmFkbyc7CiRsYW5nWydlcnJvcl9ub2V2ZW50bmFtZSddID0gJ1VtIG5vbWUgcGFyYSBvIGV2ZW50byAmZWFjdXRlOyBvYnJpZ2F0Jm9hY3V0ZTtyaW8nOwokbGFuZ1snZXJyb3Jfbm91cGxvYWQnXSA9ICdFUlJPOiBOZW5odW0gYXJxdWl2byBmb2kgZW5jb250cmFkbyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZmlsZW5hbWUnXSA9ICdFUlJPOiBPIGFycXVpdm8gY2FycmVnYWRvLCBuJmF0aWxkZTtvICZlYWN1dGU7IGFjZWl0ZSc7CiRsYW5nWydlcnJvcl9wcm9ibGVtd2l0aHVwbG9hZCddID0gJ0VSUk86IE9jb3JyZXUgdW0gcHJvYmxlbWEgYW8gdGVudGFuZG8gY2FycmVnYXIgbyBhcnF1aXZvJzsKJGxhbmdbJ2Vycm9yX2ZpbGVjb3B5ZmFpbGVkJ10gPSAnRVJSTzogT2NvcnJldSB1bSBwcm9ibGVtYSBhbyBjb3BpYXIgbyBhcnF1aXZvIHBhcmEgbyBzZXUgZGVzdGlubyBmaW5hbCc7CiRsYW5nWydlcnJvcl9maWxlZXhpc3RzJ10gPSAnRVJSTzogVW0gYXJxdWl2byBjb20gZXNzZSBub21lIGomYWFjdXRlOyBleGlzdGUnOwokbGFuZ1snZXJyb3JfY3N2ZmlsZW5vdGZvdW5kJ10gPSAnRVJSTzogTiZhdGlsZGU7byBmb2kgcG9zcyZpYWN1dGU7dmVsIGxvY2FsaXphciBvIGFycXVpdm8gQ1NWJzsKJGxhbmdbJ2Vycm9yX2NhbnRvcGVuZmlsZSddID0gJ0VSUk86IE4mYXRpbGRlO28gJmVhY3V0ZTsgcG9zcyZpYWN1dGU7dmVsIGFicmlyIG8gYXJxdWl2byc7CiRsYW5nWydlcnJvcl9jYXRlZ29yeWV4aXN0cyddID0gJ0VSUk86IFVtIGNhdGVnb3JpYSBjb20gbyBzZWd1aW50ZSBjb20gZXN0ZSBub21lICVzIGomYWFjdXRlOyBleGlzdGUnOwokbGFuZ1snY2FsX2lkJ10gPSAnSWQgJzsKJGxhbmdbJ2NhbF9jYWxlbmRhciddID0gJ0NhbGVuZCZhYWN1dGU7cmlvJzsKJGxhbmdbJ2NhbF9kZWZhdWx0X3RlbXBsYXRlcyddID0gJ1RlbXBsYXRlcyBQYWRyJmF0aWxkZTtvJzsKJGxhbmdbJ2NhbF9kZXNjcmlwdGlvbiddID0gJ0Rlc2NyaSZjY2VkaWw7JmF0aWxkZTtvJzsKJGxhbmdbJ2NhbF9hZGRldmVudCddID0gJ0FkaWNpb25hciBFdmVudG8nOwokbGFuZ1snY2FsX2ltcG9ydF9ldmVudHMnXSA9ICdJbXBvcnRhciBFdmVudG9zJzsKJGxhbmdbJ2NhbF9ldmVudHMnXSA9ICdFdmVudG9zJzsKJGxhbmdbJ2NhbF9jYXRlZ29yaWVzJ10gPSAnQ2F0ZWdvcmlhcyc7CiRsYW5nWydjYWxfY2FsZW5kYXJfdGVtcGxhdGUnXSA9ICdDYWxlbmQmYWFjdXRlO3JpbyBUZW1wbGF0ZSc7CiRsYW5nWydjYWxfbGlzdF90ZW1wbGF0ZSddID0gJ0xpc3RhIFRlbXBsYXRlJzsKJGxhbmdbJ2NhbF91cGNvbWluZ2xpc3RfdGVtcGxhdGUnXSA9ICdQciZvYWN1dGU7eGltb3MgRXZlbnRvcyBUZW1wbGF0ZSc7CiRsYW5nWydjYWxfZXZlbnRfdGVtcGxhdGUnXSA9ICdFdmVudG9zIFRlbXBsYXRlJzsKJGxhbmdbJ2NhbF9zZXR0aW5ncyddID0gJ0NvbmZpZ3VyYSZjY2VkaWw7Jm90aWxkZTtlcyc7CiRsYW5nWydjYWxfcHJldiddID0gJyZsYXF1bzsgVm9sdGFyJzsKJGxhbmdbJ2NhbF9uZXh0J10gPSAnU2VndWludGUgJnJhcXVvOyc7CiRsYW5nWydjYWxfY2F0ZWdvcmllc191cGRhdGVkJ10gPSAnQ2F0ZWdvcmlhcyBDYXJyZWdhbWVudG8nOwokbGFuZ1snY2FsX3NldHRpbmdzX3VwZGF0ZWQnXSA9ICdEZWZpbmkmY2NlZGlsOyZvdGlsZGU7ZXMgQWN0dWFsaXphZGFzJzsKJGxhbmdbJ2NhbF9hZGRfZXZlbnQnXSA9ICdBZGljaW9uYXIgRXZlbnRvJzsKJGxhbmdbJ2NhbF9lZGl0J10gPSAnRWRpdGFyJzsKJGxhbmdbJ2NhbF9kZWxldGUnXSA9ICdFbGltaW5hcic7CiRsYW5nWydjYWxfYXJleW91c3VyZSddID0gJ1RlbSBjZXJ0ZXphIGRlIHF1ZSBkZXNlamEgZXhjbHVpcic7CiRsYW5nWydjYWxfdXBkYXRlX3RlbXBsYXRlJ10gPSAnQWN0dWFsaXphciBUZW1wbGF0ZSc7CiRsYW5nWydjYWxfc3VuZGF5J10gPSAnRG9taW5nbyc7CiRsYW5nWydjYWxfbW9uZGF5J10gPSAnU2VndW5kYSc7CiRsYW5nWydjYWxfdHVlc2RheSddID0gJ1RlciZjY2VkaWw7YSc7CiRsYW5nWydjYWxfd2VkbmVzZGF5J10gPSAnUXVhcnRhJzsKJGxhbmdbJ2NhbF90aHVyc2RheSddID0gJ1F1aW50YSc7CiRsYW5nWydjYWxfZnJpZGF5J10gPSAnU2V4dGEnOwokbGFuZ1snY2FsX3NhdHVyZGF5J10gPSAnU2FiYWRvJzsKJGxhbmdbJ2NhbF9zdW4nXSA9ICdEb20nOwokbGFuZ1snY2FsX21vbiddID0gJ1NlZyc7CiRsYW5nWydjYWxfdHVlcyddID0gJ1Rlcic7CiRsYW5nWydjYWxfd2VkJ10gPSAnUXVhJzsKJGxhbmdbJ2NhbF90aHVycyddID0gJ1F1aSc7CiRsYW5nWydjYWxfZnJpJ10gPSAnU2V4JzsKJGxhbmdbJ2NhbF9zYXQnXSA9ICdTYWInOwokbGFuZ1snY2FsX2phbnVhcnknXSA9ICdKYW5laXJvJzsKJGxhbmdbJ2NhbF9mZWJydWFyeSddID0gJ0ZldmVyZWlybyc7CiRsYW5nWydjYWxfbWFyY2gnXSA9ICdNYXImY2NlZGlsO28nOwokbGFuZ1snY2FsX2FwcmlsJ10gPSAnQWJyaWwnOwokbGFuZ1snY2FsX21heSddID0gJ01haW8nOwokbGFuZ1snY2FsX2p1bmUnXSA9ICdKdW5obyc7CiRsYW5nWydjYWxfanVseSddID0gJ0p1bGhvJzsKJGxhbmdbJ2NhbF9hdWd1c3QnXSA9ICdBZ29zdG8nOwokbGFuZ1snY2FsX3NlcHRlbWJlciddID0gJ1NldGVtYnJvJzsKJGxhbmdbJ2NhbF9vY3RvYmVyJ10gPSAnT3V0dWJybyc7CiRsYW5nWydjYWxfbm92ZW1iZXInXSA9ICdOb3ZlbWJybyc7CiRsYW5nWydjYWxfZGVjZW1iZXInXSA9ICdEZWNlbWJybyc7CiRsYW5nWydjYWxfYWRkJ10gPSAnQWRpY2lvbmFyJzsKJGxhbmdbJ2NhbF91cGRhdGUnXSA9ICdBY3R1YWxpemFyJzsKJGxhbmdbJ2NhbF9ldmVudCddID0gJ0V2ZW50byc7CiRsYW5nWydjYWxfZGF0ZSddID0gJ0RhdGEnOwokbGFuZ1snY2FsX3N1bW1hcnknXSA9ICdTdW0mYWFjdXRlO3Jpbyc7CiRsYW5nWydjYWxfZGV0YWlscyddID0gJ0RldGFsaGVzJzsKJGxhbmdbJ2NhbF9tb3JlJ10gPSAnbWFpcyA+Pic7CiRsYW5nWydjYWxfcmV0dXJuJ10gPSAnVm9sdGEnOwokbGFuZ1snY2FsX3RvJ10gPSAnYSc7CiRsYW5nWydjYWxfcGFzdF9ldmVudHMnXSA9ICcmVWFjdXRlO2x0aW1vcyBFdmVudG9zJzsKJGxhbmdbJ2NhbF91cGNvbWluZ19ldmVudHMnXSA9ICdQciZvYWN1dGU7eGltb3MgRXZlbnRvcyc7CiRsYW5nWydjYWxfYW55X2NhdGVnb3J5J10gPSAnTmVuaHVtYSBDYXRlZ29yaWEnOwokbGFuZ1snY2FsX3Nob3dfb25seV9ldmVudHNfaW4nXSA9ICdNb3N0cmFyIGFwZW5hcyBlbSBldmVudG9zJzsKJGxhbmdbJ2NhbF9maWx0ZXJfYnknXSA9ICdGaWx0cmEgUG9yJzsKJGxhbmdbJ2NhbF9nbyddID0gJ09LJzsKJGxhbmdbJ2NhbF90aXRsZSddID0gJ1RpdHVsbyc7CiRsYW5nWydjYWxfZnJvbWRhdGUnXSA9ICdEZSBEYXRhJzsKJGxhbmdbJ2NhbF90b2RhdGUnXSA9ICdQYXJhIERhdGEnOwokbGFuZ1snY2FsX3VwZGF0ZV9jYXRlZ29yaWVzJ10gPSAnQWN0dWFsaXphciBDYXRlZ29yaWFzJzsKJGxhbmdbJ2NhbF9sYW5ndWFnZSddID0gJ0wmaWFjdXRlO25ndWFnZW0nOwokbGFuZ1snY2FsX3VwZGF0ZXNldHRpbmdzJ10gPSAnQWN0dWFsaXphciBDb25maWd1cmEmY2NlZGlsOyZvdGlsZGU7ZXMnOwokbGFuZ1snY2FsX3VzZV90d2VsdmVfaG91cl9jbG9jayddID0gJ1VzZSBhcyBkb3plIGhvcmFzIG5hIGhvcmEgZG8gcmVsJm9hY3V0ZTtnaW8gZHJvcC1kb3ducz8nOwokbGFuZ1snY2FsX2RlZmF1bHRfY2F0ZWdvcnknXSA9ICdDYXRlZ29yaWEgUGFkciZhdGlsZGU7byAnOwokbGFuZ1snY2FsX3VwZGF0ZV9maWVsZHMnXSA9ICdBY3R1YWxpemFyIENhbXBvcyc7CiRsYW5nWydmb3JjZV9jYXRlZ29yeSddID0gJ0ZvciZjY2VkaWw7YXIgcGVsbyBtZW5vcyB1bWEgY2F0ZWdvcmlhJzsKJGxhbmdbJ3Nob3dwYXN0eWVhcnMnXSA9ICdRdWFudG9zIGFub3Mgbm8gcGFzc2FkbyBzJmF0aWxkZTtvIHBlcm1pdGlkb3MnOwokbGFuZ1snc2hvd2Z1dHVyZXllYXJzJ10gPSAnUXVhbnRvcyBhbm9zIG5vIGZ1dHVybyBzJmF0aWxkZTtvIHBlcm1pdGlkb3MnOwokbGFuZ1snaGlkZXN1bW1hcnknXSA9ICdEZXZlIHNlciBjYW1wbyBzdW0mYWFjdXRlO3JpbyBlc2NvbmRpZG8nOwokbGFuZ1snaGlkZWNvbnRlbnQnXSA9ICdEZXZlIHNlciBjYW1wbyBjb250ZSZ1YWN1dGU7ZG8gZXNjb25kaWRvJzsKJGxhbmdbJ2NhdGVnb3J5X3JlbWluZGVyJ10gPSAnVmVyaWZpcXVlIHVtYSBvdSBtYWlzIGNhdGVnb3JpYXMgcGFyYSBlc3RlIGV2ZW50byc7CiRsYW5nWydtb2R1bGVfZXhhbXBsZV9zdHlsZXNoZWV0J10gPSAnQ2FsZW5kJmFhY3V0ZTtyaW8gQ1NTIGV4ZW1wbG8nOwokbGFuZ1snZXJyb3JfcGVybWlzc2lvbiddID0gJ1ByZWNpc2FyJmFhY3V0ZTsgZGEgcGVybWlzcyZhdGlsZGU7byBhcHJvcHJpYWRhICglcykgcGFyYSBhY2VkZXIgYSBlc3RhIGZ1bmNpb25hbGlkYWRlJzsKJGxhbmdbJ2luc3RhbGxfcG9zdG1lc3NhZ2UnXSA9ICdDZXJ0aWZpcXVlLXNlIGRlIGRlZmluaXIgYSBwZXJtaXNzJmF0aWxkZTtvICZxdW90O01vZGlmaWNhciBDYWxlbmQmYWFjdXRlO3JpbyZxdW90OyAgZG9zIHVzdSZhYWN1dGU7cmlvcyBxdWUgZGV2ZXImYXRpbGRlO28gYWRtaW5pc3RyYXIgYWdlbmRhIGUgZXZlbnRvcy4nOwokbGFuZ1snZGVsZXRldGFnZ2VkJ10gPSAnRXhjbHVpciBldmVudG9zIG1hcmNhZG9zICc7CiRsYW5nWydjb25maXJtZGVsZXRldGFnZ2VkJ10gPSAnVGVtIGNlcnRlemEgcXVlIGVzdGVzIGV2ZW50b3MgZGV2ZW0gc2VyIHN1cHJpbWlkb3M/JzsKJGxhbmdbJ3RhZ2dlZGRlbGV0ZWQnXSA9ICdFdmVudG9zIHNlbGVjaW9uYWRvcyBmb3JhbSBleGNsdSZpYWN1dGU7ZG9zJzsKJGxhbmdbJ3RlbXBsYXRlcyddID0gJ1RlbXBsYXRlcyAnOwokbGFuZ1sndGVtcGxhdGVfaGVscCddID0gJ1RlbXBsYXRlIEFqdWRhJzsKJGxhbmdbJ2ZpbGVfdGVtcGxhdGVzJ10gPSAnRmljaGVpcm9zIFRlbXBsYXRlcyc7CiRsYW5nWydhZGR0ZW1wbGF0ZSddID0gJ0FkaWNpb25hciBUZW1wbGF0ZSc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ1RlbXBsYXRlICc7CiRsYW5nWyd0ZW1wbGF0ZW5hbWV0ZXh0J10gPSAnVGVtcGxhdGUgTm9tZSc7CiRsYW5nWydlZGl0dGVtcGxhdGUnXSA9ICdFZGl0YXIgVGVtcGxhdGUnOwokbGFuZ1snZGVsZXRldGVtcGxhdGUnXSA9ICdFbGltaW5hciBUZW1wbGF0ZSc7CiRsYW5nWyduZXd0ZW1wbGF0ZSddID0gJ05vdm8gVGVtcGxhdGUgTm9tZSc7CiRsYW5nWyd0ZW1wbGF0ZW5hbWVleGlzdHMnXSA9ICdFcnJvOlVtIG1vZGVsbyBjb20gZXNzZSBub21lIGomYWFjdXRlOyBleGlzdGUuIFBvciBmYXZvciwgZXNjb2xoYSB1bSBub21lIGRpZmVyZW50ZS4nOwokbGFuZ1sndGVtcGxhdGVpbXBvcnRlZCddID0gJ08gdGVtcGxhdGUgZm9pIGltcG9ydGFkbyBwYXJhIG8gYmFuY28gZGUgZGFkb3MgZSBhZ29yYSBlc3QmYWFjdXRlOyBpbnN0YWxhZG8gcGFyYSB1c28uJzsKJGxhbmdbJ3ZpZXdfZGVmYXVsdF9zdHlsZXNoZWV0J10gPSAnVmVyIEZvbGhhIGRlIGVzdGlsbyBwYWRyJmF0aWxkZTtvJzsKJGxhbmdbJ2ZpbGVuYW1lJ10gPSAnRmljaGVpcm8gTm9tZSc7CiRsYW5nWydpbXBvcnR0ZW1wbGF0ZSddID0gJ0ltcG9ydGFyIFRlbXBsYXRlJzsKJGxhbmdbJ3RlbXBsYXRlX2RlbGV0ZWQnXSA9ICdPIHRlbXBsYXRlIGZvaSBleGNsdSZpYWN1dGU7ZG8gY29tICZlY2lyYzt4aXRvIGRhIGJhc2UgZGUgZGFkb3MuJzsKJGxhbmdbJ3VwZGF0ZXRlbXBsYXRlc3VjY2VzcyddID0gJ08gdGVtcGxhdGUgZm9pIGF0dWFsaXphZGEgY29tIHN1Y2Vzc28nOwokbGFuZ1sndXBkYXRldGVtcGxhdGVmYWlsdXJlJ10gPSAnT2NvcnJldSB1bSBlcnJvIGFvIGFjdHVhbGl6YXIgbyB0ZW1wbGF0ZSc7CiRsYW5nWydzZXR0aW5nc3NhdmVkJ10gPSAnQ29uZmlndXJhJmNjZWRpbDsmb3RpbGRlO2VzIHNhbHZhcyBjb20gc3VjZXNzbyc7CiRsYW5nWydjYXRlZ29yeWRlbGV0ZWQnXSA9ICdDYXRlZ29yaWEgZWxpbWluYWRhJzsKJGxhbmdbJ2NhdGVnb3J5dXBkYXRlZCddID0gJ0NhdGVnb3JpYSBhY3R1YWxpemFkYSc7CiRsYW5nWydjYXRlZ29yeWFkZGVkJ10gPSAnQ2F0ZWdvcmlhIGFkaWNpb25hZGEnOwokbGFuZ1snZXZlbnRkZWxldGVkJ10gPSAnTyBldmVudG8gZm9pIHJlbW92aWRvJzsKJGxhbmdbJ2V2ZW50dXBkYXRlZCddID0gJ08gZXZlbnRvIGZvaSBhY3R1YWxpemFkbyc7CiRsYW5nWydkZWZhdWx0X3BhZ2VfZXJyb3InXSA9ICdFcnJvOiBEZXZlIGRlZmluaXIgdW1hIHAmYWFjdXRlO2dpbmEgcGFkciZhdGlsZGU7bywgYSBmaW0gZGUgdXRpbGl6YXIgYSBBZ2VuZGEgY29tIFVSTHMgY3VydGFzIGxpZ2FkYS4gUG9yIGZhdm9yLCB2JmFhY3V0ZTsgJmFncmF2ZTsgYWJhIERlZmluaSZjY2VkaWw7Jm90aWxkZTtlcyBkbyBDYWxlbmQmYWFjdXRlO3JpbyBlIGVzY29saGEgdW0uJzsKJGxhbmdbJ3RpbWVfYXQnXSA9ICdlbSc7CiRsYW5nWyd0eXBlJ10gPSAnVGlwbyc7CiRsYW5nWyduYW1lJ10gPSAnTm9tZSc7CiRsYW5nWydvcmRlciddID0gJ09yZGVtJzsKJGxhbmdbJ2ZpZWxkYWRkZWQnXSA9ICdDYW1wbyBhZGljaW9uYWRvIGNvbSBzdWNlc3NvJzsKJGxhbmdbJ2ZpZWxkZGVsZXRlZCddID0gJ0NhbXBvIGVsaW1pbmFkbyc7CiRsYW5nWydmaWVsZHMnXSA9ICdDYW1wb3MgUGVyc29uYWxpemFkb3MnOwokbGFuZ1sndGV4dGZpZWxkJ10gPSAnQ2FtcG8gZGUgdGV4dG8nOwokbGFuZ1sndXBsb2FkZmllbGQnXSA9ICdDYW1wbyBkZSBjYXJyZWdhbWVudG8nOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICc8cD5BZ2VuZGEgJmVhY3V0ZTsgdW0gbSZvYWN1dGU7ZHVsbyBwYXJhIGV4aWJpJmNjZWRpbDsmYXRpbGRlO28gZGUgZXZlbnRvcyBlbSBzdWEgcCZhYWN1dGU7Z2luYS4gUXVhbmRvIG8NCk0mb2FjdXRlO2R1bG8gZm9yIGluc3RhbGFkbywgdW1hIEFnZW5kYSBhZG1pbiBwJmFhY3V0ZTtnaW5hICZlYWN1dGU7IGFkaWNpb25hZGEgYW8gY29udGUmdWFjdXRlO2RvIG1lbnUNClF1ZSBsaGUgcGVybWl0aXImYWFjdXRlOyBnZXJpciBvcyBzZXVzIGV2ZW50b3MuPC9wPic7CiRsYW5nWydkZWZhdWx0Y2FsZW5kYXJwYWdlJ10gPSAnUCZhYWN1dGU7Z2luYSBQYWQmYXRpbGRlO28gcXVlIGNvbnQmZWFjdXRlO20gbyBDYWxlbmQmYWFjdXRlO3Jpby4gRXN0YSBwJmFhY3V0ZTtnaW5hIGRldmUgaW5jbHVpciB1bWEgdGFnIFNtYXJ0eSBxdWUgY2hhbWEgcGVsbyBDYWxlbmQmYWFjdXRlO3Jpby4gTmVjZXNzJmFhY3V0ZTtyaW8gc2Ugdm9jJmVjaXJjOyB1c2FyIGEgcHJldHR5IFVSTHMuJzsKJGxhbmdbJ3VwbG9hZGRpcmVjdG9yeSddID0gJ0RpcmV0Jm9hY3V0ZTtyaW8gb25kZSAgb3MgYXJxdWl2byBjYXJyZWdhZG9zIGRldmVtIHNlciBjb2xvY2Fkb3MnOwokbGFuZ1sndXBsb2FkZmlsZXR5cGVzJ10gPSAnUGVybWl0aXIgdGlwbyBkZSBmaWNoZWlyb3MnOwokbGFuZ1sndXBsb2FkdW5pcXVlJ10gPSAnQXNzZWd1cmFyIG5vbWVzIGRlIGZpY2hlaXJvcyAmdWFjdXRlO25pY29zJzsKJGxhbmdbJ3RodW1iX3dpZHRoJ10gPSAnTWluaWF0dXJhIGxhcmd1cmEnOwokbGFuZ1sndGh1bWJfaGVpZ2h0J10gPSAnTWluaWF0dXJhIGFsdHVyYSc7CiRsYW5nWydsYXJnZV93aWR0aCddID0gJ0ltYWdlbSBncmFuZGUgbGFyZ3VyYSc7CiRsYW5nWydsYXJnZV9oZWlnaHQnXSA9ICdJbWFnZW0gZ3JhbmRlIGVtIGFsdHVyYSc7CiRsYW5nWydjYWxfcmVjdXJfcGVyaW9kJ10gPSAnQXQmZWFjdXRlOyc7CiRsYW5nWydjYWxfcmVjdXJfdW50aWwnXSA9ICdBdCZlYWN1dGU7IHJlcGV0aXInOwokbGFuZ1snaGVscF90ZW1wbGF0ZSddID0gJzxwPjxiPkltcHJlc3MmYXRpbGRlO28gZG8gbm9tZSBkbyBhdXRvcjo8L2I+PC9wPg0KPGNvZGU+QXV0b3I6IHskZXZlbnQuYXV0aG9ybmFtZX08L2NvZGU+DQonOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ro_RO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2V2ZW50ZGVzYy1FdmVudEFkZGVkJ10gPSAnQXBlbGF0IGR1cGEgYWRhdWdhcmVhIHVudWkgZXZlbmltZW50IGNhbGVuZGFyaXN0aWMnOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50RWRpdGVkJ10gPSAnQXBlbGF0IGR1cGEgZWRpdGFyZWEgdW51aSBldmVuaW1lbnQgY2FsZW5kYXJpc3RpYyBleGlzdGVudCc7CiRsYW5nWydldmVudGRlc2MtRXZlbnREZWxldGVkJ10gPSAnQXBlbGF0IGR1cGEgc3RlcmdlcmVhIHVudWkgZXZlbmltZW50JzsKJGxhbmdbJ2V2ZW50ZGVzYy1DYXRlZ29yeUFkZGVkJ10gPSAnQXBlbGF0IGR1cGEgY3JlYXJlYSB1bmVpIGNhdGVnb3JpaSc7CiRsYW5nWydldmVudGRlc2MtQ2F0ZWdvcnlFZGl0ZWQnXSA9ICdBcGVsYXQgZHVwYSBlZGl0YXJlYSB1bmVpIGNhdGVnb3JpaSc7CiRsYW5nWydldmVudGRlc2MtQ2F0ZWdvcnlEZWxldGVkJ10gPSAnQXBlbGF0IGR1cGEgc3RlcmdlcmVhIHVuZWkgY2F0ZWdvcmlpJzsKJGxhbmdbJ2V2ZW50aGVscC1FdmVudEFkZGVkJ10gPSAnPHA+VHJpbWl0ZSBjYW5kIHVuIGV2ZW5pbWVudCBjYWxlbmRhcmlzdGljIGVzdGUgYWRhdWdhdC48L3A+DQo8aDQ+UGFyYW1ldHJpPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7ZXZlbnRfdGl0bGVcJnF1b3Q7IC0gVGl0bHUgZXZlbmltZW50PC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfc3VtbWFyeVwmcXVvdDsgLSBUZXh0dWwgc3VtYXI8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kZXRhaWxzXCZxdW90OyAtIERlc2NyaWVyZSBkZXRhbGlhdGE8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kYXRlX3N0YXJ0XCZxdW90OyAtIERhdGEvb3JhIGRlIGluY2VwdXQgYSBldmVuaW1lbnR1bHVpPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGF0ZV9lbmRcJnF1b3Q7IC0gRGF0YS9vcmEgZGUgdGVybWluYXJlIGEgZXZlbmltZW50dWx1aTwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2NyZWF0ZWRfYnlcJnF1b3Q7IC0gdXNlcmlkLXVsIGF1dG9ydWx1aTwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2lkXCZxdW90OyAtIGlkLXVsIGV2ZW5pbWVudHVsdWk8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGhlbHAtRXZlbnRFZGl0ZWQnXSA9ICc8cD5UcmltaXRlIGNhbmQgdW4gZXZlbmltZW50IGNhbGVuZGFyaXN0aWMgZXN0ZSBlZGl0YXQuPC9wPg0KPGg0PlBhcmFtZXRyaTwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2V2ZW50X3RpdGxlXCZxdW90OyAtIFRpdGx1IGV2ZW5pbWVudDwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X3N1bW1hcnlcJnF1b3Q7IC0gVGV4dHVsIHN1bWFyPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGV0YWlsc1wmcXVvdDsgLSBEZXNjcmllcmUgZGV0YWxpYXRhPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGF0ZV9zdGFydFwmcXVvdDsgLSBEYXRhL29yYSBkZSBpbmNlcHV0IGEgZXZlbmltZW50dWx1aTwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2RhdGVfZW5kXCZxdW90OyAtIERhdGEvb3JhIGRlIHRlcm1pbmFyZSBhIGV2ZW5pbWVudHVsdWk8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9jcmVhdGVkX2J5XCZxdW90OyAtIHVzZXJpZC11bCBhdXRvcnVsdWk8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9pZFwmcXVvdDsgLSBpZC11bCBldmVuaW1lbnR1bHVpPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUV2ZW50RGVsZXRlZCddID0gJzxwPlRyaW1pdGUgY2FuZCB1biBldmVuaW1lbnQgY2FsZW5kYXJpc3RpYyBlc3RlIHN0ZXJzLjwvcD4NCjxoND5QYXJhbWV0cmk8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtldmVudF9pZFwmcXVvdDsgLSBpZC11bCBldmVuaW1lbnR1bHVpPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5QWRkZWQnXSA9ICc8cD5UcmltaXRlIGNhbmQgbyBjYXRlZ29yaWUgY2FsZW5kYXJpc3RpY2EgZXN0ZSBhZGF1Z2F0YS48L3A+DQo8aDQ+UGFyYW1ldHJpPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfaWRcJnF1b3Q7IC0gaWQtdWwgY2F0ZWdvcmllaTwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50aGVscC1DYXRlZ29yeUVkaXRlZCddID0gJzxwPlRyaW1pdGUgY2FuZCB1biBjYWxlbmRhciBjYXRlZ29pcmllIGVzdGUgZWRpdGF0LjwvcD4NCjxoND5QYXJhbWV0cmk8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9pZFwmcXVvdDsgLSBJZC11bCBjYXRlZ29yaWVpPC9saT4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfbmFtZVwmcXVvdDsgLSBOdW1lbGUgY2F0ZWdvcmllaTwvbGk+DQo8bGk+XCZxdW90O2NhdGVnb3J5X29yZGVyXCZxdW90OyAtIE9yZGluZWEgZHVwYSBjYXRlZ29yaWU8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGhlbHAtQ2F0ZWdvcnlEZWxldGVkJ10gPSAnPHA+VHJpbWl0ZSBjYW5kIHVuIGNhbGVuZGFyIGNhdGVnb3JpZSBlc3RlIHN0ZXJzLjwvcD4NCjxoND5QYXJhbWV0cmk8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9pZFwmcXVvdDsgLSBJZC11bCBjYXRlZ29yaWVpPC9saT4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfbmFtZVwmcXVvdDsgLSBOdW1lbGUgY2F0ZWdvcmllaTwvbGk+DQo8bGk+XCZxdW90O2NhdGVnb3J5X29yZGVyXCZxdW90OyAtIE9yZGluZWEgZHVwYSBjYXRlZ29yaWU8L2xpPg0KPC91bD4NCic7CiRsYW5nWydtc2dfZXZlbnRhZGRlZCddID0gJ0V2ZW5pbWVudCBhZGF1Z2F0JzsKJGxhbmdbJ2Vycm9yX25vdXBsb2FkJ10gPSAnRVJPQVJFOiBOdSBhIGZvc3QgZ2FzaXQgbmljaSB1biBmaXNpZXIgaW5jYXJjYXQgJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRmaWxlbmFtZSddID0gJ0VST0FSRTogRmlzaWVydWwgaW5jYXJjYXQgbnUgcG9hdGUgZmkgYWNjZXB0YXQnOwokbGFuZ1snZXJyb3JfcHJvYmxlbXdpdGh1cGxvYWQnXSA9ICdFUk9BUkU6IEEgc3VydmVuaXQgbyBwcm9ibGVtYSBsYSBpbmNlcmNhcmVhIGRlIGEgaW5jYXJjYSBmaXNpZXJ1bCc7CiRsYW5nWydlcnJvcl9maWxlY29weWZhaWxlZCddID0gJ0VST0FSRTogQSBzdXJ2ZW5pdCBvIHByb2JsZW1hIGxhIGNvcGllcmVhIGZpc2llcnVsdWkgbGEgZGVzdGluYXRpYSBmaW5hbGEnOwokbGFuZ1snZXJyb3JfZmlsZWV4aXN0cyddID0gJ0VST0FSRTogVW4gZmlzZXIgY3UgYWNlbGFzaSBudW1lIGV4aXN0YSBkZWphJzsKJGxhbmdbJ2Vycm9yX2NzdmZpbGVub3Rmb3VuZCddID0gJ0VST0FSRTogTnUgcy1hIGdhc2l0IGZpc2llcnVsIENTVic7CiRsYW5nWydlcnJvcl9jYW50b3BlbmZpbGUnXSA9ICdFUk9BUkU6IE51IHNlIHBvYXRlIGRlc2NoaWRlIGZpc2llcnVsJzsKJGxhbmdbJ2NhbF9jYWxlbmRhciddID0gJ0NhbGVuZGFyJzsKJGxhbmdbJ2NhbF9kZXNjcmlwdGlvbiddID0gJ0Rlc2NyaWVyZSc7CiRsYW5nWydjYWxfYWRkZXZlbnQnXSA9ICdBZGF1Z2EgZXZlbmltZW50JzsKJGxhbmdbJ2NhbF9pbXBvcnRfZXZlbnRzJ10gPSAnSW1wb3J0YSBldmVuaW1lbnRlJzsKJGxhbmdbJ2NhbF9ldmVudHMnXSA9ICdFdmVuaW1lbnRlJzsKJGxhbmdbJ2NhbF9jYXRlZ29yaWVzJ10gPSAnQ2F0ZWdvcmlpJzsKJGxhbmdbJ2NhbF9jYWxlbmRhcl90ZW1wbGF0ZSddID0gJ1NhYmxvbiBDYWxlbmRhcic7CiRsYW5nWydjYWxfbGlzdF90ZW1wbGF0ZSddID0gJ1NhYmxvbiBMaXN0YSc7CiRsYW5nWydjYWxfdXBjb21pbmdsaXN0X3RlbXBsYXRlJ10gPSAnU2FibG9uIFNvc2lyaSc7CiRsYW5nWydjYWxfZXZlbnRfdGVtcGxhdGUnXSA9ICdTYWJsb24gRXZlbmltZW50JzsKJGxhbmdbJ2NhbF9zZXR0aW5ncyddID0gJ1NldGFyaSc7CiRsYW5nWydjYWxfcHJldiddID0gJyZsYXF1bzsgQW50ZXJpb3InOwokbGFuZ1snY2FsX25leHQnXSA9ICdVcm1hdG9yICZyYXF1bzsnOwokbGFuZ1snY2FsX2NhdGVnb3JpZXNfdXBkYXRlZCddID0gJ0NhdGVnb3JpaSBhY3R1YWxpemF0ZSc7CiRsYW5nWydjYWxfc2V0dGluZ3NfdXBkYXRlZCddID0gJ1NldGFyaSBhY3R1YWxpemF0ZSc7CiRsYW5nWydjYWxfYWRkX2V2ZW50J10gPSAnQWRhdWdhIGV2ZW5pbWVudCc7CiRsYW5nWydjYWxfZWRpdCddID0gJ0VkaXRlYXphJzsKJGxhbmdbJ2NhbF9kZWxldGUnXSA9ICdTdGVyZ2UnOwokbGFuZ1snY2FsX2FyZXlvdXN1cmUnXSA9ICdTdW50ZXRpIHNpZ3VyKGEpIGNhIGRvcml0aSBzYSBzdGVyZ2V0aSc7CiRsYW5nWydjYWxfdXBkYXRlX3RlbXBsYXRlJ10gPSAnU2FibG9uIEFjdHVhbGl6YXJlJzsKJGxhbmdbJ2NhbF9zdW5kYXknXSA9ICdEdW1pbmljYSc7CiRsYW5nWydjYWxfbW9uZGF5J10gPSAnTHVuaSc7CiRsYW5nWydjYWxfdHVlc2RheSddID0gJ01hcnRpJzsKJGxhbmdbJ2NhbF93ZWRuZXNkYXknXSA9ICdNaWVyY3VyaSc7CiRsYW5nWydjYWxfdGh1cnNkYXknXSA9ICdKb2knOwokbGFuZ1snY2FsX2ZyaWRheSddID0gJ1ZpbmVyaSc7CiRsYW5nWydjYWxfc2F0dXJkYXknXSA9ICdTYW1iYXRhJzsKJGxhbmdbJ2NhbF9zdW4nXSA9ICdEdW0nOwokbGFuZ1snY2FsX21vbiddID0gJ0x1bic7CiRsYW5nWydjYWxfdHVlcyddID0gJ01hcic7CiRsYW5nWydjYWxfd2VkJ10gPSAnTWllJzsKJGxhbmdbJ2NhbF90aHVycyddID0gJ0pvaSc7CiRsYW5nWydjYWxfZnJpJ10gPSAnVmluJzsKJGxhbmdbJ2NhbF9zYXQnXSA9ICdTYW0nOwokbGFuZ1snY2FsX2phbnVhcnknXSA9ICdJYW51YXJpZSc7CiRsYW5nWydjYWxfZmVicnVhcnknXSA9ICdGZWJydWFyaWUnOwokbGFuZ1snY2FsX21hcmNoJ10gPSAnTWFydGllJzsKJGxhbmdbJ2NhbF9hcHJpbCddID0gJ0FwcmlsaWUnOwokbGFuZ1snY2FsX21heSddID0gJ01haSc7CiRsYW5nWydjYWxfanVuZSddID0gJ0l1bmknOwokbGFuZ1snY2FsX2p1bHknXSA9ICdJdWxpZSc7CiRsYW5nWydjYWxfYXVndXN0J10gPSAnQXVndXN0JzsKJGxhbmdbJ2NhbF9zZXB0ZW1iZXInXSA9ICdTZXB0ZW1icmllJzsKJGxhbmdbJ2NhbF9vY3RvYmVyJ10gPSAnT2N0b21icmllJzsKJGxhbmdbJ2NhbF9ub3ZlbWJlciddID0gJ05vaWVtYnJpZSc7CiRsYW5nWydjYWxfZGVjZW1iZXInXSA9ICdEZWNlbWJyaWUnOwokbGFuZ1snY2FsX2FkZCddID0gJ0FkYXVnYSc7CiRsYW5nWydjYWxfdXBkYXRlJ10gPSAnQWN0dWFsaXplYXphJzsKJGxhbmdbJ2NhbF9ldmVudCddID0gJ0V2ZW5pbWVudCc7CiRsYW5nWydjYWxfZGF0ZSddID0gJ0RhdGEnOwokbGFuZ1snY2FsX3N1bW1hcnknXSA9ICdTdW1hcic7CiRsYW5nWydjYWxfZGV0YWlscyddID0gJ0RldGFsaWknOwokbGFuZ1snY2FsX21vcmUnXSA9ICdtYWkgbXVsdCA+Pic7CiRsYW5nWydjYWxfcmV0dXJuJ10gPSAnUmV2ZW5pcmUnOwokbGFuZ1snY2FsX3RvJ10gPSAnbGEnOwokbGFuZ1snY2FsX3Bhc3RfZXZlbnRzJ10gPSAnRXZlbmltZW50ZSB0cmVjdXRlJzsKJGxhbmdbJ2NhbF91cGNvbWluZ19ldmVudHMnXSA9ICdFdmVuaW1lbnRlIG5vaSc7CiRsYW5nWydjYWxfYW55X2NhdGVnb3J5J10gPSAnT3JpY2UgY2F0ZWdvcmllJzsKJGxhbmdbJ2NhbF9zaG93X29ubHlfZXZlbnRzX2luJ10gPSAnQWZpc2VhemEgZG9hciBldmVuaW1lbnRlbGUgaW4nOwokbGFuZ1snY2FsX2ZpbHRlcl9ieSddID0gJ0ZpbHRyZWF6YSBkdXBhJzsKJGxhbmdbJ2NhbF9nbyddID0gJ0R1dGUnOwokbGFuZ1snY2FsX3RpdGxlJ10gPSAnVGl0bHUnOwokbGFuZ1snY2FsX2Zyb21kYXRlJ10gPSAnRGluIGRhdGEnOwokbGFuZ1snY2FsX3RvZGF0ZSddID0gJ2xhIGRhdGEnOwokbGFuZ1snY2FsX3VwZGF0ZV9jYXRlZ29yaWVzJ10gPSAnQWN0dWFsaXplYXphIGNhdGVnb3JpaSc7CiRsYW5nWydjYWxfbGFuZ3VhZ2UnXSA9ICdMaW1iYSc7CiRsYW5nWydjYWxfdXBkYXRlc2V0dGluZ3MnXSA9ICdBY3R1YWxpemVhemEgc2V0YXJpJzsKJGxhbmdbJ2NhbF91c2VfdHdlbHZlX2hvdXJfY2xvY2snXSA9ICdGb2xvc2VzdGUgZm9ybWF0dWwgY3UgZG9pc3ByZXplY2Ugb3JlIGxhIGxpc3RhIGRyb3AtZG93biBhIG9yZWxvcj8nOwokbGFuZ1snY2FsX2RlZmF1bHRfY2F0ZWdvcnknXSA9ICdDYXRlZ29yaWEgaW1wbGljaXRhJzsKJGxhbmdbJ2NhbF91cGRhdGVfZmllbGRzJ10gPSAnQ2FtcHVyaSBhY3R1YWxpemFyZSc7CiRsYW5nWydmb3JjZV9jYXRlZ29yeSddID0gJ0ZvcnRlYXphIGNlbCBwdXRpbiBvIGNhdGVnb3JpZSc7CiRsYW5nWydzaG93cGFzdHllYXJzJ10gPSAnQ2UgbnVtYXIgZGUgYW5pIGRpbiB0cmVjdXQgZXN0ZSBwZXJtaXMnOwokbGFuZ1snc2hvd2Z1dHVyZXllYXJzJ10gPSAnQ2UgbnVtYXIgZGUgYW5pIGRpbiB2aWl0b3IgZXN0ZSBwZXJtaXMnOwokbGFuZ1snaGlkZXN1bW1hcnknXSA9ICdBciB0cmVidWkgYXNjdW5zIGNhbXB1bCBzdW1hcic7CiRsYW5nWydoaWRlY29udGVudCddID0gJ0FyIHRyZWJ1aSBhc2N1bnMgY2FtcHVsIGNvbnRpbnV0JzsKJGxhbmdbJ2NhdGVnb3J5X3JlbWluZGVyJ10gPSAnVmEgcm9nIHNlbGVjdGF0aSB1bmEgc2F1IG1haSBtdWx0ZSBjYXRlZ29yaWkgcGVudHJ1IGFjZXN0IGV2ZW5pbWVudCc7CiRsYW5nWydtb2R1bGVfZXhhbXBsZV9zdHlsZXNoZWV0J10gPSAnRXhlbXBsdSBDU1MgY2FsZW5kYXJpc3RpYyc7CiRsYW5nWydlcnJvcl9wZXJtaXNzaW9uJ10gPSAnQXZldGkgbmV2b2llIGRlIHBlcm1pc2l1bmVhIGNvcmVzcHVuemF0b2FyZSAoJXMpIHBlbnRydSBhIGFjY2VzYSBhY2Vhc3RhIGZ1bmN0aW9uYWxpdGF0ZSc7CiRsYW5nWydpbnN0YWxsX3Bvc3RtZXNzYWdlJ10gPSAnQXNpZ3VyYXRpLXZhIGNhIGF0aSBzZXRhdCBwZXJtaXNpdW5lYSAmcXVvdDtNb2RpZnkgQ2FsZW5kYXImcXVvdDsgcGVudHJ1IHV0aWxpemF0b3JpaSBjYXJlIHZvciBhZG1pbmlzdHJhIGV2ZW5pbWVudGVsZSBjYWxlbmRhcmlzdGljZS4nOwokbGFuZ1snZGVsZXRldGFnZ2VkJ10gPSAnU3RlcmdlIGV2ZW5pbWVudGVsZSBtYXJjYXRlJzsKJGxhbmdbJ2NvbmZpcm1kZWxldGV0YWdnZWQnXSA9ICdTdW50ZXRpIHNpZ3VyKGEpIGNhIGFjZXN0ZSBldmVuaW1lbnRlIGFyIHRyZWJ1aSBzdGVyc2U/JzsKJGxhbmdbJ3RhZ2dlZGRlbGV0ZWQnXSA9ICdFdmVuaW1lbnRlbGUgbWFyY2F0ZSBhdSBmb3N0IHN0ZXJzZSc7CiRsYW5nWyd0ZW1wbGF0ZXMnXSA9ICdTYWJsb2FuZSc7CiRsYW5nWyd0ZW1wbGF0ZV9oZWxwJ10gPSAnQWp1dG9yIHNhYmxvbic7CiRsYW5nWydmaWxlX3RlbXBsYXRlcyddID0gJ0Zpc2llciBzYWJsb2FuZSc7CiRsYW5nWydhZGR0ZW1wbGF0ZSddID0gJ0FkYXVnYSBTYWJsb24nOwokbGFuZ1sndGVtcGxhdGUnXSA9ICdTYWJsb24nOwokbGFuZ1sndGVtcGxhdGVuYW1ldGV4dCddID0gJ051bWUgc2FibG9uJzsKJGxhbmdbJ2VkaXR0ZW1wbGF0ZSddID0gJ0VkaXRlYXphIHNhYmxvbic7CiRsYW5nWydkZWxldGV0ZW1wbGF0ZSddID0gJ1N0ZXJnZSBzYWJsb24nOwokbGFuZ1snbmV3dGVtcGxhdGUnXSA9ICdOdW1lIHNhYmxvbiBub3UnOwokbGFuZ1sndGVtcGxhdGVuYW1lZXhpc3RzJ10gPSAnRXJvYXJlOiBVbiBzYWJsb24gY3UgYWNlc3QgbnVtZSBleGlzdGEgZGVqYS4gVmEgcm9nIHNhIGFsZWdldGkgdW4gbnVtZSBkaWZlcml0Lic7CiRsYW5nWyd0ZW1wbGF0ZWltcG9ydGVkJ10gPSAnU2FibG9udWwgYSBmb3N0IGltcG9ydGF0IGN1IHN1Y2NlcyBpbiBiYXphIGRlIGRhdGUgc2kgYWN1bSBlc3RlIGdhdGEgaW5zdGFsYXQgcGVudHJ1IGEgcHV0ZWEgZmkgZm9sb3NpdC4nOwokbGFuZ1sndmlld19kZWZhdWx0X3N0eWxlc2hlZXQnXSA9ICdWaXp1YWxpemVhemEgZm9pYSBkZSBzdGlsIGltcGxpY2l0YSc7CiRsYW5nWydmaWxlbmFtZSddID0gJ051bWUgZmlzaWVyJzsKJGxhbmdbJ2ltcG9ydHRlbXBsYXRlJ10gPSAnSW1wb3J0YSBzYWJsb24nOwokbGFuZ1sndGVtcGxhdGVfZGVsZXRlZCddID0gJ0FjZXN0IHNhYmxvbiBhIGZvc3Qgc3RlcnMgY3Ugc3VjY2VzIGRpbiBiYXphIGRlIGRhdGUuJzsKJGxhbmdbJ3VwZGF0ZXRlbXBsYXRlc3VjY2VzcyddID0gJ1NhYmxvbnVsIGEgZm9zdCBhY3R1YWxpemF0IGN1IHN1Y2Nlcyc7CiRsYW5nWyd1cGRhdGV0ZW1wbGF0ZWZhaWx1cmUnXSA9ICdBIGludGVydmVuaXQgbyBlcm9hcmUgbGEgYWN0dWFsaXphcmVhIHNhYmxvbnVsdWknOwokbGFuZ1snc2V0dGluZ3NzYXZlZCddID0gJ1NldGFyaWxlIGF1IGZvc3Qgc2FsdmF0ZSBjdSBzdWNjZXMnOwokbGFuZ1snY2F0ZWdvcnlkZWxldGVkJ10gPSAnQ2F0ZWdvcmlhIGEgZm9zdCBzdGVhcnNhJzsKJGxhbmdbJ2NhdGVnb3J5dXBkYXRlZCddID0gJ0NhdGVnb3JpYSBhIGZvc3QgYWN0dWFsaXphdGEnOwokbGFuZ1snY2F0ZWdvcnlhZGRlZCddID0gJ0NhdGVnb3JpYSBhIGZvc3QgYWRhdWdhdGEnOwokbGFuZ1snZXZlbnRkZWxldGVkJ10gPSAnRXZlbmltZW50dWwgYSBmb3N0IHN0ZXJzJzsKJGxhbmdbJ2V2ZW50dXBkYXRlZCddID0gJ0V2ZW5pbWVudHVsIGEgZm9zdCBhY3R1YWxpemF0JzsKJGxhbmdbJ2RlZmF1bHRfcGFnZV9lcnJvciddID0gJ0Vyb2FyZTogVHJlYnVpZSBzYSBzZXRhdGkgbyBwYWdpbmEgaW1wbGljaXRhIHBlbnRydSBhIHB1dGVhIGZvbG9zaSBjYWxlbmRhcnVsIGN1IFVSTC11cmkgZHJhZ3V0ZSBhY3RpdmF0ZS4gVmEgcm9nIHNhIG1lcmdldGkgbGEgc2V0YXJpbGUgY2FsZW5kYXJ1bHVpIHNpIHNhIGFsZWdldGkgdW5hLic7CiRsYW5nWyd0aW1lX2F0J10gPSAnbGEnOwokbGFuZ1sndHlwZSddID0gJ1RpcCc7CiRsYW5nWyduYW1lJ10gPSAnTnVtZSc7CiRsYW5nWydvcmRlciddID0gJ09yZGluZSc7CiRsYW5nWydmaWVsZGFkZGVkJ10gPSAnQ2FtcCBhZGF1Z2F0IGN1IHN1Y2Nlcyc7CiRsYW5nWydmaWVsZGRlbGV0ZWQnXSA9ICdDYW1wIHN0ZXJzJzsKJGxhbmdbJ2ZpZWxkcyddID0gJ0NhbXB1cmkgcGFydGljdWxhcml6YXRlJzsKJGxhbmdbJ3RleHRmaWVsZCddID0gJ1RleHQgY2FtcCc7CiRsYW5nWyd1cGxvYWRmaWVsZCddID0gJ0NhbXAgaW5jYXJjYXJlIGZpc2llcic7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJzxwPkNhbGVuZGFyIGVzdGUgdW4gbW9kdWwgcGVudHJ1IGFmaXNhcmVhIGV2ZW5pbWVudGVsb3IgaW4gcGFnaW5hIGR1bW5lYXZhc3RyYS4gRHVwYSBpbnN0YWxhcmVhIG1vZHVsdWx1aSwgbyBwYWdpbmEgZGUgYWRtaW5pc3RyYXJlIGEgY2FsZW5kYXJ1bHVpIGVzdGUgYWRhdWdhdGEgbGEgbWVuaXVsIGNvbnRpbnV0IGNhcmUgdmEgcGVybWl0ZSBnZXN0aW9uYXJlYSBldmVuaW1lbnRlbG9yLjwvcD4nOwokbGFuZ1snZGVmYXVsdGNhbGVuZGFycGFnZSddID0gJ1BhZ2luYSBpbXBsaWNpdGEgY2FyZSBjb250aW5lIGNhbGVuZGFydWwuIEFjZWFzdGEgcGFnaW5hIHRyZWJ1aWUgc2EgY29udGluYSBvIGV0aWNoZXRhIFNtYXJ0eSBjYXJlIGFwZWxlYXphIGNhbGVuZGFydWwuIEVzdGUgbmVjZXNhcmEgZGFjYSBmb2xvc2l0aSBVUkwtdXJpIGRyYWd1dGUuJzsKJGxhbmdbJ3VwbG9hZGRpcmVjdG9yeSddID0gJ0RpcmVjdG9ydWwgdW5kZSBmaXNpZXJlbGUgaW5jYXJjYXRlIGFyIHRyZWJ1aSBzYSBmaWUgcGxhc2F0ZSc7CiRsYW5nWyd1cGxvYWRmaWxldHlwZXMnXSA9ICdUaXB1cmkgZGUgZmlzaWVyZSBwZXJtaXNlJzsKJGxhbmdbJ3VwbG9hZHVuaXF1ZSddID0gJ0FzaWd1cmEgbnVtZSBkZSBmaXNpZXJlIHVuaWNlJzsKJGxhbmdbJ3RodW1iX3dpZHRoJ10gPSAnVGh1bWJuYWlsIFdpZHRoJzsKJGxhbmdbJ3RodW1iX2hlaWdodCddID0gJ1RodW1ibmFpbCBIZWlnaHQnOwokbGFuZ1snbGFyZ2Vfd2lkdGgnXSA9ICdMYXJnZSBJbWFnZSBXaWR0aCc7CiRsYW5nWydsYXJnZV9oZWlnaHQnXSA9ICdMYXJnZSBJbWFnZSBIZWlnaHQnOwokbGFuZ1snY2FsX3JlY3VyX3BlcmlvZCddID0gJ1JlY3Vycyc7CiRsYW5nWydjYWxfcmVjdXJfdW50aWwnXSA9ICdSZWN1cnMgVW50aWwnOwokbGFuZ1snaGVscF90ZW1wbGF0ZSddID0gJzxwPjxiPlRpcGFyZXN0ZSBudW1lbGUgYXV0b3J1bHVpOjwvYj48L3A+DQo8Y29kZT5BdXRvcjogeyRldmVudC5hdXRob3JuYW1lfTwvY29kZT4NCic7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ru_RU.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2RmbHRfdXJscHJlZml4J10gPSAnRGVmYXVsdCBVUkwgcHJlZml4IGZvciBQcmV0dHkgVVJMUyc7CiRsYW5nWydkZmx0X2FsbGRheWV2ZW50J10gPSAnTmV3IGV2ZW50cyBhcmUgIkFsbCBEYXkiIGV2ZW50cyBieSBkZWZhdWx0JzsKJGxhbmdbJ2RmbHRfc3RhcnR0aW1lJ10gPSAnRGVmYXVsdCBzdGFydCB0aW1lIGZvciBuZXcgZXZlbnRzJzsKJGxhbmdbJ2luZm9fZGZsdF9zdGFydHRpbWUnXSA9ICc8ZW0+KGFwcGxpZXMgb25seSBpZiBuZXcgZXZlbnRzIGFyZSBub3QgIkFsbCBEYXkiIGV2ZW50cy4pPC9lbT4nOwokbGFuZ1snc2VhcmNoX3R5cGUnXSA9ICdTZWFyY2ggVHlwZSc7CiRsYW5nWydzZWFyY2hfYW55J10gPSAnUmV0dXJuIHJlc3VsdHMgbWF0Y2hpbmcgYW55IHdvcmQnOwokbGFuZ1snc2VhcmNoX2FsbCddID0gJ1JldHVybiByZXN1bHRzIG1hdGNoaW5nIGFsbCB3b3Jkcyc7CiRsYW5nWydpbmZvX2N1c3RvbWZpZWxkcyddID0gJzxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+Tm90ZTo8L3NwYW4+ICJGaWxlIFVwbG9hZCBGaWVsZHMiIGFyZSBub3Qgc2VhcmNoYWJsZS4nOwokbGFuZ1snc2VhcmNoYWJsZSddID0gJ1NlYXJjaGFibGUnOwokbGFuZ1snaGVscF9wYXJhbV9lZGl0ZXZlbnR0ZW1wbGF0ZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgbXlldmVudHMgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG5vbiBkZWZhdWx0IGVkaXQgZXZlbnQgdGVtcGxhdGUgdG8gdXNlIHdoZW4gYSB1c2VyIGNyZWF0ZXMgb3IgZWRpdHMgYW4gZXZlbnQnOwokbGFuZ1snaGVscF9wYXJhbV9lZGl0cGFnZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgbXlldmVudHMgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGRpZmZlcmVudCBwYWdlIGZvciB0aGUgZWRpdCBmb3JtLic7CiRsYW5nWydoZWxwX3BhcmFtX215ZXZlbnRzdGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIG15ZXZlbnRzIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCB0ZW1wbGF0ZSB0byB1c2UnOwokbGFuZ1snY2FsX2VkaXRfZXZlbnQnXSA9ICdFZGl0IENhbGVuZGFyIEV2ZW50JzsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdEYXRhYmFzZSBFcnJvcic7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOwokbGFuZ1snaW5mb19zeXNkZmx0X2VkaXRldmVudF90ZW1wbGF0ZSddID0gJ1N5c3RlbSBEZWZhdWx0ICJFZGl0IEV2ZW50IiBUZW1wbGF0ZSc7CiRsYW5nWydpbmZvX3N5c2RmbHRfbXlldmVudHNfdGVtcGxhdGUnXSA9ICdTeXN0ZW0gRGVmYXVsdCAiTXkgRXZlbnRzIiBUZW1wbGF0ZSc7CiRsYW5nWydwcm9tcHRfZmVlZGl0X2dyb3VwJ10gPSAnTWVtYmVycyBvZiB0aGlzIEZFVSBncm91cCBjYW4gYWRkIGV2ZW50cyc7CiRsYW5nWydwcm9tcHRfZmVlZGl0X3BhZ2UnXSA9ICdEZWZhdWx0IHBhZ2UgZm9yIHRoZSBmcm9udGVuZCBlZGl0IGZvcm0uJzsKJGxhbmdbJ25vbmUnXSA9ICdOb25lJzsKJGxhbmdbJ293bmVyJ10gPSAnT3duZXInOwokbGFuZ1snY2FsX2VkaXRldmVudF90ZW1wbGF0ZXMnXSA9ICdFZGl0IEV2ZW50IEZvcm0gVGVtcGxhdGVzJzsKJGxhbmdbJ2luZm9fZWRpdGV2ZW50X3RlbXBsYXRlX3RhYiddID0gJ1RoZSBsaXN0IG9mIHRlbXBsYXRlcyB0aGF0IGFyZSBhdmFpbGFibGUgZm9yIHRoZSBlZGl0IGV2ZW50IGZvcm0nOwokbGFuZ1snZWRpdGV2ZW50dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IGFuIEVkaXQgRXZlbnQgRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWydjYWxfbXlldmVudHNfdGVtcGxhdGVzJ10gPSAnTXkgRXZlbnRzIExpc3QgVGVtcGxhdGVzJzsKJGxhbmdbJ2luZm9fbXlldmVudHNfdGVtcGxhdGVfdGFiJ10gPSAnVGhlIGxpc3Qgb2YgdGVtcGxhdGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byBkaXNwbGF5IGEgbGlzdCBvZiB1c2VyIGV2ZW50cyc7CiRsYW5nWydteWV2ZW50c3RlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBhICJNeSBFdmVudHMiIHJlcG9ydCB0ZW1wbGF0ZSc7CiRsYW5nWydhcmV5b3VzdXJlX3JlbW92ZWNvbmZsaWN0aW5nJ10gPSAnVGhpcyBhY3Rpb24gd2lsbCByZW1vdmUgYW55IGV2ZW50cyB0aGF0IGNvbmZsaWN0IHdpdGggbm9uLW92ZXJsYXBwYWJsZSBldmVudHMuICBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZG8gdGhpcz8nOwokbGFuZ1snZmlsdGVyX2NvbmZsaWN0aW5nJ10gPSAnRmlsdGVyIENvbmZsaWN0aW5nIEV2ZW50cyc7CiRsYW5nWydvdmVybGFwX2FjdGlvbl9yZW1vdmUnXSA9ICdTaWxlbnRseSByZW1vdmUgY29uZmxpY3RpbmcgZXZlbnRzJzsKJGxhbmdbJ292ZXJsYXBfYWN0aW9uX2Vycm9yJ10gPSAnRGlzcGxheSBhbiBlcnJvcic7CiRsYW5nWydwcm9tcHRfb3ZlcmxhcF9hY3Rpb24nXSA9ICdXaGF0IHNob3VsZCBoYXBwZW4gd2hlbiBhIGNvbmZsaWN0IGlzIGRldGVjdGVkIGR1cmluZyBlZGl0aW5nIG9yIGFkZGluZyBvZiBhbiBldmVudCc7CiRsYW5nWydlcnJvcl9ldmVudF9jb25mbGljdCddID0gJ1RoZSBldmVudCB2YWx1ZXMgc3BlY2lmaWVkIG92ZXJsYXAgd2l0aCBhbiBleGlzdGluZyBldmVudCB0aGF0IGRvZXMgbm90IGFsbG93IGNvbmZsaWN0cyc7CiRsYW5nWydjYWxfaW5mb19vdmVybGFwJ10gPSAnQXBwbGllcyBvbmx5IHRvIGV2ZW50cyB3aXRoIGFuIGVuZCB0aW1lIChvciBhbGwgZGF5IGV2ZW50cyknOwokbGFuZ1snY2FsX292ZXJsYXAnXSA9ICdBbGxvdyBuZXcgZXZlbnRzIHRvIG92ZXJsYXAgd2l0aCB0aGlzIG9uZSc7CiRsYW5nWydwcm9tcHRfb3ZlcmxhcF9wb2xpY3knXSA9ICdFdmVudCBPdmVybGFwIFBvbGljeSc7CiRsYW5nWydwb2xpY3lfYWxsJ10gPSAnQWxsIEV2ZW50cyBjYW4gb3ZlcmxhcCc7CiRsYW5nWydwb2xpY3lfbm9uZSddID0gJ05vIEV2ZW50cyBjYW4gb3ZlcmxhcCc7CiRsYW5nWydwb2xpY3lfaW5kaXZpZHVhbCddID0gJ0RlY2lkZWQgb24gYW4gZXZlbnQgYnkgZXZlbnQgYmFzaXMnOwokbGFuZ1snbGJsX2JhY2snXSA9ICdCYWNrJzsKJGxhbmdbJ2xibF90ZW1wbGF0ZXMnXSA9ICdUZW1wbGF0ZXMnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZXh0IEFyZWEnOwokbGFuZ1snZXJyb3JfY2FsZW5kYXJfaW5jb21wYXRpYmxlJ10gPSAnV2UgaGF2ZSBkZXRlY3RlZCB0aGF0IHRoZSBDYWxlbmRhciBtb2R1bGUgaXMgYWxzbyBpbnN0YWxsZWQuLiAgVGhpcyBtb2R1bGUgaXMgbm90IGNvbXBhdGlibGUgd2l0aCB0aGUgQ2FsZW5kYXIgbW9kdWxlIGFuZCBjYW5ub3QgY28tZXhpc3Qgd2l0aCBpdCBvbiB0aGUgc2FtZSBpbnN0YWxsLiAgUGxlYXNlIHVuaW5zdGFsbCB0aGUgQ2FsZW5kYXIgbW9kdWxlJzsKJGxhbmdbJ2Vycm9yX2V2ZW50X25vdF9mb3VuZCddID0gJ0VpdGhlciBldmVudF9pZCBpcyBub3QgaW4gdGhlIGRhdGFiYXNlLCBvciB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIGV2ZW50IHdpdGggdGhpcyBpZCEgKCVkKSc7CiRsYW5nWydmaXJzdF9wYWdlJ10gPSAnPDwnOwokbGFuZ1sncHJldl9wYWdlJ10gPSAnPCc7CiRsYW5nWyduZXh0X3BhZ2UnXSA9ICc+JzsKJGxhbmdbJ2xhc3RfcGFnZSddID0gJz4+JzsKJGxhbmdbJ3BhZ2Vfb2YnXSA9ICdQYWdlICVkIG9mICVkJzsKJGxhbmdbJ3NlYXJjaF9yZXN1bHRzJ10gPSAnQ2FsZW5kYXIgU2VhcmNoIFJlc3VsdHMnOwokbGFuZ1snc2VhcmNoX3dvcmRzJ10gPSAnU2VhcmNoIFdvcmRzJzsKJGxhbmdbJ25vX3Jlc3VsdHNfZm91bmQnXSA9ICdObyByZXN1bHRzIGZvdW5kIG1hdGNoaW5nIHRoZSBxdWVyeSBzcGVjaWZpZWQnOwokbGFuZ1snZnJlcXVlbmN5J10gPSAnRnJlcXVlbmN5JzsKJGxhbmdbJ3NwZWNpZmllZF9kYXRlJ10gPSAnVXNlIHRoZSBzcGVjaWZpZWQgZGF0ZSc7CiRsYW5nWydmaXJzdF9zdW5kYXknXSA9ICdGaXJzdCBTdW5kYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2ZpcnN0X21vbmRheSddID0gJ0ZpcnN0IE1vbmRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snZmlyc3RfdHVlc2RheSddID0gJ0ZpcnN0IFR1ZXNkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2ZpcnN0X3dlZG5lc2RheSddID0gJ0ZpcnN0IFdlZG5lc2RheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snZmlyc3RfdGh1cnNkYXknXSA9ICdGaXJzdCBUaHVyc2RheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snZmlyc3RfZnJpZGF5J10gPSAnRmlyc3QgRnJpZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydmaXJzdF9zYXR1cmRheSddID0gJ0ZpcnN0IFNhdHVyZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydzZWNvbmRfc3VuZGF5J10gPSAnU2Vjb25kIFN1bmRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snc2Vjb25kX21vbmRheSddID0gJ1NlY29uZCBNb25kYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ3NlY29uZF90dWVzZGF5J10gPSAnU2Vjb25kIFR1ZXNkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ3NlY29uZF93ZWRuZXNkYXknXSA9ICdTZWNvbmQgV2VkbmVzZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydzZWNvbmRfdGh1cnNkYXknXSA9ICdTZWNvbmQgVGh1cnNkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ3NlY29uZF9mcmlkYXknXSA9ICdTZWNvbmQgRnJpZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydzZWNvbmRfc2F0dXJkYXknXSA9ICdTZWNvbmQgU2F0dXJkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ3RoaXJkX3N1bmRheSddID0gJ1RoaXJkIFN1bmRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1sndGhpcmRfbW9uZGF5J10gPSAnVGhpcmQgTW9uZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWyd0aGlyZF90dWVzZGF5J10gPSAnVGhpcmQgVHVlc2RheSBvZiB0aGUgTW9udGgnOwokbGFuZ1sndGhpcmRfd2VkbmVzZGF5J10gPSAnVGhpcmQgV2VkbmVzZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWyd0aGlyZF90aHVyc2RheSddID0gJ1RoaXJkIFRodXJzZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWyd0aGlyZF9mcmlkYXknXSA9ICdUaGlyZCBGcmlkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ3RoaXJkX3NhdHVyZGF5J10gPSAnVGhpcmQgU2F0dXJkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2ZvdXJ0aF9zdW5kYXknXSA9ICdGb3VydGggU3VuZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydmb3VydGhfbW9uZGF5J10gPSAnRm91cnRoIE1vbmRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snZm91cnRoX3R1ZXNkYXknXSA9ICdGb3VydGggVHVlc2RheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snZm91cnRoX3dlZG5lc2RheSddID0gJ0ZvdXJ0aCBXZWRuZXNkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2ZvdXJ0aF90aHVyc2RheSddID0gJ0ZvdXJ0aCBUaHVyc2RheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snZm91cnRoX2ZyaWRheSddID0gJ0ZvdXJ0aCBGcmlkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2ZvdXJ0aF9zYXR1cmRheSddID0gJ0ZvdXJ0aCBTYXR1cmRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snbGFzdF9zdW5kYXknXSA9ICdMYXN0IFN1bmRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snbGFzdF9tb25kYXknXSA9ICdMYXN0IE1vbmRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snbGFzdF90dWVzZGF5J10gPSAnTGFzdCBUdWVzZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydsYXN0X3dlZG5lc2RheSddID0gJ0xhc3QgV2VkbmVzZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydsYXN0X3RodXJzZGF5J10gPSAnTGFzdCBUaHVyc2RheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snbGFzdF9mcmlkYXknXSA9ICdMYXN0IEZyaWRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snbGFzdF9zYXR1cmRheSddID0gJ0xhc3QgU2F0dXJkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfcmVjdXJfbW9udGhseV9mcmVxJ10gPSAnSW52YWxpZCBmcmVxdWVuY3kuLi4uIHlvdSBjYW5ub3Qgc3BlY2lmeSBib3RoIHRoZSBzcGVjaWZpZWQgZGF0ZSBBTkQgb3RoZXIgdmFsdWVzJzsKJGxhbmdbJ3NlYXJjaHJlc3VsdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBhIFNlYXJjaCBSZXN1bHQgVGVtcGxhdGUnOwokbGFuZ1snaW5mb19zZWFyY2hyZXN1bHRfdGVtcGxhdGVfdGFiJ10gPSAnVGhlIGxpc3Qgb2YgdGVtcGxhdGVzIHRoYXQgYXJlIGF2YWlsYWJsZSBmb3IgdGhlIHNlYXJjaCByZXN1bHRzIGRpc3BsYXknOwokbGFuZ1snaW5mb19zeXNkZmx0X3NlYXJjaHJlc3VsdF90ZW1wbGF0ZSddID0gJ1N5c3RlbSBEZWZhdWx0IFNlYXJjaCBSZXN1bHQgVGVtcGxhdGUnOwokbGFuZ1snY2FsX3NlYXJjaF9yZXN1bHRfdGVtcGxhdGVzJ10gPSAnU2VhcmNoIFJlc3VsdCBUZW1wbGF0ZXMnOwokbGFuZ1snZXJyb3JfcXVlcnlfZmFpbGVkJ10gPSAnRGF0YWJhc2UgUXVlcnkgRmFpbGVkJzsKJGxhbmdbJ2Vycm9yX3NlYXJjaF9pbnZhbGlkX2RhdGVzJ10gPSAnSW52YWxpZCBTZWFyY2ggRGF0ZXMgU3BlY2lmaWVkJzsKJGxhbmdbJ3RleHQnXSA9ICdUZXh0JzsKJGxhbmdbJ3NlYXJjaCddID0gJ1NlYXJjaCc7CiRsYW5nWydjYXRlZ29yeSddID0gJ0NhdGVnb3J5JzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9zZWFyY2hfdGVtcGxhdGUnXSA9ICdTeXN0ZW0gRGVmYXVsdCBTZWFyY2ggRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgYSBTZWFyY2ggRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWydpbmZvX3NlYXJjaF90ZW1wbGF0ZV90YWInXSA9ICdUaGUgbGlzdCBvZiB0ZW1wbGF0ZXMgdGhhdCBhcmUgYXZhaWxhYmxlIGZvciB0aGUgc2VhcmNoIGZvcm0nOwokbGFuZ1snY2FsX3NlYXJjaF9mb3JtX3RlbXBsYXRlcyddID0gJ1NlYXJjaCBGb3JtIFRlbXBsYXRlcyc7CiRsYW5nWydtYXgnXSA9ICdtYXgnOwokbGFuZ1sndGltZXMnXSA9ICd0aW1lcyc7CiRsYW5nWydvbiddID0gJ29uJzsKJGxhbmdbJ2FyZXlvdXN1cmVfdW5pbnN0YWxsJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRvIHRoaXM/ICBDb250aW51aW5nIHdpbGwgcGVybWFuZW5lbnRseSBlcmFzZSBhbGwgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhpcyBtb2R1bGUuJzsKJGxhbmdbJ3Bvc3RfdW5pbnN0YWxsJ10gPSAnVGhlIENhbGVuZGFyIG1vZHVsZSBoYXMgYmVlbiB1bmluc3RhbGxlZCBhbmQgYWxsIGV2ZW50IGFuZCB0ZW1wbGF0ZSBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVtb3ZlZCc7CiRsYW5nWydmaWVsZHVwZGF0ZWQnXSA9ICdGaWVsZCBVcGRhdGVkJzsKJGxhbmdbJ2V2ZXJ5J10gPSAnRXZlcnknOwokbGFuZ1snb3InXSA9ICdvcic7CiRsYW5nWyd1cGRhdGVfY2hpbGRyZW4nXSA9ICdVcGRhdGUgQ2hpbGQgRXZlbnRzJzsKJGxhbmdbJ2Vycm9yX25vY2F0ZWdvcnknXSA9ICdZb3UgbXVzdCBzZWxlY3QgYXQgbGVhc3Qgb25lIGNhdGVnb3J5JzsKJGxhbmdbJ2Vycm9yX25vdGhpbmdzZWxlY3RlZCddID0gJ05vdGhpbmcgaGFzIGJlZW4gc2VsZWN0ZWQgdG8gZGVsZXRlJzsKJGxhbmdbJ2Vycm9yX2V2ZW50b3ZlcmxhcCddID0gJ1RoZSByZWN1cmluZyBldmVudCBwYXJhbWV0ZXJzIHlvdSBoYXZlIHNwZWNpZmllZCB3b3VsZCByZXN1bHQgaW4gb3ZlcmxhcHBpbmcgZXZlbnRzLic7CiRsYW5nWydyZWN1cnMnXSA9ICdSZWN1cnMnOwokbGFuZ1snZXJyb3JfaW52YWxpZF9kYXRlcyddID0gJ09uZSBvciBtb3JlIG9mIHRoZSBkYXRlIHZhbHVlcyBlbnRlcmVkIHdlcmUgaW52YWxpZCc7CiRsYW5nWydzdW5kYXknXSA9ICdTdW5kYXknOwokbGFuZ1snbW9uZGF5J10gPSAnTW9uZGF5JzsKJGxhbmdbJ3R1ZXNkYXknXSA9ICdUdWVzZGF5JzsKJGxhbmdbJ3dlZG5lc2RheSddID0gJ1dlZG5lc2RheSc7CiRsYW5nWyd0aHVyc2RheSddID0gJ1RodXJzZGF5JzsKJGxhbmdbJ2ZyaWRheSddID0gJ0ZyaWRheSc7CiRsYW5nWydzYXR1cmRheSddID0gJ1NhdHVyZGF5JzsKJGxhbmdbJ2FiYnJfc3VuZGF5J10gPSAnU3UnOwokbGFuZ1snYWJicl9tb25kYXknXSA9ICdNbyc7CiRsYW5nWydhYmJyX3R1ZXNkYXknXSA9ICdUdSc7CiRsYW5nWydhYmJyX3dlZG5lc2RheSddID0gJ1dlJzsKJGxhbmdbJ2FiYnJfdGh1cnNkYXknXSA9ICdUaCc7CiRsYW5nWydhYmJyX2ZyaWRheSddID0gJ0ZyJzsKJGxhbmdbJ2FiYnJfc2F0dXJkYXknXSA9ICdTYSc7CiRsYW5nWyd3ZWVrZGF5cyddID0gJ1dlZWtkYXlzJzsKJGxhbmdbJ3BsdXJhbF9kYWlseSddID0gJ0RheXMnOwokbGFuZ1sncGx1cmFsX3dlZWtseSddID0gJ1dlZWtzJzsKJGxhbmdbJ3BsdXJhbF9tb250aGx5J10gPSAnTW9udGhzJzsKJGxhbmdbJ3BsdXJhbF95ZWFybHknXSA9ICdZZWFycyc7CiRsYW5nWydubyddID0gJ05vJzsKJGxhbmdbJ2RhaWx5J10gPSAnRGFpbHknOwokbGFuZ1snd2Vla2x5J10gPSAnV2Vla2x5JzsKJGxhbmdbJ21vbnRobHknXSA9ICdNb250aGx5JzsKJGxhbmdbJ3llYXJseSddID0gJ1llYXJseSc7CiRsYW5nWydpbnRlcnZhbCddID0gJ1JlcGVhdCBldmVyeSc7CiRsYW5nWydjYWxfcmVjdXJfZGV0YWlscyddID0gJ1JlY3VycmluZyBFdmVudCBEZXRhaWxzJzsKJGxhbmdbJ3VubGltaXRlZCddID0gJ1VubGltaXRlZCc7CiRsYW5nWydtYXhfcmVjdXJfZXZlbnRzJ10gPSAnTWF4aW11bSBudW1iZXIgb2YgY2hpbGQgZXZlbnRzJzsKJGxhbmdbJ3VzZV90b19kYXRlJ10gPSAnU3BlY2lmeSBhIGRpZmZlcmVudCBlbmQgZGF0ZT8nOwokbGFuZ1snY2FuY2VsJ10gPSAnQ2FuY2VsJzsKJGxhbmdbJ3Nob3dfY2hpbGRfZXZlbnRzJ10gPSAnU2hvdyBDaGlsZCBFdmVudHMgPGVtPihtYXkgcmVzdWx0IGluIHZlcnkgbG9uZyBkaXNwbGF5KTwvZW0+JzsKJGxhbmdbJ24vYSddID0gJ24vYSc7CiRsYW5nWydyZWN1cnNfdW50aWwnXSA9ICdSZWN1ciBVbnRpbCc7CiRsYW5nWydwYXJlbnQnXSA9ICdQYXJlbnQnOwokbGFuZ1sncmVjdXJfcGVyaW9kJ10gPSAnUmVjdXIgUGVyaW9kJzsKJGxhbmdbJ2ZpbHRlciddID0gJ0ZpbHRlcic7CiRsYW5nWydzdGFydF9kYXRlJ10gPSAnU3RhcnQgRGF0ZSc7CiRsYW5nWydlbmRfZGF0ZSddID0gJ0VuZCBEYXRlJzsKJGxhbmdbJ2luZm9fdXBjb21pbmdsaXN0X3RlbXBsYXRlX3RhYiddID0gJ1RoZSBsaXN0IG9mIHRlbXBsYXRlcyB0aGF0IGFyZSBhdmFpbGFibGUgZm9yIHVwY29taW5nbGlzdCB2aWV3cyc7CiRsYW5nWyd1cGNvbWluZ2xpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgYW4gVXBjb21pbmdsaXN0IERpc3BsYXkgVGVtcGxhdGUnOwokbGFuZ1snaW5mb19zeXNkZmx0X3VwY29taW5nbGlzdF90ZW1wbGF0ZSddID0gJ1N5c3RlbSBEZWZhdWx0IFVwY29taW5nbGlzdCBUZW1wbGF0ZSc7CiRsYW5nWydpbmZvX2xpc3RfdGVtcGxhdGVfdGFiJ10gPSAnVGhlIGxpc3Qgb2YgdGVtcGxhdGVzIHRoYXQgYXJlIGF2YWlsYWJsZSBmb3IgbGlzdCB2aWV3cyc7CiRsYW5nWydsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IGFuIExpc3QgRGlzcGxheSBUZW1wbGF0ZSc7CiRsYW5nWydpbmZvX3N5c2RmbHRfbGlzdF90ZW1wbGF0ZSddID0gJ1N5c3RlbSBEZWZhdWx0IExpc3QgVGVtcGxhdGUnOwokbGFuZ1snaW5mb19ldmVudF90ZW1wbGF0ZV90YWInXSA9ICdUaGUgbGlzdCBvZiB0ZW1wbGF0ZXMgdGhhdCBhcmUgYXZhaWxhYmxlIGZvciBldmVudCB2aWV3cyc7CiRsYW5nWydldmVudHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBhbiBFdmVudCBEaXNwbGF5IFRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9ldmVudF90ZW1wbGF0ZSddID0gJ1N5c3RlbSBEZWZhdWx0IEV2ZW50IFRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fY2FsZW5kYXJfdGVtcGxhdGVfdGFiJ10gPSAnVGhlIGxpc3Qgb2YgdGVtcGxhdGVzIHRoYXQgYXJlIGF2YWlsYWJsZSBmb3IgY2FsZW5kYXIgdmlld3MnOwokbGFuZ1snY2FsZW5kYXJ0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgYSBDYWxlbmRhciBEaXNwbGF5IFRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9jYWxlbmRhcl90ZW1wbGF0ZSddID0gJ1N5c3RlbSBEZWZhdWx0IENhbGVuZGFyIFRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF90ZW1wbGF0ZSddID0gJ1RoaXMgZm9ybSBkZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHdpbGwgYmUgdXNlZCB3aGVuIHlvdSBjbGljayAiTmV3IFRlbXBsYXRlIiBpbiB0aGUgYXBwcm9wcmlhdGUgdGFiLiAgQ2hhbmdpbmcgdGhpcyB2YWx1ZSB3aWxsIGhhdmUgbm8gaW1tZWRpYXRlIGVmZmVjdCBvbiB0aGUgZGlzcGxheXMgZ2VuZXJhdGVkIGZyb20gdGhpcyBtb2R1bGUuJzsKJGxhbmdbJ2V2ZW50ZGVzYy1FdmVudEFkZGVkJ10gPSAn0JLRi9C30YvQstCw0LXRgtGB0Y8g0L/QvtGB0LvQtSDQtNC+0LHQsNCy0LvQtdC90LjRjyDRgdC+0LHRi9GC0LjRjyDQutCw0LvQtdC90LTQsNGA0Y8nOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50RWRpdGVkJ10gPSAn0JLRi9C30YvQstCw0LXRgtGB0Y8g0L/QvtGB0LvQtSDQuNC30LzQtdC90LXQvdC40Y8g0YHRg9GJ0LXRgdGC0LLRg9GO0YnQtdCz0L4g0YHQvtCx0YvRgtC40Y8g0LrQsNC70LXQvdC00LDRgNGPJzsKJGxhbmdbJ2V2ZW50ZGVzYy1FdmVudERlbGV0ZWQnXSA9ICfQktGL0LfRi9Cy0LDQtdGC0YHRjyDQv9C+0YHQu9C1INGD0LTQsNC70LXQvdC40Y8g0YHQvtCx0YvRgtC40Y8nOwokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5QWRkZWQnXSA9ICfQktGL0LfRi9Cy0LDQtdGC0YHRjyDQv9C+0YHQu9C1INGB0L7Qt9C00LDQvdC40Y8g0LrQsNGC0LXQs9C+0YDQuNC4JzsKJGxhbmdbJ2V2ZW50ZGVzYy1DYXRlZ29yeUVkaXRlZCddID0gJ9CS0YvQt9GL0LLQsNC10YLRgdGPINC/0L7RgdC70LUg0YDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjRjyDQutCw0YLQtdCz0L7RgNC40LgnOwokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5RGVsZXRlZCddID0gJ9CS0YvQt9GL0LLQsNC10YLRgdGPINC/0L7RgdC70LUg0YPQtNCw0LvQtdC90LjRjyDQutCw0YLQtdCz0L7RgNC40LgnOwokbGFuZ1snZXZlbnRoZWxwLUV2ZW50QWRkZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBldmVudCBpcyBhZGRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XFwiZXZlbnRfdGl0bGVcXCIgLSBFdmVudCBUaXRsZTwvbGk+DQo8bGk+XFwiZXZlbnRfc3VtbWFyeVxcIiAtIFN1bW1hcnkgVGV4dDwvbGk+DQo8bGk+XFwiZXZlbnRfZGV0YWlsc1xcIiAtIERldGFpbGVkIERlc2NyaXB0aW9uPC9saT4NCjxsaT5cXCJldmVudF9kYXRlX3N0YXJ0XFwiIC0gVGhlIGV2ZW50IHN0YXJ0IGRhdGUvdGltZTwvbGk+DQo8bGk+XFwiZXZlbnRfZGF0ZV9lbmRcXCIgLSBUaGUgZXZlbnQgZW5kIGRhdGUvdGltZTwvbGk+DQo8bGk+XFwiZXZlbnRfY3JlYXRlZF9ieVxcIiAtIFRoZSB1c2VyaWQgb2YgdGhlIGF1dGhvcjwvbGk+DQo8bGk+XFwiZXZlbnRfaWRcXCIgLSBUaGUgZXZlbnQgaWQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGhlbHAtRXZlbnRFZGl0ZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBldmVudCBpcyBlZGl0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlxcImV2ZW50X3RpdGxlXFwiIC0gRXZlbnQgVGl0bGU8L2xpPg0KPGxpPlxcImV2ZW50X3N1bW1hcnlcXCIgLSBTdW1tYXJ5IFRleHQ8L2xpPg0KPGxpPlxcImV2ZW50X2RldGFpbHNcXCIgLSBEZXRhaWxlZCBEZXNjcmlwdGlvbjwvbGk+DQo8bGk+XFwiZXZlbnRfZGF0ZV9zdGFydFxcIiAtIFRoZSBldmVudCBzdGFydCBkYXRlL3RpbWU8L2xpPg0KPGxpPlxcImV2ZW50X2RhdGVfZW5kXFwiIC0gVGhlIGV2ZW50IGVuZCBkYXRlL3RpbWU8L2xpPg0KPGxpPlxcImV2ZW50X2NyZWF0ZWRfYnlcXCIgLSBUaGUgdXNlcmlkIG9mIHRoZSBhdXRob3I8L2xpPg0KPGxpPlxcImV2ZW50X2lkXFwiIC0gVGhlIGV2ZW50IGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUV2ZW50RGVsZXRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGV2ZW50IGlzIGRlbGV0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlxcImV2ZW50X2lkXFwiIC0gVGhlIGV2ZW50IGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5QWRkZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBjYXRlZ29yeSBpcyBhZGRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XFwiY2F0ZWdvcnlfaWRcXCIgLSBUaGUgY2F0ZWdvcnkgaWQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGhlbHAtQ2F0ZWdvcnlFZGl0ZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBjYXRlZ29yeSBpcyBlZGl0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlxcImNhdGVnb3J5X2lkXFwiIC0gVGhlIGNhdGVnb3J5IGlkPC9saT4NCjxsaT5cXCJjYXRlZ29yeV9uYW1lXFwiIC0gVGhlIGNhdGVnb3J5IG5hbWU8L2xpPg0KPGxpPlxcImNhdGVnb3J5X29yZGVyXFwiIC0gVGhlIGNhdGVnb3J5IHNvcnQgb3JkZXI8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGhlbHAtQ2F0ZWdvcnlEZWxldGVkJ10gPSAnPHA+U2VudCB3aGVuIGEgY2FsZW5kYXIgY2F0ZWdvcnkgaXMgZGVsZXRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XFwiY2F0ZWdvcnlfaWRcXCIgLSBUaGUgY2F0ZWdvcnkgaWQ8L2xpPg0KPGxpPlxcImNhdGVnb3J5X25hbWVcXCIgLSBUaGUgY2F0ZWdvcnkgbmFtZTwvbGk+DQo8bGk+XFwiY2F0ZWdvcnlfb3JkZXJcXCIgLSBUaGUgY2F0ZWdvcnkgc29ydCBvcmRlcjwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ21zZ19ldmVudGFkZGVkJ10gPSAn0KHQvtCx0YvRgtC1INC00L7QsdCw0LLQu9C10L3Qvic7CiRsYW5nWydlcnJvcl9ub2V2ZW50bmFtZSddID0gJ0EgbmFtZSBmb3IgdGhlIGV2ZW50IGlzIHJlcXVpcmVkJzsKJGxhbmdbJ2Vycm9yX25vdXBsb2FkJ10gPSAn0J7QqNCY0JHQmtCQOiDQl9Cw0LPRgNGD0LbQtdC90L3Ri9C5INGE0LDQudC7INC90LUg0L3QsNC50LTQtdC9JzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRmaWxlbmFtZSddID0gJ9Ce0KjQmNCR0JrQkDog0JfQsNCz0YDRg9C20LXQvdC90YvQuSDRhNCw0LnQuyDQvdC1INC80L7QttC10YIg0LHRi9GC0Ywg0L/RgNC40L3Rj9GCJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW13aXRodXBsb2FkJ10gPSAn0J7QqNCY0JHQmtCQOiDQn9GA0L7QsdC70LXQvNCwINC/0YDQuCDQv9C+0L/Ri9GC0LrQtSDQt9Cw0LPRgNGD0LfQuNGC0Ywg0YTQsNC50LsnOwokbGFuZ1snZXJyb3JfZmlsZWNvcHlmYWlsZWQnXSA9ICdFUlJPUjogQSBQcm9ibGVtIG9jY3VycmVkIHdoZW4gY29weWluZyB0aGUgZmlsZSB0byBpdHMgZmluYWwgZGVzdGluYXRpb24nOwokbGFuZ1snZXJyb3JfZmlsZWV4aXN0cyddID0gJ9Ce0KjQmNCR0JrQkDog0KTQsNC50Lsg0YEg0YLQsNC60LjQvCDQuNC80LXQvdC10Lwg0YPQttC1INGB0YPRidC10YHRgtCy0YPQtdGCJzsKJGxhbmdbJ2Vycm9yX2NzdmZpbGVub3Rmb3VuZCddID0gJ9Ce0KjQmNCR0JrQkDog0J3QtSDRg9C00LDQu9C+0YHRjCDQvdCw0LnRgtC4IENTViDRhNCw0LnQuyc7CiRsYW5nWydlcnJvcl9jYW50b3BlbmZpbGUnXSA9ICfQntCo0JjQkdCa0JA6INCd0LUg0YPQtNCw0LXRgtGB0Y8g0L7RgtC60YDRi9GC0Ywg0YTQsNC50LsnOwokbGFuZ1snZXJyb3JfY2F0ZWdvcnlleGlzdHMnXSA9ICdFUlJPUjogQSBjYXRlZ29yeSB3aXRoIHRoZSBuYW1lICVzIGFscmVhZHkgZXhpc3RzJzsKJGxhbmdbJ2NhbF9pZCddID0gJ0lkJzsKJGxhbmdbJ2NhbF9jYWxlbmRhciddID0gJ9Ca0LDQu9C10L3QtNCw0YDRjCc7CiRsYW5nWydjYWxfZGVmYXVsdF90ZW1wbGF0ZXMnXSA9ICdEZWZhdWx0IFRlbXBsYXRlcyc7CiRsYW5nWydjYWxfZGVzY3JpcHRpb24nXSA9ICfQntC/0LjRgdCw0L3QuNC1JzsKJGxhbmdbJ2NhbF9hZGRldmVudCddID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0YHQvtCx0YvRgtC40LUnOwokbGFuZ1snY2FsX2ltcG9ydF9ldmVudHMnXSA9ICfQmNC80L/QvtGA0YIg0YHQvtCx0YvRgtC40LknOwokbGFuZ1snY2FsX2V2ZW50cyddID0gJ9Ch0L7QsdGL0YLQuNGPJzsKJGxhbmdbJ2NhbF9jYXRlZ29yaWVzJ10gPSAn0JrQsNGC0LXQs9C+0YDQuNC4JzsKJGxhbmdbJ2NhbF9jYWxlbmRhcl90ZW1wbGF0ZSddID0gJ9Co0LDQsdC70L7QvSDQutCw0LvQtdC90LTQsNGA0Y8nOwokbGFuZ1snY2FsX2xpc3RfdGVtcGxhdGUnXSA9ICfQodC/0LjRgdC+0Log0YjQsNCx0LvQvtC90L7Qsic7CiRsYW5nWydjYWxfdXBjb21pbmdsaXN0X3RlbXBsYXRlJ10gPSAnVXBjb21pbmcgVGVtcGxhdGUnOwokbGFuZ1snY2FsX2V2ZW50X3RlbXBsYXRlJ10gPSAn0KjQsNCx0LvQvtC9INGB0L7QsdGL0YLQuNGPJzsKJGxhbmdbJ2NhbF9zZXR0aW5ncyddID0gJ9Cd0LDRgdGC0YDQvtC50LrQuCc7CiRsYW5nWydjYWxfcHJldiddID0gJ8KrINCf0YDQtdC00YvQtNGD0YnQuNC5JzsKJGxhbmdbJ2NhbF9uZXh0J10gPSAn0KHQu9C10LTRg9GO0YnQuNC5IMK7JzsKJGxhbmdbJ2NhbF9jYXRlZ29yaWVzX3VwZGF0ZWQnXSA9ICfQmtCw0YLQtdCz0L7RgNC40Lgg0L7QsdC90L7QstC70LXQvdGLJzsKJGxhbmdbJ2NhbF9zZXR0aW5nc191cGRhdGVkJ10gPSAn0J3QsNGB0YLRgNC+0LnQutC4INC+0LHQvdC+0LLQu9C10L3Riyc7CiRsYW5nWydjYWxfYWRkX2V2ZW50J10gPSAn0JTQvtCx0LDQstC40YLRjCDRgdC+0LHRi9GC0LjQtSc7CiRsYW5nWydjYWxfZWRpdCddID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMJzsKJGxhbmdbJ2NhbF9kZWxldGUnXSA9ICfQo9C00LDQu9C40YLRjCc7CiRsYW5nWydjYWxfYXJleW91c3VyZSddID0gJ9CS0Ysg0YPQstC10YDQtdC90YssINGH0YLQviDRhdC+0YLQuNGC0LUg0YPQtNCw0LvQuNGC0YwnOwokbGFuZ1snY2FsX3VwZGF0ZV90ZW1wbGF0ZSddID0gJ9Ce0LHQvdC+0LLQuNGC0Ywg0YjQsNCx0LvQvtC9JzsKJGxhbmdbJ2NhbF9zdW5kYXknXSA9ICfQktC+0YHQutGA0LXRgdC10L3RjNC1JzsKJGxhbmdbJ2NhbF9tb25kYXknXSA9ICfQn9C+0L3QtdC00LXQu9GM0L3QuNC6JzsKJGxhbmdbJ2NhbF90dWVzZGF5J10gPSAn0JLRgtC+0YDQvdC40LonOwokbGFuZ1snY2FsX3dlZG5lc2RheSddID0gJ9Ch0YDQtdC00LAnOwokbGFuZ1snY2FsX3RodXJzZGF5J10gPSAn0KfQtdGC0LLQtdGA0LMnOwokbGFuZ1snY2FsX2ZyaWRheSddID0gJ9Cf0Y/RgtC90LjRhtCwJzsKJGxhbmdbJ2NhbF9zYXR1cmRheSddID0gJ9Ch0YPQsdCx0L7RgtCwJzsKJGxhbmdbJ2NhbF9zdW4nXSA9ICfQktGBJzsKJGxhbmdbJ2NhbF9tb24nXSA9ICfQn9C9JzsKJGxhbmdbJ2NhbF90dWVzJ10gPSAn0JLRgic7CiRsYW5nWydjYWxfd2VkJ10gPSAn0KHRgCc7CiRsYW5nWydjYWxfdGh1cnMnXSA9ICfQp9GCJzsKJGxhbmdbJ2NhbF9mcmknXSA9ICfQn9GCJzsKJGxhbmdbJ2NhbF9zYXQnXSA9ICfQodCxJzsKJGxhbmdbJ2NhbF9qYW51YXJ5J10gPSAn0K/QvdCy0LDRgNGMJzsKJGxhbmdbJ2NhbF9mZWJydWFyeSddID0gJ9Ck0LXQstGA0LDQu9GMJzsKJGxhbmdbJ2NhbF9tYXJjaCddID0gJ9Cc0LDRgNGCJzsKJGxhbmdbJ2NhbF9hcHJpbCddID0gJ9CQ0L/RgNC10LvRjCc7CiRsYW5nWydjYWxfbWF5J10gPSAn0JzQsNC5JzsKJGxhbmdbJ2NhbF9qdW5lJ10gPSAn0JjRjtC90YwnOwokbGFuZ1snY2FsX2p1bHknXSA9ICfQmNGO0LvRjCc7CiRsYW5nWydjYWxfYXVndXN0J10gPSAn0JDQstCz0YPRgdGCJzsKJGxhbmdbJ2NhbF9zZXB0ZW1iZXInXSA9ICfQodC10L3RgtGP0LHRgNGMJzsKJGxhbmdbJ2NhbF9vY3RvYmVyJ10gPSAn0J7QutGC0Y/QsdGA0YwnOwokbGFuZ1snY2FsX25vdmVtYmVyJ10gPSAn0J3QvtGP0LHRgNGMJzsKJGxhbmdbJ2NhbF9kZWNlbWJlciddID0gJ9CU0LXQutCw0LHRgNGMJzsKJGxhbmdbJ2NhbF9hZGQnXSA9ICfQlNC+0LHQsNCy0LjRgtGMJzsKJGxhbmdbJ2NhbF91cGRhdGUnXSA9ICfQntCx0L3QvtCy0LjRgtGMJzsKJGxhbmdbJ2NhbF9ldmVudCddID0gJ9Ch0L7QsdGL0YLQuNC1JzsKJGxhbmdbJ2NhbF9kYXRlJ10gPSAn0JTQsNGC0LAnOwokbGFuZ1snY2FsX3N1bW1hcnknXSA9ICcg0KDQtdC30Y7QvNC1JzsKJGxhbmdbJ2NhbF9kZXRhaWxzJ10gPSAn0J/QvtC00YDQvtCx0L3Qvic7CiRsYW5nWydjYWxfbW9yZSddID0gJ9C/0L7QtNGA0L7QsdC90LXQtSA+Pic7CiRsYW5nWydjYWxfcmV0dXJuJ10gPSAn0JLQtdGA0L3Rg9GC0YzRgdGPJzsKJGxhbmdbJ2NhbF90byddID0gJ9CyJzsKJGxhbmdbJ2NhbF9wYXN0X2V2ZW50cyddID0gJ9Cf0YDQvtGI0LXQtNGI0LjQtSDRgdC+0LHRi9GC0LjRjyc7CiRsYW5nWydjYWxfdXBjb21pbmdfZXZlbnRzJ10gPSAn0J/RgNC10LTRgdGC0L7Rj9GJ0LjQtSDRgdC+0LHRi9GC0LjRjyc7CiRsYW5nWydjYWxfYW55X2NhdGVnb3J5J10gPSAn0JvRjtCx0LDRjyDQutCw0YLQtdCz0L7RgNC40Y8nOwokbGFuZ1snY2FsX3Nob3dfb25seV9ldmVudHNfaW4nXSA9ICfQn9C+0LrQsNC30LDRgtGMINGC0L7Qu9GM0LrQviDRgdC+0LHRi9GC0LjRjyDQsic7CiRsYW5nWydjYWxfZmlsdGVyX2J5J10gPSAn0KTQuNC70YzRgtGAINC/0L4nOwokbGFuZ1snY2FsX2dvJ10gPSAn0J/QtdGA0LXQudGC0LgnOwokbGFuZ1snY2FsX3RpdGxlJ10gPSAn0JfQsNCz0L7Qu9C+0LLQvtC6JzsKJGxhbmdbJ2NhbF9mcm9tZGF0ZSddID0gJ9Ce0YIg0LTQsNGC0YsnOwokbGFuZ1snY2FsX3RvZGF0ZSddID0gJ9CU0L4g0LTQsNGC0YsnOwokbGFuZ1snY2FsX3VwZGF0ZV9jYXRlZ29yaWVzJ10gPSAn0J7QsdC90L7QstC40YLRjCDQutCw0YLQtdCz0L7RgNC40LgnOwokbGFuZ1snY2FsX2xhbmd1YWdlJ10gPSAn0K/Qt9GL0LonOwokbGFuZ1snY2FsX3VwZGF0ZXNldHRpbmdzJ10gPSAn0J7QsdC90L7QstC40YLRjCDQvdCw0YHRgtGA0L7QudC60LgnOwokbGFuZ1snY2FsX3VzZV90d2VsdmVfaG91cl9jbG9jayddID0gJ1VzZSB0d2VsdmUgaG91ciBjbG9jayBvbiBob3VyIGRyb3AtZG93bnM/JzsKJGxhbmdbJ2NhbF9kZWZhdWx0X2NhdGVnb3J5J10gPSAn0JrQsNGC0LXQs9C+0YDQuNGPINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOJzsKJGxhbmdbJ2NhbF91cGRhdGVfZmllbGRzJ10gPSAn0J7QsdC90L7QstC40YLRjCDQv9C+0LvRjyc7CiRsYW5nWydmb3JjZV9jYXRlZ29yeSddID0gJ0ZvcmNlIGF0IGxlYXN0IG9uZSBjYXRlZ29yeSc7CiRsYW5nWydzaG93cGFzdHllYXJzJ10gPSAnSG93IG1hbnkgeWVhcnMgaW4gdGhlIHBhc3QgaXMgYWxsb3dlZCc7CiRsYW5nWydzaG93ZnV0dXJleWVhcnMnXSA9ICdIb3cgbWFueSB5ZWFyIGludG8gdGhlIGZ1dHVyZSBpcyBhbGxvd2VkJzsKJGxhbmdbJ2hpZGVzdW1tYXJ5J10gPSAnU2hvdWxkIHRoZSBzdW1tYXJ5IGZpZWxkIGJlIGhpZGRlbic7CiRsYW5nWydoaWRlY29udGVudCddID0gJ1Nob3VsZCB0aGUgY29udGVudCBmaWVsZCBiZSBoaWRkZW4nOwokbGFuZ1snY2F0ZWdvcnlfcmVtaW5kZXInXSA9ICdQbGVhc2UgY2hlY2sgb25lIG9yIG1vcmUgY2F0ZWdvcmllcyBmb3IgdGhpcyBldmVudCc7CiRsYW5nWydtb2R1bGVfZXhhbXBsZV9zdHlsZXNoZWV0J10gPSAn0J/RgNC40LzQtdGAIENTUyDQutCw0LvQtdC90LTQsNGA0Y8nOwokbGFuZ1snZXJyb3JfcGVybWlzc2lvbiddID0gJ1lvdSBuZWVkIHRoZSBhcHByb3ByaWF0ZSBwZXJtaXNzaW9uICglcykgdG8gYWNjZXNzIHRoaXMgZnVuY3Rpb25hbGl0eSc7CiRsYW5nWydpbnN0YWxsX3Bvc3RtZXNzYWdlJ10gPSAnTWFrZSBzdXJlIHRvIHNldCB0aGUgIk1vZGlmeSBDYWxlbmRhciIgcGVybWlzc2lvbiBvbiB1c2VycyB3aG8gd2lsbCBiZSBhZG1pbmlzdGVyaW5nIGNhbGVuZGFyIGV2ZW50cy4nOwokbGFuZ1snZGVsZXRldGFnZ2VkJ10gPSAn0KPQtNCw0LvQuNGC0Ywg0L7RgtC80LXRh9C10L3QvdGL0LUg0YHQvtCx0YvRgtC40Y8nOwokbGFuZ1snY29uZmlybWRlbGV0ZXRhZ2dlZCddID0gJ9CS0Ysg0YPQstC10YDQtdC90YssINGH0YLQviDRjdGC0Lgg0YHQvtCx0YvRgtC40Y8g0LTQvtC70LbQvdGLINCx0YvRgtGMINGD0LTQsNC70LXQvdGLPyc7CiRsYW5nWyd0YWdnZWRkZWxldGVkJ10gPSAn0J7RgtC80LXRh9C10L3QvdGL0LUg0YHQvtCx0YvRgtC40Y8g0YPQtNCw0LvQtdC90YsnOwokbGFuZ1sndGVtcGxhdGVzJ10gPSAn0KjQsNCx0LvQvtC90YsnOwokbGFuZ1sndGVtcGxhdGVfaGVscCddID0gJ9Ch0L/RgNCw0LLQutCwINGI0LDQsdC70L7QvdCwJzsKJGxhbmdbJ2ZpbGVfdGVtcGxhdGVzJ10gPSAn0KTQsNC50Lsg0YjQsNCx0LvQvtC90LAnOwokbGFuZ1snYWRkdGVtcGxhdGUnXSA9ICfQlNC+0LHQsNCy0LjRgtGMINGI0LDQsdC70L7QvSc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ9Co0LDQsdC70L7QvSc7CiRsYW5nWyd0ZW1wbGF0ZW5hbWV0ZXh0J10gPSAn0JjQvNGPINGI0LDQsdC70L7QvdCwJzsKJGxhbmdbJ2VkaXR0ZW1wbGF0ZSddID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINGI0LDQsdC70L7QvSc7CiRsYW5nWydkZWxldGV0ZW1wbGF0ZSddID0gJ9Cj0LTQsNC70LjRgtGMINGI0LDQsdC70L7QvSc7CiRsYW5nWyduZXd0ZW1wbGF0ZSddID0gJ9CY0LzRjyDQvdC+0LLQvtCz0L4g0YjQsNCx0LvQvtC90LAnOwokbGFuZ1sndGVtcGxhdGVuYW1lZXhpc3RzJ10gPSAn0J7RiNC40LHQutCwOiDQqNCw0LHQu9C+0L0g0YEg0YLQsNC60LjQvCDQuNC80LXQvdC10Lwg0YPQttC1INGB0YPRidC10YHRgtCy0YPQtdGCLiDQn9C+0LbQsNC70YPQudGB0YLQsCwg0LLRi9Cx0LXRgNC40YLQtSDQtNGA0YPQs9C+0LUg0LjQvNGPLic7CiRsYW5nWyd0ZW1wbGF0ZWltcG9ydGVkJ10gPSAn0K3RgtC+0YIg0YjQsNCx0LvQvtC9INGD0YHQv9C10YjQvdC+INC40LzQv9C+0YDRgtC40YDQvtCy0LDQvSDQsiDQsdCw0LfRgyDQtNCw0L3QvdGL0YUsINC4INCyINC90LDRgdGC0L7Rj9GJ0LXQtSDQstGA0LXQvNGPINGD0YHRgtCw0L3QvtCy0LvQtdC9INC00LvRjyDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRjy4nOwokbGFuZ1sndmlld19kZWZhdWx0X3N0eWxlc2hlZXQnXSA9ICfQn9GA0L7RgdC80L7RgtGAINGC0LDQsdC70LjRhtGLINGB0YLQuNC70LXQuSDQv9C+INGD0LzQvtC70YfQsNC90LjRjic7CiRsYW5nWydmaWxlbmFtZSddID0gJ9CY0LzRjyDRhNCw0LnQu9CwJzsKJGxhbmdbJ2ltcG9ydHRlbXBsYXRlJ10gPSAn0JjQvNC+0YDRgiDRiNCw0LHQu9C+0L3QsCc7CiRsYW5nWyd0ZW1wbGF0ZV9kZWxldGVkJ10gPSAn0KjQsNCx0LvQvtC9INGD0LTQsNC70LXQvSDQuNC3INCx0LDQt9GLINC00LDQvdC90YvRhS4nOwokbGFuZ1sndXBkYXRldGVtcGxhdGVzdWNjZXNzJ10gPSAn0KjQsNCx0LvQvtC9INGD0YHQv9C10YjQvdC+INC+0LHQvdC+0LLQu9GR0L0nOwokbGFuZ1sndXBkYXRldGVtcGxhdGVmYWlsdXJlJ10gPSAn0J/RgNC+0LjQt9C+0YjQu9CwINC+0YjQuNCx0LrQsCDQvtCx0L3QvtCy0LvQtdC90LjRjyDRiNCw0LHQu9C+0L3QsCc7CiRsYW5nWydzZXR0aW5nc3NhdmVkJ10gPSAn0J3QsNGB0YLRgNC+0LnQutC4INGD0YHQv9C10YjQvdC+INGB0L7RhdGA0LDQvdC10L3Riyc7CiRsYW5nWydjYXRlZ29yeWRlbGV0ZWQnXSA9ICfQmtCw0YLQtdCz0L7RgNC40Y8g0YPQtNCw0LvQtdC90LAnOwokbGFuZ1snY2F0ZWdvcnl1cGRhdGVkJ10gPSAn0JrQsNGC0LXQs9C+0YDQuNGPINC+0LHQvdC+0LLQu9C10L3QsCc7CiRsYW5nWydjYXRlZ29yeWFkZGVkJ10gPSAn0JrQsNGC0LXQs9C+0YDQuNGPINC00L7QsdCw0LLQu9C10L3QsCc7CiRsYW5nWydldmVudGRlbGV0ZWQnXSA9ICfQodC+0LHRi9GC0LjQtSDRg9C00LDQu9C10L3Qvic7CiRsYW5nWydldmVudHVwZGF0ZWQnXSA9ICfQodC+0LHRi9GC0LjQtSDQvtCx0L3QvtCy0LvQtdC90L4nOwokbGFuZ1snZGVmYXVsdF9wYWdlX2Vycm9yJ10gPSAn0J7RiNC40LHQutCwOiDQktGLINC00L7Qu9C20L3RiyDQv9GA0LjQstC10YHRgtC4INCyINC/0L7RgNGP0LTQvtC6INGB0YLRgNCw0L3QuNGG0YMg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4sINGH0YLQvtCx0Ysg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINCa0LDQu9C10L3QtNCw0YDRjCDRgSDQutGA0LDRgdC40LLRi9C80LggVVJMLiDQn9C+0LbQsNC70YPQudGB0YLQsCDQstC+0LnQtNC40YLQtSDQsiDQvdCw0YHRgtGA0L7QudC60Lgg0JrQsNC70LXQvdC00LDRgNGPINC4INCy0YvQsdC10YDQuNGC0LUg0Y3RgtGDINC30LDQutC70LDQtNC60YMuJzsKJGxhbmdbJ3RpbWVfYXQnXSA9ICfQsic7CiRsYW5nWyd0eXBlJ10gPSAn0KLQuNC/JzsKJGxhbmdbJ25hbWUnXSA9ICfQmNC80Y8nOwokbGFuZ1snb3JkZXInXSA9ICfQn9C+0YDRj9C00L7Quic7CiRsYW5nWydmaWVsZGFkZGVkJ10gPSAn0J/QvtC70LUg0YPRgdC/0LXRiNC90L4g0LTQvtCx0LDQstC70LXQvdC+JzsKJGxhbmdbJ2ZpZWxkZGVsZXRlZCddID0gJ9Cf0L7Qu9C1INGD0LTQsNC70LXQvdC+JzsKJGxhbmdbJ2ZpZWxkcyddID0gJ9Cf0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQuNC1INC/0L7Qu9GPJzsKJGxhbmdbJ3RleHRmaWVsZCddID0gJ9Ci0LXQutGB0YLQvtCy0L7QtSDQv9C+0LvQtSc7CiRsYW5nWyd1cGxvYWRmaWVsZCddID0gJ9Ck0LDQudC7INC30LDQs9GA0YPQt9C60Lgg0L/QvtC70Y8nOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICc8cD5DYWxlbmRhciBpcyBhIG1vZHVsZSBmb3IgZGlzcGxheWluZyBldmVudHMgb24geW91ciBwYWdlLiBXaGVuIHRoZQ0KCQltb2R1bGUgaXMgaW5zdGFsbGVkLCBhIENhbGVuZGFyIGFkbWluIHBhZ2UgaXMgYWRkZWQgdG8gdGhlIGNvbnRlbnQgbWVudQ0KCQl0aGF0IHdpbGwgYWxsb3cgeW91IHRvIG1hbmFnZSB5b3VyIGV2ZW50cy48L3A+JzsKJGxhbmdbJ2RlZmF1bHRjYWxlbmRhcnBhZ2UnXSA9ICdEZWZhdWx0IHBhZ2UgdGhhdCBjb250YWlucyBDYWxlbmRhci4gVGhpcyBwYWdlIG11c3QgY29udGFpbiBhIFNtYXJ0eSB0YWcgdGhhdCBjYWxscyBDYWxlbmRhci4gUmVxdWlyZWQgaWYgeW91IHVzZSB0aGUgcHJldHR5IFVSTHMuJzsKJGxhbmdbJ3VwbG9hZGRpcmVjdG9yeSddID0gJ0RpcmVjdG9yeSB3aGVyZXIgZmlsZSB1cGxvYWRzIHNob3VsZCBiZSBwbGFjZWQnOwokbGFuZ1sndXBsb2FkZmlsZXR5cGVzJ10gPSAn0KDQsNC30YDQtdGI0LXQvdC90YvQtSDRgtC40L/RiyDRhNCw0LnQu9C+0LInOwokbGFuZ1sndXBsb2FkdW5pcXVlJ10gPSAn0J7QsdC10YHQv9C10YfQuNGC0Ywg0YPQvdC40LrQsNC70YzQvdGL0LUg0LjQvNC10L3QsCDRhNCw0LnQu9C+0LInOwokbGFuZ1sndGh1bWJfd2lkdGgnXSA9ICfQqNC40YDQuNC90LAg0LzQuNC90LjQsNGC0Y7RgNGLJzsKJGxhbmdbJ3RodW1iX2hlaWdodCddID0gJ9CS0YvRgdC+0YLQsCDQvNC40L3QuNCw0YLRjtGA0LAnOwokbGFuZ1snbGFyZ2Vfd2lkdGgnXSA9ICfQndCw0LjQsdC+0LvRjNGI0LDRjyDRiNC40YDQuNC90LAg0LjQt9C+0LHRgNCw0LbQtdC90LjRjyc7CiRsYW5nWydsYXJnZV9oZWlnaHQnXSA9ICfQndCw0LjQsdC+0LvRjNGI0LDRjyDQstGL0YHQvtGC0LAg0LjQt9C+0LHRgNCw0LbQtdC90LjRjyc7CiRsYW5nWydjYWxfcmVjdXJfcGVyaW9kJ10gPSAn0J/QvtCy0YLQvtGA0Y/QtdGC0YHRjyc7CiRsYW5nWydjYWxfcmVjdXJfdW50aWwnXSA9ICfQlNC+INGC0LXRhSDQv9C+0YAsINC/0L7QutCwINC/0L7QstGC0L7RgNGP0LXRgtGB0Y8nOwokbGFuZ1snaGVscF90ZW1wbGF0ZSddID0gJzxwPjxiPtCf0LXRh9Cw0YLRjCDQuNC80LXQvdC4INCw0LLRgtC+0YDQsDo8L2I+PC9wPg0KPGNvZGU+0JDQstGC0L7RgDogeyRldmVudC5hdXRob3JuYW1lfTwvY29kZT4NCic7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sk_SK.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ21heCddID0gJ21heCc7CiRsYW5nWyd0aW1lcyddID0gJ8SNYXMnOwokbGFuZ1snb24nXSA9ICduYSc7CiRsYW5nWydhcmV5b3VzdXJlX3VuaW5zdGFsbCddID0gJ1N0ZSBzaSBpc3QmeWFjdXRlOz8gUG9rcmHEjW92YW4maWFjdXRlO20gb2RzdHImYWFjdXRlO25pdGUgdiZzY2Fyb247ZXRreSBkYXRhIHMmdWFjdXRlO3Zpc2lhY2UgcyB0JnlhY3V0ZTttdG8gbW9kdWxvbS4gICc7CiRsYW5nWydwb3N0X3VuaW5zdGFsbCddID0gJ01vZHVsIGthbGVuZCZhYWN1dGU7cmEgYm9sIG9kaW4mc2Nhcm9uO3RhbG92YW4meWFjdXRlOyBhIHYmc2Nhcm9uO2V0a3kgdWRhbG9zdGkgYSAmc2Nhcm9uO2FibCZvYWN1dGU7bnkgcHJpcmFkZW4mZWFjdXRlOyBrIHRvbXV0byBtb2R1bHUgYm9saSBvZHN0ciZhYWN1dGU7bmVuJmVhY3V0ZTsuJzsKJGxhbmdbJ2ZpZWxkdXBkYXRlZCddID0gJ1BvbGUgdXByYXZlbiZlYWN1dGU7JzsKJGxhbmdbJ2V2ZXJ5J10gPSAnS2HFvmQmeWFjdXRlOyc7CiRsYW5nWydvciddID0gJ2FsZWJvJzsKJGxhbmdbJ3VwZGF0ZV9jaGlsZHJlbiddID0gJ1VwcmF2IHZub3JlbiZlYWN1dGU7IHVkYWxvc3RpJzsKJGxhbmdbJ2Vycm9yX25vY2F0ZWdvcnknXSA9ICdNdXMmaWFjdXRlO3RlIHZ5YnJhxaUgbWluaW0mYWFjdXRlO2xuZSBqZWRudSBrYXRlZyZvYWN1dGU7cml1JzsKJGxhbmdbJ2Vycm9yX25vdGhpbmdzZWxlY3RlZCddID0gJ1ByZSBvZHN0ciZhYWN1dGU7bmVuaWUgbmVib2xpIHZ5YnJhbiZlYWN1dGU7IMW+aWFkbmUgcG9sb8Wla3knOwokbGFuZ1snZXJyb3JfZXZlbnRvdmVybGFwJ10gPSAnUGFyYW1ldHJlIHByZSBvcGFrb3ZhbmllIG0mb2NpcmM7xb51IHNwJm9jaXJjO3NvYmnFpSB2byB2JnlhY3V0ZTtwaXNlIHByZWtyJnlhY3V0ZTt2YW5pZSB1ZGFsb3N0JmlhY3V0ZTsnOwokbGFuZ1sncmVjdXJzJ10gPSAnT3Bha292YW5pZSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX2RhdGVzJ10gPSAnVmxvxb5lbiZlYWN1dGU7IGhvZG5vdHkgZCZhYWN1dGU7dHVtb3YgcyZ1YWN1dGU7IG5lcGxhdG4mZWFjdXRlOyc7CiRsYW5nWydzdW5kYXknXSA9ICdOZWRlxL5hJzsKJGxhbmdbJ21vbmRheSddID0gJ1BvbmRlbG9rJzsKJGxhbmdbJ3R1ZXNkYXknXSA9ICdVdG9yb2snOwokbGFuZ1snd2VkbmVzZGF5J10gPSAnU3RyZWRhJzsKJGxhbmdbJ3RodXJzZGF5J10gPSAnJlNjYXJvbjt0dnJ0b2snOwokbGFuZ1snZnJpZGF5J10gPSAnUGlhdG9rJzsKJGxhbmdbJ3NhdHVyZGF5J10gPSAnU29ib3RhJzsKJGxhbmdbJ2FiYnJfc3VuZGF5J10gPSAnTmUnOwokbGFuZ1snYWJicl9tb25kYXknXSA9ICdQbyc7CiRsYW5nWydhYmJyX3R1ZXNkYXknXSA9ICdVdCc7CiRsYW5nWydhYmJyX3dlZG5lc2RheSddID0gJ1N0JzsKJGxhbmdbJ2FiYnJfdGh1cnNkYXknXSA9ICcmU2Nhcm9uO3QnOwokbGFuZ1snYWJicl9mcmlkYXknXSA9ICdQaSc7CiRsYW5nWydhYmJyX3NhdHVyZGF5J10gPSAnU28nOwokbGFuZ1snd2Vla2RheXMnXSA9ICdQcmFjb3ZuJmVhY3V0ZTsgZG5pJzsKJGxhbmdbJ3BsdXJhbF9kYWlseSddID0gJ0Rlbm5lJzsKJGxhbmdbJ3BsdXJhbF93ZWVrbHknXSA9ICdUJnlhY3V0ZTvFvmRlbm5lJzsKJGxhbmdbJ3BsdXJhbF9tb250aGx5J10gPSAnTWVzYcSNbmUnOwokbGFuZ1sncGx1cmFsX3llYXJseSddID0gJ1JvxI1uZSc7CiRsYW5nWydubyddID0gJ05pZSc7CiRsYW5nWydkYWlseSddID0gJ0Rlbm5lJzsKJGxhbmdbJ3dlZWtseSddID0gJ1QmeWFjdXRlO8W+ZGVubmUnOwokbGFuZ1snbW9udGhseSddID0gJ01lc2HEjW5lJzsKJGxhbmdbJ3llYXJseSddID0gJ1JvxI1uZSc7CiRsYW5nWydpbnRlcnZhbCddID0gJ09wYWtvdmHFpSc7CiRsYW5nWydjYWxfcmVjdXJfZGV0YWlscyddID0gJ09wYWtvdmFuaWUgZGV0YWlsdSc7CiRsYW5nWyd1bmxpbWl0ZWQnXSA9ICdOZW9ibWVkemVuJmVhY3V0ZTsnOwokbGFuZ1snbWF4X3JlY3VyX2V2ZW50cyddID0gJ01heC4gcG/EjWV0IHZub3JlbiZ5YWN1dGU7Y2ggdWRhbG9zdGknOwokbGFuZ1sndXNlX3RvX2RhdGUnXSA9ICcmU2Nhcm9uO3BlY2lmaWtvdmHFpSBwcmVzbiZ5YWN1dGU7IGtvbmllYz8nOwokbGFuZ1snY2FuY2VsJ10gPSAnWnJ1JnNjYXJvbjtpxaUnOwokbGFuZ1snc2hvd19jaGlsZF9ldmVudHMnXSA9ICdab2JyYXppxaUgdm5vcmVuJmVhY3V0ZTsgdWRhbG9zdGknOwokbGFuZ1snbi9hJ10gPSAnxb5pYWRuZSc7CiRsYW5nWydyZWN1cnNfdW50aWwnXSA9ICdPcGFrb3ZhxaUgZG8nOwokbGFuZ1sncGFyZW50J10gPSAnUm9kacSNJzsKJGxhbmdbJ3JlY3VyX3BlcmlvZCddID0gJ0RvYmEgb3Bha292YW5pYSc7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0ZXInOwokbGFuZ1snc3RhcnRfZGF0ZSddID0gJ1phxI1pYXRvayc7CiRsYW5nWydlbmRfZGF0ZSddID0gJ0tvbmllYyc7CiRsYW5nWydpbmZvX3VwY29taW5nbGlzdF90ZW1wbGF0ZV90YWInXSA9ICdab3puYW0gJnNjYXJvbjthYmwmb2FjdXRlO24gZG9zdHVwbiZ5YWN1dGU7Y2ggcHJlIHYmeWFjdXRlO3BpcyBuYWRjaCZhYWN1dGU7ZHphaiZ1YWN1dGU7Y2ljaCB1ZGFsb3N0JmlhY3V0ZTsnOwokbGFuZ1sndXBjb21pbmdsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ1ByaWRhxaUvVXByYXZpxaUgJnNjYXJvbjthYmwmb2FjdXRlO251IHByZSB2JnlhY3V0ZTtwaXMgbmFkY2gmYWFjdXRlO2R6YWomdWFjdXRlO2NpY2ggdWRhbG9zdCZpYWN1dGU7JzsKJGxhbmdbJ2luZm9fc3lzZGZsdF91cGNvbWluZ2xpc3RfdGVtcGxhdGUnXSA9ICdTeXN0JmVhY3V0ZTttb20gcHJlZG5hc3RhdmVuJmFhY3V0ZTsgJnNjYXJvbjthYmwmb2FjdXRlO25hIG5hZGNoJmFhY3V0ZTtkemFqJnVhY3V0ZTtjaWNoIHVkYWxvc3QmaWFjdXRlOyc7CiRsYW5nWydpbmZvX2xpc3RfdGVtcGxhdGVfdGFiJ10gPSAnWm96bmFtICZzY2Fyb247YWJsJm9hY3V0ZTtuIGRvc3R1cG4meWFjdXRlO2NoIHByZSB2JnlhY3V0ZTtwaXMgdWRhbG9zdCZpYWN1dGU7JzsKJGxhbmdbJ2xpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnUHJpZGHFpS9VcHJhdmnFpSAmc2Nhcm9uO2FibCZvYWN1dGU7bnUgcHJlIHYmeWFjdXRlO3Bpc3UgdWRhbG9zdCZpYWN1dGU7JzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9saXN0X3RlbXBsYXRlJ10gPSAnU3lzdCZlYWN1dGU7bW9tIHByZWRuYXN0YXZlbiZhYWN1dGU7ICZzY2Fyb247YWJsJm9hY3V0ZTtuYSB6b3puYW11IHVkYWxvc3QmaWFjdXRlOyc7CiRsYW5nWydpbmZvX2V2ZW50X3RlbXBsYXRlX3RhYiddID0gJ1pvem5hbSAmc2Nhcm9uO2FibCZvYWN1dGU7biBkb3N0dXBuJnlhY3V0ZTsgcHJlIHpvYnJhemVuaWUgZGV0YWlsdSc7CiRsYW5nWydldmVudHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdQcmlkYcWlL1VwcmF2acWlICZzY2Fyb247YWJsJm9hY3V0ZTtudSBwcmUgZGV0YWlsdSB1ZGFsb3N0aSc7CiRsYW5nWydpbmZvX3N5c2RmbHRfZXZlbnRfdGVtcGxhdGUnXSA9ICdTeXN0JmVhY3V0ZTttb20gcHJlZG5hc3RhdmVuJmFhY3V0ZTsgJnNjYXJvbjthYmwmb2FjdXRlO25hJzsKJGxhbmdbJ2luZm9fY2FsZW5kYXJfdGVtcGxhdGVfdGFiJ10gPSAnWm96bmFtICZzY2Fyb247YWJsJm9hY3V0ZTtuIHByZSB6b2JyYXplbmllIGthbGVuZCZhYWN1dGU7cmEnOwokbGFuZ1snY2FsZW5kYXJ0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnUHJpZGHFpS9VcHJhdmnFpSAmc2Nhcm9uO2FibCZvYWN1dGU7bnUgem9icmF6ZW5pYSBrYWxlbmQmYWFjdXRlO3JhJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9jYWxlbmRhcl90ZW1wbGF0ZSddID0gJ1N5c3QmZWFjdXRlO21vdiZlYWN1dGU7IHByZWRuYXN0YXZlbiZlYWN1dGU7ICZzY2Fyb247YWJsJm9hY3V0ZTtueSBrYWxlbmQmYWFjdXRlO3JhJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF90ZW1wbGF0ZSddID0gJ1RlbnRvIGZvcm11bCZhYWN1dGU7ciBkZWZpbnVqZSAmc2Nhcm9uO2FibCZvYWN1dGU7bnksIGt0b3ImZWFjdXRlOyBidWQmdWFjdXRlOyBwb3XFviZpYWN1dGU7dmFuJmVhY3V0ZTsgcHJpIGthxb5kZWogemFsb8W+a2UvdGFiZSBwbyBrbGlrbnV0JmlhY3V0ZTsgbmEgJmFtcDtxdW90O05vdiZhYWN1dGU7ICZzY2Fyb247YWJsJm9hY3V0ZTtuYSZhbXA7cXVvdDsuIFptZW55IG5lYnVkJnVhY3V0ZTsgbWHFpSDFvmlhZG55IHZwbHl2IG5hIHXFviB2eWdlbmVyb3ZhbiZlYWN1dGU7ICZzY2Fyb247YWJsJm9hY3V0ZTtueS4nOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50QWRkZWQnXSA9ICdWb2xhxaUgcG8gcHJpZGFuJmlhY3V0ZTsgdWRhbG9zdGknOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50RWRpdGVkJ10gPSAnVm9sYcWlIHBvIHVwcmF2ZW4maWFjdXRlOyBleGlzdHVqJnVhY3V0ZTtjZWogdWRhbG9zdGknOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50RGVsZXRlZCddID0gJ1ZvbGHFpSBwbyBvZHN0ciZhYWN1dGU7bmVuJmlhY3V0ZTsgdWRhbG9zdGknOwokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5QWRkZWQnXSA9ICdWb2xhxaUgcG8gdnl0dm9yZW4maWFjdXRlOyBrYXRlZyZvYWN1dGU7cmllJzsKJGxhbmdbJ2V2ZW50ZGVzYy1DYXRlZ29yeUVkaXRlZCddID0gJ1ZvbGHFpSBwbyB1cHJhdmVuJmlhY3V0ZTsga2F0ZWcmb2FjdXRlO3JpZSc7CiRsYW5nWydldmVudGRlc2MtQ2F0ZWdvcnlEZWxldGVkJ10gPSAnVm9sYcWlIHBvIG9kc3RyJmFhY3V0ZTtuZW4maWFjdXRlOyBrYXRlZyZvYWN1dGU7cmllJzsKJGxhbmdbJ2V2ZW50aGVscC1FdmVudEFkZGVkJ10gPSAnPHA+T2Rvc2xhbiZlYWN1dGU7IHBvIHByaWRhbiZpYWN1dGU7IHVkYWxvc3RpIGRvIGthbGVuZCZhYWN1dGU7cmEuPC9wPg0KPGg0PlBhcmFtZXRyZTwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2V2ZW50X3RpdGxlXCZxdW90OyAtIG4mYWFjdXRlO3pvdiB1ZGFsb3N0aTwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X3N1bW1hcnlcJnF1b3Q7IC0ga3ImYWFjdXRlO3RreSBwb3BpczwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2RldGFpbHNcJnF1b3Q7IC0gZGV0YWlsbiZ5YWN1dGU7IHBvcGlzPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGF0ZV9zdGFydFwmcXVvdDsgLSB6YcSNaWF0b2sgdWRhbG9zdGk8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kYXRlX2VuZFwmcXVvdDsgLSBrb25pZWMgdWRhbG9zdGk8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9jcmVhdGVkX2J5XCZxdW90OyAtIGlkIGF1dG9yYTwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2lkXCZxdW90OyAtIGlkIHVkYWxvc3RpPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUV2ZW50RWRpdGVkJ10gPSAnPHA+T2Rvc2xhbiZlYWN1dGU7IHBvIHByaWRhbiZpYWN1dGU7IGthbGVuZCZhYWN1dGU7cmEuPC9wPg0KPGg0PlBhcmFtZXRyZTwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2V2ZW50X3RpdGxlXCZxdW90OyAtIG4mYWFjdXRlO3pvdiB1ZGFsb3N0aTwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X3N1bW1hcnlcJnF1b3Q7IC0ga3ImYWFjdXRlO3RreSBwb3BpczwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2RldGFpbHNcJnF1b3Q7IC0gZGV0YWlsbiZ5YWN1dGU7IHBvcGlzPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfZGF0ZV9zdGFydFwmcXVvdDsgLSB6YcSNaWF0b2sgdWRhbG9zdGk8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kYXRlX2VuZFwmcXVvdDsgLSBrb25pZWMgdWRhbG9zdGk8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9jcmVhdGVkX2J5XCZxdW90OyAtIGlkIGF1dG9yYTwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2lkXCZxdW90OyAtIGlkIHVkYWxvc3RpPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUV2ZW50RGVsZXRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGV2ZW50IGlzIGRlbGV0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtldmVudF9pZFwmcXVvdDsgLSBUaGUgZXZlbnQgaWQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGhlbHAtQ2F0ZWdvcnlBZGRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGNhdGVnb3J5IGlzIGFkZGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfaWRcJnF1b3Q7IC0gVGhlIGNhdGVnb3J5IGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5RWRpdGVkJ10gPSAnPHA+U2VudCB3aGVuIGEgY2FsZW5kYXIgY2F0ZWdvcnkgaXMgZWRpdGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfaWRcJnF1b3Q7IC0gVGhlIGNhdGVnb3J5IGlkPC9saT4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfbmFtZVwmcXVvdDsgLSBUaGUgY2F0ZWdvcnkgbmFtZTwvbGk+DQo8bGk+XCZxdW90O2NhdGVnb3J5X29yZGVyXCZxdW90OyAtIFRoZSBjYXRlZ29yeSBzb3J0IG9yZGVyPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5RGVsZXRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGNhdGVnb3J5IGlzIGRlbGV0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9pZFwmcXVvdDsgLSBUaGUgY2F0ZWdvcnkgaWQ8L2xpPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9uYW1lXCZxdW90OyAtIFRoZSBjYXRlZ29yeSBuYW1lPC9saT4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfb3JkZXJcJnF1b3Q7IC0gVGhlIGNhdGVnb3J5IHNvcnQgb3JkZXI8L2xpPg0KPC91bD4NCic7CiRsYW5nWydtc2dfZXZlbnRhZGRlZCddID0gJ1VkYWxvc8WlIHByaWRhbiZhYWN1dGU7JzsKJGxhbmdbJ2Vycm9yX25vZXZlbnRuYW1lJ10gPSAnTiZhYWN1dGU7em92IHVkYWxvc3RpIGplIG51dG4mZWFjdXRlOyB2eXBsbmnFpSc7CiRsYW5nWydlcnJvcl9ub3VwbG9hZCddID0gJ0NoeWJhOiDFvWlhZG55IG5haHImYWFjdXRlO3ZhbiZ5YWN1dGU7IHMmdWFjdXRlO2JvciBuZWJvbCBuJmFhY3V0ZTtqZGVuJnlhY3V0ZTsnOwokbGFuZ1snZXJyb3JfaW52YWxpZGZpbGVuYW1lJ10gPSAnQ2h5YmE6IE5haHImYWFjdXRlO3ZhbiZ5YWN1dGU7IHMmdWFjdXRlO2JvciBuaWUgamUgcG92b2xlbiZ5YWN1dGU7ICh1cHJlc25pdGUgZm9ybSZhYWN1dGU7dCBzJnVhY3V0ZTtib3J1IHYgbmFzdGF2ZW5pYWNoKSc7CiRsYW5nWydlcnJvcl9wcm9ibGVtd2l0aHVwbG9hZCddID0gJ0NoeWJhOiBQcm9ibCZlYWN1dGU7bSBuYXN0YWwgcHJpIHBva3VzZSBvIG5haHJhdGllIHMmdWFjdXRlO2JvcnUnOwokbGFuZ1snZXJyb3JfZmlsZWNvcHlmYWlsZWQnXSA9ICdDaHliYTogUHJvYmwmZWFjdXRlO20gbmFzdGFsIHByaSBrb3AmaWFjdXRlO3JvdmFuJmlhY3V0ZTsgcyZ1YWN1dGU7Ym9yYSBkbyBjaWXEvm92JmVhY3V0ZTtobyB1bWllc3RuZW5pYSc7CiRsYW5nWydlcnJvcl9maWxlZXhpc3RzJ10gPSAnQ2h5YmE6IFMmdWFjdXRlO2JvciBzIHQmeWFjdXRlO210byBuJmFhY3V0ZTt6dm9tIHXFviBleGlzdHVqZSc7CiRsYW5nWydlcnJvcl9jc3ZmaWxlbm90Zm91bmQnXSA9ICdDaHliYTogTmVtJm9jaXJjO8W+ZW0gbiZhYWN1dGU7anPFpSBDU1YgcyZ1YWN1dGU7Ym9yJzsKJGxhbmdbJ2Vycm9yX2NhbnRvcGVuZmlsZSddID0gJ0NoeWJhOiBOZW0mb2NpcmM7xb5lbSBvdHZvcmnFpSBzJnVhY3V0ZTtib3InOwokbGFuZ1snZXJyb3JfY2F0ZWdvcnlleGlzdHMnXSA9ICdDaHliYTogS2F0ZWcmb2FjdXRlO3JpYSBzIG4mYWFjdXRlO3p2b20gJXMgdcW+IGV4aXN0dWplJzsKJGxhbmdbJ2NhbF9pZCddID0gJ0lkJzsKJGxhbmdbJ2NhbF9jYWxlbmRhciddID0gJ0thbGVuZCZhYWN1dGU7cic7CiRsYW5nWydjYWxfZGVmYXVsdF90ZW1wbGF0ZXMnXSA9ICdQcmVkbmFzdGF2ZW4mZWFjdXRlOyAmc2Nhcm9uO2FibCZvYWN1dGU7bnknOwokbGFuZ1snY2FsX2Rlc2NyaXB0aW9uJ10gPSAnUG9waXMnOwokbGFuZ1snY2FsX2FkZGV2ZW50J10gPSAnUHJpZGHFpSB1ZGFsb3PFpSc7CiRsYW5nWydjYWxfaW1wb3J0X2V2ZW50cyddID0gJ05haW1wb3J0b3ZhxaUgdWRhbG9zdGknOwokbGFuZ1snY2FsX2V2ZW50cyddID0gJ1VkYWxvc3RpJzsKJGxhbmdbJ2NhbF9jYXRlZ29yaWVzJ10gPSAnS2F0ZWcmb2FjdXRlO3JpZSc7CiRsYW5nWydjYWxfY2FsZW5kYXJfdGVtcGxhdGUnXSA9ICcmU2Nhcm9uO2FibCZvYWN1dGU7bmEga2FsZW5kJmFhY3V0ZTtyYSc7CiRsYW5nWydjYWxfbGlzdF90ZW1wbGF0ZSddID0gJyZTY2Fyb247YWJsJm9hY3V0ZTtuYSB6b3puYW11JzsKJGxhbmdbJ2NhbF91cGNvbWluZ2xpc3RfdGVtcGxhdGUnXSA9ICcmU2Nhcm9uO2FsJm9hY3V0ZTtuYSBuYWRjaCZhYWN1dGU7ZHphaiZ1YWN1dGU7Y2ljaCB1ZGFsb3N0JmlhY3V0ZTsnOwokbGFuZ1snY2FsX2V2ZW50X3RlbXBsYXRlJ10gPSAnJlNjYXJvbjthYmwmb2FjdXRlO25hIGRldGFpbHUgdWRhbG9zdGknOwokbGFuZ1snY2FsX3NldHRpbmdzJ10gPSAnTmFzdGF2ZW5pYSc7CiRsYW5nWydjYWxfcHJldiddID0gJyZsYXF1bzsgUHJlZGNoJmFhY3V0ZTtkemFqJnVhY3V0ZTtjZSc7CiRsYW5nWydjYWxfbmV4dCddID0gJ05hZGNoJmFhY3V0ZTtkemFqJnVhY3V0ZTtjZSAmcmFxdW87JzsKJGxhbmdbJ2NhbF9jYXRlZ29yaWVzX3VwZGF0ZWQnXSA9ICdLYXRlZyZvYWN1dGU7cmllIGFrdHVhbGl6b3ZhbiZlYWN1dGU7JzsKJGxhbmdbJ2NhbF9zZXR0aW5nc191cGRhdGVkJ10gPSAnTmFzdGF2ZW5pYSBha3R1YWxpem92YW4mZWFjdXRlOyc7CiRsYW5nWydjYWxfYWRkX2V2ZW50J10gPSAnUHJpZGFqIHVkYWxvc8WlJzsKJGxhbmdbJ2NhbF9lZGl0J10gPSAnVXByYXYnOwokbGFuZ1snY2FsX2RlbGV0ZSddID0gJ09kc3RyJmFhY3V0ZTvFiCc7CiRsYW5nWydjYWxfYXJleW91c3VyZSddID0gJ1N0ZSBzaSBpc3QmeWFjdXRlOywgxb5lIGNoY2V0ZSBvZHN0ciZhYWN1dGU7bmnFpT8nOwokbGFuZ1snY2FsX3VwZGF0ZV90ZW1wbGF0ZSddID0gJ1VwcmF2acWlICZzY2Fyb247YWJsJm9hY3V0ZTtudSc7CiRsYW5nWydjYWxfc3VuZGF5J10gPSAnTmVkZcS+YSc7CiRsYW5nWydjYWxfbW9uZGF5J10gPSAnUG9uZGVsb2snOwokbGFuZ1snY2FsX3R1ZXNkYXknXSA9ICdVdG9yb2snOwokbGFuZ1snY2FsX3dlZG5lc2RheSddID0gJ1N0cmVkYSc7CiRsYW5nWydjYWxfdGh1cnNkYXknXSA9ICcmU2Nhcm9uO3R2cnRvayc7CiRsYW5nWydjYWxfZnJpZGF5J10gPSAnUGlhdG9rJzsKJGxhbmdbJ2NhbF9zYXR1cmRheSddID0gJ1NvYm90YSc7CiRsYW5nWydjYWxfc3VuJ10gPSAnTmUnOwokbGFuZ1snY2FsX21vbiddID0gJ1BvJzsKJGxhbmdbJ2NhbF90dWVzJ10gPSAnVXQnOwokbGFuZ1snY2FsX3dlZCddID0gJ1N0JzsKJGxhbmdbJ2NhbF90aHVycyddID0gJyZTY2Fyb247dCc7CiRsYW5nWydjYWxfZnJpJ10gPSAnUGlhJzsKJGxhbmdbJ2NhbF9zYXQnXSA9ICdTbyc7CiRsYW5nWydjYWxfamFudWFyeSddID0gJ0phbnUmYWFjdXRlO3InOwokbGFuZ1snY2FsX2ZlYnJ1YXJ5J10gPSAnRmVicnUmYWFjdXRlO3InOwokbGFuZ1snY2FsX21hcmNoJ10gPSAnTWFyZWMnOwokbGFuZ1snY2FsX2FwcmlsJ10gPSAnQXByJmlhY3V0ZTtsJzsKJGxhbmdbJ2NhbF9tYXknXSA9ICdNJmFhY3V0ZTtqJzsKJGxhbmdbJ2NhbF9qdW5lJ10gPSAnSiZ1YWN1dGU7bic7CiRsYW5nWydjYWxfanVseSddID0gJ0omdWFjdXRlO2wnOwokbGFuZ1snY2FsX2F1Z3VzdCddID0gJ0F1Z3VzdCc7CiRsYW5nWydjYWxfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyJzsKJGxhbmdbJ2NhbF9vY3RvYmVyJ10gPSAnT2t0Jm9hY3V0ZTtiZXInOwokbGFuZ1snY2FsX25vdmVtYmVyJ10gPSAnTm92ZW1iZXInOwokbGFuZ1snY2FsX2RlY2VtYmVyJ10gPSAnRGVjZW1iZXInOwokbGFuZ1snY2FsX2FkZCddID0gJ1ByaWRhxaUnOwokbGFuZ1snY2FsX3VwZGF0ZSddID0gJ0FrdHVhbGl6b3ZhxaUnOwokbGFuZ1snY2FsX2V2ZW50J10gPSAnVWRhbG9zxaUnOwokbGFuZ1snY2FsX2RhdGUnXSA9ICdEJmFhY3V0ZTt0dW0nOwokbGFuZ1snY2FsX3N1bW1hcnknXSA9ICdTJnVhY3V0ZTtocm4nOwokbGFuZ1snY2FsX2RldGFpbHMnXSA9ICdEZXRhaWx5JzsKJGxhbmdbJ2NhbF9tb3JlJ10gPSAndmlhYyA+Pic7CiRsYW5nWydjYWxfcmV0dXJuJ10gPSAnTiZhYWN1dGU7dnJhdCc7CiRsYW5nWydjYWxfdG8nXSA9ICdkbyc7CiRsYW5nWydjYWxfcGFzdF9ldmVudHMnXSA9ICdVZGFsb3N0aSB2IG1pbnVsb3N0aSc7CiRsYW5nWydjYWxfdXBjb21pbmdfZXZlbnRzJ10gPSAnTmFkY2gmYWFjdXRlO2R6YWomdWFjdXRlO2NlIHVkYWxvc3RpJzsKJGxhbmdbJ2NhbF9hbnlfY2F0ZWdvcnknXSA9ICfFvWlhZG5hIGthdGVnJm9hY3V0ZTtyaWEnOwokbGFuZ1snY2FsX3Nob3dfb25seV9ldmVudHNfaW4nXSA9ICdVayZhYWN1dGU7xb4gaWJhIHVkYWxvc3RpIHYnOwokbGFuZ1snY2FsX2ZpbHRlcl9ieSddID0gJ0ZpbHRlciBvZCc7CiRsYW5nWydjYWxfZ28nXSA9ICdQcmVqZGknOwokbGFuZ1snY2FsX3RpdGxlJ10gPSAnTmFkcGlzJzsKJGxhbmdbJ2NhbF9mcm9tZGF0ZSddID0gJ09kICc7CiRsYW5nWydjYWxfdG9kYXRlJ10gPSAnRG8nOwokbGFuZ1snY2FsX3VwZGF0ZV9jYXRlZ29yaWVzJ10gPSAnVXByYXYga2F0ZWcmb2FjdXRlO3JpZSc7CiRsYW5nWydjYWxfbGFuZ3VhZ2UnXSA9ICdKYXp5ayc7CiRsYW5nWydjYWxfdXBkYXRlc2V0dGluZ3MnXSA9ICdVcHJhdiBuYXN0YXZlbmllJzsKJGxhbmdbJ2NhbF91c2VfdHdlbHZlX2hvdXJfY2xvY2snXSA9ICdWIHNlbGVjdGJveG9jaCBwb3XFviZpYWN1dGU7dmFqIDEyIGhvZGlub3YmeWFjdXRlOyDEjWFzIChhbSxwbSknOwokbGFuZ1snY2FsX2RlZmF1bHRfY2F0ZWdvcnknXSA9ICdQcmVkbmFzdGF2ZW4mYWFjdXRlOyBrYXRlZyZvYWN1dGU7cmlhJzsKJGxhbmdbJ2NhbF91cGRhdGVfZmllbGRzJ10gPSAnVXByYXYgcG9saWEnOwokbGFuZ1snZm9yY2VfY2F0ZWdvcnknXSA9ICdOdXRub3PFpSBhc3BvbiBqZWRuZWoga2F0ZWcmb2FjdXRlO3JpZSc7CiRsYW5nWydzaG93cGFzdHllYXJzJ10gPSAnS2/EvmtvIHJva292IHBvdm9sacWlIHByaSBwcmlkJmFhY3V0ZTt2YW4maWFjdXRlOyBkbyBtaW51bG9zdGknOwokbGFuZ1snc2hvd2Z1dHVyZXllYXJzJ10gPSAnS2/EvmtvIHJva292IHBvdm9sacWlIHByaSBwcmlkJmFhY3V0ZTt2YW4maWFjdXRlOyBkbyBidWQmdWFjdXRlO2Nub3N0aSc7CiRsYW5nWydoaWRlc3VtbWFyeSddID0gJ1NrcnnFpSBwb2xlIHByZSBzJnVhY3V0ZTtyaG4nOwokbGFuZ1snaGlkZWNvbnRlbnQnXSA9ICdTa3J5xaUgcG9sZSBwcmUgb2JzYWggKGRldGFpbCknOwokbGFuZ1snY2F0ZWdvcnlfcmVtaW5kZXInXSA9ICdQcm9zJmlhY3V0ZTttLCB2eWJlcnRlIGFzcG/FiCBqZWRudSBrYXRlZyZvYWN1dGU7cml1IHByZSB0JnVhY3V0ZTt0byB1ZGFsb3PFpSc7CiRsYW5nWydtb2R1bGVfZXhhbXBsZV9zdHlsZXNoZWV0J10gPSAnQ1NTIHByZSBrYWxlbmQmYWFjdXRlO3InOwokbGFuZ1snZXJyb3JfcGVybWlzc2lvbiddID0gJ1BvdHJlYnVqZXRlIHByJmlhY3V0ZTtzdSZzY2Fyb247biZlYWN1dGU7IHByJmFhY3V0ZTt2YSAgKCVzKSBwcmUgcHImaWFjdXRlO3N0dXAgayB0ZWp0byBmdW5rY2lpJzsKJGxhbmdbJ2luc3RhbGxfcG9zdG1lc3NhZ2UnXSA9ICdNYWtlIHN1cmUgdG8gc2V0IHRoZSAmcXVvdDtNb2RpZnkgQ2FsZW5kYXImcXVvdDsgcGVybWlzc2lvbiBvbiB1c2VycyB3aG8gd2lsbCBiZSBhZG1pbmlzdGVyaW5nIGNhbGVuZGFyIGV2ZW50cy4nOwokbGFuZ1snZGVsZXRldGFnZ2VkJ10gPSAnT2RzdHImYWFjdXRlO8WIIG96bmHEjWVuJmVhY3V0ZTsgdWRhbG9zdGknOwokbGFuZ1snY29uZmlybWRlbGV0ZXRhZ2dlZCddID0gJ1N0ZSBzaSBpc3QmeWFjdXRlOywgxb5lIGNoY2V0ZSB0aWV0byB1ZGFsb3N0aSBvZHN0ciZhYWN1dGU7bmnFpT8nOwokbGFuZ1sndGFnZ2VkZGVsZXRlZCddID0gJ1Z5em5hxI1lbiZlYWN1dGU7IHVkYWxvc3RpIGJvbGkgb2RzdHImYWFjdXRlO25lbiZlYWN1dGU7JzsKJGxhbmdbJ3RlbXBsYXRlcyddID0gJyZTY2Fyb247YWJsJm9hY3V0ZTtueSc7CiRsYW5nWyd0ZW1wbGF0ZV9oZWxwJ10gPSAnUG9tb2NuJmlhY3V0ZTtrIGsgJnNjYXJvbjthYmwmb2FjdXRlO25lJzsKJGxhbmdbJ2ZpbGVfdGVtcGxhdGVzJ10gPSAnUyZ1YWN1dGU7Ym9yICZzY2Fyb247YWJsJm9hY3V0ZTtueSc7CiRsYW5nWydhZGR0ZW1wbGF0ZSddID0gJ1ByaWRhxaUgJnNjYXJvbjthYmwmb2FjdXRlO251JzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnJlNjYXJvbjthYmwmb2FjdXRlO25hJzsKJGxhbmdbJ3RlbXBsYXRlbmFtZXRleHQnXSA9ICdOJmFhY3V0ZTt6b3YgJnNjYXJvbjthYmwmb2FjdXRlO255JzsKJGxhbmdbJ2VkaXR0ZW1wbGF0ZSddID0gJ1VwcmF2ICZzY2Fyb247YWJsJm9hY3V0ZTtudSc7CiRsYW5nWydkZWxldGV0ZW1wbGF0ZSddID0gJ09kc3RyJmFhY3V0ZTvFiCAmc2Nhcm9uO2FibCZvYWN1dGU7bnUnOwokbGFuZ1snbmV3dGVtcGxhdGUnXSA9ICdOb3YmeWFjdXRlOyBuJmFhY3V0ZTt6b3YgJnNjYXJvbjthYmwmb2FjdXRlO255JzsKJGxhbmdbJ3RlbXBsYXRlbmFtZWV4aXN0cyddID0gJ0NoeWJhOiAmU2Nhcm9uO2FibCZvYWN1dGU7bmEgcyB0JnlhY3V0ZTttdG8gbiZhYWN1dGU7enZvbSBleGlzdHVqZS4gUHJvcyZpYWN1dGU7bSB2eWJlcnRlIGluJnlhY3V0ZTsgbiZhYWN1dGU7em92Lic7CiRsYW5nWyd0ZW1wbGF0ZWltcG9ydGVkJ10gPSAnJlNjYXJvbjthYmwmb2FjdXRlO25hIGJvbGEgJnVhY3V0ZTtzcGUmc2Nhcm9uO25lIG5haW1wb3J0b3ZhbiZhYWN1dGU7IGRvIGRhdGFiJmFhY3V0ZTt6eSBhIGplIHByaXByYXZlbiZhYWN1dGU7IGsgcG91xb4maWFjdXRlO3Zhbml1Lic7CiRsYW5nWyd2aWV3X2RlZmF1bHRfc3R5bGVzaGVldCddID0gJ1BvenJpZcWlIHByZWRuYXN0YXZlbiZlYWN1dGU7IENTUyc7CiRsYW5nWydmaWxlbmFtZSddID0gJ04mYWFjdXRlO3pvdiBzJnVhY3V0ZTtib3J1JzsKJGxhbmdbJ2ltcG9ydHRlbXBsYXRlJ10gPSAnSW1wb3J0b3ZhxaUgJnNjYXJvbjthYmwmb2FjdXRlO251JzsKJGxhbmdbJ3RlbXBsYXRlX2RlbGV0ZWQnXSA9ICcmU2Nhcm9uO2FibCZvYWN1dGU7bmEgYm9sYSAmdWFjdXRlO3NwZSZzY2Fyb247bmUgb2RzdHImYWFjdXRlO25lbiZhYWN1dGU7IHogZGF0YWImYWFjdXRlO3ppJzsKJGxhbmdbJ3VwZGF0ZXRlbXBsYXRlc3VjY2VzcyddID0gJyZTY2Fyb247YWJsJm9hY3V0ZTtuYSBib2xhICZ1YWN1dGU7c3BlJnNjYXJvbjtuZSB1cHJhdmVuJmFhY3V0ZTsnOwokbGFuZ1sndXBkYXRldGVtcGxhdGVmYWlsdXJlJ10gPSAnRG8mc2Nhcm9uO2xvIGsgY2h5YmUgcHJpIGFrdHVhbGl6JmFhY3V0ZTtjaWkgJnNjYXJvbjthYmwmb2FjdXRlO255JzsKJGxhbmdbJ3NldHRpbmdzc2F2ZWQnXSA9ICdOYXN0YXZlbmlhIGJvbCB1bG/FvmVuJmVhY3V0ZTsnOwokbGFuZ1snY2F0ZWdvcnlkZWxldGVkJ10gPSAnS2F0ZWcmb2FjdXRlO3JpYSBvZHN0ciZhYWN1dGU7bmVuJmFhY3V0ZTsnOwokbGFuZ1snY2F0ZWdvcnl1cGRhdGVkJ10gPSAnS2F0ZWcmb2FjdXRlO3JpYSBha3R1YWxpem92YW4mYWFjdXRlOyc7CiRsYW5nWydjYXRlZ29yeWFkZGVkJ10gPSAnS2F0ZWcmb2FjdXRlO3JpYSBwcmlkYW4mYWFjdXRlOyc7CiRsYW5nWydldmVudGRlbGV0ZWQnXSA9ICdVZGFsb3PFpSBvZHN0ciZhYWN1dGU7bmVuJmFhY3V0ZTsnOwokbGFuZ1snZXZlbnR1cGRhdGVkJ10gPSAnVWRhbG9zxaUgYm9sYSBha3R1YWxpem92YW4mYWFjdXRlOyc7CiRsYW5nWydkZWZhdWx0X3BhZ2VfZXJyb3InXSA9ICdDaHliYTogViB6JmFhY3V0ZTtsb8W+a2UgJiMwMzk7TmFzdGF2ZW5pYSYjMDM5OyBtdXMmaWFjdXRlO3RlIG1hxaUgdnlicmFuJnVhY3V0ZTsgIHByZWRuYXN0YXZlbiZ1YWN1dGU7IHN0ciZhYWN1dGU7bmt1IHByZSBwb3XFviZpYWN1dGU7dmFuaWUga2FsZW5kJmFhY3V0ZTtyYSBzbyBTRU8gdXJsLiAnOwokbGFuZ1sndGltZV9hdCddID0gJ3YnOwokbGFuZ1sndHlwZSddID0gJ1R5cCc7CiRsYW5nWyduYW1lJ10gPSAnTiZhYWN1dGU7em92JzsKJGxhbmdbJ29yZGVyJ10gPSAnUG9yYWRpZSc7CiRsYW5nWydmaWVsZGFkZGVkJ10gPSAnUG9sZSBib2xvICZ1YWN1dGU7c3BlJnNjYXJvbjtuZSBwcmlkYW4mZWFjdXRlOyc7CiRsYW5nWydmaWVsZGRlbGV0ZWQnXSA9ICdQb2xlIG9kc3RyJmFhY3V0ZTtuZW4mZWFjdXRlOyc7CiRsYW5nWydmaWVsZHMnXSA9ICdWbGFzdG4mZWFjdXRlOyBwb2xpYSc7CiRsYW5nWyd0ZXh0ZmllbGQnXSA9ICdUZXh0b3YmZWFjdXRlOyBwb2xlJzsKJGxhbmdbJ3VwbG9hZGZpZWxkJ10gPSAnUG9sZSBwcmUgbmFociZhYWN1dGU7dmFuaWUgKHVwbG9hZCknOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICc8cD5LYWxlbmQmYWFjdXRlO3IgIGplIG1vZHVsLCBrdG9yJnlhY3V0ZTsgc2wmdWFjdXRlO8W+aSBuYSB6b2JyYXplbmllIGFrY2kmaWFjdXRlOy9ldmVudG92IG5hIFZhJnNjYXJvbjtlaiBzdHImYWFjdXRlO25rZS4gViBwciZpYWN1dGU7cGFkZSwgxb5lIGplIG1vZHVsIG5haW4mc2Nhcm9uO3RhbG92YW4meWFjdXRlOywgbiZhYWN1dGU7amRldGUgamVobyBhZG1pbmlzdHImYWFjdXRlO2NpdSB2IG1lbnUgT2JzYWguPC9wPic7CiRsYW5nWydkZWZhdWx0Y2FsZW5kYXJwYWdlJ10gPSAnUHJlZG5hc3RhdmVuJmFhY3V0ZTsgc3RyJmFhY3V0ZTtua2EgcHJlIGthbGVuZCZhYWN1dGU7ci4gVCZhYWN1dGU7dG8gc3RyJmFhY3V0ZTtua2EgbXVzJmlhY3V0ZTsgb2JzYWhvdmHFpSB0YWcga2FsZW5kJmFhY3V0ZTtyYS4gTmFzdGF2ZW5pZSBqZSBwb3RyZWJuJmVhY3V0ZTsgdiBwciZpYWN1dGU7cGFkZSBwb3XFviZpYWN1dGU7dmFuaWEgcHJldHR5IFVSTHMuJzsKJGxhbmdbJ3VwbG9hZGRpcmVjdG9yeSddID0gJ0FkcmVzJmFhY3V0ZTtyLCBrZGUgYnVkJnVhY3V0ZTsgbmFociZhYWN1dGU7dmFuJmVhY3V0ZTsgcyZ1YWN1dGU7Ym9yeSc7CiRsYW5nWyd1cGxvYWRmaWxldHlwZXMnXSA9ICdQb3ZvbGVuJmVhY3V0ZTsgdHlweSBzJnVhY3V0ZTtib3Jvdic7CiRsYW5nWyd1cGxvYWR1bmlxdWUnXSA9ICdaYWJlenBlxI1pxaUgdW5payZhYWN1dGU7dG5lIG4mYWFjdXRlO3p2eSBzJnVhY3V0ZTtib3Jvdic7CiRsYW5nWyd0aHVtYl93aWR0aCddID0gJ0TEusW+a2EgbiZhYWN1dGU7aMS+YWR1JzsKJGxhbmdbJ3RodW1iX2hlaWdodCddID0gJ1YmeWFjdXRlOyZzY2Fyb247a2EgbiZhYWN1dGU7aMS+YWR1JzsKJGxhbmdbJ2xhcmdlX3dpZHRoJ10gPSAnRMS6xb5rYSB2ZcS+ayZlYWN1dGU7aG8gb2JyJmFhY3V0ZTt6a3UnOwokbGFuZ1snbGFyZ2VfaGVpZ2h0J10gPSAnViZ5YWN1dGU7JnNjYXJvbjtrYSB2ZcS+ayZlYWN1dGU7aG8gb2JyJmFhY3V0ZTt6a3UnOwokbGFuZ1snY2FsX3JlY3VyX3BlcmlvZCddID0gJ09wYWt1amUgc2EnOwokbGFuZ1snY2FsX3JlY3VyX3VudGlsJ10gPSAnT3Bha3VqZSBzIGRvJzsKJGxhbmdbJ2hlbHBfdGVtcGxhdGUnXSA9ICc8cD48Yj5QcmludCBBdXRob3IgTmFtZTo8L2I+PC9wPg0KPGNvZGU+QXV0aG9yOiB7JGV2ZW50LmF1dGhvcm5hbWV9PC9jb2RlPg0KJzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sv_SE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FyZXlvdXN1cmVfcmVtb3ZlY29uZmxpY3RpbmcnXSA9ICdUaGlzIGFjdGlvbiB3aWxsIHJlbW92ZSBhbnkgZXZlbnRzIHRoYXQgY29uZmxpY3Qgd2l0aCBub24tb3ZlcmxhcHBhYmxlIGV2ZW50cy4gIEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkbyB0aGlzPyc7CiRsYW5nWydmaWx0ZXJfY29uZmxpY3RpbmcnXSA9ICdGaWx0ZXIgQ29uZmxpY3RpbmcgRXZlbnRzJzsKJGxhbmdbJ292ZXJsYXBfYWN0aW9uX3JlbW92ZSddID0gJ1NpbGVudGx5IHJlbW92ZSBjb25mbGljdGluZyBldmVudHMnOwokbGFuZ1snb3ZlcmxhcF9hY3Rpb25fZXJyb3InXSA9ICdWaXNhIGV0dCBmZWwnOwokbGFuZ1sncHJvbXB0X292ZXJsYXBfYWN0aW9uJ10gPSAnV2hhdCBzaG91bGQgaGFwcGVuIHdoZW4gYSBjb25mbGljdCBpcyBkZXRlY3RlZCBkdXJpbmcgZWRpdGluZyBvciBhZGRpbmcgb2YgYW4gZXZlbnQnOwokbGFuZ1snZXJyb3JfZXZlbnRfY29uZmxpY3QnXSA9ICdUaGUgZXZlbnQgdmFsdWVzIHNwZWNpZmllZCBvdmVybGFwIHdpdGggYW4gZXhpc3RpbmcgZXZlbnQgdGhhdCBkb2VzIG5vdCBhbGxvdyBjb25mbGljdHMnOwokbGFuZ1snY2FsX2luZm9fb3ZlcmxhcCddID0gJ0cmYXVtbDtsbGVyIGVuZGFzdCBmJm91bWw7ciBoJmF1bWw7bmRlbHNlciBtZWQgZW4gc2x1dHRpZCAoZWxsZXIgaGVsYS1kYWdlbiBoJmF1bWw7bmRlbHNlciknOwokbGFuZ1snY2FsX292ZXJsYXAnXSA9ICdUaWxsJmFyaW5nO3QgbnlhIGgmYXVtbDtuZGVsc2VyIGF0dCAmb3VtbDt2ZXJsYXBwYSBtZWQgZGVuIGgmYXVtbDtyJzsKJGxhbmdbJ3Byb21wdF9vdmVybGFwX3BvbGljeSddID0gJ0V2ZW50IE92ZXJsYXAgUG9saWN5JzsKJGxhbmdbJ3BvbGljeV9hbGwnXSA9ICdBbGxhIGgmYXVtbDtuZGVsc2VyIGYmYXJpbmc7ciAmb3VtbDt2ZXJsYXBwYSc7CiRsYW5nWydwb2xpY3lfbm9uZSddID0gJ0gmYXVtbDtuZGVsc2VyIGYmYXJpbmc7ciBpbnRlICZvdW1sO3ZlcmxhcHBhJzsKJGxhbmdbJ3BvbGljeV9pbmRpdmlkdWFsJ10gPSAnRGVjaWRlZCBvbiBhbiBldmVudCBieSBldmVudCBiYXNpcyc7CiRsYW5nWydsYmxfYmFjayddID0gJ1RpbGxiYWthJzsKJGxhbmdbJ2xibF90ZW1wbGF0ZXMnXSA9ICdNYWxsYXInOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZXh0QXJlYSc7CiRsYW5nWydlcnJvcl9jYWxlbmRhcl9pbmNvbXBhdGlibGUnXSA9ICdWaSBoYXIgdXBwdCZhdW1sO2NrdCBhdHQgQ2FsZW5kZXItbW9kdWxlbiBvY2tzJmFyaW5nOyAmYXVtbDtyIGluc3RhbGxlcmFkLiBEZW4gaCZhdW1sO3IgbW9kdWxlbiAmYXVtbDtyIGludGUga29tcGF0aWJlbCBtZWQgQ2FsZW5kZXItbW9kdWxlbiBvY2gga2FuIGludGUgZmlubmFzIHRpbGxzYW1tYW5zIG1lZCBkZW4gcCZhcmluZzsgc2FtbWEgaW5zdGFsbGF0aW9uLiBWYXIgZ29kIGF2aW5zdGFsbGVyYSBDYWxlbmRlci1tb2R1bGVuLiAgJzsKJGxhbmdbJ2Vycm9yX2V2ZW50X25vdF9mb3VuZCddID0gJ0FudGluZ2VuICZhdW1sO3IgaCZhdW1sO25kZWxzZSBfaWQgaW50ZSBpIGRhdGFiYXNlbiwgZWxsZXIgcyZhcmluZzsgZmlubnMgZGV0IG1lciAmYXVtbDtuIGVuIGgmYXVtbDtuZGVsc2UgbWVkIGRldHRhIGlkISAoJWQpJzsKJGxhbmdbJ2ZpcnN0X3BhZ2UnXSA9ICc8PCc7CiRsYW5nWydwcmV2X3BhZ2UnXSA9ICc8JzsKJGxhbmdbJ25leHRfcGFnZSddID0gJz4nOwokbGFuZ1snbGFzdF9wYWdlJ10gPSAnPj4nOwokbGFuZ1sncGFnZV9vZiddID0gJ1NpZGEgJWQgYXYgJWQnOwokbGFuZ1snc2VhcmNoX3Jlc3VsdHMnXSA9ICdLYWxlbmRlciBzJm91bWw7a3Jlc3VsdGF0JzsKJGxhbmdbJ3NlYXJjaF93b3JkcyddID0gJ1Mmb3VtbDtrb3JkJzsKJGxhbmdbJ25vX3Jlc3VsdHNfZm91bmQnXSA9ICdJbmdhIHJlc3VsdGF0IGhpdHRhZGVzIHNvbSBzcGVjaWZlcmFkZXMgaSBzJm91bWw7a2ZyJmFyaW5nO2dhbic7CiRsYW5nWydmcmVxdWVuY3knXSA9ICdGcmVrdmVucyc7CiRsYW5nWydzcGVjaWZpZWRfZGF0ZSddID0gJ0FudiZhdW1sO25kIGRldCBzcGVjaWZpY2VyYWRlIGRhdHVtZXQnOwokbGFuZ1snZmlyc3Rfc3VuZGF5J10gPSAnRiZvdW1sO3JzdGEgcyZvdW1sO25kYWdlbiBpIG0mYXJpbmc7bmFkZW4nOwokbGFuZ1snZmlyc3RfbW9uZGF5J10gPSAnRiZvdW1sO3JzdGEgbSZhcmluZztuZGFnZW4gaSBtJmFyaW5nO25hZGVuJzsKJGxhbmdbJ2ZpcnN0X3R1ZXNkYXknXSA9ICdGJm91bWw7cnN0YSB0aXNkYWdlbiBpIG0mYXJpbmc7bmFkZW4nOwokbGFuZ1snZmlyc3Rfd2VkbmVzZGF5J10gPSAnRiZvdW1sO3JzdGEgb25zZGFnZW4gaSBtJmFyaW5nO25hZGVuJzsKJGxhbmdbJ2ZpcnN0X3RodXJzZGF5J10gPSAnRiZvdW1sO3JzdGEgdG9yc2RhZ2VuIGkgbSZhcmluZztuYWRlbic7CiRsYW5nWydmaXJzdF9mcmlkYXknXSA9ICdGJm91bWw7cnN0YSBmcmVkYWdlbiBpIG0mYXJpbmc7bmFkZW4nOwokbGFuZ1snZmlyc3Rfc2F0dXJkYXknXSA9ICdGJm91bWw7cnN0YSBsJm91bWw7cmRhZ2VuIGkgbSZhcmluZztuYWRlbic7CiRsYW5nWydzZWNvbmRfc3VuZGF5J10gPSAnQW5kcmEgcyZvdW1sO25kYWdlbiBpIG0mYXJpbmc7bmFkZW4nOwokbGFuZ1snc2Vjb25kX21vbmRheSddID0gJ0FuZHJhIG0mYXJpbmc7bmRhZ2VuIGkgbSZhcmluZztuYWRlbic7CiRsYW5nWydzZWNvbmRfdHVlc2RheSddID0gJ0FuZHJhIHRpc2RhZ2VuIGkgbSZhcmluZztuYWRlbic7CiRsYW5nWydzZWNvbmRfd2VkbmVzZGF5J10gPSAnQW5kcmEgb25zZGFnZW4gaSBtJmFyaW5nO25hZGVuJzsKJGxhbmdbJ3NlY29uZF90aHVyc2RheSddID0gJ0FuZHJhIHRvcnNkYWdlbiBpIG0mYXJpbmc7bmFkZW4nOwokbGFuZ1snc2Vjb25kX2ZyaWRheSddID0gJ0FuZHJhIGZyZWRhZ2VuIGkgbSZhcmluZztuYWRlbic7CiRsYW5nWydzZWNvbmRfc2F0dXJkYXknXSA9ICdBbmRyYSBsJm91bWw7cmRhZ2VuIGkgbSZhcmluZztuYWRlbic7CiRsYW5nWyd0aGlyZF9zdW5kYXknXSA9ICdUcmVkamUgcyZvdW1sO25kYWdlbiBpIG0mYXJpbmc7bmFkZW4nOwokbGFuZ1sndGhpcmRfbW9uZGF5J10gPSAnVHJlZGplIG0mYXJpbmc7bmRhZ2VuIGkgbSZhcmluZztuYWRlbic7CiRsYW5nWyd0aGlyZF90dWVzZGF5J10gPSAnVHJlZGplIHRpc2RhZ2VuIGkgbSZhcmluZztuYWRlbic7CiRsYW5nWyd0aGlyZF93ZWRuZXNkYXknXSA9ICdUcmVkamUgb25zZGFnZW4gaSBtJmFyaW5nO25hZGVuJzsKJGxhbmdbJ3RoaXJkX3RodXJzZGF5J10gPSAnVHJlZGplIHRvcnNkYWdlbiBpIG0mYXJpbmc7bmFkZW4nOwokbGFuZ1sndGhpcmRfZnJpZGF5J10gPSAnVHJlZGplIGZyZWRhZ2VuIGkgbSZhcmluZztuYWRlbic7CiRsYW5nWyd0aGlyZF9zYXR1cmRheSddID0gJ1RyZWRqZSBsJm91bWw7cmRhZ2VuIGkgbSZhcmluZztuYWRlbic7CiRsYW5nWydmb3VydGhfc3VuZGF5J10gPSAnRmomYXVtbDtyZGUgcyZvdW1sO25kYWdlbiBpIG0mYXJpbmc7bmFkZW4nOwokbGFuZ1snZm91cnRoX21vbmRheSddID0gJ0ZqJmF1bWw7cmRlIG0mYXJpbmc7bmRhZ2VuIGkgbSZhcmluZztuYWRlbic7CiRsYW5nWydmb3VydGhfdHVlc2RheSddID0gJ0ZqJmF1bWw7cmRlIHRpc2RhZ2VuIGkgbSZhcmluZztuYWRlbic7CiRsYW5nWydmb3VydGhfd2VkbmVzZGF5J10gPSAnRmomYXVtbDtyZGUgb25zZGFnZW4gaSBtJmFyaW5nO25hZGVuJzsKJGxhbmdbJ2ZvdXJ0aF90aHVyc2RheSddID0gJ0ZqJmF1bWw7cmRlIHRvcnNkYWdlbiBpIG0mYXJpbmc7bmFkZW4nOwokbGFuZ1snZm91cnRoX2ZyaWRheSddID0gJ0ZqJmF1bWw7cmRlIGZyZWRhZ2VuIGkgbSZhcmluZztuYWRlbic7CiRsYW5nWydmb3VydGhfc2F0dXJkYXknXSA9ICdGaiZhdW1sO3JkZSBsJm91bWw7cmRhZ2VuIGkgbSZhcmluZztuYWRlbic7CiRsYW5nWydsYXN0X3N1bmRheSddID0gJ1Npc3RhIHMmb3VtbDtuZGFnZW4gaSBtJmFyaW5nO25hZGVuJzsKJGxhbmdbJ2xhc3RfbW9uZGF5J10gPSAnU2lzdGEgbSZhcmluZztuZGFnZW4gaSBtJmFyaW5nO25hZGVuJzsKJGxhbmdbJ2xhc3RfdHVlc2RheSddID0gJ1Npc3RhIHRpc2RhZ2VuIGkgbSZhcmluZztuYWRlbic7CiRsYW5nWydsYXN0X3dlZG5lc2RheSddID0gJ1Npc3RhIG9uc2RhZ2VuIGkgbSZhcmluZztuYWRlbic7CiRsYW5nWydsYXN0X3RodXJzZGF5J10gPSAnU2lzdGEgdG9yc2RhZ2VuIGkgbSZhcmluZztuYWRlbic7CiRsYW5nWydsYXN0X2ZyaWRheSddID0gJ1Npc3RhIGZyZWRhZ2VuIGkgbSZhcmluZztuYWRlbic7CiRsYW5nWydsYXN0X3NhdHVyZGF5J10gPSAnU2lzdGEgbCZvdW1sO3JkYWdlbiBpIG0mYXJpbmc7bmFkZW4nOwokbGFuZ1snZXJyb3JfaW52YWxpZF9yZWN1cl9tb250aGx5X2ZyZXEnXSA9ICdPZ2lsdGlnIGZyZWt2ZW5zLiBEdSBrYW4gaW50ZSBhbmdlIGImYXJpbmc7ZGUgZGV0IGFuZ2l2bmEgZGF0dW1ldCBvY2ggYW5kcmEgdiZhdW1sO3JkZW4nOwokbGFuZ1snc2VhcmNocmVzdWx0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0wmYXVtbDtnZyB0aWxsL3JlZGlnZXJhIFMmb3VtbDtrcmVzdWx0YXRzbWFsbGVuJzsKJGxhbmdbJ2luZm9fc2VhcmNocmVzdWx0X3RlbXBsYXRlX3RhYiddID0gJ0xpc3RhbiAmb3VtbDt2ZXIgZGUgbWFsbGFyIHNvbSBmaW5ucyBmJm91bWw7ciBkZSBzJm91bWw7a3Jlc3VsdGF0IHNvbSB2aXNhcyc7CiRsYW5nWydpbmZvX3N5c2RmbHRfc2VhcmNocmVzdWx0X3RlbXBsYXRlJ10gPSAnU3RhbmRhcmQgUyZvdW1sO2tyZXN1bHRhdHNtYWxsJzsKJGxhbmdbJ2NhbF9zZWFyY2hfcmVzdWx0X3RlbXBsYXRlcyddID0gJ1Mmb3VtbDtrcmVzdWx0YXRzbWFsbGFyJzsKJGxhbmdbJ2Vycm9yX3F1ZXJ5X2ZhaWxlZCddID0gJ0RhdGFiYXNmciZhcmluZztnYW4gTWlzc2x5Y2thZGVzJzsKJGxhbmdbJ2Vycm9yX3NlYXJjaF9pbnZhbGlkX2RhdGVzJ10gPSAnT2dpbHRpZ2EgcyZvdW1sO2tkYXR1bSBzcGVjaWZpY2VyYWRlJzsKJGxhbmdbJ3RleHQnXSA9ICd0ZXh0JzsKJGxhbmdbJ3NlYXJjaCddID0gJ1Mmb3VtbDtrJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnS2F0ZWdvcmknOwokbGFuZ1snaW5mb19zeXNkZmx0X3NlYXJjaF90ZW1wbGF0ZSddID0gJ1N0YW5kYXJkIFMmb3VtbDtrZm9ybXVsJmF1bWw7cnNtYWxsJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMJmF1bWw7Z2cgdGlsbC9yZWRpZ2VyYSBTJm91bWw7a2Zvcm11bCZhdW1sO3JzbWFsbCc7CiRsYW5nWydpbmZvX3NlYXJjaF90ZW1wbGF0ZV90YWInXSA9ICdMaXN0YW4gbWVkIG1hbGxhciBzb20gJmF1bWw7ciB0aWxsZyZhdW1sO25nbGlnYSBmJm91bWw7ciBzJm91bWw7a2Zvcm11bCZhdW1sO3JldCc7CiRsYW5nWydjYWxfc2VhcmNoX2Zvcm1fdGVtcGxhdGVzJ10gPSAnUyZvdW1sO2tmb3JtdWwmYXVtbDtycyBtYWxsJzsKJGxhbmdbJ21heCddID0gJ21heGltYWx0JzsKJGxhbmdbJ3RpbWVzJ10gPSAnZyZhcmluZztuZ2VyJzsKJGxhbmdbJ29uJ10gPSAncCZhcmluZzsnOwokbGFuZ1snYXJleW91c3VyZV91bmluc3RhbGwnXSA9ICcmQXVtbDtyIGR1IHMmYXVtbDtrZXIgcCZhcmluZzsgYXR0IGR1IHZpbGwgZyZvdW1sO3JhIGRldHRhPyBPbSBkdSBmb3J0cyZhdW1sO3R0ZXIgcyZhcmluZzsga29tbWVyIGFsbCBkYXRhIHNvbSBhc3NvY2llcmFzIG1lZCBkZW5uYSBtb2R1bCBhdHQgcmFkZXJhcy4nOwokbGFuZ1sncG9zdF91bmluc3RhbGwnXSA9ICdLYWxlbmRlcm1vZHVsZW4gaGFyIGF2aW5zdGFsbGVyYXQgb2NoIGFsbGEgZXZlbmVtYW5nIG9jaCBtYWxsaW5mb3JtYXRpb24gaSBzYW1iYW5kIG1lZCBkZW5uYSBtb2R1bCBoYXIgdGFnaXRzIGJvcnQnOwokbGFuZ1snZmllbGR1cGRhdGVkJ10gPSAnRiZhdW1sO2x0ZXQgdXBwZGF0ZXJhdCc7CiRsYW5nWydldmVyeSddID0gJ1ZhcmplJzsKJGxhbmdbJ29yJ10gPSAnZWxsZXInOwokbGFuZ1sndXBkYXRlX2NoaWxkcmVuJ10gPSAnVXBwZGF0ZXJhIENoaWxkIEV2ZW50cyc7CiRsYW5nWydlcnJvcl9ub2NhdGVnb3J5J10gPSAnRHUgbSZhcmluZztzdGUgdiZhdW1sO2xqYSBtaW5zdCBlbiBrYXRlZ29yaSc7CiRsYW5nWydlcnJvcl9ub3RoaW5nc2VsZWN0ZWQnXSA9ICdJbmdlbnRpbmcgaGFyIHZhbHRzIGYmb3VtbDtyIGF0dCByYWRlcmEnOwokbGFuZ1snZXJyb3JfZXZlbnRvdmVybGFwJ10gPSAnRGVuICZhcmluZzt0ZXJrb21tYW5kZSBoJmF1bWw7bmRlbHNlbnMgcGFyYW1ldHJhciBzb20gZHUgaGFyIGFuZ2V0dCBza3VsbGUgcmVzdWx0ZXJhIGkgJm91bWw7dmVybGFwcGFuZGUgaCZhdW1sO25kZWxzZXIuJzsKJGxhbmdbJ3JlY3VycyddID0gJyZBcmluZzt0ZXJrb21tZXInOwokbGFuZ1snZXJyb3JfaW52YWxpZF9kYXRlcyddID0gJ0VuIGVsbGVyIGZsZXJhIGF2IGRlIGRhdHVtdiZhdW1sO3JkZW4gc29tIGFuZ2V0dHMgdmFyIG9naWx0aWcnOwokbGFuZ1snc3VuZGF5J10gPSAnUyZvdW1sO25kYWcnOwokbGFuZ1snbW9uZGF5J10gPSAnTSZhcmluZztuZGFnJzsKJGxhbmdbJ3R1ZXNkYXknXSA9ICdUaXNkYWcnOwokbGFuZ1snd2VkbmVzZGF5J10gPSAnT25zZGFnJzsKJGxhbmdbJ3RodXJzZGF5J10gPSAnVG9yc2RhZyc7CiRsYW5nWydmcmlkYXknXSA9ICdGcmVkYWcnOwokbGFuZ1snc2F0dXJkYXknXSA9ICdMJm91bWw7cmRhZyc7CiRsYW5nWydhYmJyX3N1bmRheSddID0gJ1Mmb3VtbDsnOwokbGFuZ1snYWJicl9tb25kYXknXSA9ICdNJmFyaW5nOyc7CiRsYW5nWydhYmJyX3R1ZXNkYXknXSA9ICdUaSc7CiRsYW5nWydhYmJyX3dlZG5lc2RheSddID0gJ09uJzsKJGxhbmdbJ2FiYnJfdGh1cnNkYXknXSA9ICdUbyc7CiRsYW5nWydhYmJyX2ZyaWRheSddID0gJ0ZyJzsKJGxhbmdbJ2FiYnJfc2F0dXJkYXknXSA9ICdMJm91bWw7JzsKJGxhbmdbJ3dlZWtkYXlzJ10gPSAnVmVja29kYWdhcic7CiRsYW5nWydwbHVyYWxfZGFpbHknXSA9ICdEYWdhcic7CiRsYW5nWydwbHVyYWxfd2Vla2x5J10gPSAnVmVja29yJzsKJGxhbmdbJ3BsdXJhbF9tb250aGx5J10gPSAnTSZhcmluZztuYWRlcic7CiRsYW5nWydwbHVyYWxfeWVhcmx5J10gPSAnJkFyaW5nO3InOwokbGFuZ1snbm8nXSA9ICdOZWonOwokbGFuZ1snZGFpbHknXSA9ICdEYWdsaWcnOwokbGFuZ1snd2Vla2x5J10gPSAnVmVja292aXMnOwokbGFuZ1snbW9udGhseSddID0gJ00mYXJpbmc7bmFkc3Zpcyc7CiRsYW5nWyd5ZWFybHknXSA9ICcmQXJpbmc7cmxpZyc7CiRsYW5nWydpbnRlcnZhbCddID0gJ1JlcGV0ZXJhIHZhcmplJzsKJGxhbmdbJ2NhbF9yZWN1cl9kZXRhaWxzJ10gPSAnJkFyaW5nO3RlcmtvbW1hbmRlIGgmYXVtbDtuZGVsc2VpbmZvcm1hdGlvbic7CiRsYW5nWyd1bmxpbWl0ZWQnXSA9ICdPJmF1bWw7bmRsaWd0JzsKJGxhbmdbJ21heF9yZWN1cl9ldmVudHMnXSA9ICdNYXhpbWFsdCBhbnRhbCBhdiBjaGlsZCBldmVudHMnOwokbGFuZ1sndXNlX3RvX2RhdGUnXSA9ICdTcGVjaWZlcmEgZXR0IGFubmF0IHN0b3BwZGF0dW0/JzsKJGxhbmdbJ2NhbmNlbCddID0gJ0F2YnJ5dCc7CiRsYW5nWydzaG93X2NoaWxkX2V2ZW50cyddID0gJ1Nob3cgQ2hpbGQgRXZlbnRzJzsKJGxhbmdbJ24vYSddID0gJ04vQSc7CiRsYW5nWydyZWN1cnNfdW50aWwnXSA9ICdQZXJpb2Rpc2sgdGlsbCc7CiRsYW5nWydwYXJlbnQnXSA9ICdGJm91bWw7ciZhdW1sO2xkZXInOwokbGFuZ1sncmVjdXJfcGVyaW9kJ10gPSAnUGVyaW9kaXNrIHRpZCc7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0ZXIgJzsKJGxhbmdbJ3N0YXJ0X2RhdGUnXSA9ICdTdGFydGRhdHVtJzsKJGxhbmdbJ2VuZF9kYXRlJ10gPSAnU3RvcGRhdHVtJzsKJGxhbmdbJ2luZm9fdXBjb21pbmdsaXN0X3RlbXBsYXRlX3RhYiddID0gJ0xpc3RhbiBtZWQgbWFsbGFyIHNvbSAmYXVtbDtyIHRpbGxnJmF1bWw7bmdsaWdhIGYmb3VtbDtyIGtvbW1hbmRlbGlzdGF2aXNuaW5nYXInOwokbGFuZ1sndXBjb21pbmdsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0wmYXVtbDtnZyB0aWxsL3JlZGlnZXJhIGVuIGtvbW1hbmRlbGlzdGEtdmlzbmluZ3NtYWxsJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF91cGNvbWluZ2xpc3RfdGVtcGxhdGUnXSA9ICdTeXN0ZW1zdGFuZGFyZCBmJm91bWw7ciBrb21tYW5kZWxpc3RhbWFsbCc7CiRsYW5nWydpbmZvX2xpc3RfdGVtcGxhdGVfdGFiJ10gPSAnTGlzdGFuIG1lZCBtYWxsYXIgc29tICZhdW1sO3IgdGlsbGcmYXVtbDtuZ2xpZ2EgZiZvdW1sO3IgbGlzdC12aXNuaW5nYXInOwokbGFuZ1snbGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMJmF1bWw7Z2cgdGlsbC9yZWRpZ2VyYSBlbiBsaXN0YS12aXNuaW5nc21hbGwnOwokbGFuZ1snaW5mb19zeXNkZmx0X2xpc3RfdGVtcGxhdGUnXSA9ICdTeXN0ZW1zdGFuZGFyZCBmJm91bWw7ciBsaXN0bWFsbCc7CiRsYW5nWydpbmZvX2V2ZW50X3RlbXBsYXRlX3RhYiddID0gJ0xpc3RhbiBtZWQgbWFsbGFyIHNvbSAmYXVtbDtyIHRpbGxnJmF1bWw7bmdsaWdhIGYmb3VtbDtyIGgmYXVtbDtuZGVsc2V2aXNuaW5nYXInOwokbGFuZ1snZXZlbnR0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTCZhdW1sO2dnIHRpbGwvcmVkaWdlcmEgaCZhdW1sO25kZWxzZXZpc25pbmdzbWFsbC0nOwokbGFuZ1snaW5mb19zeXNkZmx0X2V2ZW50X3RlbXBsYXRlJ10gPSAnU3lzdGVtc3RhbmRhcmQgZiZvdW1sO3IgaCZhdW1sO25kZWxzZW1hbGwnOwokbGFuZ1snaW5mb19jYWxlbmRhcl90ZW1wbGF0ZV90YWInXSA9ICdMaXN0YW4gbWVkIG1hbGxhciBzb20gJmF1bWw7ciB0aWxsZyZhdW1sO25nbGlnYSBmJm91bWw7ciBrYWxlbmRlcnZpc25pbmdhcic7CiRsYW5nWydjYWxlbmRhcnRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMJmF1bWw7Z2cgdGlsbC9yZWRpZ2VyYSBlbiBrYWxlbmRlcnZpc25pbmdzbWFsbCc7CiRsYW5nWydpbmZvX3N5c2RmbHRfY2FsZW5kYXJfdGVtcGxhdGUnXSA9ICdTeXN0ZW1zdGFuZGFyZCBmJm91bWw7ciBrYWxlbmRlcm1hbGwnOwokbGFuZ1snaW5mb19zeXNkZmx0X3RlbXBsYXRlJ10gPSAnRGV0dGEgZm9ybXVsJmF1bWw7ciBkZWZpbmllcmFyIHZpbGtlbiBtYWxsIHNvbSBza2EgYW52JmF1bWw7bmRhcyBuJmF1bWw7ciBkdSBrbGlja2FyIHAmYXJpbmc7ICZxdW90O055IG1hbGwmcXVvdDsgaSByZXNwZWt0aXZlIGZsaWsuIE9tIGRldHRhIHYmYXVtbDtyZGUgJmF1bWw7bmRyYXMgaGFyIGRldCBpbmdlbiBvbWVkZWxiYXIgcCZhcmluZzt2ZXJrYW4gcCZhcmluZzsgZGUgdmlzbmluZ2FyIHNvbSBnZW5lcmVyYXMgZnImYXJpbmc7biBkZW4gaCZhdW1sO3IgbW9kdWxlbi4nOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50QWRkZWQnXSA9ICdBbnJvcGFzIGVmdGVyIGF0dCBlbiBoJmF1bWw7bmRlbHNlIGkga2FsZW5kZXJuIGxhZ3RzIHRpbGwnOwokbGFuZ1snZXZlbnRkZXNjLUV2ZW50RWRpdGVkJ10gPSAnQW5yb3BhcyBlZnRlciBhdHQgZW4gZXhpc3RlcmFuZGUgaCZhdW1sO25kZWxzZSBpIGthbGVuZGVybiByZWRpZ2VyYXRzJzsKJGxhbmdbJ2V2ZW50ZGVzYy1FdmVudERlbGV0ZWQnXSA9ICdBbnJvcGFzIGVmdGVyIGF0dCBlbiBoJmF1bWw7bmRlbHNlIGkga2FsZW5kZXJuIGhhciB0YWdpdHMgYm9ydCc7CiRsYW5nWydldmVudGRlc2MtQ2F0ZWdvcnlBZGRlZCddID0gJ0Fucm9wYXMgZWZ0ZXIgYXR0IGVuIGthdGVnb3JpIGhhciBza2FwYXRzJzsKJGxhbmdbJ2V2ZW50ZGVzYy1DYXRlZ29yeUVkaXRlZCddID0gJ0Fucm9wYXMgZWZ0ZXIgYXR0IGVuIGthdGVnb3JpIGhhciByZWRpZ2VyYXRzJzsKJGxhbmdbJ2V2ZW50ZGVzYy1DYXRlZ29yeURlbGV0ZWQnXSA9ICdBbnJvcGFzIGVmdGVyIGF0dCBlbiBrYXRlZ29yaSBoYXIgdGFnaXRzIGJvcnQnOwokbGFuZ1snZXZlbnRoZWxwLUV2ZW50QWRkZWQnXSA9ICc8cD5TZW50IHdoZW4gYSBjYWxlbmRhciBldmVudCBpcyBhZGRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+XCZxdW90O2V2ZW50X3RpdGxlXCZxdW90OyAtIEV2ZW50IFRpdGxlPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfc3VtbWFyeVwmcXVvdDsgLSBTdW1tZXJhbmRlIHRleHQ8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kZXRhaWxzXCZxdW90OyAtIERldGFsamVyYWQgYmVza3Jpdm5pbmc8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kYXRlX3N0YXJ0XCZxdW90OyAtIEgmYXVtbDtuZGVsc2VucyBzdGFydGRhdHVtIG9jaCB0aWQ8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kYXRlX2VuZFwmcXVvdDsgLSBUaGUgZXZlbnQgZW5kIGRhdGUvdGltZTwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2NyZWF0ZWRfYnlcJnF1b3Q7IC0gVGhlIHVzZXJpZCBvZiB0aGUgYXV0aG9yPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfaWRcJnF1b3Q7IC0gVGhlIGV2ZW50IGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUV2ZW50RWRpdGVkJ10gPSAnPHA+U2VudCB3aGVuIGEgY2FsZW5kYXIgZXZlbnQgaXMgZWRpdGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7ZXZlbnRfdGl0bGVcJnF1b3Q7IC0gRXZlbnQgVGl0bGU8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9zdW1tYXJ5XCZxdW90OyAtIFN1bW1hcnkgVGV4dDwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2RldGFpbHNcJnF1b3Q7IC0gRGV0YWlsZWQgRGVzY3JpcHRpb248L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kYXRlX3N0YXJ0XCZxdW90OyAtIFRoZSBldmVudCBzdGFydCBkYXRlL3RpbWU8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kYXRlX2VuZFwmcXVvdDsgLSBUaGUgZXZlbnQgZW5kIGRhdGUvdGltZTwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2NyZWF0ZWRfYnlcJnF1b3Q7IC0gVGhlIHVzZXJpZCBvZiB0aGUgYXV0aG9yPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfaWRcJnF1b3Q7IC0gVGhlIGV2ZW50IGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUV2ZW50RGVsZXRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGV2ZW50IGlzIGRlbGV0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtldmVudF9pZFwmcXVvdDsgLSBUaGUgZXZlbnQgaWQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGhlbHAtQ2F0ZWdvcnlBZGRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGNhdGVnb3J5IGlzIGFkZGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfaWRcJnF1b3Q7IC0gVGhlIGNhdGVnb3J5IGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5RWRpdGVkJ10gPSAnPHA+U2VudCB3aGVuIGEgY2FsZW5kYXIgY2F0ZWdvcnkgaXMgZWRpdGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfaWRcJnF1b3Q7IC0gVGhlIGNhdGVnb3J5IGlkPC9saT4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfbmFtZVwmcXVvdDsgLSBUaGUgY2F0ZWdvcnkgbmFtZTwvbGk+DQo8bGk+XCZxdW90O2NhdGVnb3J5X29yZGVyXCZxdW90OyAtIFRoZSBjYXRlZ29yeSBzb3J0IG9yZGVyPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5RGVsZXRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGNhdGVnb3J5IGlzIGRlbGV0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9pZFwmcXVvdDsgLSBUaGUgY2F0ZWdvcnkgaWQ8L2xpPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9uYW1lXCZxdW90OyAtIFRoZSBjYXRlZ29yeSBuYW1lPC9saT4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfb3JkZXJcJnF1b3Q7IC0gVGhlIGNhdGVnb3J5IHNvcnQgb3JkZXI8L2xpPg0KPC91bD4NCic7CiRsYW5nWydtc2dfZXZlbnRhZGRlZCddID0gJ0gmYXVtbDtuZGVsc2UgdGlsbGFnZCc7CiRsYW5nWydlcnJvcl9ub2V2ZW50bmFtZSddID0gJ0V0dCBuYW1uIGtyJmF1bWw7dnMgZiZvdW1sO3IgaCZhdW1sO25kZWxzZW4nOwokbGFuZ1snZXJyb3Jfbm91cGxvYWQnXSA9ICdGRUw6IEhpdHRhZGUgaW5nZW4gdXBwbGFkZGFkIGZpbCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZmlsZW5hbWUnXSA9ICdGRUw6IERlbiB1cHBsYWRkYWRlIGZpbGVuIGFjY2VwdGVyYXMgaW50ZSc7CiRsYW5nWydlcnJvcl9wcm9ibGVtd2l0aHVwbG9hZCddID0gJ0ZFTDogRXR0IGZlbCB1cHBzdG9kIGQmYXJpbmc7IGZpbGVuIHNrdWxsZSBsYWRkYXMgdXBwJzsKJGxhbmdbJ2Vycm9yX2ZpbGVjb3B5ZmFpbGVkJ10gPSAnRkVMOiBFdHQgZmVsIHVwcHN0b2QgZCZhcmluZzsgZmlsZW4gc2t1bGxlIGZseXR0YXMgdGlsbCBzaW4gc2x1dGxpZ2EgcGxhdHMnOwokbGFuZ1snZXJyb3JfZmlsZWV4aXN0cyddID0gJ0ZFTDogRW4gZmlsIG1lZCBkZXQgbmFtbmV0IGV4aXN0ZXJhciByZWRhbic7CiRsYW5nWydlcnJvcl9jc3ZmaWxlbm90Zm91bmQnXSA9ICdGRUw6IEt1bmRlIGludGUgaGl0dGEgQ1NWLWZpbGVuJzsKJGxhbmdbJ2Vycm9yX2NhbnRvcGVuZmlsZSddID0gJ0ZFTDogS2FuIGludGUgJm91bWw7cHBuYSBmaWwnOwokbGFuZ1snZXJyb3JfY2F0ZWdvcnlleGlzdHMnXSA9ICdGRUw6IEVuIGthdGVnb3JpIG1lZCBkZXR0YSBuYW1uICVzIGZpbm5zIHJlZGFuJzsKJGxhbmdbJ2NhbF9pZCddID0gJ0lEJzsKJGxhbmdbJ2NhbF9jYWxlbmRhciddID0gJ0thbGVuZGVyJzsKJGxhbmdbJ2NhbF9kZWZhdWx0X3RlbXBsYXRlcyddID0gJ1N0YW5kYXJkbWFsbGFyJzsKJGxhbmdbJ2NhbF9kZXNjcmlwdGlvbiddID0gJ0wmYXVtbDtnZyB0aWxsLCByZWRpZ2VyYSBvY2ggdGEgYm9ydCBoJmF1bWw7bmRlbHNlcic7CiRsYW5nWydjYWxfYWRkZXZlbnQnXSA9ICdMJmF1bWw7Z2cgdGlsbCBoJmF1bWw7bmRlbHNlJzsKJGxhbmdbJ2NhbF9pbXBvcnRfZXZlbnRzJ10gPSAnSW1wb3J0ZXJhIGgmYXVtbDtuZGVsc2VyJzsKJGxhbmdbJ2NhbF9ldmVudHMnXSA9ICdIJmF1bWw7bmRlbHNlcic7CiRsYW5nWydjYWxfY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpZXInOwokbGFuZ1snY2FsX2NhbGVuZGFyX3RlbXBsYXRlJ10gPSAnTWFsbCBmJm91bWw7ciBrYWxlbmRlcic7CiRsYW5nWydjYWxfbGlzdF90ZW1wbGF0ZSddID0gJ01hbGwgZiZvdW1sO3IgbGlzdGEnOwokbGFuZ1snY2FsX3VwY29taW5nbGlzdF90ZW1wbGF0ZSddID0gJ01hbGwgZiZvdW1sO3Iga29tbWFuZGUtbGlzdGEnOwokbGFuZ1snY2FsX2V2ZW50X3RlbXBsYXRlJ10gPSAnTWFsbCBmJm91bWw7ciBoJmF1bWw7bmRlbHNlJzsKJGxhbmdbJ2NhbF9zZXR0aW5ncyddID0gJ0luc3QmYXVtbDtsbG5pbmdhcic7CiRsYW5nWydjYWxfcHJldiddID0gJyZsYXF1bzsgRiZvdW1sO3JlZyZhcmluZztlbmRlJzsKJGxhbmdbJ2NhbF9uZXh0J10gPSAnTiZhdW1sO3N0YSAmcmFxdW87JzsKJGxhbmdbJ2NhbF9jYXRlZ29yaWVzX3VwZGF0ZWQnXSA9ICdLYXRlZ29yaWVyIHVwcGRhdGVyYWRlJzsKJGxhbmdbJ2NhbF9zZXR0aW5nc191cGRhdGVkJ10gPSAnSW5zdCZhdW1sO2xsbmluZ2FyIHVwcGRhdGVyYWRlJzsKJGxhbmdbJ2NhbF9hZGRfZXZlbnQnXSA9ICdMJmF1bWw7Z2cgdGlsbCBoJmF1bWw7bmRlbHNlJzsKJGxhbmdbJ2NhbF9lZGl0J10gPSAnUmVkaWdlcmEnOwokbGFuZ1snY2FsX2RlbGV0ZSddID0gJ1RhIGJvcnQnOwokbGFuZ1snY2FsX2FyZXlvdXN1cmUnXSA9ICcmQXVtbDtyIGR1IHMmYXVtbDtrZXIgcCZhcmluZzsgYXR0IGR1IHZpbGwgdGEgYm9ydCc7CiRsYW5nWydjYWxfdXBkYXRlX3RlbXBsYXRlJ10gPSAnVXBwZGF0ZXJhIG1hbGwnOwokbGFuZ1snY2FsX3N1bmRheSddID0gJ1Mmb3VtbDtuZGFnJzsKJGxhbmdbJ2NhbF9tb25kYXknXSA9ICdNJmFyaW5nO25kYWcnOwokbGFuZ1snY2FsX3R1ZXNkYXknXSA9ICdUaXNkYWcnOwokbGFuZ1snY2FsX3dlZG5lc2RheSddID0gJ09uc2RhZyc7CiRsYW5nWydjYWxfdGh1cnNkYXknXSA9ICdUb3JzZGFnJzsKJGxhbmdbJ2NhbF9mcmlkYXknXSA9ICdGcmVkYWcnOwokbGFuZ1snY2FsX3NhdHVyZGF5J10gPSAnTCZvdW1sO3JkYWcnOwokbGFuZ1snY2FsX3N1biddID0gJ1Mmb3VtbDtuJzsKJGxhbmdbJ2NhbF9tb24nXSA9ICdNJmFyaW5nO24nOwokbGFuZ1snY2FsX3R1ZXMnXSA9ICdUaXMnOwokbGFuZ1snY2FsX3dlZCddID0gJ09ucyc7CiRsYW5nWydjYWxfdGh1cnMnXSA9ICdUb3InOwokbGFuZ1snY2FsX2ZyaSddID0gJ0ZyZSc7CiRsYW5nWydjYWxfc2F0J10gPSAnTCZvdW1sO3InOwokbGFuZ1snY2FsX2phbnVhcnknXSA9ICdqYW51YXJpJzsKJGxhbmdbJ2NhbF9mZWJydWFyeSddID0gJ2ZlYnJ1YXJpJzsKJGxhbmdbJ2NhbF9tYXJjaCddID0gJ21hcnMnOwokbGFuZ1snY2FsX2FwcmlsJ10gPSAnYXByaWwnOwokbGFuZ1snY2FsX21heSddID0gJ21haic7CiRsYW5nWydjYWxfanVuZSddID0gJ2p1bmknOwokbGFuZ1snY2FsX2p1bHknXSA9ICdqdWxpJzsKJGxhbmdbJ2NhbF9hdWd1c3QnXSA9ICdhdWd1c3RpJzsKJGxhbmdbJ2NhbF9zZXB0ZW1iZXInXSA9ICdzZXB0ZW1iZXInOwokbGFuZ1snY2FsX29jdG9iZXInXSA9ICdva3RvYmVyJzsKJGxhbmdbJ2NhbF9ub3ZlbWJlciddID0gJ25vdmVtYmVyJzsKJGxhbmdbJ2NhbF9kZWNlbWJlciddID0gJ2RlY2VtYmVyJzsKJGxhbmdbJ2NhbF9hZGQnXSA9ICdMJmF1bWw7Z2cgdGlsbCc7CiRsYW5nWydjYWxfdXBkYXRlJ10gPSAnVXBwZGF0ZXJhJzsKJGxhbmdbJ2NhbF9ldmVudCddID0gJ0gmYXVtbDtuZGVsc2UnOwokbGFuZ1snY2FsX2RhdGUnXSA9ICdEYXR1bSc7CiRsYW5nWydjYWxfc3VtbWFyeSddID0gJ1NhbW1hbmZhdHRuaW5nJzsKJGxhbmdbJ2NhbF9kZXRhaWxzJ10gPSAnRGV0YWxqZXInOwokbGFuZ1snY2FsX21vcmUnXSA9ICdtZXIgPj4nOwokbGFuZ1snY2FsX3JldHVybiddID0gJ1RpbGxiYWthJzsKJGxhbmdbJ2NhbF90byddID0gJ3RpbGwnOwokbGFuZ1snY2FsX3Bhc3RfZXZlbnRzJ10gPSAnUGFzc2VyYWRlIGgmYXVtbDtuZGVsc2VyJzsKJGxhbmdbJ2NhbF91cGNvbWluZ19ldmVudHMnXSA9ICdLb21tYW5kZSBoJmF1bWw7bmRlbHNlcic7CiRsYW5nWydjYWxfYW55X2NhdGVnb3J5J10gPSAnQWxsYSBrYXRlZ29yaWVyJzsKJGxhbmdbJ2NhbF9zaG93X29ubHlfZXZlbnRzX2luJ10gPSAnVmlzYSBiYXJhIGgmYXVtbDtuZGVsc2VyIGknOwokbGFuZ1snY2FsX2ZpbHRlcl9ieSddID0gJ0ZpbHRyZXJhIHAmYXJpbmc7JzsKJGxhbmdbJ2NhbF9nbyddID0gJ1NraWNrYSc7CiRsYW5nWydjYWxfdGl0bGUnXSA9ICdIJmF1bWw7bmRlbHNlJzsKJGxhbmdbJ2NhbF9mcm9tZGF0ZSddID0gJ0ZyJmFyaW5nO24gZGF0dW0nOwokbGFuZ1snY2FsX3RvZGF0ZSddID0gJ1RpbGwgZGF0dW0nOwokbGFuZ1snY2FsX3VwZGF0ZV9jYXRlZ29yaWVzJ10gPSAnVXBwZGF0ZXJhIGthdGVnb3JpZXInOwokbGFuZ1snY2FsX2xhbmd1YWdlJ10gPSAnU3ByJmFyaW5nO2snOwokbGFuZ1snY2FsX3VwZGF0ZXNldHRpbmdzJ10gPSAnVXBwZGF0ZXJhIGluc3QmYXVtbDtsbG5pbmdhcic7CiRsYW5nWydjYWxfdXNlX3R3ZWx2ZV9ob3VyX2Nsb2NrJ10gPSAnQW52JmF1bWw7bmQgMTItdGltbWFycyB0aWRzYW5naXZlbHNlIGkgbWVueWVyPyc7CiRsYW5nWydjYWxfZGVmYXVsdF9jYXRlZ29yeSddID0gJ1N0YW5kYXJka2F0ZWdvcmknOwokbGFuZ1snY2FsX3VwZGF0ZV9maWVsZHMnXSA9ICdVcHBkYXRlcmEgZiZhdW1sO2x0JzsKJGxhbmdbJ2ZvcmNlX2NhdGVnb3J5J10gPSAnS3ImYXVtbDt2IG1pbnN0IGVuIGthdGVnb3JpJzsKJGxhbmdbJ3Nob3dwYXN0eWVhcnMnXSA9ICdIdXIgbSZhcmluZztuZ2EgJmFyaW5nO3IgYmFrJmFyaW5nO3QgaSB0aWRlbiBzb20gJmF1bWw7ciB0aWxsJmFyaW5nO3RuYSc7CiRsYW5nWydzaG93ZnV0dXJleWVhcnMnXSA9ICdIdXIgbSZhcmluZztuZ2EgJmFyaW5nO3IgZnJhbSZhcmluZzt0IGkgdGlkZW4gc29tICZhdW1sO3IgdGlsbCZhcmluZzt0bmEnOwokbGFuZ1snaGlkZXN1bW1hcnknXSA9ICdTa2Egc3VtbWVyaW5nc2YmYXVtbDtsdCB2YXJhIGRvbHQnOwokbGFuZ1snaGlkZWNvbnRlbnQnXSA9ICdTa2EgaW5uZWgmYXJpbmc7bGxzZiZhdW1sO2x0ZXQgdmFyYSBkb2x0JzsKJGxhbmdbJ2NhdGVnb3J5X3JlbWluZGVyJ10gPSAnTWFya2VyYSBlbiBlbGxlciBmbGVyYSBrYXRlZ29yaWVyIGYmb3VtbDtyIGRlbiBoJmF1bWw7ciBoJmF1bWw7bmRlbHNlbic7CiRsYW5nWydtb2R1bGVfZXhhbXBsZV9zdHlsZXNoZWV0J10gPSAnQ1NTLWV4ZW1wZWwgZiZvdW1sO3IgQ2FsZW5kYXInOwokbGFuZ1snZXJyb3JfcGVybWlzc2lvbiddID0gJ0R1IGJlaCZvdW1sO3ZlciBwYXNzYW5kZSByJmF1bWw7dHRpZ2hldGVyICglcykgZiZvdW1sO3IgYXR0IGFudiZhdW1sO25kYSBkZW4gaCZhdW1sO3IgZnVua3Rpb25lbic7CiRsYW5nWydpbnN0YWxsX3Bvc3RtZXNzYWdlJ10gPSAnU2UgdGlsbCBhdHQgc3QmYXVtbDtsbGEgaW4gJnF1b3Q7JkF1bWw7bmRyYSBLYWxlbmRlciZxdW90OyByJmF1bWw7dHRpZ2hldGVyIGYmb3VtbDtyIGFudiZhdW1sO25kYXJlIHNvbSBrb21tZXIgYXR0IGFkbWluaXN0cmVyYSBrYWxlbmRlcmgmYXVtbDtuZGVsc2VyJzsKJGxhbmdbJ2RlbGV0ZXRhZ2dlZCddID0gJ1RhIGJvcnQgbWFya2VyYWRlIGgmYXVtbDtuZGVsc2VyJzsKJGxhbmdbJ2NvbmZpcm1kZWxldGV0YWdnZWQnXSA9ICcmQXVtbDtyIGR1IHMmYXVtbDtrZXIgcCZhcmluZzsgYXR0IGR1IHZpbGwgdGEgYm9ydCBkZXNzYSBoJmF1bWw7bmRlbHNlcj8nOwokbGFuZ1sndGFnZ2VkZGVsZXRlZCddID0gJ01hcmtlcmFkZSBoJmF1bWw7bmRlbHNlciB0b2dzIGJvcnQnOwokbGFuZ1sndGVtcGxhdGVzJ10gPSAnTWFsbGFyJzsKJGxhbmdbJ3RlbXBsYXRlX2hlbHAnXSA9ICdNYWxsaGomYXVtbDtscCc7CiRsYW5nWydmaWxlX3RlbXBsYXRlcyddID0gJ0ZpbG1hbGxhcic7CiRsYW5nWydhZGR0ZW1wbGF0ZSddID0gJ0wmYXVtbDtnZyB0aWxsIG1hbGwnOwokbGFuZ1sndGVtcGxhdGUnXSA9ICdNYWxsJzsKJGxhbmdbJ3RlbXBsYXRlbmFtZXRleHQnXSA9ICdNYWxsbmFtbic7CiRsYW5nWydlZGl0dGVtcGxhdGUnXSA9ICdSZWRpZ2VyYSBtYWxsJzsKJGxhbmdbJ2RlbGV0ZXRlbXBsYXRlJ10gPSAnVGEgYm9ydCBtYWxsJzsKJGxhbmdbJ25ld3RlbXBsYXRlJ10gPSAnTnl0dCBtYWxsbmFtbic7CiRsYW5nWyd0ZW1wbGF0ZW5hbWVleGlzdHMnXSA9ICdGRUw6IEVuIG1hbGwgbWVkIGRldCBuYW1uZXQgZXhpc3RlcmFyIHJlZGFuLiBWJmF1bWw7bGogZXR0IGFubmF0IG5hbW4uJzsKJGxhbmdbJ3RlbXBsYXRlaW1wb3J0ZWQnXSA9ICdNYWxsZW4gJmF1bWw7ciBpbXBvcnRlcmFkIG9jaCBpbnN0YWxsZXJhZCwgcmVkbyBhdHQgYW52JmF1bWw7bmRhcy4nOwokbGFuZ1sndmlld19kZWZhdWx0X3N0eWxlc2hlZXQnXSA9ICdWaXNhIGYmb3VtbDtydmFsZCBTdHlsZXNoZWV0JzsKJGxhbmdbJ2ZpbGVuYW1lJ10gPSAnRmlsbmFtbic7CiRsYW5nWydpbXBvcnR0ZW1wbGF0ZSddID0gJ0ltcG9ydGVyYSBtYWxsJzsKJGxhbmdbJ3RlbXBsYXRlX2RlbGV0ZWQnXSA9ICdNYWxsZW4gdG9ncyBib3J0IHVyIGRhdGFiYXNlbic7CiRsYW5nWyd1cGRhdGV0ZW1wbGF0ZXN1Y2Nlc3MnXSA9ICdNYWxsZW4gdXBwZGF0ZXJhZGVzJzsKJGxhbmdbJ3VwZGF0ZXRlbXBsYXRlZmFpbHVyZSddID0gJ0V0dCBmZWwgdXBwc3RvZCBkJmFyaW5nOyBtYWxsZW4gc2t1bGxlIHVwcGRhdGVyYXMnOwokbGFuZ1snc2V0dGluZ3NzYXZlZCddID0gJ0luc3QmYXVtbDtsbG5pbmdhcm5hIHNwYXJhZGVzJzsKJGxhbmdbJ2NhdGVnb3J5ZGVsZXRlZCddID0gJ0thdGVnb3JpbiB0b2dzIGJvcnQnOwokbGFuZ1snY2F0ZWdvcnl1cGRhdGVkJ10gPSAnS2F0ZWdvcmluICZhdW1sO3IgdXBwZGF0ZXJhZCc7CiRsYW5nWydjYXRlZ29yeWFkZGVkJ10gPSAnS2F0ZWdvcmluIGxhZGVzIHRpbGwnOwokbGFuZ1snZXZlbnRkZWxldGVkJ10gPSAnSCZhdW1sO25kZWxzZW4gdG9ncyBib3J0JzsKJGxhbmdbJ2V2ZW50dXBkYXRlZCddID0gJ0gmYXVtbDtuZGVsc2VuIHVwcGRhdGVyYWRlcyc7CiRsYW5nWydkZWZhdWx0X3BhZ2VfZXJyb3InXSA9ICdGZWw6IER1IG0mYXJpbmc7c3RlIGFuZ2UgZW4gZiZvdW1sO3J2YWxkIHNpZGEgZiZvdW1sO3IgYXR0IGFudiZhdW1sO25kYSBDYWxlbmRhciBtZWQgJnF1b3Q7cHJldHR5IFVSTCZxdW90OyBha3RpdmVyYWQuIEcmYXJpbmc7IHRpbGwgZmxpa2VuIEluc3QmYXVtbDtsbG5pbmdhciBpIENhbGVuZGFyIG9jaCB2JmF1bWw7bGogZW4gc2lkYS4nOwokbGFuZ1sndGltZV9hdCddID0gJ3ZpZCc7CiRsYW5nWyd0eXBlJ10gPSAnVHlwJzsKJGxhbmdbJ25hbWUnXSA9ICdOYW1uJzsKJGxhbmdbJ29yZGVyJ10gPSAnT3JuaW5nJzsKJGxhbmdbJ2ZpZWxkYWRkZWQnXSA9ICdGJmF1bWw7bHQgbGFkZXMgdGlsbCc7CiRsYW5nWydmaWVsZGRlbGV0ZWQnXSA9ICdGJmF1bWw7bHQgdG9ncyBib3J0JzsKJGxhbmdbJ2ZpZWxkcyddID0gJ0FucGFzc2FkZSBmJmF1bWw7bHQnOwokbGFuZ1sndGV4dGZpZWxkJ10gPSAnVGV4dGYmYXVtbDtsdCc7CiRsYW5nWyd1cGxvYWRmaWVsZCddID0gJ0YmYXVtbDtsdCBmJm91bWw7ciBmaWx1cHBsYWRkbmluZyc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJzxwPkNhbGVuZGFyIGlzIGEgbW9kdWxlIGZvciBkaXNwbGF5aW5nIGV2ZW50cyBvbiB5b3VyIHBhZ2UuIFdoZW4gdGhlDQoJCW1vZHVsZSBpcyBpbnN0YWxsZWQsIGEgQ2FsZW5kYXIgYWRtaW4gcGFnZSBpcyBhZGRlZCB0byB0aGUgY29udGVudCBtZW51DQoJCXRoYXQgd2lsbCBhbGxvdyB5b3UgdG8gbWFuYWdlIHlvdXIgZXZlbnRzLjwvcD4nOwokbGFuZ1snZGVmYXVsdGNhbGVuZGFycGFnZSddID0gJ0Ymb3VtbDtydmFsZCBzaWRhIHNvbSBpbm5laCZhcmluZztsbGVyIENhbGVuZGFyLiBEZW4gaCZhdW1sO3Igc2lkYW4gbSZhcmluZztzdGUgaW5uZWgmYXJpbmc7bGxhIGVuICZxdW90O1NtYXJ0eSB0YWcmcXVvdDsgc29tIGFucm9wYXIgQ2FsZW5kYXIuIEtyJmF1bWw7dnMgb20gZHUgYW52JmF1bWw7bmRlciAmcXVvdDtwcmV0dHkgVVJMcyZxdW90Oy4nOwokbGFuZ1sndXBsb2FkZGlyZWN0b3J5J10gPSAnS2F0YWxvZyBmJm91bWw7ciBmaWx1cHBsYWRkbmluZ2FyJzsKJGxhbmdbJ3VwbG9hZGZpbGV0eXBlcyddID0gJ1RpbGwmYXJpbmc7dG5hIGZpbHR5cGVyJzsKJGxhbmdbJ3VwbG9hZHVuaXF1ZSddID0gJ0Ymb3VtbDtycyZhdW1sO2tyYSB1bmlrYSBmaWxuYW1uJzsKJGxhbmdbJ3RodW1iX3dpZHRoJ10gPSAnQnJlZGQgZiZvdW1sO3IgdHVtbmFnZWxiaWxkJzsKJGxhbmdbJ3RodW1iX2hlaWdodCddID0gJ0gmb3VtbDtqZCBmJm91bWw7ciB0dW1uYWdlbGJpbGQnOwokbGFuZ1snbGFyZ2Vfd2lkdGgnXSA9ICdCcmVkZCBmJm91bWw7ciBzdG9yIGJpbGQnOwokbGFuZ1snbGFyZ2VfaGVpZ2h0J10gPSAnSCZvdW1sO2pkIGYmb3VtbDtyIHN0b3IgYmlsZCc7CiRsYW5nWydjYWxfcmVjdXJfcGVyaW9kJ10gPSAnJkFyaW5nO3RlcmtvbW1lcic7CiRsYW5nWydjYWxfcmVjdXJfdW50aWwnXSA9ICcmQXJpbmc7dGVya29tbWVyIHRpbGwgb2NoIG1lZCc7CiRsYW5nWydoZWxwX3RlbXBsYXRlJ10gPSAnPHA+PGI+UHJpbnQgQXV0aG9yIE5hbWU6PC9iPjwvcD4NCjxjb2RlPkF1dGhvcjogeyRldmVudC5hdXRob3JuYW1lfTwvY29kZT4NCic7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/tr_TR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2Vycm9yX2ZldV9sb2dnZWRpbiddID0gJ1RoZSB1c2VyIGlzIG5vdCBsb2dnZWQgaW4gdG8gRkVVLiAgQWRkaW5nIG9yIGVkaXRpbmcgZXZlbnRzIGlzIG5vdCBwZXJtaXR0ZWQnOwokbGFuZ1sncHJvbXB0X2ZyaWVuZGx5bmFtZSddID0gJ0ZyaWVuZGx5IE5hbWUgZm9yIHRoaXMgTW9kdWxlIGluIEFkbWluIE5hdmlnYXRpb24nOwokbGFuZ1snaW5mb19mcmllbmRseW5hbWUnXSA9ICdOb3RlOiBZb3UgbWF5IG5lZWQgdG8gY2xlYXIgdGhlIHNpdGUgY2FjaGUgZm9yIHRoaXMgcHJlZmVyZW5jZSB0byBoYXZlIGVmZmVjdC4gIElmIG5vIHZhbHVlIGlzIHN1cHBsaWVkIGEgZGVmYXVsdCB3aWxsIGJlIHVzZWQuJzsKJGxhbmdbJ3VzZV93eXNpd3lnJ10gPSAnV3lzaXd5ZyBFZGl0Jm91bWw7ciZ1dW1sOyBLdWxsYW4nOwokbGFuZ1snZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJ10gPSAnSW5zdWZmaWNpZW50IFBhcmFtZXRlcnMnOwokbGFuZ1snY29sdW1uX2RlbGltaXRlciddID0gJ0ltcG9ydCBmaWxlIGNvbHVtbiBkZWxpbWl0ZXInOwokbGFuZ1snaW1wb3J0X2NvbXBsZXRlZCddID0gJ0ltcG9ydCBDb21wbGV0ZSc7CiRsYW5nWydudW1faW1wb3J0ZWQnXSA9ICdOdW1iZXIgb2YgZXZlbnRzIGNyZWF0ZWQ6ICVkJzsKJGxhbmdbJ2ltcG9ydF9saW5lcyddID0gJ051bWJlciBvZiBsaW5lcyBwcm9jZXNzZWQgZnJvbSBmaWxlOiAlZCc7CiRsYW5nWydlcnJvcnMnXSA9ICdIYXRhbGFyJzsKJGxhbmdbJ2Vycm9yX2NzdmZpcnN0bGluZWludmFsaWRmaWVsZCddID0gJ0ZpZWxkOiAlcyBpcyBub3QgcmVjb2duaXplZCwgYW5kIGlzIG5vdCBhIGN1c3RvbSBmaWVsZCc7CiRsYW5nWydpbmZvX2Nzdl9mb3JtYXQnXSA9ICc8aDQ+Q1NWIEZpbGUgRm9ybWF0IEluZm9ybWF0aW9uLjwvaDQ+DQo8dWw+DQogIDxsaT5HZW5lcmFsIEluZm9ybWF0aW9uOg0KICAgPHVsPg0KICAgICA8bGk+VGhlIGZpbGUgbXVzdCBiZSBhbiBBU0NJSSBmaWxlIHdpdGggdW5peCAocHJlZmVycmVkKSwgZG9zLCBvciBtYWMgbGluZSBlbmRpbmdzLjwvbGk+DQogICAgIDxsaT5Db21tZW50cyBzdGFydCB3aXRoIC8vIGFueSBjaGFyYWN0ZXJzIGFmdGVyIHRoaXMgb24gYSBsaW5lIHdpbGwgYmUgaWdub3JlZCAoaW5jbHVkaW5nIHdpdGhpbiBxdW90ZXMuPC9saT4NCiAgICAgPGxpPkVtcHR5IGxpbmVzIGFyZSBpZ25vcmVkPC9saT4NCiAgICAgPGxpPkZpZWxkIGRlbGltaXRlcnMgYXJlIHVzZXIgY29udHJvbGxhYmxlLCBob3dldmVyIGEgZGVsaW1pdGVyIGNhbiBiZSB1c2VkIGFzIGEgdmFsdWUgd2l0aGluIGEgZmllbGQgaWYgdGhlIGZpZWxkIGlzIGRlbGltaXRlZCBieSBkb3VibGUgcXVvdGVzLjwvbGk+DQogICAgIDxsaT5Sb3dzIGFyZSBkZWxpbWl0ZWQgYnkgbmV3bGluZSBjaGFycyAoYXMgYWJvdmUpLjwvbGk+DQogICA8L3VsPg0KICA8L2xpPg0KICA8bGk+VGhlIEZpZWxkIE1hcDoNCiAgIDx1bD4NCiAgICA8bGk+VGhlIGZpcnN0IGxpbmUgZGVmaW5lcyB0aGUgb3JkZXIgb2YgdGhlIGZpZWxkcywgYW5kIHdoYXQgJnF1b3Q7Y3VzdG9tIGZpZWxkcyZxdW90OyBhcmUgZGVmaW5lZCBpbiB0aGUgZmlsZS4gRGF0YSBjYW4gc3RhcnQgb24gdGhlIHNlY29uZCBub24tZW1wdHkgbGluZSwgb3IgYWZ0ZXIuPC9saT4NCiAgICA8bGk+VGhlcmVzIGFyZSB0aGUgcmVxdWlyZWQgZmllbGRzOiBzdGFydCB0aW1lLCBlbmQgdGltZSwgdGl0bGUsIHN1bW1hcnksIGFuZCBkZXNjcmlwdGlvbi4gIFdpdGhvdXQgZGVmaW5pbmcgdGhlc2UgZmllbGRzIGluIHRoZSBoZWFkZXIgdGhlIGltcG9ydCB3aWxsIG5vdCBwcm9jZWVkLiAgUmVxdWlyZWQgZmllbGQgbmFtZXMgYXJlIG5vdCBjYXNlIHNlbnNpdGl2ZS48L2xpPg0KICAgIDxsaT5UaGVyZSBpcyBvbmUgb3B0aW9uYWwgY29sdW1uOjogJnF1b3Q7Y2F0ZWdvcnkmcXVvdDsuICBJZiBzcGVjaWZpZWQgaXQgY2FuIGNvbnRhaW4gYSA7IHNlcGFyYXRlZCBsaXN0IG9mIGNhdGVnb3J5IG5hbWVzIHRoYXQgdGhlIGV2ZW50IHdpbGwgYmVsb25nIHRvLjwvbGk+DQogICA8L3VsPg0KICA8L2xpPg0KICA8bGk+VGhlIERhdGEgUm93czoNCiAgIDx1bD4NCiAgICA8bGk+VGhlIHN0YXJ0IHRpbWUsIHRpdGxlLCBhbmQgZGVzY3JpcHRpb24gZmllbGRzIG11c3Qgbm90IGJlIGVtcHR5LjwvbGk+DQo8bGk+U3RhcnQgYW5kIEVuZCBUaW1lczo8L2xpPg0KICA8dWw+DQogICA8bGk+U3RhcnQgdGltZSBwcm9jZXNzaW5nIGlzIGZsZXhpYmxlLiAgWW91IGNhbiBzcGVjaWZ5IGVpdGhlciAgWVlZWS1NTS1ERCBISDpNTSBmb3JtYXQsIG9yIG1hbnkgZm9ybWF0cyBhcyBkZWZpbmVkIGJ5IHRoZSBzdHJ0b3RpbWUgZnVuY3Rpb24sIGluY2x1ZGluZyByZWxhdGl2ZSB0aW1lcy4gIElmIGEgcmVsYXRpdmUgdGltZSBpcyBzdXBwbGllZCBpdCBpcyBhc3N1bWVkIHRvIGJlIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHRpbWUuPC9saT4NCiAgIDxsaT5FbmQgdGltZSBwcm9jZXNzaW5nIGlzIGZsZXhpYmxlLCBhbmQgbWF5IGJlIGVtcHR5LiAgWW91IGNhbiBzcGVjaWZ5IGVpdGhlciBhbiBhYnNvbHV0ZSB0aW1lIChpbiB0aGUgc2FtZSBmb3JtYXQgYXMgdGhlIHN0YXJ0IHRpbWUpIG9yIGEgcmVsYXRpdmUgdGltZS4gIElmIGEgcmVsYXRpdmUgdGltZSBpcyBzcGVjaWZpZWQsIGl0IGlzIGFzc3VtZWQgdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IHRpbWUuICAgaS5lOiAmcXVvdDsrNCBob3VycyZxdW90OyB3b3VsZCBpbmRpY2F0ZSA0IGhvdXJzIGZyb20gdGhlIHN0YXJ0IHRpbWUgY29sdW1uLjwvbGk+DQogICA8bGk+SWYgdGhlIGVuZCB0aW1lIGNvbHVtZSBpcyB0aGUgc3RyaW5nICZxdW90O0FsbCBkYXkmcXVvdDsgPGVtPihjYXNlIGluc2Vuc2l0aXZlKTwvZW0+IGl0IHdpbGwgYXNzdW1lIGFuIGFsbCBkYXkgZXZlbnQgZnJvbSB0aGUgc3RhcnQgdGltZS48L2xpPg0KICAgPGxpPklmIHRoZSBlbmQgdGltZSBjb2x1bW4gaXMgZW1wdHksIHRoZW4gbm8gZW5kIHRpbWUgdmFsdWUgd2lsbCBiZSBjcmVhdGVkIGluIHRoZSBkYXRhYmFzZS48L2xpPg0KICA8L3VsPg0KPC9saT4NCjxsaT5DYXRlZ29yaWVzDQogIDx1bD4NCiAgIDxsaT5JZiBzcGVjaWZpZWQsIHRoZSBjYXRlZ29yeSBjb2x1bW4gY2FuIGNvbnRhaW4gYSBsaXN0IChzZXBhcmF0ZWQgYnkgOykgb2YgY2F0ZWdvcnkgbmFtZXMgZm9yIHdoaWNoIHRoZSBldmVudCBzaG91bGQgYmVsb25nLjwvbGk+DQogICA8bGk+Q2F0ZWdvcnkgbmFtZXMgYXJlIGNhc2Ugc2Vuc2l0aXZlLjwvbGk+DQogICA8bGk+Q2F0ZWdvcmllcyBhcmUgbm90IGNyZWF0ZWQgaWYgdGhleSBkbyBub3QgZXhpc3QuPC9saT4NCiAgPC91bD4NCjwvbGk+DQo8bGk+Q3VzdG9tIEZpZWxkczoNCiAgPHVsPg0KICAgIDxsaT5DdXN0b20gZmllbGQgbmFtZXMgKGV2ZW4gaW4gdGhlIGZpcnN0IGxpbmUgdGhhdCBkZXRlcm1pbmVzIHRoZSBmaWVsZCBtYXBwaW5nKSBhcmUgY2FzZSBzZW5zaXRpdmUuPC9saT4NCiAgICA8bGk+Q3V0b20gZmllbGRzIGFyZSBub3QgY3JlYXRlZCBpZiBzcGVjaWZpZWQgaW4gdGhlIENTViBmaWxlLiAgVW5rbm93biBjdXN0b20gZmllbGQgY29sdW1ucyB3aWxsIGJlIGlnbm9yZWQuPC9saT4NCiAgICA8bGk+Q3VzdG9tIGZpZWxkcyBvZiB0eXBlICZxdW90O2ZpbGUmcXVvdDsgY2Fubm90IGJlIGltcG9ydGVkLiAgVGhlIGVudGlyZSBpbXBvcnQgb3BlcmF0aW9uIHdpbGwgZmFpbC48L2xpPg0KICA8L3VsPg0KICA8L2xpPg0KICA8L3VsPg0KPC9saT4NCjxsaT5BIHNhbXBsZSBjc3YgZmlsZSBleGlzdHMgaW4gdGhlIG1vZHVsZXMgc291cmNlIGNvZGUgZGlyZWN0b3J5LjwvbGk+DQo8L3VsPic7CiRsYW5nWydwcm9tcHRfY3N2X2ZpbGUnXSA9ICdTZWxlY3QgSW1wb3J0IEZpbGUnOwokbGFuZ1snZGVsZXRlJ10gPSAnU2lsJzsKJGxhbmdbJ2NkX2NvbXBhbnknXSA9ICdDb21wYW55IERpcmVjdG9yeSBDb21wYW55JzsKJGxhbmdbJ2RmbHRfdXJscHJlZml4J10gPSAnRGVmYXVsdCBVUkwgcHJlZml4IGZvciBQcmV0dHkgVVJMUyc7CiRsYW5nWydkZmx0X2FsbGRheWV2ZW50J10gPSAnTmV3IGV2ZW50cyBhcmUgJnF1b3Q7QWxsIERheSZxdW90OyBldmVudHMgYnkgZGVmYXVsdCc7CiRsYW5nWydkZmx0X3N0YXJ0dGltZSddID0gJ0RlZmF1bHQgc3RhcnQgdGltZSBmb3IgbmV3IGV2ZW50cyc7CiRsYW5nWydpbmZvX2RmbHRfc3RhcnR0aW1lJ10gPSAnPGVtPihhcHBsaWVzIG9ubHkgaWYgbmV3IGV2ZW50cyBhcmUgbm90ICZxdW90O0FsbCBEYXkmcXVvdDsgZXZlbnRzLik8L2VtPic7CiRsYW5nWydzZWFyY2hfdHlwZSddID0gJ1NlYXJjaCBUeXBlJzsKJGxhbmdbJ3NlYXJjaF9hbnknXSA9ICdSZXR1cm4gcmVzdWx0cyBtYXRjaGluZyBhbnkgd29yZCc7CiRsYW5nWydzZWFyY2hfYWxsJ10gPSAnUmV0dXJuIHJlc3VsdHMgbWF0Y2hpbmcgYWxsIHdvcmRzJzsKJGxhbmdbJ2luZm9fY3VzdG9tZmllbGRzJ10gPSAnPHNwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+Tm90ZTo8L3NwYW4+IE9ubHkgdGV4dCBmaWVsZHMgYXJlIHNlYXJjaGFibGUuICBDbGlja2luZyB0aGUgY2hlY2hib3ggb24gb3RoZXIgZmllbGQgdHlwZXMgd2lsbCBoYXZlIG5vIGVmZmVjdC4nOwokbGFuZ1snc2VhcmNoYWJsZSddID0gJ0FyYW5hYmlsaXInOwokbGFuZ1snaGVscF9wYXJhbV9lZGl0ZXZlbnR0ZW1wbGF0ZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgbXlldmVudHMgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG5vbiBkZWZhdWx0IGVkaXQgZXZlbnQgdGVtcGxhdGUgdG8gdXNlIHdoZW4gYSB1c2VyIGNyZWF0ZXMgb3IgZWRpdHMgYW4gZXZlbnQnOwokbGFuZ1snaGVscF9wYXJhbV9lZGl0cGFnZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgbXlldmVudHMgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGRpZmZlcmVudCBwYWdlIGZvciB0aGUgZWRpdCBmb3JtLic7CiRsYW5nWydoZWxwX3BhcmFtX215ZXZlbnRzdGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIG15ZXZlbnRzIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCB0ZW1wbGF0ZSB0byB1c2UnOwokbGFuZ1snY2FsX2VkaXRfZXZlbnQnXSA9ICdUYWt2aW0gRXRraW5sacSfaW5pIEQmdXVtbDt6ZW5sZSc7CiRsYW5nWydlcnJvcl9kYmVycm9yJ10gPSAnRGF0YWJhc2UgRXJyb3InOwokbGFuZ1snc3VibWl0J10gPSAnRyZvdW1sO25kZXInOwokbGFuZ1snaW5mb19zeXNkZmx0X2VkaXRldmVudF90ZW1wbGF0ZSddID0gJ1N5c3RlbSBEZWZhdWx0ICZxdW90O0VkaXQgRXZlbnQmcXVvdDsgVGVtcGxhdGUnOwokbGFuZ1snaW5mb19zeXNkZmx0X215ZXZlbnRzX3RlbXBsYXRlJ10gPSAnU3lzdGVtIERlZmF1bHQgJnF1b3Q7TXkgRXZlbnRzJnF1b3Q7IFRlbXBsYXRlJzsKJGxhbmdbJ3Byb21wdF9mZWVkaXRfZ3JvdXAnXSA9ICdNZW1iZXJzIG9mIHRoaXMgRkVVIGdyb3VwIGNhbiBhZGQgZXZlbnRzJzsKJGxhbmdbJ3Byb21wdF9mZWVkaXRfcGFnZSddID0gJ0RlZmF1bHQgcGFnZSBmb3IgdGhlIGZyb250ZW5kIGVkaXQgZm9ybS4nOwokbGFuZ1snbm9uZSddID0gJ05vbmUnOwokbGFuZ1snb3duZXInXSA9ICdTYWhpcCc7CiRsYW5nWydjYWxfZWRpdGV2ZW50X3RlbXBsYXRlcyddID0gJ0VkaXQgRXZlbnQgRm9ybSBUZW1wbGF0ZXMnOwokbGFuZ1snaW5mb19lZGl0ZXZlbnRfdGVtcGxhdGVfdGFiJ10gPSAnVGhlIGxpc3Qgb2YgdGVtcGxhdGVzIHRoYXQgYXJlIGF2YWlsYWJsZSBmb3IgdGhlIGVkaXQgZXZlbnQgZm9ybSc7CiRsYW5nWydlZGl0ZXZlbnR0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgYW4gRWRpdCBFdmVudCBGb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ2NhbF9teWV2ZW50c190ZW1wbGF0ZXMnXSA9ICdNeSBFdmVudHMgTGlzdCBUZW1wbGF0ZXMnOwokbGFuZ1snaW5mb19teWV2ZW50c190ZW1wbGF0ZV90YWInXSA9ICdUaGUgbGlzdCBvZiB0ZW1wbGF0ZXMgdGhhdCBhcmUgYXZhaWxhYmxlIHRvIGRpc3BsYXkgYSBsaXN0IG9mIHVzZXIgZXZlbnRzJzsKJGxhbmdbJ215ZXZlbnRzdGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IGEgJnF1b3Q7TXkgRXZlbnRzJnF1b3Q7IHJlcG9ydCB0ZW1wbGF0ZSc7CiRsYW5nWydhcmV5b3VzdXJlX3JlbW92ZWNvbmZsaWN0aW5nJ10gPSAnVGhpcyBhY3Rpb24gd2lsbCByZW1vdmUgYW55IGV2ZW50cyB0aGF0IGNvbmZsaWN0IHdpdGggbm9uLW92ZXJsYXBwYWJsZSBldmVudHMuICBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZG8gdGhpcz8nOwokbGFuZ1snZmlsdGVyX2NvbmZsaWN0aW5nJ10gPSAnJkNjZWRpbDtha8SxxZ9hbmxhcsSxIEZpbHRyZWxlJzsKJGxhbmdbJ292ZXJsYXBfYWN0aW9uX3JlbW92ZSddID0gJ1NpbGVudGx5IHJlbW92ZSBjb25mbGljdGluZyBldmVudHMnOwokbGFuZ1snb3ZlcmxhcF9hY3Rpb25fZXJyb3InXSA9ICdEaXNwbGF5IGFuIGVycm9yJzsKJGxhbmdbJ3Byb21wdF9vdmVybGFwX2FjdGlvbiddID0gJ1doYXQgc2hvdWxkIGhhcHBlbiB3aGVuIGEgY29uZmxpY3QgaXMgZGV0ZWN0ZWQgZHVyaW5nIGVkaXRpbmcgb3IgYWRkaW5nIG9mIGFuIGV2ZW50JzsKJGxhbmdbJ2Vycm9yX2V2ZW50X2NvbmZsaWN0J10gPSAnVGhlIGV2ZW50IHZhbHVlcyBzcGVjaWZpZWQgb3ZlcmxhcCB3aXRoIGFuIGV4aXN0aW5nIGV2ZW50IHRoYXQgZG9lcyBub3QgYWxsb3cgY29uZmxpY3RzJzsKJGxhbmdbJ2NhbF9pbmZvX292ZXJsYXAnXSA9ICdBcHBsaWVzIG9ubHkgdG8gZXZlbnRzIHdpdGggYW4gZW5kIHRpbWUgKG9yIGFsbCBkYXkgZXZlbnRzKSc7CiRsYW5nWydjYWxfb3ZlcmxhcCddID0gJ0FsbG93IG5ldyBldmVudHMgdG8gb3ZlcmxhcCB3aXRoIHRoaXMgb25lJzsKJGxhbmdbJ3Byb21wdF9vdmVybGFwX3BvbGljeSddID0gJ0V2ZW50IE92ZXJsYXAgUG9saWN5JzsKJGxhbmdbJ3BvbGljeV9hbGwnXSA9ICdBbGwgRXZlbnRzIGNhbiBvdmVybGFwJzsKJGxhbmdbJ3BvbGljeV9ub25lJ10gPSAnTm8gRXZlbnRzIGNhbiBvdmVybGFwJzsKJGxhbmdbJ3BvbGljeV9pbmRpdmlkdWFsJ10gPSAnRGVjaWRlZCBvbiBhbiBldmVudCBieSBldmVudCBiYXNpcyc7CiRsYW5nWydsYmxfYmFjayddID0gJ0dlcmknOwokbGFuZ1snbGJsX3RlbXBsYXRlcyddID0gJ1RlbXBsYXRlcyc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ1RleHQgQXJlYSc7CiRsYW5nWydlcnJvcl9jYWxlbmRhcl9pbmNvbXBhdGlibGUnXSA9ICdXZSBoYXZlIGRldGVjdGVkIHRoYXQgdGhlIENhbGVuZGFyIG1vZHVsZSBpcyBhbHNvIGluc3RhbGxlZC4uICBUaGlzIG1vZHVsZSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBDYWxlbmRhciBtb2R1bGUgYW5kIGNhbm5vdCBjby1leGlzdCB3aXRoIGl0IG9uIHRoZSBzYW1lIGluc3RhbGwuICBQbGVhc2UgdW5pbnN0YWxsIHRoZSBDYWxlbmRhciBtb2R1bGUnOwokbGFuZ1snZXJyb3JfZXZlbnRfbm90X2ZvdW5kJ10gPSAnRWl0aGVyIGV2ZW50X2lkIGlzIG5vdCBpbiB0aGUgZGF0YWJhc2UsIG9yIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgZXZlbnQgd2l0aCB0aGlzIGlkISAoJWQpJzsKJGxhbmdbJ2ZpcnN0X3BhZ2UnXSA9ICc8PCc7CiRsYW5nWydwcmV2X3BhZ2UnXSA9ICc8JzsKJGxhbmdbJ25leHRfcGFnZSddID0gJz4nOwokbGFuZ1snbGFzdF9wYWdlJ10gPSAnPj4nOwokbGFuZ1sncGFnZV9vZiddID0gJ1BhZ2UgJWQgb2YgJWQnOwokbGFuZ1snc2VhcmNoX3Jlc3VsdHMnXSA9ICdDYWxlbmRhciBTZWFyY2ggUmVzdWx0cyc7CiRsYW5nWydzZWFyY2hfd29yZHMnXSA9ICdTZWFyY2ggV29yZHMnOwokbGFuZ1snbm9fcmVzdWx0c19mb3VuZCddID0gJ05vIHJlc3VsdHMgZm91bmQgbWF0Y2hpbmcgdGhlIHF1ZXJ5IHNwZWNpZmllZCc7CiRsYW5nWydmcmVxdWVuY3knXSA9ICdGcmVrYW5zJzsKJGxhbmdbJ3NwZWNpZmllZF9kYXRlJ10gPSAnVXNlIHRoZSBzcGVjaWZpZWQgZGF0ZSc7CiRsYW5nWydmaXJzdF9zdW5kYXknXSA9ICdGaXJzdCBTdW5kYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2ZpcnN0X21vbmRheSddID0gJ0ZpcnN0IE1vbmRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snZmlyc3RfdHVlc2RheSddID0gJ0ZpcnN0IFR1ZXNkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2ZpcnN0X3dlZG5lc2RheSddID0gJ0ZpcnN0IFdlZG5lc2RheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snZmlyc3RfdGh1cnNkYXknXSA9ICdGaXJzdCBUaHVyc2RheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snZmlyc3RfZnJpZGF5J10gPSAnRmlyc3QgRnJpZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydmaXJzdF9zYXR1cmRheSddID0gJ0ZpcnN0IFNhdHVyZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydzZWNvbmRfc3VuZGF5J10gPSAnU2Vjb25kIFN1bmRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snc2Vjb25kX21vbmRheSddID0gJ1NlY29uZCBNb25kYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ3NlY29uZF90dWVzZGF5J10gPSAnU2Vjb25kIFR1ZXNkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ3NlY29uZF93ZWRuZXNkYXknXSA9ICdTZWNvbmQgV2VkbmVzZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydzZWNvbmRfdGh1cnNkYXknXSA9ICdTZWNvbmQgVGh1cnNkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ3NlY29uZF9mcmlkYXknXSA9ICdTZWNvbmQgRnJpZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydzZWNvbmRfc2F0dXJkYXknXSA9ICdTZWNvbmQgU2F0dXJkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ3RoaXJkX3N1bmRheSddID0gJ1RoaXJkIFN1bmRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1sndGhpcmRfbW9uZGF5J10gPSAnVGhpcmQgTW9uZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWyd0aGlyZF90dWVzZGF5J10gPSAnVGhpcmQgVHVlc2RheSBvZiB0aGUgTW9udGgnOwokbGFuZ1sndGhpcmRfd2VkbmVzZGF5J10gPSAnVGhpcmQgV2VkbmVzZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWyd0aGlyZF90aHVyc2RheSddID0gJ1RoaXJkIFRodXJzZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWyd0aGlyZF9mcmlkYXknXSA9ICdUaGlyZCBGcmlkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ3RoaXJkX3NhdHVyZGF5J10gPSAnVGhpcmQgU2F0dXJkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2ZvdXJ0aF9zdW5kYXknXSA9ICdGb3VydGggU3VuZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydmb3VydGhfbW9uZGF5J10gPSAnRm91cnRoIE1vbmRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snZm91cnRoX3R1ZXNkYXknXSA9ICdGb3VydGggVHVlc2RheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snZm91cnRoX3dlZG5lc2RheSddID0gJ0ZvdXJ0aCBXZWRuZXNkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2ZvdXJ0aF90aHVyc2RheSddID0gJ0ZvdXJ0aCBUaHVyc2RheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snZm91cnRoX2ZyaWRheSddID0gJ0ZvdXJ0aCBGcmlkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2ZvdXJ0aF9zYXR1cmRheSddID0gJ0ZvdXJ0aCBTYXR1cmRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snbGFzdF9zdW5kYXknXSA9ICdMYXN0IFN1bmRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snbGFzdF9tb25kYXknXSA9ICdMYXN0IE1vbmRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snbGFzdF90dWVzZGF5J10gPSAnTGFzdCBUdWVzZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydsYXN0X3dlZG5lc2RheSddID0gJ0xhc3QgV2VkbmVzZGF5IG9mIHRoZSBNb250aCc7CiRsYW5nWydsYXN0X3RodXJzZGF5J10gPSAnTGFzdCBUaHVyc2RheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snbGFzdF9mcmlkYXknXSA9ICdMYXN0IEZyaWRheSBvZiB0aGUgTW9udGgnOwokbGFuZ1snbGFzdF9zYXR1cmRheSddID0gJ0xhc3QgU2F0dXJkYXkgb2YgdGhlIE1vbnRoJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfcmVjdXJfbW9udGhseV9mcmVxJ10gPSAnSW52YWxpZCBmcmVxdWVuY3kuLi4uIHlvdSBjYW5ub3Qgc3BlY2lmeSBib3RoIHRoZSBzcGVjaWZpZWQgZGF0ZSBBTkQgb3RoZXIgdmFsdWVzJzsKJGxhbmdbJ3NlYXJjaHJlc3VsdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBhIFNlYXJjaCBSZXN1bHQgVGVtcGxhdGUnOwokbGFuZ1snaW5mb19zZWFyY2hyZXN1bHRfdGVtcGxhdGVfdGFiJ10gPSAnVGhlIGxpc3Qgb2YgdGVtcGxhdGVzIHRoYXQgYXJlIGF2YWlsYWJsZSBmb3IgdGhlIHNlYXJjaCByZXN1bHRzIGRpc3BsYXknOwokbGFuZ1snaW5mb19zeXNkZmx0X3NlYXJjaHJlc3VsdF90ZW1wbGF0ZSddID0gJ1N5c3RlbSBEZWZhdWx0IFNlYXJjaCBSZXN1bHQgVGVtcGxhdGUnOwokbGFuZ1snY2FsX3NlYXJjaF9yZXN1bHRfdGVtcGxhdGVzJ10gPSAnU2VhcmNoIFJlc3VsdCBUZW1wbGF0ZXMnOwokbGFuZ1snZXJyb3JfcXVlcnlfZmFpbGVkJ10gPSAnRGF0YWJhc2UgUXVlcnkgRmFpbGVkJzsKJGxhbmdbJ2Vycm9yX3NlYXJjaF9pbnZhbGlkX2RhdGVzJ10gPSAnSW52YWxpZCBTZWFyY2ggRGF0ZXMgU3BlY2lmaWVkJzsKJGxhbmdbJ3RleHQnXSA9ICdUZXh0JzsKJGxhbmdbJ3NlYXJjaCddID0gJ0FyYW1hJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnS2F0ZWdvcmknOwokbGFuZ1snaW5mb19zeXNkZmx0X3NlYXJjaF90ZW1wbGF0ZSddID0gJ1N5c3RlbSBEZWZhdWx0IFNlYXJjaCBGb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBhIFNlYXJjaCBGb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fc2VhcmNoX3RlbXBsYXRlX3RhYiddID0gJ1RoZSBsaXN0IG9mIHRlbXBsYXRlcyB0aGF0IGFyZSBhdmFpbGFibGUgZm9yIHRoZSBzZWFyY2ggZm9ybSc7CiRsYW5nWydjYWxfc2VhcmNoX2Zvcm1fdGVtcGxhdGVzJ10gPSAnU2VhcmNoIEZvcm0gVGVtcGxhdGVzJzsKJGxhbmdbJ21heCddID0gJ21heCc7CiRsYW5nWyd0aW1lcyddID0gJ2tlcmUnOwokbGFuZ1snb24nXSA9ICdvbic7CiRsYW5nWydhcmV5b3VzdXJlX3VuaW5zdGFsbCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkbyB0aGlzPyAgQ29udGludWluZyB3aWxsIHBlcm1hbmVuZW50bHkgZXJhc2UgYWxsIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbW9kdWxlLic7CiRsYW5nWydwb3N0X3VuaW5zdGFsbCddID0gJ1RoZSBDYWxlbmRhciBtb2R1bGUgaGFzIGJlZW4gdW5pbnN0YWxsZWQgYW5kIGFsbCBldmVudCBhbmQgdGVtcGxhdGUgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbW92ZWQnOwokbGFuZ1snZmllbGR1cGRhdGVkJ10gPSAnRmllbGQgVXBkYXRlZCc7CiRsYW5nWydldmVyeSddID0gJ0hlcic7CiRsYW5nWydvciddID0gJ3lhZGEnOwokbGFuZ1sndXBkYXRlX2NoaWxkcmVuJ10gPSAnVXBkYXRlIENoaWxkIEV2ZW50cyc7CiRsYW5nWydlcnJvcl9ub2NhdGVnb3J5J10gPSAnWW91IG11c3Qgc2VsZWN0IGF0IGxlYXN0IG9uZSBjYXRlZ29yeSc7CiRsYW5nWydlcnJvcl9ub3RoaW5nc2VsZWN0ZWQnXSA9ICdOb3RoaW5nIGhhcyBiZWVuIHNlbGVjdGVkIHRvIGRlbGV0ZSc7CiRsYW5nWydlcnJvcl9ldmVudG92ZXJsYXAnXSA9ICdUaGUgcmVjdXJpbmcgZXZlbnQgcGFyYW1ldGVycyB5b3UgaGF2ZSBzcGVjaWZpZWQgd291bGQgcmVzdWx0IGluIG92ZXJsYXBwaW5nIGV2ZW50cy4nOwokbGFuZ1sncmVjdXJzJ10gPSAnWWluZWxlbWUnOwokbGFuZ1snZXJyb3JfaW52YWxpZF9kYXRlcyddID0gJ09uZSBvciBtb3JlIG9mIHRoZSBkYXRlIHZhbHVlcyBlbnRlcmVkIHdlcmUgaW52YWxpZCc7CiRsYW5nWydzdW5kYXknXSA9ICdQYXphcic7CiRsYW5nWydtb25kYXknXSA9ICdQYXphcnRlc2knOwokbGFuZ1sndHVlc2RheSddID0gJ1NhbMSxJzsKJGxhbmdbJ3dlZG5lc2RheSddID0gJyZDY2VkaWw7YXLFn2FtYmEnOwokbGFuZ1sndGh1cnNkYXknXSA9ICdQZXLFn2VtYm1lJzsKJGxhbmdbJ2ZyaWRheSddID0gJ0N1bWEnOwokbGFuZ1snc2F0dXJkYXknXSA9ICdDdW1hcnRlc2knOwokbGFuZ1snYWJicl9zdW5kYXknXSA9ICdQeic7CiRsYW5nWydhYmJyX21vbmRheSddID0gJ1B0JzsKJGxhbmdbJ2FiYnJfdHVlc2RheSddID0gJ1NhJzsKJGxhbmdbJ2FiYnJfd2VkbmVzZGF5J10gPSAnJkNjZWRpbDthJzsKJGxhbmdbJ2FiYnJfdGh1cnNkYXknXSA9ICdQZSc7CiRsYW5nWydhYmJyX2ZyaWRheSddID0gJ0N1JzsKJGxhbmdbJ2FiYnJfc2F0dXJkYXknXSA9ICdDdCc7CiRsYW5nWyd3ZWVrZGF5cyddID0gJ0hhZnRhIGkmY2NlZGlsO2knOwokbGFuZ1sncGx1cmFsX2RhaWx5J10gPSAnRyZ1dW1sO25sZXInOwokbGFuZ1sncGx1cmFsX3dlZWtseSddID0gJ0hhZnRhbGFyJzsKJGxhbmdbJ3BsdXJhbF9tb250aGx5J10gPSAnQXlsYXInOwokbGFuZ1sncGx1cmFsX3llYXJseSddID0gJ1nEsWxsYXInOwokbGFuZ1snbm8nXSA9ICdIYXnEsXInOwokbGFuZ1snZGFpbHknXSA9ICdHJnV1bWw7bmwmdXVtbDtrJzsKJGxhbmdbJ3dlZWtseSddID0gJ0hhZnRhbMSxayc7CiRsYW5nWydtb250aGx5J10gPSAnQXlsxLFrJzsKJGxhbmdbJ3llYXJseSddID0gJ1nEsWxsxLFrJzsKJGxhbmdbJ2ludGVydmFsJ10gPSAnVGVrcmFybGEnOwokbGFuZ1snY2FsX3JlY3VyX2RldGFpbHMnXSA9ICdZaW5lbGVuZW4gRXRraW5saWsgRGV0YXlsYXLEsSc7CiRsYW5nWyd1bmxpbWl0ZWQnXSA9ICdMaW1pdHNpeic7CiRsYW5nWydtYXhfcmVjdXJfZXZlbnRzJ10gPSAnTWF4aW11bSBudW1iZXIgb2YgY2hpbGQgZXZlbnRzJzsKJGxhbmdbJ3VzZV90b19kYXRlJ10gPSAnQml0acWfIGcmdXVtbDtuJnV1bWw7IGJlbGlybGV5aW4nOwokbGFuZ1snY2FuY2VsJ10gPSAnVmF6Z2UmY2NlZGlsOyc7CiRsYW5nWydzaG93X2NoaWxkX2V2ZW50cyddID0gJ1Nob3cgQ2hpbGQgRXZlbnRzIDxlbT4obWF5IHJlc3VsdCBpbiB2ZXJ5IGxvbmcgZGlzcGxheSk8L2VtPic7CiRsYW5nWyduL2EnXSA9ICduL2EnOwokbGFuZ1sncmVjdXJzX3VudGlsJ10gPSAnUmVjdXIgVW50aWwnOwokbGFuZ1sncGFyZW50J10gPSAnJlV1bWw7c3QnOwokbGFuZ1sncmVjdXJfcGVyaW9kJ10gPSAnWWluZWxlbWUgUGVyaXlvZHUnOwokbGFuZ1snZmlsdGVyJ10gPSAnRmlsdHJlJzsKJGxhbmdbJ3N0YXJ0X2RhdGUnXSA9ICdCYcWfbGFtYSBUYXJpaGknOwokbGFuZ1snZW5kX2RhdGUnXSA9ICdCaXRpxZ8gVGFyaWhpJzsKJGxhbmdbJ2luZm9fdXBjb21pbmdsaXN0X3RlbXBsYXRlX3RhYiddID0gJ1RoZSBsaXN0IG9mIHRlbXBsYXRlcyB0aGF0IGFyZSBhdmFpbGFibGUgZm9yIHVwY29taW5nbGlzdCB2aWV3cyc7CiRsYW5nWyd1cGNvbWluZ2xpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgYW4gVXBjb21pbmdsaXN0IERpc3BsYXkgVGVtcGxhdGUnOwokbGFuZ1snaW5mb19zeXNkZmx0X3VwY29taW5nbGlzdF90ZW1wbGF0ZSddID0gJ1N5c3RlbSBEZWZhdWx0IFVwY29taW5nbGlzdCBUZW1wbGF0ZSc7CiRsYW5nWydpbmZvX2xpc3RfdGVtcGxhdGVfdGFiJ10gPSAnVGhlIGxpc3Qgb2YgdGVtcGxhdGVzIHRoYXQgYXJlIGF2YWlsYWJsZSBmb3IgbGlzdCB2aWV3cyc7CiRsYW5nWydsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IGFuIExpc3QgRGlzcGxheSBUZW1wbGF0ZSc7CiRsYW5nWydpbmZvX3N5c2RmbHRfbGlzdF90ZW1wbGF0ZSddID0gJ1N5c3RlbSBEZWZhdWx0IExpc3QgVGVtcGxhdGUnOwokbGFuZ1snaW5mb19ldmVudF90ZW1wbGF0ZV90YWInXSA9ICdUaGUgbGlzdCBvZiB0ZW1wbGF0ZXMgdGhhdCBhcmUgYXZhaWxhYmxlIGZvciBldmVudCB2aWV3cyc7CiRsYW5nWydldmVudHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBhbiBFdmVudCBEaXNwbGF5IFRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9ldmVudF90ZW1wbGF0ZSddID0gJ1N5c3RlbSBEZWZhdWx0IEV2ZW50IFRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fY2FsZW5kYXJfdGVtcGxhdGVfdGFiJ10gPSAnVGhlIGxpc3Qgb2YgdGVtcGxhdGVzIHRoYXQgYXJlIGF2YWlsYWJsZSBmb3IgY2FsZW5kYXIgdmlld3MnOwokbGFuZ1snY2FsZW5kYXJ0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgYSBDYWxlbmRhciBEaXNwbGF5IFRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF9jYWxlbmRhcl90ZW1wbGF0ZSddID0gJ1N5c3RlbSBEZWZhdWx0IENhbGVuZGFyIFRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF90ZW1wbGF0ZSddID0gJ1RoaXMgZm9ybSBkZWZpbmVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHdpbGwgYmUgdXNlZCB3aGVuIHlvdSBjbGljayAmcXVvdDtOZXcgVGVtcGxhdGUmcXVvdDsgaW4gdGhlIGFwcHJvcHJpYXRlIHRhYi4gIENoYW5naW5nIHRoaXMgdmFsdWUgd2lsbCBoYXZlIG5vIGltbWVkaWF0ZSBlZmZlY3Qgb24gdGhlIGRpc3BsYXlzIGdlbmVyYXRlZCBmcm9tIHRoaXMgbW9kdWxlLic7CiRsYW5nWydldmVudGRlc2MtRXZlbnRBZGRlZCddID0gJ0NhbGxlZCBhZnRlciBhZGRpbmcgYSBjYWxlbmRhciBldmVudCc7CiRsYW5nWydldmVudGRlc2MtRXZlbnRFZGl0ZWQnXSA9ICdDYWxsZWQgYWZ0ZXIgZWRpdGluZyBhbiBleGlzdGluZyBjYWxlbmRhciBldmVudCc7CiRsYW5nWydldmVudGRlc2MtRXZlbnREZWxldGVkJ10gPSAnQ2FsbGVkIGFmdGVyIGFuIGV2ZW50IGhhcyBiZWVuIGRlbGV0ZWQnOwokbGFuZ1snZXZlbnRkZXNjLUNhdGVnb3J5QWRkZWQnXSA9ICdDYWxsZWQgYWZ0ZXIgYSBjYXRlZ29yeSBpcyBjcmVhdGVkJzsKJGxhbmdbJ2V2ZW50ZGVzYy1DYXRlZ29yeUVkaXRlZCddID0gJ0NhbGxlZCBhZnRlciBhIGNhdGVnb3J5IGlzIGVkaXRlZCc7CiRsYW5nWydldmVudGRlc2MtQ2F0ZWdvcnlEZWxldGVkJ10gPSAnQ2FsbGVkIGFmdGVyIGEgY2F0ZWdvcnkgaXMgZGVsZXRlZCc7CiRsYW5nWydldmVudGhlbHAtRXZlbnRBZGRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGV2ZW50IGlzIGFkZGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7ZXZlbnRfdGl0bGVcJnF1b3Q7IC0gRXZlbnQgVGl0bGU8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9zdW1tYXJ5XCZxdW90OyAtIFN1bW1hcnkgVGV4dDwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2RldGFpbHNcJnF1b3Q7IC0gRGV0YWlsZWQgRGVzY3JpcHRpb248L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kYXRlX3N0YXJ0XCZxdW90OyAtIFRoZSBldmVudCBzdGFydCBkYXRlL3RpbWU8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kYXRlX2VuZFwmcXVvdDsgLSBUaGUgZXZlbnQgZW5kIGRhdGUvdGltZTwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2NyZWF0ZWRfYnlcJnF1b3Q7IC0gVGhlIHVzZXJpZCBvZiB0aGUgYXV0aG9yPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfaWRcJnF1b3Q7IC0gVGhlIGV2ZW50IGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUV2ZW50RWRpdGVkJ10gPSAnPHA+U2VudCB3aGVuIGEgY2FsZW5kYXIgZXZlbnQgaXMgZWRpdGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7ZXZlbnRfdGl0bGVcJnF1b3Q7IC0gRXZlbnQgVGl0bGU8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9zdW1tYXJ5XCZxdW90OyAtIFN1bW1hcnkgVGV4dDwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2RldGFpbHNcJnF1b3Q7IC0gRGV0YWlsZWQgRGVzY3JpcHRpb248L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kYXRlX3N0YXJ0XCZxdW90OyAtIFRoZSBldmVudCBzdGFydCBkYXRlL3RpbWU8L2xpPg0KPGxpPlwmcXVvdDtldmVudF9kYXRlX2VuZFwmcXVvdDsgLSBUaGUgZXZlbnQgZW5kIGRhdGUvdGltZTwvbGk+DQo8bGk+XCZxdW90O2V2ZW50X2NyZWF0ZWRfYnlcJnF1b3Q7IC0gVGhlIHVzZXJpZCBvZiB0aGUgYXV0aG9yPC9saT4NCjxsaT5cJnF1b3Q7ZXZlbnRfaWRcJnF1b3Q7IC0gVGhlIGV2ZW50IGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUV2ZW50RGVsZXRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGV2ZW50IGlzIGRlbGV0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtldmVudF9pZFwmcXVvdDsgLSBUaGUgZXZlbnQgaWQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudGhlbHAtQ2F0ZWdvcnlBZGRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGNhdGVnb3J5IGlzIGFkZGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfaWRcJnF1b3Q7IC0gVGhlIGNhdGVnb3J5IGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5RWRpdGVkJ10gPSAnPHA+U2VudCB3aGVuIGEgY2FsZW5kYXIgY2F0ZWdvcnkgaXMgZWRpdGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfaWRcJnF1b3Q7IC0gVGhlIGNhdGVnb3J5IGlkPC9saT4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfbmFtZVwmcXVvdDsgLSBUaGUgY2F0ZWdvcnkgbmFtZTwvbGk+DQo8bGk+XCZxdW90O2NhdGVnb3J5X29yZGVyXCZxdW90OyAtIFRoZSBjYXRlZ29yeSBzb3J0IG9yZGVyPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRoZWxwLUNhdGVnb3J5RGVsZXRlZCddID0gJzxwPlNlbnQgd2hlbiBhIGNhbGVuZGFyIGNhdGVnb3J5IGlzIGRlbGV0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9pZFwmcXVvdDsgLSBUaGUgY2F0ZWdvcnkgaWQ8L2xpPg0KPGxpPlwmcXVvdDtjYXRlZ29yeV9uYW1lXCZxdW90OyAtIFRoZSBjYXRlZ29yeSBuYW1lPC9saT4NCjxsaT5cJnF1b3Q7Y2F0ZWdvcnlfb3JkZXJcJnF1b3Q7IC0gVGhlIGNhdGVnb3J5IHNvcnQgb3JkZXI8L2xpPg0KPC91bD4NCic7CiRsYW5nWydlcnJvcl9jc3ZfaW5zZXJ0J10gPSAnRXJyb3IgaW1wb3J0aW5nIGV2ZW50IGZyb20gY3N2IGF0IGxpbmUgJWQnOwokbGFuZ1snZXJyb3JfY3N2Zmlyc3RsaW5lZmxkbm90Zm91bmQnXSA9ICdBIHJlcXVpcmVkIGZpZWxkOiAlcywgY291bGQgbm90IGJlIGZvdW5kIGluIHRoZSBjc3YgZmlsZSBoZWFkZXIgbGluZSc7CiRsYW5nWydlcnJvcl9jc3ZpbnZhbGlkZmlyc3RsaW5lJ10gPSAnQ291bGQgbm90IGZpbmQgYSB2YWxpZCBmaXJzdCBsaW5lIG9mIHRoZSBDU1YgZmlsZSc7CiRsYW5nWydtc2dfZXZlbnRhZGRlZCddID0gJ0V2ZW50IEFkZGVkJzsKJGxhbmdbJ2Vycm9yX25vZXZlbnRuYW1lJ10gPSAnQSBuYW1lIGZvciB0aGUgZXZlbnQgaXMgcmVxdWlyZWQnOwokbGFuZ1snZXJyb3Jfbm91cGxvYWQnXSA9ICdFUlJPUjogTm8gdXBsb2FkZWQgZmlsZSBmb3VuZCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZmlsZW5hbWUnXSA9ICdFUlJPUjogVGhlIGZpbGUgdXBsb2FkZWQgY2Fubm90IGJlIGFjY2VwdGVkJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW13aXRodXBsb2FkJ10gPSAnRVJST1I6IEEgcHJvYmxlbSBvY2N1cnJlZCB0cnlpbmcgdG8gdXBsb2FkIHRoZSBmaWxlJzsKJGxhbmdbJ2Vycm9yX2ZpbGVjb3B5ZmFpbGVkJ10gPSAnRVJST1I6IEEgUHJvYmxlbSBvY2N1cnJlZCB3aGVuIGNvcHlpbmcgdGhlIGZpbGUgdG8gaXRzIGZpbmFsIGRlc3RpbmF0aW9uJzsKJGxhbmdbJ2Vycm9yX2ZpbGVleGlzdHMnXSA9ICdFUlJPUjogQSBmaWxlIGJ5IHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cyc7CiRsYW5nWydlcnJvcl9jc3ZmaWxlbm90Zm91bmQnXSA9ICdFUlJPUjogQ291bGQgbm90IGZpbmQgdGhlIENTViBGaWxlJzsKJGxhbmdbJ2Vycm9yX2NhbnRvcGVuZmlsZSddID0gJ0VSUk9SOiBDYW5ub3Qgb3BlbiBmaWxlJzsKJGxhbmdbJ2Vycm9yX2NhdGVnb3J5ZXhpc3RzJ10gPSAnRVJST1I6IEEgY2F0ZWdvcnkgd2l0aCB0aGUgbmFtZSAlcyBhbHJlYWR5IGV4aXN0cyc7CiRsYW5nWydjYWxfaWQnXSA9ICdJZCc7CiRsYW5nWydjYWxfY2FsZW5kYXInXSA9ICdUYWt2aW0nOwokbGFuZ1snY2FsX2RlZmF1bHRfdGVtcGxhdGVzJ10gPSAnRGVmYXVsdCBUZW1wbGF0ZXMnOwokbGFuZ1snY2FsX2Rlc2NyaXB0aW9uJ10gPSAnQSZjY2VkaWw7xLFrbGFtYSc7CiRsYW5nWydjYWxfYWRkZXZlbnQnXSA9ICdFdGtpbmxpayBFa2xlJzsKJGxhbmdbJ2NhbF9pbXBvcnRfZXZlbnRzJ10gPSAnSW1wb3J0IEV0JzsKJGxhbmdbJ2NhbF9ldmVudHMnXSA9ICdFdGtpbmxpa2xlcic7CiRsYW5nWydjYWxfY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpbGVyJzsKJGxhbmdbJ2NhbF9jYWxlbmRhcl90ZW1wbGF0ZSddID0gJ0NhbGVuZGFyIFRlbXBsYXRlcyc7CiRsYW5nWydjYWxfbGlzdF90ZW1wbGF0ZSddID0gJ0xpc3QgVGVtcGxhdGVzJzsKJGxhbmdbJ2NhbF91cGNvbWluZ2xpc3RfdGVtcGxhdGUnXSA9ICdVcGNvbWluZyBUZW1wbGF0ZXMnOwokbGFuZ1snY2FsX2V2ZW50X3RlbXBsYXRlJ10gPSAnRXZlbnQgVGVtcGxhdGVzJzsKJGxhbmdbJ2NhbF9zZXR0aW5ncyddID0gJ0F5YXJsYXInOwokbGFuZ1snY2FsX3ByZXYnXSA9ICcmbGFxdW87ICZPdW1sO25jZWtpJzsKJGxhbmdbJ2NhbF9uZXh0J10gPSAnU29ucmFraSAmcmFxdW87JzsKJGxhbmdbJ2NhbF9jYXRlZ29yaWVzX3VwZGF0ZWQnXSA9ICdDYXRlZ29yaWVzIFVwZGF0ZWQnOwokbGFuZ1snY2FsX3NldHRpbmdzX3VwZGF0ZWQnXSA9ICdTZXR0aW5ncyBVcGRhdGVkJzsKJGxhbmdbJ2NhbF9hZGRfZXZlbnQnXSA9ICdFdGtpbmxpayBFa2xlJzsKJGxhbmdbJ2NhbF9lZGl0J10gPSAnRCZ1dW1sO3plbmxlJzsKJGxhbmdbJ2NhbF9kZWxldGUnXSA9ICdTaWwnOwokbGFuZ1snY2FsX2FyZXlvdXN1cmUnXSA9ICdTaWxtZWsgaXN0ZWRpxJ9pbml6ZSBlbWluIG1pc2luaXo/JzsKJGxhbmdbJ2NhbF91cGRhdGVfdGVtcGxhdGUnXSA9ICdVcGRhdGUgVGVtcGxhdGUnOwokbGFuZ1snY2FsX3N1bmRheSddID0gJ1BhemFyJzsKJGxhbmdbJ2NhbF9tb25kYXknXSA9ICdQYXphcnRlc2knOwokbGFuZ1snY2FsX3R1ZXNkYXknXSA9ICdTYWzEsSc7CiRsYW5nWydjYWxfd2VkbmVzZGF5J10gPSAnJkNjZWRpbDthcsWfYW1iYSc7CiRsYW5nWydjYWxfdGh1cnNkYXknXSA9ICdQZXLFn2VtYmUnOwokbGFuZ1snY2FsX2ZyaWRheSddID0gJ0N1bWEnOwokbGFuZ1snY2FsX3NhdHVyZGF5J10gPSAnQ3VtYXJ0ZXNpJzsKJGxhbmdbJ2NhbF9zdW4nXSA9ICdQYXonOwokbGFuZ1snY2FsX21vbiddID0gJ1B0cyc7CiRsYW5nWydjYWxfdHVlcyddID0gJ1NhbCc7CiRsYW5nWydjYWxfd2VkJ10gPSAnJkNjZWRpbDthcic7CiRsYW5nWydjYWxfdGh1cnMnXSA9ICdQZXInOwokbGFuZ1snY2FsX2ZyaSddID0gJ0N1bSc7CiRsYW5nWydjYWxfc2F0J10gPSAnQ3RzJzsKJGxhbmdbJ2NhbF9qYW51YXJ5J10gPSAnT2Nhayc7CiRsYW5nWydjYWxfZmVicnVhcnknXSA9ICfFnnViYXQnOwokbGFuZ1snY2FsX21hcmNoJ10gPSAnTWFydCc7CiRsYW5nWydjYWxfYXByaWwnXSA9ICdOaXNhbic7CiRsYW5nWydjYWxfbWF5J10gPSAnTWF5xLFzJzsKJGxhbmdbJ2NhbF9qdW5lJ10gPSAnSGF6aXJhbic7CiRsYW5nWydjYWxfanVseSddID0gJ1RlbW11eic7CiRsYW5nWydjYWxfYXVndXN0J10gPSAnQcSfdXN0b3MnOwokbGFuZ1snY2FsX3NlcHRlbWJlciddID0gJ0V5bCZ1dW1sO2wnOwokbGFuZ1snY2FsX29jdG9iZXInXSA9ICdFa2ltJzsKJGxhbmdbJ2NhbF9ub3ZlbWJlciddID0gJ0thc8SxbSc7CiRsYW5nWydjYWxfZGVjZW1iZXInXSA9ICdBcmFsxLFrJzsKJGxhbmdbJ2NhbF9hZGQnXSA9ICdFa2xlJzsKJGxhbmdbJ2NhbF91cGRhdGUnXSA9ICdHJnV1bWw7bmNlbGxlJzsKJGxhbmdbJ2NhbF9ldmVudCddID0gJ0V0a2lubGlrJzsKJGxhbmdbJ2NhbF9kYXRlJ10gPSAnVGFyaWgnOwokbGFuZ1snY2FsX3N1bW1hcnknXSA9ICcmT3VtbDt6ZXQnOwokbGFuZ1snY2FsX2RldGFpbHMnXSA9ICdBeXLEsW50xLFsYXInOwokbGFuZ1snY2FsX21vcmUnXSA9ICdkZXZhbcSxID4+JzsKJGxhbmdbJ2NhbF9yZXR1cm4nXSA9ICdHZXJpIGQmb3VtbDtuJzsKJGxhbmdbJ2NhbF90byddID0gJ3RvJzsKJGxhbmdbJ2NhbF9wYXN0X2V2ZW50cyddID0gJ0dlJmNjZWRpbDttacWfIEV0a2lubGlrbGVyJzsKJGxhbmdbJ2NhbF91cGNvbWluZ19ldmVudHMnXSA9ICdZYWtsYcWfYW4gRXRraW5saWtsZXInOwokbGFuZ1snY2FsX2FueV9jYXRlZ29yeSddID0gJ0hlcmhhbmdpIGJpciBrYXRlZ29yaSc7CiRsYW5nWydjYWxfc2hvd19vbmx5X2V2ZW50c19pbiddID0gJ1Nob3cgT25seSBFdmVudHMgSW4nOwokbGFuZ1snY2FsX2ZpbHRlcl9ieSddID0gJ0ZpbHRlciBUaXRsZSBCeSA8ZW0+KHJlZ2V4KTwvZW0+JzsKJGxhbmdbJ2NhbF9nbyddID0gJ0dpdCc7CiRsYW5nWydjYWxfdGl0bGUnXSA9ICdCYcWfbMSxayc7CiRsYW5nWydjYWxfZnJvbWRhdGUnXSA9ICdCYcWfbGFtYSBUYXJpaGknOwokbGFuZ1snY2FsX3RvZGF0ZSddID0gJ0JpdGnFnyBUYXJpaGknOwokbGFuZ1snY2FsX3VwZGF0ZV9jYXRlZ29yaWVzJ10gPSAnS2F0ZWdvcmlsZXJpIGcmdXVtbDtuY2VsbGUnOwokbGFuZ1snY2FsX2xhbmd1YWdlJ10gPSAnRGlsJzsKJGxhbmdbJ2NhbF91cGRhdGVzZXR0aW5ncyddID0gJ0F5YXJsYXLEsSBHJnV1bWw7bmNlbGxlJzsKJGxhbmdbJ2NhbF91c2VfdHdlbHZlX2hvdXJfY2xvY2snXSA9ICdVc2UgdHdlbHZlIGhvdXIgY2xvY2sgb24gaG91ciBkcm9wLWRvd25zPyc7CiRsYW5nWydjYWxfZGVmYXVsdF9jYXRlZ29yeSddID0gJ1ZhcnNhecSxbGFuIEthdGVnb3JpJzsKJGxhbmdbJ2NhbF91cGRhdGVfZmllbGRzJ10gPSAnVXBkYXRlIEZpZWxkcyc7CiRsYW5nWydmb3JjZV9jYXRlZ29yeSddID0gJ0ZvcmNlIGF0IGxlYXN0IG9uZSBjYXRlZ29yeSc7CiRsYW5nWydzaG93cGFzdHllYXJzJ10gPSAnSG93IG1hbnkgeWVhcnMgaW4gdGhlIHBhc3QgaXMgYWxsb3dlZCc7CiRsYW5nWydzaG93ZnV0dXJleWVhcnMnXSA9ICdIb3cgbWFueSB5ZWFyIGludG8gdGhlIGZ1dHVyZSBpcyBhbGxvd2VkJzsKJGxhbmdbJ2hpZGVzdW1tYXJ5J10gPSAnU2hvdWxkIHRoZSBzdW1tYXJ5IGZpZWxkIGJlIGhpZGRlbic7CiRsYW5nWydoaWRlY29udGVudCddID0gJ1Nob3VsZCB0aGUgY29udGVudCBmaWVsZCBiZSBoaWRkZW4nOwokbGFuZ1snY2F0ZWdvcnlfcmVtaW5kZXInXSA9ICdQbGVhc2UgY2hlY2sgb25lIG9yIG1vcmUgY2F0ZWdvcmllcyBmb3IgdGhpcyBldmVudCc7CiRsYW5nWydtb2R1bGVfZXhhbXBsZV9zdHlsZXNoZWV0J10gPSAnQ2FsZW5kYXIgQ1NTIGV4YW1wbGUnOwokbGFuZ1snZXJyb3JfcGVybWlzc2lvbiddID0gJ1lvdSBuZWVkIHRoZSBhcHByb3ByaWF0ZSBwZXJtaXNzaW9uICglcykgdG8gYWNjZXNzIHRoaXMgZnVuY3Rpb25hbGl0eSc7CiRsYW5nWydpbnN0YWxsX3Bvc3RtZXNzYWdlJ10gPSAnTWFrZSBzdXJlIHRvIHNldCB0aGUgJnF1b3Q7TW9kaWZ5IENhbGVuZGFyJnF1b3Q7IHBlcm1pc3Npb24gb24gdXNlcnMgd2hvIHdpbGwgYmUgYWRtaW5pc3RlcmluZyBjYWxlbmRhciBldmVudHMuJzsKJGxhbmdbJ2RlbGV0ZXRhZ2dlZCddID0gJ0RlbGV0ZSB0YWdnZWQgZXZlbnRzJzsKJGxhbmdbJ2NvbmZpcm1kZWxldGV0YWdnZWQnXSA9ICdBcmUgeW91IHN1cmUgdGhlc2UgZXZlbnRzIHNob3VsZCBiZSBkZWxldGVkPyc7CiRsYW5nWyd0YWdnZWRkZWxldGVkJ10gPSAnVGFnZ2VkIGV2ZW50cyBzdWNjZXNzZnVsbHkgZGVsZXRlZCc7CiRsYW5nWyd0ZW1wbGF0ZXMnXSA9ICdUZW1wbGF0ZXMnOwokbGFuZ1sndGVtcGxhdGVfaGVscCddID0gJ1RlbXBsYXRlIEhlbHAnOwokbGFuZ1snZmlsZV90ZW1wbGF0ZXMnXSA9ICdGaWxlIFRlbXBsYXRlcyc7CiRsYW5nWydhZGR0ZW1wbGF0ZSddID0gJ0FkZCBUZW1wbGF0ZSc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ1RlbXBsYXRlJzsKJGxhbmdbJ3RlbXBsYXRlbmFtZXRleHQnXSA9ICdUZW1wbGF0ZSBOYW1lJzsKJGxhbmdbJ2VkaXR0ZW1wbGF0ZSddID0gJ0VkaXQgVGVtcGxhdGUnOwokbGFuZ1snZGVsZXRldGVtcGxhdGUnXSA9ICdEZWxldGUgVGVtcGxhdGUnOwokbGFuZ1snbmV3dGVtcGxhdGUnXSA9ICdOZXcgVGVtcGxhdGUgTmFtZSc7CiRsYW5nWyd0ZW1wbGF0ZW5hbWVleGlzdHMnXSA9ICdFcnJvcjogQSB0ZW1wbGF0ZSB3aXRoIHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cy4gUGxlYXNlIGNob29zZSBhIGRpZmZlcmVudCBuYW1lLic7CiRsYW5nWyd0ZW1wbGF0ZWltcG9ydGVkJ10gPSAnVGhlIHRlbXBsYXRlIHdhcyBzdWNlc3NmdWxseSBpbXBvcnRlZCBpbnRvIHRoZSBkYXRhYmFzZSBhbmQgaXMgbm93IGluc3RhbGxlZCBmb3IgdXNlLic7CiRsYW5nWyd2aWV3X2RlZmF1bHRfc3R5bGVzaGVldCddID0gJ1ZpZXcgRGVmYXVsdCBTdHlsZXNoZWV0JzsKJGxhbmdbJ2ZpbGVuYW1lJ10gPSAnRmlsZW5hbWUnOwokbGFuZ1snaW1wb3J0dGVtcGxhdGUnXSA9ICdJbXBvcnQgVGVtcGxhdGUnOwokbGFuZ1sndGVtcGxhdGVfZGVsZXRlZCddID0gJ1RoZSB0ZW1wbGF0ZSB3YXMgc3VjY2Vzc2Z1bGx5IGRlbGV0ZWQgZnJvbSB0aGUgZGF0YWJhc2UuJzsKJGxhbmdbJ3VwZGF0ZXRlbXBsYXRlc3VjY2VzcyddID0gJ1RoZSB0ZW1wbGF0ZSB3YXMgdXBkYXRlZCBzdWNjZXNzZnVsbHknOwokbGFuZ1sndXBkYXRldGVtcGxhdGVmYWlsdXJlJ10gPSAnQW4gZXJyb3Igb2NjdXJyZWQgdXBkYXRpbmcgdGhlIHRlbXBsYXRlJzsKJGxhbmdbJ3NldHRpbmdzc2F2ZWQnXSA9ICdTZXR0aW5ncyB3YXMgc2F2ZWQgc3VjY2Vzc2Z1bGx5JzsKJGxhbmdbJ2NhdGVnb3J5ZGVsZXRlZCddID0gJ0NhdGVnb3J5IGRlbGV0ZWQnOwokbGFuZ1snY2F0ZWdvcnl1cGRhdGVkJ10gPSAnQ2F0ZWdvcnkgdXBkYXRlZCc7CiRsYW5nWydjYXRlZ29yeWFkZGVkJ10gPSAnQ2F0ZWdvcnkgYWRkZWQnOwokbGFuZ1snZXZlbnRkZWxldGVkJ10gPSAnVGhlIGV2ZW50IHdhcyBkZWxldGVkJzsKJGxhbmdbJ2V2ZW50dXBkYXRlZCddID0gJ1RoZSBldmVudCB3YXMgdXBkYXRlZCc7CiRsYW5nWydkZWZhdWx0X3BhZ2VfZXJyb3InXSA9ICdFcnJvcjogWW91IG11c3Qgc2V0IGEgZGVmYXVsdCBwYWdlIGluIG9yZGVyIHRvIHVzZSBDYWxlbmRhciB3aXRoIHByZXR0eSBVUkxzIHR1cm5lZCBvbi4gUGxlYXNlIGdvIHRvIHRoZSBDYWxlbmRhciBzZXR0aW5ncyB0YWIgYW5kIGNob29zZSBvbmUuJzsKJGxhbmdbJ3RpbWVfYXQnXSA9ICdhdCc7CiRsYW5nWyd0eXBlJ10gPSAnVHlwZSc7CiRsYW5nWyduYW1lJ10gPSAnxLBzaW0nOwokbGFuZ1snb3JkZXInXSA9ICdTxLFyYWxhbWEnOwokbGFuZ1snZmllbGRhZGRlZCddID0gJ0ZpZWxkIFN1Y2Nlc3NmdWxseSBBZGRlZCc7CiRsYW5nWydmaWVsZGRlbGV0ZWQnXSA9ICdGaWVsZCBEZWxldGVkJzsKJGxhbmdbJ2ZpZWxkcyddID0gJ0Vrc3RyYSBFbGFubGFyJzsKJGxhbmdbJ3RleHRmaWVsZCddID0gJ1RleHQgRmllbGQnOwokbGFuZ1sndXBsb2FkZmllbGQnXSA9ICdGaWxlIHVwbG9hZCBmaWVsZCc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJzxwPkNhbGVuZGFyIGlzIGEgbW9kdWxlIGZvciBkaXNwbGF5aW5nIGV2ZW50cyBvbiB5b3VyIHBhZ2UuIFdoZW4gdGhlDQoJCW1vZHVsZSBpcyBpbnN0YWxsZWQsIGEgQ2FsZW5kYXIgYWRtaW4gcGFnZSBpcyBhZGRlZCB0byB0aGUgY29udGVudCBtZW51DQoJCXRoYXQgd2lsbCBhbGxvdyB5b3UgdG8gbWFuYWdlIHlvdXIgZXZlbnRzLjwvcD4nOwokbGFuZ1snZGVmYXVsdGNhbGVuZGFycGFnZSddID0gJ0RlZmF1bHQgcGFnZSB0aGF0IGNvbnRhaW5zIENhbGVuZGFyLiBUaGlzIHBhZ2UgbXVzdCBjb250YWluIGEgU21hcnR5IHRhZyB0aGF0IGNhbGxzIENhbGVuZGFyLiBSZXF1aXJlZCBpZiB5b3UgdXNlIHRoZSBwcmV0dHkgVVJMcy4nOwokbGFuZ1sndXBsb2FkZGlyZWN0b3J5J10gPSAnRGlyZWN0b3J5IHdoZXJlIGZpbGUgdXBsb2FkcyBzaG91bGQgYmUgcGxhY2VkJzsKJGxhbmdbJ3VwbG9hZGZpbGV0eXBlcyddID0gJ0FsbG93ZWQgZmlsZSB0eXBlcyc7CiRsYW5nWyd1cGxvYWR1bmlxdWUnXSA9ICdFbnN1cmUgdW5pcXVlIGZpbGVuYW1lcyc7CiRsYW5nWyd0aHVtYl93aWR0aCddID0gJ1RodW1ibmFpbCBXaWR0aCc7CiRsYW5nWyd0aHVtYl9oZWlnaHQnXSA9ICdUaHVtYm5haWwgSGVpZ2h0JzsKJGxhbmdbJ2xhcmdlX3dpZHRoJ10gPSAnTGFyZ2UgSW1hZ2UgV2lkdGgnOwokbGFuZ1snbGFyZ2VfaGVpZ2h0J10gPSAnTGFyZ2UgSW1hZ2UgSGVpZ2h0JzsKJGxhbmdbJ2NhbF9yZWN1cl9wZXJpb2QnXSA9ICdZaW5lbGVtZWxlcic7CiRsYW5nWydjYWxfcmVjdXJfdW50aWwnXSA9ICdSZWN1cnMgVW50aWwnOwokbGFuZ1snaGVscF90ZW1wbGF0ZSddID0gJzxwPjxiPlByaW50IEF1dGhvciBOYW1lOjwvYj48L3A+DQo8Y29kZT5BdXRob3I6IHskZXZlbnQuYXV0aG9ybmFtZX08L2NvZGU+DQonOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xMzYzMTM5MTU0LjEzNjQzMTE3MDkuMTM2NDMxMTcwOS4xMzY0MzExNzA5LjEnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTM2NDMxMTcwOS4xLjEudXRtY2NuPShkaXJlY3QpfHV0bWNzcj0oZGlyZWN0KXx1dG1jbWQ9KG5vbmUpJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/zh_TW.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2NhbF9jYWxlbmRhciddID0gJ+aXpeabhic7CiRsYW5nWydjYWxfZGVzY3JpcHRpb24nXSA9ICfliqDlhaUsIOe3qOi8ryDlkowg5Yiq6Zmk5LqL5Lu2JzsKJGxhbmdbJ2NhbF9hZGRldmVudCddID0gJ+WKoOWFpeS6i+S7tic7CiRsYW5nWydjYWxfaW1wb3J0X2V2ZW50cyddID0gJ+i8uOWFpeS6i+S7tic7CiRsYW5nWydjYWxfZXZlbnRzJ10gPSAn5LqL5Lu2JzsKJGxhbmdbJ2NhbF9jYXRlZ29yaWVzJ10gPSAn55uu6YyEJzsKJGxhbmdbJ2NhbF9jYWxlbmRhcl90ZW1wbGF0ZSddID0gJ+aXpeabhuaooeadvyc7CiRsYW5nWydjYWxfbGlzdF90ZW1wbGF0ZSddID0gJ+aooeadv+ebrumMhCc7CiRsYW5nWydjYWxfdXBjb21pbmdsaXN0X3RlbXBsYXRlJ10gPSAnVXBjb21pbmcg5qih5p2/JzsKJGxhbmdbJ2NhbF9ldmVudF90ZW1wbGF0ZSddID0gJ+aooeadv+S6i+S7tic7CiRsYW5nWydjYWxfc2V0dGluZ3MnXSA9ICfoqK3lrponOwokbGFuZ1snY2FsX3ByZXYnXSA9ICfCqyDkuIrkuIDpoIEnOwokbGFuZ1snY2FsX25leHQnXSA9ICfkuIvkuIDpoIEgwrsnOwokbGFuZ1snY2FsX2NhdGVnb3JpZXNfdXBkYXRlZCddID0gJ+abtOaWsOebrumMhCc7CiRsYW5nWydjYWxfc2V0dGluZ3NfdXBkYXRlZCddID0gJ+ioreWumuabtOaWsCc7CiRsYW5nWydjYWxfYWRkX2V2ZW50J10gPSAn5Yqg5YWl5LqL5Lu2JzsKJGxhbmdbJ2NhbF9lZGl0J10gPSAn57eo6LyvJzsKJGxhbmdbJ2NhbF9kZWxldGUnXSA9ICfliKrpmaQnOwokbGFuZ1snY2FsX2FyZXlvdXN1cmUnXSA9ICfkvaDnorrlrpropoHliKrpmaTll44/JzsKJGxhbmdbJ2NhbF91cGRhdGVfdGVtcGxhdGUnXSA9ICfmm7TmlrDmqKHmnb8nOwokbGFuZ1snY2FsX3N1bmRheSddID0gJ+aYn+acn+aXpSc7CiRsYW5nWydjYWxfbW9uZGF5J10gPSAn5pif5pyf5LiAJzsKJGxhbmdbJ2NhbF90dWVzZGF5J10gPSAn5pif5pyf5LqMJzsKJGxhbmdbJ2NhbF93ZWRuZXNkYXknXSA9ICfmmJ/mnJ/kuIknOwokbGFuZ1snY2FsX3RodXJzZGF5J10gPSAn5pif5pyf5ZubJzsKJGxhbmdbJ2NhbF9mcmlkYXknXSA9ICfmmJ/mnJ/kupQnOwokbGFuZ1snY2FsX3NhdHVyZGF5J10gPSAn5pif5pyf5YWtJzsKJGxhbmdbJ2NhbF9zdW4nXSA9ICfmmJ/mnJ/ml6UnOwokbGFuZ1snY2FsX21vbiddID0gJ+aYn+acn+S4gCc7CiRsYW5nWydjYWxfdHVlcyddID0gJ+aYn+acn+S6jCc7CiRsYW5nWydjYWxfd2VkJ10gPSAn5pif5pyf5LiJJzsKJGxhbmdbJ2NhbF90aHVycyddID0gJ+aYn+acn+Wbmyc7CiRsYW5nWydjYWxfZnJpJ10gPSAn5pif5pyf5LqUJzsKJGxhbmdbJ2NhbF9zYXQnXSA9ICfmmJ/mnJ/lha0nOwokbGFuZ1snY2FsX2phbnVhcnknXSA9ICfkuIDmnIgnOwokbGFuZ1snY2FsX2ZlYnJ1YXJ5J10gPSAn5LqM5pyIJzsKJGxhbmdbJ2NhbF9tYXJjaCddID0gJ+S4ieaciCc7CiRsYW5nWydjYWxfYXByaWwnXSA9ICflm5vmnIgnOwokbGFuZ1snY2FsX21heSddID0gJ+S6lOaciCc7CiRsYW5nWydjYWxfanVuZSddID0gJ+WFreaciCc7CiRsYW5nWydjYWxfanVseSddID0gJ+S4g+aciCc7CiRsYW5nWydjYWxfYXVndXN0J10gPSAn5YWr5pyIJzsKJGxhbmdbJ2NhbF9zZXB0ZW1iZXInXSA9ICfkuZ3mnIgnOwokbGFuZ1snY2FsX29jdG9iZXInXSA9ICfljYHmnIgnOwokbGFuZ1snY2FsX25vdmVtYmVyJ10gPSAn5Y2B5LiA5pyIJzsKJGxhbmdbJ2NhbF9kZWNlbWJlciddID0gJ+WNgeS6jOaciCc7CiRsYW5nWydjYWxfZGF0ZSddID0gJ+aXpeacnyc7CiRsYW5nWydjYWxfc3VtbWFyeSddID0gJ+e4vee1kCc7CiRsYW5nWydjYWxfZGV0YWlscyddID0gJ+ips+aDhSc7CiRsYW5nWydjYWxfbW9yZSddID0gJ+abtOWkmiA+Pic7CiRsYW5nWydjYWxfcmV0dXJuJ10gPSAn6L+U5ZueJzsKJGxhbmdbJ2NhbF90byddID0gJ+WIsCc7CiRsYW5nWydjYWxfdXBjb21pbmdfZXZlbnRzJ10gPSAn5Y2z5bCH5L6G6Ieo55qE5LqL5Lu2JzsKJGxhbmdbJ2NhbF9hbnlfY2F0ZWdvcnknXSA9ICfku7vkvZXnm67pjIQnOwokbGFuZ1snY2FsX3Nob3dfb25seV9ldmVudHNfaW4nXSA9ICfpoa/npLrllK/kuIDnmoTkuovku7blnKgnOwokbGFuZ1snY2FsX2ZpbHRlcl9ieSddID0gJ+mBjua/viBCeSc7CiRsYW5nWydjYWxfZ28nXSA9ICfljrsnOwokbGFuZ1snY2FsX3RpdGxlJ10gPSAn5qiZ6aGMJzsKJGxhbmdbJ2NhbF9mcm9tZGF0ZSddID0gJ+W+nuaXpeacnyc7CiRsYW5nWydjYWxfdG9kYXRlJ10gPSAn6L+E5LuKJzsKJGxhbmdbJ2NhbF91cGRhdGVfY2F0ZWdvcmllcyddID0gJ+abtOaWsOebrumMhCc7CiRsYW5nWydjYWxfbGFuZ3VhZ2UnXSA9ICfoqp7oqIAnOwokbGFuZ1snY2FsX3VwZGF0ZXNldHRpbmdzJ10gPSAn5pu05paw6Kit5a6aJzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.category.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCm5hbWVzcGFjZSBDR0NhbGVuZGFyOwoKZmluYWwgY2xhc3MgY2F0ZWdvcnkgaW1wbGVtZW50cyBcQXJyYXlBY2Nlc3MKewogICAgcHJpdmF0ZSBzdGF0aWMgJF9jYWNoZWRfY2F0ZWdvcmllczsKICAgIHByaXZhdGUgJF9kYXRhID0gYXJyYXkoKTsKICAgIHByaXZhdGUgJF9kaXJ0eTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQogICAgewogICAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9DR0NBTEVOREFSKTsKICAgICAgICAkdGhpcy0+X2RhdGFbJ2ZnY29sb3InXSA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ2RmbHRfZmdjb2xvcicsJzAwMDAwMCcpOwogICAgICAgICR0aGlzLT5fZGF0YVsnYmdjb2xvciddID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnZGZsdF9iZ2NvbG9yJywnZmZmZmZmJyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIE9mZnNldEdldCgka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdpZCc6CiAgICAgICAgY2FzZSAnb3JkZXInOgogICAgICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWyRrZXldKSApIHJldHVybiAoaW50KSR0aGlzLT5fZGF0YVska2V5XTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ25hbWUnOgogICAgICAgIGNhc2UgJ2JnY29sb3InOgogICAgICAgIGNhc2UgJ2ZnY29sb3InOgogICAgICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWyRrZXldKSApIHJldHVybiB0cmltKCR0aGlzLT5fZGF0YVska2V5XSk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgXEV4Y2VwdGlvbigka2V5LicgaXMgbm90IGEgdmFsaWQgbWVtYmVyIG9mIGEgJy5fX0NMQVNTX18uJyBvYmplY3QnKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIE9mZnNldFNldCgka2V5LCR2YWx1ZSkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAnaWQnOgogICAgICAgIGNhc2UgJ29yZGVyJzoKICAgICAgICAgICAgLy8gdGhzZSBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBzZXQgdGhpcyB3YXkKICAgICAgICAgICAgdGhyb3cgbmV3IFxFeGNlcHRpb24oIlRoZSAka2V5IG1lbWJlciBjYW5ub3QgYmUgc2V0IHRoaXMgd2F5IGluIGEgIi5fX0NMQVNTX18pOwoKICAgICAgICBjYXNlICduYW1lJzoKICAgICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gdHJpbSgkdmFsdWUpOwogICAgICAgICAgICAkdGhpcy0+X2RpcnR5ID0gdHJ1ZTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ2JnY29sb3InOgogICAgICAgIGNhc2UgJ2ZnY29sb3InOgogICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSB0cmltKCR2YWx1ZSk7CiAgICAgICAgICAgICR0aGlzLT5fZGlydHkgPSB0cnVlOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IFxFeGNlcHRpb24oJGtleS4nIGlzIG5vdCBhIHZhbGlkIG1lbWJlciBvZiBhICcuX19DTEFTU19fLicgb2JqZWN0Jyk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBPZmZzZXRFeGlzdHMoJGtleSkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAnaWQnOgogICAgICAgIGNhc2UgJ29yZGVyJzoKICAgICAgICBjYXNlICduYW1lJzoKICAgICAgICBjYXNlICdiZ2NvbG9yJzoKICAgICAgICBjYXNlICdmZ2NvbG9yJzoKICAgICAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVska2V5XSkgKSByZXR1cm4gVFJVRTsKICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgXEV4Y2VwdGlvbigka2V5LicgaXMgbm90IGEgdmFsaWQgbWVtYmVyIG9mIGEgJy5fX0NMQVNTX18uJyBvYmplY3QnKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIE9mZnNldFVuc2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2lkJzoKICAgICAgICBjYXNlICdvcmRlcic6CiAgICAgICAgICAgIC8vIHRoc2UgcHJvcGVydGllcyBjYW5ub3QgYmUgc2V0IHRoaXMgd2F5CiAgICAgICAgICAgIHRocm93IG5ldyBcRXhjZXB0aW9uKCJUaGUgJGtleSBtZW1iZXIgY2Fubm90IGJlIGFkanVzdGVkIHRoaXMgd2F5IGluIGEgIi5fX0NMQVNTX18pOwoKICAgICAgICBjYXNlICduYW1lJzoKICAgICAgICAgICAgdW5zZXQoJHRoaXMtPl9kYXRhWyRrZXldKTsKICAgICAgICAgICAgJHRoaXMtPl9kaXJ0eSA9IHRydWU7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdiZ2NvbG9yJzoKICAgICAgICBjYXNlICdmZ2NvbG9yJzoKICAgICAgICAgICAgdW5zZXQoJHRoaXMtPl9kYXRhWyRrZXldKTsKICAgICAgICAgICAgJHRoaXMtPl9kaXJ0eSA9IHRydWU7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgXEV4Y2VwdGlvbigka2V5LicgaXMgbm90IGEgdmFsaWQgbWVtYmVyIG9mIGEgJy5fX0NMQVNTX18uJyBvYmplY3QnKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlKCkKICAgIHsKICAgICAgICBpZiggISR0aGlzWyduYW1lJ10gKSB0aHJvdyBuZXcgXEV4Y2VwdGlvbignbmFtZSBjYW5ub3QgYmUgZW1wdHkgaW4gYSAnLl9fQ0xBU1NfXy4nIG9iamVjdCcpOwogICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJ2lkJ10pICYmICR0aGlzLT5fZGF0YVsnaWQnXSA8IDAgKSB0aHJvdyBuZXcgXEV4Y2VwdGlvbignaW52YWxpZCBpZCBpbiAnLl9fQ0xBU1NfXyk7CgogICAgICAgIC8vIHZhbGlkYXRlIHRoYXQgdGhlIG5hbWUgZG9lcyBub3QgZXhpc3QKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9DR0NBTEVOREFSKTsKICAgICAgICAkdG1wID0gbnVsbDsKICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydpZCddKSAmJiAkdGhpcy0+X2RhdGFbJ2lkJ10gPiAwICkgewogICAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIGNhdGVnb3J5X2lkIEZST00gJy4kbW9kLT5jYXRlZ29yaWVzX3RhYmxlX25hbWUuJyBXSEVSRSBjYXRlZ29yeV9uYW1lID0gPyBBTkQgY2F0ZWdvcnlfaWQgIT0gPyc7CiAgICAgICAgICAgICR0bXAgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHRoaXNbJ25hbWUnXSwkdGhpc1snaWQnXSkpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgY2F0ZWdvcnlfaWQgRlJPTSAnLiRtb2QtPmNhdGVnb3JpZXNfdGFibGVfbmFtZS4nIFdIRVJFIGNhdGVnb3J5X25hbWUgPSA/JzsKICAgICAgICAgICAgJHRtcCA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkdGhpc1snbmFtZSddKSk7CiAgICAgICAgfQogICAgICAgIGlmKCAkdG1wICkgdGhyb3cgbmV3IFxFeGNlcHRpb24oJG1vZC0+TGFuZygnZXJyb3JfY2F0ZWdvcnlleGlzdHMnLCR0aGlzWyduYW1lJ10pKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gX2luc2VydCgpCiAgICB7CiAgICAgICAgJGRiID0gXGNtc21zKCktPkdldERiKCk7CiAgICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX0NHQ0FMRU5EQVIpOwoKICAgICAgICAvLyBkZXRlcm1pbmUgYSBuZXcgc2VxdWVuY2UgZm9yIGNhdGVnb3JpZXMuCiAgICAgICAgJHRoaXMtPl9kYXRhWydpZCddID0gJGRiLT5HZW5JRCgkbW9kLT5jYXRlZ29yaWVzX3RhYmxlX25hbWUuJ19zZXEnKTsKCiAgICAgICAgLy8gZGV0ZXJtaW5lIGEgbmV3IG9yZGVyCiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBDT0FMRVNDRShNQVgoY2F0ZWdvcnlfb3JkZXIpLDApKzEgRlJPTSAnLiRtb2QtPmNhdGVnb3JpZXNfdGFibGVfbmFtZTsKICAgICAgICAkdGhpcy0+X2RhdGFbJ29yZGVyJ10gPSAoaW50KSRkYi0+R2V0T25lKCRxdWVyeSk7CgogICAgICAgIC8vIGluc2VydCB0aGUgdGhpbmcKICAgICAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy4kbW9kLT5jYXRlZ29yaWVzX3RhYmxlX25hbWUuJyAoY2F0ZWdvcnlfaWQsY2F0ZWdvcnlfbmFtZSxjYXRlZ29yeV9iZ2NvbG9yLGNhdGVnb3J5X2ZnY29sb3IsY2F0ZWdvcnlfb3JkZXIpIFZBTFVFUyAoPyw/LD8sPyw/KSc7CiAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHRoaXNbJ2lkJ10sJHRoaXNbJ25hbWUnXSwkdGhpc1snYmdjb2xvciddLCR0aGlzWydmZ2NvbG9yJ10sJHRoaXNbJ29yZGVyJ10pKTsKICAgICAgICAkbW9kLT5TZW5kRXZlbnQoJ0NhdGVnb3J5QWRkZWQnLGFycmF5KCdjYXRlZ29yeV9pZCc9PiR0aGlzWydpZCddLCdjYXRlZ29yeV9uYW1lJz0+JHRoaXNbJ25hbWUnXSwnY2F0ZWdvcnlfb3JkZXInPT4kdGhpc1snb3JkZXInXSkpOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBfdXBkYXRlKCkKICAgIHsKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9DR0NBTEVOREFSKTsKCiAgICAgICAgJHF1ZXJ5ID0gJ1VQREFURSAnLiRtb2QtPmNhdGVnb3JpZXNfdGFibGVfbmFtZS4nIFNFVCBjYXRlZ29yeV9uYW1lID0gPywgY2F0ZWdvcnlfYmdjb2xvciA9ID8sIGNhdGVnb3J5X2ZnY29sb3IgPSA/LCBjYXRlZ29yeV9vcmRlciA9ID8KICAgICAgICAgICAgICAgICAgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/JzsKICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkdGhpc1snbmFtZSddLCR0aGlzWydiZ2NvbG9yJ10sJHRoaXNbJ2ZnY29sb3InXSwkdGhpc1snb3JkZXInXSwkdGhpc1snaWQnXSkpOwogICAgICAgICRtb2QtPlNlbmRFdmVudCgnQ2F0ZWdvcnlFZGl0ZWQnLGFycmF5KCdjYXRlZ29yeV9pZCc9PiR0aGlzWydpZCddLCdjYXRlZ29yeV9uYW1lJz0+JHRoaXNbJ25hbWUnXSwnY2F0ZWdvcnlfb3JkZXInPT4kdGhpc1snb3JkZXInXSkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzYXZlKCkKICAgIHsKICAgICAgICBpZiggISR0aGlzLT5fZGlydHkgKSByZXR1cm47CiAgICAgICAgJHRoaXMtPnZhbGlkYXRlKCk7CiAgICAgICAgaWYoICR0aGlzWydpZCddID09IDAgKSB7CiAgICAgICAgICAgICR0aGlzLT5faW5zZXJ0KCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPl91cGRhdGUoKTsKICAgICAgICB9CiAgICAgICAgc2VsZjo6JF9jYWNoZWRfY2F0ZWdvcmllcyA9IG51bGw7CiAgICAgICAgJHRoaXMtPl9kaXJ0eSA9IG51bGw7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiAmbG9hZCgkY2F0ZWdvcnlfaWQpCiAgICB7CiAgICAgICAgJG9iaiA9IG51bGw7CiAgICAgICAgJGNhdGVnb3JpZXMgPSBzZWxmOjpnZXRfY2F0ZWdvcmllcyhUUlVFKTsKICAgICAgICBpZiggIWlzc2V0KCRjYXRlZ29yaWVzWyRjYXRlZ29yeV9pZF0pICkgcmV0dXJuICRvYmo7CgogICAgICAgICRyb3cgPSAkY2F0ZWdvcmllc1skY2F0ZWdvcnlfaWRdOwogICAgICAgICRvYmogPSBuZXcgc2VsZigpOwogICAgICAgICRvYmotPl9kYXRhWydpZCddID0gJHJvd1snY2F0ZWdvcnlfaWQnXTsKICAgICAgICAkb2JqLT5fZGF0YVsnbmFtZSddID0gJHJvd1snY2F0ZWdvcnlfbmFtZSddOwogICAgICAgICRvYmotPl9kYXRhWydiZ2NvbG9yJ10gPSAkcm93WydjYXRlZ29yeV9iZ2NvbG9yJ107CiAgICAgICAgJG9iai0+X2RhdGFbJ2ZnY29sb3InXSA9ICRyb3dbJ2NhdGVnb3J5X2ZnY29sb3InXTsKICAgICAgICAkb2JqLT5fZGF0YVsnb3JkZXInXSA9ICRyb3dbJ2NhdGVnb3J5X29yZGVyJ107CiAgICAgICAgcmV0dXJuICRvYmo7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfY2F0ZWdvcmllcygkYnlfaWQgPSBGQUxTRSkKICAgIHsKICAgICAgICBpZiggIWlzX2FycmF5KHNlbGY6OiRfY2FjaGVkX2NhdGVnb3JpZXMpICkgewogICAgICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICAgICBzZWxmOjokX2NhY2hlZF9jYXRlZ29yaWVzID0gYXJyYXkoKTsKICAgICAgICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX0NHQ0FMRU5EQVIpOwogICAgICAgICAgICAkY2F0ZWdvcmllc190YWJsZV9uYW1lID0gJG1vZC0+Y2F0ZWdvcmllc190YWJsZV9uYW1lOwogICAgICAgICAgICAkc3FsID0gIlNFTEVDVCAqIEZST00gJG1vZC0+Y2F0ZWdvcmllc190YWJsZV9uYW1lIE9SREVSIEJZIGNhdGVnb3J5X29yZGVyLCBjYXRlZ29yeV9uYW1lIjsKCiAgICAgICAgICAgIHNlbGY6OiRfY2FjaGVkX2NhdGVnb3JpZXMgPSAkZGItPkdldEFycmF5KCRzcWwpOwogICAgICAgIH0KCiAgICAgICAgaWYoICRieV9pZCApIHJldHVybiBcY2dlX2FycmF5Ojp0b19oYXNoKHNlbGY6OiRfY2FjaGVkX2NhdGVnb3JpZXMsJ2NhdGVnb3J5X2lkJyk7CiAgICAgICAgcmV0dXJuIHNlbGY6OiRfY2FjaGVkX2NhdGVnb3JpZXM7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZGVsZXRlKCRjYXRpZCkKICAgIHsKICAgICAgICAkY2F0aWQgPSAoaW50KSRjYXRpZDsKCiAgICAgICAgJGNhdCA9IHNlbGY6OmxvYWQoJGNhdGlkKTsKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9DR0NBTEVOREFSKTsKCiAgICAgICAgJHF1ZXJ5ID0gJ1VQREFURSAnLiRtb2QtPmNhdGVnb3JpZXNfdGFibGVfbmFtZS4nIFNFVCBjYXRlZ29yeV9vcmRlciA9IGNhdGVnb3J5X29yZGVyIC0gMSBXSEVSRSBjYXRlZ29yeV9vcmRlciA+ID8nOwogICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGNhdFsnb3JkZXInXSkpOwoKICAgICAgICAkcXVlcnkgPSAnREVMRVRFIEZST00gJy4kbW9kLT5ldmVudHNfdG9fY2F0ZWdvcmllc190YWJsZV9uYW1lLicgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/JzsKICAgICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRjYXRpZCkpOwoKICAgICAgICAkcXVlcnkgPSAnREVMRVRFIEZST00gJy4kbW9kLT5jYXRlZ29yaWVzX3RhYmxlX25hbWUuJyBXSEVSRSBjYXRlZ29yeV9pZCA9ID8nOwogICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGNhdGlkKSk7CgogICAgICAgICRtb2QtPlNlbmRFdmVudCgnQ2F0ZWdvcnlEZWxldGVkJyxhcnJheSgnY2F0ZWdvcnlfaWQnPT4kY2F0aWQsJ2NhdGVnb3J5X25hbWUnPT4kY2F0WyduYW1lJ10sJ2NhdGVnb3J5X29yZGVyJz0+JGNhdFsnb3JkZXInXSkpOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgcalendar_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4CiMgICAgICBieSBSb2JlcnQgQWxsZW4gKGFrcmFiYXQpIGFuZAojICAgICAgICAgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBkaXNwbGF5aW5nIGNhbGVuZGFycywKIyAgYW5kIG1hbmFnZW1lbnQgYW5kIGRpc3BsYXkgb2YgdGltZSBiYXNlZCBldmVudHMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpmaW5hbCBjbGFzcyBjZ2NhbGVuZGFyX3V0aWxzCnsKICAgIHByaXZhdGUgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7fQoKICAgIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gZ2V0X2xvY2FsZV9kYXRlcygpCiAgICB7CiAgICAgICAgJG91dCA9IGFycmF5KCk7CiAgICAgICAgJG91dFsnbW9udGhOYW1lcyddID0gYXJyYXkoKTsKICAgICAgICAkb3V0Wydtb250aE5hbWVzU2hvcnQnXSA9IGFycmF5KCk7CiAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgMTI7ICRpKysgKSB7CiAgICAgICAgICAgICRvdXRbJ21vbnRoTmFtZXMnXVtdID0gc3RyZnRpbWUoJyVCJyxta3RpbWUoMSwwLDAsJGkrMSwxLDIwMDApKTsKICAgICAgICAgICAgJG91dFsnbW9udGhOYW1lc1Nob3J0J11bXSA9IHN0cmZ0aW1lKCclYicsbWt0aW1lKDEsMCwwLCRpKzEsMSwyMDAwKSk7CiAgICAgICAgfQoKICAgICAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9DR0NBTEVOREFSKTsKICAgICAgICAkZm10ID0gJ2xhc3Qgc3VuZGF5ICsgJWQgZGF5cyc7CiAgICAgICAgJG91dFsnZGF5TmFtZXMnXSA9IGFycmF5KCk7CiAgICAgICAgJG91dFsnZGF5TmFtZXNTaG9ydCddID0gYXJyYXkoKTsKICAgICAgICAkY3VyZGF5ID0gKGludClkYXRlKCd3Jyk7CiAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgNzsgJGkrKyApIHsKICAgICAgICAgICAgJG91dFsnZGF5TmFtZXMnXVtdID0gc3RyZnRpbWUoJyVBJyxzdHJ0b3RpbWUoc3ByaW50ZigkZm10LCRpKSkpOwogICAgICAgICAgICAkb3V0WydkYXlOYW1lc1Nob3J0J11bXSA9IHN0cmZ0aW1lKCclYScsc3RydG90aW1lKHNwcmludGYoJGZtdCwkaSkpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBnZXRfdWlkX2J5X3VzZXJuYW1lKCR1c2VybmFtZSwkY2hlY2tfYWRtaW4gPSBmYWxzZSkKICAgIHsKICAgICAgICBpZiggJGNoZWNrX2FkbWluICkgewogICAgICAgICAgICAkdXNlcm9wcyA9IGNtc21zKCktPkdldFVzZXJPcGVyYXRpb25zKCk7CiAgICAgICAgICAgICR1c2VyID0gJHVzZXJvcHMtPkxvYWRVc2VyQnlVc2VybmFtZSgkdXNlcm5hbWUpOwogICAgICAgICAgICBpZiggaXNfb2JqZWN0KCR1c2VyKSApIHJldHVybiAkdXNlci0+aWQgKiAtMSAtIDEwMDsKICAgICAgICB9CgogICAgICAgICRmZXUgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKTsKICAgICAgICBpZiggISRmZXUgKSByZXR1cm4gRkFMU0U7CgogICAgICAgICRpbmZvID0gJGZldS0+R2V0VXNlckluZm9CeU5hbWUoJHVzZXJuYW1lKTsKICAgICAgICBpZiggIWlzX2FycmF5KCRpbmZvKSApIHJldHVybiBGQUxTRTsKICAgICAgICBpZiggJGluZm9bMF0gPT0gRkFMU0UgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgcmV0dXJuICRpbmZvWzFdWydpZCddOwogICAgfQoKCiAgICBzdGF0aWMgcHVibGljIGZ1bmN0aW9uIGdldF91c2VybmFtZSgkdWlkKQogICAgewogICAgICAgIGlmKCAkdWlkIDwgLTEwMCApIHsKICAgICAgICAgICAgLy8gYW4gYWRtaW4gdXNlcgogICAgICAgICAgICAkdXNlcm9wcyA9IGNtc21zKCktPkdldFVzZXJPcGVyYXRpb25zKCk7CiAgICAgICAgICAgICR1c2VyID0gJHVzZXJvcHMtPkxvYWRVc2VyQnlJRCgkdWlkICogLTEgLSAxMDApOwogICAgICAgICAgICBpZiggISR1c2VyICkgcmV0dXJuIEZBTFNFOwogICAgICAgICAgICByZXR1cm4gJHVzZXItPnVzZXJuYW1lOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKCAkdWlkID4gMCApIHsKICAgICAgICAgICAgJGZldSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpOwogICAgICAgICAgICBpZiggISRmZXUgKSByZXR1cm4gRkFMU0U7CgogICAgICAgICAgICAkdXNlcmluZm8gPSAkZmV1LT5HZXRVc2VySW5mbygkdWlkKTsKICAgICAgICAgICAgaWYoICFpc19hcnJheSgkdXNlcmluZm8pICkgcmV0dXJuIEZBTFNFOwoKICAgICAgICAgICAgaWYoICR1c2VyaW5mb1swXSAhPSBUUlVFICkgcmV0dXJuIEZBTFNFOwogICAgICAgICAgICByZXR1cm4gJHVzZXJpbmZvWzFdWyd1c2VybmFtZSddOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKICAgIGZ1bmN0aW9uIGV4cGFuZF9ldmVudHMoJGV2ZW50aWRzLCRyZXR1cm5pZCwkcGFyYW1ldGVycywkbGltaXQgPSAxMDAwMCwkc3RhcnRvZmZzZXQgPSAwKQogICAgewogICAgICAgIGlmKCAhaXNfYXJyYXkoJGV2ZW50aWRzKSB8fCBjb3VudCgkZXZlbnRpZHMpIDwgMSApIHJldHVybiBGQUxTRTsKCiAgICAgICAgJG1vZHVsZSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dDYWxlbmRhcicpOwogICAgICAgICRnQ21zID0gY21zbXMoKTsKICAgICAgICAkZGIgPSAkZ0Ntcy0+R2V0RGIoKTsKCiAgICAgICAgJGV2ZW50c190b19jYXRlZ29yaWVzX3RhYmxlX25hbWUgPSAkbW9kdWxlLT5ldmVudHNfdG9fY2F0ZWdvcmllc190YWJsZV9uYW1lOwogICAgICAgICRjYXRlZ29yaWVzX3RhYmxlX25hbWUgPSAkbW9kdWxlLT5jYXRlZ29yaWVzX3RhYmxlX25hbWU7CiAgICAgICAgJGV2ZW50X2ZpZWxkX3ZhbHVlc190YWJsZV9uYW1lID0gJG1vZHVsZS0+ZXZlbnRfZmllbGRfdmFsdWVzX3RhYmxlX25hbWU7CgogICAgICAgICR1c2Vyb3BzID0gJGdDbXMtPkdldFVzZXJPcGVyYXRpb25zKCk7CiAgICAgICAgJHRtcCA9ICR1c2Vyb3BzLT5Mb2FkVXNlcnMoKTsKICAgICAgICAkdXNlcnMgPSBhcnJheSgpOwogICAgICAgIGZvcmVhY2ggKCR0bXAgYXMgJG9uZXVzZXIpIHsKICAgICAgICAgICAgJHVzZXJzWyRvbmV1c2VyLT5pZF0gPSAkb25ldXNlcjsKICAgICAgICB9CgogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuJG1vZHVsZS0+ZXZlbnRzX3RhYmxlX25hbWUuJyBXSEVSRSBldmVudF9pZCBJTiAoJy5pbXBsb2RlKCcsJywkZXZlbnRpZHMpLicpCiAgICAgICAgICAgICAgT1JERVIgQlkgZXZlbnRfZGF0ZV9zdGFydCBBU0MnOwogICAgICAgICRycyA9ICRkYi0+U2VsZWN0TGltaXQoJHF1ZXJ5LCRsaW1pdCwkc3RhcnRvZmZzZXQpOwogICAgICAgICRldmVudHMgPSBhcnJheSgpOwogICAgICAgIHdoaWxlKCRycyAmJiAoJHJvdyA9ICRycy0+RmV0Y2hSb3coKSkpIHsKICAgICAgICAgICAgJHRpdGxlU0VPID0gbXVuZ2Vfc3RyaW5nX3RvX3VybCgkcm93WydldmVudF90aXRsZSddKTsKICAgICAgICAgICAgJGRlc3RwYWdlID0gJG1vZHVsZS0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdGNhbGVuZGFycGFnZScsLTEpOwogICAgICAgICAgICAkZGVzdHBhZ2U9JGRlc3RwYWdlIT0tMT8kZGVzdHBhZ2U6JHJldHVybmlkOwogICAgICAgICAgICAkZGVzdHBhZ2U9JGRldGFpbHBhZ2UhPScnPyRkZXRhaWxwYWdlOiRkZXN0cGFnZTsKICAgICAgICAgICAgJHByZWZpeCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cmxfcHJlZml4Jyk7IGlmKCAhJHByZWZpeCApICRwcmVmaXggPSAnY2FsZW5kYXInOwogICAgICAgICAgICAkcHJldHR5dXJsID0gc3ByaW50ZigkcHJlZml4LiIvJWQvJWQtJXMiLCAkZGVzdHBhZ2UsICRyb3dbJ2V2ZW50X2lkJ10sICR0aXRsZVNFTyk7CiAgICAgICAgICAgICRwYXJtcyA9IGFycmF5KCk7CiAgICAgICAgICAgICRwYXJtc1snZXZlbnRfaWQnXSA9ICRyb3dbJ2V2ZW50X2lkJ107CiAgICAgICAgICAgICRwYXJtc1snZGlzcGxheSddID0gJ2V2ZW50JzsKICAgICAgICAgICAgaWYoIGlzc2V0KCRwYXJhbWV0ZXJzWydldmVudHRlbXBsYXRlJ10pICkgJHBhcm1zWydldmVudHRlbXBsYXRlJ10gPSAkcGFyYW1ldGVyc1snZXZlbnR0ZW1wbGF0ZSddOwogICAgICAgICAgICAkdXJsID0gJG1vZHVsZS0+Q3JlYXRlTGluaygkaWQsICdkZWZhdWx0JywkZGVzdHBhZ2UsICRjb250ZW50cz0nJywgJHBhcm1zLCAnJywgdHJ1ZSwgJycsICcnLCAnJywgJHByZXR0eXVybCk7CiAgICAgICAgICAgICRyb3dbJ3VybCddID0gJHVybDsKICAgICAgICAgICAgJHJvd1snYXV0aG9yJ10gPSAkdXNlcnNbJHJvd1snZXZlbnRfY3JlYXRlZF9ieSddXS0+dXNlcm5hbWU7CiAgICAgICAgICAgICRyb3dbJ2F1dGhvcm5hbWUnXSA9ICR1c2Vyc1skcm93WydldmVudF9jcmVhdGVkX2J5J11dLT5maXJzdG5hbWUuJyAnLiR1c2Vyc1skcm93WydldmVudF9jcmVhdGVkX2J5J11dLT5sYXN0bmFtZTsKCiAgICAgICAgICAgIC8vIEJlZ2luIGNhdGVnb3JpZXMgcmV0cmlldmFsCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIC8vIEJ1aWxkIHRoZSBzcWwgdG8gcmV0cmlldmUgdGhlIGNhdGVnb3JpZXMgZm9yIHRoaXMgZXZlbnQuCiAgICAgICAgICAgICAgICAkc3FsID0gIlNFTEVDVCBjYXRlZ29yeV9uYW1lIEZST00gJGV2ZW50c190b19jYXRlZ29yaWVzX3RhYmxlX25hbWUKCSAgICAgICAgSU5ORVIgSk9JTiAkY2F0ZWdvcmllc190YWJsZV9uYW1lIE9OICAkZXZlbnRzX3RvX2NhdGVnb3JpZXNfdGFibGVfbmFtZS5jYXRlZ29yeV9pZCA9ICRjYXRlZ29yaWVzX3RhYmxlX25hbWUuY2F0ZWdvcnlfaWQKCSAgICAgICAgV0hFUkUgZXZlbnRfaWQgPSA/IjsKICAgICAgICAgICAgICAgICRjcnMgPSAkZGItPkV4ZWN1dGUoJHNxbCxhcnJheSgkcm93WydldmVudF9pZCddKSk7IC8vIEdldCB0aGUgZmllbGQgdmFsdWVzCiAgICAgICAgICAgICAgICAkY2F0ZWdvcmllcyA9IGFycmF5KCk7CiAgICAgICAgICAgICAgICAkY2F0ZWdvcmllc190ZW1wID0gYXJyYXkoKTsKICAgICAgICAgICAgICAgIGlmICgkY3JzKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZXJlIGFyZSByZXN1bHRzIGFuZCBhc3NpZ24gdG8gdGhlICRjYXRlZ29yaWVzIGFycmF5CiAgICAgICAgICAgICAgICAgICAgJGNhdGVnb3JpZXNfdGVtcCA9ICRjcnMtPkdldEFycmF5KCk7CiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCgkY2F0ZWdvcmllc190ZW1wIGFzICRjYXRlZ29yeSkgewogICAgICAgICAgICAgICAgICAgICAgICAkY2F0ZWdvcnlfbmFtZSA9ICRjYXRlZ29yeVsnY2F0ZWdvcnlfbmFtZSddOwogICAgICAgICAgICAgICAgICAgICAgICAkY2F0ZWdvcmllc1skY2F0ZWdvcnlfbmFtZV0gPSAnMSc7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLy8gQXR0YWNoIHRoZSBjdXN0b20gZmllbGRzIHRvIHRoZSBldmVudAogICAgICAgICAgICAgICAgJHJvd1snY2F0ZWdvcmllcyddID0gJGNhdGVnb3JpZXM7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gRW5kIGNhdGVnb3JpZXMgcmV0cmlldmFsCgogICAgICAgICAgICAvLyBCZWdpbiBjdXN0b20gZmllbGRzIHJldHJpZXZhbAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAvLyBCdWlsZCB0aGUgc3FsIHRvIHJldHJpZXZlIHRoZSBmaWVsZCB2YWx1ZXMgZm9yIHRoaXMgZXZlbnQuCiAgICAgICAgICAgICAgICAkc3FsID0gIlNFTEVDVCBmaWVsZF9uYW1lLGZpZWxkX3ZhbHVlIEZST00gJGV2ZW50X2ZpZWxkX3ZhbHVlc190YWJsZV9uYW1lIFdIRVJFIGV2ZW50X2lkID0gPyI7CiAgICAgICAgICAgICAgICAkZnJzID0gJGRiLT5FeGVjdXRlKCRzcWwsYXJyYXkoJHJvd1snZXZlbnRfaWQnXSkpOyAvLyBHZXQgdGhlIGZpZWxkIHZhbHVlcwogICAgICAgICAgICAgICAgJGZpZWxkcyA9IGFycmF5KCk7CiAgICAgICAgICAgICAgICAkZmllbGRzX3RlbXAgPSBhcnJheSgpOwogICAgICAgICAgICAgICAgaWYgKCRmcnMpIHsKICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhlcmUgYXJlIHJlc3VsdHMgYW5kIGFzc2lnbiB0byB0aGUgJGZpZWxkcyBhcnJheQogICAgICAgICAgICAgICAgICAgICRmaWVsZHNfdGVtcCA9ICRmcnMtPkdldEFycmF5KCk7CiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCgkZmllbGRzX3RlbXAgYXMgJGZpZWxkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRmaWVsZF9uYW1lID0gJGZpZWxkWydmaWVsZF9uYW1lJ107CiAgICAgICAgICAgICAgICAgICAgICAgICRmaWVsZF92YWx1ZSA9ICRmaWVsZFsnZmllbGRfdmFsdWUnXTsKICAgICAgICAgICAgICAgICAgICAgICAgJGZpZWxkc1skZmllbGRfbmFtZV0gPSAkZmllbGRfdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLy8gQXR0YWNoIHRoZSBjdXN0b20gZmllbGRzIHRvIHRoZSBldmVudAogICAgICAgICAgICAgICAgJHJvd1snZmllbGRzJ10gPSAkZmllbGRzOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEVuZCBjdXN0b20gZmllbGRzIHJldHJpZXZhbAoKICAgICAgICAgICAgLy8gYW5kIGFkZCBpdCB0byB0aGUgbGlzdCBvZiBjb21wbGV0ZWQsIGV4cGFuZGVkIGV2ZW50cy4KICAgICAgICAgICAgJGV2ZW50c1tdID0gJHJvdzsKICAgICAgICB9CiAgICAgICAgaWYoICRycyApICRycy0+Q2xvc2UoKTsKCiAgICAgICAgcmV0dXJuICRldmVudHM7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBuZXh0X3ltZCgkZGF0ZV9zdHIpCiAgICB7CiAgICAgICAgbGlzdCgkeXksJG1tLCRkZCkgPSBzZWxmOjp0b195bWQoJGRhdGVfc3RyKTsKICAgICAgICBpZiggJGRkID09ICcnICkgewogICAgICAgICAgICBpZiggJG1tID09ICcnICkgewogICAgICAgICAgICAgICAgLy8gbmV4dCB5ZWFyCiAgICAgICAgICAgICAgICByZXR1cm4gKGludCkkeXkrMTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIG5leHQgbW9udGgKICAgICAgICAgICAgICAgICRtbSA9IChpbnQpJG1tKzE7CiAgICAgICAgICAgICAgICBpZiggJG1tID09IDEzICkgewogICAgICAgICAgICAgICAgICAgICR5eSA9IChpbnQpJHl5KzE7CiAgICAgICAgICAgICAgICAgICAgJG1tID0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiAiJHl5LSRtbSI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIC8vIG5leHQgZGF5LgogICAgICAgICAgICAkZGQgPSAoaW50KSRkZCsxOwogICAgICAgICAgICAkdXQgPSBzdHJ0b3RpbWUoJGRhdGVfc3RyKTsKICAgICAgICAgICAgJGxhc3RkYXkgPSBkYXRlKCd0JywkdXQpOwogICAgICAgICAgICBpZiggJGRkID4gJGxhc3RkYXkgKSB7CiAgICAgICAgICAgICAgICAkZGQgPSAxOwogICAgICAgICAgICAgICAgJG1tID0gKGludCkkbW0rMTsKICAgICAgICAgICAgICAgIGlmKCAkbW0gPT0gMTMgKSB7CiAgICAgICAgICAgICAgICAgICAgJHl5ID0gKGludCkkeXkrMTsKICAgICAgICAgICAgICAgICAgICAkbW0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAiJHl5LSRtbS0kZGQiOwogICAgICAgIH0KICAgIH0KCgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBwcmV2X3ltZCgkZGF0ZV9zdHIpCiAgICB7CiAgICAgICAgbGlzdCgkeXksJG1tLCRkZCkgPSBzZWxmOjp0b195bWQoJGRhdGVfc3RyKTsKICAgICAgICBpZiggJGRkID09ICcnICkgewogICAgICAgICAgICBpZiggJG1tID09ICcnICkgewogICAgICAgICAgICAgICAgLy8gcHJldiB5ZWFyCiAgICAgICAgICAgICAgICByZXR1cm4gKGludCkkeXktMTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIHByZXYgbW9udGgKICAgICAgICAgICAgICAgICRtbSA9IChpbnQpJG1tLTE7CiAgICAgICAgICAgICAgICBpZiggJG1tIDwgMSApIHsKICAgICAgICAgICAgICAgICAgICAvLyB3cmFwcGluZyB5ZWFycwogICAgICAgICAgICAgICAgICAgICR5eSA9IChpbnQpJHl5LTE7CiAgICAgICAgICAgICAgICAgICAgJG1tID0gMTI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gIiR5eS0kbW0iOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAvLyBwcmV2IGRheS4KICAgICAgICAgICAgJGRkID0gKGludCkkZGQtMTsKICAgICAgICAgICAgaWYoICRkZCA8IDEgKSB7CiAgICAgICAgICAgICAgICAkbW0gPSAoaW50KSRtbS0xOwogICAgICAgICAgICAgICAgaWYoICRtbSA8IDEgKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gd3JhcHBpbmcgeWVhcnMKICAgICAgICAgICAgICAgICAgICAkeXkgPSAoaW50KSR5eS0xOwogICAgICAgICAgICAgICAgICAgICRtbSA9IDEyOwogICAgICAgICAgICAgICAgICAgICRkZCA9IDMxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJGRkID0gZGF0ZSgndCcsc3RydG90aW1lKCIkeXktJG1tLTIiKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICIkeXktJG1tLSRkZCI7CiAgICAgICAgfQogICAgfQoKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHRvX3ltZCgkc3RyKQogICAgewogICAgICAgICR0bXAgPSBleHBsb2RlKCcgJywkc3RyKTsKICAgICAgICAkdG1wID0gJHRtcFswXTsKICAgICAgICAkdG1wID0gZXhwbG9kZSgnLScsJHRtcCk7CiAgICAgICAgZm9yKCAkaSA9IGNvdW50KCR0bXApOyAkaSA8IDM7ICRpKysgKSB7CiAgICAgICAgICAgICR0bXBbJGldID0gJyc7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkdG1wOwogICAgfQoKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9xdWVyeSgkc3RhcnQsJGVuZCwkY2F0ZWdvcnksJHJldmVyc2UpCiAgICB7CiAgICAgICAgJG1vZHVsZSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dDYWxlbmRhcicpOwogICAgICAgICRzb3J0aW5nID0gKCRyZXZlcnNlID09IHRydWUgPyAnREVTQycgOiAnQVNDJyk7CiAgICAgICAgJGV2ZW50c190YWJsZV9uYW1lID0gJG1vZHVsZS0+ZXZlbnRzX3RhYmxlX25hbWU7CiAgICAgICAgJGNhdGVnb3JpZXNfdGFibGVfbmFtZSA9ICRtb2R1bGUtPmNhdGVnb3JpZXNfdGFibGVfbmFtZTsKICAgICAgICAkZXZlbnRzX3RvX2NhdGVnb3JpZXNfdGFibGVfbmFtZSA9ICRtb2R1bGUtPmV2ZW50c190b19jYXRlZ29yaWVzX3RhYmxlX25hbWU7CgogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgaWYoIGlzX2ludCgkc3RhcnQpICkgJHN0YXJ0ID0gJGRiLT5EYlRpbWVTdGFtcCgkc3RhcnQpOwogICAgICAgIGlmKCBpc19pbnQoJGVuZCkgKSAkZW5kID0gJGRiLT5EYlRpbWVTdGFtcCgkZW5kKTsKCiAgICAgICAgJHNxbCA9ICJTRUxFQ1QgRElTVElOQ1QgRS5ldmVudF9pZCBGUk9NICRldmVudHNfdGFibGVfbmFtZSBFXG4iOwoKICAgICAgICBpZigkY2F0ZWdvcnkpIHsKICAgICAgICAgICAgJHNxbCAuPSAiSU5ORVIgSk9JTiAkZXZlbnRzX3RvX2NhdGVnb3JpZXNfdGFibGVfbmFtZSBFQyBPTiBFLmV2ZW50X2lkID0gRUMuZXZlbnRfaWQKCSAgICAgICBJTk5FUiBKT0lOICRjYXRlZ29yaWVzX3RhYmxlX25hbWUgQyBPTiBFQy5jYXRlZ29yeV9pZCA9IEMuY2F0ZWdvcnlfaWQiOwogICAgICAgIH0KCiAgICAgICAgJHNxbCAuPSAiIFdIRVJFICggKEUuZXZlbnRfZGF0ZV9zdGFydCBCRVRXRUVOICRzdGFydCBBTkQgJGVuZCkgT1IgKEUuZXZlbnRfZGF0ZV9lbmQgQkVUV0VFTiAkc3RhcnQgQU5EICRlbmQpIjsKICAgICAgICAkc3FsIC49ICIgT1IgKEUuZXZlbnRfZGF0ZV9zdGFydCA8PSAkc3RhcnQgQU5EIEUuZXZlbnRfZGF0ZV9lbmQgPiAkZW5kKSApXG4iOwoKICAgICAgICBpZiggJGNhdGVnb3J5ICkgewogICAgICAgICAgICAkY2F0cyA9IGV4cGxvZGUoJywnLCAkY2F0ZWdvcnkpOwogICAgICAgICAgICAkdG1wID0gYXJyYXkoKTsKICAgICAgICAgICAgZm9yZWFjaCgkY2F0cyBhcyAkY2F0KSB7CiAgICAgICAgICAgICAgICAkY2F0ID0gdHJpbSgkY2F0KTsKICAgICAgICAgICAgICAgIGlmKCBzdHJwb3MoJyonLCRjYXQpICE9PSBGQUxTRSApIHsKICAgICAgICAgICAgICAgICAgICAkY2F0ID0gc3RyX3JlcGxhY2UoJyonLCclJywkY2F0KTsKICAgICAgICAgICAgICAgICAgICAkdG1wW10gPSAiQy5jYXRlZ29yeV9uYW1lIExJS0UgJyRjYXQnIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgaWYoIHN0cnBvcygnJScsJGNhdCkgIT09IEZBTFNFICkgewogICAgICAgICAgICAgICAgICAgICR0bXBbXSA9ICJDLmNhdGVnb3J5X25hbWUgTElLRSAnJGNhdCciOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJHRtcFtdID0gIkMuY2F0ZWdvcnlfbmFtZSA9ICckY2F0JyI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHNxbCAuPSAnIEFORCAoJy5pbXBsb2RlKCcgT1IgJywkdG1wKS4nKSc7CiAgICAgICAgfQogICAgICAgICRzcWwgLj0gIiBPUkRFUiBCWSBFLmV2ZW50X2RhdGVfc3RhcnQgJHNvcnRpbmciOwogICAgICAgIHJldHVybiAkc3FsOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3Nlc3Npb25rZXkoJHBhcmFtcykKICAgIHsKICAgICAgICAkYmFka2V5cyA9IGFycmF5KCdyZXR1cm5pZCcsJ3BhZ2UnLCd5ZWFyJywnbW9udGgnLCdkYXknLCdkYXRlJywnd2VlaycsJ3Bhc3RpdGVtcycpOwogICAgICAgIGZvcmVhY2goJGJhZGtleXMgYXMgJG9uZSkgewogICAgICAgICAgICB1bnNldCgkcGFyYW1zWyRvbmVdKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG1kNShzZXJpYWxpemUoJHBhcmFtcykpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZGVsZXRlX2V2ZW50KCRldmVudF9pZCkKICAgIHsKICAgICAgICAkZXZlbnRfaWQgPSAoaW50KSRldmVudF9pZDsKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHQ2FsZW5kYXInKTsKICAgICAgICAkZXZlbnRzX3RhYmxlX25hbWUgPSAkbW9kLT5ldmVudHNfdGFibGVfbmFtZTsKICAgICAgICAkZXZlbnRzX3RvX2NhdGVnb3JpZXNfdGFibGVfbmFtZSA9ICRtb2QtPmV2ZW50c190b19jYXRlZ29yaWVzX3RhYmxlX25hbWU7CiAgICAgICAgJGV2ZW50X2ZpZWxkX3ZhbHVlc190YWJsZV9uYW1lID0gJG1vZC0+ZXZlbnRfZmllbGRfdmFsdWVzX3RhYmxlX25hbWU7CiAgICAgICAgaWYoICRldmVudF9pZCA8IDEgKSByZXR1cm4gRkFMU0U7CgogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuJGV2ZW50c190YWJsZV9uYW1lLicgV0hFUkUgZXZlbnRfaWQgPSA/IE9SIGV2ZW50X3BhcmVudF9pZCA9ID8gT1JERVIgQlkgZXZlbnRfcGFyZW50X2lkIERFU0MnOwogICAgICAgICRyb3dzID0gJGRiLT5HZXRBcnJheSgkcXVlcnksYXJyYXkoJGV2ZW50X2lkLCRldmVudF9pZCkpOwoKICAgICAgICBpZiggY21zbXMoKS0+aXNfZnJvbnRlbmRfcmVxdWVzdCgpICkgewogICAgICAgICAgICAvLyB1c2VyaWQgaGFzIHRvIG1hdGNoIHRoZSBvd25lcgogICAgICAgICAgICAkZmV1ID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJyk7CiAgICAgICAgICAgIGlmKCAhJGZldSApIHJldHVybjsKICAgICAgICAgICAgJHVzZXJpZCA9ICRmZXUtPkxvZ2dlZEluSWQoKTsKCiAgICAgICAgICAgIGZvcmVhY2goICRyb3dzIGFzICRyb3cgKSB7CiAgICAgICAgICAgICAgICBpZiggJHJvd1snZXZlbnRfY3JlYXRlZF9ieSddICE9ICR1c2VyaWQgKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gb29wcywgd2UgY2FuJ3QgZGVsZXRlIGFueXRoaW5nCiAgICAgICAgICAgICAgICAgICAgYXVkaXQoJGV2ZW50X2lkLCRtb2QtPkdldE5hbWUoKSwiRkVVIHVzZXIgJHVzZXJpZCBhdHRlbXB0ZWQgdG8gZGVsZXRlIGFuIGV2ZW50IG93bmVkIGJ5IHNvbWVib2R5IGVsc2UiKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gRkFMU0U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIC8vIGFkbWluIHJlcXVlc3QuCiAgICAgICAgICAgIGlmKCAhJG1vZC0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgQ2FsZW5kYXInKSApIHsKICAgICAgICAgICAgICAgIC8vIHVzZXJpZCBoYXMgdG8gbWF0Y2ggdGhlIG93bmVyLi4gYW5kIHdlIGhhdmUgdG8gaGF2ZSBwZXJtaXNzaW9uIHRvIGVkaXQgbXkgZXZlbnRzCiAgICAgICAgICAgICAgICBpZiggISRtb2QtPkNoZWNrUGVybWlzc2lvbignRWRpdCBNeSBDYWxlbmRhciBFdmVudHMnKSApIHsKICAgICAgICAgICAgICAgICAgICAkdXNlcmlkID0gZ2V0X3VzZXJpZChGQUxTRSkgKiAtMSAtIDEwMDsKICAgICAgICAgICAgICAgICAgICBmb3JlYWNoKCAkcm93cyBhcyAkcm93ICkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiggJHJvd1snZXZlbnRfY3JlYXRlZF9ieSddICE9ICR1c2VyaWQgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvb3BzLiB3ZSBjYW4ndCBkZWxldGUgdGhpcyBldmVudC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGl0KCRldmVudF9pZCwkbW9kLT5HZXROYW1lKCksIkFkbWluIHVzZXIgJHVzZXJpZCBhdHRlbXB0ZWQgdG8gZGVsZXRlIGFuIGV2ZW50IG93bmVkIGJ5IHNvbWVib2R5IGVsc2UiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGQUxTRTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJHF1ZXJ5MSA9ICdERUxFVEUgRlJPTSAnLiRldmVudF9maWVsZF92YWx1ZXNfdGFibGVfbmFtZS4nIFdIRVJFIGV2ZW50X2lkID0gPyc7CiAgICAgICAgJHF1ZXJ5MiA9ICdERUxFVEUgRlJPTSAnLiRldmVudHNfdG9fY2F0ZWdvcmllc190YWJsZV9uYW1lLicgV0hFUkUgZXZlbnRfaWQgPSA/JzsKICAgICAgICAkcXVlcnkzID0gJ0RFTEVURSBGUk9NICcuJGV2ZW50c190YWJsZV9uYW1lLicgV0hFUkUgZXZlbnRfcGFyZW50X2lkID0gPyc7CiAgICAgICAgJHF1ZXJ5NCA9ICdERUxFVEUgRlJPTSAnLiRldmVudHNfdGFibGVfbmFtZS4nIFdIRVJFIGV2ZW50X2lkID0gPyc7CiAgICAgICAgZm9yZWFjaCggJHJvd3MgYXMgJG9uZSApIHsKICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeTEsYXJyYXkoJGV2ZW50X2lkKSk7CiAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnkyLGFycmF5KCRldmVudF9pZCkpOwogICAgICAgIH0KICAgICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5MSxhcnJheSgkZXZlbnRfaWQpKTsKICAgICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5MixhcnJheSgkZXZlbnRfaWQpKTsKICAgICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5MyxhcnJheSgkZXZlbnRfaWQpKTsKICAgICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5NCxhcnJheSgkZXZlbnRfaWQpKTsKCiAgICAgICAgJG1vZC0+U2VuZEV2ZW50KCdFdmVudERlbGV0ZWQnLGFycmF5KCdldmVudF9pZCc9PiRldmVudF9pZCkpOwoKICAgICAgICAkY2djYWwgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHQ2FsZW5kYXInKTsKICAgICAgICAkc2VhcmNoID0gY21zX3V0aWxzOjpnZXRfc2VhcmNoX21vZHVsZSgpOwogICAgICAgIGlmKCAkc2VhcmNoICkgJHNlYXJjaC0+RGVsZXRlV29yZHMoJGNnY2FsLT5HZXROYW1lKCksJGV2ZW50X2lkKTsKCiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CgoKfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgc_event_loader.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmZpbmFsIGNsYXNzIGNnY19ldmVudF9sb2FkZXIKewogICAgcHJpdmF0ZSAkX2lkbGlzdDsKICAgIHByaXZhdGUgJF9ldmVudHRlbXBsYXRlOwogICAgcHJpdmF0ZSAkX2V2ZW50cyA9IGFycmF5KCk7CiAgICBwcml2YXRlICRfZmllbGRzID0gYXJyYXkoKTsKICAgIHByaXZhdGUgJF9jYXRlZ29yaWVzID0gYXJyYXkoKTsKICAgIHByaXZhdGUgJF9kZXN0cGFnZTsKICAgIHByaXZhdGUgJF91cmxfcHJlZml4ID0gJ2NhbGVuZGFyJzsKICAgIHByaXZhdGUgJF9yZXZlcnNlID0gRkFMU0U7CiAgICBwcml2YXRlICRfYWN0aW9uaWQ7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRhY3Rpb25pZCwkaWRsaXN0LCRkZXN0cGFnZSwkcmV2ZXJzZSkKICAgIHsKICAgICAgICBpZiggaXNfYXJyYXkoJGlkbGlzdCkgKSB7CiAgICAgICAgICAgICR0aGlzLT5faWRsaXN0ID0gYXJyYXkoKTsKICAgICAgICAgICAgZm9yZWFjaCggJGlkbGlzdCBhcyAkb25lICkgewogICAgICAgICAgICAgICAgJG9uZSA9IChpbnQpJG9uZTsKICAgICAgICAgICAgICAgIGlmKCAkb25lIDwgMSApIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgJHRoaXMtPl9pZGxpc3RbXSA9ICRvbmU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHRoaXMtPl9pZGxpc3QgPSBhcnJheV91bmlxdWUoJHRoaXMtPl9pZGxpc3QpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKCAoaW50KSRpZGxpc3QgPiAwICkgewogICAgICAgICAgICAkdGhpcy0+X2lkbGlzdCA9IGFycmF5KChpbnQpJGlkbGlzdCk7CiAgICAgICAgfQogICAgICAgICR0aGlzLT5fYWN0aW9uaWQgPSAkYWN0aW9uaWQ7CiAgICAgICAgJHRoaXMtPl9yZXZlcnNlID0gKGJvb2wpJHJldmVyc2U7CiAgICAgICAgJHRoaXMtPl9kZXN0cGFnZSA9ICRkZXN0cGFnZTsKICAgICAgICAkdG1wID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9DR0NBTEVOREFSKS0+R2V0UHJlZmVyZW5jZSgndXJsX3ByZWZpeCcpOwogICAgICAgIGlmKCAkdG1wICkgJHRoaXMtPl91cmxfcHJlZml4ID0gJHRtcDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2V2ZW50X3RlbXBsYXRlKCRldmVudHRlbXBsYXRlKQogICAgewogICAgICAgICR0aGlzLT5fZXZlbnR0ZW1wbGF0ZSA9ICRldmVudHRlbXBsYXRlOwogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gcmVvcmRlcl9jdXN0b21maWVsZHMoJGN1c3RvbWZpZWxkcykKICAgIHsKICAgICAgICAkZmllbGRzID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0NhbGVuZGFyJyktPkdldEZpZWxkcygpOwogICAgICAgICRmaWVsZHMgPSBjZ2VfYXJyYXk6OnRvX2hhc2goJGZpZWxkcywnZmllbGRfbmFtZScpOwoKICAgICAgICAkZnVuYyA9IGZ1bmN0aW9uKCRhLCRiKSB1c2UgKCRmaWVsZHMpIHsKICAgICAgICAgICAgaWYoICRhWydldmVudF9pZCddIDwgJGJbJ2V2ZW50X2lkJ10gKSByZXR1cm4gLTE7CiAgICAgICAgICAgIGlmKCAkYVsnZXZlbnRfaWQnXSA+ICRiWydldmVudF9pZCddICkgcmV0dXJuIDE7CiAgICAgICAgICAgICRhYSA9ICRmaWVsZHNbJGFbJ2ZpZWxkX25hbWUnXV07CiAgICAgICAgICAgICRhYSA9ICRmaWVsZHNbJGJbJ2ZpZWxkX25hbWUnXV07CiAgICAgICAgICAgIGlmKCAkYWFbJ2ZpZWxkX29yZGVyJ10gPCAkYmJbJ2ZpZWxkX29yZGVyJ10gKSByZXR1cm4gLTE7CiAgICAgICAgICAgIGlmKCAkYWFbJ2ZpZWxkX29yZGVyJ10gPiAkYmJbJ2ZpZWxkX29yZGVyJ10gKSByZXR1cm4gMTsKICAgICAgICAgICAgLy8gbm93IGNvbXBhcmUgYnkgZmllbGQgdmFsdWUuCiAgICAgICAgICAgIGlmKCAkYVsnZmllbGRfdmFsdWUnXSA8ICRiWydmaWVsZF92YWx1ZSddICkgcmV0dXJuIC0xOwogICAgICAgICAgICBpZiggJGFbJ2ZpZWxkX3ZhbHVlJ10gPiAkYlsnZmllbGRfdmFsdWUnXSApIHJldHVybiAtMTsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfTsKCiAgICAgICAgdXNvcnQoJGN1c3RvbWZpZWxkcywkZnVuYyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9ldmVudHMoKQogICAgewogICAgICAgICRnQ21zID0gY21zbXMoKTsKICAgICAgICAkc29ydGluZyA9ICgkdGhpcy0+X3JldmVyc2UpID8gJ0RFU0MnIDogJ0FTQyc7CiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ2NhbGVuZGFyX2V2ZW50cyBXSEVSRSBldmVudF9pZCBJTiAoJzsKICAgICAgICAkcXVlcnkgLj0gaW1wbG9kZSgnLCcsJHRoaXMtPl9pZGxpc3QpLicpJzsKICAgICAgICAkcXVlcnkgLj0gIiBPUkRFUiBCWSBldmVudF9kYXRlX3N0YXJ0ICRzb3J0aW5nIjsKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwoKICAgICAgICAvLyBnZXQgdGhlIHBhcmVudCBpZHMgYW5kIGV2ZW50cy4KICAgICAgICAkZXZlbnRzID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogICAgICAgICRwYXJlbnRfaWRzID0gJHRoaXMtPl9pZGxpc3Q7CiAgICAgICAgaWYoICFpc19hcnJheSgkZXZlbnRzKSB8fCBjb3VudCgkZXZlbnRzKSA9PSAwICkgcmV0dXJuOwoKICAgICAgICBmb3JlYWNoKCAkZXZlbnRzIGFzICRyb3cgKSB7CiAgICAgICAgICAgIGlmKCAkcm93WydldmVudF9wYXJlbnRfaWQnXSA+IDAgKSAkcGFyZW50X2lkc1tdID0gJHJvd1snZXZlbnRfcGFyZW50X2lkJ107CiAgICAgICAgfQogICAgICAgICRwYXJlbnRfaWRzID0gYXJyYXlfdW5pcXVlKCRwYXJlbnRfaWRzKTsKCiAgICAgICAgJGN1c3RvbWZpZWxkcyA9IGFycmF5KCk7CiAgICAgICAgewogICAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NnY2FsZW5kYXJfZXZlbnRfZmllbGRfdmFsdWVzCiAgICAgICAgICAgICAgICBXSEVSRSBldmVudF9pZCBJTiAoJy5pbXBsb2RlKCcsJywkcGFyZW50X2lkcykuJykgT1JERVIgQlkgZXZlbnRfaWQnOwogICAgICAgICAgICAkZnJzID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogICAgICAgICAgICBmb3JlYWNoKCAkZnJzIGFzICRyb3cgKSB7CiAgICAgICAgICAgICAgICAkY3VzdG9tZmllbGRzWyRyb3dbJ2V2ZW50X2lkJ11dW10gPSAkcm93OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkYWxsY2F0ZWdvcmllcyA9IGFycmF5KCk7CiAgICAgICAgewogICAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NnY2FsZW5kYXJfZXZlbnRzX3RvX2NhdGVnb3JpZXMKICAgICAgICAgICAgICAgICAgICAgICBXSEVSRSBldmVudF9pZCBJTiAoJy5pbXBsb2RlKCcsJywkdGhpcy0+X2lkbGlzdCkuJykgT1JERVIgQlkgZXZlbnRfaWQnOwogICAgICAgICAgICAkY3JzID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgICAgICAgICAgIHdoaWxlKCAkY3JzICYmICEkY3JzLT5FT0YoKSApIHsKICAgICAgICAgICAgICAgICRyb3cgPSAkY3JzLT5maWVsZHM7CiAgICAgICAgICAgICAgICAkYWxsY2F0ZWdvcmllc1skcm93WydldmVudF9pZCddXVtdID0gJHJvdzsKICAgICAgICAgICAgICAgICRjcnMtPk1vdmVOZXh0KCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoIGNvdW50KCRhbGxjYXRlZ29yaWVzKSApIFxDR0NhbGVuZGFyXGNhdGVnb3J5OjpnZXRfY2F0ZWdvcmllcygpOyAvLyBmb3JjZXMgcHJlbG9hZC4KICAgICAgICB9CgogICAgICAgICR1c2VycyA9IGFycmF5KCk7CiAgICAgICAgewogICAgICAgICAgICAkdXNlcm9wcyA9ICRnQ21zLT5HZXRVc2VyT3BlcmF0aW9ucygpOwogICAgICAgICAgICAkdXNlcmxpc3QgPSAkdXNlcm9wcy0+TG9hZFVzZXJzKCk7CiAgICAgICAgICAgIGZvcmVhY2ggKCR1c2VybGlzdCBhcyAkb25ldXNlcikgewogICAgICAgICAgICAgICAgJHVzZXJzWyRvbmV1c2VyLT5pZF0gPSAkb25ldXNlcjsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJG1vZHVsZSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dDYWxlbmRhcicpOwogICAgICAgIGZvcmVhY2goICRldmVudHMgYXMgJiRyb3cgKSB7CiAgICAgICAgICAgICR0aXRsZVNFTyA9IG11bmdlX3N0cmluZ190b191cmwoJHJvd1snZXZlbnRfdGl0bGUnXSk7CiAgICAgICAgICAgICRwcmV0dHl1cmwgPSBzcHJpbnRmKCR0aGlzLT5fdXJsX3ByZWZpeC4nLyVkLyVkLSVzJywgJHRoaXMtPl9kZXN0cGFnZSwgJHJvd1snZXZlbnRfaWQnXSwgJHRpdGxlU0VPKTsKICAgICAgICAgICAgJHBhcm1zID0gYXJyYXkoKTsKICAgICAgICAgICAgJHBhcm1zWydldmVudF9pZCddID0gJHJvd1snZXZlbnRfaWQnXTsKICAgICAgICAgICAgJHBhcm1zWydkaXNwbGF5J10gPSAnZXZlbnQnOwogICAgICAgICAgICBpZiggJHRoaXMtPl9ldmVudHRlbXBsYXRlICkgJHBhcm1zWydldmVudHRlbXBsYXRlJ10gPSAkdGhpcy0+X2V2ZW50dGVtcGxhdGU7CiAgICAgICAgICAgICRyb3dbJ3VybCddID0gJG1vZHVsZS0+Y3JlYXRlX3VybCgkdGhpcy0+X2FjdGlvbmlkLCdkZWZhdWx0JywkdGhpcy0+X2Rlc3RwYWdlLCRwYXJtcyxmYWxzZSxmYWxzZSwkcHJldHR5dXJsKTsKCiAgICAgICAgICAgICRwdHIgPSBudWxsOwogICAgICAgICAgICBpZiggaXNzZXQoJGFsbGNhdGVnb3JpZXNbJHJvd1snZXZlbnRfaWQnXV0pICkgewogICAgICAgICAgICAgICAgJHB0ciA9ICRhbGxjYXRlZ29yaWVzWyRyb3dbJ2V2ZW50X2lkJ11dOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYoICRyb3dbJ2V2ZW50X3BhcmVudF9pZCddID4gMCAmJiBpc3NldCgkYWxsY2F0ZWdvcmllc1skcm93WydldmVudF9wYXJlbnRfaWQnXV0pICkgewogICAgICAgICAgICAgICAgJHB0ciA9ICRhbGxjYXRlZ29yaWVzWyRyb3dbJ2V2ZW50X3BhcmVudF9pZCddXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHJvd1snYmdjb2xvciddID0gJHJvd1snZmdjb2xvciddID0gbnVsbDsKICAgICAgICAgICAgaWYoICRwdHIgKSB7CiAgICAgICAgICAgICAgICAkY2F0ZWdvcmllcyA9IGFycmF5KCk7CiAgICAgICAgICAgICAgICBmb3JlYWNoKCAkcHRyIGFzICRjYXQgKSB7CiAgICAgICAgICAgICAgICAgICAgJGNhdGVnb3JpZXNbXSA9ICRjYXRbJ2NhdGVnb3J5X2lkJ107CiAgICAgICAgICAgICAgICAgICAgaWYoICEkcm93WydiZ2NvbG9yJ10gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGdldCBjb2xvcnMgZm9yIHRoaXMgZXZlbnQuLi4KICAgICAgICAgICAgICAgICAgICAgICAgJGNhdF9vYmogPSBcQ0dDYWxlbmRhclxjYXRlZ29yeTo6bG9hZCgkY2F0WydjYXRlZ29yeV9pZCddKTsKICAgICAgICAgICAgICAgICAgICAgICAgJHJvd1snZmdjb2xvciddID0gJGNhdF9vYmpbJ2ZnY29sb3InXTsKICAgICAgICAgICAgICAgICAgICAgICAgJHJvd1snYmdjb2xvciddID0gJGNhdF9vYmpbJ2JnY29sb3InXTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkcm93WydjYXRlZ29yaWVzJ10gPSAkY2F0ZWdvcmllczsKICAgICAgICAgICAgICAgICRyb3dbJ2NhdGVnb3J5X25hbWVzJ10gPSAkbW9kdWxlLT5HZXRDYXRlZ29yeU5hbWVzKCRjYXRlZ29yaWVzKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHB0ciA9IG51bGw7CiAgICAgICAgICAgIGlmKCBpc3NldCgkY3VzdG9tZmllbGRzWyRyb3dbJ2V2ZW50X2lkJ11dKSApIHsKICAgICAgICAgICAgICAgICRwdHIgPSAkY3VzdG9tZmllbGRzWyRyb3dbJ2V2ZW50X2lkJ11dOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYoICRyb3dbJ2V2ZW50X3BhcmVudF9pZCddID4gMCAmJiBpc3NldCgkY3VzdG9tZmllbGRzWyRyb3dbJ2V2ZW50X3BhcmVudF9pZCddXSkgKSB7CiAgICAgICAgICAgICAgICAkcHRyID0gJGN1c3RvbWZpZWxkc1skcm93WydldmVudF9wYXJlbnRfaWQnXV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoICRwdHIgKSB7CiAgICAgICAgICAgICAgICAkZmllbGRzID0gYXJyYXkoKTsKICAgICAgICAgICAgICAgICRmaWVsZGluZm8gPSBhcnJheSgpOwogICAgICAgICAgICAgICAgZm9yZWFjaCggJHB0ciBhcyAka2V5ID0+ICRyZWMgKSB7CiAgICAgICAgICAgICAgICAgICAgJGZpZWxkc1skcmVjWydmaWVsZF9uYW1lJ11dID0gJHJlY1snZmllbGRfdmFsdWUnXTsKICAgICAgICAgICAgICAgICAgICAkZmllbGRpbmZvWyRyZWNbJ2ZpZWxkX25hbWUnXV0gPSAkcmVjOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHJvd1snZmllbGRzJ10gPSAkZmllbGRzOyAvLyBkZXByZWNhdGVkCiAgICAgICAgICAgICAgICAkcm93WydmaWVsZGluZm8nXSA9ICRmaWVsZGluZm87CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmKCAkcm93WydldmVudF9jcmVhdGVkX2J5J10gPCAwICkgewogICAgICAgICAgICAgICAgLy8gbmVnYXRpdmUgdmFsdWVzIChzbWFsbGVyIHRoYW4gLTEwMCkgaW5kaWNhdGUgYW4gYWRtaW4gdXNlciBhY2NvdW50CiAgICAgICAgICAgICAgICAkdWlkID0gJHJvd1snZXZlbnRfY3JlYXRlZF9ieSddICsgMTAwICogLTE7CiAgICAgICAgICAgICAgICAkcm93WydhZG1pbl91aWQnXSA9ICR1aWQ7CiAgICAgICAgICAgICAgICBpZiggaXNzZXQoJHVzZXJzWyR1aWRdKSApICRyb3dbJ2F1dGhvciddID0gJHVzZXJzWyR1aWRdLT51c2VybmFtZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHJvd1snaXNfcGFyZW50J10gPSAoJHJvd1snZXZlbnRfcmVjdXJfaW50ZXJ2YWwnXSAhPSAnbm9uZScgJiYgJHJvd1snZXZlbnRfcmVjdXJfaW50ZXJ2YWwnXSAhPSAnJyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkZXZlbnRzOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgc_event_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4CiMgICAgICBieSBSb2JlcnQgQWxsZW4gKGFrcmFiYXQpIGFuZAojICAgICAgICAgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBkaXNwbGF5aW5nIGNhbGVuZGFycywKIyAgYW5kIG1hbmFnZW1lbnQgYW5kIGRpc3BsYXkgb2YgdGltZSBiYXNlZCBldmVudHMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgY2djX2V2ZW50X3V0aWxzCnsKICBzdGF0aWMgcHVibGljIGZ1bmN0aW9uIGlzX2V2ZW50X2NvbmZsaWN0ZWQoJGV2ZW50LCRwb2xpY3kpCiAgewogICAgJGdDbXMgPSBjbXNtcygpOwogICAgJGRiID0gJGdDbXMtPkdldERiKCk7CgogICAgJGV2ZW50X2lkID0gKGlzc2V0KCRldmVudFsnZXZlbnRfaWQnXSkpID8gJGV2ZW50WydldmVudF9pZCddIDogLTE7CiAgICAkc3RyID0gJyc7CiAgICBpZiggJHBvbGljeSA9PSAnaW5kaXZpZHVhbCcpCiAgICAgIHsKCSRzdHIgLj0gJyBBTkQgZXZlbnRfYWxsb3dzX292ZXJsYXAgPSAwJzsKICAgICAgfQogICAgaWYoICRldmVudF9pZCAhPSAtMSkKICAgICAgewoJJHN0ciAuPSAiIEFORCBldmVudF9pZCAhPSAkZXZlbnRfaWQiOwogICAgICB9CgogICAgJGRiciA9ICcnOwogICAgaWYoICRldmVudFsnZXZlbnRfZGF0ZV9lbmQnXSA9PSBOVUxMICkKICAgICAgewoJJHN0YXJ0ID0gJyc7CglpZiggaXNzZXQoJGV2ZW50WydldmVudF9kYXRlX3N0YXJ0J10pICkKCSAgewoJICAgICRzdGFydCA9ICRldmVudFsnZXZlbnRfZGF0ZV9zdGFydCddOwoJICB9CgllbHNlIGlmKCBpc3NldCgkZXZlbnRbJ2V2ZW50X2RhdGVfc3RhcnRfdXQnXSkgKQoJICB7CgkgICAgLy8gYXNzdW1lIHVuaXggdGltZXN0YW1wCgkgICAgJHN0YXJ0ID0gJGRiLT5EYlRpbWVTdGFtcCgkZXZlbnRbJ2V2ZW50X2RhdGVfc3RhcnRfdXQnXSk7CgkgIH0KCWVsc2UgaWYoIGlzc2V0KCRldmVudFsnc3RhcnQnXSkgKQoJICB7CgkgICAgLy8gYXNzdW1lIHVuaXggdGltZXN0YW1wCgkgICAgJHN0YXJ0ID0gJGRiLT5EYlRpbWVTdGFtcCgkZXZlbnRbJ3N0YXJ0J10pOwoJICB9CgoJJHF1ZXJ5ID0gJ1NFTEVDVCBldmVudF9pZCBGUk9NICcuJG1vZHVsZS0+ZXZlbnRzX3RhYmxlX25hbWUuIgogICAgICAgICAgICAgICAgIFdIRVJFICgkc3RhcnQgQkVUV0VFTiBldmVudF9kYXRlX3N0YXJ0IGFuZCBldmVudF9kYXRlX2VuZCkiOwoJJGRiciA9ICRkYi0+R2V0T25lKCRxdWVyeS4kc3RyKTsKICAgICAgfQogICAgZWxzZQogICAgICB7Cgkkc3RhcnQgPSAnJzsKCWlmKCBpc3NldCgkZXZlbnRbJ2V2ZW50X2RhdGVfc3RhcnQnXSkgKQoJICB7CgkgICAgJHN0YXJ0ID0gJGV2ZW50WydldmVudF9kYXRlX3N0YXJ0J107CgkgIH0KCWVsc2UgaWYoIGlzc2V0KCRldmVudFsnZXZlbnRfZGF0ZV9zdGFydF91dCddKSApCgkgIHsKCSAgICAvLyBhc3N1bWUgdW5peCB0aW1lc3RhbXAKCSAgICAkc3RhcnQgPSAkZGItPkRiVGltZVN0YW1wKCRldmVudFsnZXZlbnRfZGF0ZV9zdGFydF91dCddKTsKCSAgfQoJZWxzZSBpZiggaXNzZXQoJGV2ZW50WydzdGFydCddKSApCgkgIHsKCSAgICAvLyBhc3N1bWUgdW5peCB0aW1lc3RhbXAKCSAgICAkc3RhcnQgPSAkZGItPkRiVGltZVN0YW1wKCRldmVudFsnc3RhcnQnXSk7CgkgIH0KCgkkZW5kID0gJyc7CglpZiggaXNzZXQoJGV2ZW50WydldmVudF9kYXRlX2VuZCddKSApCgkgIHsKCSAgICAkZW5kID0gJGV2ZW50WydldmVudF9kYXRlX2VuZCddOwoJICB9CgllbHNlIGlmKCBpc3NldCgkZXZlbnRbJ2V2ZW50X2RhdGVfZW5kX3V0J10pICkKCSAgewoJICAgIC8vIGFzc3VtZSB1bml4IHRpbWVzdGFtcAoJICAgICRlbmQgPSAkZGItPkRiVGltZVN0YW1wKCRldmVudFsnZXZlbnRfZGF0ZV9lbmRfdXQnXSk7CgkgIH0KCWVsc2UgaWYoIGlzc2V0KCRldmVudFsnZW5kJ10pICkKCSAgewoJICAgIC8vIGFzc3VtZSB1bml4IHRpbWVzdGFtcAoJICAgICRlbmQgPSAkZGItPkRiVGltZVN0YW1wKCRldmVudFsnZW5kJ10pOwoJICB9CgoJJHF1ZXJ5ID0gJ1NFTEVDVCBldmVudF9pZCBGUk9NICcuJG1vZHVsZS0+ZXZlbnRzX3RhYmxlX25hbWUuIgogICAgICAgICAgICAgICAgIFdIRVJFICgoJHN0YXJ0IEJFVFdFRU4gZXZlbnRfZGF0ZV9zdGFydCBhbmQgZXZlbnRfZGF0ZV9lbmQpCiAgICAgICAgICAgICAgICAgICAgICAgT1IgKCRlbmQgQkVUV0VFTiBldmVudF9kYXRlX3N0YXJ0IGFuZCBldmVudF9kYXRlX2VuZCkpIjsKCSRkYnIgPSAkZGItPkdldE9uZSgkcXVlcnkuJHN0ciwKCQkJICAgYXJyYXkodHJpbSgkc3RhcnQsJyInKSwKCQkJCSB0cmltKCRlbmQsJyInKSkpOwogICAgICB9CgogICAgaWYoICRkYnIgKSByZXR1cm4gVFJVRTsKICAgIHJldHVybiBGQUxTRTsKICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/colorPicker/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/colorPicker/colorPicker.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZGl2LmNvbG9yUGlja2VyLXBpY2tlciB7CiAgaGVpZ2h0OiAxNnB4OwogIHdpZHRoOiAxNnB4OwogIHBhZGRpbmc6IDAgIWltcG9ydGFudDsKICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOwogIGJhY2tncm91bmQ6IHVybChhcnJvdy5naWYpIG5vLXJlcGVhdCB0b3AgcmlnaHQ7CiAgY3Vyc29yOiBwb2ludGVyOwogIGxpbmUtaGVpZ2h0OiAxNnB4OwogIGZvbnQtc2l6ZTowLjc1ZW07CiAgZm9udC13ZWlnaHQ6Ym9sZDsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCmRpdi5jb2xvclBpY2tlci1wYWxldHRlIHsKICB3aWR0aDogMTEwcHg7CiAgcG9zaXRpb246IGFic29sdXRlOwogIGJvcmRlcjogMXB4IHNvbGlkICM1OThGRUY7CiAgYmFja2dyb3VuZC1jb2xvcjogI0VGRUZFRjsKICBwYWRkaW5nOiAycHg7CiAgei1pbmRleDogOTk5OTsKfQogIGRpdi5jb2xvclBpY2tlcl9oZXhXcmFwIHt3aWR0aDogMTAwJTsgZmxvYXQ6bGVmdCB9CiAgZGl2LmNvbG9yUGlja2VyX2hleFdyYXAgbGFiZWwge2ZvbnQtc2l6ZTogOTUlOyBjb2xvcjogIzJGMkYyRjsgbWFyZ2luOiA1cHggMnB4OyB3aWR0aDogMjUlfQogIGRpdi5jb2xvclBpY2tlcl9oZXhXcmFwIGlucHV0IHttYXJnaW46IDVweCAycHg7IHBhZGRpbmc6IDA7IGZvbnQtc2l6ZTogOTUlOyBib3JkZXI6IDFweCBzb2xpZCAjMDAwOyB3aWR0aDogNjUlOyB9CgpkaXYuY29sb3JQaWNrZXItc3dhdGNoIHsKICBoZWlnaHQ6IDEycHg7CiAgd2lkdGg6IDEycHg7CiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDsKICBtYXJnaW46IDJweDsKICBmbG9hdDogbGVmdDsKICBjdXJzb3I6IHBvaW50ZXI7CiAgbGluZS1oZWlnaHQ6IDEycHg7Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/colorPicker/jquery.colorPicker.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIFJlYWxseSBTaW1wbGUgQ29sb3IgUGlja2VyIGluIGpRdWVyeQogKgogKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIChNSVQtTElDRU5TRS50eHQpIGxpY2Vuc2VzLgogKgogKiBDb3B5cmlnaHQgKGMpIDIwMDgtMjAxMgogKiBMYWtzaGFuIFBlcmVyYSAod3d3Lmxha3Rlay5jb20pICYgRGFuaWVsIExhY3kgKGRhbmllbGxhY3kuY29tKQogKgogKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bwogKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQogKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKICoKICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCiAqCiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAogKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgogKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwogKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCiAqIElOIFRIRSBTT0ZUV0FSRS4KICovKGZ1bmN0aW9uKGEpe3ZhciBiLGMsZD0wLGU9e2NvbnRyb2w6YSgnPGRpdiBjbGFzcz0iY29sb3JQaWNrZXItcGlja2VyIj4mbmJzcDs8L2Rpdj4nKSxwYWxldHRlOmEoJzxkaXYgaWQ9ImNvbG9yUGlja2VyX3BhbGV0dGUiIGNsYXNzPSJjb2xvclBpY2tlci1wYWxldHRlIiAvPicpLHN3YXRjaDphKCc8ZGl2IGNsYXNzPSJjb2xvclBpY2tlci1zd2F0Y2giPiZuYnNwOzwvZGl2PicpLGhleExhYmVsOmEoJzxsYWJlbCBmb3I9ImNvbG9yUGlja2VyX2hleCI+SGV4PC9sYWJlbD4nKSxoZXhGaWVsZDphKCc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImNvbG9yUGlja2VyX2hleCIgLz4nKX0sZj0idHJhbnNwYXJlbnQiLGc7YS5mbi5jb2xvclBpY2tlcj1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGM9YSh0aGlzKSxnPWEuZXh0ZW5kKHt9LGEuZm4uY29sb3JQaWNrZXIuZGVmYXVsdHMsYiksaD1hLmZuLmNvbG9yUGlja2VyLnRvSGV4KGMudmFsKCkubGVuZ3RoPjA/Yy52YWwoKTpnLnBpY2tlckRlZmF1bHQpLGk9ZS5jb250cm9sLmNsb25lKCksaj1lLnBhbGV0dGUuY2xvbmUoKS5hdHRyKCJpZCIsImNvbG9yUGlja2VyX3BhbGV0dGUtIitkKSxrPWUuaGV4TGFiZWwuY2xvbmUoKSxsPWUuaGV4RmllbGQuY2xvbmUoKSxtPWpbMF0uaWQsbixvO2EuZWFjaChnLmNvbG9ycyxmdW5jdGlvbihiKXtuPWUuc3dhdGNoLmNsb25lKCksZy5jb2xvcnNbYl09PT1mPyhuLmFkZENsYXNzKGYpLnRleHQoIlgiKSxhLmZuLmNvbG9yUGlja2VyLmJpbmRQYWxldHRlKGwsbixmKSk6KG4uY3NzKCJiYWNrZ3JvdW5kLWNvbG9yIiwiIyIrdGhpcyksYS5mbi5jb2xvclBpY2tlci5iaW5kUGFsZXR0ZShsLG4pKSxuLmFwcGVuZFRvKGopfSksay5hdHRyKCJmb3IiLCJjb2xvclBpY2tlcl9oZXgtIitkKSxsLmF0dHIoe2lkOiJjb2xvclBpY2tlcl9oZXgtIitkLHZhbHVlOmh9KSxsLmJpbmQoImtleWRvd24iLGZ1bmN0aW9uKGIpe2lmKGIua2V5Q29kZT09PTEzKXt2YXIgZD1hLmZuLmNvbG9yUGlja2VyLnRvSGV4KGEodGhpcykudmFsKCkpO2EuZm4uY29sb3JQaWNrZXIuY2hhbmdlQ29sb3IoZD9kOmMudmFsKCkpfWIua2V5Q29kZT09PTI3JiZhLmZuLmNvbG9yUGlja2VyLmhpZGVQYWxldHRlKCl9KSxsLmJpbmQoImtleXVwIixmdW5jdGlvbihiKXt2YXIgZD1hLmZuLmNvbG9yUGlja2VyLnRvSGV4KGEoYi50YXJnZXQpLnZhbCgpKTthLmZuLmNvbG9yUGlja2VyLnByZXZpZXdDb2xvcihkP2Q6Yy52YWwoKSl9KSxhKCc8ZGl2IGNsYXNzPSJjb2xvclBpY2tlcl9oZXhXcmFwIiAvPicpLmFwcGVuZChrKS5hcHBlbmRUbyhqKSxqLmZpbmQoIi5jb2xvclBpY2tlcl9oZXhXcmFwIikuYXBwZW5kKGwpLGcuc2hvd0hleEZpZWxkPT09ITEmJihsLmhpZGUoKSxrLmhpZGUoKSksYSgiYm9keSIpLmFwcGVuZChqKSxqLmhpZGUoKSxpLmNzcygiYmFja2dyb3VuZC1jb2xvciIsaCksaS5iaW5kKCJjbGljayIsZnVuY3Rpb24oKXtjLmlzKCI6bm90KDpkaXNhYmxlZCkiKSYmYS5mbi5jb2xvclBpY2tlci50b2dnbGVQYWxldHRlKGEoIiMiK20pLGEodGhpcykpfSksYiYmYi5vbkNvbG9yQ2hhbmdlP2kuZGF0YSgib25Db2xvckNoYW5nZSIsYi5vbkNvbG9yQ2hhbmdlKTppLmRhdGEoIm9uQ29sb3JDaGFuZ2UiLGZ1bmN0aW9uKCl7fSksKG89Yy5kYXRhKCJ0ZXh0IikpJiZpLmh0bWwobyksYy5hZnRlcihpKSxjLmJpbmQoImNoYW5nZSIsZnVuY3Rpb24oKXtjLm5leHQoIi5jb2xvclBpY2tlci1waWNrZXIiKS5jc3MoImJhY2tncm91bmQtY29sb3IiLGEuZm4uY29sb3JQaWNrZXIudG9IZXgoYSh0aGlzKS52YWwoKSkpfSksYy52YWwoaCk7aWYoY1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT0iaW5wdXQiKXRyeXtjLmF0dHIoInR5cGUiLCJoaWRkZW4iKX1jYXRjaChwKXtjLmNzcygidmlzaWJpbGl0eSIsImhpZGRlbiIpLmNzcygicG9zaXRpb24iLCJhYnNvbHV0ZSIpfWVsc2UgYy5oaWRlKCk7ZCsrfSl9LGEuZXh0ZW5kKCEwLGEuZm4uY29sb3JQaWNrZXIse3RvSGV4OmZ1bmN0aW9uKGEpe2lmKGEubWF0Y2goL1swLTlBLUZdezZ9fFswLTlBLUZdezN9JC9pKSlyZXR1cm4gYS5jaGFyQXQoMCk9PT0iIyI/YToiIyIrYTtpZighYS5tYXRjaCgvXnJnYlwoXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9KVxzKixccyooXGR7MSwzfSlccypcKSQvKSlyZXR1cm4hMTt2YXIgYj1bcGFyc2VJbnQoUmVnRXhwLiQxLDEwKSxwYXJzZUludChSZWdFeHAuJDIsMTApLHBhcnNlSW50KFJlZ0V4cC4kMywxMCldLGM9ZnVuY3Rpb24oYSl7aWYoYS5sZW5ndGg8Milmb3IodmFyIGI9MCxjPTItYS5sZW5ndGg7YjxjO2IrKylhPSIwIithO3JldHVybiBhfTtpZihiLmxlbmd0aD09PTMpe3ZhciBkPWMoYlswXS50b1N0cmluZygxNikpLGU9YyhiWzFdLnRvU3RyaW5nKDE2KSksZj1jKGJbMl0udG9TdHJpbmcoMTYpKTtyZXR1cm4iIyIrZCtlK2Z9fSxjaGVja01vdXNlOmZ1bmN0aW9uKGQsZSl7dmFyIGY9YyxnPWEoZC50YXJnZXQpLnBhcmVudHMoIiMiK2YuYXR0cigiaWQiKSkubGVuZ3RoO2lmKGQudGFyZ2V0PT09YShmKVswXXx8ZC50YXJnZXQ9PT1iWzBdfHxnPjApcmV0dXJuO2EuZm4uY29sb3JQaWNrZXIuaGlkZVBhbGV0dGUoKX0saGlkZVBhbGV0dGU6ZnVuY3Rpb24oKXthKGRvY3VtZW50KS51bmJpbmQoIm1vdXNlZG93biIsYS5mbi5jb2xvclBpY2tlci5jaGVja01vdXNlKSxhKCIuY29sb3JQaWNrZXItcGFsZXR0ZSIpLmhpZGUoKX0sc2hvd1BhbGV0dGU6ZnVuY3Rpb24oYyl7dmFyIGQ9Yi5wcmV2KCJpbnB1dCIpLnZhbCgpO2MuY3NzKHt0b3A6Yi5vZmZzZXQoKS50b3ArYi5vdXRlckhlaWdodCgpLGxlZnQ6Yi5vZmZzZXQoKS5sZWZ0fSksYSgiI2NvbG9yX3ZhbHVlIikudmFsKGQpLGMuc2hvdygpLGEoZG9jdW1lbnQpLmJpbmQoIm1vdXNlZG93biIsYS5mbi5jb2xvclBpY2tlci5jaGVja01vdXNlKX0sdG9nZ2xlUGFsZXR0ZTpmdW5jdGlvbihkLGUpe2UmJihiPWUpLGM9ZCxjLmlzKCI6dmlzaWJsZSIpP2EuZm4uY29sb3JQaWNrZXIuaGlkZVBhbGV0dGUoKTphLmZuLmNvbG9yUGlja2VyLnNob3dQYWxldHRlKGQpfSxjaGFuZ2VDb2xvcjpmdW5jdGlvbihjKXtiLmNzcygiYmFja2dyb3VuZC1jb2xvciIsYyksYi5wcmV2KCJpbnB1dCIpLnZhbChjKS5jaGFuZ2UoKSxhLmZuLmNvbG9yUGlja2VyLmhpZGVQYWxldHRlKCksYi5kYXRhKCJvbkNvbG9yQ2hhbmdlIikuY2FsbChiLGEoYikucHJldigiaW5wdXQiKS5hdHRyKCJpZCIpLGMpfSxwcmV2aWV3Q29sb3I6ZnVuY3Rpb24oYSl7Yi5jc3MoImJhY2tncm91bmQtY29sb3IiLGEpfSxiaW5kUGFsZXR0ZTpmdW5jdGlvbihjLGQsZSl7ZT1lP2U6YS5mbi5jb2xvclBpY2tlci50b0hleChkLmNzcygiYmFja2dyb3VuZC1jb2xvciIpKSxkLmJpbmQoe2NsaWNrOmZ1bmN0aW9uKGIpe2c9ZSxhLmZuLmNvbG9yUGlja2VyLmNoYW5nZUNvbG9yKGUpfSxtb3VzZW92ZXI6ZnVuY3Rpb24oYil7Zz1jLnZhbCgpLGEodGhpcykuY3NzKCJib3JkZXItY29sb3IiLCIjNTk4RkVGIiksYy52YWwoZSksYS5mbi5jb2xvclBpY2tlci5wcmV2aWV3Q29sb3IoZSl9LG1vdXNlb3V0OmZ1bmN0aW9uKGQpe2EodGhpcykuY3NzKCJib3JkZXItY29sb3IiLCIjMDAwIiksYy52YWwoYi5jc3MoImJhY2tncm91bmQtY29sb3IiKSksYy52YWwoZyksYS5mbi5jb2xvclBpY2tlci5wcmV2aWV3Q29sb3IoZyl9fSl9fSksYS5mbi5jb2xvclBpY2tlci5kZWZhdWx0cz17cGlja2VyRGVmYXVsdDoiRkZGRkZGIixjb2xvcnM6WyIwMDAwMDAiLCI5OTMzMDAiLCIzMzMzMDAiLCIwMDAwODAiLCIzMzMzOTkiLCIzMzMzMzMiLCI4MDAwMDAiLCJGRjY2MDAiLCI4MDgwMDAiLCIwMDgwMDAiLCIwMDgwODAiLCIwMDAwRkYiLCI2NjY2OTkiLCI4MDgwODAiLCJGRjAwMDAiLCJGRjk5MDAiLCI5OUNDMDAiLCIzMzk5NjYiLCIzM0NDQ0MiLCIzMzY2RkYiLCI4MDAwODAiLCI5OTk5OTkiLCJGRjAwRkYiLCJGRkNDMDAiLCJGRkZGMDAiLCIwMEZGMDAiLCIwMEZGRkYiLCIwMENDRkYiLCI5OTMzNjYiLCJDMEMwQzAiLCJGRjk5Q0MiLCJGRkNDOTkiLCJGRkZGOTkiLCJDQ0ZGRkYiLCI5OUNDRkYiLCJGRkZGRkYiXSxhZGRDb2xvcnM6W10sc2hvd0hleEZpZWxkOiEwfX0pKGpRdWVyeSk7]]></data>
	</file>
	<file>
	  <filename>/lib/fullcalendar/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/fullcalendar/changelog.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CnZlcnNpb24gMS42LjQgKDkvMS8xMykKCS0gYmV0dGVyIGFsZ29yaXRobSBmb3IgcG9zaXRpb25pbmcgdGltZWQgYWdlbmRhIGV2ZW50cyAoaXNzdWUgMTExNSkKCS0gYHNsb3RFdmVudE92ZXJsYXBgIG9wdGlvbiB0byB0d2VhayB0aW1lZCBhZ2VuZGEgZXZlbnQgb3ZlcmxhcHBpbmcgKGlzc3VlIDIxOCkKCS0gc2VsZWN0aW9uIGJ1ZyB3aGVuIHNsb3QgaGVpZ2h0IGlzIGN1c3RvbWl6ZWQgKGlzc3VlIDEwMzUpCgktIHN1cHBseSB2aWV3IGFyZ3VtZW50IGluIGBsb2FkaW5nYCBjYWxsYmFjayAoaXNzdWUgMTAxOCkKCS0gZml4ZWQgd2VlayBudW1iZXIgbm90IGRpc3BsYXlpbmcgaW4gYWdlbmRhIHZpZXdzIChpc3N1ZSAxOTUxKQoJLSBmaXhlZCBmdWxsQ2FsZW5kYXIgbm90IGluaXRpYWxpemluZyB3aXRoIG5vIG9wdGlvbnMgKGlzc3VlIDEzNTYpCgktIE5QTSdzIHBhY2thZ2UuanNvbiwgbm8gbW9yZSB3YXJuaW5ncyBvciBlcnJvcnMgKGlzc3VlIDE3NjIpCgktIGJ1aWxkaW5nIHRoZSBib3dlciBjb21wb25lbnQgc2hvdWxkIG91dHB1dCBib3dlci5qc29uIGluc3RlYWQgb2YgY29tcG9uZW50Lmpzb24gKFBSIDEyNSkKCS0gdXNlIGJvd2VyIGludGVybmFsbHkgZm9yIGZldGNoaW5nIG5ldyB2ZXJzaW9ucyBvZiBqUXVlcnkgYW5kIGpRdWVyeSBVSQoKdmVyc2lvbiAxLjYuMyAoOC8xMC8xMykKCS0gdmlld1JlbmRlciBjYWxsYmFjayAoUFIgMTUpCgktIHZpZXdEZXN0cm95IGNhbGxiYWNrIChQUiAxNSkKCS0gZXZlbnREZXN0cm95IGNhbGxiYWNrIChQUiAxMTEpCgktIGhhbmRsZVdpbmRvd1Jlc2l6ZSBvcHRpb24gKFBSIDU0KQoJLSBldmVudFN0YXJ0RWRpdGFibGUvc3RhcnRFZGl0YWJsZSBvcHRpb25zIChQUiA0OSkKCS0gZXZlbnREdXJhdGlvbkVkaXRhYmxlL2R1cmF0aW9uRWRpdGFibGUgb3B0aW9ucyAoUFIgNDkpCgktIHNwZWNpZnkgZnVuY3Rpb24gZm9yICQuYWpheCBgZGF0YWAgcGFyYW1ldGVyIGZvciBKU09OIGV2ZW50IHNvdXJjZXMgKFBSIDU5KQoJLSBmaXhlZCBidWcgd2l0aCBhZ2VuZGEgZXZlbnQgZHJvcHBpbmcgaW4gd3JvbmcgY29sdW1uIChQUiA1NSkKCS0gZWFzaWVyIGV2ZW50IGVsZW1lbnQgei1pbmRleCBjdXN0b21pemF0aW9uIChQUiA1OCkKCS0gY2xhc3NOYW1lcyBvbiBwYXN0L2Z1dHVyZSBkYXlzIChQUiA4OCkKCS0gYWxsb3cgbnVsbC91bmRlZmluZWQgZXZlbnQgdGl0bGVzIChQUiA4NCkKCS0gc21hbGwgb3B0aW1pemUgZm9yIGFnZW5kYSBldmVudCByZW5kZXJpbmcgKFBSIDU2KQoJLSBkZXByZWNhdGVkOgoJCS0gdmlld0Rpc3BsYXkKCQktIGRpc2FibGVEcmFnZ2luZwoJCS0gZGlzYWJsZVJlc2l6aW5nCgktIGJ1bmRsZWQgd2l0aCBsYXRlc3QgalF1ZXJ5ICgxLjEwLjIpIGFuZCBqUXVlcnkgVUkgKDEuMTAuMykKCnZlcnNpb24gMS42LjIgKDcvMTgvMTMpCgktIGhpZGRlbkRheXMgb3B0aW9uIChpc3N1ZSA2ODYpCgktIGJ1Z2ZpeDogd2hlbiBldmVudFJlbmRlciByZXR1cm5zIGZhbHNlLCBpbmNvcnJlY3Qgc3RhY2tpbmcgb2YgZXZlbnRzIChpc3N1ZSA3NjIpCgktIGJ1Z2ZpeDogY291bGRuJ3QgY2hhbmdlIGV2ZW50LmJhY2tncm91bmRJbWFnZSB3aGVuIGNhbGxpbmcgdXBkYXRlRXZlbnQgKHRoeCBzdGVwaGVuaGFycmlzKQoKdmVyc2lvbiAxLjYuMSAoNC8xNC8xMykKCS0gZml4ZWQgZXZlbnQgaW5uZXIgY29udGVudCBvdmVyZmxvdyBidWcgKGlzc3VlIDE3ODMpCgktIGZpeGVkIHRhYmxlIGhlYWRlciBjbGFzc05hbWUgYnVnICgxNzcyKQoJLSByZW1vdmVkIHRleHQtc2hhZG93IG9uIGV2ZW50cyAoYmV0dGVyIGZvciBnZW5lcmFsIHVzZSwgdGh4IHRrcm90b2ZmKQoKdmVyc2lvbiAxLjYuMCAoMy8xOC8xMykKCS0gdmlzdWFsIGZhY2VsaWZ0LCB3aXRoIGJvb3RzdHJhcC1pbnNwaXJlZCBidXR0b25zIGFuZCBjb2xvcnMKCS0gc2ltcGxpZmllZCBIVE1ML0NTUyBmb3IgZXZlbnRzIGFuZCBidXR0b25zCgktIGRheVJlbmRlciwgZm9yIG1vZGlmeWluZyBhIGRheSBjZWxsIChpc3N1ZSAxOTEsIHRoeCBhbHRoYXVzKQoJLSB3ZWVrIG51bWJlcnMgb24gc2lkZSBvZiBjYWxlbmRhciAoaXNzdWUgMjk1KQoJCS0gd2Vla051bWJlcgoJCS0gd2Vla051bWJlckNhbGN1bGF0aW9uCgkJLSB3ZWVrTnVtYmVyVGl0bGUKCQktICJXIiBmb3JtYXR0aW5nIHZhcmlhYmxlCgktIGZpbmVyIHNuYXBwaW5nIGdyYW51bGFyaXR5IGZvciBhZ2VuZGEgdmlldyBldmVudHMgKGlzc3VlIDQ5NSwgdGh4IG1zLWRvb2RsZS1jb20pCgktIGV2ZW50QWZ0ZXJBbGxSZW5kZXIgKGlzc3VlIDc1MywgdGh4IHBkcmFrZXdlYikKCS0gZXZlbnREYXRhVHJhbnNmb3JtICh0aHggam9leXNwbykKCS0gZGF0YS1kYXRlIGF0dHJpYnV0ZXMgb24gY2VsbHMgKHRoeCBKYWUpCgktIGV4cG9zZSAkLmZ1bGxDYWxlbmRhci5kYXRlRm9ybWF0dGVycwoJLSB3aGVuIGNsaWNraW5nIGZhc3Qgb24gYnV0dG9ucywgcHJldmVudCB0ZXh0IHNlbGVjdGlvbgoJLSBidW5kbGVkIHdpdGggbGF0ZXN0IGpRdWVyeSAoMS45LjEpIGFuZCBqUXVlcnkgVUkgKDEuMTAuMikKCS0gR3J1bnQvTHVtYmFyIGJ1aWxkIHN5c3RlbSBmb3IgaW50ZXJuYWwgZGV2ZWxvcG1lbnQKCS0gYnVpbGQgZm9yIEJvd2VyIHBhY2thZ2UgbWFuYWdlcgoJLSBidWlsZCBmb3IgalF1ZXJ5IHBsdWdpbiBzaXRlCgp2ZXJzaW9uIDEuNS40ICg5LzUvMTIpCgktIG1hZGUgY29tcGF0aWJsZSB3aXRoIGpRdWVyeSAxLjguKiAodGh4IGFyY2hhZXJvbikKCS0gYnVuZGxlZCB3aXRoIGpRdWVyeSAxLjguMSBhbmQgalF1ZXJ5IFVJIDEuOC4yMwoKdmVyc2lvbiAxLjUuMyAoMi82LzEyKQoJLSBmaXhlZCBkcmFnZ2luZyBpc3N1ZSB3aXRoIGpRdWVyeSBVSSAxLjguMTYgKGlzc3VlIDExNjgpCgktIGJ1bmRsZWQgd2l0aCBqUXVlcnkgMS43LjEgYW5kIGpRdWVyeSBVSSAxLjguMTcKCnZlcnNpb24gMS41LjIgKDgvMjEvMTEpCgktIGNvcnJlY3RseSBwcm9jZXNzIFVUQyAiWiIgSVNPODYwMSBkYXRlIHN0cmluZ3MgKGlzc3VlIDc1MCkKCnZlcnNpb24gMS41LjEgKDQvOS8xMSkKCS0gbW9yZSBmbGV4aWJsZSBJU084NjAxIGRhdGUgcGFyc2luZyAoaXNzdWUgODE0KQoJLSBtb3JlIGZsZXhpYmxlIHBhcnNpbmcgb2YgVU5JWCB0aW1lc3RhbXBzIChpc3N1ZSA4MjYpCgktIEZ1bGxDYWxlbmRhciBub3cgYnVpbGRhYmxlIGZyb20gc291cmNlIG9uIGEgTWFjIChpc3N1ZSA3OTUpCgktIEZ1bGxDYWxlbmRhciBRQSdkIGluIEZGNCAoaXNzdWUgODgzKQoJLSB1cGdyYWRlZCB0byBqUXVlcnkgMS41LjIgKHdoaWNoIHN1cHBvcnRzIElFOSkgYW5kIGpRdWVyeSBVSSAxLjguMTEKCnZlcnNpb24gMS41ICgzLzE5LzExKQoJLSBzbGlja2VyIGRlZmF1bHQgc3R5bGluZyBmb3IgYnV0dG9ucwoJLSByZXdvcmtlZCBhIGxvdCBvZiB0aGUgY2FsZW5kYXIncyBIVE1MIGFuZCBhY2NvbXBhbnlpbmcgQ1NTCgkgIChzb2x2ZXMgaXNzdWVzIDMyNyBhbmQgMzk1KQoJLSBtb3JlIHByaW50ZXItZnJpZW5kbHkgKGZ1bGxjYWxlbmRhci1wcmludC5jc3MpCgktIGZ1bGxjYWxlbmRhciBub3cgaW5oZXJpdHMgc3R5bGVzIGZyb20ganF1ZXJ5LXVpIHRoZW1lcyBkaWZmZXJlbnRseS4KCSAgc3R5bGVzIGZvciBidXR0b25zIGFyZSBkaXN0aW5jdCBmcm9tIHN0eWxlcyBmb3IgY2FsZW5kYXIgY2VsbHMuCgkgIChzb2x2ZXMgaXNzdWUgMjk5KQoJLSBjYW4gbm93IGNvbG9yIGV2ZW50cyB0aHJvdWdoIEZ1bGxDYWxlbmRhciBvcHRpb25zIGFuZCBFdmVudC1PYmplY3QgcHJvcGVydGllcyAoaXNzdWUgMTE3KQoJICBUSElTIElTIE5PVyBUSEUgUFJFRkVSUkVEIE1FVEhPRCBPRiBDT0xPUklORyBFVkVOVFMgKGFzIG9wcG9zZWQgdG8gdXNpbmcgY2xhc3NOYW1lIGFuZCBDU1MpCgkJLSBGdWxsQ2FsZW5kYXIgb3B0aW9uczoKCQkJLSBldmVudENvbG9yIChjaGFuZ2VzIGJvdGggYmFja2dyb3VuZCBhbmQgYm9yZGVyKQoJCQktIGV2ZW50QmFja2dyb3VuZENvbG9yCgkJCS0gZXZlbnRCb3JkZXJDb2xvcgoJCQktIGV2ZW50VGV4dENvbG9yCgkJLSBFdmVudC1PYmplY3Qgb3B0aW9uczoKCQkJLSBjb2xvciAoY2hhbmdlcyBib3RoIGJhY2tncm91bmQgYW5kIGJvcmRlcikKCQkJLSBiYWNrZ3JvdW5kQ29sb3IKCQkJLSBib3JkZXJDb2xvcgoJCQktIHRleHRDb2xvcgoJLSBjYW4gbm93IHNwZWNpZnkgYW4gZXZlbnQgc291cmNlIGFzIGFuICpvYmplY3QqIHdpdGggYSBgdXJsYCBwcm9wZXJ0eSAoanNvbiBmZWVkKSBvcgoJICBhbiBgZXZlbnRzYCBwcm9wZXJ0eSAoZnVuY3Rpb24gb3IgYXJyYXkpIHdpdGggYWRkaXRpb25hbCBwcm9wZXJ0aWVzIHRoYXQgd2lsbAoJICBiZSBhcHBsaWVkIHRvIHRoZSBlbnRpcmUgZXZlbnQgc291cmNlOgoJCS0gY29sb3IgKGNoYW5nZXMgYm90aCBiYWNrZ3JvdW5kIGFuZCBib3JkZXIpCgkJLSBiYWNrZ3JvdWRDb2xvcgoJCS0gYm9yZGVyQ29sb3IKCQktIHRleHRDb2xvcgoJCS0gY2xhc3NOYW1lCgkJLSBlZGl0YWJsZQoJCS0gYWxsRGF5RGVmYXVsdAoJCS0gaWdub3JlVGltZXpvbmUKCQktIHN0YXJ0UGFyYW0gKGZvciBhIGZlZWQpCgkJLSBlbmRQYXJhbSAgIChmb3IgYSBmZWVkKQoJCS0gQU5ZIE9GIFRIRSBKUVVFUlkgJC5hamF4IE9QVElPTlMKCQkgIGFsbG93cyBmb3IgZWFzaWx5IGNoYW5naW5nIGZyb20gR0VUIHRvIFBPU1QgYW5kIHNlbmRpbmcgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIChpc3N1ZSAzODYpCgkJICBhbGxvd3MgZm9yIGVhc2lseSBhdHRhY2hpbmcgYWpheCBoYW5kbGVycyBzdWNoIGFzIGBlcnJvcmAgKGlzc3VlIDc1NCkKCQkgIGFsbG93cyBmb3IgdHVybmluZyBjYWNoaW5nIG9uIChpc3N1ZSAzNTUpCgktIEdvb2dsZSBDYWxlbmRhciBmZWVkcyBhcmUgbm93IHNwZWNpZmllZCBkaWZmZXJlbnRseToKCQktIHNwZWNpZnkgYSBzaW1wbGUgc3RyaW5nIG9mIHlvdXIgZmVlZCdzIFVSTAoJCS0gc3BlY2lmeSBhbiAqb2JqZWN0KiB3aXRoIGEgYHVybGAgcHJvcGVydHkgb2YgeW91ciBmZWVkJ3MgVVJMLgoJCSAgeW91IGNhbiBpbmNsdWRlIGFueSBvZiB0aGUgbmV3IEV2ZW50LVNvdXJjZSBvcHRpb25zIGluIHRoaXMgb2JqZWN0LgoJCS0gdGhlIG9sZCBgJC5mdWxsQ2FsZW5kYXIuZ2NhbEZlZWRgIG1ldGhvZCBzdGlsbCB3b3JrcwoJLSBubyBtb3JlIElFNyBTU0wgcG9wdXAgKGlzc3VlIDUwNCkKCS0gcmVtb3ZlIGBjYWNoZVBhcmFtYCAtIHVzZSBqc29uIGV2ZW50IHNvdXJjZSBgY2FjaGVgIG9wdGlvbiBpbnN0ZWFkCgktIGxhdGVzdCBqcXVlcnkvanF1ZXJ5LXVpCgp2ZXJzaW9uIDEuNC4xMSAoMi8yMi8xMSkKCS0gZml4ZWQgcmVyZW5kZXJFdmVudHMgYnVnIChpc3N1ZSA3OTApCgktIGZpeGVkIGJ1ZyB3aXRoIGZhdWx0eSBkcmFnZ2luZyBvZiBldmVudHMgZnJvbSBhbGwtZGF5IHNsb3QgaW4gYWdlbmRhIHZpZXdzCgktIGJ1bmRsZWQgd2l0aCBqcXVlcnkgMS41IGFuZCBqcXVlcnktdWkgMS44LjkKCnZlcnNpb24gMS40LjEwICgxLzIvMTEpCgktIGZpeGVkIGJ1ZyB3aXRoIHJlc2l6aW5nIGV2ZW50IHRvIGRpZmZlcmVudCB3ZWVrIGluIDUtZGF5IG1vbnRoIHZpZXcgKGlzc3VlIDc0MCkKCS0gZml4ZWQgYnVnIHdpdGggZXZlbnRzIG5vdCBzdGlja2luZyBhZnRlciBhIHJlbW92ZUV2ZW50cyBjYWxsIChpc3N1ZSA3NTcpCgktIGZpeGVkIGJ1ZyB3aXRoIHVuZGVybHlpbmcgcGFyc2VUaW1lIG1ldGhvZCwgYW5kIG90aGVyIHVzZXMgb2YgcGFyc2VJbnQgKGlzc3VlIDY4OCkKCnZlcnNpb24gMS40LjkgKDExLzE2LzEwKQoJLSBuZXcgYWxnb3JpdGhtIGZvciB2ZXJ0aWNhbGx5IHN0YWNraW5nIGV2ZW50cyAoaXNzdWUgMTExKQoJLSByZXNpemluZyBhbiBldmVudCB0byBhIGRpZmZlcmVudCB3ZWVrIChpc3N1ZSAzMDYpCgktIGJ1Zzogc29tZSBldmVudHMgbm90IHJlbmRlcmVkIHdpdGggY29uc2VjdXRpdmUgY2FsbHMgdG8gYWRkRXZlbnRTb3VyY2UgKGlzc3VlIDY3OSkKCnZlcnNpb24gMS40LjggKDEwLzE2LzEwKQoJLSBpZ25vcmVUaW1lem9uZSBvcHRpb24gKHNldCB0byBgZmFsc2VgIHRvIHByb2Nlc3MgVVRDIG9mZnNldHMgaW4gSVNPODYwMSBkYXRlcykKCS0gYnVnZml4ZXMKCQktIGV2ZW50IHJlZmV0Y2hpbmcgbm90IGJlaW5nIGNhbGxlZCB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMgKGlzc3VlcyA0MTcsIDU1NCkKCQktIGV2ZW50IHJlZmV0Y2hpbmcgYmVpbmcgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHVuZGVyIGNlcnRhaW4gY29uZGl0aW9ucyAoaXNzdWVzIDU4NiwgNjE2KQoJCS0gc2VsZWN0aW9uIGNhbm5vdCBiZSB0cmlnZ2VyZWQgYnkgcmlnaHQgbW91c2UgYnV0dG9uIChpc3N1ZSA1NTgpCgkJLSBhZ2VuZGEgdmlldyBsZWZ0IGF4aXMgc2l6ZWQgaW5jb3JyZWN0bHkgKGlzc3VlIDQ2NSkKCQktIElFIGpzIGVycm9yIHdoZW4gY2FsZW5kYXIgaXMgdG9vIG5hcnJvdyAoaXNzdWUgNTE3KQoJCS0gYWdlbmRhIHZpZXcgbG9va3Mgc3RyYW5nZSB3aGVuIG5vIHNjcm9sbGJhcnMgKGlzc3VlIDIzNSkKCQktIGltcHJvdmVkIHBhcnNpbmcgb2YgSVNPODYwMSBkYXRlcyB3aXRoIFVUQyBvZmZzZXRzCgktICQuZnVsbENhbGVuZGFyLnZlcnNpb24KCS0gYW4gaW50ZXJuYWwgcmVmYWN0b3Igb2YgdGhlIGNvZGUsIGZvciBlYXNpZXIgZnV0dXJlIGRldmVsb3BtZW50IGFuZCBtb2R1bGFyaXR5Cgp2ZXJzaW9uIDEuNC43ICg3LzUvMTApCgktICJkcm9wcGluZyIgZXh0ZXJuYWwgb2JqZWN0cyBvbnRvIHRoZSBjYWxlbmRhcgoJCS0gZHJvcHBhYmxlIChib29sZWFuLCB0byB0dXJuIG9uL29mZikKCQktIGRyb3BBY2NlcHQgKHRvIGZpbHRlciB3aGljaCBldmVudHMgdGhlIGNhbGVuZGFyIHdpbGwgYWNjZXB0KQoJCS0gZHJvcCAodHJpZ2dlcikKCS0gc2VsZWN0YWJsZSBvcHRpb25zIGNhbiBub3cgYmUgc3BlY2lmaWVkIHdpdGggYSBWaWV3IE9wdGlvbiBIYXNoCgktIGJ1Z2ZpeGVzCgkJLSBkcmFnZ2VkICYgcmV2ZXJ0ZWQgZXZlbnRzIGhhdmluZyB3cm9uZyB0aW1lIHRleHQgKGlzc3VlIDQwNikKCQktIGJ1ZyByZW5kZXJpbmcgZXZlbnRzIHRoYXQgaGF2ZSBhbiBlbmR0aW1lIHdpdGggc2Vjb25kcywgYnV0IG5vIGhvdXJzL21pbnV0ZXMgKGlzc3VlIDQ3NykKCQktIGdvdG9EYXRlIGRhdGUgb3ZlcmZsb3cgYnVnIChpc3N1ZSA0MjkpCgkJLSB3cm9uZyBkYXRlIHJlcG9ydGVkIHdoZW4gY2xpY2tpbmcgb24gZWRnZSBvZiBsYXN0IGNvbHVtbiBpbiBhZ2VuZGEgdmlld3MgKDQxMikKCS0gc3VwcG9ydCBuZXdsaW5lcyBpbiBldmVudCB0aXRsZXMKCS0gc2VsZWN0L3Vuc2VsZWN0IGNhbGxiYWNrcyBub3cgcGFzc2VzIG5hdGl2ZSBqcyBldmVudAoKdmVyc2lvbiAxLjQuNiAoNS8zMS8xMCkKCS0gInNlbGVjdGluZyIgZGF5cyBvciB0aW1lc2xvdHMKCQktIG9wdGlvbnM6IHNlbGVjdGFibGUsIHNlbGVjdEhlbHBlciwgdW5zZWxlY3RBdXRvLCB1bnNlbGVjdENhbmNlbAoJCS0gY2FsbGJhY2tzOiBzZWxlY3QsIHVuc2VsZWN0CgkJLSBtZXRob2RzOiBzZWxlY3QsIHVuc2VsZWN0CgktIHdoZW4gZHJhZ2dpbmcgYW4gZXZlbnQsIHRoZSBoaWdobGlnaHRpbmcgcmVmbGVjdHMgdGhlIGR1cmF0aW9uIG9mIHRoZSBldmVudAoJLSBjb2RlIGNvbXByZXNzaW5nIGJ5IEdvb2dsZSBDbG9zdXJlIENvbXBpbGVyCgktIGJ1bmRsZWQgd2l0aCBqUXVlcnkgMS40LjIgYW5kIGpRdWVyeSBVSSAxLjguMQoKdmVyc2lvbiAxLjQuNSAoMi8yMS8xMCkKCS0gbGF6eUZldGNoaW5nIG9wdGlvbiwgd2hpY2ggY2FuIGZvcmNlIHRoZSBjYWxlbmRhciB0byBmZXRjaCBldmVudHMgb24gZXZlcnkgdmlldy9kYXRlIGNoYW5nZQoJLSBzY3JvbGwgc3RhdGUgb2YgYWdlbmRhIHZpZXdzIGFyZSBwcmVzZXJ2ZWQgd2hlbiBzd2l0Y2hpbmcgYmFjayB0byB2aWV3CgktIGJ1Z2ZpeGVzCgkJLSBjYWxsaW5nIG1ldGhvZHMgb24gYW4gdW5pbml0aWFsaXplZCBmdWxsY2FsZW5kYXIgdGhyb3dzIGVycm9yCgkJLSBJRTYvNyBidWcgd2hlcmUgYW4gZW50aXJlIHZpZXcgYmVjb21lcyBpbnZpc2libGUgKGlzc3VlIDMyMCkKCQktIGVycm9yIHdoZW4gcmVuZGVyaW5nIGEgaGlkZGVuIGNhbGVuZGFyIChpbiBqcXVlcnkgdWkgdGFicyBmb3IgZXhhbXBsZSkgaW4gSUUgKGlzc3VlIDM0MCkKCQktIGludGVyY29ubmVjdGVkIGJ1Z3MgcmVsYXRlZCB0byBjYWxlbmRhciByZXNpemluZyBhbmQgc2Nyb2xsYmFycwoJCQktIHdoZW4gc3dpdGNoaW5nIHZpZXdzIG9yIGNsaWNraW5nIHByZXYvbmV4dCwgY2FsZW5kYXIgd291bGQgImJsaW5rIiAoaXNzdWUgMzMzKQoJCQktIGxpcXVpZC13aWR0aCBjYWxlbmRhcidzIGV2ZW50cyBzaGlmdGVkIChkZXBlbmRpbmcgb24gaW5pdGlhbCBoZWlnaHQgb2YgYnJvd3NlcikgKGlzc3VlIDM0MSkKCQkJLSBtb3JlIHJvYnVzdCB1bmRlcmx5aW5nIGFsZ29yaXRobSBmb3IgY2FsZW5kYXIgcmVzaXppbmcKCnZlcnNpb24gMS40LjQgKDIvMy8xMCkKCS0gb3B0aW1pemVkIGV2ZW50IHJlbmRlcmluZyBpbiBhbGwgdmlld3MgKGV2ZW50cyByZW5kZXIgaW4gMS8xMCB0aGUgdGltZSkKCS0gZ290b0RhdGUoKSBkb2VzIG5vdCBmb3JjZSB0aGUgY2FsZW5kYXIgdG8gdW5uZWNlc3NhcmlseSByZXJlbmRlcgoJLSByZW5kZXIoKSBtZXRob2Qgbm93IGNvcnJlY3RseSByZWFkanVzdHMgaGVpZ2h0Cgp2ZXJzaW9uIDEuNC4zICgxMi8yMi8wOSkKCS0gYWRkZWQgZGVzdHJveSBtZXRob2QKCS0gR29vZ2xlIENhbGVuZGFyIGV2ZW50IHBhZ2VzIHJlc3BlY3QgY3VycmVudFRpbWV6b25lCgktIGNhY2hpbmcgbm93IGhhbmRsZWQgYnkgalF1ZXJ5J3MgYWpheAkKCS0gcHJvdGVjdGlvbiBmcm9tIHNldHRpbmcgYXNwZWN0UmF0aW8gdG8gemVybwoJLSBidWdmaXhlcwoJCS0gcGFyc2VJU084NjAxIGFuZCBEU1QgY2F1c2VkIGNlcnRhaW4gZXZlbnRzIHRvIGRpc3BsYXkgZGF5IGJlZm9yZQoJCS0gYnV0dG9uIHBvc2l0aW9uaW5nIHByb2JsZW0gaW4gSUU2CgkJLSBhamF4IGV2ZW50IHNvdXJjZSByZW1vdmVkIGFmdGVyIHJlY2VudGx5IGJlaW5nIGFkZGVkLCBldmVudHMgc3RpbGwgZGlzcGxheWVkCgkJLSBldmVudCBub3QgZGlzcGxheWVkIHdoZW4gZW5kIGlzIGFuIGVtcHR5IHN0cmluZwoJCS0gZHluYW1pY2FsbHkgc2V0dGluZyBjYWxlbmRhciBoZWlnaHQgd2hlbiBubyBldmVudHMgaGF2ZSBiZWVuIGZldGNoZWQsIHRocm93cyBlcnJvcgoKdmVyc2lvbiAxLjQuMiAoMTIvMDIvMDkpCgktIGV2ZW50QWZ0ZXJSZW5kZXIgdHJpZ2dlcgoJLSBnZXREYXRlICYgZ2V0VmlldyBtZXRob2RzCgktIGhlaWdodCAmIGNvbnRlbnRIZWlnaHQgb3B0aW9ucyAoZXhwbGljaXRseSBzZXRzIHRoZSBwaXhlbCBoZWlnaHQpCgktIG1pblRpbWUgJiBtYXhUaW1lIG9wdGlvbnMgKHJlc3RyaWN0cyBzaG93biBob3VycyBpbiBhZ2VuZGEgdmlldykKCS0gZ2V0dGVycyBbZm9yIGFsbCBvcHRpb25zXSBhbmQgc2V0dGVycyBbZm9yIGhlaWdodCwgY29udGVudEhlaWdodCwgYW5kIGFzcGVjdFJhdGlvIE9OTFkhIHN0YXkgdHVuZWQuLl0KCS0gcmVuZGVyIG1ldGhvZCBub3cgcmVhZGp1c3RzIGNhbGVuZGFyJ3Mgc2l6ZQoJLSBidWdmaXhlcwoJCS0gbGlnaHRib3ggc2NyaXB0cyB0aGF0IHVzZSBpZnJhbWVzIChsaWtlIGZhbmN5Ym94KQoJCS0gZGF5LW9mLXdlZWsgY2xhc3NOYW1lcyB3ZXJlIG9mZiB3aGVuIGZpcnN0RGF5PTEKCQktIGd1YXJhbnRlZWQgc3BhY2Ugb24gcmlnaHQgc2lkZSBvZiBhZ2VuZGEgZXZlbnRzIChldmVuIHdoZW4gc3RhY2tlZCkKCQktIGFjY2VwdHMgSVNPODYwMSBkYXRlcyB3aXRoIGEgc3BhY2UgKGluc3RlYWQgb2YgJ1QnKQoKdmVyc2lvbiAxLjQuMSAoMTAvMzEvMDkpCgktIGNhbiBleGNsdWRlIHdlZWtlbmRzIHdpdGggbmV3ICd3ZWVrZW5kcycgb3B0aW9uCgktIGdjYWwgZmVlZCAnY3VycmVudFRpbWV6b25lJyBvcHRpb24KCS0gYnVnZml4ZXMKCQktIHllYXIvbW9udGgvZGF0ZSBvcHRpb24gc29tZXRpbWVzIHdvdWxkbid0IHNldCBjb3JyZWN0bHkgKGRlcGVuZGluZyBvbiBjdXJyZW50IGRhdGUpCgkJLSBkYXlsaWdodCBzYXZpbmdzIGlzc3VlIGNhdXNlZCBhZ2VuZGEgdmlld3MgdG8gc3RhcnQgYXQgMWFtIChmb3IgQlNUIHVzZXJzKQoJLSBjbGVhbnVwIG9mIGdjYWwuanMgY29kZQoKdmVyc2lvbiAxLjQgKDEwLzE5LzA5KQoJLSBhZ2VuZGFXZWVrIGFuZCBhZ2VuZGFEYXkgdmlld3MKCS0gYWRkZWQgc29tZSBvcHRpb25zIGZvciBhZ2VuZGEgdmlld3M6CgkJLSBhbGxEYXlTbG90CgkJLSBhbGxEYXlUZXh0CgkJLSBmaXJzdEhvdXIKCQktIHNsb3RNaW51dGVzCgkJLSBkZWZhdWx0RXZlbnRNaW51dGVzCgkJLSBheGlzRm9ybWF0CgktIG1vZGlmaWVkIHNvbWUgZXhpc3Rpbmcgb3B0aW9ucy90cmlnZ2VycyB0byB3b3JrIHdpdGggYWdlbmRhIHZpZXdzOgoJCS0gZHJhZ09wYWNpdHkgYW5kIHRpbWVGb3JtYXQgY2FuIG5vdyBhY2NlcHQgYSAiVmlldyBIYXNoIiAoYSBuZXcgY29uY2VwdCkKCQktIGRheUNsaWNrIG5vdyBoYXMgYW4gYWxsRGF5IHBhcmFtZXRlcgoJCS0gZXZlbnREcm9wIG5vdyBoYXMgYW4gYW4gYWxsRGF5IHBhcmFtZXRlcgoJCSAgKHRoaXMgd2lsbCBhZmZlY3QgdGhvc2Ugd2hvIHVzZSByZXZlcnRGdW5jLCBhZGp1c3QgcGFyYW1ldGVyIGxpc3QpCgktIGFkZGVkICdwcmV2WWVhcicgYW5kICduZXh0WWVhcicgZm9yIGJ1dHRvbnMgaW4gaGVhZGVyCgktIG1pbm9yIGNoYW5nZSBmb3IgdGhlbWUgdXNlcnMsIHVpLXN0YXRlLWhvdmVyIG5vdCBhcHBsaWVkIHRvIGFjdGl2ZS9pbmFjdGl2ZSBidXR0b25zCgktIGFkZGVkIGV2ZW50LWNvbG9yLWNoYW5naW5nIGV4YW1wbGUgaW4gZG9jcwoJLSBiZXR0ZXIgZGVmYXVsdHMgZm9yIHJpZ2h0LXRvLWxlZnQgdGhlbWVkIGJ1dHRvbiBpY29ucwoKdmVyc2lvbiAxLjMuMiAoMTAvMTMvMDkpCgktIEJ1Z2ZpeGVzIChwbGVhc2UgdXBncmFkZSBmcm9tIDEuMy4xISkKCQktIHNxdWFzaGVkIHBvdGVudGlhbCBpbmZpbml0ZSBsb29wIHdoZW4gYWRkTW9udGhzIGFuZCBhZGREYXlzCgkJICBpcyBjYWxsZWQgd2l0aCBhbiBpbnZhbGlkIGRhdGUKCQktICQuZnVsbENhbGVuZGFyLnBhcnNlRGF0ZSgpIG5vdyBjb3JyZWN0bHkgcGFyc2VzIElFVEYgZm9ybWF0CgkJLSB3aGVuIHN3aXRjaGluZyB2aWV3cywgdGhlICd0b2RheScgYnV0dG9uIHN0aWNrcyBpbmFjdGl2ZSwgZml4ZWQKCS0gZ290b0RhdGUgbm93IGNhbiBhY2NlcHQgYSBzaW5nbGUgRGF0ZSBhcmd1bWVudAoJLSBkb2N1bWVudGF0aW9uIGZvciBjaGFuZ2VzIGluIDEuMy4xIGFuZCAxLjMuMiBub3cgb24gd2Vic2l0ZQoKdmVyc2lvbiAxLjMuMSAoOS8zMC8wOSkKCS0gSW1wb3J0YW50IEJ1Z2ZpeGVzIChwbGVhc2UgdXBncmFkZSBmcm9tIDEuMyEpCgkJLSBXaGVuIGN1cnJlbnQgZGF0ZSB3YXMgbGF0ZSBpbiB0aGUgbW9udGgsIGZvciBsb25nIG1vbnRocywgYW5kIHByZXYvbmV4dCBidXR0b25zCgkJICB3ZXJlIGNsaWNrZWQgaW4gbW9udGgtdmlldywgc29tZSBtb250aHMgd291bGQgYmUgc2tpcHBlZC9yZXBlYXRlZAoJCS0gSW4gY2VydGFpbiB0aW1lIHpvbmVzLCBkYXlsaWdodCBzYXZpbmdzIHRpbWUgd291bGQgY2F1c2UgY2VydGFpbiBkYXlzCgkJICB0byBiZSBtaXNudW1iZXJlZCBpbiBtb250aC12aWV3CgktIFN1YnRsZSBjaGFuZ2UgaW4gd2F5IHdlZWsgaW50ZXJ2YWwgaXMgY2hvc2VuIHdoZW4gc3dpdGNoaW5nIGZyb20gbW9udGggdG8gYmFzaWNXZWVrL2Jhc2ljRGF5IHZpZXcKCS0gQWRkZWQgJ2FsbERheURlZmF1bHQnIG9wdGlvbgoJLSBBZGRlZCAnY2hhbmdlVmlldycgYW5kICdyZW5kZXInIG1ldGhvZHMKCnZlcnNpb24gMS4zICg5LzIxLzA5KQoJLSBkaWZmZXJlbnQgJ3ZpZXdzJzogbW9udGgvYmFzaWNXZWVrL2Jhc2ljRGF5CgktIG1vcmUgZmxleGlibGUgJ2hlYWRlcicgc3lzdGVtIGZvciBidXR0b25zCgktIHRoZW1hYmxlIGJ5IGpRdWVyeSBVSSB0aGVtZXMKCS0gcmVzaXphYmxlIGV2ZW50cyAocmVxdWlyZSBqUXVlcnkgVUkgcmVzaXphYmxlIHBsdWdpbikKCS0gcmVzY29wZWQgJiByZXdyaXR0ZW4gQ1NTLCBlbmhhbmNlZCBkZWZhdWx0IGxvb2sKCS0gY2xlYW5lciBjc3MgJiByZW5kZXJpbmcgdGVjaG5pcXVlcyBmb3IgcmlnaHQtdG8tbGVmdAoJLSByZXdvcmtlZCBvcHRpb25zICYgQVBJIHRvIHN1cHBvcnQgbXVsdGlwbGUgdmlld3MgLyBiZSBjb25zaXN0ZW50IHdpdGggalF1ZXJ5IFVJCgktIHJlZmFjdG9yaW5nIG9mIGVudGlyZSBjb2RlYmFzZQoJCS0gYnJva2VuIGludG8gZGlmZmVyZW50IEpTICYgQ1NTIGZpbGVzLCBhc3NlbWJsZWQgdy8gYnVpbGQgc2NyaXB0cwoJCS0gbmV3IHRlc3Qgc3VpdGUgZm9yIG5ldyBmZWF0dXJlcywgdXNlcyBmaXJlYnVnLWxpdGUKCS0gcmVmYWN0b3JlZCBkb2NzCgktIE9wdGlvbnMKCQkrIGRhdGUKCQkrIGRlZmF1bHRWaWV3CgkJKyBhc3BlY3RSYXRpbwoJCSsgZGlzYWJsZVJlc2l6aW5nCgkJKyBtb250aE5hbWVzICAgICAgKHVzZSBpbnN0ZWFkIG9mICQuZnVsbENhbGVuZGFyLm1vbnRoTmFtZXMpCgkJKyBtb250aE5hbWVzU2hvcnQgKHVzZSBpbnN0ZWFkIG9mICQuZnVsbENhbGVuZGFyLm1vbnRoQWJicmV2cykKCQkrIGRheU5hbWVzICAgICAgICAodXNlIGluc3RlYWQgb2YgJC5mdWxsQ2FsZW5kYXIuZGF5TmFtZXMpCgkJKyBkYXlOYW1lc1Nob3J0ICAgKHVzZSBpbnN0ZWFkIG9mICQuZnVsbENhbGVuZGFyLmRheUFiYnJldnMpCgkJKyB0aGVtZQoJCSsgYnV0dG9uVGV4dAoJCSsgYnV0dG9uSWNvbnMKCQl4IGRyYWdnYWJsZSAgICAgICAgICAgLT4gZWRpdGFibGUvZGlzYWJsZURyYWdnaW5nCgkJeCBmaXhlZFdlZWtzICAgICAgICAgIC0+IHdlZWtNb2RlCgkJeCBhYmJyZXZEYXlIZWFkaW5ncyAgIC0+IGNvbHVtbkZvcm1hdAoJCXggYnV0dG9ucy90aXRsZSAgICAgICAtPiBoZWFkZXIKCQl4IGV2ZW50RHJhZ09wYWNpdHkgICAgLT4gZHJhZ09wYWNpdHkKCQl4IGV2ZW50UmV2ZXJ0RHVyYXRpb24gLT4gZHJhZ1JldmVydER1cmF0aW9uCgkJeCB3ZWVrU3RhcnQgICAgICAgICAgIC0+IGZpcnN0RGF5CgkJeCByaWdodFRvTGVmdCAgICAgICAgIC0+IGlzUlRMCgkJeCBzaG93VGltZSAodXNlICdhbGxEYXknIENhbEV2ZW50IHByb3BlcnR5IGluc3RlYWQpCgktIFRyaWdnZXJlZCBBY3Rpb25zCgkJKyBldmVudFJlc2l6ZVN0YXJ0CgkJKyBldmVudFJlc2l6ZVN0b3AKCQkrIGV2ZW50UmVzaXplCgkJeCBtb250aERpc3BsYXkgLT4gdmlld0Rpc3BsYXkKCQl4IHJlc2l6ZSAgICAgICAtPiB3aW5kb3dSZXNpemUKCQknZXZlbnREcm9wJyBwYXJhbXMgY2hhbmdlZCwgY2FuIHJldmVydCBpZiBhamF4IGN1dHMgb3V0CgktIENhbEV2ZW50IFByb3BlcnRpZXMKCQl4IHNob3dUaW1lICAtPiBhbGxEYXkKCQl4IGRyYWdnYWJsZSAtPiBlZGl0YWJsZQoJCSdlbmQnIGlzIG5vdyBJTkNMVVNJVkUgd2hlbiBhbGxEYXk9dHJ1ZQoJCSd1cmwnIG5vdyBwcm9kdWNlcyBhIHJlYWwgPGE+IHRhZywgbW9yZSBuYXRpdmUgY2xpY2tpbmcvdGFiIGJlaGF2aW9yCgktIE1ldGhvZHM6CgkJKyByZW5kZXJFdmVudAoJCXggcHJldk1vbnRoICAgICAgICAgLT4gcHJldgoJCXggbmV4dE1vbnRoICAgICAgICAgLT4gbmV4dAoJCXggcHJldlllYXIvbmV4dFllYXIgLT4gbW92ZURhdGUKCQl4IHJlZnJlc2ggICAgICAgICAgIC0+IHJlcmVuZGVyRXZlbnRzL3JlZmV0Y2hFdmVudHMKCQl4IHJlbW92ZUV2ZW50ICAgICAgIC0+IHJlbW92ZUV2ZW50cwoJCXggZ2V0RXZlbnRzQnlJRCAgICAgLT4gY2xpZW50RXZlbnRzCgktIFV0aWxpdGllczoKCQknZm9ybWF0RGF0ZScgZm9ybWF0IHN0cmluZyBjb21wbGV0ZWx5IGNoYW5nZWQgKGluc3BpcmVkIGJ5IGpRdWVyeSBVSSBkYXRlcGlja2VyICsgZGF0ZWpzKQoJCSdmb3JtYXREYXRlcycgYWRkZWQgdG8gc3VwcG9ydCBkYXRlLXJhbmdlcwoJLSBHb29nbGUgQ2FsZW5kYXIgT3B0aW9uczoKCQl4IGRyYWdnYWJsZSAtPiBlZGl0YWJsZQoJLSBCdWdmaXhlcwoJCS0gZ2NhbCBleHRlbnNpb24gZmV0Y2hlZCAyNSByZXN1bHRzIG1heCwgbm93IGZldGNoZXMgYWxsCgp2ZXJzaW9uIDEuMi4xICg2LzI5LzA5KQoJLSBidWdmaXhlcwoJCS0gYWxsb3dzIGFuZCBjb3JyZWN0cyBpbnZhbGlkIGVuZCBkYXRlcyBmb3IgZXZlbnRzCgkJLSBkb2Vzbid0IHRocm93IGFuIGVycm9yIGluIElFIHdoaWxlIHJlbmRlcmluZyB3aGVuIGRpc3BsYXk6bm9uZQoJCS0gZml4ZWQgJ2xvYWRpbmcnIGNhbGxiYWNrIHdoZW4gdXNlZCB3LyBtdWx0aXBsZSBhZGRFdmVudFNvdXJjZSBjYWxscwoJCS0gZ2NhbCBjbGFzc05hbWUgY2FuIG5vdyBiZSBhbiBhcnJheQoKdmVyc2lvbiAxLjIgKDUvMzEvMDkpCgktIGV4cGFuZGVkIEFQSQoJCS0gJ2NsYXNzTmFtZScgQ2FsRXZlbnQgYXR0cmlidXRlCgkJLSAnc291cmNlJyBDYWxFdmVudCBhdHRyaWJ1dGUKCQktIGR5bmFtaWNhbGx5IGdldC9hZGQvcmVtb3ZlL3VwZGF0ZSBldmVudHMgb2YgY3VycmVudCBtb250aAoJCS0gbG9jYWxlIGltcHJvdmVtZW50czogY2hhbmdlIG1vbnRoL2RheSBuYW1lIHRleHQKCQktIGJldHRlciBkYXRlIGZvcm1hdHRpbmcgKCQuZnVsbENhbGVuZGFyLmZvcm1hdERhdGUpCgkJLSBtdWx0aXBsZSAnZXZlbnQgc291cmNlcycgYWxsb3dlZAoJCQktIGR5bmFtaWNhbGx5IGFkZC9yZW1vdmUgZXZlbnQgc291cmNlcwoJLSBvcHRpb25zIGZvciBwcmV2WWVhciBhbmQgbmV4dFllYXIgYnV0dG9ucwoJLSBkb2NzIGhhdmUgYmVlbiByZXdvcmtlZCAoaW5jbHVkZSBhZGRpdGlvbiBvZiBHb29nbGUgQ2FsZW5kYXIgZG9jcykKCS0gY2hhbmdlZCBiZWhhdmlvciBvZiBwYXJzZURhdGUgZm9yIG51bWJlciBzdHJpbmdzCgkgIChub3cgaW50ZXJwZXRzIGFzIHVuaXggdGltZXN0YW1wLCBub3QgTVMgdGltZXMpCgktIGJ1Z2ZpeGVzCgkJLSByaWdodFRvTGVmdCBtb250aCBzdGFydCBidWcKCQktIG9mZi1ieS1vbmUgZXJyb3JzIHdpdGggbW9udGggZm9ybWF0dGluZyBjb21tYW5kcwoJCS0gZXZlbnRzIGZyb20gcHJldmlvdXMgbW9udGhzIHN0aWNraW5nIHdoZW4gY2xpY2tpbmcgcHJldi9uZXh0IHF1aWNrbHkKCS0gR29vZ2xlIENhbGVuZGFyIEFQSSBjaGFuZ2VkIHRvIHdvcmsgdy8gbXVsdGlwbGUgZXZlbnQgc291cmNlcwoJCS0gY2FuIGFsc28gcHJvdmlkZSAnY2xhc3NOYW1lJyBhbmQgJ2RyYWdnYWJsZScgb3B0aW9ucwoJLSBkYXRlIHV0aWx0aWVzIG1vdmVkIGZyb20gJCB0byAkLmZ1bGxDYWxlbmRhcgoJLSBtb3JlIGRvY3VtZW50YXRpb24gaW4gc291cmNlIGNvZGUKCS0gbWluaWZpZWQgdmVyc2lvbiBvZiBmdWxsY2FsZW5kYXIuanMKCS0gdGVzdCBzdWl0IChhdmFpbGFibGUgZnJvbSBzdm4pCgktIHRvcCBidXR0b25zIG5vdyB1c2UgPGJ1dHRvbj4gdy8gYW4gaW5uZXIgPHNwYW4+IGZvciBiZXR0ZXIgY3NzIGN1c29taXphdGlvbgoJCS0gdGh1cyBDU1MgaGFzIGNoYW5nZWQuIElGIFVQR1JBRElORyBGUk9NIFBSRVZJT1VTIFZFUlNJT05TLAoJCSAgVVBHUkFERSBZT1VSIEZVTExDQUxFTkRBUi5DU1MgRklMRSEhIQoKdmVyc2lvbiAxLjEgKDUvMTAvMDkpCgktIEFkZGVkIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKCQktIHdlZWtTdGFydAoJCS0gcmlnaHRUb0xlZnQKCQktIHRpdGxlRm9ybWF0CgkJLSB0aW1lRm9ybWF0CgkJLSBjYWNoZVBhcmFtCgkJLSByZXNpemUKCS0gRml4ZWQgcmVuZGVyaW5nIGJ1Z3MKCQktIE9wZXJhIDkuMjUgKGV2ZW50cyBwbGFjZW1lbnQgJiB3aW5kb3cgcmVzaXppbmcpCgkJLSBJRTYgKHdpbmRvdyByZXNpemluZykKCS0gT3B0aW1pemVkIHdpbmRvdyByZXNpemluZyBmb3IgQUxMIGJyb3dzZXJzCgktIEV2ZW50cyBvbiBzYW1lIGRheSBub3cgc29ydGVkIGJ5IHN0YXJ0IHRpbWUgKGJ1dCBmaXJzdCBieSB0aW1lc3BhbikKCS0gQ29ycmVjdCB6LWluZGV4IHdoZW4gZHJhZ2dpbmcKCS0gRHJhZ2dpbmcgY29udGFpbmVkIGluIG92ZXJmbG93IERJViBmb3IgSUU2CgktIE1vZGlmaWVkIGZ1bGxjYWxlbmRhci5jc3MKCQktIGZvciByaWdodC10by1sZWZ0IHN1cHBvcnQKCQktIGZvciB2YXJpYWJsZSBzdGFydC1vZi13ZWVrCgkJLSBmb3IgSUU2IHJlc2l6aW5nIGJ1ZwoJCS0gZm9yIFRIRUFEIGFuZCBUQk9EWSAoaW4gMS4wLCBqdXN0IHVzZWQgVEJPRFksIHJlc3RydWN0dXJlZCBpbiAxLjEpCgkJLSBJRiBVUEdSQURJTkcgRlJPTSBGVUxMQ0FMRU5EQVIgMS4wLCBZT1UgTVVTVCBVUEdSQURFIEZVTExDQUxFTkRBUi5DU1MKCQkgICEhISEhISEhISEhCgkJICAK]]></data>
	</file>
	<file>
	  <filename>/lib/fullcalendar/fullcalendar.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohCiAqIEZ1bGxDYWxlbmRhciB2MS42LjQgU3R5bGVzaGVldAogKiBEb2NzICYgTGljZW5zZTogaHR0cDovL2Fyc2hhdy5jb20vZnVsbGNhbGVuZGFyLwogKiAoYykgMjAxMyBBZGFtIFNoYXcKICovCgoKLmZjIHsKCWRpcmVjdGlvbjogbHRyOwoJdGV4dC1hbGlnbjogbGVmdDsKCX0KCQouZmMgdGFibGUgewoJYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKCWJvcmRlci1zcGFjaW5nOiAwOwoJfQoJCmh0bWwgLmZjLAouZmMgdGFibGUgewoJZm9udC1zaXplOiAxZW07Cgl9CgkKLmZjIHRkLAouZmMgdGggewoJcGFkZGluZzogMDsKCXZlcnRpY2FsLWFsaWduOiB0b3A7Cgl9CgoKCi8qIEhlYWRlcgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLmZjLWhlYWRlciB0ZCB7Cgl3aGl0ZS1zcGFjZTogbm93cmFwOwoJfQoKLmZjLWhlYWRlci1sZWZ0IHsKCXdpZHRoOiAyNSU7Cgl0ZXh0LWFsaWduOiBsZWZ0OwoJfQoJCi5mYy1oZWFkZXItY2VudGVyIHsKCXRleHQtYWxpZ246IGNlbnRlcjsKCX0KCQouZmMtaGVhZGVyLXJpZ2h0IHsKCXdpZHRoOiAyNSU7Cgl0ZXh0LWFsaWduOiByaWdodDsKCX0KCQouZmMtaGVhZGVyLXRpdGxlIHsKCWRpc3BsYXk6IGlubGluZS1ibG9jazsKCXZlcnRpY2FsLWFsaWduOiB0b3A7Cgl9CgkKLmZjLWhlYWRlci10aXRsZSBoMiB7CgltYXJnaW4tdG9wOiAwOwoJd2hpdGUtc3BhY2U6IG5vd3JhcDsKCX0KCQouZmMgLmZjLWhlYWRlci1zcGFjZSB7CglwYWRkaW5nLWxlZnQ6IDEwcHg7Cgl9CgkKLmZjLWhlYWRlciAuZmMtYnV0dG9uIHsKCW1hcmdpbi1ib3R0b206IDFlbTsKCXZlcnRpY2FsLWFsaWduOiB0b3A7Cgl9CgkKLyogYnV0dG9ucyBlZGdlcyBidXR0aW5nIHRvZ2V0aGVyICovCgouZmMtaGVhZGVyIC5mYy1idXR0b24gewoJbWFyZ2luLXJpZ2h0OiAtMXB4OwoJfQoJCi5mYy1oZWFkZXIgLmZjLWNvcm5lci1yaWdodCwgIC8qIG5vbi10aGVtZSAqLwouZmMtaGVhZGVyIC51aS1jb3JuZXItcmlnaHQgeyAvKiB0aGVtZSAqLwoJbWFyZ2luLXJpZ2h0OiAwOyAvKiBiYWNrIHRvIG5vcm1hbCAqLwoJfQoJCi8qIGJ1dHRvbiBsYXllcmluZyAoZm9yIGJvcmRlciBwcmVjZWRlbmNlKSAqLwoJCi5mYy1oZWFkZXIgLmZjLXN0YXRlLWhvdmVyLAouZmMtaGVhZGVyIC51aS1zdGF0ZS1ob3ZlciB7Cgl6LWluZGV4OiAyOwoJfQoJCi5mYy1oZWFkZXIgLmZjLXN0YXRlLWRvd24gewoJei1pbmRleDogMzsKCX0KCi5mYy1oZWFkZXIgLmZjLXN0YXRlLWFjdGl2ZSwKLmZjLWhlYWRlciAudWktc3RhdGUtYWN0aXZlIHsKCXotaW5kZXg6IDQ7Cgl9CgkKCQoJCi8qIENvbnRlbnQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCQouZmMtY29udGVudCB7CgljbGVhcjogYm90aDsKCXpvb206IDE7IC8qIGZvciBJRTcsIGdpdmVzIGFjY3VyYXRlIGNvb3JkaW5hdGVzIGZvciBbdW5dZnJlZXplQ29udGVudEhlaWdodCAqLwoJfQoJCi5mYy12aWV3IHsKCXdpZHRoOiAxMDAlOwoJb3ZlcmZsb3c6IGhpZGRlbjsKCX0KCQoJCgovKiBDZWxsIFN0eWxlcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLmZjLXdpZGdldC1oZWFkZXIsICAgIC8qIDx0aD4sIHVzdWFsbHkgKi8KLmZjLXdpZGdldC1jb250ZW50IHsgIC8qIDx0ZD4sIHVzdWFsbHkgKi8KCWJvcmRlcjogMXB4IHNvbGlkICNkZGQ7Cgl9CgkKLmZjLXN0YXRlLWhpZ2hsaWdodCB7IC8qIDx0ZD4gdG9kYXkgY2VsbCAqLyAvKiBUT0RPOiBhZGQgLmZjLXRvZGF5IHRvIDx0aD4gKi8KCWJhY2tncm91bmQ6ICNmY2Y4ZTM7Cgl9CgkKLmZjLWNlbGwtb3ZlcmxheSB7IC8qIHNlbWktdHJhbnNwYXJlbnQgcmVjdGFuZ2xlIHdoaWxlIGRyYWdnaW5nICovCgliYWNrZ3JvdW5kOiAjYmNlOGYxOwoJb3BhY2l0eTogLjM7CglmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MzApOyAvKiBmb3IgSUUgKi8KCX0KCQoKCi8qIEJ1dHRvbnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi5mYy1idXR0b24gewoJcG9zaXRpb246IHJlbGF0aXZlOwoJZGlzcGxheTogaW5saW5lLWJsb2NrOwoJcGFkZGluZzogMCAuNmVtOwoJb3ZlcmZsb3c6IGhpZGRlbjsKCWhlaWdodDogMS45ZW07CglsaW5lLWhlaWdodDogMS45ZW07Cgl3aGl0ZS1zcGFjZTogbm93cmFwOwoJY3Vyc29yOiBwb2ludGVyOwoJfQoJCi5mYy1zdGF0ZS1kZWZhdWx0IHsgLyogbm9uLXRoZW1lICovCglib3JkZXI6IDFweCBzb2xpZDsKCX0KCi5mYy1zdGF0ZS1kZWZhdWx0LmZjLWNvcm5lci1sZWZ0IHsgLyogbm9uLXRoZW1lICovCglib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7Cglib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7Cgl9CgouZmMtc3RhdGUtZGVmYXVsdC5mYy1jb3JuZXItcmlnaHQgeyAvKiBub24tdGhlbWUgKi8KCWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7Cglib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4OwoJfQoKLyoKCU91ciBkZWZhdWx0IHByZXYvbmV4dCBidXR0b25zIHVzZSBIVE1MIGVudGl0aWVzIGxpa2UgJmxzYXF1bzsgJnJzYXF1bzsgJmxhcXVvOyAmcmFxdW87CglhbmQgd2UnbGwgdHJ5IHRvIG1ha2UgdGhlbSBsb29rIGdvb2QgY3Jvc3MtYnJvd3Nlci4KKi8KCi5mYy10ZXh0LWFycm93IHsKCW1hcmdpbjogMCAuMWVtOwoJZm9udC1zaXplOiAyZW07Cglmb250LWZhbWlseTogIkNvdXJpZXIgTmV3IiwgQ291cmllciwgbW9ub3NwYWNlOwoJdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiBmb3IgSUU3ICovCgl9CgouZmMtYnV0dG9uLXByZXYgLmZjLXRleHQtYXJyb3csCi5mYy1idXR0b24tbmV4dCAuZmMtdGV4dC1hcnJvdyB7IC8qIGZvciAmbHNhcXVvOyAmcnNhcXVvOyAqLwoJZm9udC13ZWlnaHQ6IGJvbGQ7Cgl9CgkKLyogaWNvbiAoZm9yIGpxdWVyeSB1aSkgKi8KCQouZmMtYnV0dG9uIC5mYy1pY29uLXdyYXAgewoJcG9zaXRpb246IHJlbGF0aXZlOwoJZmxvYXQ6IGxlZnQ7Cgl0b3A6IDUwJTsKCX0KCQouZmMtYnV0dG9uIC51aS1pY29uIHsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKCWZsb2F0OiBsZWZ0OwoJbWFyZ2luLXRvcDogLTUwJTsKCSptYXJnaW4tdG9wOiAwOwoJKnRvcDogLTUwJTsKCX0KCQovKgogIGJ1dHRvbiBzdGF0ZXMKICBib3Jyb3dlZCBmcm9tIHR3aXR0ZXIgYm9vdHN0cmFwIChodHRwOi8vdHdpdHRlci5naXRodWIuY29tL2Jvb3RzdHJhcC8pCiovCgouZmMtc3RhdGUtZGVmYXVsdCB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1OwoJYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmZmZmLCAjZTZlNmU2KTsKCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDAsIDAgMTAwJSwgZnJvbSgjZmZmZmZmKSwgdG8oI2U2ZTZlNikpOwoJYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmZmZmLCAjZTZlNmU2KTsKCWJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsICNmZmZmZmYsICNlNmU2ZTYpOwoJYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2ZmZmZmZiwgI2U2ZTZlNik7CgliYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7Cglib3JkZXItY29sb3I6ICNlNmU2ZTYgI2U2ZTZlNiAjYmZiZmJmOwoJYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgcmdiYSgwLCAwLCAwLCAwLjEpIHJnYmEoMCwgMCwgMCwgMC4yNSk7Cgljb2xvcjogIzMzMzsKCXRleHQtc2hhZG93OiAwIDFweCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTsKCWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA1KTsKCX0KCi5mYy1zdGF0ZS1ob3ZlciwKLmZjLXN0YXRlLWRvd24sCi5mYy1zdGF0ZS1hY3RpdmUsCi5mYy1zdGF0ZS1kaXNhYmxlZCB7Cgljb2xvcjogIzMzMzMzMzsKCWJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7Cgl9CgouZmMtc3RhdGUtaG92ZXIgewoJY29sb3I6ICMzMzMzMzM7Cgl0ZXh0LWRlY29yYXRpb246IG5vbmU7CgliYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xNXB4OwoJLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLXBvc2l0aW9uIDAuMXMgbGluZWFyOwoJICAgLW1vei10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLXBvc2l0aW9uIDAuMXMgbGluZWFyOwoJICAgICAtby10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLXBvc2l0aW9uIDAuMXMgbGluZWFyOwoJICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLXBvc2l0aW9uIDAuMXMgbGluZWFyOwoJfQoKLmZjLXN0YXRlLWRvd24sCi5mYy1zdGF0ZS1hY3RpdmUgewoJYmFja2dyb3VuZC1jb2xvcjogI2NjY2NjYzsKCWJhY2tncm91bmQtaW1hZ2U6IG5vbmU7CglvdXRsaW5lOiAwOwoJYm94LXNoYWRvdzogaW5zZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xNSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDUpOwoJfQoKLmZjLXN0YXRlLWRpc2FibGVkIHsKCWN1cnNvcjogZGVmYXVsdDsKCWJhY2tncm91bmQtaW1hZ2U6IG5vbmU7CglvcGFjaXR5OiAwLjY1OwoJZmlsdGVyOiBhbHBoYShvcGFjaXR5PTY1KTsKCWJveC1zaGFkb3c6IG5vbmU7Cgl9CgoJCgovKiBHbG9iYWwgRXZlbnQgU3R5bGVzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgouZmMtZXZlbnQtY29udGFpbmVyID4gKiB7Cgl6LWluZGV4OiA4OwoJfQoKLmZjLWV2ZW50LWNvbnRhaW5lciA+IC51aS1kcmFnZ2FibGUtZHJhZ2dpbmcsCi5mYy1ldmVudC1jb250YWluZXIgPiAudWktcmVzaXphYmxlLXJlc2l6aW5nIHsKCXotaW5kZXg6IDk7Cgl9CgkgCi5mYy1ldmVudCB7Cglib3JkZXI6IDFweCBzb2xpZCAjM2E4N2FkOyAvKiBkZWZhdWx0IEJPUkRFUiBjb2xvciAqLwoJYmFja2dyb3VuZC1jb2xvcjogIzNhODdhZDsgLyogZGVmYXVsdCBCQUNLR1JPVU5EIGNvbG9yICovCgljb2xvcjogI2ZmZjsgICAgICAgICAgICAgICAvKiBkZWZhdWx0IFRFWFQgY29sb3IgKi8KCWZvbnQtc2l6ZTogLjg1ZW07CgljdXJzb3I6IGRlZmF1bHQ7Cgl9CgphLmZjLWV2ZW50IHsKCXRleHQtZGVjb3JhdGlvbjogbm9uZTsKCX0KCQphLmZjLWV2ZW50LAouZmMtZXZlbnQtZHJhZ2dhYmxlIHsKCWN1cnNvcjogcG9pbnRlcjsKCX0KCQouZmMtcnRsIC5mYy1ldmVudCB7Cgl0ZXh0LWFsaWduOiByaWdodDsKCX0KCi5mYy1ldmVudC1pbm5lciB7Cgl3aWR0aDogMTAwJTsKCWhlaWdodDogMTAwJTsKCW92ZXJmbG93OiBoaWRkZW47Cgl9CgkKLmZjLWV2ZW50LXRpbWUsCi5mYy1ldmVudC10aXRsZSB7CglwYWRkaW5nOiAwIDFweDsKCX0KCQouZmMgLnVpLXJlc2l6YWJsZS1oYW5kbGUgewoJZGlzcGxheTogYmxvY2s7Cglwb3NpdGlvbjogYWJzb2x1dGU7Cgl6LWluZGV4OiA5OTk5OTsKCW92ZXJmbG93OiBoaWRkZW47IC8qIGhhY2t5IHNwYWNlcyAoSUU2LzcpICovCglmb250LXNpemU6IDMwMCU7ICAvKiAqLwoJbGluZS1oZWlnaHQ6IDUwJTsgLyogKi8KCX0KCQoJCgkKLyogSG9yaXpvbnRhbCBFdmVudHMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi5mYy1ldmVudC1ob3JpIHsKCWJvcmRlci13aWR0aDogMXB4IDA7CgltYXJnaW4tYm90dG9tOiAxcHg7Cgl9CgouZmMtbHRyIC5mYy1ldmVudC1ob3JpLmZjLWV2ZW50LXN0YXJ0LAouZmMtcnRsIC5mYy1ldmVudC1ob3JpLmZjLWV2ZW50LWVuZCB7Cglib3JkZXItbGVmdC13aWR0aDogMXB4OwoJYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4OwoJYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4OwoJfQoKLmZjLWx0ciAuZmMtZXZlbnQtaG9yaS5mYy1ldmVudC1lbmQsCi5mYy1ydGwgLmZjLWV2ZW50LWhvcmkuZmMtZXZlbnQtc3RhcnQgewoJYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7Cglib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4OwoJYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDsKCX0KCQovKiByZXNpemFibGUgKi8KCQouZmMtZXZlbnQtaG9yaSAudWktcmVzaXphYmxlLWUgewoJdG9wOiAwICAgICAgICAgICAhaW1wb3J0YW50OyAvKiBpbXBvcnRhbnRzIG92ZXJyaWRlIHByZSBqcXVlcnkgdWkgMS43IHN0eWxlcyAqLwoJcmlnaHQ6IC0zcHggICAgICAhaW1wb3J0YW50OwoJd2lkdGg6IDdweCAgICAgICAhaW1wb3J0YW50OwoJaGVpZ2h0OiAxMDAlICAgICAhaW1wb3J0YW50OwoJY3Vyc29yOiBlLXJlc2l6ZTsKCX0KCQouZmMtZXZlbnQtaG9yaSAudWktcmVzaXphYmxlLXcgewoJdG9wOiAwICAgICAgICAgICAhaW1wb3J0YW50OwoJbGVmdDogLTNweCAgICAgICAhaW1wb3J0YW50OwoJd2lkdGg6IDdweCAgICAgICAhaW1wb3J0YW50OwoJaGVpZ2h0OiAxMDAlICAgICAhaW1wb3J0YW50OwoJY3Vyc29yOiB3LXJlc2l6ZTsKCX0KCQouZmMtZXZlbnQtaG9yaSAudWktcmVzaXphYmxlLWhhbmRsZSB7CglfcGFkZGluZy1ib3R0b206IDE0cHg7IC8qIElFNiBoYWQgMCBoZWlnaHQgKi8KCX0KCQoJCgkKLyogUmV1c2FibGUgU2VwYXJhdGUtYm9yZGVyIFRhYmxlCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgp0YWJsZS5mYy1ib3JkZXItc2VwYXJhdGUgewoJYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsKCX0KCQouZmMtYm9yZGVyLXNlcGFyYXRlIHRoLAouZmMtYm9yZGVyLXNlcGFyYXRlIHRkIHsKCWJvcmRlci13aWR0aDogMXB4IDAgMCAxcHg7Cgl9CgkKLmZjLWJvcmRlci1zZXBhcmF0ZSB0aC5mYy1sYXN0LAouZmMtYm9yZGVyLXNlcGFyYXRlIHRkLmZjLWxhc3QgewoJYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7Cgl9CgkKLmZjLWJvcmRlci1zZXBhcmF0ZSB0ci5mYy1sYXN0IHRoLAouZmMtYm9yZGVyLXNlcGFyYXRlIHRyLmZjLWxhc3QgdGQgewoJYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OwoJfQoJCi5mYy1ib3JkZXItc2VwYXJhdGUgdGJvZHkgdHIuZmMtZmlyc3QgdGQsCi5mYy1ib3JkZXItc2VwYXJhdGUgdGJvZHkgdHIuZmMtZmlyc3QgdGggewoJYm9yZGVyLXRvcC13aWR0aDogMDsKCX0KCQoJCgovKiBNb250aCBWaWV3LCBCYXNpYyBXZWVrIFZpZXcsIEJhc2ljIERheSBWaWV3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgouZmMtZ3JpZCB0aCB7Cgl0ZXh0LWFsaWduOiBjZW50ZXI7Cgl9CgouZmMgLmZjLXdlZWstbnVtYmVyIHsKCXdpZHRoOiAyMnB4OwoJdGV4dC1hbGlnbjogY2VudGVyOwoJfQoKLmZjIC5mYy13ZWVrLW51bWJlciBkaXYgewoJcGFkZGluZzogMCAycHg7Cgl9CgkKLmZjLWdyaWQgLmZjLWRheS1udW1iZXIgewoJZmxvYXQ6IHJpZ2h0OwoJcGFkZGluZzogMCAycHg7Cgl9CgkKLmZjLWdyaWQgLmZjLW90aGVyLW1vbnRoIC5mYy1kYXktbnVtYmVyIHsKCW9wYWNpdHk6IDAuMzsKCWZpbHRlcjogYWxwaGEob3BhY2l0eT0zMCk7IC8qIGZvciBJRSAqLwoJLyogb3BhY2l0eSB3aXRoIHNtYWxsIGZvbnQgY2FuIHNvbWV0aW1lcyBsb29rIHRvbyBmYWRlZAoJICAgbWlnaHQgd2FudCB0byBzZXQgdGhlICdjb2xvcicgcHJvcGVydHkgaW5zdGVhZAoJICAgbWFraW5nIGRheS1udW1iZXJzIGJvbGQgYWxzbyBmaXhlcyB0aGUgcHJvYmxlbSAqLwoJfQoJCi5mYy1ncmlkIC5mYy1kYXktY29udGVudCB7CgljbGVhcjogYm90aDsKCXBhZGRpbmc6IDJweCAycHggMXB4OyAvKiBkaXN0YW5jZSBiZXR3ZWVuIGV2ZW50cyBhbmQgZGF5IGVkZ2VzICovCgl9CgkKLyogZXZlbnQgc3R5bGVzICovCgkKLmZjLWdyaWQgLmZjLWV2ZW50LXRpbWUgewoJZm9udC13ZWlnaHQ6IGJvbGQ7Cgl9CgkKLyogcmlnaHQtdG8tbGVmdCAqLwoJCi5mYy1ydGwgLmZjLWdyaWQgLmZjLWRheS1udW1iZXIgewoJZmxvYXQ6IGxlZnQ7Cgl9CgkKLmZjLXJ0bCAuZmMtZ3JpZCAuZmMtZXZlbnQtdGltZSB7CglmbG9hdDogcmlnaHQ7Cgl9CgkKCQoKLyogQWdlbmRhIFdlZWsgVmlldywgQWdlbmRhIERheSBWaWV3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgouZmMtYWdlbmRhIHRhYmxlIHsKCWJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7Cgl9CgkKLmZjLWFnZW5kYS1kYXlzIHRoIHsKCXRleHQtYWxpZ246IGNlbnRlcjsKCX0KCQouZmMtYWdlbmRhIC5mYy1hZ2VuZGEtYXhpcyB7Cgl3aWR0aDogNTBweDsKCXBhZGRpbmc6IDAgNHB4OwoJdmVydGljYWwtYWxpZ246IG1pZGRsZTsKCXRleHQtYWxpZ246IHJpZ2h0OwoJd2hpdGUtc3BhY2U6IG5vd3JhcDsKCWZvbnQtd2VpZ2h0OiBub3JtYWw7Cgl9CgouZmMtYWdlbmRhIC5mYy13ZWVrLW51bWJlciB7Cglmb250LXdlaWdodDogYm9sZDsKCX0KCQouZmMtYWdlbmRhIC5mYy1kYXktY29udGVudCB7CglwYWRkaW5nOiAycHggMnB4IDFweDsKCX0KCQovKiBtYWtlIGF4aXMgYm9yZGVyIHRha2UgcHJlY2VkZW5jZSAqLwoJCi5mYy1hZ2VuZGEtZGF5cyAuZmMtYWdlbmRhLWF4aXMgewoJYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7Cgl9CgkKLmZjLWFnZW5kYS1kYXlzIC5mYy1jb2wwIHsKCWJvcmRlci1sZWZ0LXdpZHRoOiAwOwoJfQoJCi8qIGFsbC1kYXkgYXJlYSAqLwoJCi5mYy1hZ2VuZGEtYWxsZGF5IHRoIHsKCWJvcmRlci13aWR0aDogMCAxcHg7Cgl9CgkKLmZjLWFnZW5kYS1hbGxkYXkgLmZjLWRheS1jb250ZW50IHsKCW1pbi1oZWlnaHQ6IDM0cHg7IC8qIFRPRE86IGRvZXNudCB3b3JrIHdlbGwgaW4gcXVpcmtzbW9kZSAqLwoJX2hlaWdodDogMzRweDsKCX0KCQovKiBkaXZpZGVyIChiZXR3ZWVuIGFsbC1kYXkgYW5kIHNsb3RzKSAqLwoJCi5mYy1hZ2VuZGEtZGl2aWRlci1pbm5lciB7CgloZWlnaHQ6IDJweDsKCW92ZXJmbG93OiBoaWRkZW47Cgl9CgkKLmZjLXdpZGdldC1oZWFkZXIgLmZjLWFnZW5kYS1kaXZpZGVyLWlubmVyIHsKCWJhY2tncm91bmQ6ICNlZWU7Cgl9CgkKLyogc2xvdCByb3dzICovCgkKLmZjLWFnZW5kYS1zbG90cyB0aCB7Cglib3JkZXItd2lkdGg6IDFweCAxcHggMDsKCX0KCQouZmMtYWdlbmRhLXNsb3RzIHRkIHsKCWJvcmRlci13aWR0aDogMXB4IDAgMDsKCWJhY2tncm91bmQ6IG5vbmU7Cgl9CgkKLmZjLWFnZW5kYS1zbG90cyB0ZCBkaXYgewoJaGVpZ2h0OiAyMHB4OwoJfQoJCi5mYy1hZ2VuZGEtc2xvdHMgdHIuZmMtc2xvdDAgdGgsCi5mYy1hZ2VuZGEtc2xvdHMgdHIuZmMtc2xvdDAgdGQgewoJYm9yZGVyLXRvcC13aWR0aDogMDsKCX0KCi5mYy1hZ2VuZGEtc2xvdHMgdHIuZmMtbWlub3IgdGgsCi5mYy1hZ2VuZGEtc2xvdHMgdHIuZmMtbWlub3IgdGQgewoJYm9yZGVyLXRvcC1zdHlsZTogZG90dGVkOwoJfQoJCi5mYy1hZ2VuZGEtc2xvdHMgdHIuZmMtbWlub3IgdGgudWktd2lkZ2V0LWhlYWRlciB7CgkqYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7IC8qIGRvZXNuJ3Qgd29yayB3aXRoIGJhY2tncm91bmQgaW4gSUU2LzcgKi8KCX0KCQoKCi8qIFZlcnRpY2FsIEV2ZW50cwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLmZjLWV2ZW50LXZlcnQgewoJYm9yZGVyLXdpZHRoOiAwIDFweDsKCX0KCi5mYy1ldmVudC12ZXJ0LmZjLWV2ZW50LXN0YXJ0IHsKCWJvcmRlci10b3Atd2lkdGg6IDFweDsKCWJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDsKCWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7Cgl9CgouZmMtZXZlbnQtdmVydC5mYy1ldmVudC1lbmQgewoJYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OwoJYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4OwoJYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDsKCX0KCQouZmMtZXZlbnQtdmVydCAuZmMtZXZlbnQtdGltZSB7Cgl3aGl0ZS1zcGFjZTogbm93cmFwOwoJZm9udC1zaXplOiAxMHB4OwoJfQoKLmZjLWV2ZW50LXZlcnQgLmZjLWV2ZW50LWlubmVyIHsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKCXotaW5kZXg6IDI7Cgl9CgkKLmZjLWV2ZW50LXZlcnQgLmZjLWV2ZW50LWJnIHsgLyogbWFrZXMgdGhlIGV2ZW50IGxpZ2h0ZXIgdy8gYSBzZW1pLXRyYW5zcGFyZW50IG92ZXJsYXkgICovCglwb3NpdGlvbjogYWJzb2x1dGU7Cgl6LWluZGV4OiAxOwoJdG9wOiAwOwoJbGVmdDogMDsKCXdpZHRoOiAxMDAlOwoJaGVpZ2h0OiAxMDAlOwoJYmFja2dyb3VuZDogI2ZmZjsKCW9wYWNpdHk6IC4yNTsKCWZpbHRlcjogYWxwaGEob3BhY2l0eT0yNSk7Cgl9CgkKLmZjIC51aS1kcmFnZ2FibGUtZHJhZ2dpbmcgLmZjLWV2ZW50LWJnLCAvKiBUT0RPOiBzb21ldGhpbmcgbmljZXIgbGlrZSAuZmMtb3BhY2l0eSAqLwouZmMtc2VsZWN0LWhlbHBlciAuZmMtZXZlbnQtYmcgewoJZGlzcGxheTogbm9uZVw5OyAvKiBmb3IgSUU2LzcvOC4gbmVzdGVkIG9wYWNpdHkgZmlsdGVycyB3aGlsZSBkcmFnZ2luZyBkb24ndCB3b3JrICovCgl9CgkKLyogcmVzaXphYmxlICovCgkKLmZjLWV2ZW50LXZlcnQgLnVpLXJlc2l6YWJsZS1zIHsKCWJvdHRvbTogMCAgICAgICAgIWltcG9ydGFudDsgLyogaW1wb3J0YW50cyBvdmVycmlkZSBwcmUganF1ZXJ5IHVpIDEuNyBzdHlsZXMgKi8KCXdpZHRoOiAxMDAlICAgICAgIWltcG9ydGFudDsKCWhlaWdodDogOHB4ICAgICAgIWltcG9ydGFudDsKCW92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDsKCWxpbmUtaGVpZ2h0OiA4cHggIWltcG9ydGFudDsKCWZvbnQtc2l6ZTogMTFweCAgIWltcG9ydGFudDsKCWZvbnQtZmFtaWx5OiBtb25vc3BhY2U7Cgl0ZXh0LWFsaWduOiBjZW50ZXI7CgljdXJzb3I6IHMtcmVzaXplOwoJfQoJCi5mYy1hZ2VuZGEgLnVpLXJlc2l6YWJsZS1yZXNpemluZyB7IC8qIFRPRE86IGJldHRlciBzZWxlY3RvciAqLwoJX292ZXJmbG93OiBoaWRkZW47Cgl9CgkKCQo=]]></data>
	</file>
	<file>
	  <filename>/lib/fullcalendar/fullcalendar.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohCiAqIEZ1bGxDYWxlbmRhciB2MS42LjQKICogRG9jcyAmIExpY2Vuc2U6IGh0dHA6Ly9hcnNoYXcuY29tL2Z1bGxjYWxlbmRhci8KICogKGMpIDIwMTMgQWRhbSBTaGF3CiAqLwoKLyoKICogVXNlIGZ1bGxjYWxlbmRhci5jc3MgZm9yIGJhc2ljIHN0eWxpbmcuCiAqIEZvciBldmVudCBkcmFnICYgZHJvcCwgcmVxdWlyZXMgalF1ZXJ5IFVJIGRyYWdnYWJsZS4KICogRm9yIGV2ZW50IHJlc2l6aW5nLCByZXF1aXJlcyBqUXVlcnkgVUkgcmVzaXphYmxlLgogKi8KCihmdW5jdGlvbigkLCB1bmRlZmluZWQpIHsKCgo7OwoKdmFyIGRlZmF1bHRzID0gewoKCS8vIGRpc3BsYXkKCWRlZmF1bHRWaWV3OiAnbW9udGgnLAoJYXNwZWN0UmF0aW86IDEuMzUsCgloZWFkZXI6IHsKCQlsZWZ0OiAndGl0bGUnLAoJCWNlbnRlcjogJycsCgkJcmlnaHQ6ICd0b2RheSBwcmV2LG5leHQnCgl9LAoJd2Vla2VuZHM6IHRydWUsCgl3ZWVrTnVtYmVyczogZmFsc2UsCgl3ZWVrTnVtYmVyQ2FsY3VsYXRpb246ICdpc28nLAoJd2Vla051bWJlclRpdGxlOiAnVycsCgoJLy8gZWRpdGluZwoJLy9lZGl0YWJsZTogZmFsc2UsCgkvL2Rpc2FibGVEcmFnZ2luZzogZmFsc2UsCgkvL2Rpc2FibGVSZXNpemluZzogZmFsc2UsCgoJYWxsRGF5RGVmYXVsdDogdHJ1ZSwKCWlnbm9yZVRpbWV6b25lOiB0cnVlLAoKCS8vIGV2ZW50IGFqYXgKCWxhenlGZXRjaGluZzogdHJ1ZSwKCXN0YXJ0UGFyYW06ICdzdGFydCcsCgllbmRQYXJhbTogJ2VuZCcsCgoJLy8gdGltZSBmb3JtYXRzCgl0aXRsZUZvcm1hdDogewoJCW1vbnRoOiAnTU1NTSB5eXl5JywKCQl3ZWVrOiAiTU1NIGRbIHl5eXldeyAnJiM4MjEyOydbIE1NTV0gZCB5eXl5fSIsCgkJZGF5OiAnZGRkZCwgTU1NIGQsIHl5eXknCgl9LAoJY29sdW1uRm9ybWF0OiB7CgkJbW9udGg6ICdkZGQnLAoJCXdlZWs6ICdkZGQgTS9kJywKCQlkYXk6ICdkZGRkIE0vZCcKCX0sCgl0aW1lRm9ybWF0OiB7IC8vIGZvciBldmVudCBlbGVtZW50cwoJCScnOiAnaCg6bW0pdCcgLy8gZGVmYXVsdAoJfSwKCgkvLyBsb2NhbGUKCWlzUlRMOiBmYWxzZSwKCWZpcnN0RGF5OiAwLAoJbW9udGhOYW1lczogWydKYW51YXJ5JywnRmVicnVhcnknLCdNYXJjaCcsJ0FwcmlsJywnTWF5JywnSnVuZScsJ0p1bHknLCdBdWd1c3QnLCdTZXB0ZW1iZXInLCdPY3RvYmVyJywnTm92ZW1iZXInLCdEZWNlbWJlciddLAoJbW9udGhOYW1lc1Nob3J0OiBbJ0phbicsJ0ZlYicsJ01hcicsJ0FwcicsJ01heScsJ0p1bicsJ0p1bCcsJ0F1ZycsJ1NlcCcsJ09jdCcsJ05vdicsJ0RlYyddLAoJZGF5TmFtZXM6IFsnU3VuZGF5JywnTW9uZGF5JywnVHVlc2RheScsJ1dlZG5lc2RheScsJ1RodXJzZGF5JywnRnJpZGF5JywnU2F0dXJkYXknXSwKCWRheU5hbWVzU2hvcnQ6IFsnU3VuJywnTW9uJywnVHVlJywnV2VkJywnVGh1JywnRnJpJywnU2F0J10sCglidXR0b25UZXh0OiB7CgkJcHJldjogIjxzcGFuIGNsYXNzPSdmYy10ZXh0LWFycm93Jz4mbHNhcXVvOzwvc3Bhbj4iLAoJCW5leHQ6ICI8c3BhbiBjbGFzcz0nZmMtdGV4dC1hcnJvdyc+JnJzYXF1bzs8L3NwYW4+IiwKCQlwcmV2WWVhcjogIjxzcGFuIGNsYXNzPSdmYy10ZXh0LWFycm93Jz4mbGFxdW87PC9zcGFuPiIsCgkJbmV4dFllYXI6ICI8c3BhbiBjbGFzcz0nZmMtdGV4dC1hcnJvdyc+JnJhcXVvOzwvc3Bhbj4iLAoJCXRvZGF5OiAndG9kYXknLAoJCW1vbnRoOiAnbW9udGgnLAoJCXdlZWs6ICd3ZWVrJywKCQlkYXk6ICdkYXknCgl9LAoKCS8vIGpxdWVyeS11aSB0aGVtaW5nCgl0aGVtZTogZmFsc2UsCglidXR0b25JY29uczogewoJCXByZXY6ICdjaXJjbGUtdHJpYW5nbGUtdycsCgkJbmV4dDogJ2NpcmNsZS10cmlhbmdsZS1lJwoJfSwKCgkvL3NlbGVjdGFibGU6IGZhbHNlLAoJdW5zZWxlY3RBdXRvOiB0cnVlLAoKCWRyb3BBY2NlcHQ6ICcqJywKCgloYW5kbGVXaW5kb3dSZXNpemU6IHRydWUKCn07CgovLyByaWdodC10by1sZWZ0IGRlZmF1bHRzCnZhciBydGxEZWZhdWx0cyA9IHsKCWhlYWRlcjogewoJCWxlZnQ6ICduZXh0LHByZXYgdG9kYXknLAoJCWNlbnRlcjogJycsCgkJcmlnaHQ6ICd0aXRsZScKCX0sCglidXR0b25UZXh0OiB7CgkJcHJldjogIjxzcGFuIGNsYXNzPSdmYy10ZXh0LWFycm93Jz4mcnNhcXVvOzwvc3Bhbj4iLAoJCW5leHQ6ICI8c3BhbiBjbGFzcz0nZmMtdGV4dC1hcnJvdyc+JmxzYXF1bzs8L3NwYW4+IiwKCQlwcmV2WWVhcjogIjxzcGFuIGNsYXNzPSdmYy10ZXh0LWFycm93Jz4mcmFxdW87PC9zcGFuPiIsCgkJbmV4dFllYXI6ICI8c3BhbiBjbGFzcz0nZmMtdGV4dC1hcnJvdyc+JmxhcXVvOzwvc3Bhbj4iCgl9LAoJYnV0dG9uSWNvbnM6IHsKCQlwcmV2OiAnY2lyY2xlLXRyaWFuZ2xlLWUnLAoJCW5leHQ6ICdjaXJjbGUtdHJpYW5nbGUtdycKCX0KfTsKCgoKOzsKCnZhciBmYyA9ICQuZnVsbENhbGVuZGFyID0geyB2ZXJzaW9uOiAiMS42LjQiIH07CnZhciBmY1ZpZXdzID0gZmMudmlld3MgPSB7fTsKCgokLmZuLmZ1bGxDYWxlbmRhciA9IGZ1bmN0aW9uKG9wdGlvbnMpIHsKCgoJLy8gbWV0aG9kIGNhbGxpbmcKCWlmICh0eXBlb2Ygb3B0aW9ucyA9PSAnc3RyaW5nJykgewoJCXZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTsKCQl2YXIgcmVzOwoJCXRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJdmFyIGNhbGVuZGFyID0gJC5kYXRhKHRoaXMsICdmdWxsQ2FsZW5kYXInKTsKCQkJaWYgKGNhbGVuZGFyICYmICQuaXNGdW5jdGlvbihjYWxlbmRhcltvcHRpb25zXSkpIHsKCQkJCXZhciByID0gY2FsZW5kYXJbb3B0aW9uc10uYXBwbHkoY2FsZW5kYXIsIGFyZ3MpOwoJCQkJaWYgKHJlcyA9PT0gdW5kZWZpbmVkKSB7CgkJCQkJcmVzID0gcjsKCQkJCX0KCQkJCWlmIChvcHRpb25zID09ICdkZXN0cm95JykgewoJCQkJCSQucmVtb3ZlRGF0YSh0aGlzLCAnZnVsbENhbGVuZGFyJyk7CgkJCQl9CgkJCX0KCQl9KTsKCQlpZiAocmVzICE9PSB1bmRlZmluZWQpIHsKCQkJcmV0dXJuIHJlczsKCQl9CgkJcmV0dXJuIHRoaXM7Cgl9CgoJb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CgoJLy8gd291bGQgbGlrZSB0byBoYXZlIHRoaXMgbG9naWMgaW4gRXZlbnRNYW5hZ2VyLCBidXQgbmVlZHMgdG8gaGFwcGVuIGJlZm9yZSBvcHRpb25zIGFyZSByZWN1cnNpdmVseSBleHRlbmRlZAoJdmFyIGV2ZW50U291cmNlcyA9IG9wdGlvbnMuZXZlbnRTb3VyY2VzIHx8IFtdOwoJZGVsZXRlIG9wdGlvbnMuZXZlbnRTb3VyY2VzOwoJaWYgKG9wdGlvbnMuZXZlbnRzKSB7CgkJZXZlbnRTb3VyY2VzLnB1c2gob3B0aW9ucy5ldmVudHMpOwoJCWRlbGV0ZSBvcHRpb25zLmV2ZW50czsKCX0KCgoJb3B0aW9ucyA9ICQuZXh0ZW5kKHRydWUsIHt9LAoJCWRlZmF1bHRzLAoJCShvcHRpb25zLmlzUlRMIHx8IG9wdGlvbnMuaXNSVEw9PT11bmRlZmluZWQgJiYgZGVmYXVsdHMuaXNSVEwpID8gcnRsRGVmYXVsdHMgOiB7fSwKCQlvcHRpb25zCgkpOwoKCgl0aGlzLmVhY2goZnVuY3Rpb24oaSwgX2VsZW1lbnQpIHsKCQl2YXIgZWxlbWVudCA9ICQoX2VsZW1lbnQpOwoJCXZhciBjYWxlbmRhciA9IG5ldyBDYWxlbmRhcihlbGVtZW50LCBvcHRpb25zLCBldmVudFNvdXJjZXMpOwoJCWVsZW1lbnQuZGF0YSgnZnVsbENhbGVuZGFyJywgY2FsZW5kYXIpOyAvLyBUT0RPOiBsb29rIGludG8gbWVtb3J5IGxlYWsgaW1wbGljYXRpb25zCgkJY2FsZW5kYXIucmVuZGVyKCk7Cgl9KTsKCgoJcmV0dXJuIHRoaXM7Cgp9OwoKCi8vIGZ1bmN0aW9uIGZvciBhZGRpbmcvb3ZlcnJpZGluZyBkZWZhdWx0cwpmdW5jdGlvbiBzZXREZWZhdWx0cyhkKSB7CgkkLmV4dGVuZCh0cnVlLCBkZWZhdWx0cywgZCk7Cn0KCgoKOzsKCgpmdW5jdGlvbiBDYWxlbmRhcihlbGVtZW50LCBvcHRpb25zLCBldmVudFNvdXJjZXMpIHsKCXZhciB0ID0gdGhpczsKCgoJLy8gZXhwb3J0cwoJdC5vcHRpb25zID0gb3B0aW9uczsKCXQucmVuZGVyID0gcmVuZGVyOwoJdC5kZXN0cm95ID0gZGVzdHJveTsKCXQucmVmZXRjaEV2ZW50cyA9IHJlZmV0Y2hFdmVudHM7Cgl0LnJlcG9ydEV2ZW50cyA9IHJlcG9ydEV2ZW50czsKCXQucmVwb3J0RXZlbnRDaGFuZ2UgPSByZXBvcnRFdmVudENoYW5nZTsKCXQucmVyZW5kZXJFdmVudHMgPSByZXJlbmRlckV2ZW50czsKCXQuY2hhbmdlVmlldyA9IGNoYW5nZVZpZXc7Cgl0LnNlbGVjdCA9IHNlbGVjdDsKCXQudW5zZWxlY3QgPSB1bnNlbGVjdDsKCXQucHJldiA9IHByZXY7Cgl0Lm5leHQgPSBuZXh0OwoJdC5wcmV2WWVhciA9IHByZXZZZWFyOwoJdC5uZXh0WWVhciA9IG5leHRZZWFyOwoJdC50b2RheSA9IHRvZGF5OwoJdC5nb3RvRGF0ZSA9IGdvdG9EYXRlOwoJdC5pbmNyZW1lbnREYXRlID0gaW5jcmVtZW50RGF0ZTsKCXQuZm9ybWF0RGF0ZSA9IGZ1bmN0aW9uKGZvcm1hdCwgZGF0ZSkgeyByZXR1cm4gZm9ybWF0RGF0ZShmb3JtYXQsIGRhdGUsIG9wdGlvbnMpIH07Cgl0LmZvcm1hdERhdGVzID0gZnVuY3Rpb24oZm9ybWF0LCBkYXRlMSwgZGF0ZTIpIHsgcmV0dXJuIGZvcm1hdERhdGVzKGZvcm1hdCwgZGF0ZTEsIGRhdGUyLCBvcHRpb25zKSB9OwoJdC5nZXREYXRlID0gZ2V0RGF0ZTsKCXQuZ2V0VmlldyA9IGdldFZpZXc7Cgl0Lm9wdGlvbiA9IG9wdGlvbjsKCXQudHJpZ2dlciA9IHRyaWdnZXI7CgoKCS8vIGltcG9ydHMKCUV2ZW50TWFuYWdlci5jYWxsKHQsIG9wdGlvbnMsIGV2ZW50U291cmNlcyk7Cgl2YXIgaXNGZXRjaE5lZWRlZCA9IHQuaXNGZXRjaE5lZWRlZDsKCXZhciBmZXRjaEV2ZW50cyA9IHQuZmV0Y2hFdmVudHM7CgoKCS8vIGxvY2FscwoJdmFyIF9lbGVtZW50ID0gZWxlbWVudFswXTsKCXZhciBoZWFkZXI7Cgl2YXIgaGVhZGVyRWxlbWVudDsKCXZhciBjb250ZW50OwoJdmFyIHRtOyAvLyBmb3IgbWFraW5nIHRoZW1lIGNsYXNzZXMKCXZhciBjdXJyZW50VmlldzsKCXZhciBlbGVtZW50T3V0ZXJXaWR0aDsKCXZhciBzdWdnZXN0ZWRWaWV3SGVpZ2h0OwoJdmFyIHJlc2l6ZVVJRCA9IDA7Cgl2YXIgaWdub3JlV2luZG93UmVzaXplID0gMDsKCXZhciBkYXRlID0gbmV3IERhdGUoKTsKCXZhciBldmVudHMgPSBbXTsKCXZhciBfZHJhZ0VsZW1lbnQ7CgoKCgkvKiBNYWluIFJlbmRlcmluZwoJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKCglzZXRZTUQoZGF0ZSwgb3B0aW9ucy55ZWFyLCBvcHRpb25zLm1vbnRoLCBvcHRpb25zLmRhdGUpOwoKCglmdW5jdGlvbiByZW5kZXIoaW5jKSB7CgkJaWYgKCFjb250ZW50KSB7CgkJCWluaXRpYWxSZW5kZXIoKTsKCQl9CgkJZWxzZSBpZiAoZWxlbWVudFZpc2libGUoKSkgewoJCQkvLyBtYWlubHkgZm9yIHRoZSBwdWJsaWMgQVBJCgkJCWNhbGNTaXplKCk7CgkJCV9yZW5kZXJWaWV3KGluYyk7CgkJfQoJfQoKCglmdW5jdGlvbiBpbml0aWFsUmVuZGVyKCkgewoJCXRtID0gb3B0aW9ucy50aGVtZSA/ICd1aScgOiAnZmMnOwoJCWVsZW1lbnQuYWRkQ2xhc3MoJ2ZjJyk7CgkJaWYgKG9wdGlvbnMuaXNSVEwpIHsKCQkJZWxlbWVudC5hZGRDbGFzcygnZmMtcnRsJyk7CgkJfQoJCWVsc2UgewoJCQllbGVtZW50LmFkZENsYXNzKCdmYy1sdHInKTsKCQl9CgkJaWYgKG9wdGlvbnMudGhlbWUpIHsKCQkJZWxlbWVudC5hZGRDbGFzcygndWktd2lkZ2V0Jyk7CgkJfQoKCQljb250ZW50ID0gJCgiPGRpdiBjbGFzcz0nZmMtY29udGVudCcgc3R5bGU9J3Bvc2l0aW9uOnJlbGF0aXZlJy8+IikKCQkJLnByZXBlbmRUbyhlbGVtZW50KTsKCgkJaGVhZGVyID0gbmV3IEhlYWRlcih0LCBvcHRpb25zKTsKCQloZWFkZXJFbGVtZW50ID0gaGVhZGVyLnJlbmRlcigpOwoJCWlmIChoZWFkZXJFbGVtZW50KSB7CgkJCWVsZW1lbnQucHJlcGVuZChoZWFkZXJFbGVtZW50KTsKCQl9CgoJCWNoYW5nZVZpZXcob3B0aW9ucy5kZWZhdWx0Vmlldyk7CgoJCWlmIChvcHRpb25zLmhhbmRsZVdpbmRvd1Jlc2l6ZSkgewoJCQkkKHdpbmRvdykucmVzaXplKHdpbmRvd1Jlc2l6ZSk7CgkJfQoKCQkvLyBuZWVkZWQgZm9yIElFIGluIGEgMHgwIGlmcmFtZSwgYi9jIHdoZW4gaXQgaXMgcmVzaXplZCwgbmV2ZXIgdHJpZ2dlcnMgYSB3aW5kb3dSZXNpemUKCQlpZiAoIWJvZHlWaXNpYmxlKCkpIHsKCQkJbGF0ZVJlbmRlcigpOwoJCX0KCX0KCgoJLy8gY2FsbGVkIHdoZW4gd2Uga25vdyB0aGUgY2FsZW5kYXIgY291bGRuJ3QgYmUgcmVuZGVyZWQgd2hlbiBpdCB3YXMgaW5pdGlhbGl6ZWQsCgkvLyBidXQgd2UgdGhpbmsgaXQncyByZWFkeSBub3cKCWZ1bmN0aW9uIGxhdGVSZW5kZXIoKSB7CgkJc2V0VGltZW91dChmdW5jdGlvbigpIHsgLy8gSUU3IG5lZWRzIHRoaXMgc28gZGltZW5zaW9ucyBhcmUgY2FsY3VsYXRlZCBjb3JyZWN0bHkKCQkJaWYgKCFjdXJyZW50Vmlldy5zdGFydCAmJiBib2R5VmlzaWJsZSgpKSB7IC8vICFjdXJyZW50Vmlldy5zdGFydCBtYWtlcyBzdXJlIHRoaXMgbmV2ZXIgaGFwcGVucyBtb3JlIHRoYW4gb25jZQoJCQkJcmVuZGVyVmlldygpOwoJCQl9CgkJfSwwKTsKCX0KCgoJZnVuY3Rpb24gZGVzdHJveSgpIHsKCgkJaWYgKGN1cnJlbnRWaWV3KSB7CgkJCXRyaWdnZXIoJ3ZpZXdEZXN0cm95JywgY3VycmVudFZpZXcsIGN1cnJlbnRWaWV3LCBjdXJyZW50Vmlldy5lbGVtZW50KTsKCQkJY3VycmVudFZpZXcudHJpZ2dlckV2ZW50RGVzdHJveSgpOwoJCX0KCgkJJCh3aW5kb3cpLnVuYmluZCgncmVzaXplJywgd2luZG93UmVzaXplKTsKCgkJaGVhZGVyLmRlc3Ryb3koKTsKCQljb250ZW50LnJlbW92ZSgpOwoJCWVsZW1lbnQucmVtb3ZlQ2xhc3MoJ2ZjIGZjLXJ0bCB1aS13aWRnZXQnKTsKCX0KCgoJZnVuY3Rpb24gZWxlbWVudFZpc2libGUoKSB7CgkJcmV0dXJuIGVsZW1lbnQuaXMoJzp2aXNpYmxlJyk7Cgl9CgoKCWZ1bmN0aW9uIGJvZHlWaXNpYmxlKCkgewoJCXJldHVybiAkKCdib2R5JykuaXMoJzp2aXNpYmxlJyk7Cgl9CgoKCgkvKiBWaWV3IFJlbmRlcmluZwoJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKCglmdW5jdGlvbiBjaGFuZ2VWaWV3KG5ld1ZpZXdOYW1lKSB7CgkJaWYgKCFjdXJyZW50VmlldyB8fCBuZXdWaWV3TmFtZSAhPSBjdXJyZW50Vmlldy5uYW1lKSB7CgkJCV9jaGFuZ2VWaWV3KG5ld1ZpZXdOYW1lKTsKCQl9Cgl9CgoKCWZ1bmN0aW9uIF9jaGFuZ2VWaWV3KG5ld1ZpZXdOYW1lKSB7CgkJaWdub3JlV2luZG93UmVzaXplKys7CgoJCWlmIChjdXJyZW50VmlldykgewoJCQl0cmlnZ2VyKCd2aWV3RGVzdHJveScsIGN1cnJlbnRWaWV3LCBjdXJyZW50VmlldywgY3VycmVudFZpZXcuZWxlbWVudCk7CgkJCXVuc2VsZWN0KCk7CgkJCWN1cnJlbnRWaWV3LnRyaWdnZXJFdmVudERlc3Ryb3koKTsgLy8gdHJpZ2dlciAnZXZlbnREZXN0cm95JyBmb3IgZWFjaCBldmVudAoJCQlmcmVlemVDb250ZW50SGVpZ2h0KCk7CgkJCWN1cnJlbnRWaWV3LmVsZW1lbnQucmVtb3ZlKCk7CgkJCWhlYWRlci5kZWFjdGl2YXRlQnV0dG9uKGN1cnJlbnRWaWV3Lm5hbWUpOwoJCX0KCgkJaGVhZGVyLmFjdGl2YXRlQnV0dG9uKG5ld1ZpZXdOYW1lKTsKCgkJY3VycmVudFZpZXcgPSBuZXcgZmNWaWV3c1tuZXdWaWV3TmFtZV0oCgkJCSQoIjxkaXYgY2xhc3M9J2ZjLXZpZXcgZmMtdmlldy0iICsgbmV3Vmlld05hbWUgKyAiJyBzdHlsZT0ncG9zaXRpb246cmVsYXRpdmUnLz4iKQoJCQkJLmFwcGVuZFRvKGNvbnRlbnQpLAoJCQl0IC8vIHRoZSBjYWxlbmRhciBvYmplY3QKCQkpOwoKCQlyZW5kZXJWaWV3KCk7CgkJdW5mcmVlemVDb250ZW50SGVpZ2h0KCk7CgoJCWlnbm9yZVdpbmRvd1Jlc2l6ZS0tOwoJfQoKCglmdW5jdGlvbiByZW5kZXJWaWV3KGluYykgewoJCWlmICgKCQkJIWN1cnJlbnRWaWV3LnN0YXJ0IHx8IC8vIG5ldmVyIHJlbmRlcmVkIGJlZm9yZQoJCQlpbmMgfHwgZGF0ZSA8IGN1cnJlbnRWaWV3LnN0YXJ0IHx8IGRhdGUgPj0gY3VycmVudFZpZXcuZW5kIC8vIG9yIG5ldyBkYXRlIHJhbmdlCgkJKSB7CgkJCWlmIChlbGVtZW50VmlzaWJsZSgpKSB7CgkJCQlfcmVuZGVyVmlldyhpbmMpOwoJCQl9CgkJfQoJfQoKCglmdW5jdGlvbiBfcmVuZGVyVmlldyhpbmMpIHsgLy8gYXNzdW1lcyBlbGVtZW50VmlzaWJsZQoJCWlnbm9yZVdpbmRvd1Jlc2l6ZSsrOwoKCQlpZiAoY3VycmVudFZpZXcuc3RhcnQpIHsgLy8gYWxyZWFkeSBiZWVuIHJlbmRlcmVkPwoJCQl0cmlnZ2VyKCd2aWV3RGVzdHJveScsIGN1cnJlbnRWaWV3LCBjdXJyZW50VmlldywgY3VycmVudFZpZXcuZWxlbWVudCk7CgkJCXVuc2VsZWN0KCk7CgkJCWNsZWFyRXZlbnRzKCk7CgkJfQoKCQlmcmVlemVDb250ZW50SGVpZ2h0KCk7CgkJY3VycmVudFZpZXcucmVuZGVyKGRhdGUsIGluYyB8fCAwKTsgLy8gdGhlIHZpZXcncyByZW5kZXIgbWV0aG9kIE9OTFkgcmVuZGVycyB0aGUgc2tlbGV0b24sIG5vdGhpbmcgZWxzZQoJCXNldFNpemUoKTsKCQl1bmZyZWV6ZUNvbnRlbnRIZWlnaHQoKTsKCQkoY3VycmVudFZpZXcuYWZ0ZXJSZW5kZXIgfHwgbm9vcCkoKTsKCgkJdXBkYXRlVGl0bGUoKTsKCQl1cGRhdGVUb2RheUJ1dHRvbigpOwoKCQl0cmlnZ2VyKCd2aWV3UmVuZGVyJywgY3VycmVudFZpZXcsIGN1cnJlbnRWaWV3LCBjdXJyZW50Vmlldy5lbGVtZW50KTsKCQljdXJyZW50Vmlldy50cmlnZ2VyKCd2aWV3RGlzcGxheScsIF9lbGVtZW50KTsgLy8gZGVwcmVjYXRlZAoKCQlpZ25vcmVXaW5kb3dSZXNpemUtLTsKCgkJZ2V0QW5kUmVuZGVyRXZlbnRzKCk7Cgl9CgoKCgkvKiBSZXNpemluZwoJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKCglmdW5jdGlvbiB1cGRhdGVTaXplKCkgewoJCWlmIChlbGVtZW50VmlzaWJsZSgpKSB7CgkJCXVuc2VsZWN0KCk7CgkJCWNsZWFyRXZlbnRzKCk7CgkJCWNhbGNTaXplKCk7CgkJCXNldFNpemUoKTsKCQkJcmVuZGVyRXZlbnRzKCk7CgkJfQoJfQoKCglmdW5jdGlvbiBjYWxjU2l6ZSgpIHsgLy8gYXNzdW1lcyBlbGVtZW50VmlzaWJsZQoJCWlmIChvcHRpb25zLmNvbnRlbnRIZWlnaHQpIHsKCQkJc3VnZ2VzdGVkVmlld0hlaWdodCA9IG9wdGlvbnMuY29udGVudEhlaWdodDsKCQl9CgkJZWxzZSBpZiAob3B0aW9ucy5oZWlnaHQpIHsKCQkJc3VnZ2VzdGVkVmlld0hlaWdodCA9IG9wdGlvbnMuaGVpZ2h0IC0gKGhlYWRlckVsZW1lbnQgPyBoZWFkZXJFbGVtZW50LmhlaWdodCgpIDogMCkgLSB2c2lkZXMoY29udGVudCk7CgkJfQoJCWVsc2UgewoJCQlzdWdnZXN0ZWRWaWV3SGVpZ2h0ID0gTWF0aC5yb3VuZChjb250ZW50LndpZHRoKCkgLyBNYXRoLm1heChvcHRpb25zLmFzcGVjdFJhdGlvLCAuNSkpOwoJCX0KCX0KCgoJZnVuY3Rpb24gc2V0U2l6ZSgpIHsgLy8gYXNzdW1lcyBlbGVtZW50VmlzaWJsZQoKCQlpZiAoc3VnZ2VzdGVkVmlld0hlaWdodCA9PT0gdW5kZWZpbmVkKSB7CgkJCWNhbGNTaXplKCk7IC8vIGZvciBmaXJzdCB0aW1lCgkJCQkvLyBOT1RFOiB3ZSBkb24ndCB3YW50IHRvIHJlY2FsY3VsYXRlIG9uIGV2ZXJ5IHJlbmRlclZpZXcgYmVjYXVzZQoJCQkJLy8gaXQgY291bGQgcmVzdWx0IGluIG9zY2lsbGF0aW5nIGhlaWdodHMgZHVlIHRvIHNjcm9sbGJhcnMuCgkJfQoKCQlpZ25vcmVXaW5kb3dSZXNpemUrKzsKCQljdXJyZW50Vmlldy5zZXRIZWlnaHQoc3VnZ2VzdGVkVmlld0hlaWdodCk7CgkJY3VycmVudFZpZXcuc2V0V2lkdGgoY29udGVudC53aWR0aCgpKTsKCQlpZ25vcmVXaW5kb3dSZXNpemUtLTsKCgkJZWxlbWVudE91dGVyV2lkdGggPSBlbGVtZW50Lm91dGVyV2lkdGgoKTsKCX0KCgoJZnVuY3Rpb24gd2luZG93UmVzaXplKCkgewoJCWlmICghaWdub3JlV2luZG93UmVzaXplKSB7CgkJCWlmIChjdXJyZW50Vmlldy5zdGFydCkgeyAvLyB2aWV3IGhhcyBhbHJlYWR5IGJlZW4gcmVuZGVyZWQKCQkJCXZhciB1aWQgPSArK3Jlc2l6ZVVJRDsKCQkJCXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IC8vIGFkZCBhIGRlbGF5CgkJCQkJaWYgKHVpZCA9PSByZXNpemVVSUQgJiYgIWlnbm9yZVdpbmRvd1Jlc2l6ZSAmJiBlbGVtZW50VmlzaWJsZSgpKSB7CgkJCQkJCWlmIChlbGVtZW50T3V0ZXJXaWR0aCAhPSAoZWxlbWVudE91dGVyV2lkdGggPSBlbGVtZW50Lm91dGVyV2lkdGgoKSkpIHsKCQkJCQkJCWlnbm9yZVdpbmRvd1Jlc2l6ZSsrOyAvLyBpbiBjYXNlIHRoZSB3aW5kb3dSZXNpemUgY2FsbGJhY2sgY2hhbmdlcyB0aGUgaGVpZ2h0CgkJCQkJCQl1cGRhdGVTaXplKCk7CgkJCQkJCQljdXJyZW50Vmlldy50cmlnZ2VyKCd3aW5kb3dSZXNpemUnLCBfZWxlbWVudCk7CgkJCQkJCQlpZ25vcmVXaW5kb3dSZXNpemUtLTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0sIDIwMCk7CgkJCX1lbHNlewoJCQkJLy8gY2FsZW5kYXIgbXVzdCBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQgaW4gYSAweDAgaWZyYW1lIHRoYXQgaGFzIGp1c3QgYmVlbiByZXNpemVkCgkJCQlsYXRlUmVuZGVyKCk7CgkJCX0KCQl9Cgl9CgoKCgkvKiBFdmVudCBGZXRjaGluZy9SZW5kZXJpbmcKCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCS8vIFRPRE86IGdvaW5nIGZvcndhcmQsIG1vc3Qgb2YgdGhpcyBzdHVmZiBzaG91bGQgYmUgZGlyZWN0bHkgaGFuZGxlZCBieSB0aGUgdmlldwoKCglmdW5jdGlvbiByZWZldGNoRXZlbnRzKCkgeyAvLyBjYW4gYmUgY2FsbGVkIGFzIGFuIEFQSSBtZXRob2QKCQljbGVhckV2ZW50cygpOwoJCWZldGNoQW5kUmVuZGVyRXZlbnRzKCk7Cgl9CgoKCWZ1bmN0aW9uIHJlcmVuZGVyRXZlbnRzKG1vZGlmaWVkRXZlbnRJRCkgeyAvLyBjYW4gYmUgY2FsbGVkIGFzIGFuIEFQSSBtZXRob2QKCQljbGVhckV2ZW50cygpOwoJCXJlbmRlckV2ZW50cyhtb2RpZmllZEV2ZW50SUQpOwoJfQoKCglmdW5jdGlvbiByZW5kZXJFdmVudHMobW9kaWZpZWRFdmVudElEKSB7IC8vIFRPRE86IHJlbW92ZSBtb2RpZmllZEV2ZW50SUQgaGFjawoJCWlmIChlbGVtZW50VmlzaWJsZSgpKSB7CgkJCWN1cnJlbnRWaWV3LnNldEV2ZW50RGF0YShldmVudHMpOyAvLyBmb3IgVmlldy5qcywgVE9ETzogdW5pZnkgd2l0aCByZW5kZXJFdmVudHMKCQkJY3VycmVudFZpZXcucmVuZGVyRXZlbnRzKGV2ZW50cywgbW9kaWZpZWRFdmVudElEKTsgLy8gYWN0dWFsbHkgcmVuZGVyIHRoZSBET00gZWxlbWVudHMKCQkJY3VycmVudFZpZXcudHJpZ2dlcignZXZlbnRBZnRlckFsbFJlbmRlcicpOwoJCX0KCX0KCgoJZnVuY3Rpb24gY2xlYXJFdmVudHMoKSB7CgkJY3VycmVudFZpZXcudHJpZ2dlckV2ZW50RGVzdHJveSgpOyAvLyB0cmlnZ2VyICdldmVudERlc3Ryb3knIGZvciBlYWNoIGV2ZW50CgkJY3VycmVudFZpZXcuY2xlYXJFdmVudHMoKTsgLy8gYWN0dWFsbHkgcmVtb3ZlIHRoZSBET00gZWxlbWVudHMKCQljdXJyZW50Vmlldy5jbGVhckV2ZW50RGF0YSgpOyAvLyBmb3IgVmlldy5qcywgVE9ETzogdW5pZnkgd2l0aCBjbGVhckV2ZW50cwoJfQoKCglmdW5jdGlvbiBnZXRBbmRSZW5kZXJFdmVudHMoKSB7CgkJaWYgKCFvcHRpb25zLmxhenlGZXRjaGluZyB8fCBpc0ZldGNoTmVlZGVkKGN1cnJlbnRWaWV3LnZpc1N0YXJ0LCBjdXJyZW50Vmlldy52aXNFbmQpKSB7CgkJCWZldGNoQW5kUmVuZGVyRXZlbnRzKCk7CgkJfQoJCWVsc2UgewoJCQlyZW5kZXJFdmVudHMoKTsKCQl9Cgl9CgoKCWZ1bmN0aW9uIGZldGNoQW5kUmVuZGVyRXZlbnRzKCkgewoJCWZldGNoRXZlbnRzKGN1cnJlbnRWaWV3LnZpc1N0YXJ0LCBjdXJyZW50Vmlldy52aXNFbmQpOwoJCQkvLyAuLi4gd2lsbCBjYWxsIHJlcG9ydEV2ZW50cwoJCQkvLyAuLi4gd2hpY2ggd2lsbCBjYWxsIHJlbmRlckV2ZW50cwoJfQoKCgkvLyBjYWxsZWQgd2hlbiBldmVudCBkYXRhIGFycml2ZXMKCWZ1bmN0aW9uIHJlcG9ydEV2ZW50cyhfZXZlbnRzKSB7CgkJZXZlbnRzID0gX2V2ZW50czsKCQlyZW5kZXJFdmVudHMoKTsKCX0KCgoJLy8gY2FsbGVkIHdoZW4gYSBzaW5nbGUgZXZlbnQncyBkYXRhIGhhcyBiZWVuIGNoYW5nZWQKCWZ1bmN0aW9uIHJlcG9ydEV2ZW50Q2hhbmdlKGV2ZW50SUQpIHsKCQlyZXJlbmRlckV2ZW50cyhldmVudElEKTsKCX0KCgoKCS8qIEhlYWRlciBVcGRhdGluZwoJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKCglmdW5jdGlvbiB1cGRhdGVUaXRsZSgpIHsKCQloZWFkZXIudXBkYXRlVGl0bGUoY3VycmVudFZpZXcudGl0bGUpOwoJfQoKCglmdW5jdGlvbiB1cGRhdGVUb2RheUJ1dHRvbigpIHsKCQl2YXIgdG9kYXkgPSBuZXcgRGF0ZSgpOwoJCWlmICh0b2RheSA+PSBjdXJyZW50Vmlldy5zdGFydCAmJiB0b2RheSA8IGN1cnJlbnRWaWV3LmVuZCkgewoJCQloZWFkZXIuZGlzYWJsZUJ1dHRvbigndG9kYXknKTsKCQl9CgkJZWxzZSB7CgkJCWhlYWRlci5lbmFibGVCdXR0b24oJ3RvZGF5Jyk7CgkJfQoJfQoKCgoJLyogU2VsZWN0aW9uCgktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoKCWZ1bmN0aW9uIHNlbGVjdChzdGFydCwgZW5kLCBhbGxEYXkpIHsKCQljdXJyZW50Vmlldy5zZWxlY3Qoc3RhcnQsIGVuZCwgYWxsRGF5PT09dW5kZWZpbmVkID8gdHJ1ZSA6IGFsbERheSk7Cgl9CgoKCWZ1bmN0aW9uIHVuc2VsZWN0KCkgeyAvLyBzYWZlIHRvIGJlIGNhbGxlZCBiZWZvcmUgcmVuZGVyVmlldwoJCWlmIChjdXJyZW50VmlldykgewoJCQljdXJyZW50Vmlldy51bnNlbGVjdCgpOwoJCX0KCX0KCgoKCS8qIERhdGUKCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCgoJZnVuY3Rpb24gcHJldigpIHsKCQlyZW5kZXJWaWV3KC0xKTsKCX0KCgoJZnVuY3Rpb24gbmV4dCgpIHsKCQlyZW5kZXJWaWV3KDEpOwoJfQoKCglmdW5jdGlvbiBwcmV2WWVhcigpIHsKCQlhZGRZZWFycyhkYXRlLCAtMSk7CgkJcmVuZGVyVmlldygpOwoJfQoKCglmdW5jdGlvbiBuZXh0WWVhcigpIHsKCQlhZGRZZWFycyhkYXRlLCAxKTsKCQlyZW5kZXJWaWV3KCk7Cgl9CgoKCWZ1bmN0aW9uIHRvZGF5KCkgewoJCWRhdGUgPSBuZXcgRGF0ZSgpOwoJCXJlbmRlclZpZXcoKTsKCX0KCgoJZnVuY3Rpb24gZ290b0RhdGUoeWVhciwgbW9udGgsIGRhdGVPZk1vbnRoKSB7CgkJaWYgKHllYXIgaW5zdGFuY2VvZiBEYXRlKSB7CgkJCWRhdGUgPSBjbG9uZURhdGUoeWVhcik7IC8vIHByb3ZpZGVkIDEgYXJndW1lbnQsIGEgRGF0ZQoJCX1lbHNlewoJCQlzZXRZTUQoZGF0ZSwgeWVhciwgbW9udGgsIGRhdGVPZk1vbnRoKTsKCQl9CgkJcmVuZGVyVmlldygpOwoJfQoKCglmdW5jdGlvbiBpbmNyZW1lbnREYXRlKHllYXJzLCBtb250aHMsIGRheXMpIHsKCQlpZiAoeWVhcnMgIT09IHVuZGVmaW5lZCkgewoJCQlhZGRZZWFycyhkYXRlLCB5ZWFycyk7CgkJfQoJCWlmIChtb250aHMgIT09IHVuZGVmaW5lZCkgewoJCQlhZGRNb250aHMoZGF0ZSwgbW9udGhzKTsKCQl9CgkJaWYgKGRheXMgIT09IHVuZGVmaW5lZCkgewoJCQlhZGREYXlzKGRhdGUsIGRheXMpOwoJCX0KCQlyZW5kZXJWaWV3KCk7Cgl9CgoKCWZ1bmN0aW9uIGdldERhdGUoKSB7CgkJcmV0dXJuIGNsb25lRGF0ZShkYXRlKTsKCX0KCgoKCS8qIEhlaWdodCAiRnJlZXppbmciCgktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoKCWZ1bmN0aW9uIGZyZWV6ZUNvbnRlbnRIZWlnaHQoKSB7CgkJY29udGVudC5jc3MoewoJCQl3aWR0aDogJzEwMCUnLAoJCQloZWlnaHQ6IGNvbnRlbnQuaGVpZ2h0KCksCgkJCW92ZXJmbG93OiAnaGlkZGVuJwoJCX0pOwoJfQoKCglmdW5jdGlvbiB1bmZyZWV6ZUNvbnRlbnRIZWlnaHQoKSB7CgkJY29udGVudC5jc3MoewoJCQl3aWR0aDogJycsCgkJCWhlaWdodDogJycsCgkJCW92ZXJmbG93OiAnJwoJCX0pOwoJfQoKCgoJLyogTWlzYwoJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKCglmdW5jdGlvbiBnZXRWaWV3KCkgewoJCXJldHVybiBjdXJyZW50VmlldzsKCX0KCgoJZnVuY3Rpb24gb3B0aW9uKG5hbWUsIHZhbHVlKSB7CgkJaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHsKCQkJcmV0dXJuIG9wdGlvbnNbbmFtZV07CgkJfQoJCWlmIChuYW1lID09ICdoZWlnaHQnIHx8IG5hbWUgPT0gJ2NvbnRlbnRIZWlnaHQnIHx8IG5hbWUgPT0gJ2FzcGVjdFJhdGlvJykgewoJCQlvcHRpb25zW25hbWVdID0gdmFsdWU7CgkJCXVwZGF0ZVNpemUoKTsKCQl9Cgl9CgoKCWZ1bmN0aW9uIHRyaWdnZXIobmFtZSwgdGhpc09iaikgewoJCWlmIChvcHRpb25zW25hbWVdKSB7CgkJCXJldHVybiBvcHRpb25zW25hbWVdLmFwcGx5KAoJCQkJdGhpc09iaiB8fCBfZWxlbWVudCwKCQkJCUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMikKCQkJKTsKCQl9Cgl9CgoKCgkvKiBFeHRlcm5hbCBEcmFnZ2luZwoJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCglpZiAob3B0aW9ucy5kcm9wcGFibGUpIHsKCQkkKGRvY3VtZW50KQoJCQkuYmluZCgnZHJhZ3N0YXJ0JywgZnVuY3Rpb24oZXYsIHVpKSB7CgkJCQl2YXIgX2UgPSBldi50YXJnZXQ7CgkJCQl2YXIgZSA9ICQoX2UpOwoJCQkJaWYgKCFlLnBhcmVudHMoJy5mYycpLmxlbmd0aCkgeyAvLyBub3QgYWxyZWFkeSBpbnNpZGUgYSBjYWxlbmRhcgoJCQkJCXZhciBhY2NlcHQgPSBvcHRpb25zLmRyb3BBY2NlcHQ7CgkJCQkJaWYgKCQuaXNGdW5jdGlvbihhY2NlcHQpID8gYWNjZXB0LmNhbGwoX2UsIGUpIDogZS5pcyhhY2NlcHQpKSB7CgkJCQkJCV9kcmFnRWxlbWVudCA9IF9lOwoJCQkJCQljdXJyZW50Vmlldy5kcmFnU3RhcnQoX2RyYWdFbGVtZW50LCBldiwgdWkpOwoJCQkJCX0KCQkJCX0KCQkJfSkKCQkJLmJpbmQoJ2RyYWdzdG9wJywgZnVuY3Rpb24oZXYsIHVpKSB7CgkJCQlpZiAoX2RyYWdFbGVtZW50KSB7CgkJCQkJY3VycmVudFZpZXcuZHJhZ1N0b3AoX2RyYWdFbGVtZW50LCBldiwgdWkpOwoJCQkJCV9kcmFnRWxlbWVudCA9IG51bGw7CgkJCQl9CgkJCX0pOwoJfQoKCn0KCjs7CgpmdW5jdGlvbiBIZWFkZXIoY2FsZW5kYXIsIG9wdGlvbnMpIHsKCXZhciB0ID0gdGhpczsKCgoJLy8gZXhwb3J0cwoJdC5yZW5kZXIgPSByZW5kZXI7Cgl0LmRlc3Ryb3kgPSBkZXN0cm95OwoJdC51cGRhdGVUaXRsZSA9IHVwZGF0ZVRpdGxlOwoJdC5hY3RpdmF0ZUJ1dHRvbiA9IGFjdGl2YXRlQnV0dG9uOwoJdC5kZWFjdGl2YXRlQnV0dG9uID0gZGVhY3RpdmF0ZUJ1dHRvbjsKCXQuZGlzYWJsZUJ1dHRvbiA9IGRpc2FibGVCdXR0b247Cgl0LmVuYWJsZUJ1dHRvbiA9IGVuYWJsZUJ1dHRvbjsKCgoJLy8gbG9jYWxzCgl2YXIgZWxlbWVudCA9ICQoW10pOwoJdmFyIHRtOwoKCgoJZnVuY3Rpb24gcmVuZGVyKCkgewoJCXRtID0gb3B0aW9ucy50aGVtZSA/ICd1aScgOiAnZmMnOwoJCXZhciBzZWN0aW9ucyA9IG9wdGlvbnMuaGVhZGVyOwoJCWlmIChzZWN0aW9ucykgewoJCQllbGVtZW50ID0gJCgiPHRhYmxlIGNsYXNzPSdmYy1oZWFkZXInIHN0eWxlPSd3aWR0aDoxMDAlJy8+IikKCQkJCS5hcHBlbmQoCgkJCQkJJCgiPHRyLz4iKQoJCQkJCQkuYXBwZW5kKHJlbmRlclNlY3Rpb24oJ2xlZnQnKSkKCQkJCQkJLmFwcGVuZChyZW5kZXJTZWN0aW9uKCdjZW50ZXInKSkKCQkJCQkJLmFwcGVuZChyZW5kZXJTZWN0aW9uKCdyaWdodCcpKQoJCQkJKTsKCQkJcmV0dXJuIGVsZW1lbnQ7CgkJfQoJfQoKCglmdW5jdGlvbiBkZXN0cm95KCkgewoJCWVsZW1lbnQucmVtb3ZlKCk7Cgl9CgoKCWZ1bmN0aW9uIHJlbmRlclNlY3Rpb24ocG9zaXRpb24pIHsKCQl2YXIgZSA9ICQoIjx0ZCBjbGFzcz0nZmMtaGVhZGVyLSIgKyBwb3NpdGlvbiArICInLz4iKTsKCQl2YXIgYnV0dG9uU3RyID0gb3B0aW9ucy5oZWFkZXJbcG9zaXRpb25dOwoJCWlmIChidXR0b25TdHIpIHsKCQkJJC5lYWNoKGJ1dHRvblN0ci5zcGxpdCgnICcpLCBmdW5jdGlvbihpKSB7CgkJCQlpZiAoaSA+IDApIHsKCQkJCQllLmFwcGVuZCgiPHNwYW4gY2xhc3M9J2ZjLWhlYWRlci1zcGFjZScvPiIpOwoJCQkJfQoJCQkJdmFyIHByZXZCdXR0b247CgkJCQkkLmVhY2godGhpcy5zcGxpdCgnLCcpLCBmdW5jdGlvbihqLCBidXR0b25OYW1lKSB7CgkJCQkJaWYgKGJ1dHRvbk5hbWUgPT0gJ3RpdGxlJykgewoJCQkJCQllLmFwcGVuZCgiPHNwYW4gY2xhc3M9J2ZjLWhlYWRlci10aXRsZSc+PGgyPiZuYnNwOzwvaDI+PC9zcGFuPiIpOwoJCQkJCQlpZiAocHJldkJ1dHRvbikgewoJCQkJCQkJcHJldkJ1dHRvbi5hZGRDbGFzcyh0bSArICctY29ybmVyLXJpZ2h0Jyk7CgkJCQkJCX0KCQkJCQkJcHJldkJ1dHRvbiA9IG51bGw7CgkJCQkJfWVsc2V7CgkJCQkJCXZhciBidXR0b25DbGljazsKCQkJCQkJaWYgKGNhbGVuZGFyW2J1dHRvbk5hbWVdKSB7CgkJCQkJCQlidXR0b25DbGljayA9IGNhbGVuZGFyW2J1dHRvbk5hbWVdOyAvLyBjYWxlbmRhciBtZXRob2QKCQkJCQkJfQoJCQkJCQllbHNlIGlmIChmY1ZpZXdzW2J1dHRvbk5hbWVdKSB7CgkJCQkJCQlidXR0b25DbGljayA9IGZ1bmN0aW9uKCkgewoJCQkJCQkJCWJ1dHRvbi5yZW1vdmVDbGFzcyh0bSArICctc3RhdGUtaG92ZXInKTsgLy8gZm9yZ2V0IHdoeQoJCQkJCQkJCWNhbGVuZGFyLmNoYW5nZVZpZXcoYnV0dG9uTmFtZSk7CgkJCQkJCQl9OwoJCQkJCQl9CgkJCQkJCWlmIChidXR0b25DbGljaykgewoJCQkJCQkJdmFyIGljb24gPSBvcHRpb25zLnRoZW1lID8gc21hcnRQcm9wZXJ0eShvcHRpb25zLmJ1dHRvbkljb25zLCBidXR0b25OYW1lKSA6IG51bGw7IC8vIHdoeSBhcmUgd2UgdXNpbmcgc21hcnRQcm9wZXJ0eSBoZXJlPwoJCQkJCQkJdmFyIHRleHQgPSBzbWFydFByb3BlcnR5KG9wdGlvbnMuYnV0dG9uVGV4dCwgYnV0dG9uTmFtZSk7IC8vIHdoeSBhcmUgd2UgdXNpbmcgc21hcnRQcm9wZXJ0eSBoZXJlPwoJCQkJCQkJdmFyIGJ1dHRvbiA9ICQoCgkJCQkJCQkJIjxzcGFuIGNsYXNzPSdmYy1idXR0b24gZmMtYnV0dG9uLSIgKyBidXR0b25OYW1lICsgIiAiICsgdG0gKyAiLXN0YXRlLWRlZmF1bHQnPiIgKwoJCQkJCQkJCQkoaWNvbiA/CgkJCQkJCQkJCQkiPHNwYW4gY2xhc3M9J2ZjLWljb24td3JhcCc+IiArCgkJCQkJCQkJCQkJIjxzcGFuIGNsYXNzPSd1aS1pY29uIHVpLWljb24tIiArIGljb24gKyAiJy8+IiArCgkJCQkJCQkJCQkiPC9zcGFuPiIgOgoJCQkJCQkJCQkJdGV4dAoJCQkJCQkJCQkJKSArCgkJCQkJCQkJIjwvc3Bhbj4iCgkJCQkJCQkJKQoJCQkJCQkJCS5jbGljayhmdW5jdGlvbigpIHsKCQkJCQkJCQkJaWYgKCFidXR0b24uaGFzQ2xhc3ModG0gKyAnLXN0YXRlLWRpc2FibGVkJykpIHsKCQkJCQkJCQkJCWJ1dHRvbkNsaWNrKCk7CgkJCQkJCQkJCX0KCQkJCQkJCQl9KQoJCQkJCQkJCS5tb3VzZWRvd24oZnVuY3Rpb24oKSB7CgkJCQkJCQkJCWJ1dHRvbgoJCQkJCQkJCQkJLm5vdCgnLicgKyB0bSArICctc3RhdGUtYWN0aXZlJykKCQkJCQkJCQkJCS5ub3QoJy4nICsgdG0gKyAnLXN0YXRlLWRpc2FibGVkJykKCQkJCQkJCQkJCS5hZGRDbGFzcyh0bSArICctc3RhdGUtZG93bicpOwoJCQkJCQkJCX0pCgkJCQkJCQkJLm1vdXNldXAoZnVuY3Rpb24oKSB7CgkJCQkJCQkJCWJ1dHRvbi5yZW1vdmVDbGFzcyh0bSArICctc3RhdGUtZG93bicpOwoJCQkJCQkJCX0pCgkJCQkJCQkJLmhvdmVyKAoJCQkJCQkJCQlmdW5jdGlvbigpIHsKCQkJCQkJCQkJCWJ1dHRvbgoJCQkJCQkJCQkJCS5ub3QoJy4nICsgdG0gKyAnLXN0YXRlLWFjdGl2ZScpCgkJCQkJCQkJCQkJLm5vdCgnLicgKyB0bSArICctc3RhdGUtZGlzYWJsZWQnKQoJCQkJCQkJCQkJCS5hZGRDbGFzcyh0bSArICctc3RhdGUtaG92ZXInKTsKCQkJCQkJCQkJfSwKCQkJCQkJCQkJZnVuY3Rpb24oKSB7CgkJCQkJCQkJCQlidXR0b24KCQkJCQkJCQkJCQkucmVtb3ZlQ2xhc3ModG0gKyAnLXN0YXRlLWhvdmVyJykKCQkJCQkJCQkJCQkucmVtb3ZlQ2xhc3ModG0gKyAnLXN0YXRlLWRvd24nKTsKCQkJCQkJCQkJfQoJCQkJCQkJCSkKCQkJCQkJCQkuYXBwZW5kVG8oZSk7CgkJCQkJCQlkaXNhYmxlVGV4dFNlbGVjdGlvbihidXR0b24pOwoJCQkJCQkJaWYgKCFwcmV2QnV0dG9uKSB7CgkJCQkJCQkJYnV0dG9uLmFkZENsYXNzKHRtICsgJy1jb3JuZXItbGVmdCcpOwoJCQkJCQkJfQoJCQkJCQkJcHJldkJ1dHRvbiA9IGJ1dHRvbjsKCQkJCQkJfQoJCQkJCX0KCQkJCX0pOwoJCQkJaWYgKHByZXZCdXR0b24pIHsKCQkJCQlwcmV2QnV0dG9uLmFkZENsYXNzKHRtICsgJy1jb3JuZXItcmlnaHQnKTsKCQkJCX0KCQkJfSk7CgkJfQoJCXJldHVybiBlOwoJfQoKCglmdW5jdGlvbiB1cGRhdGVUaXRsZShodG1sKSB7CgkJZWxlbWVudC5maW5kKCdoMicpCgkJCS5odG1sKGh0bWwpOwoJfQoKCglmdW5jdGlvbiBhY3RpdmF0ZUJ1dHRvbihidXR0b25OYW1lKSB7CgkJZWxlbWVudC5maW5kKCdzcGFuLmZjLWJ1dHRvbi0nICsgYnV0dG9uTmFtZSkKCQkJLmFkZENsYXNzKHRtICsgJy1zdGF0ZS1hY3RpdmUnKTsKCX0KCgoJZnVuY3Rpb24gZGVhY3RpdmF0ZUJ1dHRvbihidXR0b25OYW1lKSB7CgkJZWxlbWVudC5maW5kKCdzcGFuLmZjLWJ1dHRvbi0nICsgYnV0dG9uTmFtZSkKCQkJLnJlbW92ZUNsYXNzKHRtICsgJy1zdGF0ZS1hY3RpdmUnKTsKCX0KCgoJZnVuY3Rpb24gZGlzYWJsZUJ1dHRvbihidXR0b25OYW1lKSB7CgkJZWxlbWVudC5maW5kKCdzcGFuLmZjLWJ1dHRvbi0nICsgYnV0dG9uTmFtZSkKCQkJLmFkZENsYXNzKHRtICsgJy1zdGF0ZS1kaXNhYmxlZCcpOwoJfQoKCglmdW5jdGlvbiBlbmFibGVCdXR0b24oYnV0dG9uTmFtZSkgewoJCWVsZW1lbnQuZmluZCgnc3Bhbi5mYy1idXR0b24tJyArIGJ1dHRvbk5hbWUpCgkJCS5yZW1vdmVDbGFzcyh0bSArICctc3RhdGUtZGlzYWJsZWQnKTsKCX0KCgp9Cgo7OwoKZmMuc291cmNlTm9ybWFsaXplcnMgPSBbXTsKZmMuc291cmNlRmV0Y2hlcnMgPSBbXTsKCnZhciBhamF4RGVmYXVsdHMgPSB7CglkYXRhVHlwZTogJ2pzb24nLAoJY2FjaGU6IGZhbHNlCn07Cgp2YXIgZXZlbnRHVUlEID0gMTsKCgpmdW5jdGlvbiBFdmVudE1hbmFnZXIob3B0aW9ucywgX3NvdXJjZXMpIHsKCXZhciB0ID0gdGhpczsKCgoJLy8gZXhwb3J0cwoJdC5pc0ZldGNoTmVlZGVkID0gaXNGZXRjaE5lZWRlZDsKCXQuZmV0Y2hFdmVudHMgPSBmZXRjaEV2ZW50czsKCXQuYWRkRXZlbnRTb3VyY2UgPSBhZGRFdmVudFNvdXJjZTsKCXQucmVtb3ZlRXZlbnRTb3VyY2UgPSByZW1vdmVFdmVudFNvdXJjZTsKCXQudXBkYXRlRXZlbnQgPSB1cGRhdGVFdmVudDsKCXQucmVuZGVyRXZlbnQgPSByZW5kZXJFdmVudDsKCXQucmVtb3ZlRXZlbnRzID0gcmVtb3ZlRXZlbnRzOwoJdC5jbGllbnRFdmVudHMgPSBjbGllbnRFdmVudHM7Cgl0Lm5vcm1hbGl6ZUV2ZW50ID0gbm9ybWFsaXplRXZlbnQ7CgoKCS8vIGltcG9ydHMKCXZhciB0cmlnZ2VyID0gdC50cmlnZ2VyOwoJdmFyIGdldFZpZXcgPSB0LmdldFZpZXc7Cgl2YXIgcmVwb3J0RXZlbnRzID0gdC5yZXBvcnRFdmVudHM7CgoKCS8vIGxvY2FscwoJdmFyIHN0aWNreVNvdXJjZSA9IHsgZXZlbnRzOiBbXSB9OwoJdmFyIHNvdXJjZXMgPSBbIHN0aWNreVNvdXJjZSBdOwoJdmFyIHJhbmdlU3RhcnQsIHJhbmdlRW5kOwoJdmFyIGN1cnJlbnRGZXRjaElEID0gMDsKCXZhciBwZW5kaW5nU291cmNlQ250ID0gMDsKCXZhciBsb2FkaW5nTGV2ZWwgPSAwOwoJdmFyIGNhY2hlID0gW107CgoKCWZvciAodmFyIGk9MDsgaTxfc291cmNlcy5sZW5ndGg7IGkrKykgewoJCV9hZGRFdmVudFNvdXJjZShfc291cmNlc1tpXSk7Cgl9CgoKCgkvKiBGZXRjaGluZwoJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKCglmdW5jdGlvbiBpc0ZldGNoTmVlZGVkKHN0YXJ0LCBlbmQpIHsKCQlyZXR1cm4gIXJhbmdlU3RhcnQgfHwgc3RhcnQgPCByYW5nZVN0YXJ0IHx8IGVuZCA+IHJhbmdlRW5kOwoJfQoKCglmdW5jdGlvbiBmZXRjaEV2ZW50cyhzdGFydCwgZW5kKSB7CgkJcmFuZ2VTdGFydCA9IHN0YXJ0OwoJCXJhbmdlRW5kID0gZW5kOwoJCWNhY2hlID0gW107CgkJdmFyIGZldGNoSUQgPSArK2N1cnJlbnRGZXRjaElEOwoJCXZhciBsZW4gPSBzb3VyY2VzLmxlbmd0aDsKCQlwZW5kaW5nU291cmNlQ250ID0gbGVuOwoJCWZvciAodmFyIGk9MDsgaTxsZW47IGkrKykgewoJCQlmZXRjaEV2ZW50U291cmNlKHNvdXJjZXNbaV0sIGZldGNoSUQpOwoJCX0KCX0KCgoJZnVuY3Rpb24gZmV0Y2hFdmVudFNvdXJjZShzb3VyY2UsIGZldGNoSUQpIHsKCQlfZmV0Y2hFdmVudFNvdXJjZShzb3VyY2UsIGZ1bmN0aW9uKGV2ZW50cykgewoJCQlpZiAoZmV0Y2hJRCA9PSBjdXJyZW50RmV0Y2hJRCkgewoJCQkJaWYgKGV2ZW50cykgewoKCQkJCQlpZiAob3B0aW9ucy5ldmVudERhdGFUcmFuc2Zvcm0pIHsKCQkJCQkJZXZlbnRzID0gJC5tYXAoZXZlbnRzLCBvcHRpb25zLmV2ZW50RGF0YVRyYW5zZm9ybSk7CgkJCQkJfQoJCQkJCWlmIChzb3VyY2UuZXZlbnREYXRhVHJhbnNmb3JtKSB7CgkJCQkJCWV2ZW50cyA9ICQubWFwKGV2ZW50cywgc291cmNlLmV2ZW50RGF0YVRyYW5zZm9ybSk7CgkJCQkJfQoJCQkJCS8vIFRPRE86IHRoaXMgdGVjaG5pcXVlIGlzIG5vdCBpZGVhbCBmb3Igc3RhdGljIGFycmF5IGV2ZW50IHNvdXJjZXMuCgkJCQkJLy8gIEZvciBhcnJheXMsIHdlJ2xsIHdhbnQgdG8gcHJvY2VzcyBhbGwgZXZlbnRzIHJpZ2h0IGluIHRoZSBiZWdpbm5pbmcsIHRoZW4gbmV2ZXIgYWdhaW4uCgoJCQkJCWZvciAodmFyIGk9MDsgaTxldmVudHMubGVuZ3RoOyBpKyspIHsKCQkJCQkJZXZlbnRzW2ldLnNvdXJjZSA9IHNvdXJjZTsKCQkJCQkJbm9ybWFsaXplRXZlbnQoZXZlbnRzW2ldKTsKCQkJCQl9CgkJCQkJY2FjaGUgPSBjYWNoZS5jb25jYXQoZXZlbnRzKTsKCQkJCX0KCQkJCXBlbmRpbmdTb3VyY2VDbnQtLTsKCQkJCWlmICghcGVuZGluZ1NvdXJjZUNudCkgewoJCQkJCXJlcG9ydEV2ZW50cyhjYWNoZSk7CgkJCQl9CgkJCX0KCQl9KTsKCX0KCgoJZnVuY3Rpb24gX2ZldGNoRXZlbnRTb3VyY2Uoc291cmNlLCBjYWxsYmFjaykgewoJCXZhciBpOwoJCXZhciBmZXRjaGVycyA9IGZjLnNvdXJjZUZldGNoZXJzOwoJCXZhciByZXM7CgkJZm9yIChpPTA7IGk8ZmV0Y2hlcnMubGVuZ3RoOyBpKyspIHsKCQkJcmVzID0gZmV0Y2hlcnNbaV0oc291cmNlLCByYW5nZVN0YXJ0LCByYW5nZUVuZCwgY2FsbGJhY2spOwoJCQlpZiAocmVzID09PSB0cnVlKSB7CgkJCQkvLyB0aGUgZmV0Y2hlciBpcyBpbiBjaGFyZ2UuIG1hZGUgaXRzIG93biBhc3luYyByZXF1ZXN0CgkJCQlyZXR1cm47CgkJCX0KCQkJZWxzZSBpZiAodHlwZW9mIHJlcyA9PSAnb2JqZWN0JykgewoJCQkJLy8gdGhlIGZldGNoZXIgcmV0dXJuZWQgYSBuZXcgc291cmNlLiBwcm9jZXNzIGl0CgkJCQlfZmV0Y2hFdmVudFNvdXJjZShyZXMsIGNhbGxiYWNrKTsKCQkJCXJldHVybjsKCQkJfQoJCX0KCQl2YXIgZXZlbnRzID0gc291cmNlLmV2ZW50czsKCQlpZiAoZXZlbnRzKSB7CgkJCWlmICgkLmlzRnVuY3Rpb24oZXZlbnRzKSkgewoJCQkJcHVzaExvYWRpbmcoKTsKCQkJCWV2ZW50cyhjbG9uZURhdGUocmFuZ2VTdGFydCksIGNsb25lRGF0ZShyYW5nZUVuZCksIGZ1bmN0aW9uKGV2ZW50cykgewoJCQkJCWNhbGxiYWNrKGV2ZW50cyk7CgkJCQkJcG9wTG9hZGluZygpOwoJCQkJfSk7CgkJCX0KCQkJZWxzZSBpZiAoJC5pc0FycmF5KGV2ZW50cykpIHsKCQkJCWNhbGxiYWNrKGV2ZW50cyk7CgkJCX0KCQkJZWxzZSB7CgkJCQljYWxsYmFjaygpOwoJCQl9CgkJfWVsc2V7CgkJCXZhciB1cmwgPSBzb3VyY2UudXJsOwoJCQlpZiAodXJsKSB7CgkJCQl2YXIgc3VjY2VzcyA9IHNvdXJjZS5zdWNjZXNzOwoJCQkJdmFyIGVycm9yID0gc291cmNlLmVycm9yOwoJCQkJdmFyIGNvbXBsZXRlID0gc291cmNlLmNvbXBsZXRlOwoKCQkJCS8vIHJldHJpZXZlIGFueSBvdXRib3VuZCBHRVQvUE9TVCAkLmFqYXggZGF0YSBmcm9tIHRoZSBvcHRpb25zCgkJCQl2YXIgY3VzdG9tRGF0YTsKCQkJCWlmICgkLmlzRnVuY3Rpb24oc291cmNlLmRhdGEpKSB7CgkJCQkJLy8gc3VwcGxpZWQgYXMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBrZXkvdmFsdWUgb2JqZWN0CgkJCQkJY3VzdG9tRGF0YSA9IHNvdXJjZS5kYXRhKCk7CgkJCQl9CgkJCQllbHNlIHsKCQkJCQkvLyBzdXBwbGllZCBhcyBhIHN0cmFpZ2h0IGtleS92YWx1ZSBvYmplY3QKCQkJCQljdXN0b21EYXRhID0gc291cmNlLmRhdGE7CgkJCQl9CgoJCQkJLy8gdXNlIGEgY29weSBvZiB0aGUgY3VzdG9tIGRhdGEgc28gd2UgY2FuIG1vZGlmeSB0aGUgcGFyYW1ldGVycwoJCQkJLy8gYW5kIG5vdCBhZmZlY3QgdGhlIHBhc3NlZC1pbiBvYmplY3QuCgkJCQl2YXIgZGF0YSA9ICQuZXh0ZW5kKHt9LCBjdXN0b21EYXRhIHx8IHt9KTsKCgkJCQl2YXIgc3RhcnRQYXJhbSA9IGZpcnN0RGVmaW5lZChzb3VyY2Uuc3RhcnRQYXJhbSwgb3B0aW9ucy5zdGFydFBhcmFtKTsKCQkJCXZhciBlbmRQYXJhbSA9IGZpcnN0RGVmaW5lZChzb3VyY2UuZW5kUGFyYW0sIG9wdGlvbnMuZW5kUGFyYW0pOwoJCQkJaWYgKHN0YXJ0UGFyYW0pIHsKCQkJCQlkYXRhW3N0YXJ0UGFyYW1dID0gTWF0aC5yb3VuZCgrcmFuZ2VTdGFydCAvIDEwMDApOwoJCQkJfQoJCQkJaWYgKGVuZFBhcmFtKSB7CgkJCQkJZGF0YVtlbmRQYXJhbV0gPSBNYXRoLnJvdW5kKCtyYW5nZUVuZCAvIDEwMDApOwoJCQkJfQoKCQkJCXB1c2hMb2FkaW5nKCk7CgkJCQkkLmFqYXgoJC5leHRlbmQoe30sIGFqYXhEZWZhdWx0cywgc291cmNlLCB7CgkJCQkJZGF0YTogZGF0YSwKCQkJCQlzdWNjZXNzOiBmdW5jdGlvbihldmVudHMpIHsKCQkJCQkJZXZlbnRzID0gZXZlbnRzIHx8IFtdOwoJCQkJCQl2YXIgcmVzID0gYXBwbHlBbGwoc3VjY2VzcywgdGhpcywgYXJndW1lbnRzKTsKCQkJCQkJaWYgKCQuaXNBcnJheShyZXMpKSB7CgkJCQkJCQlldmVudHMgPSByZXM7CgkJCQkJCX0KCQkJCQkJY2FsbGJhY2soZXZlbnRzKTsKCQkJCQl9LAoJCQkJCWVycm9yOiBmdW5jdGlvbigpIHsKCQkJCQkJYXBwbHlBbGwoZXJyb3IsIHRoaXMsIGFyZ3VtZW50cyk7CgkJCQkJCWNhbGxiYWNrKCk7CgkJCQkJfSwKCQkJCQljb21wbGV0ZTogZnVuY3Rpb24oKSB7CgkJCQkJCWFwcGx5QWxsKGNvbXBsZXRlLCB0aGlzLCBhcmd1bWVudHMpOwoJCQkJCQlwb3BMb2FkaW5nKCk7CgkJCQkJfQoJCQkJfSkpOwoJCQl9ZWxzZXsKCQkJCWNhbGxiYWNrKCk7CgkJCX0KCQl9Cgl9CgoKCgkvKiBTb3VyY2VzCgktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoKCWZ1bmN0aW9uIGFkZEV2ZW50U291cmNlKHNvdXJjZSkgewoJCXNvdXJjZSA9IF9hZGRFdmVudFNvdXJjZShzb3VyY2UpOwoJCWlmIChzb3VyY2UpIHsKCQkJcGVuZGluZ1NvdXJjZUNudCsrOwoJCQlmZXRjaEV2ZW50U291cmNlKHNvdXJjZSwgY3VycmVudEZldGNoSUQpOyAvLyB3aWxsIGV2ZW50dWFsbHkgY2FsbCByZXBvcnRFdmVudHMKCQl9Cgl9CgoKCWZ1bmN0aW9uIF9hZGRFdmVudFNvdXJjZShzb3VyY2UpIHsKCQlpZiAoJC5pc0Z1bmN0aW9uKHNvdXJjZSkgfHwgJC5pc0FycmF5KHNvdXJjZSkpIHsKCQkJc291cmNlID0geyBldmVudHM6IHNvdXJjZSB9OwoJCX0KCQllbHNlIGlmICh0eXBlb2Ygc291cmNlID09ICdzdHJpbmcnKSB7CgkJCXNvdXJjZSA9IHsgdXJsOiBzb3VyY2UgfTsKCQl9CgkJaWYgKHR5cGVvZiBzb3VyY2UgPT0gJ29iamVjdCcpIHsKCQkJbm9ybWFsaXplU291cmNlKHNvdXJjZSk7CgkJCXNvdXJjZXMucHVzaChzb3VyY2UpOwoJCQlyZXR1cm4gc291cmNlOwoJCX0KCX0KCgoJZnVuY3Rpb24gcmVtb3ZlRXZlbnRTb3VyY2Uoc291cmNlKSB7CgkJc291cmNlcyA9ICQuZ3JlcChzb3VyY2VzLCBmdW5jdGlvbihzcmMpIHsKCQkJcmV0dXJuICFpc1NvdXJjZXNFcXVhbChzcmMsIHNvdXJjZSk7CgkJfSk7CgkJLy8gcmVtb3ZlIGFsbCBjbGllbnQgZXZlbnRzIGZyb20gdGhhdCBzb3VyY2UKCQljYWNoZSA9ICQuZ3JlcChjYWNoZSwgZnVuY3Rpb24oZSkgewoJCQlyZXR1cm4gIWlzU291cmNlc0VxdWFsKGUuc291cmNlLCBzb3VyY2UpOwoJCX0pOwoJCXJlcG9ydEV2ZW50cyhjYWNoZSk7Cgl9CgoKCgkvKiBNYW5pcHVsYXRpb24KCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCgoJZnVuY3Rpb24gdXBkYXRlRXZlbnQoZXZlbnQpIHsgLy8gdXBkYXRlIGFuIGV4aXN0aW5nIGV2ZW50CgkJdmFyIGksIGxlbiA9IGNhY2hlLmxlbmd0aCwgZSwKCQkJZGVmYXVsdEV2ZW50RW5kID0gZ2V0VmlldygpLmRlZmF1bHRFdmVudEVuZCwgLy8gZ2V0Vmlldz8/PwoJCQlzdGFydERlbHRhID0gZXZlbnQuc3RhcnQgLSBldmVudC5fc3RhcnQsCgkJCWVuZERlbHRhID0gZXZlbnQuZW5kID8KCQkJCShldmVudC5lbmQgLSAoZXZlbnQuX2VuZCB8fCBkZWZhdWx0RXZlbnRFbmQoZXZlbnQpKSkgLy8gZXZlbnQuX2VuZCB3b3VsZCBiZSBudWxsIGlmIGV2ZW50LmVuZAoJCQkJOiAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdhcyBudWxsIGFuZCBldmVudCB3YXMganVzdCByZXNpemVkCgkJZm9yIChpPTA7IGk8bGVuOyBpKyspIHsKCQkJZSA9IGNhY2hlW2ldOwoJCQlpZiAoZS5faWQgPT0gZXZlbnQuX2lkICYmIGUgIT0gZXZlbnQpIHsKCQkJCWUuc3RhcnQgPSBuZXcgRGF0ZSgrZS5zdGFydCArIHN0YXJ0RGVsdGEpOwoJCQkJaWYgKGV2ZW50LmVuZCkgewoJCQkJCWlmIChlLmVuZCkgewoJCQkJCQllLmVuZCA9IG5ldyBEYXRlKCtlLmVuZCArIGVuZERlbHRhKTsKCQkJCQl9ZWxzZXsKCQkJCQkJZS5lbmQgPSBuZXcgRGF0ZSgrZGVmYXVsdEV2ZW50RW5kKGUpICsgZW5kRGVsdGEpOwoJCQkJCX0KCQkJCX1lbHNlewoJCQkJCWUuZW5kID0gbnVsbDsKCQkJCX0KCQkJCWUudGl0bGUgPSBldmVudC50aXRsZTsKCQkJCWUudXJsID0gZXZlbnQudXJsOwoJCQkJZS5hbGxEYXkgPSBldmVudC5hbGxEYXk7CgkJCQllLmNsYXNzTmFtZSA9IGV2ZW50LmNsYXNzTmFtZTsKCQkJCWUuZWRpdGFibGUgPSBldmVudC5lZGl0YWJsZTsKCQkJCWUuY29sb3IgPSBldmVudC5jb2xvcjsKCQkJCWUuYmFja2dyb3VuZENvbG9yID0gZXZlbnQuYmFja2dyb3VuZENvbG9yOwoJCQkJZS5ib3JkZXJDb2xvciA9IGV2ZW50LmJvcmRlckNvbG9yOwoJCQkJZS50ZXh0Q29sb3IgPSBldmVudC50ZXh0Q29sb3I7CgkJCQlub3JtYWxpemVFdmVudChlKTsKCQkJfQoJCX0KCQlub3JtYWxpemVFdmVudChldmVudCk7CgkJcmVwb3J0RXZlbnRzKGNhY2hlKTsKCX0KCgoJZnVuY3Rpb24gcmVuZGVyRXZlbnQoZXZlbnQsIHN0aWNrKSB7CgkJbm9ybWFsaXplRXZlbnQoZXZlbnQpOwoJCWlmICghZXZlbnQuc291cmNlKSB7CgkJCWlmIChzdGljaykgewoJCQkJc3RpY2t5U291cmNlLmV2ZW50cy5wdXNoKGV2ZW50KTsKCQkJCWV2ZW50LnNvdXJjZSA9IHN0aWNreVNvdXJjZTsKCQkJfQoJCQljYWNoZS5wdXNoKGV2ZW50KTsKCQl9CgkJcmVwb3J0RXZlbnRzKGNhY2hlKTsKCX0KCgoJZnVuY3Rpb24gcmVtb3ZlRXZlbnRzKGZpbHRlcikgewoJCWlmICghZmlsdGVyKSB7IC8vIHJlbW92ZSBhbGwKCQkJY2FjaGUgPSBbXTsKCQkJLy8gY2xlYXIgYWxsIGFycmF5IHNvdXJjZXMKCQkJZm9yICh2YXIgaT0wOyBpPHNvdXJjZXMubGVuZ3RoOyBpKyspIHsKCQkJCWlmICgkLmlzQXJyYXkoc291cmNlc1tpXS5ldmVudHMpKSB7CgkJCQkJc291cmNlc1tpXS5ldmVudHMgPSBbXTsKCQkJCX0KCQkJfQoJCX1lbHNlewoJCQlpZiAoISQuaXNGdW5jdGlvbihmaWx0ZXIpKSB7IC8vIGFuIGV2ZW50IElECgkJCQl2YXIgaWQgPSBmaWx0ZXIgKyAnJzsKCQkJCWZpbHRlciA9IGZ1bmN0aW9uKGUpIHsKCQkJCQlyZXR1cm4gZS5faWQgPT0gaWQ7CgkJCQl9OwoJCQl9CgkJCWNhY2hlID0gJC5ncmVwKGNhY2hlLCBmaWx0ZXIsIHRydWUpOwoJCQkvLyByZW1vdmUgZXZlbnRzIGZyb20gYXJyYXkgc291cmNlcwoJCQlmb3IgKHZhciBpPTA7IGk8c291cmNlcy5sZW5ndGg7IGkrKykgewoJCQkJaWYgKCQuaXNBcnJheShzb3VyY2VzW2ldLmV2ZW50cykpIHsKCQkJCQlzb3VyY2VzW2ldLmV2ZW50cyA9ICQuZ3JlcChzb3VyY2VzW2ldLmV2ZW50cywgZmlsdGVyLCB0cnVlKTsKCQkJCX0KCQkJfQoJCX0KCQlyZXBvcnRFdmVudHMoY2FjaGUpOwoJfQoKCglmdW5jdGlvbiBjbGllbnRFdmVudHMoZmlsdGVyKSB7CgkJaWYgKCQuaXNGdW5jdGlvbihmaWx0ZXIpKSB7CgkJCXJldHVybiAkLmdyZXAoY2FjaGUsIGZpbHRlcik7CgkJfQoJCWVsc2UgaWYgKGZpbHRlcikgeyAvLyBhbiBldmVudCBJRAoJCQlmaWx0ZXIgKz0gJyc7CgkJCXJldHVybiAkLmdyZXAoY2FjaGUsIGZ1bmN0aW9uKGUpIHsKCQkJCXJldHVybiBlLl9pZCA9PSBmaWx0ZXI7CgkJCX0pOwoJCX0KCQlyZXR1cm4gY2FjaGU7IC8vIGVsc2UsIHJldHVybiBhbGwKCX0KCgoKCS8qIExvYWRpbmcgU3RhdGUKCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCgoJZnVuY3Rpb24gcHVzaExvYWRpbmcoKSB7CgkJaWYgKCFsb2FkaW5nTGV2ZWwrKykgewoJCQl0cmlnZ2VyKCdsb2FkaW5nJywgbnVsbCwgdHJ1ZSwgZ2V0VmlldygpKTsKCQl9Cgl9CgoKCWZ1bmN0aW9uIHBvcExvYWRpbmcoKSB7CgkJaWYgKCEtLWxvYWRpbmdMZXZlbCkgewoJCQl0cmlnZ2VyKCdsb2FkaW5nJywgbnVsbCwgZmFsc2UsIGdldFZpZXcoKSk7CgkJfQoJfQoKCgoJLyogRXZlbnQgTm9ybWFsaXphdGlvbgoJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKCglmdW5jdGlvbiBub3JtYWxpemVFdmVudChldmVudCkgewoJCXZhciBzb3VyY2UgPSBldmVudC5zb3VyY2UgfHwge307CgkJdmFyIGlnbm9yZVRpbWV6b25lID0gZmlyc3REZWZpbmVkKHNvdXJjZS5pZ25vcmVUaW1lem9uZSwgb3B0aW9ucy5pZ25vcmVUaW1lem9uZSk7CgkJZXZlbnQuX2lkID0gZXZlbnQuX2lkIHx8IChldmVudC5pZCA9PT0gdW5kZWZpbmVkID8gJ19mYycgKyBldmVudEdVSUQrKyA6IGV2ZW50LmlkICsgJycpOwoJCWlmIChldmVudC5kYXRlKSB7CgkJCWlmICghZXZlbnQuc3RhcnQpIHsKCQkJCWV2ZW50LnN0YXJ0ID0gZXZlbnQuZGF0ZTsKCQkJfQoJCQlkZWxldGUgZXZlbnQuZGF0ZTsKCQl9CgkJZXZlbnQuX3N0YXJ0ID0gY2xvbmVEYXRlKGV2ZW50LnN0YXJ0ID0gcGFyc2VEYXRlKGV2ZW50LnN0YXJ0LCBpZ25vcmVUaW1lem9uZSkpOwoJCWV2ZW50LmVuZCA9IHBhcnNlRGF0ZShldmVudC5lbmQsIGlnbm9yZVRpbWV6b25lKTsKCQlpZiAoZXZlbnQuZW5kICYmIGV2ZW50LmVuZCA8PSBldmVudC5zdGFydCkgewoJCQlldmVudC5lbmQgPSBudWxsOwoJCX0KCQlldmVudC5fZW5kID0gZXZlbnQuZW5kID8gY2xvbmVEYXRlKGV2ZW50LmVuZCkgOiBudWxsOwoJCWlmIChldmVudC5hbGxEYXkgPT09IHVuZGVmaW5lZCkgewoJCQlldmVudC5hbGxEYXkgPSBmaXJzdERlZmluZWQoc291cmNlLmFsbERheURlZmF1bHQsIG9wdGlvbnMuYWxsRGF5RGVmYXVsdCk7CgkJfQoJCWlmIChldmVudC5jbGFzc05hbWUpIHsKCQkJaWYgKHR5cGVvZiBldmVudC5jbGFzc05hbWUgPT0gJ3N0cmluZycpIHsKCQkJCWV2ZW50LmNsYXNzTmFtZSA9IGV2ZW50LmNsYXNzTmFtZS5zcGxpdCgvXHMrLyk7CgkJCX0KCQl9ZWxzZXsKCQkJZXZlbnQuY2xhc3NOYW1lID0gW107CgkJfQoJCS8vIFRPRE86IGlmIHRoZXJlIGlzIG5vIHN0YXJ0IGRhdGUsIHJldHVybiBmYWxzZSB0byBpbmRpY2F0ZSBhbiBpbnZhbGlkIGV2ZW50Cgl9CgoKCgkvKiBVdGlscwoJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCgoJZnVuY3Rpb24gbm9ybWFsaXplU291cmNlKHNvdXJjZSkgewoJCWlmIChzb3VyY2UuY2xhc3NOYW1lKSB7CgkJCS8vIFRPRE86IHJlcGVhdCBjb2RlLCBzYW1lIGNvZGUgZm9yIGV2ZW50IGNsYXNzTmFtZXMKCQkJaWYgKHR5cGVvZiBzb3VyY2UuY2xhc3NOYW1lID09ICdzdHJpbmcnKSB7CgkJCQlzb3VyY2UuY2xhc3NOYW1lID0gc291cmNlLmNsYXNzTmFtZS5zcGxpdCgvXHMrLyk7CgkJCX0KCQl9ZWxzZXsKCQkJc291cmNlLmNsYXNzTmFtZSA9IFtdOwoJCX0KCQl2YXIgbm9ybWFsaXplcnMgPSBmYy5zb3VyY2VOb3JtYWxpemVyczsKCQlmb3IgKHZhciBpPTA7IGk8bm9ybWFsaXplcnMubGVuZ3RoOyBpKyspIHsKCQkJbm9ybWFsaXplcnNbaV0oc291cmNlKTsKCQl9Cgl9CgoKCWZ1bmN0aW9uIGlzU291cmNlc0VxdWFsKHNvdXJjZTEsIHNvdXJjZTIpIHsKCQlyZXR1cm4gc291cmNlMSAmJiBzb3VyY2UyICYmIGdldFNvdXJjZVByaW1pdGl2ZShzb3VyY2UxKSA9PSBnZXRTb3VyY2VQcmltaXRpdmUoc291cmNlMik7Cgl9CgoKCWZ1bmN0aW9uIGdldFNvdXJjZVByaW1pdGl2ZShzb3VyY2UpIHsKCQlyZXR1cm4gKCh0eXBlb2Ygc291cmNlID09ICdvYmplY3QnKSA/IChzb3VyY2UuZXZlbnRzIHx8IHNvdXJjZS51cmwpIDogJycpIHx8IHNvdXJjZTsKCX0KCgp9Cgo7OwoKCmZjLmFkZERheXMgPSBhZGREYXlzOwpmYy5jbG9uZURhdGUgPSBjbG9uZURhdGU7CmZjLnBhcnNlRGF0ZSA9IHBhcnNlRGF0ZTsKZmMucGFyc2VJU084NjAxID0gcGFyc2VJU084NjAxOwpmYy5wYXJzZVRpbWUgPSBwYXJzZVRpbWU7CmZjLmZvcm1hdERhdGUgPSBmb3JtYXREYXRlOwpmYy5mb3JtYXREYXRlcyA9IGZvcm1hdERhdGVzOwoKCgovKiBEYXRlIE1hdGgKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKdmFyIGRheUlEcyA9IFsnc3VuJywgJ21vbicsICd0dWUnLCAnd2VkJywgJ3RodScsICdmcmknLCAnc2F0J10sCglEQVlfTVMgPSA4NjQwMDAwMCwKCUhPVVJfTVMgPSAzNjAwMDAwLAoJTUlOVVRFX01TID0gNjAwMDA7CgoKZnVuY3Rpb24gYWRkWWVhcnMoZCwgbiwga2VlcFRpbWUpIHsKCWQuc2V0RnVsbFllYXIoZC5nZXRGdWxsWWVhcigpICsgbik7CglpZiAoIWtlZXBUaW1lKSB7CgkJY2xlYXJUaW1lKGQpOwoJfQoJcmV0dXJuIGQ7Cn0KCgpmdW5jdGlvbiBhZGRNb250aHMoZCwgbiwga2VlcFRpbWUpIHsgLy8gcHJldmVudHMgZGF5IG92ZXJmbG93L3VuZGVyZmxvdwoJaWYgKCtkKSB7IC8vIHByZXZlbnQgaW5maW5pdGUgbG9vcGluZyBvbiBpbnZhbGlkIGRhdGVzCgkJdmFyIG0gPSBkLmdldE1vbnRoKCkgKyBuLAoJCQljaGVjayA9IGNsb25lRGF0ZShkKTsKCQljaGVjay5zZXREYXRlKDEpOwoJCWNoZWNrLnNldE1vbnRoKG0pOwoJCWQuc2V0TW9udGgobSk7CgkJaWYgKCFrZWVwVGltZSkgewoJCQljbGVhclRpbWUoZCk7CgkJfQoJCXdoaWxlIChkLmdldE1vbnRoKCkgIT0gY2hlY2suZ2V0TW9udGgoKSkgewoJCQlkLnNldERhdGUoZC5nZXREYXRlKCkgKyAoZCA8IGNoZWNrID8gMSA6IC0xKSk7CgkJfQoJfQoJcmV0dXJuIGQ7Cn0KCgpmdW5jdGlvbiBhZGREYXlzKGQsIG4sIGtlZXBUaW1lKSB7IC8vIGRlYWxzIHdpdGggZGF5bGlnaHQgc2F2aW5ncwoJaWYgKCtkKSB7CgkJdmFyIGRkID0gZC5nZXREYXRlKCkgKyBuLAoJCQljaGVjayA9IGNsb25lRGF0ZShkKTsKCQljaGVjay5zZXRIb3Vycyg5KTsgLy8gc2V0IHRvIG1pZGRsZSBvZiBkYXkKCQljaGVjay5zZXREYXRlKGRkKTsKCQlkLnNldERhdGUoZGQpOwoJCWlmICgha2VlcFRpbWUpIHsKCQkJY2xlYXJUaW1lKGQpOwoJCX0KCQlmaXhEYXRlKGQsIGNoZWNrKTsKCX0KCXJldHVybiBkOwp9CgoKZnVuY3Rpb24gZml4RGF0ZShkLCBjaGVjaykgeyAvLyBmb3JjZSBkIHRvIGJlIG9uIGNoZWNrJ3MgWU1ELCBmb3IgZGF5bGlnaHQgc2F2aW5ncyBwdXJwb3NlcwoJaWYgKCtkKSB7IC8vIHByZXZlbnQgaW5maW5pdGUgbG9vcGluZyBvbiBpbnZhbGlkIGRhdGVzCgkJd2hpbGUgKGQuZ2V0RGF0ZSgpICE9IGNoZWNrLmdldERhdGUoKSkgewoJCQlkLnNldFRpbWUoK2QgKyAoZCA8IGNoZWNrID8gMSA6IC0xKSAqIEhPVVJfTVMpOwoJCX0KCX0KfQoKCmZ1bmN0aW9uIGFkZE1pbnV0ZXMoZCwgbikgewoJZC5zZXRNaW51dGVzKGQuZ2V0TWludXRlcygpICsgbik7CglyZXR1cm4gZDsKfQoKCmZ1bmN0aW9uIGNsZWFyVGltZShkKSB7CglkLnNldEhvdXJzKDApOwoJZC5zZXRNaW51dGVzKDApOwoJZC5zZXRTZWNvbmRzKDApOwoJZC5zZXRNaWxsaXNlY29uZHMoMCk7CglyZXR1cm4gZDsKfQoKCmZ1bmN0aW9uIGNsb25lRGF0ZShkLCBkb250S2VlcFRpbWUpIHsKCWlmIChkb250S2VlcFRpbWUpIHsKCQlyZXR1cm4gY2xlYXJUaW1lKG5ldyBEYXRlKCtkKSk7Cgl9CglyZXR1cm4gbmV3IERhdGUoK2QpOwp9CgoKZnVuY3Rpb24gemVyb0RhdGUoKSB7IC8vIHJldHVybnMgYSBEYXRlIHdpdGggdGltZSAwMDowMDowMCBhbmQgZGF0ZU9mTW9udGg9MQoJdmFyIGk9MCwgZDsKCWRvIHsKCQlkID0gbmV3IERhdGUoMTk3MCwgaSsrLCAxKTsKCX0gd2hpbGUgKGQuZ2V0SG91cnMoKSk7IC8vICE9IDAKCXJldHVybiBkOwp9CgoKZnVuY3Rpb24gZGF5RGlmZihkMSwgZDIpIHsgLy8gZDEgLSBkMgoJcmV0dXJuIE1hdGgucm91bmQoKGNsb25lRGF0ZShkMSwgdHJ1ZSkgLSBjbG9uZURhdGUoZDIsIHRydWUpKSAvIERBWV9NUyk7Cn0KCgpmdW5jdGlvbiBzZXRZTUQoZGF0ZSwgeSwgbSwgZCkgewoJaWYgKHkgIT09IHVuZGVmaW5lZCAmJiB5ICE9IGRhdGUuZ2V0RnVsbFllYXIoKSkgewoJCWRhdGUuc2V0RGF0ZSgxKTsKCQlkYXRlLnNldE1vbnRoKDApOwoJCWRhdGUuc2V0RnVsbFllYXIoeSk7Cgl9CglpZiAobSAhPT0gdW5kZWZpbmVkICYmIG0gIT0gZGF0ZS5nZXRNb250aCgpKSB7CgkJZGF0ZS5zZXREYXRlKDEpOwoJCWRhdGUuc2V0TW9udGgobSk7Cgl9CglpZiAoZCAhPT0gdW5kZWZpbmVkKSB7CgkJZGF0ZS5zZXREYXRlKGQpOwoJfQp9CgoKCi8qIERhdGUgUGFyc2luZwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoKZnVuY3Rpb24gcGFyc2VEYXRlKHMsIGlnbm9yZVRpbWV6b25lKSB7IC8vIGlnbm9yZVRpbWV6b25lIGRlZmF1bHRzIHRvIHRydWUKCWlmICh0eXBlb2YgcyA9PSAnb2JqZWN0JykgeyAvLyBhbHJlYWR5IGEgRGF0ZSBvYmplY3QKCQlyZXR1cm4gczsKCX0KCWlmICh0eXBlb2YgcyA9PSAnbnVtYmVyJykgeyAvLyBhIFVOSVggdGltZXN0YW1wCgkJcmV0dXJuIG5ldyBEYXRlKHMgKiAxMDAwKTsKCX0KCWlmICh0eXBlb2YgcyA9PSAnc3RyaW5nJykgewoJCWlmIChzLm1hdGNoKC9eXGQrKFwuXGQrKT8kLykpIHsgLy8gYSBVTklYIHRpbWVzdGFtcAoJCQlyZXR1cm4gbmV3IERhdGUocGFyc2VGbG9hdChzKSAqIDEwMDApOwoJCX0KCQlpZiAoaWdub3JlVGltZXpvbmUgPT09IHVuZGVmaW5lZCkgewoJCQlpZ25vcmVUaW1lem9uZSA9IHRydWU7CgkJfQoJCXJldHVybiBwYXJzZUlTTzg2MDEocywgaWdub3JlVGltZXpvbmUpIHx8IChzID8gbmV3IERhdGUocykgOiBudWxsKTsKCX0KCS8vIFRPRE86IG5ldmVyIHJldHVybiBpbnZhbGlkIGRhdGVzIChsaWtlIGZyb20gbmV3IERhdGUoPHN0cmluZz4pKSwgcmV0dXJuIG51bGwgaW5zdGVhZAoJcmV0dXJuIG51bGw7Cn0KCgpmdW5jdGlvbiBwYXJzZUlTTzg2MDEocywgaWdub3JlVGltZXpvbmUpIHsgLy8gaWdub3JlVGltZXpvbmUgZGVmYXVsdHMgdG8gZmFsc2UKCS8vIGRlcml2ZWQgZnJvbSBodHRwOi8vZGVsZXRlLm1lLnVrLzIwMDUvMDMvaXNvODYwMS5odG1sCgkvLyBUT0RPOiBmb3IgYSBrbm93IGdsaXRjaC9mZWF0dXJlLCByZWFkIHRlc3RzL2lzc3VlXzIwNl9wYXJzZURhdGVfZHN0Lmh0bWwKCXZhciBtID0gcy5tYXRjaCgvXihbMC05XXs0fSkoLShbMC05XXsyfSkoLShbMC05XXsyfSkoW1QgXShbMC05XXsyfSk6KFswLTldezJ9KSg6KFswLTldezJ9KShcLihbMC05XSspKT8pPyhafCgoWy0rXSkoWzAtOV17Mn0pKDo/KFswLTldezJ9KSk/KSk/KT8pPyk/JC8pOwoJaWYgKCFtKSB7CgkJcmV0dXJuIG51bGw7Cgl9Cgl2YXIgZGF0ZSA9IG5ldyBEYXRlKG1bMV0sIDAsIDEpOwoJaWYgKGlnbm9yZVRpbWV6b25lIHx8ICFtWzEzXSkgewoJCXZhciBjaGVjayA9IG5ldyBEYXRlKG1bMV0sIDAsIDEsIDksIDApOwoJCWlmIChtWzNdKSB7CgkJCWRhdGUuc2V0TW9udGgobVszXSAtIDEpOwoJCQljaGVjay5zZXRNb250aChtWzNdIC0gMSk7CgkJfQoJCWlmIChtWzVdKSB7CgkJCWRhdGUuc2V0RGF0ZShtWzVdKTsKCQkJY2hlY2suc2V0RGF0ZShtWzVdKTsKCQl9CgkJZml4RGF0ZShkYXRlLCBjaGVjayk7CgkJaWYgKG1bN10pIHsKCQkJZGF0ZS5zZXRIb3VycyhtWzddKTsKCQl9CgkJaWYgKG1bOF0pIHsKCQkJZGF0ZS5zZXRNaW51dGVzKG1bOF0pOwoJCX0KCQlpZiAobVsxMF0pIHsKCQkJZGF0ZS5zZXRTZWNvbmRzKG1bMTBdKTsKCQl9CgkJaWYgKG1bMTJdKSB7CgkJCWRhdGUuc2V0TWlsbGlzZWNvbmRzKE51bWJlcigiMC4iICsgbVsxMl0pICogMTAwMCk7CgkJfQoJCWZpeERhdGUoZGF0ZSwgY2hlY2spOwoJfWVsc2V7CgkJZGF0ZS5zZXRVVENGdWxsWWVhcigKCQkJbVsxXSwKCQkJbVszXSA/IG1bM10gLSAxIDogMCwKCQkJbVs1XSB8fCAxCgkJKTsKCQlkYXRlLnNldFVUQ0hvdXJzKAoJCQltWzddIHx8IDAsCgkJCW1bOF0gfHwgMCwKCQkJbVsxMF0gfHwgMCwKCQkJbVsxMl0gPyBOdW1iZXIoIjAuIiArIG1bMTJdKSAqIDEwMDAgOiAwCgkJKTsKCQlpZiAobVsxNF0pIHsKCQkJdmFyIG9mZnNldCA9IE51bWJlcihtWzE2XSkgKiA2MCArIChtWzE4XSA/IE51bWJlcihtWzE4XSkgOiAwKTsKCQkJb2Zmc2V0ICo9IG1bMTVdID09ICctJyA/IDEgOiAtMTsKCQkJZGF0ZSA9IG5ldyBEYXRlKCtkYXRlICsgKG9mZnNldCAqIDYwICogMTAwMCkpOwoJCX0KCX0KCXJldHVybiBkYXRlOwp9CgoKZnVuY3Rpb24gcGFyc2VUaW1lKHMpIHsgLy8gcmV0dXJucyBtaW51dGVzIHNpbmNlIHN0YXJ0IG9mIGRheQoJaWYgKHR5cGVvZiBzID09ICdudW1iZXInKSB7IC8vIGFuIGhvdXIKCQlyZXR1cm4gcyAqIDYwOwoJfQoJaWYgKHR5cGVvZiBzID09ICdvYmplY3QnKSB7IC8vIGEgRGF0ZSBvYmplY3QKCQlyZXR1cm4gcy5nZXRIb3VycygpICogNjAgKyBzLmdldE1pbnV0ZXMoKTsKCX0KCXZhciBtID0gcy5tYXRjaCgvKFxkKykoPzo6KFxkKykpP1xzKihcdyspPy8pOwoJaWYgKG0pIHsKCQl2YXIgaCA9IHBhcnNlSW50KG1bMV0sIDEwKTsKCQlpZiAobVszXSkgewoJCQloICU9IDEyOwoJCQlpZiAobVszXS50b0xvd2VyQ2FzZSgpLmNoYXJBdCgwKSA9PSAncCcpIHsKCQkJCWggKz0gMTI7CgkJCX0KCQl9CgkJcmV0dXJuIGggKiA2MCArIChtWzJdID8gcGFyc2VJbnQobVsyXSwgMTApIDogMCk7Cgl9Cn0KCgoKLyogRGF0ZSBGb3JtYXR0aW5nCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLy8gVE9ETzogdXNlIHNhbWUgZnVuY3Rpb24gZm9ybWF0RGF0ZShkYXRlLCBbZGF0ZTJdLCBmb3JtYXQsIFtvcHRpb25zXSkKCgpmdW5jdGlvbiBmb3JtYXREYXRlKGRhdGUsIGZvcm1hdCwgb3B0aW9ucykgewoJcmV0dXJuIGZvcm1hdERhdGVzKGRhdGUsIG51bGwsIGZvcm1hdCwgb3B0aW9ucyk7Cn0KCgpmdW5jdGlvbiBmb3JtYXREYXRlcyhkYXRlMSwgZGF0ZTIsIGZvcm1hdCwgb3B0aW9ucykgewoJb3B0aW9ucyA9IG9wdGlvbnMgfHwgZGVmYXVsdHM7Cgl2YXIgZGF0ZSA9IGRhdGUxLAoJCW90aGVyRGF0ZSA9IGRhdGUyLAoJCWksIGxlbiA9IGZvcm1hdC5sZW5ndGgsIGMsCgkJaTIsIGZvcm1hdHRlciwKCQlyZXMgPSAnJzsKCWZvciAoaT0wOyBpPGxlbjsgaSsrKSB7CgkJYyA9IGZvcm1hdC5jaGFyQXQoaSk7CgkJaWYgKGMgPT0gIiciKSB7CgkJCWZvciAoaTI9aSsxOyBpMjxsZW47IGkyKyspIHsKCQkJCWlmIChmb3JtYXQuY2hhckF0KGkyKSA9PSAiJyIpIHsKCQkJCQlpZiAoZGF0ZSkgewoJCQkJCQlpZiAoaTIgPT0gaSsxKSB7CgkJCQkJCQlyZXMgKz0gIiciOwoJCQkJCQl9ZWxzZXsKCQkJCQkJCXJlcyArPSBmb3JtYXQuc3Vic3RyaW5nKGkrMSwgaTIpOwoJCQkJCQl9CgkJCQkJCWkgPSBpMjsKCQkJCQl9CgkJCQkJYnJlYWs7CgkJCQl9CgkJCX0KCQl9CgkJZWxzZSBpZiAoYyA9PSAnKCcpIHsKCQkJZm9yIChpMj1pKzE7IGkyPGxlbjsgaTIrKykgewoJCQkJaWYgKGZvcm1hdC5jaGFyQXQoaTIpID09ICcpJykgewoJCQkJCXZhciBzdWJyZXMgPSBmb3JtYXREYXRlKGRhdGUsIGZvcm1hdC5zdWJzdHJpbmcoaSsxLCBpMiksIG9wdGlvbnMpOwoJCQkJCWlmIChwYXJzZUludChzdWJyZXMucmVwbGFjZSgvXEQvLCAnJyksIDEwKSkgewoJCQkJCQlyZXMgKz0gc3VicmVzOwoJCQkJCX0KCQkJCQlpID0gaTI7CgkJCQkJYnJlYWs7CgkJCQl9CgkJCX0KCQl9CgkJZWxzZSBpZiAoYyA9PSAnWycpIHsKCQkJZm9yIChpMj1pKzE7IGkyPGxlbjsgaTIrKykgewoJCQkJaWYgKGZvcm1hdC5jaGFyQXQoaTIpID09ICddJykgewoJCQkJCXZhciBzdWJmb3JtYXQgPSBmb3JtYXQuc3Vic3RyaW5nKGkrMSwgaTIpOwoJCQkJCXZhciBzdWJyZXMgPSBmb3JtYXREYXRlKGRhdGUsIHN1YmZvcm1hdCwgb3B0aW9ucyk7CgkJCQkJaWYgKHN1YnJlcyAhPSBmb3JtYXREYXRlKG90aGVyRGF0ZSwgc3ViZm9ybWF0LCBvcHRpb25zKSkgewoJCQkJCQlyZXMgKz0gc3VicmVzOwoJCQkJCX0KCQkJCQlpID0gaTI7CgkJCQkJYnJlYWs7CgkJCQl9CgkJCX0KCQl9CgkJZWxzZSBpZiAoYyA9PSAneycpIHsKCQkJZGF0ZSA9IGRhdGUyOwoJCQlvdGhlckRhdGUgPSBkYXRlMTsKCQl9CgkJZWxzZSBpZiAoYyA9PSAnfScpIHsKCQkJZGF0ZSA9IGRhdGUxOwoJCQlvdGhlckRhdGUgPSBkYXRlMjsKCQl9CgkJZWxzZSB7CgkJCWZvciAoaTI9bGVuOyBpMj5pOyBpMi0tKSB7CgkJCQlpZiAoZm9ybWF0dGVyID0gZGF0ZUZvcm1hdHRlcnNbZm9ybWF0LnN1YnN0cmluZyhpLCBpMildKSB7CgkJCQkJaWYgKGRhdGUpIHsKCQkJCQkJcmVzICs9IGZvcm1hdHRlcihkYXRlLCBvcHRpb25zKTsKCQkJCQl9CgkJCQkJaSA9IGkyIC0gMTsKCQkJCQlicmVhazsKCQkJCX0KCQkJfQoJCQlpZiAoaTIgPT0gaSkgewoJCQkJaWYgKGRhdGUpIHsKCQkJCQlyZXMgKz0gYzsKCQkJCX0KCQkJfQoJCX0KCX0KCXJldHVybiByZXM7Cn07CgoKdmFyIGRhdGVGb3JtYXR0ZXJzID0gewoJcwk6IGZ1bmN0aW9uKGQpCXsgcmV0dXJuIGQuZ2V0U2Vjb25kcygpIH0sCglzcwk6IGZ1bmN0aW9uKGQpCXsgcmV0dXJuIHplcm9QYWQoZC5nZXRTZWNvbmRzKCkpIH0sCgltCTogZnVuY3Rpb24oZCkJeyByZXR1cm4gZC5nZXRNaW51dGVzKCkgfSwKCW1tCTogZnVuY3Rpb24oZCkJeyByZXR1cm4gemVyb1BhZChkLmdldE1pbnV0ZXMoKSkgfSwKCWgJOiBmdW5jdGlvbihkKQl7IHJldHVybiBkLmdldEhvdXJzKCkgJSAxMiB8fCAxMiB9LAoJaGgJOiBmdW5jdGlvbihkKQl7IHJldHVybiB6ZXJvUGFkKGQuZ2V0SG91cnMoKSAlIDEyIHx8IDEyKSB9LAoJSAk6IGZ1bmN0aW9uKGQpCXsgcmV0dXJuIGQuZ2V0SG91cnMoKSB9LAoJSEgJOiBmdW5jdGlvbihkKQl7IHJldHVybiB6ZXJvUGFkKGQuZ2V0SG91cnMoKSkgfSwKCWQJOiBmdW5jdGlvbihkKQl7IHJldHVybiBkLmdldERhdGUoKSB9LAoJZGQJOiBmdW5jdGlvbihkKQl7IHJldHVybiB6ZXJvUGFkKGQuZ2V0RGF0ZSgpKSB9LAoJZGRkCTogZnVuY3Rpb24oZCxvKQl7IHJldHVybiBvLmRheU5hbWVzU2hvcnRbZC5nZXREYXkoKV0gfSwKCWRkZGQ6IGZ1bmN0aW9uKGQsbykJeyByZXR1cm4gby5kYXlOYW1lc1tkLmdldERheSgpXSB9LAoJTQk6IGZ1bmN0aW9uKGQpCXsgcmV0dXJuIGQuZ2V0TW9udGgoKSArIDEgfSwKCU1NCTogZnVuY3Rpb24oZCkJeyByZXR1cm4gemVyb1BhZChkLmdldE1vbnRoKCkgKyAxKSB9LAoJTU1NCTogZnVuY3Rpb24oZCxvKQl7IHJldHVybiBvLm1vbnRoTmFtZXNTaG9ydFtkLmdldE1vbnRoKCldIH0sCglNTU1NOiBmdW5jdGlvbihkLG8pCXsgcmV0dXJuIG8ubW9udGhOYW1lc1tkLmdldE1vbnRoKCldIH0sCgl5eQk6IGZ1bmN0aW9uKGQpCXsgcmV0dXJuIChkLmdldEZ1bGxZZWFyKCkrJycpLnN1YnN0cmluZygyKSB9LAoJeXl5eTogZnVuY3Rpb24oZCkJeyByZXR1cm4gZC5nZXRGdWxsWWVhcigpIH0sCgl0CTogZnVuY3Rpb24oZCkJeyByZXR1cm4gZC5nZXRIb3VycygpIDwgMTIgPyAnYScgOiAncCcgfSwKCXR0CTogZnVuY3Rpb24oZCkJeyByZXR1cm4gZC5nZXRIb3VycygpIDwgMTIgPyAnYW0nIDogJ3BtJyB9LAoJVAk6IGZ1bmN0aW9uKGQpCXsgcmV0dXJuIGQuZ2V0SG91cnMoKSA8IDEyID8gJ0EnIDogJ1AnIH0sCglUVAk6IGZ1bmN0aW9uKGQpCXsgcmV0dXJuIGQuZ2V0SG91cnMoKSA8IDEyID8gJ0FNJyA6ICdQTScgfSwKCXUJOiBmdW5jdGlvbihkKQl7IHJldHVybiBmb3JtYXREYXRlKGQsICJ5eXl5LU1NLWRkJ1QnSEg6bW06c3MnWiciKSB9LAoJUwk6IGZ1bmN0aW9uKGQpCXsKCQl2YXIgZGF0ZSA9IGQuZ2V0RGF0ZSgpOwoJCWlmIChkYXRlID4gMTAgJiYgZGF0ZSA8IDIwKSB7CgkJCXJldHVybiAndGgnOwoJCX0KCQlyZXR1cm4gWydzdCcsICduZCcsICdyZCddW2RhdGUlMTAtMV0gfHwgJ3RoJzsKCX0sCgl3ICAgOiBmdW5jdGlvbihkLCBvKSB7IC8vIGxvY2FsCgkJcmV0dXJuIG8ud2Vla051bWJlckNhbGN1bGF0aW9uKGQpOwoJfSwKCVcgICA6IGZ1bmN0aW9uKGQpIHsgLy8gSVNPCgkJcmV0dXJuIGlzbzg2MDFXZWVrKGQpOwoJfQp9OwpmYy5kYXRlRm9ybWF0dGVycyA9IGRhdGVGb3JtYXR0ZXJzOwoKCi8qIHRoYW5rcyBqUXVlcnkgVUkgKGh0dHBzOi8vZ2l0aHViLmNvbS9qcXVlcnkvanF1ZXJ5LXVpL2Jsb2IvbWFzdGVyL3VpL2pxdWVyeS51aS5kYXRlcGlja2VyLmpzKQogKgogKiBTZXQgYXMgY2FsY3VsYXRlV2VlayB0byBkZXRlcm1pbmUgdGhlIHdlZWsgb2YgdGhlIHllYXIgYmFzZWQgb24gdGhlIElTTyA4NjAxIGRlZmluaXRpb24uCiAqIGBkYXRlYCAtIHRoZSBkYXRlIHRvIGdldCB0aGUgd2VlayBmb3IKICogYG51bWJlcmAgLSB0aGUgbnVtYmVyIG9mIHRoZSB3ZWVrIHdpdGhpbiB0aGUgeWVhciB0aGF0IGNvbnRhaW5zIHRoaXMgZGF0ZQogKi8KZnVuY3Rpb24gaXNvODYwMVdlZWsoZGF0ZSkgewoJdmFyIHRpbWU7Cgl2YXIgY2hlY2tEYXRlID0gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkpOwoKCS8vIEZpbmQgVGh1cnNkYXkgb2YgdGhpcyB3ZWVrIHN0YXJ0aW5nIG9uIE1vbmRheQoJY2hlY2tEYXRlLnNldERhdGUoY2hlY2tEYXRlLmdldERhdGUoKSArIDQgLSAoY2hlY2tEYXRlLmdldERheSgpIHx8IDcpKTsKCgl0aW1lID0gY2hlY2tEYXRlLmdldFRpbWUoKTsKCWNoZWNrRGF0ZS5zZXRNb250aCgwKTsgLy8gQ29tcGFyZSB3aXRoIEphbiAxCgljaGVja0RhdGUuc2V0RGF0ZSgxKTsKCXJldHVybiBNYXRoLmZsb29yKE1hdGgucm91bmQoKHRpbWUgLSBjaGVja0RhdGUpIC8gODY0MDAwMDApIC8gNykgKyAxOwp9CgoKOzsKCmZjLmFwcGx5QWxsID0gYXBwbHlBbGw7CgoKLyogRXZlbnQgRGF0ZSBNYXRoCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCgpmdW5jdGlvbiBleGNsRW5kRGF5KGV2ZW50KSB7CglpZiAoZXZlbnQuZW5kKSB7CgkJcmV0dXJuIF9leGNsRW5kRGF5KGV2ZW50LmVuZCwgZXZlbnQuYWxsRGF5KTsKCX1lbHNlewoJCXJldHVybiBhZGREYXlzKGNsb25lRGF0ZShldmVudC5zdGFydCksIDEpOwoJfQp9CgoKZnVuY3Rpb24gX2V4Y2xFbmREYXkoZW5kLCBhbGxEYXkpIHsKCWVuZCA9IGNsb25lRGF0ZShlbmQpOwoJcmV0dXJuIGFsbERheSB8fCBlbmQuZ2V0SG91cnMoKSB8fCBlbmQuZ2V0TWludXRlcygpID8gYWRkRGF5cyhlbmQsIDEpIDogY2xlYXJUaW1lKGVuZCk7CgkvLyB3aHkgZG9uJ3Qgd2UgY2hlY2sgZm9yIHNlY29uZHMvbXMgdG9vPwp9CgoKCi8qIEV2ZW50IEVsZW1lbnQgQmluZGluZwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoKZnVuY3Rpb24gbGF6eVNlZ0JpbmQoY29udGFpbmVyLCBzZWdzLCBiaW5kSGFuZGxlcnMpIHsKCWNvbnRhaW5lci51bmJpbmQoJ21vdXNlb3ZlcicpLm1vdXNlb3ZlcihmdW5jdGlvbihldikgewoJCXZhciBwYXJlbnQ9ZXYudGFyZ2V0LCBlLAoJCQlpLCBzZWc7CgkJd2hpbGUgKHBhcmVudCAhPSB0aGlzKSB7CgkJCWUgPSBwYXJlbnQ7CgkJCXBhcmVudCA9IHBhcmVudC5wYXJlbnROb2RlOwoJCX0KCQlpZiAoKGkgPSBlLl9mY2kpICE9PSB1bmRlZmluZWQpIHsKCQkJZS5fZmNpID0gdW5kZWZpbmVkOwoJCQlzZWcgPSBzZWdzW2ldOwoJCQliaW5kSGFuZGxlcnMoc2VnLmV2ZW50LCBzZWcuZWxlbWVudCwgc2VnKTsKCQkJJChldi50YXJnZXQpLnRyaWdnZXIoZXYpOwoJCX0KCQlldi5zdG9wUHJvcGFnYXRpb24oKTsKCX0pOwp9CgoKCi8qIEVsZW1lbnQgRGltZW5zaW9ucwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoKZnVuY3Rpb24gc2V0T3V0ZXJXaWR0aChlbGVtZW50LCB3aWR0aCwgaW5jbHVkZU1hcmdpbnMpIHsKCWZvciAodmFyIGk9MCwgZTsgaTxlbGVtZW50Lmxlbmd0aDsgaSsrKSB7CgkJZSA9ICQoZWxlbWVudFtpXSk7CgkJZS53aWR0aChNYXRoLm1heCgwLCB3aWR0aCAtIGhzaWRlcyhlLCBpbmNsdWRlTWFyZ2lucykpKTsKCX0KfQoKCmZ1bmN0aW9uIHNldE91dGVySGVpZ2h0KGVsZW1lbnQsIGhlaWdodCwgaW5jbHVkZU1hcmdpbnMpIHsKCWZvciAodmFyIGk9MCwgZTsgaTxlbGVtZW50Lmxlbmd0aDsgaSsrKSB7CgkJZSA9ICQoZWxlbWVudFtpXSk7CgkJZS5oZWlnaHQoTWF0aC5tYXgoMCwgaGVpZ2h0IC0gdnNpZGVzKGUsIGluY2x1ZGVNYXJnaW5zKSkpOwoJfQp9CgoKZnVuY3Rpb24gaHNpZGVzKGVsZW1lbnQsIGluY2x1ZGVNYXJnaW5zKSB7CglyZXR1cm4gaHBhZGRpbmcoZWxlbWVudCkgKyBoYm9yZGVycyhlbGVtZW50KSArIChpbmNsdWRlTWFyZ2lucyA/IGhtYXJnaW5zKGVsZW1lbnQpIDogMCk7Cn0KCgpmdW5jdGlvbiBocGFkZGluZyhlbGVtZW50KSB7CglyZXR1cm4gKHBhcnNlRmxvYXQoJC5jc3MoZWxlbWVudFswXSwgJ3BhZGRpbmdMZWZ0JywgdHJ1ZSkpIHx8IDApICsKCSAgICAgICAocGFyc2VGbG9hdCgkLmNzcyhlbGVtZW50WzBdLCAncGFkZGluZ1JpZ2h0JywgdHJ1ZSkpIHx8IDApOwp9CgoKZnVuY3Rpb24gaG1hcmdpbnMoZWxlbWVudCkgewoJcmV0dXJuIChwYXJzZUZsb2F0KCQuY3NzKGVsZW1lbnRbMF0sICdtYXJnaW5MZWZ0JywgdHJ1ZSkpIHx8IDApICsKCSAgICAgICAocGFyc2VGbG9hdCgkLmNzcyhlbGVtZW50WzBdLCAnbWFyZ2luUmlnaHQnLCB0cnVlKSkgfHwgMCk7Cn0KCgpmdW5jdGlvbiBoYm9yZGVycyhlbGVtZW50KSB7CglyZXR1cm4gKHBhcnNlRmxvYXQoJC5jc3MoZWxlbWVudFswXSwgJ2JvcmRlckxlZnRXaWR0aCcsIHRydWUpKSB8fCAwKSArCgkgICAgICAgKHBhcnNlRmxvYXQoJC5jc3MoZWxlbWVudFswXSwgJ2JvcmRlclJpZ2h0V2lkdGgnLCB0cnVlKSkgfHwgMCk7Cn0KCgpmdW5jdGlvbiB2c2lkZXMoZWxlbWVudCwgaW5jbHVkZU1hcmdpbnMpIHsKCXJldHVybiB2cGFkZGluZyhlbGVtZW50KSArICB2Ym9yZGVycyhlbGVtZW50KSArIChpbmNsdWRlTWFyZ2lucyA/IHZtYXJnaW5zKGVsZW1lbnQpIDogMCk7Cn0KCgpmdW5jdGlvbiB2cGFkZGluZyhlbGVtZW50KSB7CglyZXR1cm4gKHBhcnNlRmxvYXQoJC5jc3MoZWxlbWVudFswXSwgJ3BhZGRpbmdUb3AnLCB0cnVlKSkgfHwgMCkgKwoJICAgICAgIChwYXJzZUZsb2F0KCQuY3NzKGVsZW1lbnRbMF0sICdwYWRkaW5nQm90dG9tJywgdHJ1ZSkpIHx8IDApOwp9CgoKZnVuY3Rpb24gdm1hcmdpbnMoZWxlbWVudCkgewoJcmV0dXJuIChwYXJzZUZsb2F0KCQuY3NzKGVsZW1lbnRbMF0sICdtYXJnaW5Ub3AnLCB0cnVlKSkgfHwgMCkgKwoJICAgICAgIChwYXJzZUZsb2F0KCQuY3NzKGVsZW1lbnRbMF0sICdtYXJnaW5Cb3R0b20nLCB0cnVlKSkgfHwgMCk7Cn0KCgpmdW5jdGlvbiB2Ym9yZGVycyhlbGVtZW50KSB7CglyZXR1cm4gKHBhcnNlRmxvYXQoJC5jc3MoZWxlbWVudFswXSwgJ2JvcmRlclRvcFdpZHRoJywgdHJ1ZSkpIHx8IDApICsKCSAgICAgICAocGFyc2VGbG9hdCgkLmNzcyhlbGVtZW50WzBdLCAnYm9yZGVyQm90dG9tV2lkdGgnLCB0cnVlKSkgfHwgMCk7Cn0KCgoKLyogTWlzYyBVdGlscwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoKLy9UT0RPOiBhcnJheVNsaWNlCi8vVE9ETzogaXNGdW5jdGlvbiwgZ3JlcCA/CgoKZnVuY3Rpb24gbm9vcCgpIHsgfQoKCmZ1bmN0aW9uIGRhdGVDb21wYXJlKGEsIGIpIHsKCXJldHVybiBhIC0gYjsKfQoKCmZ1bmN0aW9uIGFycmF5TWF4KGEpIHsKCXJldHVybiBNYXRoLm1heC5hcHBseShNYXRoLCBhKTsKfQoKCmZ1bmN0aW9uIHplcm9QYWQobikgewoJcmV0dXJuIChuIDwgMTAgPyAnMCcgOiAnJykgKyBuOwp9CgoKZnVuY3Rpb24gc21hcnRQcm9wZXJ0eShvYmosIG5hbWUpIHsgLy8gZ2V0IGEgY2FtZWwtY2FzZWQvbmFtZXNwYWNlZCBwcm9wZXJ0eSBvZiBhbiBvYmplY3QKCWlmIChvYmpbbmFtZV0gIT09IHVuZGVmaW5lZCkgewoJCXJldHVybiBvYmpbbmFtZV07Cgl9Cgl2YXIgcGFydHMgPSBuYW1lLnNwbGl0KC8oPz1bQS1aXSkvKSwKCQlpPXBhcnRzLmxlbmd0aC0xLCByZXM7Cglmb3IgKDsgaT49MDsgaS0tKSB7CgkJcmVzID0gb2JqW3BhcnRzW2ldLnRvTG93ZXJDYXNlKCldOwoJCWlmIChyZXMgIT09IHVuZGVmaW5lZCkgewoJCQlyZXR1cm4gcmVzOwoJCX0KCX0KCXJldHVybiBvYmpbJyddOwp9CgoKZnVuY3Rpb24gaHRtbEVzY2FwZShzKSB7CglyZXR1cm4gcy5yZXBsYWNlKC8mL2csICcmYW1wOycpCgkJLnJlcGxhY2UoLzwvZywgJyZsdDsnKQoJCS5yZXBsYWNlKC8+L2csICcmZ3Q7JykKCQkucmVwbGFjZSgvJy9nLCAnJiMwMzk7JykKCQkucmVwbGFjZSgvIi9nLCAnJnF1b3Q7JykKCQkucmVwbGFjZSgvXG4vZywgJzxiciAvPicpOwp9CgoKZnVuY3Rpb24gZGlzYWJsZVRleHRTZWxlY3Rpb24oZWxlbWVudCkgewoJZWxlbWVudAoJCS5hdHRyKCd1bnNlbGVjdGFibGUnLCAnb24nKQoJCS5jc3MoJ01velVzZXJTZWxlY3QnLCAnbm9uZScpCgkJLmJpbmQoJ3NlbGVjdHN0YXJ0LnVpJywgZnVuY3Rpb24oKSB7IHJldHVybiBmYWxzZTsgfSk7Cn0KCgovKgpmdW5jdGlvbiBlbmFibGVUZXh0U2VsZWN0aW9uKGVsZW1lbnQpIHsKCWVsZW1lbnQKCQkuYXR0cigndW5zZWxlY3RhYmxlJywgJ29mZicpCgkJLmNzcygnTW96VXNlclNlbGVjdCcsICcnKQoJCS51bmJpbmQoJ3NlbGVjdHN0YXJ0LnVpJyk7Cn0KKi8KCgpmdW5jdGlvbiBtYXJrRmlyc3RMYXN0KGUpIHsKCWUuY2hpbGRyZW4oKQoJCS5yZW1vdmVDbGFzcygnZmMtZmlyc3QgZmMtbGFzdCcpCgkJLmZpbHRlcignOmZpcnN0LWNoaWxkJykKCQkJLmFkZENsYXNzKCdmYy1maXJzdCcpCgkJLmVuZCgpCgkJLmZpbHRlcignOmxhc3QtY2hpbGQnKQoJCQkuYWRkQ2xhc3MoJ2ZjLWxhc3QnKTsKfQoKCmZ1bmN0aW9uIHNldERheUlEKGNlbGwsIGRhdGUpIHsKCWNlbGwuZWFjaChmdW5jdGlvbihpLCBfY2VsbCkgewoJCV9jZWxsLmNsYXNzTmFtZSA9IF9jZWxsLmNsYXNzTmFtZS5yZXBsYWNlKC9eZmMtXHcqLywgJ2ZjLScgKyBkYXlJRHNbZGF0ZS5nZXREYXkoKV0pOwoJCS8vIFRPRE86IG1ha2UgYSB3YXkgdGhhdCBkb2Vzbid0IHJlbHkgb24gb3JkZXIgb2YgY2xhc3NlcwoJfSk7Cn0KCgpmdW5jdGlvbiBnZXRTa2luQ3NzKGV2ZW50LCBvcHQpIHsKCXZhciBzb3VyY2UgPSBldmVudC5zb3VyY2UgfHwge307Cgl2YXIgZXZlbnRDb2xvciA9IGV2ZW50LmNvbG9yOwoJdmFyIHNvdXJjZUNvbG9yID0gc291cmNlLmNvbG9yOwoJdmFyIG9wdGlvbkNvbG9yID0gb3B0KCdldmVudENvbG9yJyk7Cgl2YXIgYmFja2dyb3VuZENvbG9yID0KCQlldmVudC5iYWNrZ3JvdW5kQ29sb3IgfHwKCQlldmVudENvbG9yIHx8CgkJc291cmNlLmJhY2tncm91bmRDb2xvciB8fAoJCXNvdXJjZUNvbG9yIHx8CgkJb3B0KCdldmVudEJhY2tncm91bmRDb2xvcicpIHx8CgkJb3B0aW9uQ29sb3I7Cgl2YXIgYm9yZGVyQ29sb3IgPQoJCWV2ZW50LmJvcmRlckNvbG9yIHx8CgkJZXZlbnRDb2xvciB8fAoJCXNvdXJjZS5ib3JkZXJDb2xvciB8fAoJCXNvdXJjZUNvbG9yIHx8CgkJb3B0KCdldmVudEJvcmRlckNvbG9yJykgfHwKCQlvcHRpb25Db2xvcjsKCXZhciB0ZXh0Q29sb3IgPQoJCWV2ZW50LnRleHRDb2xvciB8fAoJCXNvdXJjZS50ZXh0Q29sb3IgfHwKCQlvcHQoJ2V2ZW50VGV4dENvbG9yJyk7Cgl2YXIgc3RhdGVtZW50cyA9IFtdOwoJaWYgKGJhY2tncm91bmRDb2xvcikgewoJCXN0YXRlbWVudHMucHVzaCgnYmFja2dyb3VuZC1jb2xvcjonICsgYmFja2dyb3VuZENvbG9yKTsKCX0KCWlmIChib3JkZXJDb2xvcikgewoJCXN0YXRlbWVudHMucHVzaCgnYm9yZGVyLWNvbG9yOicgKyBib3JkZXJDb2xvcik7Cgl9CglpZiAodGV4dENvbG9yKSB7CgkJc3RhdGVtZW50cy5wdXNoKCdjb2xvcjonICsgdGV4dENvbG9yKTsKCX0KCXJldHVybiBzdGF0ZW1lbnRzLmpvaW4oJzsnKTsKfQoKCmZ1bmN0aW9uIGFwcGx5QWxsKGZ1bmN0aW9ucywgdGhpc09iaiwgYXJncykgewoJaWYgKCQuaXNGdW5jdGlvbihmdW5jdGlvbnMpKSB7CgkJZnVuY3Rpb25zID0gWyBmdW5jdGlvbnMgXTsKCX0KCWlmIChmdW5jdGlvbnMpIHsKCQl2YXIgaTsKCQl2YXIgcmV0OwoJCWZvciAoaT0wOyBpPGZ1bmN0aW9ucy5sZW5ndGg7IGkrKykgewoJCQlyZXQgPSBmdW5jdGlvbnNbaV0uYXBwbHkodGhpc09iaiwgYXJncykgfHwgcmV0OwoJCX0KCQlyZXR1cm4gcmV0OwoJfQp9CgoKZnVuY3Rpb24gZmlyc3REZWZpbmVkKCkgewoJZm9yICh2YXIgaT0wOyBpPGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgewoJCWlmIChhcmd1bWVudHNbaV0gIT09IHVuZGVmaW5lZCkgewoJCQlyZXR1cm4gYXJndW1lbnRzW2ldOwoJCX0KCX0KfQoKCjs7CgpmY1ZpZXdzLm1vbnRoID0gTW9udGhWaWV3OwoKZnVuY3Rpb24gTW9udGhWaWV3KGVsZW1lbnQsIGNhbGVuZGFyKSB7Cgl2YXIgdCA9IHRoaXM7CgoKCS8vIGV4cG9ydHMKCXQucmVuZGVyID0gcmVuZGVyOwoKCgkvLyBpbXBvcnRzCglCYXNpY1ZpZXcuY2FsbCh0LCBlbGVtZW50LCBjYWxlbmRhciwgJ21vbnRoJyk7Cgl2YXIgb3B0ID0gdC5vcHQ7Cgl2YXIgcmVuZGVyQmFzaWMgPSB0LnJlbmRlckJhc2ljOwoJdmFyIHNraXBIaWRkZW5EYXlzID0gdC5za2lwSGlkZGVuRGF5czsKCXZhciBnZXRDZWxsc1BlcldlZWsgPSB0LmdldENlbGxzUGVyV2VlazsKCXZhciBmb3JtYXREYXRlID0gY2FsZW5kYXIuZm9ybWF0RGF0ZTsKCgoJZnVuY3Rpb24gcmVuZGVyKGRhdGUsIGRlbHRhKSB7CgoJCWlmIChkZWx0YSkgewoJCQlhZGRNb250aHMoZGF0ZSwgZGVsdGEpOwoJCQlkYXRlLnNldERhdGUoMSk7CgkJfQoKCQl2YXIgZmlyc3REYXkgPSBvcHQoJ2ZpcnN0RGF5Jyk7CgoJCXZhciBzdGFydCA9IGNsb25lRGF0ZShkYXRlLCB0cnVlKTsKCQlzdGFydC5zZXREYXRlKDEpOwoKCQl2YXIgZW5kID0gYWRkTW9udGhzKGNsb25lRGF0ZShzdGFydCksIDEpOwoKCQl2YXIgdmlzU3RhcnQgPSBjbG9uZURhdGUoc3RhcnQpOwoJCWFkZERheXModmlzU3RhcnQsIC0oKHZpc1N0YXJ0LmdldERheSgpIC0gZmlyc3REYXkgKyA3KSAlIDcpKTsKCQlza2lwSGlkZGVuRGF5cyh2aXNTdGFydCk7CgoJCXZhciB2aXNFbmQgPSBjbG9uZURhdGUoZW5kKTsKCQlhZGREYXlzKHZpc0VuZCwgKDcgLSB2aXNFbmQuZ2V0RGF5KCkgKyBmaXJzdERheSkgJSA3KTsKCQlza2lwSGlkZGVuRGF5cyh2aXNFbmQsIC0xLCB0cnVlKTsKCgkJdmFyIGNvbENudCA9IGdldENlbGxzUGVyV2VlaygpOwoJCXZhciByb3dDbnQgPSBNYXRoLnJvdW5kKGRheURpZmYodmlzRW5kLCB2aXNTdGFydCkgLyA3KTsgLy8gc2hvdWxkIGJlIG5vIG5lZWQgZm9yIE1hdGgucm91bmQKCgkJaWYgKG9wdCgnd2Vla01vZGUnKSA9PSAnZml4ZWQnKSB7CgkJCWFkZERheXModmlzRW5kLCAoNiAtIHJvd0NudCkgKiA3KTsgLy8gYWRkIHdlZWtzIHRvIG1ha2UgdXAgZm9yIGl0CgkJCXJvd0NudCA9IDY7CgkJfQoKCQl0LnRpdGxlID0gZm9ybWF0RGF0ZShzdGFydCwgb3B0KCd0aXRsZUZvcm1hdCcpKTsKCgkJdC5zdGFydCA9IHN0YXJ0OwoJCXQuZW5kID0gZW5kOwoJCXQudmlzU3RhcnQgPSB2aXNTdGFydDsKCQl0LnZpc0VuZCA9IHZpc0VuZDsKCgkJcmVuZGVyQmFzaWMocm93Q250LCBjb2xDbnQsIHRydWUpOwoJfQoKCn0KCjs7CgpmY1ZpZXdzLmJhc2ljV2VlayA9IEJhc2ljV2Vla1ZpZXc7CgpmdW5jdGlvbiBCYXNpY1dlZWtWaWV3KGVsZW1lbnQsIGNhbGVuZGFyKSB7Cgl2YXIgdCA9IHRoaXM7CgoKCS8vIGV4cG9ydHMKCXQucmVuZGVyID0gcmVuZGVyOwoKCgkvLyBpbXBvcnRzCglCYXNpY1ZpZXcuY2FsbCh0LCBlbGVtZW50LCBjYWxlbmRhciwgJ2Jhc2ljV2VlaycpOwoJdmFyIG9wdCA9IHQub3B0OwoJdmFyIHJlbmRlckJhc2ljID0gdC5yZW5kZXJCYXNpYzsKCXZhciBza2lwSGlkZGVuRGF5cyA9IHQuc2tpcEhpZGRlbkRheXM7Cgl2YXIgZ2V0Q2VsbHNQZXJXZWVrID0gdC5nZXRDZWxsc1BlcldlZWs7Cgl2YXIgZm9ybWF0RGF0ZXMgPSBjYWxlbmRhci5mb3JtYXREYXRlczsKCgoJZnVuY3Rpb24gcmVuZGVyKGRhdGUsIGRlbHRhKSB7CgoJCWlmIChkZWx0YSkgewoJCQlhZGREYXlzKGRhdGUsIGRlbHRhICogNyk7CgkJfQoKCQl2YXIgc3RhcnQgPSBhZGREYXlzKGNsb25lRGF0ZShkYXRlKSwgLSgoZGF0ZS5nZXREYXkoKSAtIG9wdCgnZmlyc3REYXknKSArIDcpICUgNykpOwoJCXZhciBlbmQgPSBhZGREYXlzKGNsb25lRGF0ZShzdGFydCksIDcpOwoKCQl2YXIgdmlzU3RhcnQgPSBjbG9uZURhdGUoc3RhcnQpOwoJCXNraXBIaWRkZW5EYXlzKHZpc1N0YXJ0KTsKCgkJdmFyIHZpc0VuZCA9IGNsb25lRGF0ZShlbmQpOwoJCXNraXBIaWRkZW5EYXlzKHZpc0VuZCwgLTEsIHRydWUpOwoKCQl2YXIgY29sQ250ID0gZ2V0Q2VsbHNQZXJXZWVrKCk7CgoJCXQuc3RhcnQgPSBzdGFydDsKCQl0LmVuZCA9IGVuZDsKCQl0LnZpc1N0YXJ0ID0gdmlzU3RhcnQ7CgkJdC52aXNFbmQgPSB2aXNFbmQ7CgoJCXQudGl0bGUgPSBmb3JtYXREYXRlcygKCQkJdmlzU3RhcnQsCgkJCWFkZERheXMoY2xvbmVEYXRlKHZpc0VuZCksIC0xKSwKCQkJb3B0KCd0aXRsZUZvcm1hdCcpCgkJKTsKCgkJcmVuZGVyQmFzaWMoMSwgY29sQ250LCBmYWxzZSk7Cgl9CgoKfQoKOzsKCmZjVmlld3MuYmFzaWNEYXkgPSBCYXNpY0RheVZpZXc7CgoKZnVuY3Rpb24gQmFzaWNEYXlWaWV3KGVsZW1lbnQsIGNhbGVuZGFyKSB7Cgl2YXIgdCA9IHRoaXM7CgoKCS8vIGV4cG9ydHMKCXQucmVuZGVyID0gcmVuZGVyOwoKCgkvLyBpbXBvcnRzCglCYXNpY1ZpZXcuY2FsbCh0LCBlbGVtZW50LCBjYWxlbmRhciwgJ2Jhc2ljRGF5Jyk7Cgl2YXIgb3B0ID0gdC5vcHQ7Cgl2YXIgcmVuZGVyQmFzaWMgPSB0LnJlbmRlckJhc2ljOwoJdmFyIHNraXBIaWRkZW5EYXlzID0gdC5za2lwSGlkZGVuRGF5czsKCXZhciBmb3JtYXREYXRlID0gY2FsZW5kYXIuZm9ybWF0RGF0ZTsKCgoJZnVuY3Rpb24gcmVuZGVyKGRhdGUsIGRlbHRhKSB7CgoJCWlmIChkZWx0YSkgewoJCQlhZGREYXlzKGRhdGUsIGRlbHRhKTsKCQl9CgkJc2tpcEhpZGRlbkRheXMoZGF0ZSwgZGVsdGEgPCAwID8gLTEgOiAxKTsKCgkJdmFyIHN0YXJ0ID0gY2xvbmVEYXRlKGRhdGUsIHRydWUpOwoJCXZhciBlbmQgPSBhZGREYXlzKGNsb25lRGF0ZShzdGFydCksIDEpOwoKCQl0LnRpdGxlID0gZm9ybWF0RGF0ZShkYXRlLCBvcHQoJ3RpdGxlRm9ybWF0JykpOwoKCQl0LnN0YXJ0ID0gdC52aXNTdGFydCA9IHN0YXJ0OwoJCXQuZW5kID0gdC52aXNFbmQgPSBlbmQ7CgoJCXJlbmRlckJhc2ljKDEsIDEsIGZhbHNlKTsKCX0KCgp9Cgo7OwoKc2V0RGVmYXVsdHMoewoJd2Vla01vZGU6ICdmaXhlZCcKfSk7CgoKZnVuY3Rpb24gQmFzaWNWaWV3KGVsZW1lbnQsIGNhbGVuZGFyLCB2aWV3TmFtZSkgewoJdmFyIHQgPSB0aGlzOwoKCgkvLyBleHBvcnRzCgl0LnJlbmRlckJhc2ljID0gcmVuZGVyQmFzaWM7Cgl0LnNldEhlaWdodCA9IHNldEhlaWdodDsKCXQuc2V0V2lkdGggPSBzZXRXaWR0aDsKCXQucmVuZGVyRGF5T3ZlcmxheSA9IHJlbmRlckRheU92ZXJsYXk7Cgl0LmRlZmF1bHRTZWxlY3Rpb25FbmQgPSBkZWZhdWx0U2VsZWN0aW9uRW5kOwoJdC5yZW5kZXJTZWxlY3Rpb24gPSByZW5kZXJTZWxlY3Rpb247Cgl0LmNsZWFyU2VsZWN0aW9uID0gY2xlYXJTZWxlY3Rpb247Cgl0LnJlcG9ydERheUNsaWNrID0gcmVwb3J0RGF5Q2xpY2s7IC8vIGZvciBzZWxlY3Rpb24gKGtpbmRhIGhhY2t5KQoJdC5kcmFnU3RhcnQgPSBkcmFnU3RhcnQ7Cgl0LmRyYWdTdG9wID0gZHJhZ1N0b3A7Cgl0LmRlZmF1bHRFdmVudEVuZCA9IGRlZmF1bHRFdmVudEVuZDsKCXQuZ2V0SG92ZXJMaXN0ZW5lciA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gaG92ZXJMaXN0ZW5lciB9OwoJdC5jb2xMZWZ0ID0gY29sTGVmdDsKCXQuY29sUmlnaHQgPSBjb2xSaWdodDsKCXQuY29sQ29udGVudExlZnQgPSBjb2xDb250ZW50TGVmdDsKCXQuY29sQ29udGVudFJpZ2h0ID0gY29sQ29udGVudFJpZ2h0OwoJdC5nZXRJc0NlbGxBbGxEYXkgPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRydWUgfTsKCXQuYWxsRGF5Um93ID0gYWxsRGF5Um93OwoJdC5nZXRSb3dDbnQgPSBmdW5jdGlvbigpIHsgcmV0dXJuIHJvd0NudCB9OwoJdC5nZXRDb2xDbnQgPSBmdW5jdGlvbigpIHsgcmV0dXJuIGNvbENudCB9OwoJdC5nZXRDb2xXaWR0aCA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gY29sV2lkdGggfTsKCXQuZ2V0RGF5U2VnbWVudENvbnRhaW5lciA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gZGF5U2VnbWVudENvbnRhaW5lciB9OwoKCgkvLyBpbXBvcnRzCglWaWV3LmNhbGwodCwgZWxlbWVudCwgY2FsZW5kYXIsIHZpZXdOYW1lKTsKCU92ZXJsYXlNYW5hZ2VyLmNhbGwodCk7CglTZWxlY3Rpb25NYW5hZ2VyLmNhbGwodCk7CglCYXNpY0V2ZW50UmVuZGVyZXIuY2FsbCh0KTsKCXZhciBvcHQgPSB0Lm9wdDsKCXZhciB0cmlnZ2VyID0gdC50cmlnZ2VyOwoJdmFyIHJlbmRlck92ZXJsYXkgPSB0LnJlbmRlck92ZXJsYXk7Cgl2YXIgY2xlYXJPdmVybGF5cyA9IHQuY2xlYXJPdmVybGF5czsKCXZhciBkYXlTZWxlY3Rpb25Nb3VzZWRvd24gPSB0LmRheVNlbGVjdGlvbk1vdXNlZG93bjsKCXZhciBjZWxsVG9EYXRlID0gdC5jZWxsVG9EYXRlOwoJdmFyIGRhdGVUb0NlbGwgPSB0LmRhdGVUb0NlbGw7Cgl2YXIgcmFuZ2VUb1NlZ21lbnRzID0gdC5yYW5nZVRvU2VnbWVudHM7Cgl2YXIgZm9ybWF0RGF0ZSA9IGNhbGVuZGFyLmZvcm1hdERhdGU7CgoKCS8vIGxvY2FscwoKCXZhciB0YWJsZTsKCXZhciBoZWFkOwoJdmFyIGhlYWRDZWxsczsKCXZhciBib2R5OwoJdmFyIGJvZHlSb3dzOwoJdmFyIGJvZHlDZWxsczsKCXZhciBib2R5Rmlyc3RDZWxsczsKCXZhciBmaXJzdFJvd0NlbGxJbm5lcnM7Cgl2YXIgZmlyc3RSb3dDZWxsQ29udGVudElubmVyczsKCXZhciBkYXlTZWdtZW50Q29udGFpbmVyOwoKCXZhciB2aWV3V2lkdGg7Cgl2YXIgdmlld0hlaWdodDsKCXZhciBjb2xXaWR0aDsKCXZhciB3ZWVrTnVtYmVyV2lkdGg7CgoJdmFyIHJvd0NudCwgY29sQ250OwoJdmFyIHNob3dOdW1iZXJzOwoJdmFyIGNvb3JkaW5hdGVHcmlkOwoJdmFyIGhvdmVyTGlzdGVuZXI7Cgl2YXIgY29sUG9zaXRpb25zOwoJdmFyIGNvbENvbnRlbnRQb3NpdGlvbnM7CgoJdmFyIHRtOwoJdmFyIGNvbEZvcm1hdDsKCXZhciBzaG93V2Vla051bWJlcnM7Cgl2YXIgd2Vla051bWJlclRpdGxlOwoJdmFyIHdlZWtOdW1iZXJGb3JtYXQ7CgoKCgkvKiBSZW5kZXJpbmcKCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoKCWRpc2FibGVUZXh0U2VsZWN0aW9uKGVsZW1lbnQuYWRkQ2xhc3MoJ2ZjLWdyaWQnKSk7CgoKCWZ1bmN0aW9uIHJlbmRlckJhc2ljKF9yb3dDbnQsIF9jb2xDbnQsIF9zaG93TnVtYmVycykgewoJCXJvd0NudCA9IF9yb3dDbnQ7CgkJY29sQ250ID0gX2NvbENudDsKCQlzaG93TnVtYmVycyA9IF9zaG93TnVtYmVyczsKCQl1cGRhdGVPcHRpb25zKCk7CgoJCWlmICghYm9keSkgewoJCQlidWlsZEV2ZW50Q29udGFpbmVyKCk7CgkJfQoKCQlidWlsZFRhYmxlKCk7Cgl9CgoKCWZ1bmN0aW9uIHVwZGF0ZU9wdGlvbnMoKSB7CgkJdG0gPSBvcHQoJ3RoZW1lJykgPyAndWknIDogJ2ZjJzsKCQljb2xGb3JtYXQgPSBvcHQoJ2NvbHVtbkZvcm1hdCcpOwoKCQkvLyB3ZWVrICMgb3B0aW9ucy4gKFRPRE86IGJhZCwgbG9naWMgYWxzbyBpbiBvdGhlciB2aWV3cykKCQlzaG93V2Vla051bWJlcnMgPSBvcHQoJ3dlZWtOdW1iZXJzJyk7CgkJd2Vla051bWJlclRpdGxlID0gb3B0KCd3ZWVrTnVtYmVyVGl0bGUnKTsKCQlpZiAob3B0KCd3ZWVrTnVtYmVyQ2FsY3VsYXRpb24nKSAhPSAnaXNvJykgewoJCQl3ZWVrTnVtYmVyRm9ybWF0ID0gInciOwoJCX0KCQllbHNlIHsKCQkJd2Vla051bWJlckZvcm1hdCA9ICJXIjsKCQl9Cgl9CgoKCWZ1bmN0aW9uIGJ1aWxkRXZlbnRDb250YWluZXIoKSB7CgkJZGF5U2VnbWVudENvbnRhaW5lciA9CgkJCSQoIjxkaXYgY2xhc3M9J2ZjLWV2ZW50LWNvbnRhaW5lcicgc3R5bGU9J3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6ODt0b3A6MDtsZWZ0OjAnLz4iKQoJCQkJLmFwcGVuZFRvKGVsZW1lbnQpOwoJfQoKCglmdW5jdGlvbiBidWlsZFRhYmxlKCkgewoJCXZhciBodG1sID0gYnVpbGRUYWJsZUhUTUwoKTsKCgkJaWYgKHRhYmxlKSB7CgkJCXRhYmxlLnJlbW92ZSgpOwoJCX0KCQl0YWJsZSA9ICQoaHRtbCkuYXBwZW5kVG8oZWxlbWVudCk7CgoJCWhlYWQgPSB0YWJsZS5maW5kKCd0aGVhZCcpOwoJCWhlYWRDZWxscyA9IGhlYWQuZmluZCgnLmZjLWRheS1oZWFkZXInKTsKCQlib2R5ID0gdGFibGUuZmluZCgndGJvZHknKTsKCQlib2R5Um93cyA9IGJvZHkuZmluZCgndHInKTsKCQlib2R5Q2VsbHMgPSBib2R5LmZpbmQoJy5mYy1kYXknKTsKCQlib2R5Rmlyc3RDZWxscyA9IGJvZHlSb3dzLmZpbmQoJ3RkOmZpcnN0LWNoaWxkJyk7CgoJCWZpcnN0Um93Q2VsbElubmVycyA9IGJvZHlSb3dzLmVxKDApLmZpbmQoJy5mYy1kYXkgPiBkaXYnKTsKCQlmaXJzdFJvd0NlbGxDb250ZW50SW5uZXJzID0gYm9keVJvd3MuZXEoMCkuZmluZCgnLmZjLWRheS1jb250ZW50ID4gZGl2Jyk7CgoJCW1hcmtGaXJzdExhc3QoaGVhZC5hZGQoaGVhZC5maW5kKCd0cicpKSk7IC8vIG1hcmtzIGZpcnN0K2xhc3QgdHIvdGgncwoJCW1hcmtGaXJzdExhc3QoYm9keVJvd3MpOyAvLyBtYXJrcyBmaXJzdCtsYXN0IHRkJ3MKCQlib2R5Um93cy5lcSgwKS5hZGRDbGFzcygnZmMtZmlyc3QnKTsKCQlib2R5Um93cy5maWx0ZXIoJzpsYXN0JykuYWRkQ2xhc3MoJ2ZjLWxhc3QnKTsKCgkJYm9keUNlbGxzLmVhY2goZnVuY3Rpb24oaSwgX2NlbGwpIHsKCQkJdmFyIGRhdGUgPSBjZWxsVG9EYXRlKAoJCQkJTWF0aC5mbG9vcihpIC8gY29sQ250KSwKCQkJCWkgJSBjb2xDbnQKCQkJKTsKCQkJdHJpZ2dlcignZGF5UmVuZGVyJywgdCwgZGF0ZSwgJChfY2VsbCkpOwoJCX0pOwoKCQlkYXlCaW5kKGJvZHlDZWxscyk7Cgl9CgoKCgkvKiBIVE1MIEJ1aWxkaW5nCgktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoKCWZ1bmN0aW9uIGJ1aWxkVGFibGVIVE1MKCkgewoJCXZhciBodG1sID0KCQkJIjx0YWJsZSBjbGFzcz0nZmMtYm9yZGVyLXNlcGFyYXRlJyBzdHlsZT0nd2lkdGg6MTAwJScgY2VsbHNwYWNpbmc9JzAnPiIgKwoJCQlidWlsZEhlYWRIVE1MKCkgKwoJCQlidWlsZEJvZHlIVE1MKCkgKwoJCQkiPC90YWJsZT4iOwoKCQlyZXR1cm4gaHRtbDsKCX0KCgoJZnVuY3Rpb24gYnVpbGRIZWFkSFRNTCgpIHsKCQl2YXIgaGVhZGVyQ2xhc3MgPSB0bSArICItd2lkZ2V0LWhlYWRlciI7CgkJdmFyIGh0bWwgPSAnJzsKCQl2YXIgY29sOwoJCXZhciBkYXRlOwoKCQlodG1sICs9ICI8dGhlYWQ+PHRyPiI7CgoJCWlmIChzaG93V2Vla051bWJlcnMpIHsKCQkJaHRtbCArPQoJCQkJIjx0aCBjbGFzcz0nZmMtd2Vlay1udW1iZXIgIiArIGhlYWRlckNsYXNzICsgIic+IiArCgkJCQlodG1sRXNjYXBlKHdlZWtOdW1iZXJUaXRsZSkgKwoJCQkJIjwvdGg+IjsKCQl9CgoJCWZvciAoY29sPTA7IGNvbDxjb2xDbnQ7IGNvbCsrKSB7CgkJCWRhdGUgPSBjZWxsVG9EYXRlKDAsIGNvbCk7CgkJCWh0bWwgKz0KCQkJCSI8dGggY2xhc3M9J2ZjLWRheS1oZWFkZXIgZmMtIiArIGRheUlEc1tkYXRlLmdldERheSgpXSArICIgIiArIGhlYWRlckNsYXNzICsgIic+IiArCgkJCQlodG1sRXNjYXBlKGZvcm1hdERhdGUoZGF0ZSwgY29sRm9ybWF0KSkgKwoJCQkJIjwvdGg+IjsKCQl9CgoJCWh0bWwgKz0gIjwvdHI+PC90aGVhZD4iOwoKCQlyZXR1cm4gaHRtbDsKCX0KCgoJZnVuY3Rpb24gYnVpbGRCb2R5SFRNTCgpIHsKCQl2YXIgY29udGVudENsYXNzID0gdG0gKyAiLXdpZGdldC1jb250ZW50IjsKCQl2YXIgaHRtbCA9ICcnOwoJCXZhciByb3c7CgkJdmFyIGNvbDsKCQl2YXIgZGF0ZTsKCgkJaHRtbCArPSAiPHRib2R5PiI7CgoJCWZvciAocm93PTA7IHJvdzxyb3dDbnQ7IHJvdysrKSB7CgoJCQlodG1sICs9ICI8dHIgY2xhc3M9J2ZjLXdlZWsnPiI7CgoJCQlpZiAoc2hvd1dlZWtOdW1iZXJzKSB7CgkJCQlkYXRlID0gY2VsbFRvRGF0ZShyb3csIDApOwoJCQkJaHRtbCArPQoJCQkJCSI8dGQgY2xhc3M9J2ZjLXdlZWstbnVtYmVyICIgKyBjb250ZW50Q2xhc3MgKyAiJz4iICsKCQkJCQkiPGRpdj4iICsKCQkJCQlodG1sRXNjYXBlKGZvcm1hdERhdGUoZGF0ZSwgd2Vla051bWJlckZvcm1hdCkpICsKCQkJCQkiPC9kaXY+IiArCgkJCQkJIjwvdGQ+IjsKCQkJfQoKCQkJZm9yIChjb2w9MDsgY29sPGNvbENudDsgY29sKyspIHsKCQkJCWRhdGUgPSBjZWxsVG9EYXRlKHJvdywgY29sKTsKCQkJCWh0bWwgKz0gYnVpbGRDZWxsSFRNTChkYXRlKTsKCQkJfQoKCQkJaHRtbCArPSAiPC90cj4iOwoJCX0KCgkJaHRtbCArPSAiPC90Ym9keT4iOwoKCQlyZXR1cm4gaHRtbDsKCX0KCgoJZnVuY3Rpb24gYnVpbGRDZWxsSFRNTChkYXRlKSB7CgkJdmFyIGNvbnRlbnRDbGFzcyA9IHRtICsgIi13aWRnZXQtY29udGVudCI7CgkJdmFyIG1vbnRoID0gdC5zdGFydC5nZXRNb250aCgpOwoJCXZhciB0b2RheSA9IGNsZWFyVGltZShuZXcgRGF0ZSgpKTsKCQl2YXIgaHRtbCA9ICcnOwoJCXZhciBjbGFzc05hbWVzID0gWwoJCQknZmMtZGF5JywKCQkJJ2ZjLScgKyBkYXlJRHNbZGF0ZS5nZXREYXkoKV0sCgkJCWNvbnRlbnRDbGFzcwoJCV07CgoJCWlmIChkYXRlLmdldE1vbnRoKCkgIT0gbW9udGgpIHsKCQkJY2xhc3NOYW1lcy5wdXNoKCdmYy1vdGhlci1tb250aCcpOwoJCX0KCQlpZiAoK2RhdGUgPT0gK3RvZGF5KSB7CgkJCWNsYXNzTmFtZXMucHVzaCgKCQkJCSdmYy10b2RheScsCgkJCQl0bSArICctc3RhdGUtaGlnaGxpZ2h0JwoJCQkpOwoJCX0KCQllbHNlIGlmIChkYXRlIDwgdG9kYXkpIHsKCQkJY2xhc3NOYW1lcy5wdXNoKCdmYy1wYXN0Jyk7CgkJfQoJCWVsc2UgewoJCQljbGFzc05hbWVzLnB1c2goJ2ZjLWZ1dHVyZScpOwoJCX0KCgkJaHRtbCArPQoJCQkiPHRkIiArCgkJCSIgY2xhc3M9JyIgKyBjbGFzc05hbWVzLmpvaW4oJyAnKSArICInIiArCgkJCSIgZGF0YS1kYXRlPSciICsgZm9ybWF0RGF0ZShkYXRlLCAneXl5eS1NTS1kZCcpICsgIiciICsKCQkJIj4iICsKCQkJIjxkaXY+IjsKCgkJaWYgKHNob3dOdW1iZXJzKSB7CgkJCWh0bWwgKz0gIjxkaXYgY2xhc3M9J2ZjLWRheS1udW1iZXInPiIgKyBkYXRlLmdldERhdGUoKSArICI8L2Rpdj4iOwoJCX0KCgkJaHRtbCArPQoJCQkiPGRpdiBjbGFzcz0nZmMtZGF5LWNvbnRlbnQnPiIgKwoJCQkiPGRpdiBzdHlsZT0ncG9zaXRpb246cmVsYXRpdmUnPiZuYnNwOzwvZGl2PiIgKwoJCQkiPC9kaXY+IiArCgkJCSI8L2Rpdj4iICsKCQkJIjwvdGQ+IjsKCgkJcmV0dXJuIGh0bWw7Cgl9CgoKCgkvKiBEaW1lbnNpb25zCgktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoKCWZ1bmN0aW9uIHNldEhlaWdodChoZWlnaHQpIHsKCQl2aWV3SGVpZ2h0ID0gaGVpZ2h0OwoKCQl2YXIgYm9keUhlaWdodCA9IHZpZXdIZWlnaHQgLSBoZWFkLmhlaWdodCgpOwoJCXZhciByb3dIZWlnaHQ7CgkJdmFyIHJvd0hlaWdodExhc3Q7CgkJdmFyIGNlbGw7CgoJCWlmIChvcHQoJ3dlZWtNb2RlJykgPT0gJ3ZhcmlhYmxlJykgewoJCQlyb3dIZWlnaHQgPSByb3dIZWlnaHRMYXN0ID0gTWF0aC5mbG9vcihib2R5SGVpZ2h0IC8gKHJvd0NudD09MSA/IDIgOiA2KSk7CgkJfWVsc2V7CgkJCXJvd0hlaWdodCA9IE1hdGguZmxvb3IoYm9keUhlaWdodCAvIHJvd0NudCk7CgkJCXJvd0hlaWdodExhc3QgPSBib2R5SGVpZ2h0IC0gcm93SGVpZ2h0ICogKHJvd0NudC0xKTsKCQl9CgoJCWJvZHlGaXJzdENlbGxzLmVhY2goZnVuY3Rpb24oaSwgX2NlbGwpIHsKCQkJaWYgKGkgPCByb3dDbnQpIHsKCQkJCWNlbGwgPSAkKF9jZWxsKTsKCQkJCWNlbGwuZmluZCgnPiBkaXYnKS5jc3MoCgkJCQkJJ21pbi1oZWlnaHQnLAoJCQkJCShpPT1yb3dDbnQtMSA/IHJvd0hlaWdodExhc3QgOiByb3dIZWlnaHQpIC0gdnNpZGVzKGNlbGwpCgkJCQkpOwoJCQl9CgkJfSk7CgoJfQoKCglmdW5jdGlvbiBzZXRXaWR0aCh3aWR0aCkgewoJCXZpZXdXaWR0aCA9IHdpZHRoOwoJCWNvbFBvc2l0aW9ucy5jbGVhcigpOwoJCWNvbENvbnRlbnRQb3NpdGlvbnMuY2xlYXIoKTsKCgkJd2Vla051bWJlcldpZHRoID0gMDsKCQlpZiAoc2hvd1dlZWtOdW1iZXJzKSB7CgkJCXdlZWtOdW1iZXJXaWR0aCA9IGhlYWQuZmluZCgndGguZmMtd2Vlay1udW1iZXInKS5vdXRlcldpZHRoKCk7CgkJfQoKCQljb2xXaWR0aCA9IE1hdGguZmxvb3IoKHZpZXdXaWR0aCAtIHdlZWtOdW1iZXJXaWR0aCkgLyBjb2xDbnQpOwoJCXNldE91dGVyV2lkdGgoaGVhZENlbGxzLnNsaWNlKDAsIC0xKSwgY29sV2lkdGgpOwoJfQoKCgoJLyogRGF5IGNsaWNraW5nIGFuZCBiaW5kaW5nCgktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoKCWZ1bmN0aW9uIGRheUJpbmQoZGF5cykgewoJCWRheXMuY2xpY2soZGF5Q2xpY2spCgkJCS5tb3VzZWRvd24oZGF5U2VsZWN0aW9uTW91c2Vkb3duKTsKCX0KCgoJZnVuY3Rpb24gZGF5Q2xpY2soZXYpIHsKCQlpZiAoIW9wdCgnc2VsZWN0YWJsZScpKSB7IC8vIGlmIHNlbGVjdGFibGUsIFNlbGVjdGlvbk1hbmFnZXIgd2lsbCB3b3JyeSBhYm91dCBkYXlDbGljawoJCQl2YXIgZGF0ZSA9IHBhcnNlSVNPODYwMSgkKHRoaXMpLmRhdGEoJ2RhdGUnKSk7CgkJCXRyaWdnZXIoJ2RheUNsaWNrJywgdGhpcywgZGF0ZSwgdHJ1ZSwgZXYpOwoJCX0KCX0KCgoKCS8qIFNlbWktdHJhbnNwYXJlbnQgT3ZlcmxheSBIZWxwZXJzCgktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJLy8gVE9ETzogc2hvdWxkIGJlIGNvbnNvbGlkYXRlZCB3aXRoIEFnZW5kYVZpZXcncyBtZXRob2RzCgoKCWZ1bmN0aW9uIHJlbmRlckRheU92ZXJsYXkob3ZlcmxheVN0YXJ0LCBvdmVybGF5RW5kLCByZWZyZXNoQ29vcmRpbmF0ZUdyaWQpIHsgLy8gb3ZlcmxheUVuZCBpcyBleGNsdXNpdmUKCgkJaWYgKHJlZnJlc2hDb29yZGluYXRlR3JpZCkgewoJCQljb29yZGluYXRlR3JpZC5idWlsZCgpOwoJCX0KCgkJdmFyIHNlZ21lbnRzID0gcmFuZ2VUb1NlZ21lbnRzKG92ZXJsYXlTdGFydCwgb3ZlcmxheUVuZCk7CgoJCWZvciAodmFyIGk9MDsgaTxzZWdtZW50cy5sZW5ndGg7IGkrKykgewoJCQl2YXIgc2VnbWVudCA9IHNlZ21lbnRzW2ldOwoJCQlkYXlCaW5kKAoJCQkJcmVuZGVyQ2VsbE92ZXJsYXkoCgkJCQkJc2VnbWVudC5yb3csCgkJCQkJc2VnbWVudC5sZWZ0Q29sLAoJCQkJCXNlZ21lbnQucm93LAoJCQkJCXNlZ21lbnQucmlnaHRDb2wKCQkJCSkKCQkJKTsKCQl9Cgl9CgoKCWZ1bmN0aW9uIHJlbmRlckNlbGxPdmVybGF5KHJvdzAsIGNvbDAsIHJvdzEsIGNvbDEpIHsgLy8gcm93MSxjb2wxIGlzIGluY2x1c2l2ZQoJCXZhciByZWN0ID0gY29vcmRpbmF0ZUdyaWQucmVjdChyb3cwLCBjb2wwLCByb3cxLCBjb2wxLCBlbGVtZW50KTsKCQlyZXR1cm4gcmVuZGVyT3ZlcmxheShyZWN0LCBlbGVtZW50KTsKCX0KCgoKCS8qIFNlbGVjdGlvbgoJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKCglmdW5jdGlvbiBkZWZhdWx0U2VsZWN0aW9uRW5kKHN0YXJ0RGF0ZSwgYWxsRGF5KSB7CgkJcmV0dXJuIGNsb25lRGF0ZShzdGFydERhdGUpOwoJfQoKCglmdW5jdGlvbiByZW5kZXJTZWxlY3Rpb24oc3RhcnREYXRlLCBlbmREYXRlLCBhbGxEYXkpIHsKCQlyZW5kZXJEYXlPdmVybGF5KHN0YXJ0RGF0ZSwgYWRkRGF5cyhjbG9uZURhdGUoZW5kRGF0ZSksIDEpLCB0cnVlKTsgLy8gcmVidWlsZCBldmVyeSB0aW1lPz8/Cgl9CgoKCWZ1bmN0aW9uIGNsZWFyU2VsZWN0aW9uKCkgewoJCWNsZWFyT3ZlcmxheXMoKTsKCX0KCgoJZnVuY3Rpb24gcmVwb3J0RGF5Q2xpY2soZGF0ZSwgYWxsRGF5LCBldikgewoJCXZhciBjZWxsID0gZGF0ZVRvQ2VsbChkYXRlKTsKCQl2YXIgX2VsZW1lbnQgPSBib2R5Q2VsbHNbY2VsbC5yb3cqY29sQ250ICsgY2VsbC5jb2xdOwoJCXRyaWdnZXIoJ2RheUNsaWNrJywgX2VsZW1lbnQsIGRhdGUsIGFsbERheSwgZXYpOwoJfQoKCgoJLyogRXh0ZXJuYWwgRHJhZ2dpbmcKCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCgoJZnVuY3Rpb24gZHJhZ1N0YXJ0KF9kcmFnRWxlbWVudCwgZXYsIHVpKSB7CgkJaG92ZXJMaXN0ZW5lci5zdGFydChmdW5jdGlvbihjZWxsKSB7CgkJCWNsZWFyT3ZlcmxheXMoKTsKCQkJaWYgKGNlbGwpIHsKCQkJCXJlbmRlckNlbGxPdmVybGF5KGNlbGwucm93LCBjZWxsLmNvbCwgY2VsbC5yb3csIGNlbGwuY29sKTsKCQkJfQoJCX0sIGV2KTsKCX0KCgoJZnVuY3Rpb24gZHJhZ1N0b3AoX2RyYWdFbGVtZW50LCBldiwgdWkpIHsKCQl2YXIgY2VsbCA9IGhvdmVyTGlzdGVuZXIuc3RvcCgpOwoJCWNsZWFyT3ZlcmxheXMoKTsKCQlpZiAoY2VsbCkgewoJCQl2YXIgZCA9IGNlbGxUb0RhdGUoY2VsbCk7CgkJCXRyaWdnZXIoJ2Ryb3AnLCBfZHJhZ0VsZW1lbnQsIGQsIHRydWUsIGV2LCB1aSk7CgkJfQoJfQoKCgoJLyogVXRpbGl0aWVzCgktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoKCWZ1bmN0aW9uIGRlZmF1bHRFdmVudEVuZChldmVudCkgewoJCXJldHVybiBjbG9uZURhdGUoZXZlbnQuc3RhcnQpOwoJfQoKCgljb29yZGluYXRlR3JpZCA9IG5ldyBDb29yZGluYXRlR3JpZChmdW5jdGlvbihyb3dzLCBjb2xzKSB7CgkJdmFyIGUsIG4sIHA7CgkJaGVhZENlbGxzLmVhY2goZnVuY3Rpb24oaSwgX2UpIHsKCQkJZSA9ICQoX2UpOwoJCQluID0gZS5vZmZzZXQoKS5sZWZ0OwoJCQlpZiAoaSkgewoJCQkJcFsxXSA9IG47CgkJCX0KCQkJcCA9IFtuXTsKCQkJY29sc1tpXSA9IHA7CgkJfSk7CgkJcFsxXSA9IG4gKyBlLm91dGVyV2lkdGgoKTsKCQlib2R5Um93cy5lYWNoKGZ1bmN0aW9uKGksIF9lKSB7CgkJCWlmIChpIDwgcm93Q250KSB7CgkJCQllID0gJChfZSk7CgkJCQluID0gZS5vZmZzZXQoKS50b3A7CgkJCQlpZiAoaSkgewoJCQkJCXBbMV0gPSBuOwoJCQkJfQoJCQkJcCA9IFtuXTsKCQkJCXJvd3NbaV0gPSBwOwoJCQl9CgkJfSk7CgkJcFsxXSA9IG4gKyBlLm91dGVySGVpZ2h0KCk7Cgl9KTsKCgoJaG92ZXJMaXN0ZW5lciA9IG5ldyBIb3Zlckxpc3RlbmVyKGNvb3JkaW5hdGVHcmlkKTsKCgljb2xQb3NpdGlvbnMgPSBuZXcgSG9yaXpvbnRhbFBvc2l0aW9uQ2FjaGUoZnVuY3Rpb24oY29sKSB7CgkJcmV0dXJuIGZpcnN0Um93Q2VsbElubmVycy5lcShjb2wpOwoJfSk7CgoJY29sQ29udGVudFBvc2l0aW9ucyA9IG5ldyBIb3Jpem9udGFsUG9zaXRpb25DYWNoZShmdW5jdGlvbihjb2wpIHsKCQlyZXR1cm4gZmlyc3RSb3dDZWxsQ29udGVudElubmVycy5lcShjb2wpOwoJfSk7CgoKCWZ1bmN0aW9uIGNvbExlZnQoY29sKSB7CgkJcmV0dXJuIGNvbFBvc2l0aW9ucy5sZWZ0KGNvbCk7Cgl9CgoKCWZ1bmN0aW9uIGNvbFJpZ2h0KGNvbCkgewoJCXJldHVybiBjb2xQb3NpdGlvbnMucmlnaHQoY29sKTsKCX0KCgoJZnVuY3Rpb24gY29sQ29udGVudExlZnQoY29sKSB7CgkJcmV0dXJuIGNvbENvbnRlbnRQb3NpdGlvbnMubGVmdChjb2wpOwoJfQoKCglmdW5jdGlvbiBjb2xDb250ZW50UmlnaHQoY29sKSB7CgkJcmV0dXJuIGNvbENvbnRlbnRQb3NpdGlvbnMucmlnaHQoY29sKTsKCX0KCgoJZnVuY3Rpb24gYWxsRGF5Um93KGkpIHsKCQlyZXR1cm4gYm9keVJvd3MuZXEoaSk7Cgl9Cgp9Cgo7OwoKZnVuY3Rpb24gQmFzaWNFdmVudFJlbmRlcmVyKCkgewoJdmFyIHQgPSB0aGlzOwoKCgkvLyBleHBvcnRzCgl0LnJlbmRlckV2ZW50cyA9IHJlbmRlckV2ZW50czsKCXQuY2xlYXJFdmVudHMgPSBjbGVhckV2ZW50czsKCgoJLy8gaW1wb3J0cwoJRGF5RXZlbnRSZW5kZXJlci5jYWxsKHQpOwoKCglmdW5jdGlvbiByZW5kZXJFdmVudHMoZXZlbnRzLCBtb2RpZmllZEV2ZW50SWQpIHsKCQl0LnJlbmRlckRheUV2ZW50cyhldmVudHMsIG1vZGlmaWVkRXZlbnRJZCk7Cgl9CgoKCWZ1bmN0aW9uIGNsZWFyRXZlbnRzKCkgewoJCXQuZ2V0RGF5U2VnbWVudENvbnRhaW5lcigpLmVtcHR5KCk7Cgl9CgoKCS8vIFRPRE86IGhhdmUgdGhpcyBjbGFzcyAoYW5kIEFnZW5kYUV2ZW50UmVuZGVyZXIpIGJlIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyB0aGUgZXZlbnQgY29udGFpbmVyIGRpdgoKfQoKOzsKCmZjVmlld3MuYWdlbmRhV2VlayA9IEFnZW5kYVdlZWtWaWV3OwoKZnVuY3Rpb24gQWdlbmRhV2Vla1ZpZXcoZWxlbWVudCwgY2FsZW5kYXIpIHsKCXZhciB0ID0gdGhpczsKCgoJLy8gZXhwb3J0cwoJdC5yZW5kZXIgPSByZW5kZXI7CgoKCS8vIGltcG9ydHMKCUFnZW5kYVZpZXcuY2FsbCh0LCBlbGVtZW50LCBjYWxlbmRhciwgJ2FnZW5kYVdlZWsnKTsKCXZhciBvcHQgPSB0Lm9wdDsKCXZhciByZW5kZXJBZ2VuZGEgPSB0LnJlbmRlckFnZW5kYTsKCXZhciBza2lwSGlkZGVuRGF5cyA9IHQuc2tpcEhpZGRlbkRheXM7Cgl2YXIgZ2V0Q2VsbHNQZXJXZWVrID0gdC5nZXRDZWxsc1BlcldlZWs7Cgl2YXIgZm9ybWF0RGF0ZXMgPSBjYWxlbmRhci5mb3JtYXREYXRlczsKCgoJZnVuY3Rpb24gcmVuZGVyKGRhdGUsIGRlbHRhKSB7CgoJCWlmIChkZWx0YSkgewoJCQlhZGREYXlzKGRhdGUsIGRlbHRhICogNyk7CgkJfQoKCQl2YXIgc3RhcnQgPSBhZGREYXlzKGNsb25lRGF0ZShkYXRlKSwgLSgoZGF0ZS5nZXREYXkoKSAtIG9wdCgnZmlyc3REYXknKSArIDcpICUgNykpOwoJCXZhciBlbmQgPSBhZGREYXlzKGNsb25lRGF0ZShzdGFydCksIDcpOwoKCQl2YXIgdmlzU3RhcnQgPSBjbG9uZURhdGUoc3RhcnQpOwoJCXNraXBIaWRkZW5EYXlzKHZpc1N0YXJ0KTsKCgkJdmFyIHZpc0VuZCA9IGNsb25lRGF0ZShlbmQpOwoJCXNraXBIaWRkZW5EYXlzKHZpc0VuZCwgLTEsIHRydWUpOwoKCQl2YXIgY29sQ250ID0gZ2V0Q2VsbHNQZXJXZWVrKCk7CgoJCXQudGl0bGUgPSBmb3JtYXREYXRlcygKCQkJdmlzU3RhcnQsCgkJCWFkZERheXMoY2xvbmVEYXRlKHZpc0VuZCksIC0xKSwKCQkJb3B0KCd0aXRsZUZvcm1hdCcpCgkJKTsKCgkJdC5zdGFydCA9IHN0YXJ0OwoJCXQuZW5kID0gZW5kOwoJCXQudmlzU3RhcnQgPSB2aXNTdGFydDsKCQl0LnZpc0VuZCA9IHZpc0VuZDsKCgkJcmVuZGVyQWdlbmRhKGNvbENudCk7Cgl9Cgp9Cgo7OwoKZmNWaWV3cy5hZ2VuZGFEYXkgPSBBZ2VuZGFEYXlWaWV3OwoKCmZ1bmN0aW9uIEFnZW5kYURheVZpZXcoZWxlbWVudCwgY2FsZW5kYXIpIHsKCXZhciB0ID0gdGhpczsKCgoJLy8gZXhwb3J0cwoJdC5yZW5kZXIgPSByZW5kZXI7CgoKCS8vIGltcG9ydHMKCUFnZW5kYVZpZXcuY2FsbCh0LCBlbGVtZW50LCBjYWxlbmRhciwgJ2FnZW5kYURheScpOwoJdmFyIG9wdCA9IHQub3B0OwoJdmFyIHJlbmRlckFnZW5kYSA9IHQucmVuZGVyQWdlbmRhOwoJdmFyIHNraXBIaWRkZW5EYXlzID0gdC5za2lwSGlkZGVuRGF5czsKCXZhciBmb3JtYXREYXRlID0gY2FsZW5kYXIuZm9ybWF0RGF0ZTsKCgoJZnVuY3Rpb24gcmVuZGVyKGRhdGUsIGRlbHRhKSB7CgoJCWlmIChkZWx0YSkgewoJCQlhZGREYXlzKGRhdGUsIGRlbHRhKTsKCQl9CgkJc2tpcEhpZGRlbkRheXMoZGF0ZSwgZGVsdGEgPCAwID8gLTEgOiAxKTsKCgkJdmFyIHN0YXJ0ID0gY2xvbmVEYXRlKGRhdGUsIHRydWUpOwoJCXZhciBlbmQgPSBhZGREYXlzKGNsb25lRGF0ZShzdGFydCksIDEpOwoKCQl0LnRpdGxlID0gZm9ybWF0RGF0ZShkYXRlLCBvcHQoJ3RpdGxlRm9ybWF0JykpOwoKCQl0LnN0YXJ0ID0gdC52aXNTdGFydCA9IHN0YXJ0OwoJCXQuZW5kID0gdC52aXNFbmQgPSBlbmQ7CgoJCXJlbmRlckFnZW5kYSgxKTsKCX0KCgp9Cgo7OwoKc2V0RGVmYXVsdHMoewoJYWxsRGF5U2xvdDogdHJ1ZSwKCWFsbERheVRleHQ6ICdhbGwtZGF5JywKCWZpcnN0SG91cjogNiwKCXNsb3RNaW51dGVzOiAzMCwKCWRlZmF1bHRFdmVudE1pbnV0ZXM6IDEyMCwKCWF4aXNGb3JtYXQ6ICdoKDptbSl0dCcsCgl0aW1lRm9ybWF0OiB7CgkJYWdlbmRhOiAnaDptbXsgLSBoOm1tfScKCX0sCglkcmFnT3BhY2l0eTogewoJCWFnZW5kYTogLjUKCX0sCgltaW5UaW1lOiAwLAoJbWF4VGltZTogMjQsCglzbG90RXZlbnRPdmVybGFwOiB0cnVlCn0pOwoKCi8vIFRPRE86IG1ha2UgaXQgd29yayBpbiBxdWlya3MgbW9kZSAoZXZlbnQgY29ybmVycywgYWxsLWRheSBoZWlnaHQpCi8vIFRPRE86IHRlc3QgbGlxdWlkIHdpZHRoLCBlc3BlY2lhbGx5IGluIElFNgoKCmZ1bmN0aW9uIEFnZW5kYVZpZXcoZWxlbWVudCwgY2FsZW5kYXIsIHZpZXdOYW1lKSB7Cgl2YXIgdCA9IHRoaXM7CgoKCS8vIGV4cG9ydHMKCXQucmVuZGVyQWdlbmRhID0gcmVuZGVyQWdlbmRhOwoJdC5zZXRXaWR0aCA9IHNldFdpZHRoOwoJdC5zZXRIZWlnaHQgPSBzZXRIZWlnaHQ7Cgl0LmFmdGVyUmVuZGVyID0gYWZ0ZXJSZW5kZXI7Cgl0LmRlZmF1bHRFdmVudEVuZCA9IGRlZmF1bHRFdmVudEVuZDsKCXQudGltZVBvc2l0aW9uID0gdGltZVBvc2l0aW9uOwoJdC5nZXRJc0NlbGxBbGxEYXkgPSBnZXRJc0NlbGxBbGxEYXk7Cgl0LmFsbERheVJvdyA9IGdldEFsbERheVJvdzsKCXQuZ2V0Q29vcmRpbmF0ZUdyaWQgPSBmdW5jdGlvbigpIHsgcmV0dXJuIGNvb3JkaW5hdGVHcmlkIH07IC8vIHNwZWNpZmljYWxseSBmb3IgQWdlbmRhRXZlbnRSZW5kZXJlcgoJdC5nZXRIb3Zlckxpc3RlbmVyID0gZnVuY3Rpb24oKSB7IHJldHVybiBob3Zlckxpc3RlbmVyIH07Cgl0LmNvbExlZnQgPSBjb2xMZWZ0OwoJdC5jb2xSaWdodCA9IGNvbFJpZ2h0OwoJdC5jb2xDb250ZW50TGVmdCA9IGNvbENvbnRlbnRMZWZ0OwoJdC5jb2xDb250ZW50UmlnaHQgPSBjb2xDb250ZW50UmlnaHQ7Cgl0LmdldERheVNlZ21lbnRDb250YWluZXIgPSBmdW5jdGlvbigpIHsgcmV0dXJuIGRheVNlZ21lbnRDb250YWluZXIgfTsKCXQuZ2V0U2xvdFNlZ21lbnRDb250YWluZXIgPSBmdW5jdGlvbigpIHsgcmV0dXJuIHNsb3RTZWdtZW50Q29udGFpbmVyIH07Cgl0LmdldE1pbk1pbnV0ZSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gbWluTWludXRlIH07Cgl0LmdldE1heE1pbnV0ZSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gbWF4TWludXRlIH07Cgl0LmdldFNsb3RDb250YWluZXIgPSBmdW5jdGlvbigpIHsgcmV0dXJuIHNsb3RDb250YWluZXIgfTsKCXQuZ2V0Um93Q250ID0gZnVuY3Rpb24oKSB7IHJldHVybiAxIH07Cgl0LmdldENvbENudCA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gY29sQ250IH07Cgl0LmdldENvbFdpZHRoID0gZnVuY3Rpb24oKSB7IHJldHVybiBjb2xXaWR0aCB9OwoJdC5nZXRTbmFwSGVpZ2h0ID0gZnVuY3Rpb24oKSB7IHJldHVybiBzbmFwSGVpZ2h0IH07Cgl0LmdldFNuYXBNaW51dGVzID0gZnVuY3Rpb24oKSB7IHJldHVybiBzbmFwTWludXRlcyB9OwoJdC5kZWZhdWx0U2VsZWN0aW9uRW5kID0gZGVmYXVsdFNlbGVjdGlvbkVuZDsKCXQucmVuZGVyRGF5T3ZlcmxheSA9IHJlbmRlckRheU92ZXJsYXk7Cgl0LnJlbmRlclNlbGVjdGlvbiA9IHJlbmRlclNlbGVjdGlvbjsKCXQuY2xlYXJTZWxlY3Rpb24gPSBjbGVhclNlbGVjdGlvbjsKCXQucmVwb3J0RGF5Q2xpY2sgPSByZXBvcnREYXlDbGljazsgLy8gc2VsZWN0aW9uIG1vdXNlZG93biBoYWNrCgl0LmRyYWdTdGFydCA9IGRyYWdTdGFydDsKCXQuZHJhZ1N0b3AgPSBkcmFnU3RvcDsKCgoJLy8gaW1wb3J0cwoJVmlldy5jYWxsKHQsIGVsZW1lbnQsIGNhbGVuZGFyLCB2aWV3TmFtZSk7CglPdmVybGF5TWFuYWdlci5jYWxsKHQpOwoJU2VsZWN0aW9uTWFuYWdlci5jYWxsKHQpOwoJQWdlbmRhRXZlbnRSZW5kZXJlci5jYWxsKHQpOwoJdmFyIG9wdCA9IHQub3B0OwoJdmFyIHRyaWdnZXIgPSB0LnRyaWdnZXI7Cgl2YXIgcmVuZGVyT3ZlcmxheSA9IHQucmVuZGVyT3ZlcmxheTsKCXZhciBjbGVhck92ZXJsYXlzID0gdC5jbGVhck92ZXJsYXlzOwoJdmFyIHJlcG9ydFNlbGVjdGlvbiA9IHQucmVwb3J0U2VsZWN0aW9uOwoJdmFyIHVuc2VsZWN0ID0gdC51bnNlbGVjdDsKCXZhciBkYXlTZWxlY3Rpb25Nb3VzZWRvd24gPSB0LmRheVNlbGVjdGlvbk1vdXNlZG93bjsKCXZhciBzbG90U2VnSHRtbCA9IHQuc2xvdFNlZ0h0bWw7Cgl2YXIgY2VsbFRvRGF0ZSA9IHQuY2VsbFRvRGF0ZTsKCXZhciBkYXRlVG9DZWxsID0gdC5kYXRlVG9DZWxsOwoJdmFyIHJhbmdlVG9TZWdtZW50cyA9IHQucmFuZ2VUb1NlZ21lbnRzOwoJdmFyIGZvcm1hdERhdGUgPSBjYWxlbmRhci5mb3JtYXREYXRlOwoKCgkvLyBsb2NhbHMKCgl2YXIgZGF5VGFibGU7Cgl2YXIgZGF5SGVhZDsKCXZhciBkYXlIZWFkQ2VsbHM7Cgl2YXIgZGF5Qm9keTsKCXZhciBkYXlCb2R5Q2VsbHM7Cgl2YXIgZGF5Qm9keUNlbGxJbm5lcnM7Cgl2YXIgZGF5Qm9keUNlbGxDb250ZW50SW5uZXJzOwoJdmFyIGRheUJvZHlGaXJzdENlbGw7Cgl2YXIgZGF5Qm9keUZpcnN0Q2VsbFN0cmV0Y2hlcjsKCXZhciBzbG90TGF5ZXI7Cgl2YXIgZGF5U2VnbWVudENvbnRhaW5lcjsKCXZhciBhbGxEYXlUYWJsZTsKCXZhciBhbGxEYXlSb3c7Cgl2YXIgc2xvdFNjcm9sbGVyOwoJdmFyIHNsb3RDb250YWluZXI7Cgl2YXIgc2xvdFNlZ21lbnRDb250YWluZXI7Cgl2YXIgc2xvdFRhYmxlOwoJdmFyIHNlbGVjdGlvbkhlbHBlcjsKCgl2YXIgdmlld1dpZHRoOwoJdmFyIHZpZXdIZWlnaHQ7Cgl2YXIgYXhpc1dpZHRoOwoJdmFyIGNvbFdpZHRoOwoJdmFyIGd1dHRlcldpZHRoOwoJdmFyIHNsb3RIZWlnaHQ7IC8vIFRPRE86IHdoYXQgaWYgc2xvdEhlaWdodCBjaGFuZ2VzPyAoc2VlIGlzc3VlIDY1MCkKCgl2YXIgc25hcE1pbnV0ZXM7Cgl2YXIgc25hcFJhdGlvOyAvLyByYXRpbyBvZiBudW1iZXIgb2YgInNlbGVjdGlvbiIgc2xvdHMgdG8gbm9ybWFsIHNsb3RzLiAoZXg6IDEsIDIsIDQpCgl2YXIgc25hcEhlaWdodDsgLy8gaG9sZHMgdGhlIHBpeGVsIGhpZ2h0IG9mIGEgInNlbGVjdGlvbiIgc2xvdAoKCXZhciBjb2xDbnQ7Cgl2YXIgc2xvdENudDsKCXZhciBjb29yZGluYXRlR3JpZDsKCXZhciBob3Zlckxpc3RlbmVyOwoJdmFyIGNvbFBvc2l0aW9uczsKCXZhciBjb2xDb250ZW50UG9zaXRpb25zOwoJdmFyIHNsb3RUb3BDYWNoZSA9IHt9OwoKCXZhciB0bTsKCXZhciBydGw7Cgl2YXIgbWluTWludXRlLCBtYXhNaW51dGU7Cgl2YXIgY29sRm9ybWF0OwoJdmFyIHNob3dXZWVrTnVtYmVyczsKCXZhciB3ZWVrTnVtYmVyVGl0bGU7Cgl2YXIgd2Vla051bWJlckZvcm1hdDsKCgoKCS8qIFJlbmRlcmluZwoJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKCglkaXNhYmxlVGV4dFNlbGVjdGlvbihlbGVtZW50LmFkZENsYXNzKCdmYy1hZ2VuZGEnKSk7CgoKCWZ1bmN0aW9uIHJlbmRlckFnZW5kYShjKSB7CgkJY29sQ250ID0gYzsKCQl1cGRhdGVPcHRpb25zKCk7CgoJCWlmICghZGF5VGFibGUpIHsgLy8gZmlyc3QgdGltZSByZW5kZXJpbmc/CgkJCWJ1aWxkU2tlbGV0b24oKTsgLy8gYnVpbGRzIGRheSB0YWJsZSwgc2xvdCBhcmVhLCBldmVudHMgY29udGFpbmVycwoJCX0KCQllbHNlIHsKCQkJYnVpbGREYXlUYWJsZSgpOyAvLyByZWJ1aWxkcyBkYXkgdGFibGUKCQl9Cgl9CgoKCWZ1bmN0aW9uIHVwZGF0ZU9wdGlvbnMoKSB7CgoJCXRtID0gb3B0KCd0aGVtZScpID8gJ3VpJyA6ICdmYyc7CgkJcnRsID0gb3B0KCdpc1JUTCcpCgkJbWluTWludXRlID0gcGFyc2VUaW1lKG9wdCgnbWluVGltZScpKTsKCQltYXhNaW51dGUgPSBwYXJzZVRpbWUob3B0KCdtYXhUaW1lJykpOwoJCWNvbEZvcm1hdCA9IG9wdCgnY29sdW1uRm9ybWF0Jyk7CgoJCS8vIHdlZWsgIyBvcHRpb25zLiAoVE9ETzogYmFkLCBsb2dpYyBhbHNvIGluIG90aGVyIHZpZXdzKQoJCXNob3dXZWVrTnVtYmVycyA9IG9wdCgnd2Vla051bWJlcnMnKTsKCQl3ZWVrTnVtYmVyVGl0bGUgPSBvcHQoJ3dlZWtOdW1iZXJUaXRsZScpOwoJCWlmIChvcHQoJ3dlZWtOdW1iZXJDYWxjdWxhdGlvbicpICE9ICdpc28nKSB7CgkJCXdlZWtOdW1iZXJGb3JtYXQgPSAidyI7CgkJfQoJCWVsc2UgewoJCQl3ZWVrTnVtYmVyRm9ybWF0ID0gIlciOwoJCX0KCgkJc25hcE1pbnV0ZXMgPSBvcHQoJ3NuYXBNaW51dGVzJykgfHwgb3B0KCdzbG90TWludXRlcycpOwoJfQoKCgoJLyogQnVpbGQgRE9NCgktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoKCWZ1bmN0aW9uIGJ1aWxkU2tlbGV0b24oKSB7CgkJdmFyIGhlYWRlckNsYXNzID0gdG0gKyAiLXdpZGdldC1oZWFkZXIiOwoJCXZhciBjb250ZW50Q2xhc3MgPSB0bSArICItd2lkZ2V0LWNvbnRlbnQiOwoJCXZhciBzOwoJCXZhciBkOwoJCXZhciBpOwoJCXZhciBtYXhkOwoJCXZhciBtaW51dGVzOwoJCXZhciBzbG90Tm9ybWFsID0gb3B0KCdzbG90TWludXRlcycpICUgMTUgPT0gMDsKCgkJYnVpbGREYXlUYWJsZSgpOwoKCQlzbG90TGF5ZXIgPQoJCQkkKCI8ZGl2IHN0eWxlPSdwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjI7bGVmdDowO3dpZHRoOjEwMCUnLz4iKQoJCQkJLmFwcGVuZFRvKGVsZW1lbnQpOwoKCQlpZiAob3B0KCdhbGxEYXlTbG90JykpIHsKCgkJCWRheVNlZ21lbnRDb250YWluZXIgPQoJCQkJJCgiPGRpdiBjbGFzcz0nZmMtZXZlbnQtY29udGFpbmVyJyBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo4O3RvcDowO2xlZnQ6MCcvPiIpCgkJCQkJLmFwcGVuZFRvKHNsb3RMYXllcik7CgoJCQlzID0KCQkJCSI8dGFibGUgc3R5bGU9J3dpZHRoOjEwMCUnIGNsYXNzPSdmYy1hZ2VuZGEtYWxsZGF5JyBjZWxsc3BhY2luZz0nMCc+IiArCgkJCQkiPHRyPiIgKwoJCQkJIjx0aCBjbGFzcz0nIiArIGhlYWRlckNsYXNzICsgIiBmYy1hZ2VuZGEtYXhpcyc+IiArIG9wdCgnYWxsRGF5VGV4dCcpICsgIjwvdGg+IiArCgkJCQkiPHRkPiIgKwoJCQkJIjxkaXYgY2xhc3M9J2ZjLWRheS1jb250ZW50Jz48ZGl2IHN0eWxlPSdwb3NpdGlvbjpyZWxhdGl2ZScvPjwvZGl2PiIgKwoJCQkJIjwvdGQ+IiArCgkJCQkiPHRoIGNsYXNzPSciICsgaGVhZGVyQ2xhc3MgKyAiIGZjLWFnZW5kYS1ndXR0ZXInPiZuYnNwOzwvdGg+IiArCgkJCQkiPC90cj4iICsKCQkJCSI8L3RhYmxlPiI7CgkJCWFsbERheVRhYmxlID0gJChzKS5hcHBlbmRUbyhzbG90TGF5ZXIpOwoJCQlhbGxEYXlSb3cgPSBhbGxEYXlUYWJsZS5maW5kKCd0cicpOwoKCQkJZGF5QmluZChhbGxEYXlSb3cuZmluZCgndGQnKSk7CgoJCQlzbG90TGF5ZXIuYXBwZW5kKAoJCQkJIjxkaXYgY2xhc3M9J2ZjLWFnZW5kYS1kaXZpZGVyICIgKyBoZWFkZXJDbGFzcyArICInPiIgKwoJCQkJIjxkaXYgY2xhc3M9J2ZjLWFnZW5kYS1kaXZpZGVyLWlubmVyJy8+IiArCgkJCQkiPC9kaXY+IgoJCQkpOwoKCQl9ZWxzZXsKCgkJCWRheVNlZ21lbnRDb250YWluZXIgPSAkKFtdKTsgLy8gaW4galF1ZXJ5IDEuNCwgd2UgY2FuIGp1c3QgZG8gJCgpCgoJCX0KCgkJc2xvdFNjcm9sbGVyID0KCQkJJCgiPGRpdiBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG8nLz4iKQoJCQkJLmFwcGVuZFRvKHNsb3RMYXllcik7CgoJCXNsb3RDb250YWluZXIgPQoJCQkkKCI8ZGl2IHN0eWxlPSdwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbicvPiIpCgkJCQkuYXBwZW5kVG8oc2xvdFNjcm9sbGVyKTsKCgkJc2xvdFNlZ21lbnRDb250YWluZXIgPQoJCQkkKCI8ZGl2IGNsYXNzPSdmYy1ldmVudC1jb250YWluZXInIHN0eWxlPSdwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4Ojg7dG9wOjA7bGVmdDowJy8+IikKCQkJCS5hcHBlbmRUbyhzbG90Q29udGFpbmVyKTsKCgkJcyA9CgkJCSI8dGFibGUgY2xhc3M9J2ZjLWFnZW5kYS1zbG90cycgc3R5bGU9J3dpZHRoOjEwMCUnIGNlbGxzcGFjaW5nPScwJz4iICsKCQkJIjx0Ym9keT4iOwoJCWQgPSB6ZXJvRGF0ZSgpOwoJCW1heGQgPSBhZGRNaW51dGVzKGNsb25lRGF0ZShkKSwgbWF4TWludXRlKTsKCQlhZGRNaW51dGVzKGQsIG1pbk1pbnV0ZSk7CgkJc2xvdENudCA9IDA7CgkJZm9yIChpPTA7IGQgPCBtYXhkOyBpKyspIHsKCQkJbWludXRlcyA9IGQuZ2V0TWludXRlcygpOwoJCQlzICs9CgkJCQkiPHRyIGNsYXNzPSdmYy1zbG90IiArIGkgKyAnICcgKyAoIW1pbnV0ZXMgPyAnJyA6ICdmYy1taW5vcicpICsgIic+IiArCgkJCQkiPHRoIGNsYXNzPSdmYy1hZ2VuZGEtYXhpcyAiICsgaGVhZGVyQ2xhc3MgKyAiJz4iICsKCQkJCSgoIXNsb3ROb3JtYWwgfHwgIW1pbnV0ZXMpID8gZm9ybWF0RGF0ZShkLCBvcHQoJ2F4aXNGb3JtYXQnKSkgOiAnJm5ic3A7JykgKwoJCQkJIjwvdGg+IiArCgkJCQkiPHRkIGNsYXNzPSciICsgY29udGVudENsYXNzICsgIic+IiArCgkJCQkiPGRpdiBzdHlsZT0ncG9zaXRpb246cmVsYXRpdmUnPiZuYnNwOzwvZGl2PiIgKwoJCQkJIjwvdGQ+IiArCgkJCQkiPC90cj4iOwoJCQlhZGRNaW51dGVzKGQsIG9wdCgnc2xvdE1pbnV0ZXMnKSk7CgkJCXNsb3RDbnQrKzsKCQl9CgkJcyArPQoJCQkiPC90Ym9keT4iICsKCQkJIjwvdGFibGU+IjsKCQlzbG90VGFibGUgPSAkKHMpLmFwcGVuZFRvKHNsb3RDb250YWluZXIpOwoKCQlzbG90QmluZChzbG90VGFibGUuZmluZCgndGQnKSk7Cgl9CgoKCgkvKiBCdWlsZCBEYXkgVGFibGUKCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCgoJZnVuY3Rpb24gYnVpbGREYXlUYWJsZSgpIHsKCQl2YXIgaHRtbCA9IGJ1aWxkRGF5VGFibGVIVE1MKCk7CgoJCWlmIChkYXlUYWJsZSkgewoJCQlkYXlUYWJsZS5yZW1vdmUoKTsKCQl9CgkJZGF5VGFibGUgPSAkKGh0bWwpLmFwcGVuZFRvKGVsZW1lbnQpOwoKCQlkYXlIZWFkID0gZGF5VGFibGUuZmluZCgndGhlYWQnKTsKCQlkYXlIZWFkQ2VsbHMgPSBkYXlIZWFkLmZpbmQoJ3RoJykuc2xpY2UoMSwgLTEpOyAvLyBleGNsdWRlIGd1dHRlcgoJCWRheUJvZHkgPSBkYXlUYWJsZS5maW5kKCd0Ym9keScpOwoJCWRheUJvZHlDZWxscyA9IGRheUJvZHkuZmluZCgndGQnKS5zbGljZSgwLCAtMSk7IC8vIGV4Y2x1ZGUgZ3V0dGVyCgkJZGF5Qm9keUNlbGxJbm5lcnMgPSBkYXlCb2R5Q2VsbHMuZmluZCgnPiBkaXYnKTsKCQlkYXlCb2R5Q2VsbENvbnRlbnRJbm5lcnMgPSBkYXlCb2R5Q2VsbHMuZmluZCgnLmZjLWRheS1jb250ZW50ID4gZGl2Jyk7CgoJCWRheUJvZHlGaXJzdENlbGwgPSBkYXlCb2R5Q2VsbHMuZXEoMCk7CgkJZGF5Qm9keUZpcnN0Q2VsbFN0cmV0Y2hlciA9IGRheUJvZHlDZWxsSW5uZXJzLmVxKDApOwoKCQltYXJrRmlyc3RMYXN0KGRheUhlYWQuYWRkKGRheUhlYWQuZmluZCgndHInKSkpOwoJCW1hcmtGaXJzdExhc3QoZGF5Qm9keS5hZGQoZGF5Qm9keS5maW5kKCd0cicpKSk7CgoJCS8vIFRPRE86IG5vdyB0aGF0IHdlIHJlYnVpbGQgdGhlIGNlbGxzIGV2ZXJ5IHRpbWUsIHdlIHNob3VsZCBjYWxsIGRheVJlbmRlcgoJfQoKCglmdW5jdGlvbiBidWlsZERheVRhYmxlSFRNTCgpIHsKCQl2YXIgaHRtbCA9CgkJCSI8dGFibGUgc3R5bGU9J3dpZHRoOjEwMCUnIGNsYXNzPSdmYy1hZ2VuZGEtZGF5cyBmYy1ib3JkZXItc2VwYXJhdGUnIGNlbGxzcGFjaW5nPScwJz4iICsKCQkJYnVpbGREYXlUYWJsZUhlYWRIVE1MKCkgKwoJCQlidWlsZERheVRhYmxlQm9keUhUTUwoKSArCgkJCSI8L3RhYmxlPiI7CgoJCXJldHVybiBodG1sOwoJfQoKCglmdW5jdGlvbiBidWlsZERheVRhYmxlSGVhZEhUTUwoKSB7CgkJdmFyIGhlYWRlckNsYXNzID0gdG0gKyAiLXdpZGdldC1oZWFkZXIiOwoJCXZhciBkYXRlOwoJCXZhciBodG1sID0gJyc7CgkJdmFyIHdlZWtUZXh0OwoJCXZhciBjb2w7CgoJCWh0bWwgKz0KCQkJIjx0aGVhZD4iICsKCQkJIjx0cj4iOwoKCQlpZiAoc2hvd1dlZWtOdW1iZXJzKSB7CgkJCWRhdGUgPSBjZWxsVG9EYXRlKDAsIDApOwoJCQl3ZWVrVGV4dCA9IGZvcm1hdERhdGUoZGF0ZSwgd2Vla051bWJlckZvcm1hdCk7CgkJCWlmIChydGwpIHsKCQkJCXdlZWtUZXh0ICs9IHdlZWtOdW1iZXJUaXRsZTsKCQkJfQoJCQllbHNlIHsKCQkJCXdlZWtUZXh0ID0gd2Vla051bWJlclRpdGxlICsgd2Vla1RleHQ7CgkJCX0KCQkJaHRtbCArPQoJCQkJIjx0aCBjbGFzcz0nZmMtYWdlbmRhLWF4aXMgZmMtd2Vlay1udW1iZXIgIiArIGhlYWRlckNsYXNzICsgIic+IiArCgkJCQlodG1sRXNjYXBlKHdlZWtUZXh0KSArCgkJCQkiPC90aD4iOwoJCX0KCQllbHNlIHsKCQkJaHRtbCArPSAiPHRoIGNsYXNzPSdmYy1hZ2VuZGEtYXhpcyAiICsgaGVhZGVyQ2xhc3MgKyAiJz4mbmJzcDs8L3RoPiI7CgkJfQoKCQlmb3IgKGNvbD0wOyBjb2w8Y29sQ250OyBjb2wrKykgewoJCQlkYXRlID0gY2VsbFRvRGF0ZSgwLCBjb2wpOwoJCQlodG1sICs9CgkJCQkiPHRoIGNsYXNzPSdmYy0iICsgZGF5SURzW2RhdGUuZ2V0RGF5KCldICsgIiBmYy1jb2wiICsgY29sICsgJyAnICsgaGVhZGVyQ2xhc3MgKyAiJz4iICsKCQkJCWh0bWxFc2NhcGUoZm9ybWF0RGF0ZShkYXRlLCBjb2xGb3JtYXQpKSArCgkJCQkiPC90aD4iOwoJCX0KCgkJaHRtbCArPQoJCQkiPHRoIGNsYXNzPSdmYy1hZ2VuZGEtZ3V0dGVyICIgKyBoZWFkZXJDbGFzcyArICInPiZuYnNwOzwvdGg+IiArCgkJCSI8L3RyPiIgKwoJCQkiPC90aGVhZD4iOwoKCQlyZXR1cm4gaHRtbDsKCX0KCgoJZnVuY3Rpb24gYnVpbGREYXlUYWJsZUJvZHlIVE1MKCkgewoJCXZhciBoZWFkZXJDbGFzcyA9IHRtICsgIi13aWRnZXQtaGVhZGVyIjsgLy8gVE9ETzogbWFrZSB0aGVzZSB3aGVuIHVwZGF0ZU9wdGlvbnMoKSBjYWxsZWQKCQl2YXIgY29udGVudENsYXNzID0gdG0gKyAiLXdpZGdldC1jb250ZW50IjsKCQl2YXIgZGF0ZTsKCQl2YXIgdG9kYXkgPSBjbGVhclRpbWUobmV3IERhdGUoKSk7CgkJdmFyIGNvbDsKCQl2YXIgY2VsbHNIVE1MOwoJCXZhciBjZWxsSFRNTDsKCQl2YXIgY2xhc3NOYW1lczsKCQl2YXIgaHRtbCA9ICcnOwoKCQlodG1sICs9CgkJCSI8dGJvZHk+IiArCgkJCSI8dHI+IiArCgkJCSI8dGggY2xhc3M9J2ZjLWFnZW5kYS1heGlzICIgKyBoZWFkZXJDbGFzcyArICInPiZuYnNwOzwvdGg+IjsKCgkJY2VsbHNIVE1MID0gJyc7CgoJCWZvciAoY29sPTA7IGNvbDxjb2xDbnQ7IGNvbCsrKSB7CgoJCQlkYXRlID0gY2VsbFRvRGF0ZSgwLCBjb2wpOwoKCQkJY2xhc3NOYW1lcyA9IFsKCQkJCSdmYy1jb2wnICsgY29sLAoJCQkJJ2ZjLScgKyBkYXlJRHNbZGF0ZS5nZXREYXkoKV0sCgkJCQljb250ZW50Q2xhc3MKCQkJXTsKCQkJaWYgKCtkYXRlID09ICt0b2RheSkgewoJCQkJY2xhc3NOYW1lcy5wdXNoKAoJCQkJCXRtICsgJy1zdGF0ZS1oaWdobGlnaHQnLAoJCQkJCSdmYy10b2RheScKCQkJCSk7CgkJCX0KCQkJZWxzZSBpZiAoZGF0ZSA8IHRvZGF5KSB7CgkJCQljbGFzc05hbWVzLnB1c2goJ2ZjLXBhc3QnKTsKCQkJfQoJCQllbHNlIHsKCQkJCWNsYXNzTmFtZXMucHVzaCgnZmMtZnV0dXJlJyk7CgkJCX0KCgkJCWNlbGxIVE1MID0KCQkJCSI8dGQgY2xhc3M9JyIgKyBjbGFzc05hbWVzLmpvaW4oJyAnKSArICInPiIgKwoJCQkJIjxkaXY+IiArCgkJCQkiPGRpdiBjbGFzcz0nZmMtZGF5LWNvbnRlbnQnPiIgKwoJCQkJIjxkaXYgc3R5bGU9J3Bvc2l0aW9uOnJlbGF0aXZlJz4mbmJzcDs8L2Rpdj4iICsKCQkJCSI8L2Rpdj4iICsKCQkJCSI8L2Rpdj4iICsKCQkJCSI8L3RkPiI7CgoJCQljZWxsc0hUTUwgKz0gY2VsbEhUTUw7CgkJfQoKCQlodG1sICs9IGNlbGxzSFRNTDsKCQlodG1sICs9CgkJCSI8dGQgY2xhc3M9J2ZjLWFnZW5kYS1ndXR0ZXIgIiArIGNvbnRlbnRDbGFzcyArICInPiZuYnNwOzwvdGQ+IiArCgkJCSI8L3RyPiIgKwoJCQkiPC90Ym9keT4iOwoKCQlyZXR1cm4gaHRtbDsKCX0KCgoJLy8gVE9ETzogZGF0YS1kYXRlIG9uIHRoZSBjZWxscwoKCgoJLyogRGltZW5zaW9ucwoJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKCglmdW5jdGlvbiBzZXRIZWlnaHQoaGVpZ2h0KSB7CgkJaWYgKGhlaWdodCA9PT0gdW5kZWZpbmVkKSB7CgkJCWhlaWdodCA9IHZpZXdIZWlnaHQ7CgkJfQoJCXZpZXdIZWlnaHQgPSBoZWlnaHQ7CgkJc2xvdFRvcENhY2hlID0ge307CgoJCXZhciBoZWFkSGVpZ2h0ID0gZGF5Qm9keS5wb3NpdGlvbigpLnRvcDsKCQl2YXIgYWxsRGF5SGVpZ2h0ID0gc2xvdFNjcm9sbGVyLnBvc2l0aW9uKCkudG9wOyAvLyBpbmNsdWRpbmcgZGl2aWRlcgoJCXZhciBib2R5SGVpZ2h0ID0gTWF0aC5taW4oIC8vIHRvdGFsIGJvZHkgaGVpZ2h0LCBpbmNsdWRpbmcgYm9yZGVycwoJCQloZWlnaHQgLSBoZWFkSGVpZ2h0LCAgIC8vIHdoZW4gc2Nyb2xsYmFycwoJCQlzbG90VGFibGUuaGVpZ2h0KCkgKyBhbGxEYXlIZWlnaHQgKyAxIC8vIHdoZW4gbm8gc2Nyb2xsYmFycy4gKzEgZm9yIGJvdHRvbSBib3JkZXIKCQkpOwoKCQlkYXlCb2R5Rmlyc3RDZWxsU3RyZXRjaGVyCgkJCS5oZWlnaHQoYm9keUhlaWdodCAtIHZzaWRlcyhkYXlCb2R5Rmlyc3RDZWxsKSk7CgoJCXNsb3RMYXllci5jc3MoJ3RvcCcsIGhlYWRIZWlnaHQpOwoKCQlzbG90U2Nyb2xsZXIuaGVpZ2h0KGJvZHlIZWlnaHQgLSBhbGxEYXlIZWlnaHQgLSAxKTsKCgkJLy8gdGhlIHN0eWxlc2hlZXQgZ3VhcmFudGVlcyB0aGF0IHRoZSBmaXJzdCByb3cgaGFzIG5vIGJvcmRlci4KCQkvLyB0aGlzIGFsbG93cyAuaGVpZ2h0KCkgdG8gd29yayB3ZWxsIGNyb3NzLWJyb3dzZXIuCgkJc2xvdEhlaWdodCA9IHNsb3RUYWJsZS5maW5kKCd0cjpmaXJzdCcpLmhlaWdodCgpICsgMTsgLy8gKzEgZm9yIGJvdHRvbSBib3JkZXIKCgkJc25hcFJhdGlvID0gb3B0KCdzbG90TWludXRlcycpIC8gc25hcE1pbnV0ZXM7CgkJc25hcEhlaWdodCA9IHNsb3RIZWlnaHQgLyBzbmFwUmF0aW87Cgl9CgoKCWZ1bmN0aW9uIHNldFdpZHRoKHdpZHRoKSB7CgkJdmlld1dpZHRoID0gd2lkdGg7CgkJY29sUG9zaXRpb25zLmNsZWFyKCk7CgkJY29sQ29udGVudFBvc2l0aW9ucy5jbGVhcigpOwoKCQl2YXIgYXhpc0ZpcnN0Q2VsbHMgPSBkYXlIZWFkLmZpbmQoJ3RoOmZpcnN0Jyk7CgkJaWYgKGFsbERheVRhYmxlKSB7CgkJCWF4aXNGaXJzdENlbGxzID0gYXhpc0ZpcnN0Q2VsbHMuYWRkKGFsbERheVRhYmxlLmZpbmQoJ3RoOmZpcnN0JykpOwoJCX0KCQlheGlzRmlyc3RDZWxscyA9IGF4aXNGaXJzdENlbGxzLmFkZChzbG90VGFibGUuZmluZCgndGg6Zmlyc3QnKSk7CgoJCWF4aXNXaWR0aCA9IDA7CgkJc2V0T3V0ZXJXaWR0aCgKCQkJYXhpc0ZpcnN0Q2VsbHMKCQkJCS53aWR0aCgnJykKCQkJCS5lYWNoKGZ1bmN0aW9uKGksIF9jZWxsKSB7CgkJCQkJYXhpc1dpZHRoID0gTWF0aC5tYXgoYXhpc1dpZHRoLCAkKF9jZWxsKS5vdXRlcldpZHRoKCkpOwoJCQkJfSksCgkJCWF4aXNXaWR0aAoJCSk7CgoJCXZhciBndXR0ZXJDZWxscyA9IGRheVRhYmxlLmZpbmQoJy5mYy1hZ2VuZGEtZ3V0dGVyJyk7CgkJaWYgKGFsbERheVRhYmxlKSB7CgkJCWd1dHRlckNlbGxzID0gZ3V0dGVyQ2VsbHMuYWRkKGFsbERheVRhYmxlLmZpbmQoJ3RoLmZjLWFnZW5kYS1ndXR0ZXInKSk7CgkJfQoKCQl2YXIgc2xvdFRhYmxlV2lkdGggPSBzbG90U2Nyb2xsZXJbMF0uY2xpZW50V2lkdGg7IC8vIG5lZWRzIHRvIGJlIGRvbmUgYWZ0ZXIgYXhpc1dpZHRoIChmb3IgSUU3KQoKCQlndXR0ZXJXaWR0aCA9IHNsb3RTY3JvbGxlci53aWR0aCgpIC0gc2xvdFRhYmxlV2lkdGg7CgkJaWYgKGd1dHRlcldpZHRoKSB7CgkJCXNldE91dGVyV2lkdGgoZ3V0dGVyQ2VsbHMsIGd1dHRlcldpZHRoKTsKCQkJZ3V0dGVyQ2VsbHMKCQkJCS5zaG93KCkKCQkJCS5wcmV2KCkKCQkJCS5yZW1vdmVDbGFzcygnZmMtbGFzdCcpOwoJCX1lbHNlewoJCQlndXR0ZXJDZWxscwoJCQkJLmhpZGUoKQoJCQkJLnByZXYoKQoJCQkJLmFkZENsYXNzKCdmYy1sYXN0Jyk7CgkJfQoKCQljb2xXaWR0aCA9IE1hdGguZmxvb3IoKHNsb3RUYWJsZVdpZHRoIC0gYXhpc1dpZHRoKSAvIGNvbENudCk7CgkJc2V0T3V0ZXJXaWR0aChkYXlIZWFkQ2VsbHMuc2xpY2UoMCwgLTEpLCBjb2xXaWR0aCk7Cgl9CgoKCgkvKiBTY3JvbGxpbmcKCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCgoJZnVuY3Rpb24gcmVzZXRTY3JvbGwoKSB7CgkJdmFyIGQwID0gemVyb0RhdGUoKTsKCQl2YXIgc2Nyb2xsRGF0ZSA9IGNsb25lRGF0ZShkMCk7CgkJc2Nyb2xsRGF0ZS5zZXRIb3VycyhvcHQoJ2ZpcnN0SG91cicpKTsKCQl2YXIgdG9wID0gdGltZVBvc2l0aW9uKGQwLCBzY3JvbGxEYXRlKSArIDE7IC8vICsxIGZvciB0aGUgYm9yZGVyCgkJZnVuY3Rpb24gc2Nyb2xsKCkgewoJCQlzbG90U2Nyb2xsZXIuc2Nyb2xsVG9wKHRvcCk7CgkJfQoJCXNjcm9sbCgpOwoJCXNldFRpbWVvdXQoc2Nyb2xsLCAwKTsgLy8gb3ZlcnJpZGVzIGFueSBwcmV2aW91cyBzY3JvbGwgc3RhdGUgbWFkZSBieSB0aGUgYnJvd3NlcgoJfQoKCglmdW5jdGlvbiBhZnRlclJlbmRlcigpIHsgLy8gYWZ0ZXIgdGhlIHZpZXcgaGFzIGJlZW4gZnJlc2hseSByZW5kZXJlZCBhbmQgc2l6ZWQKCQlyZXNldFNjcm9sbCgpOwoJfQoKCgoJLyogU2xvdC9EYXkgY2xpY2tpbmcgYW5kIGJpbmRpbmcKCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCgoJZnVuY3Rpb24gZGF5QmluZChjZWxscykgewoJCWNlbGxzLmNsaWNrKHNsb3RDbGljaykKCQkJLm1vdXNlZG93bihkYXlTZWxlY3Rpb25Nb3VzZWRvd24pOwoJfQoKCglmdW5jdGlvbiBzbG90QmluZChjZWxscykgewoJCWNlbGxzLmNsaWNrKHNsb3RDbGljaykKCQkJLm1vdXNlZG93bihzbG90U2VsZWN0aW9uTW91c2Vkb3duKTsKCX0KCgoJZnVuY3Rpb24gc2xvdENsaWNrKGV2KSB7CgkJaWYgKCFvcHQoJ3NlbGVjdGFibGUnKSkgeyAvLyBpZiBzZWxlY3RhYmxlLCBTZWxlY3Rpb25NYW5hZ2VyIHdpbGwgd29ycnkgYWJvdXQgZGF5Q2xpY2sKCQkJdmFyIGNvbCA9IE1hdGgubWluKGNvbENudC0xLCBNYXRoLmZsb29yKChldi5wYWdlWCAtIGRheVRhYmxlLm9mZnNldCgpLmxlZnQgLSBheGlzV2lkdGgpIC8gY29sV2lkdGgpKTsKCQkJdmFyIGRhdGUgPSBjZWxsVG9EYXRlKDAsIGNvbCk7CgkJCXZhciByb3dNYXRjaCA9IHRoaXMucGFyZW50Tm9kZS5jbGFzc05hbWUubWF0Y2goL2ZjLXNsb3QoXGQrKS8pOyAvLyBUT0RPOiBtYXliZSB1c2UgZGF0YQoJCQlpZiAocm93TWF0Y2gpIHsKCQkJCXZhciBtaW5zID0gcGFyc2VJbnQocm93TWF0Y2hbMV0pICogb3B0KCdzbG90TWludXRlcycpOwoJCQkJdmFyIGhvdXJzID0gTWF0aC5mbG9vcihtaW5zLzYwKTsKCQkJCWRhdGUuc2V0SG91cnMoaG91cnMpOwoJCQkJZGF0ZS5zZXRNaW51dGVzKG1pbnMlNjAgKyBtaW5NaW51dGUpOwoJCQkJdHJpZ2dlcignZGF5Q2xpY2snLCBkYXlCb2R5Q2VsbHNbY29sXSwgZGF0ZSwgZmFsc2UsIGV2KTsKCQkJfWVsc2V7CgkJCQl0cmlnZ2VyKCdkYXlDbGljaycsIGRheUJvZHlDZWxsc1tjb2xdLCBkYXRlLCB0cnVlLCBldik7CgkJCX0KCQl9Cgl9CgoKCgkvKiBTZW1pLXRyYW5zcGFyZW50IE92ZXJsYXkgSGVscGVycwoJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJLy8gVE9ETzogc2hvdWxkIGJlIGNvbnNvbGlkYXRlZCB3aXRoIEJhc2ljVmlldydzIG1ldGhvZHMKCgoJZnVuY3Rpb24gcmVuZGVyRGF5T3ZlcmxheShvdmVybGF5U3RhcnQsIG92ZXJsYXlFbmQsIHJlZnJlc2hDb29yZGluYXRlR3JpZCkgeyAvLyBvdmVybGF5RW5kIGlzIGV4Y2x1c2l2ZQoKCQlpZiAocmVmcmVzaENvb3JkaW5hdGVHcmlkKSB7CgkJCWNvb3JkaW5hdGVHcmlkLmJ1aWxkKCk7CgkJfQoKCQl2YXIgc2VnbWVudHMgPSByYW5nZVRvU2VnbWVudHMob3ZlcmxheVN0YXJ0LCBvdmVybGF5RW5kKTsKCgkJZm9yICh2YXIgaT0wOyBpPHNlZ21lbnRzLmxlbmd0aDsgaSsrKSB7CgkJCXZhciBzZWdtZW50ID0gc2VnbWVudHNbaV07CgkJCWRheUJpbmQoCgkJCQlyZW5kZXJDZWxsT3ZlcmxheSgKCQkJCQlzZWdtZW50LnJvdywKCQkJCQlzZWdtZW50LmxlZnRDb2wsCgkJCQkJc2VnbWVudC5yb3csCgkJCQkJc2VnbWVudC5yaWdodENvbAoJCQkJKQoJCQkpOwoJCX0KCX0KCgoJZnVuY3Rpb24gcmVuZGVyQ2VsbE92ZXJsYXkocm93MCwgY29sMCwgcm93MSwgY29sMSkgeyAvLyBvbmx5IGZvciBhbGwtZGF5PwoJCXZhciByZWN0ID0gY29vcmRpbmF0ZUdyaWQucmVjdChyb3cwLCBjb2wwLCByb3cxLCBjb2wxLCBzbG90TGF5ZXIpOwoJCXJldHVybiByZW5kZXJPdmVybGF5KHJlY3QsIHNsb3RMYXllcik7Cgl9CgoKCWZ1bmN0aW9uIHJlbmRlclNsb3RPdmVybGF5KG92ZXJsYXlTdGFydCwgb3ZlcmxheUVuZCkgewoJCWZvciAodmFyIGk9MDsgaTxjb2xDbnQ7IGkrKykgewoJCQl2YXIgZGF5U3RhcnQgPSBjZWxsVG9EYXRlKDAsIGkpOwoJCQl2YXIgZGF5RW5kID0gYWRkRGF5cyhjbG9uZURhdGUoZGF5U3RhcnQpLCAxKTsKCQkJdmFyIHN0cmV0Y2hTdGFydCA9IG5ldyBEYXRlKE1hdGgubWF4KGRheVN0YXJ0LCBvdmVybGF5U3RhcnQpKTsKCQkJdmFyIHN0cmV0Y2hFbmQgPSBuZXcgRGF0ZShNYXRoLm1pbihkYXlFbmQsIG92ZXJsYXlFbmQpKTsKCQkJaWYgKHN0cmV0Y2hTdGFydCA8IHN0cmV0Y2hFbmQpIHsKCQkJCXZhciByZWN0ID0gY29vcmRpbmF0ZUdyaWQucmVjdCgwLCBpLCAwLCBpLCBzbG90Q29udGFpbmVyKTsgLy8gb25seSB1c2UgaXQgZm9yIGhvcml6b250YWwgY29vcmRzCgkJCQl2YXIgdG9wID0gdGltZVBvc2l0aW9uKGRheVN0YXJ0LCBzdHJldGNoU3RhcnQpOwoJCQkJdmFyIGJvdHRvbSA9IHRpbWVQb3NpdGlvbihkYXlTdGFydCwgc3RyZXRjaEVuZCk7CgkJCQlyZWN0LnRvcCA9IHRvcDsKCQkJCXJlY3QuaGVpZ2h0ID0gYm90dG9tIC0gdG9wOwoJCQkJc2xvdEJpbmQoCgkJCQkJcmVuZGVyT3ZlcmxheShyZWN0LCBzbG90Q29udGFpbmVyKQoJCQkJKTsKCQkJfQoJCX0KCX0KCgoKCS8qIENvb3JkaW5hdGUgVXRpbGl0aWVzCgktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoKCWNvb3JkaW5hdGVHcmlkID0gbmV3IENvb3JkaW5hdGVHcmlkKGZ1bmN0aW9uKHJvd3MsIGNvbHMpIHsKCQl2YXIgZSwgbiwgcDsKCQlkYXlIZWFkQ2VsbHMuZWFjaChmdW5jdGlvbihpLCBfZSkgewoJCQllID0gJChfZSk7CgkJCW4gPSBlLm9mZnNldCgpLmxlZnQ7CgkJCWlmIChpKSB7CgkJCQlwWzFdID0gbjsKCQkJfQoJCQlwID0gW25dOwoJCQljb2xzW2ldID0gcDsKCQl9KTsKCQlwWzFdID0gbiArIGUub3V0ZXJXaWR0aCgpOwoJCWlmIChvcHQoJ2FsbERheVNsb3QnKSkgewoJCQllID0gYWxsRGF5Um93OwoJCQluID0gZS5vZmZzZXQoKS50b3A7CgkJCXJvd3NbMF0gPSBbbiwgbitlLm91dGVySGVpZ2h0KCldOwoJCX0KCQl2YXIgc2xvdFRhYmxlVG9wID0gc2xvdENvbnRhaW5lci5vZmZzZXQoKS50b3A7CgkJdmFyIHNsb3RTY3JvbGxlclRvcCA9IHNsb3RTY3JvbGxlci5vZmZzZXQoKS50b3A7CgkJdmFyIHNsb3RTY3JvbGxlckJvdHRvbSA9IHNsb3RTY3JvbGxlclRvcCArIHNsb3RTY3JvbGxlci5vdXRlckhlaWdodCgpOwoJCWZ1bmN0aW9uIGNvbnN0cmFpbihuKSB7CgkJCXJldHVybiBNYXRoLm1heChzbG90U2Nyb2xsZXJUb3AsIE1hdGgubWluKHNsb3RTY3JvbGxlckJvdHRvbSwgbikpOwoJCX0KCQlmb3IgKHZhciBpPTA7IGk8c2xvdENudCpzbmFwUmF0aW87IGkrKykgeyAvLyBhZGFwdCBzbG90IGNvdW50IHRvIGluY3JlYXNlZC9kZWNyZWFzZWQgc2VsZWN0aW9uIHNsb3QgY291bnQKCQkJcm93cy5wdXNoKFsKCQkJCWNvbnN0cmFpbihzbG90VGFibGVUb3AgKyBzbmFwSGVpZ2h0KmkpLAoJCQkJY29uc3RyYWluKHNsb3RUYWJsZVRvcCArIHNuYXBIZWlnaHQqKGkrMSkpCgkJCV0pOwoJCX0KCX0pOwoKCglob3Zlckxpc3RlbmVyID0gbmV3IEhvdmVyTGlzdGVuZXIoY29vcmRpbmF0ZUdyaWQpOwoKCWNvbFBvc2l0aW9ucyA9IG5ldyBIb3Jpem9udGFsUG9zaXRpb25DYWNoZShmdW5jdGlvbihjb2wpIHsKCQlyZXR1cm4gZGF5Qm9keUNlbGxJbm5lcnMuZXEoY29sKTsKCX0pOwoKCWNvbENvbnRlbnRQb3NpdGlvbnMgPSBuZXcgSG9yaXpvbnRhbFBvc2l0aW9uQ2FjaGUoZnVuY3Rpb24oY29sKSB7CgkJcmV0dXJuIGRheUJvZHlDZWxsQ29udGVudElubmVycy5lcShjb2wpOwoJfSk7CgoKCWZ1bmN0aW9uIGNvbExlZnQoY29sKSB7CgkJcmV0dXJuIGNvbFBvc2l0aW9ucy5sZWZ0KGNvbCk7Cgl9CgoKCWZ1bmN0aW9uIGNvbENvbnRlbnRMZWZ0KGNvbCkgewoJCXJldHVybiBjb2xDb250ZW50UG9zaXRpb25zLmxlZnQoY29sKTsKCX0KCgoJZnVuY3Rpb24gY29sUmlnaHQoY29sKSB7CgkJcmV0dXJuIGNvbFBvc2l0aW9ucy5yaWdodChjb2wpOwoJfQoKCglmdW5jdGlvbiBjb2xDb250ZW50UmlnaHQoY29sKSB7CgkJcmV0dXJuIGNvbENvbnRlbnRQb3NpdGlvbnMucmlnaHQoY29sKTsKCX0KCgoJZnVuY3Rpb24gZ2V0SXNDZWxsQWxsRGF5KGNlbGwpIHsKCQlyZXR1cm4gb3B0KCdhbGxEYXlTbG90JykgJiYgIWNlbGwucm93OwoJfQoKCglmdW5jdGlvbiByZWFsQ2VsbFRvRGF0ZShjZWxsKSB7IC8vIHVnaCAicmVhbCIgLi4uIGJ1dCBibGFtZSBpdCBvbiBvdXIgYWJ1c2Ugb2YgdGhlICJjZWxsIiBzeXN0ZW0KCQl2YXIgZCA9IGNlbGxUb0RhdGUoMCwgY2VsbC5jb2wpOwoJCXZhciBzbG90SW5kZXggPSBjZWxsLnJvdzsKCQlpZiAob3B0KCdhbGxEYXlTbG90JykpIHsKCQkJc2xvdEluZGV4LS07CgkJfQoJCWlmIChzbG90SW5kZXggPj0gMCkgewoJCQlhZGRNaW51dGVzKGQsIG1pbk1pbnV0ZSArIHNsb3RJbmRleCAqIHNuYXBNaW51dGVzKTsKCQl9CgkJcmV0dXJuIGQ7Cgl9CgoKCS8vIGdldCB0aGUgWSBjb29yZGluYXRlIG9mIHRoZSBnaXZlbiB0aW1lIG9uIHRoZSBnaXZlbiBkYXkgKGJvdGggRGF0ZSBvYmplY3RzKQoJZnVuY3Rpb24gdGltZVBvc2l0aW9uKGRheSwgdGltZSkgeyAvLyBib3RoIGRhdGUgb2JqZWN0cy4gZGF5IGhvbGRzIDAwOjAwIG9mIGN1cnJlbnQgZGF5CgkJZGF5ID0gY2xvbmVEYXRlKGRheSwgdHJ1ZSk7CgkJaWYgKHRpbWUgPCBhZGRNaW51dGVzKGNsb25lRGF0ZShkYXkpLCBtaW5NaW51dGUpKSB7CgkJCXJldHVybiAwOwoJCX0KCQlpZiAodGltZSA+PSBhZGRNaW51dGVzKGNsb25lRGF0ZShkYXkpLCBtYXhNaW51dGUpKSB7CgkJCXJldHVybiBzbG90VGFibGUuaGVpZ2h0KCk7CgkJfQoJCXZhciBzbG90TWludXRlcyA9IG9wdCgnc2xvdE1pbnV0ZXMnKSwKCQkJbWludXRlcyA9IHRpbWUuZ2V0SG91cnMoKSo2MCArIHRpbWUuZ2V0TWludXRlcygpIC0gbWluTWludXRlLAoJCQlzbG90SSA9IE1hdGguZmxvb3IobWludXRlcyAvIHNsb3RNaW51dGVzKSwKCQkJc2xvdFRvcCA9IHNsb3RUb3BDYWNoZVtzbG90SV07CgkJaWYgKHNsb3RUb3AgPT09IHVuZGVmaW5lZCkgewoJCQlzbG90VG9wID0gc2xvdFRvcENhY2hlW3Nsb3RJXSA9CgkJCQlzbG90VGFibGUuZmluZCgndHInKS5lcShzbG90SSkuZmluZCgndGQgZGl2JylbMF0ub2Zmc2V0VG9wOwoJCQkJLy8gLmVxKCkgaXMgZmFzdGVyIHRoYW4gIjplcSgpIiBzZWxlY3RvcgoJCQkJLy8gWzBdLm9mZnNldFRvcCBpcyBmYXN0ZXIgdGhhbiAucG9zaXRpb24oKS50b3AgKGRvIHdlIHJlYWxseSBuZWVkIHRoaXMgb3B0aW1pemF0aW9uPykKCQkJCS8vIGEgYmV0dGVyIG9wdGltaXphdGlvbiB3b3VsZCBiZSB0byBjYWNoZSBhbGwgdGhlc2UgZGl2cwoJCX0KCQlyZXR1cm4gTWF0aC5tYXgoMCwgTWF0aC5yb3VuZCgKCQkJc2xvdFRvcCAtIDEgKyBzbG90SGVpZ2h0ICogKChtaW51dGVzICUgc2xvdE1pbnV0ZXMpIC8gc2xvdE1pbnV0ZXMpCgkJKSk7Cgl9CgoKCWZ1bmN0aW9uIGdldEFsbERheVJvdyhpbmRleCkgewoJCXJldHVybiBhbGxEYXlSb3c7Cgl9CgoKCWZ1bmN0aW9uIGRlZmF1bHRFdmVudEVuZChldmVudCkgewoJCXZhciBzdGFydCA9IGNsb25lRGF0ZShldmVudC5zdGFydCk7CgkJaWYgKGV2ZW50LmFsbERheSkgewoJCQlyZXR1cm4gc3RhcnQ7CgkJfQoJCXJldHVybiBhZGRNaW51dGVzKHN0YXJ0LCBvcHQoJ2RlZmF1bHRFdmVudE1pbnV0ZXMnKSk7Cgl9CgoKCgkvKiBTZWxlY3Rpb24KCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoKCWZ1bmN0aW9uIGRlZmF1bHRTZWxlY3Rpb25FbmQoc3RhcnREYXRlLCBhbGxEYXkpIHsKCQlpZiAoYWxsRGF5KSB7CgkJCXJldHVybiBjbG9uZURhdGUoc3RhcnREYXRlKTsKCQl9CgkJcmV0dXJuIGFkZE1pbnV0ZXMoY2xvbmVEYXRlKHN0YXJ0RGF0ZSksIG9wdCgnc2xvdE1pbnV0ZXMnKSk7Cgl9CgoKCWZ1bmN0aW9uIHJlbmRlclNlbGVjdGlvbihzdGFydERhdGUsIGVuZERhdGUsIGFsbERheSkgeyAvLyBvbmx5IGZvciBhbGwtZGF5CgkJaWYgKGFsbERheSkgewoJCQlpZiAob3B0KCdhbGxEYXlTbG90JykpIHsKCQkJCXJlbmRlckRheU92ZXJsYXkoc3RhcnREYXRlLCBhZGREYXlzKGNsb25lRGF0ZShlbmREYXRlKSwgMSksIHRydWUpOwoJCQl9CgkJfWVsc2V7CgkJCXJlbmRlclNsb3RTZWxlY3Rpb24oc3RhcnREYXRlLCBlbmREYXRlKTsKCQl9Cgl9CgoKCWZ1bmN0aW9uIHJlbmRlclNsb3RTZWxlY3Rpb24oc3RhcnREYXRlLCBlbmREYXRlKSB7CgkJdmFyIGhlbHBlck9wdGlvbiA9IG9wdCgnc2VsZWN0SGVscGVyJyk7CgkJY29vcmRpbmF0ZUdyaWQuYnVpbGQoKTsKCQlpZiAoaGVscGVyT3B0aW9uKSB7CgkJCXZhciBjb2wgPSBkYXRlVG9DZWxsKHN0YXJ0RGF0ZSkuY29sOwoJCQlpZiAoY29sID49IDAgJiYgY29sIDwgY29sQ250KSB7IC8vIG9ubHkgd29ya3Mgd2hlbiB0aW1lcyBhcmUgb24gc2FtZSBkYXkKCQkJCXZhciByZWN0ID0gY29vcmRpbmF0ZUdyaWQucmVjdCgwLCBjb2wsIDAsIGNvbCwgc2xvdENvbnRhaW5lcik7IC8vIG9ubHkgZm9yIGhvcml6b250YWwgY29vcmRzCgkJCQl2YXIgdG9wID0gdGltZVBvc2l0aW9uKHN0YXJ0RGF0ZSwgc3RhcnREYXRlKTsKCQkJCXZhciBib3R0b20gPSB0aW1lUG9zaXRpb24oc3RhcnREYXRlLCBlbmREYXRlKTsKCQkJCWlmIChib3R0b20gPiB0b3ApIHsgLy8gcHJvdGVjdCBhZ2FpbnN0IHNlbGVjdGlvbnMgdGhhdCBhcmUgZW50aXJlbHkgYmVmb3JlIG9yIGFmdGVyIHZpc2libGUgcmFuZ2UKCQkJCQlyZWN0LnRvcCA9IHRvcDsKCQkJCQlyZWN0LmhlaWdodCA9IGJvdHRvbSAtIHRvcDsKCQkJCQlyZWN0LmxlZnQgKz0gMjsKCQkJCQlyZWN0LndpZHRoIC09IDU7CgkJCQkJaWYgKCQuaXNGdW5jdGlvbihoZWxwZXJPcHRpb24pKSB7CgkJCQkJCXZhciBoZWxwZXJSZXMgPSBoZWxwZXJPcHRpb24oc3RhcnREYXRlLCBlbmREYXRlKTsKCQkJCQkJaWYgKGhlbHBlclJlcykgewoJCQkJCQkJcmVjdC5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7CgkJCQkJCQlzZWxlY3Rpb25IZWxwZXIgPSAkKGhlbHBlclJlcykKCQkJCQkJCQkuY3NzKHJlY3QpCgkJCQkJCQkJLmFwcGVuZFRvKHNsb3RDb250YWluZXIpOwoJCQkJCQl9CgkJCQkJfWVsc2V7CgkJCQkJCXJlY3QuaXNTdGFydCA9IHRydWU7IC8vIGNvbnNpZGUgcmVjdCBhICJzZWciIG5vdwoJCQkJCQlyZWN0LmlzRW5kID0gdHJ1ZTsgICAvLwoJCQkJCQlzZWxlY3Rpb25IZWxwZXIgPSAkKHNsb3RTZWdIdG1sKAoJCQkJCQkJewoJCQkJCQkJCXRpdGxlOiAnJywKCQkJCQkJCQlzdGFydDogc3RhcnREYXRlLAoJCQkJCQkJCWVuZDogZW5kRGF0ZSwKCQkJCQkJCQljbGFzc05hbWU6IFsnZmMtc2VsZWN0LWhlbHBlciddLAoJCQkJCQkJCWVkaXRhYmxlOiBmYWxzZQoJCQkJCQkJfSwKCQkJCQkJCXJlY3QKCQkJCQkJKSk7CgkJCQkJCXNlbGVjdGlvbkhlbHBlci5jc3MoJ29wYWNpdHknLCBvcHQoJ2RyYWdPcGFjaXR5JykpOwoJCQkJCX0KCQkJCQlpZiAoc2VsZWN0aW9uSGVscGVyKSB7CgkJCQkJCXNsb3RCaW5kKHNlbGVjdGlvbkhlbHBlcik7CgkJCQkJCXNsb3RDb250YWluZXIuYXBwZW5kKHNlbGVjdGlvbkhlbHBlcik7CgkJCQkJCXNldE91dGVyV2lkdGgoc2VsZWN0aW9uSGVscGVyLCByZWN0LndpZHRoLCB0cnVlKTsgLy8gbmVlZHMgdG8gYmUgYWZ0ZXIgYXBwZW5kZWQKCQkJCQkJc2V0T3V0ZXJIZWlnaHQoc2VsZWN0aW9uSGVscGVyLCByZWN0LmhlaWdodCwgdHJ1ZSk7CgkJCQkJfQoJCQkJfQoJCQl9CgkJfWVsc2V7CgkJCXJlbmRlclNsb3RPdmVybGF5KHN0YXJ0RGF0ZSwgZW5kRGF0ZSk7CgkJfQoJfQoKCglmdW5jdGlvbiBjbGVhclNlbGVjdGlvbigpIHsKCQljbGVhck92ZXJsYXlzKCk7CgkJaWYgKHNlbGVjdGlvbkhlbHBlcikgewoJCQlzZWxlY3Rpb25IZWxwZXIucmVtb3ZlKCk7CgkJCXNlbGVjdGlvbkhlbHBlciA9IG51bGw7CgkJfQoJfQoKCglmdW5jdGlvbiBzbG90U2VsZWN0aW9uTW91c2Vkb3duKGV2KSB7CgkJaWYgKGV2LndoaWNoID09IDEgJiYgb3B0KCdzZWxlY3RhYmxlJykpIHsgLy8gZXYud2hpY2g9PTEgbWVhbnMgbGVmdCBtb3VzZSBidXR0b24KCQkJdW5zZWxlY3QoZXYpOwoJCQl2YXIgZGF0ZXM7CgkJCWhvdmVyTGlzdGVuZXIuc3RhcnQoZnVuY3Rpb24oY2VsbCwgb3JpZ0NlbGwpIHsKCQkJCWNsZWFyU2VsZWN0aW9uKCk7CgkJCQlpZiAoY2VsbCAmJiBjZWxsLmNvbCA9PSBvcmlnQ2VsbC5jb2wgJiYgIWdldElzQ2VsbEFsbERheShjZWxsKSkgewoJCQkJCXZhciBkMSA9IHJlYWxDZWxsVG9EYXRlKG9yaWdDZWxsKTsKCQkJCQl2YXIgZDIgPSByZWFsQ2VsbFRvRGF0ZShjZWxsKTsKCQkJCQlkYXRlcyA9IFsKCQkJCQkJZDEsCgkJCQkJCWFkZE1pbnV0ZXMoY2xvbmVEYXRlKGQxKSwgc25hcE1pbnV0ZXMpLCAvLyBjYWxjdWxhdGUgbWludXRlcyBkZXBlbmRpbmcgb24gc2VsZWN0aW9uIHNsb3QgbWludXRlcwoJCQkJCQlkMiwKCQkJCQkJYWRkTWludXRlcyhjbG9uZURhdGUoZDIpLCBzbmFwTWludXRlcykKCQkJCQldLnNvcnQoZGF0ZUNvbXBhcmUpOwoJCQkJCXJlbmRlclNsb3RTZWxlY3Rpb24oZGF0ZXNbMF0sIGRhdGVzWzNdKTsKCQkJCX1lbHNlewoJCQkJCWRhdGVzID0gbnVsbDsKCQkJCX0KCQkJfSwgZXYpOwoJCQkkKGRvY3VtZW50KS5vbmUoJ21vdXNldXAnLCBmdW5jdGlvbihldikgewoJCQkJaG92ZXJMaXN0ZW5lci5zdG9wKCk7CgkJCQlpZiAoZGF0ZXMpIHsKCQkJCQlpZiAoK2RhdGVzWzBdID09ICtkYXRlc1sxXSkgewoJCQkJCQlyZXBvcnREYXlDbGljayhkYXRlc1swXSwgZmFsc2UsIGV2KTsKCQkJCQl9CgkJCQkJcmVwb3J0U2VsZWN0aW9uKGRhdGVzWzBdLCBkYXRlc1szXSwgZmFsc2UsIGV2KTsKCQkJCX0KCQkJfSk7CgkJfQoJfQoKCglmdW5jdGlvbiByZXBvcnREYXlDbGljayhkYXRlLCBhbGxEYXksIGV2KSB7CgkJdHJpZ2dlcignZGF5Q2xpY2snLCBkYXlCb2R5Q2VsbHNbZGF0ZVRvQ2VsbChkYXRlKS5jb2xdLCBkYXRlLCBhbGxEYXksIGV2KTsKCX0KCgoKCS8qIEV4dGVybmFsIERyYWdnaW5nCgktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoKCWZ1bmN0aW9uIGRyYWdTdGFydChfZHJhZ0VsZW1lbnQsIGV2LCB1aSkgewoJCWhvdmVyTGlzdGVuZXIuc3RhcnQoZnVuY3Rpb24oY2VsbCkgewoJCQljbGVhck92ZXJsYXlzKCk7CgkJCWlmIChjZWxsKSB7CgkJCQlpZiAoZ2V0SXNDZWxsQWxsRGF5KGNlbGwpKSB7CgkJCQkJcmVuZGVyQ2VsbE92ZXJsYXkoY2VsbC5yb3csIGNlbGwuY29sLCBjZWxsLnJvdywgY2VsbC5jb2wpOwoJCQkJfWVsc2V7CgkJCQkJdmFyIGQxID0gcmVhbENlbGxUb0RhdGUoY2VsbCk7CgkJCQkJdmFyIGQyID0gYWRkTWludXRlcyhjbG9uZURhdGUoZDEpLCBvcHQoJ2RlZmF1bHRFdmVudE1pbnV0ZXMnKSk7CgkJCQkJcmVuZGVyU2xvdE92ZXJsYXkoZDEsIGQyKTsKCQkJCX0KCQkJfQoJCX0sIGV2KTsKCX0KCgoJZnVuY3Rpb24gZHJhZ1N0b3AoX2RyYWdFbGVtZW50LCBldiwgdWkpIHsKCQl2YXIgY2VsbCA9IGhvdmVyTGlzdGVuZXIuc3RvcCgpOwoJCWNsZWFyT3ZlcmxheXMoKTsKCQlpZiAoY2VsbCkgewoJCQl0cmlnZ2VyKCdkcm9wJywgX2RyYWdFbGVtZW50LCByZWFsQ2VsbFRvRGF0ZShjZWxsKSwgZ2V0SXNDZWxsQWxsRGF5KGNlbGwpLCBldiwgdWkpOwoJCX0KCX0KCgp9Cgo7OwoKZnVuY3Rpb24gQWdlbmRhRXZlbnRSZW5kZXJlcigpIHsKCXZhciB0ID0gdGhpczsKCgoJLy8gZXhwb3J0cwoJdC5yZW5kZXJFdmVudHMgPSByZW5kZXJFdmVudHM7Cgl0LmNsZWFyRXZlbnRzID0gY2xlYXJFdmVudHM7Cgl0LnNsb3RTZWdIdG1sID0gc2xvdFNlZ0h0bWw7CgoKCS8vIGltcG9ydHMKCURheUV2ZW50UmVuZGVyZXIuY2FsbCh0KTsKCXZhciBvcHQgPSB0Lm9wdDsKCXZhciB0cmlnZ2VyID0gdC50cmlnZ2VyOwoJdmFyIGlzRXZlbnREcmFnZ2FibGUgPSB0LmlzRXZlbnREcmFnZ2FibGU7Cgl2YXIgaXNFdmVudFJlc2l6YWJsZSA9IHQuaXNFdmVudFJlc2l6YWJsZTsKCXZhciBldmVudEVuZCA9IHQuZXZlbnRFbmQ7Cgl2YXIgZXZlbnRFbGVtZW50SGFuZGxlcnMgPSB0LmV2ZW50RWxlbWVudEhhbmRsZXJzOwoJdmFyIHNldEhlaWdodCA9IHQuc2V0SGVpZ2h0OwoJdmFyIGdldERheVNlZ21lbnRDb250YWluZXIgPSB0LmdldERheVNlZ21lbnRDb250YWluZXI7Cgl2YXIgZ2V0U2xvdFNlZ21lbnRDb250YWluZXIgPSB0LmdldFNsb3RTZWdtZW50Q29udGFpbmVyOwoJdmFyIGdldEhvdmVyTGlzdGVuZXIgPSB0LmdldEhvdmVyTGlzdGVuZXI7Cgl2YXIgZ2V0TWF4TWludXRlID0gdC5nZXRNYXhNaW51dGU7Cgl2YXIgZ2V0TWluTWludXRlID0gdC5nZXRNaW5NaW51dGU7Cgl2YXIgdGltZVBvc2l0aW9uID0gdC50aW1lUG9zaXRpb247Cgl2YXIgZ2V0SXNDZWxsQWxsRGF5ID0gdC5nZXRJc0NlbGxBbGxEYXk7Cgl2YXIgY29sQ29udGVudExlZnQgPSB0LmNvbENvbnRlbnRMZWZ0OwoJdmFyIGNvbENvbnRlbnRSaWdodCA9IHQuY29sQ29udGVudFJpZ2h0OwoJdmFyIGNlbGxUb0RhdGUgPSB0LmNlbGxUb0RhdGU7Cgl2YXIgZ2V0Q29sQ250ID0gdC5nZXRDb2xDbnQ7Cgl2YXIgZ2V0Q29sV2lkdGggPSB0LmdldENvbFdpZHRoOwoJdmFyIGdldFNuYXBIZWlnaHQgPSB0LmdldFNuYXBIZWlnaHQ7Cgl2YXIgZ2V0U25hcE1pbnV0ZXMgPSB0LmdldFNuYXBNaW51dGVzOwoJdmFyIGdldFNsb3RDb250YWluZXIgPSB0LmdldFNsb3RDb250YWluZXI7Cgl2YXIgcmVwb3J0RXZlbnRFbGVtZW50ID0gdC5yZXBvcnRFdmVudEVsZW1lbnQ7Cgl2YXIgc2hvd0V2ZW50cyA9IHQuc2hvd0V2ZW50czsKCXZhciBoaWRlRXZlbnRzID0gdC5oaWRlRXZlbnRzOwoJdmFyIGV2ZW50RHJvcCA9IHQuZXZlbnREcm9wOwoJdmFyIGV2ZW50UmVzaXplID0gdC5ldmVudFJlc2l6ZTsKCXZhciByZW5kZXJEYXlPdmVybGF5ID0gdC5yZW5kZXJEYXlPdmVybGF5OwoJdmFyIGNsZWFyT3ZlcmxheXMgPSB0LmNsZWFyT3ZlcmxheXM7Cgl2YXIgcmVuZGVyRGF5RXZlbnRzID0gdC5yZW5kZXJEYXlFdmVudHM7Cgl2YXIgY2FsZW5kYXIgPSB0LmNhbGVuZGFyOwoJdmFyIGZvcm1hdERhdGUgPSBjYWxlbmRhci5mb3JtYXREYXRlOwoJdmFyIGZvcm1hdERhdGVzID0gY2FsZW5kYXIuZm9ybWF0RGF0ZXM7CgoKCS8vIG92ZXJyaWRlcwoJdC5kcmFnZ2FibGVEYXlFdmVudCA9IGRyYWdnYWJsZURheUV2ZW50OwoKCgoJLyogUmVuZGVyaW5nCgktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCgoJZnVuY3Rpb24gcmVuZGVyRXZlbnRzKGV2ZW50cywgbW9kaWZpZWRFdmVudElkKSB7CgkJdmFyIGksIGxlbj1ldmVudHMubGVuZ3RoLAoJCQlkYXlFdmVudHM9W10sCgkJCXNsb3RFdmVudHM9W107CgkJZm9yIChpPTA7IGk8bGVuOyBpKyspIHsKCQkJaWYgKGV2ZW50c1tpXS5hbGxEYXkpIHsKCQkJCWRheUV2ZW50cy5wdXNoKGV2ZW50c1tpXSk7CgkJCX1lbHNlewoJCQkJc2xvdEV2ZW50cy5wdXNoKGV2ZW50c1tpXSk7CgkJCX0KCQl9CgoJCWlmIChvcHQoJ2FsbERheVNsb3QnKSkgewoJCQlyZW5kZXJEYXlFdmVudHMoZGF5RXZlbnRzLCBtb2RpZmllZEV2ZW50SWQpOwoJCQlzZXRIZWlnaHQoKTsgLy8gbm8gcGFyYW1zIG1lYW5zIHNldCB0byB2aWV3SGVpZ2h0CgkJfQoKCQlyZW5kZXJTbG90U2Vncyhjb21waWxlU2xvdFNlZ3Moc2xvdEV2ZW50cyksIG1vZGlmaWVkRXZlbnRJZCk7Cgl9CgoKCWZ1bmN0aW9uIGNsZWFyRXZlbnRzKCkgewoJCWdldERheVNlZ21lbnRDb250YWluZXIoKS5lbXB0eSgpOwoJCWdldFNsb3RTZWdtZW50Q29udGFpbmVyKCkuZW1wdHkoKTsKCX0KCgoJZnVuY3Rpb24gY29tcGlsZVNsb3RTZWdzKGV2ZW50cykgewoJCXZhciBjb2xDbnQgPSBnZXRDb2xDbnQoKSwKCQkJbWluTWludXRlID0gZ2V0TWluTWludXRlKCksCgkJCW1heE1pbnV0ZSA9IGdldE1heE1pbnV0ZSgpLAoJCQlkLAoJCQl2aXNFdmVudEVuZHMgPSAkLm1hcChldmVudHMsIHNsb3RFdmVudEVuZCksCgkJCWksCgkJCWosIHNlZywKCQkJY29sU2VncywKCQkJc2VncyA9IFtdOwoKCQlmb3IgKGk9MDsgaTxjb2xDbnQ7IGkrKykgewoKCQkJZCA9IGNlbGxUb0RhdGUoMCwgaSk7CgkJCWFkZE1pbnV0ZXMoZCwgbWluTWludXRlKTsKCgkJCWNvbFNlZ3MgPSBzbGljZVNlZ3MoCgkJCQlldmVudHMsCgkJCQl2aXNFdmVudEVuZHMsCgkJCQlkLAoJCQkJYWRkTWludXRlcyhjbG9uZURhdGUoZCksIG1heE1pbnV0ZS1taW5NaW51dGUpCgkJCSk7CgoJCQljb2xTZWdzID0gcGxhY2VTbG90U2Vncyhjb2xTZWdzKTsgLy8gcmV0dXJucyBhIG5ldyBvcmRlcgoKCQkJZm9yIChqPTA7IGo8Y29sU2Vncy5sZW5ndGg7IGorKykgewoJCQkJc2VnID0gY29sU2Vnc1tqXTsKCQkJCXNlZy5jb2wgPSBpOwoJCQkJc2Vncy5wdXNoKHNlZyk7CgkJCX0KCQl9CgoJCXJldHVybiBzZWdzOwoJfQoKCglmdW5jdGlvbiBzbGljZVNlZ3MoZXZlbnRzLCB2aXNFdmVudEVuZHMsIHN0YXJ0LCBlbmQpIHsKCQl2YXIgc2VncyA9IFtdLAoJCQlpLCBsZW49ZXZlbnRzLmxlbmd0aCwgZXZlbnQsCgkJCWV2ZW50U3RhcnQsIGV2ZW50RW5kLAoJCQlzZWdTdGFydCwgc2VnRW5kLAoJCQlpc1N0YXJ0LCBpc0VuZDsKCQlmb3IgKGk9MDsgaTxsZW47IGkrKykgewoJCQlldmVudCA9IGV2ZW50c1tpXTsKCQkJZXZlbnRTdGFydCA9IGV2ZW50LnN0YXJ0OwoJCQlldmVudEVuZCA9IHZpc0V2ZW50RW5kc1tpXTsKCQkJaWYgKGV2ZW50RW5kID4gc3RhcnQgJiYgZXZlbnRTdGFydCA8IGVuZCkgewoJCQkJaWYgKGV2ZW50U3RhcnQgPCBzdGFydCkgewoJCQkJCXNlZ1N0YXJ0ID0gY2xvbmVEYXRlKHN0YXJ0KTsKCQkJCQlpc1N0YXJ0ID0gZmFsc2U7CgkJCQl9ZWxzZXsKCQkJCQlzZWdTdGFydCA9IGV2ZW50U3RhcnQ7CgkJCQkJaXNTdGFydCA9IHRydWU7CgkJCQl9CgkJCQlpZiAoZXZlbnRFbmQgPiBlbmQpIHsKCQkJCQlzZWdFbmQgPSBjbG9uZURhdGUoZW5kKTsKCQkJCQlpc0VuZCA9IGZhbHNlOwoJCQkJfWVsc2V7CgkJCQkJc2VnRW5kID0gZXZlbnRFbmQ7CgkJCQkJaXNFbmQgPSB0cnVlOwoJCQkJfQoJCQkJc2Vncy5wdXNoKHsKCQkJCQlldmVudDogZXZlbnQsCgkJCQkJc3RhcnQ6IHNlZ1N0YXJ0LAoJCQkJCWVuZDogc2VnRW5kLAoJCQkJCWlzU3RhcnQ6IGlzU3RhcnQsCgkJCQkJaXNFbmQ6IGlzRW5kCgkJCQl9KTsKCQkJfQoJCX0KCQlyZXR1cm4gc2Vncy5zb3J0KGNvbXBhcmVTbG90U2Vncyk7Cgl9CgoKCWZ1bmN0aW9uIHNsb3RFdmVudEVuZChldmVudCkgewoJCWlmIChldmVudC5lbmQpIHsKCQkJcmV0dXJuIGNsb25lRGF0ZShldmVudC5lbmQpOwoJCX1lbHNlewoJCQlyZXR1cm4gYWRkTWludXRlcyhjbG9uZURhdGUoZXZlbnQuc3RhcnQpLCBvcHQoJ2RlZmF1bHRFdmVudE1pbnV0ZXMnKSk7CgkJfQoJfQoKCgkvLyByZW5kZXJzIGV2ZW50cyBpbiB0aGUgJ3RpbWUgc2xvdHMnIGF0IHRoZSBib3R0b20KCS8vIFRPRE86IHdoZW4gd2UgcmVmYWN0b3IgdGhpcywgd2hlbiB1c2VyIHJldHVybnMgYGZhbHNlYCBldmVudFJlbmRlciwgZG9uJ3QgaGF2ZSBlbXB0eSBzcGFjZQoJLy8gVE9ETzogcmVmYWN0b3Igd2lsbCBpbmNsdWRlIHVzaW5nIHBpeGVscyB0byBkZXRlY3QgY29sbGlzaW9ucyBpbnN0ZWFkIG9mIGRhdGVzIChoYW5keSBmb3Igc2VnIGNtcCkKCglmdW5jdGlvbiByZW5kZXJTbG90U2VncyhzZWdzLCBtb2RpZmllZEV2ZW50SWQpIHsKCgkJdmFyIGksIHNlZ0NudD1zZWdzLmxlbmd0aCwgc2VnLAoJCQlldmVudCwKCQkJdG9wLAoJCQlib3R0b20sCgkJCWNvbHVtbkxlZnQsCgkJCWNvbHVtblJpZ2h0LAoJCQljb2x1bW5XaWR0aCwKCQkJd2lkdGgsCgkJCWxlZnQsCgkJCXJpZ2h0LAoJCQlodG1sID0gJycsCgkJCWV2ZW50RWxlbWVudHMsCgkJCWV2ZW50RWxlbWVudCwKCQkJdHJpZ2dlclJlcywKCQkJdGl0bGVFbGVtZW50LAoJCQloZWlnaHQsCgkJCXNsb3RTZWdtZW50Q29udGFpbmVyID0gZ2V0U2xvdFNlZ21lbnRDb250YWluZXIoKSwKCQkJaXNSVEwgPSBvcHQoJ2lzUlRMJyk7CgoJCS8vIGNhbGN1bGF0ZSBwb3NpdGlvbi9kaW1lbnNpb25zLCBjcmVhdGUgaHRtbAoJCWZvciAoaT0wOyBpPHNlZ0NudDsgaSsrKSB7CgkJCXNlZyA9IHNlZ3NbaV07CgkJCWV2ZW50ID0gc2VnLmV2ZW50OwoJCQl0b3AgPSB0aW1lUG9zaXRpb24oc2VnLnN0YXJ0LCBzZWcuc3RhcnQpOwoJCQlib3R0b20gPSB0aW1lUG9zaXRpb24oc2VnLnN0YXJ0LCBzZWcuZW5kKTsKCQkJY29sdW1uTGVmdCA9IGNvbENvbnRlbnRMZWZ0KHNlZy5jb2wpOwoJCQljb2x1bW5SaWdodCA9IGNvbENvbnRlbnRSaWdodChzZWcuY29sKTsKCQkJY29sdW1uV2lkdGggPSBjb2x1bW5SaWdodCAtIGNvbHVtbkxlZnQ7CgoJCQkvLyBzaGF2ZSBvZmYgc3BhY2Ugb24gcmlnaHQgbmVhciBzY3JvbGxiYXJzICgyLjUlKQoJCQkvLyBUT0RPOiBtb3ZlIHRoaXMgdG8gQ1NTIHNvbWVob3cKCQkJY29sdW1uUmlnaHQgLT0gY29sdW1uV2lkdGggKiAuMDI1OwoJCQljb2x1bW5XaWR0aCA9IGNvbHVtblJpZ2h0IC0gY29sdW1uTGVmdDsKCgkJCXdpZHRoID0gY29sdW1uV2lkdGggKiAoc2VnLmZvcndhcmRDb29yZCAtIHNlZy5iYWNrd2FyZENvb3JkKTsKCgkJCWlmIChvcHQoJ3Nsb3RFdmVudE92ZXJsYXAnKSkgewoJCQkJLy8gZG91YmxlIHRoZSB3aWR0aCB3aGlsZSBtYWtpbmcgc3VyZSByZXNpemUgaGFuZGxlIGlzIHZpc2libGUKCQkJCS8vIChhc3N1bWVkIHRvIGJlIDIwcHggd2lkZSkKCQkJCXdpZHRoID0gTWF0aC5tYXgoCgkJCQkJKHdpZHRoIC0gKDIwLzIpKSAqIDIsCgkJCQkJd2lkdGggLy8gbmFycm93IGNvbHVtbnMgd2lsbCB3YW50IHRvIG1ha2UgdGhlIHNlZ21lbnQgc21hbGxlciB0aGFuCgkJCQkJCS8vIHRoZSBuYXR1cmFsIHdpZHRoLiBkb24ndCBhbGxvdyBpdAoJCQkJKTsKCQkJfQoKCQkJaWYgKGlzUlRMKSB7CgkJCQlyaWdodCA9IGNvbHVtblJpZ2h0IC0gc2VnLmJhY2t3YXJkQ29vcmQgKiBjb2x1bW5XaWR0aDsKCQkJCWxlZnQgPSByaWdodCAtIHdpZHRoOwoJCQl9CgkJCWVsc2UgewoJCQkJbGVmdCA9IGNvbHVtbkxlZnQgKyBzZWcuYmFja3dhcmRDb29yZCAqIGNvbHVtbldpZHRoOwoJCQkJcmlnaHQgPSBsZWZ0ICsgd2lkdGg7CgkJCX0KCgkJCS8vIG1ha2Ugc3VyZSBob3Jpem9udGFsIGNvb3JkaW5hdGVzIGFyZSBpbiBib3VuZHMKCQkJbGVmdCA9IE1hdGgubWF4KGxlZnQsIGNvbHVtbkxlZnQpOwoJCQlyaWdodCA9IE1hdGgubWluKHJpZ2h0LCBjb2x1bW5SaWdodCk7CgkJCXdpZHRoID0gcmlnaHQgLSBsZWZ0OwoKCQkJc2VnLnRvcCA9IHRvcDsKCQkJc2VnLmxlZnQgPSBsZWZ0OwoJCQlzZWcub3V0ZXJXaWR0aCA9IHdpZHRoOwoJCQlzZWcub3V0ZXJIZWlnaHQgPSBib3R0b20gLSB0b3A7CgkJCWh0bWwgKz0gc2xvdFNlZ0h0bWwoZXZlbnQsIHNlZyk7CgkJfQoKCQlzbG90U2VnbWVudENvbnRhaW5lclswXS5pbm5lckhUTUwgPSBodG1sOyAvLyBmYXN0ZXIgdGhhbiBodG1sKCkKCQlldmVudEVsZW1lbnRzID0gc2xvdFNlZ21lbnRDb250YWluZXIuY2hpbGRyZW4oKTsKCgkJLy8gcmV0cmlldmUgZWxlbWVudHMsIHJ1biB0aHJvdWdoIGV2ZW50UmVuZGVyIGNhbGxiYWNrLCBiaW5kIGV2ZW50IGhhbmRsZXJzCgkJZm9yIChpPTA7IGk8c2VnQ250OyBpKyspIHsKCQkJc2VnID0gc2Vnc1tpXTsKCQkJZXZlbnQgPSBzZWcuZXZlbnQ7CgkJCWV2ZW50RWxlbWVudCA9ICQoZXZlbnRFbGVtZW50c1tpXSk7IC8vIGZhc3RlciB0aGFuIGVxKCkKCQkJdHJpZ2dlclJlcyA9IHRyaWdnZXIoJ2V2ZW50UmVuZGVyJywgZXZlbnQsIGV2ZW50LCBldmVudEVsZW1lbnQpOwoJCQlpZiAodHJpZ2dlclJlcyA9PT0gZmFsc2UpIHsKCQkJCWV2ZW50RWxlbWVudC5yZW1vdmUoKTsKCQkJfWVsc2V7CgkJCQlpZiAodHJpZ2dlclJlcyAmJiB0cmlnZ2VyUmVzICE9PSB0cnVlKSB7CgkJCQkJZXZlbnRFbGVtZW50LnJlbW92ZSgpOwoJCQkJCWV2ZW50RWxlbWVudCA9ICQodHJpZ2dlclJlcykKCQkJCQkJLmNzcyh7CgkJCQkJCQlwb3NpdGlvbjogJ2Fic29sdXRlJywKCQkJCQkJCXRvcDogc2VnLnRvcCwKCQkJCQkJCWxlZnQ6IHNlZy5sZWZ0CgkJCQkJCX0pCgkJCQkJCS5hcHBlbmRUbyhzbG90U2VnbWVudENvbnRhaW5lcik7CgkJCQl9CgkJCQlzZWcuZWxlbWVudCA9IGV2ZW50RWxlbWVudDsKCQkJCWlmIChldmVudC5faWQgPT09IG1vZGlmaWVkRXZlbnRJZCkgewoJCQkJCWJpbmRTbG90U2VnKGV2ZW50LCBldmVudEVsZW1lbnQsIHNlZyk7CgkJCQl9ZWxzZXsKCQkJCQlldmVudEVsZW1lbnRbMF0uX2ZjaSA9IGk7IC8vIGZvciBsYXp5U2VnQmluZAoJCQkJfQoJCQkJcmVwb3J0RXZlbnRFbGVtZW50KGV2ZW50LCBldmVudEVsZW1lbnQpOwoJCQl9CgkJfQoKCQlsYXp5U2VnQmluZChzbG90U2VnbWVudENvbnRhaW5lciwgc2VncywgYmluZFNsb3RTZWcpOwoKCQkvLyByZWNvcmQgZXZlbnQgc2lkZXMgYW5kIHRpdGxlIHBvc2l0aW9ucwoJCWZvciAoaT0wOyBpPHNlZ0NudDsgaSsrKSB7CgkJCXNlZyA9IHNlZ3NbaV07CgkJCWlmIChldmVudEVsZW1lbnQgPSBzZWcuZWxlbWVudCkgewoJCQkJc2VnLnZzaWRlcyA9IHZzaWRlcyhldmVudEVsZW1lbnQsIHRydWUpOwoJCQkJc2VnLmhzaWRlcyA9IGhzaWRlcyhldmVudEVsZW1lbnQsIHRydWUpOwoJCQkJdGl0bGVFbGVtZW50ID0gZXZlbnRFbGVtZW50LmZpbmQoJy5mYy1ldmVudC10aXRsZScpOwoJCQkJaWYgKHRpdGxlRWxlbWVudC5sZW5ndGgpIHsKCQkJCQlzZWcuY29udGVudFRvcCA9IHRpdGxlRWxlbWVudFswXS5vZmZzZXRUb3A7CgkJCQl9CgkJCX0KCQl9CgoJCS8vIHNldCBhbGwgcG9zaXRpb25zL2RpbWVuc2lvbnMgYXQgb25jZQoJCWZvciAoaT0wOyBpPHNlZ0NudDsgaSsrKSB7CgkJCXNlZyA9IHNlZ3NbaV07CgkJCWlmIChldmVudEVsZW1lbnQgPSBzZWcuZWxlbWVudCkgewoJCQkJZXZlbnRFbGVtZW50WzBdLnN0eWxlLndpZHRoID0gTWF0aC5tYXgoMCwgc2VnLm91dGVyV2lkdGggLSBzZWcuaHNpZGVzKSArICdweCc7CgkJCQloZWlnaHQgPSBNYXRoLm1heCgwLCBzZWcub3V0ZXJIZWlnaHQgLSBzZWcudnNpZGVzKTsKCQkJCWV2ZW50RWxlbWVudFswXS5zdHlsZS5oZWlnaHQgPSBoZWlnaHQgKyAncHgnOwoJCQkJZXZlbnQgPSBzZWcuZXZlbnQ7CgkJCQlpZiAoc2VnLmNvbnRlbnRUb3AgIT09IHVuZGVmaW5lZCAmJiBoZWlnaHQgLSBzZWcuY29udGVudFRvcCA8IDEwKSB7CgkJCQkJLy8gbm90IGVub3VnaCByb29tIGZvciB0aXRsZSwgcHV0IGl0IGluIHRoZSB0aW1lIChUT0RPOiBtYXliZSBtYWtlIGJvdGggZGlzcGxheTppbmxpbmUgaW5zdGVhZCkKCQkJCQlldmVudEVsZW1lbnQuZmluZCgnZGl2LmZjLWV2ZW50LXRpbWUnKQoJCQkJCQkudGV4dChmb3JtYXREYXRlKGV2ZW50LnN0YXJ0LCBvcHQoJ3RpbWVGb3JtYXQnKSkgKyAnIC0gJyArIGV2ZW50LnRpdGxlKTsKCQkJCQlldmVudEVsZW1lbnQuZmluZCgnZGl2LmZjLWV2ZW50LXRpdGxlJykKCQkJCQkJLnJlbW92ZSgpOwoJCQkJfQoJCQkJdHJpZ2dlcignZXZlbnRBZnRlclJlbmRlcicsIGV2ZW50LCBldmVudCwgZXZlbnRFbGVtZW50KTsKCQkJfQoJCX0KCgl9CgoKCWZ1bmN0aW9uIHNsb3RTZWdIdG1sKGV2ZW50LCBzZWcpIHsKCQl2YXIgaHRtbCA9ICI8IjsKCQl2YXIgdXJsID0gZXZlbnQudXJsOwoJCXZhciBza2luQ3NzID0gZ2V0U2tpbkNzcyhldmVudCwgb3B0KTsKCQl2YXIgY2xhc3NlcyA9IFsnZmMtZXZlbnQnLCAnZmMtZXZlbnQtdmVydCddOwoJCWlmIChpc0V2ZW50RHJhZ2dhYmxlKGV2ZW50KSkgewoJCQljbGFzc2VzLnB1c2goJ2ZjLWV2ZW50LWRyYWdnYWJsZScpOwoJCX0KCQlpZiAoc2VnLmlzU3RhcnQpIHsKCQkJY2xhc3Nlcy5wdXNoKCdmYy1ldmVudC1zdGFydCcpOwoJCX0KCQlpZiAoc2VnLmlzRW5kKSB7CgkJCWNsYXNzZXMucHVzaCgnZmMtZXZlbnQtZW5kJyk7CgkJfQoJCWNsYXNzZXMgPSBjbGFzc2VzLmNvbmNhdChldmVudC5jbGFzc05hbWUpOwoJCWlmIChldmVudC5zb3VyY2UpIHsKCQkJY2xhc3NlcyA9IGNsYXNzZXMuY29uY2F0KGV2ZW50LnNvdXJjZS5jbGFzc05hbWUgfHwgW10pOwoJCX0KCQlpZiAodXJsKSB7CgkJCWh0bWwgKz0gImEgaHJlZj0nIiArIGh0bWxFc2NhcGUoZXZlbnQudXJsKSArICInIjsKCQl9ZWxzZXsKCQkJaHRtbCArPSAiZGl2IjsKCQl9CgkJaHRtbCArPQoJCQkiIGNsYXNzPSciICsgY2xhc3Nlcy5qb2luKCcgJykgKyAiJyIgKwoJCQkiIHN0eWxlPSIgKwoJCQkJIiciICsKCQkJCSJwb3NpdGlvbjphYnNvbHV0ZTsiICsKCQkJCSJ0b3A6IiArIHNlZy50b3AgKyAicHg7IiArCgkJCQkibGVmdDoiICsgc2VnLmxlZnQgKyAicHg7IiArCgkJCQlza2luQ3NzICsKCQkJCSInIiArCgkJCSI+IiArCgkJCSI8ZGl2IGNsYXNzPSdmYy1ldmVudC1pbm5lcic+IiArCgkJCSI8ZGl2IGNsYXNzPSdmYy1ldmVudC10aW1lJz4iICsKCQkJaHRtbEVzY2FwZShmb3JtYXREYXRlcyhldmVudC5zdGFydCwgZXZlbnQuZW5kLCBvcHQoJ3RpbWVGb3JtYXQnKSkpICsKCQkJIjwvZGl2PiIgKwoJCQkiPGRpdiBjbGFzcz0nZmMtZXZlbnQtdGl0bGUnPiIgKwoJCQlodG1sRXNjYXBlKGV2ZW50LnRpdGxlIHx8ICcnKSArCgkJCSI8L2Rpdj4iICsKCQkJIjwvZGl2PiIgKwoJCQkiPGRpdiBjbGFzcz0nZmMtZXZlbnQtYmcnPjwvZGl2PiI7CgkJaWYgKHNlZy5pc0VuZCAmJiBpc0V2ZW50UmVzaXphYmxlKGV2ZW50KSkgewoJCQlodG1sICs9CgkJCQkiPGRpdiBjbGFzcz0ndWktcmVzaXphYmxlLWhhbmRsZSB1aS1yZXNpemFibGUtcyc+PTwvZGl2PiI7CgkJfQoJCWh0bWwgKz0KCQkJIjwvIiArICh1cmwgPyAiYSIgOiAiZGl2IikgKyAiPiI7CgkJcmV0dXJuIGh0bWw7Cgl9CgoKCWZ1bmN0aW9uIGJpbmRTbG90U2VnKGV2ZW50LCBldmVudEVsZW1lbnQsIHNlZykgewoJCXZhciB0aW1lRWxlbWVudCA9IGV2ZW50RWxlbWVudC5maW5kKCdkaXYuZmMtZXZlbnQtdGltZScpOwoJCWlmIChpc0V2ZW50RHJhZ2dhYmxlKGV2ZW50KSkgewoJCQlkcmFnZ2FibGVTbG90RXZlbnQoZXZlbnQsIGV2ZW50RWxlbWVudCwgdGltZUVsZW1lbnQpOwoJCX0KCQlpZiAoc2VnLmlzRW5kICYmIGlzRXZlbnRSZXNpemFibGUoZXZlbnQpKSB7CgkJCXJlc2l6YWJsZVNsb3RFdmVudChldmVudCwgZXZlbnRFbGVtZW50LCB0aW1lRWxlbWVudCk7CgkJfQoJCWV2ZW50RWxlbWVudEhhbmRsZXJzKGV2ZW50LCBldmVudEVsZW1lbnQpOwoJfQoKCgoJLyogRHJhZ2dpbmcKCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCgoJLy8gd2hlbiBldmVudCBzdGFydHMgb3V0IEZVTEwtREFZCgkvLyBvdmVycmlkZXMgRGF5RXZlbnRSZW5kZXJlcidzIHZlcnNpb24gYmVjYXVzZSBpdCBuZWVkcyB0byBhY2NvdW50IGZvciBkcmFnZ2luZyBlbGVtZW50cwoJLy8gdG8gYW5kIGZyb20gdGhlIHNsb3QgYXJlYS4KCglmdW5jdGlvbiBkcmFnZ2FibGVEYXlFdmVudChldmVudCwgZXZlbnRFbGVtZW50LCBzZWcpIHsKCQl2YXIgaXNTdGFydCA9IHNlZy5pc1N0YXJ0OwoJCXZhciBvcmlnV2lkdGg7CgkJdmFyIHJldmVydDsKCQl2YXIgYWxsRGF5ID0gdHJ1ZTsKCQl2YXIgZGF5RGVsdGE7CgkJdmFyIGhvdmVyTGlzdGVuZXIgPSBnZXRIb3Zlckxpc3RlbmVyKCk7CgkJdmFyIGNvbFdpZHRoID0gZ2V0Q29sV2lkdGgoKTsKCQl2YXIgc25hcEhlaWdodCA9IGdldFNuYXBIZWlnaHQoKTsKCQl2YXIgc25hcE1pbnV0ZXMgPSBnZXRTbmFwTWludXRlcygpOwoJCXZhciBtaW5NaW51dGUgPSBnZXRNaW5NaW51dGUoKTsKCQlldmVudEVsZW1lbnQuZHJhZ2dhYmxlKHsKCQkJb3BhY2l0eTogb3B0KCdkcmFnT3BhY2l0eScsICdtb250aCcpLCAvLyB1c2Ugd2hhdGV2ZXIgdGhlIG1vbnRoIHZpZXcgd2FzIHVzaW5nCgkJCXJldmVydER1cmF0aW9uOiBvcHQoJ2RyYWdSZXZlcnREdXJhdGlvbicpLAoJCQlzdGFydDogZnVuY3Rpb24oZXYsIHVpKSB7CgkJCQl0cmlnZ2VyKCdldmVudERyYWdTdGFydCcsIGV2ZW50RWxlbWVudCwgZXZlbnQsIGV2LCB1aSk7CgkJCQloaWRlRXZlbnRzKGV2ZW50LCBldmVudEVsZW1lbnQpOwoJCQkJb3JpZ1dpZHRoID0gZXZlbnRFbGVtZW50LndpZHRoKCk7CgkJCQlob3Zlckxpc3RlbmVyLnN0YXJ0KGZ1bmN0aW9uKGNlbGwsIG9yaWdDZWxsKSB7CgkJCQkJY2xlYXJPdmVybGF5cygpOwoJCQkJCWlmIChjZWxsKSB7CgkJCQkJCXJldmVydCA9IGZhbHNlOwoJCQkJCQl2YXIgb3JpZ0RhdGUgPSBjZWxsVG9EYXRlKDAsIG9yaWdDZWxsLmNvbCk7CgkJCQkJCXZhciBkYXRlID0gY2VsbFRvRGF0ZSgwLCBjZWxsLmNvbCk7CgkJCQkJCWRheURlbHRhID0gZGF5RGlmZihkYXRlLCBvcmlnRGF0ZSk7CgkJCQkJCWlmICghY2VsbC5yb3cpIHsKCQkJCQkJCS8vIG9uIGZ1bGwtZGF5cwoJCQkJCQkJcmVuZGVyRGF5T3ZlcmxheSgKCQkJCQkJCQlhZGREYXlzKGNsb25lRGF0ZShldmVudC5zdGFydCksIGRheURlbHRhKSwKCQkJCQkJCQlhZGREYXlzKGV4Y2xFbmREYXkoZXZlbnQpLCBkYXlEZWx0YSkKCQkJCQkJCSk7CgkJCQkJCQlyZXNldEVsZW1lbnQoKTsKCQkJCQkJfWVsc2V7CgkJCQkJCQkvLyBtb3VzZSBpcyBvdmVyIGJvdHRvbSBzbG90cwoJCQkJCQkJaWYgKGlzU3RhcnQpIHsKCQkJCQkJCQlpZiAoYWxsRGF5KSB7CgkJCQkJCQkJCS8vIGNvbnZlcnQgZXZlbnQgdG8gdGVtcG9yYXJ5IHNsb3QtZXZlbnQKCQkJCQkJCQkJZXZlbnRFbGVtZW50LndpZHRoKGNvbFdpZHRoIC0gMTApOyAvLyBkb24ndCB1c2UgZW50aXJlIHdpZHRoCgkJCQkJCQkJCXNldE91dGVySGVpZ2h0KAoJCQkJCQkJCQkJZXZlbnRFbGVtZW50LAoJCQkJCQkJCQkJc25hcEhlaWdodCAqIE1hdGgucm91bmQoCgkJCQkJCQkJCQkJKGV2ZW50LmVuZCA/ICgoZXZlbnQuZW5kIC0gZXZlbnQuc3RhcnQpIC8gTUlOVVRFX01TKSA6IG9wdCgnZGVmYXVsdEV2ZW50TWludXRlcycpKSAvCgkJCQkJCQkJCQkJCXNuYXBNaW51dGVzCgkJCQkJCQkJCQkpCgkJCQkJCQkJCSk7CgkJCQkJCQkJCWV2ZW50RWxlbWVudC5kcmFnZ2FibGUoJ29wdGlvbicsICdncmlkJywgW2NvbFdpZHRoLCAxXSk7CgkJCQkJCQkJCWFsbERheSA9IGZhbHNlOwoJCQkJCQkJCX0KCQkJCQkJCX1lbHNlewoJCQkJCQkJCXJldmVydCA9IHRydWU7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQkJcmV2ZXJ0ID0gcmV2ZXJ0IHx8IChhbGxEYXkgJiYgIWRheURlbHRhKTsKCQkJCQl9ZWxzZXsKCQkJCQkJcmVzZXRFbGVtZW50KCk7CgkJCQkJCXJldmVydCA9IHRydWU7CgkJCQkJfQoJCQkJCWV2ZW50RWxlbWVudC5kcmFnZ2FibGUoJ29wdGlvbicsICdyZXZlcnQnLCByZXZlcnQpOwoJCQkJfSwgZXYsICdkcmFnJyk7CgkJCX0sCgkJCXN0b3A6IGZ1bmN0aW9uKGV2LCB1aSkgewoJCQkJaG92ZXJMaXN0ZW5lci5zdG9wKCk7CgkJCQljbGVhck92ZXJsYXlzKCk7CgkJCQl0cmlnZ2VyKCdldmVudERyYWdTdG9wJywgZXZlbnRFbGVtZW50LCBldmVudCwgZXYsIHVpKTsKCQkJCWlmIChyZXZlcnQpIHsKCQkJCQkvLyBoYXNuJ3QgbW92ZWQgb3IgaXMgb3V0IG9mIGJvdW5kcyAoZHJhZ2dhYmxlIGhhcyBhbHJlYWR5IHJldmVydGVkKQoJCQkJCXJlc2V0RWxlbWVudCgpOwoJCQkJCWV2ZW50RWxlbWVudC5jc3MoJ2ZpbHRlcicsICcnKTsgLy8gY2xlYXIgSUUgb3BhY2l0eSBzaWRlLWVmZmVjdHMKCQkJCQlzaG93RXZlbnRzKGV2ZW50LCBldmVudEVsZW1lbnQpOwoJCQkJfWVsc2V7CgkJCQkJLy8gY2hhbmdlZCEKCQkJCQl2YXIgbWludXRlRGVsdGEgPSAwOwoJCQkJCWlmICghYWxsRGF5KSB7CgkJCQkJCW1pbnV0ZURlbHRhID0gTWF0aC5yb3VuZCgoZXZlbnRFbGVtZW50Lm9mZnNldCgpLnRvcCAtIGdldFNsb3RDb250YWluZXIoKS5vZmZzZXQoKS50b3ApIC8gc25hcEhlaWdodCkKCQkJCQkJCSogc25hcE1pbnV0ZXMKCQkJCQkJCSsgbWluTWludXRlCgkJCQkJCQktIChldmVudC5zdGFydC5nZXRIb3VycygpICogNjAgKyBldmVudC5zdGFydC5nZXRNaW51dGVzKCkpOwoJCQkJCX0KCQkJCQlldmVudERyb3AodGhpcywgZXZlbnQsIGRheURlbHRhLCBtaW51dGVEZWx0YSwgYWxsRGF5LCBldiwgdWkpOwoJCQkJfQoJCQl9CgkJfSk7CgkJZnVuY3Rpb24gcmVzZXRFbGVtZW50KCkgewoJCQlpZiAoIWFsbERheSkgewoJCQkJZXZlbnRFbGVtZW50CgkJCQkJLndpZHRoKG9yaWdXaWR0aCkKCQkJCQkuaGVpZ2h0KCcnKQoJCQkJCS5kcmFnZ2FibGUoJ29wdGlvbicsICdncmlkJywgbnVsbCk7CgkJCQlhbGxEYXkgPSB0cnVlOwoJCQl9CgkJfQoJfQoKCgkvLyB3aGVuIGV2ZW50IHN0YXJ0cyBvdXQgSU4gVElNRVNMT1RTCgoJZnVuY3Rpb24gZHJhZ2dhYmxlU2xvdEV2ZW50KGV2ZW50LCBldmVudEVsZW1lbnQsIHRpbWVFbGVtZW50KSB7CgkJdmFyIGNvb3JkaW5hdGVHcmlkID0gdC5nZXRDb29yZGluYXRlR3JpZCgpOwoJCXZhciBjb2xDbnQgPSBnZXRDb2xDbnQoKTsKCQl2YXIgY29sV2lkdGggPSBnZXRDb2xXaWR0aCgpOwoJCXZhciBzbmFwSGVpZ2h0ID0gZ2V0U25hcEhlaWdodCgpOwoJCXZhciBzbmFwTWludXRlcyA9IGdldFNuYXBNaW51dGVzKCk7CgoJCS8vIHN0YXRlcwoJCXZhciBvcmlnUG9zaXRpb247IC8vIG9yaWdpbmFsIHBvc2l0aW9uIG9mIHRoZSBlbGVtZW50LCBub3QgdGhlIG1vdXNlCgkJdmFyIG9yaWdDZWxsOwoJCXZhciBpc0luQm91bmRzLCBwcmV2SXNJbkJvdW5kczsKCQl2YXIgaXNBbGxEYXksIHByZXZJc0FsbERheTsKCQl2YXIgY29sRGVsdGEsIHByZXZDb2xEZWx0YTsKCQl2YXIgZGF5RGVsdGE7IC8vIGRlcml2ZWQgZnJvbSBjb2xEZWx0YQoJCXZhciBtaW51dGVEZWx0YSwgcHJldk1pbnV0ZURlbHRhOwoKCQlldmVudEVsZW1lbnQuZHJhZ2dhYmxlKHsKCQkJc2Nyb2xsOiBmYWxzZSwKCQkJZ3JpZDogWyBjb2xXaWR0aCwgc25hcEhlaWdodCBdLAoJCQlheGlzOiBjb2xDbnQ9PTEgPyAneScgOiBmYWxzZSwKCQkJb3BhY2l0eTogb3B0KCdkcmFnT3BhY2l0eScpLAoJCQlyZXZlcnREdXJhdGlvbjogb3B0KCdkcmFnUmV2ZXJ0RHVyYXRpb24nKSwKCQkJc3RhcnQ6IGZ1bmN0aW9uKGV2LCB1aSkgewoKCQkJCXRyaWdnZXIoJ2V2ZW50RHJhZ1N0YXJ0JywgZXZlbnRFbGVtZW50LCBldmVudCwgZXYsIHVpKTsKCQkJCWhpZGVFdmVudHMoZXZlbnQsIGV2ZW50RWxlbWVudCk7CgoJCQkJY29vcmRpbmF0ZUdyaWQuYnVpbGQoKTsKCgkJCQkvLyBpbml0aWFsaXplIHN0YXRlcwoJCQkJb3JpZ1Bvc2l0aW9uID0gZXZlbnRFbGVtZW50LnBvc2l0aW9uKCk7CgkJCQlvcmlnQ2VsbCA9IGNvb3JkaW5hdGVHcmlkLmNlbGwoZXYucGFnZVgsIGV2LnBhZ2VZKTsKCQkJCWlzSW5Cb3VuZHMgPSBwcmV2SXNJbkJvdW5kcyA9IHRydWU7CgkJCQlpc0FsbERheSA9IHByZXZJc0FsbERheSA9IGdldElzQ2VsbEFsbERheShvcmlnQ2VsbCk7CgkJCQljb2xEZWx0YSA9IHByZXZDb2xEZWx0YSA9IDA7CgkJCQlkYXlEZWx0YSA9IDA7CgkJCQltaW51dGVEZWx0YSA9IHByZXZNaW51dGVEZWx0YSA9IDA7CgoJCQl9LAoJCQlkcmFnOiBmdW5jdGlvbihldiwgdWkpIHsKCgkJCQkvLyBOT1RFOiB0aGlzIGBjZWxsYCB2YWx1ZSBpcyBvbmx5IHVzZWZ1bCBmb3IgZGV0ZXJtaW5pbmcgaW4tYm91bmRzIGFuZCBhbGwtZGF5LgoJCQkJLy8gQmFkIGZvciBhbnl0aGluZyBlbHNlIGR1ZSB0byB0aGUgZGlzY3JlcGFuY3kgYmV0d2VlbiB0aGUgbW91c2UgcG9zaXRpb24gYW5kIHRoZQoJCQkJLy8gZWxlbWVudCBwb3NpdGlvbiB3aGlsZSBzbmFwcGluZy4gKHByb2JsZW0gcmV2ZWFsZWQgaW4gUFIgIzU1KQoJCQkJLy8KCQkJCS8vIFBTLSB0aGUgcHJvYmxlbSBleGlzdHMgZm9yIGRyYWdnYWJsZURheUV2ZW50KCkgd2hlbiBkcmFnZ2luZyBhbiBhbGwtZGF5IGV2ZW50IHRvIGEgc2xvdCBldmVudC4KCQkJCS8vIFdlIHNob3VsZCBvdmVyaGF1bCB0aGUgZHJhZ2dpbmcgc3lzdGVtIGFuZCBzdG9wIHJlbHlpbmcgb24galF1ZXJ5IFVJLgoJCQkJdmFyIGNlbGwgPSBjb29yZGluYXRlR3JpZC5jZWxsKGV2LnBhZ2VYLCBldi5wYWdlWSk7CgoJCQkJLy8gdXBkYXRlIHN0YXRlcwoJCQkJaXNJbkJvdW5kcyA9ICEhY2VsbDsKCQkJCWlmIChpc0luQm91bmRzKSB7CgkJCQkJaXNBbGxEYXkgPSBnZXRJc0NlbGxBbGxEYXkoY2VsbCk7CgoJCQkJCS8vIGNhbGN1bGF0ZSBjb2x1bW4gZGVsdGEKCQkJCQljb2xEZWx0YSA9IE1hdGgucm91bmQoKHVpLnBvc2l0aW9uLmxlZnQgLSBvcmlnUG9zaXRpb24ubGVmdCkgLyBjb2xXaWR0aCk7CgkJCQkJaWYgKGNvbERlbHRhICE9IHByZXZDb2xEZWx0YSkgewoJCQkJCQkvLyBjYWxjdWxhdGUgdGhlIGRheSBkZWx0YSBiYXNlZCBvZmYgb2YgdGhlIG9yaWdpbmFsIGNsaWNrZWQgY29sdW1uIGFuZCB0aGUgY29sdW1uIGRlbHRhCgkJCQkJCXZhciBvcmlnRGF0ZSA9IGNlbGxUb0RhdGUoMCwgb3JpZ0NlbGwuY29sKTsKCQkJCQkJdmFyIGNvbCA9IG9yaWdDZWxsLmNvbCArIGNvbERlbHRhOwoJCQkJCQljb2wgPSBNYXRoLm1heCgwLCBjb2wpOwoJCQkJCQljb2wgPSBNYXRoLm1pbihjb2xDbnQtMSwgY29sKTsKCQkJCQkJdmFyIGRhdGUgPSBjZWxsVG9EYXRlKDAsIGNvbCk7CgkJCQkJCWRheURlbHRhID0gZGF5RGlmZihkYXRlLCBvcmlnRGF0ZSk7CgkJCQkJfQoKCQkJCQkvLyBjYWxjdWxhdGUgbWludXRlIGRlbHRhIChvbmx5IGlmIG92ZXIgc2xvdHMpCgkJCQkJaWYgKCFpc0FsbERheSkgewoJCQkJCQltaW51dGVEZWx0YSA9IE1hdGgucm91bmQoKHVpLnBvc2l0aW9uLnRvcCAtIG9yaWdQb3NpdGlvbi50b3ApIC8gc25hcEhlaWdodCkgKiBzbmFwTWludXRlczsKCQkJCQl9CgkJCQl9CgoJCQkJLy8gYW55IHN0YXRlIGNoYW5nZXM/CgkJCQlpZiAoCgkJCQkJaXNJbkJvdW5kcyAhPSBwcmV2SXNJbkJvdW5kcyB8fAoJCQkJCWlzQWxsRGF5ICE9IHByZXZJc0FsbERheSB8fAoJCQkJCWNvbERlbHRhICE9IHByZXZDb2xEZWx0YSB8fAoJCQkJCW1pbnV0ZURlbHRhICE9IHByZXZNaW51dGVEZWx0YQoJCQkJKSB7CgoJCQkJCXVwZGF0ZVVJKCk7CgoJCQkJCS8vIHVwZGF0ZSBwcmV2aW91cyBzdGF0ZXMgZm9yIG5leHQgdGltZQoJCQkJCXByZXZJc0luQm91bmRzID0gaXNJbkJvdW5kczsKCQkJCQlwcmV2SXNBbGxEYXkgPSBpc0FsbERheTsKCQkJCQlwcmV2Q29sRGVsdGEgPSBjb2xEZWx0YTsKCQkJCQlwcmV2TWludXRlRGVsdGEgPSBtaW51dGVEZWx0YTsKCQkJCX0KCgkJCQkvLyBpZiBvdXQtb2YtYm91bmRzLCByZXZlcnQgd2hlbiBkb25lLCBhbmQgdmljZSB2ZXJzYS4KCQkJCWV2ZW50RWxlbWVudC5kcmFnZ2FibGUoJ29wdGlvbicsICdyZXZlcnQnLCAhaXNJbkJvdW5kcyk7CgoJCQl9LAoJCQlzdG9wOiBmdW5jdGlvbihldiwgdWkpIHsKCgkJCQljbGVhck92ZXJsYXlzKCk7CgkJCQl0cmlnZ2VyKCdldmVudERyYWdTdG9wJywgZXZlbnRFbGVtZW50LCBldmVudCwgZXYsIHVpKTsKCgkJCQlpZiAoaXNJbkJvdW5kcyAmJiAoaXNBbGxEYXkgfHwgZGF5RGVsdGEgfHwgbWludXRlRGVsdGEpKSB7IC8vIGNoYW5nZWQhCgkJCQkJZXZlbnREcm9wKHRoaXMsIGV2ZW50LCBkYXlEZWx0YSwgaXNBbGxEYXkgPyAwIDogbWludXRlRGVsdGEsIGlzQWxsRGF5LCBldiwgdWkpOwoJCQkJfQoJCQkJZWxzZSB7IC8vIGVpdGhlciBubyBjaGFuZ2Ugb3Igb3V0LW9mLWJvdW5kcyAoZHJhZ2dhYmxlIGhhcyBhbHJlYWR5IHJldmVydGVkKQoKCQkJCQkvLyByZXNldCBzdGF0ZXMgZm9yIG5leHQgdGltZSwgYW5kIGZvciB1cGRhdGVVSSgpCgkJCQkJaXNJbkJvdW5kcyA9IHRydWU7CgkJCQkJaXNBbGxEYXkgPSBmYWxzZTsKCQkJCQljb2xEZWx0YSA9IDA7CgkJCQkJZGF5RGVsdGEgPSAwOwoJCQkJCW1pbnV0ZURlbHRhID0gMDsKCgkJCQkJdXBkYXRlVUkoKTsKCQkJCQlldmVudEVsZW1lbnQuY3NzKCdmaWx0ZXInLCAnJyk7IC8vIGNsZWFyIElFIG9wYWNpdHkgc2lkZS1lZmZlY3RzCgoJCQkJCS8vIHNvbWV0aW1lcyBmYXN0IGRyYWdzIG1ha2UgZXZlbnQgcmV2ZXJ0IHRvIHdyb25nIHBvc2l0aW9uLCBzbyByZXNldC4KCQkJCQkvLyBhbHNvLCBpZiB3ZSBkcmFnZ2VkIHRoZSBlbGVtZW50IG91dCBvZiB0aGUgYXJlYSBiZWNhdXNlIG9mIHNuYXBwaW5nLAoJCQkJCS8vIGJ1dCB0aGUgKm1vdXNlKiBpcyBzdGlsbCBpbiBib3VuZHMsIHdlIG5lZWQgdG8gcmVzZXQgdGhlIHBvc2l0aW9uLgoJCQkJCWV2ZW50RWxlbWVudC5jc3Mob3JpZ1Bvc2l0aW9uKTsKCgkJCQkJc2hvd0V2ZW50cyhldmVudCwgZXZlbnRFbGVtZW50KTsKCQkJCX0KCQkJfQoJCX0pOwoKCQlmdW5jdGlvbiB1cGRhdGVVSSgpIHsKCQkJY2xlYXJPdmVybGF5cygpOwoJCQlpZiAoaXNJbkJvdW5kcykgewoJCQkJaWYgKGlzQWxsRGF5KSB7CgkJCQkJdGltZUVsZW1lbnQuaGlkZSgpOwoJCQkJCWV2ZW50RWxlbWVudC5kcmFnZ2FibGUoJ29wdGlvbicsICdncmlkJywgbnVsbCk7IC8vIGRpc2FibGUgZ3JpZCBzbmFwcGluZwoJCQkJCXJlbmRlckRheU92ZXJsYXkoCgkJCQkJCWFkZERheXMoY2xvbmVEYXRlKGV2ZW50LnN0YXJ0KSwgZGF5RGVsdGEpLAoJCQkJCQlhZGREYXlzKGV4Y2xFbmREYXkoZXZlbnQpLCBkYXlEZWx0YSkKCQkJCQkpOwoJCQkJfQoJCQkJZWxzZSB7CgkJCQkJdXBkYXRlVGltZVRleHQobWludXRlRGVsdGEpOwoJCQkJCXRpbWVFbGVtZW50LmNzcygnZGlzcGxheScsICcnKTsgLy8gc2hvdygpIHdhcyBjYXVzaW5nIGRpc3BsYXk9aW5saW5lCgkJCQkJZXZlbnRFbGVtZW50LmRyYWdnYWJsZSgnb3B0aW9uJywgJ2dyaWQnLCBbY29sV2lkdGgsIHNuYXBIZWlnaHRdKTsgLy8gcmUtZW5hYmxlIGdyaWQgc25hcHBpbmcKCQkJCX0KCQkJfQoJCX0KCgkJZnVuY3Rpb24gdXBkYXRlVGltZVRleHQobWludXRlRGVsdGEpIHsKCQkJdmFyIG5ld1N0YXJ0ID0gYWRkTWludXRlcyhjbG9uZURhdGUoZXZlbnQuc3RhcnQpLCBtaW51dGVEZWx0YSk7CgkJCXZhciBuZXdFbmQ7CgkJCWlmIChldmVudC5lbmQpIHsKCQkJCW5ld0VuZCA9IGFkZE1pbnV0ZXMoY2xvbmVEYXRlKGV2ZW50LmVuZCksIG1pbnV0ZURlbHRhKTsKCQkJfQoJCQl0aW1lRWxlbWVudC50ZXh0KGZvcm1hdERhdGVzKG5ld1N0YXJ0LCBuZXdFbmQsIG9wdCgndGltZUZvcm1hdCcpKSk7CgkJfQoKCX0KCgoKCS8qIFJlc2l6aW5nCgktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoKCWZ1bmN0aW9uIHJlc2l6YWJsZVNsb3RFdmVudChldmVudCwgZXZlbnRFbGVtZW50LCB0aW1lRWxlbWVudCkgewoJCXZhciBzbmFwRGVsdGEsIHByZXZTbmFwRGVsdGE7CgkJdmFyIHNuYXBIZWlnaHQgPSBnZXRTbmFwSGVpZ2h0KCk7CgkJdmFyIHNuYXBNaW51dGVzID0gZ2V0U25hcE1pbnV0ZXMoKTsKCQlldmVudEVsZW1lbnQucmVzaXphYmxlKHsKCQkJaGFuZGxlczogewoJCQkJczogJy51aS1yZXNpemFibGUtaGFuZGxlJwoJCQl9LAoJCQlncmlkOiBzbmFwSGVpZ2h0LAoJCQlzdGFydDogZnVuY3Rpb24oZXYsIHVpKSB7CgkJCQlzbmFwRGVsdGEgPSBwcmV2U25hcERlbHRhID0gMDsKCQkJCWhpZGVFdmVudHMoZXZlbnQsIGV2ZW50RWxlbWVudCk7CgkJCQl0cmlnZ2VyKCdldmVudFJlc2l6ZVN0YXJ0JywgdGhpcywgZXZlbnQsIGV2LCB1aSk7CgkJCX0sCgkJCXJlc2l6ZTogZnVuY3Rpb24oZXYsIHVpKSB7CgkJCQkvLyBkb24ndCByZWx5IG9uIHVpLnNpemUuaGVpZ2h0LCBkb2Vzbid0IHRha2UgZ3JpZCBpbnRvIGFjY291bnQKCQkJCXNuYXBEZWx0YSA9IE1hdGgucm91bmQoKE1hdGgubWF4KHNuYXBIZWlnaHQsIGV2ZW50RWxlbWVudC5oZWlnaHQoKSkgLSB1aS5vcmlnaW5hbFNpemUuaGVpZ2h0KSAvIHNuYXBIZWlnaHQpOwoJCQkJaWYgKHNuYXBEZWx0YSAhPSBwcmV2U25hcERlbHRhKSB7CgkJCQkJdGltZUVsZW1lbnQudGV4dCgKCQkJCQkJZm9ybWF0RGF0ZXMoCgkJCQkJCQlldmVudC5zdGFydCwKCQkJCQkJCSghc25hcERlbHRhICYmICFldmVudC5lbmQpID8gbnVsbCA6IC8vIG5vIGNoYW5nZSwgc28gZG9uJ3QgZGlzcGxheSB0aW1lIHJhbmdlCgkJCQkJCQkJYWRkTWludXRlcyhldmVudEVuZChldmVudCksIHNuYXBNaW51dGVzKnNuYXBEZWx0YSksCgkJCQkJCQlvcHQoJ3RpbWVGb3JtYXQnKQoJCQkJCQkpCgkJCQkJKTsKCQkJCQlwcmV2U25hcERlbHRhID0gc25hcERlbHRhOwoJCQkJfQoJCQl9LAoJCQlzdG9wOiBmdW5jdGlvbihldiwgdWkpIHsKCQkJCXRyaWdnZXIoJ2V2ZW50UmVzaXplU3RvcCcsIHRoaXMsIGV2ZW50LCBldiwgdWkpOwoJCQkJaWYgKHNuYXBEZWx0YSkgewoJCQkJCWV2ZW50UmVzaXplKHRoaXMsIGV2ZW50LCAwLCBzbmFwTWludXRlcypzbmFwRGVsdGEsIGV2LCB1aSk7CgkJCQl9ZWxzZXsKCQkJCQlzaG93RXZlbnRzKGV2ZW50LCBldmVudEVsZW1lbnQpOwoJCQkJCS8vIEJVRzogaWYgZXZlbnQgd2FzIHJlYWxseSBzaG9ydCwgbmVlZCB0byBwdXQgdGl0bGUgYmFjayBpbiBzcGFuCgkJCQl9CgkJCX0KCQl9KTsKCX0KCgp9CgoKCi8qIEFnZW5kYSBFdmVudCBTZWdtZW50IFV0aWxpdGllcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoKLy8gU2V0cyB0aGUgc2VnLmJhY2t3YXJkQ29vcmQgYW5kIHNlZy5mb3J3YXJkQ29vcmQgb24gZWFjaCBzZWdtZW50IGFuZCByZXR1cm5zIGEgbmV3Ci8vIGxpc3QgaW4gdGhlIG9yZGVyIHRoZXkgc2hvdWxkIGJlIHBsYWNlZCBpbnRvIHRoZSBET00gKGFuIGltcGxpY2l0IHotaW5kZXgpLgpmdW5jdGlvbiBwbGFjZVNsb3RTZWdzKHNlZ3MpIHsKCXZhciBsZXZlbHMgPSBidWlsZFNsb3RTZWdMZXZlbHMoc2Vncyk7Cgl2YXIgbGV2ZWwwID0gbGV2ZWxzWzBdOwoJdmFyIGk7CgoJY29tcHV0ZUZvcndhcmRTbG90U2VncyhsZXZlbHMpOwoKCWlmIChsZXZlbDApIHsKCgkJZm9yIChpPTA7IGk8bGV2ZWwwLmxlbmd0aDsgaSsrKSB7CgkJCWNvbXB1dGVTbG90U2VnUHJlc3N1cmVzKGxldmVsMFtpXSk7CgkJfQoKCQlmb3IgKGk9MDsgaTxsZXZlbDAubGVuZ3RoOyBpKyspIHsKCQkJY29tcHV0ZVNsb3RTZWdDb29yZHMobGV2ZWwwW2ldLCAwLCAwKTsKCQl9Cgl9CgoJcmV0dXJuIGZsYXR0ZW5TbG90U2VnTGV2ZWxzKGxldmVscyk7Cn0KCgovLyBCdWlsZHMgYW4gYXJyYXkgb2Ygc2VnbWVudHMgImxldmVscyIuIFRoZSBmaXJzdCBsZXZlbCB3aWxsIGJlIHRoZSBsZWZ0bW9zdCB0aWVyIG9mIHNlZ21lbnRzCi8vIGlmIHRoZSBjYWxlbmRhciBpcyBsZWZ0LXRvLXJpZ2h0LCBvciB0aGUgcmlnaHRtb3N0IGlmIHRoZSBjYWxlbmRhciBpcyByaWdodC10by1sZWZ0LgpmdW5jdGlvbiBidWlsZFNsb3RTZWdMZXZlbHMoc2VncykgewoJdmFyIGxldmVscyA9IFtdOwoJdmFyIGksIHNlZzsKCXZhciBqOwoKCWZvciAoaT0wOyBpPHNlZ3MubGVuZ3RoOyBpKyspIHsKCQlzZWcgPSBzZWdzW2ldOwoKCQkvLyBnbyB0aHJvdWdoIGFsbCB0aGUgbGV2ZWxzIGFuZCBzdG9wIG9uIHRoZSBmaXJzdCBsZXZlbCB3aGVyZSB0aGVyZSBhcmUgbm8gY29sbGlzaW9ucwoJCWZvciAoaj0wOyBqPGxldmVscy5sZW5ndGg7IGorKykgewoJCQlpZiAoIWNvbXB1dGVTbG90U2VnQ29sbGlzaW9ucyhzZWcsIGxldmVsc1tqXSkubGVuZ3RoKSB7CgkJCQlicmVhazsKCQkJfQoJCX0KCgkJKGxldmVsc1tqXSB8fCAobGV2ZWxzW2pdID0gW10pKS5wdXNoKHNlZyk7Cgl9CgoJcmV0dXJuIGxldmVsczsKfQoKCi8vIEZvciBldmVyeSBzZWdtZW50LCBmaWd1cmUgb3V0IHRoZSBvdGhlciBzZWdtZW50cyB0aGF0IGFyZSBpbiBzdWJzZXF1ZW50Ci8vIGxldmVscyB0aGF0IGFsc28gb2NjdXB5IHRoZSBzYW1lIHZlcnRpY2FsIHNwYWNlLiBBY2N1bXVsYXRlIGluIHNlZy5mb3J3YXJkU2VncwpmdW5jdGlvbiBjb21wdXRlRm9yd2FyZFNsb3RTZWdzKGxldmVscykgewoJdmFyIGksIGxldmVsOwoJdmFyIGosIHNlZzsKCXZhciBrOwoKCWZvciAoaT0wOyBpPGxldmVscy5sZW5ndGg7IGkrKykgewoJCWxldmVsID0gbGV2ZWxzW2ldOwoKCQlmb3IgKGo9MDsgajxsZXZlbC5sZW5ndGg7IGorKykgewoJCQlzZWcgPSBsZXZlbFtqXTsKCgkJCXNlZy5mb3J3YXJkU2VncyA9IFtdOwoJCQlmb3IgKGs9aSsxOyBrPGxldmVscy5sZW5ndGg7IGsrKykgewoJCQkJY29tcHV0ZVNsb3RTZWdDb2xsaXNpb25zKHNlZywgbGV2ZWxzW2tdLCBzZWcuZm9yd2FyZFNlZ3MpOwoJCQl9CgkJfQoJfQp9CgoKLy8gRmlndXJlIG91dCB3aGljaCBwYXRoIGZvcndhcmQgKHZpYSBzZWcuZm9yd2FyZFNlZ3MpIHJlc3VsdHMgaW4gdGhlIGxvbmdlc3QgcGF0aCB1bnRpbAovLyB0aGUgZnVydGhlc3QgZWRnZSBpcyByZWFjaGVkLiBUaGUgbnVtYmVyIG9mIHNlZ21lbnRzIGluIHRoaXMgcGF0aCB3aWxsIGJlIHNlZy5mb3J3YXJkUHJlc3N1cmUKZnVuY3Rpb24gY29tcHV0ZVNsb3RTZWdQcmVzc3VyZXMoc2VnKSB7Cgl2YXIgZm9yd2FyZFNlZ3MgPSBzZWcuZm9yd2FyZFNlZ3M7Cgl2YXIgZm9yd2FyZFByZXNzdXJlID0gMDsKCXZhciBpLCBmb3J3YXJkU2VnOwoKCWlmIChzZWcuZm9yd2FyZFByZXNzdXJlID09PSB1bmRlZmluZWQpIHsgLy8gbm90IGFscmVhZHkgY29tcHV0ZWQKCgkJZm9yIChpPTA7IGk8Zm9yd2FyZFNlZ3MubGVuZ3RoOyBpKyspIHsKCQkJZm9yd2FyZFNlZyA9IGZvcndhcmRTZWdzW2ldOwoKCQkJLy8gZmlndXJlIG91dCB0aGUgY2hpbGQncyBtYXhpbXVtIGZvcndhcmQgcGF0aAoJCQljb21wdXRlU2xvdFNlZ1ByZXNzdXJlcyhmb3J3YXJkU2VnKTsKCgkJCS8vIGVpdGhlciB1c2UgdGhlIGV4aXN0aW5nIG1heGltdW0sIG9yIHVzZSB0aGUgY2hpbGQncyBmb3J3YXJkIHByZXNzdXJlCgkJCS8vIHBsdXMgb25lIChmb3IgdGhlIGZvcndhcmRTZWcgaXRzZWxmKQoJCQlmb3J3YXJkUHJlc3N1cmUgPSBNYXRoLm1heCgKCQkJCWZvcndhcmRQcmVzc3VyZSwKCQkJCTEgKyBmb3J3YXJkU2VnLmZvcndhcmRQcmVzc3VyZQoJCQkpOwoJCX0KCgkJc2VnLmZvcndhcmRQcmVzc3VyZSA9IGZvcndhcmRQcmVzc3VyZTsKCX0KfQoKCi8vIENhbGN1bGF0ZSBzZWcuZm9yd2FyZENvb3JkIGFuZCBzZWcuYmFja3dhcmRDb29yZCBmb3IgdGhlIHNlZ21lbnQsIHdoZXJlIGJvdGggdmFsdWVzIHJhbmdlCi8vIGZyb20gMCB0byAxLiBJZiB0aGUgY2FsZW5kYXIgaXMgbGVmdC10by1yaWdodCwgdGhlIHNlZy5iYWNrd2FyZENvb3JkIG1hcHMgdG8gImxlZnQiIGFuZAovLyBzZWcuZm9yd2FyZENvb3JkIG1hcHMgdG8gInJpZ2h0IiAodmlhIHBlcmNlbnRhZ2UpLiBWaWNlLXZlcnNhIGlmIHRoZSBjYWxlbmRhciBpcyByaWdodC10by1sZWZ0LgovLwovLyBUaGUgc2VnbWVudCBtaWdodCBiZSBwYXJ0IG9mIGEgInNlcmllcyIsIHdoaWNoIG1lYW5zIGNvbnNlY3V0aXZlIHNlZ21lbnRzIHdpdGggdGhlIHNhbWUgcHJlc3N1cmUKLy8gd2hvJ3Mgd2lkdGggaXMgdW5rbm93biB1bnRpbCBhbiBlZGdlIGhhcyBiZWVuIGhpdC4gYHNlcmllc0JhY2t3YXJkUHJlc3N1cmVgIGlzIHRoZSBudW1iZXIgb2YKLy8gc2VnbWVudHMgYmVoaW5kIHRoaXMgb25lIGluIHRoZSBjdXJyZW50IHNlcmllcywgYW5kIGBzZXJpZXNCYWNrd2FyZENvb3JkYCBpcyB0aGUgc3RhcnRpbmcKLy8gY29vcmRpbmF0ZSBvZiB0aGUgZmlyc3Qgc2VnbWVudCBpbiB0aGUgc2VyaWVzLgpmdW5jdGlvbiBjb21wdXRlU2xvdFNlZ0Nvb3JkcyhzZWcsIHNlcmllc0JhY2t3YXJkUHJlc3N1cmUsIHNlcmllc0JhY2t3YXJkQ29vcmQpIHsKCXZhciBmb3J3YXJkU2VncyA9IHNlZy5mb3J3YXJkU2VnczsKCXZhciBpOwoKCWlmIChzZWcuZm9yd2FyZENvb3JkID09PSB1bmRlZmluZWQpIHsgLy8gbm90IGFscmVhZHkgY29tcHV0ZWQKCgkJaWYgKCFmb3J3YXJkU2Vncy5sZW5ndGgpIHsKCgkJCS8vIGlmIHRoZXJlIGFyZSBubyBmb3J3YXJkIHNlZ21lbnRzLCB0aGlzIHNlZ21lbnQgc2hvdWxkIGJ1dHQgdXAgYWdhaW5zdCB0aGUgZWRnZQoJCQlzZWcuZm9yd2FyZENvb3JkID0gMTsKCQl9CgkJZWxzZSB7CgoJCQkvLyBzb3J0IGhpZ2hlc3QgcHJlc3N1cmUgZmlyc3QKCQkJZm9yd2FyZFNlZ3Muc29ydChjb21wYXJlRm9yd2FyZFNsb3RTZWdzKTsKCgkJCS8vIHRoaXMgc2VnbWVudCdzIGZvcndhcmRDb29yZCB3aWxsIGJlIGNhbGN1bGF0ZWQgZnJvbSB0aGUgYmFja3dhcmRDb29yZCBvZiB0aGUKCQkJLy8gaGlnaGVzdC1wcmVzc3VyZSBmb3J3YXJkIHNlZ21lbnQuCgkJCWNvbXB1dGVTbG90U2VnQ29vcmRzKGZvcndhcmRTZWdzWzBdLCBzZXJpZXNCYWNrd2FyZFByZXNzdXJlICsgMSwgc2VyaWVzQmFja3dhcmRDb29yZCk7CgkJCXNlZy5mb3J3YXJkQ29vcmQgPSBmb3J3YXJkU2Vnc1swXS5iYWNrd2FyZENvb3JkOwoJCX0KCgkJLy8gY2FsY3VsYXRlIHRoZSBiYWNrd2FyZENvb3JkIGZyb20gdGhlIGZvcndhcmRDb29yZC4gY29uc2lkZXIgdGhlIHNlcmllcwoJCXNlZy5iYWNrd2FyZENvb3JkID0gc2VnLmZvcndhcmRDb29yZCAtCgkJCShzZWcuZm9yd2FyZENvb3JkIC0gc2VyaWVzQmFja3dhcmRDb29yZCkgLyAvLyBhdmFpbGFibGUgd2lkdGggZm9yIHNlcmllcwoJCQkoc2VyaWVzQmFja3dhcmRQcmVzc3VyZSArIDEpOyAvLyAjIG9mIHNlZ21lbnRzIGluIHRoZSBzZXJpZXMKCgkJLy8gdXNlIHRoaXMgc2VnbWVudCdzIGNvb3JkaW5hdGVzIHRvIGNvbXB1dGVkIHRoZSBjb29yZGluYXRlcyBvZiB0aGUgbGVzcy1wcmVzc3VyaXplZAoJCS8vIGZvcndhcmQgc2VnbWVudHMKCQlmb3IgKGk9MDsgaTxmb3J3YXJkU2Vncy5sZW5ndGg7IGkrKykgewoJCQljb21wdXRlU2xvdFNlZ0Nvb3Jkcyhmb3J3YXJkU2Vnc1tpXSwgMCwgc2VnLmZvcndhcmRDb29yZCk7CgkJfQoJfQp9CgoKLy8gT3V0cHV0cyBhIGZsYXQgYXJyYXkgb2Ygc2VnbWVudHMsIGZyb20gbG93ZXN0IHRvIGhpZ2hlc3QgbGV2ZWwKZnVuY3Rpb24gZmxhdHRlblNsb3RTZWdMZXZlbHMobGV2ZWxzKSB7Cgl2YXIgc2VncyA9IFtdOwoJdmFyIGksIGxldmVsOwoJdmFyIGo7CgoJZm9yIChpPTA7IGk8bGV2ZWxzLmxlbmd0aDsgaSsrKSB7CgkJbGV2ZWwgPSBsZXZlbHNbaV07CgoJCWZvciAoaj0wOyBqPGxldmVsLmxlbmd0aDsgaisrKSB7CgkJCXNlZ3MucHVzaChsZXZlbFtqXSk7CgkJfQoJfQoKCXJldHVybiBzZWdzOwp9CgoKLy8gRmluZCBhbGwgdGhlIHNlZ21lbnRzIGluIGBvdGhlclNlZ3NgIHRoYXQgdmVydGljYWxseSBjb2xsaWRlIHdpdGggYHNlZ2AuCi8vIEFwcGVuZCBpbnRvIGFuIG9wdGlvbmFsbHktc3VwcGxpZWQgYHJlc3VsdHNgIGFycmF5IGFuZCByZXR1cm4uCmZ1bmN0aW9uIGNvbXB1dGVTbG90U2VnQ29sbGlzaW9ucyhzZWcsIG90aGVyU2VncywgcmVzdWx0cykgewoJcmVzdWx0cyA9IHJlc3VsdHMgfHwgW107CgoJZm9yICh2YXIgaT0wOyBpPG90aGVyU2Vncy5sZW5ndGg7IGkrKykgewoJCWlmIChpc1Nsb3RTZWdDb2xsaXNpb24oc2VnLCBvdGhlclNlZ3NbaV0pKSB7CgkJCXJlc3VsdHMucHVzaChvdGhlclNlZ3NbaV0pOwoJCX0KCX0KCglyZXR1cm4gcmVzdWx0czsKfQoKCi8vIERvIHRoZXNlIHNlZ21lbnRzIG9jY3VweSB0aGUgc2FtZSB2ZXJ0aWNhbCBzcGFjZT8KZnVuY3Rpb24gaXNTbG90U2VnQ29sbGlzaW9uKHNlZzEsIHNlZzIpIHsKCXJldHVybiBzZWcxLmVuZCA+IHNlZzIuc3RhcnQgJiYgc2VnMS5zdGFydCA8IHNlZzIuZW5kOwp9CgoKLy8gQSBjbXAgZnVuY3Rpb24gZm9yIGRldGVybWluaW5nIHdoaWNoIGZvcndhcmQgc2VnbWVudCB0byByZWx5IG9uIG1vcmUgd2hlbiBjb21wdXRpbmcgY29vcmRpbmF0ZXMuCmZ1bmN0aW9uIGNvbXBhcmVGb3J3YXJkU2xvdFNlZ3Moc2VnMSwgc2VnMikgewoJLy8gcHV0IGhpZ2hlci1wcmVzc3VyZSBmaXJzdAoJcmV0dXJuIHNlZzIuZm9yd2FyZFByZXNzdXJlIC0gc2VnMS5mb3J3YXJkUHJlc3N1cmUgfHwKCQkvLyBwdXQgc2VnbWVudHMgdGhhdCBhcmUgY2xvc2VyIHRvIGluaXRpYWwgZWRnZSBmaXJzdCAoYW5kIGZhdm9yIG9uZXMgd2l0aCBubyBjb29yZHMgeWV0KQoJCShzZWcxLmJhY2t3YXJkQ29vcmQgfHwgMCkgLSAoc2VnMi5iYWNrd2FyZENvb3JkIHx8IDApIHx8CgkJLy8gZG8gbm9ybWFsIHNvcnRpbmcuLi4KCQljb21wYXJlU2xvdFNlZ3Moc2VnMSwgc2VnMik7Cn0KCgovLyBBIGNtcCBmdW5jdGlvbiBmb3IgZGV0ZXJtaW5pbmcgd2hpY2ggc2VnbWVudCBzaG91bGQgYmUgY2xvc2VyIHRvIHRoZSBpbml0aWFsIGVkZ2UKLy8gKHRoZSBsZWZ0IGVkZ2Ugb24gYSBsZWZ0LXRvLXJpZ2h0IGNhbGVuZGFyKS4KZnVuY3Rpb24gY29tcGFyZVNsb3RTZWdzKHNlZzEsIHNlZzIpIHsKCXJldHVybiBzZWcxLnN0YXJ0IC0gc2VnMi5zdGFydCB8fCAvLyBlYXJsaWVyIHN0YXJ0IHRpbWUgZ29lcyBmaXJzdAoJCShzZWcyLmVuZCAtIHNlZzIuc3RhcnQpIC0gKHNlZzEuZW5kIC0gc2VnMS5zdGFydCkgfHwgLy8gdGllPyBsb25nZXItZHVyYXRpb24gZ29lcyBmaXJzdAoJCShzZWcxLmV2ZW50LnRpdGxlIHx8ICcnKS5sb2NhbGVDb21wYXJlKHNlZzIuZXZlbnQudGl0bGUpOyAvLyB0aWU/IGFscGhhYmV0aWNhbGx5IGJ5IHRpdGxlCn0KCgo7OwoKCmZ1bmN0aW9uIFZpZXcoZWxlbWVudCwgY2FsZW5kYXIsIHZpZXdOYW1lKSB7Cgl2YXIgdCA9IHRoaXM7CgoKCS8vIGV4cG9ydHMKCXQuZWxlbWVudCA9IGVsZW1lbnQ7Cgl0LmNhbGVuZGFyID0gY2FsZW5kYXI7Cgl0Lm5hbWUgPSB2aWV3TmFtZTsKCXQub3B0ID0gb3B0OwoJdC50cmlnZ2VyID0gdHJpZ2dlcjsKCXQuaXNFdmVudERyYWdnYWJsZSA9IGlzRXZlbnREcmFnZ2FibGU7Cgl0LmlzRXZlbnRSZXNpemFibGUgPSBpc0V2ZW50UmVzaXphYmxlOwoJdC5zZXRFdmVudERhdGEgPSBzZXRFdmVudERhdGE7Cgl0LmNsZWFyRXZlbnREYXRhID0gY2xlYXJFdmVudERhdGE7Cgl0LmV2ZW50RW5kID0gZXZlbnRFbmQ7Cgl0LnJlcG9ydEV2ZW50RWxlbWVudCA9IHJlcG9ydEV2ZW50RWxlbWVudDsKCXQudHJpZ2dlckV2ZW50RGVzdHJveSA9IHRyaWdnZXJFdmVudERlc3Ryb3k7Cgl0LmV2ZW50RWxlbWVudEhhbmRsZXJzID0gZXZlbnRFbGVtZW50SGFuZGxlcnM7Cgl0LnNob3dFdmVudHMgPSBzaG93RXZlbnRzOwoJdC5oaWRlRXZlbnRzID0gaGlkZUV2ZW50czsKCXQuZXZlbnREcm9wID0gZXZlbnREcm9wOwoJdC5ldmVudFJlc2l6ZSA9IGV2ZW50UmVzaXplOwoJLy8gdC50aXRsZQoJLy8gdC5zdGFydCwgdC5lbmQKCS8vIHQudmlzU3RhcnQsIHQudmlzRW5kCgoKCS8vIGltcG9ydHMKCXZhciBkZWZhdWx0RXZlbnRFbmQgPSB0LmRlZmF1bHRFdmVudEVuZDsKCXZhciBub3JtYWxpemVFdmVudCA9IGNhbGVuZGFyLm5vcm1hbGl6ZUV2ZW50OyAvLyBpbiBFdmVudE1hbmFnZXIKCXZhciByZXBvcnRFdmVudENoYW5nZSA9IGNhbGVuZGFyLnJlcG9ydEV2ZW50Q2hhbmdlOwoKCgkvLyBsb2NhbHMKCXZhciBldmVudHNCeUlEID0ge307IC8vIGV2ZW50SUQgbWFwcGVkIHRvIGFycmF5IG9mIGV2ZW50cyAodGhlcmUgY2FuIGJlIG11bHRpcGxlIGIvYyBvZiByZXBlYXRpbmcgZXZlbnRzKQoJdmFyIGV2ZW50RWxlbWVudHNCeUlEID0ge307IC8vIGV2ZW50SUQgbWFwcGVkIHRvIGFycmF5IG9mIGpRdWVyeSBlbGVtZW50cwoJdmFyIGV2ZW50RWxlbWVudENvdXBsZXMgPSBbXTsgLy8gYXJyYXkgb2Ygb2JqZWN0cywgeyBldmVudCwgZWxlbWVudCB9IC8vIFRPRE86IHVuaWZ5IHdpdGggc2VnbWVudCBzeXN0ZW0KCXZhciBvcHRpb25zID0gY2FsZW5kYXIub3B0aW9uczsKCgoKCWZ1bmN0aW9uIG9wdChuYW1lLCB2aWV3TmFtZU92ZXJyaWRlKSB7CgkJdmFyIHYgPSBvcHRpb25zW25hbWVdOwoJCWlmICgkLmlzUGxhaW5PYmplY3QodikpIHsKCQkJcmV0dXJuIHNtYXJ0UHJvcGVydHkodiwgdmlld05hbWVPdmVycmlkZSB8fCB2aWV3TmFtZSk7CgkJfQoJCXJldHVybiB2OwoJfQoKCglmdW5jdGlvbiB0cmlnZ2VyKG5hbWUsIHRoaXNPYmopIHsKCQlyZXR1cm4gY2FsZW5kYXIudHJpZ2dlci5hcHBseSgKCQkJY2FsZW5kYXIsCgkJCVtuYW1lLCB0aGlzT2JqIHx8IHRdLmNvbmNhdChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDIpLCBbdF0pCgkJKTsKCX0KCgoKCS8qIEV2ZW50IEVkaXRhYmxlIEJvb2xlYW4gQ2FsY3VsYXRpb25zCgktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKCglmdW5jdGlvbiBpc0V2ZW50RHJhZ2dhYmxlKGV2ZW50KSB7CgkJdmFyIHNvdXJjZSA9IGV2ZW50LnNvdXJjZSB8fCB7fTsKCQlyZXR1cm4gZmlyc3REZWZpbmVkKAoJCQkJZXZlbnQuc3RhcnRFZGl0YWJsZSwKCQkJCXNvdXJjZS5zdGFydEVkaXRhYmxlLAoJCQkJb3B0KCdldmVudFN0YXJ0RWRpdGFibGUnKSwKCQkJCWV2ZW50LmVkaXRhYmxlLAoJCQkJc291cmNlLmVkaXRhYmxlLAoJCQkJb3B0KCdlZGl0YWJsZScpCgkJCSkKCQkJJiYgIW9wdCgnZGlzYWJsZURyYWdnaW5nJyk7IC8vIGRlcHJlY2F0ZWQKCX0KCgoJZnVuY3Rpb24gaXNFdmVudFJlc2l6YWJsZShldmVudCkgeyAvLyBidXQgYWxzbyBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgc2VnLmlzRW5kID09IHRydWUKCQl2YXIgc291cmNlID0gZXZlbnQuc291cmNlIHx8IHt9OwoJCXJldHVybiBmaXJzdERlZmluZWQoCgkJCQlldmVudC5kdXJhdGlvbkVkaXRhYmxlLAoJCQkJc291cmNlLmR1cmF0aW9uRWRpdGFibGUsCgkJCQlvcHQoJ2V2ZW50RHVyYXRpb25FZGl0YWJsZScpLAoJCQkJZXZlbnQuZWRpdGFibGUsCgkJCQlzb3VyY2UuZWRpdGFibGUsCgkJCQlvcHQoJ2VkaXRhYmxlJykKCQkJKQoJCQkmJiAhb3B0KCdkaXNhYmxlUmVzaXppbmcnKTsgLy8gZGVwcmVjYXRlZAoJfQoKCgoJLyogRXZlbnQgRGF0YQoJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCgoJZnVuY3Rpb24gc2V0RXZlbnREYXRhKGV2ZW50cykgeyAvLyBldmVudHMgYXJlIGFscmVhZHkgbm9ybWFsaXplZCBhdCB0aGlzIHBvaW50CgkJZXZlbnRzQnlJRCA9IHt9OwoJCXZhciBpLCBsZW49ZXZlbnRzLmxlbmd0aCwgZXZlbnQ7CgkJZm9yIChpPTA7IGk8bGVuOyBpKyspIHsKCQkJZXZlbnQgPSBldmVudHNbaV07CgkJCWlmIChldmVudHNCeUlEW2V2ZW50Ll9pZF0pIHsKCQkJCWV2ZW50c0J5SURbZXZlbnQuX2lkXS5wdXNoKGV2ZW50KTsKCQkJfWVsc2V7CgkJCQlldmVudHNCeUlEW2V2ZW50Ll9pZF0gPSBbZXZlbnRdOwoJCQl9CgkJfQoJfQoKCglmdW5jdGlvbiBjbGVhckV2ZW50RGF0YSgpIHsKCQlldmVudHNCeUlEID0ge307CgkJZXZlbnRFbGVtZW50c0J5SUQgPSB7fTsKCQlldmVudEVsZW1lbnRDb3VwbGVzID0gW107Cgl9CgoKCS8vIHJldHVybnMgYSBEYXRlIG9iamVjdCBmb3IgYW4gZXZlbnQncyBlbmQKCWZ1bmN0aW9uIGV2ZW50RW5kKGV2ZW50KSB7CgkJcmV0dXJuIGV2ZW50LmVuZCA/IGNsb25lRGF0ZShldmVudC5lbmQpIDogZGVmYXVsdEV2ZW50RW5kKGV2ZW50KTsKCX0KCgoKCS8qIEV2ZW50IEVsZW1lbnRzCgktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKCgkvLyByZXBvcnQgd2hlbiB2aWV3IGNyZWF0ZXMgYW4gZWxlbWVudCBmb3IgYW4gZXZlbnQKCWZ1bmN0aW9uIHJlcG9ydEV2ZW50RWxlbWVudChldmVudCwgZWxlbWVudCkgewoJCWV2ZW50RWxlbWVudENvdXBsZXMucHVzaCh7IGV2ZW50OiBldmVudCwgZWxlbWVudDogZWxlbWVudCB9KTsKCQlpZiAoZXZlbnRFbGVtZW50c0J5SURbZXZlbnQuX2lkXSkgewoJCQlldmVudEVsZW1lbnRzQnlJRFtldmVudC5faWRdLnB1c2goZWxlbWVudCk7CgkJfWVsc2V7CgkJCWV2ZW50RWxlbWVudHNCeUlEW2V2ZW50Ll9pZF0gPSBbZWxlbWVudF07CgkJfQoJfQoKCglmdW5jdGlvbiB0cmlnZ2VyRXZlbnREZXN0cm95KCkgewoJCSQuZWFjaChldmVudEVsZW1lbnRDb3VwbGVzLCBmdW5jdGlvbihpLCBjb3VwbGUpIHsKCQkJdC50cmlnZ2VyKCdldmVudERlc3Ryb3knLCBjb3VwbGUuZXZlbnQsIGNvdXBsZS5ldmVudCwgY291cGxlLmVsZW1lbnQpOwoJCX0pOwoJfQoKCgkvLyBhdHRhY2hlcyBldmVudENsaWNrLCBldmVudE1vdXNlb3ZlciwgZXZlbnRNb3VzZW91dAoJZnVuY3Rpb24gZXZlbnRFbGVtZW50SGFuZGxlcnMoZXZlbnQsIGV2ZW50RWxlbWVudCkgewoJCWV2ZW50RWxlbWVudAoJCQkuY2xpY2soZnVuY3Rpb24oZXYpIHsKCQkJCWlmICghZXZlbnRFbGVtZW50Lmhhc0NsYXNzKCd1aS1kcmFnZ2FibGUtZHJhZ2dpbmcnKSAmJgoJCQkJCSFldmVudEVsZW1lbnQuaGFzQ2xhc3MoJ3VpLXJlc2l6YWJsZS1yZXNpemluZycpKSB7CgkJCQkJCXJldHVybiB0cmlnZ2VyKCdldmVudENsaWNrJywgdGhpcywgZXZlbnQsIGV2KTsKCQkJCQl9CgkJCX0pCgkJCS5ob3ZlcigKCQkJCWZ1bmN0aW9uKGV2KSB7CgkJCQkJdHJpZ2dlcignZXZlbnRNb3VzZW92ZXInLCB0aGlzLCBldmVudCwgZXYpOwoJCQkJfSwKCQkJCWZ1bmN0aW9uKGV2KSB7CgkJCQkJdHJpZ2dlcignZXZlbnRNb3VzZW91dCcsIHRoaXMsIGV2ZW50LCBldik7CgkJCQl9CgkJCSk7CgkJLy8gVE9ETzogZG9uJ3QgZmlyZSBldmVudE1vdXNlb3Zlci9ldmVudE1vdXNlb3V0ICp3aGlsZSogZHJhZ2dpbmcgaXMgb2NjdXJpbmcgKG9uIHN1YmplY3QgZWxlbWVudCkKCQkvLyBUT0RPOiBzYW1lIGZvciByZXNpemluZwoJfQoKCglmdW5jdGlvbiBzaG93RXZlbnRzKGV2ZW50LCBleGNlcHRFbGVtZW50KSB7CgkJZWFjaEV2ZW50RWxlbWVudChldmVudCwgZXhjZXB0RWxlbWVudCwgJ3Nob3cnKTsKCX0KCgoJZnVuY3Rpb24gaGlkZUV2ZW50cyhldmVudCwgZXhjZXB0RWxlbWVudCkgewoJCWVhY2hFdmVudEVsZW1lbnQoZXZlbnQsIGV4Y2VwdEVsZW1lbnQsICdoaWRlJyk7Cgl9CgoKCWZ1bmN0aW9uIGVhY2hFdmVudEVsZW1lbnQoZXZlbnQsIGV4Y2VwdEVsZW1lbnQsIGZ1bmNOYW1lKSB7CgkJLy8gTk9URTogdGhlcmUgbWF5IGJlIG11bHRpcGxlIGV2ZW50cyBwZXIgSUQgKHJlcGVhdGluZyBldmVudHMpCgkJLy8gYW5kIG11bHRpcGxlIHNlZ21lbnRzIHBlciBldmVudAoJCXZhciBlbGVtZW50cyA9IGV2ZW50RWxlbWVudHNCeUlEW2V2ZW50Ll9pZF0sCgkJCWksIGxlbiA9IGVsZW1lbnRzLmxlbmd0aDsKCQlmb3IgKGk9MDsgaTxsZW47IGkrKykgewoJCQlpZiAoIWV4Y2VwdEVsZW1lbnQgfHwgZWxlbWVudHNbaV1bMF0gIT0gZXhjZXB0RWxlbWVudFswXSkgewoJCQkJZWxlbWVudHNbaV1bZnVuY05hbWVdKCk7CgkJCX0KCQl9Cgl9CgoKCgkvKiBFdmVudCBNb2RpZmljYXRpb24gUmVwb3J0aW5nCgktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKCglmdW5jdGlvbiBldmVudERyb3AoZSwgZXZlbnQsIGRheURlbHRhLCBtaW51dGVEZWx0YSwgYWxsRGF5LCBldiwgdWkpIHsKCQl2YXIgb2xkQWxsRGF5ID0gZXZlbnQuYWxsRGF5OwoJCXZhciBldmVudElkID0gZXZlbnQuX2lkOwoJCW1vdmVFdmVudHMoZXZlbnRzQnlJRFtldmVudElkXSwgZGF5RGVsdGEsIG1pbnV0ZURlbHRhLCBhbGxEYXkpOwoJCXRyaWdnZXIoCgkJCSdldmVudERyb3AnLAoJCQllLAoJCQlldmVudCwKCQkJZGF5RGVsdGEsCgkJCW1pbnV0ZURlbHRhLAoJCQlhbGxEYXksCgkJCWZ1bmN0aW9uKCkgewoJCQkJLy8gVE9ETzogaW52ZXN0aWdhdGUgY2FzZXMgd2hlcmUgdGhpcyBpbnZlcnNlIHRlY2huaXF1ZSBtaWdodCBub3Qgd29yawoJCQkJbW92ZUV2ZW50cyhldmVudHNCeUlEW2V2ZW50SWRdLCAtZGF5RGVsdGEsIC1taW51dGVEZWx0YSwgb2xkQWxsRGF5KTsKCQkJCXJlcG9ydEV2ZW50Q2hhbmdlKGV2ZW50SWQpOwoJCQl9LAoJCQlldiwKCQkJdWkKCQkpOwoJCXJlcG9ydEV2ZW50Q2hhbmdlKGV2ZW50SWQpOwoJfQoKCglmdW5jdGlvbiBldmVudFJlc2l6ZShlLCBldmVudCwgZGF5RGVsdGEsIG1pbnV0ZURlbHRhLCBldiwgdWkpIHsKCQl2YXIgZXZlbnRJZCA9IGV2ZW50Ll9pZDsKCQllbG9uZ2F0ZUV2ZW50cyhldmVudHNCeUlEW2V2ZW50SWRdLCBkYXlEZWx0YSwgbWludXRlRGVsdGEpOwoJCXRyaWdnZXIoCgkJCSdldmVudFJlc2l6ZScsCgkJCWUsCgkJCWV2ZW50LAoJCQlkYXlEZWx0YSwKCQkJbWludXRlRGVsdGEsCgkJCWZ1bmN0aW9uKCkgewoJCQkJLy8gVE9ETzogaW52ZXN0aWdhdGUgY2FzZXMgd2hlcmUgdGhpcyBpbnZlcnNlIHRlY2huaXF1ZSBtaWdodCBub3Qgd29yawoJCQkJZWxvbmdhdGVFdmVudHMoZXZlbnRzQnlJRFtldmVudElkXSwgLWRheURlbHRhLCAtbWludXRlRGVsdGEpOwoJCQkJcmVwb3J0RXZlbnRDaGFuZ2UoZXZlbnRJZCk7CgkJCX0sCgkJCWV2LAoJCQl1aQoJCSk7CgkJcmVwb3J0RXZlbnRDaGFuZ2UoZXZlbnRJZCk7Cgl9CgoKCgkvKiBFdmVudCBNb2RpZmljYXRpb24gTWF0aAoJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCgoJZnVuY3Rpb24gbW92ZUV2ZW50cyhldmVudHMsIGRheURlbHRhLCBtaW51dGVEZWx0YSwgYWxsRGF5KSB7CgkJbWludXRlRGVsdGEgPSBtaW51dGVEZWx0YSB8fCAwOwoJCWZvciAodmFyIGUsIGxlbj1ldmVudHMubGVuZ3RoLCBpPTA7IGk8bGVuOyBpKyspIHsKCQkJZSA9IGV2ZW50c1tpXTsKCQkJaWYgKGFsbERheSAhPT0gdW5kZWZpbmVkKSB7CgkJCQllLmFsbERheSA9IGFsbERheTsKCQkJfQoJCQlhZGRNaW51dGVzKGFkZERheXMoZS5zdGFydCwgZGF5RGVsdGEsIHRydWUpLCBtaW51dGVEZWx0YSk7CgkJCWlmIChlLmVuZCkgewoJCQkJZS5lbmQgPSBhZGRNaW51dGVzKGFkZERheXMoZS5lbmQsIGRheURlbHRhLCB0cnVlKSwgbWludXRlRGVsdGEpOwoJCQl9CgkJCW5vcm1hbGl6ZUV2ZW50KGUsIG9wdGlvbnMpOwoJCX0KCX0KCgoJZnVuY3Rpb24gZWxvbmdhdGVFdmVudHMoZXZlbnRzLCBkYXlEZWx0YSwgbWludXRlRGVsdGEpIHsKCQltaW51dGVEZWx0YSA9IG1pbnV0ZURlbHRhIHx8IDA7CgkJZm9yICh2YXIgZSwgbGVuPWV2ZW50cy5sZW5ndGgsIGk9MDsgaTxsZW47IGkrKykgewoJCQllID0gZXZlbnRzW2ldOwoJCQllLmVuZCA9IGFkZE1pbnV0ZXMoYWRkRGF5cyhldmVudEVuZChlKSwgZGF5RGVsdGEsIHRydWUpLCBtaW51dGVEZWx0YSk7CgkJCW5vcm1hbGl6ZUV2ZW50KGUsIG9wdGlvbnMpOwoJCX0KCX0KCgoKCS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCS8vIFV0aWxpdGllcyBmb3IgZGF5ICJjZWxscyIKCS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCS8vIFRoZSAiYmFzaWMiIHZpZXdzIGFyZSBjb21wbGV0ZWx5IG1hZGUgdXAgb2YgZGF5IGNlbGxzLgoJLy8gVGhlICJhZ2VuZGEiIHZpZXdzIGhhdmUgZGF5IGNlbGxzIGF0IHRoZSB0b3AgImFsbCBkYXkiIHNsb3QuCgkvLyBUaGlzIHdhcyB0aGUgb2J2aW91cyBjb21tb24gcGxhY2UgdG8gcHV0IHRoZXNlIHV0aWxpdGllcywgYnV0IHRoZXkgc2hvdWxkIGJlIGFic3RyYWN0ZWQgb3V0IGludG8KCS8vIGEgbW9yZSBtZWFuaW5nZnVsIGNsYXNzIChsaWtlIERheUV2ZW50UmVuZGVyZXIpLgoJLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKCgkvLyBGb3IgZGV0ZXJtaW5pbmcgaG93IGEgZ2l2ZW4gImNlbGwiIHRyYW5zbGF0ZXMgaW50byBhICJkYXRlIjoKCS8vCgkvLyAxLiBDb252ZXJ0IHRoZSAiY2VsbCIgKHJvdyBhbmQgY29sdW1uKSBpbnRvIGEgImNlbGwgb2Zmc2V0IiAodGhlICMgb2YgdGhlIGNlbGwsIGNyb25vbG9naWNhbGx5IGZyb20gdGhlIGZpcnN0KS4KCS8vICAgIEtlZXAgaW4gbWluZCB0aGF0IGNvbHVtbiBpbmRpY2VzIGFyZSBpbnZlcnRlZCB3aXRoIGlzUlRMLiBUaGlzIGlzIHRha2VuIGludG8gYWNjb3VudC4KCS8vCgkvLyAyLiBDb252ZXJ0IHRoZSAiY2VsbCBvZmZzZXQiIHRvIGEgImRheSBvZmZzZXQiICh0aGUgIyBvZiBkYXlzIHNpbmNlIHRoZSBmaXJzdCB2aXNpYmxlIGRheSBpbiB0aGUgdmlldykuCgkvLwoJLy8gMy4gQ29udmVydCB0aGUgImRheSBvZmZzZXQiIGludG8gYSAiZGF0ZSIgKGEgSmF2YVNjcmlwdCBEYXRlIG9iamVjdCkuCgkvLwoJLy8gVGhlIHJldmVyc2UgdHJhbnNmb3JtYXRpb24gaGFwcGVucyB3aGVuIHRyYW5zZm9ybWluZyBhIGRhdGUgaW50byBhIGNlbGwuCgoKCS8vIGV4cG9ydHMKCXQuaXNIaWRkZW5EYXkgPSBpc0hpZGRlbkRheTsKCXQuc2tpcEhpZGRlbkRheXMgPSBza2lwSGlkZGVuRGF5czsKCXQuZ2V0Q2VsbHNQZXJXZWVrID0gZ2V0Q2VsbHNQZXJXZWVrOwoJdC5kYXRlVG9DZWxsID0gZGF0ZVRvQ2VsbDsKCXQuZGF0ZVRvRGF5T2Zmc2V0ID0gZGF0ZVRvRGF5T2Zmc2V0OwoJdC5kYXlPZmZzZXRUb0NlbGxPZmZzZXQgPSBkYXlPZmZzZXRUb0NlbGxPZmZzZXQ7Cgl0LmNlbGxPZmZzZXRUb0NlbGwgPSBjZWxsT2Zmc2V0VG9DZWxsOwoJdC5jZWxsVG9EYXRlID0gY2VsbFRvRGF0ZTsKCXQuY2VsbFRvQ2VsbE9mZnNldCA9IGNlbGxUb0NlbGxPZmZzZXQ7Cgl0LmNlbGxPZmZzZXRUb0RheU9mZnNldCA9IGNlbGxPZmZzZXRUb0RheU9mZnNldDsKCXQuZGF5T2Zmc2V0VG9EYXRlID0gZGF5T2Zmc2V0VG9EYXRlOwoJdC5yYW5nZVRvU2VnbWVudHMgPSByYW5nZVRvU2VnbWVudHM7CgoKCS8vIGludGVybmFscwoJdmFyIGhpZGRlbkRheXMgPSBvcHQoJ2hpZGRlbkRheXMnKSB8fCBbXTsgLy8gYXJyYXkgb2YgZGF5LW9mLXdlZWsgaW5kaWNlcyB0aGF0IGFyZSBoaWRkZW4KCXZhciBpc0hpZGRlbkRheUhhc2ggPSBbXTsgLy8gaXMgdGhlIGRheS1vZi13ZWVrIGhpZGRlbj8gKGhhc2ggd2l0aCBkYXktb2Ytd2Vlay1pbmRleCAtPiBib29sKQoJdmFyIGNlbGxzUGVyV2VlazsKCXZhciBkYXlUb0NlbGxNYXAgPSBbXTsgLy8gaGFzaCBmcm9tIGRheUluZGV4IC0+IGNlbGxJbmRleCwgZm9yIG9uZSB3ZWVrCgl2YXIgY2VsbFRvRGF5TWFwID0gW107IC8vIGhhc2ggZnJvbSBjZWxsSW5kZXggLT4gZGF5SW5kZXgsIGZvciBvbmUgd2VlawoJdmFyIGlzUlRMID0gb3B0KCdpc1JUTCcpOwoKCgkvLyBpbml0aWFsaXplIGltcG9ydGFudCBpbnRlcm5hbCB2YXJpYWJsZXMKCShmdW5jdGlvbigpIHsKCgkJaWYgKG9wdCgnd2Vla2VuZHMnKSA9PT0gZmFsc2UpIHsKCQkJaGlkZGVuRGF5cy5wdXNoKDAsIDYpOyAvLyAwPXN1bmRheSwgNj1zYXR1cmRheQoJCX0KCgkJLy8gTG9vcCB0aHJvdWdoIGEgaHlwb3RoZXRpY2FsIHdlZWsgYW5kIGRldGVybWluZSB3aGljaAoJCS8vIGRheXMtb2Ytd2VlayBhcmUgaGlkZGVuLiBSZWNvcmQgaW4gYm90aCBoYXNoZXMgKG9uZSBpcyB0aGUgcmV2ZXJzZSBvZiB0aGUgb3RoZXIpLgoJCWZvciAodmFyIGRheUluZGV4PTAsIGNlbGxJbmRleD0wOyBkYXlJbmRleDw3OyBkYXlJbmRleCsrKSB7CgkJCWRheVRvQ2VsbE1hcFtkYXlJbmRleF0gPSBjZWxsSW5kZXg7CgkJCWlzSGlkZGVuRGF5SGFzaFtkYXlJbmRleF0gPSAkLmluQXJyYXkoZGF5SW5kZXgsIGhpZGRlbkRheXMpICE9IC0xOwoJCQlpZiAoIWlzSGlkZGVuRGF5SGFzaFtkYXlJbmRleF0pIHsKCQkJCWNlbGxUb0RheU1hcFtjZWxsSW5kZXhdID0gZGF5SW5kZXg7CgkJCQljZWxsSW5kZXgrKzsKCQkJfQoJCX0KCgkJY2VsbHNQZXJXZWVrID0gY2VsbEluZGV4OwoJCWlmICghY2VsbHNQZXJXZWVrKSB7CgkJCXRocm93ICdpbnZhbGlkIGhpZGRlbkRheXMnOyAvLyBhbGwgZGF5cyB3ZXJlIGhpZGRlbj8gYmFkLgoJCX0KCgl9KSgpOwoKCgkvLyBJcyB0aGUgY3VycmVudCBkYXkgaGlkZGVuPwoJLy8gYGRheWAgaXMgYSBkYXktb2Ytd2VlayBpbmRleCAoMC02KSwgb3IgYSBEYXRlIG9iamVjdAoJZnVuY3Rpb24gaXNIaWRkZW5EYXkoZGF5KSB7CgkJaWYgKHR5cGVvZiBkYXkgPT0gJ29iamVjdCcpIHsKCQkJZGF5ID0gZGF5LmdldERheSgpOwoJCX0KCQlyZXR1cm4gaXNIaWRkZW5EYXlIYXNoW2RheV07Cgl9CgoKCWZ1bmN0aW9uIGdldENlbGxzUGVyV2VlaygpIHsKCQlyZXR1cm4gY2VsbHNQZXJXZWVrOwoJfQoKCgkvLyBLZWVwIGluY3JlbWVudGluZyB0aGUgY3VycmVudCBkYXkgdW50aWwgaXQgaXMgbm8gbG9uZ2VyIGEgaGlkZGVuIGRheS4KCS8vIElmIHRoZSBpbml0aWFsIHZhbHVlIG9mIGBkYXRlYCBpcyBub3QgYSBoaWRkZW4gZGF5LCBkb24ndCBkbyBhbnl0aGluZy4KCS8vIFBhc3MgYGlzRXhjbHVzaXZlYCBhcyBgdHJ1ZWAgaWYgeW91IGFyZSBkZWFsaW5nIHdpdGggYW4gZW5kIGRhdGUuCgkvLyBgaW5jYCBkZWZhdWx0cyB0byBgMWAgKGluY3JlbWVudCBvbmUgZGF5IGZvcndhcmQgZWFjaCB0aW1lKQoJZnVuY3Rpb24gc2tpcEhpZGRlbkRheXMoZGF0ZSwgaW5jLCBpc0V4Y2x1c2l2ZSkgewoJCWluYyA9IGluYyB8fCAxOwoJCXdoaWxlICgKCQkJaXNIaWRkZW5EYXlIYXNoWyAoIGRhdGUuZ2V0RGF5KCkgKyAoaXNFeGNsdXNpdmUgPyBpbmMgOiAwKSArIDcgKSAlIDcgXQoJCSkgewoJCQlhZGREYXlzKGRhdGUsIGluYyk7CgkJfQoJfQoKCgkvLwoJLy8gVFJBTlNGT1JNQVRJT05TOiBjZWxsIC0+IGNlbGwgb2Zmc2V0IC0+IGRheSBvZmZzZXQgLT4gZGF0ZQoJLy8KCgkvLyBjZWxsIC0+IGRhdGUgKGNvbWJpbmVzIGFsbCB0cmFuc2Zvcm1hdGlvbnMpCgkvLyBQb3NzaWJsZSBhcmd1bWVudHM6CgkvLyAtIHJvdywgY29sCgkvLyAtIHsgcm93OiMsIGNvbDogIyB9CglmdW5jdGlvbiBjZWxsVG9EYXRlKCkgewoJCXZhciBjZWxsT2Zmc2V0ID0gY2VsbFRvQ2VsbE9mZnNldC5hcHBseShudWxsLCBhcmd1bWVudHMpOwoJCXZhciBkYXlPZmZzZXQgPSBjZWxsT2Zmc2V0VG9EYXlPZmZzZXQoY2VsbE9mZnNldCk7CgkJdmFyIGRhdGUgPSBkYXlPZmZzZXRUb0RhdGUoZGF5T2Zmc2V0KTsKCQlyZXR1cm4gZGF0ZTsKCX0KCgkvLyBjZWxsIC0+IGNlbGwgb2Zmc2V0CgkvLyBQb3NzaWJsZSBhcmd1bWVudHM6CgkvLyAtIHJvdywgY29sCgkvLyAtIHsgcm93OiMsIGNvbDojIH0KCWZ1bmN0aW9uIGNlbGxUb0NlbGxPZmZzZXQocm93LCBjb2wpIHsKCQl2YXIgY29sQ250ID0gdC5nZXRDb2xDbnQoKTsKCgkJLy8gcnRsIHZhcmlhYmxlcy4gd2lzaCB3ZSBjb3VsZCBwcmUtcG9wdWxhdGUgdGhlc2UuIGJ1dCB3aGVyZT8KCQl2YXIgZGlzID0gaXNSVEwgPyAtMSA6IDE7CgkJdmFyIGRpdCA9IGlzUlRMID8gY29sQ250IC0gMSA6IDA7CgoJCWlmICh0eXBlb2Ygcm93ID09ICdvYmplY3QnKSB7CgkJCWNvbCA9IHJvdy5jb2w7CgkJCXJvdyA9IHJvdy5yb3c7CgkJfQoJCXZhciBjZWxsT2Zmc2V0ID0gcm93ICogY29sQ250ICsgKGNvbCAqIGRpcyArIGRpdCk7IC8vIGNvbHVtbiwgYWRqdXN0ZWQgZm9yIFJUTCAoZGlzICYgZGl0KQoKCQlyZXR1cm4gY2VsbE9mZnNldDsKCX0KCgkvLyBjZWxsIG9mZnNldCAtPiBkYXkgb2Zmc2V0CglmdW5jdGlvbiBjZWxsT2Zmc2V0VG9EYXlPZmZzZXQoY2VsbE9mZnNldCkgewoJCXZhciBkYXkwID0gdC52aXNTdGFydC5nZXREYXkoKTsgLy8gZmlyc3QgZGF0ZSdzIGRheSBvZiB3ZWVrCgkJY2VsbE9mZnNldCArPSBkYXlUb0NlbGxNYXBbZGF5MF07IC8vIG5vcm1saXplIGNlbGxPZmZzZXQgdG8gYmVnaW5uaW5nLW9mLXdlZWsKCQlyZXR1cm4gTWF0aC5mbG9vcihjZWxsT2Zmc2V0IC8gY2VsbHNQZXJXZWVrKSAqIDcgLy8gIyBvZiBkYXlzIGZyb20gZnVsbCB3ZWVrcwoJCQkrIGNlbGxUb0RheU1hcFsgLy8gIyBvZiBkYXlzIGZyb20gcGFydGlhbCBsYXN0IHdlZWsKCQkJCShjZWxsT2Zmc2V0ICUgY2VsbHNQZXJXZWVrICsgY2VsbHNQZXJXZWVrKSAlIGNlbGxzUGVyV2VlayAvLyBjcmF6eSBtYXRoIHRvIGhhbmRsZSBuZWdhdGl2ZSBjZWxsT2Zmc2V0cwoJCQldCgkJCS0gZGF5MDsgLy8gYWRqdXN0bWVudCBmb3IgYmVnaW5uaW5nLW9mLXdlZWsgbm9ybWFsaXphdGlvbgoJfQoKCS8vIGRheSBvZmZzZXQgLT4gZGF0ZSAoSmF2YVNjcmlwdCBEYXRlIG9iamVjdCkKCWZ1bmN0aW9uIGRheU9mZnNldFRvRGF0ZShkYXlPZmZzZXQpIHsKCQl2YXIgZGF0ZSA9IGNsb25lRGF0ZSh0LnZpc1N0YXJ0KTsKCQlhZGREYXlzKGRhdGUsIGRheU9mZnNldCk7CgkJcmV0dXJuIGRhdGU7Cgl9CgoKCS8vCgkvLyBUUkFOU0ZPUk1BVElPTlM6IGRhdGUgLT4gZGF5IG9mZnNldCAtPiBjZWxsIG9mZnNldCAtPiBjZWxsCgkvLwoKCS8vIGRhdGUgLT4gY2VsbCAoY29tYmluZXMgYWxsIHRyYW5zZm9ybWF0aW9ucykKCWZ1bmN0aW9uIGRhdGVUb0NlbGwoZGF0ZSkgewoJCXZhciBkYXlPZmZzZXQgPSBkYXRlVG9EYXlPZmZzZXQoZGF0ZSk7CgkJdmFyIGNlbGxPZmZzZXQgPSBkYXlPZmZzZXRUb0NlbGxPZmZzZXQoZGF5T2Zmc2V0KTsKCQl2YXIgY2VsbCA9IGNlbGxPZmZzZXRUb0NlbGwoY2VsbE9mZnNldCk7CgkJcmV0dXJuIGNlbGw7Cgl9CgoJLy8gZGF0ZSAtPiBkYXkgb2Zmc2V0CglmdW5jdGlvbiBkYXRlVG9EYXlPZmZzZXQoZGF0ZSkgewoJCXJldHVybiBkYXlEaWZmKGRhdGUsIHQudmlzU3RhcnQpOwoJfQoKCS8vIGRheSBvZmZzZXQgLT4gY2VsbCBvZmZzZXQKCWZ1bmN0aW9uIGRheU9mZnNldFRvQ2VsbE9mZnNldChkYXlPZmZzZXQpIHsKCQl2YXIgZGF5MCA9IHQudmlzU3RhcnQuZ2V0RGF5KCk7IC8vIGZpcnN0IGRhdGUncyBkYXkgb2Ygd2VlawoJCWRheU9mZnNldCArPSBkYXkwOyAvLyBub3JtYWxpemUgZGF5T2Zmc2V0IHRvIGJlZ2lubmluZy1vZi13ZWVrCgkJcmV0dXJuIE1hdGguZmxvb3IoZGF5T2Zmc2V0IC8gNykgKiBjZWxsc1BlcldlZWsgLy8gIyBvZiBjZWxscyBmcm9tIGZ1bGwgd2Vla3MKCQkJKyBkYXlUb0NlbGxNYXBbIC8vICMgb2YgY2VsbHMgZnJvbSBwYXJ0aWFsIGxhc3Qgd2VlawoJCQkJKGRheU9mZnNldCAlIDcgKyA3KSAlIDcgLy8gY3JhenkgbWF0aCB0byBoYW5kbGUgbmVnYXRpdmUgZGF5T2Zmc2V0cwoJCQldCgkJCS0gZGF5VG9DZWxsTWFwW2RheTBdOyAvLyBhZGp1c3RtZW50IGZvciBiZWdpbm5pbmctb2Ytd2VlayBub3JtYWxpemF0aW9uCgl9CgoJLy8gY2VsbCBvZmZzZXQgLT4gY2VsbCAob2JqZWN0IHdpdGggcm93ICYgY29sIGtleXMpCglmdW5jdGlvbiBjZWxsT2Zmc2V0VG9DZWxsKGNlbGxPZmZzZXQpIHsKCQl2YXIgY29sQ250ID0gdC5nZXRDb2xDbnQoKTsKCgkJLy8gcnRsIHZhcmlhYmxlcy4gd2lzaCB3ZSBjb3VsZCBwcmUtcG9wdWxhdGUgdGhlc2UuIGJ1dCB3aGVyZT8KCQl2YXIgZGlzID0gaXNSVEwgPyAtMSA6IDE7CgkJdmFyIGRpdCA9IGlzUlRMID8gY29sQ250IC0gMSA6IDA7CgoJCXZhciByb3cgPSBNYXRoLmZsb29yKGNlbGxPZmZzZXQgLyBjb2xDbnQpOwoJCXZhciBjb2wgPSAoKGNlbGxPZmZzZXQgJSBjb2xDbnQgKyBjb2xDbnQpICUgY29sQ250KSAqIGRpcyArIGRpdDsgLy8gY29sdW1uLCBhZGp1c3RlZCBmb3IgUlRMIChkaXMgJiBkaXQpCgkJcmV0dXJuIHsKCQkJcm93OiByb3csCgkJCWNvbDogY29sCgkJfTsKCX0KCgoJLy8KCS8vIENvbnZlcnRzIGEgZGF0ZSByYW5nZSBpbnRvIGFuIGFycmF5IG9mIHNlZ21lbnQgb2JqZWN0cy4KCS8vICJTZWdtZW50cyIgYXJlIGhvcml6b250YWwgc3RyZXRjaGVzIG9mIHRpbWUsIHNsaWNlZCB1cCBieSByb3cuCgkvLyBBIHNlZ21lbnQgb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CgkvLyAtIHJvdwoJLy8gLSBjb2xzCgkvLyAtIGlzU3RhcnQKCS8vIC0gaXNFbmQKCS8vCglmdW5jdGlvbiByYW5nZVRvU2VnbWVudHMoc3RhcnREYXRlLCBlbmREYXRlKSB7CgkJdmFyIHJvd0NudCA9IHQuZ2V0Um93Q250KCk7CgkJdmFyIGNvbENudCA9IHQuZ2V0Q29sQ250KCk7CgkJdmFyIHNlZ21lbnRzID0gW107IC8vIGFycmF5IG9mIHNlZ21lbnRzIHRvIHJldHVybgoKCQkvLyBkYXkgb2Zmc2V0IGZvciBnaXZlbiBkYXRlIHJhbmdlCgkJdmFyIHJhbmdlRGF5T2Zmc2V0U3RhcnQgPSBkYXRlVG9EYXlPZmZzZXQoc3RhcnREYXRlKTsKCQl2YXIgcmFuZ2VEYXlPZmZzZXRFbmQgPSBkYXRlVG9EYXlPZmZzZXQoZW5kRGF0ZSk7IC8vIGV4Y2x1c2l2ZQoKCQkvLyBmaXJzdCBhbmQgbGFzdCBjZWxsIG9mZnNldCBmb3IgdGhlIGdpdmVuIGRhdGUgcmFuZ2UKCQkvLyAibGFzdCIgaW1wbGllcyBpbmNsdXNpdml0eQoJCXZhciByYW5nZUNlbGxPZmZzZXRGaXJzdCA9IGRheU9mZnNldFRvQ2VsbE9mZnNldChyYW5nZURheU9mZnNldFN0YXJ0KTsKCQl2YXIgcmFuZ2VDZWxsT2Zmc2V0TGFzdCA9IGRheU9mZnNldFRvQ2VsbE9mZnNldChyYW5nZURheU9mZnNldEVuZCkgLSAxOwoKCQkvLyBsb29wIHRocm91Z2ggYWxsIHRoZSByb3dzIGluIHRoZSB2aWV3CgkJZm9yICh2YXIgcm93PTA7IHJvdzxyb3dDbnQ7IHJvdysrKSB7CgoJCQkvLyBmaXJzdCBhbmQgbGFzdCBjZWxsIG9mZnNldCBmb3IgdGhlIHJvdwoJCQl2YXIgcm93Q2VsbE9mZnNldEZpcnN0ID0gcm93ICogY29sQ250OwoJCQl2YXIgcm93Q2VsbE9mZnNldExhc3QgPSByb3dDZWxsT2Zmc2V0Rmlyc3QgKyBjb2xDbnQgLSAxOwoKCQkJLy8gZ2V0IHRoZSBzZWdtZW50J3MgY2VsbCBvZmZzZXRzIGJ5IGNvbnN0cmFpbmluZyB0aGUgcmFuZ2UncyBjZWxsIG9mZnNldHMgdG8gdGhlIGJvdW5kcyBvZiB0aGUgcm93CgkJCXZhciBzZWdtZW50Q2VsbE9mZnNldEZpcnN0ID0gTWF0aC5tYXgocmFuZ2VDZWxsT2Zmc2V0Rmlyc3QsIHJvd0NlbGxPZmZzZXRGaXJzdCk7CgkJCXZhciBzZWdtZW50Q2VsbE9mZnNldExhc3QgPSBNYXRoLm1pbihyYW5nZUNlbGxPZmZzZXRMYXN0LCByb3dDZWxsT2Zmc2V0TGFzdCk7CgoJCQkvLyBtYWtlIHN1cmUgc2VnbWVudCdzIG9mZnNldHMgYXJlIHZhbGlkIGFuZCBpbiB2aWV3CgkJCWlmIChzZWdtZW50Q2VsbE9mZnNldEZpcnN0IDw9IHNlZ21lbnRDZWxsT2Zmc2V0TGFzdCkgewoKCQkJCS8vIHRyYW5zbGF0ZSB0byBjZWxscwoJCQkJdmFyIHNlZ21lbnRDZWxsRmlyc3QgPSBjZWxsT2Zmc2V0VG9DZWxsKHNlZ21lbnRDZWxsT2Zmc2V0Rmlyc3QpOwoJCQkJdmFyIHNlZ21lbnRDZWxsTGFzdCA9IGNlbGxPZmZzZXRUb0NlbGwoc2VnbWVudENlbGxPZmZzZXRMYXN0KTsKCgkJCQkvLyB2aWV3IG1pZ2h0IGJlIFJUTCwgc28gb3JkZXIgYnkgbGVmdG1vc3QgY29sdW1uCgkJCQl2YXIgY29scyA9IFsgc2VnbWVudENlbGxGaXJzdC5jb2wsIHNlZ21lbnRDZWxsTGFzdC5jb2wgXS5zb3J0KCk7CgoJCQkJLy8gRGV0ZXJtaW5lIGlmIHNlZ21lbnQncyBmaXJzdC9sYXN0IGNlbGwgaXMgdGhlIGJlZ2lubmluZy9lbmQgb2YgdGhlIGRhdGUgcmFuZ2UuCgkJCQkvLyBXZSBuZWVkIHRvIGNvbXBhcmUgImRheSBvZmZzZXQiIGJlY2F1c2UgImNlbGwgb2Zmc2V0cyIgYXJlIG9mdGVuIGFtYmlndW91cyBhbmQKCQkJCS8vIGNhbiB0cmFuc2xhdGUgdG8gbXVsdGlwbGUgZGF5cywgYW5kIGFuIGVkZ2UgY2FzZSByZXZlYWxzIGl0c2VsZiB3aGVuIHdlIHRoZQoJCQkJLy8gcmFuZ2UncyBmaXJzdCBjZWxsIGlzIGhpZGRlbiAod2UgZG9uJ3Qgd2FudCBpc1N0YXJ0IHRvIGJlIHRydWUpLgoJCQkJdmFyIGlzU3RhcnQgPSBjZWxsT2Zmc2V0VG9EYXlPZmZzZXQoc2VnbWVudENlbGxPZmZzZXRGaXJzdCkgPT0gcmFuZ2VEYXlPZmZzZXRTdGFydDsKCQkJCXZhciBpc0VuZCA9IGNlbGxPZmZzZXRUb0RheU9mZnNldChzZWdtZW50Q2VsbE9mZnNldExhc3QpICsgMSA9PSByYW5nZURheU9mZnNldEVuZDsgLy8gKzEgZm9yIGNvbXBhcmluZyBleGNsdXNpdmVseQoKCQkJCXNlZ21lbnRzLnB1c2goewoJCQkJCXJvdzogcm93LAoJCQkJCWxlZnRDb2w6IGNvbHNbMF0sCgkJCQkJcmlnaHRDb2w6IGNvbHNbMV0sCgkJCQkJaXNTdGFydDogaXNTdGFydCwKCQkJCQlpc0VuZDogaXNFbmQKCQkJCX0pOwoJCQl9CgkJfQoKCQlyZXR1cm4gc2VnbWVudHM7Cgl9CgoKfQoKOzsKCmZ1bmN0aW9uIERheUV2ZW50UmVuZGVyZXIoKSB7Cgl2YXIgdCA9IHRoaXM7CgoKCS8vIGV4cG9ydHMKCXQucmVuZGVyRGF5RXZlbnRzID0gcmVuZGVyRGF5RXZlbnRzOwoJdC5kcmFnZ2FibGVEYXlFdmVudCA9IGRyYWdnYWJsZURheUV2ZW50OyAvLyBtYWRlIHB1YmxpYyBzbyB0aGF0IHN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlCgl0LnJlc2l6YWJsZURheUV2ZW50ID0gcmVzaXphYmxlRGF5RXZlbnQ7IC8vICIKCgoJLy8gaW1wb3J0cwoJdmFyIG9wdCA9IHQub3B0OwoJdmFyIHRyaWdnZXIgPSB0LnRyaWdnZXI7Cgl2YXIgaXNFdmVudERyYWdnYWJsZSA9IHQuaXNFdmVudERyYWdnYWJsZTsKCXZhciBpc0V2ZW50UmVzaXphYmxlID0gdC5pc0V2ZW50UmVzaXphYmxlOwoJdmFyIGV2ZW50RW5kID0gdC5ldmVudEVuZDsKCXZhciByZXBvcnRFdmVudEVsZW1lbnQgPSB0LnJlcG9ydEV2ZW50RWxlbWVudDsKCXZhciBldmVudEVsZW1lbnRIYW5kbGVycyA9IHQuZXZlbnRFbGVtZW50SGFuZGxlcnM7Cgl2YXIgc2hvd0V2ZW50cyA9IHQuc2hvd0V2ZW50czsKCXZhciBoaWRlRXZlbnRzID0gdC5oaWRlRXZlbnRzOwoJdmFyIGV2ZW50RHJvcCA9IHQuZXZlbnREcm9wOwoJdmFyIGV2ZW50UmVzaXplID0gdC5ldmVudFJlc2l6ZTsKCXZhciBnZXRSb3dDbnQgPSB0LmdldFJvd0NudDsKCXZhciBnZXRDb2xDbnQgPSB0LmdldENvbENudDsKCXZhciBnZXRDb2xXaWR0aCA9IHQuZ2V0Q29sV2lkdGg7Cgl2YXIgYWxsRGF5Um93ID0gdC5hbGxEYXlSb3c7IC8vIFRPRE86IHJlbmFtZQoJdmFyIGNvbExlZnQgPSB0LmNvbExlZnQ7Cgl2YXIgY29sUmlnaHQgPSB0LmNvbFJpZ2h0OwoJdmFyIGNvbENvbnRlbnRMZWZ0ID0gdC5jb2xDb250ZW50TGVmdDsKCXZhciBjb2xDb250ZW50UmlnaHQgPSB0LmNvbENvbnRlbnRSaWdodDsKCXZhciBkYXRlVG9DZWxsID0gdC5kYXRlVG9DZWxsOwoJdmFyIGdldERheVNlZ21lbnRDb250YWluZXIgPSB0LmdldERheVNlZ21lbnRDb250YWluZXI7Cgl2YXIgZm9ybWF0RGF0ZXMgPSB0LmNhbGVuZGFyLmZvcm1hdERhdGVzOwoJdmFyIHJlbmRlckRheU92ZXJsYXkgPSB0LnJlbmRlckRheU92ZXJsYXk7Cgl2YXIgY2xlYXJPdmVybGF5cyA9IHQuY2xlYXJPdmVybGF5czsKCXZhciBjbGVhclNlbGVjdGlvbiA9IHQuY2xlYXJTZWxlY3Rpb247Cgl2YXIgZ2V0SG92ZXJMaXN0ZW5lciA9IHQuZ2V0SG92ZXJMaXN0ZW5lcjsKCXZhciByYW5nZVRvU2VnbWVudHMgPSB0LnJhbmdlVG9TZWdtZW50czsKCXZhciBjZWxsVG9EYXRlID0gdC5jZWxsVG9EYXRlOwoJdmFyIGNlbGxUb0NlbGxPZmZzZXQgPSB0LmNlbGxUb0NlbGxPZmZzZXQ7Cgl2YXIgY2VsbE9mZnNldFRvRGF5T2Zmc2V0ID0gdC5jZWxsT2Zmc2V0VG9EYXlPZmZzZXQ7Cgl2YXIgZGF0ZVRvRGF5T2Zmc2V0ID0gdC5kYXRlVG9EYXlPZmZzZXQ7Cgl2YXIgZGF5T2Zmc2V0VG9DZWxsT2Zmc2V0ID0gdC5kYXlPZmZzZXRUb0NlbGxPZmZzZXQ7CgoKCS8vIFJlbmRlciBgZXZlbnRzYCBvbnRvIHRoZSBjYWxlbmRhciwgYXR0YWNoIG1vdXNlIGV2ZW50IGhhbmRsZXJzLCBhbmQgY2FsbCB0aGUgYGV2ZW50QWZ0ZXJSZW5kZXJgIGNhbGxiYWNrIGZvciBlYWNoLgoJLy8gTW91c2UgZXZlbnQgd2lsbCBiZSBsYXppbHkgYXBwbGllZCwgZXhjZXB0IGlmIHRoZSBldmVudCBoYXMgYW4gSUQgb2YgYG1vZGlmaWVkRXZlbnRJZGAuCgkvLyBDYW4gb25seSBiZSBjYWxsZWQgd2hlbiB0aGUgZXZlbnQgY29udGFpbmVyIGlzIGVtcHR5IChiZWNhdXNlIGl0IHdpcGVzIG91dCBhbGwgaW5uZXJIVE1MKS4KCWZ1bmN0aW9uIHJlbmRlckRheUV2ZW50cyhldmVudHMsIG1vZGlmaWVkRXZlbnRJZCkgewoKCQkvLyBkbyB0aGUgYWN0dWFsIHJlbmRlcmluZy4gUmVjZWl2ZSB0aGUgaW50ZXJtZWRpYXRlICJzZWdtZW50IiBkYXRhIHN0cnVjdHVyZXMuCgkJdmFyIHNlZ21lbnRzID0gX3JlbmRlckRheUV2ZW50cygKCQkJZXZlbnRzLAoJCQlmYWxzZSwgLy8gZG9uJ3QgYXBwZW5kIGV2ZW50IGVsZW1lbnRzCgkJCXRydWUgLy8gc2V0IHRoZSBoZWlnaHRzIG9mIHRoZSByb3dzCgkJKTsKCgkJLy8gcmVwb3J0IHRoZSBlbGVtZW50cyB0byB0aGUgVmlldywgZm9yIGdlbmVyYWwgZHJhZy9yZXNpemUgdXRpbGl0aWVzCgkJc2VnbWVudEVsZW1lbnRFYWNoKHNlZ21lbnRzLCBmdW5jdGlvbihzZWdtZW50LCBlbGVtZW50KSB7CgkJCXJlcG9ydEV2ZW50RWxlbWVudChzZWdtZW50LmV2ZW50LCBlbGVtZW50KTsKCQl9KTsKCgkJLy8gYXR0YWNoIG1vdXNlIGhhbmRsZXJzCgkJYXR0YWNoSGFuZGxlcnMoc2VnbWVudHMsIG1vZGlmaWVkRXZlbnRJZCk7CgoJCS8vIGNhbGwgYGV2ZW50QWZ0ZXJSZW5kZXJgIGNhbGxiYWNrIGZvciBlYWNoIGV2ZW50CgkJc2VnbWVudEVsZW1lbnRFYWNoKHNlZ21lbnRzLCBmdW5jdGlvbihzZWdtZW50LCBlbGVtZW50KSB7CgkJCXRyaWdnZXIoJ2V2ZW50QWZ0ZXJSZW5kZXInLCBzZWdtZW50LmV2ZW50LCBzZWdtZW50LmV2ZW50LCBlbGVtZW50KTsKCQl9KTsKCX0KCgoJLy8gUmVuZGVyIGFuIGV2ZW50IG9uIHRoZSBjYWxlbmRhciwgYnV0IGRvbid0IHJlcG9ydCB0aGVtIGFueXdoZXJlLCBhbmQgZG9uJ3QgYXR0YWNoIG1vdXNlIGhhbmRsZXJzLgoJLy8gQXBwZW5kIHRoaXMgZXZlbnQgZWxlbWVudCB0byB0aGUgZXZlbnQgY29udGFpbmVyLCB3aGljaCBtaWdodCBhbHJlYWR5IGJlIHBvcHVsYXRlZCB3aXRoIGV2ZW50cy4KCS8vIElmIGFuIGV2ZW50J3Mgc2VnbWVudCB3aWxsIGhhdmUgcm93IGVxdWFsIHRvIGBhZGp1c3RSb3dgLCB0aGVuIGV4cGxpY2l0bHkgc2V0IGl0cyB0b3AgY29vcmRpbmF0ZSB0byBgYWRqdXN0VG9wYC4KCS8vIFRoaXMgaGFjayBpcyB1c2VkIHRvIG1haW50YWluIGNvbnRpbnVpdHkgd2hlbiB1c2VyIGlzIG1hbnVhbGx5IHJlc2l6aW5nIGFuIGV2ZW50LgoJLy8gUmV0dXJucyBhbiBhcnJheSBvZiBET00gZWxlbWVudHMgZm9yIHRoZSBldmVudC4KCWZ1bmN0aW9uIHJlbmRlclRlbXBEYXlFdmVudChldmVudCwgYWRqdXN0Um93LCBhZGp1c3RUb3ApIHsKCgkJLy8gYWN0dWFsbHkgcmVuZGVyIHRoZSBldmVudC4gYHRydWVgIGZvciBhcHBlbmRpbmcgZWxlbWVudCB0byBjb250YWluZXIuCgkJLy8gUmVjaWV2ZSB0aGUgaW50ZXJtZWRpYXRlICJzZWdtZW50IiBkYXRhIHN0cnVjdHVyZXMuCgkJdmFyIHNlZ21lbnRzID0gX3JlbmRlckRheUV2ZW50cygKCQkJWyBldmVudCBdLAoJCQl0cnVlLCAvLyBhcHBlbmQgZXZlbnQgZWxlbWVudHMKCQkJZmFsc2UgLy8gZG9uJ3Qgc2V0IHRoZSBoZWlnaHRzIG9mIHRoZSByb3dzCgkJKTsKCgkJdmFyIGVsZW1lbnRzID0gW107CgoJCS8vIEFkanVzdCBjZXJ0YWluIGVsZW1lbnRzJyB0b3AgY29vcmRpbmF0ZXMKCQlzZWdtZW50RWxlbWVudEVhY2goc2VnbWVudHMsIGZ1bmN0aW9uKHNlZ21lbnQsIGVsZW1lbnQpIHsKCQkJaWYgKHNlZ21lbnQucm93ID09PSBhZGp1c3RSb3cpIHsKCQkJCWVsZW1lbnQuY3NzKCd0b3AnLCBhZGp1c3RUb3ApOwoJCQl9CgkJCWVsZW1lbnRzLnB1c2goZWxlbWVudFswXSk7IC8vIGFjY3VtdWxhdGUgRE9NIG5vZGVzCgkJfSk7CgoJCXJldHVybiBlbGVtZW50czsKCX0KCgoJLy8gUmVuZGVyIGV2ZW50cyBvbnRvIHRoZSBjYWxlbmRhci4gT25seSByZXNwb25zaWJsZSBmb3IgdGhlIFZJU1VBTCBhc3BlY3QuCgkvLyBOb3QgcmVzcG9uc2libGUgZm9yIGF0dGFjaGluZyBoYW5kbGVycyBvciBjYWxsaW5nIGNhbGxiYWNrcy4KCS8vIFNldCBgZG9BcHBlbmRgIHRvIGB0cnVlYCBmb3IgcmVuZGVyaW5nIGVsZW1lbnRzIHdpdGhvdXQgY2xlYXJpbmcgdGhlIGV4aXN0aW5nIGNvbnRhaW5lci4KCS8vIFNldCBgZG9Sb3dIZWlnaHRzYCB0byBhbGxvdyBzZXR0aW5nIHRoZSBoZWlnaHQgb2YgZWFjaCByb3csIHRvIGNvbXBlbnNhdGUgZm9yIHZlcnRpY2FsIGV2ZW50IG92ZXJmbG93LgoJZnVuY3Rpb24gX3JlbmRlckRheUV2ZW50cyhldmVudHMsIGRvQXBwZW5kLCBkb1Jvd0hlaWdodHMpIHsKCgkJLy8gd2hlcmUgdGhlIERPTSBub2RlcyB3aWxsIGV2ZW50dWFsbHkgZW5kIHVwCgkJdmFyIGZpbmFsQ29udGFpbmVyID0gZ2V0RGF5U2VnbWVudENvbnRhaW5lcigpOwoKCQkvLyB0aGUgY29udGFpbmVyIHdoZXJlIHRoZSBpbml0aWFsIEhUTUwgd2lsbCBiZSByZW5kZXJlZC4KCQkvLyBJZiBgZG9BcHBlbmRgPT10cnVlLCB1c2VzIGEgdGVtcG9yYXJ5IGNvbnRhaW5lci4KCQl2YXIgcmVuZGVyQ29udGFpbmVyID0gZG9BcHBlbmQgPyAkKCI8ZGl2Lz4iKSA6IGZpbmFsQ29udGFpbmVyOwoKCQl2YXIgc2VnbWVudHMgPSBidWlsZFNlZ21lbnRzKGV2ZW50cyk7CgkJdmFyIGh0bWw7CgkJdmFyIGVsZW1lbnRzOwoKCQkvLyBjYWxjdWxhdGUgdGhlIGRlc2lyZWQgYGxlZnRgIGFuZCBgd2lkdGhgIHByb3BlcnRpZXMgb24gZWFjaCBzZWdtZW50IG9iamVjdAoJCWNhbGN1bGF0ZUhvcml6b250YWxzKHNlZ21lbnRzKTsKCgkJLy8gYnVpbGQgdGhlIEhUTUwgc3RyaW5nLiByZWxpZXMgb24gYGxlZnRgIHByb3BlcnR5CgkJaHRtbCA9IGJ1aWxkSFRNTChzZWdtZW50cyk7CgoJCS8vIHJlbmRlciB0aGUgSFRNTC4gaW5uZXJIVE1MIGlzIGNvbnNpZGVyYWJseSBmYXN0ZXIgdGhhbiBqUXVlcnkncyAuaHRtbCgpCgkJcmVuZGVyQ29udGFpbmVyWzBdLmlubmVySFRNTCA9IGh0bWw7CgoJCS8vIHJldHJpZXZlIHRoZSBpbmRpdmlkdWFsIGVsZW1lbnRzCgkJZWxlbWVudHMgPSByZW5kZXJDb250YWluZXIuY2hpbGRyZW4oKTsKCgkJLy8gaWYgd2Ugd2VyZSBhcHBlbmRpbmcsIGFuZCB0aHVzIHVzaW5nIGEgdGVtcG9yYXJ5IGNvbnRhaW5lciwKCQkvLyByZS1hdHRhY2ggZWxlbWVudHMgdG8gdGhlIHJlYWwgY29udGFpbmVyLgoJCWlmIChkb0FwcGVuZCkgewoJCQlmaW5hbENvbnRhaW5lci5hcHBlbmQoZWxlbWVudHMpOwoJCX0KCgkJLy8gYXNzaWducyBlYWNoIGVsZW1lbnQgdG8gYHNlZ21lbnQuZXZlbnRgLCBhZnRlciBmaWx0ZXJpbmcgdGhlbSB0aHJvdWdoIHVzZXIgY2FsbGJhY2tzCgkJcmVzb2x2ZUVsZW1lbnRzKHNlZ21lbnRzLCBlbGVtZW50cyk7CgoJCS8vIENhbGN1bGF0ZSB0aGUgbGVmdCBhbmQgcmlnaHQgcGFkZGluZyttYXJnaW4gZm9yIGVhY2ggZWxlbWVudC4KCQkvLyBXZSBuZWVkIHRoaXMgZm9yIHNldHRpbmcgZWFjaCBlbGVtZW50J3MgZGVzaXJlZCBvdXRlciB3aWR0aCwgYmVjYXVzZSBvZiB0aGUgVzNDIGJveCBtb2RlbC4KCQkvLyBJdCdzIGltcG9ydGFudCB3ZSBkbyB0aGlzIGluIGEgc2VwYXJhdGUgcGFzcyBmcm9tIGFjdWFsbHkgc2V0dGluZyB0aGUgd2lkdGggb24gdGhlIERPTSBlbGVtZW50cwoJCS8vIGJlY2F1c2UgYWx0ZXJuYXRpbmcgcmVhZGluZy93cml0aW5nIGRpbWVuc2lvbnMgY2F1c2VzIHJlZmxvdyBmb3IgZXZlcnkgaXRlcmF0aW9uLgoJCXNlZ21lbnRFbGVtZW50RWFjaChzZWdtZW50cywgZnVuY3Rpb24oc2VnbWVudCwgZWxlbWVudCkgewoJCQlzZWdtZW50LmhzaWRlcyA9IGhzaWRlcyhlbGVtZW50LCB0cnVlKTsgLy8gaW5jbHVkZSBtYXJnaW5zID0gYHRydWVgCgkJfSk7CgoJCS8vIFNldCB0aGUgd2lkdGggb2YgZWFjaCBlbGVtZW50CgkJc2VnbWVudEVsZW1lbnRFYWNoKHNlZ21lbnRzLCBmdW5jdGlvbihzZWdtZW50LCBlbGVtZW50KSB7CgkJCWVsZW1lbnQud2lkdGgoCgkJCQlNYXRoLm1heCgwLCBzZWdtZW50Lm91dGVyV2lkdGggLSBzZWdtZW50LmhzaWRlcykKCQkJKTsKCQl9KTsKCgkJLy8gR3JhYiBlYWNoIGVsZW1lbnQncyBvdXRlckhlaWdodCAoc2V0VmVydGljYWxzIHVzZXMgdGhpcykuCgkJLy8gVG8gZ2V0IGFuIGFjY3VyYXRlIHJlYWRpbmcsIGl0J3MgaW1wb3J0YW50IHRvIGhhdmUgZWFjaCBlbGVtZW50J3Mgd2lkdGggZXhwbGljaXRseSBzZXQgYWxyZWFkeS4KCQlzZWdtZW50RWxlbWVudEVhY2goc2VnbWVudHMsIGZ1bmN0aW9uKHNlZ21lbnQsIGVsZW1lbnQpIHsKCQkJc2VnbWVudC5vdXRlckhlaWdodCA9IGVsZW1lbnQub3V0ZXJIZWlnaHQodHJ1ZSk7IC8vIGluY2x1ZGUgbWFyZ2lucyA9IGB0cnVlYAoJCX0pOwoKCQkvLyBTZXQgdGhlIHRvcCBjb29yZGluYXRlIG9uIGVhY2ggZWxlbWVudCAocmVxdWlyZXMgc2VnbWVudC5vdXRlckhlaWdodCkKCQlzZXRWZXJ0aWNhbHMoc2VnbWVudHMsIGRvUm93SGVpZ2h0cyk7CgoJCXJldHVybiBzZWdtZW50czsKCX0KCgoJLy8gR2VuZXJhdGUgYW4gYXJyYXkgb2YgInNlZ21lbnRzIiBmb3IgYWxsIGV2ZW50cy4KCWZ1bmN0aW9uIGJ1aWxkU2VnbWVudHMoZXZlbnRzKSB7CgkJdmFyIHNlZ21lbnRzID0gW107CgkJZm9yICh2YXIgaT0wOyBpPGV2ZW50cy5sZW5ndGg7IGkrKykgewoJCQl2YXIgZXZlbnRTZWdtZW50cyA9IGJ1aWxkU2VnbWVudHNGb3JFdmVudChldmVudHNbaV0pOwoJCQlzZWdtZW50cy5wdXNoLmFwcGx5KHNlZ21lbnRzLCBldmVudFNlZ21lbnRzKTsgLy8gYXBwZW5kIGFuIGFycmF5IHRvIGFuIGFycmF5CgkJfQoJCXJldHVybiBzZWdtZW50czsKCX0KCgoJLy8gR2VuZXJhdGUgYW4gYXJyYXkgb2Ygc2VnbWVudHMgZm9yIGEgc2luZ2xlIGV2ZW50LgoJLy8gQSAic2VnbWVudCIgaXMgdGhlIHNhbWUgZGF0YSBzdHJ1Y3R1cmUgdGhhdCBWaWV3LnJhbmdlVG9TZWdtZW50cyBwcm9kdWNlcywKCS8vIHdpdGggdGhlIGFkZGl0aW9uIG9mIHRoZSBgZXZlbnRgIHByb3BlcnR5IGJlaW5nIHNldCB0byByZWZlcmVuY2UgdGhlIG9yaWdpbmFsIGV2ZW50LgoJZnVuY3Rpb24gYnVpbGRTZWdtZW50c0ZvckV2ZW50KGV2ZW50KSB7CgkJdmFyIHN0YXJ0RGF0ZSA9IGV2ZW50LnN0YXJ0OwoJCXZhciBlbmREYXRlID0gZXhjbEVuZERheShldmVudCk7CgkJdmFyIHNlZ21lbnRzID0gcmFuZ2VUb1NlZ21lbnRzKHN0YXJ0RGF0ZSwgZW5kRGF0ZSk7CgkJZm9yICh2YXIgaT0wOyBpPHNlZ21lbnRzLmxlbmd0aDsgaSsrKSB7CgkJCXNlZ21lbnRzW2ldLmV2ZW50ID0gZXZlbnQ7CgkJfQoJCXJldHVybiBzZWdtZW50czsKCX0KCgoJLy8gU2V0cyB0aGUgYGxlZnRgIGFuZCBgb3V0ZXJXaWR0aGAgcHJvcGVydHkgb2YgZWFjaCBzZWdtZW50LgoJLy8gVGhlc2UgdmFsdWVzIGFyZSB0aGUgZGVzaXJlZCBkaW1lbnNpb25zIGZvciB0aGUgZXZlbnR1YWwgRE9NIGVsZW1lbnRzLgoJZnVuY3Rpb24gY2FsY3VsYXRlSG9yaXpvbnRhbHMoc2VnbWVudHMpIHsKCQl2YXIgaXNSVEwgPSBvcHQoJ2lzUlRMJyk7CgkJZm9yICh2YXIgaT0wOyBpPHNlZ21lbnRzLmxlbmd0aDsgaSsrKSB7CgkJCXZhciBzZWdtZW50ID0gc2VnbWVudHNbaV07CgoJCQkvLyBEZXRlcm1pbmUgZnVuY3Rpb25zIHVzZWQgZm9yIGNhbHVsYXRpbmcgdGhlIGVsZW1lbnRzIGxlZnQvcmlnaHQgY29vcmRpbmF0ZXMsCgkJCS8vIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSB2aWV3IGlzIFJUTCBvciBub3QuCgkJCS8vIE5PVEU6CgkJCS8vIGNvbExlZnQvY29sUmlnaHQgcmV0dXJucyB0aGUgY29vcmRpbmF0ZSBidXR0aW5nIHVwIHRoZSBlZGdlIG9mIHRoZSBjZWxsLgoJCQkvLyBjb2xDb250ZW50TGVmdC9jb2xDb250ZW50UmlnaHQgaXMgaW5kZW50ZWQgYSBsaXR0bGUgYml0IGZyb20gdGhlIGVkZ2UuCgkJCXZhciBsZWZ0RnVuYyA9IChpc1JUTCA/IHNlZ21lbnQuaXNFbmQgOiBzZWdtZW50LmlzU3RhcnQpID8gY29sQ29udGVudExlZnQgOiBjb2xMZWZ0OwoJCQl2YXIgcmlnaHRGdW5jID0gKGlzUlRMID8gc2VnbWVudC5pc1N0YXJ0IDogc2VnbWVudC5pc0VuZCkgPyBjb2xDb250ZW50UmlnaHQgOiBjb2xSaWdodDsKCgkJCXZhciBsZWZ0ID0gbGVmdEZ1bmMoc2VnbWVudC5sZWZ0Q29sKTsKCQkJdmFyIHJpZ2h0ID0gcmlnaHRGdW5jKHNlZ21lbnQucmlnaHRDb2wpOwoJCQlzZWdtZW50LmxlZnQgPSBsZWZ0OwoJCQlzZWdtZW50Lm91dGVyV2lkdGggPSByaWdodCAtIGxlZnQ7CgkJfQoJfQoKCgkvLyBCdWlsZCBhIGNvbmNhdGVuYXRlZCBIVE1MIHN0cmluZyBmb3IgYW4gYXJyYXkgb2Ygc2VnbWVudHMKCWZ1bmN0aW9uIGJ1aWxkSFRNTChzZWdtZW50cykgewoJCXZhciBodG1sID0gJyc7CgkJZm9yICh2YXIgaT0wOyBpPHNlZ21lbnRzLmxlbmd0aDsgaSsrKSB7CgkJCWh0bWwgKz0gYnVpbGRIVE1MRm9yU2VnbWVudChzZWdtZW50c1tpXSk7CgkJfQoJCXJldHVybiBodG1sOwoJfQoKCgkvLyBCdWlsZCBhbiBIVE1MIHN0cmluZyBmb3IgYSBzaW5nbGUgc2VnbWVudC4KCS8vIFJlbGllcyBvbiB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CgkvLyAtIGBzZWdtZW50LmV2ZW50YCAoZnJvbSBgYnVpbGRTZWdtZW50c0ZvckV2ZW50YCkKCS8vIC0gYHNlZ21lbnQubGVmdGAgKGZyb20gYGNhbGN1bGF0ZUhvcml6b250YWxzYCkKCWZ1bmN0aW9uIGJ1aWxkSFRNTEZvclNlZ21lbnQoc2VnbWVudCkgewoJCXZhciBodG1sID0gJyc7CgkJdmFyIGlzUlRMID0gb3B0KCdpc1JUTCcpOwoJCXZhciBldmVudCA9IHNlZ21lbnQuZXZlbnQ7CgkJdmFyIHVybCA9IGV2ZW50LnVybDsKCgkJLy8gZ2VuZXJhdGUgdGhlIGxpc3Qgb2YgQ1NTIGNsYXNzTmFtZXMKCQl2YXIgY2xhc3NOYW1lcyA9IFsgJ2ZjLWV2ZW50JywgJ2ZjLWV2ZW50LWhvcmknIF07CgkJaWYgKGlzRXZlbnREcmFnZ2FibGUoZXZlbnQpKSB7CgkJCWNsYXNzTmFtZXMucHVzaCgnZmMtZXZlbnQtZHJhZ2dhYmxlJyk7CgkJfQoJCWlmIChzZWdtZW50LmlzU3RhcnQpIHsKCQkJY2xhc3NOYW1lcy5wdXNoKCdmYy1ldmVudC1zdGFydCcpOwoJCX0KCQlpZiAoc2VnbWVudC5pc0VuZCkgewoJCQljbGFzc05hbWVzLnB1c2goJ2ZjLWV2ZW50LWVuZCcpOwoJCX0KCQkvLyB1c2UgdGhlIGV2ZW50J3MgY29uZmlndXJlZCBjbGFzc05hbWVzCgkJLy8gZ3VhcmFudGVlZCB0byBiZSBhbiBhcnJheSB2aWEgYG5vcm1hbGl6ZUV2ZW50YAoJCWNsYXNzTmFtZXMgPSBjbGFzc05hbWVzLmNvbmNhdChldmVudC5jbGFzc05hbWUpOwoJCWlmIChldmVudC5zb3VyY2UpIHsKCQkJLy8gdXNlIHRoZSBldmVudCdzIHNvdXJjZSdzIGNsYXNzTmFtZXMsIGlmIHNwZWNpZmllZAoJCQljbGFzc05hbWVzID0gY2xhc3NOYW1lcy5jb25jYXQoZXZlbnQuc291cmNlLmNsYXNzTmFtZSB8fCBbXSk7CgkJfQoKCQkvLyBnZW5lcmF0ZSBhIHNlbWljb2xvbiBkZWxpbWl0ZWQgQ1NTIHN0cmluZyBmb3IgYW55IG9mIHRoZSAic2tpbiIgcHJvcGVydGllcwoJCS8vIG9mIHRoZSBldmVudCBvYmplY3QgKGBiYWNrZ3JvdW5kQ29sb3JgLCBgYm9yZGVyQ29sb3JgIGFuZCBzdWNoKQoJCXZhciBza2luQ3NzID0gZ2V0U2tpbkNzcyhldmVudCwgb3B0KTsKCgkJaWYgKHVybCkgewoJCQlodG1sICs9ICI8YSBocmVmPSciICsgaHRtbEVzY2FwZSh1cmwpICsgIiciOwoJCX1lbHNlewoJCQlodG1sICs9ICI8ZGl2IjsKCQl9CgkJaHRtbCArPQoJCQkiIGNsYXNzPSciICsgY2xhc3NOYW1lcy5qb2luKCcgJykgKyAiJyIgKwoJCQkiIHN0eWxlPSIgKwoJCQkJIiciICsKCQkJCSJwb3NpdGlvbjphYnNvbHV0ZTsiICsKCQkJCSJsZWZ0OiIgKyBzZWdtZW50LmxlZnQgKyAicHg7IiArCgkJCQlza2luQ3NzICsKCQkJCSInIiArCgkJCSI+IiArCgkJCSI8ZGl2IGNsYXNzPSdmYy1ldmVudC1pbm5lcic+IjsKCQlpZiAoIWV2ZW50LmFsbERheSAmJiBzZWdtZW50LmlzU3RhcnQpIHsKCQkJaHRtbCArPQoJCQkJIjxzcGFuIGNsYXNzPSdmYy1ldmVudC10aW1lJz4iICsKCQkJCWh0bWxFc2NhcGUoCgkJCQkJZm9ybWF0RGF0ZXMoZXZlbnQuc3RhcnQsIGV2ZW50LmVuZCwgb3B0KCd0aW1lRm9ybWF0JykpCgkJCQkpICsKCQkJCSI8L3NwYW4+IjsKCQl9CgkJaHRtbCArPQoJCQkiPHNwYW4gY2xhc3M9J2ZjLWV2ZW50LXRpdGxlJz4iICsKCQkJaHRtbEVzY2FwZShldmVudC50aXRsZSB8fCAnJykgKwoJCQkiPC9zcGFuPiIgKwoJCQkiPC9kaXY+IjsKCQlpZiAoc2VnbWVudC5pc0VuZCAmJiBpc0V2ZW50UmVzaXphYmxlKGV2ZW50KSkgewoJCQlodG1sICs9CgkJCQkiPGRpdiBjbGFzcz0ndWktcmVzaXphYmxlLWhhbmRsZSB1aS1yZXNpemFibGUtIiArIChpc1JUTCA/ICd3JyA6ICdlJykgKyAiJz4iICsKCQkJCSImbmJzcDsmbmJzcDsmbmJzcDsiICsgLy8gbWFrZXMgaGl0IGFyZWEgYSBsb3QgYmV0dGVyIGZvciBJRTYvNwoJCQkJIjwvZGl2PiI7CgkJfQoJCWh0bWwgKz0gIjwvIiArICh1cmwgPyAiYSIgOiAiZGl2IikgKyAiPiI7CgoJCS8vIFRPRE86CgkJLy8gV2hlbiB0aGVzZSBlbGVtZW50cyBhcmUgaW5pdGlhbGx5IHJlbmRlcmVkLCB0aGV5IHdpbGwgYmUgYnJpZWZseSB2aXNpYmlsZSBvbiB0aGUgc2NyZWVuLAoJCS8vIGV2ZW4gdGhvdWdoIHRoZWlyIHdpZHRocy9oZWlnaHRzIGFyZSBub3Qgc2V0LgoJCS8vIFNPTFVUSU9OOiBpbml0aWFsbHkgc2V0IHRoZW0gYXMgdmlzaWJpbGl0eTpoaWRkZW4gPwoKCQlyZXR1cm4gaHRtbDsKCX0KCgoJLy8gQXNzb2NpYXRlIGVhY2ggc2VnbWVudCAoYW4gb2JqZWN0KSB3aXRoIGFuIGVsZW1lbnQgKGEgalF1ZXJ5IG9iamVjdCksCgkvLyBieSBzZXR0aW5nIGVhY2ggYHNlZ21lbnQuZWxlbWVudGAuCgkvLyBSdW4gZWFjaCBlbGVtZW50IHRocm91Z2ggdGhlIGBldmVudFJlbmRlcmAgZmlsdGVyLCB3aGljaCBhbGxvd3MgZGV2ZWxvcGVycyB0bwoJLy8gbW9kaWZ5IGFuIGV4aXN0aW5nIGVsZW1lbnQsIHN1cHBseSBhIG5ldyBvbmUsIG9yIGNhbmNlbCByZW5kZXJpbmcuCglmdW5jdGlvbiByZXNvbHZlRWxlbWVudHMoc2VnbWVudHMsIGVsZW1lbnRzKSB7CgkJZm9yICh2YXIgaT0wOyBpPHNlZ21lbnRzLmxlbmd0aDsgaSsrKSB7CgkJCXZhciBzZWdtZW50ID0gc2VnbWVudHNbaV07CgkJCXZhciBldmVudCA9IHNlZ21lbnQuZXZlbnQ7CgkJCXZhciBlbGVtZW50ID0gZWxlbWVudHMuZXEoaSk7CgoJCQkvLyBjYWxsIHRoZSB0cmlnZ2VyIHdpdGggdGhlIG9yaWdpbmFsIGVsZW1lbnQKCQkJdmFyIHRyaWdnZXJSZXMgPSB0cmlnZ2VyKCdldmVudFJlbmRlcicsIGV2ZW50LCBldmVudCwgZWxlbWVudCk7CgoJCQlpZiAodHJpZ2dlclJlcyA9PT0gZmFsc2UpIHsKCQkJCS8vIGlmIGBmYWxzZWAsIHJlbW92ZSB0aGUgZXZlbnQgZnJvbSB0aGUgRE9NIGFuZCBkb24ndCBhc3NpZ24gaXQgdG8gYHNlZ21lbnQuZXZlbnRgCgkJCQllbGVtZW50LnJlbW92ZSgpOwoJCQl9CgkJCWVsc2UgewoJCQkJaWYgKHRyaWdnZXJSZXMgJiYgdHJpZ2dlclJlcyAhPT0gdHJ1ZSkgewoJCQkJCS8vIHRoZSB0cmlnZ2VyIHJldHVybmVkIGEgbmV3IGVsZW1lbnQsIGJ1dCBub3QgYHRydWVgICh3aGljaCBtZWFucyBrZWVwIHRoZSBleGlzdGluZyBlbGVtZW50KQoKCQkJCQkvLyByZS1hc3NpZ24gdGhlIGltcG9ydGFudCBDU1MgZGltZW5zaW9uIHByb3BlcnRpZXMgdGhhdCB3ZXJlIGFscmVhZHkgYXNzaWduZWQgaW4gYGJ1aWxkSFRNTEZvclNlZ21lbnRgCgkJCQkJdHJpZ2dlclJlcyA9ICQodHJpZ2dlclJlcykKCQkJCQkJLmNzcyh7CgkJCQkJCQlwb3NpdGlvbjogJ2Fic29sdXRlJywKCQkJCQkJCWxlZnQ6IHNlZ21lbnQubGVmdAoJCQkJCQl9KTsKCgkJCQkJZWxlbWVudC5yZXBsYWNlV2l0aCh0cmlnZ2VyUmVzKTsKCQkJCQllbGVtZW50ID0gdHJpZ2dlclJlczsKCQkJCX0KCgkJCQlzZWdtZW50LmVsZW1lbnQgPSBlbGVtZW50OwoJCQl9CgkJfQoJfQoKCgoJLyogVG9wLWNvb3JkaW5hdGUgTWV0aG9kcwoJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoKCS8vIFNldHMgdGhlICJ0b3AiIENTUyBwcm9wZXJ0eSBmb3IgZWFjaCBlbGVtZW50LgoJLy8gSWYgYGRvUm93SGVpZ2h0c2AgaXMgYHRydWVgLCBhbHNvIHNldHMgZWFjaCByb3cncyBmaXJzdCBjZWxsIHRvIGFuIGV4cGxpY2l0IGhlaWdodCwKCS8vIHNvIHRoYXQgaWYgZWxlbWVudHMgdmVydGljYWxseSBvdmVyZmxvdywgdGhlIGNlbGwgZXhwYW5kcyB2ZXJ0aWNhbGx5IHRvIGNvbXBlbnNhdGUuCglmdW5jdGlvbiBzZXRWZXJ0aWNhbHMoc2VnbWVudHMsIGRvUm93SGVpZ2h0cykgewoJCXZhciByb3dDb250ZW50SGVpZ2h0cyA9IGNhbGN1bGF0ZVZlcnRpY2FscyhzZWdtZW50cyk7IC8vIGFsc28gc2V0cyBzZWdtZW50LnRvcAoJCXZhciByb3dDb250ZW50RWxlbWVudHMgPSBnZXRSb3dDb250ZW50RWxlbWVudHMoKTsgLy8gcmV0dXJucyAxIGlubmVyIGRpdiBwZXIgcm93CgkJdmFyIHJvd0NvbnRlbnRUb3BzID0gW107CgoJCS8vIFNldCBlYWNoIHJvdydzIGhlaWdodCBieSBzZXR0aW5nIGhlaWdodCBvZiBmaXJzdCBpbm5lciBkaXYKCQlpZiAoZG9Sb3dIZWlnaHRzKSB7CgkJCWZvciAodmFyIGk9MDsgaTxyb3dDb250ZW50RWxlbWVudHMubGVuZ3RoOyBpKyspIHsKCQkJCXJvd0NvbnRlbnRFbGVtZW50c1tpXS5oZWlnaHQocm93Q29udGVudEhlaWdodHNbaV0pOwoJCQl9CgkJfQoKCQkvLyBHZXQgZWFjaCByb3cncyB0b3AsIHJlbGF0aXZlIHRvIHRoZSB2aWV3cydzIG9yaWdpbi4KCQkvLyBJbXBvcnRhbnQgdG8gZG8gdGhpcyBhZnRlciBzZXR0aW5nIGVhY2ggcm93J3MgaGVpZ2h0LgoJCWZvciAodmFyIGk9MDsgaTxyb3dDb250ZW50RWxlbWVudHMubGVuZ3RoOyBpKyspIHsKCQkJcm93Q29udGVudFRvcHMucHVzaCgKCQkJCXJvd0NvbnRlbnRFbGVtZW50c1tpXS5wb3NpdGlvbigpLnRvcAoJCQkpOwoJCX0KCgkJLy8gU2V0IGVhY2ggc2VnbWVudCBlbGVtZW50J3MgQ1NTICJ0b3AiIHByb3BlcnR5LgoJCS8vIEVhY2ggc2VnbWVudCBvYmplY3QgaGFzIGEgInRvcCIgcHJvcGVydHksIHdoaWNoIGlzIHJlbGF0aXZlIHRvIHRoZSByb3cncyB0b3AsIGJ1dC4uLgoJCXNlZ21lbnRFbGVtZW50RWFjaChzZWdtZW50cywgZnVuY3Rpb24oc2VnbWVudCwgZWxlbWVudCkgewoJCQllbGVtZW50LmNzcygKCQkJCSd0b3AnLAoJCQkJcm93Q29udGVudFRvcHNbc2VnbWVudC5yb3ddICsgc2VnbWVudC50b3AgLy8gLi4ubm93LCByZWxhdGl2ZSB0byB2aWV3cydzIG9yaWdpbgoJCQkpOwoJCX0pOwoJfQoKCgkvLyBDYWxjdWxhdGUgdGhlICJ0b3AiIGNvb3JkaW5hdGUgZm9yIGVhY2ggc2VnbWVudCwgcmVsYXRpdmUgdG8gdGhlICJ0b3AiIG9mIHRoZSByb3cuCgkvLyBBbHNvLCByZXR1cm4gYW4gYXJyYXkgdGhhdCBjb250YWlucyB0aGUgImNvbnRlbnQiIGhlaWdodCBmb3IgZWFjaCByb3cKCS8vICh0aGUgaGVpZ2h0IGRpc3BsYWNlZCBieSB0aGUgdmVydGljYWxseSBzdGFja2VkIGV2ZW50cyBpbiB0aGUgcm93KS4KCS8vIFJlcXVpcmVzIHNlZ21lbnRzIHRvIGhhdmUgdGhlaXIgYG91dGVySGVpZ2h0YCBwcm9wZXJ0eSBhbHJlYWR5IHNldC4KCWZ1bmN0aW9uIGNhbGN1bGF0ZVZlcnRpY2FscyhzZWdtZW50cykgewoJCXZhciByb3dDbnQgPSBnZXRSb3dDbnQoKTsKCQl2YXIgY29sQ250ID0gZ2V0Q29sQ250KCk7CgkJdmFyIHJvd0NvbnRlbnRIZWlnaHRzID0gW107IC8vIGNvbnRlbnQgaGVpZ2h0IGZvciBlYWNoIHJvdwoJCXZhciBzZWdtZW50Um93cyA9IGJ1aWxkU2VnbWVudFJvd3Moc2VnbWVudHMpOyAvLyBhbiBhcnJheSBvZiBzZWdtZW50IGFycmF5cywgb25lIGZvciBlYWNoIHJvdwoKCQlmb3IgKHZhciByb3dJPTA7IHJvd0k8cm93Q250OyByb3dJKyspIHsKCQkJdmFyIHNlZ21lbnRSb3cgPSBzZWdtZW50Um93c1tyb3dJXTsKCgkJCS8vIGFuIGFycmF5IG9mIHJ1bm5pbmcgdG90YWwgaGVpZ2h0cyBmb3IgZWFjaCBjb2x1bW4uCgkJCS8vIGluaXRpYWxpemUgd2l0aCBhbGwgemVyb3MuCgkJCXZhciBjb2xIZWlnaHRzID0gW107CgkJCWZvciAodmFyIGNvbEk9MDsgY29sSTxjb2xDbnQ7IGNvbEkrKykgewoJCQkJY29sSGVpZ2h0cy5wdXNoKDApOwoJCQl9CgoJCQkvLyBsb29wIHRocm91Z2ggZXZlcnkgc2VnbWVudAoJCQlmb3IgKHZhciBzZWdtZW50ST0wOyBzZWdtZW50STxzZWdtZW50Um93Lmxlbmd0aDsgc2VnbWVudEkrKykgewoJCQkJdmFyIHNlZ21lbnQgPSBzZWdtZW50Um93W3NlZ21lbnRJXTsKCgkJCQkvLyBmaW5kIHRoZSBzZWdtZW50J3MgdG9wIGNvb3JkaW5hdGUgYnkgbG9va2luZyBhdCB0aGUgbWF4IGhlaWdodAoJCQkJLy8gb2YgYWxsIHRoZSBjb2x1bW5zIHRoZSBzZWdtZW50IHdpbGwgYmUgaW4uCgkJCQlzZWdtZW50LnRvcCA9IGFycmF5TWF4KAoJCQkJCWNvbEhlaWdodHMuc2xpY2UoCgkJCQkJCXNlZ21lbnQubGVmdENvbCwKCQkJCQkJc2VnbWVudC5yaWdodENvbCArIDEgLy8gbWFrZSBleGNsdXNpdmUgZm9yIHNsaWNlCgkJCQkJKQoJCQkJKTsKCgkJCQkvLyBhZGp1c3QgdGhlIGNvbHVtbnMgdG8gYWNjb3VudCBmb3IgdGhlIHNlZ21lbnQncyBoZWlnaHQKCQkJCWZvciAodmFyIGNvbEk9c2VnbWVudC5sZWZ0Q29sOyBjb2xJPD1zZWdtZW50LnJpZ2h0Q29sOyBjb2xJKyspIHsKCQkJCQljb2xIZWlnaHRzW2NvbEldID0gc2VnbWVudC50b3AgKyBzZWdtZW50Lm91dGVySGVpZ2h0OwoJCQkJfQoJCQl9CgoJCQkvLyB0aGUgdGFsbGVzdCBjb2x1bW4gaW4gdGhlIHJvdyBzaG91bGQgYmUgdGhlICJjb250ZW50IGhlaWdodCIKCQkJcm93Q29udGVudEhlaWdodHMucHVzaChhcnJheU1heChjb2xIZWlnaHRzKSk7CgkJfQoKCQlyZXR1cm4gcm93Q29udGVudEhlaWdodHM7Cgl9CgoKCS8vIEJ1aWxkIGFuIGFycmF5IG9mIHNlZ21lbnQgYXJyYXlzLCBlYWNoIHJlcHJlc2VudGluZyB0aGUgc2VnbWVudHMgdGhhdCB3aWxsCgkvLyBiZSBpbiBhIHJvdyBvZiB0aGUgZ3JpZCwgc29ydGVkIGJ5IHdoaWNoIGV2ZW50IHNob3VsZCBiZSBjbG9zZXN0IHRvIHRoZSB0b3AuCglmdW5jdGlvbiBidWlsZFNlZ21lbnRSb3dzKHNlZ21lbnRzKSB7CgkJdmFyIHJvd0NudCA9IGdldFJvd0NudCgpOwoJCXZhciBzZWdtZW50Um93cyA9IFtdOwoJCXZhciBzZWdtZW50STsKCQl2YXIgc2VnbWVudDsKCQl2YXIgcm93STsKCgkJLy8gZ3JvdXAgc2VnbWVudHMgYnkgcm93CgkJZm9yIChzZWdtZW50ST0wOyBzZWdtZW50STxzZWdtZW50cy5sZW5ndGg7IHNlZ21lbnRJKyspIHsKCQkJc2VnbWVudCA9IHNlZ21lbnRzW3NlZ21lbnRJXTsKCQkJcm93SSA9IHNlZ21lbnQucm93OwoJCQlpZiAoc2VnbWVudC5lbGVtZW50KSB7IC8vIHdhcyByZW5kZXJlZD8KCQkJCWlmIChzZWdtZW50Um93c1tyb3dJXSkgewoJCQkJCS8vIGFscmVhZHkgb3RoZXIgc2VnbWVudHMuIGFwcGVuZCB0byBhcnJheQoJCQkJCXNlZ21lbnRSb3dzW3Jvd0ldLnB1c2goc2VnbWVudCk7CgkJCQl9CgkJCQllbHNlIHsKCQkJCQkvLyBmaXJzdCBzZWdtZW50IGluIHJvdy4gY3JlYXRlIG5ldyBhcnJheQoJCQkJCXNlZ21lbnRSb3dzW3Jvd0ldID0gWyBzZWdtZW50IF07CgkJCQl9CgkJCX0KCQl9CgoJCS8vIHNvcnQgZWFjaCByb3cKCQlmb3IgKHJvd0k9MDsgcm93STxyb3dDbnQ7IHJvd0krKykgewoJCQlzZWdtZW50Um93c1tyb3dJXSA9IHNvcnRTZWdtZW50Um93KAoJCQkJc2VnbWVudFJvd3Nbcm93SV0gfHwgW10gLy8gZ3VhcmFudGVlIGFuIGFycmF5LCBldmVuIGlmIG5vIHNlZ21lbnRzCgkJCSk7CgkJfQoKCQlyZXR1cm4gc2VnbWVudFJvd3M7Cgl9CgoKCS8vIFNvcnQgYW4gYXJyYXkgb2Ygc2VnbWVudHMgYWNjb3JkaW5nIHRvIHdoaWNoIHNlZ21lbnQgc2hvdWxkIGFwcGVhciBjbG9zZXN0IHRvIHRoZSB0b3AKCWZ1bmN0aW9uIHNvcnRTZWdtZW50Um93KHNlZ21lbnRzKSB7CgkJdmFyIHNvcnRlZFNlZ21lbnRzID0gW107CgoJCS8vIGJ1aWxkIHRoZSBzdWJyb3cgYXJyYXkKCQl2YXIgc3Vicm93cyA9IGJ1aWxkU2VnbWVudFN1YnJvd3Moc2VnbWVudHMpOwoKCQkvLyBmbGF0dGVuIGl0CgkJZm9yICh2YXIgaT0wOyBpPHN1YnJvd3MubGVuZ3RoOyBpKyspIHsKCQkJc29ydGVkU2VnbWVudHMucHVzaC5hcHBseShzb3J0ZWRTZWdtZW50cywgc3Vicm93c1tpXSk7IC8vIGFwcGVuZCBhbiBhcnJheSB0byBhbiBhcnJheQoJCX0KCgkJcmV0dXJuIHNvcnRlZFNlZ21lbnRzOwoJfQoKCgkvLyBUYWtlIGFuIGFycmF5IG9mIHNlZ21lbnRzLCB3aGljaCBhcmUgYWxsIGFzc3VtZWQgdG8gYmUgaW4gdGhlIHNhbWUgcm93LAoJLy8gYW5kIHNvcnQgaW50byBzdWJyb3dzLgoJZnVuY3Rpb24gYnVpbGRTZWdtZW50U3Vicm93cyhzZWdtZW50cykgewoKCQkvLyBHaXZlIHByZWZlcmVuY2UgdG8gZWxlbWVudHMgd2l0aCBjZXJ0YWluIGNyaXRlcmlhLCBzbyB0aGV5IGhhdmUKCQkvLyBhIGNoYW5jZSB0byBiZSBjbG9zZXIgdG8gdGhlIHRvcC4KCQlzZWdtZW50cy5zb3J0KGNvbXBhcmVEYXlTZWdtZW50cyk7CgoJCXZhciBzdWJyb3dzID0gW107CgkJZm9yICh2YXIgaT0wOyBpPHNlZ21lbnRzLmxlbmd0aDsgaSsrKSB7CgkJCXZhciBzZWdtZW50ID0gc2VnbWVudHNbaV07CgoJCQkvLyBsb29wIHRocm91Z2ggc3Vicm93cywgc3RhcnRpbmcgd2l0aCB0aGUgdG9wbW9zdCwgdW50aWwgdGhlIHNlZ21lbnQKCQkJLy8gZG9lc24ndCBjb2xsaWRlIHdpdGggb3RoZXIgc2VnbWVudHMuCgkJCWZvciAodmFyIGo9MDsgajxzdWJyb3dzLmxlbmd0aDsgaisrKSB7CgkJCQlpZiAoIWlzRGF5U2VnbWVudENvbGxpc2lvbihzZWdtZW50LCBzdWJyb3dzW2pdKSkgewoJCQkJCWJyZWFrOwoJCQkJfQoJCQl9CgkJCS8vIGBqYCBub3cgaG9sZHMgdGhlIGRlc2lyZWQgc3Vicm93IGluZGV4CgkJCWlmIChzdWJyb3dzW2pdKSB7CgkJCQlzdWJyb3dzW2pdLnB1c2goc2VnbWVudCk7CgkJCX0KCQkJZWxzZSB7CgkJCQlzdWJyb3dzW2pdID0gWyBzZWdtZW50IF07CgkJCX0KCQl9CgoJCXJldHVybiBzdWJyb3dzOwoJfQoKCgkvLyBSZXR1cm4gYW4gYXJyYXkgb2YgalF1ZXJ5IG9iamVjdHMgZm9yIHRoZSBwbGFjZWhvbGRlciBjb250ZW50IGNvbnRhaW5lcnMgb2YgZWFjaCByb3cuCgkvLyBUaGUgY29udGVudCBjb250YWluZXJzIGRvbid0IGFjdHVhbGx5IGNvbnRhaW4gYW55dGhpbmcsIGJ1dCB0aGVpciBkaW1lbnNpb25zIHNob3VsZCBtYXRjaAoJLy8gdGhlIGV2ZW50cyB0aGF0IGFyZSBvdmVybGFpZCBvbiB0b3AuCglmdW5jdGlvbiBnZXRSb3dDb250ZW50RWxlbWVudHMoKSB7CgkJdmFyIGk7CgkJdmFyIHJvd0NudCA9IGdldFJvd0NudCgpOwoJCXZhciByb3dEaXZzID0gW107CgkJZm9yIChpPTA7IGk8cm93Q250OyBpKyspIHsKCQkJcm93RGl2c1tpXSA9IGFsbERheVJvdyhpKQoJCQkJLmZpbmQoJ2Rpdi5mYy1kYXktY29udGVudCA+IGRpdicpOwoJCX0KCQlyZXR1cm4gcm93RGl2czsKCX0KCgoKCS8qIE1vdXNlIEhhbmRsZXJzCgktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoJLy8gVE9ETzogYmV0dGVyIGRvY3VtZW50YXRpb24hCgoKCWZ1bmN0aW9uIGF0dGFjaEhhbmRsZXJzKHNlZ21lbnRzLCBtb2RpZmllZEV2ZW50SWQpIHsKCQl2YXIgc2VnbWVudENvbnRhaW5lciA9IGdldERheVNlZ21lbnRDb250YWluZXIoKTsKCgkJc2VnbWVudEVsZW1lbnRFYWNoKHNlZ21lbnRzLCBmdW5jdGlvbihzZWdtZW50LCBlbGVtZW50LCBpKSB7CgkJCXZhciBldmVudCA9IHNlZ21lbnQuZXZlbnQ7CgkJCWlmIChldmVudC5faWQgPT09IG1vZGlmaWVkRXZlbnRJZCkgewoJCQkJYmluZERheVNlZyhldmVudCwgZWxlbWVudCwgc2VnbWVudCk7CgkJCX1lbHNlewoJCQkJZWxlbWVudFswXS5fZmNpID0gaTsgLy8gZm9yIGxhenlTZWdCaW5kCgkJCX0KCQl9KTsKCgkJbGF6eVNlZ0JpbmQoc2VnbWVudENvbnRhaW5lciwgc2VnbWVudHMsIGJpbmREYXlTZWcpOwoJfQoKCglmdW5jdGlvbiBiaW5kRGF5U2VnKGV2ZW50LCBldmVudEVsZW1lbnQsIHNlZ21lbnQpIHsKCgkJaWYgKGlzRXZlbnREcmFnZ2FibGUoZXZlbnQpKSB7CgkJCXQuZHJhZ2dhYmxlRGF5RXZlbnQoZXZlbnQsIGV2ZW50RWxlbWVudCwgc2VnbWVudCk7IC8vIHVzZSBgdGAgc28gc3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUKCQl9CgoJCWlmICgKCQkJc2VnbWVudC5pc0VuZCAmJiAvLyBvbmx5IGFsbG93IHJlc2l6aW5nIG9uIHRoZSBmaW5hbCBzZWdtZW50IGZvciBhbiBldmVudAoJCQlpc0V2ZW50UmVzaXphYmxlKGV2ZW50KQoJCSkgewoJCQl0LnJlc2l6YWJsZURheUV2ZW50KGV2ZW50LCBldmVudEVsZW1lbnQsIHNlZ21lbnQpOyAvLyB1c2UgYHRgIHNvIHN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlCgkJfQoKCQkvLyBhdHRhY2ggYWxsIG90aGVyIGhhbmRsZXJzLgoJCS8vIG5lZWRzIHRvIGJlIGFmdGVyLCBiZWNhdXNlIHJlc2l6YWJsZURheUV2ZW50IG1pZ2h0IHN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiBvbiBjbGljawoJCWV2ZW50RWxlbWVudEhhbmRsZXJzKGV2ZW50LCBldmVudEVsZW1lbnQpOwoJfQoKCglmdW5jdGlvbiBkcmFnZ2FibGVEYXlFdmVudChldmVudCwgZXZlbnRFbGVtZW50KSB7CgkJdmFyIGhvdmVyTGlzdGVuZXIgPSBnZXRIb3Zlckxpc3RlbmVyKCk7CgkJdmFyIGRheURlbHRhOwoJCWV2ZW50RWxlbWVudC5kcmFnZ2FibGUoewoJCQlkZWxheTogNTAsCgkJCW9wYWNpdHk6IG9wdCgnZHJhZ09wYWNpdHknKSwKCQkJcmV2ZXJ0RHVyYXRpb246IG9wdCgnZHJhZ1JldmVydER1cmF0aW9uJyksCgkJCXN0YXJ0OiBmdW5jdGlvbihldiwgdWkpIHsKCQkJCXRyaWdnZXIoJ2V2ZW50RHJhZ1N0YXJ0JywgZXZlbnRFbGVtZW50LCBldmVudCwgZXYsIHVpKTsKCQkJCWhpZGVFdmVudHMoZXZlbnQsIGV2ZW50RWxlbWVudCk7CgkJCQlob3Zlckxpc3RlbmVyLnN0YXJ0KGZ1bmN0aW9uKGNlbGwsIG9yaWdDZWxsLCByb3dEZWx0YSwgY29sRGVsdGEpIHsKCQkJCQlldmVudEVsZW1lbnQuZHJhZ2dhYmxlKCdvcHRpb24nLCAncmV2ZXJ0JywgIWNlbGwgfHwgIXJvd0RlbHRhICYmICFjb2xEZWx0YSk7CgkJCQkJY2xlYXJPdmVybGF5cygpOwoJCQkJCWlmIChjZWxsKSB7CgkJCQkJCXZhciBvcmlnRGF0ZSA9IGNlbGxUb0RhdGUob3JpZ0NlbGwpOwoJCQkJCQl2YXIgZGF0ZSA9IGNlbGxUb0RhdGUoY2VsbCk7CgkJCQkJCWRheURlbHRhID0gZGF5RGlmZihkYXRlLCBvcmlnRGF0ZSk7CgkJCQkJCXJlbmRlckRheU92ZXJsYXkoCgkJCQkJCQlhZGREYXlzKGNsb25lRGF0ZShldmVudC5zdGFydCksIGRheURlbHRhKSwKCQkJCQkJCWFkZERheXMoZXhjbEVuZERheShldmVudCksIGRheURlbHRhKQoJCQkJCQkpOwoJCQkJCX1lbHNlewoJCQkJCQlkYXlEZWx0YSA9IDA7CgkJCQkJfQoJCQkJfSwgZXYsICdkcmFnJyk7CgkJCX0sCgkJCXN0b3A6IGZ1bmN0aW9uKGV2LCB1aSkgewoJCQkJaG92ZXJMaXN0ZW5lci5zdG9wKCk7CgkJCQljbGVhck92ZXJsYXlzKCk7CgkJCQl0cmlnZ2VyKCdldmVudERyYWdTdG9wJywgZXZlbnRFbGVtZW50LCBldmVudCwgZXYsIHVpKTsKCQkJCWlmIChkYXlEZWx0YSkgewoJCQkJCWV2ZW50RHJvcCh0aGlzLCBldmVudCwgZGF5RGVsdGEsIDAsIGV2ZW50LmFsbERheSwgZXYsIHVpKTsKCQkJCX1lbHNlewoJCQkJCWV2ZW50RWxlbWVudC5jc3MoJ2ZpbHRlcicsICcnKTsgLy8gY2xlYXIgSUUgb3BhY2l0eSBzaWRlLWVmZmVjdHMKCQkJCQlzaG93RXZlbnRzKGV2ZW50LCBldmVudEVsZW1lbnQpOwoJCQkJfQoJCQl9CgkJfSk7Cgl9CgoKCWZ1bmN0aW9uIHJlc2l6YWJsZURheUV2ZW50KGV2ZW50LCBlbGVtZW50LCBzZWdtZW50KSB7CgkJdmFyIGlzUlRMID0gb3B0KCdpc1JUTCcpOwoJCXZhciBkaXJlY3Rpb24gPSBpc1JUTCA/ICd3JyA6ICdlJzsKCQl2YXIgaGFuZGxlID0gZWxlbWVudC5maW5kKCcudWktcmVzaXphYmxlLScgKyBkaXJlY3Rpb24pOyAvLyBUT0RPOiBzdG9wIHVzaW5nIHRoaXMgY2xhc3MgYmVjYXVzZSB3ZSBhcmVuJ3QgdXNpbmcganF1aSBmb3IgdGhpcwoJCXZhciBpc1Jlc2l6aW5nID0gZmFsc2U7CgoJCS8vIFRPRE86IGxvb2sgaW50byB1c2luZyBqcXVlcnktdWkgbW91c2Ugd2lkZ2V0IGZvciB0aGlzIHN0dWZmCgkJZGlzYWJsZVRleHRTZWxlY3Rpb24oZWxlbWVudCk7IC8vIHByZXZlbnQgbmF0aXZlIDxhPiBzZWxlY3Rpb24gZm9yIElFCgkJZWxlbWVudAoJCQkubW91c2Vkb3duKGZ1bmN0aW9uKGV2KSB7IC8vIHByZXZlbnQgbmF0aXZlIDxhPiBzZWxlY3Rpb24gZm9yIG90aGVycwoJCQkJZXYucHJldmVudERlZmF1bHQoKTsKCQkJfSkKCQkJLmNsaWNrKGZ1bmN0aW9uKGV2KSB7CgkJCQlpZiAoaXNSZXNpemluZykgewoJCQkJCWV2LnByZXZlbnREZWZhdWx0KCk7IC8vIHByZXZlbnQgbGluayBmcm9tIGJlaW5nIHZpc2l0ZWQgKG9ubHkgbWV0aG9kIHRoYXQgd29ya2VkIGluIElFNikKCQkJCQlldi5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTsgLy8gcHJldmVudCBmdWxsY2FsZW5kYXIgZXZlbnRDbGljayBoYW5kbGVyIGZyb20gYmVpbmcgY2FsbGVkCgkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIChldmVudEVsZW1lbnRIYW5kbGVycyBuZWVkcyB0byBiZSBib3VuZCBhZnRlciByZXNpemFibGVEYXlFdmVudCkKCQkJCX0KCQkJfSk7CgoJCWhhbmRsZS5tb3VzZWRvd24oZnVuY3Rpb24oZXYpIHsKCQkJaWYgKGV2LndoaWNoICE9IDEpIHsKCQkJCXJldHVybjsgLy8gbmVlZHMgdG8gYmUgbGVmdCBtb3VzZSBidXR0b24KCQkJfQoJCQlpc1Jlc2l6aW5nID0gdHJ1ZTsKCQkJdmFyIGhvdmVyTGlzdGVuZXIgPSBnZXRIb3Zlckxpc3RlbmVyKCk7CgkJCXZhciByb3dDbnQgPSBnZXRSb3dDbnQoKTsKCQkJdmFyIGNvbENudCA9IGdldENvbENudCgpOwoJCQl2YXIgZWxlbWVudFRvcCA9IGVsZW1lbnQuY3NzKCd0b3AnKTsKCQkJdmFyIGRheURlbHRhOwoJCQl2YXIgaGVscGVyczsKCQkJdmFyIGV2ZW50Q29weSA9ICQuZXh0ZW5kKHt9LCBldmVudCk7CgkJCXZhciBtaW5DZWxsT2Zmc2V0ID0gZGF5T2Zmc2V0VG9DZWxsT2Zmc2V0KCBkYXRlVG9EYXlPZmZzZXQoZXZlbnQuc3RhcnQpICk7CgkJCWNsZWFyU2VsZWN0aW9uKCk7CgkJCSQoJ2JvZHknKQoJCQkJLmNzcygnY3Vyc29yJywgZGlyZWN0aW9uICsgJy1yZXNpemUnKQoJCQkJLm9uZSgnbW91c2V1cCcsIG1vdXNldXApOwoJCQl0cmlnZ2VyKCdldmVudFJlc2l6ZVN0YXJ0JywgdGhpcywgZXZlbnQsIGV2KTsKCQkJaG92ZXJMaXN0ZW5lci5zdGFydChmdW5jdGlvbihjZWxsLCBvcmlnQ2VsbCkgewoJCQkJaWYgKGNlbGwpIHsKCgkJCQkJdmFyIG9yaWdDZWxsT2Zmc2V0ID0gY2VsbFRvQ2VsbE9mZnNldChvcmlnQ2VsbCk7CgkJCQkJdmFyIGNlbGxPZmZzZXQgPSBjZWxsVG9DZWxsT2Zmc2V0KGNlbGwpOwoKCQkJCQkvLyBkb24ndCBsZXQgcmVzaXppbmcgbW92ZSBlYXJsaWVyIHRoYW4gc3RhcnQgZGF0ZSBjZWxsCgkJCQkJY2VsbE9mZnNldCA9IE1hdGgubWF4KGNlbGxPZmZzZXQsIG1pbkNlbGxPZmZzZXQpOwoKCQkJCQlkYXlEZWx0YSA9CgkJCQkJCWNlbGxPZmZzZXRUb0RheU9mZnNldChjZWxsT2Zmc2V0KSAtCgkJCQkJCWNlbGxPZmZzZXRUb0RheU9mZnNldChvcmlnQ2VsbE9mZnNldCk7CgoJCQkJCWlmIChkYXlEZWx0YSkgewoJCQkJCQlldmVudENvcHkuZW5kID0gYWRkRGF5cyhldmVudEVuZChldmVudCksIGRheURlbHRhLCB0cnVlKTsKCQkJCQkJdmFyIG9sZEhlbHBlcnMgPSBoZWxwZXJzOwoKCQkJCQkJaGVscGVycyA9IHJlbmRlclRlbXBEYXlFdmVudChldmVudENvcHksIHNlZ21lbnQucm93LCBlbGVtZW50VG9wKTsKCQkJCQkJaGVscGVycyA9ICQoaGVscGVycyk7IC8vIHR1cm4gYXJyYXkgaW50byBhIGpRdWVyeSBvYmplY3QKCgkJCQkJCWhlbHBlcnMuZmluZCgnKicpLmNzcygnY3Vyc29yJywgZGlyZWN0aW9uICsgJy1yZXNpemUnKTsKCQkJCQkJaWYgKG9sZEhlbHBlcnMpIHsKCQkJCQkJCW9sZEhlbHBlcnMucmVtb3ZlKCk7CgkJCQkJCX0KCgkJCQkJCWhpZGVFdmVudHMoZXZlbnQpOwoJCQkJCX0KCQkJCQllbHNlIHsKCQkJCQkJaWYgKGhlbHBlcnMpIHsKCQkJCQkJCXNob3dFdmVudHMoZXZlbnQpOwoJCQkJCQkJaGVscGVycy5yZW1vdmUoKTsKCQkJCQkJCWhlbHBlcnMgPSBudWxsOwoJCQkJCQl9CgkJCQkJfQoJCQkJCWNsZWFyT3ZlcmxheXMoKTsKCQkJCQlyZW5kZXJEYXlPdmVybGF5KCAvLyBjb29yZGluYXRlIGdyaWQgYWxyZWFkeSByZWJ1aWx0IHdpdGggaG92ZXJMaXN0ZW5lci5zdGFydCgpCgkJCQkJCWV2ZW50LnN0YXJ0LAoJCQkJCQlhZGREYXlzKCBleGNsRW5kRGF5KGV2ZW50KSwgZGF5RGVsdGEgKQoJCQkJCQkvLyBUT0RPOiBpbnN0ZWFkIG9mIGNhbGxpbmcgcmVuZGVyRGF5T3ZlcmxheSgpIHdpdGggZGF0ZXMsCgkJCQkJCS8vIGNhbGwgX3JlbmRlckRheU92ZXJsYXkgKG9yIHdoYXRldmVyKSB3aXRoIGNlbGwgb2Zmc2V0cy4KCQkJCQkpOwoJCQkJfQoJCQl9LCBldik7CgoJCQlmdW5jdGlvbiBtb3VzZXVwKGV2KSB7CgkJCQl0cmlnZ2VyKCdldmVudFJlc2l6ZVN0b3AnLCB0aGlzLCBldmVudCwgZXYpOwoJCQkJJCgnYm9keScpLmNzcygnY3Vyc29yJywgJycpOwoJCQkJaG92ZXJMaXN0ZW5lci5zdG9wKCk7CgkJCQljbGVhck92ZXJsYXlzKCk7CgkJCQlpZiAoZGF5RGVsdGEpIHsKCQkJCQlldmVudFJlc2l6ZSh0aGlzLCBldmVudCwgZGF5RGVsdGEsIDAsIGV2KTsKCQkJCQkvLyBldmVudCByZWRyYXcgd2lsbCBjbGVhciBoZWxwZXJzCgkJCQl9CgkJCQkvLyBvdGhlcndpc2UsIHRoZSBkcmFnIGhhbmRsZXIgYWxyZWFkeSByZXN0b3JlZCB0aGUgb2xkIGV2ZW50cwoKCQkJCXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IC8vIG1ha2UgdGhpcyBoYXBwZW4gYWZ0ZXIgdGhlIGVsZW1lbnQncyBjbGljayBldmVudAoJCQkJCWlzUmVzaXppbmcgPSBmYWxzZTsKCQkJCX0sMCk7CgkJCX0KCQl9KTsKCX0KCgp9CgoKCi8qIEdlbmVyYWxpemVkIFNlZ21lbnQgVXRpbGl0aWVzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKCmZ1bmN0aW9uIGlzRGF5U2VnbWVudENvbGxpc2lvbihzZWdtZW50LCBvdGhlclNlZ21lbnRzKSB7Cglmb3IgKHZhciBpPTA7IGk8b3RoZXJTZWdtZW50cy5sZW5ndGg7IGkrKykgewoJCXZhciBvdGhlclNlZ21lbnQgPSBvdGhlclNlZ21lbnRzW2ldOwoJCWlmICgKCQkJb3RoZXJTZWdtZW50LmxlZnRDb2wgPD0gc2VnbWVudC5yaWdodENvbCAmJgoJCQlvdGhlclNlZ21lbnQucmlnaHRDb2wgPj0gc2VnbWVudC5sZWZ0Q29sCgkJKSB7CgkJCXJldHVybiB0cnVlOwoJCX0KCX0KCXJldHVybiBmYWxzZTsKfQoKCmZ1bmN0aW9uIHNlZ21lbnRFbGVtZW50RWFjaChzZWdtZW50cywgY2FsbGJhY2spIHsgLy8gVE9ETzogdXNlIGluIEFnZW5kYVZpZXc/Cglmb3IgKHZhciBpPTA7IGk8c2VnbWVudHMubGVuZ3RoOyBpKyspIHsKCQl2YXIgc2VnbWVudCA9IHNlZ21lbnRzW2ldOwoJCXZhciBlbGVtZW50ID0gc2VnbWVudC5lbGVtZW50OwoJCWlmIChlbGVtZW50KSB7CgkJCWNhbGxiYWNrKHNlZ21lbnQsIGVsZW1lbnQsIGkpOwoJCX0KCX0KfQoKCi8vIEEgY21wIGZ1bmN0aW9uIGZvciBkZXRlcm1pbmluZyB3aGljaCBzZWdtZW50cyBzaG91bGQgYXBwZWFyIGhpZ2hlciB1cApmdW5jdGlvbiBjb21wYXJlRGF5U2VnbWVudHMoYSwgYikgewoJcmV0dXJuIChiLnJpZ2h0Q29sIC0gYi5sZWZ0Q29sKSAtIChhLnJpZ2h0Q29sIC0gYS5sZWZ0Q29sKSB8fCAvLyBwdXQgd2lkZXIgZXZlbnRzIGZpcnN0CgkJYi5ldmVudC5hbGxEYXkgLSBhLmV2ZW50LmFsbERheSB8fCAvLyBpZiB0aWUsIHB1dCBhbGwtZGF5IGV2ZW50cyBmaXJzdCAoYm9vbGVhbnMgY2FzdCB0byAwLzEpCgkJYS5ldmVudC5zdGFydCAtIGIuZXZlbnQuc3RhcnQgfHwgLy8gaWYgYSB0aWUsIHNvcnQgYnkgZXZlbnQgc3RhcnQgZGF0ZQoJCShhLmV2ZW50LnRpdGxlIHx8ICcnKS5sb2NhbGVDb21wYXJlKGIuZXZlbnQudGl0bGUpIC8vIGlmIGEgdGllLCBzb3J0IGJ5IGV2ZW50IHRpdGxlCn0KCgo7OwoKLy9CVUc6IHVuc2VsZWN0IG5lZWRzIHRvIGJlIHRyaWdnZXJlZCB3aGVuIGV2ZW50cyBhcmUgZHJhZ2dlZCtkcm9wcGVkCgpmdW5jdGlvbiBTZWxlY3Rpb25NYW5hZ2VyKCkgewoJdmFyIHQgPSB0aGlzOwoKCgkvLyBleHBvcnRzCgl0LnNlbGVjdCA9IHNlbGVjdDsKCXQudW5zZWxlY3QgPSB1bnNlbGVjdDsKCXQucmVwb3J0U2VsZWN0aW9uID0gcmVwb3J0U2VsZWN0aW9uOwoJdC5kYXlTZWxlY3Rpb25Nb3VzZWRvd24gPSBkYXlTZWxlY3Rpb25Nb3VzZWRvd247CgoKCS8vIGltcG9ydHMKCXZhciBvcHQgPSB0Lm9wdDsKCXZhciB0cmlnZ2VyID0gdC50cmlnZ2VyOwoJdmFyIGRlZmF1bHRTZWxlY3Rpb25FbmQgPSB0LmRlZmF1bHRTZWxlY3Rpb25FbmQ7Cgl2YXIgcmVuZGVyU2VsZWN0aW9uID0gdC5yZW5kZXJTZWxlY3Rpb247Cgl2YXIgY2xlYXJTZWxlY3Rpb24gPSB0LmNsZWFyU2VsZWN0aW9uOwoKCgkvLyBsb2NhbHMKCXZhciBzZWxlY3RlZCA9IGZhbHNlOwoKCgoJLy8gdW5zZWxlY3RBdXRvCglpZiAob3B0KCdzZWxlY3RhYmxlJykgJiYgb3B0KCd1bnNlbGVjdEF1dG8nKSkgewoJCSQoZG9jdW1lbnQpLm1vdXNlZG93bihmdW5jdGlvbihldikgewoJCQl2YXIgaWdub3JlID0gb3B0KCd1bnNlbGVjdENhbmNlbCcpOwoJCQlpZiAoaWdub3JlKSB7CgkJCQlpZiAoJChldi50YXJnZXQpLnBhcmVudHMoaWdub3JlKS5sZW5ndGgpIHsgLy8gY291bGQgYmUgb3B0aW1pemVkIHRvIHN0b3AgYWZ0ZXIgZmlyc3QgbWF0Y2gKCQkJCQlyZXR1cm47CgkJCQl9CgkJCX0KCQkJdW5zZWxlY3QoZXYpOwoJCX0pOwoJfQoKCglmdW5jdGlvbiBzZWxlY3Qoc3RhcnREYXRlLCBlbmREYXRlLCBhbGxEYXkpIHsKCQl1bnNlbGVjdCgpOwoJCWlmICghZW5kRGF0ZSkgewoJCQllbmREYXRlID0gZGVmYXVsdFNlbGVjdGlvbkVuZChzdGFydERhdGUsIGFsbERheSk7CgkJfQoJCXJlbmRlclNlbGVjdGlvbihzdGFydERhdGUsIGVuZERhdGUsIGFsbERheSk7CgkJcmVwb3J0U2VsZWN0aW9uKHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgYWxsRGF5KTsKCX0KCgoJZnVuY3Rpb24gdW5zZWxlY3QoZXYpIHsKCQlpZiAoc2VsZWN0ZWQpIHsKCQkJc2VsZWN0ZWQgPSBmYWxzZTsKCQkJY2xlYXJTZWxlY3Rpb24oKTsKCQkJdHJpZ2dlcigndW5zZWxlY3QnLCBudWxsLCBldik7CgkJfQoJfQoKCglmdW5jdGlvbiByZXBvcnRTZWxlY3Rpb24oc3RhcnREYXRlLCBlbmREYXRlLCBhbGxEYXksIGV2KSB7CgkJc2VsZWN0ZWQgPSB0cnVlOwoJCXRyaWdnZXIoJ3NlbGVjdCcsIG51bGwsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgYWxsRGF5LCBldik7Cgl9CgoKCWZ1bmN0aW9uIGRheVNlbGVjdGlvbk1vdXNlZG93bihldikgeyAvLyBub3QgcmVhbGx5IGEgZ2VuZXJpYyBtYW5hZ2VyIG1ldGhvZCwgb2ggd2VsbAoJCXZhciBjZWxsVG9EYXRlID0gdC5jZWxsVG9EYXRlOwoJCXZhciBnZXRJc0NlbGxBbGxEYXkgPSB0LmdldElzQ2VsbEFsbERheTsKCQl2YXIgaG92ZXJMaXN0ZW5lciA9IHQuZ2V0SG92ZXJMaXN0ZW5lcigpOwoJCXZhciByZXBvcnREYXlDbGljayA9IHQucmVwb3J0RGF5Q2xpY2s7IC8vIHRoaXMgaXMgaGFja3kgYW5kIHNvcnQgb2Ygd2VpcmQKCQlpZiAoZXYud2hpY2ggPT0gMSAmJiBvcHQoJ3NlbGVjdGFibGUnKSkgeyAvLyB3aGljaD09MSBtZWFucyBsZWZ0IG1vdXNlIGJ1dHRvbgoJCQl1bnNlbGVjdChldik7CgkJCXZhciBfbW91c2Vkb3duRWxlbWVudCA9IHRoaXM7CgkJCXZhciBkYXRlczsKCQkJaG92ZXJMaXN0ZW5lci5zdGFydChmdW5jdGlvbihjZWxsLCBvcmlnQ2VsbCkgeyAvLyBUT0RPOiBtYXliZSBwdXQgY2VsbFRvRGF0ZS9nZXRJc0NlbGxBbGxEYXkgaW5mbyBpbiBjZWxsCgkJCQljbGVhclNlbGVjdGlvbigpOwoJCQkJaWYgKGNlbGwgJiYgZ2V0SXNDZWxsQWxsRGF5KGNlbGwpKSB7CgkJCQkJZGF0ZXMgPSBbIGNlbGxUb0RhdGUob3JpZ0NlbGwpLCBjZWxsVG9EYXRlKGNlbGwpIF0uc29ydChkYXRlQ29tcGFyZSk7CgkJCQkJcmVuZGVyU2VsZWN0aW9uKGRhdGVzWzBdLCBkYXRlc1sxXSwgdHJ1ZSk7CgkJCQl9ZWxzZXsKCQkJCQlkYXRlcyA9IG51bGw7CgkJCQl9CgkJCX0sIGV2KTsKCQkJJChkb2N1bWVudCkub25lKCdtb3VzZXVwJywgZnVuY3Rpb24oZXYpIHsKCQkJCWhvdmVyTGlzdGVuZXIuc3RvcCgpOwoJCQkJaWYgKGRhdGVzKSB7CgkJCQkJaWYgKCtkYXRlc1swXSA9PSArZGF0ZXNbMV0pIHsKCQkJCQkJcmVwb3J0RGF5Q2xpY2soZGF0ZXNbMF0sIHRydWUsIGV2KTsKCQkJCQl9CgkJCQkJcmVwb3J0U2VsZWN0aW9uKGRhdGVzWzBdLCBkYXRlc1sxXSwgdHJ1ZSwgZXYpOwoJCQkJfQoJCQl9KTsKCQl9Cgl9CgoKfQoKOzsKCmZ1bmN0aW9uIE92ZXJsYXlNYW5hZ2VyKCkgewoJdmFyIHQgPSB0aGlzOwoKCgkvLyBleHBvcnRzCgl0LnJlbmRlck92ZXJsYXkgPSByZW5kZXJPdmVybGF5OwoJdC5jbGVhck92ZXJsYXlzID0gY2xlYXJPdmVybGF5czsKCgoJLy8gbG9jYWxzCgl2YXIgdXNlZE92ZXJsYXlzID0gW107Cgl2YXIgdW51c2VkT3ZlcmxheXMgPSBbXTsKCgoJZnVuY3Rpb24gcmVuZGVyT3ZlcmxheShyZWN0LCBwYXJlbnQpIHsKCQl2YXIgZSA9IHVudXNlZE92ZXJsYXlzLnNoaWZ0KCk7CgkJaWYgKCFlKSB7CgkJCWUgPSAkKCI8ZGl2IGNsYXNzPSdmYy1jZWxsLW92ZXJsYXknIHN0eWxlPSdwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjMnLz4iKTsKCQl9CgkJaWYgKGVbMF0ucGFyZW50Tm9kZSAhPSBwYXJlbnRbMF0pIHsKCQkJZS5hcHBlbmRUbyhwYXJlbnQpOwoJCX0KCQl1c2VkT3ZlcmxheXMucHVzaChlLmNzcyhyZWN0KS5zaG93KCkpOwoJCXJldHVybiBlOwoJfQoKCglmdW5jdGlvbiBjbGVhck92ZXJsYXlzKCkgewoJCXZhciBlOwoJCXdoaWxlIChlID0gdXNlZE92ZXJsYXlzLnNoaWZ0KCkpIHsKCQkJdW51c2VkT3ZlcmxheXMucHVzaChlLmhpZGUoKS51bmJpbmQoKSk7CgkJfQoJfQoKCn0KCjs7CgpmdW5jdGlvbiBDb29yZGluYXRlR3JpZChidWlsZEZ1bmMpIHsKCgl2YXIgdCA9IHRoaXM7Cgl2YXIgcm93czsKCXZhciBjb2xzOwoKCgl0LmJ1aWxkID0gZnVuY3Rpb24oKSB7CgkJcm93cyA9IFtdOwoJCWNvbHMgPSBbXTsKCQlidWlsZEZ1bmMocm93cywgY29scyk7Cgl9OwoKCgl0LmNlbGwgPSBmdW5jdGlvbih4LCB5KSB7CgkJdmFyIHJvd0NudCA9IHJvd3MubGVuZ3RoOwoJCXZhciBjb2xDbnQgPSBjb2xzLmxlbmd0aDsKCQl2YXIgaSwgcj0tMSwgYz0tMTsKCQlmb3IgKGk9MDsgaTxyb3dDbnQ7IGkrKykgewoJCQlpZiAoeSA+PSByb3dzW2ldWzBdICYmIHkgPCByb3dzW2ldWzFdKSB7CgkJCQlyID0gaTsKCQkJCWJyZWFrOwoJCQl9CgkJfQoJCWZvciAoaT0wOyBpPGNvbENudDsgaSsrKSB7CgkJCWlmICh4ID49IGNvbHNbaV1bMF0gJiYgeCA8IGNvbHNbaV1bMV0pIHsKCQkJCWMgPSBpOwoJCQkJYnJlYWs7CgkJCX0KCQl9CgkJcmV0dXJuIChyPj0wICYmIGM+PTApID8geyByb3c6ciwgY29sOmMgfSA6IG51bGw7Cgl9OwoKCgl0LnJlY3QgPSBmdW5jdGlvbihyb3cwLCBjb2wwLCByb3cxLCBjb2wxLCBvcmlnaW5FbGVtZW50KSB7IC8vIHJvdzEsY29sMSBpcyBpbmNsdXNpdmUKCQl2YXIgb3JpZ2luID0gb3JpZ2luRWxlbWVudC5vZmZzZXQoKTsKCQlyZXR1cm4gewoJCQl0b3A6IHJvd3Nbcm93MF1bMF0gLSBvcmlnaW4udG9wLAoJCQlsZWZ0OiBjb2xzW2NvbDBdWzBdIC0gb3JpZ2luLmxlZnQsCgkJCXdpZHRoOiBjb2xzW2NvbDFdWzFdIC0gY29sc1tjb2wwXVswXSwKCQkJaGVpZ2h0OiByb3dzW3JvdzFdWzFdIC0gcm93c1tyb3cwXVswXQoJCX07Cgl9OwoKfQoKOzsKCmZ1bmN0aW9uIEhvdmVyTGlzdGVuZXIoY29vcmRpbmF0ZUdyaWQpIHsKCgoJdmFyIHQgPSB0aGlzOwoJdmFyIGJpbmRUeXBlOwoJdmFyIGNoYW5nZTsKCXZhciBmaXJzdENlbGw7Cgl2YXIgY2VsbDsKCgoJdC5zdGFydCA9IGZ1bmN0aW9uKF9jaGFuZ2UsIGV2LCBfYmluZFR5cGUpIHsKCQljaGFuZ2UgPSBfY2hhbmdlOwoJCWZpcnN0Q2VsbCA9IGNlbGwgPSBudWxsOwoJCWNvb3JkaW5hdGVHcmlkLmJ1aWxkKCk7CgkJbW91c2UoZXYpOwoJCWJpbmRUeXBlID0gX2JpbmRUeXBlIHx8ICdtb3VzZW1vdmUnOwoJCSQoZG9jdW1lbnQpLmJpbmQoYmluZFR5cGUsIG1vdXNlKTsKCX07CgoKCWZ1bmN0aW9uIG1vdXNlKGV2KSB7CgkJX2ZpeFVJRXZlbnQoZXYpOyAvLyBzZWUgYmVsb3cKCQl2YXIgbmV3Q2VsbCA9IGNvb3JkaW5hdGVHcmlkLmNlbGwoZXYub3JpZ2luYWxFdmVudC5wYWdlWCwgZXYub3JpZ2luYWxFdmVudC5wYWdlWSk7CgkJaWYgKCFuZXdDZWxsICE9ICFjZWxsIHx8IG5ld0NlbGwgJiYgKG5ld0NlbGwucm93ICE9IGNlbGwucm93IHx8IG5ld0NlbGwuY29sICE9IGNlbGwuY29sKSkgewoJCQlpZiAobmV3Q2VsbCkgewoJCQkJaWYgKCFmaXJzdENlbGwpIHsKCQkJCQlmaXJzdENlbGwgPSBuZXdDZWxsOwoJCQkJfQoJCQkJY2hhbmdlKG5ld0NlbGwsIGZpcnN0Q2VsbCwgbmV3Q2VsbC5yb3ctZmlyc3RDZWxsLnJvdywgbmV3Q2VsbC5jb2wtZmlyc3RDZWxsLmNvbCk7CgkJCX1lbHNlewoJCQkJY2hhbmdlKG5ld0NlbGwsIGZpcnN0Q2VsbCk7CgkJCX0KCQkJY2VsbCA9IG5ld0NlbGw7CgkJfQoJfQoKCgl0LnN0b3AgPSBmdW5jdGlvbigpIHsKCQkkKGRvY3VtZW50KS51bmJpbmQoYmluZFR5cGUsIG1vdXNlKTsKCQlyZXR1cm4gY2VsbDsKCX07CgoKfQoKCgovLyB0aGlzIGZpeCB3YXMgb25seSBuZWNlc3NhcnkgZm9yIGpRdWVyeSBVSSAxLjguMTYgKGFuZCBqUXVlcnkgMS43IG9yIDEuNy4xKQovLyB1cGdyYWRpbmcgdG8galF1ZXJ5IFVJIDEuOC4xNyAoYW5kIHVzaW5nIGVpdGhlciBqUXVlcnkgMS43IG9yIDEuNy4xKSBmaXhlZCB0aGUgcHJvYmxlbQovLyBidXQga2VlcCB0aGlzIGluIGhlcmUgZm9yIDEuOC4xNiB1c2VycwovLyBhbmQgbWF5YmUgcmVtb3ZlIGl0IGRvd24gdGhlIGxpbmUKCmZ1bmN0aW9uIF9maXhVSUV2ZW50KGV2ZW50KSB7IC8vIGZvciBpc3N1ZSAxMTY4CglpZiAoZXZlbnQucGFnZVggPT09IHVuZGVmaW5lZCkgewoJCWV2ZW50LnBhZ2VYID0gZXZlbnQub3JpZ2luYWxFdmVudC5wYWdlWDsKCQlldmVudC5wYWdlWSA9IGV2ZW50Lm9yaWdpbmFsRXZlbnQucGFnZVk7Cgl9Cn0KOzsKCmZ1bmN0aW9uIEhvcml6b250YWxQb3NpdGlvbkNhY2hlKGdldEVsZW1lbnQpIHsKCgl2YXIgdCA9IHRoaXMsCgkJZWxlbWVudHMgPSB7fSwKCQlsZWZ0cyA9IHt9LAoJCXJpZ2h0cyA9IHt9OwoKCWZ1bmN0aW9uIGUoaSkgewoJCXJldHVybiBlbGVtZW50c1tpXSA9IGVsZW1lbnRzW2ldIHx8IGdldEVsZW1lbnQoaSk7Cgl9CgoJdC5sZWZ0ID0gZnVuY3Rpb24oaSkgewoJCXJldHVybiBsZWZ0c1tpXSA9IGxlZnRzW2ldID09PSB1bmRlZmluZWQgPyBlKGkpLnBvc2l0aW9uKCkubGVmdCA6IGxlZnRzW2ldOwoJfTsKCgl0LnJpZ2h0ID0gZnVuY3Rpb24oaSkgewoJCXJldHVybiByaWdodHNbaV0gPSByaWdodHNbaV0gPT09IHVuZGVmaW5lZCA/IHQubGVmdChpKSArIGUoaSkud2lkdGgoKSA6IHJpZ2h0c1tpXTsKCX07CgoJdC5jbGVhciA9IGZ1bmN0aW9uKCkgewoJCWVsZW1lbnRzID0ge307CgkJbGVmdHMgPSB7fTsKCQlyaWdodHMgPSB7fTsKCX07Cgp9Cgo7OwoKfSkoalF1ZXJ5KTsK]]></data>
	</file>
	<file>
	  <filename>/lib/fullcalendar/fullcalendar.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohCiAqIEZ1bGxDYWxlbmRhciB2MS42LjQKICogRG9jcyAmIExpY2Vuc2U6IGh0dHA6Ly9hcnNoYXcuY29tL2Z1bGxjYWxlbmRhci8KICogKGMpIDIwMTMgQWRhbSBTaGF3CiAqLwooZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKGUpe3QuZXh0ZW5kKCEwLENlLGUpfWZ1bmN0aW9uIHIobixyLGMpe2Z1bmN0aW9uIHUodCl7YWU/cCgpJiYoUygpLE0odCkpOmYoKX1mdW5jdGlvbiBmKCl7b2U9ci50aGVtZT8idWkiOiJmYyIsbi5hZGRDbGFzcygiZmMiKSxyLmlzUlRMP24uYWRkQ2xhc3MoImZjLXJ0bCIpOm4uYWRkQ2xhc3MoImZjLWx0ciIpLHIudGhlbWUmJm4uYWRkQ2xhc3MoInVpLXdpZGdldCIpLGFlPXQoIjxkaXYgY2xhc3M9J2ZjLWNvbnRlbnQnIHN0eWxlPSdwb3NpdGlvbjpyZWxhdGl2ZScvPiIpLnByZXBlbmRUbyhuKSxuZT1uZXcgYShlZSxyKSxyZT1uZS5yZW5kZXIoKSxyZSYmbi5wcmVwZW5kKHJlKSx5KHIuZGVmYXVsdFZpZXcpLHIuaGFuZGxlV2luZG93UmVzaXplJiZ0KHdpbmRvdykucmVzaXplKHgpLG0oKXx8digpfWZ1bmN0aW9uIHYoKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IWllLnN0YXJ0JiZtKCkmJkMoKX0sMCl9ZnVuY3Rpb24gaCgpe2llJiYodGUoInZpZXdEZXN0cm95IixpZSxpZSxpZS5lbGVtZW50KSxpZS50cmlnZ2VyRXZlbnREZXN0cm95KCkpLHQod2luZG93KS51bmJpbmQoInJlc2l6ZSIseCksbmUuZGVzdHJveSgpLGFlLnJlbW92ZSgpLG4ucmVtb3ZlQ2xhc3MoImZjIGZjLXJ0bCB1aS13aWRnZXQiKX1mdW5jdGlvbiBwKCl7cmV0dXJuIG4uaXMoIjp2aXNpYmxlIil9ZnVuY3Rpb24gbSgpe3JldHVybiB0KCJib2R5IikuaXMoIjp2aXNpYmxlIil9ZnVuY3Rpb24geSh0KXtpZSYmdD09aWUubmFtZXx8RCh0KX1mdW5jdGlvbiBEKGUpe2hlKyssaWUmJih0ZSgidmlld0Rlc3Ryb3kiLGllLGllLGllLmVsZW1lbnQpLFkoKSxpZS50cmlnZ2VyRXZlbnREZXN0cm95KCksRygpLGllLmVsZW1lbnQucmVtb3ZlKCksbmUuZGVhY3RpdmF0ZUJ1dHRvbihpZS5uYW1lKSksbmUuYWN0aXZhdGVCdXR0b24oZSksaWU9bmV3IFNlW2VdKHQoIjxkaXYgY2xhc3M9J2ZjLXZpZXcgZmMtdmlldy0iK2UrIicgc3R5bGU9J3Bvc2l0aW9uOnJlbGF0aXZlJy8+IikuYXBwZW5kVG8oYWUpLGVlKSxDKCksJCgpLGhlLS19ZnVuY3Rpb24gQyh0KXsoIWllLnN0YXJ0fHx0fHxpZS5zdGFydD5nZXx8Z2U+PWllLmVuZCkmJnAoKSYmTSh0KX1mdW5jdGlvbiBNKHQpe2hlKyssaWUuc3RhcnQmJih0ZSgidmlld0Rlc3Ryb3kiLGllLGllLGllLmVsZW1lbnQpLFkoKSxOKCkpLEcoKSxpZS5yZW5kZXIoZ2UsdHx8MCksVCgpLCQoKSwoaWUuYWZ0ZXJSZW5kZXJ8fEEpKCksXygpLFAoKSx0ZSgidmlld1JlbmRlciIsaWUsaWUsaWUuZWxlbWVudCksaWUudHJpZ2dlcigidmlld0Rpc3BsYXkiLGRlKSxoZS0tLHooKX1mdW5jdGlvbiBFKCl7cCgpJiYoWSgpLE4oKSxTKCksVCgpLEYoKSl9ZnVuY3Rpb24gUygpe2xlPXIuY29udGVudEhlaWdodD9yLmNvbnRlbnRIZWlnaHQ6ci5oZWlnaHQ/ci5oZWlnaHQtKHJlP3JlLmhlaWdodCgpOjApLVIoYWUpOk1hdGgucm91bmQoYWUud2lkdGgoKS9NYXRoLm1heChyLmFzcGVjdFJhdGlvLC41KSl9ZnVuY3Rpb24gVCgpe2xlPT09ZSYmUygpLGhlKyssaWUuc2V0SGVpZ2h0KGxlKSxpZS5zZXRXaWR0aChhZS53aWR0aCgpKSxoZS0tLHNlPW4ub3V0ZXJXaWR0aCgpfWZ1bmN0aW9uIHgoKXtpZighaGUpaWYoaWUuc3RhcnQpe3ZhciB0PSsrdmU7c2V0VGltZW91dChmdW5jdGlvbigpe3Q9PXZlJiYhaGUmJnAoKSYmc2UhPShzZT1uLm91dGVyV2lkdGgoKSkmJihoZSsrLEUoKSxpZS50cmlnZ2VyKCJ3aW5kb3dSZXNpemUiLGRlKSxoZS0tKX0sMjAwKX1lbHNlIHYoKX1mdW5jdGlvbiBrKCl7TigpLFcoKX1mdW5jdGlvbiBIKHQpe04oKSxGKHQpfWZ1bmN0aW9uIEYodCl7cCgpJiYoaWUuc2V0RXZlbnREYXRhKHBlKSxpZS5yZW5kZXJFdmVudHMocGUsdCksaWUudHJpZ2dlcigiZXZlbnRBZnRlckFsbFJlbmRlciIpKX1mdW5jdGlvbiBOKCl7aWUudHJpZ2dlckV2ZW50RGVzdHJveSgpLGllLmNsZWFyRXZlbnRzKCksaWUuY2xlYXJFdmVudERhdGEoKX1mdW5jdGlvbiB6KCl7IXIubGF6eUZldGNoaW5nfHx1ZShpZS52aXNTdGFydCxpZS52aXNFbmQpP1coKTpGKCl9ZnVuY3Rpb24gVygpe2ZlKGllLnZpc1N0YXJ0LGllLnZpc0VuZCl9ZnVuY3Rpb24gTyh0KXtwZT10LEYoKX1mdW5jdGlvbiBMKHQpe0godCl9ZnVuY3Rpb24gXygpe25lLnVwZGF0ZVRpdGxlKGllLnRpdGxlKX1mdW5jdGlvbiBQKCl7dmFyIHQ9bmV3IERhdGU7dD49aWUuc3RhcnQmJmllLmVuZD50P25lLmRpc2FibGVCdXR0b24oInRvZGF5Iik6bmUuZW5hYmxlQnV0dG9uKCJ0b2RheSIpfWZ1bmN0aW9uIHEodCxuLHIpe2llLnNlbGVjdCh0LG4scj09PWU/ITA6cil9ZnVuY3Rpb24gWSgpe2llJiZpZS51bnNlbGVjdCgpfWZ1bmN0aW9uIEIoKXtDKC0xKX1mdW5jdGlvbiBqKCl7QygxKX1mdW5jdGlvbiBJKCl7aShnZSwtMSksQygpfWZ1bmN0aW9uIFgoKXtpKGdlLDEpLEMoKX1mdW5jdGlvbiBKKCl7Z2U9bmV3IERhdGUsQygpfWZ1bmN0aW9uIFYodCxlLG4pe3QgaW5zdGFuY2VvZiBEYXRlP2dlPWQodCk6ZyhnZSx0LGUsbiksQygpfWZ1bmN0aW9uIFUodCxuLHIpe3QhPT1lJiZpKGdlLHQpLG4hPT1lJiZzKGdlLG4pLHIhPT1lJiZsKGdlLHIpLEMoKX1mdW5jdGlvbiBaKCl7cmV0dXJuIGQoZ2UpfWZ1bmN0aW9uIEcoKXthZS5jc3Moe3dpZHRoOiIxMDAlIixoZWlnaHQ6YWUuaGVpZ2h0KCksb3ZlcmZsb3c6ImhpZGRlbiJ9KX1mdW5jdGlvbiAkKCl7YWUuY3NzKHt3aWR0aDoiIixoZWlnaHQ6IiIsb3ZlcmZsb3c6IiJ9KX1mdW5jdGlvbiBRKCl7cmV0dXJuIGllfWZ1bmN0aW9uIEsodCxuKXtyZXR1cm4gbj09PWU/clt0XTooKCJoZWlnaHQiPT10fHwiY29udGVudEhlaWdodCI9PXR8fCJhc3BlY3RSYXRpbyI9PXQpJiYoclt0XT1uLEUoKSksZSl9ZnVuY3Rpb24gdGUodCxuKXtyZXR1cm4gclt0XT9yW3RdLmFwcGx5KG58fGRlLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywyKSk6ZX12YXIgZWU9dGhpcztlZS5vcHRpb25zPXIsZWUucmVuZGVyPXUsZWUuZGVzdHJveT1oLGVlLnJlZmV0Y2hFdmVudHM9ayxlZS5yZXBvcnRFdmVudHM9TyxlZS5yZXBvcnRFdmVudENoYW5nZT1MLGVlLnJlcmVuZGVyRXZlbnRzPUgsZWUuY2hhbmdlVmlldz15LGVlLnNlbGVjdD1xLGVlLnVuc2VsZWN0PVksZWUucHJldj1CLGVlLm5leHQ9aixlZS5wcmV2WWVhcj1JLGVlLm5leHRZZWFyPVgsZWUudG9kYXk9SixlZS5nb3RvRGF0ZT1WLGVlLmluY3JlbWVudERhdGU9VSxlZS5mb3JtYXREYXRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHcodCxlLHIpfSxlZS5mb3JtYXREYXRlcz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGIodCxlLG4scil9LGVlLmdldERhdGU9WixlZS5nZXRWaWV3PVEsZWUub3B0aW9uPUssZWUudHJpZ2dlcj10ZSxvLmNhbGwoZWUscixjKTt2YXIgbmUscmUsYWUsb2UsaWUsc2UsbGUsY2UsdWU9ZWUuaXNGZXRjaE5lZWRlZCxmZT1lZS5mZXRjaEV2ZW50cyxkZT1uWzBdLHZlPTAsaGU9MCxnZT1uZXcgRGF0ZSxwZT1bXTtnKGdlLHIueWVhcixyLm1vbnRoLHIuZGF0ZSksci5kcm9wcGFibGUmJnQoZG9jdW1lbnQpLmJpbmQoImRyYWdzdGFydCIsZnVuY3Rpb24oZSxuKXt2YXIgYT1lLnRhcmdldCxvPXQoYSk7aWYoIW8ucGFyZW50cygiLmZjIikubGVuZ3RoKXt2YXIgaT1yLmRyb3BBY2NlcHQ7KHQuaXNGdW5jdGlvbihpKT9pLmNhbGwoYSxvKTpvLmlzKGkpKSYmKGNlPWEsaWUuZHJhZ1N0YXJ0KGNlLGUsbikpfX0pLmJpbmQoImRyYWdzdG9wIixmdW5jdGlvbih0LGUpe2NlJiYoaWUuZHJhZ1N0b3AoY2UsdCxlKSxjZT1udWxsKX0pfWZ1bmN0aW9uIGEobixyKXtmdW5jdGlvbiBhKCl7dj1yLnRoZW1lPyJ1aSI6ImZjIjt2YXIgbj1yLmhlYWRlcjtyZXR1cm4gbj9oPXQoIjx0YWJsZSBjbGFzcz0nZmMtaGVhZGVyJyBzdHlsZT0nd2lkdGg6MTAwJScvPiIpLmFwcGVuZCh0KCI8dHIvPiIpLmFwcGVuZChpKCJsZWZ0IikpLmFwcGVuZChpKCJjZW50ZXIiKSkuYXBwZW5kKGkoInJpZ2h0IikpKTplfWZ1bmN0aW9uIG8oKXtoLnJlbW92ZSgpfWZ1bmN0aW9uIGkoZSl7dmFyIGE9dCgiPHRkIGNsYXNzPSdmYy1oZWFkZXItIitlKyInLz4iKSxvPXIuaGVhZGVyW2VdO3JldHVybiBvJiZ0LmVhY2goby5zcGxpdCgiICIpLGZ1bmN0aW9uKGUpe2U+MCYmYS5hcHBlbmQoIjxzcGFuIGNsYXNzPSdmYy1oZWFkZXItc3BhY2UnLz4iKTt2YXIgbzt0LmVhY2godGhpcy5zcGxpdCgiLCIpLGZ1bmN0aW9uKGUsaSl7aWYoInRpdGxlIj09aSlhLmFwcGVuZCgiPHNwYW4gY2xhc3M9J2ZjLWhlYWRlci10aXRsZSc+PGgyPiZuYnNwOzwvaDI+PC9zcGFuPiIpLG8mJm8uYWRkQ2xhc3ModisiLWNvcm5lci1yaWdodCIpLG89bnVsbDtlbHNle3ZhciBzO2lmKG5baV0/cz1uW2ldOlNlW2ldJiYocz1mdW5jdGlvbigpe3UucmVtb3ZlQ2xhc3ModisiLXN0YXRlLWhvdmVyIiksbi5jaGFuZ2VWaWV3KGkpfSkscyl7dmFyIGw9ci50aGVtZT9QKHIuYnV0dG9uSWNvbnMsaSk6bnVsbCxjPVAoci5idXR0b25UZXh0LGkpLHU9dCgiPHNwYW4gY2xhc3M9J2ZjLWJ1dHRvbiBmYy1idXR0b24tIitpKyIgIit2KyItc3RhdGUtZGVmYXVsdCc+IisobD8iPHNwYW4gY2xhc3M9J2ZjLWljb24td3JhcCc+PHNwYW4gY2xhc3M9J3VpLWljb24gdWktaWNvbi0iK2wrIicvPiIrIjwvc3Bhbj4iOmMpKyI8L3NwYW4+IikuY2xpY2soZnVuY3Rpb24oKXt1Lmhhc0NsYXNzKHYrIi1zdGF0ZS1kaXNhYmxlZCIpfHxzKCl9KS5tb3VzZWRvd24oZnVuY3Rpb24oKXt1Lm5vdCgiLiIrdisiLXN0YXRlLWFjdGl2ZSIpLm5vdCgiLiIrdisiLXN0YXRlLWRpc2FibGVkIikuYWRkQ2xhc3ModisiLXN0YXRlLWRvd24iKX0pLm1vdXNldXAoZnVuY3Rpb24oKXt1LnJlbW92ZUNsYXNzKHYrIi1zdGF0ZS1kb3duIil9KS5ob3ZlcihmdW5jdGlvbigpe3Uubm90KCIuIit2KyItc3RhdGUtYWN0aXZlIikubm90KCIuIit2KyItc3RhdGUtZGlzYWJsZWQiKS5hZGRDbGFzcyh2KyItc3RhdGUtaG92ZXIiKX0sZnVuY3Rpb24oKXt1LnJlbW92ZUNsYXNzKHYrIi1zdGF0ZS1ob3ZlciIpLnJlbW92ZUNsYXNzKHYrIi1zdGF0ZS1kb3duIil9KS5hcHBlbmRUbyhhKTtZKHUpLG98fHUuYWRkQ2xhc3ModisiLWNvcm5lci1sZWZ0Iiksbz11fX19KSxvJiZvLmFkZENsYXNzKHYrIi1jb3JuZXItcmlnaHQiKX0pLGF9ZnVuY3Rpb24gcyh0KXtoLmZpbmQoImgyIikuaHRtbCh0KX1mdW5jdGlvbiBsKHQpe2guZmluZCgic3Bhbi5mYy1idXR0b24tIit0KS5hZGRDbGFzcyh2KyItc3RhdGUtYWN0aXZlIil9ZnVuY3Rpb24gYyh0KXtoLmZpbmQoInNwYW4uZmMtYnV0dG9uLSIrdCkucmVtb3ZlQ2xhc3ModisiLXN0YXRlLWFjdGl2ZSIpfWZ1bmN0aW9uIHUodCl7aC5maW5kKCJzcGFuLmZjLWJ1dHRvbi0iK3QpLmFkZENsYXNzKHYrIi1zdGF0ZS1kaXNhYmxlZCIpfWZ1bmN0aW9uIGYodCl7aC5maW5kKCJzcGFuLmZjLWJ1dHRvbi0iK3QpLnJlbW92ZUNsYXNzKHYrIi1zdGF0ZS1kaXNhYmxlZCIpfXZhciBkPXRoaXM7ZC5yZW5kZXI9YSxkLmRlc3Ryb3k9byxkLnVwZGF0ZVRpdGxlPXMsZC5hY3RpdmF0ZUJ1dHRvbj1sLGQuZGVhY3RpdmF0ZUJ1dHRvbj1jLGQuZGlzYWJsZUJ1dHRvbj11LGQuZW5hYmxlQnV0dG9uPWY7dmFyIHYsaD10KFtdKX1mdW5jdGlvbiBvKG4scil7ZnVuY3Rpb24gYSh0LGUpe3JldHVybiFFfHxFPnR8fGU+U31mdW5jdGlvbiBvKHQsZSl7RT10LFM9ZSxXPVtdO3ZhciBuPSsrUixyPUYubGVuZ3RoO049cjtmb3IodmFyIGE9MDtyPmE7YSsrKWkoRlthXSxuKX1mdW5jdGlvbiBpKGUscil7cyhlLGZ1bmN0aW9uKGEpe2lmKHI9PVIpe2lmKGEpe24uZXZlbnREYXRhVHJhbnNmb3JtJiYoYT10Lm1hcChhLG4uZXZlbnREYXRhVHJhbnNmb3JtKSksZS5ldmVudERhdGFUcmFuc2Zvcm0mJihhPXQubWFwKGEsZS5ldmVudERhdGFUcmFuc2Zvcm0pKTtmb3IodmFyIG89MDthLmxlbmd0aD5vO28rKylhW29dLnNvdXJjZT1lLHcoYVtvXSk7Vz1XLmNvbmNhdChhKX1OLS0sTnx8ayhXKX19KX1mdW5jdGlvbiBzKHIsYSl7dmFyIG8saSxsPUVlLnNvdXJjZUZldGNoZXJzO2ZvcihvPTA7bC5sZW5ndGg+bztvKyspe2lmKGk9bFtvXShyLEUsUyxhKSxpPT09ITApcmV0dXJuO2lmKCJvYmplY3QiPT10eXBlb2YgaSlyZXR1cm4gcyhpLGEpLGV9dmFyIGM9ci5ldmVudHM7aWYoYyl0LmlzRnVuY3Rpb24oYyk/KG0oKSxjKGQoRSksZChTKSxmdW5jdGlvbih0KXthKHQpLHkoKX0pKTp0LmlzQXJyYXkoYyk/YShjKTphKCk7ZWxzZXt2YXIgdT1yLnVybDtpZih1KXt2YXIgZix2PXIuc3VjY2VzcyxoPXIuZXJyb3IsZz1yLmNvbXBsZXRlO2Y9dC5pc0Z1bmN0aW9uKHIuZGF0YSk/ci5kYXRhKCk6ci5kYXRhO3ZhciBwPXQuZXh0ZW5kKHt9LGZ8fHt9KSx3PVgoci5zdGFydFBhcmFtLG4uc3RhcnRQYXJhbSksYj1YKHIuZW5kUGFyYW0sbi5lbmRQYXJhbSk7dyYmKHBbd109TWF0aC5yb3VuZCgrRS8xZTMpKSxiJiYocFtiXT1NYXRoLnJvdW5kKCtTLzFlMykpLG0oKSx0LmFqYXgodC5leHRlbmQoe30sVGUscix7ZGF0YTpwLHN1Y2Nlc3M6ZnVuY3Rpb24oZSl7ZT1lfHxbXTt2YXIgbj1JKHYsdGhpcyxhcmd1bWVudHMpO3QuaXNBcnJheShuKSYmKGU9biksYShlKX0sZXJyb3I6ZnVuY3Rpb24oKXtJKGgsdGhpcyxhcmd1bWVudHMpLGEoKX0sY29tcGxldGU6ZnVuY3Rpb24oKXtJKGcsdGhpcyxhcmd1bWVudHMpLHkoKX19KSl9ZWxzZSBhKCl9fWZ1bmN0aW9uIGwodCl7dD1jKHQpLHQmJihOKyssaSh0LFIpKX1mdW5jdGlvbiBjKG4pe3JldHVybiB0LmlzRnVuY3Rpb24obil8fHQuaXNBcnJheShuKT9uPXtldmVudHM6bn06InN0cmluZyI9PXR5cGVvZiBuJiYobj17dXJsOm59KSwib2JqZWN0Ij09dHlwZW9mIG4/KGIobiksRi5wdXNoKG4pLG4pOmV9ZnVuY3Rpb24gdShlKXtGPXQuZ3JlcChGLGZ1bmN0aW9uKHQpe3JldHVybiFEKHQsZSl9KSxXPXQuZ3JlcChXLGZ1bmN0aW9uKHQpe3JldHVybiFEKHQuc291cmNlLGUpfSksayhXKX1mdW5jdGlvbiBmKHQpe3ZhciBlLG4scj1XLmxlbmd0aCxhPXgoKS5kZWZhdWx0RXZlbnRFbmQsbz10LnN0YXJ0LXQuX3N0YXJ0LGk9dC5lbmQ/dC5lbmQtKHQuX2VuZHx8YSh0KSk6MDtmb3IoZT0wO3I+ZTtlKyspbj1XW2VdLG4uX2lkPT10Ll9pZCYmbiE9dCYmKG4uc3RhcnQ9bmV3IERhdGUoK24uc3RhcnQrbyksbi5lbmQ9dC5lbmQ/bi5lbmQ/bmV3IERhdGUoK24uZW5kK2kpOm5ldyBEYXRlKCthKG4pK2kpOm51bGwsbi50aXRsZT10LnRpdGxlLG4udXJsPXQudXJsLG4uYWxsRGF5PXQuYWxsRGF5LG4uY2xhc3NOYW1lPXQuY2xhc3NOYW1lLG4uZWRpdGFibGU9dC5lZGl0YWJsZSxuLmNvbG9yPXQuY29sb3Isbi5iYWNrZ3JvdW5kQ29sb3I9dC5iYWNrZ3JvdW5kQ29sb3Isbi5ib3JkZXJDb2xvcj10LmJvcmRlckNvbG9yLG4udGV4dENvbG9yPXQudGV4dENvbG9yLHcobikpO3codCksayhXKX1mdW5jdGlvbiB2KHQsZSl7dyh0KSx0LnNvdXJjZXx8KGUmJihILmV2ZW50cy5wdXNoKHQpLHQuc291cmNlPUgpLFcucHVzaCh0KSksayhXKX1mdW5jdGlvbiBoKGUpe2lmKGUpe2lmKCF0LmlzRnVuY3Rpb24oZSkpe3ZhciBuPWUrIiI7ZT1mdW5jdGlvbih0KXtyZXR1cm4gdC5faWQ9PW59fVc9dC5ncmVwKFcsZSwhMCk7Zm9yKHZhciByPTA7Ri5sZW5ndGg+cjtyKyspdC5pc0FycmF5KEZbcl0uZXZlbnRzKSYmKEZbcl0uZXZlbnRzPXQuZ3JlcChGW3JdLmV2ZW50cyxlLCEwKSl9ZWxzZXtXPVtdO2Zvcih2YXIgcj0wO0YubGVuZ3RoPnI7cisrKXQuaXNBcnJheShGW3JdLmV2ZW50cykmJihGW3JdLmV2ZW50cz1bXSl9ayhXKX1mdW5jdGlvbiBnKGUpe3JldHVybiB0LmlzRnVuY3Rpb24oZSk/dC5ncmVwKFcsZSk6ZT8oZSs9IiIsdC5ncmVwKFcsZnVuY3Rpb24odCl7cmV0dXJuIHQuX2lkPT1lfSkpOld9ZnVuY3Rpb24gbSgpe3orK3x8VCgibG9hZGluZyIsbnVsbCwhMCx4KCkpfWZ1bmN0aW9uIHkoKXstLXp8fFQoImxvYWRpbmciLG51bGwsITEseCgpKX1mdW5jdGlvbiB3KHQpe3ZhciByPXQuc291cmNlfHx7fSxhPVgoci5pZ25vcmVUaW1lem9uZSxuLmlnbm9yZVRpbWV6b25lKTt0Ll9pZD10Ll9pZHx8KHQuaWQ9PT1lPyJfZmMiK3hlKys6dC5pZCsiIiksdC5kYXRlJiYodC5zdGFydHx8KHQuc3RhcnQ9dC5kYXRlKSxkZWxldGUgdC5kYXRlKSx0Ll9zdGFydD1kKHQuc3RhcnQ9cCh0LnN0YXJ0LGEpKSx0LmVuZD1wKHQuZW5kLGEpLHQuZW5kJiZ0LmVuZDw9dC5zdGFydCYmKHQuZW5kPW51bGwpLHQuX2VuZD10LmVuZD9kKHQuZW5kKTpudWxsLHQuYWxsRGF5PT09ZSYmKHQuYWxsRGF5PVgoci5hbGxEYXlEZWZhdWx0LG4uYWxsRGF5RGVmYXVsdCkpLHQuY2xhc3NOYW1lPyJzdHJpbmciPT10eXBlb2YgdC5jbGFzc05hbWUmJih0LmNsYXNzTmFtZT10LmNsYXNzTmFtZS5zcGxpdCgvXHMrLykpOnQuY2xhc3NOYW1lPVtdfWZ1bmN0aW9uIGIodCl7dC5jbGFzc05hbWU/InN0cmluZyI9PXR5cGVvZiB0LmNsYXNzTmFtZSYmKHQuY2xhc3NOYW1lPXQuY2xhc3NOYW1lLnNwbGl0KC9ccysvKSk6dC5jbGFzc05hbWU9W107Zm9yKHZhciBlPUVlLnNvdXJjZU5vcm1hbGl6ZXJzLG49MDtlLmxlbmd0aD5uO24rKyllW25dKHQpfWZ1bmN0aW9uIEQodCxlKXtyZXR1cm4gdCYmZSYmQyh0KT09QyhlKX1mdW5jdGlvbiBDKHQpe3JldHVybigib2JqZWN0Ij09dHlwZW9mIHQ/dC5ldmVudHN8fHQudXJsOiIiKXx8dH12YXIgTT10aGlzO00uaXNGZXRjaE5lZWRlZD1hLE0uZmV0Y2hFdmVudHM9byxNLmFkZEV2ZW50U291cmNlPWwsTS5yZW1vdmVFdmVudFNvdXJjZT11LE0udXBkYXRlRXZlbnQ9ZixNLnJlbmRlckV2ZW50PXYsTS5yZW1vdmVFdmVudHM9aCxNLmNsaWVudEV2ZW50cz1nLE0ubm9ybWFsaXplRXZlbnQ9dztmb3IodmFyIEUsUyxUPU0udHJpZ2dlcix4PU0uZ2V0VmlldyxrPU0ucmVwb3J0RXZlbnRzLEg9e2V2ZW50czpbXX0sRj1bSF0sUj0wLE49MCx6PTAsVz1bXSxBPTA7ci5sZW5ndGg+QTtBKyspYyhyW0FdKX1mdW5jdGlvbiBpKHQsZSxuKXtyZXR1cm4gdC5zZXRGdWxsWWVhcih0LmdldEZ1bGxZZWFyKCkrZSksbnx8Zih0KSx0fWZ1bmN0aW9uIHModCxlLG4pe2lmKCt0KXt2YXIgcj10LmdldE1vbnRoKCkrZSxhPWQodCk7Zm9yKGEuc2V0RGF0ZSgxKSxhLnNldE1vbnRoKHIpLHQuc2V0TW9udGgociksbnx8Zih0KTt0LmdldE1vbnRoKCkhPWEuZ2V0TW9udGgoKTspdC5zZXREYXRlKHQuZ2V0RGF0ZSgpKyhhPnQ/MTotMSkpfXJldHVybiB0fWZ1bmN0aW9uIGwodCxlLG4pe2lmKCt0KXt2YXIgcj10LmdldERhdGUoKStlLGE9ZCh0KTthLnNldEhvdXJzKDkpLGEuc2V0RGF0ZShyKSx0LnNldERhdGUociksbnx8Zih0KSxjKHQsYSl9cmV0dXJuIHR9ZnVuY3Rpb24gYyh0LGUpe2lmKCt0KWZvcig7dC5nZXREYXRlKCkhPWUuZ2V0RGF0ZSgpOyl0LnNldFRpbWUoK3QrKGU+dD8xOi0xKSpGZSl9ZnVuY3Rpb24gdSh0LGUpe3JldHVybiB0LnNldE1pbnV0ZXModC5nZXRNaW51dGVzKCkrZSksdH1mdW5jdGlvbiBmKHQpe3JldHVybiB0LnNldEhvdXJzKDApLHQuc2V0TWludXRlcygwKSx0LnNldFNlY29uZHMoMCksdC5zZXRNaWxsaXNlY29uZHMoMCksdH1mdW5jdGlvbiBkKHQsZSl7cmV0dXJuIGU/ZihuZXcgRGF0ZSgrdCkpOm5ldyBEYXRlKCt0KX1mdW5jdGlvbiB2KCl7dmFyIHQsZT0wO2RvIHQ9bmV3IERhdGUoMTk3MCxlKyssMSk7d2hpbGUodC5nZXRIb3VycygpKTtyZXR1cm4gdH1mdW5jdGlvbiBoKHQsZSl7cmV0dXJuIE1hdGgucm91bmQoKGQodCwhMCktZChlLCEwKSkvSGUpfWZ1bmN0aW9uIGcodCxuLHIsYSl7biE9PWUmJm4hPXQuZ2V0RnVsbFllYXIoKSYmKHQuc2V0RGF0ZSgxKSx0LnNldE1vbnRoKDApLHQuc2V0RnVsbFllYXIobikpLHIhPT1lJiZyIT10LmdldE1vbnRoKCkmJih0LnNldERhdGUoMSksdC5zZXRNb250aChyKSksYSE9PWUmJnQuc2V0RGF0ZShhKX1mdW5jdGlvbiBwKHQsbil7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0P3Q6Im51bWJlciI9PXR5cGVvZiB0P25ldyBEYXRlKDFlMyp0KToic3RyaW5nIj09dHlwZW9mIHQ/dC5tYXRjaCgvXlxkKyhcLlxkKyk/JC8pP25ldyBEYXRlKDFlMypwYXJzZUZsb2F0KHQpKToobj09PWUmJihuPSEwKSxtKHQsbil8fCh0P25ldyBEYXRlKHQpOm51bGwpKTpudWxsfWZ1bmN0aW9uIG0odCxlKXt2YXIgbj10Lm1hdGNoKC9eKFswLTldezR9KSgtKFswLTldezJ9KSgtKFswLTldezJ9KShbVCBdKFswLTldezJ9KTooWzAtOV17Mn0pKDooWzAtOV17Mn0pKFwuKFswLTldKykpPyk/KFp8KChbLStdKShbMC05XXsyfSkoOj8oWzAtOV17Mn0pKT8pKT8pPyk/KT8kLyk7aWYoIW4pcmV0dXJuIG51bGw7dmFyIHI9bmV3IERhdGUoblsxXSwwLDEpO2lmKGV8fCFuWzEzXSl7dmFyIGE9bmV3IERhdGUoblsxXSwwLDEsOSwwKTtuWzNdJiYoci5zZXRNb250aChuWzNdLTEpLGEuc2V0TW9udGgoblszXS0xKSksbls1XSYmKHIuc2V0RGF0ZShuWzVdKSxhLnNldERhdGUobls1XSkpLGMocixhKSxuWzddJiZyLnNldEhvdXJzKG5bN10pLG5bOF0mJnIuc2V0TWludXRlcyhuWzhdKSxuWzEwXSYmci5zZXRTZWNvbmRzKG5bMTBdKSxuWzEyXSYmci5zZXRNaWxsaXNlY29uZHMoMWUzKk51bWJlcigiMC4iK25bMTJdKSksYyhyLGEpfWVsc2UgaWYoci5zZXRVVENGdWxsWWVhcihuWzFdLG5bM10/blszXS0xOjAsbls1XXx8MSksci5zZXRVVENIb3VycyhuWzddfHwwLG5bOF18fDAsblsxMF18fDAsblsxMl0/MWUzKk51bWJlcigiMC4iK25bMTJdKTowKSxuWzE0XSl7dmFyIG89NjAqTnVtYmVyKG5bMTZdKSsoblsxOF0/TnVtYmVyKG5bMThdKTowKTtvKj0iLSI9PW5bMTVdPzE6LTEscj1uZXcgRGF0ZSgrcisxZTMqNjAqbyl9cmV0dXJuIHJ9ZnVuY3Rpb24geSh0KXtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIDYwKnQ7aWYoIm9iamVjdCI9PXR5cGVvZiB0KXJldHVybiA2MCp0LmdldEhvdXJzKCkrdC5nZXRNaW51dGVzKCk7dmFyIGU9dC5tYXRjaCgvKFxkKykoPzo6KFxkKykpP1xzKihcdyspPy8pO2lmKGUpe3ZhciBuPXBhcnNlSW50KGVbMV0sMTApO3JldHVybiBlWzNdJiYobiU9MTIsInAiPT1lWzNdLnRvTG93ZXJDYXNlKCkuY2hhckF0KDApJiYobis9MTIpKSw2MCpuKyhlWzJdP3BhcnNlSW50KGVbMl0sMTApOjApfX1mdW5jdGlvbiB3KHQsZSxuKXtyZXR1cm4gYih0LG51bGwsZSxuKX1mdW5jdGlvbiBiKHQsZSxuLHIpe3I9cnx8Q2U7dmFyIGEsbyxpLHMsbD10LGM9ZSx1PW4ubGVuZ3RoLGY9IiI7Zm9yKGE9MDt1PmE7YSsrKWlmKG89bi5jaGFyQXQoYSksIiciPT1vKXtmb3IoaT1hKzE7dT5pO2krKylpZigiJyI9PW4uY2hhckF0KGkpKXtsJiYoZis9aT09YSsxPyInIjpuLnN1YnN0cmluZyhhKzEsaSksYT1pKTticmVha319ZWxzZSBpZigiKCI9PW8pe2ZvcihpPWErMTt1Pmk7aSsrKWlmKCIpIj09bi5jaGFyQXQoaSkpe3ZhciBkPXcobCxuLnN1YnN0cmluZyhhKzEsaSkscik7cGFyc2VJbnQoZC5yZXBsYWNlKC9cRC8sIiIpLDEwKSYmKGYrPWQpLGE9aTticmVha319ZWxzZSBpZigiWyI9PW8pe2ZvcihpPWErMTt1Pmk7aSsrKWlmKCJdIj09bi5jaGFyQXQoaSkpe3ZhciB2PW4uc3Vic3RyaW5nKGErMSxpKSxkPXcobCx2LHIpO2QhPXcoYyx2LHIpJiYoZis9ZCksYT1pO2JyZWFrfX1lbHNlIGlmKCJ7Ij09bylsPWUsYz10O2Vsc2UgaWYoIn0iPT1vKWw9dCxjPWU7ZWxzZXtmb3IoaT11O2k+YTtpLS0paWYocz1OZVtuLnN1YnN0cmluZyhhLGkpXSl7bCYmKGYrPXMobCxyKSksYT1pLTE7YnJlYWt9aT09YSYmbCYmKGYrPW8pfXJldHVybiBmfWZ1bmN0aW9uIEQodCl7dmFyIGUsbj1uZXcgRGF0ZSh0LmdldFRpbWUoKSk7cmV0dXJuIG4uc2V0RGF0ZShuLmdldERhdGUoKSs0LShuLmdldERheSgpfHw3KSksZT1uLmdldFRpbWUoKSxuLnNldE1vbnRoKDApLG4uc2V0RGF0ZSgxKSxNYXRoLmZsb29yKE1hdGgucm91bmQoKGUtbikvODY0ZTUpLzcpKzF9ZnVuY3Rpb24gQyh0KXtyZXR1cm4gdC5lbmQ/TSh0LmVuZCx0LmFsbERheSk6bChkKHQuc3RhcnQpLDEpfWZ1bmN0aW9uIE0odCxlKXtyZXR1cm4gdD1kKHQpLGV8fHQuZ2V0SG91cnMoKXx8dC5nZXRNaW51dGVzKCk/bCh0LDEpOmYodCl9ZnVuY3Rpb24gRShuLHIsYSl7bi51bmJpbmQoIm1vdXNlb3ZlciIpLm1vdXNlb3ZlcihmdW5jdGlvbihuKXtmb3IodmFyIG8saSxzLGw9bi50YXJnZXQ7bCE9dGhpczspbz1sLGw9bC5wYXJlbnROb2RlOyhpPW8uX2ZjaSkhPT1lJiYoby5fZmNpPWUscz1yW2ldLGEocy5ldmVudCxzLmVsZW1lbnQscyksdChuLnRhcmdldCkudHJpZ2dlcihuKSksbi5zdG9wUHJvcGFnYXRpb24oKX0pfWZ1bmN0aW9uIFMoZSxuLHIpe2Zvcih2YXIgYSxvPTA7ZS5sZW5ndGg+bztvKyspYT10KGVbb10pLGEud2lkdGgoTWF0aC5tYXgoMCxuLXgoYSxyKSkpfWZ1bmN0aW9uIFQoZSxuLHIpe2Zvcih2YXIgYSxvPTA7ZS5sZW5ndGg+bztvKyspYT10KGVbb10pLGEuaGVpZ2h0KE1hdGgubWF4KDAsbi1SKGEscikpKX1mdW5jdGlvbiB4KHQsZSl7cmV0dXJuIGsodCkrRih0KSsoZT9IKHQpOjApfWZ1bmN0aW9uIGsoZSl7cmV0dXJuKHBhcnNlRmxvYXQodC5jc3MoZVswXSwicGFkZGluZ0xlZnQiLCEwKSl8fDApKyhwYXJzZUZsb2F0KHQuY3NzKGVbMF0sInBhZGRpbmdSaWdodCIsITApKXx8MCl9ZnVuY3Rpb24gSChlKXtyZXR1cm4ocGFyc2VGbG9hdCh0LmNzcyhlWzBdLCJtYXJnaW5MZWZ0IiwhMCkpfHwwKSsocGFyc2VGbG9hdCh0LmNzcyhlWzBdLCJtYXJnaW5SaWdodCIsITApKXx8MCl9ZnVuY3Rpb24gRihlKXtyZXR1cm4ocGFyc2VGbG9hdCh0LmNzcyhlWzBdLCJib3JkZXJMZWZ0V2lkdGgiLCEwKSl8fDApKyhwYXJzZUZsb2F0KHQuY3NzKGVbMF0sImJvcmRlclJpZ2h0V2lkdGgiLCEwKSl8fDApfWZ1bmN0aW9uIFIodCxlKXtyZXR1cm4gTih0KStXKHQpKyhlP3oodCk6MCl9ZnVuY3Rpb24gTihlKXtyZXR1cm4ocGFyc2VGbG9hdCh0LmNzcyhlWzBdLCJwYWRkaW5nVG9wIiwhMCkpfHwwKSsocGFyc2VGbG9hdCh0LmNzcyhlWzBdLCJwYWRkaW5nQm90dG9tIiwhMCkpfHwwKX1mdW5jdGlvbiB6KGUpe3JldHVybihwYXJzZUZsb2F0KHQuY3NzKGVbMF0sIm1hcmdpblRvcCIsITApKXx8MCkrKHBhcnNlRmxvYXQodC5jc3MoZVswXSwibWFyZ2luQm90dG9tIiwhMCkpfHwwKX1mdW5jdGlvbiBXKGUpe3JldHVybihwYXJzZUZsb2F0KHQuY3NzKGVbMF0sImJvcmRlclRvcFdpZHRoIiwhMCkpfHwwKSsocGFyc2VGbG9hdCh0LmNzcyhlWzBdLCJib3JkZXJCb3R0b21XaWR0aCIsITApKXx8MCl9ZnVuY3Rpb24gQSgpe31mdW5jdGlvbiBPKHQsZSl7cmV0dXJuIHQtZX1mdW5jdGlvbiBMKHQpe3JldHVybiBNYXRoLm1heC5hcHBseShNYXRoLHQpfWZ1bmN0aW9uIF8odCl7cmV0dXJuKDEwPnQ/IjAiOiIiKSt0fWZ1bmN0aW9uIFAodCxuKXtpZih0W25dIT09ZSlyZXR1cm4gdFtuXTtmb3IodmFyIHIsYT1uLnNwbGl0KC8oPz1bQS1aXSkvKSxvPWEubGVuZ3RoLTE7bz49MDtvLS0paWYocj10W2Fbb10udG9Mb3dlckNhc2UoKV0sciE9PWUpcmV0dXJuIHI7cmV0dXJuIHRbIiJdfWZ1bmN0aW9uIHEodCl7cmV0dXJuIHQucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLnJlcGxhY2UoLycvZywiJiMwMzk7IikucmVwbGFjZSgvIi9nLCImcXVvdDsiKS5yZXBsYWNlKC9cbi9nLCI8YnIgLz4iKX1mdW5jdGlvbiBZKHQpe3QuYXR0cigidW5zZWxlY3RhYmxlIiwib24iKS5jc3MoIk1velVzZXJTZWxlY3QiLCJub25lIikuYmluZCgic2VsZWN0c3RhcnQudWkiLGZ1bmN0aW9uKCl7cmV0dXJuITF9KX1mdW5jdGlvbiBCKHQpe3QuY2hpbGRyZW4oKS5yZW1vdmVDbGFzcygiZmMtZmlyc3QgZmMtbGFzdCIpLmZpbHRlcigiOmZpcnN0LWNoaWxkIikuYWRkQ2xhc3MoImZjLWZpcnN0IikuZW5kKCkuZmlsdGVyKCI6bGFzdC1jaGlsZCIpLmFkZENsYXNzKCJmYy1sYXN0Iil9ZnVuY3Rpb24gaih0LGUpe3ZhciBuPXQuc291cmNlfHx7fSxyPXQuY29sb3IsYT1uLmNvbG9yLG89ZSgiZXZlbnRDb2xvciIpLGk9dC5iYWNrZ3JvdW5kQ29sb3J8fHJ8fG4uYmFja2dyb3VuZENvbG9yfHxhfHxlKCJldmVudEJhY2tncm91bmRDb2xvciIpfHxvLHM9dC5ib3JkZXJDb2xvcnx8cnx8bi5ib3JkZXJDb2xvcnx8YXx8ZSgiZXZlbnRCb3JkZXJDb2xvciIpfHxvLGw9dC50ZXh0Q29sb3J8fG4udGV4dENvbG9yfHxlKCJldmVudFRleHRDb2xvciIpLGM9W107cmV0dXJuIGkmJmMucHVzaCgiYmFja2dyb3VuZC1jb2xvcjoiK2kpLHMmJmMucHVzaCgiYm9yZGVyLWNvbG9yOiIrcyksbCYmYy5wdXNoKCJjb2xvcjoiK2wpLGMuam9pbigiOyIpfWZ1bmN0aW9uIEkoZSxuLHIpe2lmKHQuaXNGdW5jdGlvbihlKSYmKGU9W2VdKSxlKXt2YXIgYSxvO2ZvcihhPTA7ZS5sZW5ndGg+YTthKyspbz1lW2FdLmFwcGx5KG4scil8fG87cmV0dXJuIG99fWZ1bmN0aW9uIFgoKXtmb3IodmFyIHQ9MDthcmd1bWVudHMubGVuZ3RoPnQ7dCsrKWlmKGFyZ3VtZW50c1t0XSE9PWUpcmV0dXJuIGFyZ3VtZW50c1t0XX1mdW5jdGlvbiBKKHQsZSl7ZnVuY3Rpb24gbih0LGUpe2UmJihzKHQsZSksdC5zZXREYXRlKDEpKTt2YXIgbj1hKCJmaXJzdERheSIpLGY9ZCh0LCEwKTtmLnNldERhdGUoMSk7dmFyIHY9cyhkKGYpLDEpLGc9ZChmKTtsKGcsLSgoZy5nZXREYXkoKS1uKzcpJTcpKSxpKGcpO3ZhciBwPWQodik7bChwLCg3LXAuZ2V0RGF5KCkrbiklNyksaShwLC0xLCEwKTt2YXIgbT1jKCkseT1NYXRoLnJvdW5kKGgocCxnKS83KTsiZml4ZWQiPT1hKCJ3ZWVrTW9kZSIpJiYobChwLDcqKDYteSkpLHk9Niksci50aXRsZT11KGYsYSgidGl0bGVGb3JtYXQiKSksci5zdGFydD1mLHIuZW5kPXYsci52aXNTdGFydD1nLHIudmlzRW5kPXAsbyh5LG0sITApfXZhciByPXRoaXM7ci5yZW5kZXI9bixaLmNhbGwocix0LGUsIm1vbnRoIik7dmFyIGE9ci5vcHQsbz1yLnJlbmRlckJhc2ljLGk9ci5za2lwSGlkZGVuRGF5cyxjPXIuZ2V0Q2VsbHNQZXJXZWVrLHU9ZS5mb3JtYXREYXRlfWZ1bmN0aW9uIFYodCxlKXtmdW5jdGlvbiBuKHQsZSl7ZSYmbCh0LDcqZSk7dmFyIG49bChkKHQpLC0oKHQuZ2V0RGF5KCktYSgiZmlyc3REYXkiKSs3KSU3KSksdT1sKGQobiksNyksZj1kKG4pO2koZik7dmFyIHY9ZCh1KTtpKHYsLTEsITApO3ZhciBoPXMoKTtyLnN0YXJ0PW4sci5lbmQ9dSxyLnZpc1N0YXJ0PWYsci52aXNFbmQ9dixyLnRpdGxlPWMoZixsKGQodiksLTEpLGEoInRpdGxlRm9ybWF0IikpLG8oMSxoLCExKX12YXIgcj10aGlzO3IucmVuZGVyPW4sWi5jYWxsKHIsdCxlLCJiYXNpY1dlZWsiKTt2YXIgYT1yLm9wdCxvPXIucmVuZGVyQmFzaWMsaT1yLnNraXBIaWRkZW5EYXlzLHM9ci5nZXRDZWxsc1BlcldlZWssYz1lLmZvcm1hdERhdGVzfWZ1bmN0aW9uIFUodCxlKXtmdW5jdGlvbiBuKHQsZSl7ZSYmbCh0LGUpLGkodCwwPmU/LTE6MSk7dmFyIG49ZCh0LCEwKSxjPWwoZChuKSwxKTtyLnRpdGxlPXModCxhKCJ0aXRsZUZvcm1hdCIpKSxyLnN0YXJ0PXIudmlzU3RhcnQ9bixyLmVuZD1yLnZpc0VuZD1jLG8oMSwxLCExKX12YXIgcj10aGlzO3IucmVuZGVyPW4sWi5jYWxsKHIsdCxlLCJiYXNpY0RheSIpO3ZhciBhPXIub3B0LG89ci5yZW5kZXJCYXNpYyxpPXIuc2tpcEhpZGRlbkRheXMscz1lLmZvcm1hdERhdGV9ZnVuY3Rpb24gWihlLG4scil7ZnVuY3Rpb24gYSh0LGUsbil7ZWU9dCxuZT1lLHJlPW4sbygpLGp8fGkoKSxzKCl9ZnVuY3Rpb24gbygpe2xlPWhlKCJ0aGVtZSIpPyJ1aSI6ImZjIixjZT1oZSgiY29sdW1uRm9ybWF0IiksdWU9aGUoIndlZWtOdW1iZXJzIiksZGU9aGUoIndlZWtOdW1iZXJUaXRsZSIpLHZlPSJpc28iIT1oZSgid2Vla051bWJlckNhbGN1bGF0aW9uIik/InciOiJXIn1mdW5jdGlvbiBpKCl7Wj10KCI8ZGl2IGNsYXNzPSdmYy1ldmVudC1jb250YWluZXInIHN0eWxlPSdwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4Ojg7dG9wOjA7bGVmdDowJy8+IikuYXBwZW5kVG8oZSl9ZnVuY3Rpb24gcygpe3ZhciBuPWMoKTtMJiZMLnJlbW92ZSgpLEw9dChuKS5hcHBlbmRUbyhlKSxfPUwuZmluZCgidGhlYWQiKSxQPV8uZmluZCgiLmZjLWRheS1oZWFkZXIiKSxqPUwuZmluZCgidGJvZHkiKSxJPWouZmluZCgidHIiKSxYPWouZmluZCgiLmZjLWRheSIpLEo9SS5maW5kKCJ0ZDpmaXJzdC1jaGlsZCIpLFY9SS5lcSgwKS5maW5kKCIuZmMtZGF5ID4gZGl2IiksVT1JLmVxKDApLmZpbmQoIi5mYy1kYXktY29udGVudCA+IGRpdiIpLEIoXy5hZGQoXy5maW5kKCJ0ciIpKSksQihJKSxJLmVxKDApLmFkZENsYXNzKCJmYy1maXJzdCIpLEkuZmlsdGVyKCI6bGFzdCIpLmFkZENsYXNzKCJmYy1sYXN0IiksWC5lYWNoKGZ1bmN0aW9uKGUsbil7dmFyIHI9RWUoTWF0aC5mbG9vcihlL25lKSxlJW5lKTtnZSgiZGF5UmVuZGVyIixPLHIsdChuKSl9KSx5KFgpfWZ1bmN0aW9uIGMoKXt2YXIgdD0iPHRhYmxlIGNsYXNzPSdmYy1ib3JkZXItc2VwYXJhdGUnIHN0eWxlPSd3aWR0aDoxMDAlJyBjZWxsc3BhY2luZz0nMCc+Iit1KCkrdigpKyI8L3RhYmxlPiI7cmV0dXJuIHR9ZnVuY3Rpb24gdSgpe3ZhciB0LGUsbj1sZSsiLXdpZGdldC1oZWFkZXIiLHI9IiI7Zm9yKHIrPSI8dGhlYWQ+PHRyPiIsdWUmJihyKz0iPHRoIGNsYXNzPSdmYy13ZWVrLW51bWJlciAiK24rIic+IitxKGRlKSsiPC90aD4iKSx0PTA7bmU+dDt0KyspZT1FZSgwLHQpLHIrPSI8dGggY2xhc3M9J2ZjLWRheS1oZWFkZXIgZmMtIitrZVtlLmdldERheSgpXSsiICIrbisiJz4iK3EoeGUoZSxjZSkpKyI8L3RoPiI7cmV0dXJuIHIrPSI8L3RyPjwvdGhlYWQ+In1mdW5jdGlvbiB2KCl7dmFyIHQsZSxuLHI9bGUrIi13aWRnZXQtY29udGVudCIsYT0iIjtmb3IoYSs9Ijx0Ym9keT4iLHQ9MDtlZT50O3QrKyl7Zm9yKGErPSI8dHIgY2xhc3M9J2ZjLXdlZWsnPiIsdWUmJihuPUVlKHQsMCksYSs9Ijx0ZCBjbGFzcz0nZmMtd2Vlay1udW1iZXIgIityKyInPiIrIjxkaXY+IitxKHhlKG4sdmUpKSsiPC9kaXY+IisiPC90ZD4iKSxlPTA7bmU+ZTtlKyspbj1FZSh0LGUpLGErPWgobik7YSs9IjwvdHI+In1yZXR1cm4gYSs9IjwvdGJvZHk+In1mdW5jdGlvbiBoKHQpe3ZhciBlPWxlKyItd2lkZ2V0LWNvbnRlbnQiLG49Ty5zdGFydC5nZXRNb250aCgpLHI9ZihuZXcgRGF0ZSksYT0iIixvPVsiZmMtZGF5IiwiZmMtIitrZVt0LmdldERheSgpXSxlXTtyZXR1cm4gdC5nZXRNb250aCgpIT1uJiZvLnB1c2goImZjLW90aGVyLW1vbnRoIiksK3Q9PStyP28ucHVzaCgiZmMtdG9kYXkiLGxlKyItc3RhdGUtaGlnaGxpZ2h0Iik6cj50P28ucHVzaCgiZmMtcGFzdCIpOm8ucHVzaCgiZmMtZnV0dXJlIiksYSs9Ijx0ZCBjbGFzcz0nIitvLmpvaW4oIiAiKSsiJyIrIiBkYXRhLWRhdGU9JyIreGUodCwieXl5eS1NTS1kZCIpKyInIisiPiIrIjxkaXY+IixyZSYmKGErPSI8ZGl2IGNsYXNzPSdmYy1kYXktbnVtYmVyJz4iK3QuZ2V0RGF0ZSgpKyI8L2Rpdj4iKSxhKz0iPGRpdiBjbGFzcz0nZmMtZGF5LWNvbnRlbnQnPjxkaXYgc3R5bGU9J3Bvc2l0aW9uOnJlbGF0aXZlJz4mbmJzcDs8L2Rpdj48L2Rpdj48L2Rpdj48L3RkPiJ9ZnVuY3Rpb24gZyhlKXtRPWU7dmFyIG4scixhLG89US1fLmhlaWdodCgpOyJ2YXJpYWJsZSI9PWhlKCJ3ZWVrTW9kZSIpP249cj1NYXRoLmZsb29yKG8vKDE9PWVlPzI6NikpOihuPU1hdGguZmxvb3Ioby9lZSkscj1vLW4qKGVlLTEpKSxKLmVhY2goZnVuY3Rpb24oZSxvKXtlZT5lJiYoYT10KG8pLGEuZmluZCgiPiBkaXYiKS5jc3MoIm1pbi1oZWlnaHQiLChlPT1lZS0xP3I6biktUihhKSkpfSl9ZnVuY3Rpb24gcCh0KXskPXQsaWUuY2xlYXIoKSxzZS5jbGVhcigpLHRlPTAsdWUmJih0ZT1fLmZpbmQoInRoLmZjLXdlZWstbnVtYmVyIikub3V0ZXJXaWR0aCgpKSxLPU1hdGguZmxvb3IoKCQtdGUpL25lKSxTKFAuc2xpY2UoMCwtMSksSyl9ZnVuY3Rpb24geSh0KXt0LmNsaWNrKHcpLm1vdXNlZG93bihNZSl9ZnVuY3Rpb24gdyhlKXtpZighaGUoInNlbGVjdGFibGUiKSl7dmFyIG49bSh0KHRoaXMpLmRhdGEoImRhdGUiKSk7Z2UoImRheUNsaWNrIix0aGlzLG4sITAsZSl9fWZ1bmN0aW9uIGIodCxlLG4pe24mJmFlLmJ1aWxkKCk7Zm9yKHZhciByPVRlKHQsZSksYT0wO3IubGVuZ3RoPmE7YSsrKXt2YXIgbz1yW2FdO3koRChvLnJvdyxvLmxlZnRDb2wsby5yb3csby5yaWdodENvbCkpfX1mdW5jdGlvbiBEKHQsbixyLGEpe3ZhciBvPWFlLnJlY3QodCxuLHIsYSxlKTtyZXR1cm4gYmUobyxlKX1mdW5jdGlvbiBDKHQpe3JldHVybiBkKHQpfWZ1bmN0aW9uIE0odCxlKXtiKHQsbChkKGUpLDEpLCEwKX1mdW5jdGlvbiBFKCl7Q2UoKX1mdW5jdGlvbiBUKHQsZSxuKXt2YXIgcj1TZSh0KSxhPVhbci5yb3cqbmUrci5jb2xdO2dlKCJkYXlDbGljayIsYSx0LGUsbil9ZnVuY3Rpb24geCh0LGUpe29lLnN0YXJ0KGZ1bmN0aW9uKHQpe0NlKCksdCYmRCh0LnJvdyx0LmNvbCx0LnJvdyx0LmNvbCl9LGUpfWZ1bmN0aW9uIGsodCxlLG4pe3ZhciByPW9lLnN0b3AoKTtpZihDZSgpLHIpe3ZhciBhPUVlKHIpO2dlKCJkcm9wIix0LGEsITAsZSxuKX19ZnVuY3Rpb24gSCh0KXtyZXR1cm4gZCh0LnN0YXJ0KX1mdW5jdGlvbiBGKHQpe3JldHVybiBpZS5sZWZ0KHQpfWZ1bmN0aW9uIE4odCl7cmV0dXJuIGllLnJpZ2h0KHQpfWZ1bmN0aW9uIHoodCl7cmV0dXJuIHNlLmxlZnQodCl9ZnVuY3Rpb24gVyh0KXtyZXR1cm4gc2UucmlnaHQodCl9ZnVuY3Rpb24gQSh0KXtyZXR1cm4gSS5lcSh0KX12YXIgTz10aGlzO08ucmVuZGVyQmFzaWM9YSxPLnNldEhlaWdodD1nLE8uc2V0V2lkdGg9cCxPLnJlbmRlckRheU92ZXJsYXk9YixPLmRlZmF1bHRTZWxlY3Rpb25FbmQ9QyxPLnJlbmRlclNlbGVjdGlvbj1NLE8uY2xlYXJTZWxlY3Rpb249RSxPLnJlcG9ydERheUNsaWNrPVQsTy5kcmFnU3RhcnQ9eCxPLmRyYWdTdG9wPWssTy5kZWZhdWx0RXZlbnRFbmQ9SCxPLmdldEhvdmVyTGlzdGVuZXI9ZnVuY3Rpb24oKXtyZXR1cm4gb2V9LE8uY29sTGVmdD1GLE8uY29sUmlnaHQ9TixPLmNvbENvbnRlbnRMZWZ0PXosTy5jb2xDb250ZW50UmlnaHQ9VyxPLmdldElzQ2VsbEFsbERheT1mdW5jdGlvbigpe3JldHVybiEwfSxPLmFsbERheVJvdz1BLE8uZ2V0Um93Q250PWZ1bmN0aW9uKCl7cmV0dXJuIGVlfSxPLmdldENvbENudD1mdW5jdGlvbigpe3JldHVybiBuZX0sTy5nZXRDb2xXaWR0aD1mdW5jdGlvbigpe3JldHVybiBLfSxPLmdldERheVNlZ21lbnRDb250YWluZXI9ZnVuY3Rpb24oKXtyZXR1cm4gWn0sZmUuY2FsbChPLGUsbixyKSxtZS5jYWxsKE8pLHBlLmNhbGwoTyksRy5jYWxsKE8pO3ZhciBMLF8sUCxqLEksWCxKLFYsVSxaLCQsUSxLLHRlLGVlLG5lLHJlLGFlLG9lLGllLHNlLGxlLGNlLHVlLGRlLHZlLGhlPU8ub3B0LGdlPU8udHJpZ2dlcixiZT1PLnJlbmRlck92ZXJsYXksQ2U9Ty5jbGVhck92ZXJsYXlzLE1lPU8uZGF5U2VsZWN0aW9uTW91c2Vkb3duLEVlPU8uY2VsbFRvRGF0ZSxTZT1PLmRhdGVUb0NlbGwsVGU9Ty5yYW5nZVRvU2VnbWVudHMseGU9bi5mb3JtYXREYXRlO1koZS5hZGRDbGFzcygiZmMtZ3JpZCIpKSxhZT1uZXcgeWUoZnVuY3Rpb24oZSxuKXt2YXIgcixhLG87UC5lYWNoKGZ1bmN0aW9uKGUsaSl7cj10KGkpLGE9ci5vZmZzZXQoKS5sZWZ0LGUmJihvWzFdPWEpLG89W2FdLG5bZV09b30pLG9bMV09YStyLm91dGVyV2lkdGgoKSxJLmVhY2goZnVuY3Rpb24obixpKXtlZT5uJiYocj10KGkpLGE9ci5vZmZzZXQoKS50b3AsbiYmKG9bMV09YSksbz1bYV0sZVtuXT1vKX0pLG9bMV09YStyLm91dGVySGVpZ2h0KCl9KSxvZT1uZXcgd2UoYWUpLGllPW5ldyBEZShmdW5jdGlvbih0KXtyZXR1cm4gVi5lcSh0KX0pLHNlPW5ldyBEZShmdW5jdGlvbih0KXtyZXR1cm4gVS5lcSh0KX0pfWZ1bmN0aW9uIEcoKXtmdW5jdGlvbiB0KHQsZSl7bi5yZW5kZXJEYXlFdmVudHModCxlKX1mdW5jdGlvbiBlKCl7bi5nZXREYXlTZWdtZW50Q29udGFpbmVyKCkuZW1wdHkoKX12YXIgbj10aGlzO24ucmVuZGVyRXZlbnRzPXQsbi5jbGVhckV2ZW50cz1lLGRlLmNhbGwobil9ZnVuY3Rpb24gJCh0LGUpe2Z1bmN0aW9uIG4odCxlKXtlJiZsKHQsNyplKTt2YXIgbj1sKGQodCksLSgodC5nZXREYXkoKS1hKCJmaXJzdERheSIpKzcpJTcpKSx1PWwoZChuKSw3KSxmPWQobik7aShmKTt2YXIgdj1kKHUpO2kodiwtMSwhMCk7dmFyIGg9cygpO3IudGl0bGU9YyhmLGwoZCh2KSwtMSksYSgidGl0bGVGb3JtYXQiKSksci5zdGFydD1uLHIuZW5kPXUsci52aXNTdGFydD1mLHIudmlzRW5kPXYsbyhoKX12YXIgcj10aGlzO3IucmVuZGVyPW4sSy5jYWxsKHIsdCxlLCJhZ2VuZGFXZWVrIik7dmFyIGE9ci5vcHQsbz1yLnJlbmRlckFnZW5kYSxpPXIuc2tpcEhpZGRlbkRheXMscz1yLmdldENlbGxzUGVyV2VlayxjPWUuZm9ybWF0RGF0ZXN9ZnVuY3Rpb24gUSh0LGUpe2Z1bmN0aW9uIG4odCxlKXtlJiZsKHQsZSksaSh0LDA+ZT8tMToxKTt2YXIgbj1kKHQsITApLGM9bChkKG4pLDEpO3IudGl0bGU9cyh0LGEoInRpdGxlRm9ybWF0IikpLHIuc3RhcnQ9ci52aXNTdGFydD1uLHIuZW5kPXIudmlzRW5kPWMsbygxKX12YXIgcj10aGlzO3IucmVuZGVyPW4sSy5jYWxsKHIsdCxlLCJhZ2VuZGFEYXkiKTt2YXIgYT1yLm9wdCxvPXIucmVuZGVyQWdlbmRhLGk9ci5za2lwSGlkZGVuRGF5cyxzPWUuZm9ybWF0RGF0ZX1mdW5jdGlvbiBLKG4scixhKXtmdW5jdGlvbiBvKHQpe1dlPXQsaSgpLEs/YygpOnMoKX1mdW5jdGlvbiBpKCl7cWU9VWUoInRoZW1lIik/InVpIjoiZmMiLFllPVVlKCJpc1JUTCIpLEJlPXkoVWUoIm1pblRpbWUiKSksamU9eShVZSgibWF4VGltZSIpKSxJZT1VZSgiY29sdW1uRm9ybWF0IiksWGU9VWUoIndlZWtOdW1iZXJzIiksSmU9VWUoIndlZWtOdW1iZXJUaXRsZSIpLFZlPSJpc28iIT1VZSgid2Vla051bWJlckNhbGN1bGF0aW9uIik/InciOiJXIixSZT1VZSgic25hcE1pbnV0ZXMiKXx8VWUoInNsb3RNaW51dGVzIil9ZnVuY3Rpb24gcygpe3ZhciBlLHIsYSxvLGkscz1xZSsiLXdpZGdldC1oZWFkZXIiLGw9cWUrIi13aWRnZXQtY29udGVudCIsZj0wPT1VZSgic2xvdE1pbnV0ZXMiKSUxNTtmb3IoYygpLGNlPXQoIjxkaXYgc3R5bGU9J3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MjtsZWZ0OjA7d2lkdGg6MTAwJScvPiIpLmFwcGVuZFRvKG4pLFVlKCJhbGxEYXlTbG90Iik/KHVlPXQoIjxkaXYgY2xhc3M9J2ZjLWV2ZW50LWNvbnRhaW5lcicgc3R5bGU9J3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6ODt0b3A6MDtsZWZ0OjAnLz4iKS5hcHBlbmRUbyhjZSksZT0iPHRhYmxlIHN0eWxlPSd3aWR0aDoxMDAlJyBjbGFzcz0nZmMtYWdlbmRhLWFsbGRheScgY2VsbHNwYWNpbmc9JzAnPjx0cj48dGggY2xhc3M9JyIrcysiIGZjLWFnZW5kYS1heGlzJz4iK1VlKCJhbGxEYXlUZXh0IikrIjwvdGg+IisiPHRkPiIrIjxkaXYgY2xhc3M9J2ZjLWRheS1jb250ZW50Jz48ZGl2IHN0eWxlPSdwb3NpdGlvbjpyZWxhdGl2ZScvPjwvZGl2PiIrIjwvdGQ+IisiPHRoIGNsYXNzPSciK3MrIiBmYy1hZ2VuZGEtZ3V0dGVyJz4mbmJzcDs8L3RoPiIrIjwvdHI+IisiPC90YWJsZT4iLGRlPXQoZSkuYXBwZW5kVG8oY2UpLHZlPWRlLmZpbmQoInRyIiksQyh2ZS5maW5kKCJ0ZCIpKSxjZS5hcHBlbmQoIjxkaXYgY2xhc3M9J2ZjLWFnZW5kYS1kaXZpZGVyICIrcysiJz4iKyI8ZGl2IGNsYXNzPSdmYy1hZ2VuZGEtZGl2aWRlci1pbm5lcicvPiIrIjwvZGl2PiIpKTp1ZT10KFtdKSxoZT10KCI8ZGl2IHN0eWxlPSdwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6YXV0bycvPiIpLmFwcGVuZFRvKGNlKSxnZT10KCI8ZGl2IHN0eWxlPSdwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbicvPiIpLmFwcGVuZFRvKGhlKSxiZT10KCI8ZGl2IGNsYXNzPSdmYy1ldmVudC1jb250YWluZXInIHN0eWxlPSdwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4Ojg7dG9wOjA7bGVmdDowJy8+IikuYXBwZW5kVG8oZ2UpLGU9Ijx0YWJsZSBjbGFzcz0nZmMtYWdlbmRhLXNsb3RzJyBzdHlsZT0nd2lkdGg6MTAwJScgY2VsbHNwYWNpbmc9JzAnPjx0Ym9keT4iLHI9digpLG89dShkKHIpLGplKSx1KHIsQmUpLEFlPTAsYT0wO28+cjthKyspaT1yLmdldE1pbnV0ZXMoKSxlKz0iPHRyIGNsYXNzPSdmYy1zbG90IithKyIgIisoaT8iZmMtbWlub3IiOiIiKSsiJz4iKyI8dGggY2xhc3M9J2ZjLWFnZW5kYS1heGlzICIrcysiJz4iKyhmJiZpPyImbmJzcDsiOm9uKHIsVWUoImF4aXNGb3JtYXQiKSkpKyI8L3RoPiIrIjx0ZCBjbGFzcz0nIitsKyInPiIrIjxkaXYgc3R5bGU9J3Bvc2l0aW9uOnJlbGF0aXZlJz4mbmJzcDs8L2Rpdj4iKyI8L3RkPiIrIjwvdHI+Iix1KHIsVWUoInNsb3RNaW51dGVzIikpLEFlKys7ZSs9IjwvdGJvZHk+PC90YWJsZT4iLENlPXQoZSkuYXBwZW5kVG8oZ2UpLE0oQ2UuZmluZCgidGQiKSl9ZnVuY3Rpb24gYygpe3ZhciBlPWgoKTtLJiZLLnJlbW92ZSgpLEs9dChlKS5hcHBlbmRUbyhuKSxlZT1LLmZpbmQoInRoZWFkIiksbmU9ZWUuZmluZCgidGgiKS5zbGljZSgxLC0xKSxyZT1LLmZpbmQoInRib2R5IiksYWU9cmUuZmluZCgidGQiKS5zbGljZSgwLC0xKSxvZT1hZS5maW5kKCI+IGRpdiIpLGllPWFlLmZpbmQoIi5mYy1kYXktY29udGVudCA+IGRpdiIpLHNlPWFlLmVxKDApLGxlPW9lLmVxKDApLEIoZWUuYWRkKGVlLmZpbmQoInRyIikpKSxCKHJlLmFkZChyZS5maW5kKCJ0ciIpKSl9ZnVuY3Rpb24gaCgpe3ZhciB0PSI8dGFibGUgc3R5bGU9J3dpZHRoOjEwMCUnIGNsYXNzPSdmYy1hZ2VuZGEtZGF5cyBmYy1ib3JkZXItc2VwYXJhdGUnIGNlbGxzcGFjaW5nPScwJz4iK2coKStwKCkrIjwvdGFibGU+IjtyZXR1cm4gdH1mdW5jdGlvbiBnKCl7dmFyIHQsZSxuLHI9cWUrIi13aWRnZXQtaGVhZGVyIixhPSIiO2ZvcihhKz0iPHRoZWFkPjx0cj4iLFhlPyh0PW5uKDAsMCksZT1vbih0LFZlKSxZZT9lKz1KZTplPUplK2UsYSs9Ijx0aCBjbGFzcz0nZmMtYWdlbmRhLWF4aXMgZmMtd2Vlay1udW1iZXIgIityKyInPiIrcShlKSsiPC90aD4iKTphKz0iPHRoIGNsYXNzPSdmYy1hZ2VuZGEtYXhpcyAiK3IrIic+Jm5ic3A7PC90aD4iLG49MDtXZT5uO24rKyl0PW5uKDAsbiksYSs9Ijx0aCBjbGFzcz0nZmMtIitrZVt0LmdldERheSgpXSsiIGZjLWNvbCIrbisiICIrcisiJz4iK3Eob24odCxJZSkpKyI8L3RoPiI7cmV0dXJuIGErPSI8dGggY2xhc3M9J2ZjLWFnZW5kYS1ndXR0ZXIgIityKyInPiZuYnNwOzwvdGg+IisiPC90cj4iKyI8L3RoZWFkPiJ9ZnVuY3Rpb24gcCgpe3ZhciB0LGUsbixyLGEsbz1xZSsiLXdpZGdldC1oZWFkZXIiLGk9cWUrIi13aWRnZXQtY29udGVudCIscz1mKG5ldyBEYXRlKSxsPSIiO2ZvcihsKz0iPHRib2R5Pjx0cj48dGggY2xhc3M9J2ZjLWFnZW5kYS1heGlzICIrbysiJz4mbmJzcDs8L3RoPiIsbj0iIixlPTA7V2U+ZTtlKyspdD1ubigwLGUpLGE9WyJmYy1jb2wiK2UsImZjLSIra2VbdC5nZXREYXkoKV0saV0sK3Q9PStzP2EucHVzaChxZSsiLXN0YXRlLWhpZ2hsaWdodCIsImZjLXRvZGF5Iik6cz50P2EucHVzaCgiZmMtcGFzdCIpOmEucHVzaCgiZmMtZnV0dXJlIikscj0iPHRkIGNsYXNzPSciK2Euam9pbigiICIpKyInPiIrIjxkaXY+IisiPGRpdiBjbGFzcz0nZmMtZGF5LWNvbnRlbnQnPiIrIjxkaXYgc3R5bGU9J3Bvc2l0aW9uOnJlbGF0aXZlJz4mbmJzcDs8L2Rpdj4iKyI8L2Rpdj4iKyI8L2Rpdj4iKyI8L3RkPiIsbis9cjtyZXR1cm4gbCs9bixsKz0iPHRkIGNsYXNzPSdmYy1hZ2VuZGEtZ3V0dGVyICIraSsiJz4mbmJzcDs8L3RkPiIrIjwvdHI+IisiPC90Ym9keT4ifWZ1bmN0aW9uIG0odCl7dD09PWUmJih0PVNlKSxTZT10LHNuPXt9O3ZhciBuPXJlLnBvc2l0aW9uKCkudG9wLHI9aGUucG9zaXRpb24oKS50b3AsYT1NYXRoLm1pbih0LW4sQ2UuaGVpZ2h0KCkrcisxKTtsZS5oZWlnaHQoYS1SKHNlKSksY2UuY3NzKCJ0b3AiLG4pLGhlLmhlaWdodChhLXItMSksRmU9Q2UuZmluZCgidHI6Zmlyc3QiKS5oZWlnaHQoKSsxLE5lPVVlKCJzbG90TWludXRlcyIpL1JlLHplPUZlL05lfWZ1bmN0aW9uIHcoZSl7RWU9ZSxfZS5jbGVhcigpLFBlLmNsZWFyKCk7dmFyIG49ZWUuZmluZCgidGg6Zmlyc3QiKTtkZSYmKG49bi5hZGQoZGUuZmluZCgidGg6Zmlyc3QiKSkpLG49bi5hZGQoQ2UuZmluZCgidGg6Zmlyc3QiKSksVGU9MCxTKG4ud2lkdGgoIiIpLmVhY2goZnVuY3Rpb24oZSxuKXtUZT1NYXRoLm1heChUZSx0KG4pLm91dGVyV2lkdGgoKSl9KSxUZSk7dmFyIHI9Sy5maW5kKCIuZmMtYWdlbmRhLWd1dHRlciIpO2RlJiYocj1yLmFkZChkZS5maW5kKCJ0aC5mYy1hZ2VuZGEtZ3V0dGVyIikpKTt2YXIgYT1oZVswXS5jbGllbnRXaWR0aDtIZT1oZS53aWR0aCgpLWEsSGU/KFMocixIZSksci5zaG93KCkucHJldigpLnJlbW92ZUNsYXNzKCJmYy1sYXN0IikpOnIuaGlkZSgpLnByZXYoKS5hZGRDbGFzcygiZmMtbGFzdCIpLHhlPU1hdGguZmxvb3IoKGEtVGUpL1dlKSxTKG5lLnNsaWNlKDAsLTEpLHhlKX1mdW5jdGlvbiBiKCl7ZnVuY3Rpb24gdCgpe2hlLnNjcm9sbFRvcChyKX12YXIgZT12KCksbj1kKGUpO24uc2V0SG91cnMoVWUoImZpcnN0SG91ciIpKTt2YXIgcj1fKGUsbikrMTt0KCksc2V0VGltZW91dCh0LDApfWZ1bmN0aW9uIEQoKXtiKCl9ZnVuY3Rpb24gQyh0KXt0LmNsaWNrKEUpLm1vdXNlZG93bih0bil9ZnVuY3Rpb24gTSh0KXt0LmNsaWNrKEUpLm1vdXNlZG93bihVKX1mdW5jdGlvbiBFKHQpe2lmKCFVZSgic2VsZWN0YWJsZSIpKXt2YXIgZT1NYXRoLm1pbihXZS0xLE1hdGguZmxvb3IoKHQucGFnZVgtSy5vZmZzZXQoKS5sZWZ0LVRlKS94ZSkpLG49bm4oMCxlKSxyPXRoaXMucGFyZW50Tm9kZS5jbGFzc05hbWUubWF0Y2goL2ZjLXNsb3QoXGQrKS8pO2lmKHIpe3ZhciBhPXBhcnNlSW50KHJbMV0pKlVlKCJzbG90TWludXRlcyIpLG89TWF0aC5mbG9vcihhLzYwKTtuLnNldEhvdXJzKG8pLG4uc2V0TWludXRlcyhhJTYwK0JlKSxaZSgiZGF5Q2xpY2siLGFlW2VdLG4sITEsdCl9ZWxzZSBaZSgiZGF5Q2xpY2siLGFlW2VdLG4sITAsdCl9fWZ1bmN0aW9uIHgodCxlLG4pe24mJk9lLmJ1aWxkKCk7Zm9yKHZhciByPWFuKHQsZSksYT0wO3IubGVuZ3RoPmE7YSsrKXt2YXIgbz1yW2FdO0MoayhvLnJvdyxvLmxlZnRDb2wsby5yb3csby5yaWdodENvbCkpfX1mdW5jdGlvbiBrKHQsZSxuLHIpe3ZhciBhPU9lLnJlY3QodCxlLG4scixjZSk7cmV0dXJuIEdlKGEsY2UpfWZ1bmN0aW9uIEgodCxlKXtmb3IodmFyIG49MDtXZT5uO24rKyl7dmFyIHI9bm4oMCxuKSxhPWwoZChyKSwxKSxvPW5ldyBEYXRlKE1hdGgubWF4KHIsdCkpLGk9bmV3IERhdGUoTWF0aC5taW4oYSxlKSk7aWYoaT5vKXt2YXIgcz1PZS5yZWN0KDAsbiwwLG4sZ2UpLGM9XyhyLG8pLHU9XyhyLGkpO3MudG9wPWMscy5oZWlnaHQ9dS1jLE0oR2UocyxnZSkpfX19ZnVuY3Rpb24gRih0KXtyZXR1cm4gX2UubGVmdCh0KX1mdW5jdGlvbiBOKHQpe3JldHVybiBQZS5sZWZ0KHQpfWZ1bmN0aW9uIHoodCl7cmV0dXJuIF9lLnJpZ2h0KHQpfWZ1bmN0aW9uIFcodCl7cmV0dXJuIFBlLnJpZ2h0KHQpfWZ1bmN0aW9uIEEodCl7cmV0dXJuIFVlKCJhbGxEYXlTbG90IikmJiF0LnJvd31mdW5jdGlvbiBMKHQpe3ZhciBlPW5uKDAsdC5jb2wpLG49dC5yb3c7cmV0dXJuIFVlKCJhbGxEYXlTbG90IikmJm4tLSxuPj0wJiZ1KGUsQmUrbipSZSksZX1mdW5jdGlvbiBfKHQsbil7aWYodD1kKHQsITApLHUoZCh0KSxCZSk+bilyZXR1cm4gMDtpZihuPj11KGQodCksamUpKXJldHVybiBDZS5oZWlnaHQoKTt2YXIgcj1VZSgic2xvdE1pbnV0ZXMiKSxhPTYwKm4uZ2V0SG91cnMoKStuLmdldE1pbnV0ZXMoKS1CZSxvPU1hdGguZmxvb3IoYS9yKSxpPXNuW29dO3JldHVybiBpPT09ZSYmKGk9c25bb109Q2UuZmluZCgidHIiKS5lcShvKS5maW5kKCJ0ZCBkaXYiKVswXS5vZmZzZXRUb3ApLE1hdGgubWF4KDAsTWF0aC5yb3VuZChpLTErRmUqKGElci9yKSkpfWZ1bmN0aW9uIFAoKXtyZXR1cm4gdmV9ZnVuY3Rpb24gaih0KXt2YXIgZT1kKHQuc3RhcnQpO3JldHVybiB0LmFsbERheT9lOnUoZSxVZSgiZGVmYXVsdEV2ZW50TWludXRlcyIpKX1mdW5jdGlvbiBJKHQsZSl7cmV0dXJuIGU/ZCh0KTp1KGQodCksVWUoInNsb3RNaW51dGVzIikpfWZ1bmN0aW9uIFgodCxlLG4pe24/VWUoImFsbERheVNsb3QiKSYmeCh0LGwoZChlKSwxKSwhMCk6Sih0LGUpfWZ1bmN0aW9uIEooZSxuKXt2YXIgcj1VZSgic2VsZWN0SGVscGVyIik7aWYoT2UuYnVpbGQoKSxyKXt2YXIgYT1ybihlKS5jb2w7aWYoYT49MCYmV2U+YSl7dmFyIG89T2UucmVjdCgwLGEsMCxhLGdlKSxpPV8oZSxlKSxzPV8oZSxuKTtpZihzPmkpe2lmKG8udG9wPWksby5oZWlnaHQ9cy1pLG8ubGVmdCs9MixvLndpZHRoLT01LHQuaXNGdW5jdGlvbihyKSl7dmFyIGw9cihlLG4pO2wmJihvLnBvc2l0aW9uPSJhYnNvbHV0ZSIsTWU9dChsKS5jc3MobykuYXBwZW5kVG8oZ2UpKX1lbHNlIG8uaXNTdGFydD0hMCxvLmlzRW5kPSEwLE1lPXQoZW4oe3RpdGxlOiIiLHN0YXJ0OmUsZW5kOm4sY2xhc3NOYW1lOlsiZmMtc2VsZWN0LWhlbHBlciJdLGVkaXRhYmxlOiExfSxvKSksTWUuY3NzKCJvcGFjaXR5IixVZSgiZHJhZ09wYWNpdHkiKSk7TWUmJihNKE1lKSxnZS5hcHBlbmQoTWUpLFMoTWUsby53aWR0aCwhMCksVChNZSxvLmhlaWdodCwhMCkpfX19ZWxzZSBIKGUsbil9ZnVuY3Rpb24gVigpeyRlKCksTWUmJihNZS5yZW1vdmUoKSxNZT1udWxsKX1mdW5jdGlvbiBVKGUpe2lmKDE9PWUud2hpY2gmJlVlKCJzZWxlY3RhYmxlIikpe0tlKGUpO3ZhciBuO0xlLnN0YXJ0KGZ1bmN0aW9uKHQsZSl7aWYoVigpLHQmJnQuY29sPT1lLmNvbCYmIUEodCkpe3ZhciByPUwoZSksYT1MKHQpO249W3IsdShkKHIpLFJlKSxhLHUoZChhKSxSZSldLnNvcnQoTyksSihuWzBdLG5bM10pfWVsc2Ugbj1udWxsfSxlKSx0KGRvY3VtZW50KS5vbmUoIm1vdXNldXAiLGZ1bmN0aW9uKHQpe0xlLnN0b3AoKSxuJiYoK25bMF09PStuWzFdJiZaKG5bMF0sITEsdCksUWUoblswXSxuWzNdLCExLHQpKX0pfX1mdW5jdGlvbiBaKHQsZSxuKXtaZSgiZGF5Q2xpY2siLGFlW3JuKHQpLmNvbF0sdCxlLG4pfWZ1bmN0aW9uIEcodCxlKXtMZS5zdGFydChmdW5jdGlvbih0KXtpZigkZSgpLHQpaWYoQSh0KSlrKHQucm93LHQuY29sLHQucm93LHQuY29sKTtlbHNle3ZhciBlPUwodCksbj11KGQoZSksVWUoImRlZmF1bHRFdmVudE1pbnV0ZXMiKSk7SChlLG4pfX0sZSl9ZnVuY3Rpb24gJCh0LGUsbil7dmFyIHI9TGUuc3RvcCgpOyRlKCksciYmWmUoImRyb3AiLHQsTChyKSxBKHIpLGUsbil9dmFyIFE9dGhpcztRLnJlbmRlckFnZW5kYT1vLFEuc2V0V2lkdGg9dyxRLnNldEhlaWdodD1tLFEuYWZ0ZXJSZW5kZXI9RCxRLmRlZmF1bHRFdmVudEVuZD1qLFEudGltZVBvc2l0aW9uPV8sUS5nZXRJc0NlbGxBbGxEYXk9QSxRLmFsbERheVJvdz1QLFEuZ2V0Q29vcmRpbmF0ZUdyaWQ9ZnVuY3Rpb24oKXtyZXR1cm4gT2V9LFEuZ2V0SG92ZXJMaXN0ZW5lcj1mdW5jdGlvbigpe3JldHVybiBMZX0sUS5jb2xMZWZ0PUYsUS5jb2xSaWdodD16LFEuY29sQ29udGVudExlZnQ9TixRLmNvbENvbnRlbnRSaWdodD1XLFEuZ2V0RGF5U2VnbWVudENvbnRhaW5lcj1mdW5jdGlvbigpe3JldHVybiB1ZX0sUS5nZXRTbG90U2VnbWVudENvbnRhaW5lcj1mdW5jdGlvbigpe3JldHVybiBiZX0sUS5nZXRNaW5NaW51dGU9ZnVuY3Rpb24oKXtyZXR1cm4gQmV9LFEuZ2V0TWF4TWludXRlPWZ1bmN0aW9uKCl7cmV0dXJuIGplfSxRLmdldFNsb3RDb250YWluZXI9ZnVuY3Rpb24oKXtyZXR1cm4gZ2V9LFEuZ2V0Um93Q250PWZ1bmN0aW9uKCl7cmV0dXJuIDF9LFEuZ2V0Q29sQ250PWZ1bmN0aW9uKCl7cmV0dXJuIFdlfSxRLmdldENvbFdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuIHhlfSxRLmdldFNuYXBIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gemV9LFEuZ2V0U25hcE1pbnV0ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gUmV9LFEuZGVmYXVsdFNlbGVjdGlvbkVuZD1JLFEucmVuZGVyRGF5T3ZlcmxheT14LFEucmVuZGVyU2VsZWN0aW9uPVgsUS5jbGVhclNlbGVjdGlvbj1WLFEucmVwb3J0RGF5Q2xpY2s9WixRLmRyYWdTdGFydD1HLFEuZHJhZ1N0b3A9JCxmZS5jYWxsKFEsbixyLGEpLG1lLmNhbGwoUSkscGUuY2FsbChRKSx0ZS5jYWxsKFEpO3ZhciBLLGVlLG5lLHJlLGFlLG9lLGllLHNlLGxlLGNlLHVlLGRlLHZlLGhlLGdlLGJlLENlLE1lLEVlLFNlLFRlLHhlLEhlLEZlLFJlLE5lLHplLFdlLEFlLE9lLExlLF9lLFBlLHFlLFllLEJlLGplLEllLFhlLEplLFZlLFVlPVEub3B0LFplPVEudHJpZ2dlcixHZT1RLnJlbmRlck92ZXJsYXksJGU9US5jbGVhck92ZXJsYXlzLFFlPVEucmVwb3J0U2VsZWN0aW9uLEtlPVEudW5zZWxlY3QsdG49US5kYXlTZWxlY3Rpb25Nb3VzZWRvd24sZW49US5zbG90U2VnSHRtbCxubj1RLmNlbGxUb0RhdGUscm49US5kYXRlVG9DZWxsLGFuPVEucmFuZ2VUb1NlZ21lbnRzLG9uPXIuZm9ybWF0RGF0ZSxzbj17fTtZKG4uYWRkQ2xhc3MoImZjLWFnZW5kYSIpKSxPZT1uZXcgeWUoZnVuY3Rpb24oZSxuKXtmdW5jdGlvbiByKHQpe3JldHVybiBNYXRoLm1heChsLE1hdGgubWluKGMsdCkpfXZhciBhLG8saTtuZS5lYWNoKGZ1bmN0aW9uKGUscil7YT10KHIpLG89YS5vZmZzZXQoKS5sZWZ0LGUmJihpWzFdPW8pLGk9W29dLG5bZV09aX0pLGlbMV09bythLm91dGVyV2lkdGgoKSxVZSgiYWxsRGF5U2xvdCIpJiYoYT12ZSxvPWEub2Zmc2V0KCkudG9wLGVbMF09W28sbythLm91dGVySGVpZ2h0KCldKTtmb3IodmFyIHM9Z2Uub2Zmc2V0KCkudG9wLGw9aGUub2Zmc2V0KCkudG9wLGM9bCtoZS5vdXRlckhlaWdodCgpLHU9MDtBZSpOZT51O3UrKyllLnB1c2goW3Iocyt6ZSp1KSxyKHMremUqKHUrMSkpXSl9KSxMZT1uZXcgd2UoT2UpLF9lPW5ldyBEZShmdW5jdGlvbih0KXtyZXR1cm4gb2UuZXEodCl9KSxQZT1uZXcgRGUoZnVuY3Rpb24odCl7cmV0dXJuIGllLmVxKHQpfSl9ZnVuY3Rpb24gdGUoKXtmdW5jdGlvbiBuKHQsZSl7dmFyIG4scj10Lmxlbmd0aCxvPVtdLGk9W107Zm9yKG49MDtyPm47bisrKXRbbl0uYWxsRGF5P28ucHVzaCh0W25dKTppLnB1c2godFtuXSk7eSgiYWxsRGF5U2xvdCIpJiYodGUobyxlKSxrKCkpLHMoYShpKSxlKX1mdW5jdGlvbiByKCl7SCgpLmVtcHR5KCksRigpLmVtcHR5KCl9ZnVuY3Rpb24gYShlKXt2YXIgbixyLGEscyxsLGM9WSgpLGY9VygpLHY9eigpLGg9dC5tYXAoZSxpKSxnPVtdO2ZvcihyPTA7Yz5yO3IrKylmb3Iobj1QKDAsciksdShuLGYpLGw9byhlLGgsbix1KGQobiksdi1mKSksbD1lZShsKSxhPTA7bC5sZW5ndGg+YTthKyspcz1sW2FdLHMuY29sPXIsZy5wdXNoKHMpO3JldHVybiBnfWZ1bmN0aW9uIG8odCxlLG4scil7dmFyIGEsbyxpLHMsbCxjLHUsZix2PVtdLGg9dC5sZW5ndGg7Zm9yKGE9MDtoPmE7YSsrKW89dFthXSxpPW8uc3RhcnQscz1lW2FdLHM+biYmcj5pJiYobj5pPyhsPWQobiksdT0hMSk6KGw9aSx1PSEwKSxzPnI/KGM9ZChyKSxmPSExKTooYz1zLGY9ITApLHYucHVzaCh7ZXZlbnQ6byxzdGFydDpsLGVuZDpjLGlzU3RhcnQ6dSxpc0VuZDpmfSkpO3JldHVybiB2LnNvcnQodWUpfWZ1bmN0aW9uIGkodCl7cmV0dXJuIHQuZW5kP2QodC5lbmQpOnUoZCh0LnN0YXJ0KSx5KCJkZWZhdWx0RXZlbnRNaW51dGVzIikpfWZ1bmN0aW9uIHMobixyKXt2YXIgYSxvLGkscyxsLHUsZCx2LGgsZyxwLG0sYixELEMsTSxTPW4ubGVuZ3RoLFQ9IiIsaz1GKCksSD15KCJpc1JUTCIpO2ZvcihhPTA7Uz5hO2ErKylvPW5bYV0saT1vLmV2ZW50LHM9QShvLnN0YXJ0LG8uc3RhcnQpLGw9QShvLnN0YXJ0LG8uZW5kKSx1PUwoby5jb2wpLGQ9XyhvLmNvbCksdj1kLXUsZC09LjAyNSp2LHY9ZC11LGg9diooby5mb3J3YXJkQ29vcmQtby5iYWNrd2FyZENvb3JkKSx5KCJzbG90RXZlbnRPdmVybGFwIikmJihoPU1hdGgubWF4KDIqKGgtMTApLGgpKSxIPyhwPWQtby5iYWNrd2FyZENvb3JkKnYsZz1wLWgpOihnPXUrby5iYWNrd2FyZENvb3JkKnYscD1nK2gpLGc9TWF0aC5tYXgoZyx1KSxwPU1hdGgubWluKHAsZCksaD1wLWcsby50b3A9cyxvLmxlZnQ9ZyxvLm91dGVyV2lkdGg9aCxvLm91dGVySGVpZ2h0PWwtcyxUKz1jKGksbyk7Zm9yKGtbMF0uaW5uZXJIVE1MPVQsbT1rLmNoaWxkcmVuKCksYT0wO1M+YTthKyspbz1uW2FdLGk9by5ldmVudCxiPXQobVthXSksRD13KCJldmVudFJlbmRlciIsaSxpLGIpLEQ9PT0hMT9iLnJlbW92ZSgpOihEJiZEIT09ITAmJihiLnJlbW92ZSgpLGI9dChEKS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOm8udG9wLGxlZnQ6by5sZWZ0fSkuYXBwZW5kVG8oaykpLG8uZWxlbWVudD1iLGkuX2lkPT09cj9mKGksYixvKTpiWzBdLl9mY2k9YSxWKGksYikpO2ZvcihFKGssbixmKSxhPTA7Uz5hO2ErKylvPW5bYV0sKGI9by5lbGVtZW50KSYmKG8udnNpZGVzPVIoYiwhMCksby5oc2lkZXM9eChiLCEwKSxDPWIuZmluZCgiLmZjLWV2ZW50LXRpdGxlIiksQy5sZW5ndGgmJihvLmNvbnRlbnRUb3A9Q1swXS5vZmZzZXRUb3ApKTtmb3IoYT0wO1M+YTthKyspbz1uW2FdLChiPW8uZWxlbWVudCkmJihiWzBdLnN0eWxlLndpZHRoPU1hdGgubWF4KDAsby5vdXRlcldpZHRoLW8uaHNpZGVzKSsicHgiLE09TWF0aC5tYXgoMCxvLm91dGVySGVpZ2h0LW8udnNpZGVzKSxiWzBdLnN0eWxlLmhlaWdodD1NKyJweCIsaT1vLmV2ZW50LG8uY29udGVudFRvcCE9PWUmJjEwPk0tby5jb250ZW50VG9wJiYoYi5maW5kKCJkaXYuZmMtZXZlbnQtdGltZSIpLnRleHQocmUoaS5zdGFydCx5KCJ0aW1lRm9ybWF0IikpKyIgLSAiK2kudGl0bGUpLGIuZmluZCgiZGl2LmZjLWV2ZW50LXRpdGxlIikucmVtb3ZlKCkpLHcoImV2ZW50QWZ0ZXJSZW5kZXIiLGksaSxiKSl9ZnVuY3Rpb24gYyh0LGUpe3ZhciBuPSI8IixyPXQudXJsLGE9aih0LHkpLG89WyJmYy1ldmVudCIsImZjLWV2ZW50LXZlcnQiXTtyZXR1cm4gYih0KSYmby5wdXNoKCJmYy1ldmVudC1kcmFnZ2FibGUiKSxlLmlzU3RhcnQmJm8ucHVzaCgiZmMtZXZlbnQtc3RhcnQiKSxlLmlzRW5kJiZvLnB1c2goImZjLWV2ZW50LWVuZCIpLG89by5jb25jYXQodC5jbGFzc05hbWUpLHQuc291cmNlJiYobz1vLmNvbmNhdCh0LnNvdXJjZS5jbGFzc05hbWV8fFtdKSksbis9cj8iYSBocmVmPSciK3EodC51cmwpKyInIjoiZGl2IixuKz0iIGNsYXNzPSciK28uam9pbigiICIpKyInIisiIHN0eWxlPSIrIiciKyJwb3NpdGlvbjphYnNvbHV0ZTsiKyJ0b3A6IitlLnRvcCsicHg7IisibGVmdDoiK2UubGVmdCsicHg7IithKyInIisiPiIrIjxkaXYgY2xhc3M9J2ZjLWV2ZW50LWlubmVyJz4iKyI8ZGl2IGNsYXNzPSdmYy1ldmVudC10aW1lJz4iK3EoYWUodC5zdGFydCx0LmVuZCx5KCJ0aW1lRm9ybWF0IikpKSsiPC9kaXY+IisiPGRpdiBjbGFzcz0nZmMtZXZlbnQtdGl0bGUnPiIrcSh0LnRpdGxlfHwiIikrIjwvZGl2PiIrIjwvZGl2PiIrIjxkaXYgY2xhc3M9J2ZjLWV2ZW50LWJnJz48L2Rpdj4iLGUuaXNFbmQmJkQodCkmJihuKz0iPGRpdiBjbGFzcz0ndWktcmVzaXphYmxlLWhhbmRsZSB1aS1yZXNpemFibGUtcyc+PTwvZGl2PiIpLG4rPSI8LyIrKHI/ImEiOiJkaXYiKSsiPiJ9ZnVuY3Rpb24gZih0LGUsbil7dmFyIHI9ZS5maW5kKCJkaXYuZmMtZXZlbnQtdGltZSIpO2IodCkmJmcodCxlLHIpLG4uaXNFbmQmJkQodCkmJnAodCxlLHIpLFModCxlKX1mdW5jdGlvbiB2KHQsZSxuKXtmdW5jdGlvbiByKCl7Y3x8KGUud2lkdGgoYSkuaGVpZ2h0KCIiKS5kcmFnZ2FibGUoIm9wdGlvbiIsImdyaWQiLG51bGwpLGM9ITApfXZhciBhLG8saSxzPW4uaXNTdGFydCxjPSEwLHU9TigpLGY9QigpLHY9SSgpLGc9WCgpLHA9VygpO2UuZHJhZ2dhYmxlKHtvcGFjaXR5OnkoImRyYWdPcGFjaXR5IiwibW9udGgiKSxyZXZlcnREdXJhdGlvbjp5KCJkcmFnUmV2ZXJ0RHVyYXRpb24iKSxzdGFydDpmdW5jdGlvbihuLHApe3coImV2ZW50RHJhZ1N0YXJ0IixlLHQsbixwKSxaKHQsZSksYT1lLndpZHRoKCksdS5zdGFydChmdW5jdGlvbihuLGEpe2lmKEsoKSxuKXtvPSExO3ZhciB1PVAoMCxhLmNvbCkscD1QKDAsbi5jb2wpO2k9aChwLHUpLG4ucm93P3M/YyYmKGUud2lkdGgoZi0xMCksVChlLHYqTWF0aC5yb3VuZCgodC5lbmQ/KHQuZW5kLXQuc3RhcnQpL1JlOnkoImRlZmF1bHRFdmVudE1pbnV0ZXMiKSkvZykpLGUuZHJhZ2dhYmxlKCJvcHRpb24iLCJncmlkIixbZiwxXSksYz0hMSk6bz0hMDooUShsKGQodC5zdGFydCksaSksbChDKHQpLGkpKSxyKCkpLG89b3x8YyYmIWkKfWVsc2UgcigpLG89ITA7ZS5kcmFnZ2FibGUoIm9wdGlvbiIsInJldmVydCIsbyl9LG4sImRyYWciKX0sc3RvcDpmdW5jdGlvbihuLGEpe2lmKHUuc3RvcCgpLEsoKSx3KCJldmVudERyYWdTdG9wIixlLHQsbixhKSxvKXIoKSxlLmNzcygiZmlsdGVyIiwiIiksVSh0LGUpO2Vsc2V7dmFyIHM9MDtjfHwocz1NYXRoLnJvdW5kKChlLm9mZnNldCgpLnRvcC1KKCkub2Zmc2V0KCkudG9wKS92KSpnK3AtKDYwKnQuc3RhcnQuZ2V0SG91cnMoKSt0LnN0YXJ0LmdldE1pbnV0ZXMoKSkpLEcodGhpcyx0LGkscyxjLG4sYSl9fX0pfWZ1bmN0aW9uIGcodCxlLG4pe2Z1bmN0aW9uIHIoKXtLKCkscyYmKGY/KG4uaGlkZSgpLGUuZHJhZ2dhYmxlKCJvcHRpb24iLCJncmlkIixudWxsKSxRKGwoZCh0LnN0YXJ0KSxiKSxsKEModCksYikpKTooYShEKSxuLmNzcygiZGlzcGxheSIsIiIpLGUuZHJhZ2dhYmxlKCJvcHRpb24iLCJncmlkIixbVCx4XSkpKX1mdW5jdGlvbiBhKGUpe3ZhciByLGE9dShkKHQuc3RhcnQpLGUpO3QuZW5kJiYocj11KGQodC5lbmQpLGUpKSxuLnRleHQoYWUoYSxyLHkoInRpbWVGb3JtYXQiKSkpfXZhciBvLGkscyxjLGYsdixnLHAsYixELE0sRT1tLmdldENvb3JkaW5hdGVHcmlkKCksUz1ZKCksVD1CKCkseD1JKCksaz1YKCk7ZS5kcmFnZ2FibGUoe3Njcm9sbDohMSxncmlkOltULHhdLGF4aXM6MT09Uz8ieSI6ITEsb3BhY2l0eTp5KCJkcmFnT3BhY2l0eSIpLHJldmVydER1cmF0aW9uOnkoImRyYWdSZXZlcnREdXJhdGlvbiIpLHN0YXJ0OmZ1bmN0aW9uKG4scil7dygiZXZlbnREcmFnU3RhcnQiLGUsdCxuLHIpLFoodCxlKSxFLmJ1aWxkKCksbz1lLnBvc2l0aW9uKCksaT1FLmNlbGwobi5wYWdlWCxuLnBhZ2VZKSxzPWM9ITAsZj12PU8oaSksZz1wPTAsYj0wLEQ9TT0wfSxkcmFnOmZ1bmN0aW9uKHQsbil7dmFyIGE9RS5jZWxsKHQucGFnZVgsdC5wYWdlWSk7aWYocz0hIWEpe2lmKGY9TyhhKSxnPU1hdGgucm91bmQoKG4ucG9zaXRpb24ubGVmdC1vLmxlZnQpL1QpLGchPXApe3ZhciBsPVAoMCxpLmNvbCksdT1pLmNvbCtnO3U9TWF0aC5tYXgoMCx1KSx1PU1hdGgubWluKFMtMSx1KTt2YXIgZD1QKDAsdSk7Yj1oKGQsbCl9Znx8KEQ9TWF0aC5yb3VuZCgobi5wb3NpdGlvbi50b3Atby50b3ApL3gpKmspfShzIT1jfHxmIT12fHxnIT1wfHxEIT1NKSYmKHIoKSxjPXMsdj1mLHA9ZyxNPUQpLGUuZHJhZ2dhYmxlKCJvcHRpb24iLCJyZXZlcnQiLCFzKX0sc3RvcDpmdW5jdGlvbihuLGEpe0soKSx3KCJldmVudERyYWdTdG9wIixlLHQsbixhKSxzJiYoZnx8Ynx8RCk/Ryh0aGlzLHQsYixmPzA6RCxmLG4sYSk6KHM9ITAsZj0hMSxnPTAsYj0wLEQ9MCxyKCksZS5jc3MoImZpbHRlciIsIiIpLGUuY3NzKG8pLFUodCxlKSl9fSl9ZnVuY3Rpb24gcCh0LGUsbil7dmFyIHIsYSxvPUkoKSxpPVgoKTtlLnJlc2l6YWJsZSh7aGFuZGxlczp7czoiLnVpLXJlc2l6YWJsZS1oYW5kbGUifSxncmlkOm8sc3RhcnQ6ZnVuY3Rpb24obixvKXtyPWE9MCxaKHQsZSksdygiZXZlbnRSZXNpemVTdGFydCIsdGhpcyx0LG4sbyl9LHJlc2l6ZTpmdW5jdGlvbihzLGwpe3I9TWF0aC5yb3VuZCgoTWF0aC5tYXgobyxlLmhlaWdodCgpKS1sLm9yaWdpbmFsU2l6ZS5oZWlnaHQpL28pLHIhPWEmJihuLnRleHQoYWUodC5zdGFydCxyfHx0LmVuZD91KE0odCksaSpyKTpudWxsLHkoInRpbWVGb3JtYXQiKSkpLGE9cil9LHN0b3A6ZnVuY3Rpb24obixhKXt3KCJldmVudFJlc2l6ZVN0b3AiLHRoaXMsdCxuLGEpLHI/JCh0aGlzLHQsMCxpKnIsbixhKTpVKHQsZSl9fSl9dmFyIG09dGhpczttLnJlbmRlckV2ZW50cz1uLG0uY2xlYXJFdmVudHM9cixtLnNsb3RTZWdIdG1sPWMsZGUuY2FsbChtKTt2YXIgeT1tLm9wdCx3PW0udHJpZ2dlcixiPW0uaXNFdmVudERyYWdnYWJsZSxEPW0uaXNFdmVudFJlc2l6YWJsZSxNPW0uZXZlbnRFbmQsUz1tLmV2ZW50RWxlbWVudEhhbmRsZXJzLGs9bS5zZXRIZWlnaHQsSD1tLmdldERheVNlZ21lbnRDb250YWluZXIsRj1tLmdldFNsb3RTZWdtZW50Q29udGFpbmVyLE49bS5nZXRIb3Zlckxpc3RlbmVyLHo9bS5nZXRNYXhNaW51dGUsVz1tLmdldE1pbk1pbnV0ZSxBPW0udGltZVBvc2l0aW9uLE89bS5nZXRJc0NlbGxBbGxEYXksTD1tLmNvbENvbnRlbnRMZWZ0LF89bS5jb2xDb250ZW50UmlnaHQsUD1tLmNlbGxUb0RhdGUsWT1tLmdldENvbENudCxCPW0uZ2V0Q29sV2lkdGgsST1tLmdldFNuYXBIZWlnaHQsWD1tLmdldFNuYXBNaW51dGVzLEo9bS5nZXRTbG90Q29udGFpbmVyLFY9bS5yZXBvcnRFdmVudEVsZW1lbnQsVT1tLnNob3dFdmVudHMsWj1tLmhpZGVFdmVudHMsRz1tLmV2ZW50RHJvcCwkPW0uZXZlbnRSZXNpemUsUT1tLnJlbmRlckRheU92ZXJsYXksSz1tLmNsZWFyT3ZlcmxheXMsdGU9bS5yZW5kZXJEYXlFdmVudHMsbmU9bS5jYWxlbmRhcixyZT1uZS5mb3JtYXREYXRlLGFlPW5lLmZvcm1hdERhdGVzO20uZHJhZ2dhYmxlRGF5RXZlbnQ9dn1mdW5jdGlvbiBlZSh0KXt2YXIgZSxuPW5lKHQpLHI9blswXTtpZihyZShuKSxyKXtmb3IoZT0wO3IubGVuZ3RoPmU7ZSsrKWFlKHJbZV0pO2ZvcihlPTA7ci5sZW5ndGg+ZTtlKyspb2UocltlXSwwLDApfXJldHVybiBpZShuKX1mdW5jdGlvbiBuZSh0KXt2YXIgZSxuLHIsYT1bXTtmb3IoZT0wO3QubGVuZ3RoPmU7ZSsrKXtmb3Iobj10W2VdLHI9MDthLmxlbmd0aD5yJiZzZShuLGFbcl0pLmxlbmd0aDtyKyspOyhhW3JdfHwoYVtyXT1bXSkpLnB1c2gobil9cmV0dXJuIGF9ZnVuY3Rpb24gcmUodCl7dmFyIGUsbixyLGEsbztmb3IoZT0wO3QubGVuZ3RoPmU7ZSsrKWZvcihuPXRbZV0scj0wO24ubGVuZ3RoPnI7cisrKWZvcihhPW5bcl0sYS5mb3J3YXJkU2Vncz1bXSxvPWUrMTt0Lmxlbmd0aD5vO28rKylzZShhLHRbb10sYS5mb3J3YXJkU2Vncyl9ZnVuY3Rpb24gYWUodCl7dmFyIG4scixhPXQuZm9yd2FyZFNlZ3Msbz0wO2lmKHQuZm9yd2FyZFByZXNzdXJlPT09ZSl7Zm9yKG49MDthLmxlbmd0aD5uO24rKylyPWFbbl0sYWUociksbz1NYXRoLm1heChvLDErci5mb3J3YXJkUHJlc3N1cmUpO3QuZm9yd2FyZFByZXNzdXJlPW99fWZ1bmN0aW9uIG9lKHQsbixyKXt2YXIgYSxvPXQuZm9yd2FyZFNlZ3M7aWYodC5mb3J3YXJkQ29vcmQ9PT1lKWZvcihvLmxlbmd0aD8oby5zb3J0KGNlKSxvZShvWzBdLG4rMSxyKSx0LmZvcndhcmRDb29yZD1vWzBdLmJhY2t3YXJkQ29vcmQpOnQuZm9yd2FyZENvb3JkPTEsdC5iYWNrd2FyZENvb3JkPXQuZm9yd2FyZENvb3JkLSh0LmZvcndhcmRDb29yZC1yKS8obisxKSxhPTA7by5sZW5ndGg+YTthKyspb2Uob1thXSwwLHQuZm9yd2FyZENvb3JkKX1mdW5jdGlvbiBpZSh0KXt2YXIgZSxuLHIsYT1bXTtmb3IoZT0wO3QubGVuZ3RoPmU7ZSsrKWZvcihuPXRbZV0scj0wO24ubGVuZ3RoPnI7cisrKWEucHVzaChuW3JdKTtyZXR1cm4gYX1mdW5jdGlvbiBzZSh0LGUsbil7bj1ufHxbXTtmb3IodmFyIHI9MDtlLmxlbmd0aD5yO3IrKylsZSh0LGVbcl0pJiZuLnB1c2goZVtyXSk7cmV0dXJuIG59ZnVuY3Rpb24gbGUodCxlKXtyZXR1cm4gdC5lbmQ+ZS5zdGFydCYmdC5zdGFydDxlLmVuZH1mdW5jdGlvbiBjZSh0LGUpe3JldHVybiBlLmZvcndhcmRQcmVzc3VyZS10LmZvcndhcmRQcmVzc3VyZXx8KHQuYmFja3dhcmRDb29yZHx8MCktKGUuYmFja3dhcmRDb29yZHx8MCl8fHVlKHQsZSl9ZnVuY3Rpb24gdWUodCxlKXtyZXR1cm4gdC5zdGFydC1lLnN0YXJ0fHxlLmVuZC1lLnN0YXJ0LSh0LmVuZC10LnN0YXJ0KXx8KHQuZXZlbnQudGl0bGV8fCIiKS5sb2NhbGVDb21wYXJlKGUuZXZlbnQudGl0bGUpfWZ1bmN0aW9uIGZlKG4scixhKXtmdW5jdGlvbiBvKGUsbil7dmFyIHI9VltlXTtyZXR1cm4gdC5pc1BsYWluT2JqZWN0KHIpP1AocixufHxhKTpyfWZ1bmN0aW9uIGkodCxlKXtyZXR1cm4gci50cmlnZ2VyLmFwcGx5KHIsW3QsZXx8X10uY29uY2F0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywyKSxbX10pKX1mdW5jdGlvbiBzKHQpe3ZhciBlPXQuc291cmNlfHx7fTtyZXR1cm4gWCh0LnN0YXJ0RWRpdGFibGUsZS5zdGFydEVkaXRhYmxlLG8oImV2ZW50U3RhcnRFZGl0YWJsZSIpLHQuZWRpdGFibGUsZS5lZGl0YWJsZSxvKCJlZGl0YWJsZSIpKSYmIW8oImRpc2FibGVEcmFnZ2luZyIpfWZ1bmN0aW9uIGModCl7dmFyIGU9dC5zb3VyY2V8fHt9O3JldHVybiBYKHQuZHVyYXRpb25FZGl0YWJsZSxlLmR1cmF0aW9uRWRpdGFibGUsbygiZXZlbnREdXJhdGlvbkVkaXRhYmxlIiksdC5lZGl0YWJsZSxlLmVkaXRhYmxlLG8oImVkaXRhYmxlIikpJiYhbygiZGlzYWJsZVJlc2l6aW5nIil9ZnVuY3Rpb24gZih0KXtqPXt9O3ZhciBlLG4scj10Lmxlbmd0aDtmb3IoZT0wO3I+ZTtlKyspbj10W2VdLGpbbi5faWRdP2pbbi5faWRdLnB1c2gobik6altuLl9pZF09W25dfWZ1bmN0aW9uIHYoKXtqPXt9LEk9e30sSj1bXX1mdW5jdGlvbiBnKHQpe3JldHVybiB0LmVuZD9kKHQuZW5kKTpxKHQpfWZ1bmN0aW9uIHAodCxlKXtKLnB1c2goe2V2ZW50OnQsZWxlbWVudDplfSksSVt0Ll9pZF0/SVt0Ll9pZF0ucHVzaChlKTpJW3QuX2lkXT1bZV19ZnVuY3Rpb24gbSgpe3QuZWFjaChKLGZ1bmN0aW9uKHQsZSl7Xy50cmlnZ2VyKCJldmVudERlc3Ryb3kiLGUuZXZlbnQsZS5ldmVudCxlLmVsZW1lbnQpfSl9ZnVuY3Rpb24geSh0LG4pe24uY2xpY2soZnVuY3Rpb24ocil7cmV0dXJuIG4uaGFzQ2xhc3MoInVpLWRyYWdnYWJsZS1kcmFnZ2luZyIpfHxuLmhhc0NsYXNzKCJ1aS1yZXNpemFibGUtcmVzaXppbmciKT9lOmkoImV2ZW50Q2xpY2siLHRoaXMsdCxyKX0pLmhvdmVyKGZ1bmN0aW9uKGUpe2koImV2ZW50TW91c2VvdmVyIix0aGlzLHQsZSl9LGZ1bmN0aW9uKGUpe2koImV2ZW50TW91c2VvdXQiLHRoaXMsdCxlKX0pfWZ1bmN0aW9uIHcodCxlKXtEKHQsZSwic2hvdyIpfWZ1bmN0aW9uIGIodCxlKXtEKHQsZSwiaGlkZSIpfWZ1bmN0aW9uIEQodCxlLG4pe3ZhciByLGE9SVt0Ll9pZF0sbz1hLmxlbmd0aDtmb3Iocj0wO28+cjtyKyspZSYmYVtyXVswXT09ZVswXXx8YVtyXVtuXSgpfWZ1bmN0aW9uIEModCxlLG4scixhLG8scyl7dmFyIGw9ZS5hbGxEYXksYz1lLl9pZDtFKGpbY10sbixyLGEpLGkoImV2ZW50RHJvcCIsdCxlLG4scixhLGZ1bmN0aW9uKCl7RShqW2NdLC1uLC1yLGwpLEIoYyl9LG8scyksQihjKX1mdW5jdGlvbiBNKHQsZSxuLHIsYSxvKXt2YXIgcz1lLl9pZDtTKGpbc10sbixyKSxpKCJldmVudFJlc2l6ZSIsdCxlLG4scixmdW5jdGlvbigpe1MoaltzXSwtbiwtciksQihzKX0sYSxvKSxCKHMpfWZ1bmN0aW9uIEUodCxuLHIsYSl7cj1yfHwwO2Zvcih2YXIgbyxpPXQubGVuZ3RoLHM9MDtpPnM7cysrKW89dFtzXSxhIT09ZSYmKG8uYWxsRGF5PWEpLHUobChvLnN0YXJ0LG4sITApLHIpLG8uZW5kJiYoby5lbmQ9dShsKG8uZW5kLG4sITApLHIpKSxZKG8sVil9ZnVuY3Rpb24gUyh0LGUsbil7bj1ufHwwO2Zvcih2YXIgcixhPXQubGVuZ3RoLG89MDthPm87bysrKXI9dFtvXSxyLmVuZD11KGwoZyhyKSxlLCEwKSxuKSxZKHIsVil9ZnVuY3Rpb24gVCh0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJih0PXQuZ2V0RGF5KCkpLEdbdF19ZnVuY3Rpb24geCgpe3JldHVybiBVfWZ1bmN0aW9uIGsodCxlLG4pe2ZvcihlPWV8fDE7R1sodC5nZXREYXkoKSsobj9lOjApKzcpJTddOylsKHQsZSl9ZnVuY3Rpb24gSCgpe3ZhciB0PUYuYXBwbHkobnVsbCxhcmd1bWVudHMpLGU9Uih0KSxuPU4oZSk7cmV0dXJuIG59ZnVuY3Rpb24gRih0LGUpe3ZhciBuPV8uZ2V0Q29sQ250KCkscj1LPy0xOjEsYT1LP24tMTowOyJvYmplY3QiPT10eXBlb2YgdCYmKGU9dC5jb2wsdD10LnJvdyk7dmFyIG89dCpuKyhlKnIrYSk7cmV0dXJuIG99ZnVuY3Rpb24gUih0KXt2YXIgZT1fLnZpc1N0YXJ0LmdldERheSgpO3JldHVybiB0Kz0kW2VdLDcqTWF0aC5mbG9vcih0L1UpK1FbKHQlVStVKSVVXS1lfWZ1bmN0aW9uIE4odCl7dmFyIGU9ZChfLnZpc1N0YXJ0KTtyZXR1cm4gbChlLHQpLGV9ZnVuY3Rpb24geih0KXt2YXIgZT1XKHQpLG49QShlKSxyPU8obik7cmV0dXJuIHJ9ZnVuY3Rpb24gVyh0KXtyZXR1cm4gaCh0LF8udmlzU3RhcnQpfWZ1bmN0aW9uIEEodCl7dmFyIGU9Xy52aXNTdGFydC5nZXREYXkoKTtyZXR1cm4gdCs9ZSxNYXRoLmZsb29yKHQvNykqVSskWyh0JTcrNyklN10tJFtlXX1mdW5jdGlvbiBPKHQpe3ZhciBlPV8uZ2V0Q29sQ250KCksbj1LPy0xOjEscj1LP2UtMTowLGE9TWF0aC5mbG9vcih0L2UpLG89KHQlZStlKSVlKm4rcjtyZXR1cm57cm93OmEsY29sOm99fWZ1bmN0aW9uIEwodCxlKXtmb3IodmFyIG49Xy5nZXRSb3dDbnQoKSxyPV8uZ2V0Q29sQ250KCksYT1bXSxvPVcodCksaT1XKGUpLHM9QShvKSxsPUEoaSktMSxjPTA7bj5jO2MrKyl7dmFyIHU9YypyLGY9dStyLTEsZD1NYXRoLm1heChzLHUpLHY9TWF0aC5taW4obCxmKTtpZih2Pj1kKXt2YXIgaD1PKGQpLGc9Tyh2KSxwPVtoLmNvbCxnLmNvbF0uc29ydCgpLG09UihkKT09byx5PVIodikrMT09aTthLnB1c2goe3JvdzpjLGxlZnRDb2w6cFswXSxyaWdodENvbDpwWzFdLGlzU3RhcnQ6bSxpc0VuZDp5fSl9fXJldHVybiBhfXZhciBfPXRoaXM7Xy5lbGVtZW50PW4sXy5jYWxlbmRhcj1yLF8ubmFtZT1hLF8ub3B0PW8sXy50cmlnZ2VyPWksXy5pc0V2ZW50RHJhZ2dhYmxlPXMsXy5pc0V2ZW50UmVzaXphYmxlPWMsXy5zZXRFdmVudERhdGE9ZixfLmNsZWFyRXZlbnREYXRhPXYsXy5ldmVudEVuZD1nLF8ucmVwb3J0RXZlbnRFbGVtZW50PXAsXy50cmlnZ2VyRXZlbnREZXN0cm95PW0sXy5ldmVudEVsZW1lbnRIYW5kbGVycz15LF8uc2hvd0V2ZW50cz13LF8uaGlkZUV2ZW50cz1iLF8uZXZlbnREcm9wPUMsXy5ldmVudFJlc2l6ZT1NO3ZhciBxPV8uZGVmYXVsdEV2ZW50RW5kLFk9ci5ub3JtYWxpemVFdmVudCxCPXIucmVwb3J0RXZlbnRDaGFuZ2Usaj17fSxJPXt9LEo9W10sVj1yLm9wdGlvbnM7Xy5pc0hpZGRlbkRheT1ULF8uc2tpcEhpZGRlbkRheXM9ayxfLmdldENlbGxzUGVyV2Vlaz14LF8uZGF0ZVRvQ2VsbD16LF8uZGF0ZVRvRGF5T2Zmc2V0PVcsXy5kYXlPZmZzZXRUb0NlbGxPZmZzZXQ9QSxfLmNlbGxPZmZzZXRUb0NlbGw9TyxfLmNlbGxUb0RhdGU9SCxfLmNlbGxUb0NlbGxPZmZzZXQ9RixfLmNlbGxPZmZzZXRUb0RheU9mZnNldD1SLF8uZGF5T2Zmc2V0VG9EYXRlPU4sXy5yYW5nZVRvU2VnbWVudHM9TDt2YXIgVSxaPW8oImhpZGRlbkRheXMiKXx8W10sRz1bXSwkPVtdLFE9W10sSz1vKCJpc1JUTCIpOyhmdW5jdGlvbigpe28oIndlZWtlbmRzIik9PT0hMSYmWi5wdXNoKDAsNik7Zm9yKHZhciBlPTAsbj0wOzc+ZTtlKyspJFtlXT1uLEdbZV09LTEhPXQuaW5BcnJheShlLFopLEdbZV18fChRW25dPWUsbisrKTtpZihVPW4sIVUpdGhyb3ciaW52YWxpZCBoaWRkZW5EYXlzIn0pKCl9ZnVuY3Rpb24gZGUoKXtmdW5jdGlvbiBlKHQsZSl7dmFyIG49cih0LCExLCEwKTtoZShuLGZ1bmN0aW9uKHQsZSl7Tih0LmV2ZW50LGUpfSksdyhuLGUpLGhlKG4sZnVuY3Rpb24odCxlKXtrKCJldmVudEFmdGVyUmVuZGVyIix0LmV2ZW50LHQuZXZlbnQsZSl9KX1mdW5jdGlvbiBuKHQsZSxuKXt2YXIgYT1yKFt0XSwhMCwhMSksbz1bXTtyZXR1cm4gaGUoYSxmdW5jdGlvbih0LHIpe3Qucm93PT09ZSYmci5jc3MoInRvcCIsbiksby5wdXNoKHJbMF0pfSksb31mdW5jdGlvbiByKGUsbixyKXt2YXIgbyxsLGM9WigpLGQ9bj90KCI8ZGl2Lz4iKTpjLHY9YShlKTtyZXR1cm4gaSh2KSxvPXModiksZFswXS5pbm5lckhUTUw9byxsPWQuY2hpbGRyZW4oKSxuJiZjLmFwcGVuZChsKSx1KHYsbCksaGUodixmdW5jdGlvbih0LGUpe3QuaHNpZGVzPXgoZSwhMCl9KSxoZSh2LGZ1bmN0aW9uKHQsZSl7ZS53aWR0aChNYXRoLm1heCgwLHQub3V0ZXJXaWR0aC10LmhzaWRlcykpfSksaGUodixmdW5jdGlvbih0LGUpe3Qub3V0ZXJIZWlnaHQ9ZS5vdXRlckhlaWdodCghMCl9KSxmKHYsciksdn1mdW5jdGlvbiBhKHQpe2Zvcih2YXIgZT1bXSxuPTA7dC5sZW5ndGg+bjtuKyspe3ZhciByPW8odFtuXSk7ZS5wdXNoLmFwcGx5KGUscil9cmV0dXJuIGV9ZnVuY3Rpb24gbyh0KXtmb3IodmFyIGU9dC5zdGFydCxuPUModCkscj1lZShlLG4pLGE9MDtyLmxlbmd0aD5hO2ErKylyW2FdLmV2ZW50PXQ7cmV0dXJuIHJ9ZnVuY3Rpb24gaSh0KXtmb3IodmFyIGU9VCgiaXNSVEwiKSxuPTA7dC5sZW5ndGg+bjtuKyspe3ZhciByPXRbbl0sYT0oZT9yLmlzRW5kOnIuaXNTdGFydCk/VjpYLG89KGU/ci5pc1N0YXJ0OnIuaXNFbmQpP1U6SixpPWEoci5sZWZ0Q29sKSxzPW8oci5yaWdodENvbCk7ci5sZWZ0PWksci5vdXRlcldpZHRoPXMtaX19ZnVuY3Rpb24gcyh0KXtmb3IodmFyIGU9IiIsbj0wO3QubGVuZ3RoPm47bisrKWUrPWModFtuXSk7cmV0dXJuIGV9ZnVuY3Rpb24gYyh0KXt2YXIgZT0iIixuPVQoImlzUlRMIikscj10LmV2ZW50LGE9ci51cmwsbz1bImZjLWV2ZW50IiwiZmMtZXZlbnQtaG9yaSJdO0gocikmJm8ucHVzaCgiZmMtZXZlbnQtZHJhZ2dhYmxlIiksdC5pc1N0YXJ0JiZvLnB1c2goImZjLWV2ZW50LXN0YXJ0IiksdC5pc0VuZCYmby5wdXNoKCJmYy1ldmVudC1lbmQiKSxvPW8uY29uY2F0KHIuY2xhc3NOYW1lKSxyLnNvdXJjZSYmKG89by5jb25jYXQoci5zb3VyY2UuY2xhc3NOYW1lfHxbXSkpO3ZhciBpPWoocixUKTtyZXR1cm4gZSs9YT8iPGEgaHJlZj0nIitxKGEpKyInIjoiPGRpdiIsZSs9IiBjbGFzcz0nIitvLmpvaW4oIiAiKSsiJyIrIiBzdHlsZT0iKyInIisicG9zaXRpb246YWJzb2x1dGU7IisibGVmdDoiK3QubGVmdCsicHg7IitpKyInIisiPiIrIjxkaXYgY2xhc3M9J2ZjLWV2ZW50LWlubmVyJz4iLCFyLmFsbERheSYmdC5pc1N0YXJ0JiYoZSs9IjxzcGFuIGNsYXNzPSdmYy1ldmVudC10aW1lJz4iK3EoRyhyLnN0YXJ0LHIuZW5kLFQoInRpbWVGb3JtYXQiKSkpKyI8L3NwYW4+IiksZSs9IjxzcGFuIGNsYXNzPSdmYy1ldmVudC10aXRsZSc+IitxKHIudGl0bGV8fCIiKSsiPC9zcGFuPiIrIjwvZGl2PiIsdC5pc0VuZCYmRihyKSYmKGUrPSI8ZGl2IGNsYXNzPSd1aS1yZXNpemFibGUtaGFuZGxlIHVpLXJlc2l6YWJsZS0iKyhuPyJ3IjoiZSIpKyInPiIrIiZuYnNwOyZuYnNwOyZuYnNwOyIrIjwvZGl2PiIpLGUrPSI8LyIrKGE/ImEiOiJkaXYiKSsiPiJ9ZnVuY3Rpb24gdShlLG4pe2Zvcih2YXIgcj0wO2UubGVuZ3RoPnI7cisrKXt2YXIgYT1lW3JdLG89YS5ldmVudCxpPW4uZXEocikscz1rKCJldmVudFJlbmRlciIsbyxvLGkpO3M9PT0hMT9pLnJlbW92ZSgpOihzJiZzIT09ITAmJihzPXQocykuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLGxlZnQ6YS5sZWZ0fSksaS5yZXBsYWNlV2l0aChzKSxpPXMpLGEuZWxlbWVudD1pKX19ZnVuY3Rpb24gZih0LGUpe3ZhciBuPXYodCkscj15KCksYT1bXTtpZihlKWZvcih2YXIgbz0wO3IubGVuZ3RoPm87bysrKXJbb10uaGVpZ2h0KG5bb10pO2Zvcih2YXIgbz0wO3IubGVuZ3RoPm87bysrKWEucHVzaChyW29dLnBvc2l0aW9uKCkudG9wKTtoZSh0LGZ1bmN0aW9uKHQsZSl7ZS5jc3MoInRvcCIsYVt0LnJvd10rdC50b3ApfSl9ZnVuY3Rpb24gdih0KXtmb3IodmFyIGU9UCgpLG49QigpLHI9W10sYT1nKHQpLG89MDtlPm87bysrKXtmb3IodmFyIGk9YVtvXSxzPVtdLGw9MDtuPmw7bCsrKXMucHVzaCgwKTtmb3IodmFyIGM9MDtpLmxlbmd0aD5jO2MrKyl7dmFyIHU9aVtjXTt1LnRvcD1MKHMuc2xpY2UodS5sZWZ0Q29sLHUucmlnaHRDb2wrMSkpO2Zvcih2YXIgbD11LmxlZnRDb2w7dS5yaWdodENvbD49bDtsKyspc1tsXT11LnRvcCt1Lm91dGVySGVpZ2h0fXIucHVzaChMKHMpKX1yZXR1cm4gcn1mdW5jdGlvbiBnKHQpe3ZhciBlLG4scixhPVAoKSxvPVtdO2ZvcihlPTA7dC5sZW5ndGg+ZTtlKyspbj10W2VdLHI9bi5yb3csbi5lbGVtZW50JiYob1tyXT9vW3JdLnB1c2gobik6b1tyXT1bbl0pO2ZvcihyPTA7YT5yO3IrKylvW3JdPXAob1tyXXx8W10pO3JldHVybiBvfWZ1bmN0aW9uIHAodCl7Zm9yKHZhciBlPVtdLG49bSh0KSxyPTA7bi5sZW5ndGg+cjtyKyspZS5wdXNoLmFwcGx5KGUsbltyXSk7cmV0dXJuIGV9ZnVuY3Rpb24gbSh0KXt0LnNvcnQoZ2UpO2Zvcih2YXIgZT1bXSxuPTA7dC5sZW5ndGg+bjtuKyspe2Zvcih2YXIgcj10W25dLGE9MDtlLmxlbmd0aD5hJiZ2ZShyLGVbYV0pO2ErKyk7ZVthXT9lW2FdLnB1c2gocik6ZVthXT1bcl19cmV0dXJuIGV9ZnVuY3Rpb24geSgpe3ZhciB0LGU9UCgpLG49W107Zm9yKHQ9MDtlPnQ7dCsrKW5bdF09SSh0KS5maW5kKCJkaXYuZmMtZGF5LWNvbnRlbnQgPiBkaXYiKTtyZXR1cm4gbn1mdW5jdGlvbiB3KHQsZSl7dmFyIG49WigpO2hlKHQsZnVuY3Rpb24odCxuLHIpe3ZhciBhPXQuZXZlbnQ7YS5faWQ9PT1lP2IoYSxuLHQpOm5bMF0uX2ZjaT1yfSksRShuLHQsYil9ZnVuY3Rpb24gYih0LGUsbil7SCh0KSYmUy5kcmFnZ2FibGVEYXlFdmVudCh0LGUsbiksbi5pc0VuZCYmRih0KSYmUy5yZXNpemFibGVEYXlFdmVudCh0LGUsbikseih0LGUpfWZ1bmN0aW9uIEQodCxlKXt2YXIgbixyPXRlKCk7ZS5kcmFnZ2FibGUoe2RlbGF5OjUwLG9wYWNpdHk6VCgiZHJhZ09wYWNpdHkiKSxyZXZlcnREdXJhdGlvbjpUKCJkcmFnUmV2ZXJ0RHVyYXRpb24iKSxzdGFydDpmdW5jdGlvbihhLG8pe2soImV2ZW50RHJhZ1N0YXJ0IixlLHQsYSxvKSxBKHQsZSksci5zdGFydChmdW5jdGlvbihyLGEsbyxpKXtpZihlLmRyYWdnYWJsZSgib3B0aW9uIiwicmV2ZXJ0Iiwhcnx8IW8mJiFpKSxRKCkscil7dmFyIHM9bmUoYSksYz1uZShyKTtuPWgoYyxzKSwkKGwoZCh0LnN0YXJ0KSxuKSxsKEModCksbikpfWVsc2Ugbj0wfSxhLCJkcmFnIil9LHN0b3A6ZnVuY3Rpb24oYSxvKXtyLnN0b3AoKSxRKCksaygiZXZlbnREcmFnU3RvcCIsZSx0LGEsbyksbj9PKHRoaXMsdCxuLDAsdC5hbGxEYXksYSxvKTooZS5jc3MoImZpbHRlciIsIiIpLFcodCxlKSl9fSl9ZnVuY3Rpb24gTShlLHIsYSl7dmFyIG89VCgiaXNSVEwiKSxpPW8/InciOiJlIixzPXIuZmluZCgiLnVpLXJlc2l6YWJsZS0iK2kpLGM9ITE7WShyKSxyLm1vdXNlZG93bihmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCl9KS5jbGljayhmdW5jdGlvbih0KXtjJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkpfSkscy5tb3VzZWRvd24oZnVuY3Rpb24obyl7ZnVuY3Rpb24gcyhuKXtrKCJldmVudFJlc2l6ZVN0b3AiLHRoaXMsZSxuKSx0KCJib2R5IikuY3NzKCJjdXJzb3IiLCIiKSx1LnN0b3AoKSxRKCksZiYmXyh0aGlzLGUsZiwwLG4pLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtjPSExfSwwKX1pZigxPT1vLndoaWNoKXtjPSEwO3ZhciB1PXRlKCk7UCgpLEIoKTt2YXIgZixkLHY9ci5jc3MoInRvcCIpLGg9dC5leHRlbmQoe30sZSksZz1pZShvZShlLnN0YXJ0KSk7SygpLHQoImJvZHkiKS5jc3MoImN1cnNvciIsaSsiLXJlc2l6ZSIpLm9uZSgibW91c2V1cCIscyksaygiZXZlbnRSZXNpemVTdGFydCIsdGhpcyxlLG8pLHUuc3RhcnQoZnVuY3Rpb24ocixvKXtpZihyKXt2YXIgcz1yZShvKSxjPXJlKHIpO2lmKGM9TWF0aC5tYXgoYyxnKSxmPWFlKGMpLWFlKHMpKXtoLmVuZD1sKFIoZSksZiwhMCk7dmFyIHU9ZDtkPW4oaCxhLnJvdyx2KSxkPXQoZCksZC5maW5kKCIqIikuY3NzKCJjdXJzb3IiLGkrIi1yZXNpemUiKSx1JiZ1LnJlbW92ZSgpLEEoZSl9ZWxzZSBkJiYoVyhlKSxkLnJlbW92ZSgpLGQ9bnVsbCk7USgpLCQoZS5zdGFydCxsKEMoZSksZikpfX0sbyl9fSl9dmFyIFM9dGhpcztTLnJlbmRlckRheUV2ZW50cz1lLFMuZHJhZ2dhYmxlRGF5RXZlbnQ9RCxTLnJlc2l6YWJsZURheUV2ZW50PU07dmFyIFQ9Uy5vcHQsaz1TLnRyaWdnZXIsSD1TLmlzRXZlbnREcmFnZ2FibGUsRj1TLmlzRXZlbnRSZXNpemFibGUsUj1TLmV2ZW50RW5kLE49Uy5yZXBvcnRFdmVudEVsZW1lbnQsej1TLmV2ZW50RWxlbWVudEhhbmRsZXJzLFc9Uy5zaG93RXZlbnRzLEE9Uy5oaWRlRXZlbnRzLE89Uy5ldmVudERyb3AsXz1TLmV2ZW50UmVzaXplLFA9Uy5nZXRSb3dDbnQsQj1TLmdldENvbENudDtTLmdldENvbFdpZHRoO3ZhciBJPVMuYWxsRGF5Um93LFg9Uy5jb2xMZWZ0LEo9Uy5jb2xSaWdodCxWPVMuY29sQ29udGVudExlZnQsVT1TLmNvbENvbnRlbnRSaWdodDtTLmRhdGVUb0NlbGw7dmFyIFo9Uy5nZXREYXlTZWdtZW50Q29udGFpbmVyLEc9Uy5jYWxlbmRhci5mb3JtYXREYXRlcywkPVMucmVuZGVyRGF5T3ZlcmxheSxRPVMuY2xlYXJPdmVybGF5cyxLPVMuY2xlYXJTZWxlY3Rpb24sdGU9Uy5nZXRIb3Zlckxpc3RlbmVyLGVlPVMucmFuZ2VUb1NlZ21lbnRzLG5lPVMuY2VsbFRvRGF0ZSxyZT1TLmNlbGxUb0NlbGxPZmZzZXQsYWU9Uy5jZWxsT2Zmc2V0VG9EYXlPZmZzZXQsb2U9Uy5kYXRlVG9EYXlPZmZzZXQsaWU9Uy5kYXlPZmZzZXRUb0NlbGxPZmZzZXR9ZnVuY3Rpb24gdmUodCxlKXtmb3IodmFyIG49MDtlLmxlbmd0aD5uO24rKyl7dmFyIHI9ZVtuXTtpZihyLmxlZnRDb2w8PXQucmlnaHRDb2wmJnIucmlnaHRDb2w+PXQubGVmdENvbClyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBoZSh0LGUpe2Zvcih2YXIgbj0wO3QubGVuZ3RoPm47bisrKXt2YXIgcj10W25dLGE9ci5lbGVtZW50O2EmJmUocixhLG4pfX1mdW5jdGlvbiBnZSh0LGUpe3JldHVybiBlLnJpZ2h0Q29sLWUubGVmdENvbC0odC5yaWdodENvbC10LmxlZnRDb2wpfHxlLmV2ZW50LmFsbERheS10LmV2ZW50LmFsbERheXx8dC5ldmVudC5zdGFydC1lLmV2ZW50LnN0YXJ0fHwodC5ldmVudC50aXRsZXx8IiIpLmxvY2FsZUNvbXBhcmUoZS5ldmVudC50aXRsZSl9ZnVuY3Rpb24gcGUoKXtmdW5jdGlvbiBlKHQsZSxhKXtuKCksZXx8KGU9bCh0LGEpKSxjKHQsZSxhKSxyKHQsZSxhKX1mdW5jdGlvbiBuKHQpe2YmJihmPSExLHUoKSxzKCJ1bnNlbGVjdCIsbnVsbCx0KSl9ZnVuY3Rpb24gcih0LGUsbixyKXtmPSEwLHMoInNlbGVjdCIsbnVsbCx0LGUsbixyKX1mdW5jdGlvbiBhKGUpe3ZhciBhPW8uY2VsbFRvRGF0ZSxzPW8uZ2V0SXNDZWxsQWxsRGF5LGw9by5nZXRIb3Zlckxpc3RlbmVyKCksZj1vLnJlcG9ydERheUNsaWNrO2lmKDE9PWUud2hpY2gmJmkoInNlbGVjdGFibGUiKSl7bihlKTt2YXIgZDtsLnN0YXJ0KGZ1bmN0aW9uKHQsZSl7dSgpLHQmJnModCk/KGQ9W2EoZSksYSh0KV0uc29ydChPKSxjKGRbMF0sZFsxXSwhMCkpOmQ9bnVsbH0sZSksdChkb2N1bWVudCkub25lKCJtb3VzZXVwIixmdW5jdGlvbih0KXtsLnN0b3AoKSxkJiYoK2RbMF09PStkWzFdJiZmKGRbMF0sITAsdCkscihkWzBdLGRbMV0sITAsdCkpfSl9fXZhciBvPXRoaXM7by5zZWxlY3Q9ZSxvLnVuc2VsZWN0PW4sby5yZXBvcnRTZWxlY3Rpb249cixvLmRheVNlbGVjdGlvbk1vdXNlZG93bj1hO3ZhciBpPW8ub3B0LHM9by50cmlnZ2VyLGw9by5kZWZhdWx0U2VsZWN0aW9uRW5kLGM9by5yZW5kZXJTZWxlY3Rpb24sdT1vLmNsZWFyU2VsZWN0aW9uLGY9ITE7aSgic2VsZWN0YWJsZSIpJiZpKCJ1bnNlbGVjdEF1dG8iKSYmdChkb2N1bWVudCkubW91c2Vkb3duKGZ1bmN0aW9uKGUpe3ZhciByPWkoInVuc2VsZWN0Q2FuY2VsIik7ciYmdChlLnRhcmdldCkucGFyZW50cyhyKS5sZW5ndGh8fG4oZSl9KX1mdW5jdGlvbiBtZSgpe2Z1bmN0aW9uIGUoZSxuKXt2YXIgcj1vLnNoaWZ0KCk7cmV0dXJuIHJ8fChyPXQoIjxkaXYgY2xhc3M9J2ZjLWNlbGwtb3ZlcmxheScgc3R5bGU9J3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MycvPiIpKSxyWzBdLnBhcmVudE5vZGUhPW5bMF0mJnIuYXBwZW5kVG8obiksYS5wdXNoKHIuY3NzKGUpLnNob3coKSkscn1mdW5jdGlvbiBuKCl7Zm9yKHZhciB0O3Q9YS5zaGlmdCgpOylvLnB1c2godC5oaWRlKCkudW5iaW5kKCkpfXZhciByPXRoaXM7ci5yZW5kZXJPdmVybGF5PWUsci5jbGVhck92ZXJsYXlzPW47dmFyIGE9W10sbz1bXX1mdW5jdGlvbiB5ZSh0KXt2YXIgZSxuLHI9dGhpcztyLmJ1aWxkPWZ1bmN0aW9uKCl7ZT1bXSxuPVtdLHQoZSxuKX0sci5jZWxsPWZ1bmN0aW9uKHQscil7dmFyIGEsbz1lLmxlbmd0aCxpPW4ubGVuZ3RoLHM9LTEsbD0tMTtmb3IoYT0wO28+YTthKyspaWYocj49ZVthXVswXSYmZVthXVsxXT5yKXtzPWE7YnJlYWt9Zm9yKGE9MDtpPmE7YSsrKWlmKHQ+PW5bYV1bMF0mJm5bYV1bMV0+dCl7bD1hO2JyZWFrfXJldHVybiBzPj0wJiZsPj0wP3tyb3c6cyxjb2w6bH06bnVsbH0sci5yZWN0PWZ1bmN0aW9uKHQscixhLG8saSl7dmFyIHM9aS5vZmZzZXQoKTtyZXR1cm57dG9wOmVbdF1bMF0tcy50b3AsbGVmdDpuW3JdWzBdLXMubGVmdCx3aWR0aDpuW29dWzFdLW5bcl1bMF0saGVpZ2h0OmVbYV1bMV0tZVt0XVswXX19fWZ1bmN0aW9uIHdlKGUpe2Z1bmN0aW9uIG4odCl7YmUodCk7dmFyIG49ZS5jZWxsKHQucGFnZVgsdC5wYWdlWSk7KCFuIT0haXx8biYmKG4ucm93IT1pLnJvd3x8bi5jb2whPWkuY29sKSkmJihuPyhvfHwobz1uKSxhKG4sbyxuLnJvdy1vLnJvdyxuLmNvbC1vLmNvbCkpOmEobixvKSxpPW4pfXZhciByLGEsbyxpLHM9dGhpcztzLnN0YXJ0PWZ1bmN0aW9uKHMsbCxjKXthPXMsbz1pPW51bGwsZS5idWlsZCgpLG4obCkscj1jfHwibW91c2Vtb3ZlIix0KGRvY3VtZW50KS5iaW5kKHIsbil9LHMuc3RvcD1mdW5jdGlvbigpe3JldHVybiB0KGRvY3VtZW50KS51bmJpbmQocixuKSxpfX1mdW5jdGlvbiBiZSh0KXt0LnBhZ2VYPT09ZSYmKHQucGFnZVg9dC5vcmlnaW5hbEV2ZW50LnBhZ2VYLHQucGFnZVk9dC5vcmlnaW5hbEV2ZW50LnBhZ2VZKX1mdW5jdGlvbiBEZSh0KXtmdW5jdGlvbiBuKGUpe3JldHVybiBhW2VdPWFbZV18fHQoZSl9dmFyIHI9dGhpcyxhPXt9LG89e30saT17fTtyLmxlZnQ9ZnVuY3Rpb24odCl7cmV0dXJuIG9bdF09b1t0XT09PWU/bih0KS5wb3NpdGlvbigpLmxlZnQ6b1t0XX0sci5yaWdodD1mdW5jdGlvbih0KXtyZXR1cm4gaVt0XT1pW3RdPT09ZT9yLmxlZnQodCkrbih0KS53aWR0aCgpOmlbdF19LHIuY2xlYXI9ZnVuY3Rpb24oKXthPXt9LG89e30saT17fX19dmFyIENlPXtkZWZhdWx0VmlldzoibW9udGgiLGFzcGVjdFJhdGlvOjEuMzUsaGVhZGVyOntsZWZ0OiJ0aXRsZSIsY2VudGVyOiIiLHJpZ2h0OiJ0b2RheSBwcmV2LG5leHQifSx3ZWVrZW5kczohMCx3ZWVrTnVtYmVyczohMSx3ZWVrTnVtYmVyQ2FsY3VsYXRpb246ImlzbyIsd2Vla051bWJlclRpdGxlOiJXIixhbGxEYXlEZWZhdWx0OiEwLGlnbm9yZVRpbWV6b25lOiEwLGxhenlGZXRjaGluZzohMCxzdGFydFBhcmFtOiJzdGFydCIsZW5kUGFyYW06ImVuZCIsdGl0bGVGb3JtYXQ6e21vbnRoOiJNTU1NIHl5eXkiLHdlZWs6Ik1NTSBkWyB5eXl5XXsgJyYjODIxMjsnWyBNTU1dIGQgeXl5eX0iLGRheToiZGRkZCwgTU1NIGQsIHl5eXkifSxjb2x1bW5Gb3JtYXQ6e21vbnRoOiJkZGQiLHdlZWs6ImRkZCBNL2QiLGRheToiZGRkZCBNL2QifSx0aW1lRm9ybWF0OnsiIjoiaCg6bW0pdCJ9LGlzUlRMOiExLGZpcnN0RGF5OjAsbW9udGhOYW1lczpbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0sbW9udGhOYW1lc1Nob3J0OlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl0sZGF5TmFtZXM6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLGRheU5hbWVzU2hvcnQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxidXR0b25UZXh0OntwcmV2OiI8c3BhbiBjbGFzcz0nZmMtdGV4dC1hcnJvdyc+JmxzYXF1bzs8L3NwYW4+IixuZXh0OiI8c3BhbiBjbGFzcz0nZmMtdGV4dC1hcnJvdyc+JnJzYXF1bzs8L3NwYW4+IixwcmV2WWVhcjoiPHNwYW4gY2xhc3M9J2ZjLXRleHQtYXJyb3cnPiZsYXF1bzs8L3NwYW4+IixuZXh0WWVhcjoiPHNwYW4gY2xhc3M9J2ZjLXRleHQtYXJyb3cnPiZyYXF1bzs8L3NwYW4+Iix0b2RheToidG9kYXkiLG1vbnRoOiJtb250aCIsd2Vlazoid2VlayIsZGF5OiJkYXkifSx0aGVtZTohMSxidXR0b25JY29uczp7cHJldjoiY2lyY2xlLXRyaWFuZ2xlLXciLG5leHQ6ImNpcmNsZS10cmlhbmdsZS1lIn0sdW5zZWxlY3RBdXRvOiEwLGRyb3BBY2NlcHQ6IioiLGhhbmRsZVdpbmRvd1Jlc2l6ZTohMH0sTWU9e2hlYWRlcjp7bGVmdDoibmV4dCxwcmV2IHRvZGF5IixjZW50ZXI6IiIscmlnaHQ6InRpdGxlIn0sYnV0dG9uVGV4dDp7cHJldjoiPHNwYW4gY2xhc3M9J2ZjLXRleHQtYXJyb3cnPiZyc2FxdW87PC9zcGFuPiIsbmV4dDoiPHNwYW4gY2xhc3M9J2ZjLXRleHQtYXJyb3cnPiZsc2FxdW87PC9zcGFuPiIscHJldlllYXI6IjxzcGFuIGNsYXNzPSdmYy10ZXh0LWFycm93Jz4mcmFxdW87PC9zcGFuPiIsbmV4dFllYXI6IjxzcGFuIGNsYXNzPSdmYy10ZXh0LWFycm93Jz4mbGFxdW87PC9zcGFuPiJ9LGJ1dHRvbkljb25zOntwcmV2OiJjaXJjbGUtdHJpYW5nbGUtZSIsbmV4dDoiY2lyY2xlLXRyaWFuZ2xlLXcifX0sRWU9dC5mdWxsQ2FsZW5kYXI9e3ZlcnNpb246IjEuNi40In0sU2U9RWUudmlld3M9e307dC5mbi5mdWxsQ2FsZW5kYXI9ZnVuY3Rpb24obil7aWYoInN0cmluZyI9PXR5cGVvZiBuKXt2YXIgYSxvPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHI9dC5kYXRhKHRoaXMsImZ1bGxDYWxlbmRhciIpO2lmKHImJnQuaXNGdW5jdGlvbihyW25dKSl7dmFyIGk9cltuXS5hcHBseShyLG8pO2E9PT1lJiYoYT1pKSwiZGVzdHJveSI9PW4mJnQucmVtb3ZlRGF0YSh0aGlzLCJmdWxsQ2FsZW5kYXIiKX19KSxhIT09ZT9hOnRoaXN9bj1ufHx7fTt2YXIgaT1uLmV2ZW50U291cmNlc3x8W107cmV0dXJuIGRlbGV0ZSBuLmV2ZW50U291cmNlcyxuLmV2ZW50cyYmKGkucHVzaChuLmV2ZW50cyksZGVsZXRlIG4uZXZlbnRzKSxuPXQuZXh0ZW5kKCEwLHt9LENlLG4uaXNSVEx8fG4uaXNSVEw9PT1lJiZDZS5pc1JUTD9NZTp7fSxuKSx0aGlzLmVhY2goZnVuY3Rpb24oZSxhKXt2YXIgbz10KGEpLHM9bmV3IHIobyxuLGkpO28uZGF0YSgiZnVsbENhbGVuZGFyIixzKSxzLnJlbmRlcigpfSksdGhpc30sRWUuc291cmNlTm9ybWFsaXplcnM9W10sRWUuc291cmNlRmV0Y2hlcnM9W107dmFyIFRlPXtkYXRhVHlwZToianNvbiIsY2FjaGU6ITF9LHhlPTE7RWUuYWRkRGF5cz1sLEVlLmNsb25lRGF0ZT1kLEVlLnBhcnNlRGF0ZT1wLEVlLnBhcnNlSVNPODYwMT1tLEVlLnBhcnNlVGltZT15LEVlLmZvcm1hdERhdGU9dyxFZS5mb3JtYXREYXRlcz1iO3ZhciBrZT1bInN1biIsIm1vbiIsInR1ZSIsIndlZCIsInRodSIsImZyaSIsInNhdCJdLEhlPTg2NGU1LEZlPTM2ZTUsUmU9NmU0LE5lPXtzOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFNlY29uZHMoKX0sc3M6ZnVuY3Rpb24odCl7cmV0dXJuIF8odC5nZXRTZWNvbmRzKCkpfSxtOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1pbnV0ZXMoKX0sbW06ZnVuY3Rpb24odCl7cmV0dXJuIF8odC5nZXRNaW51dGVzKCkpfSxoOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEhvdXJzKCklMTJ8fDEyfSxoaDpmdW5jdGlvbih0KXtyZXR1cm4gXyh0LmdldEhvdXJzKCklMTJ8fDEyKX0sSDpmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRIb3VycygpfSxISDpmdW5jdGlvbih0KXtyZXR1cm4gXyh0LmdldEhvdXJzKCkpfSxkOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldERhdGUoKX0sZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIF8odC5nZXREYXRlKCkpfSxkZGQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5kYXlOYW1lc1Nob3J0W3QuZ2V0RGF5KCldfSxkZGRkOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZGF5TmFtZXNbdC5nZXREYXkoKV19LE06ZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0TW9udGgoKSsxfSxNTTpmdW5jdGlvbih0KXtyZXR1cm4gXyh0LmdldE1vbnRoKCkrMSl9LE1NTTpmdW5jdGlvbih0LGUpe3JldHVybiBlLm1vbnRoTmFtZXNTaG9ydFt0LmdldE1vbnRoKCldfSxNTU1NOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUubW9udGhOYW1lc1t0LmdldE1vbnRoKCldfSx5eTpmdW5jdGlvbih0KXtyZXR1cm4odC5nZXRGdWxsWWVhcigpKyIiKS5zdWJzdHJpbmcoMil9LHl5eXk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RnVsbFllYXIoKX0sdDpmdW5jdGlvbih0KXtyZXR1cm4gMTI+dC5nZXRIb3VycygpPyJhIjoicCJ9LHR0OmZ1bmN0aW9uKHQpe3JldHVybiAxMj50LmdldEhvdXJzKCk/ImFtIjoicG0ifSxUOmZ1bmN0aW9uKHQpe3JldHVybiAxMj50LmdldEhvdXJzKCk/IkEiOiJQIn0sVFQ6ZnVuY3Rpb24odCl7cmV0dXJuIDEyPnQuZ2V0SG91cnMoKT8iQU0iOiJQTSJ9LHU6ZnVuY3Rpb24odCl7cmV0dXJuIHcodCwieXl5eS1NTS1kZCdUJ0hIOm1tOnNzJ1onIil9LFM6ZnVuY3Rpb24odCl7dmFyIGU9dC5nZXREYXRlKCk7cmV0dXJuIGU+MTAmJjIwPmU/InRoIjpbInN0IiwibmQiLCJyZCJdW2UlMTAtMV18fCJ0aCJ9LHc6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS53ZWVrTnVtYmVyQ2FsY3VsYXRpb24odCl9LFc6ZnVuY3Rpb24odCl7cmV0dXJuIEQodCl9fTtFZS5kYXRlRm9ybWF0dGVycz1OZSxFZS5hcHBseUFsbD1JLFNlLm1vbnRoPUosU2UuYmFzaWNXZWVrPVYsU2UuYmFzaWNEYXk9VSxuKHt3ZWVrTW9kZToiZml4ZWQifSksU2UuYWdlbmRhV2Vlaz0kLFNlLmFnZW5kYURheT1RLG4oe2FsbERheVNsb3Q6ITAsYWxsRGF5VGV4dDoiYWxsLWRheSIsZmlyc3RIb3VyOjYsc2xvdE1pbnV0ZXM6MzAsZGVmYXVsdEV2ZW50TWludXRlczoxMjAsYXhpc0Zvcm1hdDoiaCg6bW0pdHQiLHRpbWVGb3JtYXQ6e2FnZW5kYToiaDptbXsgLSBoOm1tfSJ9LGRyYWdPcGFjaXR5OnthZ2VuZGE6LjV9LG1pblRpbWU6MCxtYXhUaW1lOjI0LHNsb3RFdmVudE92ZXJsYXA6ITB9KX0pKGpRdWVyeSk7]]></data>
	</file>
	<file>
	  <filename>/lib/fullcalendar/fullcalendar.print.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohCiAqIEZ1bGxDYWxlbmRhciB2MS42LjQgUHJpbnQgU3R5bGVzaGVldAogKiBEb2NzICYgTGljZW5zZTogaHR0cDovL2Fyc2hhdy5jb20vZnVsbGNhbGVuZGFyLwogKiAoYykgMjAxMyBBZGFtIFNoYXcKICovCgovKgogKiBJbmNsdWRlIHRoaXMgc3R5bGVzaGVldCBvbiB5b3VyIHBhZ2UgdG8gZ2V0IGEgbW9yZSBwcmludGVyLWZyaWVuZGx5IGNhbGVuZGFyLgogKiBXaGVuIGluY2x1ZGluZyB0aGlzIHN0eWxlc2hlZXQsIHVzZSB0aGUgbWVkaWE9J3ByaW50JyBhdHRyaWJ1dGUgb2YgdGhlIDxsaW5rPiB0YWcuCiAqIE1ha2Ugc3VyZSB0byBpbmNsdWRlIHRoaXMgc3R5bGVzaGVldCBJTiBBRERJVElPTiB0byB0aGUgcmVndWxhciBmdWxsY2FsZW5kYXIuY3NzLgogKi8KIAogCiAvKiBFdmVudHMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi5mYy1ldmVudCB7CgliYWNrZ3JvdW5kOiAjZmZmICFpbXBvcnRhbnQ7Cgljb2xvcjogIzAwMCAhaW1wb3J0YW50OwoJfQoJCi8qIGZvciB2ZXJ0aWNhbCBldmVudHMgKi8KCQouZmMtZXZlbnQtYmcgewoJZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwoJfQoJCi5mYy1ldmVudCAudWktcmVzaXphYmxlLWhhbmRsZSB7CglkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Cgl9CgkKCQo=]]></data>
	</file>
	<file>
	  <filename>/lib/fullcalendar/gcal.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohCiAqIEZ1bGxDYWxlbmRhciB2MS42LjQgR29vZ2xlIENhbGVuZGFyIFBsdWdpbgogKiBEb2NzICYgTGljZW5zZTogaHR0cDovL2Fyc2hhdy5jb20vZnVsbGNhbGVuZGFyLwogKiAoYykgMjAxMyBBZGFtIFNoYXcKICovCiAKKGZ1bmN0aW9uKCQpIHsKCgp2YXIgZmMgPSAkLmZ1bGxDYWxlbmRhcjsKdmFyIGZvcm1hdERhdGUgPSBmYy5mb3JtYXREYXRlOwp2YXIgcGFyc2VJU084NjAxID0gZmMucGFyc2VJU084NjAxOwp2YXIgYWRkRGF5cyA9IGZjLmFkZERheXM7CnZhciBhcHBseUFsbCA9IGZjLmFwcGx5QWxsOwoKCmZjLnNvdXJjZU5vcm1hbGl6ZXJzLnB1c2goZnVuY3Rpb24oc291cmNlT3B0aW9ucykgewoJaWYgKHNvdXJjZU9wdGlvbnMuZGF0YVR5cGUgPT0gJ2djYWwnIHx8CgkJc291cmNlT3B0aW9ucy5kYXRhVHlwZSA9PT0gdW5kZWZpbmVkICYmCgkJKHNvdXJjZU9wdGlvbnMudXJsIHx8ICcnKS5tYXRjaCgvXihodHRwfGh0dHBzKTpcL1wvd3d3Lmdvb2dsZS5jb21cL2NhbGVuZGFyXC9mZWVkc1wvLykpIHsKCQkJc291cmNlT3B0aW9ucy5kYXRhVHlwZSA9ICdnY2FsJzsKCQkJaWYgKHNvdXJjZU9wdGlvbnMuZWRpdGFibGUgPT09IHVuZGVmaW5lZCkgewoJCQkJc291cmNlT3B0aW9ucy5lZGl0YWJsZSA9IGZhbHNlOwoJCQl9CgkJfQp9KTsKCgpmYy5zb3VyY2VGZXRjaGVycy5wdXNoKGZ1bmN0aW9uKHNvdXJjZU9wdGlvbnMsIHN0YXJ0LCBlbmQpIHsKCWlmIChzb3VyY2VPcHRpb25zLmRhdGFUeXBlID09ICdnY2FsJykgewoJCXJldHVybiB0cmFuc2Zvcm1PcHRpb25zKHNvdXJjZU9wdGlvbnMsIHN0YXJ0LCBlbmQpOwoJfQp9KTsKCgpmdW5jdGlvbiB0cmFuc2Zvcm1PcHRpb25zKHNvdXJjZU9wdGlvbnMsIHN0YXJ0LCBlbmQpIHsKCgl2YXIgc3VjY2VzcyA9IHNvdXJjZU9wdGlvbnMuc3VjY2VzczsKCXZhciBkYXRhID0gJC5leHRlbmQoe30sIHNvdXJjZU9wdGlvbnMuZGF0YSB8fCB7fSwgewoJCSdzdGFydC1taW4nOiBmb3JtYXREYXRlKHN0YXJ0LCAndScpLAoJCSdzdGFydC1tYXgnOiBmb3JtYXREYXRlKGVuZCwgJ3UnKSwKCQknc2luZ2xlZXZlbnRzJzogdHJ1ZSwKCQknbWF4LXJlc3VsdHMnOiA5OTk5Cgl9KTsKCQoJdmFyIGN0eiA9IHNvdXJjZU9wdGlvbnMuY3VycmVudFRpbWV6b25lOwoJaWYgKGN0eikgewoJCWRhdGEuY3R6ID0gY3R6ID0gY3R6LnJlcGxhY2UoJyAnLCAnXycpOwoJfQoKCXJldHVybiAkLmV4dGVuZCh7fSwgc291cmNlT3B0aW9ucywgewoJCXVybDogc291cmNlT3B0aW9ucy51cmwucmVwbGFjZSgvXC9iYXNpYyQvLCAnL2Z1bGwnKSArICc/YWx0PWpzb24taW4tc2NyaXB0JmNhbGxiYWNrPT8nLAoJCWRhdGFUeXBlOiAnanNvbnAnLAoJCWRhdGE6IGRhdGEsCgkJc3RhcnRQYXJhbTogZmFsc2UsCgkJZW5kUGFyYW06IGZhbHNlLAoJCXN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsKCQkJdmFyIGV2ZW50cyA9IFtdOwoJCQlpZiAoZGF0YS5mZWVkLmVudHJ5KSB7CgkJCQkkLmVhY2goZGF0YS5mZWVkLmVudHJ5LCBmdW5jdGlvbihpLCBlbnRyeSkgewoJCQkJCXZhciBzdGFydFN0ciA9IGVudHJ5WydnZCR3aGVuJ11bMF1bJ3N0YXJ0VGltZSddOwoJCQkJCXZhciBzdGFydCA9IHBhcnNlSVNPODYwMShzdGFydFN0ciwgdHJ1ZSk7CgkJCQkJdmFyIGVuZCA9IHBhcnNlSVNPODYwMShlbnRyeVsnZ2Qkd2hlbiddWzBdWydlbmRUaW1lJ10sIHRydWUpOwoJCQkJCXZhciBhbGxEYXkgPSBzdGFydFN0ci5pbmRleE9mKCdUJykgPT0gLTE7CgkJCQkJdmFyIHVybDsKCQkJCQkkLmVhY2goZW50cnkubGluaywgZnVuY3Rpb24oaSwgbGluaykgewoJCQkJCQlpZiAobGluay50eXBlID09ICd0ZXh0L2h0bWwnKSB7CgkJCQkJCQl1cmwgPSBsaW5rLmhyZWY7CgkJCQkJCQlpZiAoY3R6KSB7CgkJCQkJCQkJdXJsICs9ICh1cmwuaW5kZXhPZignPycpID09IC0xID8gJz8nIDogJyYnKSArICdjdHo9JyArIGN0ejsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0pOwoJCQkJCWlmIChhbGxEYXkpIHsKCQkJCQkJYWRkRGF5cyhlbmQsIC0xKTsgLy8gbWFrZSBpbmNsdXNpdmUKCQkJCQl9CgkJCQkJZXZlbnRzLnB1c2goewoJCQkJCQlpZDogZW50cnlbJ2dDYWwkdWlkJ11bJ3ZhbHVlJ10sCgkJCQkJCXRpdGxlOiBlbnRyeVsndGl0bGUnXVsnJHQnXSwKCQkJCQkJdXJsOiB1cmwsCgkJCQkJCXN0YXJ0OiBzdGFydCwKCQkJCQkJZW5kOiBlbmQsCgkJCQkJCWFsbERheTogYWxsRGF5LAoJCQkJCQlsb2NhdGlvbjogZW50cnlbJ2dkJHdoZXJlJ11bMF1bJ3ZhbHVlU3RyaW5nJ10sCgkJCQkJCWRlc2NyaXB0aW9uOiBlbnRyeVsnY29udGVudCddWyckdCddCgkJCQkJfSk7CgkJCQl9KTsKCQkJfQoJCQl2YXIgYXJncyA9IFtldmVudHNdLmNvbmNhdChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpKTsKCQkJdmFyIHJlcyA9IGFwcGx5QWxsKHN1Y2Nlc3MsIHRoaXMsIGFyZ3MpOwoJCQlpZiAoJC5pc0FycmF5KHJlcykpIHsKCQkJCXJldHVybiByZXM7CgkJCX0KCQkJcmV0dXJuIGV2ZW50czsKCQl9Cgl9KTsKCQp9CgoKLy8gbGVnYWN5CmZjLmdjYWxGZWVkID0gZnVuY3Rpb24odXJsLCBzb3VyY2VPcHRpb25zKSB7CglyZXR1cm4gJC5leHRlbmQoe30sIHNvdXJjZU9wdGlvbnMsIHsgdXJsOiB1cmwsIGRhdGFUeXBlOiAnZ2NhbCcgfSk7Cn07CgoKfSkoalF1ZXJ5KTsK]]></data>
	</file>
	<file>
	  <filename>/lib/fullcalendar/license.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Q29weXJpZ2h0IChjKSAyMDEzIEFkYW0gU2hhdwoKUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nCmEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQoiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCndpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvCnBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwp0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgpUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZQppbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KClRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELApFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRQpMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OCk9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTgpXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4K]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4CiMgICAgICBieSBSb2JlcnQgQWxsZW4gKGFrcmFiYXQpIGFuZAojICAgICAgICAgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBkaXNwbGF5aW5nIGNhbGVuZGFycywKIyAgYW5kIG1hbmFnZW1lbnQgYW5kIGRpc3BsYXkgb2YgdGltZSBiYXNlZCBldmVudHMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgppZiggdmVyc2lvbl9jb21wYXJlKHBocHZlcnNpb24oKSwnNS40LjMnKSA8IDAgKSB7CiAgICByZXR1cm4gIk1pbmltdW0gUEhQIHZlcnNpb24gb2YgNS40LjMgcmVxdWlyZWQiOwp9CgokZGIgPSAkdGhpcy0+R2V0RGIoKTsKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwokdGFibGVfb3B0aW9ucyA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CgovLyBjcmVhdGUgY2F0ZWdvcmllcyB0YWJsZQokZmllbGRzID0gIgoJCQljYXRlZ29yeV9pZCBJIEtFWSBOT1QgTlVMTCwKCQkJY2F0ZWdvcnlfbmFtZSBDKDI1NSkgTk9UIE5VTEwsCiAgICAgICAgICAgIGNhdGVnb3J5X2JnY29sb3IgQygxMCksCiAgICAgICAgICAgIGNhdGVnb3J5X2ZnY29sb3IgQygxMCksCgkJCWNhdGVnb3J5X29yZGVyIEkKCQkiOwokc3FsX2FycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKCR0aGlzLT5jYXRlZ29yaWVzX3RhYmxlX25hbWUsICRmaWVsZHMsICR0YWJsZV9vcHRpb25zKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsX2FycmF5KTsKCiRkYi0+Q3JlYXRlU2VxdWVuY2UoJHRoaXMtPmNhdGVnb3JpZXNfdGFibGVfbmFtZSAuICdfc2VxJyk7Cgokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2luZGV4X2NhdGVnb3J5X25hbWUnLCR0aGlzLT5jYXRlZ29yaWVzX3RhYmxlX25hbWUsJ2NhdGVnb3J5X25hbWUnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKLy8gY3JlYXRlIGZpZWxkcyB0YWJsZQokZmllbGRzID0gImZpZWxkX25hbWUgQygyNTUpIEtFWSwKICAgICAgICAgICBmaWVsZF90eXBlIEksCiAgICAgICAgICAgZmllbGRfc2VhcmNoYWJsZSBJMSwKICAgICAgICAgICBmaWVsZF9leHRyYSBYLAogICAgICAgICAgIGZpZWxkX29yZGVyIEkKCSAgIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKCR0aGlzLT5maWVsZHNfdGFibGVfbmFtZSwgJGZpZWxkcywgJHRhYmxlX29wdGlvbnMpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2luZGV4X2ZpZWxkX25hbWUnLCR0aGlzLT5maWVsZHNfdGFibGVfbmFtZSwnZmllbGRfbmFtZScpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoKLy8gY3JlYXRlIGV2ZW50cyB0YWJsZQokZmllbGRzID0gIgoJCQlldmVudF9pZCBJIEtFWSwKCQkJZXZlbnRfdGl0bGUgQygyNTUpLAoJCQlldmVudF9zdW1tYXJ5IFgsCgkJCWV2ZW50X2RldGFpbHMgWCwKCQkJZXZlbnRfZGF0ZV9zdGFydCAiLkNNU19BRE9EQl9EVC4iLAoJCQlldmVudF9kYXRlX2VuZCAiLkNNU19BRE9EQl9EVC4iLAoJCQlldmVudF9wYXJlbnRfaWQgSSwKCQkJZXZlbnRfcmVjdXJfcGVyaW9kIEMoMTApLAoJCQlldmVudF9kYXRlX3JlY3VyX2VuZCAiLkNNU19BRE9EQl9EVC4iLAoJCQlldmVudF9jcmVhdGVkX2J5IEksCgkJCWV2ZW50X2NyZWF0ZV9kYXRlICIuQ01TX0FET0RCX0RULiIsCgkJCWV2ZW50X21vZGlmaWVkX2RhdGUgIi5DTVNfQURPREJfRFQuIiwKICAgICAgICAgICAgZXZlbnRfcmVjdXJfbmV2ZW50cyBJLAogICAgICAgICAgICBldmVudF9yZWN1cl9pbnRlcnZhbCBJLAogICAgICAgICAgICBldmVudF9yZWN1cl93ZWVrZGF5cyBDKDI1NSksCiAgICAgICAgICAgIGV2ZW50X3JlY3VyX21vbnRoZGF5cyBDKDI1NSksCiAgICAgICAgICAgIGV2ZW50X2FsbG93c19vdmVybGFwIEkxLAogICAgICAgICAgICBldmVudF9hbGxfZGF5IEkxIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKCR0aGlzLT5ldmVudHNfdGFibGVfbmFtZSwgJGZpZWxkcywgJHRhYmxlX29wdGlvbnMpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokZGItPkV4ZWN1dGUoJ0FMVEVSIFRBQkxFICcuJHRoaXMtPmV2ZW50c190YWJsZV9uYW1lLicgQUREIEZVTExURVhUKGV2ZW50X3RpdGxlLGV2ZW50X3N1bW1hcnksZXZlbnRfZGV0YWlscyknKTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjZ2NhbGVuZGFyX2V2ZW50c19kYXRlJywkdGhpcy0+ZXZlbnRzX3RhYmxlX25hbWUsJ2V2ZW50X2RhdGVfc3RhcnQsZXZlbnRfZGF0ZV9lbmQnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2NnY2FsZW5kYXJfZXZlbnRzX2NyZWF0ZWQnLCR0aGlzLT5ldmVudHNfdGFibGVfbmFtZSwnZXZlbnRfY3JlYXRlX2RhdGUnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2NnY2FsZW5kYXJfZXZlbnRzX21vZGlmaWVkJywkdGhpcy0+ZXZlbnRzX3RhYmxlX25hbWUsJ2V2ZW50X21vZGlmaWVkX2RhdGUnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2NnY2FsZW5kYXJfZXZlbnRzX3BhcmVudCcsJHRoaXMtPmV2ZW50c190YWJsZV9uYW1lLCdldmVudF9wYXJlbnRfaWQnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJGRiLT5DcmVhdGVTZXF1ZW5jZSgkdGhpcy0+ZXZlbnRzX3RhYmxlX25hbWUuJ19zZXEnKTsKCi8vIGNyZWF0ZSBldmVudF9maWVsZF92YWx1ZXMgdGFibGUKJGZpZWxkcyA9ICIKCQkJZmllbGRfbmFtZSBDKDI1NSkgS0VZLAoJCQlldmVudF9pZCBJIEtFWSwKCQkJZmllbGRfdmFsdWUgWAoJCSI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTCgkdGhpcy0+ZXZlbnRfZmllbGRfdmFsdWVzX3RhYmxlX25hbWUsICRmaWVsZHMsICR0YWJsZV9vcHRpb25zICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoICRzcWxhcnJheSApOwoKLy8gY3JlYXRlIGV2ZW50c190b19jYXRlZ29yaWVzIHRhYmxlCiRmaWVsZHMgPSAiCgkJCWNhdGVnb3J5X2lkIEkgS0VZLAoJCQlldmVudF9pZCBJIEtFWQoJCSI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTCgkdGhpcy0+ZXZlbnRzX3RvX2NhdGVnb3JpZXNfdGFibGVfbmFtZSwgJGZpZWxkcywgJHRhYmxlX29wdGlvbnMgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSggJHNxbGFycmF5ICk7CgovLyBzZXQgdXAgYSBHZW5lcmFsIGNhdGVnb3J5CiRuZXdfaWQgPSAkZGItPkdlbklEKCR0aGlzLT5jYXRlZ29yaWVzX3RhYmxlX25hbWUuJ19zZXEnKTsKCiRzcWwgPSAnSU5TRVJUIElOVE8gJyAuICR0aGlzLT5jYXRlZ29yaWVzX3RhYmxlX25hbWUgLiAiIChjYXRlZ29yeV9pZCwgY2F0ZWdvcnlfbmFtZSwgY2F0ZWdvcnlfb3JkZXIpCgkJCQkJCVZBTFVFUyAoJG5ld19pZCwgJ0dlbmVyYWwnLCA1MCkiOwokZGItPkV4ZWN1dGUoJHNxbCk7CgoKCi8vCi8vIHRlbXBsYXRlcwovLwoKLy8gQ2FsZW5kYXIgdGVtcGxhdGUocykKJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwndGVtcGxhdGVzJywnb3JpZ19jYWxlbmRhcl90ZW1wbGF0ZS50cGwnKTsKaWYoIGZpbGVfZXhpc3RzKCRmbikgKQp7CiAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoJGZuKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZShDR0NBTEVOREFSX1BSRUZfTkVXQ0FMRU5EQVJfVEVNUExBVEUsJHRlbXBsYXRlKTsKICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2NhbGVuZGFyX1NhbXBsZScsJHRlbXBsYXRlKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZShDR0NBTEVOREFSX1BSRUZfREZMVENBTEVOREFSX1RFTVBMQVRFLCdTYW1wbGUnKTsKfQoKLy8gU2VhcmNoIGZvcm0gdGVtcGxhdGUocykKJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwndGVtcGxhdGVzJywnb3JpZ19zZWFyY2hfdGVtcGxhdGUudHBsJyk7CmlmKCBmaWxlX2V4aXN0cygkZm4pICkKewogICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ0dDQUxFTkRBUl9QUkVGX05FV1NFQVJDSF9URU1QTEFURSwkdGVtcGxhdGUpOwogICR0aGlzLT5TZXRUZW1wbGF0ZSgnc2VhcmNoX1NhbXBsZScsJHRlbXBsYXRlKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZShDR0NBTEVOREFSX1BSRUZfREZMVFNFQVJDSF9URU1QTEFURSwnU2FtcGxlJyk7Cn0KCi8vIFNlYXJjaCByZXN1bHQgdGVtcGxhdGUocykKJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwndGVtcGxhdGVzJywnb3JpZ19zZWFyY2hyZXN1bHRfdGVtcGxhdGUudHBsJyk7CmlmKCBmaWxlX2V4aXN0cygkZm4pICkKewogICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ0dDQUxFTkRBUl9QUkVGX05FV1NFQVJDSFJFU1VMVF9URU1QTEFURSwkdGVtcGxhdGUpOwogICR0aGlzLT5TZXRUZW1wbGF0ZSgnc2VhcmNocmVzdWx0X1NhbXBsZScsJHRlbXBsYXRlKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZShDR0NBTEVOREFSX1BSRUZfREZMVFNFQVJDSFJFU1VMVF9URU1QTEFURSwnU2FtcGxlJyk7Cn0KCi8vIEV2ZW50IHRlbXBsYXRlKHMpCiRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJ29yaWdfZXZlbnRfdGVtcGxhdGUudHBsJyk7CmlmKCBmaWxlX2V4aXN0cygkZm4pICkKewogICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ0dDQUxFTkRBUl9QUkVGX05FV0VWRU5UX1RFTVBMQVRFLCR0ZW1wbGF0ZSk7CiAgJHRoaXMtPlNldFRlbXBsYXRlKCdldmVudF9TYW1wbGUnLCR0ZW1wbGF0ZSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ0dDQUxFTkRBUl9QUkVGX0RGTFRFVkVOVF9URU1QTEFURSwnU2FtcGxlJyk7Cn0KJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwndGVtcGxhdGVzJywnZGInLCdibG9nLXBvc3QtZXZlbnQtZGV0YWlsLWV4YW1wbGUudHBsJyk7CmlmKCBmaWxlX2V4aXN0cygkZm4pICkKICB7CiAgICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cygkZm4pOwogICAgJHRoaXMtPlNldFRlbXBsYXRlKCdldmVudF9ibG9nLXBvc3QtZGV0YWlsJywkdGVtcGxhdGUpOwogIH0KCi8vIExpc3QgVGVtcGxhdGVzCiRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJ29yaWdfbGlzdF90ZW1wbGF0ZS50cGwnKTsKaWYoIGZpbGVfZXhpc3RzKCRmbikgKQp7CiAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoJGZuKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZShDR0NBTEVOREFSX1BSRUZfTkVXTElTVF9URU1QTEFURSwkdGVtcGxhdGUpOwogICR0aGlzLT5TZXRUZW1wbGF0ZSgnbGlzdF9TYW1wbGUnLCR0ZW1wbGF0ZSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ0dDQUxFTkRBUl9QUkVGX0RGTFRMSVNUX1RFTVBMQVRFLCdTYW1wbGUnKTsKfQokZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdkYicsJ2Jsb2ctcG9zdC1saXN0LnRwbCcpOwppZiggZmlsZV9leGlzdHMoJGZuKSApCiAgewogICAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoJGZuKTsKICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnbGlzdF9ibG9nLXBvc3QtbGlzdCcsJHRlbXBsYXRlKTsKICB9CiRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJ2RiJywnYmxvZy1wb3N0LWxpc3Qtd2l0aC1jb250ZW50LnRwbCcpOwppZiggZmlsZV9leGlzdHMoJGZuKSApCiAgewogICAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoJGZuKTsKICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnbGlzdF9ibG9nLXBvc3QtbGlzdC13aXRoLWNvbnRlbnQnLCR0ZW1wbGF0ZSk7CiAgfQokZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdkYicsJ2Jsb2ctcG9zdC1tb250aC1hcmNoaXZlLWxpc3QudHBsJyk7CmlmKCBmaWxlX2V4aXN0cygkZm4pICkKICB7CiAgICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cygkZm4pOwogICAgJHRoaXMtPlNldFRlbXBsYXRlKCdsaXN0X2Jsb2ctcG9zdC1saXN0LW1vbnRoLWFyY2hpdmUtbGlzdCcsJHRlbXBsYXRlKTsKICB9CgovLyBVcGNvbWluZ0xpc3QgVGVtcGxhdGVzCiRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJ29yaWdfdXBjb21pbmdsaXN0X3RlbXBsYXRlLnRwbCcpOwppZiggZmlsZV9leGlzdHMoJGZuKSApCnsKICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cygkZm4pOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKENHQ0FMRU5EQVJfUFJFRl9ORVdVUENPTUlOR0xJU1RfVEVNUExBVEUsJHRlbXBsYXRlKTsKICAkdGhpcy0+U2V0VGVtcGxhdGUoJ3VwY29taW5nbGlzdF9TYW1wbGUnLCR0ZW1wbGF0ZSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ0dDQUxFTkRBUl9QUkVGX0RGTFRVUENPTUlOR0xJU1RfVEVNUExBVEUsJ1NhbXBsZScpOwp9CgovLyBNeSBFdmVudHMgdGVtcGxhdGUocykKJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwndGVtcGxhdGVzJywnb3JpZ19teWV2ZW50c190ZW1wbGF0ZS50cGwnKTsKaWYoIGZpbGVfZXhpc3RzKCRmbikgKQp7CiAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoJGZuKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZShDR0NBTEVOREFSX1BSRUZfTkVXTVlFVkVOVFNfVEVNUExBVEUsJHRlbXBsYXRlKTsKICAkdGhpcy0+U2V0VGVtcGxhdGUoJ215ZXZlbnRzX1NhbXBsZScsJHRlbXBsYXRlKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZShDR0NBTEVOREFSX1BSRUZfREZMVE1ZRVZFTlRTX1RFTVBMQVRFLCdTYW1wbGUnKTsKfQoKLy8gRWRpdCBFdmVudCBmb3JtIHRlbXBsYXRlKHMpCiRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJ29yaWdfZWRpdGV2ZW50X3RlbXBsYXRlLnRwbCcpOwppZiggZmlsZV9leGlzdHMoJGZuKSApCnsKICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cygkZm4pOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKENHQ0FMRU5EQVJfUFJFRl9ORVdFRElURVZFTlRfVEVNUExBVEUsJHRlbXBsYXRlKTsKICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2VkaXRldmVudF9TYW1wbGUnLCR0ZW1wbGF0ZSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ0dDQUxFTkRBUl9QUkVGX0RGTFRFRElURVZFTlRfVEVNUExBVEUsJ1NhbXBsZScpOwp9CgoKLy8gUHJlZmVyZW5jZXMKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHRjYWxlbmRhcnBhZ2UnLC0xKTsKJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwokc3RyID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnXycuJHRoaXMtPkdldE5hbWUoKSk7CkBta2Rpcigkc3RyKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VwbG9hZGRpcmVjdG9yeScsJHN0cik7CgovLyBFdmVudHMKJHRoaXMtPkNyZWF0ZUV2ZW50KCdFdmVudEFkZGVkJyk7CiR0aGlzLT5DcmVhdGVFdmVudCgnRXZlbnRFZGl0ZWQnKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCdFdmVudERlbGV0ZWQnKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCdDYXRlZ29yeUFkZGVkJyk7CiR0aGlzLT5DcmVhdGVFdmVudCgnQ2F0ZWdvcnlFZGl0ZWQnKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCdDYXRlZ29yeURlbGV0ZWQnKTsKCi8vIFBlcm1pc3Npb25zCiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdNb2RpZnkgQ2FsZW5kYXInLCAnTW9kaWZ5IENhbGVuZGFyJyk7CiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdBZGQgQ2FsZW5kYXIgRXZlbnRzJywgJ0FkZCBDYWxlbmRhciBFdmVudHMnKTsKJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ0VkaXQgTXkgQ2FsZW5kYXIgRXZlbnRzJywgJ0VkaXQgTXkgQ2FsZW5kYXIgRXZlbnRzJyk7CiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdNYW5hZ2UgQ2FsZW5kYXIgQXR0cmlidXRlcycsJ01hbmFnZSBDYWxlbmRhciBBdHRyaWJ1dGVzJyk7CgovL0luc2VydCBleGFtcGxlIHN0eWxlc2hlZXQKaWYoIHZlcnNpb25fY29tcGFyZShDTVNfVkVSU0lPTiwnMS45OS1hbHBoYTAnKSA8IDAgKSB7CiAgJGNvbmZpZyA9ICRnQ21zLT5HZXRDb25maWcoKTsKICAkbmV3X2Nzc19pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpIC4gImNzc19zZXEiKTsKICAkY3NzX25hbWUgPSAkdGhpcy0+TGFuZygnbW9kdWxlX2V4YW1wbGVfc3R5bGVzaGVldCcpLicgdicuJHRoaXMtPkdldFZlcnNpb24oKTsKICAkY3NzX3RleHQgPSBmaWxlX2dldF9jb250ZW50cygkY29uZmlnWydyb290X3BhdGgnXSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnbW9kdWxlcycgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJHRoaXMtPkdldE5hbWUoKSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnY3NzJyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnc3R5bGVzaGVldC5jc3MnKTsKICAkbWVkaWFfdHlwZSA9ICcnOwogICRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiIC4gY21zX2RiX3ByZWZpeCgpIC4gImNzcyAoY3NzX2lkLCBjc3NfbmFtZSwgY3NzX3RleHQsIG1lZGlhX3R5cGUsIGNyZWF0ZV9kYXRlLCBtb2RpZmllZF9kYXRlKSBWQUxVRVMgKD8sID8sID8sID8sID8sID8pIjsKIyBhZGQgdGhlIHN0eWxlc2hlZXQgdG8gdGhlIGRhdGFiYXNlCiAgJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRuZXdfY3NzX2lkLCAkY3NzX25hbWUsICRjc3NfdGV4dCwgJG1lZGlhX3R5cGUsICRkYi0+REJUaW1lU3RhbXAodGltZSgpKSwgJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpKSk7Cn0KCgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4CiMgICAgICBieSBSb2JlcnQgQWxsZW4gKGFrcmFiYXQpIGFuZAojICAgICAgICAgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBkaXNwbGF5aW5nIGNhbGVuZGFycywKIyAgYW5kIG1hbmFnZW1lbnQgYW5kIGRpc3BsYXkgb2YgdGltZSBiYXNlZCBldmVudHMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgokZGIgPSBjbXNtcygpLT5HZXREYigpOwovLyRkYi0+cmFpc2VFcnJvckZuID0gbnVsbDsKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCgkdGhpcy0+ZXZlbnRzX3RhYmxlX25hbWUpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCR0aGlzLT5ldmVudHNfdG9fY2F0ZWdvcmllc190YWJsZV9uYW1lKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCgkdGhpcy0+Y2F0ZWdvcmllc190YWJsZV9uYW1lKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCgkdGhpcy0+ZXZlbnRfZmllbGRfdmFsdWVzX3RhYmxlX25hbWUpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCR0aGlzLT5maWVsZHNfdGFibGVfbmFtZSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCnRyeSB7CiAgICAkZGItPkRyb3BTZXF1ZW5jZSgkdGhpcy0+ZXZlbnRzX3RhYmxlX25hbWUuJ19zZXEnKTsKICAgICRkYi0+RHJvcFNlcXVlbmNlKCR0aGlzLT5jYXRlZ29yaWVzX3RhYmxlX25hbWUuJ19zZXEnKTsKfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKCn0KCi8vIHRlbXBsYXRlcwokdGhpcy0+RGVsZXRlVGVtcGxhdGUoKTsKCi8vIHByZWZlcmVuY2VzCiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCk7CgovLyBFdmVudHMKJHRoaXMtPlJlbW92ZUV2ZW50KCdFdmVudEFkZGVkJyk7CiR0aGlzLT5SZW1vdmVFdmVudCgnRXZlbnRFZGl0ZWQnKTsKJHRoaXMtPlJlbW92ZUV2ZW50KCdFdmVudERlbGV0ZWQnKTsKJHRoaXMtPlJlbW92ZUV2ZW50KCdDYXRlZ29yeUFkZGVkJyk7CiR0aGlzLT5SZW1vdmVFdmVudCgnQ2F0ZWdvcnlFZGl0ZWQnKTsKJHRoaXMtPlJlbW92ZUV2ZW50KCdDYXRlZ29yeURlbGV0ZWQnKTsKCi8vIFBlcm1pc3Npb25zCiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdNb2RpZnkgQ2FsZW5kYXInKTsKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ0FkZCBDYWxlbmRhciBFdmVudHMnKTsKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ0VkaXQgTXkgQ2FsZW5kYXIgRXZlbnRzJyk7CiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdNYW5hZ2UgQ2FsZW5kYXIgQXR0cmlidXRlcycpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4CiMgICAgICBieSBSb2JlcnQgQWxsZW4gKGFrcmFiYXQpIGFuZAojICAgICAgICAgUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBkaXNwbGF5aW5nIGNhbGVuZGFycywKIyAgYW5kIG1hbmFnZW1lbnQgYW5kIGRpc3BsYXkgb2YgdGltZSBiYXNlZCBldmVudHMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCiRkYiA9ICR0aGlzLT5HZXREYigpOwkJCQkvKiBAdmFyICRkYiBBRE9Db25uZWN0aW9uICovCiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsgCS8qIEB2YXIgJGRpY3QgQURPREJfRGF0YURpY3QgKi8KCmlmKCB2ZXJzaW9uX2NvbXBhcmUocGhwdmVyc2lvbigpLCc1LjQuMycpIDwgMCApIHsKICAgIHJldHVybiAiTWluaW11bSBQSFAgdmVyc2lvbiBvZiA1LjQuMyByZXF1aXJlZCI7Cn0KCnN3aXRjaCggJG9sZHZlcnNpb24gKQogIHsKICBjYXNlICcxLjAnOgogIGNhc2UgJzEuMC4xJzoKICAgICRkYi0+RXhlY3V0ZSgnQUxURVIgVEFCTEUgJy4kdGhpcy0+ZXZlbnRzX3RhYmxlX25hbWUuJyBBREQgRlVMTFRFWFQoZXZlbnRfdGl0bGUsZXZlbnRfc3VtbWFyeSxldmVudF9kZXRhaWxzKScpOwogICAgJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTCgkdGhpcy0+ZXZlbnRzX3RhYmxlX25hbWUsICJldmVudF9yZWN1cl9tb250aGRheXMgQygyNTUpIik7CiAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICAgLy8gU2VhcmNoIGZvcm0gdGVtcGxhdGUocykKICAgICRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJ29yaWdfc2VhcmNoX3RlbXBsYXRlLnRwbCcpOwogICAgaWYoIGZpbGVfZXhpc3RzKCRmbikgKQogICAgICB7CgkkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cygkZm4pOwoJJHRoaXMtPlNldFByZWZlcmVuY2UoQ0dDQUxFTkRBUl9QUkVGX05FV1NFQVJDSF9URU1QTEFURSwkdGVtcGxhdGUpOwoJJHRoaXMtPlNldFRlbXBsYXRlKCdzZWFyY2hfU2FtcGxlJywkdGVtcGxhdGUpOwoJJHRoaXMtPlNldFByZWZlcmVuY2UoQ0dDQUxFTkRBUl9QUkVGX0RGTFRTRUFSQ0hfVEVNUExBVEUsJ1NhbXBsZScpOwogICAgICB9CgogICAgLy8gU2VhcmNoIHJlc3VsdCB0ZW1wbGF0ZShzKQogICAgJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwndGVtcGxhdGVzJywnb3JpZ19zZWFyY2hyZXN1bHRfdGVtcGxhdGUudHBsJyk7CiAgICBpZiggZmlsZV9leGlzdHMoJGZuKSApCiAgICAgIHsKCSR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CgkkdGhpcy0+U2V0UHJlZmVyZW5jZShDR0NBTEVOREFSX1BSRUZfTkVXU0VBUkNIUkVTVUxUX1RFTVBMQVRFLCR0ZW1wbGF0ZSk7CgkkdGhpcy0+U2V0VGVtcGxhdGUoJ3NlYXJjaHJlc3VsdF9TYW1wbGUnLCR0ZW1wbGF0ZSk7CgkkdGhpcy0+U2V0UHJlZmVyZW5jZShDR0NBTEVOREFSX1BSRUZfREZMVFNFQVJDSFJFU1VMVF9URU1QTEFURSwnU2FtcGxlJyk7CiAgICAgIH0KCiAgY2FzZSAnMS4yJzoKICBjYXNlICcxLjIuMSc6CiAgY2FzZSAnMS4yLjInOgogIGNhc2UgJzEuMi4zJzoKICBjYXNlICcxLjIuNCc6CiAgY2FzZSAnMS4yLjUnOgogICAgJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTCgkdGhpcy0+ZXZlbnRzX3RhYmxlX25hbWUsCgkJCQkgICAgImV2ZW50X2FsbG93c19vdmVybGFwIEkxIik7CiAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogIGNhc2UgJzEuMyc6CiAgY2FzZSAnMS4zLjEnOgogICAgLy8gTXkgRXZlbnRzIHRlbXBsYXRlKHMpCiAgICAkZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX215ZXZlbnRzX3RlbXBsYXRlLnRwbCcpOwogICAgaWYoIGZpbGVfZXhpc3RzKCRmbikgKQogICAgICB7CgkkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cygkZm4pOwoJJHRoaXMtPlNldFByZWZlcmVuY2UoQ0dDQUxFTkRBUl9QUkVGX05FV01ZRVZFTlRTX1RFTVBMQVRFLCR0ZW1wbGF0ZSk7CgkkdGhpcy0+U2V0VGVtcGxhdGUoJ215ZXZlbnRzX1NhbXBsZScsJHRlbXBsYXRlKTsKCSR0aGlzLT5TZXRQcmVmZXJlbmNlKENHQ0FMRU5EQVJfUFJFRl9ERkxUTVlFVkVOVFNfVEVNUExBVEUsJ1NhbXBsZScpOwogICAgICB9CgogICAgLy8gRWRpdCBFdmVudCBmb3JtIHRlbXBsYXRlKHMpCiAgICAkZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX2VkaXRldmVudF90ZW1wbGF0ZS50cGwnKTsKICAgIGlmKCBmaWxlX2V4aXN0cygkZm4pICkKICAgICAgewoJJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoJGZuKTsKCSR0aGlzLT5TZXRQcmVmZXJlbmNlKENHQ0FMRU5EQVJfUFJFRl9ORVdFRElURVZFTlRfVEVNUExBVEUsJHRlbXBsYXRlKTsKCSR0aGlzLT5TZXRUZW1wbGF0ZSgnZWRpdGV2ZW50X1NhbXBsZScsJHRlbXBsYXRlKTsKCSR0aGlzLT5TZXRQcmVmZXJlbmNlKENHQ0FMRU5EQVJfUFJFRl9ERkxURURJVEVWRU5UX1RFTVBMQVRFLCdTYW1wbGUnKTsKICAgICAgfQoKICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnZXZlbnRfcGVyaW9kJywkdGhpcy0+ZXZlbnRzX3RhYmxlX25hbWUsCgkJCQkgICAgICAnZXZlbnRfZGF0ZV9zdGFydCxldmVudF9kYXRlX2VuZCcpOwogICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSggJHNxbGFycmF5ICk7CgogICAgJHF1ZXJ5ID0gJ1VQREFURSAnLiR0aGlzLT5ldmVudHNfdGFibGVfbmFtZS4nCiAgICAgICAgICAgICAgICAgU0VUIGV2ZW50X2NyZWF0ZWRfYnkgPSBldmVudF9jcmVhdGVkX2J5ICogLTEgLSAxMDAnOwogICAgJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgogIGNhc2UgJzEuNCc6CiAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKCR0aGlzLT5maWVsZHNfdGFibGVfbmFtZSwnZmllbGRfc2VhcmNoYWJsZSBJMScpOwogICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAgICRxdWVyeSA9ICdVUERBVEUgJy4kdGhpcy0+ZmllbGRzX3RhYmxlX25hbWUuJyBTRVQgZmllbGRfc2VhcmNoYWJsZSA9IDEKICAgICAgICAgICAgICAgV0hFUkUgZmllbGRfdHlwZSAhPSAxJzsKICAgICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoKICBjYXNlICcxLjQuMSc6IC8vIGp1c3QgZm9yIHNhZmV0eQogIGNhc2UgJzEuNC4yJzogLy8ganVzdCBmb3Igc2FmZXR5CiAgY2FzZSAnMS41JzoKICBjYXNlICcxLjUuMSc6CiAgY2FzZSAnMS41LjInOgogIGNhc2UgJzEuNS4zJzoKICBjYXNlICcxLjUuNCc6CiAgY2FzZSAnMS41LjUnOgogIGNhc2UgJzEuNS42JzoKICBjYXNlICcxLjUuNyc6CiAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKCR0aGlzLT5maWVsZHNfdGFibGVfbmFtZSwnZmllbGRfZXh0cmEgWCcpOwogICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICB9CgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcxLjExLjEnKSA8IDAgKSB7CiAgJGNhdHMgPSAkdGhpcy0+R2V0Q2F0ZWdvcmllcygpOwogIGlmKCBpc19hcnJheSgkY2F0cykgJiYgY291bnQoJGNhdHMpICkgewogICAgLy8gY2hhbmdlIHRoZSBvcmRlciBzdHVmZiB0byBiZSBhdXRvbWF0aWNhbGx5IGFzY2VuZGluZwogICAgJHF1ZXJ5ID0gJ1VQREFURSAnLiR0aGlzLT5jYXRlZ29yaWVzX3RhYmxlX25hbWUuJyBTRVQgY2F0ZWdvcnlfb3JkZXIgPSA/IFdIRVJFIGNhdGVnb3J5X2lkID0gPyc7CiAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkY2F0cyk7ICRpKysgKSB7CiAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGksJGNhdHNbJGldWydjYXRlZ29yeV9pZCddKSk7CiAgICB9CiAgfQoKICAvLyB1cGRhdGUgZmllbGRzLgogICRmaWVsZHMgPSAkdGhpcy0+R2V0RmllbGRzKCk7CiAgJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTCgkdGhpcy0+ZmllbGRzX3RhYmxlX25hbWUsJ2ZpZWxkX29yZGVyIEknKTsKICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgaWYoIGlzX2FycmF5KCRmaWVsZHMpICYmIGNvdW50KCRmaWVsZHMpICkgewogICAgLy8gYWRkIHRoZSBvcmRlciBzdHVmZi4KICAgICRxdWVyeSA9ICdVUERBVEUgJy4kdGhpcy0+ZmllbGRzX3RhYmxlX25hbWUuJyBTRVQgZmllbGRfZXh0cmEgPSA/LCBmaWVsZF9vcmRlciA9ID8gV0hFUkUgZmllbGRfbmFtZSA9ID8nOwogICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGZpZWxkcyk7ICRpKysgKSB7CiAgICAgICRyb3cgPSAkZmllbGRzWyRpXTsKICAgICAgaWYoICRyb3dbJ2ZpZWxkX3R5cGUnXSAhPSAwICYmICRyb3dbJ2ZpZWxkX3R5cGUnXSAhPSAyICkgJHJvd1snZmllbGRfc2VhcmNoYWJsZSddID0gMDsKICAgICAgJGZpZWxkX2V4dHJhID0gc2VyaWFsaXplKGFycmF5KCdzZWFyY2hhYmxlJywkcm93WydmaWVsZF9zZWFyY2hhYmxlJ10sJ3d5c2l3eWcnPT4wKSk7CiAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGZpZWxkX2V4dHJhLCRpLCRyb3dbJ2ZpZWxkX25hbWUnXSkpOwogICAgfQogIH0KICAkc3FsYXJyYXkgPSAkZGljdC0+RHJvcENvbHVtblNRTCgkdGhpcy0+ZmllbGRzX3RhYmxlX25hbWUsJ2ZpZWxkX3NlYXJjaGFibGUnKTsKICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cn0KCmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzEuMTMnKSA8IDAgKSB7CiAgJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ0FkZCBDYWxlbmRhciBFdmVudHMnLCAnQWRkIENhbGVuZGFyIEV2ZW50cycpOwogICR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdFZGl0IE15IENhbGVuZGFyIEV2ZW50cycsICdFZGl0IE15IENhbGVuZGFyIEV2ZW50cycpOwp9CgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcxLjE0JykgPCAwICkgewogICAgdHJ5IHsKICAgICAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKCR0aGlzLT5ldmVudHNfdGFibGVfbmFtZSwgImV2ZW50X2FsbF9kYXkgQygyNTUpIik7CiAgICAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgfQogICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgLy8gbm90aGluZyBoZXJlLgogICAgfQoKICAgIC8vIGNvbnZlcnQgZXZlbnRzIHRoYXQgc3RhcnQgYXQgMDA6MDAsIGFuZCBlbmQgYXQgMjM6NTkgdG8gYWxsIGRheSBldmVudHMgKHNldCB0aGVpciBzdGFydCBhbmQgZW5kIHRpbWVzIHRvIDEzOjAwIGFuZCAxNDowMAogICAgJHF1ZXJ5ID0gJ1NFTEVDVCBldmVudF9pZCBGUk9NICcuJHRoaXMtPmV2ZW50c190YWJsZV9uYW1lLicgV0hFUkUgSE9VUihldmVudF9kYXRlX3N0YXJ0KSA9IDAgQU5EIE1JTlVURShldmVudF9kYXRlX3N0YXJ0KSA9IDAgQU5EIEhPVVIoZXZlbnRfZGF0ZV9lbmQpID0gMjMgQU5EIE1JTlVURShldmVudF9kYXRlX2VuZCkgPSA1OSc7CiAgICAkbGlzdCA9ICRkYi0+R2V0Q29sKCRxdWVyeSk7CiAgICBpZiggaXNfYXJyYXkoJGxpc3QpICYmIGNvdW50KCRsaXN0KSApIHsKICAgICAgICAkcXVlcnkgPSAnVVBEQVRFICcuJHRoaXMtPmV2ZW50c190YWJsZV9uYW1lLicgU0VUIGV2ZW50X2RhdGVfc3RhcnQgPSBDT05DQVRfV1MoXCcgXCcsIERBVEUoZXZlbnRfZGF0ZV9zdGFydCksIFwnMTM6MDA6MDBcJyksCiAgICAgICAgICAgICAgICAgICAgIGV2ZW50X2RhdGVfZW5kID0gQ09OQ0FUX1dTKFwnIFwnLCBEQVRFKGV2ZW50X2RhdGVfZW5kKSwgXCcxNDowMDowMFwnKSwgZXZlbnRfYWxsX2RheSA9IDEKICAgICAgICAgICAgICAgICAgV0hFUkUgZXZlbnRfaWQgSU4gKCcuaW1wbG9kZSgnLCcsJGxpc3QpLicpJzsKICAgICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAgIH0KCiAgICAvLyBhZGQgc29tZSBjb2x1bW5zIHRvIHRoZSBjYXRlZ29yaWVzIHRhYmxlLCBhbmQgc2V0IHNvbWUgaW5pdGlhbCB2YWx1ZXMuCiAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKCR0aGlzLT5jYXRlZ29yaWVzX3RhYmxlX25hbWUsJ2NhdGVnb3J5X2JnY29sb3IgQygxMCksY2F0ZWdvcnlfZmdjb2xvciBDKDEwKScpOwogICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgJHF1ZXJ5ID0gJ1VQREFURSAnLiR0aGlzLT5jYXRlZ29yaWVzX3RhYmxlX25hbWUuJyBTRVQgY2F0ZWdvcnlfYmdjb2xvciA9ID8sIGNhdGVnb3J5X2ZnY29sb3IgPSA/JzsKICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJyMzMzY2ZmYnLCcjZmZmZmZmJykpOwoKICAgIC8vIGZpeCBjYXRlZ29yeSBvcmRlcnMKICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuJHRoaXMtPmNhdGVnb3JpZXNfdGFibGVfbmFtZS4nIE9SREVSIEJZIGNhdGVnb3J5X29yZGVyJzsKICAgICRjYXRzID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogICAgaWYoIGNvdW50KCRjYXRzKSApIHsKICAgICAgICAkcXVlcnkgPSAnVVBEQVRFICcuJHRoaXMtPmNhdGVnb3JpZXNfdGFibGVfbmFtZS4nIFNFVCBjYXRlZ29yeV9vcmRlciA9ID8gV0hFUkUgY2F0ZWdvcnlfaWQgPSA/JzsKICAgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkY2F0cyk7ICRpKysgKSB7CiAgICAgICAgICAgICRyb3cgPSAkY2F0c1skaV07CiAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGkrMSwkcm93WydjYXRlZ29yeV9pZCddKSk7CiAgICAgICAgfQogICAgfQp9Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9IENHQ2FsZW5kYXIKdmVyc2lvbiA9IDEuMTQuNQpkZXNjcmlwdGlvbiA9IDxwPkNhbGVuZGFyIGlzIGEgbW9kdWxlIGZvciBkaXNwbGF5aW5nIGV2ZW50cyBvbiB5b3VyIHBhZ2UuIFdoZW4gdGhlCgkJbW9kdWxlIGlzIGluc3RhbGxlZCwgYSBDYWxlbmRhciBhZG1pbiBwYWdlIGlzIGFkZGVkIHRvIHRoZSBjb250ZW50IG1lbnUKCQl0aGF0IHdpbGwgYWxsb3cgeW91IHRvIG1hbmFnZSB5b3VyIGV2ZW50cy48L3A+CmF1dGhvciA9IFJvYmVydCBDYW1wYmVsbAphdXRob3JlbWFpbCA9IGNhbGd1eTEwMDBAZ21haWwuY29tCm1pbmNtc3ZlcnNpb24gPSAxLjExLjExCjExW2RlcGVuZHNdCkNHRXh0ZW5zaW9ucyA9IDEuNDQuNQpDR1NpbXBsZVNtYXJ0eSA9IDEuNy40Cg==]]></data>
	</file>
	<file>
	  <filename>/sample_csv_file.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[U3RhcnQgdGltZSxlbmQgdGltZSxUaXRsZSxzdW1tYXJ5LERlc2NyaXB0aW9uLGNhdGVnb3J5LHRlc3QxLHRlc3QyIC8vIGFueXRoaW5nIGFmdGVyIC8vIG9uIGEgbGluZSBpcyBpZ25vcmVkCi8vIHRoaXMgaXMgYSBmdWxsIGxpbmUgY29tbWVudAoyMDEyLTAxLTMxIDAwOjAwOjAwLDIwMTItMDEtMzEgMjM6NTk6MDAsTGFzdCBEYXksIkxhc3QgRGF5IG9mIEphbnVhcnkiLCJUaGlzIGlzIHRoZSBsYXN0IGRheSBvZiBqYW51YXJ5LCBmb3IgdGVzdGluZyIsR2VuZXJhbCxmb28sYmFyCjIwMTItMDItMTQsLFZhbGVudGluZXMgRGF5LFN0IFZhbGVudGluZXMgRGF5LCJSZW1lbWJlciB0byBnaXZlIHlvdXIgbG92ZWQgb25lIHNvbWUgZ2lmdHMsIHByb2JhYmx5IGNob2NvbGF0ZSBhbmQgZmxvd2VycyIsIkhvbGlkYXlzO1JvbWFudGljIix0ZXN0MXZhbCx0ZXN0MnZhbAowNC0wMS0yMDEyLDA0LTAxLTIwMTIgMTI6MDAsQXByaWwgRm9vbHMsQXByaWwgRm9vbHMgRGF5LCJXYXRjaCBvdXQgZm9yIHByYWN0aWNhbCBqb2tlcyIsSG9saWRheXMsdGVzdDF2YWxhLHRlc3QydmFsYSAvLyBqdXN0IHNvbWUgZHVtbXkgdmFsdWVzIGZvciB0ZXN0MSx0ZXN0Mgo=]]></data>
	</file>
	<file>
	  <filename>/skeleton.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNrZWxldG9uIChjKSAyMDA4IAojICAgICAgYnkgUm9iZXJ0IEFsbGVuIChha3JhYmF0KSBhbmQKIyAgICAgICAgIFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgZGlzcGxheWluZyBjYWxlbmRhcnMsCiMgIGFuZCBtYW5hZ2VtZW50IGFuZCBkaXNwbGF5IG9mIHRpbWUgYmFzZWQgZXZlbnRzLgojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_addedit_category.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogIGZ1bmN0aW9uIHVwZGF0ZV9jb2xvcigpIHsKICAgIHZhciBiZ2NvbG9yID0gJCgnI2JnY29sb3InKS52YWwoKTsKICAgIHZhciBmZ2NvbG9yID0gJCgnI2ZnY29sb3InKS52YWwoKTsKICAgIGlmKCBiZ2NvbG9yICYmIGZnY29sb3IgKSB7CiAgICAgICQoJy50ZXN0bGFiZWwnKS5jc3MoJ2JhY2tncm91bmQtY29sb3InLCBiZ2NvbG9yICkuY3NzKCdjb2xvcicsIGZnY29sb3IpOwogICAgfQogIH0KICB1cGRhdGVfY29sb3IoKTsKICAkKCcjYmdjb2xvciwjZmdjb2xvcicpLmNoYW5nZShmdW5jdGlvbigpewogICAgdXBkYXRlX2NvbG9yKCk7CiAgfSkKICAkKCdpbnB1dC5jb2xvclBpY2tlcicpLmNvbG9yUGlja2VyKCk7CiAgJChkb2N1bWVudCkub24oJ2NsaWNrJywnI2NhbmNlbCcsZnVuY3Rpb24oKXsKICAgICQoJzppbnB1dCcpLnJlbW92ZUF0dHIoJ3JlcXVpcmVkJyk7CiAgfSkKfSk7Cjwvc2NyaXB0PgoKe2lmICRjYXRlZ29yeS5pZCA+IDB9CjxoMz57JG1vZC0+TGFuZygnZWRpdF9jYXRlZ29yeScpfTwvaDM+CntlbHNlfQo8aDM+eyRtb2QtPkxhbmcoJ2FkZF9jYXRlZ29yeScpfTwvaDM+CnsvaWZ9Cgp7JGZvcm1zdGFydH0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgPGlucHV0IGlkPSJjYW5jZWwiIHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jYW5jZWwiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2FuY2VsJyl9Ii8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPip7JG1vZC0+TGFuZygnbmFtZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1uYW1lIiB2YWx1ZT0ieyRjYXRlZ29yeS5uYW1lfGRlZmF1bHQ6Jyd9IiBzaXplPSI0MCIgcmVxdWlyZWQvPgogICAgJm5ic3A7PHNwYW4gY2xhc3M9InRlc3RsYWJlbCIgc3R5bGU9InBhZGRpbmc6IDVweDsiPlNhbXBsZTwvc3Bhbj4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+KnskbW9kLT5MYW5nKCdiZ2NvbG9yJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCBpZD0iYmdjb2xvciIgdHlwZT0idGV4dCIgY2xhc3M9ImNvbG9yUGlja2VyIiBuYW1lPSJ7JGFjdGlvbmlkfWJnY29sb3IiIHZhbHVlPSJ7JGNhdGVnb3J5LmJnY29sb3J8ZGVmYXVsdDonJ30iIHNpemU9IjciLz4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+KnskbW9kLT5MYW5nKCdmZ2NvbG9yJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCBpZD0iZmdjb2xvciIgdHlwZT0idGV4dCIgY2xhc3M9ImNvbG9yUGlja2VyIiBuYW1lPSJ7JGFjdGlvbmlkfWZnY29sb3IiIHZhbHVlPSJ7JGNhdGVnb3J5LmZnY29sb3J8ZGVmYXVsdDonJ30iIHNpemU9IjciLz4KICA8L3A+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_add_event.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTIwMHB4KSB7CiAgLmdyaWRfOCB7CiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogIH0KICAuZ3JpZF80IHsKICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7CiAgfQp9CnRleHRhcmVhIHsKICB3aWR0aDogaW5pdGlhbDsKICBoZWlnaHQ6IGluaXRpYWw7Cn0KPC9zdHlsZT4KCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICB2YXIgYXV0b2NoYW5nZV9lbmRkYXRlID0ge2lmICRldmVudC5ldmVudF9pZCA+IDB9MHtlbHNlfTF7L2lmfTsKICAkKCcjdXBkYXRlX2NoaWxkcmVuJykuY2xpY2soZnVuY3Rpb24oKXsKICAgICQoJyNyZWN1cl9hbGwnKS50b2dnbGUoKTsKICB9KTsKICAkKCcjc3RhcnRkYXRlIDppbnB1dCcpLmNoYW5nZShmdW5jdGlvbigpewogICAgaWYoICFhdXRvY2hhbmdlX2VuZGRhdGUgKSByZXR1cm47CiAgICB2YXIgbmFtZSA9ICQodGhpcykuYXR0cignbmFtZScpLnJlcGxhY2UoJ3N0YXJ0JywnZW5kJyk7CiAgICB2YXIgbmFtZTIgPSAkKHRoaXMpLmF0dHIoJ25hbWUnKS5yZXBsYWNlKCdzdGFydGRhdGUnLCdldmVudF9yZWN1cl9kYXRlJyk7CiAgICB2YXIgcyA9ICI6aW5wdXRbbmFtZT0nIiArIG5hbWUgKyAiJ10iOwogICAgJChzKS52YWwoJCh0aGlzKS52YWwoKSk7CiAgICB2YXIgczIgPSAiOmlucHV0W25hbWU9JyIgKyBuYW1lMiArICInXSI7CiAgICAkKHMyKS52YWwoJCh0aGlzKS52YWwoKSk7CiAgfSk7CiAgJCgnI3N0YXJ0ZGF0ZSA6aW5wdXQnKS50cmlnZ2VyKCdjaGFuZ2UnKTsKCiAgJCgnI2VuZGRhdGUgOmlucHV0JykuY2hhbmdlKGZ1bmN0aW9uKCl7CiAgICBhdXRvY2hhbmdlX2VuZGRhdGUgPSAwOwogIH0pCgogICQoJyNhbGxfZGF5X2V2ZW50JykuY2xpY2soZnVuY3Rpb24oKXsKICAgIGlmKCAkKHRoaXMpLmF0dHIoJ2NoZWNrZWQnKSApIHsKICAgICAgJCgnI3N0YXJ0dGltZScpLmhpZGUoKTsKICAgICAgJCgnI2VuZHRpbWUnKS5oaWRlKCk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgJCgnI3N0YXJ0dGltZScpLnNob3coKTsKICAgICAgJCgnI2VuZHRpbWUnKS5zaG93KCk7CiAgICB9CiAgfSk7CiAgJCgnI2VuZGRhdGVfdmFsaWQnKS5jbGljayhmdW5jdGlvbigpewogICAgaWYoICQodGhpcykuYXR0cignY2hlY2tlZCcpICkgewogICAgICAkKCcjZW5kZGF0ZScpLnNob3coKTsKICAgIH0KICAgIGVsc2UgewogICAgICAkKCcjZW5kZGF0ZScpLmhpZGUoKTsKICAgIH0KICB9KTsKfSk7CmZ1bmN0aW9uIGhhbmRsZURyb3Bkb3duKCkKewogIHZhciBsYWJlbHMgPSBuZXcgQXJyYXkoKTsKICBsYWJlbHNbImRhaWx5Il0gPSAieyRtb2QtPkxhbmcoJ3BsdXJhbF9kYWlseScpfSI7CiAgbGFiZWxzWyJ3ZWVrbHkiXSA9ICJ7JG1vZC0+TGFuZygncGx1cmFsX3dlZWtseScpfSI7CiAgbGFiZWxzWyJtb250aGx5Il0gPSAieyRtb2QtPkxhbmcoJ3BsdXJhbF9tb250aGx5Jyl9IjsKICBsYWJlbHNbInllYXJseSJdID0gInskbW9kLT5MYW5nKCdwbHVyYWxfeWVhcmx5Jyl9IjsKCiAgdmFyIGVsICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWN1cmRldGFpbHMnKTsKICB2YXIgZWwyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlY3VycGVyaW9kJyk7CiAgdmFyIHdlZWtseSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWN1cl93ZWVrbHknKTsKICB2YXIgZWw0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ludGVydmFsbGFiZWwnKTsKICB2YXIgbW9udGhseSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWN1cl9tb250aGx5Jyk7CiAgdmFyIGlkeCA9IGVsMi5zZWxlY3RlZEluZGV4OwogIHZhciB2YWwgPSBlbDJbaWR4XS52YWx1ZTsKICB2YXIgdHh0ID0gJ2lubGluZSc7CiAgdmFyIHR4dF93ZWVrbHkgPSAnbm9uZSc7CiAgdmFyIHR4dF9tb250aGx5ID0gJ25vbmUnOwoKICBpZiggdmFsID09ICdub25lJyApCiAgewogICAgdHh0ID0gJ25vbmUnOwogICAgdHh0X3dlZWtseSA9ICdub25lJzsKICAgIHR4dF9tb250aGx5ID0gJ25vbmUnOwogIH0KCiAgZWxzZSBpZiggdmFsID09ICd3ZWVrbHknICkKICB7CiAgICB0eHQgPSAnaW5saW5lJzsKICAgIHR4dF93ZWVrbHkgPSAnYmxvY2snOwogICAgdHh0X21vbnRobHkgPSAnbm9uZSc7CiAgfQoKICBlbHNlIGlmKCB2YWwgPT0gJ21vbnRobHknICkKICB7CiAgICB0eHQgPSAnaW5saW5lJzsKICAgIHR4dF93ZWVrbHkgPSAnbm9uZSc7CiAgICB0eHRfbW9udGhseSA9ICdibG9jayc7CiAgfQoKICBlbC5zdHlsZS5kaXNwbGF5ID0gdHh0OwogIHdlZWtseS5zdHlsZS5kaXNwbGF5ID0gdHh0X3dlZWtseTsKICBtb250aGx5LnN0eWxlLmRpc3BsYXkgPSB0eHRfbW9udGhseTsKCiAgZWw0LmlubmVySFRNTCA9IGxhYmVsc1t2YWxdOwp9Cjwvc2NyaXB0PgoKe2lmICRldmVudC5ldmVudF9pZCA+IDB9CjxoMz57JG1vZC0+TGFuZygnZWRpdF9ldmVudCcpfTwvaDM+CntlbHNlfQo8aDM+eyRtb2QtPkxhbmcoJ2NhbF9hZGRldmVudCcpfTwvaDM+CnsvaWZ9Cgp7aWYgJGV2ZW50LmV2ZW50X2lkID4gMCAmJiAkZXZlbnQuZXZlbnRfcGFyZW50X2lkID4gMH0KPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iIHN0eWxlPSJkaXNwbGF5OiBibG9jazsiPnskbW9kLT5MYW5nKCdpbmZvX2VkaXRfY2hpbGRldmVudCcpfTwvZGl2Pgp7L2lmfQp7aWYgJGV2ZW50LmV2ZW50X2lkID4gMCAmJiAkZXZlbnQuZXZlbnRfcmVjdXJfcGVyaW9kICE9ICdub25lJyAmJiAkZXZlbnQuZXZlbnRfcGFyZW50X2lkID09IC0xfQo8ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyI+eyRtb2QtPkxhbmcoJ2luZm9fZWRpdF9wYXJlbnRldmVudCcpfTwvZGl2Pgp7L2lmfQoKeyRmb3Jtc3RhcnR9eyRoaWRkZW58ZGVmYXVsdDonJ30KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIvPgogIDwvcD4KPC9kaXY+Cgp7Y2FwdHVyZSBhc3NpZ249J3VzZTI0J317JG1vZC0+R2V0UHJlZmVyZW5jZSgndXNlX3R3ZWx2ZV9ob3VyX2Nsb2NrJyl9ey9jYXB0dXJlfQp7aWYgJHVzZTI0ID09IDF9CiAge2Fzc2lnbiB2YXI9J3VzZTI0JyB2YWx1ZT0wfQp7ZWxzZX0KICB7YXNzaWduIHZhcj0ndXNlMjQnIHZhbHVlPTF9CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwiPgogIDxkaXYgY2xhc3M9ImdyaWRfOCIgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwOyI+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICA8cCBjbGFzcz0icGFnZXRleHQiPip7JG1vZC0+TGFuZygnY2FsX2Zyb21kYXRlJyl9OjwvcD4KICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgICAge2NhcHR1cmUgYXNzaWduPSd0bXAnfXskYWN0aW9uaWR9c3RhcnRkYXRlX3svY2FwdHVyZX0KICAgICAgICA8c3BhbiBpZD0ic3RhcnRkYXRlIj57aHRtbF9zZWxlY3RfZGF0ZSBwcmVmaXg9JHRtcCB0aW1lPSRldmVudC5ldmVudF9kYXRlX3N0YXJ0X3V0IHN0YXJ0X3llYXI9JHN0YXJ0X3llYXIgZW5kX3llYXI9JGVuZF95ZWFyfTwvc3Bhbj4KICAgICAgICAmbmJzcDs8c3BhbiBpZD0ic3RhcnR0aW1lIntpZiAkZXZlbnQuYWxsX2RheV9ldmVudCA9PSAxfSBzdHlsZT0iZGlzcGxheTogbm9uZTsiey9pZn0+IDxzcGFuIHN0eWxlPSJwYWRkaW5nLXJpZ2h0OiAwLjVlbTsiPkA8L3NwYW4+IHtodG1sX3NlbGVjdF90aW1lIHVzZV8yNF9ob3Vycz0kdXNlMjQgcHJlZml4PSR0bXAgdGltZT0kZXZlbnQuZXZlbnRfZGF0ZV9zdGFydF91dCBtaW51dGVfaW50ZXJ2YWw9MTUgZGlzcGxheV9zZWNvbmRzPWZhbHNlfTwvc3Bhbj4KICAgICAgICAmbmJzcDtBbGwgRGF5OiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InskYWN0aW9uaWR9YWxsX2RheV9ldmVudCIgaWQ9ImFsbF9kYXlfZXZlbnQiIHZhbHVlPSIxIiB7aWYgJGV2ZW50LmFsbF9kYXlfZXZlbnR9IGNoZWNrZWQ9ImNoZWNrZWQiey9pZn0vPgogICAgICAgIHthc3NpZ24gdmFyPSdzX2RhdGUnIHZhbHVlPSRldmVudC5ldmVudF9kYXRlX3N0YXJ0X3V0fXthc3NpZ24gdmFyPSdlX2RhdGUnIHZhbHVlPSRldmVudC5ldmVudF9kYXRlX2VuZF91dH08YnIvPgogICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImVuZGRhdGVfdmFsaWQiIG5hbWU9InskYWN0aW9uaWR9ZW5kZGF0ZV92YWxpZCIgdmFsdWU9IjEiIHtpZiAkc19kYXRlICE9ICRlX2RhdGUgJiYgJGVfZGF0ZSAhPSAwfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0vPnskbW9kLT5MYW5nKCd1c2VfdG9fZGF0ZScpfQogICAgICA8L3A+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJlbmRkYXRlIiBjbGFzcz0icGFnZW92ZXJmbG93IiB7aWYgJHNfZGF0ZSA9PSAkZV9kYXRlIHx8ICRlX2RhdGUgPT0gMH1zdHlsZT0iZGlzcGxheTogbm9uZTsiey9pZn0+CiAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2NhbF90b2RhdGUnKX06PC9wPgogICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgICB7Y2FwdHVyZSBhc3NpZ249J3RtcCd9eyRhY3Rpb25pZH1lbmRkYXRlX3svY2FwdHVyZX0KICAgICAgICB7aHRtbF9zZWxlY3RfZGF0ZSBwcmVmaXg9JHRtcCAgdGltZT0kZXZlbnQuZXZlbnRfZGF0ZV9lbmRfdXQgc3RhcnRfeWVhcj0kc3RhcnRfeWVhciBlbmRfeWVhcj0kZW5kX3llYXJ9PHNwYW4gaWQ9ImVuZHRpbWUie2lmICRldmVudC5hbGxfZGF5X2V2ZW50ID09IDF9IHN0eWxlPSJkaXNwbGF5OiBub25lOyJ7L2lmfT4gPHNwYW4gc3R5bGU9InBhZGRpbmctcmlnaHQ6IDAuNWVtOyI+QDwvc3Bhbj4ge2h0bWxfc2VsZWN0X3RpbWUgdXNlXzI0X2hvdXJzPSR1c2UyNCB0aW1lPSRldmVudC5ldmVudF9kYXRlX2VuZF91dCBwcmVmaXg9JHRtcCBtaW51dGVfaW50ZXJ2YWw9MTUgZGlzcGxheV9zZWNvbmRzPWZhbHNlfTwvc3Bhbj4KICAgICAgPC9wPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4qeyRtb2QtPkxhbmcoJ2NhbF90aXRsZScpfTo8L3A+CiAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZXZlbnRfdGl0bGV9PC9wPgogICAgPC9kaXY+CgogICAge2lmIGlzc2V0KCRldmVudF9zdW1tYXJ5KX0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2NhbF9zdW1tYXJ5Jyl9OjwvcD4KICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRldmVudF9zdW1tYXJ5fTwvcD4KICAgIDwvZGl2PgogICAgey9pZn0KCiAgICB7aWYgaXNzZXQoJGV2ZW50X2RldGFpbHMpfQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnY2FsX2RldGFpbHMnKX06PC9wPgogICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGV2ZW50X2RldGFpbHN9PC9wPgogICAgPC9kaXY+CiAgICB7L2lmfQoKICAgIHtpZiBpc3NldCgkZmllbGRzKX0KICAgIHtmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPSdvbmUnfQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG9uZS0+bmFtZX08L3A+CiAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskb25lLT5maWVsZH08L3A+CiAgICA8L2Rpdj4KICAgIHsvZm9yZWFjaH0KICAgIHsvaWZ9CiAgPC9kaXY+eyogLmdyaWRfOCAqfQoKICA8ZGl2IGNsYXNzPSJncmlkXzQiPgogICAge2lmIGlzc2V0KCRldmVudC5vd25lcl9uYW1lKX0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ293bmVyJyl9OjwvcD4KICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRldmVudC5vd25lcl9uYW1lfTwvcD4KICAgIDwvZGl2PgogICAgey9pZn0KCiAgICB7aWYgaXNzZXQoJGNhdGVnb3JpZXMpfQogICAgPGZpZWxkc2V0IHN0eWxlPSJtYXgtaGVpZ2h0OiAyMGVtOyBvdmVyZmxvdy15OiBhdXRvOyI+CiAgICAgIDxsZWdlbmQ+eyRtb2QtPkxhbmcoJ2NhbF9jYXRlZ29yaWVzJyl9OjwvbGVnZW5kPgogICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAge2ZvcmVhY2ggZnJvbT0kY2F0ZWdvcmllcyBpdGVtPSdvbmUnfQogICAgICAgIHskb25lLT5maWVsZH0mbmJzcDt7JG9uZS0+bmFtZX08YnIvPgogICAgICB7L2ZvcmVhY2h9CiAgICAgIDwvcD4KICAgIDwvZmllbGRzZXQ+CiAgICB7L2lmfQoKICAgIHtpZiBpc3NldCgkYWxsb3dfb3ZlcmxhcCl9CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdjYWxfb3ZlcmxhcCcpfTo8L3A+CiAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9ZXZlbnRfYWxsb3dzX292ZXJsYXAiIHZhbHVlPSIwIi8+CiAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWV2ZW50X2FsbG93c19vdmVybGFwIiB2YWx1ZT0iMSIgY2hlY2tlZD0iY2hlY2tlZCIvPgogICAgICAgIDxici8+eyRtb2QtPkxhbmcoJ2NhbF9pbmZvX292ZXJsYXAnKX0KICAgICAgPC9wPgogICAgPC9kaXY+CiAgICB7L2lmfQoKICAgIDxkaXYgaWQ9InJlY3VyX2FsbCIge2lmICRldmVudC5ldmVudF9yZWN1cl9wZXJpb2QgIT0gJ25vbmUnICYmICRldmVudC5ldmVudF9pZCA+IDB9c3R5bGU9ImRpc3BsYXk6IG5vbmU7InsvaWZ9PgogICAge2lmICRldmVudC5ldmVudF9wYXJlbnRfaWQgPD0gMH0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2NhbF9yZWN1cl9wZXJpb2QnKX06PC9wPgogICAgICB7Y2FwdHVyZSBhc3NpZ249J3RtcCd9eyRhY3Rpb25pZH1ldmVudF9yZWN1cl9wZXJpb2R7L2NhcHR1cmV9CiAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgIDxzZWxlY3QgaWQ9InJlY3VycGVyaW9kIiBuYW1lPSJ7JGFjdGlvbmlkfWV2ZW50X3JlY3VyX3BlcmlvZCIgb25jbGljaz0iaGFuZGxlRHJvcGRvd24oKTsiPgogICAgICAgIHtmb3JlYWNoIGZyb209JHJlY3VyX29wdGlvbnMga2V5PWtleSBpdGVtPXZhbHVlfQogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ieyR2YWx1ZX0iIHtpZiAkdmFsdWUgPT0gJGV2ZW50X3JlY3VyX3BlcmlvZH1zZWxlY3RlZD0ic2VsZWN0ZWQiey9pZn0+eyRrZXl9PC9vcHRpb24+CiAgICAgICAgey9mb3JlYWNofQogICAgICAgIDwvc2VsZWN0PgogICAgICA8L3A+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJyZWN1cmRldGFpbHMiIHtpZiAkZXZlbnQuZXZlbnRfcmVjdXJfcGVyaW9kID09ICdub25lJ31zdHlsZT0iZGlzcGxheTogbm9uZTsiey9pZn0+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdjYWxfcmVjdXJfZGV0YWlscycpfTo8L3A+CiAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICB7Y2FwdHVyZSBhc3NpZ249J3RtcCd9eyRhY3Rpb25pZH1ldmVudF9yZWN1cl9pbnRlcnZhbHsvY2FwdHVyZX0KICAgICAgeyRtb2QtPkxhbmcoJ2ludGVydmFsJyl9OiZuYnNwO3todG1sX29wdGlvbnMgbmFtZT0kdG1wIHNlbGVjdGVkPSRldmVudC5ldmVudF9yZWN1cl9pbnRlcnZhbCBvcHRpb25zPSRudW1zfSZuYnNwOzxzcGFuIGlkPSJpbnRlcnZhbGxhYmVsIj57JHJlcGVhdF9zdHJ9PC9zcGFuPjxici8+CiAgICAgIDwvcD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IiBpZD0icmVjdXJfd2Vla2x5IiB7aWYgJGV2ZW50LmV2ZW50X3JlY3VyX3BlcmlvZCAhPSAnd2Vla2x5J31zdHlsZT0iZGlzcGxheTogbm9uZTt7L2lmfSI+CiAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3dlZWtkYXlzJyl9OjwvcD4KICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF93ZWVrZGF5c308L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyIgaWQ9InJlY3VyX21vbnRobHkiIHtpZiAkZXZlbnQuZXZlbnRfcmVjdXJfcGVyaW9kICE9ICdtb250aGx5J31zdHlsZT0iZGlzcGxheTogbm9uZTt7L2lmfSI+CiAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2ZyZXF1ZW5jeScpfTo8L3A+CiAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWV2ZW50X3JlY3VyX21vbnRoZGF5c1tdIiBtdWx0aXBsZT0ibXVsdGlwbGUiIHNpemU9IjUiPgogICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHJlY3VyX2RheXMgc2VsZWN0ZWQ9JGV2ZW50LmV2ZW50X3JlY3VyX21vbnRoZGF5c30KICAgICAgIDwvc2VsZWN0PgogICAgICA8L3A+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdjYWxfcmVjdXJfdW50aWwnKX06PC9wPgogICAgICB7Y2FwdHVyZSBhc3NpZ249J3RtcCd9eyRhY3Rpb25pZH1ldmVudF9yZWN1cl9kYXRlX3svY2FwdHVyZX0KICAgICAge2NhcHR1cmUgYXNzaWduPSd0bXAyJ317JGFjdGlvbmlkfWV2ZW50X3JlY3VyX2NvdW50ey9jYXB0dXJlfQogICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57aHRtbF9zZWxlY3RfZGF0ZSB0aW1lPSRldmVudC5ldmVudF9kYXRlX3JlY3VyX2VuZF91dCBwcmVmaXg9JHRtcCBzdGFydF95ZWFyPSRzdGFydF95ZWFyIGVuZF95ZWFyPSRlbmRfeWVhcn0KICAgICAgPGJyLz57JG1vZC0+TGFuZygnbWF4X3JlY3VyX2V2ZW50cycpfTombmJzcDt7aHRtbF9vcHRpb25zIG5hbWU9JHRtcDIgb3B0aW9ucz0kbWF4aXRlcnMgc2VsZWN0ZWQ9JGV2ZW50LmV2ZW50X3JlY3VyX2NvdW50fTwvcD4KICAgIDwvZGl2PgogICAgPC9kaXY+eyogcmVjdXJkZXRhaWxzICp9CiAgICA8L2Rpdj57KiByZWN1cl9hbGwgKn0KICAgIHsvaWZ9CgogICAge2lmICRldmVudC5ldmVudF9pZCA+IDAgJiYgJGV2ZW50LmV2ZW50X3JlY3VyX3BlcmlvZCAhPSAnbm9uZScgJiYgJGV2ZW50LmV2ZW50X3BhcmVudF9pZCA9PSAtMX0KICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3VwZGF0ZV9jaGlsZHJlbicpfTo8L3A+CiAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgIHtjYXB0dXJlIGFzc2lnbj0ndG1wJ317JGFjdGlvbmlkfXVwZGF0ZV9jaGlsZHJlbnsvY2FwdHVyZX0KICAgICAgICA8aW5wdXQgaWQ9InVwZGF0ZV9jaGlsZHJlbiIgdHlwZT0iY2hlY2tib3giIG5hbWU9InskdG1wfSIgdmFsdWU9IjEiLz4KICAgICAgPC9wPgogICAgPC9kaXY+CiAgICB7L2lmfQoKICAgIHtpZiAkZXZlbnQuZXZlbnRfaWQgPiAwICYmICRldmVudC5ldmVudF9wYXJlbnRfaWQgPiAwfQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X3JlbW92ZWZyb21wYXJlbnQnKX08L3A+CiAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9cmVtb3ZlZnJvbXBhcmVudH0KICAgICAgICA8YnIvPnskbW9kLT5MYW5nKCdpbmZvX3JlbW92ZWZyb21wYXJlbnQnKX0KICAgICAgPC9wPgogICAgPC9kaXY+CiAgICB7L2lmfQoKICA8L2Rpdj57KiAuZ3JpZF80ICp9CjwvZGl2PnsqIGNfZnVsbCAqfQoKeyRmb3JtZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_ajax_getcategories.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRjYXRlZ29yaWVzKSAmJiBjb3VudCgkY2F0ZWdvcmllcyl9Cjx0YWJsZSBjbGFzcz0icGFnZXRhYmxlIj4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD57JG1vZC0+TGFuZygnbmFtZScpfTwvdGg+CiAgICAgIDx0aD48L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj48L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj48L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keSBpZD0iY2F0ZWdvcnlsaXN0Ij4KICB7Zm9yZWFjaCAkY2F0ZWdvcmllcyBhcyAkY2F0fQogICAge21vZHVsZV9hY3Rpb25fbGluayBhY3Rpb249YWRtaW5fYWRkZWRpdF9jYXRlZ29yeSBjYXRpZD0kY2F0LmNhdGVnb3J5X2lkIHVybG9ubHk9MSBhc3NpZ249J2VkaXRfdXJsJ30KICAgIHttb2R1bGVfYWN0aW9uX2xpbmsgYWN0aW9uPWFkbWluX2RlbGV0ZV9jYXRlZ29yeSBjYXRpZD0kY2F0LmNhdGVnb3J5X2lkIHVybG9ubHk9MSBhc3NpZ249J2RlbGV0ZV91cmwnfQogICAgPHRyIGlkPSJjYXRfeyRjYXQuY2F0ZWdvcnlfaWR9Ij4KICAgICAgPHRkPgogICAgICAgIDxhIGhyZWY9InskZWRpdF91cmx9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2VkaXQnKX0iPnskY2F0LmNhdGVnb3J5X25hbWV9PC9hPgogICAgICA8L3RkPgogICAgICA8dGQ+CiAgICAgICAgIDxzcGFuIHN0eWxlPSJwYWRkaW5nOiAycHg7IHtpZiAkY2F0LmNhdGVnb3J5X2JnY29sb3J9YmFja2dyb3VuZC1jb2xvcjogeyRjYXQuY2F0ZWdvcnlfYmdjb2xvcn07ey9pZn0ge2lmICRjYXQuY2F0ZWdvcnlfZmdjb2xvcn1jb2xvcjogeyRjYXQuY2F0ZWdvcnlfZmdjb2xvcn07ey9pZn0iPlNhbXBsZSBUZXh0PC9zcGFuPgogICAgICA8L3RkPgogICAgICA8dGQ+PGEgaHJlZj0ieyRlZGl0X3VybH0iIHRpdGxlPSJ7JG1vZC0+TGFuZygnZWRpdCcpfSI+e2NnaW1hZ2UgaW1hZ2U9J2ljb25zL3N5c3RlbS9lZGl0LmdpZicgY2xhc3M9J3N5c3RlbWljb24nIGFsdD0kbW9kLT5MYW5nKCdlZGl0Jyl9PC9hPjwvdGQ+CiAgICAgIDx0ZD48YSBocmVmPSJ7JGRlbGV0ZV91cmx9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2RlbGV0ZScpfSI+e2NnaW1hZ2UgaW1hZ2U9J2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJyBjbGFzcz0nc3lzdGVtaWNvbicgYWx0PSRtb2QtPkxhbmcoJ2RlbGV0ZScpfTwvYT48L3RkPgogICAgPC90cj4KICB7L2ZvcmVhY2h9CiAgPC90Ym9keT4KPC90YWJsZT4Key9pZn0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_categories_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogIHZhciBjYXRlZ29yeV9yZWZyZXNoX3VybCA9ICd7bW9kdWxlX2FjdGlvbl9saW5rIGFjdGlvbj0nYWRtaW5fYWpheF9nZXRjYXRlZ29yaWVzJyBqc2ZyaWVuZGx5PTF9JnNob3d0ZW1wbGF0ZT1mYWxzZSc7CiAgJCgnI2NhdGVnb3J5dGFibGUnKS5sb2FkKGNhdGVnb3J5X3JlZnJlc2hfdXJsKTsKCiAgJCgnI3Jlb3JkZXJfbW9kZV9idXR0b24nKS5jbGljayhmdW5jdGlvbigpewogICAgJCgnI2NhdGVnb3J5X29wdGlvbnMnKS5oaWRlKCk7CiAgICAkKCcjcmVvcmRlcl9tb2RlJykuc2hvdygpOwogICAgJCgndGJvZHkjY2F0ZWdvcnlsaXN0Jykuc29ydGFibGUoewogICAgICBpdGVtczogJz4gdHInLAogICAgICBjdXJzb3I6ICdtb3ZlJwogICAgfSkKICB9KTsKICAkKCcjcmVvcmRlcl9tb2RlX2NhbmNlbCcpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICAkKCcjcmVvcmRlcl9tb2RlJykuaGlkZSgpOwogICAgJCgnI2NhdGVnb3J5X29wdGlvbnMnKS5zaG93KCk7CiAgICAkKCd0Ym9keSNjYXRlZ29yeWxpc3QnKS5zb3J0YWJsZSgnZGVzdHJveScpOwogICAgLy8gYWpheCBjYWxsIHRvIHJlc3RvcmUgdGhlIGNhdGVnb3J5IGxpc3QKICAgICQoJyNjYXRlZ29yeXRhYmxlJykubG9hZChjYXRlZ29yeV9yZWZyZXNoX3VybCk7CiAgfSk7CiAgJCgnI3Jlb3JkZXJfbW9kZV9zdWJtaXQnKS5jbGljayhmdW5jdGlvbigpewogICAgJCgnI3Jlb3JkZXJfbW9kZScpLmhpZGUoKTsKICAgICQoJyNjYXRlZ29yeV9vcHRpb25zJykuc2hvdygpOwogICAgLy8gYWpheCBjYWxsIHRvIHN1Ym1pdCB0aGUgY2F0ZWdvcnkgbGlzdAogICAgJC5hamF4KHsKICAgICAgdHlwZTogJ1BPU1QnLAogICAgICB1cmw6ICd7bW9kdWxlX2FjdGlvbl9saW5rIGFjdGlvbj1hZG1pbl9hamF4X29yZGVyY2F0ZWdvcmllcyBqc2ZyaWVuZGx5PTF9JnNob3d0ZW1wbGF0ZT1mYWxzZScsCiAgICAgIGRhdGE6ICQoJ3Rib2R5I2NhdGVnb3J5bGlzdCcpLnNvcnRhYmxlKCdzZXJpYWxpemUnKSwKICAgICAgc3VjY2VzczogZnVuY3Rpb24oIGRhdGEgKSB7CiAgICAgICAgLy8gYWpheCBjYWxsIHRvIHJlc3RvcmUgdGhlIGNhdGVnb3J5IGxpc3QKICAgICAgICAkKCcjY2F0ZWdvcnl0YWJsZScpLmxvYWQoY2F0ZWdvcnlfcmVmcmVzaF91cmwpOwogICAgICB9LAogICAgICBlcnJvcjogZnVuY3Rpb24oanFYSFIsIHRleHRTdGF0dXMsIGVycm9yVGhyb3duKSB7CiAgICAgICAgYWxlcnQoJ2ZhaWwgJyt0ZXh0U3RhdHVzKTsKICAgICAgICAvLyBhamF4IGNhbGwgdG8gcmVzdG9yZSB0aGUgY2F0ZWdvcnkgbGlzdAogICAgICAgICQoJyNjYXRlZ29yeXRhYmxlJykubG9hZChjYXRlZ29yeV9yZWZyZXNoX3VybCk7CiAgICAgIH0KICAgIH0pOwogIH0pOwp9KTsKPC9zY3JpcHQ+Cgo8ZGl2IGlkPSJjYXRlZ29yeV9vcHRpb25zIiBjbGFzcz0icGFnZW9wdGlvbnMiPgogIDxhIGhyZWY9Inttb2R1bGVfYWN0aW9uX2xpbmsgYWN0aW9uPSdhZG1pbl9hZGRlZGl0X2NhdGVnb3J5JyB1cmxvbmx5PTF9Ij57Y2dpbWFnZSBpbWFnZT0naWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnIGFsdD0kbW9kLT5MYW5nKCdhZGRfY2F0ZWdvcnknKSBjbGFzcz0nc3lzdGVtaWNvbid9IHskbW9kLT5MYW5nKCdhZGRfY2F0ZWdvcnknKX08L2E+CiAgPGEgaWQ9InJlb3JkZXJfbW9kZV9idXR0b24iPntjZ2ltYWdlIGltYWdlPSdpY29ucy9zeXN0ZW0vcmVvcmRlci5naWYnIGFsdD0kbW9kLT5MYW5nKCdyZW9yZGVyJyl9IHskbW9kLT5MYW5nKCdyZW9yZGVyJyl9PC9hPgo8L2Rpdj4KCjxkaXYgaWQ9InJlb3JkZXJfbW9kZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KICA8ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyI+eyRtb2QtPkxhbmcoJ2luZm9fcmVvcmRlcl9jYXRlZ29yaWVzJyl9PC9kaXY+CiAgPGEgaWQ9InJlb3JkZXJfbW9kZV9jYW5jZWwiPntjZ2ltYWdlIGltYWdlPSdmYWxzZS5naWYnIGFsdD0kbW9kLT5MYW5nKCdjYW5jZWwnKX0geyRtb2QtPkxhbmcoJ2NhbmNlbCcpfTwvYT4mbmJzcDsKICA8YSBpZD0icmVvcmRlcl9tb2RlX3N1Ym1pdCI+e2NnaW1hZ2UgaW1hZ2U9J3RydWUuZ2lmJyBhbHQ9JG1vZC0+TGFuZygnc3VibWl0Jyl9IHskbW9kLT5MYW5nKCdzdWJtaXQnKX08L2E+CjwvZGl2PgoKPGRpdiBpZD0iY2F0ZWdvcnl0YWJsZSI+PC9kaXY+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_events_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHN0eWxlIHR5cGU9InRleHQvY3NzIiBzY29wZWQ+e2pzbWlufQouZmMtZXZlbnQgewogIG1pbi1oZWlnaHQ6IDIwcHg7Cn0KLmZjLWV2ZW50LWljb25zIHsKICB0ZXh0LWFsaWduOiByaWdodDsKICBmbG9hdDogcmlnaHQ7CiAgcG9zaXRpb246IGFic29sdXRlOwogIGJvdHRvbTogMDsKICByaWdodDogMDsKfQouaW5mb3JtYXRpb24gewogIGRpc3BsYXk6IGJsb2NrOwp9Ci5lcnJvciB7CiAgZGlzcGxheTogYmxvY2s7Cn0KLmZjLWV2ZW50LWNvbnRhaW5lciBhIHsKICBjb2xvcjogd2hpdGU7Cn0KLnRleHRfcmlnaHQgewogIHRleHQtYWxpZ246IHJpZ2h0Owp9Ci5mb3JtX3JvdyB7CiAgcGFkZGluZzogMnB4IDA7CiAgaGVpZ2h0OiBhdXRvOwp9Ci5mb3JtX3Byb21wdCB7CiAgdGV4dC1hbGlnbjogcmlnaHQ7Cn0KLmZvcm1faW5wdXQgewp9CmEuZ290b19kYXRlIHsKICBjdXJzb3I6IHBvaW50ZXI7IGN1cnNvcjogaGFuZDsKfQojZmluZF9yZXN1bHRzX3BhbmVsIHRhYmxlIHsKICB3aWR0aDogMTAwJTsKfQojZmluZF9yZXN1bHRzX3BhbmVsIHRoIHsKICBwYWRkaW5nLXJpZ2h0OiAxZW07Cn0KI2ZpbmRfcmVzdWx0c19wYW5lbCB0ZCB7CiAgcGFkZGluZy1yaWdodDogMWVtOwp9CnsvanNtaW59PC9zdHlsZT4KCnttb2R1bGVfYWN0aW9uX2xpbmsgYWN0aW9uPSdhZG1pbl9hamF4X2ZldGNoZXZlbnRzJyBqc2ZyaWVuZGx5PTEgYXNzaWduPWZldGNoX3VybH0KCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij57anNtaW59CmZ1bmN0aW9uIGNsb3NlRGlhbG9nKHNlbCkgewogIHRyeSB7CiAgICBpZiggJChzZWwpLmRpYWxvZygnaXNPcGVuJykgKSAkKHNlbCkuZGlhbG9nKCdjbG9zZScpOwogIH0gY2F0Y2goIGVyciApIHsKICAgIC8vIG5vdGhpbmcuCiAgfQp9CmZ1bmN0aW9uIGZvcm1hdERhdGUoZGF0ZSxzaG93X3RpbWUpIHsKICB2YXIgb3V0ID0gZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKTsKICBpZiggc2hvd190aW1lICkgewogICAgb3V0ID0gb3V0ICsgJyAnOwogICAgb3V0ID0gb3V0ICsgZGF0ZS50b0xvY2FsZVRpbWVTdHJpbmcoKTsKICB9CiAgcmV0dXJuIG91dDsKfQoKZnVuY3Rpb24gY3JlYXRlQ29va2llKG5hbWUsIHZhbHVlLCBkYXlzKSB7CiAgICB2YXIgZXhwaXJlczsKCiAgICBpZiAoZGF5cykgewogICAgICAgIHZhciBkYXRlID0gbmV3IERhdGUoKTsKICAgICAgICBkYXRlLnNldFRpbWUoZGF0ZS5nZXRUaW1lKCkgKyAoZGF5cyAqIDI0ICogNjAgKiA2MCAqIDEwMDApKTsKICAgICAgICBleHBpcmVzID0gIjsgZXhwaXJlcz0iICsgZGF0ZS50b0dNVFN0cmluZygpOwogICAgfSBlbHNlIHsKICAgICAgICBleHBpcmVzID0gIiI7CiAgICB9CiAgICBkb2N1bWVudC5jb29raWUgPSBlc2NhcGUobmFtZSkgKyAiPSIgKyBlc2NhcGUoSlNPTi5zdHJpbmdpZnkodmFsdWUpKSArIGV4cGlyZXMgKyAiOyBwYXRoPS8iOwp9CgpmdW5jdGlvbiByZWFkQ29va2llKG5hbWUpIHsKICAgIHZhciBuYW1lRVEgPSBlc2NhcGUobmFtZSkgKyAiPSI7CiAgICB2YXIgY2EgPSBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2EubGVuZ3RoOyBpKyspIHsKICAgICAgICB2YXIgYyA9IGNhW2ldOwogICAgICAgIHdoaWxlIChjLmNoYXJBdCgwKSA9PT0gJyAnKSBjID0gYy5zdWJzdHJpbmcoMSwgYy5sZW5ndGgpOwogICAgICAgIGlmIChjLmluZGV4T2YobmFtZUVRKSA9PT0gMCkgewoJICB2YXIgdCA9IHVuZXNjYXBlKGMuc3Vic3RyaW5nKG5hbWVFUS5sZW5ndGgsIGMubGVuZ3RoKSk7CgkgIHQgPSBqUXVlcnkucGFyc2VKU09OKHQpOwoJICByZXR1cm4gdDsKCX0KICAgIH0KICAgIHJldHVybiBudWxsOwp9CgpmdW5jdGlvbiBlcmFzZUNvb2tpZShuYW1lKSB7CiAgICBjcmVhdGVDb29raWUobmFtZSwgIiIsIC0xKTsKfQoKJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICAvLyByZXN0b3JlIG91ciBzZWxlY3RlZCBkYXRlIGZyb20gYSBjb29raWUuCiAgdmFyIGN1cl9kYXRlID0gbmV3IERhdGUoKTsKICB2YXIgdG1wID0gcmVhZENvb2tpZSgnY2FsZW5kYXJfZGF0ZScpOwogIGlmKCB0bXAgIT0gbnVsbCApIGN1cl9kYXRlID0gbmV3IERhdGUodG1wKTsKCiAgJCgnI2NhbGVuZGFydmlldycpLmZ1bGxDYWxlbmRhcih7CiAgICBldmVudHM6IHsKICAgICAgIHVybDogJ3skZmV0Y2hfdXJsfSZzaG93dGVtcGxhdGU9ZmFsc2UnLAogICAgICAgdHlwZTogJ0dFVCcsCiAgICAgICBkYXRhOiB7CiAgICAgICAgICd7JGFjdGlvbmlkfXNob3djaGlsZHJlbic6IDEKICAgICAgIH0sCiAgICAgICBlcnJvcjogZnVuY3Rpb24oKSB7CiAgICAgICAgIGFsZXJ0KCd7JG1vZC0+TGFuZygnZXJyb3JfZmV0Y2hpbmdfZXZlbnRzJyl9Jyk7CiAgICAgICB9CiAgICB9LAogICAgeWVhcjogY3VyX2RhdGUuZ2V0RnVsbFllYXIoKSwKICAgIG1vbnRoOiBjdXJfZGF0ZS5nZXRNb250aCgpLAogICAgZGF0ZTogY3VyX2RhdGUuZ2V0RGF0ZSgpLAogICAgaGVhZGVyOiB7CiAgICAgIGxlZnQ6ICdwcmV2LG5leHQsdG9kYXknLAogICAgICBjZW50ZXI6ICd0aXRsZScsCiAgICAgIHJpZ2h0OiAnbW9udGgsYWdlbmRhV2VlayxhZ2VuZGFEYXknCiAgICB9LAogICAgZXZlbnRDb2xvcjogJ3skZGZsdF9iZ2NvbG9yfScsCiAgICBldmVudFRleHRDb2xvcjogJ3skZGZsdF9mZ2NvbG9yfScsCiAgICBtb250aE5hbWVzOiB7JGRhdGVzdHJpbmdzLm1vbnRoTmFtZXN9LAogICAgbW9udGhOYW1lc1Nob3J0OiB7JGRhdGVzdHJpbmdzLm1vbnRoTmFtZXNTaG9ydH0sCiAgICBkYXlOYW1lczogeyRkYXRlc3RyaW5ncy5kYXlOYW1lc30sCiAgICBkYXlOYW1lc1Nob3J0OiB7JGRhdGVzdHJpbmdzLmRheU5hbWVzU2hvcnR9LAogICAgYnV0dG9uVGV4dDogewogICAgICAgdG9kYXk6ICd7JHRleHRfdG9kYXl9JywKICAgICAgIHdlZWs6ICd7JHRleHRfd2Vla30nLAogICAgICAgbW9udGg6ICd7JHRleHRfbW9udGh9JywKICAgICAgIGRheTogJ3skdGV4dF9kYXl9JwogICAgfSwKICAgIHRoZW1lOiB0cnVlLAogICAgZmlyc3REYXk6IHskZmlyc3RkYXlvZndlZWt9LAogICAgZGVmYXVsdEV2ZW50TWludXRlczogMTUsCiAgICBzbG90TWludXRlczogMTUsCiAgICBlZGl0YWJsZTogdHJ1ZSwKICAgIHZpZXdSZW5kZXI6IGZ1bmN0aW9uKCB2aWV3LCBlbGVtZW50ICkgewogICAgICBjdXJfZGF0ZSA9ICQoJyNjYWxlbmRhcnZpZXcnKS5mdWxsQ2FsZW5kYXIoJ2dldERhdGUnKTsKICAgICAgY3JlYXRlQ29va2llKCdjYWxlbmRhcl9kYXRlJyxjdXJfZGF0ZSw3KTsKICAgIH0sCgogICAgdmlld0Rlc3Ryb3k6IGZ1bmN0aW9uKHZpZXcpIHsKICAgICAgICBjbG9zZURpYWxvZygnI2V2ZW50cHJldmlldycpOwoJY2xvc2VEaWFsb2coJyNmaW5kX3BhbmVsJyk7CgljbG9zZURpYWxvZygnI2ZpbmRfcmVzdWx0c19wYW5lbCcpOwogICAgfSwKCiAgICBldmVudENsaWNrOiBmdW5jdGlvbihldmVudCwganNFdmVudCwgdmlldykgewogICAgICAgJCgnI2V2ZW50X3N0YXJ0JykuaHRtbChmb3JtYXREYXRlKGV2ZW50LnN0YXJ0LCFldmVudC5hbGxEYXkpKTsKICAgICAgICQoJyNldmVudF9kZXNjJykuaHRtbChldmVudC5zdW1tYXJ5KTsKICAgICAgICQoJyNldmVudHByZXZpZXcgLnBhcmVudF9ibG9jaycpLmhpZGUoKTsKICAgICAgICQoJyNldmVudHByZXZpZXcgLmNoaWxkX2Jsb2NrJykuaGlkZSgpOwogICAgICAgaWYoIGV2ZW50LmNoaWxkICkgewogICAgICAgICAkKCcjZXZlbnRwcmV2aWV3IC5jaGlsZF9ibG9jaycpLnNob3coKTsKICAgICAgIH0KICAgICAgIGVsc2UgaWYoIGV2ZW50LnJlY3VycyApIHsKICAgICAgICAgJCgnI2V2ZW50cHJldmlldyAuY2hpbGRfYmxvY2snKS5oaWRlKCk7CiAgICAgICAgICQoJyNldmVudHByZXZpZXcgLnBhcmVudF9ibG9jaycpLnNob3coKTsKICAgICAgIH0KCiAgICAgICBpZiggZXZlbnQuYWxsRGF5ICkgewogICAgICAgICAkKCcjZXZlbnRwcmV2aWV3IC5lbmRfYmxvY2snKS5oaWRlKCk7CgkgJCgnI2V2ZW50cHJldmlldyAuYWxsZGF5X2Jsb2NrJykuc2hvdygpOwogICAgICAgfQogICAgICAgZWxzZSB7CiAgICAgICAgICQoJyNldmVudHByZXZpZXcgLmFsbGRheV9ibG9jaycpLmhpZGUoKTsKICAgICAgICAgaWYoIGV2ZW50LmVuZCApIHsKICAgICAgICAgICAkKCcjZXZlbnRwcmV2aWV3IC5lbmRfYmxvY2snKS5zaG93KCk7CiAgICAgICAgICAgJCgnI2V2ZW50X2VuZCcpLmh0bWwoZm9ybWF0RGF0ZShldmVudC5lbmQsIWV2ZW50LmFsbERheSkpOwoJIH0KCSBlbHNlIHsKICAgICAgICAgICAkKCcjZXZlbnRwcmV2aWV3IC5lbmRfYmxvY2snKS5oaWRlKCk7CgkgfQogICAgICAgfQoKICAgICAgIHZhciB0bXBfYnV0dG9ucyA9IFt7CiAgICAgICAgIHRleHQ6ICd7JG1vZC0+TGFuZygnY2FsX2VkaXQnKX0nLAoJIGNsaWNrOiBmdW5jdGlvbigpIHsKICAgICAgICAgICB2YXIgdXJsID0gJ3ttb2R1bGVfYWN0aW9uX2xpbmsgYWN0aW9uPWFkbWluX2FkZF9ldmVudCBldmVudF9pZD14eCBqc2ZyaWVuZGx5PTF9JzsKICAgICAgICAgICB1cmwgPSB1cmwucmVwbGFjZSgneHgnLGV2ZW50Ll9pZCk7CiAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9IHVybDsKCSB9CiAgICAgICB9XTsKCiAgICAgICBpZiggZXZlbnQuY2hpbGQgKSB7CiAgICAgICAgIHRtcF9idXR0b25zLnB1c2goewogICAgICAgICAgIHRleHQ6ICd7JG1vZC0+TGFuZygnZWRpdHBhcmVudCcpfScsCgkgICBjbGljazogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB2YXIgdXJsID0gJ3ttb2R1bGVfYWN0aW9uX2xpbmsgYWN0aW9uPWFkbWluX2FkZF9ldmVudCBldmVudF9pZD14eCBqc2ZyaWVuZGx5PTF9JzsKICAgICAgICAgICAgIHVybCA9IHVybC5yZXBsYWNlKCd4eCcsZXZlbnQuY2hpbGQpOwogICAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9IHVybDsKCSAgIH0KICAgICAgICAgfSk7CiAgICAgICB9CgogICAgICAgdG1wX2J1dHRvbnMucHVzaCh7CiAgICAgICAgIHRleHQ6ICd7JG1vZC0+TGFuZygnZGVsZXRlJyl9JywKICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKCkgewogICAgICAgICAgIHZhciBjb250ID0gdGhpczsKCSAgICQuYWpheCh7CgkgICAgIHR5cGU6ICdQT1NUJywKICAgICAgICAgICAgIHVybDogJ3ttb2R1bGVfYWN0aW9uX2xpbmsgYWN0aW9uPWFkbWluX2FqYXhfZGVsZXRlZXZlbnQganNmcmllbmRseT0xfSZzaG93dGVtcGxhdGU9ZmFsc2UnLAogICAgIAkgICAgIGRhdGFUeXBlOiAnanNvbicsCiAJICAgICBkYXRhOiB7CiAgCSAgICAgICAneyRhY3Rpb25pZH1ldmVudF9pZCc6IGV2ZW50Ll9pZCwKCSAgICAgICAneyRhY3Rpb25pZH1kZWxldGVfY2hpbGRyZW4nOiAwIC8vIHRvZG8sIG1ha2UgdGhpcyBhbiBvcHRpb24KCSAgICAgfSwKICAgCSAgICAgc3VjY2VzczogZnVuY3Rpb24oIGRhdGEgKSB7CiAgIAkgICAgICAgaWYoIGRhdGEuc3RhdHVzID09IDAgKSB7CiAgIAkgICAgICAgICBhbGVydChkYXRhLm1zZyk7CgkgICAgICAgfSBlbHNlIHsKCSAgICAgICAgIC8vIG1ha2Ugc3VyZSBpdCdzIG5vdCB2aXNpYmxlCgkgICAgICAgICAkKCcjY2FsZW5kYXJ2aWV3JykuZnVsbENhbGVuZGFyKCdyZW1vdmVFdmVudHMnLGV2ZW50Ll9pZCk7CiAgICAgIAkgICAgICAgfQoJICAgICAgIGNsb3NlRGlhbG9nKGNvbnQpOwogICAJICAgICB9LAogIAkgICAgIGVycm9yOiBmdW5jdGlvbihqcVhIUiwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24pIHsKCSAgICAgICBhbGVydCgnZmFpbCAnK3RleHRTdGF0dXMpOwoJICAgICAgIGNsb3NlRGlhbG9nKGNvbnQpOwoJICAgICB9CgkgICB9KTsKCSB9CiAgICAgICB9KTsKCiAgICAgICB0bXBfYnV0dG9ucy5wdXNoKHsKICAgICAgICAgdGV4dDogJ3skbW9kLT5MYW5nKCdjYW5jZWwnKX0nLAoJIGNsaWNrOiBmdW5jdGlvbigpIHsKCSAgICQodGhpcykuZGlhbG9nKCdjbG9zZScpOwoJIH0KICAgICAgIH0pOwoKICAgICAgICQoJyNldmVudHByZXZpZXcnKS5kaWFsb2coewogICAgICAgICB0aXRsZTogZXZlbnQudGl0bGUsCiAgICAgICAgIHdpZHRoOiAnYXV0bycsCgkgaGVpZ2h0OiAnYXV0bycsCgkgcG9zaXRpb246IHsKCSAgIG15OiAnY2VudGVyIGJvdHRvbScsCgkgICBhdDogJ3RvcCBjZW50ZXInLAoJICAgb2Y6IGpzRXZlbnQKCSB9LAoJIGJ1dHRvbnM6IHRtcF9idXR0b25zCiAgICAgICB9KTsKICAgIH0sCgogICAgZXZlbnRSZXNpemU6IGZ1bmN0aW9uKGV2LCBkYXlEZWx0YSwgbWludXRlRGVsdGEsIHJldmVydEZ1bmMgKSB7CiAgICAgIC8vIGFuIGV2ZW50IHRpbWUgaGFzIGJlZW4gZXh0ZW5kZWQKICAgICAgJC5hamF4KHsKICAgICAgICB0eXBlOiAnUE9TVCcsCgl1cmw6ICAne21vZHVsZV9hY3Rpb25fbGluayBhY3Rpb249YWRtaW5fYWpheF9lZGl0ZXZlbnQganNmcmllbmRseT0xfSZzaG93dGVtcGxhdGU9ZmFsc2UnLAoJZGF0YVR5cGU6ICdqc29uJywKCWRhdGE6IHsKCSAgJ3skYWN0aW9uaWR9ZXZlbnRfaWQnOiBldi5pZCwKCSAgJ3skYWN0aW9uaWR9ZGF5RGVsdGEnOiBkYXlEZWx0YSwKCSAgJ3skYWN0aW9uaWR9bWludXRlRGVsdGEnOiBtaW51dGVEZWx0YSwKCX0sCglzdWNjZXNzOiBmdW5jdGlvbiggZGF0YSApIHsKCSAgaWYoIGRhdGEuc3RhdHVzID09IDAgKSB7CgkgICAgICBhbGVydChkYXRhLm1zZyk7CgkgICAgICByZXZlcnRGdW5jKCk7CgkgIH0KCX0sCglmYWlsOiBmdW5jdGlvbiggZGF0YSApIHsKCSAgYWxlcnQoJ2ZhaWwnKTsKCSAgcmV2ZXJ0RnVuYygpOwoJfQogICAgICB9KTsKICAgIH0sCgogICAgZXZlbnREcm9wOiBmdW5jdGlvbihldiwgZGF5RGVsdGEsIG1pbnV0ZURlbHRhLCBhbGxEYXksIHJldmVydEZ1bmMpIHsKICAgICAgLy8gYW4gZXZlbnQgaGFzIGJlZW4gbW92ZWQKICAgICAgJC5hamF4KHsKICAgICAgICB0eXBlOiAnUE9TVCcsCgl1cmw6ICAne21vZHVsZV9hY3Rpb25fbGluayBhY3Rpb249YWRtaW5fYWpheF9lZGl0ZXZlbnQganNmcmllbmRseT0xfSZzaG93dGVtcGxhdGU9ZmFsc2UnLAoJZGF0YVR5cGU6ICdqc29uJywKCWRhdGE6IHsKCSAgJ3skYWN0aW9uaWR9ZXZlbnRfaWQnOiBldi5pZCwKCSAgJ3skYWN0aW9uaWR9ZGF5RGVsdGEnOiBkYXlEZWx0YSwKCSAgJ3skYWN0aW9uaWR9bWludXRlRGVsdGEnOiBtaW51dGVEZWx0YSwKCSAgJ3skYWN0aW9uaWR9YWxsRGF5JzogYWxsRGF5ID8gMSA6IDAsCgkgICd7JGFjdGlvbmlkfW1vdmUnOiAxCgl9LAoJc3VjY2VzczogZnVuY3Rpb24oIGRhdGEgKSB7CgkgIGlmKCBkYXRhLnN0YXR1cyA9PSAwICkgewoJICAgICAgYWxlcnQoZGF0YS5tc2cpOwoJICAgICAgcmV2ZXJ0RnVuYygpOwoJICB9Cgl9LAoJZmFpbDogZnVuY3Rpb24oIGRhdGEgKSB7CgkgIGFsZXJ0KCdmYWlsJyk7CgkgIHJldmVydEZ1bmMoKTsKCX0KICAgICAgfSk7CiAgICB9CiAgfSk7CgogICQoJ2EjYWRkX2V2ZW50JykuY2xpY2soZnVuY3Rpb24oKXsKICAgIHZhciBkID0gJCgnI2NhbGVuZGFydmlldycpLmZ1bGxDYWxlbmRhcignZ2V0RGF0ZScpLmdldFRpbWUoKS8xMDAwOwogICAgJCh0aGlzKS5hdHRyKCdocmVmJywkKHRoaXMpLmF0dHIoJ2hyZWYnKS5yZXBsYWNlKCd4eHh4JyxkKSk7CiAgfSk7CgogICQoJ2EjZmluZF9ldmVudCcpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICB2YXIgdCA9IHJlYWRDb29raWUoJ2NnY2FsX2ZpbmQnKTsKICAgIGlmKCB0ICE9IG51bGwgKSB7CiAgICAgIGZvciggdmFyIGsgaW4gdCApIHsKICAgICAgICB2YXIgcyA9ICcjZmluZF9wYW5lbCA6aW5wdXRbbmFtZT0iJyArIGsgKyAnIl0nOwoJJChzKS52YWwodFtrXSk7CiAgICAgIH0KICAgIH0KICAgICQoJyNmaW5kX3BhbmVsJykuZGlhbG9nKHsKICAgICAgd2lkdGg6IDM3NSwKICAgICAgYnV0dG9uczogWwogICAgICAgIHsKCSAgdGV4dDogJ3skbW9kLT5MYW5nKCdzdWJtaXQnKX0nLAoJICBjbGljazogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIC8vIGdldCB0aGUgZGF0YQoJICAgIHZhciBkYXRhID0ge307CgkgICAgdmFyIGYgPSAwOwoJICAgICQoJyNmaW5kX3BhbmVsIDppbnB1dCcpLmVhY2goZnVuY3Rpb24oKXsKCSAgICAgICB2YXIgbiA9ICQodGhpcykuYXR0cignbmFtZScpOwoJICAgICAgIHZhciB2ID0gJCh0aGlzKS52YWwoKTsKCSAgICAgICBpZiggdiApIHsKCSAgICAgICAgIGRhdGFbbl0gPSB2OwoJCSBmID0gMTsKCSAgICAgICB9CgkgICAgfSkKCSAgICAvLyBzYXZlIGl0IGluIGEgY29va2llCgkgICAgaWYoIGYgKSBjcmVhdGVDb29raWUoJ2NnY2FsX2ZpbmQnLGRhdGEsNyk7CgoJICAgIC8vIGNsb3NlIHRoZSBkaWFsb2cKCSAgICAkKHRoaXMpLmRpYWxvZygnY2xvc2UnKTsKCgkgICAgJC5hamF4KHsKCSAgICAgICB1cmw6ICd7JGZldGNoX3VybH0mc2hvd3RlbXBsYXRlPWZhbHNlJywKCSAgICAgICB0eXBlOiAnR0VUJywKCSAgICAgICBkYXRhVHlwZTogJ2pzb24nLAoJICAgICAgIGRhdGE6IHsKCQkgJ3skYWN0aW9uaWR9a2V5d29yZCc6IGRhdGEua2V5d29yZCwKCQkgJ3skYWN0aW9uaWR9Y2F0ZWdvcnknOiBkYXRhLmNhdGVnb3J5LAoJICAgICAgICAgJ3skYWN0aW9uaWR9c2hvd2NoaWxkcmVuJzogZGF0YS5zaG93Y2hpbGRyZW4sCgkJICd7JGFjdGlvbmlkfXdoZW4nOiBkYXRhLndoZW4sCgkJICd7JGFjdGlvbmlkfWxpbWl0JzogMTAKCSAgICAgICB9LAoJICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKCBkYXRhICkgewoJICAgICAgICAgaWYoIGRhdGEuc3RhdHVzID09IDAgKSB7CgkJICAgYWxlcnQoZGF0YS5tc2cpOwoJCSB9IGVsc2UgewoJCSAgIC8vIGdvdCAwIG9yIG1vcmUgcmVzdWx0cwoJCSAgIGlmKCBkYXRhLmxlbmd0aCA9PSAwICkgewoJCSAgICAgJCgnI2ZpbmRfcmVzdWx0c19ub25lJykuc2hvdygpOwoJCSAgICAgJCgnI2ZpbmRfcmVzdWx0c19hcmVhJykuaGlkZSgpOwoJCSAgIH0KCQkgICBlbHNlIHsKCQkgICAgICQoJyNmaW5kX3Jlc3VsdHNfbm9uZScpLmhpZGUoKTsKCQkgICAgICQoJyNmaW5kX3Jlc3VsdHNfYXJlYScpLnNob3coKTsKCQkgICAgICQoJyNmaW5kX3Jlc3VsdHNfZGF0YScpLmh0bWwoJycpOwoKCQkgICAgICQuZWFjaChkYXRhLCBmdW5jdGlvbihpZHgscm93KSB7CgkJICAgICAgIC8vIGRpc3BsYXkgZWFjaCBvZiB0aGUgcmVzdWx0cyBvZiB0aGUgcm93LgoJCSAgICAgICB2YXIgc19kYXRlID0gbmV3IERhdGUocm93LnN0YXJ0ICogMTAwMCk7CgkJICAgICAgIHZhciBlX2RhdGUgPSBudWxsOwoJCSAgICAgICBpZiggcm93LmVuZCApIGVfZGF0ZSA9IG5ldyBEYXRlKHJvdy5lbmQgKiAxMDAwKTsKCgkJICAgICAgIHZhciBvdXQgPSAkKCc8dHI+PC90cj4nKTsKCQkgICAgICAgb3V0LmFwcGVuZCgnPHRkPjxhIGNsYXNzPSJlZGl0X2V2ZW50IiBocmVmPSInK3Jvdy5lZGl0X3VybCsnIiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2VkaXRfZXZlbnQnKX0iPicrcm93LnRpdGxlKyc8L2E+PC90ZD4nKTsKCQkgICAgICAgb3V0LmFwcGVuZCgnPHRkPicgKyBmb3JtYXREYXRlKHNfZGF0ZSwhcm93LmFsbERheSkgKyAnPC90ZD4nKTsKCQkgICAgICAgaWYoIGVfZGF0ZSApIHsKCQkgICAgICAgICBvdXQuYXBwZW5kKCc8dGQ+JyArIGZvcm1hdERhdGUoZV9kYXRlLCFyb3cuYWxsRGF5KSArICc8L3RkPicpOwoJCSAgICAgICB9IGVsc2UgewoJCSAgICAgICAgIG91dC5hcHBlbmQoJzx0ZD48L3RkPicpOwoJCSAgICAgICB9CgkgICAgICAgICAgICAgICBvdXQuYXBwZW5kKCc8dGQ+PGEgY2xhc3M9ImdvdG9fZGF0ZSIgZGF0YS1kYXRlPSInK3NfZGF0ZS50b1N0cmluZygpKyciPntjZ2ltYWdlIGltYWdlPSdpY29ucy9zeXN0ZW0vdmlldy5naWYnIGFsdD0kbW9kLT5MYW5nKCdnb3RvX2RhdGUnKX08L2E+PC90ZD4nKTsKCSAgICAgICAgICAgICAgIG91dC5hcHBlbmQoJzx0ZD48YSBjbGFzcz0iZWRpdF9ldmVudCIgaHJlZj0iJytyb3cuZWRpdF91cmwrJyI+e2NnaW1hZ2UgY2xhc3M9J2VkaXRfZXZlbnQnIGltYWdlPSdpY29ucy9zeXN0ZW0vZWRpdC5naWYnIGFsdD0kbW9kLT5MYW5nKCdlZGl0X2V2ZW50Jyl9PC9hPjwvdGQ+Jyk7CgkJICAgICAgICQoJyNmaW5kX3Jlc3VsdHNfZGF0YScpLmFwcGVuZChvdXQpOwoJCSAgICAgfSk7CgkJICAgfSAvKiBlbHNlICovCgkJIH0KCSAgICAgICB9CgkgICAgfSk7CgoJICAgIC8vIG9wZW4gb3VyIHJlc3VsdHMgZGlhbG9nCgkgICAgJCgnI2ZpbmRfcmVzdWx0c19wYW5lbCcpLmRpYWxvZyh7CgkgICAgICB3aWR0aDogJ2F1dG8nCgkgICAgfSk7CgoJICB9Cgl9LAogICAgICAgIHsKCSAgdGV4dDogJ3skbW9kLT5MYW5nKCdjYW5jZWwnKX0nLAoJICBjbGljazogZnVuY3Rpb24oKSB7CgkgICAgJCh0aGlzKS5kaWFsb2coJ2Nsb3NlJyk7CgkgIH0KCX0KICAgICAgXQogICAgfSk7CiAgfSk7CgogICQoZG9jdW1lbnQpLm9uKCdjbGljaycsJ2EuZ290b19kYXRlJyxmdW5jdGlvbigpewogICAgY2xvc2VEaWFsb2coJyNmaW5kX3Jlc3VsdHNfcGFuZWwnKTsKICAgIHZhciBkYXRlID0gJCh0aGlzKS5kYXRhKCdkYXRlJyk7CiAgICBpZiggIWRhdGUgKSByZXR1cm4gZmFsc2U7CiAgICBkYXRlID0gbmV3IERhdGUoZGF0ZSk7CiAgICAkKCcjY2FsZW5kYXJ2aWV3JykuZnVsbENhbGVuZGFyKCdnb3RvRGF0ZScsZGF0ZSk7CiAgfSkKCiAgJCgnI3BhZ2VfdGFicyA+IGRpdicpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICAkKCcjY2FsZW5kYXJ2aWV3JykuZnVsbENhbGVuZGFyKCdyZW5kZXInKTsKICAgIGNsb3NlRGlhbG9nKCcjZXZlbnRwcmV2aWV3Jyk7CiAgICBjbG9zZURpYWxvZygnI2ZpbmRfcGFuZWwnKTsKICAgIGNsb3NlRGlhbG9nKCcjZmluZF9yZXN1bHRzX3BhbmVsJyk7CiAgfSk7Cn0pOwp7L2pzbWlufTwvc2NyaXB0PgoKPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAwLjVlbSI+CiAgPGEgaWQ9ImFkZF9ldmVudCIgaHJlZj0ie21vZHVsZV9hY3Rpb25fbGluayBhY3Rpb249YWRtaW5fYWRkX2V2ZW50IHN0YXJ0PXh4eHggdXJsb25seT0xfSI+e2NnaW1hZ2UgaW1hZ2U9J2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJyBhbHQ9JG1vZC0+TGFuZygnY2FsX2FkZF9ldmVudCcpIGNsYXNzPSdzeXN0ZW1pY29uJ30geyRtb2QtPkxhbmcoJ2NhbF9hZGRfZXZlbnQnKX0uLi48L2E+Jm5ic3A7Jm5ic3A7CiAgPGEgaWQ9ImltcG9ydF9ldmVudHMiIGhyZWY9Inttb2R1bGVfYWN0aW9uX2xpbmsgYWN0aW9uPWFkbWluX2ltcG9ydCB1cmxvbmx5PTF9Ij57Y2dpbWFnZSBpbWFnZT0naWNvbnMvc3lzdGVtL2ltcG9ydC5naWYnIGFsdD0kbW9kLT5MYW5nKCdjYWxfaW1wb3J0X2V2ZW50cycpIGNsYXNzPSdzeXN0ZW1pY29uJ30geyRtb2QtPkxhbmcoJ2NhbF9pbXBvcnRfZXZlbnRzJyl9PC9hPiZuYnNwOyZuYnNwOwogIDxhIGlkPSJmaW5kX2V2ZW50Ij57Y2dpbWFnZSBpbWFnZT0naWNvbnMvc3lzdGVtL3ZpZXcuZ2lmJyBhbHQ9JG1vZC0+TGFuZygnZmluZCcpfSB7JG1vZC0+TGFuZygnZmluZCcpfTwvYT4KICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7IHRleHQtYWxpZ246IHJpZ2h0OyI+e2NnZV9oZWxwdGFnIGtleT0nZXZlbnRzdGFiJ308L2Rpdj4KPC9kaXY+CgoKCnsqIHRoaXMgaXMgd2hlcmUgdGhlIGZ1bGxjYWxlbmRhciBnb2VzICp9CjxkaXYgaWQ9ImNhbGVuZGFydmlldyI+PC9kaXY+Cgp7KiBvdGhlciBzdHVmZiAqfQoKeyogdGhlIHBvcHVwIGRpYWxvZyB3aGVuIGNsaWNraW5nIG9uIGFuIGV2ZW50ICp9CjxkaXYgaWQ9ImV2ZW50cHJldmlldyIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2V2ZW50X2FjdGlvbicpfSI+CiAgPGRpdiBjbGFzcz0iY19mdWxsIGFsbGRheV9ibG9jayI+CiAgICA8c3Ryb25nPnskbW9kLT5MYW5nKCdhbGxkYXlfZXZlbnQnKX08L3N0cm9uZz4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjX2Z1bGwgc3RhcnRfYmxvY2siPgogICAgPHAgY2xhc3M9ImdyaWRfMyB0ZXh0X3JpZ2h0Ij57JG1vZC0+TGFuZygnc3RhcnQnKX06PC9wPgogICAgPHAgaWQ9ImV2ZW50X3N0YXJ0IiBjbGFzcz0iZ3JpZF85IGNmIj48L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0iY19mdWxsIGVuZF9ibG9jayI+CiAgICA8cCBjbGFzcz0iZ3JpZF8zIHRleHRfcmlnaHQiPnskbW9kLT5MYW5nKCdlbmQnKX06PC9wPgogICAgPHAgaWQ9ImV2ZW50X2VuZCIgY2xhc3M9ImdyaWRfOSBjZiI+PC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9ImNfZnVsbCBjaGlsZF9ibG9jayI+CiAgICA8cCBjbGFzcz0iZ3JpZF8zIHRleHRfcmlnaHQiIHN0eWxlPSJjb2xvcjogcmVkOyI+eyRtb2QtPkxhbmcoJ25vdGUnKX06PC9wPgogICAgPHAgY2xhc3M9ImdyaWRfOSBjZiI+eyRtb2QtPkxhbmcoJ3RpdGxlX2NoaWxkX2V2ZW50Jyl9PC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9ImNfZnVsbCBwYXJlbnRfYmxvY2siPgogICAgPHAgY2xhc3M9ImdyaWRfMyB0ZXh0X3JpZ2h0IiBzdHlsZT0iY29sb3I6IHJlZDsiPnskbW9kLT5MYW5nKCdub3RlJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJncmlkXzkgY2YiPnskbW9kLT5MYW5nKCd0aXRsZV9wYXJlbnRfZXZlbnQnKX08L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0iY19mdWxsIGRlc2NfYmxvY2siPgogICAgPHAgaWQ9ImV2ZW50X2Rlc2MiIGNsYXNzPSJncmlkXzkgY2YiPjwvcD4KICA8L2Rpdj4KPC9kaXY+Cgo8ZGl2IGlkPSJmaW5kX3BhbmVsIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiIHRpdGxlPSJ7JG1vZC0+TGFuZygnZmluZCcpfSI+CiAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdpbmZvX2ZpbmRfZXZlbnRzJyl9PC9kaXY+CiAgPGRpdiBjbGFzcz0iY19mdWxsIGZvcm1fcm93Ij4KICAgIDxwIGNsYXNzPSJncmlkXzMgZm9ybV9wcm9tcHQiPnskbW9kLT5MYW5nKCdrZXl3b3JkcycpfTo8L3A+CiAgICA8cCBjbGFzcz0iZ3JpZF85IGZvcm1faW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ia2V5d29yZCIgbWF4bGVuZ3RoPSIyNTUiIHZhbHVlPSIiLz4KICAgICAge2NnZV9oZWxwdGFnIGtleT0nZmluZF90aXRsZSd9CiAgICA8L3A+CiAgPC9kaXY+CgogIHtpZiBpc3NldCgkY2F0ZWdvcmllcyl9CiAgPGRpdiBjbGFzcz0iY19mdWxsIj4KICAgIDxwIGNsYXNzPSJncmlkXzMgZm9ybV9wcm9tcHQiPnskbW9kLT5MYW5nKCdjYXRlZ29yeScpfTo8L3A+CiAgICA8cCBjbGFzcz0iZ3JpZF85IGZvcm1faW5wdXQiPgogICAgICA8c2VsZWN0IG5hbWU9ImNhdGVnb3J5Ij4KICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRjYXRlZ29yaWVzfQogICAgICA8L3NlbGVjdD4KICAgIDwvcD4KICA8L2Rpdj4KICB7L2lmfQoKICA8ZGl2IGNsYXNzPSJjX2Z1bGwiPgogICAgPHAgY2xhc3M9ImdyaWRfMyBmb3JtX3Byb21wdCI+eyRtb2QtPkxhbmcoJ2ZpbmRfc2hvd2NoaWxkcmVuJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJncmlkXzkgZm9ybV9pbnB1dCI+CiAgICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBuYW1lPSdzaG93Y2hpbGRyZW4nfQogICAgICB7Y2dlX2hlbHB0YWcga2V5PSdmaW5kX3Nob3djaGlsZHJlbid9CiAgICA8L3A+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgICA8cCBjbGFzcz0iZ3JpZF8zIGZvcm1fcHJvbXB0Ij57JG1vZC0+TGFuZygnZmluZF93aGVuJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJncmlkXzkgZm9ybV9pbnB1dCI+CiAgICAgIDxzZWxlY3QgbmFtZT0id2hlbiI+CiAgICAgICAgPG9wdGlvbiB2YWx1ZT0iYW55Ij57JG1vZC0+TGFuZygnYW55Jyl9PC9vcHRpb24+CiAgICAgICAgPG9wdGlvbiB2YWx1ZT0icGFzdCI+eyRtb2QtPkxhbmcoJ3Bhc3QnKX08L29wdGlvbj4KICAgICAgICA8b3B0aW9uIHZhbHVlPSJmdXR1cmUiPnskbW9kLT5MYW5nKCdmdXR1cmUnKX08L29wdGlvbj4KICAgICAgPC9zZWxlY3Q+Jm5ic3A7e2NnZV9oZWxwdGFnIGtleT0naGZpbmRfd2hlbid9CiAgICA8L3A+CiAgPC9kaXY+CjwvZGl2PgoKPGRpdiBpZD0iZmluZF9yZXN1bHRzX3BhbmVsIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiIHRpdGxlPSJ7JG1vZC0+TGFuZygncmVzdWx0cycpfS4uLiI+CjxkaXYgaWQ9ImZpbmRfcmVzdWx0c19ub25lIiBjbGFzcz0icmVkIj57JG1vZC0+TGFuZygnbm9yZXN1bHRzJyl9PC9kaXY+CjxkaXYgaWQ9ImZpbmRfcmVzdWx0c19hcmVhIj4KICA8ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRtb2QtPkxhbmcoJ2luZm9fZmluZF9yZXN1bHRzJyl9PC9kaXY+CiAgPHRhYmxlIGNsYXNzPSJ1aS13aWRnZXQiIGlkPSJmaW5kX3Jlc3VsdHNfdGFibGUiPgogIDx0aGVhZCBjbGFzcz0idWktd2lkZ2V0LWhlYWRlciI+CiAgICA8dGg+eyRtb2QtPkxhbmcoJ2NhbF90aXRsZScpfTwvdGg+CiAgICA8dGg+eyRtb2QtPkxhbmcoJ3N0YXJ0Jyl9PC90aD4KICAgIDx0aD57JG1vZC0+TGFuZygnZW5kJyl9PC90aD4KICAgIDx0aD48L3RoPgogICAgPHRoPjwvdGg+CiAgPC90aGVhZCBjbGFzcz0idWktd2lkZ2V0LWNvbnRlbnQiPgogIDx0Ym9keSBpZD0iZmluZF9yZXN1bHRzX2RhdGEiPgogIDwvdGJvZHk+CiAgPC90YWJsZT4KPC9kaXY+CjwvZGl2PgoKe2NnZV9oZWxwaGFuZGxlcn0KPGRpdiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgp7Y2dlX2hlbHBjb250ZW50IGtleT0nZXZlbnRzdGFiJyB0ZXh0PSRtb2QtPkxhbmcoJ2hlbHBfZXZlbnRzdGFiJyl9CntjZ2VfaGVscGNvbnRlbnQga2V5PSdmaW5kX3RpdGxlJyB0ZXh0PSRtb2QtPkxhbmcoJ2hlbHBfZmluZF9ldmVudF9rZXl3b3JkJyl9CntjZ2VfaGVscGNvbnRlbnQga2V5PSdmaW5kX3Nob3djaGlsZHJlbicgdGV4dD0kbW9kLT5MYW5nKCdoZWxwX2ZpbmRfc2hvd2NoaWxkcmVuJyl9CntjZ2VfaGVscGNvbnRlbnQga2V5PSdoZmluZF93aGVuJyB0ZXh0PSRtb2QtPkxhbmcoJ2hlbHBfZmluZF93aGVuJyl9CjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_import.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdjYWxfaW1wb3J0X2V2ZW50cycpfTwvaDM+CntpZiBpc3NldCgkZm9ybXN0YXJ0KX0KeyRmb3Jtc3RhcnR9CjxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2luZm9fY3N2X2Zvcm1hdCcpfTo8L3A+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnY29sdW1uX2RlbGltaXRlcicpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1kZWxpbWl0ZXIiIHZhbHVlPSJ7JGltcG9ydF9kZWxpbWl0ZXJ9IiBzaXplPSIzIiBtYXhsZW5ndGg9IjMiLz4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9jc3ZfZmlsZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0ieyRhY3Rpb25pZH1jc3ZfZmlsZSIgc2l6ZT0iNTAiLz4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iLz4KICA8L3A+CjwvZGl2Pgp7JGZvcm1lbmR9CntlbHNlfQo8aDQ+eyRtb2QtPkxhbmcoJ2ltcG9ydF9jb21wbGV0ZWQnKX06PC9oND4KPHA+eyRtb2QtPkxhbmcoJ251bV9pbXBvcnRlZCcsJGltcG9ydGVkKX08L3A+CjxwPnskbW9kLT5MYW5nKCdpbXBvcnRfbGluZXMnLCRsaW5lbnVtKX08L3A+CntpZiBpc3NldCgkZXJyb3JzKX0KICA8aDQgc3R5bGU9ImNvbG9yOiByZWQ7Ij57JG1vZC0+TGFuZygnZXJyb3JzJyl9OjwvaDQ+CiAgPHVsIHN0eWxlPSJib3JkZXI6IDFweCBzb2xpZCByZWQ7Ij4KICB7Zm9yZWFjaCBmcm9tPSRlcnJvcnMgaXRlbT0nZXJyb3InfQogICAgPHVsPnskZXJyb3J9PC91bD4KICB7L2ZvcmVhY2h9CiAgPC91bD4Key9pZn0Key9pZn0=]]></data>
	</file>
	<file>
	  <filename>/templates/db/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/db/blog-post-event-detail-example.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0iY2FsZW5kYXItZXZlbnQiIGlkPSJ7JHRhYmxlX2lkfSI+CjxoMj57JGV2ZW50LmV2ZW50X3RpdGxlfTwvaDI+Cgp7YXNzaWduIHZhcj1tb250aF9udW1iZXIgdmFsdWU9JGV2ZW50LmV2ZW50X2RhdGVfc3RhcnR8ZGF0ZV9mb3JtYXQ6IiVtIn0Ke2Fzc2lnbiB2YXI9ZW5kX21vbnRoX251bWJlciB2YWx1ZT0kZXZlbnQuZXZlbnRfZGF0ZV9lbmR8ZGF0ZV9mb3JtYXQ6IiVtIn0KCjxkaXYgY2xhc3M9ImNhbGVuZGFyLWRhdGUtZnJvbSI+PHNwYW4gY2xhc3M9ImNhbGVuZGFyLWRhdGUtdGl0bGUiPnskbGFuZy5kYXRlfTogPC9zcGFuPnskZXZlbnQuZXZlbnRfZGF0ZV9zdGFydHxkYXRlX2Zvcm1hdDoiJWUifSB7JG1vbnRoX25hbWVzWyRtb250aF9udW1iZXJdfSB7JGV2ZW50LmV2ZW50X2RhdGVfc3RhcnR8ZGF0ZV9mb3JtYXQ6IiVZICVIOiVNIn0gCntldmFsIHZhcj0kZXZlbnQuZXZlbnRfZGV0YWlsc30KPHA+QXV0aG9yOiB7JGV2ZW50LmF1dGhvcm5hbWV9PC9wPgp7Y21zX21vZHVsZSBtb2R1bGU9J2NvbW1lbnRzJyBtb2R1bGVuYW1lPSdDYWxlbmRhcicgcGFnZWlkPSRldmVudC5ldmVudF9pZH0KCjxkaXYgY2xhc3M9ImNhbGVuZGFyLXJldHVybmxpbmsiPnskcmV0dXJuX3VybH08L2Rpdj4KPC9kaXY+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/db/blog-post-list-with-content.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0iY2FsZW5kYXItbGlzdCIgaWQ9InskdGFibGVfaWR9Ij4KCntmb3JlYWNoIGZyb209JGV2ZW50cyBrZXk9a2V5IGl0ZW09ZXZlbnR9CiAgPGRpdiBjbGFzcz0iY2FsZW5kYXItZXZlbnQiPgogICAgPGgyPjxhIGhyZWY9InskZXZlbnQudXJsfSI+eyRldmVudC5ldmVudF90aXRsZX08L2E+PC9oMj4KICAgIHthc3NpZ24gdmFyPW1vbnRoX251bWJlciB2YWx1ZT0kZXZlbnQuZXZlbnRfZGF0ZV9zdGFydHxkYXRlX2Zvcm1hdDoiJW0ifQogICAge2Fzc2lnbiB2YXI9ZW5kX21vbnRoX251bWJlciB2YWx1ZT0kZXZlbnQuZXZlbnRfZGF0ZV9lbmR8ZGF0ZV9mb3JtYXQ6IiVtIn0KICAgIDxkaXYgY2xhc3M9ImNhbGVuZGFyLWRhdGUtZnJvbSI+PHNwYW4gY2xhc3M9ImNhbGVuZGFyLWRhdGUtdGl0bGUiPnskbGFuZy5kYXRlfTogPC9zcGFuPnskZXZlbnQuZXZlbnRfZGF0ZV9zdGFydHxkYXRlX2Zvcm1hdDoiJWUifSB7JG1vbnRoX25hbWVzWyRtb250aF9udW1iZXJdfSB7JGV2ZW50LmV2ZW50X2RhdGVfc3RhcnR8ZGF0ZV9mb3JtYXQ6IiVZICVIOiVNIn0KCiAgICB7ZXZhbCB2YXI9JGV2ZW50LmV2ZW50X2RldGFpbHN9CgogICAgICA8ZGl2IHN0eWxlPSJib3JkZXItdG9wOjFweCBzb2xpZCBibGFjazsgbWFyZ2luLXRvcDoxZW07Ij4KCTxkaXYgY2xhc3M9Ik5ld3NTdW1tYXJ5QXV0aG9yIiBzdHlsZT0iZmxvYXQ6bGVmdDsiPgoJUG9zdGVkIGJ5IHskZXZlbnQuYXV0aG9ybmFtZX0KCTwvZGl2PgoKCTxkaXYgc3R5bGU9InRleHQtYWxpZ246cmlnaHQ7Ij48YSBocmVmPSJ7JGV2ZW50LnVybH0iPntjbXNfbW9kdWxlIG1vZHVsZT0iQ29tbWVudHMiIGFjdGlvbj0iY291bnRfY29tbWVudHMiIG1vZHVsZW5hbWU9J0NhbGVuZGFyJyBwYWdlaWQ9JGV2ZW50LmV2ZW50X2lkfSBjb21tZW50czwvYT48L2Rpdj4KICAgICAgPC9kaXY+CiAgPC9kaXY+CnsvZm9yZWFjaH0KCntpZiAkcmV0dXJuX3VybCAhPSAiIn0KICA8ZGl2IGNsYXNzPSJjYWxlbmRhci1yZXR1cm5saW5rIj57JHJldHVybl91cmx9PC9kaXY+CnsvaWZ9CjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/db/blog-post-list.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0iY2FsZW5kYXItbGlzdCIgaWQ9InskdGFibGVfaWR9Ij4Ke2lmICRjb21wYWN0X3ZpZXcgbmVxIDF9CjxzcGFuIGNsYXNzPSJjYWxlbmRhci1wcmV2Ij48YSBocmVmPSJ7JG5hdmlnYXRpb24ucHJldn0iPnskbGFuZy5wcmV2fTwvYT48L3NwYW4+ICZuYnNwOyAmbmJzcDsgPHNwYW4gY2xhc3M9ImNhbGVuZGFyLW5leHQiPjxhIGhyZWY9InskbmF2aWdhdGlvbi5uZXh0fSI+eyRsYW5nLm5leHR9PC9hPjwvc3Bhbj4KCjxoMT57aWYgJGRheSA+IDB9eyRkYXl9IHsvaWZ9eyRtb250aF9uYW1lc1skbW9udGhdfSB7JHllYXJ9PC9oMT4Key9pZn0Ke2ZvcmVhY2ggZnJvbT0kZXZlbnRzIGtleT1rZXkgaXRlbT1ldmVudH0KCTxkaXYgY2xhc3M9ImNhbGVuZGFyLWV2ZW50Ij4KCTxoMj57JGV2ZW50LmV2ZW50X3RpdGxlfTwvaDI+CgoJe2Fzc2lnbiB2YXI9bW9udGhfbnVtYmVyIHZhbHVlPSRldmVudC5ldmVudF9kYXRlX3N0YXJ0fGRhdGVfZm9ybWF0OiIlbSJ9Cgl7YXNzaWduIHZhcj1lbmRfbW9udGhfbnVtYmVyIHZhbHVlPSRldmVudC5ldmVudF9kYXRlX2VuZHxkYXRlX2Zvcm1hdDoiJW0ifQoKCTxkaXYgY2xhc3M9ImNhbGVuZGFyLWRhdGUtZnJvbSI+PHNwYW4gY2xhc3M9ImNhbGVuZGFyLWRhdGUtdGl0bGUiPnskbGFuZy5kYXRlfTogPC9zcGFuPnskZXZlbnQuZXZlbnRfZGF0ZV9zdGFydHxkYXRlX2Zvcm1hdDoiJWUifSB7JG1vbnRoX25hbWVzWyRtb250aF9udW1iZXJdfSB7JGV2ZW50LmV2ZW50X2RhdGVfc3RhcnR8ZGF0ZV9mb3JtYXQ6IiVZICVIOiVNIn0KCgoKCXtpZiAkZXZlbnQuZXZlbnRfc3VtbWFyeSAhPSIiICYmICgkZGV0YWlsICE9IDEgfHwgKCRldmVudC5ldmVudF9kZXRhaWxzID09IiIgfHwgICRldmVudC5ldmVudF9kZXRhaWxzID09ICI8YnIgLz4iKSl9CgkJPGRpdiBjbGFzcz0iY2FsZW5kYXItc3VtbWFyeSI+PHNwYW4gY2xhc3M9ImNhbGVuZGFyLXN1bW1hcnktdGl0bGUiPnskbGFuZy5zdW1tYXJ5fTogPC9zcGFuPnskZXZlbnQuZXZlbnRfc3VtbWFyeX08L2Rpdj4KCXsvaWZ9Cgl7aWYgJGRldGFpbCA9PSAxfQoJCXtpZiAkZXZlbnQuZXZlbnRfZGV0YWlscyAhPSIiICYmICRldmVudC5ldmVudF9kZXRhaWxzICE9ICI8YnIgLz4ifQoJCTxkaXYgY2xhc3M9ImNhbGVuZGFyLWRldGFpbHMiPjxzcGFuIGNsYXNzPSJjYWxlbmRhci1kZXRhaWxzLXRpdGxlIj57JGxhbmcuZGV0YWlsc306IDwvc3Bhbj57JGV2ZW50LmV2ZW50X2RldGFpbHN9PC9kaXY+CgkJey9pZn0KCXtlbHNlfQoJCTxhIGhyZWY9InskZXZlbnQudXJsfSI+eyRtb3JldGV4dH08L2E+Cgl7L2lmfQoKCTwvZGl2Pgp7L2ZvcmVhY2h9Cgp7aWYgJHJldHVybl91cmwgIT0gIiJ9CjxkaXYgY2xhc3M9ImNhbGVuZGFyLXJldHVybmxpbmsiPnskcmV0dXJuX3VybH08L2Rpdj4Key9pZn0KPC9kaXY+CgogCg==]]></data>
	</file>
	<file>
	  <filename>/templates/db/blog-post-month-archive-list.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0iY2FsZW5kYXItbGlzdCIgaWQ9InskdGFibGVfaWR9Ij4Ke2lmICRjb21wYWN0X3ZpZXcgbmVxIDF9CjxzcGFuIGNsYXNzPSJjYWxlbmRhci1wcmV2Ij48YSBocmVmPSJ7JG5hdmlnYXRpb24ucHJldn0iPnskbGFuZy5wcmV2fTwvYT48L3NwYW4+ICZuYnNwOyAmbmJzcDsgPHNwYW4gY2xhc3M9ImNhbGVuZGFyLW5leHQiPjxhIGhyZWY9InskbmF2aWdhdGlvbi5uZXh0fSI+eyRsYW5nLm5leHR9PC9hPjwvc3Bhbj4KCjxoMT57aWYgJGRheSA+IDB9eyRkYXl9IHsvaWZ9eyRtb250aF9uYW1lc1skbW9udGhdfSB7JHllYXJ9PC9oMT4Key9pZn0Ke2ZvcmVhY2ggZnJvbT0kZXZlbnRzIGtleT1rZXkgaXRlbT1ldmVudH0KCTxkaXYgY2xhc3M9ImNhbGVuZGFyLWV2ZW50Ij4KCTxoMj48YSBocmVmPSJ7JGV2ZW50LnVybH0iPnskZXZlbnQuZXZlbnRfdGl0bGV9PC9hPjwvaDI+CgoJe2Fzc2lnbiB2YXI9bW9udGhfbnVtYmVyIHZhbHVlPSRldmVudC5ldmVudF9kYXRlX3N0YXJ0fGRhdGVfZm9ybWF0OiIlbSJ9Cgl7YXNzaWduIHZhcj1lbmRfbW9udGhfbnVtYmVyIHZhbHVlPSRldmVudC5ldmVudF9kYXRlX2VuZHxkYXRlX2Zvcm1hdDoiJW0ifQoKCTxkaXYgY2xhc3M9ImNhbGVuZGFyLWRhdGUtZnJvbSI+PHNwYW4gY2xhc3M9ImNhbGVuZGFyLWRhdGUtdGl0bGUiPnskbGFuZy5kYXRlfTogPC9zcGFuPnskZXZlbnQuZXZlbnRfZGF0ZV9zdGFydHxkYXRlX2Zvcm1hdDoiJWUifSB7JG1vbnRoX25hbWVzWyRtb250aF9udW1iZXJdfSB7JGV2ZW50LmV2ZW50X2RhdGVfc3RhcnR8ZGF0ZV9mb3JtYXQ6IiVZICVIOiVNIn0KCgoJe2V2YWwgdmFyPSRldmVudC5ldmVudF9kZXRhaWxzfQoJPHA+QXV0aG9yOiB7JGV2ZW50LmF1dGhvcm5hbWV9PC9wPgoJCTxhIGhyZWY9InskZXZlbnQudXJsfSI+e2Ntc19tb2R1bGUgbW9kdWxlPSJDb21tZW50cyIgYWN0aW9uPSJjb3VudF9jb21tZW50cyIgbW9kdWxlbmFtZT0nQ2FsZW5kYXInIHBhZ2VpZD0kZXZlbnQuZXZlbnRfaWR9IGNvbW1lbnRzPC9hPgoKCTwvZGl2Pgp7L2ZvcmVhY2h9Cgp7aWYgJHJldHVybl91cmwgIT0gIiJ9CjxkaXYgY2xhc3M9ImNhbGVuZGFyLXJldHVybmxpbmsiPnskcmV0dXJuX3VybH08L2Rpdj4Key9pZn0KPC9kaXY+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/editevent.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRsYW5ndWFnZXRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGxhbmd1YWdlaW5wdXR9PC9wPgoJPC9kaXY+CnskZW5kZm9ybX0=]]></data>
	</file>
	<file>
	  <filename>/templates/edittemplate.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19DQp7JHRlbXBsYXRlbmFtZX0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyR0ZW1wbGF0ZWlucHV0fTwvcD4KCTwvZGl2PgoJCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fTwvcD4KCTwvZGl2Pgp7JGVuZGZvcm19]]></data>
	</file>
	<file>
	  <filename>/templates/fieldstab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpmdW5jdGlvbiB1cGRhdGVfZmllbGRfcm93KCRyb3cpIHsKICB2YXIgdHlwZSA9ICQoJ3NlbGVjdC5mbGRfdHlwZScsJHJvdykudmFsKCk7CiAgaWYoIHR5cGUgIT0gMCAmJiB0eXBlICE9IDIgKSB7CiAgICAkKCcuZmxkX3NlYXJjaGFibGUnLCRyb3cpLmhpZGUoKTsKICB9IGVsc2UgewogICAgJCgnLmZsZF9zZWFyY2hhYmxlJywkcm93KS5zaG93KCk7CiAgfQogIGlmKCB0eXBlICE9IDIgKSB7CiAgICAkKCcuZmxkX3d5c2l3eWcnLCRyb3cpLmhpZGUoKTsKICB9IGVsc2UgewogICAgJCgnLmZsZF93eXNpd3lnJywkcm93KS5zaG93KCk7CiAgfQp9CiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7CiAgJCgnI2NnY2FsX2ZpZWxkcyA+IHRib2R5Jykuc29ydGFibGUoKTsKICAkKCcjY2djYWxfZmllbGRzID4gdGJvZHkgdHInKS5lYWNoKGZ1bmN0aW9uKGlkeCxlbCl7CiAgICBpZiggJChlbCkuYXR0cignaWQnKSA9PSAnZmxkX3NrZWxldG9uJyApIHJldHVybjsKICAgIHVwZGF0ZV9maWVsZF9yb3coZWwpOwogIH0pOwogICQoZG9jdW1lbnQpLm9uKCdjaGFuZ2UnLCdzZWxlY3QuZmxkX3R5cGUnLGZ1bmN0aW9uKCl7CiAgICB1cGRhdGVfZmllbGRfcm93KCQodGhpcykuY2xvc2VzdCgndHInKSk7CiAgfSk7CiAgJChkb2N1bWVudCkub24oJ2NsaWNrJywnLmZsZF9kZWxldGUnLGZ1bmN0aW9uKCl7CiAgICBpZiggIWNvbmZpcm0oJ3skbW9kLT5MYW5nKCdjYWxfYXJleW91c3VyZScpfScpICkgcmV0dXJuIGZhbHNlOwogICAgJCh0aGlzKS5jbG9zZXN0KCd0cicpLnJlbW92ZSgpOwogIH0pOwogICQoZG9jdW1lbnQpLm9uKCdjbGljaycsJyNmbGRfYWRkJyxmdW5jdGlvbigpewogICAgdmFyIHJvdyA9ICQoJ3RyI2ZsZF9za2VsZXRvbicpLmNsb25lKCk7CiAgICB1cGRhdGVfZmllbGRfcm93KHJvdyk7CiAgICAkKHJvdykuc2hvdygpLnJlbW92ZUF0dHIoJ2lkJykuYXBwZW5kVG8oJyNjZ2NhbF9maWVsZHMgPiB0Ym9keScpOwogICAgcmV0dXJuIGZhbHNlOwogIH0pOwogICQoZG9jdW1lbnQpLm9uKCdjbGljaycsJyNmbGRfdXBkYXRlJyxmdW5jdGlvbigpewogICAgJCgnI2NnY2FsX2ZpZWxkcyA+IHRib2R5IHRyJykuZWFjaChmdW5jdGlvbihpZHgsJGVsKXsKICAgICAgdmFyIG9sZG5hbWUgPSAkKCdpbnB1dC5mbGRfaWQnLCRlbCkudmFsKCk7CiAgICAgIHZhciBuZXduYW1lID0gJCgnaW5wdXQuZmxkX25hbWUnLCRlbCkudmFsKCk7CiAgICAgIGlmKCBvbGRuYW1lICE9ICcnICYmIG5ld25hbWUgPT0gJycgKSB7CiAgICAgICAgYWxlcnQoJ2dvdCBlbXB0aWVkIG5hbWUnKTsKICAgICAgfQogICAgfSk7CiAgICAkKCd0ciNmaWVsZF9za2VsZXRvbicpLnJlbW92ZSgpOwogIH0pOwp9KTsKPC9zY3JpcHQ+Cgo8ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRtb2QtPkxhbmcoJ2luZm9fY3VzdG9tZmllbGRzX3RhYicpfTwvZGl2Pgp7JGZvcm1zdGFydH0KCjx0YWJsZSBjbGFzcz0icGFnZXRhYmxlIiBpZD0iY2djYWxfZmllbGRzIj4KICA8dGhlYWQ+CiAgICA8dGg+eyRuYW1ldGV4dH08L3RoPgogICAgPHRoPnskdHlwZXRleHR9PC90aD4KICAgIDx0aD57JG1vZC0+TGFuZygnc2VhcmNoYWJsZScpfTwvdGg+CiAgICA8dGg+eyRtb2QtPkxhbmcoJ3d5c2l3eWcnKX08L3RoPgogICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+PC90aD4KICA8L3RoZWFkPgogIDx0Ym9keT4KICAgIHtpZiBpc3NldCgkZmllbGRzKX0KICAgIHtmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPSdlbnRyeSd9CiAgICAgIDx0cj4KICAgICAgICA8dGQ+CiAgICAgICAgICA8aW5wdXQgY2xhc3M9ImZsZF9pZCIgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWZpZWxkX2lkc1tdIiB2YWx1ZT0ieyRlbnRyeS5maWVsZF9uYW1lfSIvPgogICAgICAgICAgPGlucHV0IGNsYXNzPSJmbGRfbmFtZSIgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1maWVsZF9uYW1lc1tdIiB2YWx1ZT0ieyRlbnRyeS5maWVsZF9uYW1lfSIgbWF4bGVuZ3RoPSIyNTUiLz4KICAgICAgICA8L3RkPgogICAgICAgIDx0ZD48c2VsZWN0IGNsYXNzPSJmbGRfdHlwZSIgbmFtZT0ieyRhY3Rpb25pZH1maWVsZF90eXBlc1tdIj57aHRtbF9vcHRpb25zIG9wdGlvbnM9JHR5cGVzIHNlbGVjdGVkPSRlbnRyeS5maWVsZF90eXBlfTwvc2VsZWN0PjwvdGQ+CiAgICAgICAgPHRkPjxzZWxlY3QgY2xhc3M9ImZsZF9zZWFyY2hhYmxlIiBuYW1lPSJ7JGFjdGlvbmlkfWZpZWxkX3NlYXJjaGFibGVbXSI+e2NnZV95ZXNub19vcHRpb25zIHNlbGVjdGVkPSRlbnRyeS5maWVsZF9leHRyYS5zZWFyY2hhYmxlfTwvc2VsZWN0PjwvdGQ+CiAgICAgICAgPHRkPjxzZWxlY3QgY2xhc3M9ImZsZF93eXNpd3lnIiBuYW1lPSJ7JGFjdGlvbmlkfWZpZWxkX3d5c2l3eWdbXSI+e2NnZV95ZXNub19vcHRpb25zIHNlbGVjdGVkPSRlbnRyeS5maWVsZF9leHRyYS53eXNpd3lnfTwvc2VsZWN0PjwvdGQ+Cgk8dGQ+e2NnaW1hZ2UgaW1hZ2U9J2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJyBjbGFzcz0iZmxkX2RlbGV0ZSJ9PC90ZD4KICAgICAgPC90cj4KICAgIHsvZm9yZWFjaH0KICAgIHsvaWZ9CiAgICA8dHIgaWQ9ImZsZF9za2VsZXRvbiIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KICAgICAgPHRkPgogICAgICAgIDxpbnB1dCBjbGFzcz0iZmxkX2lkIiBuYW1lPSJ7JGFjdGlvbmlkfWZpZWxkX2lkc1tdIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiLz4KICAgICAgICA8aW5wdXQgY2xhc3M9ImZsZF9uYW1lIiBuYW1lPSJ7JGFjdGlvbmlkfWZpZWxkX25hbWVzW10iIHR5cGU9InRleHQiIHZhbHVlPSIiIG1heGxlbmd0aD0iMjU1Ii8+CiAgICAgIDwvdGQ+CiAgICAgIDx0ZD4KICAgICAgICA8c2VsZWN0IGNsYXNzPSJmbGRfdHlwZSIgbmFtZT0ieyRhY3Rpb25pZH1maWVsZF90eXBlc1tdIj57aHRtbF9vcHRpb25zIG9wdGlvbnM9JHR5cGVzfTwvc2VsZWN0PgogICAgICA8L3RkPgogICAgICA8dGQ+CiAgICAgICAgPHNlbGVjdCBjbGFzcz0iZmxkX3NlYXJjaGFibGUiIG5hbWU9InskYWN0aW9uaWR9ZmllbGRfc2VhcmNoYWJsZVtdIj57Y2dlX3llc25vX29wdGlvbnN9PC9zZWxlY3Q+CiAgICAgIDwvdGQ+CiAgICAgIDx0ZD4KICAgICAgICA8c2VsZWN0IGNsYXNzPSJmbGRfd3lzaXd5ZyIgbmFtZT0ieyRhY3Rpb25pZH1maWVsZF93eXNpd3lnW10iPntjZ2VfeWVzbm9fb3B0aW9uc308L3NlbGVjdD4KICAgICAgPC90ZD4KICAgICAgPHRkPntjZ2ltYWdlIGltYWdlPSdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicgY2xhc3M9ImZsZF9kZWxldGUifTwvdGQ+CiAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBpZD0iZmxkX2FkZCIgdmFsdWU9InskbW9kLT5MYW5nKCdhZGRfZmllbGQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIGlkPSJmbGRfdXBkYXRlIiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYWxfdXBkYXRlX2ZpZWxkcycpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/filetpllist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRpdGVtY291bnQgPiAwfQoKPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD57JGZpbGVuYW1ldGV4dH08L3RoPgoJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRib2R5PgoJe2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0KCQk8dHIgY2xhc3M9InskZW50cnktPnJvd2NsYXNzfSIgb25tb3VzZW92ZXI9InRoaXMuY2xhc3NOYW1lPSd7JGVudHJ5LT5yb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9JzsiPgoJCQk8dGQgc3R5bGU9IndpZHRoOjUwJSI+eyRlbnRyeS0+ZmlsZW5hbWV9PC90ZD4KCQkJPHRkIHN0eWxlPSJ3aWR0aDo1MCU7IHRleHQtYWxpZ246cmlnaHQiPnskZW50cnktPmltcG9ydGxpbmt9PC90ZD4KCQk8L3RyPgoJey9mb3JlYWNofQoJPC90Ym9keT4KPC90YWJsZT4Ke2Vsc2V9CjxoND57JG5vZmlsZXN0ZXh0fTwvaDQ+CnsvaWZ9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/importtemplate.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRlcnJvcm1zZyAhPSAiIn0KCTxkaXYgY2xhc3M9InBhZ2VlcnJvciI+eyRlcnJvcm1zZ308L2Rpdj4Key9pZn0KeyRzdGFydGZvcm19Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+KnskbmV3dGVtcGxhdGV9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0bmFtZX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRoaWRkZW59eyRzdWJtaXR9eyRjYW5jZWx9PC9wPgoJPC9kaXY+CnskZW5kZm9ybX0K]]></data>
	</file>
	<file>
	  <filename>/templates/newedittemplate.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH17JGNhbmNlbH08L3A+DQoJPC9kaXY+DQoNCg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+KiB7JG5hbWV0ZXh0fTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskbmFtZWlucHV0fTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskY29udGVudHRleHR9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRjb250ZW50aW5wdXR9PC9wPg0KCTwvZGl2Pg0KDQoJDQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fXskY2FuY2VsfTwvcD4NCgk8L2Rpdj4NCg==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_calendar_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICFpc3NldCgkc21hcnR5LmdldC5ub2pzKX0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPntqc21pbn0KLy8gdGhlIGpzbWluIHBsdWdpbiBpcyBpbmNsdWRlZCB3aXRoIENHRXh0ZW5zaW9ucy4KaWYoIHR5cGVvZiBqUXVlcnkgIT0gJ3VuZGVmaW5lZCcgKSB7CiAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICAgICQoZG9jdW1lbnQpLm9uKCdjbGljaycsJ2EuY2FsZW5kYXItbmF2JyxmdW5jdGlvbihldil7CiAgICAgIC8vIGFsbG93IHBhZ2luYXRpbmcgdGhyb3VnaCBtb250aHMgdmlhIGFqYXguCiAgICAgIHZhciB1cmwgPSAkKHRoaXMpLmF0dHIoJ2hyZWYnKS5yZXBsYWNlKC9hbXA7L2csJycpKydub2pzPTEmc2hvd3RlbXBsYXRlPWZhbHNlJzsKICAgICAgJCgnI2NhbC1jYWxlbmRhcicpLmxvYWQodXJsKTsKICAgICAgZXYucHJldmVudERlZmF1bHQoKTsKICAgIH0pOwoKICAgIGlmKCBqUXVlcnkoKS5kaWFsb2cgKSB7CiAgICAgICQoZG9jdW1lbnQpLm9uKCdjbGljaycsJ2EuY2FsZW5kYXItZGF5bGlzdCcsZnVuY3Rpb24oZXYpewogICAgICAgIC8vIGRlbW9uc3RyYXRlIHZpZXdpbmcgYSBkYXkgbGlzdCBpbiBhIHBvcHVwIGRpYWxvZwogICAgICAgIC8vIGFuZCBtaXhpbmcgc21hcnR5IGFuZCBqYXZhc2NyaXB0IGNvZGUuCiAgICAgICAgLy8gdXNlcyBqcXVlcnkgdWkgZGlhbG9nLi4uIGJ1dCBjb3VsZCBqdXN0IGFzIGVhc2lseSB1c2UgZmFuY3lib3ggZXRjLgogICAgICAgIC8vIHlvdSBjb3VsZCBhZGQgcGFyYW1ldGVycyBoZXJlIGZvciBjaGFuZ2luZyB0aGUgdGVtcGxhdGUgZnJvbSB0aGUgZGVmYXVsdCwgZXRjLCBvciBldmVuIGZpbHRlciBieSBjYXRlZ29yeS4KICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIHZhciBkYXkgPSBuZXcgRGF0ZSggJCh0aGlzKS5kYXRhKCdkYXknKSAqIDEwMDAgKTsKICAgICAgICB2YXIgbSA9IGRheS5nZXRNb250aCgpKzE7CiAgICAgICAgdmFyIGQgPSBkYXkuZ2V0RGF0ZSgpOwogICAgICAgIHZhciB5ID0gZGF5LmdldEZ1bGxZZWFyKCk7CiAgICAgICAgdmFyIHVybCA9ICd7bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT1DR0NhbGVuZGFyIGRpc3BsYXk9bGlzdCBkYXk9RERERCAgbW9udGg9TU1NTSB5ZWFyPVlZWVkganNmcmllbmRseT0xfSZzaG93dGVtcGxhdGU9ZmFsc2UnOwogICAgICAgIHVybCA9IHVybC5yZXBsYWNlKCdNTU1NJyxtKS5yZXBsYWNlKCdEREREJyxkKS5yZXBsYWNlKCdZWVlZJyx5KTsKICAgICAgICAkKCcjY2FsLWRheXZpZXcnKS5sb2FkKHVybCxmdW5jdGlvbihkYXRhKXsKICAgICAgICAgICQoJyNjYWwtZGF5dmlldycpLmRpYWxvZyh7CiAgICAgICAgICAgIHRpdGxlOiAneyRtb2QtPkxhbmcoJ2RheXZpZXcnKX0nCiAgICAgICAgICB9KQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0KICB9KQp9IC8vIGpxdWVyeSB0ZXN0CnsvanNtaW59PC9zY3JpcHQ+CnsvaWZ9Cgp7c3RyaXB9CjxkaXYgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij57KiBhIHNpbXBsZSB3cmFwcGVyICp9CiAgPGRpdiBpZD0iY2FsLWRheXZpZXciPjwvZGl2Pgo8L2Rpdj4KPHRhYmxlIGNsYXNzPSJjYWxlbmRhciIgaWQ9ImNhbC1jYWxlbmRhciI+CjxjYXB0aW9uIGNsYXNzPSJjYWxlbmRhci1tb250aCI+CiAgIDxzcGFuIGNsYXNzPSJjYWxlbmRhci1wcmV2Ij48YSBjbGFzcz0iY2FsZW5kYXItbmF2IiBocmVmPSJ7JG5hdmlnYXRpb24ucHJldn0iPiZsYXF1bzs8L2E+PC9zcGFuPgogICAgIHskZGF0ZXxkYXRlX2Zvcm1hdDonJWIgJVknfQogICA8c3BhbiBjbGFzcz0iY2FsZW5kYXItbmV4dCI+PGEgY2xhc3M9ImNhbGVuZGFyLW5hdiIgaHJlZj0ieyRuYXZpZ2F0aW9uLm5leHR9Ij4mcmFxdW87PC9hPjwvc3Bhbj4KPC9jYXB0aW9uPgo8dGJvZHk+PHRyPgp7Zm9yZWFjaCBmcm9tPSRkYXlfbmFtZXMgaXRlbT1kYXkga2V5PWtleX0KPHRoIGNsYXNzPSJjYWwtZGF5aGRyIiBhYmJyPSJ7JGRheX0iPnskZGF5X3Nob3J0X25hbWVzWyRrZXldfTwvdGg+CnsvZm9yZWFjaH08L3RyPgoKPHRyPgp7KiBpbml0aWFsIGVtcHR5IGRheXMgKn0Ke2lmICRmaXJzdF9vZl9tb250aF93ZWVrZGF5X251bWJlciA+IDB9Cjx0ZCBjb2xzcGFuPSJ7JGZpcnN0X29mX21vbnRoX3dlZWtkYXlfbnVtYmVyfSI+Jm5ic3A7PC90ZD4Key9pZn0KCnsqIGl0ZXJhdGUgb3ZlciB0aGUgZGF5cyBvZiB0aGlzIG1vbnRoICp9Cnthc3NpZ24gdmFyPXdlZWtkYXkgdmFsdWU9JGZpcnN0X29mX21vbnRoX3dlZWtkYXlfbnVtYmVyfQp7Zm9yZWFjaCBmcm9tPSRkYXlzIGl0ZW09ZGF5IGtleT1rZXl9CntpZiAkd2Vla2RheSA9PSA3fQogIHthc3NpZ24gdmFyPXdlZWtkYXkgdmFsdWU9MH0KPC90cj4KPHRyPgp7L2lmfQo8dGQge2lmIGlzc2V0KCRkYXkuY2xhc3MpfWNsYXNzPSJ7JGRheS5jbGFzc30gY2FsLWRheSJ7L2lmfT4Ke2lmIGlzc2V0KCRkYXkuZXZlbnRzLjApfTxhIGNsYXNzPSJjYWxlbmRhci1kYXlsaXN0IiBkYXRhLWRheT0ieyRkYXkuZGF0ZX0iIGhyZWY9InskZGF5Lm5pX3VybH0iPnska2V5fTwvYT57KiBieSBkZWZhdWx0IHVzZSB0aGUgbm9uIGlubGluZSAocmVwbGFjZSBjb250ZW50IHRhZykgdmVyc2lvbiBvZiB0aGUgVVJMICp9Cjx1bD4Ke2ZvcmVhY2ggZnJvbT0kZGF5LmV2ZW50cyBpdGVtPWV2ZW50fQo8bGk+CiAgeyogc29tZSBzaW1wbGUgc21hcnR5IGxvZ2ljIHRvIHVzZSB0aGUgZm9yZWdyb3VuZCBhbmQgYmFja2dyb3VuZCBjb2xvcnMgYXNzaWduZWQgdG8gYW4gZXZlbnQgKn0KICB7JHN0eWxlPScnfXtpZiAkZXZlbnQuYmdjb2xvcn17JHN0eWxlPSJzdHlsZT1cImNvbG9yOiB7JGV2ZW50LmZnY29sb3J9OyBiYWNrZ3JvdW5kLWNvbG9yOiB7JGV2ZW50LmJnY29sb3J9XCIifXsvaWZ9CiAgPGEgY2xhc3M9ImNhbGVuZGFyLWV2ZW50IiBocmVmPSJ7JGV2ZW50LnVybH0iIHskc3R5bGV9PnskZXZlbnQuZXZlbnRfdGl0bGV8c3VtbWFyaXplOjIwfTwvYT48L2xpPgp7L2ZvcmVhY2h9CjwvdWw+CntlbHNlfXska2V5fXsvaWZ9CjwvdGQ+CnttYXRoIGFzc2lnbj13ZWVrZGF5IGVxdWF0aW9uPSJ4ICsgMSIgeD0kd2Vla2RheX0Key9mb3JlYWNofQoKeyogcmVtYWluaW5nIGVtcHR5IGRheXMgKn0Ke2lmICR3ZWVrZGF5ICE9IDd9Cjx0ZCBjb2xzcGFuPSJ7bWF0aCBlcXVhdGlvbj0iNy14IiB4PSR3ZWVrZGF5fSI+Jm5ic3A7PC90ZD4Key9pZn0KCgo8L3RyPgo8L3Rib2R5PjwvdGFibGU+Cgp7L3N0cmlwfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_editevent_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogZWRpdCBldmVudCB0ZW1wbGF0ZSAqfQp7bGl0ZXJhbH0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpmdW5jdGlvbiB0b2dnbGVEaXNwbGF5KGVsZW0pIHsKICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtKTsKICB2YXIgdHh0ID0gZWwuc3R5bGUuZGlzcGxheTsKICBpZiggdHh0ID09ICdub25lJyApIHsKICAgICAgdHh0ID0gJ2Jsb2NrJzsKICB9IGVsc2UgewogICAgICB0eHQgPSAnbm9uZSc7CiAgfQogIGVsLnN0eWxlLmRpc3BsYXkgPSB0eHQ7Cn0KPC9zY3JpcHQ+CnsvbGl0ZXJhbH0KCntpZiBpc3NldCgkbWVzc2FnZSl9CiB7aWYgaXNzZXQoJHN0YXR1cyl9CiAgIDxkaXYgY2xhc3M9ImVycm9yIj57JG1lc3NhZ2V9PC9kaXY+CiB7ZWxzZX0KICAgPGRpdiBjbGFzcz0ibWVzc2FnZSI+eyRtZXNzYWdlfTwvZGl2Pgogey9pZn0Key9pZn0KCjxkaXYgaWQ9ImNnY2FsZW5kYXJfYWRkZWRpdF9ldmVudCI+CntpZiAkZXZlbnQuZXZlbnRfaWQgPiAwIH0KIDxoND57JG1vZC0+TGFuZygnY2FsX2VkaXRfZXZlbnQnLCRldmVudC5ldmVudF9pZCl9PC9oND4Ke2Vsc2V9CiA8aDQ+eyRtb2QtPkxhbmcoJ2NhbF9hZGRfZXZlbnQnKX08L2g0Pgp7L2lmfQoKe2NhcHR1cmUgYXNzaWduPSd1c2UyNCd9eyRtb2QtPkdldFByZWZlcmVuY2UoJ3VzZV90d2VsdmVfaG91cl9jbG9jaycpfXsvY2FwdHVyZX0Ke2lmICR1c2UyNCA9PSAxfXthc3NpZ24gdmFyPSd1c2UyNCcgdmFsdWU9MH0Ke2Vsc2V9e2Fzc2lnbiB2YXI9J3VzZTI0JyB2YWx1ZT0xfXsvaWZ9CnskZm9ybXN0YXJ0fQoKPGRpdiBjbGFzcz0icm93Ij4KICA8cCBjbGFzcz0icm93X3Byb21wdCI+eyRtb2QtPkxhbmcoJ2NhbF9mcm9tZGF0ZScpfTo8L3A+CiAgPHAgY2xhc3M9InJvd19pbnB1dCI+CiAgICB7Y2FwdHVyZSBhc3NpZ249J3RtcCd9eyRhY3Rpb25pZH1jYWxfc3RhcnRkYXRlX3svY2FwdHVyZX0KICAgIHtodG1sX3NlbGVjdF9kYXRlIHByZWZpeD0kdG1wIHRpbWU9JGV2ZW50LmV2ZW50X2RhdGVfc3RhcnRfdXQgc3RhcnRfeWVhcj0kc3RhcnRfeWVhciBlbmRfeWVhcj0kZW5kX3llYXJ9CiAgICAmbmJzcDtBbGwgRGF5OiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InskYWN0aW9uaWR9Y2FsX2FsbF9kYXlfZXZlbnQiIGlkPSJhbGxfZGF5X2V2ZW50IiB2YWx1ZT0iMSJ7aWYgJGV2ZW50LmFsbF9kYXlfZXZlbnQgPT0gMX0gY2hlY2tlZD0iY2hlY2tlZCJ7L2lmfSBvbmNsaWNrPSJ0b2dnbGVEaXNwbGF5KCdzdGFydHRpbWUnKTsgdG9nZ2xlRGlzcGxheSgnZW5kdGltZScpOyIvPgogICAgPHNwYW4gaWQ9InN0YXJ0dGltZSJ7aWYgJGV2ZW50LmFsbF9kYXlfZXZlbnQgPT0gMX0gc3R5bGU9ImRpc3BsYXk6IG5vbmU7InsvaWZ9PiBhdCB7aHRtbF9zZWxlY3RfdGltZSB1c2VfMjRfaG91cnM9JHVzZTI0IHByZWZpeD0kdG1wIHRpbWU9JGV2ZW50LmV2ZW50X2RhdGVfc3RhcnRfdXQgbWludXRlX2ludGVydmFsPTE1IGRpc3BsYXlfc2Vjb25kcz1mYWxzZX08L3NwYW4+CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InJvdyI+CiAgPHAgY2xhc3M9InJvd19wcm9tcHQiPnskbW9kLT5MYW5nKCdjYWxfdG9kYXRlJyl9OjwvcD4KICA8cCBjbGFzcz0icm93X2lucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ieyRhY3Rpb25pZH1jYWxfZW5kZGF0ZV92YWxpZCIgdmFsdWU9IjEiIHtpZiAkZXZlbnQuYWx0X2VuZF9kYXRlID09IDF9Y2hlY2tlZD0iY2hlY2tlZCJ7L2lmfSBvbmNsaWNrPSJ0b2dnbGVEaXNwbGF5KCdlbmRkYXRlJyk7Ij57JG1vZC0+TGFuZygndXNlX3RvX2RhdGUnKX08YnIvPgogICAge2NhcHR1cmUgYXNzaWduPSd0bXAnfXskYWN0aW9uaWR9Y2FsX2VuZGRhdGVfey9jYXB0dXJlfQogICAgPHNwYW4gaWQ9ImVuZGRhdGUiIHtpZiBlbXB0eSgkZXZlbnQuZXZlbnRfZGF0ZV9lbmQpIHx8ICRldmVudC5ldmVudF9kYXRlX2VuZCA9PSAnJyB8fCAkZXZlbnQuYWx0X2VuZF9kYXRlID09IDB9c3R5bGU9ImRpc3BsYXk6IG5vbmU7InsvaWZ9PgogICAge2h0bWxfc2VsZWN0X2RhdGUgcHJlZml4PSR0bXAgIHRpbWU9JGV2ZW50LmV2ZW50X2RhdGVfZW5kX3V0IHN0YXJ0X3llYXI9JHN0YXJ0X3llYXIgZW5kX3llYXI9JGVuZF95ZWFyfQogICAgPHNwYW4gaWQ9ImVuZHRpbWUie2lmICRldmVudC5hbGxfZGF5X2V2ZW50ID09IDF9IHN0eWxlPSJkaXNwbGF5OiBub25lOyJ7L2lmfT4gYXQge2h0bWxfc2VsZWN0X3RpbWUgdXNlXzI0X2hvdXJzPSR1c2UyNCB0aW1lPSRldmVudC5ldmVudF9kYXRlX2VuZF91dCBwcmVmaXg9JHRtcCBtaW51dGVfaW50ZXJ2YWw9MTUgZGlzcGxheV9zZWNvbmRzPWZhbHNlfTwvc3Bhbj4KICAgIDwvc3Bhbj4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icm93Ij4KICA8cCBjbGFzcz0icm93X3Byb21wdCI+KnskbW9kLT5MYW5nKCdjYWxfdGl0bGUnKX06PC9wPgogIDxwIGNsYXNzPSJyb3dfaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y2FsX2V2ZW50X3RpdGxlIiB2YWx1ZT0ieyRldmVudC5ldmVudF90aXRsZX0iIHNpemU9IjgwIiBtYXhsZW5ndGg9IjI1NSIvPgogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJyb3ciPgogIDxwIGNsYXNzPSJyb3dfcHJvbXB0Ij57JG1vZC0+TGFuZygnY2FsX3N1bW1hcnknKX06PC9wPgogIDxwIGNsYXNzPSJyb3dfaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y2FsX2V2ZW50X3N1bW1hcnkiIHZhbHVlPSJ7JGV2ZW50LmV2ZW50X3N1bW1hcnl9IiBzaXplPSI4MCIgbWF4bGVuZ3RoPSIyNTUiLz4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icm93Ij4KICA8cCBjbGFzcz0icm93X3Byb21wdCI+eyRtb2QtPkxhbmcoJ2NhbF9kZXRhaWxzJyl9OjwvcD4KICA8cCBjbGFzcz0icm93X2lucHV0Ij4KICAgIHtjZ2VfdGV4dGFyZWEgbmFtZT0ieyRhY3Rpb25pZH1jYWxfZXZlbnRfZGV0YWlscyIgcm93cz0iNSIgdmFsdWU9JGV2ZW50LmV2ZW50X2RldGFpbHMgd3lzaXd5Zz0xfQogIDwvcD4KPC9kaXY+Cgp7aWYgaXNzZXQoJGZpZWxkcyl9Cntmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPSdmaWVsZCd9CjxkaXYgY2xhc3M9InJvdyI+CiAgPHAgY2xhc3M9InJvd19wcm9tcHQiPnskZmllbGQtPm5hbWV9OjwvcD4KICA8cCBjbGFzcz0icm93X2lucHV0Ij4KICAgIHtpZiAkZmllbGQtPnR5cGUgPT0gMH0KICAgIAk8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jYWxfZmllbGRfeyRmaWVsZC0+c2FmZW5hbWV9IiBzaXplPSI0MCIgdmFsdWU9InskZmllbGQtPnZhbHVlfSIvPgogICAge2Vsc2VpZiAkZmllbGQtPnR5cGUgPT0gMn0KICAgIAl7Y2dlX3RleHRhcmVhIHd5c2l3eWc9JGZpZWxkLT5leHRyYS53eXNpd3lnIG5hbWU9InskYWN0aW9uaWR9Y2FsX2ZpZWxkX3skZmllbGQtPnNhZmVuYW1lfSIgcm93cz0iNSIgdmFsdWU9InskZmllbGQtPnZhbHVlfSJ9CiAgICB7ZWxzZX0KICAgICAge2lmICRmaWVsZC0+dHlwZSA9PSAxfTxzcGFuPnskZmllbGQtPnZhbHVlfTwvc3Bhbj48YnIvPnsvaWZ9CiAgICAgIHskZmllbGQtPmZpZWxkfQogICAgey9pZn0KICA8L3A+CjwvZGl2Pgp7L2ZvcmVhY2h9CnsvaWZ9Cgp7aWYgaXNzZXQoJGNhdGVnb3JpZXMpfQp7Zm9yZWFjaCBmcm9tPSRjYXRlZ29yaWVzIGl0ZW09J2NhdGVnb3J5J30KPGRpdiBjbGFzcz0icm93Ij4KICA8cCBjbGFzcz0icm93X3Byb21wdCI+eyRjYXRlZ29yeS0+bmFtZX06PC9wPgogIDxwIGNsYXNzPSJyb3dfaW5wdXQiPgogICAgeyRjYXRlZ29yeS0+ZmllbGR9CiAgPC9wPgo8L2Rpdj4Key9mb3JlYWNofQp7L2lmfQoKPGRpdiBjbGFzcz0icm93Ij4KICA8cCBjbGFzcz0icm93X3Byb21wdCI+PC9wPgogIDxwIGNsYXNzPSJyb3dfaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jYWxfc3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jYWxfY2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIvPgogIDwvcD4KPC9kaXY+Cgp7JGZvcm1lbmR9CjwvZGl2PnsqIGNnY2FsZW5kYXJfYWRkZWRpdF9ldmVudCAqfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_event_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0iY2FsZW5kYXItZXZlbnQiPgo8aDE+eyRldmVudC5ldmVudF90aXRsZX08L2gxPgoKe2Fzc2lnbiB2YXI9bW9udGhfbnVtYmVyIHZhbHVlPSRldmVudC5ldmVudF9kYXRlX3N0YXJ0fGRhdGVfZm9ybWF0OiIlbSJ9Cnthc3NpZ24gdmFyPWVuZF9tb250aF9udW1iZXIgdmFsdWU9JGV2ZW50LmV2ZW50X2RhdGVfZW5kfGRhdGVfZm9ybWF0OiIlbSJ9CntpZiAkZXZlbnQuZXZlbnRfZGF0ZV9zdGFydCA9PSAkZXZlbnQuZXZlbnRfZGF0ZV9lbmQgfHwgJGV2ZW50LmV2ZW50X2RhdGVfZW5kID09IDB9CiAgPGRpdiBjbGFzcz0iY2FsZW5kYXItZGF0ZS1mcm9tIj48c3BhbiBjbGFzcz0iY2FsZW5kYXItZGF0ZS10aXRsZSI+eyRsYW5nLmRhdGV9OiA8L3NwYW4+eyRldmVudC5ldmVudF9kYXRlX3N0YXJ0fGNtc19kYXRlX2Zvcm1hdH0geyRldmVudC5ldmVudF9kYXRlX3N0YXJ0fGRhdGVfZm9ybWF0OiIlWCJ9PC9kaXY+CntlbHNlfQp7aWYgJGV2ZW50LmV2ZW50X2RhdGVfc3RhcnR8ZGF0ZV9mb3JtYXQ6IiVkJW0lWSIgPT0gJGV2ZW50LmV2ZW50X2RhdGVfZW5kfGRhdGVfZm9ybWF0OiIlZCVtJVkifQogIDxkaXYgY2xhc3M9ImNhbGVuZGFyLWRhdGUtZnJvbSI+PHNwYW4gY2xhc3M9ImNhbGVuZGFyLWRhdGUtdGl0bGUiPnskbGFuZy5kYXRlfTogPC9zcGFuPnskZXZlbnQuZXZlbnRfZGF0ZV9zdGFydHxjbXNfZGF0ZV9mb3JtYXR9IHskZXZlbnQuZXZlbnRfZGF0ZV9zdGFydHxkYXRlX2Zvcm1hdDoiJVgifSB7JGxhbmcudG99IHskZXZlbnQuZXZlbnRfZGF0ZV9lbmR8ZGF0ZV9mb3JtYXQ6IiVIOiVNIn08L2Rpdj4Ke2Vsc2V9CiAgPGRpdiBjbGFzcz0iY2FsZW5kYXItZGF0ZS1mcm9tIj48c3BhbiBjbGFzcz0iY2FsZW5kYXItZGF0ZS10aXRsZSI+eyRsYW5nLmRhdGV9OiA8L3NwYW4+eyRldmVudC5ldmVudF9kYXRlX3N0YXJ0fGRhdGVfZm9ybWF0OiIlZSJ9IHskZXZlbnRfZGF0ZV9zdGFydHxkYXRlX2Zvcm1hdDonJUInfSB7JGV2ZW50LmV2ZW50X2RhdGVfc3RhcnR8ZGF0ZV9mb3JtYXQ6IiVZICVIOiVNIn0geyRsYW5nLnRvfSB7JGV2ZW50LmV2ZW50X2RhdGVfZW5kfGRhdGVfZm9ybWF0OiIlZCJ9IHskZXZuZXRfZGF0ZV9lbmR8ZGF0ZV9mb3JtYXQ6JyVCJ30geyRldmVudC5ldmVudF9kYXRlX2VuZHxkYXRlX2Zvcm1hdDoiJVkgJUg6JU0ifTwvZGl2Pgp7L2lmfQp7L2lmfQp7aWYgJGV2ZW50LmV2ZW50X3N1bW1hcnkgIT0iIiAmJiAkZXZlbnQuZXZlbnRfZGV0YWlscyA9PSIifQoJPGRpdiBjbGFzcz0iY2FsZW5kYXItc3VtbWFyeSI+PHNwYW4gY2xhc3M9ImNhbGVuZGFyLXN1bW1hcnktdGl0bGUiPnskbGFuZy5zdW1tYXJ5fTogPC9zcGFuPnskZXZlbnQuZXZlbnRfc3VtbWFyeX08L2Rpdj4Key9pZn0Ke2lmICRldmVudC5ldmVudF9kZXRhaWxzICE9IiIgJiYgJGV2ZW50LmV2ZW50X2RldGFpbHMgIT0gIjxiciAvPiJ9Cgk8ZGl2IGNsYXNzPSJjYWxlbmRhci1kZXRhaWxzIj48c3BhbiBjbGFzcz0iY2FsZW5kYXItZGV0YWlscy10aXRsZSI+eyRsYW5nLmRldGFpbHN9OiA8L3NwYW4+e2V2YWwgdmFyPSRldmVudC5ldmVudF9kZXRhaWxzfTwvZGl2Pgp7L2lmfQp7aWYgaXNzZXQoJGV2ZW50LnVybCl9eyRjYW5vbmljYWw9JGV2ZW50LnVybH17L2lmfQoKeyogRGlzcGxheSBjdXN0b20gZmllbGRzCiAgIFRoZXJlIGFyZSB0d28gd2F5cyB0byBhZGRyZXNzIGN1c3RvbSBmaWVsZHMKICAgMSkgeyRldmVudC5maWVsZHMuZmllbGRuYW1lfQogICAyKSB7Zm9yZWFjaCBmcm9tPSRldmVudC5maWVsZHMga2V5PSdmaWVsZG5hbWVlJyBpdGVtPSdmaWVsZHZhbHVlJ30KICAgICAgICB7JGZpZWxkbmFtZX06Jm5ic3A7eyRmaWVsZHZhbHVlfQogICAgICB7L2ZvcmVhY2h9CiAgIFlvdSBtYXkgd2FudCB0byB1c2UgdGhlIGZvcm1lciBtZXRob2Qgd2l0aCBmaWxlIHVwbG9hZCBmaWVsZHMuCip9CntpZiBpc3NldCgkZXZlbnQuZmllbGRzKX0KPGRpdiBjbGFzcz0iY2FsZW5kYXItZmllbGRzIj4KICB7Zm9yZWFjaCBmcm9tPSRldmVudC5maWVsZHMga2V5PSdmaWVsZG5hbWUnIGl0ZW09J2ZpZWxkdmFsdWUnfQogICAgICB7JGZpZWxkbmFtZX06Jm5ic3A7eyRmaWVsZHZhbHVlfTxici8+CiAgey9mb3JlYWNofQo8L2Rpdj4Key9pZn0KPC9kaXY+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_list_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0iY2FsZW5kYXItbGlzdCI+CntpZiBpc3NldCgkbmF2aWdhdGlvbil9CiAge2lmIGlzc2V0KCRuYXZpZ2F0aW9uLnByZXYpfTxzcGFuIGNsYXNzPSJjYWxlbmRhci1wcmV2Ij48YSBocmVmPSJ7JG5hdmlnYXRpb24ucHJldn0iPnskbGFuZy5wcmV2fTwvYT48L3NwYW4+ey9pZn0gJm5ic3A7ICZuYnNwOwogIHtpZiBpc3NldCgkbmF2aWdhdGlvbi5uZXh0KX08c3BhbiBjbGFzcz0iY2FsZW5kYXItbmV4dCI+PGEgaHJlZj0ieyRuYXZpZ2F0aW9uLm5leHR9Ij57JGxhbmcubmV4dH08L2E+PC9zcGFuPnsvaWZ9CnsvaWZ9Cgp7aWYgaXNzZXQoJHN0YXJ0X2RhdGVfdXQpICYmIGlzc2V0KCRlbmRfZGF0ZV91dCl9CiAgPGgyPnskc3RhcnRfZGF0ZV91dHxkYXRlX2Zvcm1hdDonJXgnfSB7JGxhbmcudG99IHskZW5kX2RhdGVfdXR8ZGF0ZV9mb3JtYXQ6JyV4J308L2gyPgogIHtpZiBpc3NldCgkbmF2aWdhdGlvbi5jdXJyZW50KX0KICAgIDxwPjxhIGhyZWY9InskbmF2aWdhdGlvbi5jdXJyZW50fSI+eyRsYW5nLmN1cnJlbnR9PC9hPjwvcD4KICB7L2lmfQp7ZWxzZX0KICA8aDE+CiAgICB7aWYgaXNzZXQoJGRheSkgJiYgJGRheSA+IDB9CiAgICAgIHskdGhlZGF0ZXxkYXRlX2Zvcm1hdDonJWQgJWIgJVknfQogICAge2Vsc2VpZiBpc3NldCgkbW9udGgpICYmICRtb250aCA+IDB9CiAgICAgIHskdGhlZGF0ZXxkYXRlX2Zvcm1hdDonJWIgJVknfQogICAge2Vsc2VpZiBpc3NldCgkeWVhcikgJiYgJHllYXIgPiAwfQogICAgICB7JHRoZWRhdGV8ZGF0ZV9mb3JtYXQ6JyVZJ30KICAgIHsvaWZ9CiAgPC9oMT4Key9pZn0KCntmb3JlYWNoIGZyb209JGV2ZW50cyBrZXk9a2V5IGl0ZW09ZXZlbnR9CiAgPGRpdiBjbGFzcz0iY2FsZW5kYXItZXZlbnQiPgogIHtpZiAkZXZlbnQuZmdjb2xvciAhPSAnJyAmJiAkZXZlbnQuYmdjb2xvciAhPSAnJ30KICAgIDxoMiBzdHlsZT0iY29sb3I6IHskZXZlbnQuZmdjb2xvcn07IGJhY2tncm91bmQtY29sb3I6IHskZXZlbnQuYmdjb2xvcn07Ij57JGV2ZW50LmV2ZW50X3RpdGxlfTwvaDI+CiAge2Vsc2V9CiAgICA8aDI+eyRldmVudC5ldmVudF90aXRsZX08L2gyPgogIHsvaWZ9CgogIHtpZiAkZXZlbnQuZXZlbnRfZGF0ZV9zdGFydCA9PSAkZXZlbnQuZXZlbnRfZGF0ZV9lbmQgfHwgJGV2ZW50LmV2ZW50X2RhdGVfZW5kID09IDB9CiAgICA8ZGl2IGNsYXNzPSJjYWxlbmRhci1kYXRlLWZyb20iPjxzcGFuIGNsYXNzPSJjYWxlbmRhci1kYXRlLXRpdGxlIj57JGxhbmcuZGF0ZX06IDwvc3Bhbj57JGV2ZW50LmV2ZW50X2RhdGVfc3RhcnR8ZGF0ZV9mb3JtYXQ6IiV4In08L2Rpdj4KICB7ZWxzZX0KICAgIHtpZiAkZXZlbnQuZXZlbnRfZGF0ZV9zdGFydHxkYXRlX2Zvcm1hdDoiJWQlbSVZIiA9PSAkZXZlbnQuZXZlbnRfZGF0ZV9lbmR8ZGF0ZV9mb3JtYXQ6IiVkJW0lWSJ9CiAgICAgIDxkaXYgY2xhc3M9ImNhbGVuZGFyLWRhdGUtZnJvbSI+PHNwYW4gY2xhc3M9ImNhbGVuZGFyLWRhdGUtdGl0bGUiPnskbGFuZy5kYXRlfTogPC9zcGFuPnskZXZlbnQuZXZlbnRfZGF0ZV9zdGFydHxkYXRlX2Zvcm1hdDoiJXggJUg6JU0ifSB7JGxhbmcudG99IHskZXZlbnQuZXZlbnRfZGF0ZV9lbmR8ZGF0ZV9mb3JtYXQ6IiVIOiVNIn08L2Rpdj4KICAgIHtlbHNlfQogICAgICA8ZGl2IGNsYXNzPSJjYWxlbmRhci1kYXRlLWZyb20iPjxzcGFuIGNsYXNzPSJjYWxlbmRhci1kYXRlLXRpdGxlIj57JGxhbmcuZGF0ZX06IDwvc3Bhbj57JGV2ZW50LmV2ZW50X2RhdGVfc3RhcnR8ZGF0ZV9mb3JtYXQ6IiV4ICVIOiVNIn0geyRsYW5nLnRvfSB7JGV2ZW50LmV2ZW50X2RhdGVfZW5kfGRhdGVfZm9ybWF0OiIleCAlSDolTSJ9PC9kaXY+CiAgICB7L2lmfQogIHsvaWZ9CiAgeyRkZXRhaWxzPSRldmVudC5ldmVudF9kZXRhaWxzfHN0cmlwX3RhZ3N8dHJpbX0KICB7aWYgJGV2ZW50LmV2ZW50X3N1bW1hcnkgIT0gJycgJiYgJGRldGFpbHMgIT0gJyd9CiAgICA8ZGl2IGNsYXNzPSJjYWxlbmRhci1zdW1tYXJ5Ij48c3BhbiBjbGFzcz0iY2FsZW5kYXItc3VtbWFyeS10aXRsZSI+eyRsYW5nLnN1bW1hcnl9OiA8L3NwYW4+eyRldmVudC5ldmVudF9zdW1tYXJ5fTwvZGl2PgogIHsvaWZ9CiAgeyogb3B0aW9uYWxseSBkaXNwbGF5IGRldGFpbCBpbmZvcm1hdGlvbgogIHtpZiAkZGV0YWlscyAhPSAnJ30KICAgIDxkaXYgY2xhc3M9ImNhbGVuZGFyLWRldGFpbHMiPjxzcGFuIGNsYXNzPSJjYWxlbmRhci1kZXRhaWxzLXRpdGxlIj57JGxhbmcuZGV0YWlsc306IDwvc3Bhbj57JGV2ZW50LmV2ZW50X2RldGFpbHN9PC9kaXY+CiAgey9pZn0KICAqfQogIDxhIGhyZWY9InskZXZlbnQudXJsfSI+eyRtb2QtPkxhbmcoJ2NhbF9tb3JlJyl9PC9hPgogIDwvZGl2Pgp7L2ZvcmVhY2h9CjwvZGl2Pgo=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_myevents_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogbXlldmVudHMgdGVtcGxhdGUgKn0KPGRpdiBpZD0iY2djYWxfbXlldmVudHNfbGlzdCI+CntpZiBpc3NldCgkcmVjb3Jkcyl9Cjx0YWJsZSBjbGFzcz0idGFibGUiPgogIDx0aGVhZD4KICAgPHRyPgogICAgPHRoPnskbW9kLT5MYW5nKCdjYWxfaWQnKX08L3RoPgogICAgPHRoPnskbW9kLT5MYW5nKCdjYWxfdGl0bGUnKX08L3RoPgogICAgPHRoPnskbW9kLT5MYW5nKCdzdGFydF9kYXRlJyl9PC90aD4KICAgIDx0aD57JG1vZC0+TGFuZygnZW5kX2RhdGUnKX08L3RoPgogICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+PC90aD4KICAgIDx0aCBjbGFzcz0icGFnZWljb24iPjwvdGg+CiAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAge2ZvcmVhY2ggZnJvbT0kcmVjb3JkcyBpdGVtPSdldmVudCd9CiAgICA8dHI+CiAgICAgIDx0ZD57JGV2ZW50LmV2ZW50X2lkfTwvdGQ+CiAgICAgIDx0ZD57JGV2ZW50LmV2ZW50X3RpdGxlfHN1bW1hcml6ZTo4MH08L3RkPgogICAgICA8dGQ+eyRldmVudC5ldmVudF9kYXRlX3N0YXJ0fGNtc19kYXRlX2Zvcm1hdH08L3RkPgogICAgICA8dGQ+eyRldmVudC5ldmVudF9kYXRlX2VuZHxjbXNfZGF0ZV9mb3JtYXR9PC90ZD4KICAgICAgPHRkPjxhIGhyZWY9InskZXZlbnQuZWRpdF91cmx9Ij57JG1vZC0+TGFuZygnY2FsX2VkaXQnKX08L3RkPgogICAgICA8dGQ+PGEgaHJlZj0ieyRldmVudC5kZWxldGVfdXJsfSIgb25jbGljaz0icmV0dXJuIGNvbmZpcm0oJ3skbW9kLT5MYW5nKCdjYWxfYXJleW91c3VyZScpfScpOyI+eyRtb2QtPkxhbmcoJ2NhbF9kZWxldGUnKX08L3RkPgogICAgPC90cj4KICB7L2ZvcmVhY2h9CiAgPC90Ym9keT4KPC90YWJsZT4Key9pZn0Ke2lmIGlzc2V0KCRhZGRfZXZlbnRfdXJsKX0KPGEgY2xhc3M9ImxpbmsiIGhyZWY9InskYWRkX2V2ZW50X3VybH0iPkFkZCBOZXcgRXZlbnQ8L2E+Cjxici8+CnsvaWZ9CjwvZGl2Pgo=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_searchresult_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogb3JpZ2luYWwgc2VhcmNoIHJlc3VsdCB0ZW1wbGF0ZSAqfQoKPGgzPnskbW9kLT5MYW5nKCdzZWFyY2hfcmVzdWx0cycpfTwvaDM+CjxwPnskbW9kLT5MYW5nKCdzZWFyY2hfd29yZHMnKX06Jm5ic3A7eyRzZWFyY2hfdGV4dH08L3A+CjxwPnskbW9kLT5MYW5nKCdzdGFydF9kYXRlJyl9OiZuYnNwO3skc2VhcmNoX3N0YXJ0X2RhdGV8Y21zX2RhdGVfZm9ybWF0fTwvcD4KPHA+eyRtb2QtPkxhbmcoJ2VuZF9kYXRlJyl9OiZuYnNwO3skc2VhcmNoX2VuZF9kYXRlfGNtc19kYXRlX2Zvcm1hdH08L3A+CjxwPnskbW9kLT5MYW5nKCdjYXRlZ29yeScpfTombmJzcDt7aWYgJHNlYXJjaF9jYXRlZ29yeSA9PSAnLTEnfXskbW9kLT5MYW5nKCdjYWxfYW55X2NhdGVnb3J5Jyl9e2Vsc2V9eyRtb2QtPkdldENhdGVnb3J5TmFtZSgkc2VhcmNoX2NhdGVnb3J5KX17L2lmfTwvcD4Ke2lmICFpc3NldCgkZXZlbnRzKX0KICB7JG1vZC0+TGFuZygnbm9fcmVzdWx0c19mb3VuZCcpfQp7ZWxzZX0KPGJyLz4KCnsqIHBhZ2luYXRpb24gc3R1ZmYgKn0Ke2lmIGlzc2V0KCRmaXJzdHBhZ2VfdXJsKSB8fCBpc3NldCgkbGFzdHBhZ2VfdXJsKX0KPGRpdiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+CiAge2lmIGlzc2V0KCRmaXJzdHBhZ2VfdXJsKX0KICAgIDxhIGhyZWY9InskZmlyc3RwYWdlX3VybH0iPnskbW9kLT5MYW5nKCdmaXJzdF9wYWdlJyl9PC9hPiZuYnNwOwogICAgPGEgaHJlZj0ieyRwcmV2cGFnZV91cmx9Ij57JG1vZC0+TGFuZygncHJldl9wYWdlJyl9PC9hPiZuYnNwOwogIHsvaWZ9CiAgeyRtb2QtPkxhbmcoJ3BhZ2Vfb2YnLCRwYWdlbnVtLCRudW1wYWdlcyl9CiAge2lmIGlzc2V0KCRsYXN0cGFnZV91cmwpfQogICAgJm5ic3A7PGEgaHJlZj0ieyRuZXh0cGFnZV91cmx9Ij57JG1vZC0+TGFuZygnbmV4dF9wYWdlJyl9PC9hPgogICAgJm5ic3A7PGEgaHJlZj0ieyRsYXN0cGFnZV91cmx9Ij57JG1vZC0+TGFuZygnbGFzdF9wYWdlJyl9PC9hPgogIHsvaWZ9CjwvZGl2Pgp7L2lmfQoKeyogZGlzcGxheSB0aGUgb3V0cHV0ICp9Cntmb3JlYWNoIGZyb209JGV2ZW50cyBrZXk9a2V5IGl0ZW09ZXZlbnR9Cgk8ZGl2IGNsYXNzPSJjYWxlbmRhci1ldmVudCI+Cgk8aDQ+eyRldmVudC5ldmVudF90aXRsZX08L2g0PgoKCXthc3NpZ24gdmFyPW1vbnRoX251bWJlciB2YWx1ZT0kZXZlbnQuZXZlbnRfZGF0ZV9zdGFydHxkYXRlX2Zvcm1hdDoiJW0ifQoJe2Fzc2lnbiB2YXI9ZW5kX21vbnRoX251bWJlciB2YWx1ZT0kZXZlbnQuZXZlbnRfZGF0ZV9lbmR8ZGF0ZV9mb3JtYXQ6IiVtIn0KCXtpZiAkZXZlbnQuZXZlbnRfZGF0ZV9zdGFydCA9PSAkZXZlbnQuZXZlbnRfZGF0ZV9lbmQgfHwgJGV2ZW50LmV2ZW50X2RhdGVfZW5kID09IDB9Cgk8ZGl2IGNsYXNzPSJjYWxlbmRhci1kYXRlLWZyb20iPjxzcGFuIGNsYXNzPSJjYWxlbmRhci1kYXRlLXRpdGxlIj57JGxhbmcuZGF0ZX06IDwvc3Bhbj57JGV2ZW50LmV2ZW50X2RhdGVfc3RhcnR8ZGF0ZV9mb3JtYXQ6IiVlIn0geyRtb250aF9uYW1lc1skbW9udGhfbnVtYmVyXX0geyRldmVudC5ldmVudF9kYXRlX3N0YXJ0fGRhdGVfZm9ybWF0OiIlWSJ9PC9kaXY+Cgl7ZWxzZX0KCXtpZiAkZXZlbnQuZXZlbnRfZGF0ZV9zdGFydHxkYXRlX2Zvcm1hdDoiJWQlbSVZIiA9PSAkZXZlbnQuZXZlbnRfZGF0ZV9lbmR8ZGF0ZV9mb3JtYXQ6IiVkJW0lWSJ9Cgk8ZGl2IGNsYXNzPSJjYWxlbmRhci1kYXRlLWZyb20iPjxzcGFuIGNsYXNzPSJjYWxlbmRhci1kYXRlLXRpdGxlIj57JGxhbmcuZGF0ZX06IDwvc3Bhbj57JGV2ZW50LmV2ZW50X2RhdGVfc3RhcnR8ZGF0ZV9mb3JtYXQ6IiVlIn0geyRtb250aF9uYW1lc1skbW9udGhfbnVtYmVyXX0geyRldmVudC5ldmVudF9kYXRlX3N0YXJ0fGRhdGVfZm9ybWF0OiIlWSAlSDolTSJ9IHskbGFuZy50b30geyRldmVudC5ldmVudF9kYXRlX2VuZHxkYXRlX2Zvcm1hdDoiJUg6JU0ifTwvZGl2PgoJe2Vsc2V9Cgk8ZGl2IGNsYXNzPSJjYWxlbmRhci1kYXRlLWZyb20iPjxzcGFuIGNsYXNzPSJjYWxlbmRhci1kYXRlLXRpdGxlIj57JGxhbmcuZGF0ZX06IDwvc3Bhbj57JGV2ZW50LmV2ZW50X2RhdGVfc3RhcnR8ZGF0ZV9mb3JtYXQ6IiVlIn0geyRtb250aF9uYW1lc1skbW9udGhfbnVtYmVyXX0geyRldmVudC5ldmVudF9kYXRlX3N0YXJ0fGRhdGVfZm9ybWF0OiIlWSAlSDolTSJ9IHskbGFuZy50b30geyRldmVudC5ldmVudF9kYXRlX2VuZHxkYXRlX2Zvcm1hdDoiJWQifSB7JG1vbnRoX25hbWVzWyRlbmRfbW9udGhfbnVtYmVyXX0geyRldmVudC5ldmVudF9kYXRlX2VuZHxkYXRlX2Zvcm1hdDoiJVkgJUg6JU0ifTwvZGl2PgoJey9pZn0KCXsvaWZ9Cgl7aWYgJGV2ZW50LmV2ZW50X3N1bW1hcnkgIT0iIiAmJiAoJGRldGFpbCAhPSAxIHx8ICgkZXZlbnQuZXZlbnRfZGV0YWlscyA9PSIiIHx8ICAkZXZlbnQuZXZlbnRfZGV0YWlscyA9PSAiPGJyIC8+IikpfQoJCTxkaXYgY2xhc3M9ImNhbGVuZGFyLXN1bW1hcnkiPjxzcGFuIGNsYXNzPSJjYWxlbmRhci1zdW1tYXJ5LXRpdGxlIj57JGxhbmcuc3VtbWFyeX06IDwvc3Bhbj57JGV2ZW50LmV2ZW50X3N1bW1hcnl9PC9kaXY+Cgl7L2lmfQoJeyogb3B0aW9uYWxseSBkaXNwbGF5IGRldGFpbCBpbmZvcm1hdGlvbiAKCQl7aWYgJGV2ZW50LmV2ZW50X2RldGFpbHMgIT0iIiAmJiAkZXZlbnQuZXZlbnRfZGV0YWlscyAhPSAiPGJyIC8+In0KCQk8ZGl2IGNsYXNzPSJjYWxlbmRhci1kZXRhaWxzIj48c3BhbiBjbGFzcz0iY2FsZW5kYXItZGV0YWlscy10aXRsZSI+eyRsYW5nLmRldGFpbHN9OiA8L3NwYW4+eyRldmVudC5ldmVudF9kZXRhaWxzfTwvZGl2PgoJCXsvaWZ9CgkqfQoJPGEgaHJlZj0ieyRldmVudC51cmx9Ij57JG1vZC0+TGFuZygnY2FsX21vcmUnKX08L2E+CgoJPC9kaXY+CnsvZm9yZWFjaH0Key9pZn0=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_search_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogc2VhcmNoIGZvcm0gdGVtcGxhdGUgKn0KPGRpdiBpZD0iY2djYWxfc2VhcmNoZm9ybSI+CnskZm9ybXN0YXJ0fQogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogNDAlOyBmbG9hdDogbGVmdDsgdGV4dC1hbGlnbjogcmlnaHQ7Ij4KICAgICAgeyRtb2QtPkxhbmcoJ3RleHQnKX06CiAgICA8L2Rpdj4KICAgIDxkaXYgc3R5bGU9IndpZHRoOiA0MCU7IGZsb2F0OiBsZWZ0OyI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbF9zZWFyY2hfdGV4dCIgdmFsdWU9Inskc2VhcmNoX3RleHR9IiBzaXplPSI1MCIvPgogICAgPC9kaXY+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogNDAlOyBmbG9hdDogbGVmdDsgdGV4dC1hbGlnbjogcmlnaHQ7Ij4KICAgICAgeyRtb2QtPkxhbmcoJ3NlYXJjaF90eXBlJyl9OgogICAgPC9kaXY+CiAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogNDAlOyBmbG9hdDogbGVmdDsiPgogICAgICB7Y2FwdHVyZSBhc3NpZ249J3RtcCd9eyRhY3Rpb25pZH1jYWxfc2VhcmNoX3R5cGV7L2NhcHR1cmV9CiAgICAgIDxzZWxlY3QgbmFtZT0ieyR0bXB9Ij4KICAgICAgICA8b3B0aW9uIHZhbHVlPSJvciIgbGFiZWw9InskbW9kLT5MYW5nKCdzZWFyY2hfYW55Jyl9Ij57JG1vZC0+TGFuZygnc2VhcmNoX2FueScpfTwvb3B0aW9uPgogICAgICAgIDxvcHRpb24gdmFsdWU9ImFuZCIgbGFiZWw9InskbW9kLT5MYW5nKCdzZWFyY2hfYWxsJyl9Ij57JG1vZC0+TGFuZygnc2VhcmNoX2FsbCcpfTwvb3B0aW9uPgogICAgICA8L3NlbGVjdD4KICAgIDwvZGl2PgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgPGRpdiBzdHlsZT0id2lkdGg6IDQwJTsgZmxvYXQ6IGxlZnQ7IHRleHQtYWxpZ246IHJpZ2h0OyI+CiAgICAgIHskbW9kLT5MYW5nKCdzdGFydF9kYXRlJyl9OgogICAgPC9kaXY+CiAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogNDAlOyBmbG9hdDogbGVmdDsiPgogICAgICB7Y2FwdHVyZSBhc3NpZ249J3RtcCd9eyRhY3Rpb25pZH1jYWxfc2VhcmNoX3N0YXJ0X2RhdGVfey9jYXB0dXJlfQogICAgICB7aHRtbF9zZWxlY3RfZGF0ZSBwcmVmaXg9JHRtcCB0aW1lPSRzZWFyY2hfc3RhcnRfZGF0ZSBzdGFydF95ZWFyPS0yIGVuZF95ZWFyPSsyfQogICAgICB7KiB7aHRtbF9zZWxlY3RfdGltZSBwcmVmaXg9JHRtcCB0aW1lPSRzZWFyY2hfc3RhcnRfZGF0ZSBkaXNwbGF5X3NlY29uZHM9MH0gKn0KICAgIDwvZGl2PgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgPGRpdiBzdHlsZT0id2lkdGg6IDQwJTsgZmxvYXQ6IGxlZnQ7IHRleHQtYWxpZ246IHJpZ2h0OyI+CiAgICAgIHskbW9kLT5MYW5nKCdlbmRfZGF0ZScpfToKICAgIDwvZGl2PgogICAgPGRpdiBzdHlsZT0id2lkdGg6IDQwJTsgZmxvYXQ6IGxlZnQ7Ij4KICAgICAge2NhcHR1cmUgYXNzaWduPSd0bXAnfXskYWN0aW9uaWR9Y2FsX3NlYXJjaF9lbmRfZGF0ZV97L2NhcHR1cmV9CiAgICAgIHtodG1sX3NlbGVjdF9kYXRlIHByZWZpeD0kdG1wIHRpbWU9JHNlYXJjaF9lbmRfZGF0ZSBzdGFydF95ZWFyPS0yIGVuZF95ZWFyPSsyfQogICAgICB7KiB7aHRtbF9zZWxlY3RfdGltZSBwcmVmaXg9JHRtcCB0aW1lPSRzZWFyY2hfZW5kX2RhdGUgZGlzcGxheV9zZWNvbmRzPTB9ICp9CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0icm93Ij4KICAgIDxkaXYgc3R5bGU9IndpZHRoOiA0MCU7IGZsb2F0OiBsZWZ0OyB0ZXh0LWFsaWduOiByaWdodDsiPgogICAgICB7JG1vZC0+TGFuZygnY2F0ZWdvcnknKX06CiAgICA8L2Rpdj4KICAgIDxkaXYgc3R5bGU9IndpZHRoOiA0MCU7IGZsb2F0OiBsZWZ0OyI+CiAgICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1jYWxfc2VhcmNoX2NhdGVnb3J5Ij4KICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGxpc3RfY2F0ZWdvcmllcyBzZWxlY3RlZD0kc2VhcmNoX2NhdGVnb3J5fQogICAgICA8L3NlbGVjdD4KICAgIDwvZGl2PgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgPGRpdiBzdHlsZT0id2lkdGg6IDQwJTsgZmxvYXQ6IGxlZnQ7IHRleHQtYWxpZ246IHJpZ2h0OyI+Jm5ic3A7PC9kaXY+CiAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogNDAlOyBmbG9hdDogbGVmdDsiPgogICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbF9zZWFyY2hfc3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3NlYXJjaCcpfSIvPgogICAgPC9kaXY+CiAgPC9kaXY+Cgp7JGZvcm1lbmR9CjwvZGl2Pgo=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_upcominglist_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0iY2FsLXVwY29taW5nbGlzdCI+CntpZiBpc3NldCgkcGFzdGl0ZW1zKSAmJiAkcGFzdGl0ZW1zID09IDF9CjxoMT57JGxhbmcucGFzdF9ldmVudHN9PC9oMT4Ke2Vsc2V9CjxoMT57JGxhbmcudXBjb21pbmdfZXZlbnRzfTwvaDE+CnsvaWZ9Cgp7aWYgaXNzZXQoJG5hdmlnYXRpb24pfQp7aWYgaXNzZXQoJG5hdmlnYXRpb24ucHJldil9PHNwYW4gY2xhc3M9ImNhbGVuZGFyLXByZXYiPjxhIGhyZWY9InskbmF2aWdhdGlvbi5wcmV2fSI+eyRsYW5nLnByZXZ9PC9hPjwvc3Bhbj57L2lmfSAmbmJzcDsgJm5ic3A7e2lmIGlzc2V0KCRuYXZpZ2F0aW9uLm5leHQpfTxzcGFuIGNsYXNzPSJjYWxlbmRhci1uZXh0Ij48YSBocmVmPSJ7JG5hdmlnYXRpb24ubmV4dH0iPnskbGFuZy5uZXh0fTwvYT48L3NwYW4+ey9pZn0Key9pZn0KCgp7Zm9yZWFjaCBmcm9tPSRldmVudHMga2V5PWtleSBpdGVtPWV2ZW50fQoJPGRpdiBjbGFzcz0iY2FsZW5kYXItZXZlbnQiPgoJPGgyPnskZXZlbnQuZXZlbnRfdGl0bGV9PC9oMj4KCgl7aWYgJGV2ZW50LmV2ZW50X2RhdGVfc3RhcnQgPT0gJGV2ZW50LmV2ZW50X2RhdGVfZW5kIHx8ICRldmVudC5ldmVudF9kYXRlX2VuZCA9PSAwfQoJPGRpdiBjbGFzcz0iY2FsZW5kYXItZGF0ZS1mcm9tIj48c3BhbiBjbGFzcz0iY2FsZW5kYXItZGF0ZS10aXRsZSI+eyRsYW5nLmRhdGV9OiA8L3NwYW4+eyRldmVudC5ldmVudF9kYXRlX3N0YXJ0fGRhdGVfZm9ybWF0OiclZSAlQiAlWSd9IDwvZGl2PgoJe2Vsc2V9Cgl7aWYgJGV2ZW50LmV2ZW50X2RhdGVfc3RhcnR8ZGF0ZV9mb3JtYXQ6IiVkJW0lWSIgPT0gJGV2ZW50LmV2ZW50X2RhdGVfZW5kfGRhdGVfZm9ybWF0OiIlZCVtJVkifQoJPGRpdiBjbGFzcz0iY2FsZW5kYXItZGF0ZS1mcm9tIj48c3BhbiBjbGFzcz0iY2FsZW5kYXItZGF0ZS10aXRsZSI+eyRsYW5nLmRhdGV9OiA8L3NwYW4+eyRldmVudC5ldmVudF9kYXRlX3N0YXJ0fGRhdGVfZm9ybWF0OiclZSAlQiAlWSAlSDolTSd9IHskbGFuZy50b30geyRldmVudC5ldmVudF9kYXRlX2VuZHxkYXRlX2Zvcm1hdDoiJUg6JU0ifTwvZGl2PgoJe2Vsc2V9Cgk8ZGl2IGNsYXNzPSJjYWxlbmRhci1kYXRlLWZyb20iPjxzcGFuIGNsYXNzPSJjYWxlbmRhci1kYXRlLXRpdGxlIj57JGxhbmcuZGF0ZX06IDwvc3Bhbj57JGV2ZW50LmV2ZW50X2RhdGVfc3RhcnR8ZGF0ZV9mb3JtYXQ6JyVlICVCICVZICVIOiVNJ30geyRsYW5nLnRvfSB7JGV2ZW50LmV2ZW50X2RhdGVfZW5kfGRhdGVfZm9ybWF0OiIlZSAlQiAlWSAlSDolTSJ9PC9kaXY+Cgl7L2lmfQoJey9pZn0KCXtpZiAkZXZlbnQuZXZlbnRfc3VtbWFyeSAhPSIifQoJCTxkaXYgY2xhc3M9ImNhbGVuZGFyLXN1bW1hcnkiPjxzcGFuIGNsYXNzPSJjYWxlbmRhci1zdW1tYXJ5LXRpdGxlIj57JGxhbmcuc3VtbWFyeX06IDwvc3Bhbj57JGV2ZW50LmV2ZW50X3N1bW1hcnl9PC9kaXY+Cgl7L2lmfQoJeyogb3B0aW9uYWxseSBkaXNwbGF5IGRldGFpbCBpbmZvcm1hdGlvbgoJe2lmICRldmVudC5ldmVudF9kZXRhaWxzICE9IiJ9CgkgICAgICAgIDxkaXYgY2xhc3M9ImNhbGVuZGFyLWRldGFpbHMiPjxzcGFuIGNsYXNzPSJjYWxlbmRhci1kZXRhaWxzLXRpdGxlIj57JGxhbmcuZGV0YWlsc306IDwvc3Bhbj57JGV2ZW50LmV2ZW50X2RldGFpbHN9PC9kaXY+Cgl7L2lmfQogICAgICAgICp9Cgk8YSBocmVmPSJ7JGV2ZW50LnVybH0iPnskbW9kLT5MYW5nKCdjYWxfbW9yZScpfTwvYT4KCgk8L2Rpdj4Key9mb3JlYWNofQo8L2Rpdj4K]]></data>
	</file>
	<file>
	  <filename>/templates/settings.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogICQoJzppbnB1dC5jb2xvclBpY2tlcicpLmNvbG9yUGlja2VyKCk7Cn0pOwo8L3NjcmlwdD4KCnskc3RhcnRmb3JtfQo8ZmllbGRzZXQ+CiAgPGxlZ2VuZD57JG1vZC0+TGFuZygncHJvbXB0X2dlbmVyYWxfc2V0dGluZ3MnKX06PC9sZWdlbmQ+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9mcmllbmRseW5hbWUnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWZyaWVuZGx5bmFtZSIgc2l6ZT0iNDAiIG1heGxlbmd0aD0iMjU1IiB2YWx1ZT0ieyRmcmllbmRseW5hbWV9Ii8+CiAgICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9fZnJpZW5kbHluYW1lJyl9CiAgICA8L3A+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZGVmYXVsdGNhbGVuZGFycGFnZV90ZXh0fTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGRlZmF1bHRjYWxlbmRhcnBhZ2VfaW5wdXR9PC9wPgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnZGZsdF91cmxwcmVmaXgnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgbmFtZT0ieyRhY3Rpb25pZH11cmxfcHJlZml4IiB2YWx1ZT0ieyR1cmxfcHJlZml4fSIgLz4KICAgIDwvcD4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2RmbHRfY29sb3JzJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8bGFiZWw+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJjb2xvclBpY2tlciIgc2l6ZT0iNyIgbmFtZT0ieyRhY3Rpb25pZH1kZmx0X2ZnY29sb3IiIHZhbHVlPSJ7JGRmbHRfZmdjb2xvcn0iIC8+IHskbW9kLT5MYW5nKCdmZ2NvbG9yJyl9PC9sYWJlbD4KICAgICAgPGxhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iY29sb3JQaWNrZXIiIHNpemU9IjciIG5hbWU9InskYWN0aW9uaWR9ZGZsdF9iZ2NvbG9yIiB2YWx1ZT0ieyRkZmx0X2JnY29sb3J9IiAvPiB7JG1vZC0+TGFuZygnYmdjb2xvcicpfTwvbGFiZWw+CiAgICA8L3A+CiAgPC9kaXY+CjwvZmllbGRzZXQ+Cgo8ZmllbGRzZXQ+CiAgPGxlZ2VuZD57JG1vZC0+TGFuZygncHJvbXB0X2VkaXRpbmdfc2V0dGluZ3MnKX06PC9sZWdlbmQ+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyR0d2VsdmVob3VydGV4dH06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyR0d2VsdmVob3VyaW5wdXR9PC9wPgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2ZpcnN0ZGF5b2Z3ZWVrJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Zmlyc3RkYXlvZndlZWsiPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGRheW9wdGlvbnMgc2VsZWN0ZWQ9JGZpcnN0ZGF5b2Z3ZWVrfQogICAgICA8L3NlbGVjdD4KICAgIDwvcD4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9vdmVybGFwX3BvbGljeScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfW92ZXJsYXBfcG9saWN5Ij4KICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRvdmVybGFwX3BvbGljaWVzIHNlbGVjdGVkPSRvdmVybGFwX3BvbGljeX0KICAgICAgPC9zZWxlY3Q+CiAgICA8L3A+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfb3ZlcmxhcF9hY3Rpb24nKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1vdmVybGFwX2FjdGlvbiI+CiAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kb3ZlcmxhcF9hY3Rpb25zIHNlbGVjdGVkPSRvdmVybGFwX2FjdGlvbn0KICAgICAgPC9zZWxlY3Q+CiAgICA8L3A+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZm9yY2VjYXR0ZXh0fTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGZvcmNlY2F0aW5wdXR9PC9wPgogIDwvZGl2PgoKICB7aWYgaXNzZXQoJGRlZmNhdHRleHQpfQogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskZGVmY2F0dGV4dH06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRkZWZjYXRpbnB1dH08L3A+CiAgPC9kaXY+CiAgey9pZn0KCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwYXN0eWVhcnN0ZXh0fTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHBhc3R5ZWFyc2lucHV0fTwvcD4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRmdXR1cmV5ZWFyc3RleHR9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZnV0dXJleWVhcnNpbnB1dH08L3A+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskaGlkZXN1bW1hcnl0ZXh0fTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGhpZGVzdW1tYXJ5aW5wdXR9PC9wPgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGhpZGVjb250ZW50dGV4dH06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRoaWRlY29udGVudGlucHV0fTwvcD4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2RmbHRfYWxsZGF5ZXZlbnQnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9J2RmbHRfYWxsZGF5ZXZlbnQnIHNlbGVjdGVkPSRkZmx0X2FsbGRheWV2ZW50fQogICAgPC9wPgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnZGZsdF9zdGFydHRpbWUnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIHtjYXB0dXJlIGFzc2lnbj0ndG1wJ317JGFjdGlvbmlkfWRmbHRfc3RhcnR0aW1lX3svY2FwdHVyZX0KICAgICAge2h0bWxfc2VsZWN0X3RpbWUgcHJlZml4PSR0bXAgZGlzcGxheV9zZWNvbmRzPWZhbHNlIHRpbWU9JGRmbHRfc3RhcnR0aW1lIG1pbnV0ZV9pbnRlcnZhbD0xNX0KICAgICAgPGJyLz4KICAgICAgeyRtb2QtPkxhbmcoJ2luZm9fZGZsdF9zdGFydHRpbWUnKX0KICAgIDwvcD4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyR1cGxvYWRkaXJlY3RvcnlfdGV4dH06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyR1cGxvYWRkaXJlY3RvcnlfaW5wdXR9PC9wPgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHVwbG9hZGZpbGV0eXBlc190ZXh0fTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHVwbG9hZGZpbGV0eXBlc19pbnB1dH08L3A+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskdXBsb2FkdW5pcXVlX3RleHR9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskdXBsb2FkdW5pcXVlX2lucHV0fTwvcD4KICA8L2Rpdj4KPC9maWVsZHNldD4KCntpZiBpc3NldCgkZ3JvdXBsaXN0KX0KPGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRtb2QtPkxhbmcoJ3Byb21wdF9mZWVkaXRfc2V0dGluZ3MnKX06PC9sZWdlbmQ+CgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5sYW5nKCdwcm9tcHRfZmVlZGl0X2dyb3VwJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9ZnJvbnRlbmRfZ3JvdXAiPgogICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kZ3JvdXBsaXN0IHNlbGVjdGVkPSRmcm9udGVuZF9ncm91cH0KICAgICAgPC9zZWxlY3Q+CiAgICA8L3A+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZmVlZGl0X3BhZ2UnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9ZnJvbnRlbmRfcmVkaXJlY3RwYWdlIiBzaXplPSI1MCIgbWF4bGVuZ3RoPSIyNTUiIHZhbHVlPSJ7JGZyb250ZW5kX3JlZGlyZWN0cGFnZX0iLz4KICAgIDwvcD4KICA8L2Rpdj4KPC9maWVsZHNldD4Key9pZn0KCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fTwvcD4KCTwvZGl2Pgp7JGVuZGZvcm19]]></data>
	</file>
	<file>
	  <filename>/templates/templatelist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4NCgk8dGhlYWQ+DQoJCTx0cj4NCgkJCTx0aD57JHRlbXBsYXRlbmFtZXRleHR9PC90aD4NCgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+DQoJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPg0KCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4NCgkJPC90cj4NCgk8L3RoZWFkPg0KCTx0Ym9keT4NCgl7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQ0KCQk8dHIgY2xhc3M9InskZW50cnktPnJvd2NsYXNzfSIgb25tb3VzZW92ZXI9InRoaXMuY2xhc3NOYW1lPSd7JGVudHJ5LT5yb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9JzsiPg0KCQkJPHRkPnskZW50cnktPm5hbWV9PC90ZD4NCgkJCTx0ZD57JGVudHJ5LT5lZGl0bGlua308L3RkPg0KCQkJPHRkPnskZW50cnktPmRlbGV0ZWxpbmt9PC90ZD4NCgkJPC90cj4NCgl7L2ZvcmVhY2h9DQoJPC90Ym9keT4NCjwvdGFibGU+DQoNCjxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIj4NCgk8cCBjbGFzcz0icGFnZW9wdGlvbnMiPnskYWRkbGlua308L3A+DQo8L2Rpdj4NCg==]]></data>
	</file>
</module>
