<?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>CGBetterForms</name>
	<version>0.8</version>
    <mincmsversion>2.2-beta3</mincmsversion>
	<help><![CDATA[PGRpdiBjbGFzcz0id2FybmluZyI+PHAgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPjxzdHJvbmc+V2FybmluZzo8L3N0cm9uZz4gVGhpcyBpcyBhbiBldmFsdWF0aW9uIHZlcnNpb24gb2YgQ0dCZXR0ZXJGb3Jtcy4gIEl0IGlzIHN1YmplY3QgdG8gY2hhbmdlIGJlZm9yZSBmaW5hbCByZWxlYXNlLiAgRm9yIHRlc3RpbmcgcHVycG9zZXMgb25seS4gIFdlIGRvIG5vdCByZWNvbW1lbmQgdGhhdCB5b3UgdXNlIHRoaXMgdmVyc2lvbiBvZiB0aGUgbW9kdWxlIGluIGEgcHJvZHVjdGlvbiBlbnZpcm9ubWVudC48L3A+PGJyLz48cCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+VXNlIGF0IHlvdXIgb3duIHJpc2s8L3A+PC9kaXY+Cgo8aDM+V2hhdCBpcyB0aGlzPC9oMz4KPHA+VGhpcyBpcyBhIG5ldyBnZW5lcmF0aW9uIG9mIGZvcm0gaGFuZGxpbmcgbW9kdWxlIHRoYXQgcHJvdmlkZXMgdGhlIGFiaWxpdHkgZm9yIHdlYiBwcm9mZXNzaW9uYWxzIHRvIGJ1aWxkIGZvcm1zIHRoZSB3YXkgdGhleSBrbm93IGhvdywgdXNpbmcgSFRNTCwgQ1NTIGFuZCBqYXZhc2NyaXB0Li4gYW5kIHRoZW4gZWFzaWx5IGRlZmluZSB3aGF0IHNob3VsZCBoYXBwZW4gd2l0aCB0aGUgZGF0YSB1c2VycyBzdWJtaXR0ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBjYW4gYWxsb3cgeW91IHRvIGNyZWF0ZSB3ZWxsIHN0eWxlZCwgZHluYW1pYyBmb3JtcywgdXNpbmcgd2hhdGV2ZXIgdG9vbGtpdCB5b3UgbGlrZSAoQm9vdHN0cmFwLCBGb3VuZGF0aW9uLCBldGMpLiAgYW5kIGludGVncmF0ZSBqYXZhc2NyaXB0LiAgVGhlbiBxdWlja2x5IGRlZmluZSBob3cgdGhlIGZvcm0gZGF0YSBzaG91bGQgYmUgcHJvY2Vzc2VkLjwvcD4KCjxoMz5GZWF0dXJlczwvaDM+Cjx1bD4KICA8bGk+WW91IGNyZWF0ZSB0aGUgZm9ybS4gYW5kIGNhbiBnZXQgaXQgbG9va2luZyB0aGUgd2F5IHlvdSB3YW50LjwvbGk+CiAgPGxpPkFsbG93cyBmb3IgamF2YXNjcmlwdCB2YWxpZGF0aW9uLCBhbmQgSFRNTDUgZmllbGQgdHlwZXMuPC9saT4KICA8bGk+Q2FuIHZlcmlmeSBkYXRhIGZyb20gSFRNTDUgYXR0cmlidXRlcyBvbiB0aGUgc2VydmVyIHNpZGUsICBldmVuIGlmIHRoZSBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgdGhlbSBuYXRpdmVseS48L2xpPgogIDxsaT5Qcm92aWRlcyBkYXRhIGF0dHJpYnV0ZXMgdG8gYXNzaXN0IGluIHJlbmRlcmluZyBhbmQgaGFuZGxpbmcgdGhlIGZvcm0uPC9saT4KICA8bGk+SW50ZWdyYXRlcyB3aXRoIHNtYXJ0eTwvbGk+CiAgPGxpPlRha2VzIGFkdmFudGFnZSBvZiBDTVNNUyAyLjIgZmVhdHVyZXMgbGlrZSB0ZW1wbGF0ZSB0eXBlcyBhbmQgaG9va3M8L2xpPgogIDxsaT5UZXN0cyB5b3VyIGNvZGUgdG8gdGVsbCB5b3UgYWJvdXQgcGFyc2luZyBlcnJvcnMgYW5kIHBvdGVudGlhbCByZW5kZXJpbmcsIG9yIHN1Ym1pc3Npb24gcHJvYmxlbXMuPC9saT4KICA8bGk+U3VwcG9ydHMgZmlsZSB1cGxvYWRzPC9saT4KICA8bGk+QWRkcmVzc2VzIHNlY3VyaXR5IGlzc3VlczoKICAgIDx1bD4KICAgICAgPGxpPlN1cHBvcnRzIGNhcHRjaGE8L2xpPgogICAgICA8bGk+SGFzIGJ1aWx0IGluIGhvbmV5cG90IGNhcHRjaGEgc3VwcG9ydDwvbGk+CiAgICAgIDxsaT5FYWNoIHJlcXVlc3QgaXMgYXNzaWduZWQgYSB1bmlxdWUgR1VJRCwgd2hpY2ggaXMgdmFsaWRhdGVkIG9uIHN1Ym1pc3Npb24uPC9saT4KICAgICAgPGxpPkF1dG9tYXRpY2FsbHkgZGlzYWxsb3dzIEhUTUwgdGFncyBpbiBzdWJtaXR0ZWQgcmVzcG9uc2VzLjwvbGk+CiAgICAgIDxsaT5Gb3JtIGF0dHJpYnV0ZXMgYXJlIHBhcnNlZCBhbmQgc3RvcmVkIGluIHRoZSBkYXRhYmFzZSwgYW5kIHZhbGlkYXRlZCBvbiB0aGUgc2VydmVyIHRvIG1pdGlnYXRlIE1hbi1pbi10aGUtTWlkZGxlIGF0dGFja3MuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+SGFzIG11bHRpcGxlIHNlcnZlci1zaWRlIGRhdGEgdmFsaWRhdGlvbiByb3V0aW5lczwvbGk+CiAgPGxpPkNyZWF0ZSB2YWxpZGF0aW9ucyBieSBhdXRvbWF0aWNhbGx5IHBhcnNpbmcgeW91ciBIVE1MIGFuZCB0ZW1wbGF0ZS48L2xpPgogIDxsaT5NdWx0aXBsZSBidWlsdC1pbiBoYW5kbGVycy9kaXNwb3NpdGlvbnMuPC9saT4KICA8bGk+RWFzaWx5IGFkZCBoYW5kbGVycyBhbmQgZGlzcG9zaXRpb25zIHZpYSB0aGUgQVBJLjwvbGk+CiAgPGxpPlN1cHBvcnRzIGhvb2tzIGZvciB2YWxpZGF0aW9uIGFuZCBkaXNwb3NpdGlvbi9oYW5kbGluZy48L2xpPgogIDxsaT5Nb3JlPC9saT4KPC91bD4KCjxoMz5Ib3cgZG8gSSB1c2UgaXQ8L2gzPgo8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgaXMgYSBtb2R1bGUgZm9yIHRoZSBleHBlcmllbmNlZCBDTVNNUyB3ZWIgcHJvZmVzc2lvbmFsLCAgeW91IHNob3VsZCBoYXZlIGdvb2QgZXhwZXJpZW5jZSB3aXRoIENNU01TLCBIVE1MLCBDU1MgYW5kIHBvdGVudGlhbGx5IGphdmFzY3JpcHQuPC9wPgo8b2w+CiAgPGxpPkNyZWF0ZSB5b3VyIGZvcm0gSFRNTCB0ZW1wbGF0ZQogICAgIDx1bD4KICAgICAgIDxsaT5DcmVhdGUgYSBuZXcgdGVtcGxhdGUgb2YgdHlwZSA8Y29kZT5DR0JldHRlckZvcm1zOjpGb3JtPC9jb2RlPiBpbiB0aGUgRGVzaWduIG1hbmFnZXIuICBCZSBjYXJlZnVsIHRvIHJlbWVtYmVyIHRoZSBuYW1lIHlvdSBnaXZlIHRoZSBuZXcgdGVtcGxhdGUuPC9saT4KICAgICAgIDxsaT5Db3B5L3Bhc3RlIG9yIGVudGVyIHlvdXIgSFRNTCBmb3JtIGNvZGUgaW50byB0aGUgdGVtcGxhdGUuICBTYXZlIHdoZW4gcmVhZHkuPC9saT4KICAgICA8L3VsPgogIDwvbGk+CiAgPGxpPkNyZWF0ZSBhIG5ldyBjb250ZW50IHBhZ2UgYW5kIHRlc3QgeW91ciBmb3JtIEhUTUwKICAgICA8cD5BZGQgdGhpcyBjb2RlIHRvIHRoZSBjb250ZW50IGFyZWE6PC9wPgogICAgIDxwcmU+e2luY2x1ZGUgZmlsZT0nY21zX3RlbXBsYXRlOnlvdXJfdGVtcGxhdGVfbmFtZSd9PC9wcmU+CiAgICAgPHA+VGhpcyBpcyBmb3IgdGVzdGluZyBwdXJwb3Nlcywgd2Ugd2lsbCBiZSBjaGFuZ2luZyBpdCBsYXRlciBvbmNlIG91ciBmb3JtIGxvb2tzIGdvb2QuPC9wPgogICAgIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gWW91IHByb2JhYmx5IHdhbnQgdG8gZGlzYWJsZSB0aGUgV1lTSVdZRyBlZGl0b3IgZm9yIHRoaXMgbmV3IGNvbnRlbnQgcGFnZS48L3A+CiAgPC9saT4KICA8bGk+RWRpdCwgc3R5bGUsIGFuZCBjb2RlIHlvdXIgZm9ybSBIVE1MIHRlbXBsYXRlLgogICAgIDxwPlNhdmUgdGhlIGNvbnRlbnQgcGFnZSBhbmQgdmlldyBpdCBpbiB5b3VyIGJyb3dzZXIuIFlvdSBzaG91bGQgdGVzdCBvdXQgeW91ciBIVE1MLCBDU1MsIGFuZCBqYXZhc2NyaXB0LiAgRW5zdXJlIHlvdXIgZm9ybSBpcyByZXNwb25zaXZlLCBhbmQgdGVzdCBmb3IgSFRNTCBhbmQgdmFsaWRhdGlvbiBmdW5jdGlvbmFsaXR5LiAgWW91IGNhbiBldmVuIHN1Ym1pdCB5b3VyIGZvcm0sIHRob3VnaCBhdCB0aGlzIHBvaW50IGl0IHNob3VsZCBub3QgZG8gYW55dGhpbmcgZXhjZXB0IHJlZnJlc2ggdGhlIHBhZ2UuPC9wPgogICAgIDxwPllvdSBtYXkgbmVlZCB0byByZXBlYXRlZGx5IHJlbG9hZCB0aGUgY29udGVudCBwYWdlIGFzIHlvdSBhcmUgZWRpdGluZyB0aGUgSFRNTCwgYW5kIHN0eWxpbmcgeW91ciBmb3JtLjwvcD4KICAgICA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFlvdXIgSFRNTCBmb3JtIHRhZyBzaG91bGQgYmUgYXMgc2ltcGxlIGFzIDxjb2RlPiZsdDtmb3JtJmd0OzwvY29kZT4uICBQYXJ0aWN1bGFybHksIHlvdSBzaG91bGQgbGVhdmUgb3V0IHRoZSB0aGUgbWV0aG9kLCBhbmQgYWN0aW9uIGF0dHJpYnV0ZXMuIExhdGVyLCB3aGVuIHRoZSBDR0JldHRlckZvcm1zIG1vZHVsZSBpcyByZW5kZXJpbmcgeW91ciBmb3JtLCBhbnkgaW1wb3J0YW50IGZvcm0gYXR0cmlidXRlcyBhbmQgaGlkZGVuIHZhcmlhYmxlcyB3aWxsIGJlIGluamVjdGVkLiAgWW91IGNhbiB0aG91Z2ggYWRkIGFueSBpZCwgY2xhc3MgYW5kIHN0eWxlIGF0dHJpYnV0ZXMgdGhhdCB5b3Ugd2lzaC48L3A+CiAgICAgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBJdCBpcyBpbXBvcnRhbnQgdGhhdCB5b3VyIEhUTUwgdmFsaWRhdGUgYXMgbXVjaCBhcyBwb3NzaWJsZS4gIFNvIGl0IGlzIGEgZ29vZCBpZGVhIHRvIGNoZWNrIHlvdXIgb3V0cHV0IHdpdGggYSB2YWxpZGF0b3IuICBBbHNvIGNoZWNrIHRoZSBqYXZhc2NyaXB0IGNvbnNvbGUgZm9yIHdhcm5pbmdzIG9yIGVycm9ycy48L3A+CiAgPC9saT4KICA8bGk+Q3JlYXRlIGEgZm9ybSBpbiBDR0JldHRlckZvcm1zIGFuZCBsaW5rIGl0IHRvIHlvdXIgZm9ybSB0ZW1wbGF0ZS4KICAgICA8b2w+CiAgICAgPGxpPkJyb3dzZSB0byA8Y29kZT5FeHRlbnNpb25zID4+IENHQmV0dGVyRm9ybXM8L2NvZGU+IGluIHRoZSBDTVNNUyBhZG1pbiBwYW5lbCwgYW5kIGNyZWF0ZSBhIG5ldyBmb3JtLjwvbGk+CiAgICAgPGxpPlNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZm9ybSB5b3UgY3JlYXRlZCBhbmQgZWRpdGVkIGFib3ZlLi4uIGFuZCBvcHRpb25hbGx5IHByb3ZpZGUgYSBkZXNjcmlwdGlvbi48L2xpPgogICAgIDxsaT5DbGljayAmcXVvdDtzY2FuJnF1b3Q7ICB0aGlzIHdpbGwgcGFyc2UgeW91ciBITVRMIHRlbXBsYXRlIGFuZCBwcm92aWRlIGZlZWRiYWNrIG9uIHRoZSAmcXVvdDttZXNzYWdlcyZxdW90OyB0YWIgdG8gaW5kaWNhdGUgZXJyb3JzIGFuZCBwb3NzaWJsZSBpbXByb3ZlbWVudHMuPC9saT4KICAgICA8bGk+UmV2aWV3IHRoZSBjb250ZW50IG9mIHRoZSAmcXVvdDtmaWVsZHMmcXVvdDsgdGFiIHRvIGVuc3VyZSB0aGF0IGFsbCBuZWNlc3NhcnkgZmllbGRzIGFyZSBwcmVzZW50LCBhbmQgdGhhdCBldmVyeXRoaW5nIGxvb2tzIGNvcnJlY3QuPC9saT4KICAgICA8bGk+QWRkIG9uZSBvciBtb3JlICZxdW90O2hhbmRsZXJzJnF1b3Q7PC9saT4KICAgICA8bGk+RW50ZXIgaW4gc29tZSB0ZXh0LCBvciBzZWxlY3QgYSBmaW5hbCBhY3Rpb24uPC9saT4KICAgICA8bGk+U2F2ZSB5b3VyIGZvcm0uPC9saT4KICAgICA8L29sPgogIDwvbGk+CiAgPGxpPkNoYW5nZSB0aGUgY2FsbCB0byByZW5kZXIgeW91ciBmb3JtLgogICAgPHA+RWRpdCB0aGUgcGFnZSB5b3UgY3JlYXRlZCBpbiBzdGVwIDIgYWJvdmUsIGFuZCBjaGFuZ2UgdGhlIGNhbGwgdG8gPGNvZGU+e0NHQmV0dGVyRm9ybXMgZm9ybT0neW91cmZvcm1uYW1lJ308L2NvZGU+LiAgVGhlbiBzYXZlIHRoZSBjb250ZW50IHBhZ2UuPC9wPgogIDwvbGk+CiAgPGxpPlRlc3QKICAgIDxwPlJlbGVvYWQgdGhlIGNvbnRlbnQgcGFnZSB3ZSBjcmVhdGVkIGFib3ZlIGluIHlvdXIgYnJvd3NlciwgYW5kIGVuc3VyZSBldmVyeXRoaW5nIGxvb2tzIGNvcnJlY3QuICBBbmQgdGhlbiB0ZXN0IHRoZSBzdWJtaXNzaW9uIG9mIHRoZSBmb3JtLjwvcD4KICAgIDxwPkJlaGF2aW9yIG9mIHRoZSBmb3JtIHdpbGwgYmUgZGVwZW5kYW50IHVwb24gd2hhdCBmb3JtIG9wdGlvbnMgYXJlIHNlbGVjdGVkLCB3aGF0IHZhbGlkYXRpb25zIGFyZSBzZWxlY3RlZCwgYW5kIHRoZSBoYW5kbGVycy48L3A+CiAgPC9saT4KPC9vbD4KCjxoMz5CdWlsdCBpbiBGb3JtIGFuZCBUZW1wbGF0ZSBUZXN0czwvaDM+Cjx1bD4KICA8bGk+VmFsaWRhdGUgdGVtcGxhdGUgY29udGVudHMgPGVtPihUZW1wbGF0ZVZhbGlkYXRvcik8L2VtPgogICAgPHA+VGhpcyB0ZXN0IGNoZWNrcyBmb3IgdmFsaWQgZm9ybSBzdGFydGluZyBhbmQgZW5kaW5nIHRhZ3MsIHdoZXRoZXIgdGhleSBhcmUgcHJvdmlkZWQgdmlhIEhUTUwgdGFncywgb3IgdGhlIENNU01TIHtmb3JtX3N0YXJ0fSBhbmQge2Zvcm1fZW5kfSB0YWdzLiAgSXQgYWxzbyBjaGVja3MgaWYgeW91ciB0ZW1wbGF0ZSBpcyBjYWxsaW5nIHtjZ2JmX2Zvcm1fZXJyb3JzfSB0byByZXRyaWV2ZSB2YWxpZGF0aW9uIGVycm9ycy48L3A+CiAgPC9saT4KICA8bGk+Rm9ybSBWYWxpZGF0aW9uIDxlbT4oRm9ybVRhZ1ZhbGlkYXRvcik8L2VtPgogICAgPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB5b3VyIHRlbXBsYXRlIGNvbnRhaW5zIG9ubHkgb25lIGZvcm0sIGFuZCBjaGVja3MgdG8gZW5zdXJlIHRoYXQgeW91IGhhdmUgbm90IHByb3ZpZGVkIGFueSBmb3JtIGF0dHJpYnV0ZXMgdGhhdCB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGZvcm0gcmVuZGVyaW5nIHByb2Nlc3MuPC9wPgogIDwvbGk+CiAgPGxpPlRlc3QgZm9yIG1pc3NpbmcgaW5wdXQgbmFtZXMgPGVtPihGb3JtTWlzc2luZ05hbWVWYWxpZGF0b3IpPC9lbT4KICAgIDxwPldoZW4gc3VibWl0dGluZyBhIGZvcm0gdG8gYSBzZXJ2ZXIsIHRoZSBuYW1lIG9mIGVhY2ggaW5wdXQsIHRleHRhcmVhLCBhbmQgc2VsZWN0IGZpZWxkIGlzIG1hbmRhdG9yeS4gIFRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgZWFjaCBvZiB0aG9zZSBmaWVsZHMgaGFzIGEgdmFsaWQgbmFtZSBhdHRyaWJ1dGUuPC9wPgogIDwvbGk+CiAgPGxpPlRlc3QgZm9yIG1pc3NpbmcgbGFiZWxzIDxlbT4oRm9ybU1pc3NpbmdMYWJlbFZhbGlkYXRvcik8L2VtPgogICAgPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBlYWNoIGlucHV0IGhhcyBzb21lIHNvcnQgb2YgbGFiZWwgZGV0ZWN0ZWQuICBUaGUgbGFiZWwgaXMgdXNlZCBhdXRvbWF0aWNhbGx5IGJ5IGZvcm0gaGFuZGxlcnMgYXMgdGhlIGh1bWFuLXJlYWRhYmxlIHZhbHVlIGZvciBlYWNoIGZpZWxkIHdoZW4gc2F2bmcgdGhlIGZvcm0uPC9wPgogIDwvbGk+CiAgPGxpPlRlc3QgZm9yIG1pc3NpbmcgdmFsdWVzIDxlbT4oRm9ybU1pc3NpbmdWYWx1ZVZhbGlkYXRvcik8L2VtPgogICAgPHA+U29tZSBpbnB1dHMgKGxpa2UgY2hlY2tib3hlcywgYW5kIHJhZGlvIGJ1dHRvbnMpIHJlcXVpcmUgYSB2YWx1ZSBhdHRyaWJ1dGUsIGFuZCByZXF1aXJlIGl0IHRvIGJlIGZpbGxlZCBpbiBzbyB0aGF0IGRhdGEgY2FuIGJlIHByb3Blcmx5IHRyYW5zbWl0dGVkIHRvIHRoZSBzZXJ2ZXIuICBUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGVhY2ggb2YgeW91ciBmaWVsZHMgaGFzIGEgdmFsdWUsIGFzIHJlcXVpcmVkLjwvcD4KICA8L2xpPgogIDxsaT5EdXBsaWNhdGUgSUQgdGVzdCA8ZW0+KEZvcm1EdXBsaWNhdGVJZFZhbGlkYXRvcik8L2VtPgogICAgPHA+QXMgYSBjb252ZW5pZW5jZSwgdGhvdWdoIGl0IGlzIG5vdCBpbXBvcnRhbnQgZm9yIHRoZSBmb3JtIHN1Ym1pc3Npb24gcHJvY2VzcywgdGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBubyB0d28gaW5wdXQgZmllbGRzIGhhdmUgdGhlIHNhbWUgaWQuPC9wPgogIDwvbGk+CiAgPGxpPkR1cGxpY2F0ZSBuYW1lIHRlc3QgPGVtPihGb3JtRHVwbGljYXRlTmFtZVZhbGlkYXRvcik8L2VtPgogICAgPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB0aGUgbmFtZSBvZiBpbnB1dCBmaWVsZHMgaXMgbm90IGVycm9uZW91c2x5IGR1cGxpY2F0ZWQuICBXZSBjaGVjayBmb3IgZHVwbGljYXRlIG5hbWVzIHdpdGggZGlmZmVyZW50IHR5cGVzIG9mIGZpZWxkcy4gIEl0IGlnbm9yZXMgcmFkaW8gYnV0dG9uIGdyb3VwcywgYW5kIG90aGVyIGZpZWxkcyB3aGVyZSBpdCBpcyB2YWxpZCB0byBkdXBsaWNhdGUgdGhlIGlucHV0IG5hbWUuPC9wPgogIDwvbGk+CjwvdWw+Cgo8aDM+Rm9ybSBTY2FubmluZyBhbmQgU2F2aW5nPC9oMz4KPHA+VGhpcyBtb2R1bGUgc3RvcmVzIG1ldGFkYXRhIGFib3V0IHRoZSBmb3JtIHRlbXBsYXRlIGluIHRoZSBkYXRhYmFzZS4gIFRoaXMgbWV0YWRhdGEgaXMgdXNlZCBmb3IgYnVpbGRpbmcgdmFsaWRhdG9ycyBhbmQgaGFuZGxlcnMsIGFuZCBvbiB0aGUgZnJvbnRlbmQgdG8gYWlkZSBpbiByZW5kZXJpbmcgYW5kIHZhbGlkYXRpb24gYW5kIGhhbmRsaW5nLiAgVGhlcmVmb3JlLCBlYWNoIHRpbWUgdGhlIGZvcm0gdGVtcGxhdGUgaXMgY2hhbmdlZCB0aGUgZm9ybSBtdXN0IGJlIHJlLXNjYW5uZWQuPC9wPgo8cD5UaGUgc2Nhbm5pbmcgcHJvY2VzcyB3aWxsIHBhcnNlIHRoZSBIVE1MIG9mIHRoZSBmb3JtIHRlbXBsYXRlLCBhbmQgYnVpbGQgbWV0YWRhdGEuICBJdCB3aWxsIG91dHB1dCBhIGxpc3Qgb2YgcG90ZW50aWFsIHByb2JsZW1zIHdpdGggeW91ciBmb3JtLiAgaS5lLjogIGludmFsaWQgc3ludGF4LCBtaXNzaW5nIGxhYmVscywgZXRjLiBTb21lIG9mIHRoZXNlIG1lc3NhZ2VzIG1heSBiZSBpbnRlbnRpb25hbCwgb3IgbWF5IGJlIGFuIGVycm9yIGluIHRoZSB0ZW1wbGF0ZS4gIEVhY2ggZGV2ZWxvcGVyIHdpbGwgbmVlZCB0byBkZXRlcm1pbmUgdGhpcyBmb3IgaGltc2VsZi48L3A+Cgo8aDM+UHJlLXJlbmRlciBsb2dpYzwvaDM+CjxwPlRoaXMgc21hcnR5IHRlbXBsYXRlIGFsbG93cyB5b3UgdG8gaW5pdGlhbGl6ZSBpbmZvcm1hdGlvbiBpbiB0aGUgJGZvcm1fZGF0YSBvYmplY3QgZm9yIHVzZSB3aGVuIHRoZSBmb3JtIGlzIGluaXRpYWxseSBkaXNwbGF5ZWQgKGkuZS46IG5vdCB0aGUgcmVzdWx0IG9mIGEgc3VibWlzc2lvbikuICBJdCBpcyB1c2VmdWwgZm9yIHNldHRpbmcgdGhlIGRlZmF1bHQgdmFsdWUgb2YgaW5wdXQgZmllbGRzIGJhc2VkIG9uIHNvbWUgbG9naWMuPC9wPgo8cD5UaGlzIGlzIGFjY29tcGxpc2hlZCBieSB1c2luZyB0aGUgPGNvZGU+e2NnYmZfc2V0fTwvY29kZT4gc21hcnR5IHBsdWdpbi4gIGkuZTogPGNvZGU+e2NnYmZfc2V0IGZpZWxkPXdpZGdldF9jb2xvciB2YWx1ZT13aGl0ZX08L2NvZGU+LjwvcD4KPHA+VGhpcyBzaW1wbGUgZXhhbXBsZSwgd2lsbCBzZXQgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIGEgZmllbGQgbmFtZWQgJnF1b3Q7d2lkZ2V0X2NvbG9yJnF1b3Q7IHRvIHdoaXRlIG9uIHN1bmRheXM6PC9wPgo8cHJlPjxjb2RlPntpZiAkc21hcnR5Lm5vd3xkYXRlX2Zvcm1hdDonJWQnID09IDB9e2NnYmZfc2V0IGZpZWxkPXdpZGdldF9jb2xvciB2YWx1ZT0nd2hpdGUnfXsvaWZ9PC9jb2RlPjwvcHJlPgoKPGgzPlN1Ym1pc3Npb24gVmFsaWRhdGlvbnM8L2gzPgo8cD5TdWJtaXNzaW9uIHZhbGlkYXRpb25zIHRha2UgdGhlIHVzZXIgZW50ZXJlZCByZXNwb25zZSwgYW5kIGVuc3VyZSB0aGF0IGl0IGNvbmZvcm1zIHRvIHRoZSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGVpdGhlciBpbiB0aGUgZm9ybSBpdHNlbGYsIG9yIHZpYSBhZGRpdGlvbmFsIHZhbGlkYXRvcnMgeW91IGFkZGVkLiAgVGhleSBtYXkgYWxzbyBtb2RpZnkgdGhlIHJlc3BvbnNlLiAgVXN1YWxseSB0aG91Z2ggdGhleSBkbyBub3Qgc3RvcmUgdGhlIGRhdGEgb3Igc2VuZCB0aGUgZGF0YSBhbnl3aGVyZS48L3A+CjxwPklmIGFueSB2YWxpZGF0aW9ucyBmYWlsLCB0aGUgZXJyb3IgbWVzc2FnZXMgYXJlIGNvbGxlY3RlZCBhbmQgdGhlIGZvcm0gaXMgcmUtcmVuZGVyZWQsIHdpdGhvdXQgZXhlY3V0aW5nIGFueSBvZiB0aGUgaGFuZGxlcnMuPC9wPgo8cD5CZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIHN1Ym1pc3Npb24gdmFsaWRhdGlvbnMgdGhhdCBhcmUgYnVpbHQgaW4gdG8gQ0dCZXR0ZXJGb3Jtcy48L3A+Cjx1bD4KICA8bGk+Q2hlY2sgZm9yIEhUTUwgaW4gaW5wdXQgc3VibWlzc2lvLm4gIDxlbT4oSHRtbERldGVjdGlvblZhbGlkYXRpb24pPC9lbT4KICAgICA8cD5UaGlzIHZhbGlkYXRpb24gZW5zdXJlcyB0aGF0IGEgdXNlciBoYXMgbm90IGFueSBpbmplY3RlZCBIVE1MIGNvZGUgKGluY2x1ZGluZyBwb3RlbnRpYWxseSBtYWxpY2lvdXMgc2NyaXB0IHRhZ3MpIGludG8gYW55IHN1Ym1pdHRlZCBmaWVsZHMuPC9wPgogICAgIDxwPlRoaXMgdGVzdCBpcyBhZGRlZCBhdXRvbWF0aWNhbGx5IHdoZW4gYXV0by12YWxpZGF0aW9uIGlzIGVuYWJsZWQuPC9wPgogICAgIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyB2YWxpZGF0b3IgZG9lcyBub3Qgb2JleSB0aGUgZGF0YS1jZ2JmLW5vdmFsaWRhdGUgYXR0cmlidXRlLjwvcD4KICA8L2xpPgogIDxsaT5DaGVjayBmb3IgcmVxdWlyZWQgZGF0YSAgPGVtPihIdG1sUmVxdWlyZWRGaWVsZFZhbGlkYXRpb24pPC9lbT4KICAgICA8cD5UaGlzIHZhbGlkYXRpb24gZW5zdXJlcyB0aGF0IHRoZXJlIGlzIHNvbWUgZGF0YSBpbiBldmVyeSBmaWVsZCB0aGF0IGlzIG1hcmtlZCBhcyByZXF1aXJlZC4gRWl0aGVyIHZpYSB0aGUgPGNvZGU+cmVxdWlyZWQ8L2NvZGU+IEhUTUw1IGF0dHJpYnV0ZSBvciB0aGUgPGNvZGU+ZGF0YS1jZ2JmLXJlcXVpcmVkPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgogICAgIDxwPlRoaXMgdGVzdCBpcyBhZGRlZCBhdXRvbWF0aWNhbGx5IHdoZW4gYXV0by12YWxpZGF0aW9uIGlzIGVuYWJsZWQuPC9wPgogIDwvbGk+CiAgPGxpPkNoZWNrIHRoZSB2YWx1ZSBvZiBhbGwgU2VsZWN0IGZpZWxkcywgcmFkaW8tYnV0dG9uIGdyb3VwcywgYW5kIGNoZWNrYm94LWdyb3VwcyAgPGVtPihTZWxlY3RGaWVsZFZhbGlkYXRpb24pPC9lbT4KICAgICA8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGZvciBlYWNoIG9mIHRoZSBtdWx0aS1vcHRpb24gKHNlbGVjdCBmaWVsZHMsIHJhZGlvLWJ1dHRvbi1ncm91cHMgYW5kIGNoZWNrYm94LWdyb3VwcykgZmllbGRzIHRoYXQgb25seSBhIHZhbGlkIHZhbHVlIGlzIHN1Ym1pdHRlZC48L3A+CiAgICAgPHA+VGhpcyB0ZXN0IGlzIGFkZGVkIGF1dG9tYXRpY2FsbHkgd2hlbiBhdXRvLXZhbGlkYXRpb24gaXMgZW5hYmxlZCBhbmQgb25lIG9yIG1vcmUgbXVsdGktb3B0aW9uIGZpZWxkcyBhcmUgZGV0ZWN0ZWQuPC9wPgogIDwvbGk+CiAgPGxpPkNoZWNrIHRoZSB2YWx1ZSBvZiBhbGwgZW1haWwgZmllbGRzLiAgPGVtPihFbWFpbFByaW1pdGl2aWVWYWxpZGF0aW9uKTwvZW0+CiAgICAgPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBmb3IgZWFjaCBlbWFpbCBmaWVsZCAoZGVub3RlZCBieSBlaXRoZXIgPGNvZGU+dHlwZT0iZW1haWwiPC9jb2RlPiBvciA8Y29kZT5kYXRhLWNnYmYtcHJpbWFyeT0iZW1haWwiPC9jb2RlPikgVGhhdCBlYWNoIG9mIHRoZSB2YWx1ZXMgY29udGFpbnMgYSB2YWxpZCBlbWFpbCBhZGRyZXNzLjwvcD4KICAgICA8cD5UaGlzIHRlc3QgaXMgYWRkZWQgYXV0b21hdGljYWxseSB3aGVuIGF1dG8tdmFsaWRhdGlvbiBpcyBlbmFibGVkIGFuZCBvbmUgb3IgbW9yZSBlbWFpbCBmaWVsZHMgYXJlIGRldGVjdGVkLjwvcD4KICA8L2xpPgogIDxsaT5DaGVjayB0aGUgdmFsdWUgb2YgYWxsIGRhdGUgZmllbGRzLiAgPGVtPihEYXRlUHJpbWl0aXZlVmFsaWRhdGlvbik8L2VtPgogICAgIDxwPlRoaXMgdGVzdCB3aWxsIGVuc3VyZSB0aGF0IGZvciBlYWNoIGRhdGUgZmllbGQgKGRlbm90ZWQgYnkgZWl0aGVyIDxjb2RlPnR5cGU9ImRhdGUiPC9jb2RlPiBvciA8Y29kZT5kYXRhLWNnYmYtcHJpbWFyeT0iZGF0ZSI8L2NvZGU+KSBUaGF0IGVhY2ggb2YgdGhlIHZhbHVlcyBpcyBhIHZhbGlkIGRhdGUuICBUaGlzIHRlc3Qgd2lsbCBhbHNvIHZhbGlkYXRlIHRoZSB2YWx1ZXMgZ2l2ZW4gYW55IHJhbmdlIGF0dHJpYnV0ZXMgc3VjaCBhcyBtaW4sbWF4LGRhdGEtY2diZi1taW4sZGF0YS1jZ2JmLW1heC4gIEEgZGF0ZSBzdHJpbmcgbXVzdCBiZSBpbiB0aGUgZm9ybWF0IG9mIHl5eXktbW0tZGQuPC9wPgogICAgIDxwPlRoaXMgdGVzdCBpcyBhZGRlZCBhdXRvbWF0aWNhbGx5IHdoZW4gYXV0by12YWxpZGF0aW9uIGlzIGVuYWJsZWQgYW5kIG9uZSBvciBtb3JlIGRhdGUgZmllbGRzIGFyZSBkZXRlY3RlZC48L3A+CiAgPC9saT4KICA8bGk+RW5zdXJlIHRoYXQgYWxsIHVwbG9hZHMgY29uZm9ybSB0byB0aGUgc3BlY2lmaWNhdGlvbnMuIDxlbT4oRmlsZVZhbGlkYXRvcik8L2VtPgogICAgIDxwPlRPRE88L3A+CiAgICAgPHA+VGhpcyB0ZXN0IGlzIGFkZGVkIGF1dG9tYXRpY2FsbHkgd2hlbiBhdXRvLXZhbGlkYXRpb24gaXMgZW5hYmxlZCwgYW5kIG9uZSBvciBtb3JlIGZpbGUgZmlsZXMgYXJlIGRldGVjdGVkLjwvcD4KICA8L2xpPgogIDxsaT5DaGVjayB0aGUgdmFsdWUgb2Ygc3BlY2lmaWMgaW50ZWdlciBmaWVsZHMuICA8ZW0+KEludGVnZXJGaWVsZFZhbGlkYXRpb24pPC9lbT4KICAgICA8cD5UaGlzIHRlc3Qgd2lsbCBlbnN1cmUgdGhhdCB0aGUgc3BlY2lmaWVkIGZpZWxkIGlzIGFuIGludGVnZXIsIGFuZCB0aGF0IGl0J3MgdmFsdWVzIGNvbmZvcm0gdG8gZGV2ZWxvcGVyIGVudGVyZWQgcmFuZ2UgdmFsdWVzLjwvcD4KICA8L2xpPgogIDxsaT5DaGVjayB0aGUgdmFsdWUgb2Ygc3BlY2lmaWMgZmxvYXQgZmllbGRzLiAgPGVtPihGbG9hdEZpZWxkVmFsaWRhdGlvbik8L2VtPgogICAgIDxwPlRoaXMgdGVzdCB3aWxsIGVuc3VyZSB0aGF0IHRoZSBzcGVjaWZpZWQgZmllbGQgaXMgYSBmbG9hdCwgYW5kIHRoYXQgaXQncyB2YWx1ZXMgY29uZm9ybSB0byBkZXZlbG9wZXIgZW50ZXJlZCByYW5nZSB2YWx1ZXMuPC9wPgogIDwvbGk+CiAgPGxpPkVuc3VyZSB0aGUgdmFsdWUgb2YgYSBzcGVjaWZpYyBmaWVsZCBtYXRjaGVzIGEgcmVndWxhciBleHByZXNzaW9uL3BhdHRlcm4uICA8ZW0+KFJlZ2V4RmllbGRWYWxpZGF0aW9uKTwvZW0+CiAgICAgPHA+VGhpcyB0ZXN0IHdpbGwgZW5zdXJlIHRoYXQgYWxsIG9mIHRoZSB2YWx1ZXMgb2YgdGhlIHNwZWNpZmllZCBmaWVsZCBtYXRjaCB0aGUgcHJvdmlkZWQgcmVndWxhciBleHByZXNzaW9uL3BhdHRlcm4uPC9wPgogICAgIDxwPlRoaXMgdGVzdCBpcyBhZGRlZCBhdXRvbWF0aWNhbGx5IGZvciBlYWNoIGZpZWxkIHdpdGggYSBwYXR0ZXJuLCBvciBkYXRhLWNnYmYtcGF0dGVybiBhdHRyaWJ1dGUgd2hlbiBhdXRvLXZhbGlkYXRpb24gaXMgZW5hYmxlZCBpbiB0aGUgZm9ybS48L3A+CiAgPC9saT4KICA8bGk+RW5zdXJlIHRoZSB2YWx1ZSBvZiBhIHNwZWNpZmljIGZpZWxkIGlzIGFuIGVtYWlsIGFkZHJlc3MuICA8ZW0+KEVtYWlsRmllbGRWYWxpZGF0aW9uKTwvZW0+CiAgICAgPHA+VGhpcyB0ZXN0IHdpbGwgZW5zdXJlIHRoYXQgYWxsIG9mIHRoZSB2YWx1ZXMgb2YgdGhlIHNwZWNpZmllZCBmaWVsZCBhcmUgdmFsaWQgZW1haWwgYWRkcmVzc2VzLjwvcD4KICA8L2xpPgogIDxsaT5WYWxpZGF0ZSB2aWEgU21hcnR5IFRlbXBsYXRlLiAgPGVtPihUZW1wbGF0ZVZhbGlkYXRpb24pPC9lbT4KICAgICA8cD5UaGlzIHZhbGlkYXRvciBhbGxvd3MgeW91IHRvIHVzZSBzbWFydHkgdG8gdmFsaWRhdGUgdGhlIGZvcm0gc3VibWlzc2lvbi4gIFlvdSBjYW4gdXNlIHNtYXJ0eSBsb2dpYywgYW5kL29yIFVEVCdzIG9yIG90aGVyIHBsdWdpbnMgdG8gZXZhbHVhdGUgdGhlIGNvbnRlbnQuICBJZiB0aGUgdGVzdCBmYWlscywgdGhlIHRlbXBsYXRlIHNob3VsZCBvdXRwdXQgYW4gZXJyb3IgbWVzc2FnZS48L3A+CiAgPC9saT4KICA8bGk+Q29tcHV0ZSB0aGUgdmFsdWUgb2YgYSBmaWVsZCwgZ2l2ZW4gYSB0ZW1wbGF0ZS4gIDxlbT4oQ29tcHV0ZWRWYWx1ZSk8L2VtPgogICAgIDxwPlRoaXMgaXMgYSBzcGVjaWFsIGtpbmQgb2YgdmFsaWRhdGlvbiB0ZXN0LiAgSXQgaXMgY2FwYWJsZSBvZiBjb21wdXRpbmcgdGhlIHZhbHVlIG9mIG9uZSBmaWVsZCBnaXZlbiB0aGUgb3RoZXIgZGF0YSBpbiB0aGUgc3VibWl0dGVkIHJlc3BvbnNlLiAgSXQgaXMgdXNlZnVsIGZvciBkb2luZyBjYWxjdWxhdGlvbnMgYW5kIHB1dHRpbmcgdGhlIG91dHB1dCBpbnRvIGEgbmV3IGZpZWxkLCBvciBmb3IgYWRqdXN0aW5nIHRoZSB2YWx1ZSBvZiBvbmUgZmllbGQgYmFzZWQgb24gbGltaXRzIHNwZWNpZmllZCBpbiBvdGhlciBmaWVsZHMuPC9wPgogICAgIDxwPlRoZSBvdXRwdXQgb2YgYSBzbWFydHkgdGVtcGxhdGUgPGVtPihhIHN0cmluZyk8L2VtPiByZXBsYWNlcyB0aGUgdmFsdWUgb2YgYSBzcGVjaWZpZWQgZmllbGQuPC9wPgogIDwvbGk+CiAgPGxpPlVzZSBhIGhvb2sgdG8gdmFsaWRhdGUgdGhlIHJlc3BvbnNlLiAgPGVtPihIb29rVmFsaWRhdGlvbik8L2VtPgogICAgIDxwPlRoaXMgdmFsaWRhdGlvbiBjYWxscyBhIGhvb2sgZW50aXRsZWQgPGNvZGU+Q0dCZXR0ZXJGb3Jtczo6dmFsaWRhdGVGb3JtPC9jb2RlPiBhbmQgcGFzc2VzIHRoZSBlbnRpcmUgZm9ybSByZXNwb25zZS4gIFRoZSBob29rIGhhbmRsZXJzIGNhbiBjaG9vc2UgdG8gbW9kaWZ5IHRoZSByZXNwb25zZSwgb3IgdG8gcGVyZm9ybSB2YXJpb3VzIG90aGVyIHRlc3RzLiAgSWYgYSB0ZXN0IGZhaWxzLCB0aGVuIGl0IGlzIGV4cGVjdGVkIHRvIHRocm93IGEgc3BlY2lhbCBleGNlcHRpb24uPC9wPgogIDwvbGk+CjwvdWw+Cgo8aDM+QnVpbHQgaW4gSGFuZGxlcnMvRGlzcG9zaXRpb25zPC9oMz4KPHA+Rm9ybSBoYW5kbGVycyBhcmUgZXhlY3V0ZWQgYWZ0ZXIgYWxsIHN1Ym1pc3Npb24gdmFsaWRhdGlvbnMgaGF2ZSBwYXNzZWQsIGFuZCBhcmUgdXNlZCB0byAmcXVvdDtkbyB0aGluZ3MmcXVvdDsgd2l0aCB0aGUgZGF0YS4gIFRoZXkgZG8gbm90IHR5cGljYWxseSBtb2RpZnkgdGhlIG91dHB1dCBkYXRhLjwvcD4KPHA+SWYgYW4gZXJyb3Igb2NjdXJzIGluIGEgZGlzcG9zaXRpb24sIHR5cGljYWxseSB0aGUgZXJyb3IgaXMgbG9nZ2VkIGluIHNvbWUgZm9ybWF0ICh0aGlzIGlzIHRoZSB0YXNrIG9mIHRoZSBzcGVjaWZpYyBoYW5kbGVyKSwgYW5kIHByb2Nlc3NpbmcgY29udGludWVzLjwvcD4KPHA+QmVsb3cgaXMgYSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgYnVpbHQtaW4gZGlzcG9zaXRpb25zLjwvcD4KPHVsPgogIDxsaT5TYXZlIHRoZSByZXN1bHRzIHRvIGEgZmlsZSBiYXNlZCBvbiB0aGUgdmFsdWUgb2YgYSBtdWx0aS1vcHRpb24gZmllbGQuPC9saT4KICA8bGk+U2F2ZSB0aGUgcmVzdWx0cyB0byBhIHVuaXF1ZSBmaWxlLjwvbGk+CiAgPGxpPlNhdmUgdGhlIHJlc3VsdHMgdG8gYSBmbGF0IGZpbGUgPGVtPih1c3VhbGx5IENTVik8L2VtPjwvbGk+CiAgPGxpPlNlbmQgdGhlIHJlc3VsdHMgdmlhIGVtYWlsIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiBhIG11bHRpLW9wdGlvbiBmaWVsZC48L2xpPgogIDxsaT5TZW5kIHRoZSByZXN1bHRzIHZpYSBlbWFpbCB0byBzcGVjaWZpZWQgZW1haWwgYWRkcmVzc2VzLjwvbGk+CiAgPGxpPlNlbmQgdGhlIHJlc3VsdHMgdmlhIGVtYWlsIHRvIGEgdXNlciBzcGVjaWZpZWQgZW1haWwgYWRkcmVzcy48L2xpPgogIDxsaT5QT1NUIGZvcm0gcmVzdWx0cyB0byBhIFVSTC9XZWJIb29rLjwvbGk+CiAgPGxpPlJlZGlyZWN0IHRvIGEgVVJMIGJhc2VkIG9uIHRoZSBvdXRwdXQgb2YgYSB0ZW1wbGF0ZS48L2xpPgogIDxsaT5SZWRpcmVjdCB0byBhIHBhZ2UgYmFzZWQgb24gdGhlIG91dHB1dCBvZiBhIHRlbXBsYXRlLjwvbGk+CiAgPGxpPlVzZSBhIGhvb2sgdG8gaGFuZGxlL2Rpc3Bvc2Ugb2YgdGhlIHJlc3BvbnNlLjwvbGk+CiAgPGxpPlN0b3JlIGZvcm0gcmVzdWx0cyB0byB0aGUgc2Vzc2lvbiBmb3IgbGF0ZXIgcHJvY2Vzc2luZy48L2xpPgogIDxsaT5TdG9wIFByb2Nlc3NpbmcgRGlzcG9zaXRpb25zIGJhc2VkIG9uIGEgQ29uZGl0aW9uPC9saT4KPC91bD4KCjxoMz5Db21tb24gRXJyb3JzIGFuZCBQcm9ibGVtcy48L2gzPgo8dWw+CiAgPGxpPkNvdWxkIG5vdCByZXRyaWV2ZSBmb3JtIG9iamVjdAogICAgIDxwPkNHQmV0dGVyRm9ybXMgdXNlcyB0aGUgc2Vzc2lvbiB3aGVuIGVkaXRpbmcgYSBmb3JtLiAgVGhpcyBtZXNzYWdlIGluZGljYXRlcyB0aGF0IHRoZSBzZXNzaW9uIGhhcyB0aW1lZCBvdXQsIGFuZCBhbnl0aGluZyB1bi1zYXZlZCBpbiB5b3VyIGZvcm0gaGFzIGJlZW4gbG9zdC4gICBQbGVhc2UgZW5zdXJlIHRoYXQgeW91IHNhdmUgeW91ciBmb3JtIG9mdGVuLjxwPgogIDwvbGk+CiAgPGxpPk1vZGlmaWNhdGlvbiBvZiBmaWVsZCB2YXJpYWJsZXMgaW4gc21hcnR5CiAgICAgPHA+RWFjaCB0ZW1wbGF0ZSB1c2VkIGJ5IGVhY2ggdmFsaWRhdGlvbiBvciBoYW5kbGVyIGluIHRoZSBDR0JldHRlckZvcm1zIG1vZHVsZSB1c2VzIGl0cyBvd24gc2NvcGUgdG8gcHJldmVudCB2YXJpYWJsZSBuYW1lIGNvbmZsaWN0cy4gIEZvciB0aGlzIHJlYXNvbiB5b3UgY2Fubm90IG1vZGlmeSB0aGUgdmFsdWVzIG9mIHRoZSByZXNwb25zZSBieSBlZGl0aW5nIHRoZSBzbWFydHkgdmFyaWFibGVzLjwvcD4KICA8L2xpPgogIDxsaT5Db25kaXRpb25hbCBmaWVsZHMgKHZpYSBzbWFydHkpCiAgICA8cD5DR0Zvcm1CdWlsZGVyJ3Mgc2NhbiBmdW5jdGlvbmFsaXR5IGlzIGFuIGFkbWluIHNpZGUgYWN0aW9uIHRoYXQgdGFrZXMgeW91ciBmb3JtIHRlbXBsYXRlIGFuZCBwYXJzZXMgaXQgYWdhaW5zdCBzbWFydHkuICAgVGhlIHNtYXJ0eSBlbnZpcm9ubWVudCBpbiB0aGUgYWRtaW4gaW50ZXJmYWNlIGlzIGRpZmZlcmVudCB0aGFuIHRoYXQgaW4gdGhlIGZyb250ZW5kLCBvciBldmVuIG9uIGRpZmZlcmVudCBDTVNNUyBjb250ZW50IHBhZ2VzLiAgVGhlcmVmb3JlLCBzbWFydHkgY29uZGl0aW9uYWxzIGluIHlvdXIgcGFnZSB0ZW1wbGF0ZSBtYXkgcHJldmVudCBzb21lIGZpZWxkcyBmcm9tIGJlaW5nIHNjYW5uZWQuPC9wPgogIDwvbGk+CiAgPGxpPlRyeSB0byBhdm9pZCB0aGUgdXNlIG9mIHNtYXJ0eSBjb25kaXRpb25hbHMgdG8gZGlzcGxheSBmb3JtcyBpbiB5b3VyIHRlbXBsYXRlLCB1c2UgamF2YXNjcmlwdCB3aGVyZSBwb3NzaWJsZS4gIEhvd2V2ZXIsIGlmIHRoZXJlIGFyZSBzbWFydHkgY29uZGl0aW9uYWxzIHRoYXQgY29udHJvbCB0aGUgZGlzcGxheSBvZiBjZXJ0YWluIGZpZWxkcywgdGhlbiBpdCBpcyBzdHJvbmdseSBhZHZpc2VkIHRoYXQgeW91IGNyZWF0ZSBhIGhpZGRlbiBmaWVsZCBhcyBhIHBsYWNlIGhvbGRlciBmb3IgdGhhdCBmaWVsZCBwcmlvciB0byB0aGUgY29uZGl0aW9uYWwuICBUaGlzIHdpbGwgdXN1YWxseSBlbnN1cmUgdGhhdCB0aGUgZmllbGQgbmFtZSBpcyBzY2FubmVkLjwvbGk+CjwvdWw+Cgo8aDM+Q29udHJvbGxpbmcgZm9ybSBiZWhhdmlvciB3aXRoIGF0dHJpYnV0ZXM8L2gzPgo8dWw+CiAgPGxpPlVzaW5nIHJlZ3VsYXIgSFRNTDUgYXR0cmlidXRlcwogICAgPHA+Q0dCZXR0ZXJGb3JtcyB3aWxsIHBhcnNlIGFuZCByZW1lbWJlciB0aGUgdmFsdWUgb2YgdmFyaW91cyBIVE1MIGlucHV0IGF0dHJpYnV0ZXMuICBpLmU6IHJlcXVpcmVkLCBtaW4sIG1heCBhbmQgcGF0dGVybi4gIFRoZXNlIHdpbGwgYmUgdXNlZCB0byBhbHNvIHBlcmZvcm0gc2VydmVyLXNpZGUgdmFsaWRhdGlvbiBvbiB0aGUgc3VibWl0dGVkIGRhdGEuPC9wPgogICAgPHA+VXNpbmcgdGhlc2UgYXR0cmlidXRlcyB0byB2YWxpZGF0ZSBkYXRhIG9uIHRoZSBzZXJ2ZXIgc2lkZSBpcyBhIGdvb2Qgd2F5IG9mIG1pdGlnYXRpbmcgbWFuLWluLXRoZS1taWRkbGUgYXR0YWNrcywgb3IgZG9pbmcgZGF0YSB2YWxpZGF0aW9uIHdoZW4gdGhlIHNpdGUgdmlzaXRvciBpcyB1c2luZyBhIGJyb3dzZXIgdGhhdCBkb2VzIG5vdCBlbmZvcmNlIHRoZW0uPC9wPgogIDwvbGk+CiAgPGxpPkRhdGEgYXR0cmlidXRlcyBmb3IgcmVuZGVyaW5nCiAgICA8cD5UaGUgZm9sbG93aW5nIGRhdGEgYXR0cmlidXRlcyBhcmUgaGludHMgdG8gdGhlIHJlbmRlcmVyIHRvIG1ha2UgaXQgZWFzeSBmb3IgdGhlIGRldmVsb3BlciB0byBpbnRlZ3JhdGUgc21hcnR5IGludG8gYSBmb3JtLCB0byBpbmNsdWRlIGNhcHRjaGEsIGFuZCBvdGhlciB0aGluZ3MuPC9wPgogICAgPHVsPgogICAgICA8bGk+PGNvZGU+ZGF0YS1jZ2JmLWNhcHRjaGE8L2NvZGU+IC0gVGhpcyBhdHRyaWJ1dGUgaW5kaWNhdGVzIHdoZXJlIHRoZSBjYXB0Y2hhIGRpc3BsYXkgd2lsbCBhcHBlYXIuCiAgICAgICAgIDxwPklmIHNwZWNpZmllZCwgYW5kIGlmIENhcHRjaGEgaXMgaW5zdGFsbGVkIGFuZCBlbmFibGVkLCB1cG9uIHJlbmRlcmluZyB0aGUgZm9ybSwgdGhlIGNhcHRjaGEgZGlzcGxheSB3aWxsIGJlIGFwcGVuZGVkIHRvIGNvbnRlbnRzIG9mIHRoZSBtYXRjaGluZyBlbGVtZW50LjwvcD4KCSA8cD5JZiB0aGUgY2FwdGNoYSBkaXNwbGF5IHJlcXVpcmVzIGFuIGlucHV0IGZpZWxkLCAgYW5kIG5vIGVsZW1lbnQgd2l0aCB0aGUgZGF0YS1jZ2JmLWNhcHRjaGEtaW5wdXQgYXR0cmlidXRlIGV4aXN0cywgdGhlbiB0aGUgY2FwdGNoYSBpbnB1dCBmaWVsZCB3aWxsIGFsc28gYmUgYXBwZW5kZWQgdG8gdGhlIGNvbnRlbnRzIG9mIHRoaXMgZWxlbWVudC48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT48Y29kZT5kYXRhLWNnYmYtY2FwdGNoYS1pbnB1dDwvY29kZT4gLSBUaGlzIGF0dHJpYnV0ZSBpbmRpY2F0ZXMgd2hlcmUsIGlmIG5lY2Vzc2FyeSBhbnkgaW5wdXQgZmllbGQgbmVlZGVkIGJ5IHRoZSBjYXB0Y2hhIGRpc3BsYXkgd2lsbCBiZSBpbnNlcnRlZC4KICAgICAgICAgPHA+U29tZSBjYXB0Y2hhIG1ldGhvZHMgcmVxdWlyZSB0aGUgdXNlciB0byBlbnRlciBzb21lIHRleHQuICBVc2luZyB0aGlzIGF0dHRpYnV0ZSBhbGxvd3MgdGhlIGZvcm0gY3JlYXRvciB0byBkZWZpbmUgd2hlcmUgYW5kIGhvdyB0aGUgaW5wdXQgZmllbGQgd2lsbCBiZSBkaXNwbGF5ZWQuPC9wPgogICAgICA8L2xpPgogICAgICA8bGk+PGNvZGU+ZGF0YS1jZ2JmLXNlbGVjdGVkPC9jb2RlPiAtIFRoaXMgYXR0cmlidXRlIGlzIHVzZWZ1bCBvbiA8Y29kZT4mbHQ7c2VsZWN0Jmd0OzwvY29kZT4gZWxlbWVudHMgYW5kIHJhZGlvLWJ1dHRvbiBncm91cHMgdG8gaW5kaWNhdGUgdGhlIHZhbHVlIG9mIHRoZSBzZWxlY3RlZCBvcHRpb24uIGkuZS46PGJyLz4KPHByZT4mbHQ7c2VsZWN0IG5hbWU9Im15c2VsZWN0IiBkYXRhLWNnYmYtc2VsZWN0ZWQ9JnF1b3Q7eyRmb3JtX2RhdGEtJmd0O215c2VsZWN0fGRlZmF1bHQ6JzxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+b3B0Mjwvc3Bhbj4nfSZxdW90OyZndDsKICAgICZsdDtvcHRpb24gdmFsdWU9Im9wdDEiJmd0O09wdGlvbiAxJmx0Oy9vcHRpb24mZ3Q7CiAgICAmbHQ7b3B0aW9uIHZhbHVlPSI8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPm9wdDI8L3NwYW4+IiZndDtPcHRpb24gMiZsdDsvb3B0aW9uJmd0OwogICAgJmx0O29wdGlvbiB2YWx1ZT0ib3B0MyImZ3Q7T3B0aW9uIDMmbHQ7L29wdGlvbiZndDsKJmx0Oy9zZWxlY3QmZ3Q7PC9wcmU+CiAgICAgIDwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPkRhdGEgYXR0cmlidXRlcyB0byBhaWRlIHNlcnZlciBzaWRlIHZhbGlkYXRpb24KICAgIDx1bD4KICAgICAgPGxpPmRhdGEtY2diZi1ub3ZhbGlkYXRlCiAgICAgICAgIDxwPlRoaXMgYXR0cmlidXRlLCBvbiBhbnkgaW5wdXQsIHNlbGVjdCwgb3IgdGV4dGFyZWEgZmllbGRzIGluZGljYXRlcyB0byBkaXNhYmxlIGFsbCBzZXJ2ZXItc2lkZSB2YWxpZGF0aW9uIGZvciB0aGF0IGZpZWxkLiAgU29tZSB2YWxpZGF0b3JzIG1heSBub3Qgb2JleSBpdC48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5kYXRhLWNnYmYtYWNjZXB0CiAgICAgICAgIDxwPkFwcGxpY2FibGUgb25seSB0byBmaWxlIGZpZWxkcywgdGhpcyBhdHRyaWJ1dGUgY2FuIGNvbnRhaW4gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiB3aWxkY2FyZCBtaW1lIHR5cGVzIHRvIGluZGljYXRlIHRoZSB0eXBlIG9mIGZpbGVzIHRoYXQgYXJlIGFjY2VwdGVkLiBpLmUuOiA8Y29kZT5kYXRhLWNnYmYtYWNjZXB0PSJpbWFnZS8qLGFwcGxpY2F0aW9uLypwZGYiPC9jb2RlPi48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5kYXRhLWNnYmYtbWF4c2l6ZQogICAgICAgICA8cD5BcHBsaWNhYmxlIG9ubHkgdG8gZmlsZSBmaWVsZHMsIHRoaXMgYXR0cmlidXRlIGNhbiBzcGVjaWZ5IGEgbWF4aW11bSBzaXplIDxlbT4oaW4gYnl0ZXMpPC9lbT4gZm9yIGFueSBzaW5nbGUgZmlsZSB1cGxvYWRlZCB0byB0aGF0IGZpZWxkLjwvcD4KICAgICAgPC9saT4KICAgICAgPGxpPmRhdGEtY2diZi1leHRlbnNpb24KICAgICAgICAgPHA+QXBwbGljYWJsZSBvbmx5IHRvIGZpbGUgZmllbGRzLCB0aGlzIGF0dHJpYnV0ZSBjYW4gY29udGFpbiBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHZhbGlkIGZpbGUgZXh0ZW5zaW9ucyB0byBpbmRpY2F0ZSB0aGUgdHlwZSBvZiBmaWxlcyB0aGF0IGFyZSBhY2NlcHRlZC48L3A+CgkgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBXZSBkbyBub3QgcmVjb21tZW5kIHVzaW5nIHRoaXMgYXMgc29tZSBvcGVyYXRpbmcgc3lzdGVtcywgb3IgdXNlcnMgZG8gbm90IG1haW50YWluIGEgcmVsaWdvdXMgcG9saWN5IG9uIGZpbGUgZXh0ZW5zaW9ucy48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5kYXRhLWNnYmYtcHJpbWl0aXZlCiAgICAgICAgIDxwPkFwcGxpY2FibGUgdG8gYWxsIGJ1dCBmaWxlIGZpZWxkcywgdGhpcyBhdHRyaWJ1dGUgaW5kaWNhdGVzIHRoZSB0eXBlIG9mIGRhdGEgdGhhdCBzaG91bGQgYXBwZWFyIGluIHRoZSB2YWx1ZShzKSBmb3IgdGhhdCBmaWVsZC4gIFBvc3NpYmxlIHZhbHVlcyBmb3IgdGhpcyBhdHRyaWJ1dGUgYXJlOiBpbnQsIGZsb2F0LCBkYXRlLCBlbWFpbCwgYW5kIHN0cmluZy4gICBJZiBub25lIHNwZWNpZmlmZWQsIHRoZW4gdGhlIGRhdGEgcHJpbWl0aXZlIHdpbGwgYmUgaW50ZXJwcmV0ZWQgZnJvbSB0aGUgZmllbGQgdHlwZSwgb3Igc3RyaW5nIHdpbGwgYmUgYXNzdW1lZC48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5kYXRhLWNnYmYtcmVxdWlyZWQKICAgICAgICAgPHA+QXBwbGljYWJsZSB0byBhbGwgZmllbGRzLCB0aGlzIGF0dHJpYnV0ZSBpbmRpY2F0ZXMgdGhhdCBhdCBsZWFzdCBvbmUgdmFsdWUgbXVzdCBiZSBzcGVjaWZpZWQgZm9yIHRoZSBmaWVsZC48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5kYXRhLWNnYmYtcGF0dGVybgogICAgICAgICA8cD5BcHBsaWNhYmxlIHRvIGFsbCBidXQgZmlsZSBmaWVsZHMsIHRoaXMgYXR0cmlidXRlIGluZGljYXRlcyB0aGF0IGFsbCB2YWx1ZXMgb2YgdGhlIGZpZWxkIG11c3QgY29uZmlybSB0byB0aGUgc3BlY2lmaWVkIHJlZ3VsYXIgZXhwcmVzc2lvbi48L3A+CgkgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBQSFAgcmVxdWlyZXMgYSBzdGFydCBhbmQgZW5kIGRlbGltaXRlciB0byBhIHJlZ3VsYXIgZXhwcmVzc2lvbi4gaS5lOiA8Y29kZT58WzAtOV0qfDwvY29kZT4gd2hlcmVhcyBIVE1MIGRvZXMgbm90LiAgQ0dCZXR0ZXJGb3JtcyB3aWxsIHByb3ZpZGUgdGhlbS48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5kYXRhLWNnYmYtbWluICh0b2RvKQogICAgICAgICA8cD5BcHBsaWNhYmxlIHRvIGludGVnZXIgYW5kIGZsb2F0IGZpZWxkcywgdGhpcyBhdHRyaWJ1dGUgaW5kaWNhdGVzIGEgbWluaW11bSB2YWx1ZSBmb3IgYWxsIHZhbHVlcyBvZiB0aGUgZmllbGQuPC9wPgogICAgICA8L2xpPgogICAgICA8bGk+ZGF0YS1jZ2JmLW1heCAodG9kbykKICAgICAgICAgPHA+QXBwbGljYWJsZSB0byBpbnRlZ2VyIGFuZCBmbG9hdCBmaWVsZHMsIHRoaXMgYXR0cmlidXRlIGluZGljYXRlcyBhIG1heGltdW0gdmFsdWUgZm9yIGFsbCB2YWx1ZXMgb2YgdGhlIGZpZWxkLjwvcD4KICAgICAgPC9saT4KICAgICAgPGxpPmRhdGEtY2diZi1jYXB0Y2hhCiAgICAgICAgIDxwPlRoaXMgYXR0cmlidXRlIHNlcnZlcyB0d28gcHVycG9zZXMuICBPbiByZW5kZXIgaXQgd2lsbCBhcHBlbmQgdGhlIGNvbnRlbnRzIG9mIGEgPGNvZGU+Jmx0O2RpdiZndDs8L2NvZGU+IHRhZyB3aXRoIHRoaXMgYXR0cmlidXRlIHdpdGggc29tZSBjYXB0Y2hhIGlucHV0LiAgT24gdmFsaWRhdGlvbiB0aGUgY2FwdGNoYSB3aWxsIGJlIHRlc3RlZC48L3A+CiAgICAgIDwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPkRhdGEgYXR0cmlidXRlcyB1c2VmdWwgZm9yIHNjYW5uaW5nIGFuZCBkaXNwb3NpdGlvbgogICAgPHVsPgogICAgICA8bGk+ZGF0YS1jZ2JmLWxhYmVsCiAgICAgICAgIDxwPlRoaXMgYXR0cmlidXRlIGlzIHVzZWZ1bCBvbiByYWRpby1idXR0b24gYW5kIGNoZWNrYm94IGdyb3VwcyB3aGVuIHRoZSBmb3JtIGlzIHNjYW5uZWQgYW5kIHBhcnNlZC4gIEJlY2F1c2UgaW5kaXZpZHVhbCByYWRpby1idXR0b24gb3IgY2hlY2tib3ggZmllbGRzIG1heSBoYXZlIHNlcGFyYXRlIGxhYmVscywgdGhpcyBhdHRyaWJ1dGUgYWxsb3dzIGV4cGxpY2l0bHkgc3BlY2lmeWluZyBhIGxhYmVsIHRvIGJlIHVzZWQgZm9yIHRoZSBmaWVsZCBhcyBhIHdob2xlIGluIHRoZSBkaXNwb3NpdGlvbiBwcm9jZXNzLjwvcD4KICAgICAgPC9saT4KICAgICAgPGxpPmRhdGEtY2diZi1odW1hbgogICAgICAgICA8cD5UaGlzIGF0dHJpYnV0ZSBpcyB1c2VmdWwgb24gdGhlIGluZGl2aWR1YWwgb3B0aW9ucyBvZiBzZWxlY3QgZmllbGRzLCByYWRpby1idXR0b24gZ3JvdXBzLCBvciBjaGVja2JveC1ncm91cHMgdG8gc3BlY2lmeSBhIGh1bWFuIHJlYWRhYmxlIHZhbHVlIGZvciBlYWNoIG9wdGlvbiB0byB1c2UgaW4gdGhlIGRpc3Bvc2l0aW9uIHByb2Nlc3MuICBJZiBub3Qgc3BlY2lmaWVkLCB0aGVuIHRoZSB0ZXh0IHBvcnRpb24gb2YgZWFjaCAmbHQ7b3B0aW9uJmd0OyBlbGVtZW50LCBvciB0aGUgbGFiZWwgb2YgZWFjaCByYWRpby1idXR0b24gb3IgY2hlY2tib3ggd2lsbCBiZSB1c2VkLjwvcD4KICAgICAgPC9saT4KICAgIDwvdWw+CiAgPC9saT4KPC91bD4KCjxoMz5TbWFydHkgcGx1Z2lucyBhbmQgdmFyaWFibGVzIGZvciBmb3JtIHJlbmRlcmluZzwvaDM+Cgo8aDM+VGlwcyBhbmQgVGVjaG5pcXVlczwvaDM+Cjx1bD4KICA8bGk+TGltaXQgdGhlIG51bWJlciBvZiBmaWVsZHMuCiAgICAgPHA+Rm9yIGEgYmV0dGVyIHVzZXIgaW50ZXJmYWNlIGl0IGlzIGltcG9ydGFudCB0byBsaW1pdCB0aGUgbnVtYmVyIG9mIGZpZWxkcyBpbiBhIGZvcm0uICBJZiB5b3VyIGZpZWxkIGhhcyBtb3JlIHRoYW4gYWJvdXQgYSBkb3plbiBmaWVsZHMgdGhhdCB0aGUgdXNlciBjYW4gZWRpdCBvciBhZGp1c3QgdGhlbiB0eXBpY2FsbHkgdXNlcnMgd2lsbCBub3QgcmVzcG9uZCB0byB0aGVtLCBvciBpZiB0aGV5IGRvIHRoZSBxdWFsaXR5IG9mIHRoZSBpbmZvcm1hdGlvbiBzdWJtaXR0ZWQgaXMgcmVkdWNlZC4gIGZvciB0aG9zZSBwdXJwb3NlcyBpdCBpcyBvZnRlbiBiZXN0IHRvIGtlZXAgdGhlIGZvcm1zIHNtYWxsLCBzaW1wbGUsIGFuZCBlYXN5IHRvIHVzZS48L3A+CiAgPC9saT4KICA8bGk+Q29uZGl0aW9uYWwgRmllbGRzCiAgICAgPHA+SWYgeW91IHdvdWxkIGxpa2UgdG8gaGlkZSBkaWZmZXJlbnQgZmllbGRzIGJhc2VkIG9uIGNlcnRhaW4gY29uZGl0aW9ucywgaXQgaXMgYmVzdCB0byBkbyB0aGF0IHVzaW5nIGphdmFzY3JpcHQgYW5kIHlvdXIgZmF2b3JpdGUganF1ZXJ5IHBsdWdpbnMgZXRjLjwvcD4KICAgICA8cD5IaW50OiAgWW91IGNhbiBzdXBwbHkgZGF0YSB0byBqYXZhc2NyaXB0IGZyb20gd2l0aGluIHlvdXIgdGVtcGxhdGUgdXNpbmcgc21hcnR5IHZhcmlhYmxlcy4gaS5lLjo8L3A+CiAgICAgPHByZT4mbHQ7c2NyaXB0Jmd0O3ZhciBmZXVfdWlkID0gJ3skZmV1X3NtYXJ0eTo6Z2V0X2N1cnJlbnRfdXNlcmlkKCl9JzsmbHQ7L3NjcmlwdCZndDs8L3ByZT4KICA8L2xpPgogIDxsaT5EeW5hbWljIG11bHRpLW9wdGlvbiBmaWVsZHMKICAgICA8cD5JZiB5b3Ugd291bGQgbGlrZSB0byBhZGQgb3B0aW9ucyB0byBzZWxlY3QsIG9yIG90aGVyIG11bHRpLW9wdGlvbiBmaWVsZHMgKGNoZWNrYm94IGdyb3VwcywgcmFkaW8tYnV0dG9uIGdyb3VwcykgZHluYW1pY2FsbHkgdmlhIHNtYXJ0eSBwbHVnaW5zIHdoZXJlIHRoZSBvcHRpb25zIGluIHRoZSBmaWVsZCBtYXkgY2hhbmdlLCBpdCBpcyBiZXN0IHRvIHR1cm4gb2ZmIHZhbGlkYXRpb24gZm9yIHRoYXQgZmllbGQuPC9wPgogICAgIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyB3aWxsIHR1cm4gb2ZmIGFsbCB2YWxpZGF0aW9ucyBmb3IgdGhhdCBmaWVsZCwgaW5jbHVkaW5nIEhUTUwgdmFsaWRhdGlvbi48L3A+CiAgPC9saT4KICA8bGk+UHJlLWZpbGxlZCBmaWVsZHMKICAgICA8cD5UaGVyZSBhcmUgbnVtZXJvdXMgd2F5cyB0byBwcm92aWRlIGluaXRpYWwgZGF0YSB0byBhIGZvcm0gKGkuZS46IGJlZm9yZSB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQgYnkgdGhlIHVzZXIgZm9yIHRoZSBmaXJzdCB0aW1lKS4gVGhlc2UgbWV0aG9kcywgaWYgZG9uZSBjb3JyZWN0bHkgd2lsbCBhbHNvIHByZXNlcnZlIHVzZXIgZGF0YSBpZiB0aGVyZSBpcyBhbiBlcnJvciBpbiBmb3JtIHN1Ym1pc3Npb24uPC9wPgogICAgIDx1bD4KICAgICAgIDxsaT5Vc2luZyBmaWVsZCBuYW1lIGFyZ3VtZW50cyBvbiB0aGUgc21hcnR5IHRhZzoKICAgICAgICAgIDxwPmkuZS46ICA8Y29kZT57Q0dCZXR0ZXJGb3JtcyBmb3JtPSdteWZvcm0nIGNnYmZfbXlmaWVsZG5hbWU9J3NvbWV2YWx1ZSd9PC9jb2RlPjwvcD4KICAgICAgIDwvbGk+CiAgICAgICA8bGk+Q2FsbGluZyA8Y29kZT57Y2diZl9zZXQgZmllbGQ9ZmllbGRfbmFtZSB2YWx1ZT1zb21ldGhpbmd9PC9jb2RlPiB0aGUgJnF1b3Q7UHJlLXJlbmRlciBMb2dpYyZxdW90OyB0YWIgd2hlbiBlZGl0aW5nIHRoZSBmb3JtLjwvbGk+CiAgICAgICA8bGk+Q2FsbGluZyBhIFVEVCBmcm9tIHdpdGhpbiB0aGUgZm9ybSB0ZW1wbGF0ZSB0byBhZGp1c3QgdGhlIFwkZm9ybV9kYXRhIHJlc3BvbnNlIG9iamVjdC48L2xpPgogICAgICAgPGxpPlVzaW5nIHRoZSA8Y29kZT5kYXRhLWNnYmYtc2VsZWN0ZWQ8Y29kZT4gYXR0cmlidXRlIG9uIHNlbGVjdCBib3hlcyBhbmQgcmFkaW8gYnV0dG9uIGdyb3Vwcy48L2xpPgogICAgICAgPGxpPlVzaW5nIDxjb2RlPnskZm9ybV9kYXRhLT5teWZpZWxkbmFtZX08L2NvZGU+IGFuZCB0aGUgJnF1b3Q7ZGVmYXVsdCZxdW90OyBzbWFydHkgbW9kaWZpZXIuCiAgICAgICAgICA8cD5pLmU6IDxjb2RlPnskZm9ybV9kYXRhLT5teWZpZWxkbmFtZXxkZWZhdWx0Oidmb28nfTwvY29kZT4uPC9wPgogICAgICAgPC9saT4KICAgICA8L3VsPgogIDwvbGk+CiAgPGxpPldvcmtpbmcgd2l0aCBGaWxlczwvbGk+CiAgPGxpPkFycmF5cyBvZiBkYXRhPC9saT4KICA8bGk+Q2FsY3VsYXRlZCBmaWVsZHM8L2xpPgogIDxsaT5VRFQncyBpbiB2YWxpZGF0aW9uCiAgICAgPHA+WW91IGNhbiB1c2UgdGhlIFRlbXBsYXRlIHZhbGlkYXRpb24sIGluIHRoZSB0ZW1wbGF0ZSBmb3IgdGhhdCB2YWxpZGF0aW9uIGNhbGwgeW91ciBVRFQuICBJZiB5b3VyIFVEVCByZXR1cm5zIGFueSBvdXRwdXQgaXQgd2lsbCBiZSB0cmVhdGVkIGFzIGEgdmFsaWRhdGlvbiBlcnJvci48L3A+CiAgPC9saT4KICA8bGk+VURUJ3MgaW4gZGlzcG9zaXRpb25zCiAgICAgPHA+VXNlIHRoZSBTdG9wRGlzcG9zaW5nIERpc3Bvc2l0aW9uLCBhbmQgaW4gdGhhdCB0ZW1wbGF0ZSBjYWxsIHlvdXIgVURULiAgSWYgeW91ciBVRFQgcmV0dXJucyBhbnkgb3V0cHV0IHRoZW4gZGlzcG9zaW5nIHdpbGwgc3RvcC48L3A+CiAgPC9saT4KICA8bGk+Q2hhaW5pbmcgZm9ybXMKICAgICA8b2w+CiAgICAgICA8bGk+VXNlIGEgVURUIHRvIGRpc3Bvc2UgdGhlIGZvcm0gcmVzcG9uc2UgdG8gdGhlIHNlc3Npb24uPC9saT4KICAgICAgIDxsaT5FaXRoZXIgdXNpbmcgYW5vdGhlciBkaXNwb3NpdGlvbiwgb3IgY29kZSB3aXRoaW4geW91ciBVRFQsIHJlZGlyZWN0IHRvIHRoZSBwYWdlIGNvbnRhaW5pbmcgdGhlIHNlY29uZCBmb3JtLjwvbGk+CiAgICAgICA8bGk+VXNlIGhpZGRlbiBmaWVsZHMgaW4gdGhlIHNlY29uZCBmb3JtIHRvIGNvbnRhaW4gdGhlIHZhbHVlcyBmcm9tIHRoZSBmaXJzdCBmb3JtLjwvbGk+CiAgICAgPC9vbD4KICA8L2xpPgo8L3VMPgoKCjxoMz5FeHRlbmRpbmcgZnVuY3Rpb25hbGl0eTwvaDM+CjxoND5Ib29rczwvaDQ+CjxoND5BUEkgUmVmZXJlbmNlPC9oND4KPGg0PkFkZGluZyBWYWxpZGF0aW9uczwvaDQ+CjxoND5BZGRpbmcgRGlzcG9zaXRpb25zPC9oND4KCjxoMz5TdXBwb3J0PC9oMz4KPGgzPkNvcHlyaWdodCAmIExpY2Vuc2U8L2gzPgo8aDM+RGVwZW5kZW5jaWVzPC9oMz48dWw+PGxpPkNHRXh0ZW5zaW9ucyA9Jmd0OyAxLjU0LjE8L2xpPjwvdWw+PGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmb3JtPSIiIC0gVGhlIGZvcm0gbmFtZSB0byByZW5kZXIgYW5kIHByb2Nlc3M8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vZGF0ZWNoZWNrPSIwIiAtIFNwZWNpZnkgYSBwb3NpdGl2ZSBpbnRlZ2VyIHRvIGRpc2FibGUgZGF0ZSBjaGVja2luZyB3aGVuIHJlbmRlcmluZyBhIGZvcm0uICBUaGlzIGlzIHVzZWZ1bCBmb3IgZGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmcgcHVycG9zZXMsIGJ1dCBzaG91bGQgbm90IGJlIHVzZWQgaW4gYSBwcm9kdWN0aW9uIHN5c3RlbS48L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDAuODxiciAvPg==]]></about>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.54.1</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/.#action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/action.admin_delete_form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkgKSBleGl0OwoKdHJ5IHsKICAgICRmb3JtID0gbnVsbDsKICAgIGlmKCAoJGZvcm1faWQgPSBcY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2Zvcm0nKSkgKSB7CiAgICAgICAgJGZvcm0gPSAkdGhpcy0+Zm9ybXN0b3JhZ2UtPmxvYWRfYnlfaWQoICRmb3JtX2lkICk7CiAgICB9CgogICAgaWYoICEkZm9ybSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0Nhbm5vdCBkZWxldGUgZm9ybSAoaW52YWxpZCBmb3JtIGlkKScpOwogICAgJHRoaXMtPmZvcm1zdG9yYWdlLT5kZWxldGUoICRmb3JtICk7CgogICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19mb3JtZGVsZXRlZCcpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoKTsKfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICR0aGlzLT5TZXRFcnJvcigkZS0+R2V0TWVzc2FnZSgpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoKTsKfQ==]]></data>
	</file>
	<file>
	  <filename>/action.admin_edit_disposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkgKSBleGl0OwoKdHJ5IHsKICAgICRmb3JtX2d1aWQgICA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZm9ybV9ndWlkJyk7CiAgICAkZGlzcF9ndWlkICAgPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2Rpc3BfZ3VpZCcpOwogICAgJGVkaXRvcl9uYW1lID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdlZGl0b3JfbmFtZScpOwogICAgJGVkaXRvciA9ICRkaXNwb3NpdGlvbiA9IG51bGw7CgogICAgJGhlbHBlciA9IG5ldyBEaXNwb3NpdGlvbkVkaXRvckhlbHBlclByb3h5KCAkdGhpcyApOwogICAgJGZvcm0gPSAkdGhpcy0+Z2V0X2Zvcm0oICRmb3JtX2d1aWQgKTsKICAgIGlmKCAkZGlzcF9ndWlkICkgewogICAgICAgICRkaXNwb3NpdGlvbiA9ICRmb3JtLT5nZXREaXNwb3NpdGlvbiggJGRpc3BfZ3VpZCApOwogICAgICAgICRlZGl0b3IgPSAkdGhpcy0+ZmluZF9lZGl0b3JfYnlfZGlzcG9zaXRpb24oICRkaXNwb3NpdGlvbiApOwogICAgICAgICRlZGl0b3ItPnNldF9kaXNwb3NpdGlvbiggJGRpc3Bvc2l0aW9uICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkZWRpdG9yID0gJHRoaXMtPmdldF9kaXNwb3NpdGlvbl9lZGl0b3IoICRlZGl0b3JfbmFtZSApOwogICAgfQogICAgJGVkaXRvci0+c2V0X2hlbHBlcl9wcm94eSggJGhlbHBlciApOwogICAgJGVkaXRvci0+aGFuZGxlX2VkaXRfZm9ybSgkcGFyYW1zLCAkZm9ybSwgJGZvcm1fZ3VpZCwgJGRpc3BfZ3VpZCk7Cn0KY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICBkZWJ1Z19kaXNwbGF5KCRlKTsKICAgIGRpZSgpOwp9]]></data>
	</file>
	<file>
	  <filename>/action.admin_edit_form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkgKSBleGl0OwoKJG1ha2VfZmllbGRfbGlzdCA9IGZ1bmN0aW9uKCBhcnJheSAkZmllbGRzICkgewogICAgJG91dCA9IFtdOwogICAgZm9yZWFjaCggJGZpZWxkcyBhcyAkZmllbGQgKSB7CiAgICAgICAgJG91dFskZmllbGQtPm5hbWVdID0gInskZmllbGQtPm5hbWV9ICh7JGZpZWxkLT50eXBlfSkiOwogICAgfQogICAgcmV0dXJuICRvdXQ7Cn07CgokZG9fc2NhbiA9IGZ1bmN0aW9uKCBGb3JtICRmb3JtLCAkc21hcnR5ICkgewogICAgc3RhdGljICR0ZXN0ZXIsICRzY2FubmVyOwoKICAgIGlmKCAhaXNfb2JqZWN0KCR0ZXN0ZXIpICkgewogICAgICAgIC8vIG9ubHkgZG8gdGhpcyBvbmNlIHBlciByZXF1ZXN0LgogICAgICAgICR0ZW1wbGF0ZV9vYmogPSBcQ21zTGF5b3V0VGVtcGxhdGU6OmxvYWQoICRmb3JtLT50ZW1wbGF0ZV9pZCApOwogICAgICAgICRzY2FubmVyID0gbmV3IFRlbXBsYXRlRm9ybVNjYW5uZXIoICRzbWFydHksICR0ZW1wbGF0ZV9vYmogKTsgLy8gY2FuIHRocm93IGV4Y2VwdGlvbiBmb3IgbXVsdGlwbGUgZm9ybXMgZXRjLgogICAgICAgICR0ZXN0ZXIgPSBuZXcgVGVtcGxhdGVGb3JtVGVzdGVyKCAkc2Nhbm5lciwgJHRoaXMtPmdldF9mb3JtdGVzdHMoKSApOwogICAgfQoKICAgICRyZXN1bHRzID0gbmV3IFNjYW5uZWRUZW1wbGF0ZSggJHNjYW5uZXIsICR0ZXN0ZXIgKTsKICAgIHJldHVybiAkcmVzdWx0czsKfTsKCgp0cnkgewogICAgJGZvcm0gPSBuZXcgRm9ybTsKICAgICRmb3JtX2d1aWQgPSAkZGlzcF9ndWlkID0gJHZhbGlkYXRvcl9ndWlkID0gbnVsbDsKICAgIGlmKCBcY2dlX3BhcmFtOjpleGlzdHMoJHBhcmFtcywnY2FuY2VsJykgKSAkdGhpcy0+UmVkaXJlY3RUb0FkbWluVGFiKCk7CgogICAgaWYoICgkZm9ybV9pZCA9IFxjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnZm9ybScpKSApIHsKICAgICAgICAkZm9ybSA9ICR0aGlzLT5mb3Jtc3RvcmFnZS0+bG9hZF9ieV9pZCggJGZvcm1faWQgKTsKICAgICAgICAkZm9ybV9ndWlkID0gJHRoaXMtPnN0b3JlX2Zvcm0oICRmb3JtICk7CiAgICB9CiAgICBlbHNlIGlmKCAoJGZvcm1fZ3VpZCA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZm9ybV9ndWlkJykpICkgewogICAgICAgIC8vIGdldCBpdCBmcm9tIHNlc3Npb24uCiAgICAgICAgJGZvcm0gPSAkdGhpcy0+Z2V0X2Zvcm0oICRmb3JtX2d1aWQgKTsKICAgICAgICAkc3ViYWN0aW9uID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdzdWJhY3Rpb24nKTsKICAgICAgICBpZiggJHN1YmFjdGlvbiAmJiAoJGd1aWRzID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdndWlkcycpKSApIHsKICAgICAgICAgICAgLy8gaGFuZGxlIGEgc3ViYWN0aW9uCiAgICAgICAgICAgICRndWlkcyA9IGV4cGxvZGUoJywnLCRndWlkcyk7CiAgICAgICAgICAgIGlmKCBjb3VudCgkZ3VpZHMpICkgewogICAgICAgICAgICAgICAgc3dpdGNoKCAkc3ViYWN0aW9uICkgewogICAgICAgICAgICAgICAgY2FzZSAnb3JkZXJfZGlzcG9zaXRpb25zJzoKICAgICAgICAgICAgICAgICAgICAkZm9ybS0+b3JkZXJEaXNwb3NpdGlvbnMoICRndWlkcyApOwogICAgICAgICAgICAgICAgICAgICRmb3JtX2d1aWQgPSAkdGhpcy0+c3RvcmVfZm9ybSggJGZvcm0gKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgJ29yZGVyX3ZhbGlkYXRpb25zJzoKICAgICAgICAgICAgICAgICAgICAkZm9ybS0+b3JkZXJWYWxpZGF0aW9ucyggJGd1aWRzICk7CiAgICAgICAgICAgICAgICAgICAgJGZvcm1fZ3VpZCA9ICR0aGlzLT5zdG9yZV9mb3JtKCAkZm9ybSApOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoICgkZGlzcF9ndWlkID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdkaXNwX2d1aWQnKSkgKSB7CiAgICAgICAgICAgIC8vIGhhbmRsZSBhbiB1cGRhdGVkIGRpc3Bvc2l0aW9uLgogICAgICAgICAgICAkZGlzcCA9IHV0aWxzOjpyZXRyaWV2ZV9vYmplY3QoJGRpc3BfZ3VpZCk7CiAgICAgICAgICAgICRmb3JtLT5zZXREaXNwb3NpdGlvbiggJGRpc3AgKTsKICAgICAgICAgICAgJGZvcm1fZ3VpZCA9ICR0aGlzLT5zdG9yZV9mb3JtKCAkZm9ybSApOwogICAgICAgICAgICAvLyB0b2RvOiBzZXQgY3VycmVudCB0YWIuCiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoICgkdmFsaWRhdG9yX2d1aWQgPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ3ZhbGlkYXRvcl9ndWlkJykpICkgewogICAgICAgICAgICAvLyBoYW5kbGUgYW4gdXBkYXRlZCB2YWxpZGF0aW9uCiAgICAgICAgICAgICR2YWxpZGF0b3IgPSB1dGlsczo6cmV0cmlldmVfb2JqZWN0KCR2YWxpZGF0b3JfZ3VpZCk7CiAgICAgICAgICAgICRmb3JtLT5zZXRWYWxpZGF0aW9uKCAkdmFsaWRhdG9yICk7CiAgICAgICAgICAgICRmb3JtX2d1aWQgPSAkdGhpcy0+c3RvcmVfZm9ybSggJGZvcm0gKTsKICAgICAgICAgICAgLy8gdG9kbzogc2V0IGN1cnJlbnQgdGFiCiAgICAgICAgfQogICAgfQoKICAgIC8vIGlmIHdlIGhhdmUgYSB0ZW1wbGF0ZSBpZC4uLiBkbyBhIHNjYW4gc28gd2UgY2FuIGRpc3BsYXkgZmllbGRzIGFuZCBtZXNzYWdlcwogICAgaWYoICRmb3JtLT50ZW1wbGF0ZV9pZCAmJiAhXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3NjYW4nKSApIHsKICAgICAgICAkdGVtcGxhdGVfb2JqID0gXENtc0xheW91dFRlbXBsYXRlOjpsb2FkKCAkZm9ybS0+dGVtcGxhdGVfaWQgKTsKICAgICAgICAkbW9kX3RpbWUgPSAkdGVtcGxhdGVfb2JqLT5nZXRfbW9kaWZpZWQoKTsKICAgICAgICAkZXJycyA9IFtdOwogICAgICAgIGlmKCB2ZXJzaW9uX2NvbXBhcmUoJGZvcm0tPmNnYmZfdmVyc2lvbiwkdGhpcy0+R2V0VmVyc2lvbigpKSAhPSAwICkgewogICAgICAgICAgICAkZXJyc1tdID0gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycl9mb3JtX3ZlcnNpb25jaGFuZ2UnKSk7CiAgICAgICAgfQogICAgICAgIGlmKCAkZm9ybS0+bW9kaWZpZWQgPCAkbW9kX3RpbWUgJiYgJGZvcm0tPnRwbF9tb2RpZmllZCA8ICRtb2RfdGltZSApIHsKICAgICAgICAgICAgJGVycnNbXSA9ICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJfZm9ybV9zY2FubmVlZGVkJykpOwogICAgICAgIH0KICAgICAgICBpZiggY291bnQoJGVycnMpICkgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZXJycyk7CiAgICB9CgogICAgaWYoIFxjZ2VfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdzY2FuJykgKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgLy8gZmlsbCB0aGUgZm9ybSBvYmplY3Qgd2l0aCBhIG5hbWUsIHRlbXBsYXRlIGlkLCBkZXNjcmlwdGlvbiwgZXRjLi4uCiAgICAgICAgICAgICRmb3JtID0gJGZvcm0tPmFkanVzdFdpdGgoICRwYXJhbXMgKTsKICAgICAgICAgICAgJHRlbXBsYXRlX29iaiA9IFxDbXNMYXlvdXRUZW1wbGF0ZTo6bG9hZCggJGZvcm0tPnRlbXBsYXRlX2lkICk7CiAgICAgICAgICAgICRmb3JtID0gJGZvcm0tPmFkanVzdFdpdGgoIFsndHBsX21vZGlmaWVkJz0+dGltZSgpIF0gKTsKCiAgICAgICAgICAgIC8vIGdldCB0aGUgbWVzc2FnZXMsIGFuZCBmaWVsZHMgYW5kIHN0b3JlIHRoZW0gaW4gdGhlIGZvcm0KICAgICAgICAgICAgLy8gdG9kbzogZmlsdGVyIHRoZSBmaWVsZHMgZG93biB0byBvbmUgcGVyIG5hbWUuCiAgICAgICAgICAgICRyZXMgPSAkZG9fc2NhbiggJGZvcm0sICRzbWFydHkgKTsKICAgICAgICAgICAgJGZvcm0tPmFkanVzdFdpdGgoIFsnZmllbGRzJz0+JHJlcy0+Z2V0X2ZpZWxkcygpICwgJ2ZpZWxkX21lc3NhZ2VzJz0+JHJlcy0+Z2V0X21lc3NhZ2VzKCksICdoYXNfY2FwdGNoYSc9PiRyZXMtPmhhc19jYXB0Y2hhKCkgXSApOwoKICAgICAgICAgICAgLy8gc2F2ZSB0aGUgZm9ybSB0byB0aGUgc2Vzc2lvbgogICAgICAgICAgICAkdGhpcy0+U2V0Q3VycmVudFRhYignbWVzc2FnZXMnKTsKICAgICAgICAgICAgZWNobyAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19zY2FubmVkX3NhdmVuZWVkZWQnKSk7CiAgICAgICAgICAgICRmb3JtX2d1aWQgPSAkdGhpcy0+c3RvcmVfZm9ybSggJGZvcm0gKTsKICAgICAgICB9CiAgICAgICAgY2F0Y2goIEZvcm1TY2FubmVyRXJyb3IgJGUgKSB7CiAgICAgICAgICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJGUtPkdldE1lc3NhZ2UoKSkpOwogICAgICAgIH0KICAgICAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIGlmKCBcY2dlX3BhcmFtOjpleGlzdHMoJHBhcmFtcywnYXV0b192YWxpZGF0aW9uJykgJiYgIWNvdW50KCRmb3JtLT52YWxpZGF0aW9ucykgKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3ZhbGlkYXRpb24nKTsKICAgICAgICAgICAgJHNjYW5uZXIgPSBuZXcgXENHQmV0dGVyRm9ybXNcVmFsaWRhdGlvblNjYW5uZXIoICR0aGlzLCAkZm9ybSwgJGZvcm0tPmdldF9maWVsZHMoKSApOwogICAgICAgICAgICAkdmFsaWRhdGlvbnMgPSAkc2Nhbm5lci0+Z2V0X3ZhbGlkYXRpb25zKCk7CiAgICAgICAgICAgIGlmKCBjb3VudCgkdmFsaWRhdGlvbnMpICkgewogICAgICAgICAgICAgICAgZm9yZWFjaCggJHZhbGlkYXRpb25zIGFzICRvYmogKSB7CiAgICAgICAgICAgICAgICAgICAgJGZvcm0tPnNldFZhbGlkYXRpb24oJG9iaik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkZm9ybV9ndWlkID0gJHRoaXMtPnN0b3JlX2Zvcm0oICRmb3JtICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAgICAgfQogICAgfQogICAgZWxzZSBpZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ2FkZF92YWxpZGF0aW9uJykgKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgLy8gaW5pdGlhdGUgYWRkaW5nIGEgdmFsaWRhdGlvbgogICAgICAgICAgICAkZWRpdG9yX2NsYXNzID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCd2YWxpZGF0aW9uJyk7CiAgICAgICAgICAgIGlmKCAhJGVkaXRvcl9jbGFzcyApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludGVybmFsIGVycm9yOiAgTm8gdmFsaWRhdGlvbiBzcGVjaWZpZWQnKTsKICAgICAgICAgICAgJGVkaXRvciA9ICR0aGlzLT5nZXRfdmFsaWRhdGlvbl9lZGl0b3IoICRlZGl0b3JfY2xhc3MgKTsKICAgICAgICAgICAgaWYoICEkZWRpdG9yICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW50ZXJuYWwgZXJyb3I6IFZhbGlkYXRpb24gbm90IGZvdW5kJyk7CgogICAgICAgICAgICAvLyB0ZXN0IGlmIHdlIGNhbiBoYXZlIG1hbnkgb2YgdGhlc2UuCiAgICAgICAgICAgIGlmKCAhJGVkaXRvci0+YWxsb3dzX211bHRpcGxlKCkgJiYgJGZvcm0tPmhhc1ZhbGlkYXRpb24oICRlZGl0b3ItPmdldF9vdXRwdXRjbGFzcygpICkpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycl9tb2RfdmFsaWRhdGlvb25lb25seScpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiggJGVkaXRvci0+aGFzX2ludGVyZmFjZSgpICkgewogICAgICAgICAgICAgICAgJHVybCA9ICR0aGlzLT5jcmVhdGVfdXJsKCRpZCwnYWRtaW5fZWRpdF92YWxpZGF0aW9uJywkcmV0dXJuaWQsIFsgJ2Zvcm1fZ3VpZCc9PiRmb3JtX2d1aWQsICdlZGl0b3JfbmFtZSc9PiRlZGl0b3JfY2xhc3MgXSk7CiAgICAgICAgICAgICAgICAkdXJsID0gc3RyX3JlcGxhY2UoJyZhbXA7JywnJicsJHVybCk7CiAgICAgICAgICAgICAgICByZWRpcmVjdCgkdXJsKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIHRoZXJlJ3Mgbm8gZWRpdG9yLgogICAgICAgICAgICAgICAgJGZvcm0tPnNldFZhbGlkYXRpb24oICRlZGl0b3ItPmdldF92YWxpZGF0aW9uKCkgKTsKICAgICAgICAgICAgICAgICRmb3JtX2d1aWQgPSAkdGhpcy0+c3RvcmVfZm9ybSggJGZvcm0gKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIGlmKCBcY2dlX3BhcmFtOjpleGlzdHMoJHBhcmFtcywnYWRkX2Rpc3Bvc2l0aW9uJykgKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgLy8gaW5pdGlhdGUgYWRkaW5nIGEgZGlzcG9zaXRpb24KICAgICAgICAgICAgJGVkaXRvcl9jbGFzcyA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZGlzcG9zaXRpb24nKTsKICAgICAgICAgICAgaWYoICEkZWRpdG9yX2NsYXNzICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW50ZXJuYWwgZXJyb3I6ICBObyBkaXNwb3NpdGlvbiBzcGVjaWZpZWQnKTsKICAgICAgICAgICAgJG9iaiA9ICR0aGlzLT5nZXRfZGlzcG9zaXRpb25fZWRpdG9yKCAkZWRpdG9yX2NsYXNzICk7CiAgICAgICAgICAgIGlmKCAhJG9iaiApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludGVybmFsIGVycm9yOiBEaXNwb3NpdGlvbiBub3QgZm91bmQnKTsKCiAgICAgICAgICAgIGlmKCAkb2JqLT5oYXNfaW50ZXJmYWNlKCkgKSB7CiAgICAgICAgICAgICAgICAkdXJsID0gJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCdhZG1pbl9lZGl0X2Rpc3Bvc2l0aW9uJywkcmV0dXJuaWQsIFsgJ2Zvcm1fZ3VpZCc9PiRmb3JtX2d1aWQsICdlZGl0b3JfbmFtZSc9PiRlZGl0b3JfY2xhc3MgXSk7CiAgICAgICAgICAgICAgICAkdXJsID0gc3RyX3JlcGxhY2UoJyZhbXA7JywnJicsJHVybCk7CiAgICAgICAgICAgICAgICByZWRpcmVjdCgkdXJsKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRmb3JtLT5zZXREaXNwb3NpdGlvbiggJG9iai0+Z2V0X2Rpc3Bvc2l0aW9uKCkgKTsKICAgICAgICAgICAgICAgICRmb3JtX2d1aWQgPSAkdGhpcy0+c3RvcmVfZm9ybSggJGZvcm0gKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIGlmKCBcY2dlX3BhcmFtOjpleGlzdHMoJHBhcmFtcywnZWRpdF92YWxpZGF0aW9uJykgJiYgKCR2YWxpZGF0b3JfZ3VpZCA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZWRpdF92YWxpZGF0aW9uJykpID49IDAgKSB7CiAgICAgICAgJHZhbGlkYXRvciA9ICRmb3JtLT5nZXRWYWxpZGF0aW9uKCR2YWxpZGF0b3JfZ3VpZCk7CiAgICAgICAgaWYoICEkdmFsaWRhdG9yICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCB2YWxpZGF0aW9uIGd1aWQgJy4kdmFsaWRhdG9yX2d1aWQpOwogICAgICAgICRlZGl0b3IgPSAkdGhpcy0+ZmluZF9lZGl0b3JfYnlfdmFsaWRhdGlvbiggJHZhbGlkYXRvciApOwogICAgICAgIGlmKCAkZWRpdG9yLT5oYXNfaW50ZXJmYWNlKCkgKSB7CiAgICAgICAgICAgICR2YWxpZGF0b3JfZ3VpZCA9IHV0aWxzOjpzdG9yZV9vYmplY3QoICR2YWxpZGF0b3IsICR2YWxpZGF0b3ItPmdldF9ndWlkKCkgKTsKICAgICAgICAgICAgJHVybCA9ICR0aGlzLT5jcmVhdGVfdXJsKCRpZCwnYWRtaW5fZWRpdF92YWxpZGF0aW9uJywkcmV0dXJuaWQsIFsgJ2Zvcm1fZ3VpZCc9PiRmb3JtX2d1aWQsICdndWlkJz0+JHZhbGlkYXRvcl9ndWlkIF0gKTsKICAgICAgICAgICAgJHVybCA9IHN0cl9yZXBsYWNlKCcmYW1wOycsJyYnLCR1cmwpOwogICAgICAgICAgICByZWRpcmVjdCgkdXJsKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIGlmKCBcY2dlX3BhcmFtOjpleGlzdHMoJHBhcmFtcywnZWRpdF9kaXNwb3NpdGlvbicpICYmICgkZGlzcF9ndWlkID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdlZGl0X2Rpc3Bvc2l0aW9uJykpID49IDAgKSB7CiAgICAgICAgLy8gaW5pdGlhdGUgZWRpdGluZyBvZiBhIGRpc3Bvc2l0aW9uCiAgICAgICAgJGRpc3AgPSAkZm9ybS0+Z2V0RGlzcG9zaXRpb24oJGRpc3BfZ3VpZCk7CiAgICAgICAgaWYoICEkZGlzcCApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgZGlzcG9zaXRpb24gZ3VpZCAnLiRkaXNwX2d1aWQpOwogICAgICAgICRlZGl0b3IgPSAkdGhpcy0+ZmluZF9lZGl0b3JfYnlfZGlzcG9zaXRpb24oICRkaXNwICk7CiAgICAgICAgJGRpc3BfZ3VpZCA9IHV0aWxzOjpzdG9yZV9vYmplY3QoICRkaXNwLCAkZGlzcC0+Z2V0X2d1aWQoKSApOwogICAgICAgICR1cmwgPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2FkbWluX2VkaXRfZGlzcG9zaXRpb24nLCRyZXR1cm5pZCwgWyAnZm9ybV9ndWlkJz0+JGZvcm1fZ3VpZCwgJ2Rpc3BfZ3VpZCc9PiRkaXNwX2d1aWQgXSk7CiAgICAgICAgJHVybCA9IHN0cl9yZXBsYWNlKCcmYW1wOycsJyYnLCR1cmwpOwogICAgICAgIHJlZGlyZWN0KCR1cmwpOwogICAgfQogICAgZWxzZSBpZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ2RlbF92YWxpZGF0aW9uJykgJiYgKCR2X2d1aWQgPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2RlbF92YWxpZGF0aW9uJykpID49IDAgKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3ZhbGlkYXRpb24nKTsKICAgICAgICAgICAgJGRpc3AgPSAkZm9ybS0+Z2V0VmFsaWRhdGlvbiggJHZfZ3VpZCApOwogICAgICAgICAgICBpZiggISRkaXNwICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCB2YWxpZGF0aW9uIGd1aWQgJy4kdl9ndWlkKTsKICAgICAgICAgICAgJGZvcm0tPnJlbW92ZVZhbGlkYXRpb24oICR2X2d1aWQgKTsKICAgICAgICAgICAgJGZvcm1fZ3VpZCA9ICR0aGlzLT5zdG9yZV9mb3JtKCAkZm9ybSApOwogICAgICAgIH0KICAgICAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIGlmKCBcY2dlX3BhcmFtOjpleGlzdHMoJHBhcmFtcywnZGVsX2Rpc3Bvc2l0aW9uJykgJiYgKCRkaXNwX2d1aWQgPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2RlbF9kaXNwb3NpdGlvbicpKSA+PSAwICkgewogICAgICAgICRkaXNwID0gJGZvcm0tPmdldERpc3Bvc2l0aW9uKCAkZGlzcF9ndWlkICk7CiAgICAgICAgaWYoICEkZGlzcCApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgZGlzcG9zaXRpb24gZ3VpZCAnLiRkaXNwX2d1aWQpOwogICAgICAgICRmb3JtLT5yZW1vdmVEaXNwb3NpdGlvbiggJGRpc3BfZ3VpZCApOwogICAgICAgICRmb3JtX2d1aWQgPSAkdGhpcy0+c3RvcmVfZm9ybSggJGZvcm0gKTsKICAgICAgICAkdGhpcy0+U2V0Q3VycmVudFRhYignaGFuZGxlcnMnKTsKICAgIH0KICAgIGVsc2UgaWYoIFxjZ2VfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdyZXNldF9maW5hbG1zZycpICkgewogICAgICAgICRmaW5hbE1zZyA9IEZvcm1VdGlsczo6Z2V0X2ZpbmFsbXNnKCAkZm9ybSApOwogICAgICAgICRmb3JtLT5hZGp1c3R3aXRoKCBbJ2ZpbmFsbXNnJz0+JGZpbmFsTXNnXSk7CiAgICAgICAgJGZvcm1fZ3VpZCA9ICR0aGlzLT5zdG9yZV9mb3JtKCAkZm9ybSApOwogICAgICAgICR0aGlzLT5TZXRDdXJyZW50VGFiKCdmaW5hbCcpOwogICAgfQogICAgZWxzZSBpZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3N1Ym1pdCcpIHx8IFxjZ2VfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdhcHBseScpKSB7CiAgICAgICAgLy8gZmlsbCB0aGUgZm9ybQogICAgICAgICRmb3JtID0gJGZvcm0tPmFkanVzdFdpdGgoICRwYXJhbXMgKTsKICAgICAgICAkdGVtcGxhdGVfb2JqID0gXENtc0xheW91dFRlbXBsYXRlOjpsb2FkKCAkZm9ybS0+dGVtcGxhdGVfaWQgKTsKICAgICAgICAkZm9ybSA9ICRmb3JtLT5hZGp1c3RXaXRoKCBbJ3RwbF9tb2RpZmllZCc9PiR0ZW1wbGF0ZV9vYmotPmdldF9tb2RpZmllZCgpLCAnY2diZl92ZXJzaW9uJz0+JHRoaXMtPkdldFZlcnNpb24oKSBdICk7CgogICAgICAgICRyZXMgPSAkZG9fc2NhbiggJGZvcm0sICRzbWFydHkgKTsKICAgICAgICAkZm9ybS0+YWRqdXN0V2l0aCggWydmaWVsZHMnPT4kcmVzLT5nZXRfZmllbGRzKCksICdoYXNfY2FwdGNoYSc9PiRyZXMtPmhhc19jYXB0Y2hhKCkgXSApOwoKICAgICAgICAvLyBjYW4gc2F2ZSBpbiBhbiBpbmNvbXBsZXRlIHN0YXRlLgogICAgICAgICR0aGlzLT5mb3Jtc3RvcmFnZS0+U2F2ZSggJGZvcm0gKTsKCiAgICAgICAgaWYoIFxjZ2VfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdzdWJtaXQnKSApIHsKICAgICAgICAgICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19mb3Jtc2F2ZWQnKSk7CiAgICAgICAgICAgICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGVjaG8gJHRoaXMtPlNob3dNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfZm9ybXNhdmVkJykpOwogICAgICAgIH0KICAgIH0KCiAgICAkdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9lZGl0X2Zvcm0udHBsJyk7CiAgICAkdHBsLT5hc3NpZ24oJ2Zvcm0nLCRmb3JtKTsKICAgICR0cGwtPmFzc2lnbignZm9ybV9ndWlkJywkZm9ybV9ndWlkKTsKICAgICR0cGwtPmFzc2lnbignZmllbGRfbGlzdCcsJG1ha2VfZmllbGRfbGlzdCgkZm9ybS0+ZmllbGRzKSk7CiAgICAkdHBsLT5hc3NpZ24oJ2ZpZWxkcycsJGZvcm0tPmZpZWxkcyk7CiAgICAkdHBsLT5hc3NpZ24oJ21lc3NhZ2VzJywkZm9ybS0+ZmllbGRfbWVzc2FnZXMpOwogICAgJHRwbC0+YXNzaWduKCdhbGxfdGVtcGxhdGVzJyx1dGlsczo6bGlzdF9zdWl0YWJsZV90ZW1wbGF0ZXMoKSk7CiAgICAkdHBsLT5hc3NpZ24oJ2FsbF92YWxpZGF0aW9ucycsdXRpbHM6Omxpc3RfdmFsaWRhdGlvbl9lZGl0b3JzKCAkdGhpcy0+Z2V0X3ZhbGlkYXRpb25fZWRpdG9ycygpICkgKTsKICAgICR0cGwtPmFzc2lnbignYWxsX2Rpc3Bvc2l0aW9ucycsdXRpbHM6Omxpc3RfZGlzcG9zaXRpb25fZWRpdG9ycyggJHRoaXMtPmdldF9kaXNwb3NpdGlvbl9lZGl0b3JzKCkgKSApOwogICAgJHRwbC0+YXNzaWduKCdmb3JtX2hlbHAnLHV0aWxzOjpnZXRfZm9ybV90cGxfaGVscCggJGZvcm0gKSk7CiAgICAkdHBsLT5kaXNwbGF5KCk7Cn0KY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAkdGhpcy0+U2V0RXJyb3IoJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb0FkbWluVGFiKCk7Cn0K]]></data>
	</file>
	<file>
	  <filename>/action.admin_edit_validation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkgKSBleGl0OwoKdHJ5IHsKICAgICRmb3JtX2d1aWQgICA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZm9ybV9ndWlkJyk7CiAgICAkZ3VpZCAgID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdndWlkJyk7CiAgICAkZWRpdG9yX25hbWUgPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2VkaXRvcl9uYW1lJyk7CiAgICAkZWRpdG9yID0gJHZhbGlkYXRpb24gPSBudWxsOwoKICAgICRoZWxwZXIgPSBuZXcgVmFsaWRhdGlvbkVkaXRvckhlbHBlclByb3h5KCAkdGhpcyApOwogICAgJGZvcm0gPSAkdGhpcy0+Z2V0X2Zvcm0oICRmb3JtX2d1aWQgKTsKICAgIGlmKCAkZ3VpZCApIHsKICAgICAgICAkdmFsaWRhdGlvbiA9ICRmb3JtLT5nZXRWYWxpZGF0aW9uKCAkZ3VpZCApOwogICAgICAgICRlZGl0b3IgPSAkdGhpcy0+ZmluZF9lZGl0b3JfYnlfdmFsaWRhdGlvbiggJHZhbGlkYXRpb24gKTsKICAgICAgICAkZWRpdG9yLT5zZXRfdmFsaWRhdGlvbiggJHZhbGlkYXRpb24gKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRlZGl0b3IgPSAkdGhpcy0+Z2V0X3ZhbGlkYXRpb25fZWRpdG9yKCAkZWRpdG9yX25hbWUgKTsKICAgIH0KICAgICRlZGl0b3ItPnNldF9oZWxwZXJfcHJveHkoICRoZWxwZXIgKTsKICAgICRlZGl0b3ItPmhhbmRsZV9lZGl0X2Zvcm0oJHBhcmFtcywgJGZvcm0sICRmb3JtX2d1aWQsICRndWlkKTsKfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgIGRlYnVnX2Rpc3BsYXkoJGUpOwogICAgZGllKCk7Cn0=]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCnRyeSB7CiAgICAkaXNfc3VibWlzc2lvbiA9IGZ1bmN0aW9uKCkgewogICAgICAgIGlmKCBzdHJ0b2xvd2VyKCRfU0VSVkVSWydSRVFVRVNUX01FVEhPRCddKSA9PSAncG9zdCcgJiYgXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkX1JFUVVFU1QgLCdfX2d1aWQnKSApIHJldHVybiBUUlVFOwogICAgfTsKCiAgICAkZm9ybW5hbWUgPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2Zvcm0nKTsKICAgIGlmKCAhJGZvcm1uYW1lICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignUGxlYXNlIHNwZWNpZnkgYSBmb3JtIG5hbWUgd2hlbiBjYWxsaW5nIENHQmV0dGVyRm9ybXMnKTsKCiAgICAkZm9ybSA9ICR0aGlzLT5mb3Jtc3RvcmFnZS0+bG9hZCggJGZvcm1uYW1lICk7CiAgICBpZiggISRmb3JtICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignU29ycnksIGNvdWxkIG5vdCBmaW5kIGEgZm9ybSB3aXRoIHRoZSBuYW1lICcuJGZvcm1uYW1lKTsKCiAgICAvLyBtYWtlIHN1cmUgaXQncyB2ZXJzaW9uIGNvbXBhdGlibGUuCiAgICBpZiggdmVyc2lvbl9jb21wYXJlKCRmb3JtLT5jZ2JmX3ZlcnNpb24sJHRoaXMtPkdldFZlcnNpb24oKSkgIT0gMCApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycl9mb3JtX3ZlcnNpb25jaGFuZ2UnKSk7CgogICAgLy8gaWYgdGVtcGxhdGUgbW9kaWZpZWQgc2luY2UgZm9ybSBzYXZlZAogICAgJHRlbXBsYXRlX29iaiA9IFxDbXNMYXlvdXRUZW1wbGF0ZTo6bG9hZCggJGZvcm0tPnRlbXBsYXRlX2lkICk7CiAgICBpZiggIVxjZ2VfcGFyYW06OmdldF9ib29sKCRwYXJhbXMsJ25vZGF0ZWNoZWNrJykgKSB7CiAgICAgICAgJG1vZF90aW1lID0gJHRlbXBsYXRlX29iai0+Z2V0X21vZGlmaWVkKCk7CiAgICAgICAgaWYoICRmb3JtLT5tb2RpZmllZCA8ICRtb2RfdGltZSAmJiAkZm9ybS0+dHBsX21vZGlmaWVkIDwgJG1vZF90aW1lICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyX2Zvcm1fc2Nhbm5lZWRlZCcpKTsKICAgIH0KCiAgICAvLyBjcmVhdGUgYSBwcmUtZmlsbGVkIHJlc3BvbnNlIHdpdGggc29tZSBwYXJlbXRlcnMgZnJvbSB0aGUgY2FsbAogICAgJGlucHV0X2RhdGEgPSBbXTsKICAgICRwcmVmaXggPSAnY2diZl8nOwogICAgZm9yZWFjaCggJHBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSApIHsKICAgICAgICBpZiggIXN0YXJ0c3dpdGgoJGtleSwkcHJlZml4KSApIGNvbnRpbnVlOwogICAgICAgICRrZXkgPSBzdWJzdHIoJGtleSxzdHJsZW4oJHByZWZpeCkpOwogICAgICAgICRpbnB1dF9kYXRhWyRrZXldID0gJHZhbHVlOwogICAgfQogICAgaWYoICRpc19zdWJtaXNzaW9uKCkgKSB7CiAgICAgICAgJGlucHV0X2RhdGEgPSBhcnJheV9tZXJnZSgkaW5wdXRfZGF0YSwkX1BPU1QpOwogICAgfSBlbHNlIHsKICAgICAgICAvLyB3ZSBjYW4gbW9kaWZ5IHRoZSBpbnB1dCBkYXRhIHdpdGggdmFyaWFibGVzIGFzc2lnbmVkIGluIHRoZSB0ZW1wbGF0ZQogICAgICAgIC8vIGkuZTogeyR3aWRnZXRfc2l6ZT0ncmVkJ30KICAgICAgICBpZiggJGZvcm0tPnByZXJlbmRlcl9sb2dpYyApIHsKICAgICAgICAgICAgJHRoaXMtPl9pbl9wcmVyZW5kZXIgPSB0cnVlOwogICAgICAgICAgICAkZm9ybV9maWVsZHMgPSAkZm9ybS0+Z2V0X2ZpZWxkbmFtZXMoKTsKICAgICAgICAgICAgJHRwbCA9ICRzbWFydHktPkNyZWF0ZVRlbXBsYXRlKCdzdHJpbmc6Jy4kZm9ybS0+cHJlcmVuZGVyX2xvZ2ljKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdtb2QnLCR0aGlzKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdmb3JtJywkZm9ybSk7CiAgICAgICAgICAgICR0cGwtPmZldGNoKCk7IC8vIGRvIHRoZSB3b3JrLCBidXQgaWdub3JlIG91dHB1dC4KICAgICAgICAgICAgZm9yZWFjaCggJGZvcm1fZmllbGRzIGFzICRmaWVsZF9uYW1lICkgewogICAgICAgICAgICAgICAgaWYoICEgaXNzZXQoJHRoaXMtPl9wcmVyZW5kZXJfdmFyc1skZmllbGRfbmFtZV0pICkgY29udGludWU7CgogICAgICAgICAgICAgICAgJGlucHV0X2RhdGFbJGZpZWxkX25hbWVdID0gJHRoaXMtPl9wcmVyZW5kZXJfdmFyc1skZmllbGRfbmFtZV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHRoaXMtPl9pbl9wcmVyZW5kZXIgPSBudWxsOwogICAgICAgICAgICAkdGhpcy0+X3ByZXJlbmRlcl92YXJzID0gbnVsbDsKICAgICAgICB9CiAgICB9CiAgICAkcmVzcG9uc2UgPSBuZXcgRm9ybVJlc3BvbnNlKCAkdGhpcywgJGZvcm0sIG51bGwsICRpbnB1dF9kYXRhICk7CgogICAgaWYoICRpc19zdWJtaXNzaW9uKCkgKSB7CiAgICAgICAgLy8gbm93IGhhbmRsZSBQT1NULgogICAgICAgIHRyeSB7CiAgICAgICAgICAgICRndWlkID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkX1JFUVVFU1QgLCdfX2d1aWQnKTsKICAgICAgICAgICAgJHRoaXMtPl9yZXF1ZXN0X2Vycm9ycyA9IFtdOwoKICAgICAgICAgICAgLy8gY2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGd1aWQgaXMgaW4gdGhlIHNlc3Npb24KICAgICAgICAgICAgLy8gdGhpcyBwcmV2ZW50cyBzdWJtaXR0aW5nIHRoZSBmb3JtIHZpYSBhIHBvc3Qgb3IgcmVsb2FkIHdpdGhvdXQgcmVuZGVyaW5nIHRoZSBmb3JtIGVhY2ggdGltZS4KICAgICAgICAgICAgaWYoICFnZXRfdXNlcmlkKEZBTFNFKSApIHsKICAgICAgICAgICAgICAgIGlmKCAhaXNzZXQoJF9TRVNTSU9OWydDR0JGX0dVSURfVE9LRU4nXSkgfHwgIWlzc2V0KCRfU0VTU0lPTlsnQ0dCRl9HVUlEX1RPS0VOJ11bJGd1aWRdKSApIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJfc2VjdXJpdHlfcmVxdWVzdGd1aWQnKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gaGVyZSB3ZSBjb3VsZCBjaGVjayBpZiB0b28gbXVjaCB0aW1lIGhhcyBwYXNzZWQsIG9yIHNvbWUgb3RoZXIgY3JpdGVyaWEuCiAgICAgICAgICAgIHVuc2V0KCRfU0VTU0lPTlsnQ0dCRl9HVUlEX1RPS0VOJ10pOwoKICAgICAgICAgICAgLy8gY3JlYXRlIGEgZm9ybXJlc3BvbnNlIG9iamVjdAogICAgICAgICAgICAvLyBtZXJnZSBpbiBkYXRhIGZyb20gcGFyYW1ldGVycyBhcyBkZWZhdWx0IHZhbHVlcyB0byB0aGUgcmVzcG9uc2UuCiAgICAgICAgICAgICRyZXNwb25zZSA9IG5ldyBGb3JtUmVzcG9uc2UoICR0aGlzLCAkZm9ybSwgJGd1aWQsICRfUE9TVCApOwoKICAgICAgICAgICAgaWYoICRyZXNwb25zZS0+X19ocG5hbWUgKSB7CiAgICAgICAgICAgICAgICAvLyBvb3BzLi4uIGhvbmV5cHQgaXNuJ3QgZW1wdHkuCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQm90RGV0ZWN0ZWRFcnJvcihFcnJvckxpc3Q6OkVSUl9WQUxJREFUSU9OX0JPVCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vCiAgICAgICAgICAgIC8vIGhhbmRsZSB2YWxpZGF0aW9ucy4KICAgICAgICAgICAgLy8KICAgICAgICAgICAgJGVycm9ycyA9IFtdOwogICAgICAgICAgICAkdmFsaWRhdGlvbnMgPSAkZm9ybS0+dmFsaWRhdGlvbnM7CiAgICAgICAgICAgICR2YWxpZGF0aW9uc1tdID0gbmV3IEZpZWxkVmFsaWRhdG9yc1xIb29rVmFsaWRhdG9yKCk7CiAgICAgICAgICAgIGZvcmVhY2goICR2YWxpZGF0aW9ucyBhcyAkdmFsaWRhdGlvbiApIHsKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgJHZhbGlkYXRpb24tPnZhbGlkYXRlKCAkZm9ybSwgJHJlc3BvbnNlLCAkdGhpcy0+dHJhbnNsYXRvciApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY2F0Y2goIEZpZWxkVmFsaWRhdG9yc1xWYWxpZGF0aW9uRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAgICAgICAgICRlcnJvcnNbXSA9ICRlLT5HZXRGaWVsZEVycm9yKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoIGNvdW50KCRlcnJvcnMpICkgewogICAgICAgICAgICAgICAgJHRoaXMtPl9yZXF1ZXN0X2Vycm9ycyA9ICRlcnJvcnM7CiAgICAgICAgICAgICAgICAvLyBhbmQgbWFrZSBzdXJlIHdlIGRvbid0IGRvIGFueSBkaXNwb3NpdGlvbnMuCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRm9ybVZhbGlkYXRpb25FcnJvciggJ3ZhbGlkYXRpb24gZXJyb3JzJyApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLwogICAgICAgICAgICAvLyBhbmQgZG8gZGlzcG9zaXRpb25zCiAgICAgICAgICAgIC8vCiAgICAgICAgICAgICRkaXNwb3NpdGlvbnMgPSAkZm9ybS0+ZGlzcG9zaXRpb25zOwogICAgICAgICAgICBpZiggJHJlc3BvbnNlLT5oYXNfdXBsb2FkcygpICkgewogICAgICAgICAgICAgICAgLy8gc3BlY2lhbCBkaXNwb3NpdGlvbiB0byBtb3ZlIHVwbG9hZGVkIGZpbGVzIHRvIGEgbW9yZSBwZXJtYW5lbnQgbG9jYXRpb24gKG5hbWVkIGJ5IEdVSUQpCiAgICAgICAgICAgICAgICAvLyB0aGlzIGRpc3Bvc2l0aW9uIGlzIHByZXBlbmRlZCB0byB0aGUgbGlzdC4KICAgICAgICAgICAgICAgICRkaXNwID0gbmV3IERpc3Bvc2l0aW9uc1xHVUlERmlsZURpc3Bvc2l0aW9uKCk7CiAgICAgICAgICAgICAgICBhcnJheV91bnNoaWZ0KCAkZGlzcG9zaXRpb25zLCAkZGlzcCApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIGFwcGVuZCBhIGhvb2sgZGlzcG9zaXRpb24KICAgICAgICAgICAgJGRpc3Bvc2l0aW9uc1tdID0gbmV3IERpc3Bvc2l0aW9uc1xIb29rRGlzcG9zaXRpb24oKTsKICAgICAgICAgICAgZm9yZWFjaCggJGRpc3Bvc2l0aW9ucyBhcyAkZGlzcCApIHsKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgJGRpc3AtPmRpc3Bvc2UoICRmb3JtLCAkcmVzcG9uc2UgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNhdGNoKCBcQ0dCZXR0ZXJGb3Jtc1xTdG9wRGlzcG9zaXRpb25UcmlnZ2VyICRlICkgewogICAgICAgICAgICAgICAgICAgIC8vIHdvb3QsIHdlIHN0b3AgaGFuZGxpbmcgc3R1ZmYuCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIHRoaXMgaXMganVzdCBiYXNpY2FsbHkgYSBkaXNwb3NpdGlvbi4KICAgICAgICAgICAgc3dpdGNoKCAkZm9ybS0+ZmluYWxhY3Rpb24gKSB7CiAgICAgICAgICAgIGNhc2UgJ3JlZGlyZWN0JzoKICAgICAgICAgICAgICAgICR0aGlzLT5SZWRpcmVjdENvbnRlbnQoICRmb3JtLT5maW5hbHBhZ2UgKTsKICAgICAgICAgICAgICAgIHJldHVybjsKCiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIGNhc2UgJ21lc3NhZ2UnOgogICAgICAgICAgICAgICAgJHRlbXBsYXRlID0gJGZvcm0tPmZpbmFsbXNnOwogICAgICAgICAgICAgICAgZWNobyB1dGlsczo6cHJvY2Vzc190ZW1wbGF0ZSggJHRlbXBsYXRlLCAkZm9ybSwgJHJlc3BvbnNlICk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2goIEZvcm1WYWxpZGF0aW9uRXJyb3IgJGUgKSB7CiAgICAgICAgICAgIC8vIHNvbWUga2luZCBvZiB2YWxpZGF0aW9uIGVycm9yLgogICAgICAgICAgICAvLyByZW5kZXIgdGhlIGZvcm0gYWdhaW4uLi4gc21hcnR5IHdpbGwgcHVsbCB0aGUgcmVxdWVzdCBlcnJvcnMuCiAgICAgICAgfQogICAgfQoKICAgIC8vIG5vdyByZW5kZXIgdGhlIGZvcm0KICAgICRjYXB0Y2hhX3Byb3ZpZGVyID0gbnVsbDsKICAgIGlmKCAkZm9ybS0+aGFzX2NhcHRjaGEgKSAkY2FwdGNoYV9wcm92aWRlciA9ICR0aGlzLT5nZXRfY2FwdGNoYV9wcm92aWRlcigpOwogICAgJHJlbmRlcmVyID0gbmV3IEZvcm1SZW5kZXJlciggJHRoaXMsICRmb3JtLCAkY2FwdGNoYV9wcm92aWRlciwgJHNtYXJ0eSwgJGlkLCAkcmV0dXJuaWQsICRyZXNwb25zZSApOwogICAgZWNobyAkcmVuZGVyZXItPmdldEhUTUwoKTsKfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgIFxjZ2VfdXRpbHM6OmxvZ19leGNlcHRpb24oICRlICk7CiAgICBlY2hvICR0aGlzLT5EaXNwbGF5RXJyb3JNZXNzYWdlKCRlLT5HZXRNZXNzYWdlKCkpOwp9Cg==]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkgKSBleGl0OwoKJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnZGVmYXVsdGFkbWluLnRwbCcpOwokdHBsLT5hc3NpZ24oJ2Zvcm1zJywkdGhpcy0+Zm9ybXN0b3JhZ2UtPmxpc3RfYWxsKCkpOwokdHBsLT5kaXNwbGF5KCk7]]></data>
	</file>
	<file>
	  <filename>/CGBetterForms.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKdXNlIFxDR0JldHRlckZvcm1zXERpc3Bvc2l0aW9uc1xEaXNwb3NpdGlvbjsKdXNlIFxDR0JldHRlckZvcm1zXERpc3Bvc2l0aW9uc1xEaXNwb3NpdGlvbkVkaXRvcjsKdXNlIFxDR0JldHRlckZvcm1zXEZpZWxkVmFsaWRhdG9yc1xWYWxpZGF0aW9uOwp1c2UgXENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzXFZhbGlkYXRpb25FZGl0b3I7CgpmaW5hbCBjbGFzcyBDR0JldHRlckZvcm1zIGV4dGVuZHMgXENHRXh0ZW5zaW9ucwp7CiAgICBjb25zdCBNQU5BR0VfUEVSTSA9ICdDR0JldHRlckZvcm1zOjpNQU5BR0VfUEVSTSc7CiAgICBwcml2YXRlICRfZWFybHlfZm9ybXRlc3RzID0gW107CiAgICBwcml2YXRlICRfZm9ybXRlc3RzID0gW107CiAgICBwcml2YXRlICRfdmFsaWRhdGlvbl9lZGl0b3JzID0gW107CiAgICBwcml2YXRlICRfZGlzcF9lZGl0b3JzID0gW107CiAgICBwcml2YXRlICRfY2FwdGNoYV9wcm92aWRlcjsKICAgIHByb3RlY3RlZCAkX3JlcXVlc3RfZXJyb3JzOwogICAgcHJvdGVjdGVkICRmb3Jtc3RvcmFnZTsKICAgIHByb3RlY3RlZCAkdHJhbnNsYXRvcjsKICAgIHByb3RlY3RlZCAkX2luX3ByZXJlbmRlcjsKICAgIHByb3RlY3RlZCAkX3ByZXJlbmRlcl92YXJzOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgICB7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgpOwoKICAgICAgICAkc21hcnR5ID0gXENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldFNtYXJ0eSgpOwogICAgICAgIGlmKCAhJHNtYXJ0eSApIHJldHVybjsKCiAgICAgICAgJHRoaXMtPmZvcm1zdG9yYWdlID0gbmV3IFxDR0JldHRlckZvcm1zXEZvcm1EQU8oICR0aGlzLT5HZXREYigpICk7CiAgICAgICAgJHRoaXMtPnRyYW5zbGF0b3IgPSBuZXcgXENHQmV0dGVyRm9ybXNcVHJhbnNsYXRvciggJHRoaXMgKTsKICAgICAgICAkdGhpcy0+cmVnaXN0ZXJfYnVpbHRpbl9mb3JtX3Rlc3RzKCk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX2J1aWx0aW5fZGlzcF9lZGl0b3JzKCk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX2J1aWx0aW5fdmFsaWRhdGlvbl9lZGl0b3JzKCk7CiAgICAgICAgXENHQmV0dGVyRm9ybXNcdXRpbHM6OnNldF90cmFuc2xhdG9yKCAkdGhpcy0+dHJhbnNsYXRvciApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKSB7IHJldHVybiAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyk7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXREZXNjcmlwdGlvbigpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdtb2RkZXNjcmlwdGlvbicpOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0VmVyc2lvbigpIHsgcmV0dXJuICcwLjgnOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKSB7IHJldHVybiBUUlVFOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gSGFzQWRtaW4oKSB7IHJldHVybiBUUlVFOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkgeyByZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbihzZWxmOjpNQU5BR0VfUEVSTSk7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBNaW5pbXVtQ21zVmVyc2lvbigpIHsgcmV0dXJuICcyLjItYmV0YTMnOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkgeyByZXR1cm4gWyAnQ0dFeHRlbnNpb25zJyA9PiAnMS41NC4xJyBdOyB9CgogICAgcHVibGljIGZ1bmN0aW9uIEluaXRpYWxpemVBZG1pbigpCiAgICB7CiAgICAgICAgJHNtYXJ0eSA9IENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldFNtYXJ0eSgpOwogICAgICAgICRzbWFydHktPnJlZ2lzdGVyX2Z1bmN0aW9uKCdjZ2JmX2Zvcm1fZXJyb3JzJywgWyAkdGhpcywgJ3NtYXJ0eV9jZ2JmX2dldF9lcnJvcnMnXSwgZmFsc2UgKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmb3JtJyxudWxsLCR0aGlzLT5MYW5nKCdwYXJhbV9mb3JtJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ25vZGF0ZWNoZWNrJywwLCR0aGlzLT5MYW5nKCdwYXJhbV9ub2RhdGVjaGVjaycpKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gSW5pdGlhbGl6ZUZyb250ZW5kKCkKICAgIHsKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZm9ybScsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9kYXRlY2hlY2snLENMRUFOX0lOVCk7CgogICAgICAgICRzbWFydHkgPSBDbXNBcHA6OmdldF9pbnN0YW5jZSgpLT5HZXRTbWFydHkoKTsKICAgICAgICAkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbignY2diZl9mb3JtX2Vycm9ycycsIFsgJHRoaXMsICdzbWFydHlfY2diZl9nZXRfZXJyb3JzJ10sIGZhbHNlICk7CiAgICAgICAgJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ2NnYmZfc2V0JywgWyAkdGhpcywgJ3NtYXJ0eV9jZ2JmX3NldCddLCBmYWxzZSApOwogICAgICAgIGlmKCAhZGVmaW5lZCgnQ0dCRl9HVUlEX1RPS0VOJykgKSBkZWZpbmUoJ0NHQkZfR1VJRF9UT0tFTicsbWQ1KF9fRklMRV9fKSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF90cmFuc2xhdG9yKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnRyYW5zbGF0b3I7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHJlZ2lzdGVyX2Zvcm10ZXN0KCBcQ0dCZXR0ZXJGb3Jtc1xGb3JtVmFsaWRhdG9yXEZvcm1UZXN0ZXJUZXN0ICR0ZXN0ICkKICAgIHsKICAgICAgICAkdGhpcy0+X2Zvcm10ZXN0c1tdID0gJHRlc3Q7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHJlZ2lzdGVyX2Vhcmx5X2Zvcm10ZXN0KCBcQ0dCZXR0ZXJGb3Jtc1xGb3JtVmFsaWRhdG9yXEZvcm1UZXN0ZXJUZXN0ICR0ZXN0ICkKICAgIHsKICAgICAgICAkdGhpcy0+X2Vhcmx5X2Zvcm10ZXN0c1tdID0gJHRlc3Q7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF9mb3JtdGVzdHMoKQogICAgewogICAgICAgIHJldHVybiBhcnJheV9tZXJnZSggJHRoaXMtPl9lYXJseV9mb3JtdGVzdHMsICR0aGlzLT5fZm9ybXRlc3RzICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHJlZ2lzdGVyX3ZhbGlkYXRpb25fZWRpdG9yKCBWYWxpZGF0aW9uRWRpdG9yICRvYmogKQogICAgewogICAgICAgICRjbGFzcyA9IGdldF9jbGFzcygkb2JqKTsKICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X3ZhbGlkYXRpb25fZWRpdG9ycyBhcyAkb25lICkgewogICAgICAgICAgICAkY2xhc3MyID0gZ2V0X2NsYXNzKCRvbmUpOwogICAgICAgICAgICBpZiggJGNsYXNzID09ICRjbGFzczIgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdFYWNoIHZhbGlkYXRpb24gZWRpdG9yIGNsYXNzIGNhbiBvbmx5IGJlIHJlZ2lzdGVyZWQgb25jZScpOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+X3ZhbGlkYXRpb25fZWRpdG9yc1skY2xhc3NdID0gJG9iajsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ZhbGlkYXRpb25fZWRpdG9yKCAkY2xhc3NuYW1lICkKICAgIHsKICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl92YWxpZGF0aW9uX2VkaXRvcnNbJGNsYXNzbmFtZV0pICkgcmV0dXJuICR0aGlzLT5fdmFsaWRhdGlvbl9lZGl0b3JzWyRjbGFzc25hbWVdOwogICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0NvdWxkIG5vdCBmaW5kIGEgZmllbGQgdmFsaWRhdGlvbiBlZGl0b3Igb2YgdHlwZSAnLiRjbGFzc25hbWUpOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfdmFsaWRhdGlvbl9lZGl0b3JzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl92YWxpZGF0aW9uX2VkaXRvcnM7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHJlZ2lzdGVyX2Rpc3Bvc2l0aW9uX2VkaXRvciggRGlzcG9zaXRpb25FZGl0b3IgJG9iaiApCiAgICB7CiAgICAgICAgJGNsYXNzID0gZ2V0X2NsYXNzKCRvYmopOwogICAgICAgIGZvcmVhY2goICR0aGlzLT5fZGlzcF9lZGl0b3JzIGFzICRvbmUgKSB7CiAgICAgICAgICAgICRjbGFzczIgPSBnZXRfY2xhc3MoJG9uZSk7CiAgICAgICAgICAgIGlmKCAkY2xhc3MgPT0gJGNsYXNzMiApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0VhY2ggZGlzcG9zaXRpb24gZWRpdG9yIGNsYXNzIGNhbiBvbmx5IGJlIHJlZ2lzdGVyZWQgb25jZScpOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+X2Rpc3BfZWRpdG9yc1skY2xhc3NdID0gJG9iajsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2Rpc3Bvc2l0aW9uX2VkaXRvcnMoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2Rpc3BfZWRpdG9yczsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2Rpc3Bvc2l0aW9uX2VkaXRvciggJGNsYXNzbmFtZSApCiAgICB7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGlzcF9lZGl0b3JzWyRjbGFzc25hbWVdKSApIHJldHVybiAkdGhpcy0+X2Rpc3BfZWRpdG9yc1skY2xhc3NuYW1lXTsKICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCBhIGRpc3Bvc2l0aW9uIGVkaXRvciBvZiB0eXBlICcuJGNsYXNzbmFtZSk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHJlZ2lzdGVyX2J1aWx0aW5fZm9ybV90ZXN0cygpCiAgICB7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX2Vhcmx5X2Zvcm10ZXN0KCBuZXcgXENHQmV0dGVyRm9ybXNcRm9ybVZhbGlkYXRvclxUZW1wbGF0ZVZhbGlkYXRvciggJHRoaXMtPnRyYW5zbGF0b3IgKSApOwogICAgICAgICR0aGlzLT5yZWdpc3Rlcl9lYXJseV9mb3JtdGVzdCggbmV3IFxDR0JldHRlckZvcm1zXEZvcm1WYWxpZGF0b3JcRm9ybVRhZ1ZhbGlkYXRvciggJHRoaXMtPnRyYW5zbGF0b3IgKSApOwogICAgICAgICR0aGlzLT5yZWdpc3Rlcl9lYXJseV9mb3JtdGVzdCggbmV3IFxDR0JldHRlckZvcm1zXEZvcm1WYWxpZGF0b3JcRm9ybU1pc3NpbmdOYW1lVmFsaWRhdG9yKCAkdGhpcy0+dHJhbnNsYXRvciApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX2Vhcmx5X2Zvcm10ZXN0KCBuZXcgXENHQmV0dGVyRm9ybXNcRm9ybVZhbGlkYXRvclxGb3JtTWlzc2luZ0xhYmVsVmFsaWRhdG9yKCAkdGhpcy0+dHJhbnNsYXRvciApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX2Vhcmx5X2Zvcm10ZXN0KCBuZXcgXENHQmV0dGVyRm9ybXNcRm9ybVZhbGlkYXRvclxGb3JtTWlzc2luZ1ZhbHVlVmFsaWRhdG9yKCAkdGhpcy0+dHJhbnNsYXRvciApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX2Vhcmx5X2Zvcm10ZXN0KCBuZXcgXENHQmV0dGVyRm9ybXNcRm9ybVZhbGlkYXRvclxGb3JtRHVwbGljYXRlSWRWYWxpZGF0b3IoICR0aGlzLT50cmFuc2xhdG9yICkgKTsKICAgICAgICAkdGhpcy0+cmVnaXN0ZXJfZWFybHlfZm9ybXRlc3QoIG5ldyBcQ0dCZXR0ZXJGb3Jtc1xGb3JtVmFsaWRhdG9yXEZvcm1EdXBsaWNhdGVOYW1lVmFsaWRhdG9yKCAkdGhpcy0+dHJhbnNsYXRvciApICk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHJlZ2lzdGVyX2J1aWx0aW5fdmFsaWRhdGlvbl9lZGl0b3JzKCkKICAgIHsKICAgICAgICAvLyBjb21wdXRlZCBmaWVsZCAob3V0cHV0cyBhIHN0cmluZykKICAgICAgICAkdGhpcy0+cmVnaXN0ZXJfdmFsaWRhdGlvbl9lZGl0b3IoIG5ldyBcQ0dCZXR0ZXJGb3Jtc1xGaWVsZFZhbGlkYXRvcnNcSHRtbERldGVjdGlvblZhbGlkYXRpb25FZGl0b3IoICR0aGlzICkgKTsKICAgICAgICAkdGhpcy0+cmVnaXN0ZXJfdmFsaWRhdGlvbl9lZGl0b3IoIG5ldyBcQ0dCZXR0ZXJGb3Jtc1xGaWVsZFZhbGlkYXRvcnNcUmVxdWlyZWRGaWVsZFZhbGlkYXRpb25FZGl0b3IoICR0aGlzICkgKTsKICAgICAgICAkdGhpcy0+cmVnaXN0ZXJfdmFsaWRhdGlvbl9lZGl0b3IoIG5ldyBcQ0dCZXR0ZXJGb3Jtc1xGaWVsZFZhbGlkYXRvcnNcU2VsZWN0RmllbGRWYWxpZGF0aW9uRWRpdG9yKCAkdGhpcyApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX3ZhbGlkYXRpb25fZWRpdG9yKCBuZXcgXENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzXEZpbGVWYWxpZGF0aW9uRWRpdG9yKCAkdGhpcyApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX3ZhbGlkYXRpb25fZWRpdG9yKCBuZXcgXENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzXEludGVnZXJGaWVsZFZhbGlkYXRpb25FZGl0b3IoICR0aGlzICkgKTsKICAgICAgICAkdGhpcy0+cmVnaXN0ZXJfdmFsaWRhdGlvbl9lZGl0b3IoIG5ldyBcQ0dCZXR0ZXJGb3Jtc1xGaWVsZFZhbGlkYXRvcnNcRmxvYXRGaWVsZFZhbGlkYXRpb25FZGl0b3IoICR0aGlzICkgKTsKICAgICAgICAkdGhpcy0+cmVnaXN0ZXJfdmFsaWRhdGlvbl9lZGl0b3IoIG5ldyBcQ0dCZXR0ZXJGb3Jtc1xGaWVsZFZhbGlkYXRvcnNcRW1haWxQcmltaXRpdmVWYWxpZGF0aW9uRWRpdG9yKCAkdGhpcyApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX3ZhbGlkYXRpb25fZWRpdG9yKCBuZXcgXENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzXERhdGVQcmltaXRpdmVWYWxpZGF0aW9uRWRpdG9yKCAkdGhpcyApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX3ZhbGlkYXRpb25fZWRpdG9yKCBuZXcgXENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzXFJlZ2V4RmllbGRWYWxpZGF0aW9uRWRpdG9yKCAkdGhpcyApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX3ZhbGlkYXRpb25fZWRpdG9yKCBuZXcgXENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzXEVtYWlsRmllbGRWYWxpZGF0aW9uRWRpdG9yKCAkdGhpcyApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX3ZhbGlkYXRpb25fZWRpdG9yKCBuZXcgXENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzXFRlbXBsYXRlVmFsaWRhdGlvbkVkaXRvciggJHRoaXMgKSApOwogICAgICAgICR0aGlzLT5yZWdpc3Rlcl92YWxpZGF0aW9uX2VkaXRvciggbmV3IFxDR0JldHRlckZvcm1zXEZpZWxkVmFsaWRhdG9yc1xDb21wdXRlZFZhbHVlRWRpdG9yKCAkdGhpcyApICk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHJlZ2lzdGVyX2J1aWx0aW5fZGlzcF9lZGl0b3JzKCkKICAgIHsKICAgICAgICAvLyBhZGQgZGlzcG9zZSB0byBzZXNzaW9uCiAgICAgICAgLy8gYWRkIHJlZGlyZWN0IGJhc2VkIG9uIGRyb3Bkb3duCiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX2Rpc3Bvc2l0aW9uX2VkaXRvciggbmV3IFxDR0JldHRlckZvcm1zXERpc3Bvc2l0aW9uc1xEcm9wZG93bkZpbGVEaXNwb3NpdGlvbkVkaXRvciggJHRoaXMgKSApOwogICAgICAgICR0aGlzLT5yZWdpc3Rlcl9kaXNwb3NpdGlvbl9lZGl0b3IoIG5ldyBcQ0dCZXR0ZXJGb3Jtc1xEaXNwb3NpdGlvbnNcVW5pcXVlRmlsZURpc3Bvc2l0aW9uRWRpdG9yKCAkdGhpcyApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX2Rpc3Bvc2l0aW9uX2VkaXRvciggbmV3IFxDR0JldHRlckZvcm1zXERpc3Bvc2l0aW9uc1xEcm9wZG93bkVtYWlsRGlzcG9zaXRpb25FZGl0b3IoICR0aGlzICkgKTsKICAgICAgICAkdGhpcy0+cmVnaXN0ZXJfZGlzcG9zaXRpb25fZWRpdG9yKCBuZXcgXENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zXEZsYXRGaWxlRGlzcG9zaXRpb25FZGl0b3IoICR0aGlzICkgKTsKICAgICAgICAkdGhpcy0+cmVnaXN0ZXJfZGlzcG9zaXRpb25fZWRpdG9yKCBuZXcgXENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zXEVtYWlsRml4ZWRBZGRyZXNzZXNEaXNwb3NpdGlvbkVkaXRvciggJHRoaXMgKSApOwogICAgICAgICR0aGlzLT5yZWdpc3Rlcl9kaXNwb3NpdGlvbl9lZGl0b3IoIG5ldyBcQ0dCZXR0ZXJGb3Jtc1xEaXNwb3NpdGlvbnNcRW1haWxBZG1pbldpdGhSZXBseVRvRWRpdG9yKCAkdGhpcyApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX2Rpc3Bvc2l0aW9uX2VkaXRvciggbmV3IFxDR0JldHRlckZvcm1zXERpc3Bvc2l0aW9uc1xFbWFpbFVzZXJBZGRyZXNzRGlzcG9zaXRpb25FZGl0b3IoICR0aGlzICkgKTsKICAgICAgICAkdGhpcy0+cmVnaXN0ZXJfZGlzcG9zaXRpb25fZWRpdG9yKCBuZXcgXENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zXFJlZGlyZWN0VVJMRGlzcG9zaXRpb25FZGl0b3IoICR0aGlzICkgKTsKICAgICAgICAkdGhpcy0+cmVnaXN0ZXJfZGlzcG9zaXRpb25fZWRpdG9yKCBuZXcgXENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zXENvbXB1dGVkUGFnZURpc3Bvc2l0aW9uRWRpdG9yKCAkdGhpcyApICk7CiAgICAgICAgJHRoaXMtPnJlZ2lzdGVyX2Rpc3Bvc2l0aW9uX2VkaXRvciggbmV3IFxDR0JldHRlckZvcm1zXERpc3Bvc2l0aW9uc1xXZWJIb29rRGlzcG9zaXRpb25FZGl0b3IoICR0aGlzICkgKTsKICAgICAgICAkdGhpcy0+cmVnaXN0ZXJfZGlzcG9zaXRpb25fZWRpdG9yKCBuZXcgXENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zXFNlc3Npb25EaXNwb3NpdGlvbkVkaXRvciggJHRoaXMgKSApOwogICAgICAgICR0aGlzLT5yZWdpc3Rlcl9kaXNwb3NpdGlvbl9lZGl0b3IoIG5ldyBcQ0dCZXR0ZXJGb3Jtc1xEaXNwb3NpdGlvbnNcU3RvcERpc3Bvc2luZ0Rpc3Bvc2l0aW9uRWRpdG9yKCAkdGhpcyApICk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGZpbmRfZWRpdG9yX2J5X2Rpc3Bvc2l0aW9uKCBEaXNwb3NpdGlvbiAkZGlzcCApCiAgICB7CiAgICAgICAgJGNsYXNzID0gZ2V0X2NsYXNzKCRkaXNwKTsKICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X2Rpc3BfZWRpdG9ycyBhcyAkZWRpdG9yICkgewogICAgICAgICAgICBpZiggJGVkaXRvci0+Z2V0X291dHB1dGNsYXNzKCkgPT0gJGNsYXNzICkgcmV0dXJuICRlZGl0b3I7CiAgICAgICAgfQogICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ1VuYWJsZSB0byBmaW5kIGFuIGVkaXRvciBmb3IgZGlzcG9zaXRpb25zIG9mIHR5cGUgJy4kY2xhc3MpOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBmaW5kX2VkaXRvcl9ieV92YWxpZGF0aW9uKCBWYWxpZGF0aW9uICRvYmogKQogICAgewogICAgICAgICRjbGFzcyA9IGdldF9jbGFzcygkb2JqKTsKICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X3ZhbGlkYXRpb25fZWRpdG9ycyBhcyAkZWRpdG9yICkgewogICAgICAgICAgICBpZiggJGVkaXRvci0+Z2V0X291dHB1dGNsYXNzKCkgPT0gJGNsYXNzICkgcmV0dXJuICRlZGl0b3I7CiAgICAgICAgfQogICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ1VuYWJsZSB0byBmaW5kIGFuIGVkaXRvciBmb3IgYSB2YWxpZGF0aW9uIG9mIHR5cGUgJy4kY2xhc3MpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0aW9uX2hhc19lZGl0b3IoIFZhbGlkYXRpb24gJG9iaiApCiAgICB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgJGVkaXRvciA9ICR0aGlzLT5maW5kX2VkaXRvcl9ieV92YWxpZGF0aW9uKCRvYmopOwogICAgICAgICAgICByZXR1cm4gJGVkaXRvci0+aGFzX2ludGVyZmFjZSgpOwogICAgICAgIH0KICAgICAgICBjYXRjaCggXExvZ2ljRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAvLyBkbyBub3RoaW5nCiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcG9zaXRpb25fZGlzcGxheXN0cmluZyggRGlzcG9zaXRpb24gJGRpc3AgKQogICAgewogICAgICAgICRlZGl0b3IgPSAkdGhpcy0+ZmluZF9lZGl0b3JfYnlfZGlzcG9zaXRpb24oICRkaXNwICk7CiAgICAgICAgJGVkaXRvci0+c2V0X2Rpc3Bvc2l0aW9uKCAkZGlzcCApOwogICAgICAgIHJldHVybiAkZWRpdG9yLT5nZXRfZGlzcGxheXN0cmluZygpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdmFsaWRhdGlvbl9kaXNwbGF5c3RyaW5nKCBWYWxpZGF0aW9uICRvYmogKQogICAgewogICAgICAgICRlZGl0b3IgPSAkdGhpcy0+ZmluZF9lZGl0b3JfYnlfdmFsaWRhdGlvbiggJG9iaiApOwogICAgICAgICRlZGl0b3ItPnNldF92YWxpZGF0aW9uKCAkb2JqICk7CiAgICAgICAgcmV0dXJuICRlZGl0b3ItPmdldF9kaXNwbGF5c3RyaW5nKCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9jYXB0Y2hhX3Byb3ZpZGVyKCBJQ2FwdGNoYVByb3ZpZGVyICRwcm92aWRlciApCiAgICB7CiAgICAgICAgJHRoaXMtPl9jYXB0Y2hhX3Byb3ZpZGVyID0gJHByb3ZpZGVyOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfY2FwdGNoYV9wcm92aWRlcigpCiAgICB7CiAgICAgICAgaWYoICR0aGlzLT5fY2FwdGNoYV9wcm92aWRlciApIHJldHVybiAkdGhpcy0+X2NhcHRjaGFfcHJvdmlkZXI7CiAgICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NhcHRjaGEnKTsKICAgICAgICBpZiggJG1vZCApIHsKICAgICAgICAgICAgJHByb3ZpZGVyID0gbmV3IFxDR0JldHRlckZvcm1zXENhcHRjaGFNb2R1bGVQcm92aWRlciggJHRoaXMsICRtb2QgKTsKICAgICAgICAgICAgcmV0dXJuICRwcm92aWRlcjsKICAgICAgICB9CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF9mb3JtKCAkZ3VpZCApCiAgICB7CiAgICAgICAgJG91dCA9IFxDR0JldHRlckZvcm1zXHV0aWxzOjpyZXRyaWV2ZV9vYmplY3QoICRndWlkICk7CiAgICAgICAgaWYoICEgJG91dCBpbnN0YW5jZW9mIFxDR0JldHRlckZvcm1zXEZvcm0gKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCAnQ291bGQgbm90IHJldHJpZXZlIGZvcm0gb2JqZWN0JyApOwogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBzdG9yZV9mb3JtKCBcQ0dCZXR0ZXJGb3Jtc1xGb3JtICRmb3JtLCAkZ3VpZCA9IG51bGwgKQogICAgewogICAgICAgIHJldHVybiBcQ0dCZXR0ZXJGb3Jtc1x1dGlsczo6c3RvcmVfb2JqZWN0KCAkZm9ybSwgJGd1aWQgKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZmluaXNoX2VkaXRpbmdfdmFsaWRhdGlvbiggXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgJGZvcm1fZ3VpZCwgVmFsaWRhdGlvbiAkdmFsaWRhdG9yLCAkdmFsaWRhdG9yX2d1aWQgKQogICAgewogICAgICAgICRmb3JtX2d1aWQgPSAkdGhpcy0+c3RvcmVfZm9ybSggJGZvcm0sICRmb3JtX2d1aWQgKTsKICAgICAgICAkdmFsaWRhdG9yX2d1aWQgPSBcQ0dCZXR0ZXJGb3Jtc1x1dGlsczo6c3RvcmVfb2JqZWN0KCAkdmFsaWRhdG9yLCAkdmFsaWRhdG9yX2d1aWQgKTsKICAgICAgICAkdGhpcy0+U2V0Q3VycmVudFRhYigndmFsaWRhdG9ycycpOwogICAgICAgICR0aGlzLT5SZWRpcmVjdCggJ20xXycsICdhZG1pbl9lZGl0X2Zvcm0nLCAnJywgWyAnZm9ybV9ndWlkJz0+JGZvcm1fZ3VpZCwgJ3ZhbGlkYXRvcl9ndWlkJz0+JHZhbGlkYXRvcl9ndWlkIF0gKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZmluaXNoX2VkaXRpbmdfZGlzcG9zaXRpb24oIFxDR0JldHRlckZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsIERpc3Bvc2l0aW9uICRkaXNwLCAkZGlzcF9ndWlkICkKICAgIHsKICAgICAgICAkZm9ybV9ndWlkID0gJHRoaXMtPnN0b3JlX2Zvcm0oICRmb3JtLCAkZm9ybV9ndWlkICk7CiAgICAgICAgJGRpc3BfZ3VpZCA9IFxDR0JldHRlckZvcm1zXHV0aWxzOjpzdG9yZV9vYmplY3QoICRkaXNwLCAkZGlzcF9ndWlkICk7CiAgICAgICAgJHRoaXMtPlNldEN1cnJlbnRUYWIoICdoYW5kbGVycycgKTsKICAgICAgICAkdGhpcy0+UmVkaXJlY3QoICdtMV8nLCAnYWRtaW5fZWRpdF9mb3JtJywgJycsIFsgJ2Zvcm1fZ3VpZCc9PiRmb3JtX2d1aWQsICdkaXNwX2d1aWQnPT4kZGlzcF9ndWlkIF0gKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNtYXJ0eV9jZ2JmX3NldCggJHBhcmFtcywgJHRlbXBsYXRlICkKICAgIHsKICAgICAgICBpZiggISR0aGlzLT5faW5fcHJlcmVuZGVyICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCdjZ2JmX3NldCBpcyBvbmx5IHZhbGlkIHdoZW4gdXNlZCBpbiB0aGUgcHJlcmVuZGVyIGxvZ2ljIGZpZWxkLicpOwoKICAgICAgICAka2V5ID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdrJyk7CiAgICAgICAgJGtleSA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywna2V5Jywka2V5KTsKICAgICAgICAka2V5ID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdmbGQnLCRrZXkpOwogICAgICAgICRrZXkgPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2ZpZWxkJywka2V5KTsKCiAgICAgICAgJHZhbCA9IFxjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCd2Jyk7CiAgICAgICAgJHZhbCA9IFxjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCd2YWwnLCR2YWwpOwogICAgICAgICR2YWwgPSBcY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywndmFsdWUnLCR2YWwpOwogICAgICAgICR0aGlzLT5fcHJlcmVuZGVyX3ZhcnNbJGtleV0gPSAkdmFsOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc21hcnR5X2NnYmZfZ2V0X2Vycm9ycyggJHBhcmFtcywgJHRlbXBsYXRlICkKICAgIHsKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgaWYoIFxjZ2VfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdmdWxsJykgKSB7CiAgICAgICAgICAgICRvdXQgPSAkdGhpcy0+X3JlcXVlc3RfZXJyb3JzOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRoaXMtPl9yZXF1ZXN0X2Vycm9ycyk7ICRpKysgKSB7CiAgICAgICAgICAgICAgICAkb2JqID0gJHRoaXMtPl9yZXF1ZXN0X2Vycm9yc1skaV07CiAgICAgICAgICAgICAgICAkb3V0W10gPSAkb2JqLT5tc2c7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICRhc3NpZ24gPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2Fzc2lnbicpOwogICAgICAgIGlmKCAkYXNzaWduICkgewogICAgICAgICAgICAkdGVtcGxhdGUtPmFzc2lnbigkYXNzaWduLCRvdXQpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAkb3V0OwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB0cGxfdHlwZV9sYW5nX2NhbGxiYWNrKCRzdHIpCiAgICB7CiAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dCZXR0ZXJGb3JtcycpOwogICAgICAgICRzdHIgPSBzdHJfcmVwbGFjZSgnICcsJ18nLCRzdHIpOwogICAgICAgIGlmKCBpc19vYmplY3QoJG1vZCkgKSByZXR1cm4gJG1vZC0+TGFuZygndHlwZV8nLiRzdHIpOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHRwbF90eXBlX2hlbHBfY2FsbGJhY2soKQogICAgewogICAgICAgIHJldHVybiBmaWxlX2dldF9jb250ZW50cyhfX0RJUl9fLicvZG9jL3RlbXBsYXRlX2hlbHAuaW5jJyk7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/doc/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMiwgSnVuZSAxOTkxCgogQ29weXJpZ2h0IChDKSAxOTg5LCAxOTkxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKIEV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcwogb2YgdGhpcyBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcgaXQgaXMgbm90IGFsbG93ZWQuCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJlYW1ibGUKCiAgVGhlIGxpY2Vuc2VzIGZvciBtb3N0IHNvZnR3YXJlIGFyZSBkZXNpZ25lZCB0byB0YWtlIGF3YXkgeW91cgpmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgaXQuICBCeSBjb250cmFzdCwgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwpMaWNlbnNlIGlzIGludGVuZGVkIHRvIGd1YXJhbnRlZSB5b3VyIGZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZSBmcmVlCnNvZnR3YXJlLS10byBtYWtlIHN1cmUgdGhlIHNvZnR3YXJlIGlzIGZyZWUgZm9yIGFsbCBpdHMgdXNlcnMuICBUaGlzCkdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXBwbGllcyB0byBtb3N0IG9mIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24ncyBzb2Z0d2FyZSBhbmQgdG8gYW55IG90aGVyIHByb2dyYW0gd2hvc2UgYXV0aG9ycyBjb21taXQgdG8KdXNpbmcgaXQuICAoU29tZSBvdGhlciBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gc29mdHdhcmUgaXMgY292ZXJlZCBieQp0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGluc3RlYWQuKSAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoaXMgc2VydmljZSBpZiB5b3Ugd2lzaCksIHRoYXQgeW91IHJlY2VpdmUgc291cmNlIGNvZGUgb3IgY2FuIGdldCBpdAppZiB5b3Ugd2FudCBpdCwgdGhhdCB5b3UgY2FuIGNoYW5nZSB0aGUgc29mdHdhcmUgb3IgdXNlIHBpZWNlcyBvZiBpdAppbiBuZXcgZnJlZSBwcm9ncmFtczsgYW5kIHRoYXQgeW91IGtub3cgeW91IGNhbiBkbyB0aGVzZSB0aGluZ3MuCgogIFRvIHByb3RlY3QgeW91ciByaWdodHMsIHdlIG5lZWQgdG8gbWFrZSByZXN0cmljdGlvbnMgdGhhdCBmb3JiaWQKYW55b25lIHRvIGRlbnkgeW91IHRoZXNlIHJpZ2h0cyBvciB0byBhc2sgeW91IHRvIHN1cnJlbmRlciB0aGUgcmlnaHRzLgpUaGVzZSByZXN0cmljdGlvbnMgdHJhbnNsYXRlIHRvIGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBmb3IgeW91IGlmIHlvdQpkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUgc29mdHdhcmUsIG9yIGlmIHlvdSBtb2RpZnkgaXQuCgogIEZvciBleGFtcGxlLCBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2Ygc3VjaCBhIHByb2dyYW0sIHdoZXRoZXIKZ3JhdGlzIG9yIGZvciBhIGZlZSwgeW91IG11c3QgZ2l2ZSB0aGUgcmVjaXBpZW50cyBhbGwgdGhlIHJpZ2h0cyB0aGF0CnlvdSBoYXZlLiAgWW91IG11c3QgbWFrZSBzdXJlIHRoYXQgdGhleSwgdG9vLCByZWNlaXZlIG9yIGNhbiBnZXQgdGhlCnNvdXJjZSBjb2RlLiAgQW5kIHlvdSBtdXN0IHNob3cgdGhlbSB0aGVzZSB0ZXJtcyBzbyB0aGV5IGtub3cgdGhlaXIKcmlnaHRzLgoKICBXZSBwcm90ZWN0IHlvdXIgcmlnaHRzIHdpdGggdHdvIHN0ZXBzOiAoMSkgY29weXJpZ2h0IHRoZSBzb2Z0d2FyZSwgYW5kCigyKSBvZmZlciB5b3UgdGhpcyBsaWNlbnNlIHdoaWNoIGdpdmVzIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksCmRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGUgc29mdHdhcmUuCgogIEFsc28sIGZvciBlYWNoIGF1dGhvcidzIHByb3RlY3Rpb24gYW5kIG91cnMsIHdlIHdhbnQgdG8gbWFrZSBjZXJ0YWluCnRoYXQgZXZlcnlvbmUgdW5kZXJzdGFuZHMgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhpcyBmcmVlCnNvZnR3YXJlLiAgSWYgdGhlIHNvZnR3YXJlIGlzIG1vZGlmaWVkIGJ5IHNvbWVvbmUgZWxzZSBhbmQgcGFzc2VkIG9uLCB3ZQp3YW50IGl0cyByZWNpcGllbnRzIHRvIGtub3cgdGhhdCB3aGF0IHRoZXkgaGF2ZSBpcyBub3QgdGhlIG9yaWdpbmFsLCBzbwp0aGF0IGFueSBwcm9ibGVtcyBpbnRyb2R1Y2VkIGJ5IG90aGVycyB3aWxsIG5vdCByZWZsZWN0IG9uIHRoZSBvcmlnaW5hbAphdXRob3JzJyByZXB1dGF0aW9ucy4KCiAgRmluYWxseSwgYW55IGZyZWUgcHJvZ3JhbSBpcyB0aHJlYXRlbmVkIGNvbnN0YW50bHkgYnkgc29mdHdhcmUKcGF0ZW50cy4gIFdlIHdpc2ggdG8gYXZvaWQgdGhlIGRhbmdlciB0aGF0IHJlZGlzdHJpYnV0b3JzIG9mIGEgZnJlZQpwcm9ncmFtIHdpbGwgaW5kaXZpZHVhbGx5IG9idGFpbiBwYXRlbnQgbGljZW5zZXMsIGluIGVmZmVjdCBtYWtpbmcgdGhlCnByb2dyYW0gcHJvcHJpZXRhcnkuICBUbyBwcmV2ZW50IHRoaXMsIHdlIGhhdmUgbWFkZSBpdCBjbGVhciB0aGF0IGFueQpwYXRlbnQgbXVzdCBiZSBsaWNlbnNlZCBmb3IgZXZlcnlvbmUncyBmcmVlIHVzZSBvciBub3QgbGljZW5zZWQgYXQgYWxsLgoKICBUaGUgcHJlY2lzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW9uIGFuZAptb2RpZmljYXRpb24gZm9sbG93LgoKICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgQ09QWUlORywgRElTVFJJQlVUSU9OIEFORCBNT0RJRklDQVRJT04KCiAgMC4gVGhpcyBMaWNlbnNlIGFwcGxpZXMgdG8gYW55IHByb2dyYW0gb3Igb3RoZXIgd29yayB3aGljaCBjb250YWlucwphIG5vdGljZSBwbGFjZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXIgc2F5aW5nIGl0IG1heSBiZSBkaXN0cmlidXRlZAp1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgVGhlICJQcm9ncmFtIiwgYmVsb3csCnJlZmVycyB0byBhbnkgc3VjaCBwcm9ncmFtIG9yIHdvcmssIGFuZCBhICJ3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtIgptZWFucyBlaXRoZXIgdGhlIFByb2dyYW0gb3IgYW55IGRlcml2YXRpdmUgd29yayB1bmRlciBjb3B5cmlnaHQgbGF3Ogp0aGF0IGlzIHRvIHNheSwgYSB3b3JrIGNvbnRhaW5pbmcgdGhlIFByb2dyYW0gb3IgYSBwb3J0aW9uIG9mIGl0LAplaXRoZXIgdmVyYmF0aW0gb3Igd2l0aCBtb2RpZmljYXRpb25zIGFuZC9vciB0cmFuc2xhdGVkIGludG8gYW5vdGhlcgpsYW5ndWFnZS4gIChIZXJlaW5hZnRlciwgdHJhbnNsYXRpb24gaXMgaW5jbHVkZWQgd2l0aG91dCBsaW1pdGF0aW9uIGluCnRoZSB0ZXJtICJtb2RpZmljYXRpb24iLikgIEVhY2ggbGljZW5zZWUgaXMgYWRkcmVzc2VkIGFzICJ5b3UiLgoKQWN0aXZpdGllcyBvdGhlciB0aGFuIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQgbW9kaWZpY2F0aW9uIGFyZSBub3QKY292ZXJlZCBieSB0aGlzIExpY2Vuc2U7IHRoZXkgYXJlIG91dHNpZGUgaXRzIHNjb3BlLiAgVGhlIGFjdCBvZgpydW5uaW5nIHRoZSBQcm9ncmFtIGlzIG5vdCByZXN0cmljdGVkLCBhbmQgdGhlIG91dHB1dCBmcm9tIHRoZSBQcm9ncmFtCmlzIGNvdmVyZWQgb25seSBpZiBpdHMgY29udGVudHMgY29uc3RpdHV0ZSBhIHdvcmsgYmFzZWQgb24gdGhlClByb2dyYW0gKGluZGVwZW5kZW50IG9mIGhhdmluZyBiZWVuIG1hZGUgYnkgcnVubmluZyB0aGUgUHJvZ3JhbSkuCldoZXRoZXIgdGhhdCBpcyB0cnVlIGRlcGVuZHMgb24gd2hhdCB0aGUgUHJvZ3JhbSBkb2VzLgoKICAxLiBZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzIG9mIHRoZSBQcm9ncmFtJ3MKc291cmNlIGNvZGUgYXMgeW91IHJlY2VpdmUgaXQsIGluIGFueSBtZWRpdW0sIHByb3ZpZGVkIHRoYXQgeW91CmNvbnNwaWN1b3VzbHkgYW5kIGFwcHJvcHJpYXRlbHkgcHVibGlzaCBvbiBlYWNoIGNvcHkgYW4gYXBwcm9wcmlhdGUKY29weXJpZ2h0IG5vdGljZSBhbmQgZGlzY2xhaW1lciBvZiB3YXJyYW50eTsga2VlcCBpbnRhY3QgYWxsIHRoZQpub3RpY2VzIHRoYXQgcmVmZXIgdG8gdGhpcyBMaWNlbnNlIGFuZCB0byB0aGUgYWJzZW5jZSBvZiBhbnkgd2FycmFudHk7CmFuZCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBQcm9ncmFtIGEgY29weSBvZiB0aGlzIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGUgUHJvZ3JhbS4KCllvdSBtYXkgY2hhcmdlIGEgZmVlIGZvciB0aGUgcGh5c2ljYWwgYWN0IG9mIHRyYW5zZmVycmluZyBhIGNvcHksIGFuZAp5b3UgbWF5IGF0IHlvdXIgb3B0aW9uIG9mZmVyIHdhcnJhbnR5IHByb3RlY3Rpb24gaW4gZXhjaGFuZ2UgZm9yIGEgZmVlLgoKICAyLiBZb3UgbWF5IG1vZGlmeSB5b3VyIGNvcHkgb3IgY29waWVzIG9mIHRoZSBQcm9ncmFtIG9yIGFueSBwb3J0aW9uCm9mIGl0LCB0aHVzIGZvcm1pbmcgYSB3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtLCBhbmQgY29weSBhbmQKZGlzdHJpYnV0ZSBzdWNoIG1vZGlmaWNhdGlvbnMgb3Igd29yayB1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbiAxCmFib3ZlLCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgWW91IG11c3QgY2F1c2UgdGhlIG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzCiAgICBzdGF0aW5nIHRoYXQgeW91IGNoYW5nZWQgdGhlIGZpbGVzIGFuZCB0aGUgZGF0ZSBvZiBhbnkgY2hhbmdlLgoKICAgIGIpIFlvdSBtdXN0IGNhdXNlIGFueSB3b3JrIHRoYXQgeW91IGRpc3RyaWJ1dGUgb3IgcHVibGlzaCwgdGhhdCBpbgogICAgd2hvbGUgb3IgaW4gcGFydCBjb250YWlucyBvciBpcyBkZXJpdmVkIGZyb20gdGhlIFByb2dyYW0gb3IgYW55CiAgICBwYXJ0IHRoZXJlb2YsIHRvIGJlIGxpY2Vuc2VkIGFzIGEgd2hvbGUgYXQgbm8gY2hhcmdlIHRvIGFsbCB0aGlyZAogICAgcGFydGllcyB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLgoKICAgIGMpIElmIHRoZSBtb2RpZmllZCBwcm9ncmFtIG5vcm1hbGx5IHJlYWRzIGNvbW1hbmRzIGludGVyYWN0aXZlbHkKICAgIHdoZW4gcnVuLCB5b3UgbXVzdCBjYXVzZSBpdCwgd2hlbiBzdGFydGVkIHJ1bm5pbmcgZm9yIHN1Y2gKICAgIGludGVyYWN0aXZlIHVzZSBpbiB0aGUgbW9zdCBvcmRpbmFyeSB3YXksIHRvIHByaW50IG9yIGRpc3BsYXkgYW4KICAgIGFubm91bmNlbWVudCBpbmNsdWRpbmcgYW4gYXBwcm9wcmlhdGUgY29weXJpZ2h0IG5vdGljZSBhbmQgYQogICAgbm90aWNlIHRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgKG9yIGVsc2UsIHNheWluZyB0aGF0IHlvdSBwcm92aWRlCiAgICBhIHdhcnJhbnR5KSBhbmQgdGhhdCB1c2VycyBtYXkgcmVkaXN0cmlidXRlIHRoZSBwcm9ncmFtIHVuZGVyCiAgICB0aGVzZSBjb25kaXRpb25zLCBhbmQgdGVsbGluZyB0aGUgdXNlciBob3cgdG8gdmlldyBhIGNvcHkgb2YgdGhpcwogICAgTGljZW5zZS4gIChFeGNlcHRpb246IGlmIHRoZSBQcm9ncmFtIGl0c2VsZiBpcyBpbnRlcmFjdGl2ZSBidXQKICAgIGRvZXMgbm90IG5vcm1hbGx5IHByaW50IHN1Y2ggYW4gYW5ub3VuY2VtZW50LCB5b3VyIHdvcmsgYmFzZWQgb24KICAgIHRoZSBQcm9ncmFtIGlzIG5vdCByZXF1aXJlZCB0byBwcmludCBhbiBhbm5vdW5jZW1lbnQuKQoKVGhlc2UgcmVxdWlyZW1lbnRzIGFwcGx5IHRvIHRoZSBtb2RpZmllZCB3b3JrIGFzIGEgd2hvbGUuICBJZgppZGVudGlmaWFibGUgc2VjdGlvbnMgb2YgdGhhdCB3b3JrIGFyZSBub3QgZGVyaXZlZCBmcm9tIHRoZSBQcm9ncmFtLAphbmQgY2FuIGJlIHJlYXNvbmFibHkgY29uc2lkZXJlZCBpbmRlcGVuZGVudCBhbmQgc2VwYXJhdGUgd29ya3MgaW4KdGhlbXNlbHZlcywgdGhlbiB0aGlzIExpY2Vuc2UsIGFuZCBpdHMgdGVybXMsIGRvIG5vdCBhcHBseSB0byB0aG9zZQpzZWN0aW9ucyB3aGVuIHlvdSBkaXN0cmlidXRlIHRoZW0gYXMgc2VwYXJhdGUgd29ya3MuICBCdXQgd2hlbiB5b3UKZGlzdHJpYnV0ZSB0aGUgc2FtZSBzZWN0aW9ucyBhcyBwYXJ0IG9mIGEgd2hvbGUgd2hpY2ggaXMgYSB3b3JrIGJhc2VkCm9uIHRoZSBQcm9ncmFtLCB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoZSB3aG9sZSBtdXN0IGJlIG9uIHRoZSB0ZXJtcyBvZgp0aGlzIExpY2Vuc2UsIHdob3NlIHBlcm1pc3Npb25zIGZvciBvdGhlciBsaWNlbnNlZXMgZXh0ZW5kIHRvIHRoZQplbnRpcmUgd2hvbGUsIGFuZCB0aHVzIHRvIGVhY2ggYW5kIGV2ZXJ5IHBhcnQgcmVnYXJkbGVzcyBvZiB3aG8gd3JvdGUgaXQuCgpUaHVzLCBpdCBpcyBub3QgdGhlIGludGVudCBvZiB0aGlzIHNlY3Rpb24gdG8gY2xhaW0gcmlnaHRzIG9yIGNvbnRlc3QKeW91ciByaWdodHMgdG8gd29yayB3cml0dGVuIGVudGlyZWx5IGJ5IHlvdTsgcmF0aGVyLCB0aGUgaW50ZW50IGlzIHRvCmV4ZXJjaXNlIHRoZSByaWdodCB0byBjb250cm9sIHRoZSBkaXN0cmlidXRpb24gb2YgZGVyaXZhdGl2ZSBvcgpjb2xsZWN0aXZlIHdvcmtzIGJhc2VkIG9uIHRoZSBQcm9ncmFtLgoKSW4gYWRkaXRpb24sIG1lcmUgYWdncmVnYXRpb24gb2YgYW5vdGhlciB3b3JrIG5vdCBiYXNlZCBvbiB0aGUgUHJvZ3JhbQp3aXRoIHRoZSBQcm9ncmFtIChvciB3aXRoIGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSkgb24gYSB2b2x1bWUgb2YKYSBzdG9yYWdlIG9yIGRpc3RyaWJ1dGlvbiBtZWRpdW0gZG9lcyBub3QgYnJpbmcgdGhlIG90aGVyIHdvcmsgdW5kZXIKdGhlIHNjb3BlIG9mIHRoaXMgTGljZW5zZS4KCiAgMy4gWW91IG1heSBjb3B5IGFuZCBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIChvciBhIHdvcmsgYmFzZWQgb24gaXQsCnVuZGVyIFNlY3Rpb24gMikgaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtIHVuZGVyIHRoZSB0ZXJtcyBvZgpTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gZG8gb25lIG9mIHRoZSBmb2xsb3dpbmc6CgogICAgYSkgQWNjb21wYW55IGl0IHdpdGggdGhlIGNvbXBsZXRlIGNvcnJlc3BvbmRpbmcgbWFjaGluZS1yZWFkYWJsZQogICAgc291cmNlIGNvZGUsIHdoaWNoIG11c3QgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb25zCiAgICAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlOyBvciwKCiAgICBiKSBBY2NvbXBhbnkgaXQgd2l0aCBhIHdyaXR0ZW4gb2ZmZXIsIHZhbGlkIGZvciBhdCBsZWFzdCB0aHJlZQogICAgeWVhcnMsIHRvIGdpdmUgYW55IHRoaXJkIHBhcnR5LCBmb3IgYSBjaGFyZ2Ugbm8gbW9yZSB0aGFuIHlvdXIKICAgIGNvc3Qgb2YgcGh5c2ljYWxseSBwZXJmb3JtaW5nIHNvdXJjZSBkaXN0cmlidXRpb24sIGEgY29tcGxldGUKICAgIG1hY2hpbmUtcmVhZGFibGUgY29weSBvZiB0aGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZSwgdG8gYmUKICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVtCiAgICBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZTsgb3IsCgogICAgYykgQWNjb21wYW55IGl0IHdpdGggdGhlIGluZm9ybWF0aW9uIHlvdSByZWNlaXZlZCBhcyB0byB0aGUgb2ZmZXIKICAgIHRvIGRpc3RyaWJ1dGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZS4gIChUaGlzIGFsdGVybmF0aXZlIGlzCiAgICBhbGxvd2VkIG9ubHkgZm9yIG5vbmNvbW1lcmNpYWwgZGlzdHJpYnV0aW9uIGFuZCBvbmx5IGlmIHlvdQogICAgcmVjZWl2ZWQgdGhlIHByb2dyYW0gaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtIHdpdGggc3VjaAogICAgYW4gb2ZmZXIsIGluIGFjY29yZCB3aXRoIFN1YnNlY3Rpb24gYiBhYm92ZS4pCgpUaGUgc291cmNlIGNvZGUgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsgZm9yCm1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgRm9yIGFuIGV4ZWN1dGFibGUgd29yaywgY29tcGxldGUgc291cmNlCmNvZGUgbWVhbnMgYWxsIHRoZSBzb3VyY2UgY29kZSBmb3IgYWxsIG1vZHVsZXMgaXQgY29udGFpbnMsIHBsdXMgYW55CmFzc29jaWF0ZWQgaW50ZXJmYWNlIGRlZmluaXRpb24gZmlsZXMsIHBsdXMgdGhlIHNjcmlwdHMgdXNlZCB0bwpjb250cm9sIGNvbXBpbGF0aW9uIGFuZCBpbnN0YWxsYXRpb24gb2YgdGhlIGV4ZWN1dGFibGUuICBIb3dldmVyLCBhcyBhCnNwZWNpYWwgZXhjZXB0aW9uLCB0aGUgc291cmNlIGNvZGUgZGlzdHJpYnV0ZWQgbmVlZCBub3QgaW5jbHVkZQphbnl0aGluZyB0aGF0IGlzIG5vcm1hbGx5IGRpc3RyaWJ1dGVkIChpbiBlaXRoZXIgc291cmNlIG9yIGJpbmFyeQpmb3JtKSB3aXRoIHRoZSBtYWpvciBjb21wb25lbnRzIChjb21waWxlciwga2VybmVsLCBhbmQgc28gb24pIG9mIHRoZQpvcGVyYXRpbmcgc3lzdGVtIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHJ1bnMsIHVubGVzcyB0aGF0IGNvbXBvbmVudAppdHNlbGYgYWNjb21wYW5pZXMgdGhlIGV4ZWN1dGFibGUuCgpJZiBkaXN0cmlidXRpb24gb2YgZXhlY3V0YWJsZSBvciBvYmplY3QgY29kZSBpcyBtYWRlIGJ5IG9mZmVyaW5nCmFjY2VzcyB0byBjb3B5IGZyb20gYSBkZXNpZ25hdGVkIHBsYWNlLCB0aGVuIG9mZmVyaW5nIGVxdWl2YWxlbnQKYWNjZXNzIHRvIGNvcHkgdGhlIHNvdXJjZSBjb2RlIGZyb20gdGhlIHNhbWUgcGxhY2UgY291bnRzIGFzCmRpc3RyaWJ1dGlvbiBvZiB0aGUgc291cmNlIGNvZGUsIGV2ZW4gdGhvdWdoIHRoaXJkIHBhcnRpZXMgYXJlIG5vdApjb21wZWxsZWQgdG8gY29weSB0aGUgc291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLgoKICA0LiBZb3UgbWF5IG5vdCBjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2UsIG9yIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0KZXhjZXB0IGFzIGV4cHJlc3NseSBwcm92aWRlZCB1bmRlciB0aGlzIExpY2Vuc2UuICBBbnkgYXR0ZW1wdApvdGhlcndpc2UgdG8gY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlIG9yIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gaXMKdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIgdGhpcyBMaWNlbnNlLgpIb3dldmVyLCBwYXJ0aWVzIHdobyBoYXZlIHJlY2VpdmVkIGNvcGllcywgb3IgcmlnaHRzLCBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2Ugd2lsbCBub3QgaGF2ZSB0aGVpciBsaWNlbnNlcyB0ZXJtaW5hdGVkIHNvIGxvbmcgYXMgc3VjaApwYXJ0aWVzIHJlbWFpbiBpbiBmdWxsIGNvbXBsaWFuY2UuCgogIDUuIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UsIHNpbmNlIHlvdSBoYXZlIG5vdApzaWduZWQgaXQuICBIb3dldmVyLCBub3RoaW5nIGVsc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIG1vZGlmeSBvcgpkaXN0cmlidXRlIHRoZSBQcm9ncmFtIG9yIGl0cyBkZXJpdmF0aXZlIHdvcmtzLiAgVGhlc2UgYWN0aW9ucyBhcmUKcHJvaGliaXRlZCBieSBsYXcgaWYgeW91IGRvIG5vdCBhY2NlcHQgdGhpcyBMaWNlbnNlLiAgVGhlcmVmb3JlLCBieQptb2RpZnlpbmcgb3IgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIChvciBhbnkgd29yayBiYXNlZCBvbiB0aGUKUHJvZ3JhbSksIHlvdSBpbmRpY2F0ZSB5b3VyIGFjY2VwdGFuY2Ugb2YgdGhpcyBMaWNlbnNlIHRvIGRvIHNvLCBhbmQKYWxsIGl0cyB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW5nIG9yIG1vZGlmeWluZwp0aGUgUHJvZ3JhbSBvciB3b3JrcyBiYXNlZCBvbiBpdC4KCiAgNi4gRWFjaCB0aW1lIHlvdSByZWRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gKG9yIGFueSB3b3JrIGJhc2VkIG9uIHRoZQpQcm9ncmFtKSwgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5IHJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZQpvcmlnaW5hbCBsaWNlbnNvciB0byBjb3B5LCBkaXN0cmlidXRlIG9yIG1vZGlmeSB0aGUgUHJvZ3JhbSBzdWJqZWN0IHRvCnRoZXNlIHRlcm1zIGFuZCBjb25kaXRpb25zLiAgWW91IG1heSBub3QgaW1wb3NlIGFueSBmdXJ0aGVyCnJlc3RyaWN0aW9ucyBvbiB0aGUgcmVjaXBpZW50cycgZXhlcmNpc2Ugb2YgdGhlIHJpZ2h0cyBncmFudGVkIGhlcmVpbi4KWW91IGFyZSBub3QgcmVzcG9uc2libGUgZm9yIGVuZm9yY2luZyBjb21wbGlhbmNlIGJ5IHRoaXJkIHBhcnRpZXMgdG8KdGhpcyBMaWNlbnNlLgoKICA3LiBJZiwgYXMgYSBjb25zZXF1ZW5jZSBvZiBhIGNvdXJ0IGp1ZGdtZW50IG9yIGFsbGVnYXRpb24gb2YgcGF0ZW50CmluZnJpbmdlbWVudCBvciBmb3IgYW55IG90aGVyIHJlYXNvbiAobm90IGxpbWl0ZWQgdG8gcGF0ZW50IGlzc3VlcyksCmNvbmRpdGlvbnMgYXJlIGltcG9zZWQgb24geW91ICh3aGV0aGVyIGJ5IGNvdXJ0IG9yZGVyLCBhZ3JlZW1lbnQgb3IKb3RoZXJ3aXNlKSB0aGF0IGNvbnRyYWRpY3QgdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLCB0aGV5IGRvIG5vdApleGN1c2UgeW91IGZyb20gdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLiAgSWYgeW91IGNhbm5vdApkaXN0cmlidXRlIHNvIGFzIHRvIHNhdGlzZnkgc2ltdWx0YW5lb3VzbHkgeW91ciBvYmxpZ2F0aW9ucyB1bmRlciB0aGlzCkxpY2Vuc2UgYW5kIGFueSBvdGhlciBwZXJ0aW5lbnQgb2JsaWdhdGlvbnMsIHRoZW4gYXMgYSBjb25zZXF1ZW5jZSB5b3UKbWF5IG5vdCBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiBhIHBhdGVudApsaWNlbnNlIHdvdWxkIG5vdCBwZXJtaXQgcm95YWx0eS1mcmVlIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGJ5CmFsbCB0aG9zZSB3aG8gcmVjZWl2ZSBjb3BpZXMgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSB0aHJvdWdoIHlvdSwgdGhlbgp0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCBpdCBhbmQgdGhpcyBMaWNlbnNlIHdvdWxkIGJlIHRvCnJlZnJhaW4gZW50aXJlbHkgZnJvbSBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0uCgpJZiBhbnkgcG9ydGlvbiBvZiB0aGlzIHNlY3Rpb24gaXMgaGVsZCBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKYW55IHBhcnRpY3VsYXIgY2lyY3Vtc3RhbmNlLCB0aGUgYmFsYW5jZSBvZiB0aGUgc2VjdGlvbiBpcyBpbnRlbmRlZCB0bwphcHBseSBhbmQgdGhlIHNlY3Rpb24gYXMgYSB3aG9sZSBpcyBpbnRlbmRlZCB0byBhcHBseSBpbiBvdGhlcgpjaXJjdW1zdGFuY2VzLgoKSXQgaXMgbm90IHRoZSBwdXJwb3NlIG9mIHRoaXMgc2VjdGlvbiB0byBpbmR1Y2UgeW91IHRvIGluZnJpbmdlIGFueQpwYXRlbnRzIG9yIG90aGVyIHByb3BlcnR5IHJpZ2h0IGNsYWltcyBvciB0byBjb250ZXN0IHZhbGlkaXR5IG9mIGFueQpzdWNoIGNsYWltczsgdGhpcyBzZWN0aW9uIGhhcyB0aGUgc29sZSBwdXJwb3NlIG9mIHByb3RlY3RpbmcgdGhlCmludGVncml0eSBvZiB0aGUgZnJlZSBzb2Z0d2FyZSBkaXN0cmlidXRpb24gc3lzdGVtLCB3aGljaCBpcwppbXBsZW1lbnRlZCBieSBwdWJsaWMgbGljZW5zZSBwcmFjdGljZXMuICBNYW55IHBlb3BsZSBoYXZlIG1hZGUKZ2VuZXJvdXMgY29udHJpYnV0aW9ucyB0byB0aGUgd2lkZSByYW5nZSBvZiBzb2Z0d2FyZSBkaXN0cmlidXRlZAp0aHJvdWdoIHRoYXQgc3lzdGVtIGluIHJlbGlhbmNlIG9uIGNvbnNpc3RlbnQgYXBwbGljYXRpb24gb2YgdGhhdApzeXN0ZW07IGl0IGlzIHVwIHRvIHRoZSBhdXRob3IvZG9ub3IgdG8gZGVjaWRlIGlmIGhlIG9yIHNoZSBpcyB3aWxsaW5nCnRvIGRpc3RyaWJ1dGUgc29mdHdhcmUgdGhyb3VnaCBhbnkgb3RoZXIgc3lzdGVtIGFuZCBhIGxpY2Vuc2VlIGNhbm5vdAppbXBvc2UgdGhhdCBjaG9pY2UuCgpUaGlzIHNlY3Rpb24gaXMgaW50ZW5kZWQgdG8gbWFrZSB0aG9yb3VnaGx5IGNsZWFyIHdoYXQgaXMgYmVsaWV2ZWQgdG8KYmUgYSBjb25zZXF1ZW5jZSBvZiB0aGUgcmVzdCBvZiB0aGlzIExpY2Vuc2UuCgogIDguIElmIHRoZSBkaXN0cmlidXRpb24gYW5kL29yIHVzZSBvZiB0aGUgUHJvZ3JhbSBpcyByZXN0cmljdGVkIGluCmNlcnRhaW4gY291bnRyaWVzIGVpdGhlciBieSBwYXRlbnRzIG9yIGJ5IGNvcHlyaWdodGVkIGludGVyZmFjZXMsIHRoZQpvcmlnaW5hbCBjb3B5cmlnaHQgaG9sZGVyIHdobyBwbGFjZXMgdGhlIFByb2dyYW0gdW5kZXIgdGhpcyBMaWNlbnNlCm1heSBhZGQgYW4gZXhwbGljaXQgZ2VvZ3JhcGhpY2FsIGRpc3RyaWJ1dGlvbiBsaW1pdGF0aW9uIGV4Y2x1ZGluZwp0aG9zZSBjb3VudHJpZXMsIHNvIHRoYXQgZGlzdHJpYnV0aW9uIGlzIHBlcm1pdHRlZCBvbmx5IGluIG9yIGFtb25nCmNvdW50cmllcyBub3QgdGh1cyBleGNsdWRlZC4gIEluIHN1Y2ggY2FzZSwgdGhpcyBMaWNlbnNlIGluY29ycG9yYXRlcwp0aGUgbGltaXRhdGlvbiBhcyBpZiB3cml0dGVuIGluIHRoZSBib2R5IG9mIHRoaXMgTGljZW5zZS4KCiAgOS4gVGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBtYXkgcHVibGlzaCByZXZpc2VkIGFuZC9vciBuZXcgdmVyc2lvbnMKb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCkVhY2ggdmVyc2lvbiBpcyBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiAgSWYgdGhlIFByb2dyYW0Kc3BlY2lmaWVzIGEgdmVyc2lvbiBudW1iZXIgb2YgdGhpcyBMaWNlbnNlIHdoaWNoIGFwcGxpZXMgdG8gaXQgYW5kICJhbnkKbGF0ZXIgdmVyc2lvbiIsIHlvdSBoYXZlIHRoZSBvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucwplaXRoZXIgb2YgdGhhdCB2ZXJzaW9uIG9yIG9mIGFueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQpTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgSWYgdGhlIFByb2dyYW0gZG9lcyBub3Qgc3BlY2lmeSBhIHZlcnNpb24gbnVtYmVyIG9mCnRoaXMgTGljZW5zZSwgeW91IG1heSBjaG9vc2UgYW55IHZlcnNpb24gZXZlciBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4KCiAgMTAuIElmIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlIHBhcnRzIG9mIHRoZSBQcm9ncmFtIGludG8gb3RoZXIgZnJlZQpwcm9ncmFtcyB3aG9zZSBkaXN0cmlidXRpb24gY29uZGl0aW9ucyBhcmUgZGlmZmVyZW50LCB3cml0ZSB0byB0aGUgYXV0aG9yCnRvIGFzayBmb3IgcGVybWlzc2lvbi4gIEZvciBzb2Z0d2FyZSB3aGljaCBpcyBjb3B5cmlnaHRlZCBieSB0aGUgRnJlZQpTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB3ZSBzb21ldGltZXMKbWFrZSBleGNlcHRpb25zIGZvciB0aGlzLiAgT3VyIGRlY2lzaW9uIHdpbGwgYmUgZ3VpZGVkIGJ5IHRoZSB0d28gZ29hbHMKb2YgcHJlc2VydmluZyB0aGUgZnJlZSBzdGF0dXMgb2YgYWxsIGRlcml2YXRpdmVzIG9mIG91ciBmcmVlIHNvZnR3YXJlIGFuZApvZiBwcm9tb3RpbmcgdGhlIHNoYXJpbmcgYW5kIHJldXNlIG9mIHNvZnR3YXJlIGdlbmVyYWxseS4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOTyBXQVJSQU5UWQoKICAxMS4gQkVDQVVTRSBUSEUgUFJPR1JBTSBJUyBMSUNFTlNFRCBGUkVFIE9GIENIQVJHRSwgVEhFUkUgSVMgTk8gV0FSUkFOVFkKRk9SIFRIRSBQUk9HUkFNLCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRCBCWSBBUFBMSUNBQkxFIExBVy4gIEVYQ0VQVCBXSEVOCk9USEVSV0lTRSBTVEFURUQgSU4gV1JJVElORyBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EL09SIE9USEVSIFBBUlRJRVMKUFJPVklERSBUSEUgUFJPR1JBTSAiQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTRUQKT1IgSU1QTElFRCwgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFRIRSBFTlRJUkUgUklTSyBBUwpUTyBUSEUgUVVBTElUWSBBTkQgUEVSRk9STUFOQ0UgT0YgVEhFIFBST0dSQU0gSVMgV0lUSCBZT1UuICBTSE9VTEQgVEhFClBST0dSQU0gUFJPVkUgREVGRUNUSVZFLCBZT1UgQVNTVU1FIFRIRSBDT1NUIE9GIEFMTCBORUNFU1NBUlkgU0VSVklDSU5HLApSRVBBSVIgT1IgQ09SUkVDVElPTi4KCiAgMTIuIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1BWSBNT0RJRlkgQU5EL09SClJFRElTVFJJQlVURSBUSEUgUFJPR1JBTSBBUyBQRVJNSVRURUQgQUJPVkUsIEJFIExJQUJMRSBUTyBZT1UgRk9SIERBTUFHRVMsCklOQ0xVRElORyBBTlkgR0VORVJBTCwgU1BFQ0lBTCwgSU5DSURFTlRBTCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgQVJJU0lORwpPVVQgT0YgVEhFIFVTRSBPUiBJTkFCSUxJVFkgVE8gVVNFIFRIRSBQUk9HUkFNIChJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEClRPIExPU1MgT0YgREFUQSBPUiBEQVRBIEJFSU5HIFJFTkRFUkVEIElOQUNDVVJBVEUgT1IgTE9TU0VTIFNVU1RBSU5FRCBCWQpZT1UgT1IgVEhJUkQgUEFSVElFUyBPUiBBIEZBSUxVUkUgT0YgVEhFIFBST0dSQU0gVE8gT1BFUkFURSBXSVRIIEFOWSBPVEhFUgpQUk9HUkFNUyksIEVWRU4gSUYgU1VDSCBIT0xERVIgT1IgT1RIRVIgUEFSVFkgSEFTIEJFRU4gQURWSVNFRCBPRiBUSEUKUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgoKICAgICAgICAgICAgICAgICAgICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCgogICAgICAgICAgICBIb3cgdG8gQXBwbHkgVGhlc2UgVGVybXMgdG8gWW91ciBOZXcgUHJvZ3JhbXMKCiAgSWYgeW91IGRldmVsb3AgYSBuZXcgcHJvZ3JhbSwgYW5kIHlvdSB3YW50IGl0IHRvIGJlIG9mIHRoZSBncmVhdGVzdApwb3NzaWJsZSB1c2UgdG8gdGhlIHB1YmxpYywgdGhlIGJlc3Qgd2F5IHRvIGFjaGlldmUgdGhpcyBpcyB0byBtYWtlIGl0CmZyZWUgc29mdHdhcmUgd2hpY2ggZXZlcnlvbmUgY2FuIHJlZGlzdHJpYnV0ZSBhbmQgY2hhbmdlIHVuZGVyIHRoZXNlIHRlcm1zLgoKICBUbyBkbyBzbywgYXR0YWNoIHRoZSBmb2xsb3dpbmcgbm90aWNlcyB0byB0aGUgcHJvZ3JhbS4gIEl0IGlzIHNhZmVzdAp0byBhdHRhY2ggdGhlbSB0byB0aGUgc3RhcnQgb2YgZWFjaCBzb3VyY2UgZmlsZSB0byBtb3N0IGVmZmVjdGl2ZWx5CmNvbnZleSB0aGUgZXhjbHVzaW9uIG9mIHdhcnJhbnR5OyBhbmQgZWFjaCBmaWxlIHNob3VsZCBoYXZlIGF0IGxlYXN0CnRoZSAiY29weXJpZ2h0IiBsaW5lIGFuZCBhIHBvaW50ZXIgdG8gd2hlcmUgdGhlIGZ1bGwgbm90aWNlIGlzIGZvdW5kLgoKICAgIDxvbmUgbGluZSB0byBnaXZlIHRoZSBwcm9ncmFtJ3MgbmFtZSBhbmQgYSBicmllZiBpZGVhIG9mIHdoYXQgaXQgZG9lcy4+CiAgICBDb3B5cmlnaHQgKEMpIDx5ZWFyPiAgPG5hbWUgb2YgYXV0aG9yPgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZwogICAgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKICAgIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EuCgpBbHNvIGFkZCBpbmZvcm1hdGlvbiBvbiBob3cgdG8gY29udGFjdCB5b3UgYnkgZWxlY3Ryb25pYyBhbmQgcGFwZXIgbWFpbC4KCklmIHRoZSBwcm9ncmFtIGlzIGludGVyYWN0aXZlLCBtYWtlIGl0IG91dHB1dCBhIHNob3J0IG5vdGljZSBsaWtlIHRoaXMKd2hlbiBpdCBzdGFydHMgaW4gYW4gaW50ZXJhY3RpdmUgbW9kZToKCiAgICBHbm9tb3Zpc2lvbiB2ZXJzaW9uIDY5LCBDb3B5cmlnaHQgKEMpIHllYXIgbmFtZSBvZiBhdXRob3IKICAgIEdub21vdmlzaW9uIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWTsgZm9yIGRldGFpbHMgdHlwZSBgc2hvdyB3Jy4KICAgIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZSwgYW5kIHlvdSBhcmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXQKICAgIHVuZGVyIGNlcnRhaW4gY29uZGl0aW9uczsgdHlwZSBgc2hvdyBjJyBmb3IgZGV0YWlscy4KClRoZSBoeXBvdGhldGljYWwgY29tbWFuZHMgYHNob3cgdycgYW5kIGBzaG93IGMnIHNob3VsZCBzaG93IHRoZSBhcHByb3ByaWF0ZQpwYXJ0cyBvZiB0aGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIE9mIGNvdXJzZSwgdGhlIGNvbW1hbmRzIHlvdSB1c2UgbWF5CmJlIGNhbGxlZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBgc2hvdyB3JyBhbmQgYHNob3cgYyc7IHRoZXkgY291bGQgZXZlbiBiZQptb3VzZS1jbGlja3Mgb3IgbWVudSBpdGVtcy0td2hhdGV2ZXIgc3VpdHMgeW91ciBwcm9ncmFtLgoKWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHlvdXIKc2Nob29sLCBpZiBhbnksIHRvIHNpZ24gYSAiY29weXJpZ2h0IGRpc2NsYWltZXIiIGZvciB0aGUgcHJvZ3JhbSwgaWYKbmVjZXNzYXJ5LiAgSGVyZSBpcyBhIHNhbXBsZTsgYWx0ZXIgdGhlIG5hbWVzOgoKICBZb3lvZHluZSwgSW5jLiwgaGVyZWJ5IGRpc2NsYWltcyBhbGwgY29weXJpZ2h0IGludGVyZXN0IGluIHRoZSBwcm9ncmFtCiAgYEdub21vdmlzaW9uJyAod2hpY2ggbWFrZXMgcGFzc2VzIGF0IGNvbXBpbGVycykgd3JpdHRlbiBieSBKYW1lcyBIYWNrZXIuCgogIDxzaWduYXR1cmUgb2YgVHkgQ29vbj4sIDEgQXByaWwgMTk4OQogIFR5IENvb24sIFByZXNpZGVudCBvZiBWaWNlCgpUaGlzIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtIGludG8KcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdSBtYXkKY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGggdGhlCmxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLgo=]]></data>
	</file>
	<file>
	  <filename>/doc/FEATURES.TXT</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LSBCdWlsZCB5b3VyIGZvcm0gaW4gSFRNTCBhbmQgamF2YXNjcmlwdCwgc3R5bGUgd2l0aCBDU1MgZWFzaWx5Ci0gWW91IGNvbnRyb2wgaW5wdXQgZmllbGQgbmFtZXMgCi0gV29ya3Mgd2l0aCBzbWFydHkKLSBTZWN1cmUKICAtIFN1cHBvcnRzIGNhcHRjaGEKICAtIEJ1aWx0IGluIGhvbmV5cG90IGNhcHRjaGEKLSBQcm92aWRlcyBzeW50YXggY2hlY2tpbmcgYW5kIGJhc2ljIGVycm9yIGNoZWNraW5nIG9mIHlvdXIgZm9ybXMgSFRNTAotIFN1cHBvcnRzIGZpbGUgdXBsb2FkcwotIEZsZXhpYmxlIGFuZCBleHRlbmRhYmxlIHZhbGlkYXRpb25zCi0gRmxleGlibGUgYW5kIGV4dGVuZGFibGUgZGlzcG9zaXRpb25zCi0gRXh0ZW5kYWJsZQotIEZ1bGwgQVBJCg==]]></data>
	</file>
	<file>
	  <filename>/doc/help.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0id2FybmluZyI+PHAgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPjxzdHJvbmc+V2FybmluZzo8L3N0cm9uZz4gVGhpcyBpcyBhbiBldmFsdWF0aW9uIHZlcnNpb24gb2YgQ0dCZXR0ZXJGb3Jtcy4gIEl0IGlzIHN1YmplY3QgdG8gY2hhbmdlIGJlZm9yZSBmaW5hbCByZWxlYXNlLiAgRm9yIHRlc3RpbmcgcHVycG9zZXMgb25seS4gIFdlIGRvIG5vdCByZWNvbW1lbmQgdGhhdCB5b3UgdXNlIHRoaXMgdmVyc2lvbiBvZiB0aGUgbW9kdWxlIGluIGEgcHJvZHVjdGlvbiBlbnZpcm9ubWVudC48L3A+PGJyLz48cCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+VXNlIGF0IHlvdXIgb3duIHJpc2s8L3A+PC9kaXY+Cgo8aDM+V2hhdCBpcyB0aGlzPC9oMz4KPHA+VGhpcyBpcyBhIG5ldyBnZW5lcmF0aW9uIG9mIGZvcm0gaGFuZGxpbmcgbW9kdWxlIHRoYXQgcHJvdmlkZXMgdGhlIGFiaWxpdHkgZm9yIHdlYiBwcm9mZXNzaW9uYWxzIHRvIGJ1aWxkIGZvcm1zIHRoZSB3YXkgdGhleSBrbm93IGhvdywgdXNpbmcgSFRNTCwgQ1NTIGFuZCBqYXZhc2NyaXB0Li4gYW5kIHRoZW4gZWFzaWx5IGRlZmluZSB3aGF0IHNob3VsZCBoYXBwZW4gd2l0aCB0aGUgZGF0YSB1c2VycyBzdWJtaXR0ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBjYW4gYWxsb3cgeW91IHRvIGNyZWF0ZSB3ZWxsIHN0eWxlZCwgZHluYW1pYyBmb3JtcywgdXNpbmcgd2hhdGV2ZXIgdG9vbGtpdCB5b3UgbGlrZSAoQm9vdHN0cmFwLCBGb3VuZGF0aW9uLCBldGMpLiAgYW5kIGludGVncmF0ZSBqYXZhc2NyaXB0LiAgVGhlbiBxdWlja2x5IGRlZmluZSBob3cgdGhlIGZvcm0gZGF0YSBzaG91bGQgYmUgcHJvY2Vzc2VkLjwvcD4KCjxoMz5GZWF0dXJlczwvaDM+Cjx1bD4KICA8bGk+WW91IGNyZWF0ZSB0aGUgZm9ybS4gYW5kIGNhbiBnZXQgaXQgbG9va2luZyB0aGUgd2F5IHlvdSB3YW50LjwvbGk+CiAgPGxpPkFsbG93cyBmb3IgamF2YXNjcmlwdCB2YWxpZGF0aW9uLCBhbmQgSFRNTDUgZmllbGQgdHlwZXMuPC9saT4KICA8bGk+Q2FuIHZlcmlmeSBkYXRhIGZyb20gSFRNTDUgYXR0cmlidXRlcyBvbiB0aGUgc2VydmVyIHNpZGUsICBldmVuIGlmIHRoZSBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgdGhlbSBuYXRpdmVseS48L2xpPgogIDxsaT5Qcm92aWRlcyBkYXRhIGF0dHJpYnV0ZXMgdG8gYXNzaXN0IGluIHJlbmRlcmluZyBhbmQgaGFuZGxpbmcgdGhlIGZvcm0uPC9saT4KICA8bGk+SW50ZWdyYXRlcyB3aXRoIHNtYXJ0eTwvbGk+CiAgPGxpPlRha2VzIGFkdmFudGFnZSBvZiBDTVNNUyAyLjIgZmVhdHVyZXMgbGlrZSB0ZW1wbGF0ZSB0eXBlcyBhbmQgaG9va3M8L2xpPgogIDxsaT5UZXN0cyB5b3VyIGNvZGUgdG8gdGVsbCB5b3UgYWJvdXQgcGFyc2luZyBlcnJvcnMgYW5kIHBvdGVudGlhbCByZW5kZXJpbmcsIG9yIHN1Ym1pc3Npb24gcHJvYmxlbXMuPC9saT4KICA8bGk+U3VwcG9ydHMgZmlsZSB1cGxvYWRzPC9saT4KICA8bGk+QWRkcmVzc2VzIHNlY3VyaXR5IGlzc3VlczoKICAgIDx1bD4KICAgICAgPGxpPlN1cHBvcnRzIGNhcHRjaGE8L2xpPgogICAgICA8bGk+SGFzIGJ1aWx0IGluIGhvbmV5cG90IGNhcHRjaGEgc3VwcG9ydDwvbGk+CiAgICAgIDxsaT5FYWNoIHJlcXVlc3QgaXMgYXNzaWduZWQgYSB1bmlxdWUgR1VJRCwgd2hpY2ggaXMgdmFsaWRhdGVkIG9uIHN1Ym1pc3Npb24uPC9saT4KICAgICAgPGxpPkF1dG9tYXRpY2FsbHkgZGlzYWxsb3dzIEhUTUwgdGFncyBpbiBzdWJtaXR0ZWQgcmVzcG9uc2VzLjwvbGk+CiAgICAgIDxsaT5Gb3JtIGF0dHJpYnV0ZXMgYXJlIHBhcnNlZCBhbmQgc3RvcmVkIGluIHRoZSBkYXRhYmFzZSwgYW5kIHZhbGlkYXRlZCBvbiB0aGUgc2VydmVyIHRvIG1pdGlnYXRlIE1hbi1pbi10aGUtTWlkZGxlIGF0dGFja3MuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+SGFzIG11bHRpcGxlIHNlcnZlci1zaWRlIGRhdGEgdmFsaWRhdGlvbiByb3V0aW5lczwvbGk+CiAgPGxpPkNyZWF0ZSB2YWxpZGF0aW9ucyBieSBhdXRvbWF0aWNhbGx5IHBhcnNpbmcgeW91ciBIVE1MIGFuZCB0ZW1wbGF0ZS48L2xpPgogIDxsaT5NdWx0aXBsZSBidWlsdC1pbiBoYW5kbGVycy9kaXNwb3NpdGlvbnMuPC9saT4KICA8bGk+RWFzaWx5IGFkZCBoYW5kbGVycyBhbmQgZGlzcG9zaXRpb25zIHZpYSB0aGUgQVBJLjwvbGk+CiAgPGxpPlN1cHBvcnRzIGhvb2tzIGZvciB2YWxpZGF0aW9uIGFuZCBkaXNwb3NpdGlvbi9oYW5kbGluZy48L2xpPgogIDxsaT5Nb3JlPC9saT4KPC91bD4KCjxoMz5Ib3cgZG8gSSB1c2UgaXQ8L2gzPgo8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgaXMgYSBtb2R1bGUgZm9yIHRoZSBleHBlcmllbmNlZCBDTVNNUyB3ZWIgcHJvZmVzc2lvbmFsLCAgeW91IHNob3VsZCBoYXZlIGdvb2QgZXhwZXJpZW5jZSB3aXRoIENNU01TLCBIVE1MLCBDU1MgYW5kIHBvdGVudGlhbGx5IGphdmFzY3JpcHQuPC9wPgo8b2w+CiAgPGxpPkNyZWF0ZSB5b3VyIGZvcm0gSFRNTCB0ZW1wbGF0ZQogICAgIDx1bD4KICAgICAgIDxsaT5DcmVhdGUgYSBuZXcgdGVtcGxhdGUgb2YgdHlwZSA8Y29kZT5DR0JldHRlckZvcm1zOjpGb3JtPC9jb2RlPiBpbiB0aGUgRGVzaWduIG1hbmFnZXIuICBCZSBjYXJlZnVsIHRvIHJlbWVtYmVyIHRoZSBuYW1lIHlvdSBnaXZlIHRoZSBuZXcgdGVtcGxhdGUuPC9saT4KICAgICAgIDxsaT5Db3B5L3Bhc3RlIG9yIGVudGVyIHlvdXIgSFRNTCBmb3JtIGNvZGUgaW50byB0aGUgdGVtcGxhdGUuICBTYXZlIHdoZW4gcmVhZHkuPC9saT4KICAgICA8L3VsPgogIDwvbGk+CiAgPGxpPkNyZWF0ZSBhIG5ldyBjb250ZW50IHBhZ2UgYW5kIHRlc3QgeW91ciBmb3JtIEhUTUwKICAgICA8cD5BZGQgdGhpcyBjb2RlIHRvIHRoZSBjb250ZW50IGFyZWE6PC9wPgogICAgIDxwcmU+e2luY2x1ZGUgZmlsZT0nY21zX3RlbXBsYXRlOnlvdXJfdGVtcGxhdGVfbmFtZSd9PC9wcmU+CiAgICAgPHA+VGhpcyBpcyBmb3IgdGVzdGluZyBwdXJwb3Nlcywgd2Ugd2lsbCBiZSBjaGFuZ2luZyBpdCBsYXRlciBvbmNlIG91ciBmb3JtIGxvb2tzIGdvb2QuPC9wPgogICAgIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gWW91IHByb2JhYmx5IHdhbnQgdG8gZGlzYWJsZSB0aGUgV1lTSVdZRyBlZGl0b3IgZm9yIHRoaXMgbmV3IGNvbnRlbnQgcGFnZS48L3A+CiAgPC9saT4KICA8bGk+RWRpdCwgc3R5bGUsIGFuZCBjb2RlIHlvdXIgZm9ybSBIVE1MIHRlbXBsYXRlLgogICAgIDxwPlNhdmUgdGhlIGNvbnRlbnQgcGFnZSBhbmQgdmlldyBpdCBpbiB5b3VyIGJyb3dzZXIuIFlvdSBzaG91bGQgdGVzdCBvdXQgeW91ciBIVE1MLCBDU1MsIGFuZCBqYXZhc2NyaXB0LiAgRW5zdXJlIHlvdXIgZm9ybSBpcyByZXNwb25zaXZlLCBhbmQgdGVzdCBmb3IgSFRNTCBhbmQgdmFsaWRhdGlvbiBmdW5jdGlvbmFsaXR5LiAgWW91IGNhbiBldmVuIHN1Ym1pdCB5b3VyIGZvcm0sIHRob3VnaCBhdCB0aGlzIHBvaW50IGl0IHNob3VsZCBub3QgZG8gYW55dGhpbmcgZXhjZXB0IHJlZnJlc2ggdGhlIHBhZ2UuPC9wPgogICAgIDxwPllvdSBtYXkgbmVlZCB0byByZXBlYXRlZGx5IHJlbG9hZCB0aGUgY29udGVudCBwYWdlIGFzIHlvdSBhcmUgZWRpdGluZyB0aGUgSFRNTCwgYW5kIHN0eWxpbmcgeW91ciBmb3JtLjwvcD4KICAgICA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFlvdXIgSFRNTCBmb3JtIHRhZyBzaG91bGQgYmUgYXMgc2ltcGxlIGFzIDxjb2RlPiZsdDtmb3JtJmd0OzwvY29kZT4uICBQYXJ0aWN1bGFybHksIHlvdSBzaG91bGQgbGVhdmUgb3V0IHRoZSB0aGUgbWV0aG9kLCBhbmQgYWN0aW9uIGF0dHJpYnV0ZXMuIExhdGVyLCB3aGVuIHRoZSBDR0JldHRlckZvcm1zIG1vZHVsZSBpcyByZW5kZXJpbmcgeW91ciBmb3JtLCBhbnkgaW1wb3J0YW50IGZvcm0gYXR0cmlidXRlcyBhbmQgaGlkZGVuIHZhcmlhYmxlcyB3aWxsIGJlIGluamVjdGVkLiAgWW91IGNhbiB0aG91Z2ggYWRkIGFueSBpZCwgY2xhc3MgYW5kIHN0eWxlIGF0dHJpYnV0ZXMgdGhhdCB5b3Ugd2lzaC48L3A+CiAgICAgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBJdCBpcyBpbXBvcnRhbnQgdGhhdCB5b3VyIEhUTUwgdmFsaWRhdGUgYXMgbXVjaCBhcyBwb3NzaWJsZS4gIFNvIGl0IGlzIGEgZ29vZCBpZGVhIHRvIGNoZWNrIHlvdXIgb3V0cHV0IHdpdGggYSB2YWxpZGF0b3IuICBBbHNvIGNoZWNrIHRoZSBqYXZhc2NyaXB0IGNvbnNvbGUgZm9yIHdhcm5pbmdzIG9yIGVycm9ycy48L3A+CiAgPC9saT4KICA8bGk+Q3JlYXRlIGEgZm9ybSBpbiBDR0JldHRlckZvcm1zIGFuZCBsaW5rIGl0IHRvIHlvdXIgZm9ybSB0ZW1wbGF0ZS4KICAgICA8b2w+CiAgICAgPGxpPkJyb3dzZSB0byA8Y29kZT5FeHRlbnNpb25zID4+IENHQmV0dGVyRm9ybXM8L2NvZGU+IGluIHRoZSBDTVNNUyBhZG1pbiBwYW5lbCwgYW5kIGNyZWF0ZSBhIG5ldyBmb3JtLjwvbGk+CiAgICAgPGxpPlNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZm9ybSB5b3UgY3JlYXRlZCBhbmQgZWRpdGVkIGFib3ZlLi4uIGFuZCBvcHRpb25hbGx5IHByb3ZpZGUgYSBkZXNjcmlwdGlvbi48L2xpPgogICAgIDxsaT5DbGljayAmcXVvdDtzY2FuJnF1b3Q7ICB0aGlzIHdpbGwgcGFyc2UgeW91ciBITVRMIHRlbXBsYXRlIGFuZCBwcm92aWRlIGZlZWRiYWNrIG9uIHRoZSAmcXVvdDttZXNzYWdlcyZxdW90OyB0YWIgdG8gaW5kaWNhdGUgZXJyb3JzIGFuZCBwb3NzaWJsZSBpbXByb3ZlbWVudHMuPC9saT4KICAgICA8bGk+UmV2aWV3IHRoZSBjb250ZW50IG9mIHRoZSAmcXVvdDtmaWVsZHMmcXVvdDsgdGFiIHRvIGVuc3VyZSB0aGF0IGFsbCBuZWNlc3NhcnkgZmllbGRzIGFyZSBwcmVzZW50LCBhbmQgdGhhdCBldmVyeXRoaW5nIGxvb2tzIGNvcnJlY3QuPC9saT4KICAgICA8bGk+QWRkIG9uZSBvciBtb3JlICZxdW90O2hhbmRsZXJzJnF1b3Q7PC9saT4KICAgICA8bGk+RW50ZXIgaW4gc29tZSB0ZXh0LCBvciBzZWxlY3QgYSBmaW5hbCBhY3Rpb24uPC9saT4KICAgICA8bGk+U2F2ZSB5b3VyIGZvcm0uPC9saT4KICAgICA8L29sPgogIDwvbGk+CiAgPGxpPkNoYW5nZSB0aGUgY2FsbCB0byByZW5kZXIgeW91ciBmb3JtLgogICAgPHA+RWRpdCB0aGUgcGFnZSB5b3UgY3JlYXRlZCBpbiBzdGVwIDIgYWJvdmUsIGFuZCBjaGFuZ2UgdGhlIGNhbGwgdG8gPGNvZGU+e0NHQmV0dGVyRm9ybXMgZm9ybT0neW91cmZvcm1uYW1lJ308L2NvZGU+LiAgVGhlbiBzYXZlIHRoZSBjb250ZW50IHBhZ2UuPC9wPgogIDwvbGk+CiAgPGxpPlRlc3QKICAgIDxwPlJlbGVvYWQgdGhlIGNvbnRlbnQgcGFnZSB3ZSBjcmVhdGVkIGFib3ZlIGluIHlvdXIgYnJvd3NlciwgYW5kIGVuc3VyZSBldmVyeXRoaW5nIGxvb2tzIGNvcnJlY3QuICBBbmQgdGhlbiB0ZXN0IHRoZSBzdWJtaXNzaW9uIG9mIHRoZSBmb3JtLjwvcD4KICAgIDxwPkJlaGF2aW9yIG9mIHRoZSBmb3JtIHdpbGwgYmUgZGVwZW5kYW50IHVwb24gd2hhdCBmb3JtIG9wdGlvbnMgYXJlIHNlbGVjdGVkLCB3aGF0IHZhbGlkYXRpb25zIGFyZSBzZWxlY3RlZCwgYW5kIHRoZSBoYW5kbGVycy48L3A+CiAgPC9saT4KPC9vbD4KCjxoMz5CdWlsdCBpbiBGb3JtIGFuZCBUZW1wbGF0ZSBUZXN0czwvaDM+Cjx1bD4KICA8bGk+VmFsaWRhdGUgdGVtcGxhdGUgY29udGVudHMgPGVtPihUZW1wbGF0ZVZhbGlkYXRvcik8L2VtPgogICAgPHA+VGhpcyB0ZXN0IGNoZWNrcyBmb3IgdmFsaWQgZm9ybSBzdGFydGluZyBhbmQgZW5kaW5nIHRhZ3MsIHdoZXRoZXIgdGhleSBhcmUgcHJvdmlkZWQgdmlhIEhUTUwgdGFncywgb3IgdGhlIENNU01TIHtmb3JtX3N0YXJ0fSBhbmQge2Zvcm1fZW5kfSB0YWdzLiAgSXQgYWxzbyBjaGVja3MgaWYgeW91ciB0ZW1wbGF0ZSBpcyBjYWxsaW5nIHtjZ2JmX2Zvcm1fZXJyb3JzfSB0byByZXRyaWV2ZSB2YWxpZGF0aW9uIGVycm9ycy48L3A+CiAgPC9saT4KICA8bGk+Rm9ybSBWYWxpZGF0aW9uIDxlbT4oRm9ybVRhZ1ZhbGlkYXRvcik8L2VtPgogICAgPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB5b3VyIHRlbXBsYXRlIGNvbnRhaW5zIG9ubHkgb25lIGZvcm0sIGFuZCBjaGVja3MgdG8gZW5zdXJlIHRoYXQgeW91IGhhdmUgbm90IHByb3ZpZGVkIGFueSBmb3JtIGF0dHJpYnV0ZXMgdGhhdCB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGZvcm0gcmVuZGVyaW5nIHByb2Nlc3MuPC9wPgogIDwvbGk+CiAgPGxpPlRlc3QgZm9yIG1pc3NpbmcgaW5wdXQgbmFtZXMgPGVtPihGb3JtTWlzc2luZ05hbWVWYWxpZGF0b3IpPC9lbT4KICAgIDxwPldoZW4gc3VibWl0dGluZyBhIGZvcm0gdG8gYSBzZXJ2ZXIsIHRoZSBuYW1lIG9mIGVhY2ggaW5wdXQsIHRleHRhcmVhLCBhbmQgc2VsZWN0IGZpZWxkIGlzIG1hbmRhdG9yeS4gIFRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgZWFjaCBvZiB0aG9zZSBmaWVsZHMgaGFzIGEgdmFsaWQgbmFtZSBhdHRyaWJ1dGUuPC9wPgogIDwvbGk+CiAgPGxpPlRlc3QgZm9yIG1pc3NpbmcgbGFiZWxzIDxlbT4oRm9ybU1pc3NpbmdMYWJlbFZhbGlkYXRvcik8L2VtPgogICAgPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBlYWNoIGlucHV0IGhhcyBzb21lIHNvcnQgb2YgbGFiZWwgZGV0ZWN0ZWQuICBUaGUgbGFiZWwgaXMgdXNlZCBhdXRvbWF0aWNhbGx5IGJ5IGZvcm0gaGFuZGxlcnMgYXMgdGhlIGh1bWFuLXJlYWRhYmxlIHZhbHVlIGZvciBlYWNoIGZpZWxkIHdoZW4gc2F2bmcgdGhlIGZvcm0uPC9wPgogIDwvbGk+CiAgPGxpPlRlc3QgZm9yIG1pc3NpbmcgdmFsdWVzIDxlbT4oRm9ybU1pc3NpbmdWYWx1ZVZhbGlkYXRvcik8L2VtPgogICAgPHA+U29tZSBpbnB1dHMgKGxpa2UgY2hlY2tib3hlcywgYW5kIHJhZGlvIGJ1dHRvbnMpIHJlcXVpcmUgYSB2YWx1ZSBhdHRyaWJ1dGUsIGFuZCByZXF1aXJlIGl0IHRvIGJlIGZpbGxlZCBpbiBzbyB0aGF0IGRhdGEgY2FuIGJlIHByb3Blcmx5IHRyYW5zbWl0dGVkIHRvIHRoZSBzZXJ2ZXIuICBUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGVhY2ggb2YgeW91ciBmaWVsZHMgaGFzIGEgdmFsdWUsIGFzIHJlcXVpcmVkLjwvcD4KICA8L2xpPgogIDxsaT5EdXBsaWNhdGUgSUQgdGVzdCA8ZW0+KEZvcm1EdXBsaWNhdGVJZFZhbGlkYXRvcik8L2VtPgogICAgPHA+QXMgYSBjb252ZW5pZW5jZSwgdGhvdWdoIGl0IGlzIG5vdCBpbXBvcnRhbnQgZm9yIHRoZSBmb3JtIHN1Ym1pc3Npb24gcHJvY2VzcywgdGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBubyB0d28gaW5wdXQgZmllbGRzIGhhdmUgdGhlIHNhbWUgaWQuPC9wPgogIDwvbGk+CiAgPGxpPkR1cGxpY2F0ZSBuYW1lIHRlc3QgPGVtPihGb3JtRHVwbGljYXRlTmFtZVZhbGlkYXRvcik8L2VtPgogICAgPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB0aGUgbmFtZSBvZiBpbnB1dCBmaWVsZHMgaXMgbm90IGVycm9uZW91c2x5IGR1cGxpY2F0ZWQuICBXZSBjaGVjayBmb3IgZHVwbGljYXRlIG5hbWVzIHdpdGggZGlmZmVyZW50IHR5cGVzIG9mIGZpZWxkcy4gIEl0IGlnbm9yZXMgcmFkaW8gYnV0dG9uIGdyb3VwcywgYW5kIG90aGVyIGZpZWxkcyB3aGVyZSBpdCBpcyB2YWxpZCB0byBkdXBsaWNhdGUgdGhlIGlucHV0IG5hbWUuPC9wPgogIDwvbGk+CjwvdWw+Cgo8aDM+Rm9ybSBTY2FubmluZyBhbmQgU2F2aW5nPC9oMz4KPHA+VGhpcyBtb2R1bGUgc3RvcmVzIG1ldGFkYXRhIGFib3V0IHRoZSBmb3JtIHRlbXBsYXRlIGluIHRoZSBkYXRhYmFzZS4gIFRoaXMgbWV0YWRhdGEgaXMgdXNlZCBmb3IgYnVpbGRpbmcgdmFsaWRhdG9ycyBhbmQgaGFuZGxlcnMsIGFuZCBvbiB0aGUgZnJvbnRlbmQgdG8gYWlkZSBpbiByZW5kZXJpbmcgYW5kIHZhbGlkYXRpb24gYW5kIGhhbmRsaW5nLiAgVGhlcmVmb3JlLCBlYWNoIHRpbWUgdGhlIGZvcm0gdGVtcGxhdGUgaXMgY2hhbmdlZCB0aGUgZm9ybSBtdXN0IGJlIHJlLXNjYW5uZWQuPC9wPgo8cD5UaGUgc2Nhbm5pbmcgcHJvY2VzcyB3aWxsIHBhcnNlIHRoZSBIVE1MIG9mIHRoZSBmb3JtIHRlbXBsYXRlLCBhbmQgYnVpbGQgbWV0YWRhdGEuICBJdCB3aWxsIG91dHB1dCBhIGxpc3Qgb2YgcG90ZW50aWFsIHByb2JsZW1zIHdpdGggeW91ciBmb3JtLiAgaS5lLjogIGludmFsaWQgc3ludGF4LCBtaXNzaW5nIGxhYmVscywgZXRjLiBTb21lIG9mIHRoZXNlIG1lc3NhZ2VzIG1heSBiZSBpbnRlbnRpb25hbCwgb3IgbWF5IGJlIGFuIGVycm9yIGluIHRoZSB0ZW1wbGF0ZS4gIEVhY2ggZGV2ZWxvcGVyIHdpbGwgbmVlZCB0byBkZXRlcm1pbmUgdGhpcyBmb3IgaGltc2VsZi48L3A+Cgo8aDM+UHJlLXJlbmRlciBsb2dpYzwvaDM+CjxwPlRoaXMgc21hcnR5IHRlbXBsYXRlIGFsbG93cyB5b3UgdG8gaW5pdGlhbGl6ZSBpbmZvcm1hdGlvbiBpbiB0aGUgJGZvcm1fZGF0YSBvYmplY3QgZm9yIHVzZSB3aGVuIHRoZSBmb3JtIGlzIGluaXRpYWxseSBkaXNwbGF5ZWQgKGkuZS46IG5vdCB0aGUgcmVzdWx0IG9mIGEgc3VibWlzc2lvbikuICBJdCBpcyB1c2VmdWwgZm9yIHNldHRpbmcgdGhlIGRlZmF1bHQgdmFsdWUgb2YgaW5wdXQgZmllbGRzIGJhc2VkIG9uIHNvbWUgbG9naWMuPC9wPgo8cD5UaGlzIGlzIGFjY29tcGxpc2hlZCBieSB1c2luZyB0aGUgPGNvZGU+e2NnYmZfc2V0fTwvY29kZT4gc21hcnR5IHBsdWdpbi4gIGkuZTogPGNvZGU+e2NnYmZfc2V0IGZpZWxkPXdpZGdldF9jb2xvciB2YWx1ZT13aGl0ZX08L2NvZGU+LjwvcD4KPHA+VGhpcyBzaW1wbGUgZXhhbXBsZSwgd2lsbCBzZXQgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIGEgZmllbGQgbmFtZWQgJnF1b3Q7d2lkZ2V0X2NvbG9yJnF1b3Q7IHRvIHdoaXRlIG9uIHN1bmRheXM6PC9wPgo8cHJlPjxjb2RlPntpZiAkc21hcnR5Lm5vd3xkYXRlX2Zvcm1hdDonJWQnID09IDB9e2NnYmZfc2V0IGZpZWxkPXdpZGdldF9jb2xvciB2YWx1ZT0nd2hpdGUnfXsvaWZ9PC9jb2RlPjwvcHJlPgoKPGgzPlN1Ym1pc3Npb24gVmFsaWRhdGlvbnM8L2gzPgo8cD5TdWJtaXNzaW9uIHZhbGlkYXRpb25zIHRha2UgdGhlIHVzZXIgZW50ZXJlZCByZXNwb25zZSwgYW5kIGVuc3VyZSB0aGF0IGl0IGNvbmZvcm1zIHRvIHRoZSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGVpdGhlciBpbiB0aGUgZm9ybSBpdHNlbGYsIG9yIHZpYSBhZGRpdGlvbmFsIHZhbGlkYXRvcnMgeW91IGFkZGVkLiAgVGhleSBtYXkgYWxzbyBtb2RpZnkgdGhlIHJlc3BvbnNlLiAgVXN1YWxseSB0aG91Z2ggdGhleSBkbyBub3Qgc3RvcmUgdGhlIGRhdGEgb3Igc2VuZCB0aGUgZGF0YSBhbnl3aGVyZS48L3A+CjxwPklmIGFueSB2YWxpZGF0aW9ucyBmYWlsLCB0aGUgZXJyb3IgbWVzc2FnZXMgYXJlIGNvbGxlY3RlZCBhbmQgdGhlIGZvcm0gaXMgcmUtcmVuZGVyZWQsIHdpdGhvdXQgZXhlY3V0aW5nIGFueSBvZiB0aGUgaGFuZGxlcnMuPC9wPgo8cD5CZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIHN1Ym1pc3Npb24gdmFsaWRhdGlvbnMgdGhhdCBhcmUgYnVpbHQgaW4gdG8gQ0dCZXR0ZXJGb3Jtcy48L3A+Cjx1bD4KICA8bGk+Q2hlY2sgZm9yIEhUTUwgaW4gaW5wdXQgc3VibWlzc2lvLm4gIDxlbT4oSHRtbERldGVjdGlvblZhbGlkYXRpb24pPC9lbT4KICAgICA8cD5UaGlzIHZhbGlkYXRpb24gZW5zdXJlcyB0aGF0IGEgdXNlciBoYXMgbm90IGFueSBpbmplY3RlZCBIVE1MIGNvZGUgKGluY2x1ZGluZyBwb3RlbnRpYWxseSBtYWxpY2lvdXMgc2NyaXB0IHRhZ3MpIGludG8gYW55IHN1Ym1pdHRlZCBmaWVsZHMuPC9wPgogICAgIDxwPlRoaXMgdGVzdCBpcyBhZGRlZCBhdXRvbWF0aWNhbGx5IHdoZW4gYXV0by12YWxpZGF0aW9uIGlzIGVuYWJsZWQuPC9wPgogICAgIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyB2YWxpZGF0b3IgZG9lcyBub3Qgb2JleSB0aGUgZGF0YS1jZ2JmLW5vdmFsaWRhdGUgYXR0cmlidXRlLjwvcD4KICA8L2xpPgogIDxsaT5DaGVjayBmb3IgcmVxdWlyZWQgZGF0YSAgPGVtPihIdG1sUmVxdWlyZWRGaWVsZFZhbGlkYXRpb24pPC9lbT4KICAgICA8cD5UaGlzIHZhbGlkYXRpb24gZW5zdXJlcyB0aGF0IHRoZXJlIGlzIHNvbWUgZGF0YSBpbiBldmVyeSBmaWVsZCB0aGF0IGlzIG1hcmtlZCBhcyByZXF1aXJlZC4gRWl0aGVyIHZpYSB0aGUgPGNvZGU+cmVxdWlyZWQ8L2NvZGU+IEhUTUw1IGF0dHJpYnV0ZSBvciB0aGUgPGNvZGU+ZGF0YS1jZ2JmLXJlcXVpcmVkPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgogICAgIDxwPlRoaXMgdGVzdCBpcyBhZGRlZCBhdXRvbWF0aWNhbGx5IHdoZW4gYXV0by12YWxpZGF0aW9uIGlzIGVuYWJsZWQuPC9wPgogIDwvbGk+CiAgPGxpPkNoZWNrIHRoZSB2YWx1ZSBvZiBhbGwgU2VsZWN0IGZpZWxkcywgcmFkaW8tYnV0dG9uIGdyb3VwcywgYW5kIGNoZWNrYm94LWdyb3VwcyAgPGVtPihTZWxlY3RGaWVsZFZhbGlkYXRpb24pPC9lbT4KICAgICA8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGZvciBlYWNoIG9mIHRoZSBtdWx0aS1vcHRpb24gKHNlbGVjdCBmaWVsZHMsIHJhZGlvLWJ1dHRvbi1ncm91cHMgYW5kIGNoZWNrYm94LWdyb3VwcykgZmllbGRzIHRoYXQgb25seSBhIHZhbGlkIHZhbHVlIGlzIHN1Ym1pdHRlZC48L3A+CiAgICAgPHA+VGhpcyB0ZXN0IGlzIGFkZGVkIGF1dG9tYXRpY2FsbHkgd2hlbiBhdXRvLXZhbGlkYXRpb24gaXMgZW5hYmxlZCBhbmQgb25lIG9yIG1vcmUgbXVsdGktb3B0aW9uIGZpZWxkcyBhcmUgZGV0ZWN0ZWQuPC9wPgogIDwvbGk+CiAgPGxpPkNoZWNrIHRoZSB2YWx1ZSBvZiBhbGwgZW1haWwgZmllbGRzLiAgPGVtPihFbWFpbFByaW1pdGl2aWVWYWxpZGF0aW9uKTwvZW0+CiAgICAgPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBmb3IgZWFjaCBlbWFpbCBmaWVsZCAoZGVub3RlZCBieSBlaXRoZXIgPGNvZGU+dHlwZT0iZW1haWwiPC9jb2RlPiBvciA8Y29kZT5kYXRhLWNnYmYtcHJpbWFyeT0iZW1haWwiPC9jb2RlPikgVGhhdCBlYWNoIG9mIHRoZSB2YWx1ZXMgY29udGFpbnMgYSB2YWxpZCBlbWFpbCBhZGRyZXNzLjwvcD4KICAgICA8cD5UaGlzIHRlc3QgaXMgYWRkZWQgYXV0b21hdGljYWxseSB3aGVuIGF1dG8tdmFsaWRhdGlvbiBpcyBlbmFibGVkIGFuZCBvbmUgb3IgbW9yZSBlbWFpbCBmaWVsZHMgYXJlIGRldGVjdGVkLjwvcD4KICA8L2xpPgogIDxsaT5DaGVjayB0aGUgdmFsdWUgb2YgYWxsIGRhdGUgZmllbGRzLiAgPGVtPihEYXRlUHJpbWl0aXZlVmFsaWRhdGlvbik8L2VtPgogICAgIDxwPlRoaXMgdGVzdCB3aWxsIGVuc3VyZSB0aGF0IGZvciBlYWNoIGRhdGUgZmllbGQgKGRlbm90ZWQgYnkgZWl0aGVyIDxjb2RlPnR5cGU9ImRhdGUiPC9jb2RlPiBvciA8Y29kZT5kYXRhLWNnYmYtcHJpbWFyeT0iZGF0ZSI8L2NvZGU+KSBUaGF0IGVhY2ggb2YgdGhlIHZhbHVlcyBpcyBhIHZhbGlkIGRhdGUuICBUaGlzIHRlc3Qgd2lsbCBhbHNvIHZhbGlkYXRlIHRoZSB2YWx1ZXMgZ2l2ZW4gYW55IHJhbmdlIGF0dHJpYnV0ZXMgc3VjaCBhcyBtaW4sbWF4LGRhdGEtY2diZi1taW4sZGF0YS1jZ2JmLW1heC4gIEEgZGF0ZSBzdHJpbmcgbXVzdCBiZSBpbiB0aGUgZm9ybWF0IG9mIHl5eXktbW0tZGQuPC9wPgogICAgIDxwPlRoaXMgdGVzdCBpcyBhZGRlZCBhdXRvbWF0aWNhbGx5IHdoZW4gYXV0by12YWxpZGF0aW9uIGlzIGVuYWJsZWQgYW5kIG9uZSBvciBtb3JlIGRhdGUgZmllbGRzIGFyZSBkZXRlY3RlZC48L3A+CiAgPC9saT4KICA8bGk+RW5zdXJlIHRoYXQgYWxsIHVwbG9hZHMgY29uZm9ybSB0byB0aGUgc3BlY2lmaWNhdGlvbnMuIDxlbT4oRmlsZVZhbGlkYXRvcik8L2VtPgogICAgIDxwPlRPRE88L3A+CiAgICAgPHA+VGhpcyB0ZXN0IGlzIGFkZGVkIGF1dG9tYXRpY2FsbHkgd2hlbiBhdXRvLXZhbGlkYXRpb24gaXMgZW5hYmxlZCwgYW5kIG9uZSBvciBtb3JlIGZpbGUgZmlsZXMgYXJlIGRldGVjdGVkLjwvcD4KICA8L2xpPgogIDxsaT5DaGVjayB0aGUgdmFsdWUgb2Ygc3BlY2lmaWMgaW50ZWdlciBmaWVsZHMuICA8ZW0+KEludGVnZXJGaWVsZFZhbGlkYXRpb24pPC9lbT4KICAgICA8cD5UaGlzIHRlc3Qgd2lsbCBlbnN1cmUgdGhhdCB0aGUgc3BlY2lmaWVkIGZpZWxkIGlzIGFuIGludGVnZXIsIGFuZCB0aGF0IGl0J3MgdmFsdWVzIGNvbmZvcm0gdG8gZGV2ZWxvcGVyIGVudGVyZWQgcmFuZ2UgdmFsdWVzLjwvcD4KICA8L2xpPgogIDxsaT5DaGVjayB0aGUgdmFsdWUgb2Ygc3BlY2lmaWMgZmxvYXQgZmllbGRzLiAgPGVtPihGbG9hdEZpZWxkVmFsaWRhdGlvbik8L2VtPgogICAgIDxwPlRoaXMgdGVzdCB3aWxsIGVuc3VyZSB0aGF0IHRoZSBzcGVjaWZpZWQgZmllbGQgaXMgYSBmbG9hdCwgYW5kIHRoYXQgaXQncyB2YWx1ZXMgY29uZm9ybSB0byBkZXZlbG9wZXIgZW50ZXJlZCByYW5nZSB2YWx1ZXMuPC9wPgogIDwvbGk+CiAgPGxpPkVuc3VyZSB0aGUgdmFsdWUgb2YgYSBzcGVjaWZpYyBmaWVsZCBtYXRjaGVzIGEgcmVndWxhciBleHByZXNzaW9uL3BhdHRlcm4uICA8ZW0+KFJlZ2V4RmllbGRWYWxpZGF0aW9uKTwvZW0+CiAgICAgPHA+VGhpcyB0ZXN0IHdpbGwgZW5zdXJlIHRoYXQgYWxsIG9mIHRoZSB2YWx1ZXMgb2YgdGhlIHNwZWNpZmllZCBmaWVsZCBtYXRjaCB0aGUgcHJvdmlkZWQgcmVndWxhciBleHByZXNzaW9uL3BhdHRlcm4uPC9wPgogICAgIDxwPlRoaXMgdGVzdCBpcyBhZGRlZCBhdXRvbWF0aWNhbGx5IGZvciBlYWNoIGZpZWxkIHdpdGggYSBwYXR0ZXJuLCBvciBkYXRhLWNnYmYtcGF0dGVybiBhdHRyaWJ1dGUgd2hlbiBhdXRvLXZhbGlkYXRpb24gaXMgZW5hYmxlZCBpbiB0aGUgZm9ybS48L3A+CiAgPC9saT4KICA8bGk+RW5zdXJlIHRoZSB2YWx1ZSBvZiBhIHNwZWNpZmljIGZpZWxkIGlzIGFuIGVtYWlsIGFkZHJlc3MuICA8ZW0+KEVtYWlsRmllbGRWYWxpZGF0aW9uKTwvZW0+CiAgICAgPHA+VGhpcyB0ZXN0IHdpbGwgZW5zdXJlIHRoYXQgYWxsIG9mIHRoZSB2YWx1ZXMgb2YgdGhlIHNwZWNpZmllZCBmaWVsZCBhcmUgdmFsaWQgZW1haWwgYWRkcmVzc2VzLjwvcD4KICA8L2xpPgogIDxsaT5WYWxpZGF0ZSB2aWEgU21hcnR5IFRlbXBsYXRlLiAgPGVtPihUZW1wbGF0ZVZhbGlkYXRpb24pPC9lbT4KICAgICA8cD5UaGlzIHZhbGlkYXRvciBhbGxvd3MgeW91IHRvIHVzZSBzbWFydHkgdG8gdmFsaWRhdGUgdGhlIGZvcm0gc3VibWlzc2lvbi4gIFlvdSBjYW4gdXNlIHNtYXJ0eSBsb2dpYywgYW5kL29yIFVEVCdzIG9yIG90aGVyIHBsdWdpbnMgdG8gZXZhbHVhdGUgdGhlIGNvbnRlbnQuICBJZiB0aGUgdGVzdCBmYWlscywgdGhlIHRlbXBsYXRlIHNob3VsZCBvdXRwdXQgYW4gZXJyb3IgbWVzc2FnZS48L3A+CiAgPC9saT4KICA8bGk+Q29tcHV0ZSB0aGUgdmFsdWUgb2YgYSBmaWVsZCwgZ2l2ZW4gYSB0ZW1wbGF0ZS4gIDxlbT4oQ29tcHV0ZWRWYWx1ZSk8L2VtPgogICAgIDxwPlRoaXMgaXMgYSBzcGVjaWFsIGtpbmQgb2YgdmFsaWRhdGlvbiB0ZXN0LiAgSXQgaXMgY2FwYWJsZSBvZiBjb21wdXRpbmcgdGhlIHZhbHVlIG9mIG9uZSBmaWVsZCBnaXZlbiB0aGUgb3RoZXIgZGF0YSBpbiB0aGUgc3VibWl0dGVkIHJlc3BvbnNlLiAgSXQgaXMgdXNlZnVsIGZvciBkb2luZyBjYWxjdWxhdGlvbnMgYW5kIHB1dHRpbmcgdGhlIG91dHB1dCBpbnRvIGEgbmV3IGZpZWxkLCBvciBmb3IgYWRqdXN0aW5nIHRoZSB2YWx1ZSBvZiBvbmUgZmllbGQgYmFzZWQgb24gbGltaXRzIHNwZWNpZmllZCBpbiBvdGhlciBmaWVsZHMuPC9wPgogICAgIDxwPlRoZSBvdXRwdXQgb2YgYSBzbWFydHkgdGVtcGxhdGUgPGVtPihhIHN0cmluZyk8L2VtPiByZXBsYWNlcyB0aGUgdmFsdWUgb2YgYSBzcGVjaWZpZWQgZmllbGQuPC9wPgogIDwvbGk+CiAgPGxpPlVzZSBhIGhvb2sgdG8gdmFsaWRhdGUgdGhlIHJlc3BvbnNlLiAgPGVtPihIb29rVmFsaWRhdGlvbik8L2VtPgogICAgIDxwPlRoaXMgdmFsaWRhdGlvbiBjYWxscyBhIGhvb2sgZW50aXRsZWQgPGNvZGU+Q0dCZXR0ZXJGb3Jtczo6dmFsaWRhdGVGb3JtPC9jb2RlPiBhbmQgcGFzc2VzIHRoZSBlbnRpcmUgZm9ybSByZXNwb25zZS4gIFRoZSBob29rIGhhbmRsZXJzIGNhbiBjaG9vc2UgdG8gbW9kaWZ5IHRoZSByZXNwb25zZSwgb3IgdG8gcGVyZm9ybSB2YXJpb3VzIG90aGVyIHRlc3RzLiAgSWYgYSB0ZXN0IGZhaWxzLCB0aGVuIGl0IGlzIGV4cGVjdGVkIHRvIHRocm93IGEgc3BlY2lhbCBleGNlcHRpb24uPC9wPgogIDwvbGk+CjwvdWw+Cgo8aDM+QnVpbHQgaW4gSGFuZGxlcnMvRGlzcG9zaXRpb25zPC9oMz4KPHA+Rm9ybSBoYW5kbGVycyBhcmUgZXhlY3V0ZWQgYWZ0ZXIgYWxsIHN1Ym1pc3Npb24gdmFsaWRhdGlvbnMgaGF2ZSBwYXNzZWQsIGFuZCBhcmUgdXNlZCB0byAmcXVvdDtkbyB0aGluZ3MmcXVvdDsgd2l0aCB0aGUgZGF0YS4gIFRoZXkgZG8gbm90IHR5cGljYWxseSBtb2RpZnkgdGhlIG91dHB1dCBkYXRhLjwvcD4KPHA+SWYgYW4gZXJyb3Igb2NjdXJzIGluIGEgZGlzcG9zaXRpb24sIHR5cGljYWxseSB0aGUgZXJyb3IgaXMgbG9nZ2VkIGluIHNvbWUgZm9ybWF0ICh0aGlzIGlzIHRoZSB0YXNrIG9mIHRoZSBzcGVjaWZpYyBoYW5kbGVyKSwgYW5kIHByb2Nlc3NpbmcgY29udGludWVzLjwvcD4KPHA+QmVsb3cgaXMgYSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgYnVpbHQtaW4gZGlzcG9zaXRpb25zLjwvcD4KPHVsPgogIDxsaT5TYXZlIHRoZSByZXN1bHRzIHRvIGEgZmlsZSBiYXNlZCBvbiB0aGUgdmFsdWUgb2YgYSBtdWx0aS1vcHRpb24gZmllbGQuPC9saT4KICA8bGk+U2F2ZSB0aGUgcmVzdWx0cyB0byBhIHVuaXF1ZSBmaWxlLjwvbGk+CiAgPGxpPlNhdmUgdGhlIHJlc3VsdHMgdG8gYSBmbGF0IGZpbGUgPGVtPih1c3VhbGx5IENTVik8L2VtPjwvbGk+CiAgPGxpPlNlbmQgdGhlIHJlc3VsdHMgdmlhIGVtYWlsIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiBhIG11bHRpLW9wdGlvbiBmaWVsZC48L2xpPgogIDxsaT5TZW5kIHRoZSByZXN1bHRzIHZpYSBlbWFpbCB0byBzcGVjaWZpZWQgZW1haWwgYWRkcmVzc2VzLjwvbGk+CiAgPGxpPlNlbmQgdGhlIHJlc3VsdHMgdmlhIGVtYWlsIHRvIGEgdXNlciBzcGVjaWZpZWQgZW1haWwgYWRkcmVzcy48L2xpPgogIDxsaT5QT1NUIGZvcm0gcmVzdWx0cyB0byBhIFVSTC9XZWJIb29rLjwvbGk+CiAgPGxpPlJlZGlyZWN0IHRvIGEgVVJMIGJhc2VkIG9uIHRoZSBvdXRwdXQgb2YgYSB0ZW1wbGF0ZS48L2xpPgogIDxsaT5SZWRpcmVjdCB0byBhIHBhZ2UgYmFzZWQgb24gdGhlIG91dHB1dCBvZiBhIHRlbXBsYXRlLjwvbGk+CiAgPGxpPlVzZSBhIGhvb2sgdG8gaGFuZGxlL2Rpc3Bvc2Ugb2YgdGhlIHJlc3BvbnNlLjwvbGk+CiAgPGxpPlN0b3JlIGZvcm0gcmVzdWx0cyB0byB0aGUgc2Vzc2lvbiBmb3IgbGF0ZXIgcHJvY2Vzc2luZy48L2xpPgogIDxsaT5TdG9wIFByb2Nlc3NpbmcgRGlzcG9zaXRpb25zIGJhc2VkIG9uIGEgQ29uZGl0aW9uPC9saT4KPC91bD4KCjxoMz5Db21tb24gRXJyb3JzIGFuZCBQcm9ibGVtcy48L2gzPgo8dWw+CiAgPGxpPkNvdWxkIG5vdCByZXRyaWV2ZSBmb3JtIG9iamVjdAogICAgIDxwPkNHQmV0dGVyRm9ybXMgdXNlcyB0aGUgc2Vzc2lvbiB3aGVuIGVkaXRpbmcgYSBmb3JtLiAgVGhpcyBtZXNzYWdlIGluZGljYXRlcyB0aGF0IHRoZSBzZXNzaW9uIGhhcyB0aW1lZCBvdXQsIGFuZCBhbnl0aGluZyB1bi1zYXZlZCBpbiB5b3VyIGZvcm0gaGFzIGJlZW4gbG9zdC4gICBQbGVhc2UgZW5zdXJlIHRoYXQgeW91IHNhdmUgeW91ciBmb3JtIG9mdGVuLjxwPgogIDwvbGk+CiAgPGxpPk1vZGlmaWNhdGlvbiBvZiBmaWVsZCB2YXJpYWJsZXMgaW4gc21hcnR5CiAgICAgPHA+RWFjaCB0ZW1wbGF0ZSB1c2VkIGJ5IGVhY2ggdmFsaWRhdGlvbiBvciBoYW5kbGVyIGluIHRoZSBDR0JldHRlckZvcm1zIG1vZHVsZSB1c2VzIGl0cyBvd24gc2NvcGUgdG8gcHJldmVudCB2YXJpYWJsZSBuYW1lIGNvbmZsaWN0cy4gIEZvciB0aGlzIHJlYXNvbiB5b3UgY2Fubm90IG1vZGlmeSB0aGUgdmFsdWVzIG9mIHRoZSByZXNwb25zZSBieSBlZGl0aW5nIHRoZSBzbWFydHkgdmFyaWFibGVzLjwvcD4KICA8L2xpPgogIDxsaT5Db25kaXRpb25hbCBmaWVsZHMgKHZpYSBzbWFydHkpCiAgICA8cD5DR0Zvcm1CdWlsZGVyJ3Mgc2NhbiBmdW5jdGlvbmFsaXR5IGlzIGFuIGFkbWluIHNpZGUgYWN0aW9uIHRoYXQgdGFrZXMgeW91ciBmb3JtIHRlbXBsYXRlIGFuZCBwYXJzZXMgaXQgYWdhaW5zdCBzbWFydHkuICAgVGhlIHNtYXJ0eSBlbnZpcm9ubWVudCBpbiB0aGUgYWRtaW4gaW50ZXJmYWNlIGlzIGRpZmZlcmVudCB0aGFuIHRoYXQgaW4gdGhlIGZyb250ZW5kLCBvciBldmVuIG9uIGRpZmZlcmVudCBDTVNNUyBjb250ZW50IHBhZ2VzLiAgVGhlcmVmb3JlLCBzbWFydHkgY29uZGl0aW9uYWxzIGluIHlvdXIgcGFnZSB0ZW1wbGF0ZSBtYXkgcHJldmVudCBzb21lIGZpZWxkcyBmcm9tIGJlaW5nIHNjYW5uZWQuPC9wPgogIDwvbGk+CiAgPGxpPlRyeSB0byBhdm9pZCB0aGUgdXNlIG9mIHNtYXJ0eSBjb25kaXRpb25hbHMgdG8gZGlzcGxheSBmb3JtcyBpbiB5b3VyIHRlbXBsYXRlLCB1c2UgamF2YXNjcmlwdCB3aGVyZSBwb3NzaWJsZS4gIEhvd2V2ZXIsIGlmIHRoZXJlIGFyZSBzbWFydHkgY29uZGl0aW9uYWxzIHRoYXQgY29udHJvbCB0aGUgZGlzcGxheSBvZiBjZXJ0YWluIGZpZWxkcywgdGhlbiBpdCBpcyBzdHJvbmdseSBhZHZpc2VkIHRoYXQgeW91IGNyZWF0ZSBhIGhpZGRlbiBmaWVsZCBhcyBhIHBsYWNlIGhvbGRlciBmb3IgdGhhdCBmaWVsZCBwcmlvciB0byB0aGUgY29uZGl0aW9uYWwuICBUaGlzIHdpbGwgdXN1YWxseSBlbnN1cmUgdGhhdCB0aGUgZmllbGQgbmFtZSBpcyBzY2FubmVkLjwvbGk+CjwvdWw+Cgo8aDM+Q29udHJvbGxpbmcgZm9ybSBiZWhhdmlvciB3aXRoIGF0dHJpYnV0ZXM8L2gzPgo8dWw+CiAgPGxpPlVzaW5nIHJlZ3VsYXIgSFRNTDUgYXR0cmlidXRlcwogICAgPHA+Q0dCZXR0ZXJGb3JtcyB3aWxsIHBhcnNlIGFuZCByZW1lbWJlciB0aGUgdmFsdWUgb2YgdmFyaW91cyBIVE1MIGlucHV0IGF0dHJpYnV0ZXMuICBpLmU6IHJlcXVpcmVkLCBtaW4sIG1heCBhbmQgcGF0dGVybi4gIFRoZXNlIHdpbGwgYmUgdXNlZCB0byBhbHNvIHBlcmZvcm0gc2VydmVyLXNpZGUgdmFsaWRhdGlvbiBvbiB0aGUgc3VibWl0dGVkIGRhdGEuPC9wPgogICAgPHA+VXNpbmcgdGhlc2UgYXR0cmlidXRlcyB0byB2YWxpZGF0ZSBkYXRhIG9uIHRoZSBzZXJ2ZXIgc2lkZSBpcyBhIGdvb2Qgd2F5IG9mIG1pdGlnYXRpbmcgbWFuLWluLXRoZS1taWRkbGUgYXR0YWNrcywgb3IgZG9pbmcgZGF0YSB2YWxpZGF0aW9uIHdoZW4gdGhlIHNpdGUgdmlzaXRvciBpcyB1c2luZyBhIGJyb3dzZXIgdGhhdCBkb2VzIG5vdCBlbmZvcmNlIHRoZW0uPC9wPgogIDwvbGk+CiAgPGxpPkRhdGEgYXR0cmlidXRlcyBmb3IgcmVuZGVyaW5nCiAgICA8cD5UaGUgZm9sbG93aW5nIGRhdGEgYXR0cmlidXRlcyBhcmUgaGludHMgdG8gdGhlIHJlbmRlcmVyIHRvIG1ha2UgaXQgZWFzeSBmb3IgdGhlIGRldmVsb3BlciB0byBpbnRlZ3JhdGUgc21hcnR5IGludG8gYSBmb3JtLCB0byBpbmNsdWRlIGNhcHRjaGEsIGFuZCBvdGhlciB0aGluZ3MuPC9wPgogICAgPHVsPgogICAgICA8bGk+PGNvZGU+ZGF0YS1jZ2JmLWNhcHRjaGE8L2NvZGU+IC0gVGhpcyBhdHRyaWJ1dGUgaW5kaWNhdGVzIHdoZXJlIHRoZSBjYXB0Y2hhIGRpc3BsYXkgd2lsbCBhcHBlYXIuCiAgICAgICAgIDxwPklmIHNwZWNpZmllZCwgYW5kIGlmIENhcHRjaGEgaXMgaW5zdGFsbGVkIGFuZCBlbmFibGVkLCB1cG9uIHJlbmRlcmluZyB0aGUgZm9ybSwgdGhlIGNhcHRjaGEgZGlzcGxheSB3aWxsIGJlIGFwcGVuZGVkIHRvIGNvbnRlbnRzIG9mIHRoZSBtYXRjaGluZyBlbGVtZW50LjwvcD4KCSA8cD5JZiB0aGUgY2FwdGNoYSBkaXNwbGF5IHJlcXVpcmVzIGFuIGlucHV0IGZpZWxkLCAgYW5kIG5vIGVsZW1lbnQgd2l0aCB0aGUgZGF0YS1jZ2JmLWNhcHRjaGEtaW5wdXQgYXR0cmlidXRlIGV4aXN0cywgdGhlbiB0aGUgY2FwdGNoYSBpbnB1dCBmaWVsZCB3aWxsIGFsc28gYmUgYXBwZW5kZWQgdG8gdGhlIGNvbnRlbnRzIG9mIHRoaXMgZWxlbWVudC48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT48Y29kZT5kYXRhLWNnYmYtY2FwdGNoYS1pbnB1dDwvY29kZT4gLSBUaGlzIGF0dHJpYnV0ZSBpbmRpY2F0ZXMgd2hlcmUsIGlmIG5lY2Vzc2FyeSBhbnkgaW5wdXQgZmllbGQgbmVlZGVkIGJ5IHRoZSBjYXB0Y2hhIGRpc3BsYXkgd2lsbCBiZSBpbnNlcnRlZC4KICAgICAgICAgPHA+U29tZSBjYXB0Y2hhIG1ldGhvZHMgcmVxdWlyZSB0aGUgdXNlciB0byBlbnRlciBzb21lIHRleHQuICBVc2luZyB0aGlzIGF0dHRpYnV0ZSBhbGxvd3MgdGhlIGZvcm0gY3JlYXRvciB0byBkZWZpbmUgd2hlcmUgYW5kIGhvdyB0aGUgaW5wdXQgZmllbGQgd2lsbCBiZSBkaXNwbGF5ZWQuPC9wPgogICAgICA8L2xpPgogICAgICA8bGk+PGNvZGU+ZGF0YS1jZ2JmLXNlbGVjdGVkPC9jb2RlPiAtIFRoaXMgYXR0cmlidXRlIGlzIHVzZWZ1bCBvbiA8Y29kZT4mbHQ7c2VsZWN0Jmd0OzwvY29kZT4gZWxlbWVudHMgYW5kIHJhZGlvLWJ1dHRvbiBncm91cHMgdG8gaW5kaWNhdGUgdGhlIHZhbHVlIG9mIHRoZSBzZWxlY3RlZCBvcHRpb24uIGkuZS46PGJyLz4KPHByZT4mbHQ7c2VsZWN0IG5hbWU9Im15c2VsZWN0IiBkYXRhLWNnYmYtc2VsZWN0ZWQ9JnF1b3Q7eyRmb3JtX2RhdGEtJmd0O215c2VsZWN0fGRlZmF1bHQ6JzxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+b3B0Mjwvc3Bhbj4nfSZxdW90OyZndDsKICAgICZsdDtvcHRpb24gdmFsdWU9Im9wdDEiJmd0O09wdGlvbiAxJmx0Oy9vcHRpb24mZ3Q7CiAgICAmbHQ7b3B0aW9uIHZhbHVlPSI8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPm9wdDI8L3NwYW4+IiZndDtPcHRpb24gMiZsdDsvb3B0aW9uJmd0OwogICAgJmx0O29wdGlvbiB2YWx1ZT0ib3B0MyImZ3Q7T3B0aW9uIDMmbHQ7L29wdGlvbiZndDsKJmx0Oy9zZWxlY3QmZ3Q7PC9wcmU+CiAgICAgIDwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPkRhdGEgYXR0cmlidXRlcyB0byBhaWRlIHNlcnZlciBzaWRlIHZhbGlkYXRpb24KICAgIDx1bD4KICAgICAgPGxpPmRhdGEtY2diZi1ub3ZhbGlkYXRlCiAgICAgICAgIDxwPlRoaXMgYXR0cmlidXRlLCBvbiBhbnkgaW5wdXQsIHNlbGVjdCwgb3IgdGV4dGFyZWEgZmllbGRzIGluZGljYXRlcyB0byBkaXNhYmxlIGFsbCBzZXJ2ZXItc2lkZSB2YWxpZGF0aW9uIGZvciB0aGF0IGZpZWxkLiAgU29tZSB2YWxpZGF0b3JzIG1heSBub3Qgb2JleSBpdC48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5kYXRhLWNnYmYtYWNjZXB0CiAgICAgICAgIDxwPkFwcGxpY2FibGUgb25seSB0byBmaWxlIGZpZWxkcywgdGhpcyBhdHRyaWJ1dGUgY2FuIGNvbnRhaW4gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiB3aWxkY2FyZCBtaW1lIHR5cGVzIHRvIGluZGljYXRlIHRoZSB0eXBlIG9mIGZpbGVzIHRoYXQgYXJlIGFjY2VwdGVkLiBpLmUuOiA8Y29kZT5kYXRhLWNnYmYtYWNjZXB0PSJpbWFnZS8qLGFwcGxpY2F0aW9uLypwZGYiPC9jb2RlPi48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5kYXRhLWNnYmYtbWF4c2l6ZQogICAgICAgICA8cD5BcHBsaWNhYmxlIG9ubHkgdG8gZmlsZSBmaWVsZHMsIHRoaXMgYXR0cmlidXRlIGNhbiBzcGVjaWZ5IGEgbWF4aW11bSBzaXplIDxlbT4oaW4gYnl0ZXMpPC9lbT4gZm9yIGFueSBzaW5nbGUgZmlsZSB1cGxvYWRlZCB0byB0aGF0IGZpZWxkLjwvcD4KICAgICAgPC9saT4KICAgICAgPGxpPmRhdGEtY2diZi1leHRlbnNpb24KICAgICAgICAgPHA+QXBwbGljYWJsZSBvbmx5IHRvIGZpbGUgZmllbGRzLCB0aGlzIGF0dHJpYnV0ZSBjYW4gY29udGFpbiBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHZhbGlkIGZpbGUgZXh0ZW5zaW9ucyB0byBpbmRpY2F0ZSB0aGUgdHlwZSBvZiBmaWxlcyB0aGF0IGFyZSBhY2NlcHRlZC48L3A+CgkgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBXZSBkbyBub3QgcmVjb21tZW5kIHVzaW5nIHRoaXMgYXMgc29tZSBvcGVyYXRpbmcgc3lzdGVtcywgb3IgdXNlcnMgZG8gbm90IG1haW50YWluIGEgcmVsaWdvdXMgcG9saWN5IG9uIGZpbGUgZXh0ZW5zaW9ucy48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5kYXRhLWNnYmYtcHJpbWl0aXZlCiAgICAgICAgIDxwPkFwcGxpY2FibGUgdG8gYWxsIGJ1dCBmaWxlIGZpZWxkcywgdGhpcyBhdHRyaWJ1dGUgaW5kaWNhdGVzIHRoZSB0eXBlIG9mIGRhdGEgdGhhdCBzaG91bGQgYXBwZWFyIGluIHRoZSB2YWx1ZShzKSBmb3IgdGhhdCBmaWVsZC4gIFBvc3NpYmxlIHZhbHVlcyBmb3IgdGhpcyBhdHRyaWJ1dGUgYXJlOiBpbnQsIGZsb2F0LCBkYXRlLCBlbWFpbCwgYW5kIHN0cmluZy4gICBJZiBub25lIHNwZWNpZmlmZWQsIHRoZW4gdGhlIGRhdGEgcHJpbWl0aXZlIHdpbGwgYmUgaW50ZXJwcmV0ZWQgZnJvbSB0aGUgZmllbGQgdHlwZSwgb3Igc3RyaW5nIHdpbGwgYmUgYXNzdW1lZC48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5kYXRhLWNnYmYtcmVxdWlyZWQKICAgICAgICAgPHA+QXBwbGljYWJsZSB0byBhbGwgZmllbGRzLCB0aGlzIGF0dHJpYnV0ZSBpbmRpY2F0ZXMgdGhhdCBhdCBsZWFzdCBvbmUgdmFsdWUgbXVzdCBiZSBzcGVjaWZpZWQgZm9yIHRoZSBmaWVsZC48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5kYXRhLWNnYmYtcGF0dGVybgogICAgICAgICA8cD5BcHBsaWNhYmxlIHRvIGFsbCBidXQgZmlsZSBmaWVsZHMsIHRoaXMgYXR0cmlidXRlIGluZGljYXRlcyB0aGF0IGFsbCB2YWx1ZXMgb2YgdGhlIGZpZWxkIG11c3QgY29uZmlybSB0byB0aGUgc3BlY2lmaWVkIHJlZ3VsYXIgZXhwcmVzc2lvbi48L3A+CgkgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBQSFAgcmVxdWlyZXMgYSBzdGFydCBhbmQgZW5kIGRlbGltaXRlciB0byBhIHJlZ3VsYXIgZXhwcmVzc2lvbi4gaS5lOiA8Y29kZT58WzAtOV0qfDwvY29kZT4gd2hlcmVhcyBIVE1MIGRvZXMgbm90LiAgQ0dCZXR0ZXJGb3JtcyB3aWxsIHByb3ZpZGUgdGhlbS48L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5kYXRhLWNnYmYtbWluICh0b2RvKQogICAgICAgICA8cD5BcHBsaWNhYmxlIHRvIGludGVnZXIgYW5kIGZsb2F0IGZpZWxkcywgdGhpcyBhdHRyaWJ1dGUgaW5kaWNhdGVzIGEgbWluaW11bSB2YWx1ZSBmb3IgYWxsIHZhbHVlcyBvZiB0aGUgZmllbGQuPC9wPgogICAgICA8L2xpPgogICAgICA8bGk+ZGF0YS1jZ2JmLW1heCAodG9kbykKICAgICAgICAgPHA+QXBwbGljYWJsZSB0byBpbnRlZ2VyIGFuZCBmbG9hdCBmaWVsZHMsIHRoaXMgYXR0cmlidXRlIGluZGljYXRlcyBhIG1heGltdW0gdmFsdWUgZm9yIGFsbCB2YWx1ZXMgb2YgdGhlIGZpZWxkLjwvcD4KICAgICAgPC9saT4KICAgICAgPGxpPmRhdGEtY2diZi1jYXB0Y2hhCiAgICAgICAgIDxwPlRoaXMgYXR0cmlidXRlIHNlcnZlcyB0d28gcHVycG9zZXMuICBPbiByZW5kZXIgaXQgd2lsbCBhcHBlbmQgdGhlIGNvbnRlbnRzIG9mIGEgPGNvZGU+Jmx0O2RpdiZndDs8L2NvZGU+IHRhZyB3aXRoIHRoaXMgYXR0cmlidXRlIHdpdGggc29tZSBjYXB0Y2hhIGlucHV0LiAgT24gdmFsaWRhdGlvbiB0aGUgY2FwdGNoYSB3aWxsIGJlIHRlc3RlZC48L3A+CiAgICAgIDwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPkRhdGEgYXR0cmlidXRlcyB1c2VmdWwgZm9yIHNjYW5uaW5nIGFuZCBkaXNwb3NpdGlvbgogICAgPHVsPgogICAgICA8bGk+ZGF0YS1jZ2JmLWxhYmVsCiAgICAgICAgIDxwPlRoaXMgYXR0cmlidXRlIGlzIHVzZWZ1bCBvbiByYWRpby1idXR0b24gYW5kIGNoZWNrYm94IGdyb3VwcyB3aGVuIHRoZSBmb3JtIGlzIHNjYW5uZWQgYW5kIHBhcnNlZC4gIEJlY2F1c2UgaW5kaXZpZHVhbCByYWRpby1idXR0b24gb3IgY2hlY2tib3ggZmllbGRzIG1heSBoYXZlIHNlcGFyYXRlIGxhYmVscywgdGhpcyBhdHRyaWJ1dGUgYWxsb3dzIGV4cGxpY2l0bHkgc3BlY2lmeWluZyBhIGxhYmVsIHRvIGJlIHVzZWQgZm9yIHRoZSBmaWVsZCBhcyBhIHdob2xlIGluIHRoZSBkaXNwb3NpdGlvbiBwcm9jZXNzLjwvcD4KICAgICAgPC9saT4KICAgICAgPGxpPmRhdGEtY2diZi1odW1hbgogICAgICAgICA8cD5UaGlzIGF0dHJpYnV0ZSBpcyB1c2VmdWwgb24gdGhlIGluZGl2aWR1YWwgb3B0aW9ucyBvZiBzZWxlY3QgZmllbGRzLCByYWRpby1idXR0b24gZ3JvdXBzLCBvciBjaGVja2JveC1ncm91cHMgdG8gc3BlY2lmeSBhIGh1bWFuIHJlYWRhYmxlIHZhbHVlIGZvciBlYWNoIG9wdGlvbiB0byB1c2UgaW4gdGhlIGRpc3Bvc2l0aW9uIHByb2Nlc3MuICBJZiBub3Qgc3BlY2lmaWVkLCB0aGVuIHRoZSB0ZXh0IHBvcnRpb24gb2YgZWFjaCAmbHQ7b3B0aW9uJmd0OyBlbGVtZW50LCBvciB0aGUgbGFiZWwgb2YgZWFjaCByYWRpby1idXR0b24gb3IgY2hlY2tib3ggd2lsbCBiZSB1c2VkLjwvcD4KICAgICAgPC9saT4KICAgIDwvdWw+CiAgPC9saT4KPC91bD4KCjxoMz5TbWFydHkgcGx1Z2lucyBhbmQgdmFyaWFibGVzIGZvciBmb3JtIHJlbmRlcmluZzwvaDM+Cgo8aDM+VGlwcyBhbmQgVGVjaG5pcXVlczwvaDM+Cjx1bD4KICA8bGk+TGltaXQgdGhlIG51bWJlciBvZiBmaWVsZHMuCiAgICAgPHA+Rm9yIGEgYmV0dGVyIHVzZXIgaW50ZXJmYWNlIGl0IGlzIGltcG9ydGFudCB0byBsaW1pdCB0aGUgbnVtYmVyIG9mIGZpZWxkcyBpbiBhIGZvcm0uICBJZiB5b3VyIGZpZWxkIGhhcyBtb3JlIHRoYW4gYWJvdXQgYSBkb3plbiBmaWVsZHMgdGhhdCB0aGUgdXNlciBjYW4gZWRpdCBvciBhZGp1c3QgdGhlbiB0eXBpY2FsbHkgdXNlcnMgd2lsbCBub3QgcmVzcG9uZCB0byB0aGVtLCBvciBpZiB0aGV5IGRvIHRoZSBxdWFsaXR5IG9mIHRoZSBpbmZvcm1hdGlvbiBzdWJtaXR0ZWQgaXMgcmVkdWNlZC4gIGZvciB0aG9zZSBwdXJwb3NlcyBpdCBpcyBvZnRlbiBiZXN0IHRvIGtlZXAgdGhlIGZvcm1zIHNtYWxsLCBzaW1wbGUsIGFuZCBlYXN5IHRvIHVzZS48L3A+CiAgPC9saT4KICA8bGk+Q29uZGl0aW9uYWwgRmllbGRzCiAgICAgPHA+SWYgeW91IHdvdWxkIGxpa2UgdG8gaGlkZSBkaWZmZXJlbnQgZmllbGRzIGJhc2VkIG9uIGNlcnRhaW4gY29uZGl0aW9ucywgaXQgaXMgYmVzdCB0byBkbyB0aGF0IHVzaW5nIGphdmFzY3JpcHQgYW5kIHlvdXIgZmF2b3JpdGUganF1ZXJ5IHBsdWdpbnMgZXRjLjwvcD4KICAgICA8cD5IaW50OiAgWW91IGNhbiBzdXBwbHkgZGF0YSB0byBqYXZhc2NyaXB0IGZyb20gd2l0aGluIHlvdXIgdGVtcGxhdGUgdXNpbmcgc21hcnR5IHZhcmlhYmxlcy4gaS5lLjo8L3A+CiAgICAgPHByZT4mbHQ7c2NyaXB0Jmd0O3ZhciBmZXVfdWlkID0gJ3skZmV1X3NtYXJ0eTo6Z2V0X2N1cnJlbnRfdXNlcmlkKCl9JzsmbHQ7L3NjcmlwdCZndDs8L3ByZT4KICA8L2xpPgogIDxsaT5EeW5hbWljIG11bHRpLW9wdGlvbiBmaWVsZHMKICAgICA8cD5JZiB5b3Ugd291bGQgbGlrZSB0byBhZGQgb3B0aW9ucyB0byBzZWxlY3QsIG9yIG90aGVyIG11bHRpLW9wdGlvbiBmaWVsZHMgKGNoZWNrYm94IGdyb3VwcywgcmFkaW8tYnV0dG9uIGdyb3VwcykgZHluYW1pY2FsbHkgdmlhIHNtYXJ0eSBwbHVnaW5zIHdoZXJlIHRoZSBvcHRpb25zIGluIHRoZSBmaWVsZCBtYXkgY2hhbmdlLCBpdCBpcyBiZXN0IHRvIHR1cm4gb2ZmIHZhbGlkYXRpb24gZm9yIHRoYXQgZmllbGQuPC9wPgogICAgIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyB3aWxsIHR1cm4gb2ZmIGFsbCB2YWxpZGF0aW9ucyBmb3IgdGhhdCBmaWVsZCwgaW5jbHVkaW5nIEhUTUwgdmFsaWRhdGlvbi48L3A+CiAgPC9saT4KICA8bGk+UHJlLWZpbGxlZCBmaWVsZHMKICAgICA8cD5UaGVyZSBhcmUgbnVtZXJvdXMgd2F5cyB0byBwcm92aWRlIGluaXRpYWwgZGF0YSB0byBhIGZvcm0gKGkuZS46IGJlZm9yZSB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQgYnkgdGhlIHVzZXIgZm9yIHRoZSBmaXJzdCB0aW1lKS4gVGhlc2UgbWV0aG9kcywgaWYgZG9uZSBjb3JyZWN0bHkgd2lsbCBhbHNvIHByZXNlcnZlIHVzZXIgZGF0YSBpZiB0aGVyZSBpcyBhbiBlcnJvciBpbiBmb3JtIHN1Ym1pc3Npb24uPC9wPgogICAgIDx1bD4KICAgICAgIDxsaT5Vc2luZyBmaWVsZCBuYW1lIGFyZ3VtZW50cyBvbiB0aGUgc21hcnR5IHRhZzoKICAgICAgICAgIDxwPmkuZS46ICA8Y29kZT57Q0dCZXR0ZXJGb3JtcyBmb3JtPSdteWZvcm0nIGNnYmZfbXlmaWVsZG5hbWU9J3NvbWV2YWx1ZSd9PC9jb2RlPjwvcD4KICAgICAgIDwvbGk+CiAgICAgICA8bGk+Q2FsbGluZyA8Y29kZT57Y2diZl9zZXQgZmllbGQ9ZmllbGRfbmFtZSB2YWx1ZT1zb21ldGhpbmd9PC9jb2RlPiB0aGUgJnF1b3Q7UHJlLXJlbmRlciBMb2dpYyZxdW90OyB0YWIgd2hlbiBlZGl0aW5nIHRoZSBmb3JtLjwvbGk+CiAgICAgICA8bGk+Q2FsbGluZyBhIFVEVCBmcm9tIHdpdGhpbiB0aGUgZm9ybSB0ZW1wbGF0ZSB0byBhZGp1c3QgdGhlIFwkZm9ybV9kYXRhIHJlc3BvbnNlIG9iamVjdC48L2xpPgogICAgICAgPGxpPlVzaW5nIHRoZSA8Y29kZT5kYXRhLWNnYmYtc2VsZWN0ZWQ8Y29kZT4gYXR0cmlidXRlIG9uIHNlbGVjdCBib3hlcyBhbmQgcmFkaW8gYnV0dG9uIGdyb3Vwcy48L2xpPgogICAgICAgPGxpPlVzaW5nIDxjb2RlPnskZm9ybV9kYXRhLT5teWZpZWxkbmFtZX08L2NvZGU+IGFuZCB0aGUgJnF1b3Q7ZGVmYXVsdCZxdW90OyBzbWFydHkgbW9kaWZpZXIuCiAgICAgICAgICA8cD5pLmU6IDxjb2RlPnskZm9ybV9kYXRhLT5teWZpZWxkbmFtZXxkZWZhdWx0Oidmb28nfTwvY29kZT4uPC9wPgogICAgICAgPC9saT4KICAgICA8L3VsPgogIDwvbGk+CiAgPGxpPldvcmtpbmcgd2l0aCBGaWxlczwvbGk+CiAgPGxpPkFycmF5cyBvZiBkYXRhPC9saT4KICA8bGk+Q2FsY3VsYXRlZCBmaWVsZHM8L2xpPgogIDxsaT5VRFQncyBpbiB2YWxpZGF0aW9uCiAgICAgPHA+WW91IGNhbiB1c2UgdGhlIFRlbXBsYXRlIHZhbGlkYXRpb24sIGluIHRoZSB0ZW1wbGF0ZSBmb3IgdGhhdCB2YWxpZGF0aW9uIGNhbGwgeW91ciBVRFQuICBJZiB5b3VyIFVEVCByZXR1cm5zIGFueSBvdXRwdXQgaXQgd2lsbCBiZSB0cmVhdGVkIGFzIGEgdmFsaWRhdGlvbiBlcnJvci48L3A+CiAgPC9saT4KICA8bGk+VURUJ3MgaW4gZGlzcG9zaXRpb25zCiAgICAgPHA+VXNlIHRoZSBTdG9wRGlzcG9zaW5nIERpc3Bvc2l0aW9uLCBhbmQgaW4gdGhhdCB0ZW1wbGF0ZSBjYWxsIHlvdXIgVURULiAgSWYgeW91ciBVRFQgcmV0dXJucyBhbnkgb3V0cHV0IHRoZW4gZGlzcG9zaW5nIHdpbGwgc3RvcC48L3A+CiAgPC9saT4KICA8bGk+Q2hhaW5pbmcgZm9ybXMKICAgICA8b2w+CiAgICAgICA8bGk+VXNlIGEgVURUIHRvIGRpc3Bvc2UgdGhlIGZvcm0gcmVzcG9uc2UgdG8gdGhlIHNlc3Npb24uPC9saT4KICAgICAgIDxsaT5FaXRoZXIgdXNpbmcgYW5vdGhlciBkaXNwb3NpdGlvbiwgb3IgY29kZSB3aXRoaW4geW91ciBVRFQsIHJlZGlyZWN0IHRvIHRoZSBwYWdlIGNvbnRhaW5pbmcgdGhlIHNlY29uZCBmb3JtLjwvbGk+CiAgICAgICA8bGk+VXNlIGhpZGRlbiBmaWVsZHMgaW4gdGhlIHNlY29uZCBmb3JtIHRvIGNvbnRhaW4gdGhlIHZhbHVlcyBmcm9tIHRoZSBmaXJzdCBmb3JtLjwvbGk+CiAgICAgPC9vbD4KICA8L2xpPgo8L3VMPgoKCjxoMz5FeHRlbmRpbmcgZnVuY3Rpb25hbGl0eTwvaDM+CjxoND5Ib29rczwvaDQ+CjxoND5BUEkgUmVmZXJlbmNlPC9oND4KPGg0PkFkZGluZyBWYWxpZGF0aW9uczwvaDQ+CjxoND5BZGRpbmcgRGlzcG9zaXRpb25zPC9oND4KCjxoMz5TdXBwb3J0PC9oMz4KPGgzPkNvcHlyaWdodCAmIExpY2Vuc2U8L2gzPgo=]]></data>
	</file>
	<file>
	  <filename>/doc/template_help.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0id2FybmluZyIgc3R5bGU9IndpZHRoOiA5NSU7Ij48c3Ryb25nPlJlbWVtYmVyPC9zdHJvbmc+IHRvIHJlLXNjYW4gYW5kIHJlLXNhdmUgYW55IGZvcm1zIHVzaW5nIHRoaXMgdGVtcGxhdGUgZWFjaCB0aW1lIHlvdSBzYXZlIGl0LjwvZGl2PgoKPGZpZWxkc2V0Pgo8bGVnZW5kPlNtYXJ0eSBWYXJpYWJsZXM8L2xlZ2VuZD4KPHRhYmxlIHN0eWxlPSJ3aWR0aDogMTAwJTsiPgogIDx0cj4KICAgIDx0ZD4kZm9ybV9kYXRhPC90ZD4KICAgIDx0ZCBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7Ij48ZW0+KFxDR0JldHRlckZvcm1zXEZvcm1SZXNwb25zZSBvYmplY3QpPC9lbT48L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRoIGNvbHNwYW49IjIiPk1lbWJlcnM8L3RoPgogIDwvdHI+CiAgPHRyPgogICAgPHRkIGNvbHNwYW49IjIiPkVhY2ggZm9ybSBmaWVsZCAoYXMgaWRlbnRpZmllZCBpbiB0aGUgZmllbGRzIHRhYikgaXMgYXZhaWxhYmxlIGFzIGEgbWVtYmVyIG9mIHRoaXMgb2JqZWN0LiBpLmU6IDxjb2RlPnskZm9ybV9kYXRhLT5mb299PC9jb2RlPjwvdGQ+CiAgPC90cj4KICA8dHI+CiAgICA8dGggY29sc3Bhbj0iMiI+TWV0aG9kczwvdGg+CiAgPC90cj4KICA8dHI+CiAgICA8dGQ+PGNvZGU+c3RyaW5nW10geyRmb3JtX2RhdGEtPmxpc3RfZmllbGRzKCl9PC9jb2RlPjwvdGQ+CiAgICA8dGQ+UmV0dXJuIGEgbGlzdCBvZiBhbGwga25vd24gZmllbGQgbmFtZXMuPC90ZD4KICA8L3RyPgo8L3RhYmxlPgo8L2ZpZWxkc2V0PgoKPGZpZWxkc2V0Pgo8bGVnZW5kPlNtYXJ0eSBQbHVnaW5zPC9sZWdlbmQ+Cjx0YWJsZSBzdHlsZT0id2lkdGg6IDEwMCU7Ij4KICA8dHI+CiAgICA8dGQgdmFsaWduPSJ0b3AiPjxjb2RlPntjZ2JmX2Zvcm1fZXJyb3JzIGFzc2lnbj1uYW1lfTwvY29kZT48L3RkPgogICAgPHRkIHZhbGlnbj0idG9wIj4KICAgICAgPHA+T3V0cHV0OiAgPGNvZGU+c3RyaW5nW108L2NvZGU+PC9wPgogICAgICA8cD5QYXJhbWV0ZXJzOiA8Y29kZT5hc3NpZ248L2NvZGU+IC0gQXNzaWduIHRoZSBvdXRwdXQgZnJvbSB0aGlzIHBsdWdpbiB0byB0aGUgbmFtZWQgc21hcnR5IHZhcmlhYmxlLjwvcD4KICAgICAgPHA+QWZ0ZXIgdGhlIGZvcm0gaGFzIGJlZW4gc3VibWl0dGVkLCBpZiBhbnkgZXJyb3JzIG9jY3VyLCB0aGUgZm9ybSB3aWxsIGJlIHJlLXJlbmRlcmVkLiAgVGhpcyBwbHVnaW4gY2FuIGJlIHVzZWQgdG8gcmV0cmlldmUgdGhlIGVycm9ycy48L3A+CiAgICA8L3RkPgogIDwvdHI+CjwvdGFibGU+CjwvZmllbGRzZXQ+Cgo8ZmllbGRzZXQ+CjxsZWdlbmQ+RGF0YSBBdHRyaWJ1dGVzPC9sZWdlbmQ+Cjx0YWJsZSBzdHlsZT0id2lkdGg6IDEwMCU7Ij4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aCBzdHlsZT0ibWluLXdpZHRoOiAxNWVtOyI+TmFtZTwvdGg+CiAgICAgIDx0aD5WYWxpZCBmb3I8L3RoPgogICAgICA8dGg+Q29udGVudHMgKGlmIGFueSk8L3RoPgogICAgICA8dGg+RGVzY3JpcHRpb248L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICAgIDx0cj4KICAgICAgPHRkPjxjb2RlPmRhdGEtY2diZi1ub3ZhbGlkYXRlPGNvZGU+PC90ZD4KICAgICAgPHRkPmlucHV0LCBzZWxlY3QsIHRleHRhcmVhPC90ZD4KICAgICAgPHRkPjwvdGQ+CiAgICAgIDx0ZD5XaGVuIHNjYW5uaW5nIHRoZSBmb3JtLCBkbyBub3QgdmFsaWRhdGUgdGhpcyBmaWVsZCBhdCBhbGwuPC9wPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPjxjb2RlPmRhdGEtY2diZi1hY2NlcHQ8Y29kZT48L3RkPgogICAgICA8dGQ+dHlwZT0iZmlsZSI8L3RkPgogICAgICA8dGQ+PHA+Q29tbWEgc2VwYXJhdGVkIHN0cmluZyBvZiBtaW1lIHR5cGVzLiAgV2lsZGNhcmRzIHN1cHBvcnRlZC48L3A+PHA+aS5lOiA8Y29kZT5pbWFnZS8qLGFwcGxpY2F0aW9uL3BkZjxjb2RlPjwvcD48L3RkPgogICAgICA8dGQ+V2hlbiB2YWxpZGF0aW5nIHRoZSBmb3JtIHJlc3BvbnNlIGFjY2VwdCBvbmx5IHVwbG9hZHMgbWF0Y2hpbmcgdGhlc2UgZmlsZSB0eXBlcy48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPjxjb2RlPmRhdGEtY2diZi1tYXhzaXplPGNvZGU+PC90ZD4KICAgICAgPHRkPnR5cGU9ImZpbGUiPC90ZD4KICAgICAgPHRkPmludGVnZXI8L3RkPgogICAgICA8dGQ+VGhlIG1heGltdW0gZmlsZSBzaXplIG9mIGFueSBmaWxlIHVwbG9hZGVkIGZvciB0aGlzIGZpZWxkLjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+PGNvZGU+ZGF0YS1jZ2JmLWV4dGVuc2lvbjxjb2RlPjwvdGQ+CiAgICAgIDx0ZD50eXBlPSJmaWxlIjwvdGQ+CiAgICAgIDx0ZD5zdHJpbmc8L3RkPgogICAgICA8dGQ+PGVtPihub3QgcmVjb21tZW5kZWQpPC9lbT4gQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiB2YWxpZCBmaWxlIGV4dGVuc2lvbnMgdGhhdCBjYW4gYmUgdXBsb2FkZWQuPC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD48Y29kZT5kYXRhLWNnYmYtcHJpbWl0aXZlPGNvZGU+PC90ZD4KICAgICAgPHRkPiEgdHlwZT0iZmlsZSI8L3RkPgogICAgICA8dGQ+VGhlIHZhbHVlcyA8Y29kZT5pbnQsIGZsb2F0LCBkYXRlLCBlbWFpbCwgb3Igc3RyaW5nPC9jb2RlPjwvdGQ+CiAgICAgIDx0ZD5FeHBsaWNpdGx5IHNwZWNpZnkgdGhlIHR5cGUgb2YgdmFsdWUgZXhwZWN0ZWQgaW4gdGhlIGZpZWxkLCBmb3Igc2VydmVyLXNpZGUgdmFsaWRhdGlvbiBwdXJwb3Nlcy4gIElmIG5vdCBzcGVjaWZpZWQgdGhlbiBpbnRlbGxpZ2VudCBndWVzc2VzIGFyZSBtYWRlIGJhc2VkIG9uIHRoZSB0eXBlIG9mIGZpZWxkIGFuZCBvdGhlciBhdHRyaWJ1dGVzLjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+PGNvZGU+ZGF0YS1jZ2JmLXJlcXVpcmVkPGNvZGU+PC90ZD4KICAgICAgPHRkPmlucHV0LCBzZWxlY3QsIHRleHRhcmVhPC90ZD4KICAgICAgPHRkPjwvdGQ+CiAgICAgIDx0ZD5JbmRpY2F0ZXMgdGhhdCBhdCBsZWFzdCBvbmUgdmFsdWUgZm9yIHRoaXMgZmllbGQgaXMgcmVxdWlyZWQgdG8gcGFzcyB2YWxpZGF0aW9uLjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+PGNvZGU+ZGF0YS1jZ2JmLXBhdHRlcm48Y29kZT48L3RkPgogICAgICA8dGQ+ISB0eXBlPSJmaWxlIjwvdGQ+CiAgICAgIDx0ZD5zdHJpbmc8L3RkPgogICAgICA8dGQ+QSByZWd1bGFyIGV4cHJlc3Npb24gdGhhdCBhbGwgdmFsdWVzIGZvciB0aGUgZmllbGQgbXVzdCBtYXRjaC48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPjxjb2RlPmRhdGEtY2diZi1taW48Y29kZT48L3RkPgogICAgICA8dGQ+dHlwZT0ibnVtYmVyIiB8IGRhdGEtY2diZi1wcmltaXRpdmU9ImZsb2F0IiB8IGRhdGEtY2diZi1wcmltaXRpdmU9ImludCI8L3RkPgogICAgICA8dGQ+c3RyaW5nPC90ZD4KICAgICAgPHRkPlRoZSBtaW5pbXVtIHZhbHVlIGZvciB0aGlzIGZpZWxkLjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+PGNvZGU+ZGF0YS1jZ2JmLW1heDxjb2RlPjwvdGQ+CiAgICAgIDx0ZD50eXBlPSJudW1iZXIiIHwgZGF0YS1jZ2JmLXByaW1pdGl2ZT0iZmxvYXQiIHwgZGF0YS1jZ2JmLXByaW1pdGl2ZT0iaW50IjwvdGQ+CiAgICAgIDx0ZD5zdHJpbmc8L3RkPgogICAgICA8dGQ+VGhlIG1heGltdW0gdmFsdWUgZm9yIHRoaXMgZmllbGQuPC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD48Y29kZT5kYXRhLWNnYmYtY2FwdGNoYTxjb2RlPjwvdGQ+CiAgICAgIDx0ZD4mbHQ7ZGl2Jmd0OyBvciAmbHQ7c3BhbiZndDsgb3IgJmx0O3AmZ3Q7PC90ZD4KICAgICAgPHRkPjwvdGQ+CiAgICAgIDx0ZD5NYXJrcyBhIGNvbnRhaW5lciBmb3IgcGxhY2luZyBjYXRjaGEgSFRNTCBjb2RlLiBJZiBjYXB0Y2hhIGlzIGF2YWlsYWJsZS48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPjxjb2RlPmRhdGEtY2diZi1jYXB0Y2hhLWlucHV0PGNvZGU+PC90ZD4KICAgICAgPHRkPiZsdDtkaXYmZ3Q7IG9yICZsdDtzcGFuJmd0OyBvciAmbHQ7cCZndDs8L3RkPgogICAgICA8dGQ+PC90ZD4KICAgICAgPHRkPk1hcmtzIGEgY29udGFpbmVyIGZvciBwbGFjaW5nIGNhdGNoYSBpbnB1dCBIVE1MIGNvZGUuPC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD48Y29kZT5kYXRhLWNnYmYtbGFiZWw8Y29kZT48L3RkPgogICAgICA8dGQ+dHlwZT0icmFkaW8iIG9yIHR5cGU9ImNoZWNrYm94IjwvdGQ+CiAgICAgIDx0ZD5zdHJpbmc8L3RkPgogICAgICA8dGQ+VXNlZCBvbiB0aGUgZmlyc3QgZmllbGQgb2YgYSBjaGVja2JveCBvciByYWRpbyBncm91cCwgc3BlY2lmaWVzIGEgaHVtYW4tcmVhZGFibGUgbGFiZWwgZm9yIHRoZSBmaWVsZCBpZiBub25lIGNhbiBvdGhlcndpc2UgYmUgZGV0ZXJtaW5lZC4gIFRoaXMgbGFiZWwgaXMgdXNlZCBpbiB0aGUgZGlzcG9zaXRpb24gcHJvY2Vzcy48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPjxjb2RlPmRhdGEtY2diZi1odW1hbjxjb2RlPjwvdGQ+CiAgICAgIDx0ZD50eXBlPSJyYWRpbyIgb3IgdHlwZT0iY2hlY2tib3giIG9yICZsdDtvcHRpb24mZ3Q7PC90ZD4KICAgICAgPHRkPnN0cmluZzwvdGQ+CiAgICAgIDx0ZD5Vc2VkIHRvIHNwZWNpZnkgYSBodW1hbiByZWFkYWJsZSB2YWx1ZSB0byBiZSB1c2VkIHRvIGRlbm90ZSB0aGUgb3B0aW9uIGluIHRoZSBkaXNwb3NpdGlvbiBwcm9jZXNzLjwvdGQ+CiAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+CjwvZmllbGRzZXQ+]]></data>
	</file>
	<file>
	  <filename>/doc/TODO.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[RmllbGQgVmFsaWRhdG9ycwogLSBCb3QgZGV0ZWN0aW9uIChvcHRpb25hbCkKCkRpc3Bvc2l0aW9ucwogIC0gU3RvcmUgcmVzcG9uc2UgaW4gc2Vzc2lvbiAoY2FuIGJlIGRvbmUgaW4gYSBVRFQgdmlhIGFueSBkaXNwb3NpdGlvbiB0aGF0IHVzZXMgYSB0ZW1wbGF0ZSkKICAtIEZpbGUgZGlzcG9zaXRpb25zCiAgICAtIEFiaWxpdHkgdG8gc3BlY2lmeSBmaWxlIGV4dGVuc2lvbnMKClZhbGlkYXRlIHZpYSBhamF4CiAgKiBWYWxpZGF0ZSB2aWEgYWpheCAoRm9ybURhdGEgcGx1Z2luKSBkbyBub3QgYWxsb3cgZGlzcG9zaXRpb25zIHRvIHJ1biAqCiAgKiByZXR1cm4ganNvbiBkYXRhIHdpdGggZmllbGQgbmFtZSwgYW5kIGVycm9yIG1lc3NhZ2UuLi4gYWxsb3dzIGphdmFzY3JpcHQgdG8gaGlsaWdodCBiYWQgZmllbGRzICoKICAqIGFzIGEgc21hcnR5IHBsdWdpbiBsaWtlIHtjZ2JmX3ByZXN1Ym1pdF92YWxpZGF0ZX0KCntjZ2JmX3NldF9yZXNwb25zZV92YWx1ZSBmaWVsZD14eHh4IHZhbHVlPXh4eHh9IGZvciB1c2UgaW4gdmFsaWRhdGlvbnMgYW5kIGRpc3Bvc2l0aW9uIHRlbXBsYXRlcy4KCkxhbmd1YWdlIHN0cmluZ3MgKHBhcnRpY3VsYXJseSBmb3IgZXhjZXB0aW9ucykKU29tZSB3YXkgb2YgY2xlYW5pbmcgdXAgdXBsb2FkZWQgZmlsZXMKQVBJIERvY3VtZW50YXRpb24KVXNhZ2UgRG9jdW1lbnRhdGlvbgohISEgSGFuZGxlIHNjYW5uaW5nIG9mIHNtYXJ0eSB0ZW1wbGF0ZSB2aWEgYSBmcm9udGVuZCByZXF1ZXN0ID8/CiAgIC0gcGVyaGFwcyBzZXQgYSBzZXNzaW9uIHZhcmlhYmxlLCB0aGVuIHJlbmRlciB0aGUgcGFnZSAobm9uLWlubGluZSkgb3IgdXNlIHNob3d0ZW1wbGF0ZT1mYWxzZSBpbmxpbmUuLi4gYW5kIGdhdGhlciB0aGUgb3V0cHV0LgogICAtIHBhc3MgYSByZW5kZXI9R1VJRCBwYXJhbSwgY29tcGFyZSBpdCB0byBhIHNlc3Npb24gdmFyaWFibGUuLi4gaWYgdGhlIHRlc3QgcGFzc2VzIHRoZW4gd2UganVzdCBnZXQgdGhlIHJlbmRlcmVkIEhUTUwKICAgKiBOZWVkIGEgUEFHRSBpZAoKRm9ybVJlc3BvbnNlOjp0b19qc29uCi8vIGpzb24gZW5jb2RlIHRoZSByZXNwb25zZSBmb3IgdXNlIGluIGphdmFzY3JpcHQuCg==]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhQABAAPIAAAAAAAEBAAEBAQICAQICAgMDAgMDAwAAACH5BAEAAAcALAAAAABAAEAAAAP+CLrcYC7KSde5p8Gn4NbcJjIe+XwhZ2GmWqJp3J3muKCfgWVz66q3IFBWy80gu56nBLSBmEIa02lAsmCRkfbYMg5xjaTyByZ2Xr107Seedr9coXvsDCWhajy4zI9trRdPcX95b3hBWABtcCCMaGs2ei5iN25zkil1W5kzizufoKGio6QsK4EbpaqrrBdLnq2xslcKsLO3qzeUOhhLfoq0v5EhObyBHJTAx1m1tGVqFHfNqA87w6+mZw6WltYntjxz0xmXv3KnPOMMuB+4utnG5NW3nbftvcimgLJ29PnU8VS4+ydLRDJw3UJVIvMDUQlpytJFbBjRW6I+dXZpxDf+RFRDTCC9qSPI0OOgOHTqAYSIq2Wpe8viuZypb2IqmjhXwsuZU2U4m488iMRYo1Q/ahOZzTvmSxNBUh02ujKnDkuVhTJzHQwW1OJJdC2P8rsZq+uodf6WrnKqVlpWVj6h9gkCCu0sgarWMBz3E+LDUJuELnpGxu1Qu58YVfyItUXNZAYVvrnjxZKaZRE3iQq6+E0UpLze8bRGeMpgeRVHe8YBqh3i0VaLSHYz2q1gKAphCK59gDXHtyif8uzRGvhVCbwBpt6swTdvJXnNpNTNcJjftp+OB/ZBhLqWw1Elj9m292vsgGPqXi2Derv7j17pZtP7NvlP+dAm2c9dSMsio/0mUcEMWQC2xsV6wRUIVSHnKGiUUyg4mEtIErbC3igJAAA7]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ25hbWVfU2Vzc2lvbkRpc3Bvc2l0aW9uJ10gPSAnU3RvcmUgZm9ybSByZXN1bHRzIGluIHRoZSBzZXNzaW9uIGZvciBmdXJ0aGVyIHByb2Nlc3NpbmcnOwokbGFuZ1snZGlzcGxheV9FbWFpbEFkbWluV2l0aFJlcGx5VG8nXSA9ICdFbWFpbCBmaXhlZCBhZGRlc3NlcywgYW5kIHNldCByZXBseS10byBhcyB2YWx1ZSBwcm92aWRlZCBpbiAlcyBmaWVsZCc7CiRsYW5nWydpbmZvX2VtYWlsdXNlcmFkZHJlc3MnXSA9ICdTZWxlY3QgYSBmb3JtIGZpZWxkIHRoYXQgc2hvdWxkIGNvbnRhaW4gYSB1c2VyIHN1cHBsaWVkIGVtYWlsIGFkZHJlc3MnOwokbGFuZ1snbmFtZV9FbWFpbEFkbWluV2l0aFJlcGx5VG8nXSA9ICdTZW5kIGFuIGVtYWlsIHRvIGZpeGVkIGFkZHJlc3Nlcywgd2l0aCByZXBseS10byBhcyB1c2VyIGFkZHJlc3MnOwokbGFuZ1snZXJyX25vY29udGVudHMnXSA9ICdTb3JyeSwgYnV0IGl0IHNlZW1zIHRoZXJlIGlzIG5vIGNvbnRlbnQgKG9yIGF0IGxlYXN0IG5vIHZhbGlkIEhUTUwpIGluIHlvdXIgZm9ybSB0ZW1wbGF0ZS4nOwokbGFuZ1snbmFtZV9GaWxlVmFsaWRhdG9yJ10gPSAnVmFsaWRhdGUgdXBsb2FkZWQgZmlsZXMnOwokbGFuZ1sncHJvbXB0X3ByZXJlbmRlcl9sb2dpYyddID0gJ1ByZS1yZW5kZXIgTG9naWMnOwokbGFuZ1snaW5mb19wcmVyZW5kZXJfdGFiJ10gPSAnVXNlIHRoZSB0ZXh0IGFyZWEgYmVsb3cgdG8gYWRqdXN0IHRoZSBcJGZvcm1fZGF0YSBvYmplY3QgdGhhdCBpcyBhdmFpbGFibGUgd2hlbiB5b3VyIGZvcm0gaXMgaW5pdGlhbGx5IHJlbmRlcmVkLjxici8+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIGxvZ2ljIGlzIG5vdCBldmFsdWF0ZWQgd2hlbiBoYW5kbGluZyB0aGUgZm9ybSByZXNwb25zZS4nOwokbGFuZ1sncHJlcmVuZGVyX2xvZ2ljJ10gPSAnUHJlLXJlbmRlciBMb2dpYyc7CiRsYW5nWydhdXRvX2FkZF92YWxpZGF0aW9ucyddID0gJ0F1dG8gQWRkIFZhbGlkYXRpb25zJzsKJGxhbmdbJ2FwcGx5J10gPSAnQXBwbHknOwokbGFuZ1snaW5mb19zdG9wZGlzcG9zaW5nX3RwbCddID0gJ1Byb3ZpZGUgYSB0ZXN0IDxlbT4odmlhIGEgc21hcnR5IHRlbXBsYXRlKTwvZW0+IHRvIGluZGljYXRlIHdoZXRoZXIgYW55IGZ1cnRoZXIgcHJvY2Vzc2luZyBvZiBkaXNwb3NpdGlvbnMgc2hvdWxkIGJlIHByZXZlbnRlZC48YnIvPklmIHRoZSByZXN1bHQgb2YgcHJvY2Vzc2luZyB0aGlzIHRlbXBsYXRlIHJldHVybnMgYW55dGhpbmcgb3RoZXIgdGhhbiBhbiBlbXB0eSBzdHJpbmcgYWxsIGZ1cnRoZXIgZGlzcG9zaXRpb24gcHJvY2Vzc2luZyBleGNlcHQgdGhlIGZpbmFsIGFjdGlvbiwgd2lsbCBzdG9wLiAgaS5lLjoKPHByZT57aWYgJHNvbWVfZHJvcGRvd25fZmllbGQgPT0gJnF1b3Q7c29tZV92YWx1ZSZxdW90O30xey9pZn08L3ByZT4nOwokbGFuZ1snZGlzcGxheV9TdG9wRGlzcG9zaW5nRGlzcG9zaXRpb24nXSA9ICdTdG9wIHByb2Nlc3NpbmcgZGlzcG9zaXRpb25zIGJhc2VkIG9uIGEgY29uZGl0aW9uJzsKJGxhbmdbJ25hbWVfU3RvcERpc3Bvc2luZ0Rpc3Bvc2l0aW9uJ10gPSAnU3RvcCBwcm9jZXNzaW5nIGRpc3Bvc2l0aW9ucyBiYXNlZCBvbiBhIGNvbmRpdGlvbic7CiRsYW5nWydlcnJfZm9ybV9hY3Rpb25hdHRyJ10gPSAnWW91ciBmb3JtIHRhZyBoYXMgYW4gYWN0aW9uIGF0dHJpYnV0ZS4gIFRoaXMgd2lsbCBiZSByZXBsYWNlZCB3aGVuIHRoZSBmb3JtIGlzIHJlbmRlcmVkLic7CiRsYW5nWydlcnJfZm9ybV9tZXRob2RhdHRyJ10gPSAnWW91ciBmb3JtIHRhZyBoYXMgYSBtZXRob2QgYXR0cmlidXRlLiAgVGhpcyB3aWxsIGJlIHJlcGxhY2VkIHdoZW4gdGhlIGZvcm0gaXMgcmVuZGVyZWQuJzsKJGxhbmdbJ2Vycl9mb3JtX2VuY3R5cGVhdHRyJ10gPSAnWW91ciBmb3JtIHRhZyBoYXMgYW4gZW5jdHlwZSBhdHRyaWJ1dGUuICBUaGlzIHdpbGwgYmUgcmVwbGFjZWQgd2hlbiB0aGUgZm9ybSBpcyByZW5kZXJlZC4nOwokbGFuZ1snaW5mb190ZW1wbGF0ZXZhbGlkYXRpb24nXSA9ICdVc2UgdGhlIGNvbnRlbnRzIG9mIHRoaXMgc21hcnR5IHRlbXBsYXRlIHRvIGV2YWx1YXRlIHRoZSBkYXRhIHN1Ym1pdHRlZCB0byB0aGUgZm9ybS4gIElmIHRoZSB0ZW1wbGF0ZSByZXR1cm5zIGFueSB2YWxpZCAobm9uIHdoaXRlc3BhY2UpIG91dHB1dCwgaXQgd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBlcnJvciBhbmQgdGhlIG91dHB1dCB1c2VkIGFzIGFuIGVycm9yIG1lc3NhZ2UuICBIZXJlIGlzIGEgc2ltcGxlIGV4YW1wbGU6PGJyLz4KPHByZT57aWYgJGEgPCAwIHx8ICRhID4gMjB9VmFsaWQgdmFsdWVzIGZvciB0aGUgJnF1b3Q7YSZxdW90OyBmaWVsZCBhcmUgYmV0d2VlbiAwIGFuZCAyMHsvaWZ9PC9wcmU+JzsKJGxhbmdbJ2Rpc3BsYXlfVGVtcGxhdGVWYWxpZGF0aW9uJ10gPSAnVmFsaWRhdGUgdmlhIFNtYXJ0eSBUZW1wbGF0ZSc7CiRsYW5nWyduYW1lX1RlbXBsYXRlVmFsaWRhdGlvbiddID0gJ1ZhbGlkYXRlIHZpYSBTbWFydHkgVGVtcGxhdGUnOwokbGFuZ1sncGFyYW1fZm9ybSddID0gJ1RoZSBmb3JtIG5hbWUgdG8gcmVuZGVyIGFuZCBwcm9jZXNzJzsKJGxhbmdbJ3BhcmFtX25vZGF0ZWNoZWNrJ10gPSAnU3BlY2lmeSBhIHBvc2l0aXZlIGludGVnZXIgdG8gZGlzYWJsZSBkYXRlIGNoZWNraW5nIHdoZW4gcmVuZGVyaW5nIGEgZm9ybS4gIFRoaXMgaXMgdXNlZnVsIGZvciBkZXZlbG9wbWVudCBhbmQgdGVzdGluZyBwdXJwb3NlcywgYnV0IHNob3VsZCBub3QgYmUgdXNlZCBpbiBhIHByb2R1Y3Rpb24gc3lzdGVtLic7CiRsYW5nWydlcnJfZmllbGRfaW52YWxpZHZhbHVlJ10gPSAnVGhlIHZhbHVlIGZvciB0aGUgJXMgZmllbGQgaXMgaW52YWxpZCc7CiRsYW5nWydhdHRyaWJzJ10gPSAnQXR0cmlidXRlcyc7CiRsYW5nWydhdHRyX211bHRpcGxlJ10gPSAnbXVsdGlwbGUnOwokbGFuZ1snYXR0cl9ub3ZhbGlkYXRlJ10gPSAnbm92YWxpZGF0ZSc7CiRsYW5nWydhdHRyX21pbiddID0gJ21pbic7CiRsYW5nWydhdHRyX21heCddID0gJ21heCc7CiRsYW5nWydhdHRyX3BhdHRlcm4nXSA9ICdwYXR0ZXJuJzsKJGxhbmdbJ2Vycl9mb3JtX3ZlcnNpb25jaGFuZ2UnXSA9ICdUaGlzIGZvcm0gd2FzIGxhc3Qgc2F2ZWQgd2l0aCBhIGRpZmZlcmVudCB2ZXJzaW9uIG9mIENHQmV0dGVyRm9ybXMuLi4gcGxlYXNlIHNjYW4gYW5kIHNhdmUgdGhlIGZvcm0uJzsKJGxhbmdbJ25hbWVfRGF0ZVByaW1pdGl2ZVZhbGlkYXRvciddID0gJ0Vuc3VyZSBhIHJlYXNvbmFibGUgdmFsdWUgZm9yIGFsbCBkYXRlIGZpZWxkcyc7CiRsYW5nWydkaXNwbGF5X0RhdGVQcmltaXRpdmVWYWxpZGF0b3InXSA9ICdFbnN1cmUgYSByZWFzb25hYmxlIHZhbHVlIGZvciBhbGwgZGF0ZSBmaWVsZHMnOwokbGFuZ1snZXJyX2lucHV0X291dG9mcmFuZ2UnXSA9ICdPbmUgb3IgbW9yZSB2YWx1ZXMgb2YgdGhlICVzIGZpZWxkIGFyZSBvdXRzaWRlIG9mIHRoZSBhbGxvd2VkIGxpbWl0cyc7CiRsYW5nWydkaXNwbGF5X1JlZGlyZWN0VVJMRGlzcG9zaXRpb24nXSA9ICdSZWRpcmVjdCB0byBhIGNvbXB1dGVkIFVSTCc7CiRsYW5nWydpbmZvX3JlZGlyZWN0dXJsX3RlbXBsYXRlJ10gPSAnVGhlIG91dHB1dCBvZiB0aGlzIHRlbXBsYXRlIHNob3VsZCBiZSBhIHNpbXBsZSBVUkwgaW4gYSBzdHJpbmcuICBJZiBub24gZW1wdHksIGFuZCBhIHZhbGlkIFVSTCB0aGVuIHRoZSBzeXN0ZW0gd2lsbCByZWRpcmVjdCB0byB0aGlzIFVSTCB2aWEgR0VULic7CiRsYW5nWydwcm9tcHRfcmVkaXJlY3R1cmxfdGVtcGxhdGUnXSA9ICdVUkwgVGVtcGxhdGUnOwokbGFuZ1snbmFtZV9SZWRpcmVjdFVSTERpc3Bvc2l0aW9uJ10gPSAnUmVkaXJlY3QgdG8gYSBjb21wdXRlZCBVUkwnOwokbGFuZ1snZGlzcGxheV9Db21wdXRlZFBhZ2VEaXNwb3NpdGlvbiddID0gJ1JlZGlyZWN0IHRvIGEgY29tcHV0ZWQgcGFnZSBhbGlhcy9pZCc7CiRsYW5nWydwcm9tcHRfcGFnZV90cGwnXSA9ICdQYWdlIGFsaWFzIHRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fcGFnZV90cGwnXSA9ICdUaGUgb3V0cHV0IG9mIHRoaXMgc21hcnR5IHRlbXBsYXRlIHNob3VsZCBiZSBhIHNpbmdsZSBwYWdlIGFsaWFzIG9yIGlkIHRvIHJlZGlyZWN0IHRvLiAgSWYgbm90aGluZyBpcyBvdXRwdXQsIHRoZW4gdGhpcyBkaXNwb3NpdGlvbiB3aWxsIGJlIGlnbm9yZWQnOwokbGFuZ1snZGlzcGxheV9FbWFpbFVzZXJBZGRyZXNzRGlzcG9zaXRpb24nXSA9ICdTZW5kIGEgY29weSBvZiB0aGUgc3VibWlzc2lvbiB0byB0aGUgdXNlciBhZGRyZXNzIHNwZWNpZmllZCBpbiB0aGUgJXMgZmllbGQnOwokbGFuZ1snZWRpdF9Db21wdXRlZFBhZ2VEaXNwb3NpdGlvbiddID0gJ1JlZGlyZWN0IHRvIGEgY29tcHV0ZWQgcGFnZSBhbGlhcy9pZCc7CiRsYW5nWyduYW1lX0NvbXB1dGVkUGFnZURpc3Bvc2l0aW9uJ10gPSAnUmVkaXJlY3QgdG8gYSBjb21wdXRlZCBwYWdlIGFsaWFzL2lkJzsKJGxhbmdbJ3Byb21wdF9lbWFpbF9maWVsZCddID0gJ0VtYWlsIGFkZHJlc3MgZmllbGQnOwokbGFuZ1snbmFtZV9FbWFpbFVzZXJBZGRyZXNzRGlzcG9zaXRpb24nXSA9ICdTZW5kIGVtYWlsIHRvIHVzZXIgc3VwcGxpZWQgYWRkcmVzcyc7CiRsYW5nWydtc2dfc2Nhbm5lZF9zYXZlbmVlZGVkJ10gPSAnVGhlIGZvcm0gdGVtcGxhdGUgaGFzIGJlZW4gc2Nhbm5lZC4gIFBsZWFzZSBlbnN1cmUgdGhhdCB5b3Ugc2F2ZSB0aGUgZm9ybSc7CiRsYW5nWydmb3JtX2Zyb21fZW1haWwnXSA9ICdSZXBseS10byBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2VtYWlsYWRkcl9zeXNkZmx0J10gPSAnVXNlIHN5c3RlbSBkZWZhdWx0JzsKJGxhbmdbJ25vbmUnXSA9ICdOb25lJzsKJGxhbmdbJ2Zvcm1fZnJvbV9uYW1lJ10gPSAnRW1haWwgcmVwbHktdG8gTmFtZSc7CiRsYW5nWydpbmZvX2Zvcm1fZnJvbV9lbWFpbCddID0gJ1NwZWNpZnkgYW4gZW1haWwgYWRkcmVzcyB0aGF0IGVtYWlscyBzZW50IGJ5IHRoaXMgZm9ybSB3aWxsIGFwcGVhciB0byBiZSBmcm9tLiAgSWYgbm90IHNwZWNpZmllZCwgdGhlbiBzeXN0ZW0gZGVmYXVsdCBpbmZvcm1hdGlvbiB3aWxsIGJlIHVzZWQuCjxici8+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIGFkanVzdHMgdGhlIHJlcGx5LXRvIGFkZHJlc3MgaW4gdGhlIGVtYWlsIGZyb20gdGhlIHN5c3RlbSBkZWZhdWx0cy4gIFNvbWUgZGlzcG9zaXRpb25zIG1heSBmdXJ0aGVyIG1vZGlmeSB0aGUgcmVwbHktdG8gaGVhZGVyLic7CiRsYW5nWydpbmZvX2Zvcm1fZnJvbV9uYW1lJ10gPSAnU3BlY2lmeSBhIG5hbWUgdGhhdCBhbGwgZW1haWxzIHNlbnQgYnkgdGhpcyBmb3JtIHdpbGwgYXBwZWFyIHRvIGJlIGZyb20uICBJZiBub3Qgc3BlY2lmaWVkLCBubyB2YWx1ZSB3aWxsIGJlIHVzZWQnOwokbGFuZ1snZGlzcGxheV9GaWxlVmFsaWRhdG9yJ10gPSAnRW5zdXJlIGFsbCB1cGxvYWRzIGNvbmZvcm0gdG8gc3BlY2lmaWNhdGlvbnMgaW4gYXR0cmlidXRlcyc7CiRsYW5nWydhdXRvX3ZhbGlkYXRpb25zJ10gPSAnQXV0byBWYWxpZGF0aW9ucyc7CiRsYW5nWydkaXNwbGF5X0VtYWlsUHJpbWl0aXZlVmFsaWRhdG9yJ10gPSAnRW5zdXJlIGEgcmVhc29uYWJsZSB2YWx1ZSBmb3IgYWxsIGVtYWlsIGZpZWxkcyc7CiRsYW5nWyduYW1lX0VtYWlsUHJpbWl0aXZlVmFsaWRhdG9yJ10gPSAnRW5zdXJlIGEgcmVhc29uYWJsZSB2YWx1ZSBmb3IgYWxsIGVtYWlsIGZpZWxkcyc7CiRsYW5nWydkaXNwbGF5X1JlcXVpcmVkRmllbGRWYWxpZGF0b3InXSA9ICdWYWxpZGF0ZSB0aGF0IGFsbCByZXF1aXJlZCBmaWVsZHMgYXJlIHByZXNlbnQnOwokbGFuZ1snbmFtZV9SZXF1aXJlZEZpZWxkVmFsaWRhdG9yJ10gPSAnVmFsaWRhdGUgdGhhdCBhbGwgcmVxdWlyZWQgZmllbGRzIGFyZSBwcmVzZW50JzsKJGxhbmdbJ2Vycl9pbnB1dF9taXNzaW5ncmVxdWlyZWR2YWx1ZSddID0gJ0EgdmFsdWUgd2FzIG5vdCBzdWJtaXR0ZWQgZm9yIHRoZSAlcyBmaWVsZCc7CiRsYW5nWydmb3JtX2F1dG9fdmFsaWRhdGlvbnMnXSA9ICdVc2UgYXV0b21hdGljIHZhbGlkYXRpb25zJzsKJGxhbmdbJ2luZm9fYXV0b192YWxpZGF0aW9ucyddID0gJ0lmIGVuYWJsZWQsIHNlcnZlciBzaWRlIHZhbGlkYXRpb24gd2lsbCBiZSBkb25lIGJhc2VkIG9uIGF0dHJpYnV0ZXMgZGV0ZWN0ZWQgZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgZm9ybSB0ZW1wbGF0ZS4gIE90aGVyd2lzZSwgeW91IG11c3QgbWFudWFsbHkgdmFsaWRhdGUgZWFjaCBmaWVsZCc7CiRsYW5nWydlcnJfdXBsb2FkX3NpemUnXSA9ICdTb3JyeSwgYnV0IHRoZSBmaWxlcyB5b3UgdXBsb2FkZWQgZm9yIHRoZSAlcyBmaWVsZCBhcmUgdG9vIGxhcmdlLic7CiRsYW5nWydlcnJfdXBsb2FkX3R5cGUnXSA9ICdTb3JyeSwgYnV0IGZpbGVzIG9mIHRoaXMgdHlwZSBhcmUgbm90IGFsbG93ZWQgZm9yIGZpZWxkICVzJzsKJGxhbmdbJ2Vycl91cGxvYWRfZXh0ZW5zaW9uJ10gPSAnU29ycnksIGJ1dCBmaWxlcyBvZiB0aGlzIHR5cGUgYXJlIG5vdCBhbGxvd2VkIGZvciBmaWVsZCAlcyc7CiRsYW5nWyd0aXRsZV90ZW1wbGF0aW5nX2hlbHAnXSA9ICdGb3JtIHRlbXBsYXRpbmcgaGVscCc7CiRsYW5nWyd2YXJoZWxwX2NnYmZfc3VibWl0X3RpbWUnXSA9ICdUaGUgdW5peCB0aW1lc3RhbXAgb2YgdGhlIHRpbWUgdGhlIHVzZXIgc3VibWl0dGVkIHRoZSBmb3JtLjxici8+PGVtPihoaW50OiB1c2UgdGhlIGRhdGVfZm9ybWF0IG1vZGlmaWVyIHRvIGZvcm1hdCB0aGUgdGltZXN0YW1wIGludG8gc29tZXRoaW5nIHJlYWRhYmxlIGZvciB5b3VyIGxvY2FsZSk8L2VtLic7CiRsYW5nWyd2YXJoZWxwX2NnYmZfc3VibWl0X2lwJ10gPSAnVGhlIElQIGFkZHJlc3Mgb2YgdGhlIHVzZXIgc3VibWl0dGluZyB0aGUgZm9ybSc7CiRsYW5nWyd2YXJoZWxwX2NnYmZfZm9ybW5hbWUnXSA9ICdUaGUgbmFtZSBvZiB0aGUgZm9ybSBiZWluZyBzdWJtaXR0ZWQnOwokbGFuZ1sndmFyaGVscF9jZ2JmX2Zvcm1kZXNjJ10gPSAnVGhlIGRlc2NyaXB0aW9uIDxlbT4oaWYgYW55KTwvZW0+IGFzc29jaWF0ZWQgd2l0aCB0aGUgZm9ybS4nOwokbGFuZ1sndmFyaGVscF9jZ2JmX3JlcXVlc3RpZCddID0gJ1RoZSB1bmlxdWUgaWQgZ2VuZXJhdGVkIGZvciBlYWNoIGZvcm0gc3VibWlzc2lvbi4nOwokbGFuZ1sndmFyaGVscF9jZ2JmX0VPTCddID0gJ0FuIGVuZCBvZiBsaW5lIGNoYXJhY3RlciBzZXF1ZW5jZSAobWF5IGJlIHBsYXRmb3JtIHNwZWNpZmljKS4gIFRoaXMgaXMgc3VpdGFibGUgZm9yIHVzZSBpbiBmaWxlIG91dHB1dCB0ZW1wbGF0ZXMuJzsKJGxhbmdbJ3ZhcmhlbHBfY2diZl9MRiddID0gJ0EgbGluZSBmZWVkIGNoYXJhY3Rlcic7CiRsYW5nWyd2YXJoZWxwX2NnYmZfVEFCJ10gPSAnQSB0YWIgY2hhcmFjdGVyLCBzdWl0YWJsZSBmb3IgdXNlIGluIGZpbGUgb3V0cHV0IHRlbXBsYXRlcy4nOwokbGFuZ1snaW5mb19mb3JtX2lubGluZSddID0gJ0lmIGVuYWJsZWQsIHRoZSBvdXRwdXQgb2YgdGhpcyBmb3JtIDxlbT4od2hlbiBpdCBpcyB0ZXh0IGJhc2VkKTwvZW0+IHdpbGwgcmVwbGFjZSB0aGUgb3JpZ2luYWwgdGFnLiAgVGhpcyBhbGxvd3MgdGhlIHRhZyB0byBiZSBpbiBhIHNpZGViYXIgb3IgZW1iZWRkZWQgaW4gYSBjb250ZW50IGFyZWEuJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICdPcHRpb25zJzsKJGxhbmdbJ2Zvcm1faW5saW5lJ10gPSAnRGlzcGxheSBmb3JtIGlubGluZSc7CiRsYW5nWydkaXNwbGF5X0NvbXB1dGVkVmFsdWUnXSA9ICdDb21wdXRlIGEgdmFsdWUgYW5kIHBsYWNlIHRoZSByZXN1bHQgaW50byAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlZGl0X2NvbXB1dGVkX3ZhbHVlJ10gPSAnQ29tcHV0ZWQgVmFsdWUgRmllbGQnOwokbGFuZ1snaW5mb19jb21wdXRlZF92YWx1ZV9maWVsZCddID0gJ1NlbGVjdCB0aGUgZmllbGQgdGhhdCB3aWxsIHJlY2VpdmUgdGhlIG91dHB1dCBvZiB0aGUgdGVtcGxhdGUuJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlJzsKJGxhbmdbJ25hbWVfQ29tcHV0ZWRWYWx1ZSddID0gJ0NvbXB1dGUgYSBmaWVsZCB2YWx1ZSc7CiRsYW5nWydpbmZvX2ZpZWxkc190YWInXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgYWxsIG9mIHRoZSBpbnB1dCBmaWVsZHMgdGhhdCB3aWxsIGJlIHN1Ym1pdHRlZCB3aXRoIHlvdXIgZm9ybS4gIE9ubHkgaW5wdXQgZmllbGRzIGZvciB3aGljaCBhIG5hbWUgd2FzIGRldGVjdGVkIGFyZSBsaXN0ZWQuJzsKJGxhbmdbJ25vX21lc3NhZ2VzJ10gPSAnV29vdCEgWW91ciBmb3JtIGlzIGxvb2tpbmcgZ29vZC4nOwokbGFuZ1sndHlwZV9DR0JldHRlckZvcm1zJ10gPSAnQ0dCZXR0ZXJGb3Jtcyc7CiRsYW5nWyd0eXBlX0Zvcm0nXSA9ICdGb3JtJzsKJGxhbmdbJ2Vycl9tb2RfdmFsaWRhdGlvb25lb25seSddID0gJ1NvcnJ5LCB5b3UgYXJlIGFscmVhZHkgdXNpbmcgdGhpcyB2YWxpZGF0aW9uIG9uIHRoaXMgZm9ybS4nOwokbGFuZ1snZGlzcGxheV9XZWJIb29rRGlzcG9zaXRpb24nXSA9ICdQb3N0IGZvcm0gcmVzdWx0cyB0byAlcyc7CiRsYW5nWydpbmZvX3dlYmhvb2tfZXh0cmF2YXJzJ10gPSAnRW50ZXIgYW55IGV4dHJhIGZpeGVkIGRhdGEgdGhhdCBzaG91bGQgYmUgc2VudCB3aXRoIHRoZSBmb3JtLiAgT25lIGVudHJ5IHBlciBsaW5lIHdpdGggdmFyaWFibGVzIGFuZCBkYXRhIHNlcGFyYXRlZCB3aXRoIGFuIGVxdWFsIHNpZ24uICBpLmU6PGJyLz48cHJlPmZvbz1iYXI8YnIvPmZvbzI9YmFyMjwvcHJlPic7CiRsYW5nWydwcm9tcHRfd2ViaG9va19leHRyYXZhcnMnXSA9ICdFeHRyYSBmb3JtIHZhcmlhYmxlcyc7CiRsYW5nWydpbmZvX3dlYmhvb2tfdXJsJ10gPSAnU3BlY2lmeSB0aGUgY29tcGxldGUgVVJMIHRoYXQgdGhlIGZvcm0gcmVzdWx0cyB3aWxsIGJlIHNlbnQgdG8gdmlhIFBPU1QuJzsKJGxhbmdbJ3Byb21wdF93ZWJob29rX3VybCddID0gJ1dlYkhvb2sgVVJMJzsKJGxhbmdbJ2VkaXRfV2ViSG9va0Rpc3Bvc2l0aW9uJ10gPSAnRWRpdCBhIFdlYkhvb2sgRGlzcG9zaXRpb24nOwokbGFuZ1snbmFtZV9XZWJIb29rRGlzcG9zaXRpb24nXSA9ICdQT1NUIGZvcm0gcmVzdWx0cyB0byBhIFVSTC9XZWJIb29rJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0RlbGV0ZSc7CiRsYW5nWydkaXNwbGF5X1VuaXF1ZUZpbGVEaXNwb3NpdGlvbiddID0gJ1N0b3JlIGZvcm0gcmVzdWx0cyBpbiBhIHVuaXF1ZSBmaWxlIGluICZxdW90OyZsdDtyb290Jmd0Oy8lcyZxdW90Oyc7CiRsYW5nWyduYW1lX1VuaXF1ZUZpbGVEaXNwb3NpdGlvbiddID0gJ1N0b3JlIGZvcm0gcmVzdWx0cyBpbiBhIHVuaXF1ZSBmaWxlIGZvciBlYWNoIHN1Ym1pc3Npb24nOwokbGFuZ1snaW5mb191bmlxdWVmaWxlX2ZvbGRlciddID0gJ1NwZWNpZnkgYSBmb2xkZXIgPGVtPihyZWxhdGl2ZSB0byB0aGUgQ01TTVMgcm9vdCBkaXJlY3RvcnkpIHRvIHRoZSBzdG9yZSBvdXRwdXQgZmlsZXMuJzsKJGxhbmdbJ2VkaXRfdW5pcXVlZmlsZV9kaXNwb3NpdGlvbiddID0gJ1N0b3JlIHJlc3VsdHMgaW4gYSB1bmlxdWUgZmlsZSc7CiRsYW5nWydwcm9tcHRfdW5pcXVlZmlsZV9mb2xkZXInXSA9ICdPdXRwdXQgZm9sZGVyJzsKJGxhbmdbJ25hbWVfRW1haWxGaWVsZFZhbGlkYXRvciddID0gJ0Vuc3VyZSBhIHNwZWNpZmljIGZpZWxkIHZhbHVlIGNvbnRhaW5zIGVtYWlsIGFkZHJlc3Nlcyc7CiRsYW5nWydlZGl0X2VtYWlsX2ZpZWxkdmFsaWRhdGlvbiddID0gJ1ZhbGlkYXRlIHRoYXQgc3VibWl0dGVkIHZhbHVlKHMpIGZvciBhIGZpZWxkIGNvbnRhaW4gZW1haWwgYWRkcmVzc2VzJzsKJGxhbmdbJ2Rpc3BsYXlfRW1haWxGaWVsZFZhbGlkYXRpb24nXSA9ICdFbnN1cmUgdGhhdCB2YWx1ZXMgZm9yIGZpZWxkICVzIGFyZSB2YWxpZCBlbWFpbCBhZGRyZXNzZXMnOwokbGFuZ1snZGlzcGxheV9SZWdleEZpZWxkVmFsaWRhdGlvbiddID0gJ0Vuc3VyZSB0aGF0IHZhbHVlcyBmb3IgZmllbGQgJXMgbWF0Y2ggdGhlIHBhdHRlcm4gJXMnOwokbGFuZ1snbmFtZV9SZWdleEZpZWxkVmFsaWRhdG9yJ10gPSAnTWF0Y2ggZmllbGQgdmFsdWVzIGFnYWluc3QgYSByZWd1bGFyIGV4cHJlc3Npb24nOwokbGFuZ1snZWRpdF9yZWdleF9maWVsZHZhbGlkYXRpb24nXSA9ICdWYWxpZGF0ZSB0aGF0IHN1Ym1pdHRlZCB2YWx1ZShzKSBmb3IgYSBmaWVsZCBtYXRjaCBhIHJlZ3VsYXIgZXhwcmVzc2lvbic7CiRsYW5nWydwcm9tcHRfcmVnZXhfcGF0dGVybiddID0gJ1JlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWydtc2dfdmFsaWRhdGlvbl9zYXZlZCddID0gJ1ZhbGlkYXRpb24gc2F2ZWQuLi4gUGxlYXNlIHNhdmUgdGhlIGZvcm0uJzsKJGxhbmdbJ2Rpc3BsYXlfSHRtbERldGVjdGlvblZhbGlkYXRpb24nXSA9ICdEZXRlY3QgSFRNTCB0YWdzIGluIGZvcm0gaW5wdXQnOwokbGFuZ1snZXJyX3NlY3VyaXR5X3JlcXVlc3RndWlkJ10gPSAnU29ycnksIHNvbWV0aGluZyBoYXMgZ29uZSB3cm9uZy4gIFdlIGNvdWxkIG5vdCBmaW5kIGEgdmFsaWQgdW5pcXVlIHJlcXVlc3QgaWQgaW4gdGhlIHBvc3RlZCBkYXRhJzsKJGxhbmdbJ2NhcHRjaGFfdmFsaWRhdGUnXSA9ICdQbGVhc2UgdmFsaWRhdGUgdGhlIGNhcHRjaGEgdGV4dCc7CiRsYW5nWydlcnJfZm9ybV9zY2FubmVlZGVkJ10gPSAnVGhlIHRlbXBsYXRlIG9iamVjdCBoYXMgYmVlbiBtb2RpZmllZC4gIFBsZWFzZSBzY2FuIHRoZSBmb3JtJzsKJGxhbmdbJ2Rpc3BsYXlfRHJvcGRvd25FbWFpbERpc3Bvc2l0aW9uJ10gPSAnU2VuZCByZXN1bHRzIHZpYSBlbWFpbCBiYXNlZCBvbiB0aGUgdmFsdWUgb2YgZmllbGQgJXMnOwokbGFuZ1sncHJvbXB0X2RmbHRfZW1haWxfYWRkcmVzcyddID0gJ0RlZmF1bHQgZW1haWwgYWRkcmVzcyc7CiRsYW5nWydwcm9tcHRfZGRlbWFpbF92YWx1ZV9tYXAnXSA9ICdNYXAgZmllbGQgdmFsdWVzIHRvIEVtYWlsIGFkZHJlc3Nlcyc7CiRsYW5nWydpbmZvX2RmbHRfZW1haWxfYWRkcmVzcyddID0gJ0VudGVyIGFuIGVtYWlsIGFkZHJlc3MgdG8gdXNlIGluIHRoZSBldmVudCB0aGF0IGEgdmFsdWUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIgZG9lcyBub3QgZXhpc3QgaW4gdGhlIG1hcCBiZWxvdy4nOwokbGFuZ1snaW5mb19kZGVtYWlsX3ZhbHVlX21hcCddID0gJ0VudGVyIGEgbWFwIChvbmUgZW50cnkgcGVyIGxpbmUpIG9mIHZhbHVlcyBhdmFpbGFibGUgaW4gdGhlIGZpZWxkIHRvIGVtYWlsIGFkZHJlc3Nlcy4gIFZhbHVlcyBzaG91bGQgYmUgc2VwYXJhdGVkIGZyb20gZW1haWxzIHVzaW5nIGEgcG9wZSA8ZW0+KHwpPC9lbT4gY2hhcmFjdGVyLic7CiRsYW5nWydlZGl0X2RkZW1haWxfZGlzcG9zaXRpb24nXSA9ICdTZW5kIG91dHB1dCB2aWEgZW1haWwgZGVwZW5kaW5nIG9uIGEgZHJvcGRvd24vbXVsdGktb3B0aW9uIGZpZWxkJzsKJGxhbmdbJ25hbWVfRHJvcGRvd25FbWFpbERpc3Bvc2l0aW9uJ10gPSAnU2VuZCBmb3JtIHN1Ym1pc3Npb24gdmlhIGVtYWlsIGJhc2VkIG9uIGEgZHJvcGRvd24nOwokbGFuZ1snaW5mb19kZGVtYWlsX2ZpZWxkJ10gPSAnVGhlIGZpZWxkcyBsaXN0ZWQgYWJvdmUgYXJlIHRoZSBmaWVsZHMgZGV0ZWN0ZWQgdG8gYWxsb3cgcHJlZGVmaW5lZCB2YWx1ZXMuICBTZWxlY3Qgb25lIG9mIHRob3NlIGZpZWxkcyB0byBiYXNlIHRoZSBvdXRwdXQgZmlsZW5hbWUgdXBvbi4nOwokbGFuZ1snaW5mb19kZGZpbGVfZmllbGQnXSA9ICdUaGUgZmllbGRzIGxpc3RlZCBhYm92ZSBhcmUgdGhlIGZpZWxkcyBkZXRlY3RlZCB0byBhbGxvdyBwcmVkZWZpbmVkIHZhbHVlcy4gIFNlbGVjdCBvbmUgb2YgdGhvc2UgZmllbGRzIHRvIGJhc2UgdGhlIG91dHB1dCBmaWxlbmFtZSB1cG9uLic7CiRsYW5nWydwcm9tcHRfaGRydGVtcGxhdGUnXSA9ICdIZWFkZXIgVGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X2VudHJ5dGVtcGxhdGUnXSA9ICdFbnRyeSBUZW1wbGF0ZSc7CiRsYW5nWydlcnJfZHVwbGljYXRlX2ZpZWxkbmFtZSddID0gJ1RoZSBmaWVsZCBhdCBsaW5lICVzIGhhcyB0aGUgc2FtZSBuYW1lIGFzIHRoZSBmaWVsZCBhdCBsaW5lICVzJzsKJGxhbmdbJ2Vycl9kdXBsaWNhdGVfZmllbGRpZCddID0gJ1RoZSBmaWVsZCBhdCBsaW5lICVzIGhhcyB0aGUgc2FtZSBpZCAoJXMpIGFzIHRoZSBmaWVsZCBhdCBsaW5lICVzJzsKJGxhbmdbJ2Vycl9pbnB1dF9taXNzaW5ndmFsdWUnXSA9ICdUaGUgJXMgZmllbGQgd2l0aCBuYW1lICVzIGF0IGFib3V0IGxpbmUgJWQgaXMgbWlzc2luZyBhIHZhbHVlIGF0dHJpYnV0ZSc7CiRsYW5nWydwcm9tcHRfZmluYWxhY3Rpb24nXSA9ICdCZWhhdmlvciBhZnRlciBhbGwgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBjb21wbGV0ZSc7CiRsYW5nWydwcm9tcHRfZG9maW5hbG1zZyddID0gJ0Rpc3BsYXkgYSBtZXNzYWdlIHRvIHRoZSB1c2VyJzsKJGxhbmdbJ3Byb21wdF9kb2ZpbmFscmVkaXJlY3QnXSA9ICdSZWRpcmVjdCB0byBhIGNvbnRlbnQgcGFnZSc7CiRsYW5nWydwcm9tcHRfZmluYWxwYWdlJ10gPSAnUGFnZSB0byByZWRpcmVjdCB0byc7CiRsYW5nWydwcm9tcHRfZmluYWxtZXNzYWdlJ10gPSAnU21hcnR5IHRlbXBsYXRlIGZvciB0aGUgZmluYWwgbWVzc2FnZSB0byBkaXNwbGF5IHRvIHRoZSB1c2VyJzsKJGxhbmdbJ2luZm9fZmluYWxfZGlzcG9zaXRpb24nXSA9ICdUaGlzIHRhYiBpcyB1c2VkIHRvIGRlZmluZSB0aGUgZmluYWwgZGlzcG9zaXRpb24uICBJdCBpcyBwb3NzaWJsZSB0aGF0IHRoaXMgZmluYWwgZGlzcG9zaXRpb24gaXMgbm90IHBlcmZvcm1lZCwgZGVwZW5kaW5nIHVwb24gdGhlIGJlaGF2aW9yIG9mIG90aGVyIGRpc3Bvc2l0aW9ucy4nOwokbGFuZ1snaW5mb19mb3JtX2hhbmRsZXJzJ10gPSAnVGhpcyB0YWIgaXMgdXNlZCB0byBkZWZpbmUgaG93IHRoZSB1c2VyLWVudGVyZWQgaW5mb3JtYXRpb24gd2lsbCBiZSBwcm9jZXNzZWQgYWZ0ZXIgZm9ybSBzdWJtaXQuICBOb3RlLCB0aGF0IGl0IGlzIHBvc3NpYmxlIHRoYXQgc29tZSBoYW5kbGVycyBtYXkgc3RvcCB0aGUgcHJvY2Vzc2luZyBvZiBmdXJ0aGVyIGhhbmRsZXJzLCBvciBldmVuIHRoZSBmaW5hbCBkaXNwb3NpdGlvbi4gc28gdGhlaXIgb3JkZXIgbWF5IGJlIGltcG9ydGFudC4nOwokbGFuZ1snaW5mb19mb3JtX3ZhbGlkYXRpb25zJ10gPSAnVmFsaWRhdGlvbnMgYXJlIHRlc3RzIHRoYXQgYXJlIHJ1biBvbiB5b3VyIGZvcm0gYWZ0ZXIgYSB1c2VyIHN1Ym1pdHMgaXQuICBJZiBhIHRlc3QgZmFpbHMsIHRoZW4gYW4gZXJyb3IgbWVzc2FnZSBpcyBkaXNwbGF5ZWQgYW5kIHlvdXIgZm9ybSBpcyByZS1kaXNwbGF5ZWQuICBOb3RlIHRoYXQgZmlsZSB1cGxvYWRzIGNhbiBiZSBsb3N0IHdoZW4gYW4gZXJyb3Igb2NjdXJzLic7CiRsYW5nWydpbmZvX2Zvcm1fbWVzc2FnZXMnXSA9ICdUaGUgbWVzc2FnZXMgYmVsb3cgaW5kaWNhdGUgcG90ZW50aWFsIHByb2JsZW1zIGRldGVjdGVkIHdoZW4gc2Nhbm5pbmcgdGhlIHRlbXBsYXRlIHByb3ZpZGVkLiAgUGxlYXNlIHJlc29sdmUgYXMgbWFueSBvZiB0aGVzZSBhcyBwb3NzaWJsZSB0byBlbnN1cmUgdGhhdCB5b3VyIGZvcm0gYmVoYXZlcyB3ZWxsLic7CiRsYW5nWydlZGl0J10gPSAnRWRpdCc7CiRsYW5nWydtdWx0aXBsZSddID0gJ011bHRpcGxlJzsKJGxhbmdbJ21zZ19jYW5jZWxsZWQnXSA9ICdDYW5jZWxsZWQnOwokbGFuZ1snbXNnX2hhbmRsZXJfc2F2ZWQnXSA9ICdIYW5kbGVyIGVkaXRlZC4uLiBQbGVhc2Ugc2F2ZSB0aGUgZm9ybS4nOwokbGFuZ1sncHJvbXB0X2VtYWlsX2JvZHlfdGVtcGxhdGUnXSA9ICdCb2R5IFRlbXBsYXRlJzsKJGxhbmdbJ3Byb21wdF9lbWFpbF9zdWJqZWN0X3RlbXBsYXRlJ10gPSAnU3ViamVjdCBUZW1wbGF0ZSc7CiRsYW5nWydwcm9tcHRfY3N2X2VtYWlsX2FkZHJlc3NlcyddID0gJ0VtYWlsIEFkZHJlc3NlcyAoY3N2KSc7CiRsYW5nWyduYW1lX0h0bWxEZXRlY3Rpb25WYWxpZGF0b3InXSA9ICdEZXRlY3QgSFRNTCB0YWdzIGluIGlucHV0IHZhbHVlcyc7CiRsYW5nWyduYW1lX1NlbGVjdEZpZWxkVmFsaWRhdG9yJ10gPSAnVmFsaWRhdGUgdmFsdWVzIGZvciBzZWxlY3QgZmllbGRzJzsKJGxhbmdbJ25hbWVfRmxvYXRGaWVsZFZhbGlkYXRvciddID0gJ0Zsb2F0IEZpZWxkIFZhbGlkYXRvcic7CiRsYW5nWyduYW1lX0ludGVnZXJGaWVsZFZhbGlkYXRvciddID0gJ0ludGVnZXIgRmllbGQgVmFsaWRhdG9yJzsKJGxhbmdbJ2Rpc3BsYXlfRmxvYXRGaWVsZFZhbGlkYXRpb24xJ10gPSAnVmFsaWRhdGUgdGhhdCB0aGUgJXMgZmllbGQgaGFzIGEgdmFsdWUgb2YgYXQgbGVhc3QgJS4zZic7CiRsYW5nWydkaXNwbGF5X0Zsb2F0RmllbGRWYWxpZGF0aW9uMiddID0gJ1ZhbGlkYXRlIHRoYXQgdGhlICVzIGZpZWxkIGhhcyBhIHZhbHVlIG9mIG5vIG1vcmUgdGhhbiAlLjNmJzsKJGxhbmdbJ2Rpc3BsYXlfRmxvYXRGaWVsZFZhbGlkYXRpb24zJ10gPSAnVmFsaWRhdGUgdGhhdCB0aGUgJXMgZmllbGQgaGFzIGEgdmFsdWUgYmV0d2VlbiAlLjNmIGFuZCAlLjNmJzsKJGxhbmdbJ2Rpc3BsYXlfSW50ZWdlckZpZWxkVmFsaWRhdGlvbjEnXSA9ICdWYWxpZGF0ZSB0aGF0IHRoZSAlcyBmaWVsZCBoYXMgYSB2YWx1ZSBvZiBhdCBsZWFzdCAlZCc7CiRsYW5nWydkaXNwbGF5X0ludGVnZXJGaWVsZFZhbGlkYXRpb24yJ10gPSAnVmFsaWRhdGUgdGhhdCB0aGUgJXMgZmllbGQgaGFzIGEgdmFsdWUgb2Ygbm8gbW9yZSB0aGFuICVkJzsKJGxhbmdbJ2Rpc3BsYXlfSW50ZWdlckZpZWxkVmFsaWRhdGlvbjMnXSA9ICdWYWxpZGF0ZSB0aGF0IHRoZSAlcyBmaWVsZCBoYXMgYSB2YWx1ZSBiZXR3ZWVuICVkIGFuZCAlZCc7CiRsYW5nWydlZGl0X2Zsb2F0X2ZpZWxkdmFsaWRhdGlvbiddID0gJ0Vuc3VyZSB0aGF0IGEgZmllbGQgaXMgYSBmbG9hdGluZyBwb2ludCB2YWx1ZSB3aXRoaW4gYSBzcGVjaWZpZWQgcmFuZ2UuJzsKJGxhbmdbJ2VkaXRfaW50ZWdlcl9maWVsZHZhbGlkYXRpb24nXSA9ICdFbnN1cmUgdGhhdCBhIGZpZWxkIGlzIGFuIGludGVnZXIgdmFsdWUgd2l0aGluIGEgc3BlY2lmaWVkIHJhbmdlLic7CiRsYW5nWydwcm9tcHRfbWF4dmFsdWUnXSA9ICdNYXhpbXVtIFZhbHVlJzsKJGxhbmdbJ3Byb21wdF9taW52YWx1ZSddID0gJ01pbmltdW0gVmFsdWUnOwokbGFuZ1snZXJyX21vZF92YWxpZGF0aW9ub25lb25seSddID0gJ09ubHkgb25lIG9mIHRoZXNlIHZhbGlkYXRpb25zIGlzIGFsbG93ZWQgcGVyIGZvcm0nOwokbGFuZ1snZGlzcGxheV9TZWxlY3RGaWVsZFZhbGlkYXRpb24nXSA9ICdWYWxpZGF0ZSB0aGUgdmFsdWUgb2Ygc2VsZWN0IGZpZWxkcyc7CiRsYW5nWydhZGRfdmFsaWRhdGlvbiddID0gJ0FkZCBhIHZhbGlkYXRpb24nOwokbGFuZ1snZXJyb3JfYm90ZGV0ZWN0ZWQnXSA9ICdIbW1tLi4uIFNvbWV0aGluZyBoYXMgZ29uZSB3cm9uZyAoRUIwMDEpJzsKJGxhbmdbJ21zZ19mb3Jtc2F2ZWQnXSA9ICdGb3JtIHNhdmVkJzsKJGxhbmdbJ21zZ19mb3JtZGVsZXRlZCddID0gJ0Zvcm0gZGVsZXRlZCc7CiRsYW5nWydmaW5hbCddID0gJ0Zvcm0gb3V0cHV0JzsKJGxhbmdbJ3Jlc2V0J10gPSAnUmVzZXQnOwokbGFuZ1snZGlzcGxheV9Ecm9wZG93bkZpbGVEaXNwb3NpdGlvbiddID0gJ1N0b3JlIHJlc3VsdHMgdG8gYSBmaWxlIGluICVzIGJhc2VkIG9uIHZhbHVlIG9mIGZpZWxkICVzJzsKJGxhbmdbJ3Jlc2V0X3RwbHMnXSA9ICdSZXNldCBUZW1wbGF0ZXMnOwokbGFuZ1snZWRpdF9kZGZpbGVfZGlzcG9zaXRpb24nXSA9ICdTYXZlIG91dHB1dCB0byBmaWxlIGRlcGVuZGluZyBvbiBkcm9wZG93bi9tdWx0aS1vcHRpb24gZmllbGQnOwokbGFuZ1sncHJvbXB0X2ZpZWxkJ10gPSAnRmllbGQnOwokbGFuZ1sncHJvbXB0X2RkZmlsZV9mb2xkZXInXSA9ICdPdXRwdXQgRm9sZGVyJzsKJGxhbmdbJ2lkJ10gPSAnSWQnOwokbGFuZ1sndGFnJ10gPSAnVGFnJzsKJGxhbmdbJ3NhdmUnXSA9ICdTYXZlJzsKJGxhbmdbJ2Rpc3BsYXlfRW1haWxGaXhlZEFkZHJlc3Nlc0Rpc3Bvc2l0aW9uMSddID0gJ0VtYWlsIHJlc3VsdHMgdG8gJXMnOwokbGFuZ1snZGlzcGxheV9FbWFpbEZpeGVkQWRkcmVzc2VzRGlzcG9zaXRpb24yJ10gPSAnRW1haWwgcmVzdWx0cyB0byAlZCBhZGRyZXNzZXMnOwokbGFuZ1snZm9ybSddID0gJ0Zvcm0nOwokbGFuZ1snbmFtZV9FbWFpbEZpeGVkQWRkcmVzc2VzRGlzcG9zaXRpb24nXSA9ICdFbWFpbCByZXN1bHRzIHRvIHNwZWNpZmllZCBhZGRyZXNzZXMnOwokbGFuZ1snZGlzcGxheV9GbGF0RmlsZURpc3Bvc2l0aW9uJ10gPSAnU2F2ZSBmb3JtIHJlc3VsdHMgdG8gYSBmbGF0IEZpbGUgJXMnOwokbGFuZ1snaW5mb19GbGF0RmlsZV9maWxlbmFtZSddID0gJ1RoZSBwYXRoIChyZWxhdGl2ZSB0byB0aGUgd2Vic2l0ZSByb290KSBvZiB0aGUgRmxhdCBmaWxlJzsKJGxhbmdbJ3Byb21wdF9maWxlbmFtZSddID0gJ0ZpbGVuYW1lJzsKJGxhbmdbJ2Vycl9ub2Rpc3Bvc2l0aW9uJ10gPSAnUGxlYXNlIHNlbGVjdCBhIGhhbmRsZXInOwokbGFuZ1snbmFtZV9GbGF0RmlsZURpc3Bvc2l0aW9uJ10gPSAnU2F2ZSBmb3JtIHJlc3VsdHMgdG8gYSBmbGF0IEZpbGUnOwokbGFuZ1snbmFtZV9Ecm9wZG93bkZpbGVEaXNwb3NpdGlvbiddID0gJ1NhdmUgZm9ybSByZXN1bHRzIHRvIGEgZmlsZSBiYXNlZCBvbiBhIGRyb3Bkb3duJzsKJGxhbmdbJ2FkZF9kaXNwb3NpdGlvbiddID0gJ0FkZCBhIEhhbmRsZXInOwokbGFuZ1snYWRkJ10gPSAnQWRkJzsKJGxhbmdbJ2hhbmRsZXInXSA9ICdIYW5kbGVyJzsKJGxhbmdbJ2hhbmRsZXJzJ10gPSAnSGFuZGxlcnMnOwokbGFuZ1sndmFsaWRhdGlvbiddID0gJ1ZhbGlkYXRpb24nOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnQ0dCZXR0ZXJGb3Jtcyc7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0EgbW9kdWxlIGZvciBoYW5kbGluZyBmb3JtcyB0aGF0IHdlcmUgY3JlYXRlZCBhbmQgZGVzaWduZWQgYnkgYSBkZXZlbG9wZXInOwokbGFuZ1snYWRkX25ld19mb3JtJ10gPSAnQ3JlYXRlIGEgbmV3IGZvcm0nOwokbGFuZ1snZWRpdGluZ19mb3JtJ10gPSAnRWRpdCBhIGZvcm0nOwokbGFuZ1snc3VibWl0J10gPSAnU3VibWl0JzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7CiRsYW5nWydmb3JtX25hbWUnXSA9ICdGb3JtIE5hbWUnOwokbGFuZ1sncGhfZm9ybV9uYW1lJ10gPSAnRW50ZXIgYSB1bmlxdWUgbmFtZSc7CiRsYW5nWydmb3JtX3RlbXBsYXRlJ10gPSAnRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWydzY2FuJ10gPSAnU2Nhbic7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXB0aW9uJzsKJGxhbmdbJ3BoX2Zvcm1fZGVzYyddID0gJ0VudGVyIGEgYnJpZWYgZGVzY3JpcHRpb24gb2YgdGhpcyBmb3JtJzsKJGxhbmdbJ2Vycl9ub2Zvcm1zJ10gPSAnQ291bGQgbm90IGZpbmQgYW55IGZvcm0gdGFncyc7CiRsYW5nWydlcnJfbWFueWZvcm1zJ10gPSAnRm91bmQgbXVsdGlwbGUgZm9ybSB0YWdzJzsKJGxhbmdbJ2Vycl9taXNzaW5nX2Zvcm1zdGFydCddID0gJ0NvdWxkIG5vdCBmaW5kIGFueSBmb3JtIHRhZ3MnOwokbGFuZ1snZXJyX21pc3NpbmdfZm9ybWVuZCddID0gJ0NvdWxkIG5vdCBmaW5kIGFueSBlbmQgZm9ybSB0YWdzJzsKJGxhbmdbJ2Vycl9taXNzaW5nX21lc3NhZ2VzdHJpbmcnXSA9ICdDb3VsZCBub3QgZmluZCBhIGNhbGwgdG8ge2NnYmZfZm9ybV9lcnJvcnN9IGluIHRoZSB0ZW1wbGF0ZS4nOwokbGFuZ1snZXJyX2lucHV0X21pc3NpbmduYW1lJ10gPSAnVGhlICVzIGZpZWxkIGF0IGFib3V0IGxpbmUgJXMgaXMgbWlzc2luZyBhIG5hbWUuJzsKJGxhbmdbJ2Vycl9pbnB1dF9pbnZhbGlkbmFtZSddID0gJ1RoZSAlcyBmaWVsZCBhdCBhYm91dCBsaW5lICVzIGhhcyBhIHByb2JsZW1hdGljIG5hbWUgb2Y6ICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2Vycl9pbnB1dF9ub3RkYXRlJ10gPSAnT25lIG9yIG1vcmUgdmFsdWVzIG9mIHRoZSAlcyBmaWVsZCBhcmUgbm90IHZhbGlkIGRhdGVzLic7CiRsYW5nWydlcnJfaW5wdXRfbm90ZW1haWwnXSA9ICdPbmUgb3IgbW9yZSB2YWx1ZXMgb2YgdGhlICVzIGZpZWxkIGFyZSBub3QgdmFsaWQgZW1haWwgYWRkcmVzc2VzLic7CiRsYW5nWydlcnJfaW5wdXRfbWlzc2luZ2xhYmVsJ10gPSAnQ291bGQgbm90IGZpbmQgYSBsYWJlbCBmb3IgZmllbGQgJnF1b3Q7JXMmcXVvdDsgYXQgYWJvdXQgbGluZSAlZC4nOwokbGFuZ1snbmFtZSddID0gJ05hbWUnOwokbGFuZ1snbGFiZWwnXSA9ICdMYWJlbCc7CiRsYW5nWyd0eXBlJ10gPSAnVHlwZSc7CiRsYW5nWydub2RlJ10gPSAnTm9kZSc7CiRsYW5nWydtZXNzYWdlcyddID0gJ01lc3NhZ2VzJzsKJGxhbmdbJ2ZpZWxkcyddID0gJ0ZpZWxkcyc7Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/abstract.DOMField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgphYnN0cmFjdCBjbGFzcyBET01GaWVsZCBleHRlbmRzIEZpZWxkCnsKICAgIHByaXZhdGUgJF9saW5lOwogICAgcHJpdmF0ZSAkX3ZhbHVlOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChcRE9NTm9kZSAkbm9kZSkKICAgIHsKICAgICAgICAkbm9kZW5hbWUgPSAkbm9kZS0+bm9kZU5hbWU7CiAgICAgICAgJGF0dHJpYnMgPSAkdGhpcy0+Z2V0QXR0cmlidXRlc0FycmF5KCRub2RlLT5hdHRyaWJ1dGVzKTsKICAgICAgICAkdGhpcy0+X2xpbmUgPSAkbm9kZS0+Z2V0TGluZU5vKCk7CiAgICAgICAgJHRoaXMtPl92YWx1ZSA9ICRub2RlLT5ub2RlVmFsdWU7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCggJG5vZGVuYW1lLCAkYXR0cmlicyApOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRBdHRyaWJ1dGVzQXJyYXkoXERPTU5hbWVkTm9kZU1hcCAkbWFwKQogICAgewogICAgICAgICRvdXQgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkbWFwIGFzICRhdHRyICkgewogICAgICAgICAgICAkb3V0WyRhdHRyLT5ub2RlTmFtZV0gPSAkYXR0ci0+bm9kZVZhbHVlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3Nob3J0X2F0dHJpYnV0ZSggJGtleSApCiAgICB7CiAgICAgICAgJHZhbCA9ICR0aGlzLT5oYXNfYXR0cmlidXRlKCAka2V5ICk7CiAgICAgICAgJHN0ciA9ICR0aGlzLT5nZXRfYXR0cmlidXRlKCAka2V5ICk7CiAgICAgICAgaWYoIHN0cmxlbigkc3RyKSApICR2YWwgPSAkc3RyOwogICAgICAgIHJldHVybiAkdmFsOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdmFsdWUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbHVlOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbGluZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbGluZTsKICAgIH0KfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/abstract.Field.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgphYnN0cmFjdCBjbGFzcyBGaWVsZAp7CiAgICBwcml2YXRlICRfYXR0cmlicyA9IFtdOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggJG5vZGVuYW1lLCBhcnJheSAkYXR0cmlidXRlcyApCiAgICB7CiAgICAgICAgJHRoaXMtPl9ub2RlbmFtZSA9IHN0cnRvbG93ZXIodHJpbSgkbm9kZW5hbWUpKTsKICAgICAgICBmb3JlYWNoKCAkYXR0cmlidXRlcyBhcyAka2V5ID0+ICR2YWwgKSB7CiAgICAgICAgICAgICRrZXkgPSBzdHJ0b2xvd2VyKCRrZXkpOwogICAgICAgICAgICAkdGhpcy0+X2F0dHJpYnNbJGtleV0gPSAkdmFsOwogICAgICAgIH0KICAgICAgICBpZiggIWlzc2V0KCR0aGlzLT5fYXR0cmlic1sndHlwZSddKSApIHsKICAgICAgICAgICAgaWYoICR0aGlzLT5fbm9kZW5hbWUgPT0gJ2lucHV0JyApICR0aGlzLT5fYXR0cmlic1sndHlwZSddID0gJ3RleHQnOwogICAgICAgICAgICBpZiggJHRoaXMtPl9ub2RlbmFtZSA9PSAnYnV0dG9uJyApICR0aGlzLT5fYXR0cmlic1sndHlwZSddID0gJ3N1Ym1pdCc7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPl9hdHRyaWJzWyd0eXBlJ10gPSBzdHJ0b2xvd2VyKCR0aGlzLT5fYXR0cmlic1sndHlwZSddKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmdldF9hdHRyaWJ1dGUoJ25hbWUnKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X25vZGVuYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9ub2RlbmFtZTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX2F0dHJpYnV0ZSggJGtleSApCiAgICB7CiAgICAgICAgJGtleSA9IHN0cnRvbG93ZXIodHJpbSgka2V5KSk7CiAgICAgICAgaWYoICEka2V5ICkgcmV0dXJuOwogICAgICAgIHJldHVybiBhcnJheV9rZXlfZXhpc3RzKCRrZXksICR0aGlzLT5fYXR0cmlicyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9hdHRyaWJ1dGUoJGtleSkKICAgIHsKICAgICAgICAka2V5ID0gc3RydG9sb3dlcih0cmltKCRrZXkpKTsKICAgICAgICBpZiggISRrZXkgKSByZXR1cm47CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fYXR0cmlic1ska2V5XSkgKSByZXR1cm4gJHRoaXMtPl9hdHRyaWJzWyRrZXldOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfc2lnbmF0dXJlKCkKICAgIHsKICAgICAgICByZXR1cm4gbWQ1KF9fQ0xBU1NfXy4kdGhpcy0+X3R5cGUuJHRoaXMtPl9ub2RlbmFtZSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9hdHRyaWJ1dGVzX2J5X3ByZWZpeCggJHByZWZpeCApCiAgICB7CiAgICAgICAgJHByZWZpeCA9IHN0cnRvbG93ZXIodHJpbSgkcHJlZml4KSk7CiAgICAgICAgJG91dCA9IFtdOwogICAgICAgIGZvcmVhY2goICR0aGlzLT5fYXR0cmlicyBhcyAka2V5ID0+ICR2YWwgKSB7CiAgICAgICAgICAgIGlmKCBzdGFydHN3aXRoKCAka2V5LCAkcHJlZml4KSApICRvdXRbJGtleV0gPSAkdmFsOwogICAgICAgIH0KICAgICAgICBpZiggY291bnQoJG91dCkgKSByZXR1cm4gJG91dDsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3M=]]></data>
	</file>
	<file>
	  <filename>/lib/abstract.FormTester.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgphYnN0cmFjdCBjbGFzcyBGb3JtVGVzdGVyIGltcGxlbWVudHMgSUZvcm1UZXN0ZXIKewogICAgcHJpdmF0ZSAkX3NjYW5uZXI7CiAgICBwcml2YXRlICRfdGVzdHM7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCBGb3JtU2Nhbm5lciAkc2Nhbm5lciwgYXJyYXkgJHRlc3RzID0gbnVsbCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9zY2FubmVyID0gJHNjYW5uZXI7CiAgICAgICAgJHRoaXMtPl90ZXN0cyA9ICR0ZXN0czsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X3Rlc3RzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl90ZXN0czsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2Zvcm1zKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9zY2FubmVyLT5nZXRfZm9ybXMoKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2lucHV0cygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fc2Nhbm5lci0+Z2V0X2ZpZWxkcygpOwogICAgfQoKfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CaptchaModuleProvider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgpjbGFzcyBDYXB0Y2hhTW9kdWxlUHJvdmlkZXIgaW1wbGVtZW50cyBJQ2FwdGNoYVByb3ZpZGVyCnsKICAgIHByaXZhdGUgJF9tb2Q7CiAgICBwcml2YXRlICRfY2FwdGNoYTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoIFxDR0JldHRlckZvcm1zICRtb2QsIFxDYXB0Y2hhICRjYXB0Y2hhICkKICAgIHsKICAgICAgICAkdGhpcy0+X21vZCA9ICRtb2Q7CiAgICAgICAgJHRoaXMtPl9jYXB0Y2hhID0gJGNhcHRjaGE7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jYXB0Y2hhX2lucHV0ZmllbGQoKQogICAgewogICAgICAgIGlmKCAkdGhpcy0+X2NhcHRjaGEtPk5lZWRzSW5wdXRGaWVsZCgpICkgewogICAgICAgICAgICByZXR1cm4gJzxpbnB1dCBuYW1lPSJjZ2JmX2lucHV0X2NhcHRjaGEiIGNsYXNzPSJjZ2JmX2lucHV0X2NhcHRjaGEiLz4nOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NhcHRjaGFfZGlzcGxheSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fY2FwdGNoYS0+Z2V0Q2FwdGNoYSgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZV9jYXB0Y2hhKCkKICAgIHsKICAgICAgICAkaW5wdXQgPSBudWxsOwogICAgICAgIGlmKCAkdGhpcy0+X2NhcHRjaGEtPk5lZWRzSW5wdXRGaWVsZCgpICkgJGlucHV0ID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkX1JFUVVFU1QsJ2NnYmZfY2FwdGNoYScpOwogICAgICAgIHJldHVybiAkdGhpcy0+X2NhcHRjaGEtPkNoZWNrQ2FwdGNoYSggJGlucHV0ICk7CiAgICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/lib/class.ClassFinder.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXMKCmNsYXNzIENsYXNzRmluZGVyCnsKICAgIC8vIGdldCBhIGxpc3Qgb2YgY2xhc3NlcyB0aGF0IGV4dGVuZCBhIGJhc2VjbGFzcy4KCiAgICBwdWJsaWMgZnVuY3Rpb24oICRiYXNlY2xhc3NuYW1lLCAkcGF0dGVybiA9IG51bGwgKQogICAgewogICAgICAgIC8vIGZpbmQgYWxsIGNsYXNzZXMgZGVyaXZlZCBmcm9tIGEgY2VydGFpbiBjbGFzcyBvciBpbnRlcmZhY2UKICAgICAgICAvLyBmaW5kIGFsbCBmaWxlcyBtYXRjaGluZyB0aGUgcGF0dGVybgogICAgICAgIC8vIG9wZW4gdGhlIGZpbGUsIGNoZWNrIGZvciBjbGFzc2VzCgogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfZnJvbV9maWxlKCAkZmlsZW5hbWUgKQogICAgewoKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2Zyb21fcGF0aCggJHBhdGhuYW1lICkKICAgIHsKCiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jbGFzc25hbWVzKCkKICAgIHsKICAgICAgICAvLyByZXR1cm4gdGgKICAgIH0KfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.DispositionEditorHelperProxy.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgpjbGFzcyBEaXNwb3NpdGlvbkVkaXRvckhlbHBlclByb3h5CnsKICAgIHByaXZhdGUgJF9tb2Q7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCBcQ0dCZXR0ZXJGb3JtcyAkbW9kICkKICAgIHsKICAgICAgICAkdGhpcy0+X21vZCA9ICRtb2Q7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGNhbmNlbCggJGZvcm1fZ3VpZCApCiAgICB7CiAgICAgICAgaWYoICEkZm9ybV9ndWlkICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignTm8gZm9ybV9ndWlkIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICR0aGlzLT5fbW9kLT5TZXRNZXNzYWdlKCR0aGlzLT5fbW9kLT5MYW5nKCdtc2dfY2FuY2VsbGVkJykpOwogICAgICAgICR0aGlzLT5fbW9kLT5SZWRpcmVjdCgnbTFfJywnYWRtaW5fZWRpdF9mb3JtJywgJycsIFsnZm9ybV9ndWlkJz0+JGZvcm1fZ3VpZCwgJ2NnX2FjdGl2ZXRhYic9PidoYW5kbGVycyddICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGZpbmlzaCggRm9ybSAkZm9ybSwgJGZvcm1fZ3VpZCwgRGlzcG9zaXRpb25zXElEaXNwb3NpdGlvbiAkZGlzcCwgJGRpc3BfZ3VpZCApCiAgICB7CiAgICAgICAgaWYoICEkZm9ybV9ndWlkICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignTm8gZm9ybV9ndWlkIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICRmb3JtX2d1aWQgPSBcQ0dCZXR0ZXJGb3Jtc1x1dGlsczo6c3RvcmVfb2JqZWN0KCAkZm9ybSwgJGZvcm1fZ3VpZCApOwogICAgICAgICRkaXNwX2d1aWQgPSBcQ0dCZXR0ZXJGb3Jtc1x1dGlsczo6c3RvcmVfb2JqZWN0KCAkZGlzcCwgJGRpc3BfZ3VpZCApOwogICAgICAgICR0aGlzLT5fbW9kLT5TZXRNZXNzYWdlKCR0aGlzLT5fbW9kLT5MYW5nKCdtc2dfaGFuZGxlcl9zYXZlZCcpKTsKICAgICAgICAkdGhpcy0+X21vZC0+UmVkaXJlY3QoICdtMV8nLCAnYWRtaW5fZWRpdF9mb3JtJywgJycsIFsgJ2Zvcm1fZ3VpZCc9PiRmb3JtX2d1aWQsICdkaXNwX2d1aWQnPT4kZGlzcF9ndWlkLCAnY2dfYWN0aXZldGFiJz0+J2hhbmRsZXJzJ10gKTsKICAgIH0KfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.DOMButtonField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgpjbGFzcyBET01CdXR0b25GaWVsZCBleHRlbmRzIERPTUZpZWxkIHsKICAgIHVzZSBET01MYWJlbEZpZWxkVHJhaXQ7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFxET01Ob2RlICRub2RlKQogICAgewogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJG5vZGUpOwogICAgICAgICR0aGlzLT5zZXRfbGFiZWwoJHRoaXMtPmZpbmRQYXJlbnRMYWJlbCgkbm9kZSkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfYXR0cmlidXRlKCRrZXkpCiAgICB7CiAgICAgICAgJHJlcyA9IHBhcmVudDo6Z2V0X2F0dHJpYnV0ZSgka2V5KTsKICAgICAgICBpZiggJHJlcyApIHJldHVybiAkcmVzOwogICAgICAgIGlmKCAka2V5ID09ICd0eXBlJyApIHJldHVybiAnc3VibWl0JzsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.DOMFormField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgpjbGFzcyBET01Gb3JtRmllbGQgZXh0ZW5kcyBET01GaWVsZCB7fQo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.DOMInputField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgpjbGFzcyBET01JbnB1dEZpZWxkIGV4dGVuZHMgRE9NRmllbGQgewogICAgdXNlIERPTUxhYmVsRmllbGRUcmFpdDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoXERPTU5vZGUgJG5vZGUpCiAgICB7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgkbm9kZSk7CiAgICAgICAgJHRoaXMtPnNldF9sYWJlbCgkdGhpcy0+ZmluZFBhcmVudExhYmVsKCRub2RlKSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF92YWx1ZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5nZXRfYXR0cmlidXRlKCd2YWx1ZScpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfYXR0cmlidXRlKCAka2V5ICkKICAgIHsKICAgICAgICAkcmVzID0gcGFyZW50OjpnZXRfYXR0cmlidXRlKCAka2V5ICk7CiAgICAgICAgaWYoICRyZXMgKSByZXR1cm4gJHJlczsKICAgICAgICBpZiggJGtleSA9PSAndHlwZScgKSByZXR1cm4gJ3RleHQnOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.DOMLabelField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgpjbGFzcyBET01MYWJlbEZpZWxkIGV4dGVuZHMgRE9NRmllbGQge30K]]></data>
	</file>
	<file>
	  <filename>/lib/class.DOMSelectField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgpjbGFzcyBET01TZWxlY3RGaWVsZCBleHRlbmRzIERPTUZpZWxkCnsKICAgIHVzZSBET01MYWJlbEZpZWxkVHJhaXQ7CgogICAgcHJpdmF0ZSAkX29wdGlvbnMgPSBbXTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoXERPTU5vZGUgJG5vZGUpCiAgICB7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgkbm9kZSk7CiAgICAgICAgJHRoaXMtPnNldF9sYWJlbCgkdGhpcy0+ZmluZFBhcmVudExhYmVsKCRub2RlKSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGlzX211bHRpc2VsZWN0KCkKICAgIHsKICAgICAgICAkbXVsdGlwbGUgPSAkdGhpcy0+Z2V0X2F0dHJpYnV0ZSgnbXVsdGlwbGUnKTsKICAgICAgICBpZiggJG11bHRpcGxlICkgcmV0dXJuIHRydWU7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF92YWx1ZSgpCiAgICB7CiAgICAgICAgaWYoICR0aGlzLT5pc19tdWx0aXNlbGVjdCgpICkgewogICAgICAgICAgICAkb3V0ID0gW107CiAgICAgICAgICAgIGZvcmVhY2goICR0aGlzLT5fb3B0aW9ucyBhcyAkb3B0aW9uICkgewogICAgICAgICAgICAgICAgaWYoICRvcHRpb24tPmdldF9zZWxlY3RlZCgpICkgJG91dFtdID0gJG9wdGlvbi0+Z2V0X3ZhbHVlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICRvdXQ7CiAgICAgICAgfQoKICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X29wdGlvbnMgYXMgJG9wdGlvbiApIHsKICAgICAgICAgICAgaWYoICRvcHRpb24tPmdldF9zZWxlY3RlZCgpICkgcmV0dXJuICRvcHRpb24tPmdldF92YWx1ZSgpOwogICAgICAgIH0KCiAgICAgICAgaWYoICFpc3NldCgkdGhpcy0+X29wdGlvbnNbMF0pICkgcmV0dXJuOwogICAgICAgIHJldHVybiAkdGhpcy0+X29wdGlvbnNbMF0tPmdldF92YWx1ZSgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRfb3B0aW9uKCBET01TZWxlY3RPcHRpb24gJG9wdGlvbiApCiAgICB7CiAgICAgICAgJHRoaXMtPl9vcHRpb25zW10gPSAkb3B0aW9uOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3B0aW9ucygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fb3B0aW9uczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX29wdGlvbnMoKQogICAgewogICAgICAgIHJldHVybiBjb3VudCgkdGhpcy0+X29wdGlvbnMpOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.DOMSelectOption.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgpjbGFzcyBET01TZWxlY3RPcHRpb24KewogICAgcHJpdmF0ZSAkX2hyOwogICAgcHJpdmF0ZSAkX3RleHQ7CiAgICBwcml2YXRlICRfdmFsOwogICAgcHJpdmF0ZSAkX3NlbGVjdGVkOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChcRE9NTm9kZSAkbm9kZSkKICAgIHsKICAgICAgICAkbmFtZSA9IHN0cnRvbG93ZXIoJG5vZGUtPm5vZGVOYW1lKTsKICAgICAgICBpZiggJG5hbWUgIT0gJ29wdGlvbicgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdDYW5ub3QgY3JlYXRlIGEgJy5fX0NMQVNTX18uJyBmcm9tIGEgJy4kbmFtZS4nIG5vZGUnKTsKCiAgICAgICAgJGF0dHJpYnMgPSAkdGhpcy0+Z2V0QXR0cmlidXRlc0FycmF5KCRub2RlLT5hdHRyaWJ1dGVzKTsKICAgICAgICAkdGhpcy0+X2hyID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkYXR0cmlicywnZGF0YS1jZ2JmLWh1bWFuJyk7CiAgICAgICAgJHRoaXMtPl90ZXh0ID0gJG5vZGUtPnRleHRDb250ZW50OwogICAgICAgICR0aGlzLT5fdmFsID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkYXR0cmlicywndmFsdWUnKTsKICAgICAgICAkdGhpcy0+X3NlbGVjdGVkID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkYXR0cmlicywnc2VsZWN0ZWQnKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0QXR0cmlidXRlc0FycmF5KFxET01OYW1lZE5vZGVNYXAgJG1hcCkKICAgIHsKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgZm9yZWFjaCggJG1hcCBhcyAkYXR0ciApIHsKICAgICAgICAgICAgJG91dFskYXR0ci0+bm9kZU5hbWVdID0gJGF0dHItPm5vZGVWYWx1ZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9odW1hblJlYWRhYmxlKCkKICAgIHsKICAgICAgICBpZiggJHRoaXMtPl9ociApIHJldHVybiAkdGhpcy0+X2hyOwogICAgICAgIHJldHVybiAkdGhpcy0+X3RleHQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9oclJhdygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5faHI7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF90ZXh0UmF3KCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl90ZXh0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdmFsdWVSYXcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ZhbHVlKCkKICAgIHsKICAgICAgICBpZiggc3RybGVuKCR0aGlzLT5fdmFsKSA+IDAgKSByZXR1cm4gJHRoaXMtPl92YWw7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdGV4dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3NlbGVjdGVkKCkKICAgIHsKICAgICAgICByZXR1cm4gKGJvb2wpICR0aGlzLT5fc2VsZWN0ZWQ7CiAgICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/lib/class.DOMTextAreaField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgpjbGFzcyBET01UZXh0QXJlYUZpZWxkIGV4dGVuZHMgRE9NRmllbGQKewogICAgdXNlIERPTUxhYmVsRmllbGRUcmFpdDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoXERPTU5vZGUgJG5vZGUpCiAgICB7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgkbm9kZSk7CiAgICAgICAgJHRoaXMtPnNldF9sYWJlbCgkdGhpcy0+ZmluZFBhcmVudExhYmVsKCRub2RlKSk7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/class.FieldError.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgpjbGFzcyBGaWVsZEVycm9yCnsKICAgIGNvbnN0IE5PTlNQRUNJRklDX0ZJRUxEID0gJ05PVC1TUEVDSUZJQyc7CgogICAgcHJpdmF0ZSAkX2ZpZWxkX25hbWU7CiAgICBwcml2YXRlICRfbWVzc2FnZTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoICRmaWVsZF9uYW1lLCAkbWVzc2FnZSA9IG51bGwgKQogICAgewogICAgICAgICRmaWVsZF9uYW1lID0gdHJpbSgkZmllbGRfbmFtZSk7CiAgICAgICAgaWYoICEkZmllbGRfbmFtZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0EgZmllbGQgbmFtZSBpcyByZXF1aXJlZCB3aGVuIGNyZWF0aW5nIGEgJy5fX0NMQVNTX18pOwogICAgICAgICR0aGlzLT5fZmllbGRfbmFtZSA9ICRmaWVsZF9uYW1lOwogICAgICAgICR0aGlzLT5fbWVzc2FnZSA9IHRyaW0oJG1lc3NhZ2UpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdmaWVsZF9uYW1lJzoKICAgICAgICBjYXNlICdmaWVsZCc6CiAgICAgICAgY2FzZSAnZmllbGROYW1lJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fZmllbGRfbmFtZTsKCiAgICAgICAgY2FzZSAnbXNnJzoKICAgICAgICBjYXNlICdtZXNzYWdlJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fbWVzc2FnZTsKICAgICAgICB9CiAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiJGtleSBpcyBub3QgYSBnZXR0YWJsZSBtZW1iZXIgb2YgIi5fX0NMQVNTX18pOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX3NldCgka2V5LCR2YWwpCiAgICB7CiAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiJGtleSBpcyBub3QgYSBzZXR0YWJsZSBtZW1iZXIgb2YgIi5fX0NMQVNTX18pOwogICAgfQp9]]></data>
	</file>
	<file>
	  <filename>/lib/class.Form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CnVzZSBcQ0dCZXR0ZXJGb3Jtc1xEaXNwb3NpdGlvbnNcRGlzcG9zaXRpb247CnVzZSBcQ0dCZXR0ZXJGb3Jtc1xGaWVsZFZhbGlkYXRvcnNcVmFsaWRhdGlvbjsKCmNsYXNzIEZvcm0KewogICAgcHJpdmF0ZSAkX2lkOwogICAgcHJpdmF0ZSAkX25hbWU7CiAgICBwcml2YXRlICRfdGVtcGxhdGVfaWQ7CiAgICBwcml2YXRlICRfdHBsX21vZGlmaWVkOyAvLyB0aGUgZGF0ZSB0aGUgdGVtcGxhdGUgd2FzIGxhc3QgbW9kaWZpZWQKICAgIHByaXZhdGUgJF9kZXNjcmlwdGlvbjsKICAgIHByaXZhdGUgJF9maWVsZF9tZXNzYWdlcyA9IFtdOwogICAgcHJpdmF0ZSAkX2ZpZWxkcyA9IFtdOwogICAgcHJpdmF0ZSAkX3ByZXJlbmRlcl9sb2dpYzsKICAgIHByaXZhdGUgJF9maW5hbGFjdGlvbjsKICAgIHByaXZhdGUgJF9maW5hbG1zZzsKICAgIHByaXZhdGUgJF9maW5hbHBhZ2U7CiAgICBwcml2YXRlICRfZGlzcG9zaXRpb25zOwogICAgcHJpdmF0ZSAkX3ZhbGlkYXRpb25zOyAvLyB1c2VyIGFkZGVkIHZhbGlkYXRpb25zCiAgICBwcml2YXRlICRfaGFzX2NhcHRjaGE7CiAgICBwcml2YXRlICRfY3JlYXRlZDsKICAgIHByaXZhdGUgJF9tb2RpZmllZDsKICAgIHByaXZhdGUgJF9kaXNwbGF5X2lubGluZTsKICAgIHByaXZhdGUgJF9lbWFpbF9mcm9tX2FkZHI7CiAgICBwcml2YXRlICRfZW1haWxfZnJvbV9uYW1lOwogICAgcHJpdmF0ZSAkX2NnYmZfdmVyc2lvbjsKCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0VmFsdWUoJGtleSwkdmFsKQogICAgewogICAgICAgICRrZXkgPSB0cmltKCRrZXkpOwogICAgICAgICRra2V5ID0gJ18nLiRrZXk7CgogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdpZCc6CiAgICAgICAgICAgICR0aGlzLT4ka2tleSA9IChpbnQpICR2YWw7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICduYW1lJzoKICAgICAgICBjYXNlICdkZXNjcmlwdGlvbic6CiAgICAgICAgY2FzZSAnZW1haWxfZnJvbV9hZGRyJzoKICAgICAgICBjYXNlICdlbWFpbF9mcm9tX25hbWUnOgogICAgICAgIGNhc2UgJ2NnYmZfdmVyc2lvbic7CiAgICAgICAgICAgICR0aGlzLT4ka2tleSA9IHRyaW0oJHZhbCk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdoYXNfY2FwdGNoYSc6CiAgICAgICAgY2FzZSAnZGlzcGxheV9pbmxpbmUnOgogICAgICAgICAgICAkdGhpcy0+JGtrZXkgPSBjbXNfdG9fYm9vbCgkdmFsKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ3RlbXBsYXRlX2lkJzoKICAgICAgICAgICAgJHZhbCA9IChpbnQpICR2YWw7CiAgICAgICAgICAgIGlmKCAkdmFsIDwgMSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgdGVtcGxhdGVfaWQgcHJvdmlkZWQgdG8gJy5fX0NMQVNTX18pOwogICAgICAgICAgICAkdGhpcy0+JGtrZXkgPSAkdmFsOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnZmllbGRfbWVzc2FnZXMnOgogICAgICAgICAgICBpZiggIWlzX2FycmF5KCR2YWwpICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBmaWVsZF9tZXNzYWdlc3MgYXJyYXkgcHJvdmlkZWQgdG8gJy5fX0NMQVNTX18pOwogICAgICAgICAgICAkdGhpcy0+ZmllbGRfbWVzc2FnZXMgPSBbXTsKICAgICAgICAgICAgZm9yZWFjaCggJHZhbCBhcyAkb25lICkgewogICAgICAgICAgICAgICAgJHRoaXMtPmZpZWxkX21lc3NhZ2VzW10gPSB0cmltKCRvbmUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdmaWVsZHMnOgogICAgICAgICAgICBpZiggIWlzX2FycmF5KCR2YWwpICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBmaWVsZHMgYXJyYXkgcHJvdmlkZWQgdG8gJy5fX0NMQVNTX18pOwogICAgICAgICAgICBmb3JlYWNoKCAkdmFsIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICBpZiggISRvbmUgaW5zdGFuY2VvZiBGb3JtRmllbGQgKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBmaWVsZHMgYXJyYXkgcHJvdmlkZWQgdG8gJy5fX0NMQVNTX18pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICR0aGlzLT4ka2tleSA9ICR2YWw7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICd2YWxpZGF0aW9ucyc6CiAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoJHZhbCkgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIHZhbGlkYXRpb25zIGFycmF5IHByb3ZpZGVkIHRvICcuX19DTEFTU19fKTsKICAgICAgICAgICAgZm9yZWFjaCggJHZhbCBhcyAkb25lICkgewogICAgICAgICAgICAgICAgaWYoICEkb25lIGluc3RhbmNlb2YgVmFsaWRhdGlvbiApIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIHZhbGlkYXRpb25zIGFycmF5IHByb3ZpZGVkIHRvICcuX19DTEFTU19fKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAkdGhpcy0+JGtrZXkgPSAkdmFsOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnZGlzcG9zaXRpb25zJzoKICAgICAgICAgICAgaWYoICFpc19hcnJheSgkdmFsKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgZGlzcG9zaXRpb25zIGFycmF5IHByb3ZpZGVkIHRvICcuX19DTEFTU19fKTsKICAgICAgICAgICAgZm9yZWFjaCggJHZhbCBhcyAkb25lICkgewogICAgICAgICAgICAgICAgaWYoICEkb25lIGluc3RhbmNlb2YgSURpc3Bvc2l0aW9uICkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgZGlzcG9zaXRpb25zIGFycmF5IHByb3ZpZGVkIHRvICcuX19DTEFTU19fKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAkdGhpcy0+JGtrZXkgPSAkdmFsOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnZmluYWxhY3Rpb24nOgogICAgICAgIGNhc2UgJ3ByZXJlbmRlcl9sb2dpYyc6CiAgICAgICAgY2FzZSAnZmluYWxtc2cnOgogICAgICAgICAgICAkdGhpcy0+JGtrZXkgPSB0cmltKCR2YWwpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnZmluYWxwYWdlJzoKICAgICAgICBjYXNlICd0cGxfbW9kaWZpZWQnOgogICAgICAgIGNhc2UgJ2NyZWF0ZWQnOgogICAgICAgIGNhc2UgJ21vZGlmaWVkJzoKICAgICAgICAgICAgJHRoaXMtPiRra2V5ID0gKGludCkkdmFsOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KGFycmF5ICRkYXRhID0gbnVsbCkKICAgIHsKICAgICAgICAkdGhpcy0+X2ZpbmFsYWN0aW9uID0gJ21lc3NhZ2UnOwogICAgICAgIGlmKCAhaXNfYXJyYXkoJGRhdGEpICkgcmV0dXJuOwogICAgICAgIGZvcmVhY2goICRkYXRhIGFzICRrZXkgPT4gJHZhbCApIHsKICAgICAgICAgICAgJHRoaXMtPmFkanVzdFdpdGgoICRkYXRhICk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgka2V5KQogICAgewogICAgICAgICRrZXkgPSB0cmltKCRrZXkpOwogICAgICAgICRra2V5ID0gJ18nLiRrZXk7CgogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICduYW1lJzoKICAgICAgICBjYXNlICdkZXNjcmlwdGlvbic6CiAgICAgICAgY2FzZSAnZW1haWxfZnJvbV9hZGRyJzoKICAgICAgICBjYXNlICdlbWFpbF9mcm9tX25hbWUnOgogICAgICAgIGNhc2UgJ2ZpbmFsYWN0aW9uJzoKICAgICAgICBjYXNlICdwcmVyZW5kZXJfbG9naWMnOgogICAgICAgIGNhc2UgJ2ZpbmFsbXNnJzoKICAgICAgICBjYXNlICdjZ2JmX3ZlcnNpb24nOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+JGtrZXkpOwoKICAgICAgICBjYXNlICdpZCc6CiAgICAgICAgY2FzZSAndGVtcGxhdGVfaWQnOgogICAgICAgICAgICByZXR1cm4gKGludCkgJHRoaXMtPiRra2V5OwoKICAgICAgICBjYXNlICdoYXNfY2FwdGNoYSc6CiAgICAgICAgY2FzZSAnZGlzcGxheV9pbmxpbmUnOgogICAgICAgICAgICByZXR1cm4gKGJvb2wpICR0aGlzLT4ka2tleTsKCiAgICAgICAgY2FzZSAnZmllbGRfbWVzc2FnZXMnOgogICAgICAgIGNhc2UgJ2ZpZWxkcyc6CiAgICAgICAgY2FzZSAndmFsaWRhdGlvbnMnOgogICAgICAgIGNhc2UgJ2Rpc3Bvc2l0aW9ucyc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+JGtrZXk7CgogICAgICAgIGNhc2UgJ2ZpbmFscGFnZSc6CiAgICAgICAgY2FzZSAndHBsX21vZGlmaWVkJzoKICAgICAgICBjYXNlICdjcmVhdGVkJzoKICAgICAgICBjYXNlICdtb2RpZmllZCc6CiAgICAgICAgICAgIHJldHVybiAoaW50KSAkdGhpcy0+JGtrZXk7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQWxsb3dzIGFkanVzdGluZyB0aGUgZm9ybSBpZCwgY3JlYXRlZCBhbmQgbW9kaWZpZWQgZGF0ZXMuCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBhZGp1c3RQcml2YXRlKGFycmF5ICRkYXRhKQogICAgewogICAgICAgIGZvcmVhY2goICRkYXRhIGFzICRrZXkgPT4gJHZhbCApIHsKICAgICAgICAgICAgJHRoaXMtPnNldFZhbHVlKCAka2V5LCAkdmFsICk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkdGhpczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRqdXN0V2l0aChhcnJheSAkZGF0YSkKICAgIHsKICAgICAgICBmb3JlYWNoKCAkZGF0YSBhcyAka2V5ID0+ICR2YWwgKSB7CiAgICAgICAgICAgIGlmKCAka2V5ID09ICdpZCcgKSBjb250aW51ZTsgLy8gY2FuJ3QgYmUgc2V0IGF0IHJ1bnRpbWUuCiAgICAgICAgICAgIGlmKCAka2V5ID09ICdjcmVhdGVkJyApIGNvbnRpbnVlOyAvLyBjYW4ndCBiZSBzZXQgYXQgcnVudGltZS4KICAgICAgICAgICAgaWYoICRrZXkgPT0gJ21vZGlmaWVkJyApIGNvbnRpbnVlOyAvLyBjYW4ndCBiZSBzZXQgYXQgcnVudGltZS4KICAgICAgICAgICAgJHRoaXMtPnNldFZhbHVlKCAka2V5LCAkdmFsICk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkdGhpczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0RmllbGQoRm9ybUZpZWxkICRmaWVsZCkKICAgIHsKICAgICAgICBpZiggaXNfYXJyYXkoJHRoaXMtPl9maWVsZHMpICYmIGNvdW50KCR0aGlzLT5fZmllbGRzKSApIHsKICAgICAgICAgICAgZm9yZWFjaCggJHRoaXMtPl9maWVsZHMgYXMgJiRlX2ZpZWxkICkgewogICAgICAgICAgICAgICAgaWYoICRlX2ZpZWxkLT5uYW1lID09ICRmaWVsZC0+bmFtZSApIHsKICAgICAgICAgICAgICAgICAgICAkZV9maWVsZCA9ICRmaWVsZDsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgLy8gaXQncyBhbiBhZGQKICAgICAgICAkdGhpcy0+X2ZpZWxkc1tdID0gJGZpZWxkOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRWYWxpZGF0aW9uKCBWYWxpZGF0aW9uICRvYmogKQogICAgewogICAgICAgICR0aGlzLT5fdmFsaWRhdGlvbnNbJG9iai0+Z2V0X2d1aWQoKV0gPSAkb2JqOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRWYWxpZGF0aW9uKCAkZ3VpZCApCiAgICB7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fdmFsaWRhdGlvbnNbJGd1aWRdKSApIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRpb25zWyRndWlkXTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzVmFsaWRhdGlvbiggJGNsYXNzbmFtZSApCiAgICB7CiAgICAgICAgaWYoICFjb3VudCgkdGhpcy0+X3ZhbGlkYXRpb25zKSApIHJldHVybjsKICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X3ZhbGlkYXRpb25zIGFzICRndWlkID0+ICRvYmogKSB7CiAgICAgICAgICAgIGlmKCBnZXRfY2xhc3MoJG9iaikgPT0gJGNsYXNzbmFtZSApIHJldHVybiBUUlVFOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gcmVtb3ZlVmFsaWRhdGlvbiggJGd1aWQgKQogICAgewogICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X3ZhbGlkYXRpb25zWyRndWlkXSkgKSB1bnNldCgkdGhpcy0+X3ZhbGlkYXRpb25zWyRndWlkXSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldERpc3Bvc2l0aW9uKCBEaXNwb3NpdGlvbiAkb2JqICkKICAgIHsKICAgICAgICAkdGhpcy0+X2Rpc3Bvc2l0aW9uc1skb2JqLT5nZXRfZ3VpZCgpXSA9ICRvYmo7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldERpc3Bvc2l0aW9uKCAkZ3VpZCApCiAgICB7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGlzcG9zaXRpb25zWyRndWlkXSkgKSByZXR1cm4gJHRoaXMtPl9kaXNwb3NpdGlvbnNbJGd1aWRdOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiByZW1vdmVEaXNwb3NpdGlvbiggJGd1aWQgKQogICAgewogICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2Rpc3Bvc2l0aW9uc1skZ3VpZF0pICkgdW5zZXQoJHRoaXMtPl9kaXNwb3NpdGlvbnNbJGd1aWRdKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gb3JkZXJEaXNwb3NpdGlvbnMoIGFycmF5ICRndWlkX2xpc3QgKQogICAgewogICAgICAgIGlmKCAhY291bnQoJGd1aWRfbGlzdCkgKSByZXR1cm47CiAgICAgICAgaWYoIGNvdW50KCRndWlkX2xpc3QpICE9IGNvdW50KCR0aGlzLT5fZGlzcG9zaXRpb25zKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgZGF0YSBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKCiAgICAgICAgJG5ld19saXN0ID0gW107CiAgICAgICAgZm9yZWFjaCggJGd1aWRfbGlzdCBhcyAkb25lX2d1aWQgKSB7CiAgICAgICAgICAgIGlmKCAhaXNzZXQoJHRoaXMtPl9kaXNwb3NpdGlvbnNbJG9uZV9ndWlkXSkgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIGRhdGEgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgICAgICRvYmogPSAkdGhpcy0+X2Rpc3Bvc2l0aW9uc1skb25lX2d1aWRdOwogICAgICAgICAgICAkbmV3X2xpc3RbJG9uZV9ndWlkXSA9ICRvYmo7CiAgICAgICAgfQogICAgICAgICR0aGlzLT5fZGlzcG9zaXRpb25zID0gJG5ld19saXN0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBvcmRlclZhbGlkYXRpb25zKCBhcnJheSAkZ3VpZF9saXN0ICkKICAgIHsKICAgICAgICBpZiggIWNvdW50KCRndWlkX2xpc3QpICkgcmV0dXJuOwogICAgICAgIGlmKCBjb3VudCgkZ3VpZF9saXN0KSAhPSBjb3VudCgkdGhpcy0+X3ZhbGlkYXRpb25zKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgZGF0YSBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKCiAgICAgICAgJG5ld19saXN0ID0gW107CiAgICAgICAgZm9yZWFjaCggJGd1aWRfbGlzdCBhcyAkb25lX2d1aWQgKSB7CiAgICAgICAgICAgIGlmKCAhaXNzZXQoJHRoaXMtPl92YWxpZGF0aW9uc1skb25lX2d1aWRdKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgZGF0YSBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAgICAgJG9iaiA9ICR0aGlzLT5fdmFsaWRhdGlvbnNbJG9uZV9ndWlkXTsKICAgICAgICAgICAgJG5ld19saXN0WyRvbmVfZ3VpZF0gPSAkb2JqOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+X3ZhbGlkYXRpb25zID0gJG5ld19saXN0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmllbGRzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9maWVsZHM7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9maWVsZCggJG5hbWUgKQogICAgewogICAgICAgIGZvcmVhY2goICR0aGlzLT5maWVsZHMgYXMgJGZpZWxkICkgewogICAgICAgICAgICAkdF9uYW1lID0gJGZpZWxkLT5uYW1lOwogICAgICAgICAgICBpZiggJHRfbmFtZSA9PSAkbmFtZSApIHJldHVybiAkZmllbGQ7CiAgICAgICAgICAgIGlmKCAkdF9uYW1lID09ICRuYW1lLidbXScgKSByZXR1cm4gJGZpZWxkOwogICAgICAgIH0KICAgICAgICBzdGFja190cmFjZSgpOyBkaWUoKTsKICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCBhIGZpZWxkIHdpdGggbmFtZSAnLiRuYW1lLicgaW4gZmllbGQgbGlzdCcpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmllbGRuYW1lcygpCiAgICB7CiAgICAgICAgJG5hbWVzID0gW107CiAgICAgICAgZm9yZWFjaCggJHRoaXMtPmZpZWxkcyBhcyAkZmllbGQgKSB7CiAgICAgICAgICAgICRuYW1lID0gJGZpZWxkLT5uYW1lOwogICAgICAgICAgICBpZiggZW5kc3dpdGgoJG5hbWUsJ1tdJykgKSAkbmFtZSA9IHN1YnN0cigkbmFtZSwwLC0yKTsKICAgICAgICAgICAgaWYoICFpbl9hcnJheSgkbmFtZSwkbmFtZXMpICkgJG5hbWVzW10gPSAkbmFtZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRuYW1lczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpZWxkX2xpc3QoKQogICAgewogICAgICAgICRvdXQgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkdGhpcy0+ZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICAgJG11bHRpcGxlID0gZmFsc2U7CiAgICAgICAgICAgICRuYW1lID0gJGZpZWxkLT5uYW1lOwogICAgICAgICAgICBpZiggZW5kc3dpdGgoJG5hbWUsJ1tdJykgKSB7CiAgICAgICAgICAgICAgICAkbmFtZSA9IHN1YnN0cigkbmFtZSwwLC0yKTsKICAgICAgICAgICAgICAgICRtdWx0aXBsZSA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoICRmaWVsZC0+bXVsdGlwbGUgKSAkbXVsdGlwbGUgPSB0cnVlOwogICAgICAgICAgICBpZiggYXJyYXlfa2V5X2V4aXN0cygkbmFtZSwkb3V0KSApIGNvbnRpbnVlOwogICAgICAgICAgICAkc3RyID0gJG5hbWU7CiAgICAgICAgICAgIGlmKCAkbXVsdGlwbGUgKSAkc3RyIC49ICJbXSI7CiAgICAgICAgICAgICRzdHIgLj0gJyAoJy4kZmllbGQtPnR5cGUuJyknOwogICAgICAgICAgICAkb3V0WyRuYW1lXSA9ICRzdHI7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsaXN0X2ZpZWxkc19ieV90eXBlKCR0eXBlKQogICAgewogICAgICAgICRvdXQgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkdGhpcy0+ZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICAgaWYoICRmaWVsZC0+dHlwZSAhPSAkdHlwZSApIGNvbnRpbnVlOwogICAgICAgICAgICAkb3V0W10gPSAkZmllbGQtPm5hbWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsaXN0X2ZpZWxkc19ieV90eXBlX29yX3ByaW1pdGl2ZSgkdHlwZSwkcHJpbSwkYWxsb3dfbXVsdGlwbGUgPSBmYWxzZSkKICAgIHsKICAgICAgICAkdHlwZSA9IHN0cnRvbG93ZXIodHJpbSgkdHlwZSkpOwogICAgICAgICRwcmltID0gc3RydG9sb3dlcih0cmltKCRwcmltKSk7CiAgICAgICAgJG91dCA9IFtdOwogICAgICAgIGZvcmVhY2goICR0aGlzLT5maWVsZHMgYXMgJGZpZWxkICkgewogICAgICAgICAgICBpZiggJGZpZWxkLT50eXBlICE9ICR0eXBlICYmICRmaWVsZC0+cHJpbWl0aXZlICE9ICRwcmltICkgY29udGludWU7CiAgICAgICAgICAgIGlmKCAkZmllbGQtPm11bHRpcGxlICYmICEkYWxsb3dfbXVsdGlwbGUgKSBjb250aW51ZTsKICAgICAgICAgICAgJHN0ciA9ICRmaWVsZC0+bmFtZTsKICAgICAgICAgICAgaWYoICRmaWVsZC0+bXVsdGlwbGUgKSAkc3RyIC49ICdbXSc7CiAgICAgICAgICAgICRzdHIgLj0gJyAoJy4kZmllbGQtPnR5cGUuJyknOwogICAgICAgICAgICAkb3V0WyRmaWVsZC0+bmFtZV0gPSAkc3RyOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbGlzdF9tdWx0aW9wdGlvbl9maWVsZHMoICRtdWx0aXBsZV9va2F5ID0gRkFMU0UgKQogICAgewogICAgICAgICRvdXQgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkdGhpcy0+ZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICAgaWYoICEkZmllbGQtPmhhc19tdWx0aXBsZV9vcHRpb25zKCkgKSBjb250aW51ZTsKICAgICAgICAgICAgaWYoICEkbXVsdGlwbGVfb2theSAmJiAkZmllbGQtPm11bHRpcGxlICkgY29udGludWU7CiAgICAgICAgICAgICRvdXRbXSA9ICRmaWVsZC0+bmFtZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9tdWx0aW9wdGlvbl9maWVsZHMoICRtdWx0aXBsZV9va2F5ID0gRkFMU0UgKQogICAgewogICAgICAgIC8vIGZpZWxkcyBhcmUgbXVsdGktb3B0aW9uIGZpZWxkc3MgSUYgdGhleSBvY2N1ciBtdWx0aXBsZSB0eXBlcywgYW5kIHRoZXkgYXJlIHJhZGlvCiAgICAgICAgLy8gT1IgdGhleSBhcmUgYSBzZWxlY3QuCiAgICAgICAgJG91dCA9ICR0bXAgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkdGhpcy0+ZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICAgaWYoICEkbXVsdGlwbGVfb2theSAmJiAkZmllbGQtPm11bHRpcGxlICkgY29udGludWU7CiAgICAgICAgICAgIGlmKCAhJGZpZWxkLT5oYXNfbXVsdGlwbGVfb3B0aW9ucygpICkgY29udGludWU7CiAgICAgICAgICAgICRzdHIgPSAkZmllbGQtPm5hbWU7CiAgICAgICAgICAgIGlmKCAkZmllbGQtPm11bHRpcGxlICkgJHN0ciAuPSAiW10iOwogICAgICAgICAgICAkc3RyIC49ICIgKHskZmllbGQtPnR5cGV9KSI7CiAgICAgICAgICAgICRvdXRbXSA9ICRzdHI7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBpc19tdWx0aXZhbHVlX2ZpZWxkKCRuYW1lKQogICAgewogICAgICAgIC8vIGEgZmllbGQgaXMgYSBtdWx0aS12YWx1ZSBmaWVsZCBJRiBpdCdzIG5hbWUgZW5kcyB3aXRoIFtdCiAgICAgICAgZm9yZWFjaCggJHRoaXMtPmZpZWxkcyBhcyAkZmllbGQgKSB7CiAgICAgICAgICAgIGlmKCAkZmllbGQtPm5hbWUgIT0gJG5hbWUgICkgY29udGludWU7CiAgICAgICAgICAgIHJldHVybiAkZmllbGQtPm11bHRpcGxlOwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCBhIGZpZWxkIHdpdGggbmFtZSAnLiRuYW1lLicgaW4gZmllbGQgbGlzdCcpOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.FormDAO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgpjbGFzcyBGb3JtREFPIGltcGxlbWVudHMgRm9ybVN0b3JhZ2VJbnRlcmZhY2UKewogICAgcHJpdmF0ZSAkX2RiOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggJGRiICkKICAgIHsKICAgICAgICAkdGhpcy0+X2RiID0gJGRiOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gdGFibGVfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIENNU19EQl9QUkVGSVguJ21vZF9jZ2JmX2Zvcm1zJzsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gX2luc2VydCggRm9ybSAkZm9ybSApCiAgICB7CiAgICAgICAgJHNxbCA9ICdJTlNFUlQgSU5UTyAnLnNlbGY6OnRhYmxlX25hbWUoKS4nIChuYW1lLCBkYXRhLCBjcmVhdGVkLCBtb2RpZmllZCkgVkFMVUVTICg/LD8sVU5JWF9USU1FU1RBTVAoKSxVTklYX1RJTUVTVEFNUCgpKSc7CiAgICAgICAgJHRoaXMtPl9kYi0+RXhlY3V0ZSggJHNxbCwgWyAkZm9ybS0+bmFtZSwgc2VyaWFsaXplKCRmb3JtKSBdICk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIF91cGRhdGUoIEZvcm0gJGZvcm0gKQogICAgewogICAgICAgICRzcWwgPSAnVVBEQVRFICcuc2VsZjo6dGFibGVfbmFtZSgpLicgU0VUIG5hbWUgPSA/LCBkYXRhID0gPywgbW9kaWZpZWQgPSBVTklYX1RJTUVTVEFNUCgpIFdIRVJFIGlkID0gPyc7CiAgICAgICAgJHRoaXMtPl9kYi0+RXhlY3V0ZSggJHNxbCwgWyAkZm9ybS0+bmFtZSwgc2VyaWFsaXplKCRmb3JtKSwgJGZvcm0tPmlkIF0gKTsKICAgIH0KCiAgICAvLyBmb3JtIG9iamVjdCBjYW5ub3QgYmUgYWx0ZXJlZCBhbmQgcmUtc2F2ZWQgYWZ0ZXIgc2F2aW5nLgogICAgcHVibGljIGZ1bmN0aW9uIFNhdmUoIEZvcm0gJGZvcm0gKQogICAgewogICAgICAgIGlmKCAkZm9ybS0+aWQgPCAxICkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9pbnNlcnQoICRmb3JtICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl91cGRhdGUoICRmb3JtICk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsaXN0X2FsbCgpCiAgICB7CiAgICAgICAgJHNxbCA9ICdTRUxFQ1QgaWQsbmFtZSBGUk9NICcuc2VsZjo6dGFibGVfbmFtZSgpLicgT1JERVIgQlkgbmFtZSBBU0MnOwogICAgICAgICR0bXAgPSAkdGhpcy0+X2RiLT5HZXRBcnJheSgkc3FsKTsKICAgICAgICBpZiggISR0bXAgfHwgIWNvdW50KCR0bXApICkgcmV0dXJuOwoKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgZm9yZWFjaCggJHRtcCBhcyAkcm93ICkgewogICAgICAgICAgICAkb3V0WyRyb3dbJ2lkJ11dID0gJHJvd1snbmFtZSddOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZCggJG5hbWUgKQogICAgewogICAgICAgICRuYW1lID0gdHJpbSgkbmFtZSk7CiAgICAgICAgaWYoICEkbmFtZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgZm9ybSBuYW1lIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwoKICAgICAgICAkc3FsID0gJ1NFTEVDVCAqIEZST00gJy5zZWxmOjp0YWJsZV9uYW1lKCkuJyBXSEVSRSBuYW1lID0gPyc7CiAgICAgICAgJHJvdyA9ICR0aGlzLT5fZGItPkdldFJvdygkc3FsLFsgJG5hbWUgXSk7CiAgICAgICAgaWYoICFpc19hcnJheSgkcm93KSAmJiAhY291bnQoJHJvdykgKSByZXR1cm47CgogICAgICAgICRvYmogPSB1bnNlcmlhbGl6ZSgkcm93WydkYXRhJ10pOwogICAgICAgIHVuc2V0KCRyb3dbJ2RhdGEnXSk7CiAgICAgICAgJG9iai0+YWRqdXN0UHJpdmF0ZSggJHJvdyApOwogICAgICAgIHJldHVybiAkb2JqOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX2J5X2lkKCAkaWQgKQogICAgewogICAgICAgICRpZCA9IChpbnQpICRpZDsKICAgICAgICBpZiggJGlkIDwgMSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgZm9ybSBpZCBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKCiAgICAgICAgJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcuc2VsZjo6dGFibGVfbmFtZSgpLicgV0hFUkUgaWQgPSA/JzsKICAgICAgICAkcm93ID0gJHRoaXMtPl9kYi0+R2V0Um93KCRzcWwsWyAkaWQgXSk7CiAgICAgICAgaWYoICFpc19hcnJheSgkcm93KSAmJiAhY291bnQoJHJvdykgKSByZXR1cm47CgogICAgICAgICRvYmogPSB1bnNlcmlhbGl6ZSgkcm93WydkYXRhJ10pOwogICAgICAgIHVuc2V0KCRyb3dbJ2RhdGEnXSk7CiAgICAgICAgJG9iai0+YWRqdXN0UHJpdmF0ZSggJHJvdyApOwogICAgICAgIHJldHVybiAkb2JqOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGUoIEZvcm0gJGZvcm0gKQogICAgewogICAgICAgIGlmKCAkZm9ybS0+aWQgPCAxICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQ2Fubm90IGRlbGV0ZSBhIGZvcm0gdGhhdCBoYXMgbm90IGJlZW4gc2F2ZWQnKTsKCiAgICAgICAgJHNxbCA9ICdERUxFVEUgRlJPTSAnLnNlbGY6OnRhYmxlX25hbWUoKS4nIFdIRVJFIGlkID0gPyc7CiAgICAgICAgJHRoaXMtPl9kYi0+RXhlY3V0ZSggJHNxbCwgWyAkZm9ybS0+aWRdICk7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.FormField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgpjbGFzcyBGb3JtRmllbGQKewogICAgcHJpdmF0ZSAkX2RhdGEgPSBbICdub2RlJz0+bnVsbCwgJ25hbWUnPT5udWxsLCAndHlwZSc9Pm51bGwsICdvcHRpb25zJz0+bnVsbCwgJ2lkJz0+bnVsbCwgJ2NsYXNzJz0+bnVsbCwgJ211bHRpcGxlJz0+ZmFsc2UsICdsYWJlbCc9Pm51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgJ3JlcXVpcmVkJz0+bnVsbCwgJ21pbic9Pm51bGwsICdtYXgnPT5udWxsLCAncGF0dGVybic9Pm51bGwsICdub3ZhbGlkYXRlJz0+bnVsbCwgJ3ByaW1pdGl2ZSc9Pm51bGwgXTsKICAgIHByaXZhdGUgJF92YWx1ZXMgPSBbXTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoIGFycmF5ICRpbiApCiAgICB7CiAgICAgICAgZm9yZWFjaCggJGluIGFzICRrZXkgPT4gJHZhbCApIHsKICAgICAgICAgICAgLy8gcmVtb3ZlIFtdIGZyb20gZW5kIG9mIG5hbWVzLgogICAgICAgICAgICBpZiggJGtleSA9PSAnbmFtZScgJiYgZW5kc3dpdGgoICR2YWwsICdbXScpICkgJHZhbCA9IHN1YnN0cigkdmFsLDAsLTIpOwogICAgICAgICAgICBpZiggYXJyYXlfa2V5X2V4aXN0cygka2V5LCAkdGhpcy0+X2RhdGEpICkgJHRoaXMtPl9kYXRhWyRrZXldID0gJHZhbDsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgaWYoIGFycmF5X2tleV9leGlzdHMoJGtleSwgJHRoaXMtPl9kYXRhKSApIHJldHVybiAkdGhpcy0+X2RhdGFbJGtleV07CiAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigka2V5LicgaXMgbm90IGEgZ2V0dGFibGUgbWVtYmVyIG9mICcuX19DTEFTU19fKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRkX3ZhbHVlKCAkdmFsICkgewogICAgICAgIGlmKCBpc19hcnJheSgkdmFsKSApIHsKICAgICAgICAgICAgZm9yZWFjaCggJHZhbCBhcyAkb25lICkgewogICAgICAgICAgICAgICAgJHRoaXMtPmFkZF92YWx1ZSggJG9uZSApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaWYoIHN0cmxlbigkdmFsKSApICR0aGlzLT5fdmFsdWVzW10gPSAkdmFsOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRfb3B0aW9uKCBGb3JtTXVsdGlWYWx1ZU9wdGlvbiAkb3B0ICkKICAgIHsKICAgICAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5fZGF0YVsnb3B0aW9ucyddKSApICR0aGlzLT5fZGF0YVsnb3B0aW9ucyddID0gW107CiAgICAgICAgJHRoaXMtPl9kYXRhWydvcHRpb25zJ11bXSA9ICRvcHQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF92YWx1ZSgpCiAgICB7CiAgICAgICAgaWYoICR0aGlzLT5tdWx0aXBsZSApIHJldHVybiAkdGhpcy0+X3ZhbHVlczsKICAgICAgICBpZiggY291bnQoJHRoaXMtPl92YWx1ZXMpICkgcmV0dXJuICR0aGlzLT5fdmFsdWVzWzBdOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYXNfbXVsdGlwbGVfb3B0aW9ucygpCiAgICB7CiAgICAgICAgcmV0dXJuIChjb3VudCgkdGhpcy0+b3B0aW9ucykgPiAxIHx8IGNvdW50KCR0aGlzLT5fdmFsdWVzKSA+IDEpP1RSVUU6RkFMU0U7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9vcHRpb25fdmFsdWVzKCkKICAgIHsKICAgICAgICBpZiggISR0aGlzLT5oYXNfbXVsdGlwbGVfb3B0aW9ucygpICkgcmV0dXJuOwogICAgICAgICRvdXQgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkdGhpcy0+b3B0aW9ucyBhcyAkb3B0ICkgewogICAgICAgICAgICAkb3V0W10gPSAkb3B0LT5nZXRfdmFsdWUoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9vcHRpb25fYnlfdmFsdWUoICR2YWwgKQogICAgewogICAgICAgIGlmKCAhJHRoaXMtPmhhc19tdWx0aXBsZV9vcHRpb25zKCkgKSByZXR1cm47CgogICAgICAgICR2YWwgPSB0cmltKCR2YWwpOwogICAgICAgIGlmKCAhJHZhbCApIHJldHVybjsKCiAgICAgICAgLy8gZmluZCB0aGUgZmlyc3Qgb3B0aW9uIGluIG9wdGlvbnMgdGhhdCBoYXMgdGhpcyB2YWx1ZS4KICAgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdGhpcy0+b3B0aW9ucyk7ICRpKysgKSB7CiAgICAgICAgICAgICRvcHQgPSAkdGhpcy0+b3B0aW9uc1skaV07CiAgICAgICAgICAgIGlmKCAkb3B0LT5nZXRfdmFsdWUoKSA9PSAkdmFsICkgcmV0dXJuICRvcHQ7CiAgICAgICAgfQogICAgfQp9IC8vIGVuZCBvZiBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.FormFieldConverter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgpjbGFzcyBGb3JtRmllbGRDb252ZXJ0ZXIKewogICAgY29uc3QgVFlQRV9URVhUICA9ICd0ZXh0JzsKICAgIGNvbnN0IFRZUEVfUkFESU8gPSAncmFkaW8nOwogICAgY29uc3QgVFlQRV9DSEVDS0JPWCA9ICdjaGVja2JveCc7CiAgICBjb25zdCBUWVBFX0hJRERFTiA9ICdoaWRkZW4nOwogICAgY29uc3QgVFlQRV9EQVRFID0gJ2RhdGUnOwogICAgY29uc3QgVFlQRV9OVU1CRVIgPSAnbnVtYmVyJzsKICAgIGNvbnN0IFRZUEVfU0VMRUNUID0gJ3NlbGVjdCc7CiAgICBjb25zdCBUWVBFX0ZJTEUgPSAnZmlsZSc7CiAgICBjb25zdCBUWVBFX1RFWFRBUkVBID0gJ3RleHRhcmVhJzsKICAgIGNvbnN0IFRZUEVfUEFTU1dPUkQgPSAncGFzc3dvcmQnOwogICAgY29uc3QgVFlQRV9TVUJNSVQgPSAnc3VibWl0JzsKICAgIGNvbnN0IFRZUEVfUkVTRVQgPSAncmVzZXQnOwogICAgY29uc3QgVFlQRV9CVVRUT04gPSAnYnV0dG9uJzsKICAgIGNvbnN0IFRZUEVfQ09MT1IgPSAnY29sb3InOwogICAgY29uc3QgVFlQRV9EQVRFVElNRV9MT0NBTCA9ICdkYXRldGltZS1sb2NhbCc7CiAgICBjb25zdCBUWVBFX0VNQUlMID0gJ2VtYWlsJzsKICAgIGNvbnN0IFRZUEVfTU9OVEggPSAnbW9udGgnOwogICAgY29uc3QgVFlQRV9TRUFSQ0ggPSAnc2VhcmNoJzsKICAgIGNvbnN0IFRZUEVfVEVMID0gJ3RlbCc7CiAgICBjb25zdCBUWVBFX1RJTUUgPSAndGltZSc7CiAgICBjb25zdCBUWVBFX1VSTCA9ICd1cmwnOwogICAgY29uc3QgVFlQRV9XRUVLID0gJ3dlZWsnOwoKICAgIHByaXZhdGUgJF9maWVsZHMgPSBbXTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoIGFycmF5ICRmaWVsZHMgKQogICAgewogICAgICAgIC8vIHdlIGFscmVhZHkgaGF2ZSBvdXIgbWVzc2FnZXMsIHNvIGhlcmUgd2UgZG9uJ3QgY2FyZSBhYm91dCB2YWxpZGF0aW9uCiAgICAgICAgLy8gaWYgdGhlcmUgYXJlIG11bHRpcGxlIERPTSBmaWVsZHMgd2l0aCB0aGUgc2FtZSBuYW1lLi4uIHdlIGdldCB0aGVpcgogICAgICAgIC8vIHZhbHVlIGFuZCBhZGQgdGhlbSBhcyBvcHRpb25zCiAgICAgICAgLy8gaWYgaXQgaXMgYSBzZWxlY3QsIHdlIGdldCBpdCdzIG9wdGlvbnMuCgogICAgICAgICR0bXAgPSBbXTsKICAgICAgICAvLyBkbyB0aGUgbWFnaWMKICAgICAgICBmb3JlYWNoKCAkZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICAgaWYoICEkZmllbGQgaW5zdGFuY2VvZiBET01GaWVsZCApIGNvbnRpbnVlOwogICAgICAgICAgICAkbmFtZSA9ICRmaWVsZC0+Z2V0X25hbWUoKTsKICAgICAgICAgICAgaWYoICEkbmFtZSApIGNvbnRpbnVlOwoKICAgICAgICAgICAgJGlzX25ldyA9IG51bGw7CiAgICAgICAgICAgICRub2RlbmFtZSA9IHN0cnRvbG93ZXIoJGZpZWxkLT5nZXRfbm9kZW5hbWUoKSk7CiAgICAgICAgICAgIGlmKCAhaXNzZXQoJHRtcFskbmFtZV0pICkgewogICAgICAgICAgICAgICAgJGlzX25ldyA9IHRydWU7CiAgICAgICAgICAgICAgICAkcGFyID0gW107CiAgICAgICAgICAgICAgICAkcGFyWydub2RlJ10gPSAkbm9kZW5hbWU7CiAgICAgICAgICAgICAgICAkcGFyWyduYW1lJ10gPSAkbmFtZTsKICAgICAgICAgICAgICAgICRwYXJbJ3R5cGUnXSA9ICR0aGlzLT5nZXRfdHlwZSgkZmllbGQpOwogICAgICAgICAgICAgICAgJHBhclsnb3B0aW9ucyddID0gJHRoaXMtPmdldF9zZWxlY3Rfb3B0aW9ucyggJGZpZWxkICk7CiAgICAgICAgICAgICAgICAkcGFyWydpZCddID0gJGZpZWxkLT5nZXRfYXR0cmlidXRlKCdpZCcpOwogICAgICAgICAgICAgICAgJHBhclsnY2xhc3MnXSA9ICRmaWVsZC0+Z2V0X2F0dHJpYnV0ZSgnY2xhc3MnKTsKICAgICAgICAgICAgICAgICRwYXJbJ21pbiddID0gJGZpZWxkLT5nZXRfYXR0cmlidXRlKCdtaW4nKTsKICAgICAgICAgICAgICAgICRwYXJbJ21heCddID0gJGZpZWxkLT5nZXRfYXR0cmlidXRlKCdtYXgnKTsKICAgICAgICAgICAgICAgICRwYXJbJ3BhdHRlcm4nXSA9ICRmaWVsZC0+Z2V0X2F0dHJpYnV0ZSgncGF0dGVybicpOwogICAgICAgICAgICAgICAgJHBhclsnbXVsdGlwbGUnXSA9ICR0aGlzLT5pc19tdWx0aXZhbHVlX2ZpZWxkKCAkZmllbGQgKTsKICAgICAgICAgICAgICAgICRwYXJbJ3JlcXVpcmVkJ10gPSAkZmllbGQtPmhhc19hdHRyaWJ1dGUoJ3JlcXVpcmVkJyk7CiAgICAgICAgICAgICAgICAkcGFyWydsYWJlbCddID0gJGZpZWxkLT5nZXRfbGFiZWwoKTsKICAgICAgICAgICAgICAgICRwYXJbJ3ByaW1pdGl2ZSddID0gc3RydG9sb3dlcigkZmllbGQtPmdldF9hdHRyaWJ1dGUoJ2RhdGEtY2diZi1wcmltaXRpdmUnKSk7CiAgICAgICAgICAgICAgICBpZiggISRwYXJbJ3ByaW1pdGl2ZSddICkgewogICAgICAgICAgICAgICAgICAgICRwYXJbJ3ByaW1pdGl2ZSddID0gJ3N0cmluZyc7CiAgICAgICAgICAgICAgICAgICAgaWYoICRwYXJbJ3R5cGUnXSA9PSAnZW1haWwnICkgJHBhclsncHJpbWl0aXZlJ10gPSAnZW1haWwnOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHBhclsnbm92YWxpZGF0ZSddID0gJGZpZWxkLT5oYXNfYXR0cmlidXRlKCdkYXRhLWNnYmYtbm92YWxpZGF0ZScpOwogICAgICAgICAgICAgICAgaWYoICEkcGFyWydyZXF1aXJlZCddICkgJHBhclsncmVxdWlyZWQnXSA9ICRmaWVsZC0+aGFzX2F0dHJpYnV0ZSgnZGF0YS1jZ2JmLXJlcXVpcmVkJyk7CiAgICAgICAgICAgICAgICBpZiggISRwYXJbJ3BhdHRlcm4nXSApICRwYXJbJ3BhdHRlcm4nXSA9ICRmaWVsZC0+Z2V0X2F0dHJpYnV0ZSgnZGF0YS1jZ2JmLXBhdHRlcm4nKTsKICAgICAgICAgICAgICAgIGlmKCAhJHBhclsnbWluJ10gKSAkcGFyWydtaW4nXSA9ICRmaWVsZC0+Z2V0X2F0dHJpYnV0ZSgnZGF0YS1jZ2JmLW1pbicpOwogICAgICAgICAgICAgICAgaWYoICEkcGFyWydtYXgnXSApICRwYXJbJ21heCddID0gJGZpZWxkLT5nZXRfYXR0cmlidXRlKCdkYXRhLWNnYmYtbWF4Jyk7CgogICAgICAgICAgICAgICAgc3dpdGNoKCAkcGFyWyd0eXBlJ10gKSB7CiAgICAgICAgICAgICAgICBjYXNlIHNlbGY6OlRZUEVfQ0hFQ0tCT1g6CiAgICAgICAgICAgICAgICBjYXNlIHNlbGY6OlRZUEVfUkFESU86CiAgICAgICAgICAgICAgICAgICAgLy8gb3ZlcnJpZGUgdGhlIGludGVybmFsIGxhYmVsIGJ1dCBvbmx5IGZvciB0aGUgZmlyc3QgaW5zdGFuY2Ugb2YgYW4gZWxlbWVudCB3aXRoIHRoaXMgbmFtZS4KICAgICAgICAgICAgICAgICAgICBpZiggKCRhdHRyID0gJGZpZWxkLT5nZXRfYXR0cmlidXRlKCdkYXRhLWNnYmYtbGFiZWwnKSApICkgJHBhclsnbGFiZWwnXSA9ICRhdHRyOwogICAgICAgICAgICAgICAgICAgICR0bXBbJG5hbWVdID0gbmV3IEZvcm1GaWVsZCggJHBhciApOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGNhc2Ugc2VsZjo6VFlQRV9GSUxFOgogICAgICAgICAgICAgICAgICAgICR0bXBbJG5hbWVdID0gJHRoaXMtPmNyZWF0ZV9maWxlX2ZpZWxkKCAkcGFyLCAkZmllbGQgKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICAgICAgLy8gdG9kbzogc2hvdWxkIGNyZWF0ZSBkaWZmZXJlbnQgZm9ybSBmaWVsZCBvYmplY3RzIGZvciByYWRpbyBidXR0b24gZ3JvdXBzIGFuZCBzZWxlY3RzIGFuZCBtdWx0aS1zZWxlY3RzCiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICR0bXBbJG5hbWVdID0gbmV3IEZvcm1GaWVsZCggJHBhciApOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAkb2JqID0mICR0bXBbJG5hbWVdOwogICAgICAgICAgICAvLyBkbyB3ZSBhZGQgYSB2YWx1ZSBmb3IgdGhpcyB0aGluZywgb3IgZG8gd2UgYWRkIGFuIG9wdGlvbgogICAgICAgICAgICAvLyBhZGQgYW4gb3B0aW9uIGlmIHR5cGUgaXMgcmFkaW8sIGNoZWNrYm94LCBidXR0b24KICAgICAgICAgICAgLy8gb3RoZXdpc2UsIGFkZCBhIHZhbHVlLgogICAgICAgICAgICBpZiggaW5fYXJyYXkoJG9iai0+dHlwZSxbc2VsZjo6VFlQRV9SQURJTyxzZWxmOjpUWVBFX0NIRUNLQk9YLHNlbGY6OlRZUEVfQlVUVE9OXSkgKSB7CiAgICAgICAgICAgICAgICAvLyBpdCdzYSBjaGVja2JveCwgc2VsZWN0LCBvciByYWRpbwogICAgICAgICAgICAgICAgLy8gYWRkIHRoZSB2YWx1ZSBhbmQgaHVtYW4tcmVhZGFibGUgc3R1ZmYKICAgICAgICAgICAgICAgICRwYXJtcyA9IFsndGV4dCc9PiRmaWVsZC0+Z2V0X3ZhbHVlKCksJ3ZhbHVlJz0+JGZpZWxkLT5nZXRfdmFsdWUoKSwgJ2hyJz0+JGZpZWxkLT5nZXRfdmFsdWUoKV07CiAgICAgICAgICAgICAgICBpZiggKCRociA9ICRmaWVsZC0+Z2V0X2F0dHJpYnV0ZSgnZGF0YS1jZ2JmLWh1bWFuJykpICkgJHBhcm1zWydociddID0gJGhyOwogICAgICAgICAgICAgICAgaWYoICRmaWVsZC0+aGFzX2F0dHJpYnV0ZSgnY2hlY2tlZCcpICkgJHBhcm1zWydzZWxlY3RlZCddID0gdHJ1ZTsKICAgICAgICAgICAgICAgICRvcHQgPSBuZXcgRm9ybU11bHRpVmFsdWVPcHRpb24oICRwYXJtcyApOwogICAgICAgICAgICAgICAgJG9iai0+YWRkX29wdGlvbiggJG9wdCApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJHZhbHVlID0gJHRoaXMtPmNsZWFuX3ZhbHVlKCRmaWVsZC0+Z2V0X3ZhbHVlKCkpOwogICAgICAgICAgICAgICAgJG9iai0+YWRkX3ZhbHVlKCAkdmFsdWUgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkdGhpcy0+X2ZpZWxkcyA9ICR0bXA7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGNsZWFuX3ZhbHVlKCAkaW4gKQogICAgewogICAgICAgIGlmKCAhJGluICkgcmV0dXJuOwogICAgICAgIGlmKCBzdHJwb3MoJ1VuZGVmaW5lZCBpbmRleDonLCRpbikgIT09IEZBTFNFICkgcmV0dXJuOwogICAgICAgIGlmKCBzdHJwb3MoJ1RyeWluZyB0byBnZXQgcHJvcGVydHkgb2Ygbm9uLW9iamVjdCBpbicsJGluKSAhPT0gRkFMU0UgKSByZXR1cm47CiAgICAgICAgcmV0dXJuICRpbjsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gY3JlYXRlX2ZpbGVfZmllbGQoIGFycmF5ICRwYXIsIERPTUZpZWxkICRmaWVsZCApCiAgICB7CiAgICAgICAgJHBhclsnYWNjZXB0J10gPSAkZmllbGQtPmdldF9hdHRyaWJ1dGUoJ2FjY2VwdCcpOwogICAgICAgICRtYXhzaXplPW51bGw7CiAgICAgICAgJGV4dGVuc2lvbnM9bnVsbDsKICAgICAgICAkZGF0YV9hdHRyaWJzID0gJGZpZWxkLT5nZXRfYXR0cmlidXRlc19ieV9wcmVmaXgoJ2RhdGEtJyk7CiAgICAgICAgaWYoIGNvdW50KCRkYXRhX2F0dHJpYnMpICkgewogICAgICAgICAgICBmb3JlYWNoKCAkZGF0YV9hdHRyaWJzIGFzICRrZXkgPT4gJHZhbHVlICkgewogICAgICAgICAgICAgICAgJGtleSA9IHN1YnN0cigka2V5LHN0cmxlbignZGF0YS0nKSk7CiAgICAgICAgICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgICAgICAgICBjYXNlICdjZ3BmLWZpbGUtYWNjZXB0JzoKICAgICAgICAgICAgICAgICAgICBpZiggISRwYXJbJ2FjY2VwdCddICkgJHBhclsnYWNjZXB0J10gPSB0cmltKCR2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICdjZ2JmLWZpbGUtbWF4c2l6ZSc6CiAgICAgICAgICAgICAgICAgICAgJHZhbHVlID0gKGludCkgJHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGlmKCAkdmFsdWUgPiAwICkgJHBhclsnbWF4X3NpemUnXSA9ICR2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgJ2NnYmYtZmlsZS1leHRlbnNpb24nOgogICAgICAgICAgICAgICAgICAgICRwYXJbJ2V4dGVuc2lvbnMnXSA9IHRyaW0oJHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJG91dCA9IG5ldyBGb3JtRmlsZUZpZWxkKCAkcGFyICk7CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGlzX211bHRpdmFsdWVfZmllbGQoIERPTUZpZWxkICRmaWVsZCApCiAgICB7CiAgICAgICAgJG5hbWUgPSAkZmllbGQtPmdldF9uYW1lKCk7CiAgICAgICAgaWYoIGVuZHN3aXRoKCAkbmFtZSwgJ1tdJyApICkgcmV0dXJuIFRSVUU7CiAgICAgICAgaWYoICRmaWVsZC0+aGFzX2F0dHJpYnV0ZSgnbXVsdGlwbGUnKSApIHJldHVybiBUUlVFOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBjcmVhdGVfb3B0aW9uX2Zyb21fZG9tb3B0aW9uKCBET01TZWxlY3RPcHRpb24gJG9wdGlvbiApCiAgICB7CiAgICAgICAgJHBhcm1zID0gWyAnaHInPT4kb3B0aW9uLT5nZXRfaHVtYW5SZWFkYWJsZSgpLCAndGV4dCc9PiRvcHRpb24tPmdldF90ZXh0UmF3KCksICd2YWx1ZSc9PiRvcHRpb24tPmdldF92YWx1ZSgpLCAnc2VsZWN0ZWQnPT4kb3B0aW9uLT5nZXRfc2VsZWN0ZWQoKSBdOwogICAgICAgICRvYmogPSBuZXcgRm9ybU11bHRpVmFsdWVPcHRpb24oJHBhcm1zKTsKICAgICAgICByZXR1cm4gJG9iajsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X3NlbGVjdF9vcHRpb25zKCBET01GaWVsZCAkZmllbGQgKQogICAgewogICAgICAgIGlmKCAkZmllbGQgaW5zdGFuY2VvZiBET01TZWxlY3RGaWVsZCApIHsKICAgICAgICAgICAgJG91dCA9IFtdOwogICAgICAgICAgICAkb3B0aW9ucyA9ICRmaWVsZC0+Z2V0X29wdGlvbnMoKTsKICAgICAgICAgICAgZm9yZWFjaCggJG9wdGlvbnMgYXMgJGRvbV9vcHRpb24gKSB7CiAgICAgICAgICAgICAgICAkbmV3X29wdGlvbiA9ICR0aGlzLT5jcmVhdGVfb3B0aW9uX2Zyb21fZG9tb3B0aW9uKCAkZG9tX29wdGlvbiApOwogICAgICAgICAgICAgICAgJG91dFtdID0gJG5ld19vcHRpb247CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICRvdXQ7CiAgICAgICAgfQogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfdHlwZSggRE9NRmllbGQgJGZpZWxkICkKICAgIHsKICAgICAgICBzd2l0Y2goICRmaWVsZC0+Z2V0X25vZGVuYW1lKCkgKSB7CiAgICAgICAgY2FzZSAnc2VsZWN0JzoKICAgICAgICAgICAgcmV0dXJuIHNlbGY6OlRZUEVfU0VMRUNUOwogICAgICAgIGNhc2UgJ3RleHRhcmVhJzoKICAgICAgICAgICAgcmV0dXJuIHNlbGY6OlRZUEVfVEVYVEFSRUE7CiAgICAgICAgY2FzZSAnYnV0dG9uJzoKICAgICAgICAgICAgcmV0dXJuIHNlbGY6OlRZUEVfQlVUVE9OOwogICAgICAgIGNhc2UgJ2lucHV0JzoKICAgICAgICAgICAgJHR5cGUgPSAkZmllbGQtPmdldF9hdHRyaWJ1dGUoJ3R5cGUnKTsKICAgICAgICAgICAgc3dpdGNoKCAkdHlwZSApIHsKICAgICAgICAgICAgY2FzZSAncmFkaW8nOgogICAgICAgICAgICAgICAgcmV0dXJuIHNlbGY6OlRZUEVfUkFESU87CiAgICAgICAgICAgIGNhc2UgJ2NoZWNrYm94JzoKICAgICAgICAgICAgICAgIHJldHVybiBzZWxmOjpUWVBFX0NIRUNLQk9YOwogICAgICAgICAgICBjYXNlICdoaWRkZW4nOgogICAgICAgICAgICAgICAgcmV0dXJuIHNlbGY6OlRZUEVfSElEREVOOwogICAgICAgICAgICBjYXNlICdmaWxlJzoKICAgICAgICAgICAgICAgIHJldHVybiBzZWxmOjpUWVBFX0ZJTEU7CiAgICAgICAgICAgIGNhc2UgJ2VtYWlsJzoKICAgICAgICAgICAgICAgIHJldHVybiBzZWxmOjpUWVBFX0VNQUlMOwogICAgICAgICAgICBjYXNlICdwYXNzd29yZCc6CiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZjo6VFlQRV9QQVNTV09SRDsKICAgICAgICAgICAgY2FzZSAnYnV0dG9uJzoKICAgICAgICAgICAgICAgIHJldHVybiBzZWxmOjpUWVBFX0JVVFRPTjsKICAgICAgICAgICAgY2FzZSAnc3VibWl0JzoKICAgICAgICAgICAgICAgIHJldHVybiBzZWxmOjpUWVBFX1NVQk1JVDsKICAgICAgICAgICAgY2FzZSAncmVzZXQnOgogICAgICAgICAgICAgICAgcmV0dXJuIHNlbGY6OlRZUEVfUkVTRVQ7CiAgICAgICAgICAgIGNhc2UgJ251bWJlcic6CiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZjo6VFlQRV9OVU1CRVI7CiAgICAgICAgICAgIGNhc2UgJ2NvbG9yJzoKICAgICAgICAgICAgICAgIHJldHVybiBzZWxmOjpUWVBFX0NPTE9SOwogICAgICAgICAgICBjYXNlICdtb250aCc6CiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZjo6VFlQRV9NT05USDsKICAgICAgICAgICAgY2FzZSAnc2VhcmNoJzoKICAgICAgICAgICAgICAgIHJldHVybiBzZWxmOjpUWVBFX1NFQVJDSDsKICAgICAgICAgICAgY2FzZSAndGVsJzoKICAgICAgICAgICAgICAgIHJldHVybiBzZWxmOjpUWVBFX1RFTDsKICAgICAgICAgICAgY2FzZSAndGltZSc6CiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZjo6VFlQRV9USU1FOwogICAgICAgICAgICBjYXNlICd1cmwnOgogICAgICAgICAgICAgICAgcmV0dXJuIHNlbGY6OlRZUEVfVVJMOwogICAgICAgICAgICBjYXNlICd3ZWVrJzoKICAgICAgICAgICAgICAgIHJldHVybiBzZWxmOjpUWVBFX1dFRUw7CiAgICAgICAgICAgIGNhc2UgJ2RhdGUnOgogICAgICAgICAgICAgICAgcmV0dXJuIHNlbGY6OlRZUEVfREFURTsKICAgICAgICAgICAgY2FzZSAnZGF0ZXRpbWUtbG9jYWwnOgogICAgICAgICAgICAgICAgcmV0dXJuIHNlbGY6OlRZUEVfREFURVRJTUVfTE9DQUw7CiAgICAgICAgICAgIGNhc2UgJ3RleHQnOgogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgcmV0dXJuIHNlbGY6OlRZUEVfVEVYVDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpZWxkcygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZmllbGRzOwogICAgfQp9]]></data>
	</file>
	<file>
	  <filename>/lib/class.FormFileField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgpjbGFzcyBGb3JtRmlsZUZpZWxkIGV4dGVuZHMgRm9ybUZpZWxkCnsKICAgIHByaXZhdGUgJF9kYXRhID0gWydhY2NlcHQnPT5udWxsLCAnbWF4X3NpemUnPT5udWxsLCAnZXh0ZW5zaW9ucyc9Pm51bGwsICdub3ZhbGlkYXRlJz0+bnVsbCBdOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggYXJyYXkgJGluICkKICAgIHsKICAgICAgICBmb3JlYWNoKCAkaW4gYXMgJGtleSA9PiAkdmFsICkgewogICAgICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgICAgIGNhc2UgJ2FjY2VwdCc6CiAgICAgICAgICAgIGNhc2UgJ2V4dGVuc2lvbnMnOgogICAgICAgICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gdHJpbSgkdmFsKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdtYXhfc2l6ZSc6CiAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAoaW50KSBtYXgoMCwoaW50KSAkdmFsKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoICRpbiApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgka2V5KQogICAgewogICAgICAgIGlmKCBhcnJheV9rZXlfZXhpc3RzKCRrZXksICR0aGlzLT5fZGF0YSkgKSByZXR1cm4gJHRoaXMtPl9kYXRhWyRrZXldOwogICAgICAgIHJldHVybiBwYXJlbnQ6Ol9fZ2V0KCAka2V5ICk7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/class.FormMultiValueOption.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgpjbGFzcyBGb3JtTXVsdGlWYWx1ZU9wdGlvbgp7CiAgICBwcml2YXRlICRfZGF0YSA9IFsnaHInPT5udWxsLCAndGV4dCc9Pm51bGwsICd2YWx1ZSc9Pm51bGwsICdzZWxlY3RlZCc9PmZhbHNlIF07CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCBhcnJheSAkcGFyYW1zICkKICAgIHsKICAgICAgICBmb3JlYWNoKCAkcGFyYW1zIGFzICRrZXkgPT4gJHZhbCApIHsKICAgICAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgICAgICBjYXNlICdocic6CiAgICAgICAgICAgIGNhc2UgJ3RleHQnOgogICAgICAgICAgICBjYXNlICd2YWx1ZSc6CiAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSB0cmltKCR2YWwpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ3NlbGVjdGVkJzoKICAgICAgICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IGNtc190b19ib29sKCR2YWwpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2h1bWFuJzoKICAgICAgICAgICAgcmV0dXJuIHRyaW0oJHRoaXMtPl9kYXRhWydociddKTsgLy8gY29udmVuaWVuY2UKICAgICAgICBjYXNlICdocic6CiAgICAgICAgY2FzZSAndGV4dCc6CiAgICAgICAgY2FzZSAndmFsdWUnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X2RhdGFbJGtleV0pOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdzZWxlY3RlZCc6CiAgICAgICAgICAgIHJldHVybiAoYm9vbCkgJHRoaXMtPl9kYXRhWyRrZXldOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ZhbHVlKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnZhbHVlOwogICAgfQp9]]></data>
	</file>
	<file>
	  <filename>/lib/class.FormRenderer.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgpjbGFzcyBGb3JtUmVuZGVyZXIKewogICAgcHJpdmF0ZSAkX21vZDsKICAgIHByaXZhdGUgJF9kb207CiAgICBwcml2YXRlICRfZm9ybTsKICAgIHByaXZhdGUgJF9pZDsKICAgIHByaXZhdGUgJF9yZXR1cm5pZDsKICAgIHByaXZhdGUgJF9jYXB0Y2hhX3Byb3ZpZGVyOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggXENHQmV0dGVyRm9ybXMgJG1vZCwgRm9ybSAkZm9ybSwgSUNhcHRjaGFQcm92aWRlciAkcHJvdmlkZXIgPSBudWxsLCAkc21hcnR5LCAkaWQsICRyZXR1cm5pZCwgRm9ybVJlc3BvbnNlICRyZXNwb25zZSApCiAgICB7CiAgICAgICAgLy8gaWYgdGVtcGxhdGUgbW9kaWZpZWQgc2luY2UgZm9ybSBzYXZlZC4uIGRvbid0IHJlbmRlci4KICAgICAgICAkdGhpcy0+X21vZCA9ICRtb2Q7CiAgICAgICAgJHRoaXMtPl9mb3JtID0gJGZvcm07CiAgICAgICAgJHRoaXMtPl9pZCA9IHRyaW0oJGlkKTsKICAgICAgICAkdGhpcy0+X3JldHVybmlkID0gKGludCkgJHJldHVybmlkOwogICAgICAgICR0aGlzLT5fZXJyb3IgPSBudWxsOwogICAgICAgICR0aGlzLT5fdXJsID0gJHRoaXMtPl9tb2QtPmNyZWF0ZV91cmwoJGlkLCdkZWZhdWx0JywkcmV0dXJuaWQsIFsnZm9ybSc9PiRmb3JtLT5uYW1lLCAncHJvY2Vzcyc9PjEgXSApOwogICAgICAgICR0aGlzLT5fY2FwdGNoYV9wcm92aWRlciA9ICRwcm92aWRlcjsKCiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdmb3JtX2RhdGEnLCRyZXNwb25zZSk7CiAgICAgICAgJGh0bWwgPSAkc21hcnR5LT5mZXRjaCggJ2Ntc190ZW1wbGF0ZTonLiRmb3JtLT50ZW1wbGF0ZV9pZCApOwogICAgICAgIGxpYnhtbF91c2VfaW50ZXJuYWxfZXJyb3JzKHRydWUpOwogICAgICAgIHNldF9lcnJvcl9oYW5kbGVyKGZ1bmN0aW9uKCRudW1iZXIsJGVycm9yKXsKICAgICAgICAgICAgICAgIGRlYnVnX2Rpc3BsYXkoIkVSUk9SOiAiLiRlcnJvcikgOwogICAgICAgICAgICB9KTsKICAgICAgICAkdGhpcy0+X2RvbSA9IG5ldyBcRG9tRG9jdW1lbnQ7CiAgICAgICAgLy8kdGhpcy0+X2RvbS0+bG9hZEhUTUwoICRodG1sLCAgTElCWE1MX0hUTUxfTk9JTVBMSUVEIHwgTElCWE1MX0hUTUxfTk9ERUZEVEQgKTsKICAgICAgICAkdGhpcy0+X2RvbS0+bG9hZEhUTUwoICRodG1sICk7CiAgICAgICAgJHRoaXMtPmFsdGVyRm9ybVRhZygpOwogICAgICAgICR0aGlzLT5hZGRIaWRkZW5SZXR1cm5pZCgpOwogICAgICAgICR0aGlzLT5hZGRIaWRkZW5Gb3JtTmFtZSgpOwogICAgICAgICR0aGlzLT5hZGRIaWRkZW5NYWN0KCk7CiAgICAgICAgJHRoaXMtPmFkZEhpZGRlbkd1aWQoKTsKICAgICAgICAkdGhpcy0+YWRkSGlkZGVuSG9uZXlQb3QoKTsKICAgICAgICAkdGhpcy0+aGFuZGxlRGF0YVNlbGVjdGVkKCk7CiAgICAgICAgaWYoICRmb3JtLT5oYXNfY2FwdGNoYSAmJiAkdGhpcy0+X2NhcHRjaGFfcHJvdmlkZXIgKSAkdGhpcy0+YWRkQ2FwdGNoYUNvbnRlbnQoKTsKICAgICAgICAvLyB0b2RvOiAkdGhpcy0+YWRqdXN0SW5wdXRWYWx1ZXMoICRyZXNwb25zZSApOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRJbnB1dHNCeVR5cGUoJHR5cGUpCiAgICB7CiAgICAgICAgJHR5cGUgPSBzdHJ0b2xvd2VyKHRyaW0oJHR5cGUpKTsKICAgICAgICBpZiggISR0eXBlICkgcmV0dXJuOwoKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgJG5vZGVzID0gJHRoaXMtPl9kb20tPmdldEVsZW1lbnRzQnlUYWdOYW1lKCAnaW5wdXQnICk7CiAgICAgICAgaWYoICEgJG5vZGVzICkgcmV0dXJuOwogICAgICAgIGZvcmVhY2goICRub2RlcyBhcyAkbm9kZSApIHsKICAgICAgICAgICAgaWYoIHN0cnRvbG93ZXIoJG5vZGUtPmdldEF0dHJpYnV0ZSgndHlwZScpKSA9PSAkdHlwZSApICRvdXRbXSA9ICRub2RlOwogICAgICAgIH0KICAgICAgICBpZiggY291bnQoJG91dCkgKSByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gd2Fsa0RPTShcRE9NTm9kZSAkbm9kZSwgY2FsbGFibGUgJGZ1bmMpCiAgICB7CiAgICAgICAgJGZ1bmMoJG5vZGUpOwogICAgICAgICRub2RlID0gJG5vZGUtPmZpcnN0Q2hpbGQ7CiAgICAgICAgd2hpbGUoICRub2RlICkgewogICAgICAgICAgICAkdGhpcy0+d2Fsa0RPTSgkbm9kZSwkZnVuYyk7CiAgICAgICAgICAgICRub2RlID0gJG5vZGUtPm5leHRTaWJsaW5nOwogICAgICAgIH0KICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0QXR0cmlidXRlc0FycmF5KFxET01OYW1lZE5vZGVNYXAgJG1hcCkKICAgIHsKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgZm9yZWFjaCggJG1hcCBhcyAkYXR0ciApIHsKICAgICAgICAgICAgJG91dFskYXR0ci0+bm9kZU5hbWVdID0gJGF0dHItPm5vZGVWYWx1ZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGhhbmRsZURhdGFTZWxlY3RlZCgpCiAgICB7CiAgICAgICAgLy8gZmluZCBub2RlcyBvZiB0eXBlIHNlbGVjdCwgcmFkaW8sIGNoZWNrYm94IHdpdGggYXR0cmlidXRlIGRhdGEtY2diZi1zZWxlY3RlZAogICAgICAgIC8vIHBhcnNlIHRoZSB2YWx1ZXMgb2YgdGhlIGF0dHJpYnV0ZQogICAgICAgIC8vIGZvciBzZWxlY3QuLiBhZGQgJ3NlbGVjdGVkJyBhdHRyaWJ1dGUgdG8gZWFjaCBvcHRpb24gd2hlcmUgdmFsdWVzIG1hdGNoCiAgICAgICAgLy8gZm9yIGNoZWNrYm94L3JhZGlvIGFkZCAnY2hlY2tlZCcgYXR0cmlidXRlIHRvIGVhY2ggaW5wdXQgbm9kZSB3aGVyZSB2YWx1ZXMgbWF0Y2gKICAgICAgICAkbm9kZXMgPSAkdGhpcy0+X2RvbS0+Z2V0RWxlbWVudHNCeVRhZ05hbWUoICdzZWxlY3QnICk7CiAgICAgICAgaWYoICRub2RlcyApIHsKICAgICAgICAgICAgZm9yZWFjaCggJG5vZGVzIGFzICRub2RlICkgewogICAgICAgICAgICAgICAgaWYoICEoJGF0dHIgPSAkbm9kZS0+Z2V0QXR0cmlidXRlKCdkYXRhLWNnYmYtc2VsZWN0ZWQnKSkgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICR0aGlzLT53YWxrRE9NKCAkbm9kZSwgZnVuY3Rpb24oXERPTU5vZGUgJGluX25vZGUpIHVzZSAoJGF0dHIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICRpbl9ub2RlLT5ub2RlTmFtZSAhPSAnb3B0aW9uJyApIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICRpbl9ub2RlLT5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJykgPT0gJGF0dHIgKSAkaW5fbm9kZS0+c2V0QXR0cmlidXRlKCdzZWxlY3RlZCcsJ3NlbGVjdGVkJyk7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICRub2RlcyA9ICR0aGlzLT5nZXRJbnB1dHNCeVR5cGUoJ2NoZWNrYm94Jyk7CiAgICAgICAgaWYoICRub2RlcyApIHsKICAgICAgICAgICAgZm9yZWFjaCggJG5vZGVzIGFzICRub2RlICkgewogICAgICAgICAgICAgICAgaWYoICEoJGF0dHIgPSAkbm9kZS0+Z2V0QXR0cmlidXRlKCdkYXRhLWNnYmYtc2VsZWN0ZWQnKSkgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgIGlmKCAkbm9kZS0+Z2V0QXR0cmlidXRlKCd2YWx1ZScpID09ICRhdHRyICkgJG5vZGUtPnNldEF0dHJpYnV0ZSgnY2hlY2tlZCcsJ2NoZWNrZWQnKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJG5vZGVzID0gJHRoaXMtPmdldElucHV0c0J5VHlwZSgncmFkaW8nKTsKICAgICAgICBpZiggJG5vZGVzICkgewogICAgICAgICAgICBmb3JlYWNoKCAkbm9kZXMgYXMgJG5vZGUgKSB7CiAgICAgICAgICAgICAgICAkdG1wID0gJHRoaXMtPmdldEF0dHJpYnV0ZXNBcnJheSggJG5vZGUtPmF0dHJpYnV0ZXMgKTsKICAgICAgICAgICAgICAgIGlmKCAhKCRhdHRyID0gJG5vZGUtPmdldEF0dHJpYnV0ZSgnZGF0YS1jZ2JmLXNlbGVjdGVkJykpICkgY29udGludWU7CiAgICAgICAgICAgICAgICBpZiggJG5vZGUtPmdldEF0dHJpYnV0ZSgndmFsdWUnKSA9PSAkYXR0ciApICRub2RlLT5zZXRBdHRyaWJ1dGUoJ2NoZWNrZWQnLCdjaGVja2VkJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldENvbnRlbnRVcmwoKQogICAgewogICAgICAgICRvdXQgPSAnbW9kdWxlaW50ZXJmYWNlLnBocCc7CiAgICAgICAgJGhtID0gXENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldEhpZXJhcmNoeU1hbmFnZXIoKTsKICAgICAgICAkbm9kZSA9ICRobS0+c3VyZUdldE5vZGVCeUlkKCAkdGhpcy0+X3JldHVybmlkICk7CiAgICAgICAgaWYoICRub2RlICkgewogICAgICAgICAgICAkY29udGVudF9vYmogPSAkbm9kZS0+Z2V0Q29udGVudCgpOwogICAgICAgICAgICBpZiggJGNvbnRlbnRfb2JqICkgJG91dCA9ICRjb250ZW50X29iai0+R2V0VVJMKCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRGb3JtTm9kZSgpCiAgICB7CiAgICAgICAgJGZvcm0gPSAkdGhpcy0+X2RvbS0+Z2V0RWxlbWVudHNCeVRhZ05hbWUoICdmb3JtJyApLT5pdGVtKDApOwogICAgICAgIHJldHVybiAkZm9ybTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYWx0ZXJGb3JtVGFnKCkKICAgIHsKICAgICAgICAvLyBmaW5kIHRoZSBmb3JtIGRvbSBub2RlCiAgICAgICAgJGZvcm0gPSAkdGhpcy0+Z2V0Rm9ybU5vZGUoKTsKICAgICAgICAkZm9ybS0+c2V0QXR0cmlidXRlKCAnbWV0aG9kJywgJ3Bvc3QnICk7CiAgICAgICAgJGZvcm0tPnNldEF0dHJpYnV0ZSggJ2FjdGlvbicsICR0aGlzLT5nZXRDb250ZW50VXJsKCkgKTsKICAgICAgICAkZm9ybS0+c2V0QXR0cmlidXRlKCAnZW5jdHlwZScsICdtdWx0aXBhcnQvZm9ybS1kYXRhJyApOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBmaW5kSW5wdXQoJG5hbWUpCiAgICB7CiAgICAgICAgJGxpc3QgPSAkdGhpcy0+X2RvbS0+Z2V0RWxlbWVudHNCeVRhZ05hbWUoICdpbnB1dCcgKTsKICAgICAgICBmb3JlYWNoKCAkbGlzdCBhcyAkbm9kZSApewogICAgICAgICAgICAkdF9uYW1lID0gJG5vZGUtPmdldEF0dHJpYnV0ZSggJ25hbWUnICk7CiAgICAgICAgICAgIGlmKCAkdF9uYW1lID09ICRuYW1lICkgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRTZWxlY3ROb2RlKCRuYW1lKQogICAgewogICAgICAgICRsaXN0ID0gJHRoaXMtPl9kb20tPmdldEVsZW1lbnRzQnlUYWdOYW1lKCAnc2VsZWN0JyApOwogICAgICAgIGZvcmVhY2goICRsaXN0IGFzICRub2RlICl7CiAgICAgICAgICAgICR0X25hbWUgPSAkbm9kZS0+Z2V0QXR0cmlidXRlKCAnbmFtZScgKTsKICAgICAgICAgICAgaWYoICR0X25hbWUgPT0gJG5hbWUgKSByZXR1cm4gJG5vZGU7CiAgICAgICAgfQogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBhcHBlbmRIVE1MdG9Ob2RlKFxET01Ob2RlICRwYXJlbnQsICRzb3VyY2UpCiAgICB7CiAgICAgICAgJHRtcERvYyA9IG5ldyBcRE9NRG9jdW1lbnQoKTsKICAgICAgICAkdG1wRG9jLT5sb2FkSFRNTCgkc291cmNlKTsKICAgICAgICBmb3JlYWNoICgkdG1wRG9jLT5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpLT5pdGVtKDApLT5jaGlsZE5vZGVzIGFzICRub2RlKSB7CiAgICAgICAgICAgICRub2RlID0gJHBhcmVudC0+b3duZXJEb2N1bWVudC0+aW1wb3J0Tm9kZSgkbm9kZSx0cnVlKTsKICAgICAgICAgICAgJHBhcmVudC0+YXBwZW5kQ2hpbGQoJG5vZGUpOwogICAgICAgIH0KICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYWRkQ2FwdGNoYUNvbnRlbnQoKQogICAgewogICAgICAgICR4cGF0aCA9IG5ldyBcRE9NWFBhdGgoICR0aGlzLT5fZG9tICk7CiAgICAgICAgJHRtcCA9ICR4cGF0aC0+cXVlcnkoICcvL0BkYXRhLWNnYmYtY2FwdGNoYScpLT5pdGVtKDApOwogICAgICAgIGlmKCAhJHRtcCApIHJldHVybjsKICAgICAgICAkZWxlbSA9ICR0bXAtPnBhcmVudE5vZGU7CiAgICAgICAgaWYoICEkZWxlbSApIHJldHVybjsKICAgICAgICAkb3V0cHV0ID0gJHRoaXMtPl9jYXB0Y2hhX3Byb3ZpZGVyLT5nZXRfY2FwdGNoYV9kaXNwbGF5KCk7CiAgICAgICAgaWYoICRvdXRwdXQpICR0aGlzLT5hcHBlbmRIVE1MdG9Ob2RlKCAkZWxlbSwgJG91dHB1dCApOwoKICAgICAgICAkb3V0cHV0ID0gJHRoaXMtPl9jYXB0Y2hhX3Byb3ZpZGVyLT5nZXRfY2FwdGNoYV9pbnB1dGZpZWxkKCk7CiAgICAgICAgaWYoICEkb3V0cHV0ICkgcmV0dXJuOwoKICAgICAgICAkZWxlbTIgPSBudWxsOwogICAgICAgICR0bXAgPSAkeHBhdGgtPnF1ZXJ5KCAnLy9AZGF0YS1jZ2JmLWNhcHRjaGEtaW5wdXQnKS0+aXRlbSgwKTsKICAgICAgICBpZiggJHRtcCApICRlbGVtMiA9ICR0bXAtPnBhcmVudE5vZGU7CiAgICAgICAgaWYoICRlbGVtMiApIHsKICAgICAgICAgICAgJHRoaXMtPmFwcGVuZEhUTUx0b05vZGUoICRlbGVtMiwgJG91dHB1dCApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPmFwcGVuZEhUTUx0b05vZGUoICRlbGVtLCAkb3V0cHV0ICk7CiAgICAgICAgfQogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBhZGRIaWRkZW5JbnB1dCggJG5hbWUsICR2YWwgKQogICAgewogICAgICAgICRlbGVtID0gJHRoaXMtPl9kb20tPkNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CiAgICAgICAgJGVsZW0tPnNldEF0dHJpYnV0ZSgndHlwZScsJ2hpZGRlbicpOwogICAgICAgICRlbGVtLT5zZXRBdHRyaWJ1dGUoJ25hbWUnLCRuYW1lKTsKICAgICAgICAkZWxlbS0+c2V0QXR0cmlidXRlKCd2YWx1ZScsJHZhbCk7CiAgICAgICAgJHRoaXMtPmdldEZvcm1Ob2RlKCktPmFwcGVuZENoaWxkKCAkZWxlbSApOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBhZGRJbnZpc2libGVJbnB1dCggJG5hbWUsICR2YWwgKQogICAgewogICAgICAgICRlbGVtID0gJHRoaXMtPl9kb20tPkNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CiAgICAgICAgJGVsZW0tPnNldEF0dHJpYnV0ZSgndHlwZScsJ3RleHQnKTsKICAgICAgICAkZWxlbS0+c2V0QXR0cmlidXRlKCdzdHlsZScsJ2Rpc3BsYXk6IG5vbmU7Jyk7CiAgICAgICAgJGVsZW0tPnNldEF0dHJpYnV0ZSgnbmFtZScsJG5hbWUpOwogICAgICAgICRlbGVtLT5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywkdmFsKTsKICAgICAgICAkdGhpcy0+Z2V0Rm9ybU5vZGUoKS0+YXBwZW5kQ2hpbGQoICRlbGVtICk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGFkZEhpZGRlblJldHVybklkKCkKICAgIHsKICAgICAgICBpZiggISR0aGlzLT5maW5kSW5wdXQoJ3JldHVybmlkJykgKSAkdGhpcy0+YWRkSGlkZGVuSW5wdXQoICdyZXR1cm5pZCcsICR0aGlzLT5fcmV0dXJuaWQgKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYWRkSGlkZGVuTWFjdCgpCiAgICB7CiAgICAgICAgaWYoICEkdGhpcy0+ZmluZElucHV0KCdtYWN0JykgKSB7CiAgICAgICAgICAgICRtYWN0ID0gIkNHQmV0dGVyRm9ybXMseyR0aGlzLT5faWR9LGRlZmF1bHQsJWQiOwogICAgICAgICAgICAkbWFjdCA9IHNwcmludGYoJG1hY3QsJHRoaXMtPl9mb3JtLT5kaXNwbGF5X2lubGluZSk7CiAgICAgICAgICAgICR0aGlzLT5hZGRIaWRkZW5JbnB1dCggJ21hY3QnLCAkbWFjdCApOwogICAgICAgIH0KICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYWRkSGlkZGVuR3VpZCgpCiAgICB7CiAgICAgICAgaWYoICEkdGhpcy0+ZmluZElucHV0KCdfX2d1aWQnKSApIHsKICAgICAgICAgICAgJGd1aWQgPSBcY2dlX3V0aWxzOjpjcmVhdGVfZ3VpZCgpOwogICAgICAgICAgICAkX1NFU1NJT05bJ0NHQkZfR1VJRF9UT0tFTiddWyRndWlkXSA9IHRpbWUoKTsKICAgICAgICAgICAgJHRoaXMtPmFkZEhpZGRlbklucHV0KCAnX19ndWlkJywgJGd1aWQgKTsKICAgICAgICB9CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGFkZEhpZGRlbkhvbmV5UG90KCkKICAgIHsKICAgICAgICBpZiggISR0aGlzLT5maW5kSW5wdXQoJ19faHBuYW1lJykgKSAkdGhpcy0+YWRkSW52aXNpYmxlSW5wdXQoICdfX2hwbmFtZScsICcnKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYWRkSGlkZGVuRm9ybU5hbWUoKQogICAgewogICAgICAgIGlmKCAhJHRoaXMtPmZpbmRJbnB1dCggJHRoaXMtPl9pZC4nZm9ybScpICkgJHRoaXMtPmFkZEhpZGRlbklucHV0KCAkdGhpcy0+X2lkLidmb3JtJywgJHRoaXMtPl9mb3JtLT5uYW1lICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldEhUTUwoKQogICAgewogICAgICAgICRvdXQgPSAkdGhpcy0+X2RvbS0+c2F2ZUhUTUwoKTsKICAgICAgICAkb3V0ID0gcHJlZ19yZXBsYWNlKCd+PCg/OiFET0NUWVBFfC8/KD86aHRtbHxoZWFkfGJvZHkpKVtePl0qPlxzKn5pJywgJycsICRvdXQpOwogICAgICAgIHJldHVybiAkb3V0OwogICAgfQp9]]></data>
	</file>
	<file>
	  <filename>/lib/class.FormResponse.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgpjbGFzcyBGb3JtUmVzcG9uc2UKewogICAgcHJpdmF0ZSAkX2ZpZWxkX25hbWVzOwogICAgcHJpdmF0ZSAkX2RhdGE7CiAgICBwcml2YXRlICRfbW9kaWZpZWQ7CiAgICBwcml2YXRlICRfZm9ybTsKICAgIHByaXZhdGUgJF9maWxlcyA9IFtdOwogICAgcHJpdmF0ZSAkX2d1aWQ7CiAgICBwcml2YXRlICRfdGltZTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoIFxDR0JldHRlckZvcm1zICRtb2QsIEZvcm0gJGZvcm0sICRndWlkID0gbnVsbCwgYXJyYXkgJGlucHV0ID0gbnVsbCkKICAgIHsKICAgICAgICAkdGhpcy0+X2Zvcm0gPSAkZm9ybTsKICAgICAgICAkdGhpcy0+X2ZpZWxkX25hbWVzID0gJGZvcm0tPmdldF9maWVsZG5hbWVzKCk7CiAgICAgICAgJHRoaXMtPl90aW1lID0gdGltZSgpOwogICAgICAgICR0aGlzLT5pbml0aWFsaXplKCAkbW9kLCAkZ3VpZCApOwogICAgICAgIGlmKCBpc19hcnJheSgkaW5wdXQpICkgJHRoaXMtPmdhdGhlcl9pbnB1dCggJGlucHV0ICk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGluaXRpYWxpemUoIFxDR0JldHRlckZvcm1zICRtb2QsICRndWlkICkKICAgIHsKICAgICAgICAkdGhpcy0+X2ZpZWxkX25hbWVzW10gPSAnY2diZl9zdWJtaXRfdGltZSc7CiAgICAgICAgJHRoaXMtPl9maWVsZF9uYW1lc1tdID0gJ2NnYmZfc3VibWl0X2lwJzsKICAgICAgICAkdGhpcy0+X2ZpZWxkX25hbWVzW10gPSAnY2diZl92ZXJzaW9uJzsKICAgICAgICAkdGhpcy0+X2ZpZWxkX25hbWVzW10gPSAnY2diZl9mb3JtbmFtZSc7CiAgICAgICAgJHRoaXMtPl9maWVsZF9uYW1lc1tdID0gJ2NnYmZfZm9ybWRlc2MnOwogICAgICAgICR0aGlzLT5fZmllbGRfbmFtZXNbXSA9ICdjZ2JmX3JlcXVlc3RpZCc7CiAgICAgICAgJHRoaXMtPl9kYXRhWydjZ2JmX3N1Ym1pdF90aW1lJ10gPSAkdGhpcy0+Z2V0X3RpbWUoKTsKICAgICAgICAkdGhpcy0+X2RhdGFbJ2NnYmZfc3VibWl0X2lwJ10gPSBcY2dlX3V0aWxzOjpnZXRfcmVhbF9pcCgpOwogICAgICAgICR0aGlzLT5fZGF0YVsnY2diZl92ZXJzaW9uJ10gPSAkbW9kLT5HZXRWZXJzaW9uKCk7CiAgICAgICAgJHRoaXMtPl9kYXRhWydjZ2JmX2Zvcm1uYW1lJ10gPSAkdGhpcy0+X2Zvcm0tPm5hbWU7CiAgICAgICAgJHRoaXMtPl9kYXRhWydjZ2JmX2Zvcm1kZXNjJ10gPSAkdGhpcy0+X2Zvcm0tPmRlc2NyaXB0aW9uOwogICAgICAgICR0aGlzLT5fZGF0YVsnY2diZl9yZXF1ZXN0aWQnXSA9ICRndWlkOwogICAgICAgICR0aGlzLT5fZ3VpZCA9ICRndWlkOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBjbGVhbl9pbnB1dCgkaXRlbSkKICAgIHsKICAgICAgICAkaXRlbSA9IHRyaW0oJGl0ZW0pOwogICAgICAgICRpdGVtID0gY2xlYW5WYWx1ZSgkaXRlbSk7CiAgICAgICAgcmV0dXJuIGNtc19odG1sX2VudGl0eV9kZWNvZGUoJGl0ZW0pOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnYXRoZXJfdXBsb2FkcygpCiAgICB7CiAgICAgICAgLy8gcmVzdHJ1Y3R1cmVzIHRoZSAkX0ZJTEVTIGRhdGEgaW50byBzb21ldGhpbmcgbW9yZSBzYW5lLgogICAgICAgICRvdXQgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkX0ZJTEVTIGFzICRmaWVsZF9uYW1lID0+ICRyZWMgKSB7CiAgICAgICAgICAgIGlmKCBpc19zdHJpbmcoJHJlY1snbmFtZSddKSApIHsKICAgICAgICAgICAgICAgICRvdXRbJGZpZWxkX25hbWVdID0gWyAkcmVjIF07CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAka2V5cyA9IGFycmF5X2tleXMoJHJlYyk7CiAgICAgICAgICAgICAgICAkb3V0MiA9IFtdOwogICAgICAgICAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHJlY1snbmFtZSddKTsgJGkrKyApIHsKICAgICAgICAgICAgICAgICAgICAkbmV3X3JlYyA9IFtdOwogICAgICAgICAgICAgICAgICAgIGZvcmVhY2goICRrZXlzIGFzICRrZXkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRuZXdfcmVjWyRrZXldID0gJHJlY1ska2V5XVskaV07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICRvdXQyW10gPSAkbmV3X3JlYzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRvdXRbJGZpZWxkX25hbWVdID0gJG91dDI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdhdGhlcl9pbnB1dChhcnJheSAkaW5wdXQpCiAgICB7CiAgICAgICAgJHVwbG9hZGVkID0gJHRoaXMtPmdhdGhlcl91cGxvYWRzKCk7CiAgICAgICAgZm9yZWFjaCggJHRoaXMtPl9mb3JtLT5maWVsZHMgYXMgJGZpZWxkICkgewogICAgICAgICAgICAkbmFtZSA9ICRmaWVsZC0+bmFtZTsKICAgICAgICAgICAgJHZhbCA9IG51bGw7CiAgICAgICAgICAgIGlmKCAoJGRhdGEgPSBcY2dlX3V0aWxzOjpnZXRfcGFyYW0oICRpbnB1dCwgJG5hbWUpKSApIHsKICAgICAgICAgICAgICAgIGlmKCBpc19hcnJheSggJGRhdGEgKSApIHsKICAgICAgICAgICAgICAgICAgICBhcnJheV93YWxrX3JlY3Vyc2l2ZSggJGRhdGEsIGZ1bmN0aW9uKCYkaXRlbSwka2V5KXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpdGVtID0gJHRoaXMtPmNsZWFuX2lucHV0KCRpdGVtKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgJG91dCA9IFtdOwogICAgICAgICAgICAgICAgICAgIGZvcmVhY2goICRkYXRhIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRvbmUgPSB0cmltKCRvbmUpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiggJG9uZSApICRvdXRbXSA9ICRvbmU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICR2YWwgPSAkb3V0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJHZhbCA9ICR0aGlzLT5jbGVhbl9pbnB1dCgkZGF0YSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJG5hbWVdID0gJHZhbDsKICAgICAgICAgICAgfSBlbHNlIGlmKCAkZmllbGQtPnR5cGUgPT0gJ2ZpbGUnICkgewogICAgICAgICAgICAgICAgJG5hbWUgPSAkZmllbGQtPm5hbWU7CiAgICAgICAgICAgICAgICBpZiggIWlzc2V0KCR1cGxvYWRlZFskbmFtZV0pICkgY29udGludWU7CiAgICAgICAgICAgICAgICAkdGhpcy0+X2ZpbGVzWyRuYW1lXSA9ICR1cGxvYWRlZFskbmFtZV07CiAgICAgICAgICAgICAgICBmb3JlYWNoKCAkdXBsb2FkZWRbJG5hbWVdIGFzICRyZWMgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoICRyZWNbJ2Vycm9yJ10gPiAwIHx8ICRyZWNbJ3NpemUnXSA9PSAwIHx8ICRyZWNbJ2Vycm9yJ10gPiAwICkgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgaWYoICRmaWVsZC0+bXVsdGlwbGUgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAhaXNzZXQoJHRoaXMtPl9kYXRhWyRuYW1lXSkgKSAkdGhpcy0+X2RhdGFbJG5hbWVdID0gW107CiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5fZGF0YVskbmFtZV1bXSA9ICRyZWNbJ25hbWUnXTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJG5hbWVdID0gJHJlY1snbmFtZSddOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3RpbWUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3RpbWU7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9yZXF1ZXN0aWQoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2d1aWQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGxpc3RfZmllbGRzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9maWVsZF9uYW1lczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICAgIHsKICAgICAgICAkZmllbGRzID0gJHRoaXMtPmxpc3RfZmllbGRzKCk7CiAgICAgICAgaWYoIGluX2FycmF5KCRrZXksJGZpZWxkcykgJiYgYXJyYXlfa2V5X2V4aXN0cygka2V5LCR0aGlzLT5fZGF0YSkgKSByZXR1cm4gJHRoaXMtPl9kYXRhWyRrZXldOwogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdmb3JtX25hbWUnOgogICAgICAgIGNhc2UgJ2Zvcm0nOgogICAgICAgIGNhc2UgJ2Zvcm1uYW1lJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5jZ2JmX2Zvcm1uYW1lOwogICAgICAgIGNhc2UgJ3JlbW90ZV9pcCc6CiAgICAgICAgY2FzZSAnaXBfYWRkcmVzcyc6CiAgICAgICAgY2FzZSAnaXBhZGRyZXNzJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5jZ2JmX3N1Ym1pdF9pcDsKICAgICAgICBjYXNlICdzdWJtaXRfdGltZSc6CiAgICAgICAgY2FzZSAnc3VibWl0X2RhdGUnOgogICAgICAgIGNhc2UgJ2RhdGUnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmNnYmZfc3VibWl0X3RpbWU7CiAgICAgICAgY2FzZSAndmVyc2lvbic6CiAgICAgICAgY2FzZSAnY2diZl92ZXJzaW9uJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5jZ2JmX3ZlcnNpb247CiAgICAgICAgY2FzZSAncmVxdWVzdF9pZCc6CiAgICAgICAgY2FzZSAnZ3VpZCc6CiAgICAgICAgY2FzZSAnY2diZl9yZXF1ZXN0aWQnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmNnYmZfcmVxdWVzdGlkOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbW9kaWZ5X3ZhbHVlKCRrZXksJHZhbCkKICAgIHsKICAgICAgICAvLyBrZXkgaXMgYSBzdHJpbmcsICB2YWwgaXMgbnVsbHxzdHJpbmd8c3RyaW5nW10KICAgICAgICAka2V5ID0gdHJpbSgka2V5KTsKICAgICAgICBpZiggIWlzX2FycmF5KCR2YWwpICkgewogICAgICAgICAgICAkdmFsID0gaXNfbnVsbCgkdmFsKSA/IG51bGwgOiB0cmltKCR2YWwpOwogICAgICAgIH0KICAgICAgICBpZiggISRrZXkgKSByZXR1cm47CgogICAgICAgIGlmKCAhaW5fYXJyYXkoJGtleSwkdGhpcy0+X2ZpZWxkX25hbWVzKSApIHJldHVybjsKICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsOwogICAgICAgICR0aGlzLT5fbW9kaWZpZWQgPSBUUlVFOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBpc19tb2RpZmllZCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kaWZpZWQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGxpc3RfZmlsZXMoJG5hbWUgPSBudWxsKQogICAgewogICAgICAgIC8vIGZpZWxkIG5hbWUKICAgICAgICAkbmFtZSA9IHRyaW0oJG5hbWUpOwogICAgICAgIGlmKCAhJG5hbWUgKSByZXR1cm4gJHRoaXMtPl9maWxlczsKCiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZmlsZXNbJG5hbWVdKSApIHJldHVybiAkdGhpcy0+X2ZpbGVzWyRuYW1lXTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX2ZpbGUoJG5hbWUpCiAgICB7CiAgICAgICAgLy8gZmllbGQgbmFtZQogICAgICAgICRuYW1lID0gdHJpbSgkbmFtZSk7CiAgICAgICAgaWYoICEkbmFtZSApIHJldHVybjsKCiAgICAgICAgcmV0dXJuIChib29sKSAkdGhpcy0+bGlzdF9maWxlcyggJG5hbWUgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaXNfZmlsZV9maWVsZCgkbmFtZSkKICAgIHsKICAgICAgICAvLyBmaWVsZCBuYW1lCiAgICAgICAgJG5hbWUgPSB0cmltKCRuYW1lKTsKICAgICAgICBpZiggISRuYW1lICkgcmV0dXJuOwoKICAgICAgICBpZiggc3RhcnRzd2l0aCgkbmFtZSwnY2diZl8nKSApIHJldHVybiBGQUxTRTsKICAgICAgICAkZmllbGQgPSAkdGhpcy0+X2Zvcm0tPmdldF9maWVsZCggJG5hbWUgKTsKICAgICAgICAkcmVzID0gKCAkZmllbGQtPnR5cGUgPT0gJ2ZpbGUnICk7CiAgICAgICAgcmV0dXJuICRyZXM7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGhhc191cGxvYWRzKCkKICAgIHsKICAgICAgICByZXR1cm4gKGNvdW50KCR0aGlzLT5fZmlsZXMpID4gMCApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmlsZV9hc191cmwoJG5hbWUpCiAgICB7CiAgICAgICAgaWYoICR0aGlzLT5pc19maWxlX2ZpZWxkKCRuYW1lKSApICB7CiAgICAgICAgICAgIC8vIHRoZXJlIG1heSBiZSBtdWx0aXBsZSBmaWxlcyBmb3Igb25lIGZpZWxkLgogICAgICAgICAgICAkY29uZmlnID0gXGNtc19jb25maWc6OmdldF9pbnN0YW5jZSgpOwogICAgICAgICAgICAkb3V0ID0gW107CiAgICAgICAgICAgICRmaWxlcyA9ICR0aGlzLT5nZXRfZmllbGRfdmFsdWUoICRuYW1lICk7CiAgICAgICAgICAgIGlmKCAhJGZpbGVzICkgcmV0dXJuOwogICAgICAgICAgICBpZiggIWlzX2FycmF5KCRmaWxlcykgKSAkZmlsZXMgPSBbICRmaWxlcyBdOwogICAgICAgICAgICBmb3JlYWNoKCAkZmlsZXMgYXMgJGZpbGUgKSB7CiAgICAgICAgICAgICAgICAkc3RyID0gc3RyX3JlcGxhY2UoJ1xcJywnLycsJGZpbGUpOwogICAgICAgICAgICAgICAgJHVybCA9IHN0cl9yZXBsYWNlKCRjb25maWdbJ3Jvb3RfcGF0aCddLCRjb25maWdbJ3Jvb3RfdXJsJ10sJHN0cik7CiAgICAgICAgICAgICAgICAkb3V0W10gPSAkdXJsOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiggY291bnQoJG91dCkgPT0gMSApIHJldHVybiAkb3V0WzBdOwogICAgICAgICAgICByZXR1cm4gJG91dDsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9maWVsZF92YWx1ZSggJGtleSApCiAgICB7CiAgICAgICAgJGtleSA9IHRyaW0oJGtleSk7CiAgICAgICAgaWYoICEka2V5ICkgcmV0dXJuOwoKICAgICAgICBpZiggYXJyYXlfa2V5X2V4aXN0cyggJGtleSwgJHRoaXMtPl9kYXRhICkgKSByZXR1cm4gJHRoaXMtPl9kYXRhWyRrZXldOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfaHVtYW5fcmVhZGFibGVfZmllbGRfdmFsdWUoICRrZXkgKQogICAgewogICAgICAgICRrZXkgPSB0cmltKCRrZXkpOwogICAgICAgIGlmKCAhJGtleSApIHJldHVybjsKCiAgICAgICAgaWYoICFhcnJheV9rZXlfZXhpc3RzKCAka2V5LCAkdGhpcy0+X2RhdGEgKSApIHJldHVybjsKCiAgICAgICAgJHZhbCA9ICR0aGlzLT5fZGF0YVska2V5XTsKICAgICAgICBpZiggc3RhcnRzd2l0aCgka2V5LCdjZ2JmXycpICkgcmV0dXJuICR2YWw7CgogICAgICAgICRmaWVsZCA9ICR0aGlzLT5fZm9ybS0+Z2V0X2ZpZWxkKCAka2V5ICk7CiAgICAgICAgaWYoICEgJGZpZWxkLT5oYXNfbXVsdGlwbGVfb3B0aW9ucygpICkgcmV0dXJuICR2YWw7CgogICAgICAgIGlmKCAhaXNfYXJyYXkoJHZhbCkgKSB7CiAgICAgICAgICAgICRvcHQgPSAkZmllbGQtPmdldF9vcHRpb25fYnlfdmFsdWUoICR2YWwgKTsKICAgICAgICAgICAgaWYoICEkb3B0ICkgcmV0dXJuOwogICAgICAgICAgICByZXR1cm4gJG9wdC0+aHI7CiAgICAgICAgfQoKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgZm9yZWFjaCggJHZhbCBhcyAkb25lICkgewogICAgICAgICAgICAkb3B0ID0gJGZpZWxkLT5nZXRfb3B0aW9uX2J5X3ZhbHVlKCAkb25lICk7CiAgICAgICAgICAgIGlmKCAhJG9wdCApIGNvbnRpbnVlOwogICAgICAgICAgICAkb3V0W10gPSAkb3B0LT5ocjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGFzX2FycmF5KCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kYXRhOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.FormScanner.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgpjbGFzcyBGb3JtU2Nhbm5lciBpbXBsZW1lbnRzIElGb3JtU2Nhbm5lcgp7CiAgICBjb25zdCBDQVBUQ0hBX0FUVFJJQlVURSA9ICdkYXRhLWNnYmYtY2FwdGNoYSc7CgogICAgcHJpdmF0ZSAkX2h0bWw7CiAgICBwcml2YXRlICRfZm9ybXMgPSBbXTsKICAgIHByaXZhdGUgJF9pbnB1dHMgPSBbXTsKICAgIHByaXZhdGUgJF9sYWJlbHMgPSBbXTsKICAgIHByaXZhdGUgJF9oYXNfY2FwdGNoYSA9IGZhbHNlOwogICAgcHJpdmF0ZSAkX2Vycm9yczsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoICRodG1sX2NvbnRlbnRzICkKICAgIHsKICAgICAgICAkaHRtbF9jb250ZW50cyA9IHRyaW0oICRodG1sX2NvbnRlbnRzICk7CiAgICAgICAgaWYoICEkaHRtbF9jb250ZW50cyApIHRocm93IG5ldyBGb3JtU2Nhbm5lckVycm9yKCdlcnJfbm9jb250ZW50cycpOwogICAgICAgICR0aGlzLT5faHRtbCA9ICRodG1sX2NvbnRlbnRzOwogICAgICAgICR0aGlzLT5wYXJzZSgpOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRQYXJlbnRMYWJlbChcRE9NTm9kZSAkbm9kZSkKICAgIHsKICAgICAgICAkbm9kZSA9ICRub2RlLT5wYXJlbnROb2RlOwogICAgICAgIGlmKCAhJG5vZGUgKSByZXR1cm47CgogICAgICAgICRuYW1lID0gc3RydG9sb3dlcigkbm9kZS0+bm9kZU5hbWUpOwogICAgICAgIGlmKCAkbmFtZSAhPSAnbGFiZWwnICkgcmV0dXJuOwogICAgICAgIHJldHVybiAkbm9kZS0+bm9kZVZhbHVlOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBleHRyYWN0Rm9ybShcRE9NTm9kZSAkbm9kZSkKICAgIHsKICAgICAgICAkZmxkID0gbmV3IERPTUZvcm1GaWVsZCgkbm9kZSk7CiAgICAgICAgcmV0dXJuICRmbGQ7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGV4dHJhY3RJbnB1dChcRG9tTm9kZSAkbm9kZSkKICAgIHsKICAgICAgICAkZmxkID0gbmV3IERPTUlucHV0RmllbGQoJG5vZGUpOwogICAgICAgIHJldHVybiAkZmxkOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBleHRyYWN0QnV0dG9uKFxEb21Ob2RlICRub2RlKQogICAgewogICAgICAgICRmbGQgPSBuZXcgRE9NQnV0dG9uRmllbGQoJG5vZGUpOwogICAgICAgIHJldHVybiAkZmxkOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBleHRyYWN0VGV4dEFyZWEoXERvbU5vZGUgJG5vZGUpCiAgICB7CiAgICAgICAgJGZsZCA9IG5ldyBET01UZXh0QXJlYUZpZWxkKCRub2RlKTsKICAgICAgICByZXR1cm4gJGZsZDsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZXh0cmFjdFNlbGVjdChcRG9tTm9kZSAkbm9kZSkKICAgIHsKICAgICAgICAkZmxkID0gbmV3IERPTVNlbGVjdEZpZWxkKCAkbm9kZSApOwogICAgICAgIGZvcmVhY2goICRub2RlLT5jaGlsZE5vZGVzIGFzICRub2RlICkgewogICAgICAgICAgICAkbmFtZSA9IHN0cnRvbG93ZXIoICRub2RlLT5ub2RlTmFtZSApOwogICAgICAgICAgICBpZiggJG5hbWUgIT0gJ29wdGlvbicgKSBjb250aW51ZTsKICAgICAgICAgICAgJG9wdGlvbiA9IG5ldyBET01TZWxlY3RPcHRpb24oICRub2RlICk7CiAgICAgICAgICAgICRmbGQtPmFkZF9vcHRpb24oICRvcHRpb24gKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRmbGQ7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGV4dHJhY3RMYWJlbChcRE9NTm9kZSAkbm9kZSkKICAgIHsKICAgICAgICAkZmxkID0gbmV3IERPTUxhYmVsRmllbGQoICRub2RlICk7CiAgICAgICAgcmV0dXJuICRmbGQ7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGlzQ2FwdGNoYUNvbnRhaW5lcihcRE9NTm9kZSAkbm9kZSkKICAgIHsKICAgICAgICAvLyBsb29rIGZvciB0aGUgZGF0YS1jZ2JmLWNhcHRjaGEgYXR0cmlidXRlCiAgICAgICAgZm9yZWFjaCggJG5vZGUtPmF0dHJpYnV0ZXMgYXMgJGF0dHIgKSB7CiAgICAgICAgICAgIGlmKCAkYXR0ci0+bG9jYWxOYW1lID09IHNlbGY6OkNBUFRDSEFfQVRUUklCVVRFICkgcmV0dXJuIFRSVUU7CiAgICAgICAgfQogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBleHRyYWN0RmllbGRzKFxEb21Ob2RlICRwYXJlbnQpCiAgICB7CiAgICAgICAgZm9yZWFjaCggJHBhcmVudC0+Y2hpbGROb2RlcyBhcyAkbm9kZSkgewogICAgICAgICAgICAkbmFtZSA9IHN0cnRvbG93ZXIoJG5vZGUtPm5vZGVOYW1lKTsKICAgICAgICAgICAgc3dpdGNoKCAkbmFtZSApIHsKICAgICAgICAgICAgY2FzZSAnZGl2JzoKICAgICAgICAgICAgY2FzZSAncCc6CiAgICAgICAgICAgICAgICBpZiggJHRoaXMtPmlzQ2FwdGNoYUNvbnRhaW5lciggJG5vZGUgKSApICR0aGlzLT5faGFzX2NhcHRjaGEgPSB0cnVlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2Zvcm0nOgogICAgICAgICAgICAgICAgJHJlYyA9ICR0aGlzLT5leHRyYWN0Rm9ybSggJG5vZGUgKTsKICAgICAgICAgICAgICAgICR0aGlzLT5fZm9ybXNbXSA9ICRyZWM7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnaW5wdXQnOgogICAgICAgICAgICAgICAgJHJlYyA9ICR0aGlzLT5leHRyYWN0SW5wdXQoICRub2RlICk7CiAgICAgICAgICAgICAgICAkdGhpcy0+X2lucHV0c1tdID0gJHJlYzsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdidXR0b24nOgogICAgICAgICAgICAgICAgJHJlYyA9ICR0aGlzLT5leHRyYWN0QnV0dG9uKCAkbm9kZSApOwogICAgICAgICAgICAgICAgJHRoaXMtPl9pbnB1dHNbXSA9ICRyZWM7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAndGV4dGFyZWEnOgogICAgICAgICAgICAgICAgJHJlYyA9ICR0aGlzLT5leHRyYWN0VGV4dEFyZWEoICRub2RlICk7CiAgICAgICAgICAgICAgICAkdGhpcy0+X2lucHV0c1tdID0gJHJlYzsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdzZWxlY3QnOgogICAgICAgICAgICAgICAgJHJlYyA9ICR0aGlzLT5leHRyYWN0U2VsZWN0KCAkbm9kZSApOwogICAgICAgICAgICAgICAgJHRoaXMtPl9pbnB1dHNbXSA9ICRyZWM7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnbGFiZWwnOgogICAgICAgICAgICAgICAgJHJlYyA9ICR0aGlzLT5leHRyYWN0TGFiZWwoICRub2RlICk7CiAgICAgICAgICAgICAgICBpZiggJHJlYyApICR0aGlzLT5fbGFiZWxzW10gPSAkcmVjOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoICRub2RlLT5oYXNDaGlsZE5vZGVzKCkgKSAkdGhpcy0+ZXh0cmFjdEZpZWxkcyggJG5vZGUgKTsKICAgICAgICB9CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHNldExhYmVscyggYXJyYXkgJGlucHV0cywgYXJyYXkgJGxhYmVscyApCiAgICB7CiAgICAgICAgLy8gZ2l2ZW4gYW4gYXJyYXkgb2YgaW5wdXRzLCBhbmQgbGFiZWxzLi4gZm9yIGlucHV0cyB3aXRoIGlkJ3MuLiBzZXQgdGhlIGxhYmVsIGVsZW1lbnQKICAgICAgICBmb3JlYWNoKCAkaW5wdXRzIGFzICYkaW5wdXQgKSB7CiAgICAgICAgICAgIGlmKCAhKCRpZCA9ICRpbnB1dC0+Z2V0X2F0dHJpYnV0ZSgnaWQnKSkgKSBjb250aW51ZTsKICAgICAgICAgICAgZm9yZWFjaCggJGxhYmVscyBhcyAkbGFiZWwgKSB7CiAgICAgICAgICAgICAgICAkZm9yID0gJGxhYmVsLT5nZXRfYXR0cmlidXRlKCdmb3InKTsKICAgICAgICAgICAgICAgIGlmKCAkbGFiZWwtPmdldF9hdHRyaWJ1dGUoJ2ZvcicpID09ICRpZCApIHsKICAgICAgICAgICAgICAgICAgICAkaW5wdXQtPnNldF9sYWJlbCgkbGFiZWwtPmdldF92YWx1ZSgpKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJGlucHV0czsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gcGFyc2VfZXJyb3JzKCBhcnJheSAkZXJyb3JzID0gbnVsbCApCiAgICB7CiAgICAgICAgaWYoICFjb3VudCgkZXJyb3JzKSApIHJldHVybjsKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgZm9yZWFjaCggJGVycm9ycyBhcyAkb2JqICkgewogICAgICAgICAgICAkb3V0W10gPSBzcHJpbnRmKCJQQVJTRSBFUlJPUjogJXMgYXQgYWJvdXQgbGluZSAlZCBjb2x1bW4gJWQiLHRyaW0oJG9iai0+bWVzc2FnZSksJG9iai0+bGluZSwkb2JqLT5jb2x1bW4pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gcGFyc2UoKQogICAgewogICAgICAgIC8vIG5vdGU6IG1heSBuZWVkIHRvIHNldHVwIGFuIGVycm9yIGhhbmRsZXIgaGVyZSB0aGF0IHRocm93cyBleGNlcHRpb25zCiAgICAgICAgJGRvbSA9IG5ldyBcRG9tRG9jdW1lbnQoKTsKICAgICAgICAkb3JpZyA9IGluaV9nZXQoJ2Rpc3BsYXlfZXJyb3JzJyk7CiAgICAgICAgQGluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywwKTsKICAgICAgICBsaWJ4bWxfdXNlX2ludGVybmFsX2Vycm9ycyh0cnVlKTsKICAgICAgICAkZG9tLT5sb2FkSFRNTCggJHRoaXMtPl9odG1sICk7CiAgICAgICAgJHRoaXMtPl9lcnJvcnMgPSAkdGhpcy0+cGFyc2VfZXJyb3JzKGxpYnhtbF9nZXRfZXJyb3JzKCkpOwogICAgICAgICR0aGlzLT5leHRyYWN0RmllbGRzKCAkZG9tICk7CiAgICAgICAgJHRoaXMtPl9pbnB1dHMgPSAkdGhpcy0+c2V0TGFiZWxzKCAkdGhpcy0+X2lucHV0cywgJHRoaXMtPl9sYWJlbHMgKTsKICAgICAgICBAaW5pX3NldCgnZGlzcGxheV9lcnJvcnMnLCRvcmlnKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Vycm9ycygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZXJyb3JzOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZm9ybXMoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2Zvcm1zOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmllbGRzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9pbnB1dHM7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGhhc19jYXB0Y2hhKCkKICAgIHsKICAgICAgICAvLyBub3RlLi4uIG9ubHkgZGV0ZWN0cyBpZiBjYXB0Y2hhIGlzIGRldGVjdGVkIGFjcm9zcyB0aGUgd2hvbGUgdGVtcGxhdGUuCiAgICAgICAgLy8gbm90IGluZGl2aWR1YWwgZm9ybXMgaWYgdGhlcmUgYXJlIG11bHRpcGxlIGZvcm1zICh3aGljaCBpcyBpbnZhbGlkIGFueXdheXMpCiAgICAgICAgcmV0dXJuICR0aGlzLT5faGFzX2NhcHRjaGE7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.ScannedTemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgovLyB0aGlzIGNsYXNzIGhhbmRsZXMgdGhlIG1ldGFkYXRhIGNvbWluZyBmcm9tIHRoZSB0ZW1wbGF0ZSB0ZXN0ZXIgYW5kIHRoZSB0ZW1wbGFlIHNjYW5uZXIKY2xhc3MgU2Nhbm5lZFRlbXBsYXRlCnsKICAgIHByaXZhdGUgJF9tZXNzYWdlczsKICAgIHByaXZhdGUgJF9maWVsZHM7CiAgICBwcml2YXRlICRfaGFzX2NhcHRjaGE7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCBJRm9ybVNjYW5uZXIgJHNjYW5uZXIsIElGb3JtVGVzdGVyICR0ZXN0ZXIgKQogICAgewogICAgICAgICRtZXNzYWdlcyA9ICRzY2FubmVyLT5nZXRfZXJyb3JzKCk7CiAgICAgICAgaWYoICFjb3VudCgkbWVzc2FnZXMpICkgJG1lc3NhZ2VzID0gW107CiAgICAgICAgJG1lc3NhZ2VzMiA9ICR0ZXN0ZXItPmdldF9tZXNzYWdlcygpOwogICAgICAgIGlmKCAhY291bnQoJG1lc3NhZ2VzMikgKSAkbWVzc2FnZXMyID0gW107CiAgICAgICAgJHRoaXMtPl9tZXNzYWdlcyA9IGFycmF5X21lcmdlKCAkbWVzc2FnZXMsICRtZXNzYWdlczIgKTsKCiAgICAgICAgJGRvbV9maWVsZHMgPSAkc2Nhbm5lci0+Z2V0X2ZpZWxkcygpOwogICAgICAgICRjb252ZXJ0ZXIgPSBuZXcgRm9ybUZpZWxkQ29udmVydGVyKCAkZG9tX2ZpZWxkcyApOwogICAgICAgICR0aGlzLT5fZmllbGRzID0gJGNvbnZlcnRlci0+Z2V0X2ZpZWxkcygpOwogICAgICAgICR0aGlzLT5faGFzX2NhcHRjaGEgPSAkc2Nhbm5lci0+aGFzX2NhcHRjaGEoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X21lc3NhZ2VzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tZXNzYWdlczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpZWxkcygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZmllbGRzOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYXNfY2FwdGNoYSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5faGFzX2NhcHRjaGE7CiAgICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/lib/class.TemplateFormScanner.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgpjbGFzcyBUZW1wbGF0ZUZvcm1TY2FubmVyIGV4dGVuZHMgRm9ybVNjYW5uZXIKewogICAgcHJpdmF0ZSAkX3RwbF9vYmo7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCBcU21hcnR5X0NNUyAkc21hcnR5LCBcQ21zTGF5b3V0VGVtcGxhdGUgJHRlbXBsYXRlICkKICAgIHsKICAgICAgICAkdGhpcy0+X3RwbF9vYmogPSAkdGVtcGxhdGU7CgogICAgICAgICRodG1sID0gJHNtYXJ0eS0+ZmV0Y2goJ2Ntc190ZW1wbGF0ZTonLiR0ZW1wbGF0ZS0+Z2V0X25hbWUoKSApOwogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoICRodG1sICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF90ZW1wbGF0ZV9jb250ZW50cygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdHBsX29iai0+Z2V0X2NvbnRlbnQoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpZWxkcygpCiAgICB7CiAgICAgICAgJGZpZWxkcyA9IHBhcmVudDo6Z2V0X2ZpZWxkcygpOwogICAgICAgICRvdXQgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICAgaWYoICRmaWVsZC0+Z2V0X2F0dHJpYnV0ZSgnbmFtZScpID09ICdtYWN0JyApIGNvbnRpbnVlOwogICAgICAgICAgICBpZiggJGZpZWxkLT5nZXRfYXR0cmlidXRlKCduYW1lJykgPT0gQ01TX1NFQ1VSRV9QQVJBTV9OQU1FICkgY29udGludWU7CiAgICAgICAgICAgICRvdXRbXSA9ICRmaWVsZDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.TemplateFormTester.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgpjbGFzcyBUZW1wbGF0ZUZvcm1UZXN0ZXIgZXh0ZW5kcyBGb3JtVGVzdGVyCnsKICAgIHByaXZhdGUgJF90cGxfdGV4dDsKICAgIHByaXZhdGUgJF9tZXNzYWdlczsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoIFRlbXBsYXRlRm9ybVNjYW5uZXIgJHNjYW5uZXIsIGFycmF5ICR0ZXN0cyA9IG51bGwgKQogICAgewogICAgICAgICR0aGlzLT5fdHBsX3RleHQgPSAkc2Nhbm5lci0+Z2V0X3RlbXBsYXRlX2NvbnRlbnRzKCk7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCggJHNjYW5uZXIsICR0ZXN0cyApOwogICAgICAgICR0aGlzLT50ZXN0KCk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHRlc3QoKQogICAgewogICAgICAgIC8vIGZyb20gaGVyZSBkb3duIGFjY3VtdWxhdGUgbWVzc2FnZXMgdXNpbmcgdGhlIHZhcmlvdXMgdGVzdHMKICAgICAgICAkdGVzdHMgPSAkdGhpcy0+Z2V0X3Rlc3RzKCk7CiAgICAgICAgaWYoICFjb3VudCgkdGVzdHMpICkgcmV0dXJuOwoKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgZm9yZWFjaCggJHRlc3RzIGFzICR0ZXN0ICkgewogICAgICAgICAgICBpZiggJHRlc3QgaW5zdGFuY2VvZiBcQ0dCZXR0ZXJGb3Jtc1xGb3JtVmFsaWRhdG9yXFRlbXBsYXRlVGVzdGVyVGVzdCApIHsKICAgICAgICAgICAgICAgICRtZXNzYWdlcyA9ICR0ZXN0LT50ZXN0X3RlbXBsYXRlKCAkdGhpcy0+X3RwbF90ZXh0ICk7CiAgICAgICAgICAgICAgICBpZiggJG1lc3NhZ2VzICkgJG91dCA9IGFycmF5X21lcmdlKCAkb3V0LCAkbWVzc2FnZXMgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiggJHRlc3QgaW5zdGFuY2VvZiBcQ0dCZXR0ZXJGb3Jtc1xGb3JtVmFsaWRhdG9yXEZvcm1UZXN0ZXJUZXN0ICkgewogICAgICAgICAgICAgICAgJG1lc3NhZ2VzID0gJHRlc3QtPnRlc3RfZm9ybSggJHRoaXMtPmdldF9mb3JtcygpLCAkdGhpcy0+Z2V0X2lucHV0cygpICk7CiAgICAgICAgICAgICAgICBpZiggJG1lc3NhZ2VzICkgJG91dCA9IGFycmF5X21lcmdlKCAkb3V0LCAkbWVzc2FnZXMgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkdGhpcy0+X21lc3NhZ2VzID0gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X21lc3NhZ2VzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tZXNzYWdlczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ZhbGlkX2ZpZWxkcygpCiAgICB7CiAgICAgICAgLy8gcmV0dXJuIG9ubHkgZmllbGRzIHRoYXQgaGF2ZSBuYW1lcywgYW5kIG9ubHkgdGhlIGxhc3Qgb2NjdXJhbmNlIG9mIHRoYXQgbmFtZS4KICAgICAgICAkaW5wdXRzID0gJHRoaXMtPmdldF9pbnB1dHMoKTsKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgZm9yZWFjaCggJGlucHV0cyBhcyAkZmllbGQgKSB7CiAgICAgICAgICAgICRuYW1lID0gJGZpZWxkLT5nZXRfYXR0cmlidXRlKCduYW1lJyk7CiAgICAgICAgICAgIGlmKCAhJG5hbWUgKSBjb250aW51ZTsKICAgICAgICAgICAgJG91dFskbmFtZV0gPSAkZmllbGQ7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.Translator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgpjbGFzcyBUcmFuc2xhdG9yCnsKICAgIHByaXZhdGUgJF9tb2Q7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFxDR0JldHRlckZvcm1zICRtb2QpCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2xhdGUoLyogdmFyIGFyZ3MgKi8pCiAgICB7CiAgICAgICAgJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7CiAgICAgICAgaWYoIGlzX2FycmF5KCRhcmdzKSAmJiBjb3VudCgkYXJncykgPT0gMSAmJiBpc19hcnJheSgkYXJnc1swXSkgKSAkYXJncyA9ICRhcmdzWzBdOwogICAgICAgIHJldHVybiBjYWxsX3VzZXJfZnVuY19hcnJheSggWyAkdGhpcy0+X21vZCwgJ0xhbmcnXSwgJGFyZ3MgKTsKICAgIH0KfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgpmaW5hbCBjbGFzcyB1dGlscwp7CiAgICBwcml2YXRlIHN0YXRpYyAkX3RyYW5zbGF0b3I7CiAgICBwcml2YXRlIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkge30KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNldF90cmFuc2xhdG9yKFRyYW5zbGF0b3IgJHRyKQogICAgewogICAgICAgIHNlbGY6OiRfdHJhbnNsYXRvciA9ICR0cjsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiB0cigvKiB2YXIgYXJncyAqLykKICAgIHsKICAgICAgICAkYXJncyA9IGZ1bmNfZ2V0X2FyZ3MoKTsKICAgICAgICBpZiggaXNfYXJyYXkoJGFyZ3MpICYmIGNvdW50KCRhcmdzKSA9PSAxICYmIGlzX2FycmF5KCRhcmdzWzBdKSApICRhcmdzID0gJGFyZ3NbMF07CiAgICAgICAgcmV0dXJuIHNlbGY6OiRfdHJhbnNsYXRvci0+dHJhbnNsYXRlKCAkYXJncyApOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gbWtkaXIoJGRpcikKICAgIHsKICAgICAgICBpZiggIXNlbGY6OmlzX2Ntc21zX3JlbGF0aXZlKCAkZGlyICkgKSB0aHJvdyBuZXcgU2VjdXJpdHlFeGNlcHRpb24oc2VsZjo6dHIoJ2Vycl9zZWN1cml0eV9ta2Rpcl9ub3RyZWxhdGl2ZScpKTsKCiAgICAgICAgaWYoIGlzX2ZpbGUoICRkaXIgKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oc2VsZjo6dHIoJ2Vycl9zZWN1cml0eV9ta2Rpcl9maWxlZXhpc3RzJykpOwogICAgICAgIGlmKCAhaXNfZGlyKCAkZGlyICkgKSB7CiAgICAgICAgICAgICRyZXMgPSBta2RpciggJGRpciApOwogICAgICAgICAgICBpZiggISRyZXMgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdTWVNURU0gRVJST1I6IENvdWxkIG5vdCBjcmVhdGUgZGlyZWN0b3J5ICcuJGRpcik7CiAgICAgICAgfQogICAgICAgIGlmKCAhaXNfZmlsZSgkZGlyLicvaW5kZXguaHRtbCcpICYmICFpc19maWxlKCRkaXIuJy9pbmRleC5waHAnKSApIGZpbGVfcHV0X2NvbnRlbnRzKCAkZGlyLicvaW5kZXguaHRtbCcsJzwhLS0gRFVNTVkgSFRNTCAtLT4nKTsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBta2Rpcl9wYXJlbnQoJGRpcikKICAgIHsKICAgICAgICAkcGFyZW50ID0gZGlybmFtZSgkZGlyKTsKICAgICAgICBpZiggIWlzX2RpcigkcGFyZW50KSApIHsKICAgICAgICAgICAgc2VsZjo6bWtkaXJfcGFyZW50KCRwYXJlbnQpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmKCAhaXNfd3JpdGFibGUoICRwYXJlbnQgKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ1NZU1RFTSBFUlJPUjogQ291bGQgbm90IGNyZWF0ZSBkaXJlY3RvcnkgaW4gJy4kcGFyZW50KTsKICAgICAgICB9CiAgICAgICAgc2VsZjo6bWtkaXIoICRkaXIgKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIG1rZGlycigkZGlyKQogICAgewogICAgICAgIGlmKCAhc2VsZjo6aXNfY21zbXNfcmVsYXRpdmUoICRkaXIgKSApIHRocm93IG5ldyBTZWN1cml0eUV4Y2VwdGlvbihzZWxmOjp0cignZXJyX3NlY3VyaXR5X21rZGlyX25vdHJlbGF0aXZlJykpOwogICAgICAgIGlmKCBpc19maWxlKCAkZGlyICkgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKHNlbGY6OnRyKCdlcnJfc2VjdXJpdHlfbWtkaXJfZmlsZWV4aXN0cycpKTsKICAgICAgICBzZWxmOjpta2Rpcl9wYXJlbnQoICRkaXIgKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGxpc3Rfc3VpdGFibGVfdGVtcGxhdGVzKCkKICAgIHsKICAgICAgICAvLyBnZXQgdGhlIGdlbmVyaWMgdGVtcGxhdGUgdHlwZQogICAgICAgICR0eXBlID0gXENtc0xheW91dFRlbXBsYXRlVHlwZTo6bG9hZCgnQ0dCZXR0ZXJGb3Jtczo6Rm9ybScpOwogICAgICAgICRxcnkgPSBuZXcgXENtc0xheW91dFRlbXBsYXRlUXVlcnkoWyd0OicuJHR5cGUtPmdldF9pZCgpXSk7CiAgICAgICAgJHRtcCA9ICRxcnktPkdldE1hdGNoZXMoKTsKICAgICAgICBpZiggIWNvdW50KCR0bXApICkgcmV0dXJuOwoKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgZm9yZWFjaCggJHRtcCBhcyAkb2JqICkgewogICAgICAgICAgICAkb3V0WyRvYmotPmdldF9pZCgpXSA9ICRvYmotPmdldF9uYW1lKCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gbGlzdF92YWxpZGF0aW9uX2VkaXRvcnMoYXJyYXkgJGVkaXRvcnMpCiAgICB7CiAgICAgICAgJG91dCA9IFtdOwogICAgICAgIGZvcmVhY2goICRlZGl0b3JzIGFzICRjbGFzcyA9PiAkb25lICkgewogICAgICAgICAgICBpZiggISAkb25lIGluc3RhbmNlb2YgRmllbGRWYWxpZGF0b3JzXFZhbGlkYXRpb25FZGl0b3IgKSBjb250aW51ZTsKICAgICAgICAgICAgJG91dFskY2xhc3NdID0gJG9uZS0+Z2V0X25hbWUoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBsaXN0X2Rpc3Bvc2l0aW9uX2VkaXRvcnMoYXJyYXkgJGRpc3Bvc2l0aW9ucykKICAgIHsKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgZm9yZWFjaCggJGRpc3Bvc2l0aW9ucyBhcyAkY2xhc3MgPT4gJG9uZSApIHsKICAgICAgICAgICAgaWYoICEgJG9uZSBpbnN0YW5jZW9mIERpc3Bvc2l0aW9uc1xEaXNwb3NpdGlvbkVkaXRvciApIGNvbnRpbnVlOwogICAgICAgICAgICAkb3V0WyRjbGFzc10gPSAkb25lLT5nZXRfbmFtZSgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHN0b3JlX29iamVjdCggJGRhdGEsICRrZXkgPSBudWxsICkKICAgIHsKICAgICAgICBpZiggISRrZXkgKSAka2V5ID0gXGNnZV91dGlsczo6Y3JlYXRlX2d1aWQoKTsKICAgICAgICAkX1NFU1NJT05bJGtleV0gPSBzZXJpYWxpemUoJGRhdGEpOwogICAgICAgIHJldHVybiAka2V5OwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcmV0cmlldmVfb2JqZWN0KCAka2V5ICkKICAgIHsKICAgICAgICAkb2JqID0gbnVsbDsKICAgICAgICBpZiggaXNzZXQoJF9TRVNTSU9OWyRrZXldKSApICRvYmogPSB1bnNlcmlhbGl6ZSgkX1NFU1NJT05bJGtleV0pOwogICAgICAgIHJldHVybiAkb2JqOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcmVtb3ZlX3N0b3JlZF9vYmplY3QoICRrZXkgKQogICAgewogICAgICAgIGlmKCBpc3NldCgkX1NFU1NJT05bJGtleV0pICkgdW5zZXQoJF9TRVNTSU9OWyRrZXldKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGlzX2Ntc21zX3JlbGF0aXZlKCAkZmlsZSApCiAgICB7CiAgICAgICAgJGZpbGUgPSB0cmltKCRmaWxlKTsKICAgICAgICBpZiggISRmaWxlICkgcmV0dXJuOwogICAgICAgICRjb25maWcgPSBcY21zX2NvbmZpZzo6Z2V0X2luc3RhbmNlKCk7CgogICAgICAgIGlmKCBzdGFydHN3aXRoKCAkZmlsZSwgJGNvbmZpZ1sncm9vdF9wYXRoJ10gKSApIHJldHVybiBUUlVFOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2FuX3dyaXRlX2ZpbGUoICRmaWxlICkKICAgIHsKICAgICAgICAkZmlsZSA9IHRyaW0oJGZpbGUpOwogICAgICAgIGlmKCAhJGZpbGUgKSByZXR1cm47CgogICAgICAgIGlmKCBpc19maWxlKCRmaWxlKSApIHsKICAgICAgICAgICAgaWYoIGlzX3dyaXRhYmxlKCAkZmlsZSkgKSByZXR1cm4gVFJVRTsKICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgIH0KICAgICAgICAkZGlyID0gZGlybmFtZSgkZmlsZSk7CiAgICAgICAgaWYoICFpc19kaXIoICRkaXIpICkgcmV0dXJuIEZBTFNFOwogICAgICAgIGlmKCAhaXNfd3JpdGFibGUoICRkaXIgKSApIHJldHVybiBGQUxTRTsKICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHByb2Nlc3NfdGVtcGxhdGUoICR0ZW1wbGF0ZV90ZXh0LCBGb3JtICRmb3JtLCBGb3JtUmVzcG9uc2UgJHJlc3BvbnNlICkKICAgIHsKICAgICAgICAkdGVtcGxhdGVfdGV4dCA9IHRyaW0oJHRlbXBsYXRlX3RleHQpOwogICAgICAgIGlmKCAhJHRlbXBsYXRlX3RleHQgKSByZXR1cm47CgogICAgICAgICRzbWFydHkgPSBcY21zX3V0aWxzOjpnZXRfc21hcnR5KCk7CiAgICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX0NHQkVUVEVSRk9STVMpOwogICAgICAgICR0cGwgPSAkc21hcnR5LT5DcmVhdGVUZW1wbGF0ZSgnc3RyaW5nOicuJHRlbXBsYXRlX3RleHQpOwogICAgICAgICR0cGwtPmFzc2lnbignbW9kJywkbW9kKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2Zvcm0nLCRmb3JtKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3Jlc3BvbnNlJywkcmVzcG9uc2UpOwogICAgICAgICR0cGwtPmFzc2lnbignRU9MJyxQSFBfRU9MKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ0xGJywiXG4iKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ1RBQicsIlx0Iik7CiAgICAgICAgZm9yZWFjaCggJHJlc3BvbnNlLT5saXN0X2ZpZWxkcygpIGFzICRmaWVsZF9uYW1lICkgewogICAgICAgICAgICBpZiggJHJlc3BvbnNlLT5pc19maWxlX2ZpZWxkKCAkZmllbGRfbmFtZSkgKSB7CiAgICAgICAgICAgICAgICAkdmFsID0gJHJlc3BvbnNlLT5nZXRfZmlsZV9hc191cmwoICRmaWVsZF9uYW1lICk7CiAgICAgICAgICAgICAgICAkdHBsLT5hc3NpZ24oJGZpZWxkX25hbWUsJHZhbCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkdHBsLT5hc3NpZ24oJGZpZWxkX25hbWUsJHJlc3BvbnNlLT5nZXRfaHVtYW5fcmVhZGFibGVfZmllbGRfdmFsdWUoJGZpZWxkX25hbWUpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJHRwbC0+ZmV0Y2goKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9mb3JtX3RwbF9oZWxwKCBGb3JtICRmb3JtICkKICAgIHsKICAgICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfQ0dCRVRURVJGT1JNUyk7CiAgICAgICAgJGZpZWxkX25hbWVzID0gJGZvcm0tPmdldF9maWVsZG5hbWVzKCk7CiAgICAgICAgJHZhcnMgPSBbXTsKCiAgICAgICAgZm9yZWFjaCggJGZpZWxkX25hbWVzIGFzICRuYW1lICkgewogICAgICAgICAgICAkZmllbGQgPSAkZm9ybS0+Z2V0X2ZpZWxkKCRuYW1lKTsKICAgICAgICAgICAgJG9iaiA9IG5ldyBcU3RkQ2xhc3M7CiAgICAgICAgICAgICRvYmotPmtleSA9ICRuYW1lOwogICAgICAgICAgICAkb2JqLT50eXBlID0gJGZpZWxkLT5wcmltaXRpdmU7CiAgICAgICAgICAgIGlmKCAkZmllbGQtPm11bHRpcGxlICkgJG9iai0+dHlwZSAuPSAnW10nOwogICAgICAgICAgICAkdmFyc1tdID0gJG9iajsKICAgICAgICB9CgogICAgICAgICRvYmogPSBuZXcgXFN0ZENsYXNzOwogICAgICAgICRvYmotPmtleSA9ICdjZ2JmX3N1Ym1pdF90aW1lJzsKICAgICAgICAkb2JqLT50eXBlID0gJ2ludCc7CiAgICAgICAgJG9iai0+ZGVzYyA9ICRtb2QtPkxhbmcoJ3ZhcmhlbHBfY2diZl9zdWJtaXRfdGltZScpOwogICAgICAgICR2YXJzW10gPSAkb2JqOwoKICAgICAgICAkb2JqID0gbmV3IFxTdGRDbGFzczsKICAgICAgICAkb2JqLT5rZXkgPSAnY2diZl9zdWJtaXRfaXAnOwogICAgICAgICRvYmotPnR5cGUgPSAnc3RyaW5nJzsKICAgICAgICAkb2JqLT5kZXNjID0gJG1vZC0+TGFuZygndmFyaGVscF9jZ2JmX3N1Ym1pdF9pcCcpOwogICAgICAgICR2YXJzW10gPSAkb2JqOwoKICAgICAgICAkb2JqID0gbmV3IFxTdGRDbGFzczsKICAgICAgICAkb2JqLT5rZXkgPSAnY2diZl92ZXJzaW9uJzsKICAgICAgICAkb2JqLT50eXBlID0gJ3N0cmluZyc7CiAgICAgICAgJG9iai0+ZGVzYyA9ICRtb2QtPkxhbmcoJ3ZhcmhlbHBfY2diZl92ZXJzaW9uJyk7CgogICAgICAgICRvYmogPSBuZXcgXFN0ZENsYXNzOwogICAgICAgICRvYmotPmtleSA9ICdjZ2JmX2Zvcm1uYW1lJzsKICAgICAgICAkb2JqLT50eXBlID0gJ3N0cmluZyc7CiAgICAgICAgJG9iai0+ZGVzYyA9ICRtb2QtPkxhbmcoJ3ZhcmhlbHBfY2diZl9mb3JtbmFtZScpOwogICAgICAgICR2YXJzW10gPSAkb2JqOwoKICAgICAgICAkb2JqID0gbmV3IFxTdGRDbGFzczsKICAgICAgICAkb2JqLT5rZXkgPSAnY2diZl9mb3JtZGVzbic7CiAgICAgICAgJG9iai0+dHlwZSA9ICdzdHJpbmcnOwogICAgICAgICRvYmotPmRlc2MgPSAkbW9kLT5MYW5nKCd2YXJoZWxwX2NnYmZfZm9ybWRlc2MnKTsKICAgICAgICAkdmFyc1tdID0gJG9iajsKCiAgICAgICAgJG9iaiA9IG5ldyBcU3RkQ2xhc3M7CiAgICAgICAgJG9iai0+a2V5ID0gJ2NnYmZfcmVxdWVzdGlkJzsKICAgICAgICAkb2JqLT50eXBlID0gJ3N0cmluZyc7CiAgICAgICAgJG9iai0+ZGVzYyA9ICRtb2QtPkxhbmcoJ3ZhcmhlbHBfY2diZl9yZXF1ZXN0aWQnKTsKICAgICAgICAkdmFyc1tdID0gJG9iajsKCiAgICAgICAgJG9iaiA9IG5ldyBcU3RkQ2xhc3M7CiAgICAgICAgJG9iai0+a2V5ID0gJ0VPTCc7CiAgICAgICAgJG9iai0+dHlwZSA9ICdzdHJpbmcnOwogICAgICAgICRvYmotPmRlc2MgPSAkbW9kLT5MYW5nKCd2YXJoZWxwX2NnYmZfRU9MJyk7CiAgICAgICAgJHZhcnNbXSA9ICRvYmo7CgogICAgICAgICRvYmogPSBuZXcgXFN0ZENsYXNzOwogICAgICAgICRvYmotPmtleSA9ICdMRic7CiAgICAgICAgJG9iai0+dHlwZSA9ICdzdHJpbmcnOwogICAgICAgICRvYmotPmRlc2MgPSAkbW9kLT5MYW5nKCd2YXJoZWxwX2NnYmZfTEYnKTsKICAgICAgICAkdmFyc1tdID0gJG9iajsKCiAgICAgICAgJG9iaiA9IG5ldyBcU3RkQ2xhc3M7CiAgICAgICAgJG9iai0+a2V5ID0gJ0VPTCc7CiAgICAgICAgJG9iai0+dHlwZSA9ICdzdHJpbmcnOwogICAgICAgICRvYmotPmRlc2MgPSAkbW9kLT5MYW5nKCd2YXJoZWxwX2NnYmZfVEFCJyk7CiAgICAgICAgJHZhcnNbXSA9ICRvYmo7CgogICAgICAgICR0cGwgPSAkbW9kLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fdmFyaGVscC50cGwnKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3ZhcnMnLCR2YXJzKTsKICAgICAgICByZXR1cm4gJHRwbC0+ZmV0Y2goKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X21haWxlciggRm9ybSAkZm9ybSApCiAgICB7CiAgICAgICAgJG1haWxlciA9IG5ldyBcY21zX21haWxlcjsKICAgICAgICAkbWFpbGVyLT5Jc0hUTUwoVFJVRSk7CiAgICAgICAgJGFkZHIgPSAkZm9ybS0+ZW1haWxfZnJvbV9hZGRyOwogICAgICAgICRuYW1lID0gJGZvcm0tPmVtYWlsX2Zyb21fbmFtZTsKICAgICAgICBpZiggJGFkZHIgKSB7CiAgICAgICAgICAgICRtYWlsZXItPkFkZFJlcGx5VG8oICRhZGRyLCAkbmFtZSApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG1haWxlcjsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/class.ValidationEditorHelperProxy.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgpjbGFzcyBWYWxpZGF0aW9uRWRpdG9ySGVscGVyUHJveHkKewogICAgcHJpdmF0ZSAkX21vZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoIFxDR0JldHRlckZvcm1zICRtb2QgKQogICAgewogICAgICAgICR0aGlzLT5fbW9kID0gJG1vZDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY2FuY2VsKCAkZm9ybV9ndWlkICkKICAgIHsKICAgICAgICBpZiggISRmb3JtX2d1aWQgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdObyBmb3JtX2d1aWQgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgJHRoaXMtPl9tb2QtPlNldE1lc3NhZ2UoJHRoaXMtPl9tb2QtPkxhbmcoJ21zZ19jYW5jZWxsZWQnKSk7CiAgICAgICAgJHRoaXMtPl9tb2QtPlJlZGlyZWN0KCdtMV8nLCdhZG1pbl9lZGl0X2Zvcm0nLCAnJywgWydmb3JtX2d1aWQnPT4kZm9ybV9ndWlkLCAnY2dfYWN0aXZldGFiJz0+J3ZhbGlkYXRpb24nXSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBmaW5pc2goIEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsIEZpZWxkVmFsaWRhdG9yc1xJVmFsaWRhdGlvbiAkdmFsaWRhdG9yLCAkZ3VpZCApCiAgICB7CiAgICAgICAgaWYoICEkZm9ybV9ndWlkICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignTm8gZm9ybV9ndWlkIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICRmb3JtX2d1aWQgPSBcQ0dCZXR0ZXJGb3Jtc1x1dGlsczo6c3RvcmVfb2JqZWN0KCAkZm9ybSwgJGZvcm1fZ3VpZCApOwogICAgICAgICRndWlkID0gXENHQmV0dGVyRm9ybXNcdXRpbHM6OnN0b3JlX29iamVjdCggJHZhbGlkYXRvciwgJGd1aWQgKTsKICAgICAgICAkdGhpcy0+X21vZC0+U2V0TWVzc2FnZSgkdGhpcy0+X21vZC0+TGFuZygnbXNnX3ZhbGlkYXRpb25fc2F2ZWQnKSk7CiAgICAgICAgJHRoaXMtPl9tb2QtPlJlZGlyZWN0KCAnbTFfJywgJ2FkbWluX2VkaXRfZm9ybScsICcnLCBbICdmb3JtX2d1aWQnPT4kZm9ybV9ndWlkLCAndmFsaWRhdG9yX2d1aWQnPT4kZ3VpZCwgJ2NnX2FjdGl2ZXRhYic9Pid2YWxpZGF0aW9uJyBdICk7CiAgICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/lib/class.ValidationScanner.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CnVzZSBcQ0dCZXR0ZXJGb3Jtc1xGaWVsZFZhbGlkYXRvcnM7CgovLyBzY2FucyBhIGZvcm0gYW5kIGZpZWxkcywgYW5kIGRldGVybWluZXMgYSBtaW5pbWFsIGxpc3Qgb2YgdmFsaWRhdGlvbnMuCmNsYXNzIFZhbGlkYXRpb25TY2FubmVyCnsKICAgIHByaXZhdGUgJF9mb3JtOwogICAgcHJpdmF0ZSAkX2ZpZWxkczsKICAgIHByaXZhdGUgJF9jYXB0Y2hhX3Byb3ZpZGVyOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggXENHQmV0dGVyRm9ybXMgJG1vZCwgRm9ybSAkZm9ybSwgYXJyYXkgJGZpZWxkcyApCiAgICB7CiAgICAgICAgJHRoaXMtPl9mb3JtID0gJGZvcm07CiAgICAgICAgJHRoaXMtPl9maWVsZHMgPSAkZmllbGRzOwogICAgICAgICR0aGlzLT5fY2FwdGNoYV9wcm92aWRlciA9ICRtb2QtPmdldF9jYXB0Y2hhX3Byb3ZpZGVyKCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF92YWxpZGF0aW9ucygpCiAgICB7CiAgICAgICAgJG91dCA9IFtdOwoKICAgICAgICAkb3V0W10gPSBuZXcgRmllbGRWYWxpZGF0b3JzXEh0bWxEZXRlY3Rpb25WYWxpZGF0aW9uKCk7CiAgICAgICAgJG91dFtdID0gbmV3IEZpZWxkVmFsaWRhdG9yc1xTZWxlY3RGaWVsZFZhbGlkYXRpb24oKTsKICAgICAgICBpZiggJHRoaXMtPl9mb3JtLT5oYXNfY2FwdGNoYSAmJiAkdGhpcy0+X2NhcHRjaGFfcHJvdmlkZXIgKSAkb3V0W10gPSBuZXcgRmllbGRWYWxpZGF0b3JzXENhcHRjaGFWYWxpZGF0b3JQcm94eSggJHRoaXMtPl9jYXB0Y2hhX3Byb3ZpZGVyICk7CiAgICAgICAgaWYoICR0aGlzLT5oYXNfcmVxdWlyZWRfZmllbGRzKCkgKSAkb3V0W10gPSBuZXcgRmllbGRWYWxpZGF0b3JzXFJlcXVpcmVkRmllbGRWYWxpZGF0aW9uKCk7CiAgICAgICAgaWYoICR0aGlzLT5oYXNfZmlsZV9maWVsZHMoKSApICRvdXRbXSA9IG5ldyBGaWVsZFZhbGlkYXRvcnNcRmlsZVZhbGlkYXRvcigpOwogICAgICAgIGlmKCAkdGhpcy0+aGFzX2RhdGVfZmllbGRzKCkgKSAkb3V0W10gPSBuZXcgRmllbGRWYWxpZGF0b3JzXERhdGVQcmltaXRpdmVWYWxpZGF0aW9uKCk7CiAgICAgICAgaWYoICR0aGlzLT5oYXNfZW1haWxfZmllbGRzKCkgKSAkb3V0W10gPSBuZXcgRmllbGRWYWxpZGF0b3JzXEVtYWlsUHJpbWl0aXZlVmFsaWRhdGlvbigpOwoKICAgICAgICAvLyBub3cgcHJvY2VzcyBlYWNoIGZpZWxkIGluZGl2aWR1YWxseS4KICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X2ZpZWxkcyBhcyAkZmllbGQgKSB7CiAgICAgICAgICAgIGlmKCAkZmllbGQtPm5vdmFsaWRhdGUgKSBjb250aW51ZTsKICAgICAgICAgICAgaWYoICRmaWVsZC0+cGF0dGVybiApIHsKICAgICAgICAgICAgICAgIC8vIGlmIGZpZWxkIGhhcyBwYXR0ZXJuLCBhZGQgcmVnZXggdmFsaWRhdGlvbiBmb3IgdGhpcyBmaWxlZC4KICAgICAgICAgICAgICAgICRvYmogPSBuZXcgRmllbGRWYWxpZGF0b3JzXFJlZ2V4RmllbGRWYWxpZGF0aW9uKCk7CiAgICAgICAgICAgICAgICAkb2JqLT5zZXRfZmllbGROYW1lKCAkZmllbGQtPm5hbWUgKTsKICAgICAgICAgICAgICAgICRvYmotPnNldF9wYXR0ZXJuKCd8Jy4kZmllbGQtPnBhdHRlcm4uJ3wnKTsKICAgICAgICAgICAgICAgICRvdXRbXSA9ICRvYmo7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIGlmIGl0J3MgYSBzaW1wbGUgcHJpbWl0aXZlLi4uICB3ZSBjYW4gdmFsaWRhdGUgaXQncyB2YWx1ZSAgaS5lOiAgdG8gZW5zdXJlIGEgbnVtZXJpYyBudW1iZXIgaXMgaW5wdXQgaW4gdGhlIGZpZWxkCiAgICAgICAgICAgIC8vIGFuZCB0aGVuIG9wdGlvbmFsbHkgdmFsaWRhdGUgbWluIGFuZCBtYXggdmFsdWVzLgogICAgICAgICAgICAkcHJpbWl0aXZlID0gJGZpZWxkLT5wcmltaXRpdmU7CiAgICAgICAgICAgIGlmKCAkcHJpbWl0aXZlICE9ICdmbG9hdCcgJiYgJHByaW1pdGl2ZSAhPSAnaW50JyApIHsKICAgICAgICAgICAgICAgIGlmKCAkZmllbGQtPm1pbiB8fCAkZmllbGQtPm1heCApICRwcmltaXRpdmUgPSAnZmxvYXQnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN3aXRjaCggJHByaW1pdGl2ZSApIHsKICAgICAgICAgICAgY2FzZSAnaW50JzoKICAgICAgICAgICAgICAgICRvYmogPSBuZXcgRmllbGRWYWxpZGF0b3JzXEludGVnZXJGaWVsZFZhbGlkYXRpb24oKTsKICAgICAgICAgICAgICAgICRvYmotPnNldF9maWVsZE5hbWUoICRmaWVsZC0+bmFtZSApOwogICAgICAgICAgICAgICAgaWYoICRmaWVsZC0+bWluICkgJG9iai0+c2V0X21pblZhbHVlKCAoaW50KSAkZmllbGQtPm1pbiApOwogICAgICAgICAgICAgICAgaWYoICRmaWVsZC0+bWF4ICkgJG9iai0+c2V0X21heFZhbHVlKCAoaW50KSAkZmllbGQtPm1heCApOwogICAgICAgICAgICAgICAgJG91dFtdID0gJG9iajsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdmbG9hdCc6CiAgICAgICAgICAgICAgICAkb2JqID0gbmV3IEZpZWxkVmFsaWRhdG9yc1xGbG9hdEZpZWxkVmFsaWRhdGlvbigpOwogICAgICAgICAgICAgICAgJG9iai0+c2V0X2ZpZWxkTmFtZSggJGZpZWxkLT5uYW1lICk7CiAgICAgICAgICAgICAgICBpZiggJGZpZWxkLT5taW4gKSAkb2JqLT5zZXRfbWluVmFsdWUoIChmbG9hdCkgJGZpZWxkLT5taW4gKTsKICAgICAgICAgICAgICAgIGlmKCAkZmllbGQtPm1heCApICRvYmotPnNldF9tYXhWYWx1ZSggKGZsb2F0KSAkZmllbGQtPm1heCApOwogICAgICAgICAgICAgICAgJG91dFtdID0gJG9iajsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBoYXNfZW1haWxfZmllbGRzKCkKICAgIHsKICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X2ZpZWxkcyBhcyAkZmllbGQgKSB7CiAgICAgICAgICAgIGlmKCAkZmllbGQtPnR5cGUgPT0gJ2VtYWlsJyB8fCAkZmllbGQtPnByaW1pdGl2ZSA9PSAnZW1haWwnICkgcmV0dXJuIFRSVUU7CiAgICAgICAgfQogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBoYXNfZGF0ZV9maWVsZHMoKQogICAgewogICAgICAgIGZvcmVhY2goICR0aGlzLT5fZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICAgaWYoICRmaWVsZC0+dHlwZSA9PSAnZGF0ZScgfHwgJGZpZWxkLT5wcmltaXRpdmUgPT0gJ2RhdGUnICkgcmV0dXJuIFRSVUU7CiAgICAgICAgfQogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBoYXNfZmlsZV9maWVsZHMoKQogICAgewogICAgICAgIGZvcmVhY2goICR0aGlzLT5fZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICAgaWYoICRmaWVsZC0+dHlwZSA9PSAnZmlsZScgKSByZXR1cm4gVFJVRTsKICAgICAgICB9CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGhhc19yZXF1aXJlZF9maWVsZHMoKQogICAgewogICAgICAgIGZvcmVhY2goICR0aGlzLT5fZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICAgaWYoICRmaWVsZC0+cmVxdWlyZWQgKSByZXR1cm4gVFJVRTsKICAgICAgICB9CiAgICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/Dispositions/.#class.EmailFixedAddressesDispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/abstract.Disposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwoKYWJzdHJhY3QgY2xhc3MgRGlzcG9zaXRpb24gaW1wbGVtZW50cyBJRGlzcG9zaXRpb24KewogICAgcHJpdmF0ZSAkX2d1aWQ7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkKICAgIHsKICAgICAgICAkdGhpcy0+X2d1aWQgPSBcY2dlX3V0aWxzOjpjcmVhdGVfZ3VpZCgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZ3VpZCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZ3VpZDsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/abstract.DispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwoKYWJzdHJhY3QgY2xhc3MgRGlzcG9zaXRpb25FZGl0b3IKewogICAgcHJpdmF0ZSAkX2hlbHBlcjsKCiAgICBhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKTsKICAgIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcG9zaXRpb24oKTsKICAgIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBzZXRfZGlzcG9zaXRpb24oIERpc3Bvc2l0aW9uICRpbiApOwogICAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGdldF9vdXRwdXRjbGFzcygpOwogICAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGhhbmRsZV9lZGl0X2Zvcm0oIGFycmF5ICRwYXJhbXMsIFxDR0JldHRlckZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsICRkaXNwX2d1aWQgKTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX2ludGVyZmFjZSgpIHsgcmV0dXJuIFRSVUU7IH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2hlbHBlcl9wcm94eSggXENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25FZGl0b3JIZWxwZXJQcm94eSAkcHJveHkgKQogICAgewogICAgICAgICR0aGlzLT5faGVscGVyID0gJHByb3h5OwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfaGVscGVyKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9oZWxwZXI7CiAgICB9Cn0gLy8gZW5kIG9mIGludGVyZmFjZQo=]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.ComputedPageDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcdXRpbHM7CgpjbGFzcyBDb21wdXRlZFBhZ2VEaXNwb3NpdGlvbiBleHRlbmRzIERpc3Bvc2l0aW9uCnsKICAgIHByaXZhdGUgJF90cGw7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCAka2V5ICkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAndHBsJzoKICAgICAgICBjYXNlICd0ZW1wbGF0ZSc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X3RwbDsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF90ZW1wbGF0ZSggJHN0ciApCiAgICB7CiAgICAgICAgJHRoaXMtPl90cGwgPSB0cmltKCRzdHIpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkaXNwb3NlKCBcQ0dCZXR0ZXJGb3Jtc1xGb3JtICRmb3JtLCBcQ0dCZXR0ZXJGb3Jtc1xGb3JtUmVzcG9uc2UmICRyZXNwb25zZSApCiAgICB7CiAgICAgICAgaWYoICEkdGhpcy0+X3RwbCApIHJldHVybjsKICAgICAgICAkb3V0ID0gdXRpbHM6OnByb2Nlc3NfdGVtcGxhdGUoICR0aGlzLT50cGwsICRmb3JtLCAkcmVzcG9uc2UgKTsKICAgICAgICAkb3V0ID0gdHJpbSgkb3V0KTsKICAgICAgICBpZiggISRvdXQgKSByZXR1cm47CgogICAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9DR0JFVFRFUkZPUk1TKTsgLy8gbm90IERJLi4uIGJ1dCB3aG8gY2FyZXMKICAgICAgICAkcGFnZWlkID0gJG1vZC0+cmVzb2x2ZV9hbGlhc19vcl9pZCggJG91dCApOwogICAgICAgIGlmKCAhJHBhZ2VpZCApIHJldHVybjsKCiAgICAgICAgcmVkaXJlY3RfdG9fYWxpYXMoJHBhZ2VpZCk7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.ComputedPageDispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcRm9ybTsKCmNsYXNzIENvbXB1dGVkUGFnZURpc3Bvc2l0aW9uRWRpdG9yIGV4dGVuZHMgRGlzcG9zaXRpb25FZGl0b3IKewogICAgcHJpdmF0ZSAkX2Rpc3A7CiAgICBwcml2YXRlICRfbW9kOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChcQ0dCZXR0ZXJGb3JtcyAkbW9kICkKICAgIHsKICAgICAgICAkdGhpcy0+X21vZCA9ICRtb2Q7CiAgICAgICAgJHRoaXMtPl9kaXNwID0gbmV3IENvbXB1dGVkUGFnZURpc3Bvc2l0aW9uOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICd0cGwnOgogICAgICAgIGNhc2UgJ3RlbXBsYXRlJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcC0+dGVtcGxhdGU7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfdGVtcGxhdGUoICRzdHIgKQogICAgewogICAgICAgICR0aGlzLT5fZGlzcC0+c2V0X3RlbXBsYXRlKCAkc3RyICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2QtPkxhbmcoJ25hbWVfQ29tcHV0ZWRQYWdlRGlzcG9zaXRpb24nKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnZGlzcGxheV9Db21wdXRlZFBhZ2VEaXNwb3NpdGlvbicpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfc2V0dGluZ3NfZm9ybV91cmwoYXJyYXkgJHBhcmFtcyA9IG51bGwpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5jcmVhdGVfdXJsKCAnbTFfJywgJ2FkbWluX2VkaXRfZGRmaWxlX2Rpc3Bvc2l0aW9uJywgJycsICRwYXJhbXMpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcG9zaXRpb24oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2Rpc3A7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9kaXNwb3NpdGlvbiggRGlzcG9zaXRpb24gJGRpc3AgKQogICAgewogICAgICAgIGlmKCAhICRkaXNwIGluc3RhbmNlb2YgQ29tcHV0ZWRQYWdlRGlzcG9zaXRpb24gKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdvYmplY3Qgb2YgdHlwZSAnLmdldF9jbGFzcygkZGlzcCkuJyBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X2Rpc3AgPSAkZGlzcDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gJ0NHQmV0dGVyRm9ybXNcXERpc3Bvc2l0aW9uc1xcQ29tcHV0ZWRQYWdlRGlzcG9zaXRpb24nOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfZWRpdF9mb3JtKGFycmF5ICRwYXJhbXMsIFxDR0JldHRlckZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsICRkaXNwX2d1aWQpCiAgICB7CiAgICAgICAgJG1vZCA9ICR0aGlzLT5fbW9kOwoKICAgICAgICBpZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ2NhbmNlbCcpICkgewogICAgICAgICAgICAkdGhpcy0+Z2V0X2hlbHBlcigpLT5jYW5jZWwoICRmb3JtX2d1aWQgKTsKICAgICAgICB9CiAgICAgICAgaWYoIFxjZ2VfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdzdWJtaXQnKSApIHsKICAgICAgICAgICAgJHRoaXMtPnNldF90ZW1wbGF0ZShcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ3RlbXBsYXRlJykpOwoKICAgICAgICAgICAgLy8gbm93IGhhdmUgdGhlIGRpc3Bvc2l0aW9uIG9iamVjdCwgc3RvcmUgaXQuCiAgICAgICAgICAgIC8vIHRvZG86ICR0aGlzLT5maW5pc2hfZWRpdGluZ19zZXNzaW9uKCk7CiAgICAgICAgICAgICR0aGlzLT5nZXRfaGVscGVyKCktPmZpbmlzaCggJGZvcm0sICRmb3JtX2d1aWQsICR0aGlzLT5nZXRfZGlzcG9zaXRpb24oKSwgJGRpc3BfZ3VpZCApOwogICAgICAgIH0KCiAgICAgICAgJHRwbCA9ICRtb2QtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9lZGl0X2NvbXB1dGVkcGFnZV9kaXNwb3NpdGlvbi50cGwnKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2VkaXRvcl9uYW1lJyxnZXRfY2xhc3MoJHRoaXMpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2hhbmRsZXInLCR0aGlzLT5fZGlzcCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdmb3JtX2d1aWQnLCRmb3JtX2d1aWQpOwogICAgICAgICR0cGwtPmFzc2lnbignZ3VpZCcsJGRpc3BfZ3VpZCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd0cGxfaGVscCcsXENHQmV0dGVyRm9ybXNcdXRpbHM6OmdldF9mb3JtX3RwbF9oZWxwKCAkZm9ybSApKTsKICAgICAgICAkdHBsLT5kaXNwbGF5KCk7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.DropdownEmailDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcdXRpbHM7CgpjbGFzcyBEcm9wZG93bkVtYWlsRGlzcG9zaXRpb24gZXh0ZW5kcyBEaXNwb3NpdGlvbgp7CiAgICBwcml2YXRlICRfZmllbGQ7CiAgICBwcml2YXRlICRfZGZsdF9hZGRyZXNzOwogICAgcHJpdmF0ZSAkX3ZhbHVlX21hcDsKICAgIHByaXZhdGUgJF9zdWJqZWN0dGVtcGxhdGU7CiAgICBwcml2YXRlICRfYm9keXRlbXBsYXRlOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdmaWVsZCc6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fZmllbGQpOwogICAgICAgIGNhc2UgJ2RmbHRfYWRkcmVzcyc6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fZGZsdF9hZGRyZXNzKTsKICAgICAgICBjYXNlICdzdWJqZWN0dGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X3N1YmplY3R0ZW1wbGF0ZSk7CiAgICAgICAgY2FzZSAnYm9keXRlbXBsYXRlJzoKICAgICAgICAgICAgcmV0dXJuIHRyaW0oJHRoaXMtPl9ib2R5dGVtcGxhdGUpOwogICAgICAgIGNhc2UgJ3ZhbHVlX21hcCc6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fdmFsdWVfbWFwKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9maWVsZCggJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5fZmllbGQgPSB0cmltKCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2RmbHRfYWRkcmVzcyggJGRhdGEgKQogICAgewogICAgICAgICRkYXRhID0gdHJpbSgkZGF0YSk7CiAgICAgICAgaWYoICRkYXRhICYmICFpc19lbWFpbCggJGRhdGEgKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oIiRkYXRhIGlzIG5vdCBhIHZhbGlkIGVtYWlsIGFkZHJlc3MiKTsKICAgICAgICAkdGhpcy0+X2RmbHRfYWRkcmVzcyA9ICRkYXRhOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfdmFsdWVfbWFwKCAkZGF0YSApCiAgICB7CiAgICAgICAgJHRoaXMtPl92YWx1ZV9tYXAgPSB0cmltKCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3N1YmplY3R0ZW1wbGF0ZSggJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5fc3ViamVjdHRlbXBsYXRlID0gdHJpbSgkZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9ib2R5dGVtcGxhdGUoICRkYXRhICkKICAgIHsKICAgICAgICAkdGhpcy0+X2JvZHl0ZW1wbGF0ZSA9IHRyaW0oJGRhdGEpOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBmcm9tX3RleHQoJG1hcF90ZXh0KQogICAgewogICAgICAgICRvdXQgPSBbXTsKICAgICAgICAkbGluZXMgPSBleHBsb2RlKCJcbiIsJG1hcF90ZXh0KTsKICAgICAgICBmb3JlYWNoKCAkbGluZXMgYXMgJGxpbmUgKSB7CiAgICAgICAgICAgICRsaW5lID0gdHJpbSgkbGluZSk7CiAgICAgICAgICAgIGlmKCAhJGxpbmUgKSBjb250aW51ZTsKICAgICAgICAgICAgJHBhcnRzID0gZXhwbG9kZSgifCIsJGxpbmUsMik7CiAgICAgICAgICAgIGlmKCBjb3VudCgkcGFydHMpICE9IDIgKSBjb250aW51ZTsKICAgICAgICAgICAgJGtleSA9IHRyaW0oJHBhcnRzWzBdKTsKICAgICAgICAgICAgJHZhbCA9IHRyaW0oJHBhcnRzWzFdKTsKICAgICAgICAgICAgJG91dFska2V5XSA9ICR2YWw7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkaXNwb3NlKCBcQ0dCZXR0ZXJGb3Jtc1xGb3JtICRmb3JtLCBcQ0dCZXR0ZXJGb3Jtc1xGb3JtUmVzcG9uc2UmICRkYXRhKQogICAgewogICAgICAgICRhZGRyZXNzZXMgPSBbXTsKICAgICAgICBpZiggJHRoaXMtPmRmbHRfYWRkcmVzcyApICRhZGRyZXNzZXNbXSA9ICR0aGlzLT5kZmx0X2FkZHJlc3M7CiAgICAgICAgJHZhbCA9ICRkYXRhLT57JHRoaXMtPmZpZWxkfTsKICAgICAgICAkZmllbGQgPSAkZm9ybS0+Z2V0X2ZpZWxkKCAkdGhpcy0+ZmllbGQgKTsKCiAgICAgICAgLy8gJHZhbCBjb3VsZCBiZSBhbiBhcnJheQogICAgICAgIGlmKCAhaXNfYXJyYXkoJHZhbCkgKSAkdmFsID0gWyAkdmFsIF07CiAgICAgICAgJG1hcCA9ICR0aGlzLT5mcm9tX3RleHQoJHRoaXMtPnZhbHVlX21hcCk7CiAgICAgICAgaWYoIGNvdW50KCRtYXApICkgewogICAgICAgICAgICBmb3JlYWNoKCAkdmFsIGFzICRvbmVfdmFsICkgewogICAgICAgICAgICAgICAgaWYoIGFycmF5X2tleV9leGlzdHMoJG9uZV92YWwsJG1hcCkgKSAkYWRkcmVzc2VzW10gPSAkbWFwWyRvbmVfdmFsXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiggIWNvdW50KCRhZGRyZXNzZXMpICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCdObyB2YWxpZCBlbWFpbCBhZGRyZXNzZXMgdG8gc2VuZCB0byBmb3IgRHJvcERvd25FbWFpbERpc3Bvc3Rpb24gb24gJy4kZmllbGQtPm5hbWUpOwoKICAgICAgICAkbWFpbGVyID0gXENHQmV0dGVyRm9ybXNcdXRpbHM6OmdldF9tYWlsZXIoICRmb3JtICk7CiAgICAgICAgZm9yZWFjaCggJGFkZHJlc3NlcyBhcyAkZW1haWwgKSB7CiAgICAgICAgICAgICRtYWlsZXItPkFkZEFkZHJlc3MoICRlbWFpbCApOwogICAgICAgIH0KICAgICAgICAkbWFpbGVyLT5TZXRTdWJqZWN0KCB1dGlsczo6cHJvY2Vzc190ZW1wbGF0ZSggJHRoaXMtPnN1YmplY3R0ZW1wbGF0ZSwgJGZvcm0sICRkYXRhKSApOwogICAgICAgICRtYWlsZXItPlNldFN1YmplY3QoIHV0aWxzOjpwcm9jZXNzX3RlbXBsYXRlKCAkdGhpcy0+Ym9keXRlbXBsYXRlLCAkZm9ybSwgJGRhdGEpICk7CiAgICAgICAgJG1haWxlci0+U2VuZCgpOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.DropdownEmailDispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcRm9ybTsKCmNsYXNzIERyb3Bkb3duRW1haWxEaXNwb3NpdGlvbkVkaXRvciBleHRlbmRzIERpc3Bvc2l0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF9kaXNwOwogICAgcHJpdmF0ZSAkX21vZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoXENHQmV0dGVyRm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fZGlzcCA9IG5ldyBEcm9wZG93bkVtYWlsRGlzcG9zaXRpb247CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2ZpZWxkJzoKICAgICAgICBjYXNlICdkZmx0X2FkZHJlc3MnOgogICAgICAgIGNhc2UgJ3N1YmplY3R0ZW1wbGF0ZSc6CiAgICAgICAgY2FzZSAndmFsdWVfbWFwJzoKICAgICAgICBjYXNlICdib2R5dGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwLT4ka2V5OwogICAgICAgIGNhc2UgJ3ZhbHVlX21hcF9hcnJheSc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+ZnJvbV90ZXh0KCR0aGlzLT52YWx1ZV9tYXApOwogICAgICAgIH0KICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZnJvbV90ZXh0KCRtYXBfdGV4dCkKICAgIHsKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgJGxpbmVzID0gZXhwbG9kZSgiXG4iLCRtYXBfdGV4dCk7CiAgICAgICAgZm9yZWFjaCggJGxpbmVzIGFzICRsaW5lICkgewogICAgICAgICAgICAkbGluZSA9IHRyaW0oJGxpbmUpOwogICAgICAgICAgICBpZiggISRsaW5lICkgY29udGludWU7CiAgICAgICAgICAgICRwYXJ0cyA9IGV4cGxvZGUoInwiLCRsaW5lLDIpOwogICAgICAgICAgICBpZiggY291bnQoJHBhcnRzKSAhPSAyICkgY29udGludWU7CiAgICAgICAgICAgICRrZXkgPSB0cmltKCRwYXJ0c1swXSk7CiAgICAgICAgICAgICR2YWwgPSB0cmltKCRwYXJ0c1sxXSk7CiAgICAgICAgICAgICRvdXRbJGtleV0gPSAkdmFsOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZpZWxkKCAkZmllbGRuYW1lICkKICAgIHsKICAgICAgICAkdGhpcy0+X2Rpc3AtPnNldF9maWVsZCggJGZpZWxkbmFtZSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZGZsdF9hZGRyZXNzKCAkZGF0YSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9kaXNwLT5zZXRfZGZsdF9hZGRyZXNzKCAkZGF0YSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfdmFsdWVfbWFwKCAkZGF0YSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9kaXNwLT5zZXRfdmFsdWVfbWFwKCAkZGF0YSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfc3ViamVjdHRlbXBsYXRlKCAkZGF0YSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9kaXNwLT5zZXRfc3ViamVjdHRlbXBsYXRlKCAkZGF0YSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfYm9keXRlbXBsYXRlKCAkZGF0YSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9kaXNwLT5zZXRfYm9keXRlbXBsYXRlKCAkZGF0YSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiByZXNldF90ZW1wbGF0ZXMoIEZvcm0gJGZvcm0gKQogICAgewogICAgICAgICR0bXAgPSBudWxsOwogICAgICAgIGZvcmVhY2goICRmb3JtLT5maWVsZHMgYXMgJGZpZWxkICkgewogICAgICAgICAgICAkbmFtZSA9ICRmaWVsZC0+bmFtZTsKICAgICAgICAgICAgJGxhYmVsID0gJGZpZWxkLT5sYWJlbDsKICAgICAgICAgICAgaWYoICEkbGFiZWwgKSAkbGFiZWwgPSAkbmFtZTsKCiAgICAgICAgICAgICR2YWxzdHIgPSBudWxsOwogICAgICAgICAgICBpZiggJGZpZWxkLT5tdWx0aXBsZSApIHsKICAgICAgICAgICAgICAgICR2YWxzdHIgPSAiXCJ7aWYgIWVtcHR5KFwkJG5hbWUpfXtpbXBsb2RlKCcrJyxcJCRuYW1lKX17L2lmfVwiXG4iOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHZhbHN0ciA9ICcieyQnLiRuYW1lLid8ZGVmYXVsdDpcJ1wnfSInLiJcbiI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHRtcCAuPSAiPHA+PHN0cm9uZz57JGxhYmVsfTwvc3Ryb25nPiA8c3Bhbj57JHZhbHN0cn08L3NwYW4+PC9wPlxuIjsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPnNldF9zdWJqZWN0dGVtcGxhdGUoICdOZXcgZm9ybSBzdWJtaXNzaW9uJyk7CiAgICAgICAgJHRoaXMtPnNldF9ib2R5dGVtcGxhdGUoICJ7c3RyaXB9eyR0bXB9ey9zdHJpcH0iICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2QtPkxhbmcoJ25hbWVfRHJvcGRvd25FbWFpbERpc3Bvc2l0aW9uJyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9kaXNwbGF5c3RyaW5nKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2QtPkxhbmcoJ2Rpc3BsYXlfRHJvcGRvd25FbWFpbERpc3Bvc2l0aW9uJywkdGhpcy0+ZmllbGQpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfc2V0dGluZ3NfZm9ybV91cmwoYXJyYXkgJHBhcmFtcyA9IG51bGwpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5jcmVhdGVfdXJsKCAnbTFfJywgJ2FkbWluX2VkaXRfZGRmaWxlX2Rpc3Bvc2l0aW9uJywgJycsICRwYXJhbXMpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcG9zaXRpb24oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2Rpc3A7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9kaXNwb3NpdGlvbiggRGlzcG9zaXRpb24gJGRpc3AgKQogICAgewogICAgICAgIGlmKCAhICRkaXNwIGluc3RhbmNlb2YgRHJvcGRvd25FbWFpbERpc3Bvc2l0aW9uICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignb2JqZWN0IG9mIHR5cGUgJy5nZXRfY2xhc3MoJGRpc3ApLicgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgJHRoaXMtPl9kaXNwID0gJGRpc3A7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9vdXRwdXRjbGFzcygpCiAgICB7CiAgICAgICAgcmV0dXJuICdDR0JldHRlckZvcm1zXFxEaXNwb3NpdGlvbnNcXERyb3Bkb3duRW1haWxEaXNwb3NpdGlvbic7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZV9lZGl0X2Zvcm0oYXJyYXkgJHBhcmFtcywgXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgJGZvcm1fZ3VpZCwgJGRpc3BfZ3VpZCkKICAgIHsKICAgICAgICAkbW9kID0gJHRoaXMtPl9tb2Q7CgogICAgICAgIGlmKCAhJGRpc3BfZ3VpZCApICR0aGlzLT5yZXNldF90ZW1wbGF0ZXMoICRmb3JtICk7CgogICAgICAgIGlmKCBcY2dlX3BhcmFtOjpleGlzdHMoJHBhcmFtcywnY2FuY2VsJykgKSB7CiAgICAgICAgICAgICR0aGlzLT5nZXRfaGVscGVyKCktPmNhbmNlbCggJGZvcm1fZ3VpZCApOwogICAgICAgIH0KICAgICAgICBpZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3Jlc2V0X3RwbCcpICkgewogICAgICAgICAgICAkdGhpcy0+cmVzZXRfdGVtcGxhdGVzKCAkZm9ybSApOwogICAgICAgIH0KICAgICAgICBpZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3N1Ym1pdCcpICkgewogICAgICAgICAgICAkdGhpcy0+c2V0X2ZpZWxkKFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZmllbGQnKSk7CiAgICAgICAgICAgICR0aGlzLT5zZXRfZGZsdF9hZGRyZXNzKFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZGZsdF9hZGRyZXNzJykpOwogICAgICAgICAgICAkdGhpcy0+c2V0X3ZhbHVlX21hcChcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ3ZhbHVlX21hcCcpKTsKICAgICAgICAgICAgJHRoaXMtPnNldF9zdWJqZWN0dGVtcGxhdGUoXGNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ3N1YmplY3R0ZW1wbGF0ZScpKTsKICAgICAgICAgICAgJHRoaXMtPnNldF9ib2R5dGVtcGxhdGUoXGNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2JvZHl0ZW1wbGF0ZScpKTsKCiAgICAgICAgICAgIC8vIG5vdyBoYXZlIHRoZSBkaXNwb3NpdGlvbiBvYmplY3QsIHN0b3JlIGl0LgogICAgICAgICAgICAvLyB0b2RvOiAkdGhpcy0+ZmluaXNoX2VkaXRpbmdfc2Vzc2lvbigpOwogICAgICAgICAgICAkdGhpcy0+Z2V0X2hlbHBlcigpLT5maW5pc2goICRmb3JtLCAkZm9ybV9ndWlkLCAkdGhpcy0+Z2V0X2Rpc3Bvc2l0aW9uKCksICRkaXNwX2d1aWQgKTsKICAgICAgICB9CgogICAgICAgICR0cGwgPSAkbW9kLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fZWRpdF9kZGVtYWlsX2Rpc3Bvc2l0aW9uLnRwbCcpOwogICAgICAgICR0cGwtPmFzc2lnbignc2VsZWN0X2ZpZWxkcycsJGZvcm0tPmdldF9tdWx0aW9wdGlvbl9maWVsZHMoVFJVRSkpOwogICAgICAgICR0cGwtPmFzc2lnbignZWRpdG9yX25hbWUnLGdldF9jbGFzcygkdGhpcykpOwogICAgICAgICR0cGwtPmFzc2lnbignaGFuZGxlcicsJHRoaXMpOwogICAgICAgICR0cGwtPmFzc2lnbignZm9ybV9ndWlkJywkZm9ybV9ndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2d1aWQnLCRkaXNwX2d1aWQpOwogICAgICAgICR0cGwtPmFzc2lnbigndHBsX2hlbHAnLFxDR0JldHRlckZvcm1zXHV0aWxzOjpnZXRfZm9ybV90cGxfaGVscCggJGZvcm0gKSk7CiAgICAgICAgJHRwbC0+ZGlzcGxheSgpOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.DropdownFileDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcdXRpbHM7CgpjbGFzcyBEcm9wZG93bkZpbGVEaXNwb3NpdGlvbiBleHRlbmRzIERpc3Bvc2l0aW9uCnsKICAgIHByaXZhdGUgJF9maWVsZDsKICAgIHByaXZhdGUgJF9mb2xkZXI7CiAgICBwcml2YXRlICRfaGVhZGVydGVtcGxhdGU7CiAgICBwcml2YXRlICRfZW50cnl0ZW1wbGF0ZTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAnZmllbGQnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X2ZpZWxkKTsKICAgICAgICBjYXNlICdmb2xkZXInOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X2ZvbGRlcik7CiAgICAgICAgY2FzZSAnaGVhZGVydGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X2hlYWRlcnRlbXBsYXRlKTsKICAgICAgICBjYXNlICdlbnRyeXRlbXBsYXRlJzoKICAgICAgICAgICAgcmV0dXJuIHRyaW0oJHRoaXMtPl9lbnRyeXRlbXBsYXRlKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9maWVsZCggJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5fZmllbGQgPSB0cmltKCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZvbGRlciggJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5fZm9sZGVyID0gdHJpbSgkZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9oZWFkZXJ0ZW1wbGF0ZSggJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5faGVhZGVydGVtcGxhdGUgPSB0cmltKCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2VudHJ5dGVtcGxhdGUoICRkYXRhICkKICAgIHsKICAgICAgICAkdGhpcy0+X2VudHJ5dGVtcGxhdGUgPSB0cmltKCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZGlzcG9zZSggXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgXENHQmV0dGVyRm9ybXNcRm9ybVJlc3BvbnNlJiAkZGF0YSkKICAgIHsKICAgICAgICAkY29uZmlnID0gXGNtc19jb25maWc6OmdldF9pbnN0YW5jZSgpOwogICAgICAgIC8vIGdldCB0aGUgdmFsdWUuCiAgICAgICAgJHZhbCA9ICRkYXRhLT57JHRoaXMtPmZpZWxkfTsKCiAgICAgICAgLy8gYnVpbGQgYSBmaWxlbmFtZSBmb3IgdGhpcyB2YWx1ZS4KICAgICAgICAvLy8gZ2V0IHRoZSBmaWVsZAogICAgICAgICRmaWVsZCA9ICRmb3JtLT5nZXRfZmllbGQoICR0aGlzLT5maWVsZCApOwogICAgICAgICRociA9ICR2YWw7CiAgICAgICAgJG9wdCA9ICRmaWVsZC0+Z2V0X29wdGlvbl9ieV92YWx1ZSggJHZhbCApOwogICAgICAgIGlmKCAkb3B0ICkgJGhyID0gJG9wdC0+aHI7CgogICAgICAgIC8vIHRvZG86IGNsZWFudXAgJGhyIHRvIHNtZXRoaW5nIHJlYXNvbmFibGUgKG5vIGZ1bmt5IGNoYXJzKQoKICAgICAgICAkZmlsZW5hbWUgPSAkdGhpcy0+ZmllbGQuJ18nLiRoci4nLnR4dCc7CiAgICAgICAgJGZpbGVuYW1lID0gJGNvbmZpZ1sncm9vdF9wYXRoJ10uJy8nLiR0aGlzLT5mb2xkZXIuJy8nLiRmaWxlbmFtZTsKCiAgICAgICAgLy8gaWYgdGhlIGRpcmVjdG9yeSBpcyByZWxhdGl2ZSB0byB0aGUgcm9vdCBwYXRoLCAgQU5EIGRvZXNuJ3QgZXhpc3QKICAgICAgICAvLyBjcmVhdGUgaXQuCiAgICAgICAgJGRpciA9IGRpcm5hbWUoJGZpbGVuYW1lKTsKICAgICAgICBpZiggIWlzX2RpciggJGRpciApICYmIHV0aWxzOjppc19jbXNtc19yZWxhdGl2ZSggJGRpciApICkgewogICAgICAgICAgICAkcmVzID0gbWtkaXIoICRkaXIsIDA3NzcsIFRSVUUgKTsKICAgICAgICAgICAgaWYoICEkcmVzICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCdTWVNURU0gRVJST1I6ICBDb3VsZCBub3QgY3JlYXRlIGRpcmVjdG9yeSBhdCAnLiRkaXIpOwogICAgICAgIH0KICAgICAgICBpZiggIXV0aWxzOjpjYW5fd3JpdGVfZmlsZSggJGZpbGVuYW1lKSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignU1lTVEVNIEVSUk9SOiBDYW5ub3Qgd3JpdGUgdG8gJy4kZmlsZW5hbWUpOwogICAgICAgIC8vIGlmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0CiAgICAgICAgLy8gcHJvY2VzcyB0aGUgdGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIsIGFuZCB3cml0ZSBpdC4KCiAgICAgICAgaWYoICFpc19maWxlKCRmaWxlbmFtZSkgKSB7CiAgICAgICAgICAgICRvdXRwdXQgPSB1dGlsczo6cHJvY2Vzc190ZW1wbGF0ZSggJHRoaXMtPmhlYWRlcnRlbXBsYXRlLCAkZm9ybSwgJGRhdGEgKTsKICAgICAgICAgICAgZmlsZV9wdXRfY29udGVudHMoJGZpbGVuYW1lLCRvdXRwdXQpOwogICAgICAgIH0KCiAgICAgICAgLy8gcHJvY2VzcyB0ZW1wbGF0ZSBmb3IgdGhlIGVudHJ5LCAgYW5kIHdyaXRlLgogICAgICAgICRvdXRwdXQgPSB1dGlsczo6cHJvY2Vzc190ZW1wbGF0ZSggJHRoaXMtPmVudHJ5dGVtcGxhdGUsICRmb3JtLCAkZGF0YSApOwogICAgICAgIGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlbmFtZSwkb3V0cHV0LEZJTEVfQVBQRU5EKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.DropdownFileDispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcRm9ybTsKCmNsYXNzIERyb3Bkb3duRmlsZURpc3Bvc2l0aW9uRWRpdG9yIGV4dGVuZHMgRGlzcG9zaXRpb25FZGl0b3IKewogICAgcHJpdmF0ZSAkX2Rpc3A7CiAgICBwcml2YXRlICRfbW9kOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChcQ0dCZXR0ZXJGb3JtcyAkbW9kICkKICAgIHsKICAgICAgICAkdGhpcy0+X21vZCA9ICRtb2Q7CiAgICAgICAgJHRoaXMtPl9kaXNwID0gbmV3IERyb3Bkb3duRmlsZURpc3Bvc2l0aW9uOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdmaWVsZCc6CiAgICAgICAgY2FzZSAnZm9sZGVyJzoKICAgICAgICBjYXNlICdoZWFkZXJ0ZW1wbGF0ZSc6CiAgICAgICAgY2FzZSAnZW50cnl0ZW1wbGF0ZSc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2Rpc3AtPiRrZXk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZmllbGQoICRmaWVsZG5hbWUgKQogICAgewogICAgICAgICR0aGlzLT5fZGlzcC0+c2V0X2ZpZWxkKCAkZmllbGRuYW1lICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9mb2xkZXIoICRmb2xkZXIgKQogICAgewogICAgICAgICR0aGlzLT5fZGlzcC0+c2V0X2ZvbGRlciggJGZvbGRlciApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfaGVhZGVydGVtcGxhdGUoICRkYXRhICkKICAgIHsKICAgICAgICAkdGhpcy0+X2Rpc3AtPnNldF9oZWFkZXJ0ZW1wbGF0ZSggJGRhdGEgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2VudHJ5dGVtcGxhdGUoICRkYXRhICkKICAgIHsKICAgICAgICAkdGhpcy0+X2Rpc3AtPnNldF9lbnRyeXRlbXBsYXRlKCAkZGF0YSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiByZXNldF90ZW1wbGF0ZXMoIEZvcm0gJGZvcm0gKQogICAgewogICAgICAgICRsYWJlbHMgPSBbXTsKCiAgICAgICAgJHRtcCA9IFtdOwogICAgICAgIGZvcmVhY2goICRmb3JtLT5maWVsZHMgYXMgJGZpZWxkICkgewogICAgICAgICAgICAkbmFtZSA9ICRmaWVsZC0+bmFtZTsKICAgICAgICAgICAgJGxhYmVsID0gJGZpZWxkLT5sYWJlbDsKICAgICAgICAgICAgaWYoICEkbGFiZWwgKSAkbGFiZWwgPSAkbmFtZTsKICAgICAgICAgICAgJGxhYmVsc1tdID0gJGxhYmVsOwoKICAgICAgICAgICAgaWYoICRmaWVsZC0+bXVsdGlwbGUgKSB7CiAgICAgICAgICAgICAgICAkdG1wW10gPSAiXCJ7aWYgIWVtcHR5KFwkJG5hbWUpfXtpbXBsb2RlKCcrJyxcJCRuYW1lKX17L2lmfVwiXG4iOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHRtcFtdID0gJyJ7JCcuJG5hbWUuJ3xkZWZhdWx0OlwnXCd9IicuIlxuIjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkdGhpcy0+c2V0X2hlYWRlcnRlbXBsYXRlKCAnIycuaW1wbG9kZSgnLCcsJGxhYmVscykuJ3skRU9MfScgKTsKICAgICAgICAkdGhpcy0+c2V0X2VudHJ5dGVtcGxhdGUoICJ7c3RyaXB9XG4iLmltcGxvZGUoJywnLCR0bXApLiJ7XCRFT0x9ey9zdHJpcH0iICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2QtPkxhbmcoJ25hbWVfRHJvcGRvd25GaWxlRGlzcG9zaXRpb24nKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnZGlzcGxheV9Ecm9wZG93bkZpbGVEaXNwb3NpdGlvbicsJHRoaXMtPmZvbGRlciwkdGhpcy0+ZmllbGQpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfc2V0dGluZ3NfZm9ybV91cmwoYXJyYXkgJHBhcmFtcyA9IG51bGwpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5jcmVhdGVfdXJsKCAnbTFfJywgJ2FkbWluX2VkaXRfZGRmaWxlX2Rpc3Bvc2l0aW9uJywgJycsICRwYXJhbXMpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcG9zaXRpb24oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2Rpc3A7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9kaXNwb3NpdGlvbiggRGlzcG9zaXRpb24gJGRpc3AgKQogICAgewogICAgICAgIGlmKCAhICRkaXNwIGluc3RhbmNlb2YgRHJvcGRvd25GaWxlRGlzcG9zaXRpb24gKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdvYmplY3Qgb2YgdHlwZSAnLmdldF9jbGFzcygkZGlzcCkuJyBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X2Rpc3AgPSAkZGlzcDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gJ0NHQmV0dGVyRm9ybXNcXERpc3Bvc2l0aW9uc1xcRHJvcGRvd25GaWxlRGlzcG9zaXRpb24nOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfZWRpdF9mb3JtKGFycmF5ICRwYXJhbXMsIFxDR0JldHRlckZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsICRkaXNwX2d1aWQpCiAgICB7CiAgICAgICAgJG1vZCA9ICR0aGlzLT5fbW9kOwoKICAgICAgICBpZiggISRkaXNwX2d1aWQgKSAkdGhpcy0+cmVzZXRfdGVtcGxhdGVzKCAkZm9ybSApOwoKICAgICAgICBpZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ2NhbmNlbCcpICkgewogICAgICAgICAgICAkdGhpcy0+Z2V0X2hlbHBlcigpLT5jYW5jZWwoICRmb3JtX2d1aWQgKTsKICAgICAgICB9CiAgICAgICAgaWYoIFxjZ2VfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdyZXNldF90cGwnKSApIHsKICAgICAgICAgICAgJHRoaXMtPnJlc2V0X3RlbXBsYXRlcyggJGZvcm0gKTsKICAgICAgICB9CiAgICAgICAgaWYoIFxjZ2VfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdzdWJtaXQnKSApIHsKICAgICAgICAgICAgJHRoaXMtPnNldF9maWVsZChcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2ZpZWxkJykpOwogICAgICAgICAgICAkdGhpcy0+c2V0X2ZvbGRlcihcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2ZvbGRlcicpKTsKICAgICAgICAgICAgJHRoaXMtPnNldF9oZWFkZXJ0ZW1wbGF0ZShcY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnaGVhZGVydGVtcGxhdGUnKSk7CiAgICAgICAgICAgICR0aGlzLT5zZXRfZW50cnl0ZW1wbGF0ZShcY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnZW50cnl0ZW1wbGF0ZScpKTsKCiAgICAgICAgICAgIC8vIG5vdyBoYXZlIHRoZSBkaXNwb3NpdGlvbiBvYmplY3QsIHN0b3JlIGl0LgogICAgICAgICAgICAvLyB0b2RvOiAkdGhpcy0+ZmluaXNoX2VkaXRpbmdfc2Vzc2lvbigpOwogICAgICAgICAgICAkdGhpcy0+Z2V0X2hlbHBlcigpLT5maW5pc2goICRmb3JtLCAkZm9ybV9ndWlkLCAkdGhpcy0+Z2V0X2Rpc3Bvc2l0aW9uKCksICRkaXNwX2d1aWQgKTsKICAgICAgICB9CgogICAgICAgICR0cGwgPSAkbW9kLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fZWRpdF9kZGZpbGVfZGlzcG9zaXRpb24udHBsJyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdzZWxlY3RfZmllbGRzJywkZm9ybS0+Z2V0X211bHRpb3B0aW9uX2ZpZWxkcygpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2VkaXRvcl9uYW1lJyxnZXRfY2xhc3MoJHRoaXMpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2hhbmRsZXInLCR0aGlzKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2Zvcm1fZ3VpZCcsJGZvcm1fZ3VpZCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdndWlkJywkZGlzcF9ndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3RwbF9oZWxwJyxcQ0dCZXR0ZXJGb3Jtc1x1dGlsczo6Z2V0X2Zvcm1fdHBsX2hlbHAoICRmb3JtICkpOwogICAgICAgICR0cGwtPmRpc3BsYXkoKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.EmailAdminWithReplyTo.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcdXRpbHM7CgpjbGFzcyBFbWFpbEFkbWluV2l0aFJlcGx5VG8gZXh0ZW5kcyBEaXNwb3NpdGlvbgp7CiAgICBwcml2YXRlICRfYWRkcmVzc2VzOwogICAgcHJpdmF0ZSAkX2ZpZWxkbmFtZTsKICAgIHByaXZhdGUgJF9zdWJqZWN0dGVtcGxhdGU7CiAgICBwcml2YXRlICRfYm9keXRlbXBsYXRlOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdhZGRyZXNzZXMnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9hZGRyZXNzZXM7CiAgICAgICAgY2FzZSAnZmllbGRuYW1lJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fZmllbGRuYW1lOwogICAgICAgIGNhc2UgJ3N1YmplY3R0ZW1wbGF0ZSc6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fc3ViamVjdHRlbXBsYXRlKTsKICAgICAgICBjYXNlICdib2R5dGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X2JvZHl0ZW1wbGF0ZSk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfYWRkcmVzc2VzKCAkZW1haWwgKQogICAgewogICAgICAgICR0aGlzLT5fYWRkcmVzc2VzID0gdHJpbSgkZW1haWwpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfYWRkcmVzc2VzKCkKICAgIHsKICAgICAgICBpZiggISR0aGlzLT5fYWRkcmVzc2VzICkgcmV0dXJuOwogICAgICAgICR0bXAgPSBleHBsb2RlKCcsJywkdGhpcy0+X2FkZHJlc3Nlcyk7CiAgICAgICAgJHRtcDIgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkdG1wIGFzICRvbmUgKSB7CiAgICAgICAgICAgICRvbmUgPSB0cmltKCRvbmUpOwogICAgICAgICAgICBpZiggJG9uZSAmJiAhaW5fYXJyYXkoJG9uZSwkdG1wMikpICR0bXAyW10gPSAkb25lOwogICAgICAgIH0KICAgICAgICBpZiggY291bnQoJHRtcDIpICkgcmV0dXJuICR0bXAyOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZmllbGRuYW1lKCAkZW1haWwgKQogICAgewogICAgICAgICR0aGlzLT5fZmllbGRuYW1lID0gdHJpbSgkZW1haWwpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmllbGRuYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9maWVsZG5hbWU7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9zdWJqZWN0dGVtcGxhdGUoICRkYXRhICkKICAgIHsKICAgICAgICAkdGhpcy0+X3N1YmplY3R0ZW1wbGF0ZSA9IHRyaW0oJGRhdGEpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfYm9keXRlbXBsYXRlKCAkZGF0YSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9ib2R5dGVtcGxhdGUgPSB0cmltKCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZGlzcG9zZSggXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgXENHQmV0dGVyRm9ybXNcRm9ybVJlc3BvbnNlJiAkcmVzcG9uc2UgKQogICAgewogICAgICAgICR0bXBfYWRkcmVzc2VzID0gZXhwbG9kZSgnLCcsJHRoaXMtPmFkZHJlc3Nlcyk7CgogICAgICAgIGlmKCAhJHRoaXMtPmZpZWxkbmFtZSApIHJldHVybjsKICAgICAgICAkcmVwbHl0byA9ICRyZXNwb25zZS0+Z2V0X2ZpZWxkX3ZhbHVlKCR0aGlzLT5maWVsZG5hbWUpOwogICAgICAgIGlmKCAhJHJlcGx5dG8gfHwgIWlzX2VtYWlsKCRyZXBseXRvKSApIHJldHVybjsKCiAgICAgICAgJHRtcF9hZGRyZXNzZXMgPSAkdGhpcy0+Z2V0X2FkZHJlc3NlcygpOwogICAgICAgICRtYWlsZXIgPSBcQ0dCZXR0ZXJGb3Jtc1x1dGlsczo6Z2V0X21haWxlciggJGZvcm0gKTsKICAgICAgICAkYWRkZWQgPSBmYWxzZTsKICAgICAgICBmb3JlYWNoKCAkdG1wX2FkZHJlc3NlcyBhcyAkYWRkciApIHsKICAgICAgICAgICAgJGFkZHIgPSB0cmltKCRhZGRyKTsKICAgICAgICAgICAgaWYoICEkYWRkciApIGNvbnRpbnVlOwogICAgICAgICAgICBpZiggIWlzX2VtYWlsKCAkYWRkcikgKSBjb250aW51ZTsKICAgICAgICAgICAgJG1haWxlci0+QWRkQWRkcmVzcyggJGFkZHIgKTsKICAgICAgICAgICAgJGFkZGVkID0gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgaWYoICEkYWRkZWQgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJ05vIHZhbGlkIGVtYWlsIGFkZHJlc3NlcyB0byBzZW5kIHRvIGZvciBFbWFpbEZpeGVkQWRkcmVzc2VzRGlzcG9zaXRpb24nKTsKICAgICAgICBpZiggJHJlcGx5dG8gJiYgaXNfZW1haWwoJHJlcGx5dG8pICkgJG1haWxlci0+QWRkUmVwbHlUbygkcmVwbHl0byk7CiAgICAgICAgJG1haWxlci0+U2V0U3ViamVjdCh1dGlsczo6cHJvY2Vzc190ZW1wbGF0ZSggJHRoaXMtPnN1YmplY3R0ZW1wbGF0ZSwgJGZvcm0sICRyZXNwb25zZSkgKTsKICAgICAgICAkbWFpbGVyLT5TZXRCb2R5KHV0aWxzOjpwcm9jZXNzX3RlbXBsYXRlKCAkdGhpcy0+Ym9keXRlbXBsYXRlLCAkZm9ybSwgJHJlc3BvbnNlKSApOwogICAgICAgICRtYWlsZXItPlNlbmQoKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.EmailAdminWithReplyToEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcRm9ybTsKCmNsYXNzIEVtYWlsQWRtaW5XaXRoUmVwbHlUb0VkaXRvciBleHRlbmRzIERpc3Bvc2l0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF9kaXNwOwogICAgcHJpdmF0ZSAkX21vZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoXENHQmV0dGVyRm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fZGlzcCA9IG5ldyBFbWFpbEFkbWluV2l0aFJlcGx5VG87CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2FkZHJlc3Nlcyc6CiAgICAgICAgY2FzZSAnZmllbGRuYW1lJzoKICAgICAgICBjYXNlICdzdWJqZWN0dGVtcGxhdGUnOgogICAgICAgIGNhc2UgJ2JvZHl0ZW1wbGF0ZSc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2Rpc3AtPiRrZXk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfYWRkcmVzc2VzKCAkc3RyICkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwLT5zZXRfYWRkcmVzc2VzKCAkc3RyICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9maWVsZG5hbWUoICRzdHIgKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2Rpc3AtPnNldF9maWVsZG5hbWUoICRzdHIgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3N1YmplY3R0ZW1wbGF0ZSggJGRhdGEgKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2Rpc3AtPnNldF9zdWJqZWN0dGVtcGxhdGUoICRkYXRhICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9ib2R5dGVtcGxhdGUoICRkYXRhICkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwLT5zZXRfYm9keXRlbXBsYXRlKCAkZGF0YSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiByZXNldF90ZW1wbGF0ZXMoIEZvcm0gJGZvcm0gKQogICAgewogICAgICAgICR0aGlzLT5zZXRfc3ViamVjdHRlbXBsYXRlKCdTdWJtaXNzaW9uIGZyb20geyRyZXNwb25zZS0+Zm9ybV9uYW1lfSBmb3JtJyk7CiAgICAgICAgJG91dCA9IG51bGw7CiAgICAgICAgZm9yZWFjaCggJGZvcm0tPmZpZWxkcyBhcyAkZmllbGQgKSB7CiAgICAgICAgICAgICRuYW1lID0gJGZpZWxkLT5uYW1lOwogICAgICAgICAgICAkbGFiZWwgPSAkZmllbGQtPmxhYmVsOwogICAgICAgICAgICBpZiggISRsYWJlbCApICRsYWJlbCA9ICRuYW1lOwoKICAgICAgICAgICAgaWYoICRmaWVsZC0+bXVsdGlwbGUgKSB7CiAgICAgICAgICAgICAgICAkb3V0IC49ICJ7aWYgIWVtcHR5KFwkJG5hbWUpfTxwPjxzdHJvbmc+JGxhYmVsOjwvc3Ryb25nPiB7aW1wbG9kZSgnICsgJyxcJCRuYW1lKX08L3A+ey9pZn1cbiI7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkb3V0IC49ICJ7aWYgIWVtcHR5KFwkJG5hbWUpfTxwPjxzdHJvbmc+JGxhYmVsOjwvc3Ryb25nPiB7XCQkbmFtZX08L3A+ey9pZn1cbiI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJHRoaXMtPnNldF9ib2R5dGVtcGxhdGUoIntzdHJpcH1cbiIuJG91dC4iey9zdHJpcH0iKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnbmFtZV9FbWFpbEFkbWluV2l0aFJlcGx5VG8nKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgICRmaWVsZG5hbWUgPSAkdGhpcy0+X2Rpc3AtPmdldF9maWVsZG5hbWUoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2QtPkxhbmcoJ2Rpc3BsYXlfRW1haWxBZG1pbldpdGhSZXBseVRvJywkZmllbGRuYW1lKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3Bvc2l0aW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZGlzcG9zaXRpb24oIERpc3Bvc2l0aW9uICRkaXNwICkKICAgIHsKICAgICAgICBpZiggISAkZGlzcCBpbnN0YW5jZW9mIEVtYWlsQWRtaW5XaXRoUmVwbHlUbyApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ29iamVjdCBvZiB0eXBlICcuZ2V0X2NsYXNzKCRkaXNwKS4nIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICR0aGlzLT5fZGlzcCA9ICRkaXNwOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3V0cHV0Y2xhc3MoKQogICAgewogICAgICAgIHJldHVybiAnQ0dCZXR0ZXJGb3Jtc1xcRGlzcG9zaXRpb25zXFxFbWFpbEFkbWluV2l0aFJlcGx5VG8nOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfZWRpdF9mb3JtKGFycmF5ICRwYXJhbXMsIFxDR0JldHRlckZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsICRkaXNwX2d1aWQgKQogICAgewogICAgICAgICRtb2QgPSAkdGhpcy0+X21vZDsKCiAgICAgICAgaWYoICEkZGlzcF9ndWlkICkgJHRoaXMtPnJlc2V0X3RlbXBsYXRlcyggJGZvcm0gKTsKCiAgICAgICAgaWYoIFxjZ2VfcGFyYW06OmV4aXN0cyggJHBhcmFtcywgJ2NhbmNlbCcgKSApIHsKICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+Y2FuY2VsKCAkZm9ybV9ndWlkICk7CiAgICAgICAgfQogICAgICAgIGlmKCBcY2dlX3BhcmFtOjpleGlzdHMoJHBhcmFtcywncmVzZXRfdHBsJykgKSB7CiAgICAgICAgICAgICR0aGlzLT5yZXNldF90ZW1wbGF0ZXMoICRmb3JtICk7CiAgICAgICAgfQogICAgICAgIGlmKCBcY2dlX3BhcmFtOjpleGlzdHMoJHBhcmFtcywnc3VibWl0JykgKSB7CiAgICAgICAgICAgICR0aGlzLT5zZXRfZmllbGRuYW1lKFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZmllbGRuYW1lJykpOwogICAgICAgICAgICAkdGhpcy0+c2V0X2FkZHJlc3NlcyhcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2FkZHJlc3NlcycpKTsKICAgICAgICAgICAgJHRoaXMtPnNldF9zdWJqZWN0dGVtcGxhdGUoXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdzdWJqZWN0dGVtcGxhdGUnKSk7CiAgICAgICAgICAgICR0aGlzLT5zZXRfYm9keXRlbXBsYXRlKFxjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdib2R5dGVtcGxhdGUnKSk7CiAgICAgICAgICAgICR0aGlzLT5nZXRfaGVscGVyKCktPmZpbmlzaCggJGZvcm0sICRmb3JtX2d1aWQsICR0aGlzLT5nZXRfZGlzcG9zaXRpb24oKSwgJGRpc3BfZ3VpZCApOwogICAgICAgIH0KCiAgICAgICAgJHRwbCA9ICRtb2QtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9lZGl0X2VtYWlsYWRtaW53aXRocmVwbHl0b19kaXNwb3NpdGlvbi50cGwnKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2VkaXRvcl9uYW1lJyxnZXRfY2xhc3MoJHRoaXMpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2ZpZWxkX2xpc3QnLCRmb3JtLT5saXN0X2ZpZWxkc19ieV90eXBlX29yX3ByaW1pdGl2ZSgnZW1haWwnLCdlbWFpbCcpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2hhbmRsZXInLCR0aGlzKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2Zvcm1fZ3VpZCcsJGZvcm1fZ3VpZCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdndWlkJywkZGlzcF9ndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3RwbF9oZWxwJyxcQ0dCZXR0ZXJGb3Jtc1x1dGlsczo6Z2V0X2Zvcm1fdHBsX2hlbHAoICRmb3JtICkpOwogICAgICAgICR0cGwtPmRpc3BsYXkoKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.EmailFixedAddressesDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcdXRpbHM7CgpjbGFzcyBFbWFpbEZpeGVkQWRkcmVzc2VzRGlzcG9zaXRpb24gZXh0ZW5kcyBEaXNwb3NpdGlvbgp7CiAgICBwcml2YXRlICRfYWRkcmVzc2VzOwogICAgcHJpdmF0ZSAkX3N1YmplY3R0ZW1wbGF0ZTsKICAgIHByaXZhdGUgJF9ib2R5dGVtcGxhdGU7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2FkZHJlc3Nlcyc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2FkZHJlc3NlczsKICAgICAgICBjYXNlICdzdWJqZWN0dGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X3N1YmplY3R0ZW1wbGF0ZSk7CiAgICAgICAgY2FzZSAnYm9keXRlbXBsYXRlJzoKICAgICAgICAgICAgcmV0dXJuIHRyaW0oJHRoaXMtPl9ib2R5dGVtcGxhdGUpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2FkZHJlc3NlcyggJGVtYWlsICkKICAgIHsKICAgICAgICAkdGhpcy0+X2FkZHJlc3NlcyA9IHRyaW0oJGVtYWlsKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2FkZHJlc3NlcygpCiAgICB7CiAgICAgICAgaWYoICEkdGhpcy0+X2FkZHJlc3NlcyApIHJldHVybjsKICAgICAgICAkdG1wID0gZXhwbG9kZSgnLCcsJHRoaXMtPl9hZGRyZXNzZXMpOwogICAgICAgICR0bXAyID0gW107CiAgICAgICAgZm9yZWFjaCggJHRtcCBhcyAkb25lICkgewogICAgICAgICAgICAkb25lID0gdHJpbSgkb25lKTsKICAgICAgICAgICAgaWYoICRvbmUgJiYgIWluX2FycmF5KCRvbmUsJHRtcDIpKSAkdG1wMltdID0gJG9uZTsKICAgICAgICB9CiAgICAgICAgaWYoIGNvdW50KCR0bXAyKSApIHJldHVybiAkdG1wMjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3N1YmplY3R0ZW1wbGF0ZSggJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5fc3ViamVjdHRlbXBsYXRlID0gdHJpbSgkZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9ib2R5dGVtcGxhdGUoICRkYXRhICkKICAgIHsKICAgICAgICAkdGhpcy0+X2JvZHl0ZW1wbGF0ZSA9IHRyaW0oJGRhdGEpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkaXNwb3NlKCBcQ0dCZXR0ZXJGb3Jtc1xGb3JtICRmb3JtLCBcQ0dCZXR0ZXJGb3Jtc1xGb3JtUmVzcG9uc2UmICRkYXRhKQogICAgewogICAgICAgICR0bXBfYWRkcmVzc2VzID0gZXhwbG9kZSgnLCcsJHRoaXMtPmFkZHJlc3Nlcyk7CgogICAgICAgICRtYWlsZXIgPSBcQ0dCZXR0ZXJGb3Jtc1x1dGlsczo6Z2V0X21haWxlciggJGZvcm0gKTsKICAgICAgICAkYWRkZWQgPSBmYWxzZTsKICAgICAgICBmb3JlYWNoKCAkdG1wX2FkZHJlc3NlcyBhcyAkYWRkciApIHsKICAgICAgICAgICAgJGFkZHIgPSB0cmltKCRhZGRyKTsKICAgICAgICAgICAgaWYoICEkYWRkciApIGNvbnRpbnVlOwogICAgICAgICAgICBpZiggIWlzX2VtYWlsKCAkYWRkcikgKSBjb250aW51ZTsKICAgICAgICAgICAgJG1haWxlci0+QWRkQWRkcmVzcyggJGFkZHIgKTsKICAgICAgICAgICAgJGFkZGVkID0gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgaWYoICEkYWRkZWQgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJ05vIHZhbGlkIGVtYWlsIGFkZHJlc3NlcyB0byBzZW5kIHRvIGZvciBFbWFpbEZpeGVkQWRkcmVzc2VzRGlzcG9zaXRpb24nKTsKICAgICAgICAkbWFpbGVyLT5TZXRTdWJqZWN0KHV0aWxzOjpwcm9jZXNzX3RlbXBsYXRlKCAkdGhpcy0+c3ViamVjdHRlbXBsYXRlLCAkZm9ybSwgJGRhdGEpICk7CiAgICAgICAgJG1haWxlci0+U2V0Qm9keSh1dGlsczo6cHJvY2Vzc190ZW1wbGF0ZSggJHRoaXMtPmJvZHl0ZW1wbGF0ZSwgJGZvcm0sICRkYXRhKSApOwogICAgICAgICRtYWlsZXItPlNlbmQoKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.EmailFixedAddressesDispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcRm9ybTsKCmNsYXNzIEVtYWlsRml4ZWRBZGRyZXNzZXNEaXNwb3NpdGlvbkVkaXRvciBleHRlbmRzIERpc3Bvc2l0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF9kaXNwOwogICAgcHJpdmF0ZSAkX21vZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoXENHQmV0dGVyRm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fZGlzcCA9IG5ldyBFbWFpbEZpeGVkQWRkcmVzc2VzRGlzcG9zaXRpb247CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2FkZHJlc3Nlcyc6CiAgICAgICAgY2FzZSAnc3ViamVjdHRlbXBsYXRlJzoKICAgICAgICBjYXNlICdib2R5dGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwLT4ka2V5OwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2FkZHJlc3NlcyggJHN0ciApCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcC0+c2V0X2FkZHJlc3NlcyggJHN0ciApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfc3ViamVjdHRlbXBsYXRlKCAkZGF0YSApCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcC0+c2V0X3N1YmplY3R0ZW1wbGF0ZSggJGRhdGEgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2JvZHl0ZW1wbGF0ZSggJGRhdGEgKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2Rpc3AtPnNldF9ib2R5dGVtcGxhdGUoICRkYXRhICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHJlc2V0X3RlbXBsYXRlcyggRm9ybSAkZm9ybSApCiAgICB7CiAgICAgICAgJHRoaXMtPnNldF9zdWJqZWN0dGVtcGxhdGUoJ1N1Ym1pc3Npb24gZnJvbSB7JHJlc3BvbnNlLT5mb3JtX25hbWV9IGZvcm0nKTsKICAgICAgICAkb3V0ID0gbnVsbDsKICAgICAgICBmb3JlYWNoKCAkZm9ybS0+ZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICAgJG5hbWUgPSAkZmllbGQtPm5hbWU7CiAgICAgICAgICAgICRsYWJlbCA9ICRmaWVsZC0+bGFiZWw7CiAgICAgICAgICAgIGlmKCAhJGxhYmVsICkgJGxhYmVsID0gJG5hbWU7CgogICAgICAgICAgICBpZiggJGZpZWxkLT5tdWx0aXBsZSApIHsKICAgICAgICAgICAgICAgICRvdXQgLj0gIntpZiAhZW1wdHkoXCQkbmFtZSl9PHA+PHN0cm9uZz4kbGFiZWw6PC9zdHJvbmc+IHtpbXBsb2RlKCcgKyAnLFwkJG5hbWUpfTwvcD57L2lmfVxuIjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRvdXQgLj0gIntpZiAhZW1wdHkoXCQkbmFtZSl9PHA+PHN0cm9uZz4kbGFiZWw6PC9zdHJvbmc+IHtcJCRuYW1lfTwvcD57L2lmfVxuIjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkdGhpcy0+c2V0X2JvZHl0ZW1wbGF0ZSgie3N0cmlwfVxuIi4kb3V0LiJ7L3N0cmlwfSIpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCduYW1lX0VtYWlsRml4ZWRBZGRyZXNzZXNEaXNwb3NpdGlvbicpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheXN0cmluZygpCiAgICB7CiAgICAgICAgJGFkZHJlc3NlcyA9ICR0aGlzLT5fZGlzcC0+Z2V0X2FkZHJlc3NlcygpOwogICAgICAgIGlmKCBjb3VudCgkYWRkcmVzc2VzKSA9PSAxICkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2QtPkxhbmcoJ2Rpc3BsYXlfRW1haWxGaXhlZEFkZHJlc3Nlc0Rpc3Bvc2l0aW9uMScsJGFkZHJlc3Nlc1swXSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCdkaXNwbGF5X0VtYWlsRml4ZWRBZGRyZXNzZXNEaXNwb3NpdGlvbjInLGNvdW50KCRhZGRyZXNzZXMpKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9kaXNwb3NpdGlvbigpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2Rpc3Bvc2l0aW9uKCBEaXNwb3NpdGlvbiAkZGlzcCApCiAgICB7CiAgICAgICAgaWYoICEgJGRpc3AgaW5zdGFuY2VvZiBFbWFpbEZpeGVkQWRkcmVzc2VzRGlzcG9zaXRpb24gKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdvYmplY3Qgb2YgdHlwZSAnLmdldF9jbGFzcygkZGlzcCkuJyBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X2Rpc3AgPSAkZGlzcDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gJ0NHQmV0dGVyRm9ybXNcXERpc3Bvc2l0aW9uc1xcRW1haWxGaXhlZEFkZHJlc3Nlc0Rpc3Bvc2l0aW9uJzsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlX2VkaXRfZm9ybShhcnJheSAkcGFyYW1zLCBcQ0dCZXR0ZXJGb3Jtc1xGb3JtICRmb3JtLCAkZm9ybV9ndWlkLCAkZGlzcF9ndWlkICkKICAgIHsKICAgICAgICAkbW9kID0gJHRoaXMtPl9tb2Q7CgogICAgICAgIGlmKCAhJGRpc3BfZ3VpZCApICR0aGlzLT5yZXNldF90ZW1wbGF0ZXMoICRmb3JtICk7CgogICAgICAgIGlmKCBcY2dlX3BhcmFtOjpleGlzdHMoICRwYXJhbXMsICdjYW5jZWwnICkgKSB7CiAgICAgICAgICAgICR0aGlzLT5nZXRfaGVscGVyKCktPmNhbmNlbCggJGZvcm1fZ3VpZCApOwogICAgICAgIH0KICAgICAgICBpZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3Jlc2V0X3RwbCcpICkgewogICAgICAgICAgICAkdGhpcy0+cmVzZXRfdGVtcGxhdGVzKCAkZm9ybSApOwogICAgICAgIH0KICAgICAgICBpZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3N1Ym1pdCcpICkgewogICAgICAgICAgICAkdGhpcy0+c2V0X2FkZHJlc3NlcyhcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2FkZHJlc3NlcycpKTsKICAgICAgICAgICAgJHRoaXMtPnNldF9zdWJqZWN0dGVtcGxhdGUoXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdzdWJqZWN0dGVtcGxhdGUnKSk7CiAgICAgICAgICAgICR0aGlzLT5zZXRfYm9keXRlbXBsYXRlKFxjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdib2R5dGVtcGxhdGUnKSk7CiAgICAgICAgICAgICR0aGlzLT5nZXRfaGVscGVyKCktPmZpbmlzaCggJGZvcm0sICRmb3JtX2d1aWQsICR0aGlzLT5nZXRfZGlzcG9zaXRpb24oKSwgJGRpc3BfZ3VpZCApOwogICAgICAgIH0KCiAgICAgICAgJHRwbCA9ICRtb2QtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9lZGl0X2VtYWlsZml4ZWRhZGRyZXNzZXNfZGlzcG9zaXRpb24udHBsJyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdlZGl0b3JfbmFtZScsZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdoYW5kbGVyJywkdGhpcyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdmb3JtX2d1aWQnLCRmb3JtX2d1aWQpOwogICAgICAgICR0cGwtPmFzc2lnbignZ3VpZCcsJGRpc3BfZ3VpZCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd0cGxfaGVscCcsXENHQmV0dGVyRm9ybXNcdXRpbHM6OmdldF9mb3JtX3RwbF9oZWxwKCAkZm9ybSApKTsKICAgICAgICAkdHBsLT5kaXNwbGF5KCk7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.EmailUserAddressDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcdXRpbHM7CgpjbGFzcyBFbWFpbFVzZXJBZGRyZXNzRGlzcG9zaXRpb24gZXh0ZW5kcyBEaXNwb3NpdGlvbgp7CiAgICBwcml2YXRlICRfZmllbGRuYW1lOwogICAgcHJpdmF0ZSAkX3N1YmplY3R0ZW1wbGF0ZTsKICAgIHByaXZhdGUgJF9ib2R5dGVtcGxhdGU7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2ZpZWxkbmFtZSc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2ZpZWxkbmFtZTsKICAgICAgICBjYXNlICdzdWJqZWN0dGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X3N1YmplY3R0ZW1wbGF0ZSk7CiAgICAgICAgY2FzZSAnYm9keXRlbXBsYXRlJzoKICAgICAgICAgICAgcmV0dXJuIHRyaW0oJHRoaXMtPl9ib2R5dGVtcGxhdGUpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZpZWxkbmFtZSggJGVtYWlsICkKICAgIHsKICAgICAgICAkdGhpcy0+X2ZpZWxkbmFtZSA9IHRyaW0oJGVtYWlsKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpZWxkbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZmllbGRuYW1lOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfc3ViamVjdHRlbXBsYXRlKCAkZGF0YSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9zdWJqZWN0dGVtcGxhdGUgPSB0cmltKCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2JvZHl0ZW1wbGF0ZSggJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5fYm9keXRlbXBsYXRlID0gdHJpbSgkZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGRpc3Bvc2UoIFxDR0JldHRlckZvcm1zXEZvcm0gJGZvcm0sIFxDR0JldHRlckZvcm1zXEZvcm1SZXNwb25zZSYgJHJlc3BvbnNlICkKICAgIHsKICAgICAgICBpZiggISR0aGlzLT5maWVsZG5hbWUgKSByZXR1cm47CiAgICAgICAgJGFkZHIgPSAkcmVzcG9uc2UtPmdldF9maWVsZF92YWx1ZSgkdGhpcy0+ZmllbGRuYW1lKTsKICAgICAgICBpZiggISRhZGRyIHx8ICFpc19lbWFpbCgkYWRkcikgKSByZXR1cm47CgogICAgICAgICRtYWlsZXIgPSBcQ0dCZXR0ZXJGb3Jtc1x1dGlsczo6Z2V0X21haWxlciggJGZvcm0gKTsKICAgICAgICAkbWFpbGVyLT5BZGRBZGRyZXNzKCAkYWRkciApOwogICAgICAgICRtYWlsZXItPlNldFN1YmplY3QodXRpbHM6OnByb2Nlc3NfdGVtcGxhdGUoICR0aGlzLT5zdWJqZWN0dGVtcGxhdGUsICRmb3JtLCAkcmVzcG9uc2UpICk7CiAgICAgICAgJG1haWxlci0+U2V0Qm9keSh1dGlsczo6cHJvY2Vzc190ZW1wbGF0ZSggJHRoaXMtPmJvZHl0ZW1wbGF0ZSwgJGZvcm0sICRyZXNwb25zZSkgKTsKICAgICAgICAkbWFpbGVyLT5TZW5kKCk7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.EmailUserAddressDispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcRm9ybTsKCmNsYXNzIEVtYWlsVXNlckFkZHJlc3NEaXNwb3NpdGlvbkVkaXRvciBleHRlbmRzIERpc3Bvc2l0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF9kaXNwOwogICAgcHJpdmF0ZSAkX21vZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoXENHQmV0dGVyRm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fZGlzcCA9IG5ldyBFbWFpbFVzZXJBZGRyZXNzRGlzcG9zaXRpb247CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2ZpZWxkbmFtZSc6CiAgICAgICAgY2FzZSAnc3ViamVjdHRlbXBsYXRlJzoKICAgICAgICBjYXNlICdib2R5dGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwLT4ka2V5OwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZpZWxkbmFtZSggJHN0ciApCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcC0+c2V0X2ZpZWxkbmFtZSggJHN0ciApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfc3ViamVjdHRlbXBsYXRlKCAkZGF0YSApCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcC0+c2V0X3N1YmplY3R0ZW1wbGF0ZSggJGRhdGEgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2JvZHl0ZW1wbGF0ZSggJGRhdGEgKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2Rpc3AtPnNldF9ib2R5dGVtcGxhdGUoICRkYXRhICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHJlc2V0X3RlbXBsYXRlcyggRm9ybSAkZm9ybSApCiAgICB7CiAgICAgICAgJHRoaXMtPnNldF9zdWJqZWN0dGVtcGxhdGUoJ1N1Ym1pc3Npb24gZnJvbSB7JHJlc3BvbnNlLT5mb3JtX25hbWV9IGZvcm0nKTsKICAgICAgICAkb3V0ID0gbnVsbDsKICAgICAgICBmb3JlYWNoKCAkZm9ybS0+ZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICAgJG5hbWUgPSAkZmllbGQtPm5hbWU7CiAgICAgICAgICAgICRsYWJlbCA9ICRmaWVsZC0+bGFiZWw7CiAgICAgICAgICAgIGlmKCAhJGxhYmVsICkgJGxhYmVsID0gJG5hbWU7CgogICAgICAgICAgICBpZiggJGZpZWxkLT5tdWx0aXBsZSApIHsKICAgICAgICAgICAgICAgICRvdXQgLj0gIntpZiAhZW1wdHkoXCQkbmFtZSl9PHA+PHN0cm9uZz4kbGFiZWw6PC9zdHJvbmc+IHtpbXBsb2RlKCcgKyAnLFwkJG5hbWUpfTwvcD57L2lmfVxuIjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRvdXQgLj0gIntpZiAhZW1wdHkoXCQkbmFtZSl9PHA+PHN0cm9uZz4kbGFiZWw6PC9zdHJvbmc+IHtcJCRuYW1lfTwvcD57L2lmfVxuIjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkdGhpcy0+c2V0X2JvZHl0ZW1wbGF0ZSgie3N0cmlwfVxuIi4kb3V0LiJ7L3N0cmlwfSIpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCduYW1lX0VtYWlsVXNlckFkZHJlc3NEaXNwb3NpdGlvbicpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheXN0cmluZygpCiAgICB7CiAgICAgICAgJGZpZWxkbmFtZSA9ICR0aGlzLT5fZGlzcC0+Z2V0X2ZpZWxkbmFtZSgpOwogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnZGlzcGxheV9FbWFpbFVzZXJBZGRyZXNzRGlzcG9zaXRpb24nLCRmaWVsZG5hbWUpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcG9zaXRpb24oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2Rpc3A7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9kaXNwb3NpdGlvbiggRGlzcG9zaXRpb24gJGRpc3AgKQogICAgewogICAgICAgIGlmKCAhICRkaXNwIGluc3RhbmNlb2YgRW1haWxVc2VyQWRkcmVzc0Rpc3Bvc2l0aW9uICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignb2JqZWN0IG9mIHR5cGUgJy5nZXRfY2xhc3MoJGRpc3ApLicgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgJHRoaXMtPl9kaXNwID0gJGRpc3A7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9vdXRwdXRjbGFzcygpCiAgICB7CiAgICAgICAgcmV0dXJuICdDR0JldHRlckZvcm1zXFxEaXNwb3NpdGlvbnNcXEVtYWlsVXNlckFkZHJlc3NEaXNwb3NpdGlvbic7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZV9lZGl0X2Zvcm0oYXJyYXkgJHBhcmFtcywgXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgJGZvcm1fZ3VpZCwgJGRpc3BfZ3VpZCApCiAgICB7CiAgICAgICAgJG1vZCA9ICR0aGlzLT5fbW9kOwoKICAgICAgICBpZiggISRkaXNwX2d1aWQgKSAkdGhpcy0+cmVzZXRfdGVtcGxhdGVzKCAkZm9ybSApOwoKICAgICAgICBpZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCAkcGFyYW1zLCAnY2FuY2VsJyApICkgewogICAgICAgICAgICAkdGhpcy0+Z2V0X2hlbHBlcigpLT5jYW5jZWwoICRmb3JtX2d1aWQgKTsKICAgICAgICB9CiAgICAgICAgaWYoIFxjZ2VfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdyZXNldF90cGwnKSApIHsKICAgICAgICAgICAgJHRoaXMtPnJlc2V0X3RlbXBsYXRlcyggJGZvcm0gKTsKICAgICAgICB9CiAgICAgICAgaWYoIFxjZ2VfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdzdWJtaXQnKSApIHsKICAgICAgICAgICAgJHRoaXMtPnNldF9maWVsZG5hbWUoXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdmaWVsZG5hbWUnKSk7CiAgICAgICAgICAgICR0aGlzLT5zZXRfc3ViamVjdHRlbXBsYXRlKFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnc3ViamVjdHRlbXBsYXRlJykpOwogICAgICAgICAgICAkdGhpcy0+c2V0X2JvZHl0ZW1wbGF0ZShcY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnYm9keXRlbXBsYXRlJykpOwogICAgICAgICAgICAkdGhpcy0+Z2V0X2hlbHBlcigpLT5maW5pc2goICRmb3JtLCAkZm9ybV9ndWlkLCAkdGhpcy0+Z2V0X2Rpc3Bvc2l0aW9uKCksICRkaXNwX2d1aWQgKTsKICAgICAgICB9CgogICAgICAgICR0cGwgPSAkbW9kLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fZWRpdF9lbWFpbHVzZXJhZGRyZXNzX2Rpc3Bvc2l0aW9uLnRwbCcpOwogICAgICAgICR0cGwtPmFzc2lnbignZWRpdG9yX25hbWUnLGdldF9jbGFzcygkdGhpcykpOwogICAgICAgICR0cGwtPmFzc2lnbignZmllbGRfbGlzdCcsJGZvcm0tPmxpc3RfZmllbGRzX2J5X3R5cGVfb3JfcHJpbWl0aXZlKCdlbWFpbCcsJ2VtYWlsJykpOwogICAgICAgICR0cGwtPmFzc2lnbignaGFuZGxlcicsJHRoaXMpOwogICAgICAgICR0cGwtPmFzc2lnbignZm9ybV9ndWlkJywkZm9ybV9ndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2d1aWQnLCRkaXNwX2d1aWQpOwogICAgICAgICR0cGwtPmFzc2lnbigndHBsX2hlbHAnLFxDR0JldHRlckZvcm1zXHV0aWxzOjpnZXRfZm9ybV90cGxfaGVscCggJGZvcm0gKSk7CiAgICAgICAgJHRwbC0+ZGlzcGxheSgpOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.FlatFileDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcdXRpbHM7CgpjbGFzcyBGbGF0RmlsZURpc3Bvc2l0aW9uIGV4dGVuZHMgRGlzcG9zaXRpb24KewogICAgcHJpdmF0ZSAkX2ZpbGVuYW1lOwogICAgcHJpdmF0ZSAkX2hlYWRlcnRlbXBsYXRlOwogICAgcHJpdmF0ZSAkX2VudHJ5dGVtcGxhdGU7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2ZpbGVuYW1lJzoKICAgICAgICAgICAgcmV0dXJuIHRyaW0oJHRoaXMtPl9maWxlbmFtZSk7CiAgICAgICAgY2FzZSAnaGVhZGVydGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X2hlYWRlcnRlbXBsYXRlKTsKICAgICAgICBjYXNlICdlbnRyeXRlbXBsYXRlJzoKICAgICAgICAgICAgcmV0dXJuIHRyaW0oJHRoaXMtPl9lbnRyeXRlbXBsYXRlKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9maWxlbmFtZSggJGZpbGVuYW1lICkKICAgIHsKICAgICAgICAkdGhpcy0+X2ZpbGVuYW1lID0gdHJpbSgkZmlsZW5hbWUpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfaGVhZGVydGVtcGxhdGUoICRkYXRhICkKICAgIHsKICAgICAgICAkdGhpcy0+X2hlYWRlcnRlbXBsYXRlID0gdHJpbSgkZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9lbnRyeXRlbXBsYXRlKCAkZGF0YSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9lbnRyeXRlbXBsYXRlID0gdHJpbSgkZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGRpc3Bvc2UoIFxDR0JldHRlckZvcm1zXEZvcm0gJGZvcm0sIFxDR0JldHRlckZvcm1zXEZvcm1SZXNwb25zZSYgJGRhdGEpCiAgICB7CiAgICAgICAgJGNvbmZpZyA9IFxjbXNfY29uZmlnOjpnZXRfaW5zdGFuY2UoKTsKICAgICAgICAkdmFsID0gJGRhdGEtPnskdGhpcy0+ZmllbGR9OwoKICAgICAgICAkZmlsZW5hbWUgPSAkY29uZmlnWydyb290X3BhdGgnXS4nLycuJHRoaXMtPmZpbGVuYW1lOwogICAgICAgICRkaXIgPSBkaXJuYW1lKCRmaWxlbmFtZSk7CiAgICAgICAgaWYoICFpc19kaXIoICRkaXIgKSAmJiB1dGlsczo6aXNfY21zbXNfcmVsYXRpdmUoICRkaXIgKSApIHsKICAgICAgICAgICAgJHJlcyA9IG1rZGlyKCAkZGlyLCAwNzc3LCBUUlVFICk7CiAgICAgICAgICAgIGlmKCAhJHJlcyApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignU1lTVEVNIEVSUk9SOiAgQ291bGQgbm90IGNyZWF0ZSBkaXJlY3RvcnkgYXQgJy4kZGlyKTsKICAgICAgICB9CiAgICAgICAgaWYoICF1dGlsczo6Y2FuX3dyaXRlX2ZpbGUoICRmaWxlbmFtZSkgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJ1NZU1RFTSBFUlJPUjogQ2Fubm90IHdyaXRlIHRvICcuJGZpbGVuYW1lKTsKCiAgICAgICAgaWYoICFpc19maWxlKCRmaWxlbmFtZSkgKSB7CiAgICAgICAgICAgICRvdXRwdXQgPSB1dGlsczo6cHJvY2Vzc190ZW1wbGF0ZSggJHRoaXMtPmhlYWRlcnRlbXBsYXRlLCAkZm9ybSwgJGRhdGEgKTsKICAgICAgICAgICAgZmlsZV9wdXRfY29udGVudHMoJGZpbGVuYW1lLCRvdXRwdXQpOwogICAgICAgIH0KCiAgICAgICAgLy8gcHJvY2VzcyB0ZW1wbGF0ZSBmb3IgdGhlIGVudHJ5LCAgYW5kIHdyaXRlLgogICAgICAgICRvdXRwdXQgPSB1dGlsczo6cHJvY2Vzc190ZW1wbGF0ZSggJHRoaXMtPmVudHJ5dGVtcGxhdGUsICRmb3JtLCAkZGF0YSApOwogICAgICAgIGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlbmFtZSwkb3V0cHV0LEZJTEVfQVBQRU5EKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.FlatFileDispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcRm9ybTsKCmNsYXNzIEZsYXRGaWxlRGlzcG9zaXRpb25FZGl0b3IgZXh0ZW5kcyBEaXNwb3NpdGlvbkVkaXRvcgp7CiAgICBwcml2YXRlICRfZGlzcDsKICAgIHByaXZhdGUgJF9tb2Q7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFxDR0JldHRlckZvcm1zICRtb2QgKQogICAgewogICAgICAgICR0aGlzLT5fbW9kID0gJG1vZDsKICAgICAgICAkdGhpcy0+X2Rpc3AgPSBuZXcgRmxhdEZpbGVEaXNwb3NpdGlvbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAnZmlsZW5hbWUnOgogICAgICAgIGNhc2UgJ2hlYWRlcnRlbXBsYXRlJzoKICAgICAgICBjYXNlICdlbnRyeXRlbXBsYXRlJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcC0+JGtleTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9maWxlbmFtZSggJGZpbGVuYW1lICkKICAgIHsKICAgICAgICAkdGhpcy0+X2Rpc3AtPnNldF9maWxlbmFtZSggJGZpbGVuYW1lICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9oZWFkZXJ0ZW1wbGF0ZSggJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5fZGlzcC0+c2V0X2hlYWRlcnRlbXBsYXRlKCAkZGF0YSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZW50cnl0ZW1wbGF0ZSggJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5fZGlzcC0+c2V0X2VudHJ5dGVtcGxhdGUoICRkYXRhICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHJlc2V0X3RlbXBsYXRlcyggRm9ybSAkZm9ybSApCiAgICB7CiAgICAgICAgJG5hbWVzID0gJGZvcm0tPmdldF9maWVsZG5hbWVzKCk7CiAgICAgICAgJHRoaXMtPnNldF9oZWFkZXJ0ZW1wbGF0ZSggJyMnLmltcGxvZGUoJywnLCRuYW1lcykuJ3skRU9MfScgKTsKCiAgICAgICAgJHRtcCA9IFtdOwogICAgICAgIGZvcmVhY2goICRuYW1lcyBhcyAkbmFtZSApIHsKICAgICAgICAgICAgaWYoICRmb3JtLT5pc19tdWx0aXZhbHVlX2ZpZWxkKCAkbmFtZSApICkgewogICAgICAgICAgICAgICAgJHRtcFtdID0gIlwie2lmICFlbXB0eShcJCRuYW1lKX17aW1wbG9kZSgnKycsXCQkbmFtZSl9ey9pZn1cIlxuIjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICR0bXBbXSA9ICcieyQnLiRuYW1lLid8ZGVmYXVsdDpcJ1wnfSInLiJcbiI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJHRoaXMtPnNldF9lbnRyeXRlbXBsYXRlKCAie3N0cmlwfVxuIi5pbXBsb2RlKCcsJywkdG1wKS4ie1wkRU9MfXsvc3RyaXB9IiApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCduYW1lX0ZsYXRGaWxlRGlzcG9zaXRpb24nKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnZGlzcGxheV9GbGF0RmlsZURpc3Bvc2l0aW9uJywkdGhpcy0+ZmlsZW5hbWUpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfc2V0dGluZ3NfZm9ybV91cmwoYXJyYXkgJHBhcmFtcyA9IG51bGwpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5jcmVhdGVfdXJsKCAnbTFfJywgJ2FkbWluX2VkaXRfZmxhdGZpbGVkaXNwb3NpdGlvbicsICcnLCAkcGFyYW1zKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3Bvc2l0aW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZGlzcG9zaXRpb24oIERpc3Bvc2l0aW9uICRkaXNwICkKICAgIHsKICAgICAgICBpZiggISAkZGlzcCBpbnN0YW5jZW9mIEZsYXRGaWxlRGlzcG9zaXRpb24gKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdvYmplY3Qgb2YgdHlwZSAnLmdldF9jbGFzcygkZGlzcCkuJyBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X2Rpc3AgPSAkZGlzcDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gJ0NHQmV0dGVyRm9ybXNcXERpc3Bvc2l0aW9uc1xcRmxhdEZpbGVEaXNwb3NpdGlvbic7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZV9lZGl0X2Zvcm0oYXJyYXkgJHBhcmFtcywgXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgJGZvcm1fZ3VpZCwgJGRpc3BfZ3VpZCkKICAgIHsKICAgICAgICAkbW9kID0gJHRoaXMtPl9tb2Q7CgogICAgICAgIGlmKCAhJGRpc3BfZ3VpZCApICR0aGlzLT5yZXNldF90ZW1wbGF0ZXMoICRmb3JtICk7CgogICAgICAgIGlmKCBcY2dlX3BhcmFtOjpleGlzdHMoJHBhcmFtcywnY2FuY2VsJykgKSB7CiAgICAgICAgICAgICR0aGlzLT5nZXRfaGVscGVyKCktPmNhbmNlbCggJGZvcm1fZ3VpZCApOwogICAgICAgIH0KICAgICAgICBpZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3Jlc2V0X3RwbCcpICkgewogICAgICAgICAgICAkdGhpcy0+cmVzZXRfdGVtcGxhdGVzKCAkZm9ybSApOwogICAgICAgIH0KICAgICAgICBpZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3N1Ym1pdCcpICkgewogICAgICAgICAgICAkdGhpcy0+c2V0X2ZpbGVuYW1lKFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZmlsZW5hbWUnKSk7CiAgICAgICAgICAgICR0aGlzLT5zZXRfaGVhZGVydGVtcGxhdGUoXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdoZWFkZXJ0ZW1wbGF0ZScpKTsKICAgICAgICAgICAgJHRoaXMtPnNldF9lbnRyeXRlbXBsYXRlKFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZW50cnl0ZW1wbGF0ZScpKTsKCiAgICAgICAgICAgIC8vIG5vdyBoYXZlIHRoZSBkaXNwb3NpdGlvbiBvYmplY3QsIHN0b3JlIGl0LgogICAgICAgICAgICAkdGhpcy0+Z2V0X2hlbHBlcigpLT5maW5pc2goICRmb3JtLCAkZm9ybV9ndWlkLCAkdGhpcy0+Z2V0X2Rpc3Bvc2l0aW9uKCksICRndWlkICk7CiAgICAgICAgfQoKICAgICAgICAkdHBsID0gJG1vZC0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX2VkaXRfZmxhdGZpbGVkaXNwb3NpdGlvbi50cGwnKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2VkaXRvcl9uYW1lJyxnZXRfY2xhc3MoJHRoaXMpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2hhbmRsZXInLCR0aGlzKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2Zvcm1fZ3VpZCcsJGZvcm1fZ3VpZCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdndWlkJywkZGlzcF9ndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3RwbF9oZWxwJyxcQ0dCZXR0ZXJGb3Jtc1x1dGlsczo6Z2V0X2Zvcm1fdHBsX2hlbHAoICRmb3JtICkpOwogICAgICAgICR0cGwtPmRpc3BsYXkoKTsKICAgIH0KCn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.GUIDFileDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcdXRpbHM7CgpjbGFzcyBHVUlERmlsZURpc3Bvc2l0aW9uIGV4dGVuZHMgRGlzcG9zaXRpb24KewogICAgcHVibGljIGZ1bmN0aW9uIGRpc3Bvc2UoIFxDR0JldHRlckZvcm1zXEZvcm0gJGZvcm0sIFxDR0JldHRlckZvcm1zXEZvcm1SZXNwb25zZSYgJHJlc3ApCiAgICB7CiAgICAgICAgJGRlc3RkaXIgPSAkdGhpcy0+Z2V0X2Rlc3RkaXIoICRyZXNwICk7CiAgICAgICAgdXRpbHM6Om1rZGlyciggJGRlc3RkaXIgKTsKCiAgICAgICAgLy8gbm93LCBmb3IgZWFjaCBmaWxlIGZpZWxkLi4gd2UgZ2V0IHRoZSB2YWx1ZXMKICAgICAgICAkbW92ZWRfZmlsZXMgPSBmYWxzZTsKICAgICAgICBmb3JlYWNoKCAkZm9ybS0+ZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICAgaWYoICEgJGZpZWxkIGluc3RhbmNlb2YgXENHQmV0dGVyRm9ybXNcRm9ybUZpbGVGaWVsZCApIGNvbnRpbnVlOwogICAgICAgICAgICAkbmFtZSA9ICRmaWVsZC0+bmFtZTsKICAgICAgICAgICAgaWYoIGVuZHN3aXRoKCAkbmFtZSwgJ1tdJykgKSAkbmFtZSA9IHN1YnN0cigkbmFtZSwwLC0yKTsKICAgICAgICAgICAgJHZhbHVlID0gJHJlc3AtPiRuYW1lOwogICAgICAgICAgICBpZiggISR2YWx1ZSApIGNvbnRpbnVlOwoKICAgICAgICAgICAgJGZpbGVuYW1lcyA9IFtdOwogICAgICAgICAgICAkZmlsZXMgPSAkcmVzcC0+bGlzdF9maWxlcygkbmFtZSk7CiAgICAgICAgICAgIGlmKCAhY291bnQoJGZpbGVzKSApIGNvbnRpbnVlOwogICAgICAgICAgICBmb3JlYWNoKCAkZmlsZXMgYXMgJGZpbGUgKSB7CiAgICAgICAgICAgICAgICBpZiggISRmaWxlWyduYW1lJ10gfHwgISRmaWxlWyd0bXBfbmFtZSddICkgY29udGludWU7CiAgICAgICAgICAgICAgICAkZGVzdG5hbWUgPSAkZGVzdGRpci4nLycuJGZpbGVbJ25hbWUnXTsKICAgICAgICAgICAgICAgIGNtc19tb3ZlX3VwbG9hZGVkX2ZpbGUoICRmaWxlWyd0bXBfbmFtZSddLCAkZGVzdG5hbWUgKTsKICAgICAgICAgICAgICAgICRmaWxlbmFtZXNbXSA9ICRkZXN0bmFtZTsKICAgICAgICAgICAgICAgICRtb3ZlZF9maWxlcyA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gcHV0IGEgbWV0YSBkYXRhIGZpbGUgaW4gdGhpcyBkaXJlY3Rvcnkgc28gdGhhdCB3ZSBjYW4gdHJhY2sgdGhpcyBsYXRlci4KICAgICAgICAgICAgaWYoIGNvdW50KCAkZmlsZW5hbWVzICkgPiAxICkgewogICAgICAgICAgICAgICAgJHJlc3AtPm1vZGlmeV92YWx1ZSggJG5hbWUsICRmaWxlbmFtZXMgKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRyZXNwLT5tb2RpZnlfdmFsdWUoICRuYW1lLCAkZmlsZW5hbWVzWzBdICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYoICRtb3ZlZF9maWxlcyApICR0aGlzLT5jcmVhdGVfbWV0YWZpbGUoICRmb3JtLCAkcmVzcCApOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfZGVzdGRpciggXENHQmV0dGVyRm9ybXNcRm9ybVJlc3BvbnNlICRyZXNwICkKICAgIHsKICAgICAgICAkY29uZmlnID0gXGNtc19jb25maWc6OmdldF9pbnN0YW5jZSgpOwogICAgICAgICRwYXJlbnRfZGlyID0gJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uJy9fQ0dCZXR0ZXJGb3Jtcyc7CiAgICAgICAgJGRlc3RkaXIgPSAkcGFyZW50X2Rpci4nLycuJHJlc3AtPmd1aWQ7CiAgICAgICAgcmV0dXJuICRkZXN0ZGlyOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBjcmVhdGVfbWV0YWZpbGUoXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgXENHQmV0dGVyRm9ybXNcRm9ybVJlc3BvbnNlICRyZXNwKQogICAgewogICAgICAgICRvdXQgPSBbXTsKICAgICAgICAkb3V0Wydmb3JtX25hbWUnXSA9ICRmb3JtLT5uYW1lOwogICAgICAgICRvdXRbJ3Jlc3BvbnNlaWQnXSA9ICRyZXNwLT5nZXRfcmVxdWVzdGlkKCk7CiAgICAgICAgJG91dFsnZGF0ZSddID0gJHJlc3AtPmdldF90aW1lKCk7CiAgICAgICAgJGZpbGVuYW1lID0gJHRoaXMtPmdldF9kZXN0ZGlyKCAkcmVzcCApLicvLm1ldGEuanNvbic7CiAgICAgICAgZmlsZV9wdXRfY29udGVudHMoJGZpbGVuYW1lLGpzb25fZW5jb2RlKCRvdXQpKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.HookDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcdXRpbHM7CgpjbGFzcyBIb29rRGlzcG9zaXRpb24gZXh0ZW5kcyBEaXNwb3NpdGlvbgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gZGlzcG9zZSggXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgXENHQmV0dGVyRm9ybXNcRm9ybVJlc3BvbnNlJiAkcmVzcG9uc2UgKQogICAgewogICAgICAgIFxDTVNNU1xIb29rTWFuYWdlcjo6ZG9faG9vaygnQ0dCZXR0ZXJGb3Jtczo6ZGlzcG9zZScsICRyZXNwb25zZSApOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.RedirectURLDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcdXRpbHM7CgpjbGFzcyBSZWRpcmVjdFVSTERpc3Bvc2l0aW9uIGV4dGVuZHMgRGlzcG9zaXRpb24KewogICAgcHJpdmF0ZSAkX3RwbDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAndHBsJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fdHBsOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3RwbCggJHRwbCApCiAgICB7CiAgICAgICAgJHRoaXMtPl90cGwgPSB0cmltKCR0cGwpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkaXNwb3NlKCBcQ0dCZXR0ZXJGb3Jtc1xGb3JtICRmb3JtLCBcQ0dCZXR0ZXJGb3Jtc1xGb3JtUmVzcG9uc2UmICRyZXNwb25zZSkKICAgIHsKICAgICAgICBpZiggISR0aGlzLT50cGwgKSByZXR1cm47CiAgICAgICAgJG91dCA9IHV0aWxzOjpwcm9jZXNzX3RlbXBsYXRlKCR0aGlzLT50cGwsICRmb3JtLCAkcmVzcG9uc2UpOwogICAgICAgICRvdXQgPSB0cmltKCRvdXQpOwogICAgICAgIGlmKCAhJG91dCApIHJldHVybjsKCiAgICAgICAgcmVkaXJlY3QoJG91dCk7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.RedirectURLDispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcRm9ybTsKCmNsYXNzIFJlZGlyZWN0VVJMRGlzcG9zaXRpb25FZGl0b3IgZXh0ZW5kcyBEaXNwb3NpdGlvbkVkaXRvcgp7CiAgICBwcml2YXRlICRfZGlzcDsKICAgIHByaXZhdGUgJF9tb2Q7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFxDR0JldHRlckZvcm1zICRtb2QgKQogICAgewogICAgICAgICR0aGlzLT5fbW9kID0gJG1vZDsKICAgICAgICAkdGhpcy0+X2Rpc3AgPSBuZXcgUmVkaXJlY3RVUkxEaXNwb3NpdGlvbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAndHBsJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcC0+dHBsOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3RwbCggJHRwbCApCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcC0+c2V0X3RwbCggJHRwbCApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCduYW1lX1JlZGlyZWN0VVJMRGlzcG9zaXRpb24nKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnZGlzcGxheV9SZWRpcmVjdFVSTERpc3Bvc2l0aW9uJywkdGhpcy0+dXJsKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3Bvc2l0aW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZGlzcG9zaXRpb24oIERpc3Bvc2l0aW9uICRkaXNwICkKICAgIHsKICAgICAgICBpZiggISAkZGlzcCBpbnN0YW5jZW9mIFJlZGlyZWN0VVJMRGlzcG9zaXRpb24gKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdvYmplY3Qgb2YgdHlwZSAnLmdldF9jbGFzcygkZGlzcCkuJyBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X2Rpc3AgPSAkZGlzcDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gJ0NHQmV0dGVyRm9ybXNcXERpc3Bvc2l0aW9uc1xcUmVkaXJlY3RVUkxEaXNwb3NpdGlvbic7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZV9lZGl0X2Zvcm0oYXJyYXkgJHBhcmFtcywgXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgJGZvcm1fZ3VpZCwgJGRpc3BfZ3VpZCApCiAgICB7CiAgICAgICAgJG1vZCA9ICR0aGlzLT5fbW9kOwoKICAgICAgICBpZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCAkcGFyYW1zLCAnY2FuY2VsJyApICkgewogICAgICAgICAgICAkdGhpcy0+Z2V0X2hlbHBlcigpLT5jYW5jZWwoICRmb3JtX2d1aWQgKTsKICAgICAgICB9CiAgICAgICAgaWYoIFxjZ2VfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdzdWJtaXQnKSApIHsKICAgICAgICAgICAgJHRoaXMtPnNldF90cGwoXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCd0cGwnKSk7CiAgICAgICAgICAgICR0aGlzLT5nZXRfaGVscGVyKCktPmZpbmlzaCggJGZvcm0sICRmb3JtX2d1aWQsICR0aGlzLT5nZXRfZGlzcG9zaXRpb24oKSwgJGRpc3BfZ3VpZCApOwogICAgICAgIH0KCiAgICAgICAgJHRwbCA9ICRtb2QtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9lZGl0X3JlZGlyZWN0dXJsX2Rpc3Bvc2l0aW9uLnRwbCcpOwogICAgICAgICR0cGwtPmFzc2lnbignZWRpdG9yX25hbWUnLGdldF9jbGFzcygkdGhpcykpOwogICAgICAgICR0cGwtPmFzc2lnbignaGFuZGxlcicsJHRoaXMpOwogICAgICAgICR0cGwtPmFzc2lnbignZm9ybV9ndWlkJywkZm9ybV9ndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2d1aWQnLCRkaXNwX2d1aWQpOwogICAgICAgICR0cGwtPmFzc2lnbigndHBsX2hlbHAnLFxDR0JldHRlckZvcm1zXHV0aWxzOjpnZXRfZm9ybV90cGxfaGVscCggJGZvcm0gKSk7CiAgICAgICAgJHRwbC0+ZGlzcGxheSgpOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.SessionDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcdXRpbHM7CgpjbGFzcyBTZXNzaW9uRGlzcG9zaXRpb24gZXh0ZW5kcyBEaXNwb3NpdGlvbgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gZGlzcG9zZSggXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgXENHQmV0dGVyRm9ybXNcRm9ybVJlc3BvbnNlJiAkcmVzcCkKICAgIHsKICAgICAgICAvLyB5ZXAsIGl0J3MgdGhhdCB0cml2aWFsLgogICAgICAgICRfU0VTU0lPTlskZm9ybS0+bmFtZV0gPSAkcmVzcDsKICAgIH0KCn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.SessionDispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcRm9ybTsKCmNsYXNzIFNlc3Npb25EaXNwb3NpdGlvbkVkaXRvciBleHRlbmRzIERpc3Bvc2l0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF9kaXNwOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChcQ0dCZXR0ZXJGb3JtcyAkbW9kICkKICAgIHsKICAgICAgICAkdGhpcy0+X21vZCA9ICRtb2Q7CiAgICAgICAgJHRoaXMtPl9kaXNwID0gbmV3IFNlc3Npb25EaXNwb3NpdGlvbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnbmFtZV9TZXNzaW9uRGlzcG9zaXRpb24nKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnbmFtZV9TZXNzaW9uRGlzcG9zaXRpb24nKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3Bvc2l0aW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZGlzcG9zaXRpb24oIERpc3Bvc2l0aW9uICRkaXNwICkKICAgIHsKICAgICAgICBpZiggISAkZGlzcCBpbnN0YW5jZW9mIFNlc3Npb25EaXNwb3NpdGlvbiApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ29iamVjdCBvZiB0eXBlICcuZ2V0X2NsYXNzKCRkaXNwKS4nIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICR0aGlzLT5fZGlzcCA9ICRkaXNwOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3V0cHV0Y2xhc3MoKQogICAgewogICAgICAgIHJldHVybiBnZXRfY2xhc3MoJHRoaXMtPl9kaXNwKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX2ludGVyZmFjZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfZWRpdF9mb3JtKCBhcnJheSAkcGFyYW1zLCBcQ0dCZXR0ZXJGb3Jtc1xGb3JtICRmb3JtLCAkZm9ybV9ndWlkLCAkZGlzcF9ndWlkICkKICAgIHsKICAgICAgICAvLyBkbyBub3RoaW5nLCBubyBpbnRlcmZhY2UuCiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzLg==]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.StopDisposingDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcdXRpbHM7CgpjbGFzcyBTdG9wRGlzcG9zaW5nRGlzcG9zaXRpb24gZXh0ZW5kcyBEaXNwb3NpdGlvbgp7CiAgICBwcml2YXRlICRfdHBsOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCggJGtleSApCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ3RwbCc6CiAgICAgICAgY2FzZSAndGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl90cGw7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfdGVtcGxhdGUoICRzdHIgKQogICAgewogICAgICAgICR0aGlzLT5fdHBsID0gdHJpbSgkc3RyKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZGlzcG9zZSggXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgXENHQmV0dGVyRm9ybXNcRm9ybVJlc3BvbnNlJiAkcmVzcG9uc2UgKQogICAgewogICAgICAgIGlmKCAhJHRoaXMtPl90cGwgKSByZXR1cm47CiAgICAgICAgJG91dCA9IHV0aWxzOjpwcm9jZXNzX3RlbXBsYXRlKCAkdGhpcy0+dHBsLCAkZm9ybSwgJHJlc3BvbnNlICk7CiAgICAgICAgJG91dCA9IHRyaW0oJG91dCk7CiAgICAgICAgaWYoICEkb3V0ICkgcmV0dXJuOwoKICAgICAgICB0aHJvdyBuZXcgXENHQmV0dGVyRm9ybXNcU3RvcERpc3Bvc2l0aW9uVHJpZ2dlcignc3RvcHBlZCcpOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.StopDisposingDispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcRm9ybTsKCmNsYXNzIFN0b3BEaXNwb3NpbmdEaXNwb3NpdGlvbkVkaXRvciBleHRlbmRzIERpc3Bvc2l0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF9kaXNwOwogICAgcHJpdmF0ZSAkX21vZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoXENHQmV0dGVyRm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fZGlzcCA9IG5ldyBTdG9wRGlzcG9zaW5nRGlzcG9zaXRpb247CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ3RwbCc6CiAgICAgICAgY2FzZSAndGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwLT50ZW1wbGF0ZTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF90ZW1wbGF0ZSggJHN0ciApCiAgICB7CiAgICAgICAgJHRoaXMtPl9kaXNwLT5zZXRfdGVtcGxhdGUoICRzdHIgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnbmFtZV9TdG9wRGlzcG9zaW5nRGlzcG9zaXRpb24nKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnZGlzcGxheV9TdG9wRGlzcG9zaW5nRGlzcG9zaXRpb24nKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3NldHRpbmdzX2Zvcm1fdXJsKGFycmF5ICRwYXJhbXMgPSBudWxsKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+Y3JlYXRlX3VybCggJ20xXycsICdhZG1pbl9lZGl0X2RkZmlsZV9kaXNwb3NpdGlvbicsICcnLCAkcGFyYW1zKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3Bvc2l0aW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZGlzcG9zaXRpb24oIERpc3Bvc2l0aW9uICRkaXNwICkKICAgIHsKICAgICAgICBpZiggISAkZGlzcCBpbnN0YW5jZW9mIFN0b3BEaXNwb3NpbmdEaXNwb3NpdGlvbiApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ29iamVjdCBvZiB0eXBlICcuZ2V0X2NsYXNzKCRkaXNwKS4nIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICR0aGlzLT5fZGlzcCA9ICRkaXNwOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3V0cHV0Y2xhc3MoKQogICAgewogICAgICAgIHJldHVybiAnQ0dCZXR0ZXJGb3Jtc1xcRGlzcG9zaXRpb25zXFxTdG9wRGlzcG9zaW5nRGlzcG9zaXRpb24nOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfZWRpdF9mb3JtKGFycmF5ICRwYXJhbXMsIFxDR0JldHRlckZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsICRkaXNwX2d1aWQpCiAgICB7CiAgICAgICAgJG1vZCA9ICR0aGlzLT5fbW9kOwoKICAgICAgICBpZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ2NhbmNlbCcpICkgewogICAgICAgICAgICAkdGhpcy0+Z2V0X2hlbHBlcigpLT5jYW5jZWwoICRmb3JtX2d1aWQgKTsKICAgICAgICB9CiAgICAgICAgaWYoIFxjZ2VfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdzdWJtaXQnKSApIHsKICAgICAgICAgICAgJHRoaXMtPnNldF90ZW1wbGF0ZShcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ3RlbXBsYXRlJykpOwoKICAgICAgICAgICAgLy8gbm93IGhhdmUgdGhlIGRpc3Bvc2l0aW9uIG9iamVjdCwgc3RvcmUgaXQuCiAgICAgICAgICAgIC8vIHRvZG86ICR0aGlzLT5maW5pc2hfZWRpdGluZ19zZXNzaW9uKCk7CiAgICAgICAgICAgICR0aGlzLT5nZXRfaGVscGVyKCktPmZpbmlzaCggJGZvcm0sICRmb3JtX2d1aWQsICR0aGlzLT5nZXRfZGlzcG9zaXRpb24oKSwgJGRpc3BfZ3VpZCApOwogICAgICAgIH0KCiAgICAgICAgJHRwbCA9ICRtb2QtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9lZGl0X3N0b3BkaXNwb3NpbmdfZGlzcG9zaXRpb24udHBsJyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdlZGl0b3JfbmFtZScsZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdoYW5kbGVyJywkdGhpcy0+X2Rpc3ApOwogICAgICAgICR0cGwtPmFzc2lnbignZm9ybV9ndWlkJywkZm9ybV9ndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2d1aWQnLCRkaXNwX2d1aWQpOwogICAgICAgICR0cGwtPmFzc2lnbigndHBsX2hlbHAnLFxDR0JldHRlckZvcm1zXHV0aWxzOjpnZXRfZm9ybV90cGxfaGVscCggJGZvcm0gKSk7CiAgICAgICAgJHRwbC0+ZGlzcGxheSgpOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.UniqueFileDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcdXRpbHM7CgpjbGFzcyBVbmlxdWVGaWxlRGlzcG9zaXRpb24gZXh0ZW5kcyBEaXNwb3NpdGlvbgp7CiAgICBwcml2YXRlICRfZm9sZGVyOwogICAgcHJpdmF0ZSAkX2hlYWRlcnRlbXBsYXRlOwogICAgcHJpdmF0ZSAkX2VudHJ5dGVtcGxhdGU7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2ZvbGRlcic6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fZm9sZGVyKTsKICAgICAgICBjYXNlICdoZWFkZXJ0ZW1wbGF0ZSc6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5faGVhZGVydGVtcGxhdGUpOwogICAgICAgIGNhc2UgJ2VudHJ5dGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X2VudHJ5dGVtcGxhdGUpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZvbGRlciggJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5fZm9sZGVyID0gdHJpbSgkZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9oZWFkZXJ0ZW1wbGF0ZSggJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5faGVhZGVydGVtcGxhdGUgPSB0cmltKCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2VudHJ5dGVtcGxhdGUoICRkYXRhICkKICAgIHsKICAgICAgICAkdGhpcy0+X2VudHJ5dGVtcGxhdGUgPSB0cmltKCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZGlzcG9zZSggXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgXENHQmV0dGVyRm9ybXNcRm9ybVJlc3BvbnNlJiAkZGF0YSkKICAgIHsKICAgICAgICAkY29uZmlnID0gXGNtc19jb25maWc6OmdldF9pbnN0YW5jZSgpOwogICAgICAgIC8vIGdldCB0aGUgdmFsdWUuCiAgICAgICAgJHZhbCA9ICRkYXRhLT5nZXRfcmVxdWVzdGlkKCk7CgogICAgICAgIC8vIGJ1aWxkIGEgZmlsZW5hbWUgZm9yIHRoaXMgdmFsdWUuCiAgICAgICAgJGZpbGVuYW1lID0gJHZhbC4nLnR4dCc7CiAgICAgICAgJGZpbGVuYW1lID0gJGNvbmZpZ1sncm9vdF9wYXRoJ10uJy8nLiR0aGlzLT5mb2xkZXIuJy8nLiRmaWxlbmFtZTsKCiAgICAgICAgLy8gaWYgdGhlIGRpcmVjdG9yeSBpcyByZWxhdGl2ZSB0byB0aGUgcm9vdCBwYXRoLCAgQU5EIGRvZXNuJ3QgZXhpc3QKICAgICAgICAvLyBjcmVhdGUgaXQuCiAgICAgICAgJGRpciA9IGRpcm5hbWUoJGZpbGVuYW1lKTsKICAgICAgICBpZiggIWlzX2RpciggJGRpciApICYmIHV0aWxzOjppc19jbXNtc19yZWxhdGl2ZSggJGRpciApICkgewogICAgICAgICAgICAkcmVzID0gbWtkaXIoICRkaXIsIDA3NzcsIFRSVUUgKTsKICAgICAgICAgICAgaWYoICEkcmVzICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCdTWVNURU0gRVJST1I6ICBDb3VsZCBub3QgY3JlYXRlIGRpcmVjdG9yeSBhdCAnLiRkaXIpOwogICAgICAgIH0KICAgICAgICBpZiggIXV0aWxzOjpjYW5fd3JpdGVfZmlsZSggJGZpbGVuYW1lKSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignU1lTVEVNIEVSUk9SOiBDYW5ub3Qgd3JpdGUgdG8gJy4kZmlsZW5hbWUpOwogICAgICAgIC8vIGlmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0CiAgICAgICAgLy8gcHJvY2VzcyB0aGUgdGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIsIGFuZCB3cml0ZSBpdC4KCiAgICAgICAgaWYoICFpc19maWxlKCRmaWxlbmFtZSkgKSB7CiAgICAgICAgICAgICRvdXRwdXQgPSB1dGlsczo6cHJvY2Vzc190ZW1wbGF0ZSggJHRoaXMtPmhlYWRlcnRlbXBsYXRlLCAkZm9ybSwgJGRhdGEgKTsKICAgICAgICAgICAgZmlsZV9wdXRfY29udGVudHMoJGZpbGVuYW1lLCRvdXRwdXQpOwogICAgICAgIH0KCiAgICAgICAgLy8gcHJvY2VzcyB0ZW1wbGF0ZSBmb3IgdGhlIGVudHJ5LCAgYW5kIHdyaXRlLgogICAgICAgICRvdXRwdXQgPSB1dGlsczo6cHJvY2Vzc190ZW1wbGF0ZSggJHRoaXMtPmVudHJ5dGVtcGxhdGUsICRmb3JtLCAkZGF0YSApOwogICAgICAgIGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlbmFtZSwkb3V0cHV0LEZJTEVfQVBQRU5EKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.UniqueFileDispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcRm9ybTsKCmNsYXNzIFVuaXF1ZUZpbGVEaXNwb3NpdGlvbkVkaXRvciBleHRlbmRzIERpc3Bvc2l0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF9kaXNwOwogICAgcHJpdmF0ZSAkX21vZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoXENHQmV0dGVyRm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fZGlzcCA9IG5ldyBVbmlxdWVGaWxlRGlzcG9zaXRpb247CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2ZvbGRlcic6CiAgICAgICAgY2FzZSAnaGVhZGVydGVtcGxhdGUnOgogICAgICAgIGNhc2UgJ2VudHJ5dGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwLT4ka2V5OwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZvbGRlciggJGZvbGRlciApCiAgICB7CiAgICAgICAgJHRoaXMtPl9kaXNwLT5zZXRfZm9sZGVyKCAkZm9sZGVyICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9oZWFkZXJ0ZW1wbGF0ZSggJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5fZGlzcC0+c2V0X2hlYWRlcnRlbXBsYXRlKCAkZGF0YSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZW50cnl0ZW1wbGF0ZSggJGRhdGEgKQogICAgewogICAgICAgICR0aGlzLT5fZGlzcC0+c2V0X2VudHJ5dGVtcGxhdGUoICRkYXRhICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHJlc2V0X3RlbXBsYXRlcyggRm9ybSAkZm9ybSApCiAgICB7CiAgICAgICAgJGxhYmVscyA9IFtdOwoKICAgICAgICAkdG1wID0gW107CiAgICAgICAgZm9yZWFjaCggJGZvcm0tPmZpZWxkcyBhcyAkZmllbGQgKSB7CiAgICAgICAgICAgICRuYW1lID0gJGZpZWxkLT5uYW1lOwogICAgICAgICAgICAkbGFiZWwgPSAkZmllbGQtPmxhYmVsOwogICAgICAgICAgICBpZiggISRsYWJlbCApICRsYWJlbCA9ICRuYW1lOwogICAgICAgICAgICAkbGFiZWxzW10gPSAkbGFiZWw7CgogICAgICAgICAgICBpZiggJGZpZWxkLT5tdWx0aXBsZSApIHsKICAgICAgICAgICAgICAgICR0bXBbXSA9ICJcIntpZiAhZW1wdHkoXCQkbmFtZSl9e2ltcGxvZGUoJysnLFwkJG5hbWUpfXsvaWZ9XCJcbiI7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkdG1wW10gPSAnInskJy4kbmFtZS4nfGRlZmF1bHQ6XCdcJ30iJy4iXG4iOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICR0aGlzLT5zZXRfaGVhZGVydGVtcGxhdGUoICcjJy5pbXBsb2RlKCcsJywkbGFiZWxzKS4neyRFT0x9JyApOwogICAgICAgICR0aGlzLT5zZXRfZW50cnl0ZW1wbGF0ZSggIntzdHJpcH1cbiIuaW1wbG9kZSgnLCcsJHRtcCkuIntcJEVPTH17L3N0cmlwfSIgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnbmFtZV9VbmlxdWVGaWxlRGlzcG9zaXRpb24nKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnZGlzcGxheV9VbmlxdWVGaWxlRGlzcG9zaXRpb24nLCR0aGlzLT5mb2xkZXIpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfc2V0dGluZ3NfZm9ybV91cmwoYXJyYXkgJHBhcmFtcyA9IG51bGwpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5jcmVhdGVfdXJsKCAnbTFfJywgJ2FkbWluX2VkaXRfZGRmaWxlX2Rpc3Bvc2l0aW9uJywgJycsICRwYXJhbXMpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcG9zaXRpb24oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2Rpc3A7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9kaXNwb3NpdGlvbiggRGlzcG9zaXRpb24gJGRpc3AgKQogICAgewogICAgICAgIGlmKCAhICRkaXNwIGluc3RhbmNlb2YgVW5pcXVlRmlsZURpc3Bvc2l0aW9uICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignb2JqZWN0IG9mIHR5cGUgJy5nZXRfY2xhc3MoJGRpc3ApLicgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgJHRoaXMtPl9kaXNwID0gJGRpc3A7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9vdXRwdXRjbGFzcygpCiAgICB7CiAgICAgICAgcmV0dXJuICdDR0JldHRlckZvcm1zXFxEaXNwb3NpdGlvbnNcXFVuaXF1ZUZpbGVEaXNwb3NpdGlvbic7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZV9lZGl0X2Zvcm0oYXJyYXkgJHBhcmFtcywgXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgJGZvcm1fZ3VpZCwgJGRpc3BfZ3VpZCkKICAgIHsKICAgICAgICAkbW9kID0gJHRoaXMtPl9tb2Q7CgogICAgICAgIGlmKCAhJGRpc3BfZ3VpZCApICR0aGlzLT5yZXNldF90ZW1wbGF0ZXMoICRmb3JtICk7CgogICAgICAgIGlmKCBcY2dlX3BhcmFtOjpleGlzdHMoJHBhcmFtcywnY2FuY2VsJykgKSB7CiAgICAgICAgICAgICR0aGlzLT5nZXRfaGVscGVyKCktPmNhbmNlbCggJGZvcm1fZ3VpZCApOwogICAgICAgIH0KICAgICAgICBpZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3Jlc2V0X3RwbCcpICkgewogICAgICAgICAgICAkdGhpcy0+cmVzZXRfdGVtcGxhdGVzKCAkZm9ybSApOwogICAgICAgIH0KICAgICAgICBpZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3N1Ym1pdCcpICkgewogICAgICAgICAgICAkdGhpcy0+c2V0X2ZvbGRlcihcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2ZvbGRlcicpKTsKICAgICAgICAgICAgJHRoaXMtPnNldF9oZWFkZXJ0ZW1wbGF0ZShcY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnaGVhZGVydGVtcGxhdGUnKSk7CiAgICAgICAgICAgICR0aGlzLT5zZXRfZW50cnl0ZW1wbGF0ZShcY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnZW50cnl0ZW1wbGF0ZScpKTsKCiAgICAgICAgICAgIC8vIG5vdyBoYXZlIHRoZSBkaXNwb3NpdGlvbiBvYmplY3QsIHN0b3JlIGl0LgogICAgICAgICAgICAvLyB0b2RvOiAkdGhpcy0+ZmluaXNoX2VkaXRpbmdfc2Vzc2lvbigpOwogICAgICAgICAgICAkdGhpcy0+Z2V0X2hlbHBlcigpLT5maW5pc2goICRmb3JtLCAkZm9ybV9ndWlkLCAkdGhpcy0+Z2V0X2Rpc3Bvc2l0aW9uKCksICRkaXNwX2d1aWQgKTsKICAgICAgICB9CgogICAgICAgICR0cGwgPSAkbW9kLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fZWRpdF91bmlxdWVmaWxlX2Rpc3Bvc2l0aW9uLnRwbCcpOwogICAgICAgICR0cGwtPmFzc2lnbignZWRpdG9yX25hbWUnLGdldF9jbGFzcygkdGhpcykpOwogICAgICAgICR0cGwtPmFzc2lnbignaGFuZGxlcicsJHRoaXMpOwogICAgICAgICR0cGwtPmFzc2lnbignZm9ybV9ndWlkJywkZm9ybV9ndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2d1aWQnLCRkaXNwX2d1aWQpOwogICAgICAgICR0cGwtPmFzc2lnbigndHBsX2hlbHAnLFxDR0JldHRlckZvcm1zXHV0aWxzOjpnZXRfZm9ybV90cGxfaGVscCggJGZvcm0gKSk7CiAgICAgICAgJHRwbC0+ZGlzcGxheSgpOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.WebHookDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcdXRpbHM7CgpjbGFzcyBXZWJIb29rRGlzcG9zaXRpb24gZXh0ZW5kcyBEaXNwb3NpdGlvbgp7CiAgICBwcml2YXRlICRfdXJsOwogICAgcHJpdmF0ZSAkX2V4dHJhcG9zdHZhcnM7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ3VybCc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X3VybDsKICAgICAgICBjYXNlICdleHRyYXBvc3R2YXJzJzoKICAgICAgICAgICAgcmV0dXJuIHRyaW0oJHRoaXMtPl9leHRyYXBvc3R2YXJzKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF91cmwoICR1cmwgKQogICAgewogICAgICAgICR0aGlzLT5fdXJsID0gdHJpbSgkdXJsKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZnJvbV90ZXh0KCRtYXBfdGV4dCkKICAgIHsKICAgICAgICBpZiggISRtYXBfdGV4dCApIHJldHVybjsKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgJGxpbmVzID0gZXhwbG9kZSgiXG4iLCRtYXBfdGV4dCk7CiAgICAgICAgZm9yZWFjaCggJGxpbmVzIGFzICRsaW5lICkgewogICAgICAgICAgICAkbGluZSA9IHRyaW0oJGxpbmUpOwogICAgICAgICAgICBpZiggISRsaW5lICkgY29udGludWU7CiAgICAgICAgICAgICRwYXJ0cyA9IGV4cGxvZGUoIj0iLCRsaW5lLDIpOwogICAgICAgICAgICBpZiggY291bnQoJHBhcnRzKSAhPSAyICkgY29udGludWU7CiAgICAgICAgICAgICRrZXkgPSB0cmltKCRwYXJ0c1swXSk7CiAgICAgICAgICAgICR2YWwgPSAkcGFydHNbMV07CiAgICAgICAgICAgICRvdXRbJGtleV0gPSAkdmFsOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2V4dHJhdmFycygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5mcm9tX3RleHQoJHRoaXMtPl9leHRyYXBvc3R2YXJzKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2V4dHJhcG9zdHZhcnMoICRkYXRhICkKICAgIHsKICAgICAgICAkdGhpcy0+X2V4dHJhcG9zdHZhcnMgPSB0cmltKCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZGlzcG9zZSggXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgXENHQmV0dGVyRm9ybXNcRm9ybVJlc3BvbnNlJiAkcmVzcG9uc2UpCiAgICB7CiAgICAgICAgaWYoICEkdGhpcy0+dXJsICkgcmV0dXJuOwogICAgICAgICRkYXRhID0gJHRoaXMtPmdldF9leHRyYXZhcnMoKTsKICAgICAgICBpZiggIWlzX2FycmF5KCRkYXRhKSApICRkYXRhID0gW107CiAgICAgICAgJGRhdGEgPSBhcnJheV9tZXJnZSgkZGF0YSwkcmVzcG9uc2UtPmFzX2FycmF5KCkpOwoKICAgICAgICAkcmVxdWVzdCA9IG5ldyBcY21zX2h0dHBfcmVxdWVzdCgpOwogICAgICAgICRyZXF1ZXN0LT5zZXRNZXRob2QoJ1BPU1QnKTsKICAgICAgICAkcmVxdWVzdC0+c2V0UGFyYW1zKCRkYXRhKTsKICAgICAgICAkcmVxdWVzdC0+ZXhlY3V0ZSgkdGhpcy0+dXJsKTsKICAgICAgICAkc3RhdHVzID0gJHJlcXVlc3QtPmdldFN0YXR1cygpOwogICAgICAgICRlcnJvciA9ICRyZXF1ZXN0LT5nZXRFcnJvcigpOwogICAgICAgIGlmKCAkc3RhdHVzICE9IDIwMCApIHsKICAgICAgICAgICAgYXVkaXQoJHN0YXR1cywnQ0dCZXR0ZXJGb3JtcycsJ1dlYkhvb2sgUG9zdCB0byAnLiR0aGlzLT51cmwuJyBmYWlsZWQnKTsKICAgICAgICAgICAgQHRyaWdnZXJfZXJyb3IoIldlYkhvb2sgZXJyb3IgJHN0YXR1cyBwb3N0aW5nIHRvICIuJHRoaXMtPnVybCk7CiAgICAgICAgICAgIGRlYnVnX3RvX2xvZygnV2ViSG9vayBwb3N0IHRvICcuJHRoaXMtPnVybC4nIGZhaWxlZCB3aXRoIHN0YXR1cyAnLiRzdGF0dXMpOwogICAgICAgICAgICBkZWJ1Z190b19sb2coJGVycm9yKTsKICAgICAgICB9CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/class.WebHookDispositionEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwp1c2UgXENHQmV0dGVyRm9ybXNcRm9ybTsKCmNsYXNzIFdlYkhvb2tEaXNwb3NpdGlvbkVkaXRvciBleHRlbmRzIERpc3Bvc2l0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF9kaXNwOwogICAgcHJpdmF0ZSAkX21vZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoXENHQmV0dGVyRm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fZGlzcCA9IG5ldyBXZWJIb29rRGlzcG9zaXRpb247CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ3VybCc6CiAgICAgICAgY2FzZSAnZXh0cmFwb3N0dmFycyc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2Rpc3AtPiRrZXk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfdXJsKCAkc3RyICkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwLT5zZXRfdXJsKCAkc3RyICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9leHRyYXBvc3R2YXJzKCAkZGF0YSApCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzcC0+c2V0X2V4dHJhcG9zdHZhcnMoICRkYXRhICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2QtPkxhbmcoJ25hbWVfV2ViSG9va0Rpc3Bvc2l0aW9uJyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9kaXNwbGF5c3RyaW5nKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2QtPkxhbmcoJ2Rpc3BsYXlfV2ViSG9va0Rpc3Bvc2l0aW9uJywkdGhpcy0+dXJsKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3Bvc2l0aW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kaXNwOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZGlzcG9zaXRpb24oIERpc3Bvc2l0aW9uICRkaXNwICkKICAgIHsKICAgICAgICBpZiggISAkZGlzcCBpbnN0YW5jZW9mIFdlYkhvb2tEaXNwb3NpdGlvbiApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ29iamVjdCBvZiB0eXBlICcuZ2V0X2NsYXNzKCRkaXNwKS4nIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICR0aGlzLT5fZGlzcCA9ICRkaXNwOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3V0cHV0Y2xhc3MoKQogICAgewogICAgICAgIHJldHVybiAnQ0dCZXR0ZXJGb3Jtc1xcRGlzcG9zaXRpb25zXFxXZWJIb29rRGlzcG9zaXRpb24nOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfZWRpdF9mb3JtKGFycmF5ICRwYXJhbXMsIFxDR0JldHRlckZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsICRkaXNwX2d1aWQgKQogICAgewogICAgICAgICRtb2QgPSAkdGhpcy0+X21vZDsKCiAgICAgICAgaWYoIFxjZ2VfcGFyYW06OmV4aXN0cyggJHBhcmFtcywgJ2NhbmNlbCcgKSApIHsKICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+Y2FuY2VsKCAkZm9ybV9ndWlkICk7CiAgICAgICAgfQogICAgICAgIGlmKCBcY2dlX3BhcmFtOjpleGlzdHMoJHBhcmFtcywnc3VibWl0JykgKSB7CiAgICAgICAgICAgICR0aGlzLT5zZXRfdXJsKFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywndXJsJykpOwogICAgICAgICAgICAkdGhpcy0+c2V0X2V4dHJhcG9zdHZhcnMoXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdleHRyYXBvc3R2YXJzJykpOwogICAgICAgICAgICAkdGhpcy0+Z2V0X2hlbHBlcigpLT5maW5pc2goICRmb3JtLCAkZm9ybV9ndWlkLCAkdGhpcy0+Z2V0X2Rpc3Bvc2l0aW9uKCksICRkaXNwX2d1aWQgKTsKICAgICAgICB9CgogICAgICAgICR0cGwgPSAkbW9kLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fZWRpdF93ZWJob29rX2Rpc3Bvc2l0aW9uLnRwbCcpOwogICAgICAgICR0cGwtPmFzc2lnbignZWRpdG9yX25hbWUnLGdldF9jbGFzcygkdGhpcykpOwogICAgICAgICR0cGwtPmFzc2lnbignaGFuZGxlcicsJHRoaXMpOwogICAgICAgICR0cGwtPmFzc2lnbignZm9ybV9ndWlkJywkZm9ybV9ndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2d1aWQnLCRkaXNwX2d1aWQpOwogICAgICAgICR0cGwtPmRpc3BsYXkoKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/Dispositions/interface.IDisposition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zOwoKaW50ZXJmYWNlIElEaXNwb3NpdGlvbgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2d1aWQoKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBkaXNwb3NlKFxDR0JldHRlckZvcm1zXEZvcm0gJGZvcm0sIFxDR0JldHRlckZvcm1zXEZvcm1SZXNwb25zZSYgJGRhdGEpOwp9IC8vIGVuZCBvZiBpbnRlcmZhY2UK]]></data>
	</file>
	<file>
	  <filename>/lib/DOMFields/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/DOMFields/class.DOMButtonField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRE9NRmllbGRzOwoKY2xhc3MgRE9NQnV0dG9uRmllbGQgZXh0ZW5kcyBET01GaWVsZCB7CiAgICB1c2UgRE9NTGFiZWxGaWVsZFRyYWl0OwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChcRE9NTm9kZSAkbm9kZSkKICAgIHsKICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRub2RlKTsKICAgICAgICAkdGhpcy0+c2V0X2xhYmVsKCR0aGlzLT5maW5kUGFyZW50TGFiZWwoJG5vZGUpKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/DOMFields/class.DOMField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRE9NRmllbGRzOwoKYWJzdHJhY3QgY2xhc3MgRE9NRmllbGQgZXh0ZW5kcyBGaWVsZAp7CiAgICBwcml2YXRlICRfbGluZTsKICAgIHByaXZhdGUgJF92YWx1ZTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoXERPTU5vZGUgJG5vZGUpCiAgICB7CiAgICAgICAgJG5vZGVuYW1lID0gJG5vZGUtPm5vZGVOYW1lOwogICAgICAgICRhdHRyaWJzID0gJHRoaXMtPmdldEF0dHJpYnV0ZXNBcnJheSgkbm9kZS0+YXR0cmlidXRlcyk7CiAgICAgICAgJHRoaXMtPl9saW5lID0gJG5vZGUtPmdldExpbmVObygpOwogICAgICAgICR0aGlzLT5fdmFsdWUgPSAkbm9kZS0+bm9kZVZhbHVlOwogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoICRub2RlbmFtZSwgJGF0dHJpYnMgKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0QXR0cmlidXRlc0FycmF5KFxET01OYW1lZE5vZGVNYXAgJG1hcCkKICAgIHsKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgZm9yZWFjaCggJG1hcCBhcyAkYXR0ciApIHsKICAgICAgICAgICAgJG91dFskYXR0ci0+bm9kZU5hbWVdID0gJGF0dHItPm5vZGVWYWx1ZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF92YWx1ZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdmFsdWU7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9saW5lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9saW5lOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/DOMFields/class.DOMFormField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRE9NRmllbGRzOwoKY2xhc3MgRE9NRm9ybUZpZWxkIGV4dGVuZHMgRE9NRmllbGQge30K]]></data>
	</file>
	<file>
	  <filename>/lib/DOMFields/class.DOMInputField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRE9NRmllbGRzOwoKY2xhc3MgRE9NSW5wdXRGaWVsZCBleHRlbmRzIERPTUZpZWxkIHsKICAgIHVzZSBET01MYWJlbEZpZWxkVHJhaXQ7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFxET01Ob2RlICRub2RlKQogICAgewogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJG5vZGUpOwogICAgICAgICR0aGlzLT5zZXRfbGFiZWwoJHRoaXMtPmZpbmRQYXJlbnRMYWJlbCgkbm9kZSkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdmFsdWUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+Z2V0X2F0dHJpYnV0ZSgndmFsdWUnKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/DOMFields/class.DOMLabelField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRE9NRmllbGRzOwoKY2xhc3MgRE9NTGFiZWxGaWVsZCBleHRlbmRzIERPTUZpZWxkIHt9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/DOMFields/class.DOMSelectField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRE9NRmllbGRzOwoKY2xhc3MgRE9NU2VsZWN0RmllbGQgZXh0ZW5kcyBET01GaWVsZAp7CiAgICB1c2UgRE9NTGFiZWxGaWVsZFRyYWl0OwoKICAgIHByaXZhdGUgJF9vcHRpb25zID0gW107CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFxET01Ob2RlICRub2RlKQogICAgewogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJG5vZGUpOwogICAgICAgICR0aGlzLT5zZXRfbGFiZWwoJHRoaXMtPmZpbmRQYXJlbnRMYWJlbCgkbm9kZSkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBpc19tdWx0aXNlbGVjdCgpCiAgICB7CiAgICAgICAgJG11bHRpcGxlID0gJHRoaXMtPmdldF9hdHRyaWJ1dGUoJ211bHRpcGxlJyk7CiAgICAgICAgaWYoICRtdWx0aXBsZSApIHJldHVybiB0cnVlOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdmFsdWUoKQogICAgewogICAgICAgIGlmKCAkdGhpcy0+aXNfbXVsdGlzZWxlY3QoKSApIHsKICAgICAgICAgICAgJG91dCA9IFtdOwogICAgICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X29wdGlvbnMgYXMgJG9wdGlvbiApIHsKICAgICAgICAgICAgICAgIGlmKCAkb3B0aW9uLT5nZXRfc2VsZWN0ZWQoKSApICRvdXRbXSA9ICRvcHRpb24tPmdldF92YWx1ZSgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAkb3V0OwogICAgICAgIH0KCiAgICAgICAgZm9yZWFjaCggJHRoaXMtPl9vcHRpb25zIGFzICRvcHRpb24gKSB7CiAgICAgICAgICAgIGlmKCAkb3B0aW9uLT5nZXRfc2VsZWN0ZWQoKSApIHJldHVybiAkb3B0aW9uLT5nZXRfdmFsdWUoKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkdGhpcy0+X29wdGlvbnNbMF0tPmdldF92YWx1ZSgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRfb3B0aW9uKCBET01TZWxlY3RPcHRpb24gJG9wdGlvbiApCiAgICB7CiAgICAgICAgJHRoaXMtPl9vcHRpb25zW10gPSAkb3B0aW9uOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3B0aW9ucygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fb3B0aW9uczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX29wdGlvbnMoKQogICAgewogICAgICAgIHJldHVybiBjb3VudCgkdGhpcy0+X29wdGlvbnMpOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/DOMFields/class.DOMTextAreaField.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRE9NRmllbGRzOwoKY2xhc3MgRE9NVGV4dEFyZWFGaWVsZCBleHRlbmRzIERPTUZpZWxkIHsKICAgIHVzZSBET01MYWJlbEZpZWxkOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChcRE9NTm9kZSAkbm9kZSkKICAgIHsKICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRub2RlKTsKICAgICAgICAkdGhpcy0+c2V0X2xhYmVsKCR0aGlzLT5maW5kUGFyZW50TGFiZWwoJG5vZGUpKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/extraclasses.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgpjbGFzcyBFeGNlcHRpb24gZXh0ZW5kcyBcRXhjZXB0aW9uIHt9CmNsYXNzIEJvdERldGVjdGVkRXJyb3IgZXh0ZW5kcyBFeGNlcHRpb24ge30KY2xhc3MgRm9ybVNjYW5uZXJFcnJvciBleHRlbmRzIFxSdW50aW1lRXhjZXB0aW9uIHt9CmNsYXNzIEZvcm1WYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBGb3JtU2Nhbm5lckVycm9yIHt9CmNsYXNzIFN0b3BEaXNwb3NpdGlvblRyaWdnZXIgZXh0ZW5kcyBFeGNlcHRpb24ge30K]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/FieldValidators/abstract.Validation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKYWJzdHJhY3QgY2xhc3MgVmFsaWRhdGlvbiBpbXBsZW1lbnRzIElWYWxpZGF0aW9uCnsKICAgIHByaXZhdGUgJF9ndWlkOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgICB7CiAgICAgICAgJHRoaXMtPl9ndWlkID0gXGNnZV91dGlsczo6Y3JlYXRlX2d1aWQoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19zZXQoICRrZXksICR2YWwgKQogICAgewogICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oIiRrZXkgaXMgbm90IGEgc2V0dGFibGUgbWVtYmVyIG9mICIuZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9ndWlkKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9ndWlkOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/abstract.ValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKYWJzdHJhY3QgY2xhc3MgVmFsaWRhdGlvbkVkaXRvcgp7CiAgICBwcml2YXRlICRfaGVscGVyOwoKICAgIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpOwogICAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGdldF92YWxpZGF0aW9uKCk7CiAgICBhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gc2V0X3ZhbGlkYXRpb24oIFZhbGlkYXRpb24gJGluICk7CiAgICBhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCk7CiAgICBhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBhbGxvd3NfbXVsdGlwbGUoKSB7IHJldHVybiBUUlVFOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX2ludGVyZmFjZSgpIHsgcmV0dXJuIFRSVUU7IH0KICAgIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfZWRpdF9mb3JtKCBhcnJheSAkcGFyYW1zLCBcQ0dCZXR0ZXJGb3Jtc1xGb3JtICRmb3JtLCAkZm9ybV9ndWlkLCAkZ3VpZCApOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfaGVscGVyX3Byb3h5KCBcQ0dCZXR0ZXJGb3Jtc1xWYWxpZGF0aW9uRWRpdG9ySGVscGVyUHJveHkgJHByb3h5ICkKICAgIHsKICAgICAgICAkdGhpcy0+X2hlbHBlciA9ICRwcm94eTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2hlbHBlcigpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5faGVscGVyOwogICAgfQp9IC8vIGVuZCBvZiBpbnRlcmZhY2UK]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.BadUploadError.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgQmFkVXBsb2FkRXJyb3IgZXh0ZW5kcyBWYWxpZGF0aW9uRXhjZXB0aW9uIHt9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.CaptchaValidatorProxy.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwp1c2UgXENHQmV0dGVyRm9ybXNcSUNhcHRjaGFQcm92aWRlcjsKCmNsYXNzIENhcHRjaGFWYWxpZGF0b3JQcm94eSBleHRlbmRzIFZhbGlkYXRpb24KewogICAgcHJpdmF0ZSAkX3Byb3ZpZGVyOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggSUNhcHRjaGFQcm92aWRlciAkcHJvdmlkZXIgPSBudWxsICkKICAgIHsKICAgICAgICAkdGhpcy0+X3Byb3ZpZGVyID0gJHByb3ZpZGVyOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZShcQ0dCZXR0ZXJGb3Jtc1xGb3JtICRmb3JtLCBcQ0dCZXR0ZXJGb3Jtc1xGb3JtUmVzcG9uc2UmICRkYXRhLCBcQ0dCZXR0ZXJGb3Jtc1xUcmFuc2xhdG9yICR0ciApCiAgICB7CiAgICAgICAgaWYoICR0aGlzLT5fcHJvdmlkZXIgJiYgISAkdGhpcy0+X3Byb3ZpZGVyLT52YWxpZGF0ZV9jYXB0Y2hhKCkgKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkV4Y2VwdGlvbignQ0FQVENIQScsJHRyLT50cmFuc2xhdGUoJ2Vycl9jYXB0Y2hhX21pc21hdGNoJykpOwogICAgfQp9]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.ComputedValue.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwp1c2UgXENHQmV0dGVyRm9ybXNcdXRpbHM7CgpjbGFzcyBDb21wdXRlZFZhbHVlIGV4dGVuZHMgVmFsaWRhdGlvbgp7CiAgICBwcml2YXRlICRfZmllbGROYW1lOwogICAgcHJpdmF0ZSAkX3RlbXBsYXRlOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCggJGtleSApCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2ZpZWxkTmFtZSc6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fZmllbGROYW1lKTsKICAgICAgICBjYXNlICd0ZW1wbGF0ZSc6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fdGVtcGxhdGUpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlfc3RyaW5nKCBcQ0dCZXR0ZXJGb3Jtc1xUcmFuc2xhdG9yICR0ciApCiAgICB7CiAgICAgICAgcmV0dXJuICR0ci0+dHJhbnNsYXRlKCdkaXNwbGF5X0NvbXB1dGVkVmFsdWUnLCR0aGlzLT5maWVsZE5hbWUpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZmllbGROYW1lKCR2YWwpCiAgICB7CiAgICAgICAgJHRoaXMtPl9maWVsZE5hbWUgPSB0cmltKCR2YWwpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfdGVtcGxhdGUoJHZhbCkKICAgIHsKICAgICAgICAkdGhpcy0+X3RlbXBsYXRlID0gdHJpbSgkdmFsKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGUoXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgXENHQmV0dGVyRm9ybXNcRm9ybVJlc3BvbnNlJiAkZGF0YSwgXENHQmV0dGVyRm9ybXNcVHJhbnNsYXRvciAkdHJhbnNsYXRvciApCiAgICB7CiAgICAgICAgaWYoICEkdGhpcy0+X2ZpZWxkTmFtZSApIHJldHVybjsKICAgICAgICAkb3V0ID0gdXRpbHM6OnByb2Nlc3NfdGVtcGxhdGUoICR0aGlzLT5fdGVtcGxhdGUsICRmb3JtLCAkcmVzcG9uc2UgKTsKICAgICAgICAkcmVzcG9uc2UtPm1vZGlmeV92YWx1ZSggJHRoaXMtPl9maWVsZE5hbWUsICRvdXQgKTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.ComputedValueEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgQ29tcHV0ZWRWYWx1ZUVkaXRvciBleHRlbmRzIFZhbGlkYXRpb25FZGl0b3IKewogICAgcHJpdmF0ZSAkX3ZhbGlkYXRvcjsKICAgIHByaXZhdGUgJF9tb2Q7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCBcQ0dCZXR0ZXJGb3JtcyAkbW9kICkKICAgIHsKICAgICAgICAkdGhpcy0+X21vZCA9ICRtb2Q7CiAgICAgICAgJHRoaXMtPl92YWxpZGF0b3IgPSBuZXcgQ29tcHV0ZWRWYWx1ZTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21vZC0+TGFuZygnbmFtZV9Db21wdXRlZFZhbHVlJyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF92YWxpZGF0aW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl92YWxpZGF0b3I7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF92YWxpZGF0aW9uKCBWYWxpZGF0aW9uICRpbiApCiAgICB7CiAgICAgICAgaWYoICEgJGluIGluc3RhbmNlb2YgQ29tcHV0ZWRWYWx1ZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgdmFsaWRhdGlvbiBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvciA9ICRpbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX2ludGVyZmFjZSgpIHsgcmV0dXJuIFRSVUU7IH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gZ2V0X2NsYXNzKCR0aGlzLT5fdmFsaWRhdG9yKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvci0+Z2V0X2Rpc3BsYXlfc3RyaW5nKCAkdGhpcy0+X21vZC0+Z2V0X3RyYW5zbGF0b3IoKSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZmllbGQoICRmaWVsZF9uYW1lICkKICAgIHsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvci0+c2V0X2ZpZWxkTmFtZSggJGZpZWxkX25hbWUgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3RlbXBsYXRlKCAkdGVtcGxhdGUgKQogICAgewogICAgICAgICR0aGlzLT5fdmFsaWRhdG9yLT5zZXRfdGVtcGxhdGUoICR0ZW1wbGF0ZSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfZWRpdF9mb3JtKCBhcnJheSAkcGFyYW1zLCBcQ0dCZXR0ZXJGb3Jtc1xGb3JtICRmb3JtLCAkZm9ybV9ndWlkLCAkZ3VpZCApCiAgICB7CiAgICAgICAgJG1vZCA9ICR0aGlzLT5fbW9kOwoKICAgICAgICBpZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ2NhbmNlbCcpICkgewogICAgICAgICAgICAkdGhpcy0+Z2V0X2hlbHBlcigpLT5jYW5jZWwoICRmb3JtX2d1aWQgKTsKICAgICAgICB9CiAgICAgICAgaWYoIFxjZ2VfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdzdWJtaXQnKSApIHsKICAgICAgICAgICAgJHRoaXMtPnNldF9maWVsZChcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2ZpZWxkbmFtZScpKTsKICAgICAgICAgICAgJHRoaXMtPnNldF90ZW1wbGF0ZShcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ3RlbXBsYXRlJykpOwoKICAgICAgICAgICAgLy8gbm93IGhhdmUgdGhlIGRpc3Bvc2l0aW9uIG9iamVjdCwgc3RvcmUgaXQuCiAgICAgICAgICAgICR0aGlzLT5nZXRfaGVscGVyKCktPmZpbmlzaCggJGZvcm0sICRmb3JtX2d1aWQsICR0aGlzLT5nZXRfdmFsaWRhdGlvbigpLCAkZ3VpZCApOwogICAgICAgIH0KCiAgICAgICAgJHRwbCA9ICRtb2QtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9lZGl0X2NvbXB1dGVkdmFsdWUudHBsJyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdlZGl0b3JfbmFtZScsZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdoYW5kbGVyJywkdGhpcyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdmb3JtX2d1aWQnLCRmb3JtX2d1aWQpOwogICAgICAgICR0cGwtPmFzc2lnbignZ3VpZCcsJGd1aWQpOwogICAgICAgICR0cGwtPmFzc2lnbignZmllbGRzJywkZm9ybS0+Z2V0X2ZpZWxkX2xpc3QoKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd2YWxpZGF0aW9uJywkdGhpcy0+Z2V0X3ZhbGlkYXRpb24oKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd0cGxfaGVscCcsXENHQmV0dGVyRm9ybXNcdXRpbHM6OmdldF9mb3JtX3RwbF9oZWxwKCAkZm9ybSkgKTsKICAgICAgICAkdHBsLT5kaXNwbGF5KCk7CiAgICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.DatePrimitiveValidation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgRGF0ZVByaW1pdGl2ZVZhbGlkYXRpb24gZXh0ZW5kcyBWYWxpZGF0aW9uCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheV9zdHJpbmcoIFxDR0JldHRlckZvcm1zXFRyYW5zbGF0b3IgJHRyICkKICAgIHsKICAgICAgICByZXR1cm4gJHRyLT50cmFuc2xhdGUoJ2Rpc3BsYXlfRGF0ZVByaW1pdGl2ZVZhbGlkYXRvcicpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZShcQ0dCZXR0ZXJGb3Jtc1xGb3JtICRmb3JtLCBcQ0dCZXR0ZXJGb3Jtc1xGb3JtUmVzcG9uc2UmICRkYXRhLCBcQ0dCZXR0ZXJGb3Jtc1xUcmFuc2xhdG9yICR0cmFuc2xhdG9yICkKICAgIHsKICAgICAgICAkaXNfZGF0ZSA9IGZ1bmN0aW9uKCAkaW4gKSB7CiAgICAgICAgICAgIGlmKCAhIHByZWdfbWF0Y2goICcvWzAtOV17NH0tWzAtOV17Mn0tWzAtOV17Mn0vJywkaW4pICkgcmV0dXJuOwogICAgICAgICAgICByZXR1cm4gc3RydG90aW1lKCAkaW4gKTsKICAgICAgICB9OwoKICAgICAgICAkbmFtZXMgPSAkZm9ybS0+Z2V0X2ZpZWxkbmFtZXMoKTsKICAgICAgICBmb3JlYWNoKCAkbmFtZXMgYXMgJG5hbWUgKSB7CiAgICAgICAgICAgICRmaWVsZCA9ICRmb3JtLT5nZXRfZmllbGQoICRuYW1lICk7CgkgICAgaWYoICRmaWVsZC0+bm92YWxpZGF0ZSApIGNvbnRpbnVlOwogICAgICAgICAgICBpZiggJGZpZWxkLT50eXBlICE9ICdkYXRlJyAmJiAkZmllbGQtPnByaW1pdGl2ZSAhPSAnZGF0ZScgKSBjb250aW51ZTsKICAgICAgICAgICAgJHVzZXJ2YWwgPSAkZGF0YS0+Z2V0X2ZpZWxkX3ZhbHVlKCAkbmFtZSApOwogICAgICAgICAgICBpZiggIWlzX2FycmF5KCR1c2VydmFsKSApICR1c2VydmFsID0gWyAkdXNlcnZhbCBdOwogICAgICAgICAgICBmb3JlYWNoKCAkdXNlcnZhbCBhcyAkb25lICkgewogICAgICAgICAgICAgICAgJHRzID0gJGlzX2RhdGUoJG9uZSk7CiAgICAgICAgICAgICAgICBpZiggISR0cyApIHRocm93IG5ldyBWYWxpZGF0aW9uRXhjZXB0aW9uKCRmaWVsZC0+bmFtZSwkdHJhbnNsYXRvci0+dHJhbnNsYXRlKCdlcnJfaW5wdXRfbm90ZGF0ZScsJGZpZWxkLT5uYW1lKSk7CiAgICAgICAgICAgICAgICBpZiggJGZpZWxkLT5taW4gJiYgKCRtaW5fdHMgPSAkaXNfZGF0ZSgkZmllbGQtPm1pbikpICYmICR0cyA8ICRtaW5fdHMgKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FeGNlcHRpb24oJGZpZWxkLT5uYW1lLCR0cmFuc2xhdG9yLT50cmFuc2xhdGUoJ2Vycl9pbnB1dF9vdXRvZnJhbmdlJywkZmllbGQtPm5hbWUpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmKCAkZmllbGQtPm1heCAmJiAoJG1heF90cyA9ICRpc19kYXRlKCRmaWVsZC0+bWF4KSkgJiYgJHRzID4gJG1heF90cyApIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkV4Y2VwdGlvbigkZmllbGQtPm5hbWUsJHRyYW5zbGF0b3ItPnRyYW5zbGF0ZSgnZXJyX2lucHV0X291dG9mcmFuZ2UnLCRmaWVsZC0+bmFtZSkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.DatePrimitiveValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgRGF0ZVByaW1pdGl2ZVZhbGlkYXRpb25FZGl0b3IgZXh0ZW5kcyBWYWxpZGF0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF92YWxpZGF0b3I7CiAgICBwcml2YXRlICRfbW9kOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggXENHQmV0dGVyRm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fdmFsaWRhdG9yID0gbmV3IERhdGVQcmltaXRpdmVWYWxpZGF0aW9uOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCduYW1lX0RhdGVQcmltaXRpdmVWYWxpZGF0b3InKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ZhbGlkYXRpb24oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvcjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3ZhbGlkYXRpb24oIFZhbGlkYXRpb24gJGluICkKICAgIHsKICAgICAgICBpZiggISAkaW4gaW5zdGFuY2VvZiBEYXRlUHJpbWl0aXZlVmFsaWRhdGlvbiApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgdmFsaWRhdGlvbiBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvciA9ICRpbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX2ludGVyZmFjZSgpIHsgcmV0dXJuIEZBTFNFOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlX2VkaXRfZm9ybSggYXJyYXkgJHBhcmFtcywgXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgJGZvcm1fZ3VpZCwgJGd1aWQgKSB7fQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3V0cHV0Y2xhc3MoKQogICAgewogICAgICAgIHJldHVybiBnZXRfY2xhc3MoJHRoaXMtPl92YWxpZGF0b3IpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheXN0cmluZygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdmFsaWRhdG9yLT5nZXRfZGlzcGxheV9zdHJpbmcoICR0aGlzLT5fbW9kLT5nZXRfdHJhbnNsYXRvcigpICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGFsbG93c19tdWx0aXBsZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKCn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.EmailFieldValidation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgRW1haWxGaWVsZFZhbGlkYXRpb24gZXh0ZW5kcyBWYWxpZGF0aW9uCnsKICAgIHByaXZhdGUgJF9maWVsZE5hbWU7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCAka2V5ICkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAnZmllbGROYW1lJzoKICAgICAgICAgICAgcmV0dXJuIHRyaW0oJHRoaXMtPl9maWVsZE5hbWUpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlfc3RyaW5nKCBcQ0dCZXR0ZXJGb3Jtc1xUcmFuc2xhdG9yICR0ciApCiAgICB7CiAgICAgICAgcmV0dXJuICR0ci0+dHJhbnNsYXRlKCdkaXNwbGF5X0VtYWlsRmllbGRWYWxpZGF0aW9uJywkdGhpcy0+ZmllbGROYW1lKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZpZWxkTmFtZSgkdmFsKQogICAgewogICAgICAgICR0aGlzLT5fZmllbGROYW1lID0gdHJpbSgkdmFsKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGUoXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgXENHQmV0dGVyRm9ybXNcRm9ybVJlc3BvbnNlJiAkcmVzcG9uc2UsIFxDR0JldHRlckZvcm1zXFRyYW5zbGF0b3IgJHRyYW5zbGF0b3IgKQogICAgewogICAgICAgIGlmKCAhJHRoaXMtPl9maWVsZE5hbWUgKSByZXR1cm47CgogICAgICAgICR2YWwgPSAkcmVzcG9uc2UtPmdldF9maWVsZF92YWx1ZSggJHRoaXMtPl9maWVsZE5hbWUgKTsKICAgICAgICAkZmllbGQgPSAkZm9ybS0+Z2V0X2ZpZWxkKCAkdGhpcy0+X2ZpZWxkTmFtZSApOwogICAgICAgIGlmKCAkZmllbGQtPm5vdmFsaWRhdGUgKSByZXR1cm47CgogICAgICAgIGlmKCAhaXNfYXJyYXkoICR2YWwpICkgJHZhbCA9IFsgJHZhbCBdOwogICAgICAgIGZvcmVhY2goICR2YWwgYXMgJG9uZV92YWwgKSB7CiAgICAgICAgICAgIGlmKCAhaXNfZW1haWwoICRvbmVfdmFsICkgKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkV4Y2VwdGlvbigkdGhpcy0+X2ZpZWxkTmFtZSwkdHJhbnNsYXRvci0+dHJhbnNsYXRlKCdlcnJfZmllbGRfaW52YWxpZHZhbHVlJykpOwogICAgICAgIH0KICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.EmailFieldValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgRW1haWxGaWVsZFZhbGlkYXRpb25FZGl0b3IgZXh0ZW5kcyBWYWxpZGF0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF92YWxpZGF0b3I7CiAgICBwcml2YXRlICRfbW9kOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggXENHQmV0dGVyRm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fdmFsaWRhdG9yID0gbmV3IEVtYWlsRmllbGRWYWxpZGF0aW9uOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCduYW1lX0VtYWlsRmllbGRWYWxpZGF0b3InKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ZhbGlkYXRpb24oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvcjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3ZhbGlkYXRpb24oIFZhbGlkYXRpb24gJGluICkKICAgIHsKICAgICAgICBpZiggISAkaW4gaW5zdGFuY2VvZiBFbWFpbEZpZWxkVmFsaWRhdGlvbiApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgdmFsaWRhdGlvbiBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvciA9ICRpbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gZ2V0X2NsYXNzKCR0aGlzLT5fdmFsaWRhdG9yKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvci0+Z2V0X2Rpc3BsYXlfc3RyaW5nKCAkdGhpcy0+X21vZC0+Z2V0X3RyYW5zbGF0b3IoKSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhbGxvd3NfbXVsdGlwbGUoKQogICAgewogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZpZWxkKCAkZmllbGRuYW1lICkKICAgIHsKICAgICAgICAkZmllbGRuYW1lID0gdHJpbSgkZmllbGRuYW1lKTsKICAgICAgICBpZiggISRmaWVsZG5hbWUgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdUaGUgZmllbGQgbmFtZSBmb3IgYSBFbWFpbEZpZWxkVmFsaWRhdGlvbiBjYW5ub3QgYmUgZW1wdHknKTsKCiAgICAgICAgJHRoaXMtPl92YWxpZGF0b3ItPnNldF9maWVsZE5hbWUoJGZpZWxkbmFtZSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZV9lZGl0X2Zvcm0oIGFycmF5ICRwYXJhbXMsIFxDR0JldHRlckZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsICRndWlkICkKICAgIHsKICAgICAgICAkbW9kID0gJHRoaXMtPl9tb2Q7CgogICAgICAgIGlmKCBcY2dlX3BhcmFtOjpleGlzdHMoJHBhcmFtcywnY2FuY2VsJykgKSB7CiAgICAgICAgICAgICR0aGlzLT5nZXRfaGVscGVyKCktPmNhbmNlbCggJGZvcm1fZ3VpZCApOwogICAgICAgIH0KICAgICAgICBpZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3N1Ym1pdCcpICkgewogICAgICAgICAgICAkdGhpcy0+c2V0X2ZpZWxkKFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZmllbGRuYW1lJykpOwoKICAgICAgICAgICAgLy8gbm93IGhhdmUgdGhlIGRpc3Bvc2l0aW9uIG9iamVjdCwgc3RvcmUgaXQuCiAgICAgICAgICAgICR0aGlzLT5nZXRfaGVscGVyKCktPmZpbmlzaCggJGZvcm0sICRmb3JtX2d1aWQsICR0aGlzLT5nZXRfdmFsaWRhdGlvbigpLCAkZ3VpZCApOwogICAgICAgIH0KCiAgICAgICAgJHRwbCA9ICRtb2QtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9lZGl0X2VtYWlsZmllbGR2YWxpZGF0aW9uLnRwbCcpOwogICAgICAgICR0cGwtPmFzc2lnbignZWRpdG9yX25hbWUnLGdldF9jbGFzcygkdGhpcykpOwogICAgICAgICR0cGwtPmFzc2lnbignaGFuZGxlcicsJHRoaXMpOwogICAgICAgICR0cGwtPmFzc2lnbignZm9ybV9ndWlkJywkZm9ybV9ndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2d1aWQnLCRndWlkKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2ZpZWxkcycsJGZvcm0tPmdldF9maWVsZF9saXN0KCkpOwogICAgICAgICR0cGwtPmFzc2lnbigndmFsaWRhdGlvbicsJHRoaXMtPmdldF92YWxpZGF0aW9uKCkpOwogICAgICAgICR0cGwtPmRpc3BsYXkoKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.EmailPrimitiveValidation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgRW1haWxQcmltaXRpdmVWYWxpZGF0aW9uIGV4dGVuZHMgVmFsaWRhdGlvbgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlfc3RyaW5nKCBcQ0dCZXR0ZXJGb3Jtc1xUcmFuc2xhdG9yICR0ciApCiAgICB7CiAgICAgICAgcmV0dXJuICR0ci0+dHJhbnNsYXRlKCdkaXNwbGF5X0VtYWlsUHJpbWl0aXZlVmFsaWRhdG9yJyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlKFxDR0JldHRlckZvcm1zXEZvcm0gJGZvcm0sIFxDR0JldHRlckZvcm1zXEZvcm1SZXNwb25zZSYgJGRhdGEsIFxDR0JldHRlckZvcm1zXFRyYW5zbGF0b3IgJHRyYW5zbGF0b3IgKQogICAgewogICAgICAgICRuYW1lcyA9ICRmb3JtLT5nZXRfZmllbGRuYW1lcygpOwogICAgICAgIGZvcmVhY2goICRuYW1lcyBhcyAkbmFtZSApIHsKICAgICAgICAgICAgJGZpZWxkID0gJGZvcm0tPmdldF9maWVsZCggJG5hbWUgKTsKCSAgICBpZiggJGZpZWxkLT5ub3ZhbGlkYXRlICkgY29udGludWU7CiAgICAgICAgICAgIGlmKCAkZmllbGQtPnR5cGUgIT0gJ2VtYWlsJyAmJiAkZmllbGQtPnByaW1pdGl2ZSAhPSAnZW1haWwnICkgY29udGludWU7CiAgICAgICAgICAgICR1c2VydmFsID0gJGRhdGEtPmdldF9maWVsZF92YWx1ZSggJG5hbWUgKTsKICAgICAgICAgICAgaWYoICEkdXNlcnZhbCApIGNvbnRpbnVlOyAvLyByZXF1aXJlZCBpcyBjaGVja2VkIGVsc2V3aGVyZQogICAgICAgICAgICBpZiggIWlzX2FycmF5KCR1c2VydmFsKSApICR1c2VydmFsID0gWyAkdXNlcnZhbCBdOwogICAgICAgICAgICBmb3JlYWNoKCAkdXNlcnZhbCBhcyAkb25lICkgewogICAgICAgICAgICAgICAgaWYoICEgaXNfZW1haWwoJG9uZSkgKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkV4Y2VwdGlvbigkZmllbGQtPm5hbWUsJHRyYW5zbGF0b3ItPnRyYW5zbGF0ZSgnZXJyX2lucHV0X25vdGVtYWlsJywkZmllbGQtPm5hbWUpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.EmailPrimitiveValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgRW1haWxQcmltaXRpdmVWYWxpZGF0aW9uRWRpdG9yIGV4dGVuZHMgVmFsaWRhdGlvbkVkaXRvcgp7CiAgICBwcml2YXRlICRfdmFsaWRhdG9yOwogICAgcHJpdmF0ZSAkX21vZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoIFxDR0JldHRlckZvcm1zICRtb2QgKQogICAgewogICAgICAgICR0aGlzLT5fbW9kID0gJG1vZDsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvciA9IG5ldyBFbWFpbFByaW1pdGl2ZVZhbGlkYXRpb247CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2QtPkxhbmcoJ25hbWVfRW1haWxQcmltaXRpdmVWYWxpZGF0b3InKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ZhbGlkYXRpb24oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvcjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3ZhbGlkYXRpb24oIFZhbGlkYXRpb24gJGluICkKICAgIHsKICAgICAgICBpZiggISAkaW4gaW5zdGFuY2VvZiBFbWFpbFByaW1pdGl2ZVZhbGlkYXRpb24gKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIHZhbGlkYXRpb24gcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgJHRoaXMtPl92YWxpZGF0b3IgPSAkaW47CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGhhc19pbnRlcmZhY2UoKSB7IHJldHVybiBGQUxTRTsgfQogICAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZV9lZGl0X2Zvcm0oIGFycmF5ICRwYXJhbXMsIFxDR0JldHRlckZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsICRndWlkICkge30KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gZ2V0X2NsYXNzKCR0aGlzLT5fdmFsaWRhdG9yKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvci0+Z2V0X2Rpc3BsYXlfc3RyaW5nKCAkdGhpcy0+X21vZC0+Z2V0X3RyYW5zbGF0b3IoKSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhbGxvd3NfbXVsdGlwbGUoKQogICAgewogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCgp9IC8vIGVuZCBvZiBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.FileValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgRmlsZVZhbGlkYXRpb25FZGl0b3IgZXh0ZW5kcyBWYWxpZGF0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF92YWxpZGF0b3I7CiAgICBwcml2YXRlICRfbW9kOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggXENHQmV0dGVyRm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fdmFsaWRhdG9yID0gbmV3IEZpbGVWYWxpZGF0b3I7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2QtPkxhbmcoJ25hbWVfRmlsZVZhbGlkYXRvcicpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdmFsaWRhdGlvbigpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdmFsaWRhdG9yOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfdmFsaWRhdGlvbiggVmFsaWRhdGlvbiAkaW4gKQogICAgewogICAgICAgIGlmKCAhICRpbiBpbnN0YW5jZW9mIEZpbGVWYWxpZGF0b3IgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIHZhbGlkYXRpb24gcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgJHRoaXMtPl92YWxpZGF0b3IgPSAkaW47CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGhhc19pbnRlcmZhY2UoKSB7IHJldHVybiBGQUxTRTsgfQogICAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZV9lZGl0X2Zvcm0oIGFycmF5ICRwYXJhbXMsIFxDR0JldHRlckZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsICRndWlkICkge30KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gZ2V0X2NsYXNzKCR0aGlzLT5fdmFsaWRhdG9yKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvci0+Z2V0X2Rpc3BsYXlfc3RyaW5nKCAkdGhpcy0+X21vZC0+Z2V0X3RyYW5zbGF0b3IoKSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhbGxvd3NfbXVsdGlwbGUoKQogICAgewogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.FileValidator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgRmlsZVZhbGlkYXRvciBleHRlbmRzIFZhbGlkYXRpb24KewogICAgcHVibGljIGZ1bmN0aW9uIGdldF9kaXNwbGF5X3N0cmluZyggXENHQmV0dGVyRm9ybXNcVHJhbnNsYXRvciAkdHIgKQogICAgewogICAgICAgIHJldHVybiAkdHItPnRyYW5zbGF0ZSggJ2Rpc3BsYXlfRmlsZVZhbGlkYXRvcicgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gVmFsaWRhdGUoXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgXENHQmV0dGVyRm9ybXNcRm9ybVJlc3BvbnNlJiAkcmVzcG9uc2UsIFxDR0JldHRlckZvcm1zXFRyYW5zbGF0b3IgJHRyYW5zbGF0b3IgKQogICAgewogICAgICAgIGlmKCAhICRyZXNwb25zZS0+aGFzX3VwbG9hZHMoKSApIHJldHVybjsKCiAgICAgICAgLy8gaGVyZSBmb3IgZWFjaCB1cGxvYWQgZmllbGQuLi4gd2UgY2hlY2sgdGhlIHZhbHVlCiAgICAgICAgJGZpbGVzID0gJHJlc3BvbnNlLT5saXN0X2ZpbGVzKCk7CiAgICAgICAgaWYoICFjb3VudCgkZmlsZXMpICkgcmV0dXJuOyAvLyBub3RoaW5nIHRvIGRvLgoKICAgICAgICBmb3JlYWNoKCAkZm9ybS0+ZmllbGRzIGFzICRmaWVsZCApIHsKICAgICAgICAgICAgaWYoICRmaWVsZC0+bm92YWxpZGF0ZSApIGNvbnRpbnVlOwogICAgICAgICAgICBpZiggISAkZmllbGQgaW5zdGFuY2VvZiBGb3JtRmlsZUZpZWxkICkgY29udGludWU7CiAgICAgICAgICAgICRuYW1lID0gJGZpZWxkLT5uYW1lOwogICAgICAgICAgICAkdmFsdWUgPSAkcmVzcG9uc2UtPmdldF9maWVsZF92YWx1ZSggJG5hbWUgKTsKICAgICAgICAgICAgaWYoICEkdmFsdWUgKSBjb250aW51ZTsKICAgICAgICAgICAgaWYoICFpc3NldCgkZmlsZXNbJG5hbWVdKSApIGNvbnRpbnVlOwogICAgICAgICAgICBkaWUoJ3RvZG8gJy5fX01FVEhPRF9fLicgYXQgJy5fX0xJTkVfXyk7CiAgICAgICAgICAgICR0aGlzLT52YWxpZGF0ZV9maWxlcyggJGZpZWxkLCAkZmlsZXNbJG5hbWVdLCAkdHJhbnNsYXRvciApOwogICAgICAgIH0KICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gdmFsaWRhdGVfZmlsZXMoIEZvcm1GaWxlRmllbGQgJGZpZWxkLCBhcnJheSAkZmlsZV9pbmZvLCBcQ0dCZXR0ZXJGb3Jtc1xUcmFuc2xhdG9yICR0cmFuc2xhdG9yICkKICAgIHsKICAgICAgICBpZiggIWNvdW50KCRmaWxlX2luZm8pICkgcmV0dXJuOwogICAgICAgIGZvcmVhY2goICRmaWxlX2luZm8gYXMgJHJlYyApIHsKICAgICAgICAgICAgaWYoICRmaWVsZC0+YWNjZXB0ICYmICEgJHRoaXMtPmZpbGVfYWNjZXB0ZWRfYnlfdHlwZSggJGZpZWxkLT5hY2NlcHQsICRyZWMgKSApIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBCYWRVcGxvYWRFcnJvcigkZmllbGQtPm5hbWUsICR0cmFuc2xhdG9yLT50cmFuc2xhdGUoJ2Vycl91cGxvYWRfdHlwZScsICRmaWVsZC0+bmFtZSkgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiggJGZpZWxkLT5leHRlbnNpb25zICYmICEgJHRoaXMtPmZpbGVfYWNjZXB0ZWRfYnlfZXh0ZW5zaW9uKCRmaWVsZC0+ZXh0ZW5zaW9ucywgJHJlYykgKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQmFkVXBsb2FkRXJyb3IoJGZpZWxkLT5uYW1lLCAkdHJhbnNsYXRvci0+dHJhbnNsYXRlKCdlcnJfdXBsb2FkX2V4dGVuc2lvbicsICRmaWVsZC0+bmFtZSkgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiggJGZpZWxkLT5tYXhfc2l6ZSAgJiYgISR0aGlzLT5maWxlX2FjY2VwdGVkX2J5X3NpemUoICRmaWVsZC0+bWF4X3NpemUsICRyZWMgKSApIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBCYWRVcGxvYWRFcnJvcigkZmllbGQtPm5hbWUsICR0cmFuc2xhdG9yLT50cmFuc2xhdGUoJ2Vycl91cGxvYWRfc2l6ZScpICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGZpbGVfYWNjZXB0ZWRfYnlfc2l6ZSggJG1heF9zaXplLCBhcnJheSAkcmVjICkKICAgIHsKICAgICAgICAkdG90YWwgPSAwOwogICAgICAgIGlmKCBpc3NldCgkcmVjWydzaXplJ10pICkgICRyZWMgPSBbICRyZWMgXTsKICAgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkcmVjKTsgJGkrKyApIHsKICAgICAgICAgICAgJHRvdGFsICs9ICRyZWNbJGldWydzaXplJ107CiAgICAgICAgfQogICAgICAgIGlmKCAkdG90YWwgPD0gJG1heF9zaXplICkgcmV0dXJuIFRSVUU7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGZpbGVfYWNjZXB0ZWRfYnlfZXh0ZW5zaW9uKCAkZXh0ZW5zaW9ucywgYXJyYXkgJHJlYyApCiAgICB7CiAgICAgICAgaWYoICEkZXh0ZW5zaW9ucyApIHJldHVybiBUUlVFOwogICAgICAgIGlmKCBpc3NldCgkcmVjWydzaXplJ10pICkgICRyZWMgPSBbICRyZWMgXTsKICAgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkcmVjKTsgJGkrKyApIHsKICAgICAgICAgICAgJG5hbWUgPSAkcmVjWyRpXVsnbmFtZSddOwogICAgICAgICAgICBpZiggISRuYW1lICkgcmV0dXJuIEZBTFNFOwoKICAgICAgICAgICAgJGV4dCA9IHN0cnRvbG93ZXIoc3Vic3RyKHN0cnJjaHIoJGZpbGVuYW1lLCIuIiksMSkpOwogICAgICAgICAgICBpZiggISRleHQgKSByZXR1cm4gRkFMU0U7CgogICAgICAgICAgICAkbGlzdCA9IGV4cGxvZGUoJywnLCRleHRlbnNpb25zKTsKICAgICAgICAgICAgZm9yZWFjaCggJGxpc3QgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgICRvbmUgPSB0cmltKCRvbmUpOwogICAgICAgICAgICAgICAgaWYoICEkb25lICkgY29udGludWU7CiAgICAgICAgICAgICAgICAkb25lID0gc3RydG9sb3dlcigkb25lKTsKICAgICAgICAgICAgICAgIGlmKCAkZXh0ID09ICRvbmUgKSBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gRkFMU0U7CiAgICAgICAgfQogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiB3aWxkY2FyZE1hdGNoTWltZVR5cGUoICR0eXBlLCAkdGVzdCApCiAgICB7CiAgICAgICAgaWYoICEkdHlwZSApIHJldHVybiBUUlVFOwogICAgICAgIGlmKCAkdHlwZSA9PSAnKi8qJyB8fCAkdHlwZSA9PSAnKicgKSByZXR1cm4gVFJVRTsKICAgICAgICBpZiggc3RycG9zKCcqJywkdHlwZSkgIT09IEZBTFNFICkgewogICAgICAgICAgICByZXR1cm4gKHN0cnRvbG93ZXIoJHR5cGUpID09IHN0cnRvbG93ZXIoJHRlc3QpKTsKICAgICAgICB9CgogICAgICAgIC8vIGl0J3MgYSB3aWxkY2FyZCBwYXR0ZXJuLgogICAgICAgICR0eXBlX3BhcnRzID0gZXhwbG9kZSgnLycsJHR5cGUsMik7CiAgICAgICAgJHRlc3RfcGFydHMgPSBleHBsb2RlKCcvJywkdGVzdCwyKTsKICAgICAgICAkbiA9IG1pbihjb3VudCgkdHlwZV9wYXJ0cyksY291bnQoJHRlc3RfcGFydHMpKTsKICAgICAgICBmb3IoICRpID0gMDsgJGkgPCAkbjsgJGkrKyApIHsKICAgICAgICAgICAgJGEgPSBzdHJ0b2xvd2VyKCR0eXBlX3BhcnRzWyRpXSk7CiAgICAgICAgICAgICRiID0gc3RydG9sb3dlcigkdGVzdF9wYXJ0c1skaV0pOwogICAgICAgICAgICBpZiggJGEgPT0gJyonICkgcmV0dXJuIFRSVUU7CiAgICAgICAgICAgIGlmKCAkYSAhPSAkYiApIHJldHVybiBGQUxTRTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGZpbGVfYWNjZXB0ZWRfYnlfdHlwZSggJGFjY2VwdCwgYXJyYXkgJHJlYyApCiAgICB7CiAgICAgICAgaWYoICEkYWNjZXB0ICkgcmV0dXJuIFRSVUU7CgogICAgICAgIGlmKCBpc3NldCgkcmVjWydzaXplJ10pICkgICRyZWMgPSBbICRyZWMgXTsKICAgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkcmVjKTsgJGkrKyApIHsKICAgICAgICAgICAgJG1pbWVfdHlwZSA9ICRyZWNbJGldWydtaW1lX3R5cGUnXTsKICAgICAgICAgICAgJGFsbCA9IGV4cGxvZGUoJywnLCRhY2NlcHQpOwogICAgICAgICAgICAkZm5kID0gZmFsc2U7CiAgICAgICAgICAgIGZvcmVhY2goICRhbGwgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgICRvbmUgPSB0cmltKCRvbmUpOwogICAgICAgICAgICAgICAgaWYoICEkb25lICkgY29udGludWU7CiAgICAgICAgICAgICAgICBpZiggJHRoaXMtPndpbGRjYXJkTWF0Y2hNaW1lVHlwZSggJG9uZSwgJHJlY1snbWltZV90eXBlJ10pICkgewogICAgICAgICAgICAgICAgICAgICRmbmQgPSB0cnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCAhJGZuZCApIHJldHVybiBGQUxTRTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.FloatFieldValidation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgRmxvYXRGaWVsZFZhbGlkYXRpb24gZXh0ZW5kcyBWYWxpZGF0aW9uCnsKICAgIHByaXZhdGUgJF9maWVsZE5hbWU7CiAgICBwcml2YXRlICRfbWluVmFsOwogICAgcHJpdmF0ZSAkX21heFZhbDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoICRrZXkgKQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdmaWVsZE5hbWUnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X2ZpZWxkTmFtZSk7CgogICAgICAgIGNhc2UgJ21pblZhbCc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X21pblZhbDsKCiAgICAgICAgY2FzZSAnbWF4VmFsJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fbWF4VmFsOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlfc3RyaW5nKCBcQ0dCZXR0ZXJGb3Jtc1xUcmFuc2xhdG9yICR0ciApCiAgICB7CiAgICAgICAgJG1pblYgPSAkdGhpcy0+bWluVmFsOwogICAgICAgICRtYXhWID0gJHRoaXMtPm1heFZhbDsKICAgICAgICBpZiggJG1pblYgJiYgISRtYXhWICkgewogICAgICAgICAgICByZXR1cm4gJHRyLT50cmFuc2xhdGUoJ2Rpc3BsYXlfRmxvYXRGaWVsZFZhbGlkYXRpb24xJywkdGhpcy0+ZmllbGROYW1lLCRtaW5WKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggJG1heFYgJiYgISRtaW5WICkgewogICAgICAgICAgICByZXR1cm4gJHRyLT50cmFuc2xhdGUoJ2Rpc3BsYXlfRmxvYXRGaWVsZFZhbGlkYXRpb24yJywkdGhpcy0+ZmllbGROYW1lLCRtYXhWKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAkdHItPnRyYW5zbGF0ZSgnZGlzcGxheV9GbG9hdEZpZWxkVmFsaWRhdGlvbjMnLCR0aGlzLT5maWVsZE5hbWUsJG1pblYsJG1heFYpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZpZWxkTmFtZSgkdmFsKQogICAgewogICAgICAgICR0aGlzLT5fZmllbGROYW1lID0gdHJpbSgkdmFsKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X21pblZhbHVlKCR2YWwpCiAgICB7CiAgICAgICAgaWYoICFpc19udWxsKCR2YWwpICkgJHZhbCA9IChmbG9hdCkgJHZhbDsKICAgICAgICAkdGhpcy0+X21pblZhbCA9ICR2YWw7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9tYXhWYWx1ZSgkdmFsKQogICAgewogICAgICAgIGlmKCAhaXNfbnVsbCgkdmFsKSApICR2YWwgPSAoZmxvYXQpICR2YWw7CiAgICAgICAgJHRoaXMtPl9tYXhWYWwgPSAkdmFsOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZShcQ0dCZXR0ZXJGb3Jtc1xGb3JtICRmb3JtLCBcQ0dCZXR0ZXJGb3Jtc1xGb3JtUmVzcG9uc2UmICRyZXNwb25zZSwgXENHQmV0dGVyRm9ybXNcVHJhbnNsYXRvciAkdHJhbnNsYXRvciApCiAgICB7CiAgICAgICAgaWYoICEkdGhpcy0+X2ZpZWxkTmFtZSApIHJldHVybjsKICAgICAgICAkdmFsID0gJHJlc3BvbnNlLT5nZXRfZmllbGRfdmFsdWUoICR0aGlzLT5fZmllbGROYW1lICk7CgogICAgICAgICRmaWVsZCA9ICRmb3JtLT5nZXRfZmllbGQoICR0aGlzLT5fZmllbGROYW1lICk7CiAgICAgICAgaWYoICRmaWVsZC0+bm92YWxpZGF0ZSApIHJldHVybjsKCiAgICAgICAgJG1pblYgPSAkdGhpcy0+X21pblZhbDsKICAgICAgICAkbWF4ViA9ICR0aGlzLT5fbWF4VmFsOwogICAgICAgIGlmKCBzdHJsZW4oJG1pblYpICYmIHN0cmxlbigkbWF4VikgJiYgJG1pblYgPiAkbWF4ViApIHsKICAgICAgICAgICAgJHRtcCA9ICRtYXhWOwogICAgICAgICAgICAkbWF4ViA9ICRtaW5WOwogICAgICAgICAgICAkbWluViA9ICR0bXA7CiAgICAgICAgfQogICAgICAgIGlmKCAhaXNfYXJyYXkoICR2YWwgKSApICR2YWwgPSBbICR2YWwgXTsKICAgICAgICBmb3JlYWNoKCAkdmFsIGFzICRvbmVfdmFsICkgewogICAgICAgICAgICAkb25lX3ZhbCA9IChmbG9hdCkgJG9uZV92YWw7CiAgICAgICAgICAgIGlmKCBzdHJsZW4oJG1pblYpICYmICRvbmVfdmFsIDwgKGZsb2F0KSAkbWluViApIHRocm93IG5ldyBWYWxpZGF0aW9uRXhjZXB0aW9uKCR0aGlzLT5maWVsZE5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0cmFuc2xhdG9yLT50cmFuc2xhdGUoJ2Vycl9maWVsZF9pbnZhbGlkdmFsdWUnLCRmaWVsZC0+bGFiZWwpKTsKICAgICAgICAgICAgaWYoIHN0cmxlbigkbWF4VikgJiYgJG9uZV92YWwgPiAoZmxvYXQpICRtYXhWICkgdGhyb3cgbmV3IFZhbGlkYXRpb25FeGNlcHRpb24oJHRoaXMtPmZpZWxkTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRyYW5zbGF0b3ItPnRyYW5zbGF0ZSgnZXJyX2ZpZWxkX2ludmFsaWR2YWx1ZScsJGZpZWxkLT5sYWJlbCkpOwogICAgICAgIH0KICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.FloatFieldValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgRmxvYXRGaWVsZFZhbGlkYXRpb25FZGl0b3IgZXh0ZW5kcyBWYWxpZGF0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF92YWxpZGF0b3I7CiAgICBwcml2YXRlICRfbW9kOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggXENHQmV0dGVyRm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fdmFsaWRhdG9yID0gbmV3IEZsb2F0RmllbGRWYWxpZGF0aW9uOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCduYW1lX0Zsb2F0RmllbGRWYWxpZGF0b3InKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ZhbGlkYXRpb24oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvcjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3ZhbGlkYXRpb24oIFZhbGlkYXRpb24gJGluICkKICAgIHsKICAgICAgICBpZiggISAkaW4gaW5zdGFuY2VvZiBGbG9hdEZpZWxkVmFsaWRhdGlvbiApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgdmFsaWRhdGlvbiBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvciA9ICRpbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gZ2V0X2NsYXNzKCR0aGlzLT5fdmFsaWRhdG9yKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvci0+Z2V0X2Rpc3BsYXlfc3RyaW5nKCAkdGhpcy0+X21vZC0+Z2V0X3RyYW5zbGF0b3IoKSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhbGxvd3NfbXVsdGlwbGUoKQogICAgewogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZpZWxkKCAkZmllbGRuYW1lICkKICAgIHsKICAgICAgICAkZmllbGRuYW1lID0gdHJpbSgkZmllbGRuYW1lKTsKICAgICAgICBpZiggISRmaWVsZG5hbWUgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdUaGUgZmllbGQgbmFtZSBmb3IgYW4gRmxvYXRGaWVsZFZhbGlkYXRpb24gY2Fubm90IGJlIGVtcHR5Jyk7CgogICAgICAgICR0aGlzLT5fdmFsaWRhdG9yLT5zZXRfZmllbGROYW1lKCRmaWVsZG5hbWUpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfbWluVmFsdWUoICR2YWwgKQogICAgewogICAgICAgICR2YWwgPSB0cmltKCAkdmFsICk7CiAgICAgICAgaWYoIHN0cmxlbigkdmFsKSApIHsKICAgICAgICAgICAgJHRoaXMtPl92YWxpZGF0b3ItPnNldF9taW5WYWx1ZSgoaW50KSAkdmFsKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvci0+c2V0X21pblZhbHVlKG51bGwpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X21heFZhbHVlKCAkdmFsICkKICAgIHsKICAgICAgICAkdmFsID0gdHJpbSggJHZhbCApOwogICAgICAgIGlmKCBzdHJsZW4oJHZhbCkgKSB7CiAgICAgICAgICAgICR0aGlzLT5fdmFsaWRhdG9yLT5zZXRfbWF4VmFsdWUoKGludCkgJHZhbCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPl92YWxpZGF0b3ItPnNldF9tYXhWYWx1ZShudWxsKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZV9lZGl0X2Zvcm0oIGFycmF5ICRwYXJhbXMsIFxDR0JldHRlckZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsICRndWlkICkKICAgIHsKICAgICAgICAkbW9kID0gJHRoaXMtPl9tb2Q7CgogICAgICAgIGlmKCBcY2dlX3BhcmFtOjpleGlzdHMoJHBhcmFtcywnY2FuY2VsJykgKSB7CiAgICAgICAgICAgICR0aGlzLT5nZXRfaGVscGVyKCktPmNhbmNlbCggJGZvcm1fZ3VpZCApOwogICAgICAgIH0KICAgICAgICBpZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3N1Ym1pdCcpICkgewogICAgICAgICAgICAkdGhpcy0+c2V0X2ZpZWxkKFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZmllbGRuYW1lJykpOwogICAgICAgICAgICAkdGhpcy0+c2V0X21pblZhbHVlKFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnbWluVmFsdWUnKSk7CiAgICAgICAgICAgICR0aGlzLT5zZXRfbWF4VmFsdWUoXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdtYXhWYWx1ZScpKTsKCiAgICAgICAgICAgIC8vIG5vdyBoYXZlIHRoZSBkaXNwb3NpdGlvbiBvYmplY3QsIHN0b3JlIGl0LgogICAgICAgICAgICAkdGhpcy0+Z2V0X2hlbHBlcigpLT5maW5pc2goICRmb3JtLCAkZm9ybV9ndWlkLCAkdGhpcy0+Z2V0X3ZhbGlkYXRpb24oKSwgJGd1aWQgKTsKICAgICAgICB9CgogICAgICAgICR0cGwgPSAkbW9kLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fZWRpdF9mbG9hdGZpZWxkdmFsaWRhdGlvbi50cGwnKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2VkaXRvcl9uYW1lJyxnZXRfY2xhc3MoJHRoaXMpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2hhbmRsZXInLCR0aGlzKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2Zvcm1fZ3VpZCcsJGZvcm1fZ3VpZCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdndWlkJywkZ3VpZCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdmaWVsZHMnLCRmb3JtLT5nZXRfZmllbGRfbGlzdCgpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3ZhbGlkYXRpb24nLCR0aGlzLT5nZXRfdmFsaWRhdGlvbigpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3RwbF9oZWxwJyxcQ0dCZXR0ZXJGb3Jtc1x1dGlsczo6Z2V0X2Zvcm1fdHBsX2hlbHAoICRmb3JtKSApOwogICAgICAgICR0cGwtPmRpc3BsYXkoKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.HookValidator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgSG9va1ZhbGlkYXRvciBleHRlbmRzIFZhbGlkYXRpb24KewogICAgcHVibGljIGZ1bmN0aW9uIGdldF9kaXNwbGF5X3N0cmluZyggXENHQmV0dGVyRm9ybXNcVHJhbnNsYXRvciAkdHIgKQogICAgewogICAgICAgIHJldHVybiAnSG9vayBWYWxpZGF0b3IgKGludGVybmFsKSc7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIFZhbGlkYXRlKFxDR0JldHRlckZvcm1zXEZvcm0gJGZvcm0sIFxDR0JldHRlckZvcm1zXEZvcm1SZXNwb25zZSYgJHJlc3BvbnNlLCBcQ0dCZXR0ZXJGb3Jtc1xUcmFuc2xhdG9yICR0ciApCiAgICB7CiAgICAgICAgJHJlcyA9IFxDTVNNU1xIb29rTWFuYWdlcjo6ZG9faG9vayggJ0NHQmV0dGVyRm9ybXM6OnZhbGlkYXRlRm9ybScsICRyZXNwb25zZSApOwogICAgICAgIGlmKCAkcmVzICYmICRyZXMgaW5zdGFuY2VvZiBcQ0dCZXR0ZXJGb3Jtc1xGb3JtUmVzcG9uc2UgKSAkcmVzcG9uc2UgPSAkcmVzOwogICAgfQoKfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.HtmlDetectionValidation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgSHRtbERldGVjdGlvblZhbGlkYXRpb24gZXh0ZW5kcyBWYWxpZGF0aW9uCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheV9zdHJpbmcoIFxDR0JldHRlckZvcm1zXFRyYW5zbGF0b3IgJHRyICkKICAgIHsKICAgICAgICByZXR1cm4gJHRyLT50cmFuc2xhdGUoJ2Rpc3BsYXlfSHRtbERldGVjdGlvblZhbGlkYXRpb24nKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGUoXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgXENHQmV0dGVyRm9ybXNcRm9ybVJlc3BvbnNlJiAkZGF0YSwgXENHQmV0dGVyRm9ybXNcVHJhbnNsYXRvciAkdHJhbnNsYXRvciApCiAgICB7CiAgICAgICAgJG5hbWVzID0gJGZvcm0tPmdldF9maWVsZG5hbWVzKCk7CiAgICAgICAgZm9yZWFjaCggJG5hbWVzIGFzICRuYW1lICkgewogICAgICAgICAgICAkZmllbGQgPSAkZm9ybS0+Z2V0X2ZpZWxkKCAkbmFtZSApOwogICAgICAgICAgICAkdXNlcnZhbCA9ICRkYXRhLT5nZXRfZmllbGRfdmFsdWUoICRuYW1lICk7CiAgICAgICAgICAgIGlmKCAhICR1c2VydmFsICkgY29udGludWU7CgogICAgICAgICAgICBpZiggIWlzX2FycmF5KCAkdXNlcnZhbCkgKSAkdXNlcnZhbCA9IFsgJHVzZXJ2YWwgXTsKICAgICAgICAgICAgZm9yZWFjaCggJHVzZXJ2YWwgYXMgJG9uZV92YWwgKSB7CiAgICAgICAgICAgICAgICAkdG1wID0gc3RyaXBfdGFncyggJG9uZV92YWwgKTsKICAgICAgICAgICAgICAgIGlmKCAkdG1wICE9ICRvbmVfdmFsICkgdGhyb3cgbmV3IFZhbGlkYXRpb25FeGNlcHRpb24oJGZpZWxkLT5uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdHJhbnNsYXRvci0+dHJhbnNsYXRlKCdlcnJfaW5wdXRfaHRtbGRldGVjdGVkJykpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.HtmlDetectionValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgSHRtbERldGVjdGlvblZhbGlkYXRpb25FZGl0b3IgZXh0ZW5kcyBWYWxpZGF0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF92YWxpZGF0b3I7CiAgICBwcml2YXRlICRfbW9kOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggXENHQmV0dGVyRm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fdmFsaWRhdG9yID0gbmV3IEh0bWxEZXRlY3Rpb25WYWxpZGF0aW9uOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCduYW1lX0h0bWxEZXRlY3Rpb25WYWxpZGF0b3InKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ZhbGlkYXRpb24oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvcjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3ZhbGlkYXRpb24oIFZhbGlkYXRpb24gJGluICkKICAgIHsKICAgICAgICBpZiggISAkaW4gaW5zdGFuY2VvZiBIdG1sRGV0ZWN0aW9uVmFsaWRhdGlvbiApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgdmFsaWRhdGlvbiBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvciA9ICRpbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX2ludGVyZmFjZSgpIHsgcmV0dXJuIEZBTFNFOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlX2VkaXRfZm9ybSggYXJyYXkgJHBhcmFtcywgXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgJGZvcm1fZ3VpZCwgJGd1aWQgKSB7fQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3V0cHV0Y2xhc3MoKQogICAgewogICAgICAgIHJldHVybiBnZXRfY2xhc3MoJHRoaXMtPl92YWxpZGF0b3IpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheXN0cmluZygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdmFsaWRhdG9yLT5nZXRfZGlzcGxheV9zdHJpbmcoICR0aGlzLT5fbW9kLT5nZXRfdHJhbnNsYXRvcigpICk7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCdkaXNwbGF5X0h0bWxEZXRlY3Rpb25WYWxpZGF0aW9uJyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGFsbG93c19tdWx0aXBsZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKCn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.IntegerFieldValidation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgSW50ZWdlckZpZWxkVmFsaWRhdGlvbiBleHRlbmRzIFZhbGlkYXRpb24KewogICAgcHJpdmF0ZSAkX2ZpZWxkTmFtZTsKICAgIHByaXZhdGUgJF9taW5WYWw7CiAgICBwcml2YXRlICRfbWF4VmFsOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCggJGtleSApCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2ZpZWxkTmFtZSc6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fZmllbGROYW1lKTsKCiAgICAgICAgY2FzZSAnbWluVmFsJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fbWluVmFsOwoKICAgICAgICBjYXNlICdtYXhWYWwnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9tYXhWYWw7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheV9zdHJpbmcoIFxDR0JldHRlckZvcm1zXFRyYW5zbGF0b3IgJHRyICkKICAgIHsKICAgICAgICAkbWluViA9ICR0aGlzLT5taW5WYWw7CiAgICAgICAgJG1heFYgPSAkdGhpcy0+bWF4VmFsOwogICAgICAgIGlmKCAkbWluViAmJiAhJG1heFYgKSB7CiAgICAgICAgICAgIHJldHVybiAkdHItPnRyYW5zbGF0ZSgnZGlzcGxheV9JbnRlZ2VyRmllbGRWYWxpZGF0aW9uMScsJHRoaXMtPmZpZWxkTmFtZSwkbWluVik7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoICRtYXhWICYmICEkbWluViApIHsKICAgICAgICAgICAgcmV0dXJuICR0ci0+dHJhbnNsYXRlKCdkaXNwbGF5X0ludGVnZXJGaWVsZFZhbGlkYXRpb24yJywkdGhpcy0+ZmllbGROYW1lLCRtYXhWKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAkdHItPnRyYW5zbGF0ZSgnZGlzcGxheV9JbnRlZ2VyRmllbGRWYWxpZGF0aW9uMycsJHRoaXMtPmZpZWxkTmFtZSwkbWluViwkbWF4Vik7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZmllbGROYW1lKCR2YWwpCiAgICB7CiAgICAgICAgJHRoaXMtPl9maWVsZE5hbWUgPSB0cmltKCR2YWwpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfbWluVmFsdWUoJHZhbCkKICAgIHsKICAgICAgICBpZiggIWlzX251bGwoJHZhbCkgKSAkdmFsID0gKGludCkgJHZhbDsKICAgICAgICAkdGhpcy0+X21pblZhbCA9ICR2YWw7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9tYXhWYWx1ZSgkdmFsKQogICAgewogICAgICAgIGlmKCAhaXNfbnVsbCgkdmFsKSApICR2YWwgPSAoaW50KSAkdmFsOwogICAgICAgICR0aGlzLT5fbWF4VmFsID0gJHZhbDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGUoXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgXENHQmV0dGVyRm9ybXNcRm9ybVJlc3BvbnNlJiAkcmVzcG9uc2UsIFxDR0JldHRlckZvcm1zXFRyYW5zbGF0b3IgJHRyYW5zbGF0b3IgKQogICAgewogICAgICAgIGlmKCAhJHRoaXMtPl9maWVsZE5hbWUgKSByZXR1cm47CiAgICAgICAgJHZhbCA9ICRyZXNwb25zZS0+Z2V0X2ZpZWxkX3ZhbHVlKCAkdGhpcy0+X2ZpZWxkTmFtZSApOwoKICAgICAgICAkZmllbGQgPSAkZm9ybS0+Z2V0X2ZpZWxkKCAkdGhpcy0+X2ZpZWxkTmFtZSApOwogICAgICAgIGlmKCAkZmllbGQtPm5vdmFsaWRhdGUgKSByZXR1cm47CgogICAgICAgICRtaW5WID0gJHRoaXMtPl9taW5WYWw7CiAgICAgICAgJG1heFYgPSAkdGhpcy0+X21heFZhbDsKICAgICAgICBpZiggc3RybGVuKCRtaW5WKSAmJiBzdHJsZW4oJG1heFYpICYmICRtaW5WID4gJG1heFYgKSB7CiAgICAgICAgICAgICR0bXAgPSAkbWF4VjsKICAgICAgICAgICAgJG1heFYgPSAkbWluVjsKICAgICAgICAgICAgJG1pblYgPSAkdG1wOwogICAgICAgIH0KICAgICAgICBpZiggIWlzX2FycmF5KCR2YWwpICkgJHZhbCA9IFsgJHZhbCBdOwogICAgICAgIGZvcmVhY2goICR2YWwgYXMgJG9uZV92YWwgKSB7CiAgICAgICAgICAgICRvbmVfdmFsID0gKGludCkgJG9uZV92YWw7CiAgICAgICAgICAgIGlmKCBzdHJsZW4oJG1pblYpICYmICRvbmVfdmFsIDwgKGludCkgJG1pblYgKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkV4Y2VwdGlvbigkdGhpcy0+ZmllbGROYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRyYW5zbGF0b3ItPnRyYW5zbGF0ZSgnZXJyX2ZpZWxkX2ludmFsaWR2YWx1ZScsJHRoaXMtPmxhYmVsKSk7CiAgICAgICAgICAgIGlmKCBzdHJsZW4oJG1heFYpICYmICRvbmVfdmFsID4gKGludCkgJG1heFYgKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkV4Y2VwdGlvbigkdGhpcy0+ZmllbGROYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRyYW5zbGF0b3ItPnRyYW5zbGF0ZSgnZXJyX2ZpZWxkX2ludmFsaWR2YWx1ZScsJHRoaXMtPmxhYmVsKSk7CiAgICAgICAgfQogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.IntegerFieldValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwp1c2UgXENHQmV0dGVyRm9ybXNcdXRpbHM7CgpjbGFzcyBJbnRlZ2VyRmllbGRWYWxpZGF0aW9uRWRpdG9yIGV4dGVuZHMgVmFsaWRhdGlvbkVkaXRvcgp7CiAgICBwcml2YXRlICRfdmFsaWRhdG9yOwogICAgcHJpdmF0ZSAkX21vZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoIFxDR0JldHRlckZvcm1zICRtb2QgKQogICAgewogICAgICAgICR0aGlzLT5fbW9kID0gJG1vZDsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvciA9IG5ldyBJbnRlZ2VyRmllbGRWYWxpZGF0aW9uOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCduYW1lX0ludGVnZXJGaWVsZFZhbGlkYXRvcicpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdmFsaWRhdGlvbigpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdmFsaWRhdG9yOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfdmFsaWRhdGlvbiggVmFsaWRhdGlvbiAkaW4gKQogICAgewogICAgICAgIGlmKCAhICRpbiBpbnN0YW5jZW9mIEludGVnZXJGaWVsZFZhbGlkYXRpb24gKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIHZhbGlkYXRpb24gcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgJHRoaXMtPl92YWxpZGF0b3IgPSAkaW47CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9vdXRwdXRjbGFzcygpCiAgICB7CiAgICAgICAgcmV0dXJuIGdldF9jbGFzcygkdGhpcy0+X3ZhbGlkYXRvcik7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9kaXNwbGF5c3RyaW5nKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl92YWxpZGF0b3J5LT5nZXRfZGlzcGxheV9zdHJpbmcoICR0aGlzLT5fbW9kLT5nZXRfdHJhbnNsYXRvcigpICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGFsbG93c19tdWx0aXBsZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZmllbGQoICRmaWVsZG5hbWUgKQogICAgewogICAgICAgICRmaWVsZG5hbWUgPSB0cmltKCRmaWVsZG5hbWUpOwogICAgICAgIGlmKCAhJGZpZWxkbmFtZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ1RoZSBmaWVsZCBuYW1lIGZvciBhbiBJbnRlZ2VyRmllbGRWYWxpZGF0aW9uIGNhbm5vdCBiZSBlbXB0eScpOwoKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvci0+c2V0X2ZpZWxkTmFtZSgkZmllbGRuYW1lKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X21pblZhbHVlKCAkdmFsICkKICAgIHsKICAgICAgICAkdmFsID0gdHJpbSggJHZhbCApOwogICAgICAgIGlmKCBzdHJsZW4oJHZhbCkgKSB7CiAgICAgICAgICAgICR0aGlzLT5fdmFsaWRhdG9yLT5zZXRfbWluVmFsdWUoKGludCkgJHZhbCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPl92YWxpZGF0b3ItPnNldF9taW5WYWx1ZShudWxsKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9tYXhWYWx1ZSggJHZhbCApCiAgICB7CiAgICAgICAgJHZhbCA9IHRyaW0oICR2YWwgKTsKICAgICAgICBpZiggc3RybGVuKCR2YWwpICkgewogICAgICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvci0+c2V0X21heFZhbHVlKChpbnQpICR2YWwpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICR0aGlzLT5fdmFsaWRhdG9yLT5zZXRfbWF4VmFsdWUobnVsbCk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfZWRpdF9mb3JtKCBhcnJheSAkcGFyYW1zLCBcQ0dCZXR0ZXJGb3Jtc1xGb3JtICRmb3JtLCAkZm9ybV9ndWlkLCAkZ3VpZCApCiAgICB7CiAgICAgICAgJG1vZCA9ICR0aGlzLT5fbW9kOwoKICAgICAgICBpZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ2NhbmNlbCcpICkgewogICAgICAgICAgICAkdGhpcy0+Z2V0X2hlbHBlcigpLT5jYW5jZWwoICRmb3JtX2d1aWQgKTsKICAgICAgICB9CiAgICAgICAgaWYoIFxjZ2VfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdzdWJtaXQnKSApIHsKICAgICAgICAgICAgJHRoaXMtPnNldF9maWVsZChcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2ZpZWxkbmFtZScpKTsKICAgICAgICAgICAgJHRoaXMtPnNldF9taW5WYWx1ZShcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ21pblZhbHVlJykpOwogICAgICAgICAgICAkdGhpcy0+c2V0X21heFZhbHVlKFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnbWF4VmFsdWUnKSk7CgogICAgICAgICAgICAvLyBub3cgaGF2ZSB0aGUgZGlzcG9zaXRpb24gb2JqZWN0LCBzdG9yZSBpdC4KICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+ZmluaXNoKCAkZm9ybSwgJGZvcm1fZ3VpZCwgJHRoaXMtPmdldF92YWxpZGF0aW9uKCksICRndWlkICk7CiAgICAgICAgfQoKICAgICAgICAkdHBsID0gJG1vZC0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX2VkaXRfaW50ZWdlcmZpZWxkdmFsaWRhdGlvbi50cGwnKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2VkaXRvcl9uYW1lJyxnZXRfY2xhc3MoJHRoaXMpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2hhbmRsZXInLCR0aGlzKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2Zvcm1fZ3VpZCcsJGZvcm1fZ3VpZCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdndWlkJywkZ3VpZCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdmaWVsZHMnLCRmb3JtLT5nZXRfZmllbGRfbGlzdCgpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3ZhbGlkYXRpb24nLCR0aGlzLT5nZXRfdmFsaWRhdGlvbigpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3RwbF9oZWxwJyx1dGlsczo6Z2V0X2Zvcm1fdHBsX2hlbHAoICRmb3JtKSApOwogICAgICAgICR0cGwtPmRpc3BsYXkoKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.RegexFieldValidation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgUmVnZXhGaWVsZFZhbGlkYXRpb24gZXh0ZW5kcyBWYWxpZGF0aW9uCnsKICAgIHByaXZhdGUgJF9maWVsZE5hbWU7CiAgICBwcml2YXRlICRfcGF0dGVybjsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoICRrZXkgKQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdmaWVsZE5hbWUnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X2ZpZWxkTmFtZSk7CiAgICAgICAgY2FzZSAncGF0dGVybic6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fcGF0dGVybik7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheV9zdHJpbmcoIFxDR0JldHRlckZvcm1zXFRyYW5zbGF0b3IgJHRyICkKICAgIHsKICAgICAgICByZXR1cm4gJHRyLT50cmFuc2xhdGUoJ2Rpc3BsYXlfUmVnZXhGaWVsZFZhbGlkYXRpb24nLCR0aGlzLT5maWVsZE5hbWUsJHRoaXMtPnBhdHRlcm4pOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZmllbGROYW1lKCR2YWwpCiAgICB7CiAgICAgICAgJHRoaXMtPl9maWVsZE5hbWUgPSB0cmltKCR2YWwpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfcGF0dGVybigkdmFsKQogICAgewogICAgICAgICR0aGlzLT5fcGF0dGVybiA9IHRyaW0oJHZhbCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlKFxDR0JldHRlckZvcm1zXEZvcm0gJGZvcm0sIFxDR0JldHRlckZvcm1zXEZvcm1SZXNwb25zZSYgJHJlc3BvbnNlLCBcQ0dCZXR0ZXJGb3Jtc1xUcmFuc2xhdG9yICR0cmFuc2xhdG9yICkKICAgIHsKICAgICAgICBpZiggISR0aGlzLT5fZmllbGROYW1lICkgcmV0dXJuOwogICAgICAgIGlmKCAhJHRoaXMtPl9wYXR0ZXJuICkgcmV0dXJuOwoKICAgICAgICAkdmFsID0gJHJlc3BvbnNlLT5nZXRfZmllbGRfdmFsdWUoICR0aGlzLT5fZmllbGROYW1lICk7CiAgICAgICAgJGZpZWxkID0gJGZvcm0tPmdldF9maWVsZCggJHRoaXMtPl9maWVsZE5hbWUgKTsKCWlmKCAkZmllbGQtPm5vdmFsaWRhdGUgKSByZXR1cm47CgogICAgICAgIGlmKCAhaXNfYXJyYXkoICR2YWwpICkgJHZhbCA9IFsgJHZhbCBdOwogICAgICAgIGZvcmVhY2goICR2YWwgYXMgJG9uZV92YWwgKSB7CiAgICAgICAgICAgIGlmKCAhcHJlZ19tYXRjaCggJHRoaXMtPl9wYXR0ZXJuLCAkb25lX3ZhbCkgKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkV4Y2VwdGlvbigkdGhpcy0+X2ZpZWxkTmFtZSwkdHJhbnNsYXRvci0+dHJhbnNsYXRlKCdlcnJfZmllbGRfaW52YWxpZHZhbHVlJykpOwogICAgICAgIH0KICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.RegexFieldValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgUmVnZXhGaWVsZFZhbGlkYXRpb25FZGl0b3IgZXh0ZW5kcyBWYWxpZGF0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF92YWxpZGF0b3I7CiAgICBwcml2YXRlICRfbW9kOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggXENHQmV0dGVyRm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fdmFsaWRhdG9yID0gbmV3IFJlZ2V4RmllbGRWYWxpZGF0aW9uOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCduYW1lX1JlZ2V4RmllbGRWYWxpZGF0b3InKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ZhbGlkYXRpb24oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvcjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3ZhbGlkYXRpb24oIFZhbGlkYXRpb24gJGluICkKICAgIHsKICAgICAgICBpZiggISAkaW4gaW5zdGFuY2VvZiBSZWdleEZpZWxkVmFsaWRhdGlvbiApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgdmFsaWRhdGlvbiBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvciA9ICRpbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gZ2V0X2NsYXNzKCR0aGlzLT5fdmFsaWRhdG9yKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvci0+Z2V0X2Rpc3BsYXlfc3RyaW5nKCAkdGhpcy0+X21vZC0+Z2V0X3RyYW5zbGF0b3IoKSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhbGxvd3NfbXVsdGlwbGUoKQogICAgewogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZpZWxkKCAkZmllbGRuYW1lICkKICAgIHsKICAgICAgICAkZmllbGRuYW1lID0gdHJpbSgkZmllbGRuYW1lKTsKICAgICAgICBpZiggISRmaWVsZG5hbWUgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdUaGUgZmllbGQgbmFtZSBmb3IgYSBSZWdleEZpZWxkVmFsaWRhdGlvbiBjYW5ub3QgYmUgZW1wdHknKTsKCiAgICAgICAgJHRoaXMtPl92YWxpZGF0b3ItPnNldF9maWVsZE5hbWUoJGZpZWxkbmFtZSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9wYXR0ZXJuKCAkcGF0dGVybiApCiAgICB7CiAgICAgICAgJHBhdHRlcm4gPSB0cmltKCRwYXR0ZXJuKTsKICAgICAgICBpZiggISRwYXR0ZXJuICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignVGhlIHBhdHRlcm4gZm9yIGEgUmVnZXhGaWVsZFZhbGlkYXRpb24gY2Fubm90IGJlIGVtcHR5Jyk7CgogICAgICAgICR0aGlzLT5fdmFsaWRhdG9yLT5zZXRfcGF0dGVybiggJHBhdHRlcm4gKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlX2VkaXRfZm9ybSggYXJyYXkgJHBhcmFtcywgXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgJGZvcm1fZ3VpZCwgJGd1aWQgKQogICAgewogICAgICAgICRtb2QgPSAkdGhpcy0+X21vZDsKCiAgICAgICAgaWYoIFxjZ2VfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdjYW5jZWwnKSApIHsKICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+Y2FuY2VsKCAkZm9ybV9ndWlkICk7CiAgICAgICAgfQogICAgICAgIGlmKCBcY2dlX3BhcmFtOjpleGlzdHMoJHBhcmFtcywnc3VibWl0JykgKSB7CiAgICAgICAgICAgICR0aGlzLT5zZXRfZmllbGQoXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdmaWVsZG5hbWUnKSk7CiAgICAgICAgICAgICR0aGlzLT5zZXRfcGF0dGVybihcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ3BhdHRlcm4nKSk7CgogICAgICAgICAgICAvLyBub3cgaGF2ZSB0aGUgZGlzcG9zaXRpb24gb2JqZWN0LCBzdG9yZSBpdC4KICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+ZmluaXNoKCAkZm9ybSwgJGZvcm1fZ3VpZCwgJHRoaXMtPmdldF92YWxpZGF0aW9uKCksICRndWlkICk7CiAgICAgICAgfQoKICAgICAgICAkdHBsID0gJG1vZC0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX2VkaXRfcmVnZXhmaWVsZHZhbGlkYXRpb24udHBsJyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdlZGl0b3JfbmFtZScsZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdoYW5kbGVyJywkdGhpcyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdmb3JtX2d1aWQnLCRmb3JtX2d1aWQpOwogICAgICAgICR0cGwtPmFzc2lnbignZ3VpZCcsJGd1aWQpOwogICAgICAgICR0cGwtPmFzc2lnbignZmllbGRzJywkZm9ybS0+Z2V0X2ZpZWxkX2xpc3QoKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd2YWxpZGF0aW9uJywkdGhpcy0+Z2V0X3ZhbGlkYXRpb24oKSk7CiAgICAgICAgJHRwbC0+ZGlzcGxheSgpOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.RequiredFieldValidation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgUmVxdWlyZWRGaWVsZFZhbGlkYXRpb24gZXh0ZW5kcyBWYWxpZGF0aW9uCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheV9zdHJpbmcoIFxDR0JldHRlckZvcm1zXFRyYW5zbGF0b3IgJHRyICkKICAgIHsKICAgICAgICByZXR1cm4gJHRyLT50cmFuc2xhdGUoJ2Rpc3BsYXlfUmVxdWlyZWRGaWVsZFZhbGlkYXRvcicpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZShcQ0dCZXR0ZXJGb3Jtc1xGb3JtICRmb3JtLCBcQ0dCZXR0ZXJGb3Jtc1xGb3JtUmVzcG9uc2UmICRkYXRhLCBcQ0dCZXR0ZXJGb3Jtc1xUcmFuc2xhdG9yICR0cmFuc2xhdG9yICkKICAgIHsKICAgICAgICAkbmFtZXMgPSAkZm9ybS0+Z2V0X2ZpZWxkbmFtZXMoKTsKICAgICAgICBmb3JlYWNoKCAkbmFtZXMgYXMgJG5hbWUgKSB7CiAgICAgICAgICAgICRmaWVsZCA9ICRmb3JtLT5nZXRfZmllbGQoICRuYW1lICk7CiAgICAgICAgICAgIGlmKCAkZmllbGQtPm5vdmFsaWRhdGUgKSBjb250aW51ZTsKICAgICAgICAgICAgaWYoICEkZmllbGQtPnJlcXVpcmVkICkgY29udGludWU7CiAgICAgICAgICAgICR1c2VydmFsID0gJGRhdGEtPmdldF9maWVsZF92YWx1ZSggJG5hbWUgKTsKICAgICAgICAgICAgaWYoICEgJHVzZXJ2YWwgKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkV4Y2VwdGlvbigkZmllbGQtPm5hbWUsJHRyYW5zbGF0b3ItPnRyYW5zbGF0ZSgnZXJyX2lucHV0X21pc3NpbmdyZXF1aXJlZHZhbHVlJywkZmllbGQtPm5hbWUpKTsKICAgICAgICB9CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.RequiredFieldValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgUmVxdWlyZWRGaWVsZFZhbGlkYXRpb25FZGl0b3IgZXh0ZW5kcyBWYWxpZGF0aW9uRWRpdG9yCnsKICAgIHByaXZhdGUgJF92YWxpZGF0b3I7CiAgICBwcml2YXRlICRfbW9kOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggXENHQmV0dGVyRm9ybXMgJG1vZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5fdmFsaWRhdG9yID0gbmV3IFJlcXVpcmVkRmllbGRWYWxpZGF0aW9uOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbW9kLT5MYW5nKCduYW1lX1JlcXVpcmVkRmllbGRWYWxpZGF0b3InKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ZhbGlkYXRpb24oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvcjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3ZhbGlkYXRpb24oIFZhbGlkYXRpb24gJGluICkKICAgIHsKICAgICAgICBpZiggISAkaW4gaW5zdGFuY2VvZiBSZXF1aXJlZEZpZWxkVmFsaWRhdGlvbiApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgdmFsaWRhdGlvbiBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvciA9ICRpbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX2ludGVyZmFjZSgpIHsgcmV0dXJuIEZBTFNFOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlX2VkaXRfZm9ybSggYXJyYXkgJHBhcmFtcywgXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgJGZvcm1fZ3VpZCwgJGd1aWQgKSB7fQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3V0cHV0Y2xhc3MoKQogICAgewogICAgICAgIHJldHVybiBnZXRfY2xhc3MoJHRoaXMtPl92YWxpZGF0b3IpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheXN0cmluZygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdmFsaWRhdG9yLT5nZXRfZGlzcGxheV9zdHJpbmcoICR0aGlzLT5fbW9kLT5nZXRfdHJhbnNsYXRvcigpICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGFsbG93c19tdWx0aXBsZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKCn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.SelectFieldValidation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgU2VsZWN0RmllbGRWYWxpZGF0aW9uIGV4dGVuZHMgVmFsaWRhdGlvbgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlfc3RyaW5nKCBcQ0dCZXR0ZXJGb3Jtc1xUcmFuc2xhdG9yICR0ciApCiAgICB7CiAgICAgICAgcmV0dXJuICR0ci0+dHJhbnNsYXRlKCdkaXNwbGF5X1NlbGVjdEZpZWxkVmFsaWRhdGlvbicpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZShcQ0dCZXR0ZXJGb3Jtc1xGb3JtICRmb3JtLCBcQ0dCZXR0ZXJGb3Jtc1xGb3JtUmVzcG9uc2UmICRkYXRhLCBcQ0dCZXR0ZXJGb3Jtc1xUcmFuc2xhdG9yICR0cmFuc2xhdG9yICkKICAgIHsKICAgICAgICAkbmFtZXMgPSAkZm9ybS0+Z2V0X2ZpZWxkbmFtZXMoKTsKICAgICAgICBmb3JlYWNoKCAkbmFtZXMgYXMgJG5hbWUgKSB7CiAgICAgICAgICAgICRmaWVsZCA9ICRmb3JtLT5nZXRfZmllbGQoICRuYW1lICk7CiAgICAgICAgICAgIGlmKCAkZmllbGQtPm5vdmFsaWRhdGUgKSBjb250aW51ZTsKICAgICAgICAgICAgJHVzZXJ2YWwgPSAkZGF0YS0+Z2V0X2ZpZWxkX3ZhbHVlKCAkbmFtZSApOwogICAgICAgICAgICBpZiggISAkdXNlcnZhbCApIGNvbnRpbnVlOwoKICAgICAgICAgICAgc3dpdGNoKCAkZmllbGQtPnR5cGUgKSB7CiAgICAgICAgICAgIGNhc2UgJ3NlbGVjdCc6CiAgICAgICAgICAgIGNhc2UgJ2NoZWNrYm94JzoKICAgICAgICAgICAgY2FzZSAnYnV0dG9uJzoKICAgICAgICAgICAgICAgICR2YWxpZF92YWx1ZXMgPSAkZmllbGQtPmdldF9vcHRpb25fdmFsdWVzKCk7CiAgICAgICAgICAgICAgICBpZiggaXNfYXJyYXkoJHZhbGlkX3ZhbHVlcykgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoICFpc19hcnJheSgkdXNlcnZhbCkgKSAkdXNlcnZhbCA9IFsgJHVzZXJ2YWwgXTsKICAgICAgICAgICAgICAgICAgICBmb3JlYWNoKCAkdXNlcnZhbCBhcyAkdmFsICkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiggIWluX2FycmF5KCR2YWwsJHZhbGlkX3ZhbHVlcykgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwcm9iYWJseSBtZWFucyB0aGF0IG9uZSBvZiB0aGUgY2hlY2tib3hlcyBldGMuICBkb24ndCBoYXZlIHZhbHVlcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXhjZXB0aW9uKFxDR0JldHRlckZvcm1zXEZpZWxkRXJyb3I6Ok5PTlNQRUNJRklDX0ZJRUxELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRyYW5zbGF0b3ItPnRyYW5zbGF0ZSgnZXJyX2ludmFsaWRfZmllbGR2YWx1ZScpKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.SelectFieldValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgU2VsZWN0RmllbGRWYWxpZGF0aW9uRWRpdG9yIGV4dGVuZHMgVmFsaWRhdGlvbkVkaXRvcgp7CiAgICBwcml2YXRlICRfdmFsaWRhdG9yOwogICAgcHJpdmF0ZSAkX21vZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoIFxDR0JldHRlckZvcm1zICRtb2QgKQogICAgewogICAgICAgICR0aGlzLT5fbW9kID0gJG1vZDsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvciA9IG5ldyBTZWxlY3RGaWVsZFZhbGlkYXRpb247CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2QtPkxhbmcoJ25hbWVfU2VsZWN0RmllbGRWYWxpZGF0b3InKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ZhbGlkYXRpb24oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvcjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3ZhbGlkYXRpb24oIFZhbGlkYXRpb24gJGluICkKICAgIHsKICAgICAgICBpZiggISAkaW4gaW5zdGFuY2VvZiBTZWxlY3RGaWVsZFZhbGlkYXRpb24gKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIHZhbGlkYXRpb24gcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgJHRoaXMtPl92YWxpZGF0b3IgPSAkaW47CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGhhc19pbnRlcmZhY2UoKSB7IHJldHVybiBGQUxTRTsgfQogICAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZV9lZGl0X2Zvcm0oIGFycmF5ICRwYXJhbXMsIFxDR0JldHRlckZvcm1zXEZvcm0gJGZvcm0sICRmb3JtX2d1aWQsICRndWlkICkge30KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X291dHB1dGNsYXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gZ2V0X2NsYXNzKCR0aGlzLT5fdmFsaWRhdG9yKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlzdHJpbmcoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3ZhbGlkYXRvci0+Z2V0X2Rpc3BsYXlfc3RyaW5nKCAkdGhpcy0+X21vZC0+Z2V0X3RyYW5zbGF0b3IoKSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhbGxvd3NfbXVsdGlwbGUoKQogICAgewogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.TemplateValidation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwp1c2UgXENHQmV0dGVyRm9ybXNcdXRpbHM7CgpjbGFzcyBUZW1wbGF0ZVZhbGlkYXRpb24gZXh0ZW5kcyBWYWxpZGF0aW9uCnsKICAgIHByaXZhdGUgJF90ZW1wbGF0ZTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoICRrZXkgKQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICd0ZW1wbGF0ZSc6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fdGVtcGxhdGUpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc3BsYXlfc3RyaW5nKCBcQ0dCZXR0ZXJGb3Jtc1xUcmFuc2xhdG9yICR0ciApCiAgICB7CiAgICAgICAgcmV0dXJuICR0ci0+dHJhbnNsYXRlKCdkaXNwbGF5X1RlbXBsYXRlVmFsaWRhdGlvbicpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfdGVtcGxhdGUoJHZhbCkKICAgIHsKICAgICAgICAkdGhpcy0+X3RlbXBsYXRlID0gdHJpbSgkdmFsKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGUoXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgXENHQmV0dGVyRm9ybXNcRm9ybVJlc3BvbnNlJiAkcmVzcG9uc2UsIFxDR0JldHRlckZvcm1zXFRyYW5zbGF0b3IgJHRyYW5zbGF0b3IgKQogICAgewogICAgICAgIGlmKCAhJHRoaXMtPl90ZW1wbGF0ZSApIHJldHVybjsKICAgICAgICAkb3V0ID0gdXRpbHM6OnByb2Nlc3NfdGVtcGxhdGUoICR0aGlzLT5fdGVtcGxhdGUsICRmb3JtLCAkcmVzcG9uc2UgKTsKICAgICAgICAkb3V0ID0gdHJpbSgkb3V0KTsKICAgICAgICBpZiggJG91dCApIHRocm93IG5ldyBWYWxpZGF0aW9uRXhjZXB0aW9uKFxDR0JldHRlckZvcm1zXEZpZWxkRXJyb3I6Ok5PTlNQRUNJRklDX0ZJRUxELCRvdXQpOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.TemplateValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgVGVtcGxhdGVWYWxpZGF0aW9uRWRpdG9yIGV4dGVuZHMgVmFsaWRhdGlvbkVkaXRvcgp7CiAgICBwcml2YXRlICRfdmFsaWRhdG9yOwogICAgcHJpdmF0ZSAkX21vZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoIFxDR0JldHRlckZvcm1zICRtb2QgKQogICAgewogICAgICAgICR0aGlzLT5fbW9kID0gJG1vZDsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvciA9IG5ldyBUZW1wbGF0ZVZhbGlkYXRpb247CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9tb2QtPkxhbmcoJ25hbWVfVGVtcGxhdGVWYWxpZGF0aW9uJyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF92YWxpZGF0aW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl92YWxpZGF0b3I7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF92YWxpZGF0aW9uKCBWYWxpZGF0aW9uICRpbiApCiAgICB7CiAgICAgICAgaWYoICEgJGluIGluc3RhbmNlb2YgVGVtcGxhdGVWYWxpZGF0aW9uICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCB2YWxpZGF0aW9uIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICR0aGlzLT5fdmFsaWRhdG9yID0gJGluOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYXNfaW50ZXJmYWNlKCkgeyByZXR1cm4gVFJVRTsgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3V0cHV0Y2xhc3MoKQogICAgewogICAgICAgIHJldHVybiBnZXRfY2xhc3MoJHRoaXMtPl92YWxpZGF0b3IpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlzcGxheXN0cmluZygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdmFsaWRhdG9yLT5nZXRfZGlzcGxheV9zdHJpbmcoICR0aGlzLT5fbW9kLT5nZXRfdHJhbnNsYXRvcigpICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF90ZW1wbGF0ZSggJHRlbXBsYXRlICkKICAgIHsKICAgICAgICAkdGhpcy0+X3ZhbGlkYXRvci0+c2V0X3RlbXBsYXRlKCAkdGVtcGxhdGUgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlX2VkaXRfZm9ybSggYXJyYXkgJHBhcmFtcywgXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgJGZvcm1fZ3VpZCwgJGd1aWQgKQogICAgewogICAgICAgICRtb2QgPSAkdGhpcy0+X21vZDsKCiAgICAgICAgaWYoIFxjZ2VfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdjYW5jZWwnKSApIHsKICAgICAgICAgICAgJHRoaXMtPmdldF9oZWxwZXIoKS0+Y2FuY2VsKCAkZm9ybV9ndWlkICk7CiAgICAgICAgfQogICAgICAgIGlmKCBcY2dlX3BhcmFtOjpleGlzdHMoJHBhcmFtcywnc3VibWl0JykgKSB7CiAgICAgICAgICAgICR0aGlzLT5zZXRfdGVtcGxhdGUoXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCd0ZW1wbGF0ZScpKTsKCiAgICAgICAgICAgIC8vIG5vdyBoYXZlIHRoZSBkaXNwb3NpdGlvbiBvYmplY3QsIHN0b3JlIGl0LgogICAgICAgICAgICAkdGhpcy0+Z2V0X2hlbHBlcigpLT5maW5pc2goICRmb3JtLCAkZm9ybV9ndWlkLCAkdGhpcy0+Z2V0X3ZhbGlkYXRpb24oKSwgJGd1aWQgKTsKICAgICAgICB9CgogICAgICAgICR0cGwgPSAkbW9kLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fZWRpdF90ZW1wbGF0ZXZhbGlkYXRpb24udHBsJyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdlZGl0b3JfbmFtZScsZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdoYW5kbGVyJywkdGhpcyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdmb3JtX2d1aWQnLCRmb3JtX2d1aWQpOwogICAgICAgICR0cGwtPmFzc2lnbignZ3VpZCcsJGd1aWQpOwogICAgICAgICR0cGwtPmFzc2lnbignZmllbGRzJywkZm9ybS0+Z2V0X2ZpZWxkX2xpc3QoKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd2YWxpZGF0aW9uJywkdGhpcy0+Z2V0X3ZhbGlkYXRpb24oKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd0cGxfaGVscCcsXENHQmV0dGVyRm9ybXNcdXRpbHM6OmdldF9mb3JtX3RwbF9oZWxwKCAkZm9ybSkgKTsKICAgICAgICAkdHBsLT5kaXNwbGF5KCk7CiAgICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/class.ValidationException.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKY2xhc3MgVmFsaWRhdGlvbkV4Y2VwdGlvbiBleHRlbmRzIFxDR0JldHRlckZvcm1zXEV4Y2VwdGlvbgp7CiAgICBwcml2YXRlICRfZmllbGRfZXJyb3I7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCAkZmllbGRfbmFtZSwgJG1lc3NhZ2UgPSBudWxsICkKICAgIHsKICAgICAgICAkdGhpcy0+X2ZpZWxkX2Vycm9yID0gbmV3IFxDR0JldHRlckZvcm1zXEZpZWxkRXJyb3IoICRmaWVsZF9uYW1lLCAkbWVzc2FnZSApOwogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoICRtZXNzYWdlICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIEdldEZpZWxkRXJyb3IoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2ZpZWxkX2Vycm9yOwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/interface.IValidation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKaW50ZXJmYWNlIElWYWxpZGF0aW9uCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZ3VpZCgpOwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9kaXNwbGF5X3N0cmluZyggXENHQmV0dGVyRm9ybXNcVHJhbnNsYXRvciAkdHIgKTsKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZShcQ0dCZXR0ZXJGb3Jtc1xGb3JtICRmb3JtLCBcQ0dCZXR0ZXJGb3Jtc1xGb3JtUmVzcG9uc2UmICRkYXRhLCBcQ0dCZXR0ZXJGb3Jtc1xUcmFuc2xhdG9yICR0cmFuc2xhdG9yICk7Cn0gLy8gZW5kIG9mIGludGVyZmFjZQo=]]></data>
	</file>
	<file>
	  <filename>/lib/FieldValidators/interface.ValidationEditor.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzOwoKYWJzdHJhY3QgY2xhc3MgVmFsaWRhdGlvbkVkaXRvcgp7CiAgICBhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKTsKICAgIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBnZXRfc2V0dGluZ3NfZm9ybV91cmwoYXJyYXkgJHBhcmFtcyA9IG51bGwpOwogICAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGdldF92YWxpZGF0b3IoKTsKICAgIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBzZXRfdmFsaWRhdG9yKCBJVmFsaWRhdGlvbiAkaW4gKTsKICAgIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBnZXRfb3V0cHV0Y2xhc3MoKTsKfSAvLyBlbmQgb2YgaW50ZXJmYWNlCg==]]></data>
	</file>
	<file>
	  <filename>/lib/FormValidator/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/FormValidator/abstract.FormTesterTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRm9ybVZhbGlkYXRvcjsKCmFic3RyYWN0IGNsYXNzIEZvcm1UZXN0ZXJUZXN0CnsKICAgIHByaXZhdGUgJF90cmFuc2xhdG9yOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggXENHQmV0dGVyRm9ybXNcVHJhbnNsYXRvciAkb2JqICkKICAgIHsKICAgICAgICAkdGhpcy0+X3RyYW5zbGF0b3IgPSAkb2JqOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0cmFuc2xhdGUoLyogdmFyIGFyZ3MgKi8pCiAgICB7CiAgICAgICAgJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdHJhbnNsYXRvci0+dHJhbnNsYXRlKCAkYXJncyApOwogICAgfQoKICAgIC8vIHJldHVybnMgYW4gYXJyYXkgb2YgbWVzc2FnZXMsIG9yIG51bGwKICAgIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiB0ZXN0X2Zvcm0oIGFycmF5ICRmb3JtcywgYXJyYXkgJGlucHV0cyApOwp9]]></data>
	</file>
	<file>
	  <filename>/lib/FormValidator/class.FormDuplicateIdValidator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRm9ybVZhbGlkYXRvcjsKdXNlIFxDR0JldHRlckZvcm1zXEZvcm1WYWxpZGF0aW9uRXJyb3I7CgpjbGFzcyBGb3JtRHVwbGljYXRlSWRWYWxpZGF0b3IgZXh0ZW5kcyBGb3JtVGVzdGVyVGVzdAp7CiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdF9mb3JtKCBhcnJheSAkZm9ybXMsIGFycmF5ICRpbnB1dHMgKQogICAgewogICAgICAgICRtYXAgPSAkb3V0ID0gW107CiAgICAgICAgZm9yZWFjaCggJGlucHV0cyBhcyAkaW5wdXQgKSB7CiAgICAgICAgICAgICRpZCA9IHRyaW0oJGlucHV0LT5nZXRfYXR0cmlidXRlKCdpZCcpKTsKICAgICAgICAgICAgaWYoICEkaWQgKSBjb250aW51ZTsKICAgICAgICAgICAgJGxpbmUgPSAkaW5wdXQtPmdldF9saW5lKCk7CiAgICAgICAgICAgIGlmKCAhIGFycmF5X2tleV9leGlzdHMoJGlkLCRtYXApICkgewogICAgICAgICAgICAgICAgJG1hcFskaWRdID0gJGxpbmU7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkb3V0W10gPSAkdGhpcy0+dHJhbnNsYXRlKCdlcnJfZHVwbGljYXRlX2ZpZWxkaWQnLCRsaW5lLCRpZCwkbWFwWyRpZF0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/FormValidator/class.FormDuplicateNameValidator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRm9ybVZhbGlkYXRvcjsKdXNlIFxDR0JldHRlckZvcm1zXEZvcm1WYWxpZGF0aW9uRXJyb3I7CgpjbGFzcyBGb3JtRHVwbGljYXRlTmFtZVZhbGlkYXRvciBleHRlbmRzIEZvcm1UZXN0ZXJUZXN0CnsKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0X2Zvcm0oIGFycmF5ICRmb3JtcywgYXJyYXkgJGlucHV0cyApCiAgICB7CiAgICAgICAgJG1hcCA9ICRvdXQgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkaW5wdXRzIGFzICRpbnB1dCApIHsKICAgICAgICAgICAgJG5hbWUgPSAkaW5wdXQtPmdldF9hdHRyaWJ1dGUoJ25hbWUnKTsKICAgICAgICAgICAgaWYoICEkbmFtZSApIGNvbnRpbnVlOyAvLyBhbHJlYWR5IGNoZWNrIGZvciB0aGlzCiAgICAgICAgICAgICR0eXBlID0gc3RydG9sb3dlcigkaW5wdXQtPmdldF9hdHRyaWJ1dGUoJ3R5cGUnKSk7CiAgICAgICAgICAgIGlmKCAkdHlwZSA9PSAnaGlkZGVuJyApIGNvbnRpbnVlOyAvLyB3ZSBkb24ndCBjYXJlIGFib3V0IGhpZGRlbiBmaWVsZHMuCiAgICAgICAgICAgICRsaW5lID0gJGlucHV0LT5nZXRfbGluZSgpOwogICAgICAgICAgICAkaXNfbXVsdGlwbGUgPSBlbmRzd2l0aCgkbmFtZSwnW10nKTsKICAgICAgICAgICAgaWYoICEgYXJyYXlfa2V5X2V4aXN0cygkbmFtZSwkbWFwKSApIHsKICAgICAgICAgICAgICAgICRtYXBbJG5hbWVdID0gWyR0eXBlLCRsaW5lXTsKICAgICAgICAgICAgfSBlbHNlIGlmKCAkdHlwZSAhPSAkbWFwWyRuYW1lXVswXSApIHsKICAgICAgICAgICAgICAgIC8vIGNoYW5nZSBvZiBmaWVsZCB0eXBlCiAgICAgICAgICAgICAgICAvLyBidXQgaWYgdGhlIHByZXZpb3VzIHR5cGUgd2FzIGhpZGRlbiwgd2UgYWNjZXB0IHRoYXQuCiAgICAgICAgICAgICAgICAkb3V0W10gPSAkdGhpcy0+dHJhbnNsYXRlKCdlcnJfZHVwbGljYXRlX2ZpZWxkbmFtZScsJGxpbmUsJG1hcFskbmFtZV1bMV0pOwogICAgICAgICAgICB9IGVsc2UgaWYoICEkaXNfbXVsdGlwbGUgJiYgJHR5cGUgIT0gJ3JhZGlvJyAmJiAkdHlwZSAhPSAnY2hlY2tib3gnICkgewogICAgICAgICAgICAgICAgLy8gcmFkaW8gYW5kIGNoZWNrYm94IGZpZWxkcyBjYW4gdmFsaWRseSBvY2N1ciBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIG5hbWUuCiAgICAgICAgICAgICAgICAkb3V0W10gPSAkdGhpcy0+dHJhbnNsYXRlKCdlcnJfZHVwbGljYXRlX2ZpZWxkbmFtZScsJGxpbmUsJG1hcFskbmFtZV1bMV0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/FormValidator/class.FormMissingLabelValidator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRm9ybVZhbGlkYXRvcjsKdXNlIFxDR0JldHRlckZvcm1zXEZvcm1WYWxpZGF0aW9uRXJyb3I7CgpjbGFzcyBGb3JtTWlzc2luZ0xhYmVsVmFsaWRhdG9yIGV4dGVuZHMgRm9ybVRlc3RlclRlc3QKewogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RfZm9ybSggYXJyYXkgJGZvcm1zLCBhcnJheSAkaW5wdXRzICkKICAgIHsKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgZm9yZWFjaCggJGlucHV0cyBhcyAkaW5wdXQgKSB7CiAgICAgICAgICAgIGlmKCAhJGlucHV0LT5nZXRfbGFiZWwoKSApIHsKICAgICAgICAgICAgICAgICRuYW1lID0gJGlucHV0LT5nZXRfYXR0cmlidXRlKCduYW1lJyk7CiAgICAgICAgICAgICAgICBpZiggISRuYW1lICkgY29udGludWU7CiAgICAgICAgICAgICAgICAkdHlwZSA9ICRpbnB1dC0+Z2V0X2F0dHJpYnV0ZSgndHlwZScpOwogICAgICAgICAgICAgICAgaWYoICR0eXBlID09ICdyZXNldCcgfHwgJHR5cGUgPT0gJ3N1Ym1pdCcgfHwgJHR5cGUgPT0gJ2hpZGRlbicgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgIGlmKCAkaW5wdXQgaW5zdGFuY2VvZiBcQ0dCZXR0ZXJGb3Jtc1xET01CdXR0b25GaWVsZCApIGNvbnRpbnVlOyAvLyBub3QgbmVlZGVkCiAgICAgICAgICAgICAgICAkb3V0W10gPSAkdGhpcy0+dHJhbnNsYXRlKCdlcnJfaW5wdXRfbWlzc2luZ2xhYmVsJywkbmFtZSwkaW5wdXQtPmdldF9saW5lKCkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/FormValidator/class.FormMissingNameValidator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRm9ybVZhbGlkYXRvcjsKdXNlIFxDR0JldHRlckZvcm1zXEZvcm1WYWxpZGF0aW9uRXJyb3I7CgpjbGFzcyBGb3JtTWlzc2luZ05hbWVWYWxpZGF0b3IgZXh0ZW5kcyBGb3JtVGVzdGVyVGVzdAp7CiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdF9mb3JtKCBhcnJheSAkZm9ybXMsIGFycmF5ICRpbnB1dHMgKQogICAgewogICAgICAgICRvdXQgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkaW5wdXRzIGFzICRpbnB1dCApIHsKICAgICAgICAgICAgJG5hbWUgPSAkaW5wdXQtPmdldF9hdHRyaWJ1dGUoJ25hbWUnKTsKICAgICAgICAgICAgJHR5cGUgPSBzdHJ0b2xvd2VyKCRpbnB1dC0+Z2V0X2F0dHJpYnV0ZSgndHlwZScpKTsKICAgICAgICAgICAgaWYoICEkdHlwZSApICR0eXBlID0gc3RydG9sb3dlcigkaW5wdXQtPmdldF9ub2RlbmFtZSgpKTsKICAgICAgICAgICAgaWYoICR0eXBlID09ICdyZXNldCcgfHwgJHR5cGUgPT0gJ3N1Ym1pdCcgKSBjb250aW51ZTsKICAgICAgICAgICAgaWYoICEkdHlwZSApICR0eXBlID0gJz8/JzsKCiAgICAgICAgICAgIGlmKCAhJG5hbWUgKSB7CiAgICAgICAgICAgICAgICAkb3V0W10gPSAkdGhpcy0+dHJhbnNsYXRlKCdlcnJfaW5wdXRfbWlzc2luZ25hbWUnLCR0eXBlLCRpbnB1dC0+Z2V0X2xpbmUoKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAvLyBhbHNvIGNoZWNrIGZvciBpbnZhbGlkIG5hbWVzLgogICAgICAgICAgICAgICAgJHJlZ2V4ID0gJy9eW19hLXowLTldW19hLXowLTlcW1xdXSokL2knOwogICAgICAgICAgICAgICAgaWYoICFwcmVnX21hdGNoKCAkcmVnZXgsICRuYW1lKSApIHsKICAgICAgICAgICAgICAgICAgICAkb3V0W10gPSAkdGhpcy0+dHJhbnNsYXRlKCdlcnJfaW5wdXRfaW52YWxpZG5hbWUnLCR0eXBlLCRpbnB1dC0+Z2V0X2xpbmUoKSwkbmFtZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/FormValidator/class.FormMissingValueValidator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRm9ybVZhbGlkYXRvcjsKdXNlIFxDR0JldHRlckZvcm1zXEZvcm1WYWxpZGF0aW9uRXJyb3I7CgpjbGFzcyBGb3JtTWlzc2luZ1ZhbHVlVmFsaWRhdG9yIGV4dGVuZHMgRm9ybVRlc3RlclRlc3QKewogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RfZm9ybSggYXJyYXkgJGZvcm1zLCBhcnJheSAkaW5wdXRzICkKICAgIHsKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgZm9yZWFjaCggJGlucHV0cyBhcyAkaW5wdXQgKSB7CiAgICAgICAgICAgIGlmKCAkaW5wdXQgaW5zdGFuY2VvZiBcQ0dCZXR0ZXJGb3Jtc1xET01JbnB1dEZpZWxkICkgewogICAgICAgICAgICAgICAgJHR5cGUgPSAkaW5wdXQtPmdldF9hdHRyaWJ1dGUoJ3R5cGUnKTsKICAgICAgICAgICAgICAgIGlmKCAkdHlwZSA9PSAncmFkaW8nIHx8ICR0eXBlID09ICdjaGVja2JveCcgKSB7CiAgICAgICAgICAgICAgICAgICAgJHZhbCA9ICRpbnB1dC0+Z2V0X2F0dHJpYnV0ZSgndmFsdWUnKTsKICAgICAgICAgICAgICAgICAgICAkdHlwZSA9ICRpbnB1dC0+Z2V0X2F0dHJpYnV0ZSgndHlwZScpOwogICAgICAgICAgICAgICAgICAgICRuYW1lID0gJGlucHV0LT5nZXRfYXR0cmlidXRlKCduYW1lJyk7CiAgICAgICAgICAgICAgICAgICAgaWYoICEkbmFtZSApICRuYW1lID0gJz8/JzsKICAgICAgICAgICAgICAgICAgICBpZiggISR2YWwgJiYgJHR5cGUgIT0gJ2hpZGRlbicgKSAkb3V0W10gPSAkdGhpcy0+dHJhbnNsYXRlKCdlcnJfaW5wdXRfbWlzc2luZ3ZhbHVlJywkdHlwZSwkbmFtZSwkaW5wdXQtPmdldF9saW5lKCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/FormValidator/class.FormTagValidator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRm9ybVZhbGlkYXRvcjsKdXNlIFxDR0JldHRlckZvcm1zXEZvcm1WYWxpZGF0aW9uRXJyb3I7CgpjbGFzcyBGb3JtVGFnVmFsaWRhdG9yIGV4dGVuZHMgRm9ybVRlc3RlclRlc3QKewogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RfZm9ybSggYXJyYXkgJGZvcm1zLCBhcnJheSAkaW5wdXRzICkKICAgIHsKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgaWYoIGNvdW50KCRmb3JtcykgPCAxICkgdGhyb3cgbmV3IEZvcm1WYWxpZGF0aW9uRXJyb3IoJHRoaXMtPnRyYW5zbGF0ZSgnZXJyX25vZm9ybXMnKSk7CiAgICAgICAgaWYoIGNvdW50KCRmb3JtcykgPiAxICkgdGhyb3cgbmV3IEZvcm1WYWxpZGF0aW9uRXJyb3IoJHRoaXMtPnRyYW5zbGF0ZSgnZXJyX21hbnlmb3JtcycpKTsKICAgICAgICBpZiggaXNzZXQoJF9TRVNTSU9OWydoYXZlX2Zvcm1zdGFydF9zbWFydHl0YWcnXSkgKSB7CiAgICAgICAgICAgIHVuc2V0KCRfU0VTU0lPTlsnaGF2ZV9mb3Jtc3RhcnRfc21hcnR5dGFnJ10pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRmb3JtID0gJGZvcm1zWzBdOwogICAgICAgICAgICBpZiggJGZvcm0tPmhhc19hdHRyaWJ1dGUoJ2FjdGlvbicpICkgJG91dFtdID0gJHRoaXMtPnRyYW5zbGF0ZSgnZXJyX2Zvcm1fYWN0aW9uYXR0cicpOwogICAgICAgICAgICBpZiggJGZvcm0tPmhhc19hdHRyaWJ1dGUoJ21ldGhvZCcpICkgJG91dFtdID0gJHRoaXMtPnRyYW5zbGF0ZSgnZXJyX2Zvcm1fbWV0aG9kYXR0cicpOwogICAgICAgICAgICBpZiggJGZvcm0tPmhhc19hdHRyaWJ1dGUoJ2VuY3R5cGUnKSApICRvdXRbXSA9ICR0aGlzLT50cmFuc2xhdGUoJ2Vycl9mb3JtX2VuY3R5cGVhdHRyJyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/FormValidator/class.TemplateTesterTest.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRm9ybVZhbGlkYXRvcjsKCmFic3RyYWN0IGNsYXNzIFRlbXBsYXRlVGVzdGVyVGVzdCBleHRlbmRzIEZvcm1UZXN0ZXJUZXN0CnsKICAgIC8vIHJldHVybnMgYW4gYXJyYXkgb2YgbWVzc2FnZXMgb3IgbnVsbAogICAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIHRlc3RfdGVtcGxhdGUoICRzdHIgKTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdF9mb3JtKCBhcnJheSAkZm9ybXMsIGFycmF5ICRpbnB1dHMgKSB7fSAvLyBkbyBub3RoaW5nCn0=]]></data>
	</file>
	<file>
	  <filename>/lib/FormValidator/class.TemplateValidator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXNcRm9ybVZhbGlkYXRvcjsKdXNlIFxDR0JldHRlckZvcm1zXEZvcm1WYWxpZGF0aW9uRXJyb3I7CgpjbGFzcyBUZW1wbGF0ZVZhbGlkYXRvciBleHRlbmRzIFRlbXBsYXRlVGVzdGVyVGVzdAp7CiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdF90ZW1wbGF0ZSggJHN0ciApCiAgICB7CiAgICAgICAgLy8gcmV0dXJuIGFuIGFycmF5IG9mIG1lc3NhZ2VzCiAgICAgICAgLy8gY2hlY2sgZm9yIHtmb3JtX3N0YXJ0fSBvciA8Zm9ybSAoZXhjZXB0aW9uKQogICAgICAgIGlmKCBzdHJwb3MoJHN0ciwne2Zvcm1fc3RhcnQnKSAhPT0gRkFMU0UgKSAkX1NFU1NJT05bJ2hhdmVfZm9ybXN0YXJ0X3NtYXJ0eXRhZyddID0gMTsKICAgICAgICBpZiggc3RycG9zKCRzdHIsJ3tmb3JtX3N0YXJ0JykgPT09IEZBTFNFICYmIHN0cmlwb3MoJHN0ciwnPGZvcm0nKSA9PT0gRkFMU0UgKSB0aHJvdyBuZXcgRm9ybVZhbGlkYXRpb25FcnJvcigkdGhpcy0+dHJhbnNsYXRlKCdlcnJfbWlzc2luZ19mb3Jtc3RhcnQnKSk7CgogICAgICAgICRvdXQgPSBudWxsOwogICAgICAgIC8vIGNoZWNrIGZvciB7Zm9ybV9lbmR9IG9yIDwvZm9ybSAobWVzc2FnZSkKICAgICAgICBpZiggc3RycG9zKCRzdHIsJ3tmb3JtX2VuZCcpID09PSBGQUxTRSAmJiAhc3RyaXBvcygkc3RyLCc8L2Zvcm0nKSApICRvdXRbXSA9ICR0aGlzLT50cmFuc2xhdGUoJ2Vycl9taXNzaW5nX2Zvcm1lbmQnKTsKCiAgICAgICAgaWYoIHN0cnBvcygkc3RyLCd7Y2diZl9mb3JtX2Vycm9ycycpID09PSBGQUxTRSApICRvdXRbXSA9ICR0aGlzLT50cmFuc2xhdGUoJ2Vycl9taXNzaW5nX21lc3NhZ2VzdHJpbmcnKTsKICAgICAgICByZXR1cm4gJG91dDsKICAgICAgICAvLyBjaGVjayBmb3Ige2NnYmZfZm9ybV9lcnJvcn0gdGFnLihtZXNzYWdlKQogICAgfQp9]]></data>
	</file>
	<file>
	  <filename>/lib/interface.FormStorageInterface.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgppbnRlcmZhY2UgRm9ybVN0b3JhZ2VJbnRlcmZhY2UKewogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB0YWJsZV9uYW1lKCk7CiAgICBwdWJsaWMgZnVuY3Rpb24gU2F2ZSggRm9ybSAkZm9ybSApOwogICAgcHVibGljIGZ1bmN0aW9uIGxpc3RfYWxsKCk7CiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZCggJG5hbWUgKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX2J5X2lkKCAkaWQgKTsKfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/interface.ICaptchaProvider.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgppbnRlcmZhY2UgSUNhcHRjaGFQcm92aWRlcgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NhcHRjaGFfZGlzcGxheSgpOwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jYXB0Y2hhX2lucHV0ZmllbGQoKTsKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZV9jYXB0Y2hhKCk7Cn0=]]></data>
	</file>
	<file>
	  <filename>/lib/interface.IFormScanner.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgppbnRlcmZhY2UgSUZvcm1TY2FubmVyCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZm9ybXMoKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmllbGRzKCk7CiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX2NhcHRjaGEoKTsKfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/interface.IFormTester.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7CgppbnRlcmZhY2UgSUZvcm1UZXN0ZXIgIHt9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/trait.DOMLabelFieldTrait.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHQmV0dGVyRm9ybXM7Cgp0cmFpdCBET01MYWJlbEZpZWxkVHJhaXQKewogICAgcHJpdmF0ZSAkX2xhYmVsOwoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBmaW5kUGFyZW50TGFiZWwoXERPTU5vZGUgJG5vZGUpCiAgICB7CiAgICAgICAgJG5vZGUgPSAkbm9kZS0+cGFyZW50Tm9kZTsKICAgICAgICBpZiggISRub2RlICkgcmV0dXJuOwoKICAgICAgICAkbmFtZSA9IHN0cnRvbG93ZXIoJG5vZGUtPm5vZGVOYW1lKTsKICAgICAgICBpZiggJG5hbWUgIT0gJ2xhYmVsJyApIHJldHVybjsKICAgICAgICBpZiggISAkbm9kZS0+aGFzQ2hpbGROb2RlcygpICkgcmV0dXJuICRub2RlLT5ub2RlVmFsdWU7CgogICAgICAgIHJldHVybiAkbm9kZS0+Zmlyc3RDaGlsZC0+dGV4dENvbnRlbnQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9sYWJlbCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbGFiZWw7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9sYWJlbCgkc3RyKQogICAgewogICAgICAgICR0aGlzLT5fbGFiZWwgPSB0cmltKCRzdHIpOwogICAgfQp9IC8vIGVuZCBvZiB0cmFpdA==]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwokdGFib3B0YXJyYXkgPSBhcnJheSggJ215c3FsaScgPT4gJ0VOR0lORT1Jbm5vREInICk7CgokZmxkcyA9ICJpZCBJIEtFWSBBVVRPLAogICAgICAgICBuYW1lIEMoMjU1KSBLRVkgTk9UTlVMTCwKICAgICAgICAgZGF0YSBYMiwKICAgICAgICAgY3JlYXRlZCBJLAogICAgICAgICBtb2RpZmllZCBJCiAgICAgICAgICI7CiRzcWxhcnIgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoIFxDR0JldHRlckZvcm1zXEZvcm1EQU86OnRhYmxlX25hbWUoKSwgJGZsZHMsICR0YWJvcHRhcnJheSApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCAkc3FsYXJyICk7CgokdGhpcy0+Q3JlYXRlUGVybWlzc2lvbihDR0JldHRlckZvcm1zOjpNQU5BR0VfUEVSTSwnTWFuYWdlIENHQmV0dGVyRm9ybXMnKTsKCi8vIHRlbXBsYXRlIHN0dWZmCnRyeSB7CiAgICAkdHBsX3R5cGUgPSBuZXcgXENtc0xheW91dFRlbXBsYXRlVHlwZSgpOwogICAgJHRwbF90eXBlLT5zZXRfb3JpZ2luYXRvcignQ0dCZXR0ZXJGb3JtcycpOwogICAgJHRwbF90eXBlLT5zZXRfbmFtZSgnRm9ybScpOwogICAgJHRwbF90eXBlLT5zZXRfaGVscF9jYWxsYmFjaygnQ0dCZXR0ZXJGb3Jtczo6dHBsX3R5cGVfaGVscF9jYWxsYmFjaycpOwogICAgJHRwbF90eXBlLT5zZXRfbGFuZ19jYWxsYmFjaygnQ0dCZXR0ZXJGb3Jtczo6dHBsX3R5cGVfbGFuZ19jYWxsYmFjaycpOwogICAgJHRwbF90eXBlLT5zYXZlKCk7Cn0KY2F0Y2goIFxDbXNFeGNlcHRpb24gJGUgKSB7CiAgICBcY2dlX3V0aWxzOjpsb2dfZXhjZXB0aW9uKCRlKTsKICAgIGF1ZGl0KCcnLCdDR0JldHRlckZvcm1zJywnSW5zdGFsbCBlcnJvcjogJy4kZS0+R2V0TWVzc2FnZSgpKTsKfQoKJHRwbF90eXBlID0gXENtc0xheW91dFRlbXBsYXRlVHlwZTo6bG9hZCgnQ0dCZXR0ZXJGb3Jtczo6Rm9ybScpOwoKJGNyZWF0ZV90ZW1wbGF0ZV9vZl90eXBlID0gZnVuY3Rpb24oJHR5cGVfb2IsJG5hbWUsJGNvbnRlbnRzLCRkZmx0ID0gZmFsc2UpIHsKICAgICRvYiA9IG5ldyBcQ21zTGF5b3V0VGVtcGxhdGUoKTsKICAgICRvYi0+c2V0X3R5cGUoICR0eXBlX29iICk7CiAgICAkb2ItPnNldF9jb250ZW50KCAkY29udGVudHMgKTsKICAgICRvYi0+c2V0X293bmVyKCBnZXRfdXNlcmlkKCkgKTsKICAgICRuZXdfbmFtZSA9ICRvYi0+Z2VuZXJhdGVfdW5pcXVlX25hbWUoICRuYW1lICk7CiAgICAkb2ItPnNldF9uYW1lKCAkbmV3X25hbWUgKTsKICAgICRvYi0+c2F2ZSgpOwogICAgcmV0dXJuICRvYjsKfTsKCiRkb19mb3JtX3NjYW4gPSBmdW5jdGlvbiggXENHQmV0dGVyRm9ybXNcRm9ybSAkZm9ybSwgJHNtYXJ0eSApIHsKICAgIC8vIG9ubHkgZG8gdGhpcyBvbmNlIHBlciByZXF1ZXN0LgogICAgJHRlbXBsYXRlX29iaiA9IFxDbXNMYXlvdXRUZW1wbGF0ZTo6bG9hZCggJGZvcm0tPnRlbXBsYXRlX2lkICk7CiAgICAkc2Nhbm5lciA9IG5ldyBcQ0dCZXR0ZXJGb3Jtc1xUZW1wbGF0ZUZvcm1TY2FubmVyKCAkc21hcnR5LCAkdGVtcGxhdGVfb2JqICk7IC8vIGNhbiB0aHJvdyBleGNlcHRpb24gZm9yIG11bHRpcGxlIGZvcm1zIGV0Yy4KICAgICR0ZXN0ZXIgPSBuZXcgXENHQmV0dGVyRm9ybXNcVGVtcGxhdGVGb3JtVGVzdGVyKCAkc2Nhbm5lciwgJHRoaXMtPmdldF9mb3JtdGVzdHMoKSApOwogICAgJHJlc3VsdHMgPSBuZXcgXENHQmV0dGVyRm9ybXNcU2Nhbm5lZFRlbXBsYXRlKCAkc2Nhbm5lciwgJHRlc3RlciApOwogICAgcmV0dXJuICRyZXN1bHRzOwp9OwoKLy8gY3JlYXRlIGEgc2FtcGxlIGNvbnRhY3QgZm9ybS4KLy8gJHNtYXJ0eSA9IFxDbXNBcHA6OmdldF9pbnN0YW5jZSgpLT5HZXRTbWFydHkoKTsKJGNvbnRlbnRzID0gZmlsZV9nZXRfY29udGVudHMoX19ESVJfXy4nL3RlbXBsYXRlcy9vcmlnX2NvbnRhY3RfZm9ybS50cGwnKTsKJHRwbCA9ICRjcmVhdGVfdGVtcGxhdGVfb2ZfdHlwZSggJHRwbF90eXBlLCAnQ29udGFjdCBGb3JtJywgJGNvbnRlbnRzICk7CiRkYXRhID0gW107CiRkYXRhWyduYW1lJ10gPSAnU2FtcGxlIGNvbnRhY3QgZm9ybSc7CiRkYXRhWydkZXNjcmlwdGlvbiddID0gJ1NhbXBsZSBjb250YWN0IGZvcm0nOwokZGF0YVsndGVtcGxhdGVfaWQnXSA9ICR0cGwtPmdldF9pZCgpOwokZGF0YVsnZmluYWxtc2cnXSA9ICdZb3VyIGlucHV0IGlzIHZhbHVhYmxlIHRvIHVzLiAgV2Ugd2lsbCBnZXQgYmFjayB0byB5b3Ugc2hvcmx5JzsKJGRhdGFbJ2NnYmZfdmVyc2lvbiddID0gJHRoaXMtPkdldFZlcnNpb24oKTsKJGZvcm0gPSBuZXcgXENHQmV0dGVyRm9ybXNcRm9ybSgkZGF0YSk7CiRyZXMgPSAkZG9fZm9ybV9zY2FuKCAkZm9ybSwgJHNtYXJ0eSApOwokZm9ybS0+YWRqdXN0V2l0aCggWydmaWVsZHMnPT4kcmVzLT5nZXRfZmllbGRzKCkgLCAnZmllbGRfbWVzc2FnZXMnPT4kcmVzLT5nZXRfbWVzc2FnZXMoKSwgJ2hhc19jYXB0Y2hhJz0+JHJlcy0+aGFzX2NhcHRjaGEoKSBdICk7CiR2YWxpZGF0aW9uID0gbmV3IFxDR0JldHRlckZvcm1zXEZpZWxkVmFsaWRhdG9yc1xIdG1sRGV0ZWN0aW9uVmFsaWRhdGlvbigpOwokZm9ybS0+c2V0VmFsaWRhdGlvbiggJHZhbGlkYXRpb24gKTsKJHZhbGlkYXRpb24gPSBuZXcgXENHQmV0dGVyRm9ybXNcRmllbGRWYWxpZGF0b3JzXEVtYWlsRmllbGRWYWxpZGF0aW9uKCk7CiR2YWxpZGF0aW9uLT5zZXRfZmllbGROYW1lKCAnZW1haWwnICk7CiRmb3JtLT5zZXRWYWxpZGF0aW9uKCAkdmFsaWRhdGlvbiApOwokZWRpdG9yID0gbmV3IFxDR0JldHRlckZvcm1zXERpc3Bvc2l0aW9uc1xVbmlxdWVGaWxlRGlzcG9zaXRpb25FZGl0b3IoICR0aGlzICk7CiRlZGl0b3ItPnJlc2V0X3RlbXBsYXRlcyggJGZvcm0gKTsKJGZvcm0tPnNldERpc3Bvc2l0aW9uKCAkZWRpdG9yLT5nZXRfZGlzcG9zaXRpb24oKSApOwokdGhpcy0+Zm9ybXN0b3JhZ2UtPlNhdmUoICRmb3JtICk7CgovLyBjcmVhdGUgYSBzYW1wbGUgYWR2YW5jZWQgY29udGFjdCBmb3JtCiRjb250ZW50cyA9IGZpbGVfZ2V0X2NvbnRlbnRzKF9fRElSX18uJy90ZW1wbGF0ZXMvb3JpZ19hZHZhbmNlZF9jb250YWN0X2Zvcm0udHBsJyk7CiR0cGwgPSAkY3JlYXRlX3RlbXBsYXRlX29mX3R5cGUoICR0cGxfdHlwZSwgJ01vcmUgYWR2YW5jZWQgY29udGFjdCBmb3JtJywgJGNvbnRlbnRzICk7CiRkYXRhID0gW107CiRkYXRhWyduYW1lJ10gPSAnTW9yZSBhZHZhbmNlZCBjb250YWN0IGZvcm0nOwokZGF0YVsnZGVzY3JpcHRpb24nXSA9ICdNb3JlIGFkdmFuY2VkIGNvbnRhY3QgZm9ybS4gIFRoaXMgZm9ybSBkZW1vbnN0cmF0ZXMgcmVxdWlyZWQgZmllbGRzLCBIVE1MNSBpbnB1dCB0eXBlcywgYW5kIGRhdGEgYXR0cmlidXRlcy4nOwokZGF0YVsndGVtcGxhdGVfaWQnXSA9ICR0cGwtPmdldF9pZCgpOwokZGF0YVsnZmluYWxtc2cnXSA9ICdZb3VyIGlucHV0IGlzIHZhbHVhYmxlIHRvIHVzLiAgV2Ugd2lsbCBnZXQgYmFjayB0byB5b3Ugc2hvcmx5JzsKJGRhdGFbJ2NnYmZfdmVyc2lvbiddID0gJHRoaXMtPkdldFZlcnNpb24oKTsKJGZvcm0gPSBuZXcgXENHQmV0dGVyRm9ybXNcRm9ybSgkZGF0YSk7CiRyZXMgPSAkZG9fZm9ybV9zY2FuKCAkZm9ybSwgJHNtYXJ0eSApOwokZm9ybS0+YWRqdXN0V2l0aCggWydmaWVsZHMnPT4kcmVzLT5nZXRfZmllbGRzKCkgLCAnZmllbGRfbWVzc2FnZXMnPT4kcmVzLT5nZXRfbWVzc2FnZXMoKSwgJ2hhc19jYXB0Y2hhJz0+JHJlcy0+aGFzX2NhcHRjaGEoKSBdICk7Ci8vIG5vdyBhdXRvbWF0aWNhbGx5IGFkZCB2YWxpZGF0aW9ucwokc2Nhbm5lciA9IG5ldyBcQ0dCZXR0ZXJGb3Jtc1xWYWxpZGF0aW9uU2Nhbm5lciggJHRoaXMsICRmb3JtLCAkcmVzLT5nZXRfZmllbGRzKCkgKTsKJHZhbGlkYXRpb25zID0gJHNjYW5uZXItPmdldF92YWxpZGF0aW9ucygpOwppZiggY291bnQoJHZhbGlkYXRpb25zKSApIHsKICAgIGZvcmVhY2goICR2YWxpZGF0aW9ucyBhcyAkb2JqICkgewogICAgICAgICRmb3JtLT5zZXRWYWxpZGF0aW9uKCRvYmopOwogICAgfQp9CiRlZGl0b3IgPSBuZXcgXENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zXFVuaXF1ZUZpbGVEaXNwb3NpdGlvbkVkaXRvciggJHRoaXMgKTsKJGVkaXRvci0+cmVzZXRfdGVtcGxhdGVzKCAkZm9ybSApOwokZm9ybS0+c2V0RGlzcG9zaXRpb24oICRlZGl0b3ItPmdldF9kaXNwb3NpdGlvbigpICk7CiRlZGl0b3IgPSBuZXcgXENHQmV0dGVyRm9ybXNcRGlzcG9zaXRpb25zXEVtYWlsRml4ZWRBZGRyZXNzZXNEaXNwb3NpdGlvbkVkaXRvciggJHRoaXMgKTsKJGVkaXRvci0+c2V0X2FkZHJlc3NlcyggJ2NhbGd1eTEwMDArY2diZl9wcmV2aWV3QGdtYWlsLmNvbScgKTsKJGVkaXRvci0+cmVzZXRfdGVtcGxhdGVzKCAkZm9ybSApOwokZm9ybS0+c2V0RGlzcG9zaXRpb24oICRlZGl0b3ItPmdldF9kaXNwb3NpdGlvbigpICk7CiR0aGlzLT5mb3Jtc3RvcmFnZS0+U2F2ZSggJGZvcm0gKTsKCi8vIGNyZWF0ZSBzYW1wbGUgdHJpdmlhbCB3aWRnZXQgYnVpbGRlci4KJGNvbnRlbnRzID0gZmlsZV9nZXRfY29udGVudHMoX19ESVJfXy4nL3RlbXBsYXRlcy9vcmlnX3RyaXZpYWxfd2lkZ2V0X2J1aWxkZXIudHBsJyk7CiR0cGwgPSAkY3JlYXRlX3RlbXBsYXRlX29mX3R5cGUoICR0cGxfdHlwZSwgJ1RyaXZpYWwgV2lkZ2V0IEJ1aWxkZXInLCAkY29udGVudHMgKTsKJGRhdGEgPSBbXTsKJGRhdGFbJ25hbWUnXSA9ICdUcml2aWFsIFdpZGdldCBCdWlsZGVyJzsKJGRhdGFbJ2Rlc2NyaXB0aW9uJ10gPSAnQSB0cml2aWFsIHdpZGdldCBidWlsZGVyLiAgVGhpcyBmb3JtIGRlbW9uc3RyYXRlcyB1c2luZyBqcXVlcnkgdG8gcGVyZm9ybSBjYWxjdWxhdGlvbnMsIGFuZCB0aGUgZGF0YS1jZ2JmLXNlbGVjdGVkIGF0dHJpYnV0ZS4nOwokZGF0YVsndGVtcGxhdGVfaWQnXSA9ICR0cGwtPmdldF9pZCgpOwokZGF0YVsnZmluYWxtc2cnXSA9ICc8cD5UaGFuayB5b3UgZm9yIHlvdXIgc3VibWlzc2lvbic7CiRkYXRhWydjZ2JmX3ZlcnNpb24nXSA9ICR0aGlzLT5HZXRWZXJzaW9uKCk7CiRmb3JtID0gbmV3IFxDR0JldHRlckZvcm1zXEZvcm0oJGRhdGEpOwokcmVzID0gJGRvX2Zvcm1fc2NhbiggJGZvcm0sICRzbWFydHkgKTsKJGZvcm0tPmFkanVzdFdpdGgoIFsnZmllbGRzJz0+JHJlcy0+Z2V0X2ZpZWxkcygpICwgJ2ZpZWxkX21lc3NhZ2VzJz0+JHJlcy0+Z2V0X21lc3NhZ2VzKCksICdoYXNfY2FwdGNoYSc9PiRyZXMtPmhhc19jYXB0Y2hhKCkgXSApOwovLyBub3cgIG1hbnVhbGx5IGFkZCBhIHZhbGlkYXRpb24KJGVkaXRvciA9IG5ldyBcQ0dCZXR0ZXJGb3Jtc1xGaWVsZFZhbGlkYXRvcnNcVGVtcGxhdGVWYWxpZGF0aW9uRWRpdG9yKCAkdGhpcyApOwokZWRpdG9yLT5zZXRfdGVtcGxhdGUoIntpZiBcJHJlc3BvbnNlLT53aWRnZXRfc2l6ZSA9PSAnbWVkaXVtJyAmJiBcJHJlc3BvbnNlLT53aWRnZXRfY29sb3IgPT0gJ3JlZCd9U29ycnksIHdlIGRvIG5vdCBoYXZlIHRoYXQgaW4gc3RvY2t7L2lmfSIpOwokZm9ybS0+c2V0VmFsaWRhdGlvbigkZWRpdG9yLT5nZXRfdmFsaWRhdGlvbigpKTsKJHRoaXMtPmZvcm1zdG9yYWdlLT5TYXZlKCAkZm9ybSApOwo=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwokdGFib3B0YXJyYXkgPSBhcnJheSggJ215c3FsaScgPT4gJ0VOR0lORT1Jbm5vREInICk7Cgokc3FsYXJyID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggXENHQmV0dGVyRm9ybXNcRm9ybURBTzo6dGFibGVfbmFtZSgpICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycik7CgokdGhpcy0+UmVtb3ZlUGVybWlzc2lvbihDR0JldHRlckZvcm1zOjpNQU5BR0VfUEVSTSk7CgovLyB0ZW1wbGF0ZSBzdHVmZgp0cnkgewogICAgJHR5cGVzID0gXENtc0xheW91dFRlbXBsYXRlVHlwZTo6bG9hZF9hbGxfYnlfb3JpZ2luYXRvcigkdGhpcy0+R2V0TmFtZSgpKTsKICAgIGlmKCBpc19hcnJheSgkdHlwZXMpICYmIGNvdW50KCR0eXBlcykgKSB7CiAgICAgICAgZm9yZWFjaCggJHR5cGVzIGFzICR0eXBlICkgewogICAgICAgICAgICAkdGVtcGxhdGVzID0gJHR5cGUtPmdldF90ZW1wbGF0ZV9saXN0KCk7CiAgICAgICAgICAgIGlmKCBpc19hcnJheSgkdGVtcGxhdGVzKSAmJiBjb3VudCgkdGVtcGxhdGVzKSApIHsKICAgICAgICAgICAgICAgIGZvcmVhY2goICR0ZW1wbGF0ZXMgYXMgJHRlbXBsYXRlICkgewogICAgICAgICAgICAgICAgICAgICR0ZW1wbGF0ZS0+ZGVsZXRlKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHR5cGUtPmRlbGV0ZSgpOwogICAgICAgIH0KICAgIH0KfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgIFxjZ2VfdXRpbHM6OmxvZ19leGNlcHRpb24oICRlICk7CiAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdVbmluc3RhbCBlcnJvcjogJy4kZS0+R2V0TWVzc2FnZSgpKTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9IENHQmV0dGVyRm9ybXMKdmVyc2lvbiA9IDAuOApkZXNjcmlwdGlvbiA9IEEgbW9kdWxlIGZvciBoYW5kbGluZyBmb3JtcyB0aGF0IHdlcmUgY3JlYXRlZCBhbmQgZGVzaWduZWQgYnkgYSBkZXZlbG9wZXIKYXV0aG9yID0gY2FsZ3V5MTAwMAphdXRob3JlbWFpbCA9IGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcKbWluY21zdmVyc2lvbiA9IDIuMi1iZXRhMwpsYXp5bG9hZGFkbWluID0gMApsYXp5bG9hZGZyb250ZW5kID0gMApbZGVwZW5kc10KQ0dFeHRlbnNpb25zID0gMS41NC4xCg==]]></data>
	</file>
	<file>
	  <filename>/svn-commit.tmp</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[dXBkYXRlIGlnbm9yZXMKLS1UaGlzIGxpbmUsIGFuZCB0aG9zZSBiZWxvdywgd2lsbCBiZSBpZ25vcmVkLS0KCl9NICAgLgo=]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_edit_computedpage_disposition.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCduYW1lX0NvbXB1dGVkUGFnZURpc3Bvc2l0aW9uJyl9PC9oMz4KCntmb3JtX3N0YXJ0IGZvcm1fZ3VpZD0kZm9ybV9ndWlkIGRpc3BfZ3VpZD0kZ3VpZCBlZGl0b3JfbmFtZT0kZWRpdG9yX25hbWV9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jYW5jZWwiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2FuY2VsJyl9IiBmb3Jtbm92YWxpZGF0ZS8+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfcGFnZV90cGwnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgIHtjZ2VfdGV4dGFyZWEgcHJlZml4PSRhY3Rpb25pZCBuYW1lPXRlbXBsYXRlIHZhbHVlPSRoYW5kbGVyLT50ZW1wbGF0ZSByb3dzPTV9CiAgICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb19wYWdlX3RwbCcpfQogIDwvcD4KPC9kaXY+Cntmb3JtX2VuZH0KeyR0cGxfaGVscH0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_computedvalue.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X2NvbXB1dGVkX3ZhbHVlJyl9PC9oMz4KCntmb3JtX3N0YXJ0IGZvcm1fZ3VpZD0kZm9ybV9ndWlkIGd1aWQ9JGd1aWQgZWRpdG9yX25hbWU9JGVkaXRvcl9uYW1lfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgZm9ybW5vdmFsaWRhdGUvPgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwcm9tcHRfZmllbGQnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzkiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWZpZWxkbmFtZSIgY2xhc3M9ImdyaWRfMTIiIHJlcXVpcmVkPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGZpZWxkcyBzZWxlY3RlZD0kdmFsaWRhdGlvbi0+ZmllbGROYW1lfQogICAgPC9zZWxlY3Q+CiAgICA8cCBjbGFzcz0iZ3JpZF8xMiI+eyRtb2QtPkxhbmcoJ2luZm9fY29tcHV0ZWRfdmFsdWVfZmllbGQnKX08L3A+CiAgPC9kaXY+CjwvZGl2PgoKPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ3Byb21wdF90ZW1wbGF0ZScpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICA8dGV4dGFyZWEgY2xhc3M9ImdyaWRfMTIiIHJvd3M9IjUiIG5hbWU9InskYWN0aW9uaWR9dGVtcGxhdGUiPnskdmFsaWRhdGlvbi0+dGVtcGxhdGV9PC90ZXh0YXJlYT4KICA8L2Rpdj4KPC9kaXY+Cntmb3JtX2VuZH0KeyR0cGxfaGVscH0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_ddemail_disposition.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X2RkZW1haWxfZGlzcG9zaXRpb24nKX08L2gzPgoKe2Zvcm1fc3RhcnQgZm9ybV9ndWlkPSRmb3JtX2d1aWQgZ3VpZD0kZ3VpZCBlZGl0b3JfbmFtZT0kZWRpdG9yX25hbWV9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jYW5jZWwiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2FuY2VsJyl9IiBmb3Jtbm92YWxpZGF0ZS8+CiAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1yZXNldF90cGwiIHZhbHVlPSJ7JG1vZC0+TGFuZygncmVzZXRfdHBscycpfSIgZm9ybW5vdmFsaWRhdGUvPgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwcm9tcHRfZmllbGQnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzkiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWZpZWxkIiBjbGFzcz0iZ3JpZF8xMiIgcmVxdWlyZWQ+CiAgICAgIHtodG1sX29wdGlvbnMgdmFsdWVzPSRzZWxlY3RfZmllbGRzIG91dHB1dD0kc2VsZWN0X2ZpZWxkcyBzZWxlY3RlZD0kaGFuZGxlci0+ZmllbGR9CiAgICA8L3NlbGVjdD4KICAgIDxwIGNsYXNzPSJncmlkXzExIj57JG1vZC0+TGFuZygnaW5mb19kZGVtYWlsX2ZpZWxkJyl9PC9wPgogIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ3Byb21wdF9kZmx0X2VtYWlsX2FkZHJlc3MnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzkiPgogICAgIDxpbnB1dCB0eXBlPSJlbWFpbCIgdmFsdWU9InskaGFuZGxlci0+ZGZsdF9hZGRyZXNzfSIgbmFtZT0ieyRhY3Rpb25pZH1kZmx0X2FkZHJlc3MiIG1heGxlbmd0aD0iMjU1IiBjbGFzcz0iZ3JpZF8xMiIvPgogICAgIDxwIGNsYXNzPSJncmlkXzExIj57JG1vZC0+TGFuZygnaW5mb19kZmx0X2VtYWlsX2FkZHJlc3MnKX08L3A+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ3Byb21wdF9kZGVtYWlsX3ZhbHVlX21hcCcpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICAge2NnZV90ZXh0YXJlYSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9dmFsdWVfbWFwIHZhbHVlPSRoYW5kbGVyLT52YWx1ZV9tYXAgcm93cz01IGNsYXNzPSJncmlkXzEyIn0KICAgICA8cCBjbGFzcz0iZ3JpZF8xMSI+eyRtb2QtPkxhbmcoJ2luZm9fZGRlbWFpbF92YWx1ZV9tYXAnKX08L3A+CiAgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X2VtYWlsX3N1YmplY3RfdGVtcGxhdGUnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzkiPgogICAge2NnZV90ZXh0YXJlYSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9c3ViamVjdHRlbXBsYXRlIHZhbHVlPSRoYW5kbGVyLT5zdWJqZWN0dGVtcGxhdGUgcm93cz0yIGNsYXNzPWdyaWRfMTJ9CiAgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9lbWFpbF9ib2R5X3RlbXBsYXRlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICB7Y2dlX3RleHRhcmVhIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1ib2R5dGVtcGxhdGUgdmFsdWU9JGhhbmRsZXItPmJvZHl0ZW1wbGF0ZX0KICA8L3A+CjwvZGl2Pgp7Zm9ybV9lbmR9CnskdHBsX2hlbHB9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_ddfile_disposition.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X2RkZmlsZV9kaXNwb3NpdGlvbicpfTwvaDM+Cgp7Zm9ybV9zdGFydCBmb3JtX2d1aWQ9JGZvcm1fZ3VpZCBndWlkPSRndWlkIGVkaXRvcl9uYW1lPSRlZGl0b3JfbmFtZX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXJlc2V0X3RwbCIgdmFsdWU9InskbW9kLT5MYW5nKCdyZXNldF90cGxzJyl9IiBmb3Jtbm92YWxpZGF0ZS8+CjwvZGl2PgoKPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ3Byb21wdF9maWVsZCcpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9ZmllbGQiIGNsYXNzPSJncmlkXzEyIiByZXF1aXJlZD4KICAgICAge2h0bWxfb3B0aW9ucyB2YWx1ZXM9JHNlbGVjdF9maWVsZHMgb3V0cHV0PSRzZWxlY3RfZmllbGRzIHNlbGVjdGVkPSRoYW5kbGVyLT5maWVsZH0KICAgIDwvc2VsZWN0PgogICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb19kZGZpbGVfZmllbGQnKX0KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwcm9tcHRfZGRmaWxlX2ZvbGRlcicpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICAgPGlucHV0IGNsYXNzPSJncmlkXzEyIiBuYW1lPSJ7JGFjdGlvbmlkfWZvbGRlciIgdmFsdWU9InskaGFuZGxlci0+Zm9sZGVyfSI+CiAgICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb19kZGZpbGVfZm9sZGVyJyl9CiAgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9oZHJ0ZW1wbGF0ZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAge2NnZV90ZXh0YXJlYSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9aGVhZGVydGVtcGxhdGUgdmFsdWU9JGhhbmRsZXItPmhlYWRlcnRlbXBsYXRlfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2VudHJ5dGVtcGxhdGUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgIHtjZ2VfdGV4dGFyZWEgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWVudHJ5dGVtcGxhdGUgdmFsdWU9JGhhbmRsZXItPmVudHJ5dGVtcGxhdGV9CiAgPC9wPgo8L2Rpdj4Ke2Zvcm1fZW5kfQp7JHRwbF9oZWxwfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_emailadminwithreplyto_disposition.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCduYW1lX0VtYWlsQWRtaW5XaXRoUmVwbHlUbycpfTwvaDM+Cgp7Zm9ybV9zdGFydCBmb3JtX2d1aWQ9JGZvcm1fZ3VpZCBkaXNwX2d1aWQ9JGd1aWQgZWRpdG9yX25hbWU9JGVkaXRvcl9uYW1lfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgZm9ybW5vdmFsaWRhdGUvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9cmVzZXRfdHBsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3Jlc2V0X3RwbHMnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X2VtYWlsX2ZpZWxkJyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF85Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1maWVsZG5hbWUiIGNsYXNzPSJncmlkXzEyIj4KICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kZmllbGRfbGlzdCBzZWxlY3RlZD0kaGFuZGxlci0+ZmllbGRuYW1lfQogICAgPC9zZWxlY3Q+CiAgICA8cCBjbGFzcz0iZ3JpZF8xMiI+eyRtb2QtPkxhbmcoJ2luZm9fZW1haWx1c2VyYWRkcmVzcycpfTwvcD4KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2Nzdl9lbWFpbF9hZGRyZXNzZXMnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgIHtjZ2VfdGV4dGFyZWEgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWFkZHJlc3NlcyB2YWx1ZT0kaGFuZGxlci0+YWRkcmVzc2VzIHJvd3M9M30KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9lbWFpbF9zdWJqZWN0X3RlbXBsYXRlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJqZWN0dGVtcGxhdGUiIHZhbHVlPSJ7JGhhbmRsZXItPnN1YmplY3R0ZW1wbGF0ZX0iIHN0eWxlPSJ3aWR0aDogOTclOyIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2VtYWlsX2JvZHlfdGVtcGxhdGUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgIHtjZ2VfdGV4dGFyZWEgcHJlZml4PSRhY3Rpb25pZCBuYW1lPSJib2R5dGVtcGxhdGUiIHZhbHVlPSRoYW5kbGVyLT5ib2R5dGVtcGxhdGV9CiAgPC9wPgo8L2Rpdj4Ke2Zvcm1fZW5kfQp7JHRwbF9oZWxwfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_emailfieldvalidation.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X2VtYWlsX2ZpZWxkdmFsaWRhdGlvbicpfTwvaDM+Cgp7Zm9ybV9zdGFydCBmb3JtX2d1aWQ9JGZvcm1fZ3VpZCBndWlkPSRndWlkIGVkaXRvcl9uYW1lPSRlZGl0b3JfbmFtZX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X2ZpZWxkJyl9OjwvbGFiZWw+CiAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWZpZWxkbmFtZSIgY2xhc3M9ImdyaWRfOCIgcmVxdWlyZWQ+CiAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGZpZWxkcyBzZWxlY3RlZD0kdmFsaWRhdGlvbi0+ZmllbGROYW1lfQogIDwvc2VsZWN0Pgo8L2Rpdj4Ke2Zvcm1fZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_emailfixedaddresses_disposition.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCduYW1lX0VtYWlsRml4ZWRBZGRyZXNzZXNEaXNwb3NpdGlvbicpfTwvaDM+Cgp7Zm9ybV9zdGFydCBmb3JtX2d1aWQ9JGZvcm1fZ3VpZCBkaXNwX2d1aWQ9JGd1aWQgZWRpdG9yX25hbWU9JGVkaXRvcl9uYW1lfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgZm9ybW5vdmFsaWRhdGUvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9cmVzZXRfdHBsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3Jlc2V0X3RwbHMnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9jc3ZfZW1haWxfYWRkcmVzc2VzJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICB7Y2dlX3RleHRhcmVhIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1hZGRyZXNzZXMgdmFsdWU9JGhhbmRsZXItPmFkZHJlc3NlcyByb3dzPTN9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZW1haWxfc3ViamVjdF90ZW1wbGF0ZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9c3ViamVjdHRlbXBsYXRlIiB2YWx1ZT0ieyRoYW5kbGVyLT5zdWJqZWN0dGVtcGxhdGV9IiBzdHlsZT0id2lkdGg6IDk3JTsiLz4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9lbWFpbF9ib2R5X3RlbXBsYXRlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICB7Y2dlX3RleHRhcmVhIHByZWZpeD0kYWN0aW9uaWQgbmFtZT0iYm9keXRlbXBsYXRlIiB2YWx1ZT0kaGFuZGxlci0+Ym9keXRlbXBsYXRlfQogIDwvcD4KPC9kaXY+Cntmb3JtX2VuZH0KeyR0cGxfaGVscH0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_emailuseraddress_disposition.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCduYW1lX0VtYWlsVXNlckFkZHJlc3NEaXNwb3NpdGlvbicpfTwvaDM+Cgp7Zm9ybV9zdGFydCBmb3JtX2d1aWQ9JGZvcm1fZ3VpZCBkaXNwX2d1aWQ9JGd1aWQgZWRpdG9yX25hbWU9JGVkaXRvcl9uYW1lfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgZm9ybW5vdmFsaWRhdGUvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9cmVzZXRfdHBsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3Jlc2V0X3RwbHMnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X2VtYWlsX2ZpZWxkJyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF85Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1maWVsZG5hbWUiIGNsYXNzPSJncmlkXzEyIj4KICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kZmllbGRfbGlzdCBzZWxlY3RlZD0kaGFuZGxlci0+ZmllbGRuYW1lfQogICAgPC9zZWxlY3Q+CiAgICA8cCBjbGFzcz0iZ3JpZF8xMiI+eyRtb2QtPkxhbmcoJ2luZm9fZW1haWx1c2VyYWRkcmVzcycpfTwvcD4KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2VtYWlsX3N1YmplY3RfdGVtcGxhdGUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1YmplY3R0ZW1wbGF0ZSIgdmFsdWU9InskaGFuZGxlci0+c3ViamVjdHRlbXBsYXRlfSIgc3R5bGU9IndpZHRoOiA5NyU7Ii8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZW1haWxfYm9keV90ZW1wbGF0ZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAge2NnZV90ZXh0YXJlYSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9ImJvZHl0ZW1wbGF0ZSIgdmFsdWU9JGhhbmRsZXItPmJvZHl0ZW1wbGF0ZX0KICA8L3A+CjwvZGl2Pgp7Zm9ybV9lbmR9CnskdHBsX2hlbHB9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_flatfiledisposition.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X2Nzdl9kaXNwb3NpdGlvbicpfTwvaDM+Cgp7Zm9ybV9zdGFydCBmb3JtX2d1aWQ9JGZvcm1fZ3VpZCBndWlkPSRndWlkIGVkaXRvcl9uYW1lPSRlZGl0b3JfbmFtZX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXJlc2V0X3RwbCIgdmFsdWU9InskbW9kLT5MYW5nKCdyZXNldF90cGxzJyl9IiBmb3Jtbm92YWxpZGF0ZS8+CjwvZGl2PgoKPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ3Byb21wdF9maWxlbmFtZScpfTo8L2xhYmVsPgogIDxpbnB1dCBjbGFzcz0iZ3JpZF85IiBuYW1lPSJ7JGFjdGlvbmlkfWZpbGVuYW1lIiB2YWx1ZT0ieyRoYW5kbGVyLT5maWxlbmFtZX0iIHJlcXVpcmVkLz4KICA8YnIvPjxici8+PHNwYW4gY2xhc3M9ImdyaWRfMiI+Jm5ic3A7PC9zcGFuPjxzcGFuPnskbW9kLT5MYW5nKCdpbmZvX2ZsYXRmaWxlX2ZpbGVuYW1lJyl9PC9zcGFuPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfaGRydGVtcGxhdGUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgIHtjZ2VfdGV4dGFyZWEgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWhlYWRlcnRlbXBsYXRlIHZhbHVlPSRoYW5kbGVyLT5oZWFkZXJ0ZW1wbGF0ZX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9lbnRyeXRlbXBsYXRlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICB7Y2dlX3RleHRhcmVhIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1lbnRyeXRlbXBsYXRlIHZhbHVlPSRoYW5kbGVyLT5lbnRyeXRlbXBsYXRlfQogIDwvcD4KPC9kaXY+Cntmb3JtX2VuZH0KeyR0cGxfaGVscH0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_floatfieldvalidation.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X2Zsb2F0X2ZpZWxkdmFsaWRhdGlvbicpfTwvaDM+Cgp7Zm9ybV9zdGFydCBmb3JtX2d1aWQ9JGZvcm1fZ3VpZCBndWlkPSRndWlkIGVkaXRvcl9uYW1lPSRlZGl0b3JfbmFtZX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X2ZpZWxkJyl9OjwvbGFiZWw+CiAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWZpZWxkbmFtZSIgY2xhc3M9ImdyaWRfOCIgcmVxdWlyZWQ+CiAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGZpZWxkcyBzZWxlY3RlZD0kdmFsaWRhdGlvbi0+ZmllbGROYW1lfQogIDwvc2VsZWN0Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ3Byb21wdF9taW52YWx1ZScpfTo8L2xhYmVsPgogIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfW1pblZhbHVlIiBjbGFzcz0iZ3JpZF85IiBtYXhsZW5ndGg9IjEwIiB2YWx1ZT0ieyR2YWxpZGF0aW9uLT5taW5WYWx9Ii8+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X21heHZhbHVlJyl9OjwvbGFiZWw+CiAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9bWF4VmFsdWUiIGNsYXNzPSJncmlkXzkiIG1heGxlbmd0aD0iMTAiIHZhbHVlPSJ7JHZhbGlkYXRpb24tPm1heFZhbH0iLz4KPC9kaXY+Cntmb3JtX2VuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_form.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRmb3JtLT5pZCA8IDF9CjxoMz57JG1vZC0+TGFuZygnYWRkX25ld19mb3JtJyl9PC9oMz4Ke2Vsc2V9CjxoMz57JG1vZC0+TGFuZygnZWRpdGluZ19mb3JtJyl9PC9oMz4Key9pZn0KCjxzY3JpcHQ+CnZhbGlkYXRpb25IYW5kbGVyID0gZnVuY3Rpb24oc2VsKSB7CiAgICB2YXIgZWxlbWVudCwgZV9zYXZlYnRuLCBlX3N1YmFjdGlvbiwgZV9ndWlkbGlzdDsKICAgIHZhciB2YXJfcHJlZml4ID0gJ3skYWN0aW9uaWR9JzsKCiAgICAvLyBjb25zdHJ1Y3QKICAgIGVsZW1lbnQgPSBzZWw7CiAgICBlX2Zvcm0gPSBlbGVtZW50LmNsb3Nlc3QoJ2Zvcm0nKTsKICAgIGVfc2F2ZWJ0biA9ICQoJyNzYXZlX3ZhbGlkYXRpb25fb3JkZXInKTsKICAgIGVfc3ViYWN0aW9uID0gJCgnI3N1YmFjdGlvbicpOwogICAgZV9ndWlkbGlzdCA9ICQoJyNndWlkX2xpc3QnKTsKCiAgICBlX3NhdmVidG4uY2xpY2soZnVuY3Rpb24oZXYpewogICAgICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgY21zX2NvbmZpcm0oJ3NhdmUgdGhlc2UgcG9zaXRpb25zJykuZG9uZShmdW5jdGlvbigpewoJICAgICAgdmFyIGxpc3QgPSBbXTsKCSAgICAgICQoJ3RyJyxlbGVtZW50KS5lYWNoKGZ1bmN0aW9uKCl7CgkgICAgICAgICB2YXIgdCA9ICQodGhpcykuZGF0YSgnZ3VpZCcpOwoJCSBpZiggIXQgfHwgdC5sZW5ndGggPT0gMCApIHJldHVybjsKCQkgbGlzdC5wdXNoKHQpOwogICAgICAgICAgICAgIH0pOwoJICAgICAgLy8gbm93IHNhdmUgdGhpcyBkYXRhIHNvbWV3aGVyZSwgYW5kIHN1Ym1pdCB0aGUgZm9ybS4KCSAgICAgIGVfc3ViYWN0aW9uLnZhbCgnb3JkZXJfdmFsaWRhdGlvbnMnKTsKCSAgICAgIGVfZ3VpZGxpc3QudmFsKGxpc3Quam9pbignLCcpKTsKCSAgICAgIGVfZm9ybS5zdWJtaXQoKTsKICAgICAgICAgICB9KQogICAgfSk7CgogICAgJCgndGJvZHknLGVsZW1lbnQpLnNvcnRhYmxlKHsKICAgICAgIGN1cnNvcjogJ21vdmUnLAogICAgICAgaGVscGVyOiBmdW5jdGlvbihldiwgdWkpIHsKICAgICAgICAgIHVpLmNoaWxkcmVuKCkuZWFjaChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAkKHRoaXMpLndpZHRoKCQodGhpcykud2lkdGgoKSk7CiAgICAgICAgICB9KTsKICAgIAkgIHJldHVybiB1aTsKICAgICAgIH0sCiAgICAgICBzdG9wOiBmdW5jdGlvbihldmVudCx1aSkgewogICAgICAgICAgIGVfc2F2ZWJ0bi5zaG93KCk7CiAgICAgICB9LAogICAgfSk7Cn07CgpkaXNwb3NpdGlvbkhhbmRsZXIgPSBmdW5jdGlvbihzZWwpIHsKICAgIHZhciBlbGVtZW50LCBlX3NhdmVidG4sIGVfc3ViYWN0aW9uLCBlX2d1aWRsaXN0OwogICAgdmFyIHZhcl9wcmVmaXggPSAneyRhY3Rpb25pZH0nOwoKICAgIC8vIGNvbnN0cnVjdAogICAgZWxlbWVudCA9IHNlbDsKICAgIGVfZm9ybSA9IGVsZW1lbnQuY2xvc2VzdCgnZm9ybScpOwogICAgZV9zYXZlYnRuID0gJCgnI3NhdmVfZGlzcF9vcmRlcicpOwogICAgZV9zdWJhY3Rpb24gPSAkKCcjc3ViYWN0aW9uJyk7CiAgICBlX2d1aWRsaXN0ID0gJCgnI2d1aWRfbGlzdCcpOwoKICAgIGVfc2F2ZWJ0bi5jbGljayhmdW5jdGlvbihldil7CiAgICAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICBjbXNfY29uZmlybSgnc2F2ZSB0aGVzZSBwb3NpdGlvbnMnKS5kb25lKGZ1bmN0aW9uKCl7CgkgICAgICB2YXIgbGlzdCA9IFtdOwoJICAgICAgJCgndHInLGVsZW1lbnQpLmVhY2goZnVuY3Rpb24oKXsKCSAgICAgICAgIHZhciB0ID0gJCh0aGlzKS5kYXRhKCdndWlkJyk7CgkJIGlmKCAhdCB8fCB0Lmxlbmd0aCA9PSAwICkgcmV0dXJuOwoJCSBsaXN0LnB1c2godCk7CiAgICAgICAgICAgICAgfSk7CgkgICAgICAvLyBub3cgc2F2ZSB0aGlzIGRhdGEgc29tZXdoZXJlLCBhbmQgc3VibWl0IHRoZSBmb3JtLgoJICAgICAgZV9zdWJhY3Rpb24udmFsKCdvcmRlcl9kaXNwb3NpdGlvbnMnKTsKCSAgICAgIGVfZ3VpZGxpc3QudmFsKGxpc3Quam9pbignLCcpKTsKCSAgICAgIGVfZm9ybS5zdWJtaXQoKTsKICAgICAgICAgICB9KQogICAgfSk7CgogICAgJCgndGJvZHknLGVsZW1lbnQpLnNvcnRhYmxlKHsKICAgICAgIGN1cnNvcjogJ21vdmUnLAogICAgICAgaGVscGVyOiBmdW5jdGlvbihldiwgdWkpIHsKICAgICAgICAgIHVpLmNoaWxkcmVuKCkuZWFjaChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAkKHRoaXMpLndpZHRoKCQodGhpcykud2lkdGgoKSk7CiAgICAgICAgICB9KTsKICAgIAkgIHJldHVybiB1aTsKICAgICAgIH0sCiAgICAgICBzdG9wOiBmdW5jdGlvbihldmVudCx1aSkgewogICAgICAgICAgIGVfc2F2ZWJ0bi5zaG93KCk7CiAgICAgICB9LAogICAgfSk7Cn07CgokKCBmdW5jdGlvbigpIHsKICAgLy8gcmVhZHkuLgogICB2YXIgZGlzcF9oYW5kbGVyID0gbmV3IGRpc3Bvc2l0aW9uSGFuZGxlcigkKCcjZGlzcG9zaXRpb25fbGlzdCcpKTsKICAgdmFyIGRpc3BfaGFuZGxlciA9IG5ldyB2YWxpZGF0aW9uSGFuZGxlcigkKCcjdmFsaWRhdGlvbl9saXN0JykpOwp9KQo8L3NjcmlwdD4KCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CmJ1dHRvbi5idG5saW5rIHsKICAgYmFja2dyb3VuZDpub25lIWltcG9ydGFudDsKICAgY29sb3I6aW5oZXJpdDsKICAgYm9yZGVyOm5vbmU7CiAgIHBhZGRpbmc6MCFpbXBvcnRhbnQ7CiAgIGZvbnQ6IGluaGVyaXQ7CiAgIC8qYm9yZGVyIGlzIG9wdGlvbmFsKi8KICAgY3Vyc29yOiBwb2ludGVyOwp9CnRyLmJhZGZpZWxkIHRkIHsKICAgY29sb3I6IG9yYW5nZSAhaW1wb3J0YW50Owp9CiNkaXNwb3NpdGlvbl9saXN0IHsKICAgY3Vyc29yOiBtb3ZlOwp9CiN2YWxpZGF0aW9uX2xpc3QgewogICBjdXJzb3I6IG1vdmU7Cn0KPC9zdHlsZT4KCntmb3JtX3N0YXJ0IGZvcm1fZ3VpZD0kZm9ybV9ndWlkfTxpbnB1dCBpZD0ic3ViYWN0aW9uIiBuYW1lPSJ7JGFjdGlvbmlkfXN1YmFjdGlvbiIgdHlwZT0iaGlkZGVuIi8+PGlucHV0IGlkPSJndWlkX2xpc3QiIHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1ndWlkcyIvPgp7JGRpc3Bvc2l0aW9ucz0kZm9ybS0+ZGlzcG9zaXRpb25zfQp7JHZhbGlkYXRpb25zPSRmb3JtLT52YWxpZGF0aW9uc30KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgIHtpZiBjb3VudCgkZmllbGRzKX0KICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzYXZlJyl9Ii8+CiAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1hcHBseSIgdmFsdWU9InskbW9kLT5MYW5nKCdhcHBseScpfSIvPgogICB7L2lmfQogICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXNjYW4iIHZhbHVlPSJ7JG1vZC0+TGFuZygnc2NhbicpfSIvPgogICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KPC9kaXY+Cgp7Y2dlX3N0YXJ0X3RhYnN9CntjZ2VfdGFiaGVhZGVyIG5hbWU9J2Zvcm0nIGxhYmVsPSRtb2QtPkxhbmcoJ2Zvcm0nKX0Ke2lmIGNvdW50KCRmaWVsZHMpfQogIHtjZ2VfdGFiaGVhZGVyIG5hbWU9J21lc3NhZ2VzJyBsYWJlbD0kbW9kLT5MYW5nKCdtZXNzYWdlcycpfQogIHtjZ2VfdGFiaGVhZGVyIG5hbWU9J2ZpZWxkcycgbGFiZWw9JG1vZC0+TGFuZygnZmllbGRzJyl9CiAge2NnZV90YWJoZWFkZXIgbmFtZT0ncHJlcmVuZGVyX2xvZ2ljJyBsYWJlbD0kbW9kLT5MYW5nKCdwcmVyZW5kZXJfbG9naWMnKX0KICB7Y2dlX3RhYmhlYWRlciBuYW1lPSd2YWxpZGF0aW9uJyBsYWJlbD0kbW9kLT5MYW5nKCd2YWxpZGF0aW9uJyl9CiAge2NnZV90YWJoZWFkZXIgbmFtZT0naGFuZGxlcnMnIGxhYmVsPSRtb2QtPkxhbmcoJ2hhbmRsZXJzJyl9CiAge2NnZV90YWJoZWFkZXIgbmFtZT0nZmluYWwnIGxhYmVsPSRtb2QtPkxhbmcoJ2ZpbmFsJyl9CnsvaWZ9Cgp7Y2dlX3RhYmNvbnRlbnRfc3RhcnQgbmFtZT0nZm9ybSd9CiAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIHJlcXVpcmVkIj4qeyRtb2QtPkxhbmcoJ2Zvcm1fbmFtZScpfTo8L2xhYmVsPgogICAgPGlucHV0IGNsYXNzPSJncmlkXzkgcmVxdWlyZWQiIG5hbWU9InskYWN0aW9uaWR9bmFtZSIgdmFsdWU9InskZm9ybS0+bmFtZX0iIHBsYWNlaG9sZGVyPSJ7JG1vZC0+TGFuZygncGhfZm9ybV9uYW1lJyl9IiByZXF1aXJlZC8+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIHJlcXVpcmVkIj4qeyRtb2QtPkxhbmcoJ2Zvcm1fdGVtcGxhdGUnKX06PC9sYWJlbD4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH10ZW1wbGF0ZV9pZCIgY2xhc3M9ImdyaWRfOSIgcmVxdWlyZWQ+CiAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kYWxsX3RlbXBsYXRlcyBzZWxlY3RlZD0kZm9ybS0+dGVtcGxhdGVfaWR9CiAgICA8L3NlbGVjdD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgPGxhYmVsIGNsYXNzPSJncmlkXzIgcmVxdWlyZWQiPnskbW9kLT5MYW5nKCdkZXNjcmlwdGlvbicpfTo8L2xhYmVsPgogICAgPHRleHRhcmVhIGNsYXNzPSJncmlkXzkiIG5hbWU9InskYWN0aW9uaWR9ZGVzY3JpcHRpb24iIHBsYWNlaG9sZGVyPSJ7JG1vZC0+TGFuZygncGhfZm9ybV9kZXNjJyl9Ij57JGZvcm0tPmRlc2NyaXB0aW9ufTwvdGV4dGFyZWE+CiAgPC9kaXY+CgogIDxoci8+CiAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ2Zvcm1faW5saW5lJyl9PC9sYWJlbD4KICAgICA8ZGl2IGNsYXNzPSJncmlkXzkiPgogICAgICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1kaXNwbGF5X2lubGluZSBzZWxlY3RlZD0kZm9ybS0+ZGlzcGxheV9pbmxpbmV9CiAgICAgICA8cCBjbGFzcz0iZ3JpZF8xMiI+eyRtb2QtPkxhbmcoJ2luZm9fZm9ybV9pbmxpbmUnKX08L3A+CiAgICAgPC9kaXY+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdmb3JtX2Zyb21fZW1haWwnKX08L2xhYmVsPgogICAgIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICAgICA8aW5wdXQgY2xhc3M9ImdyaWRfMTIiIHR5cGU9ImVtYWlsIiBuYW1lPSJ7JGFjdGlvbmlkfWVtYWlsX2Zyb21fYWRkciIgdmFsdWU9InskZm9ybS0+ZW1haWxfZnJvbV9hZGRyfSIgcGxhY2Vob2xkZXI9InskbW9kLT5MYW5nKCdlbWFpbGFkZHJfc3lzZGZsdCcpfSIvPgogICAgICAgPHAgY2xhc3M9ImdyaWRfMTIiPnskbW9kLT5MYW5nKCdpbmZvX2Zvcm1fZnJvbV9lbWFpbCcpfTwvcD4KICAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ2Zvcm1fZnJvbV9uYW1lJyl9PC9sYWJlbD4KICAgICA8ZGl2IGNsYXNzPSJncmlkXzkiPgogICAgICAgPGlucHV0IGNsYXNzPSJncmlkXzEyIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWVtYWlsX2Zyb21fbmFtZSIgdmFsdWU9InskZm9ybS0+ZW1haWxfZnJvbV9uYW1lfSIgcGxhY2Vob2xkZXI9InskbW9kLT5MYW5nKCdub25lJyl9Ii8+CiAgICAgICA8cCBjbGFzcz0iZ3JpZF8xMiI+eyRtb2QtPkxhbmcoJ2luZm9fZm9ybV9mcm9tX25hbWUnKX08L3A+CiAgICAgPC9kaXY+CiAgPC9kaXY+Cgp7aWYgY291bnQoJGZpZWxkcyl9CntjZ2VfdGFiY29udGVudF9zdGFydCBuYW1lPW1lc3NhZ2VzfQogIDxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JG1vZC0+TGFuZygnaW5mb19mb3JtX21lc3NhZ2VzJyl9PC9kaXY+CiAge2lmIGVtcHR5KCRtZXNzYWdlcyl9CiAgICAgIDxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JG1vZC0+TGFuZygnbm9fbWVzc2FnZXMnKX08L2Rpdj4KICB7ZWxzZX0KICAgICAgIDx1bD4KICAgICAgICAge2ZvcmVhY2ggJG1lc3NhZ2VzIGFzICRtc2d9CgkgICA8bGk+eyRtc2d9PC9saT4KCSB7L2ZvcmVhY2h9CiAgICAgICA8L3VsPgogIHsvaWZ9Cgp7Y2dlX3RhYmNvbnRlbnRfc3RhcnQgbmFtZT1maWVsZHN9CiAgICAgIDxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JG1vZC0+TGFuZygnaW5mb19maWVsZHNfdGFiJyl9PC9kaXY+CiAgICAgIDx0YWJsZSBjbGFzcz0icGFnZXRhYmxlIj4KICAgICAgICA8dGhlYWQ+CgkgIDxyPgoJICAgIDx0aD57JG1vZC0+TGFuZygnbmFtZScpfTwvdGg+CgkgICAgPHRoPnskbW9kLT5MYW5nKCdsYWJlbCcpfTwvdGg+CgkgICAgPHRoPnskbW9kLT5MYW5nKCdub2RlJyl9PC90aD4KCSAgICA8dGg+eyRtb2QtPkxhbmcoJ3R5cGUnKX08L3RoPgoJICAgIDx0aD57JG1vZC0+TGFuZygnYXR0cmlicycpfTwvdGg+CgkgIDwvdHI+Cgk8L3RoZWFkPgoJPHRib2R5PgoJe2ZvcmVhY2ggJGZpZWxkcyBhcyAkZmllbGR9CgkgIDx0ciBjbGFzcz0ie2N5Y2xlIHZhbHVlcz0ncm93MSxyb3cyJ30iPgoJICAgIDx0ZD57JGZpZWxkLT5uYW1lfTwvdGQ+CgkgICAgPHRkPnskZmllbGQtPmxhYmVsfTwvdGQ+CgkgICAgPHRkPnskZmllbGQtPm5vZGV9PC90ZD4KCSAgICA8dGQ+eyRmaWVsZC0+dHlwZX08L3RkPgoJICAgIDx0ZD4KCSAgICAgIHskYXR0cmlicz1bXX0KCSAgICAgIHtpZiAkZmllbGQtPm5vdmFsaWRhdGV9eyRhdHRyaWJzW109JG1vZC0+TGFuZygnYXR0cl9ub3ZhbGlkYXRlJyl9ey9pZn0KCSAgICAgIHtpZiAkZmllbGQtPnByaW1pdGl2ZSAhPSAnc3RyaW5nJ317JGF0dHJpYnNbXT0kZmllbGQtPnByaW1pdGl2ZX17L2lmfQoJICAgICAge2lmICRmaWVsZC0+bXVsdGlwbGV9eyRhdHRyaWJzW109JG1vZC0+TGFuZygnYXR0cl9tdWx0aXBsZScpfXsvaWZ9CgkgICAgICB7aWYgJGZpZWxkLT5taW59eyRhdHRyaWJzW109JG1vZC0+TGFuZygnYXR0cl9taW4nKX17L2lmfQoJICAgICAge2lmICRmaWVsZC0+bWF4fXskYXR0cmlic1tdPSRtb2QtPkxhbmcoJ2F0dHJfbWF4Jyl9ey9pZn0KCSAgICAgIHtpZiAkZmllbGQtPnBhdHRlcm59eyRhdHRyaWJzW109JG1vZC0+TGFuZygnYXR0cl9wYXR0ZXJuJyl9ey9pZn0KCSAgICAgIHtpbXBsb2RlKCcsICcsJGF0dHJpYnMpfQoJICAgIDwvdGQ+CgkgIDwvdHI+Cgl7L2ZvcmVhY2h9Cgk8L3Rib2R5PgogICAgICA8L3RhYmxlPgoKe2NnZV90YWJjb250ZW50X3N0YXJ0IG5hbWU9cHJlcmVuZGVyX2xvZ2ljfQogICAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdpbmZvX3ByZXJlbmRlcl90YWInKX08L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9wcmVyZW5kZXJfbG9naWMnKX08L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgICAgICAgIDx0ZXh0YXJlYSBuYW1lPSJ7JGFjdGlvbmlkfXByZXJlbmRlcl9sb2dpYyIgcm93cz0iMTAiPnskZm9ybS0+cHJlcmVuZGVyX2xvZ2ljfTwvdGV4dGFyZWE+CiAgICAgICAgPC9wPgogICAgPC9kaXY+Cgp7Y2dlX3RhYmNvbnRlbnRfc3RhcnQgbmFtZT12YWxpZGF0aW9ufQogICAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdpbmZvX2Zvcm1fdmFsaWRhdGlvbnMnKX08L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICAgIDxwIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdhZGRfdmFsaWRhdGlvbicpfTwvcD4KICAgICAgPHNlbGVjdCBjbGFzcz0iZ3JpZF83IiBuYW1lPSJ7JGFjdGlvbmlkfXZhbGlkYXRpb24iPgogICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kYWxsX3ZhbGlkYXRpb25zfQogICAgICA8L3NlbGVjdD4KICAgICAgPGJ1dHRvbiBuYW1lPSJ7JGFjdGlvbmlkfWFkZF92YWxpZGF0aW9uIj57JG1vZC0+TGFuZygnYWRkJyl9PC9idXR0b24+CiAgICAgIHtpZiBlbXB0eSgkdmFsaWRhdGlvbnMpfQogICAgICAgIDxidXR0b24gbmFtZT0ieyRhY3Rpb25pZH1hdXRvX3ZhbGlkYXRpb24iPnskbW9kLT5MYW5nKCdhdXRvX2FkZF92YWxpZGF0aW9ucycpfTwvYnV0dG9uPgogICAgICB7L2lmfQogICAgPC9kaXY+CiAgICB7aWYgIWVtcHR5KCR2YWxpZGF0aW9ucyl9CiAgICAgIDxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICAgICAgIDxidXR0b24gaWQ9InNhdmVfdmFsaWRhdGlvbl9vcmRlciIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij57JG1vZC0+TGFuZygnc2F2ZScpfTwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPHRhYmxlIGlkPSJ2YWxpZGF0aW9uX2xpc3QiIGNsYXNzPSJwYWdldGFibGUiPgogICAgICAgIDx0aGVhZD4KCSAgPHRyPgoJICAgIDx0aD57JG1vZC0+TGFuZygndmFsaWRhdGlvbicpfTwvdGg+CgkgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+PC90aD4KCSAgICA8dGggY2xhc3M9InBhZ2VpY29uIj48L3RoPgoJICA8L3RyPgoJPC90aGVhZD4KCTx0Ym9keT4KICAgICAgICB7Zm9yZWFjaCAkdmFsaWRhdGlvbnMgYXMgJGhhbmRsZXJ9CiAgICAgICAgICA8dHIgY2xhc3M9IntjeWNsZSB2YWx1ZXM9J3JvdzEscm93Mid9IiBkYXRhLWd1aWQ9InskaGFuZGxlci0+Z2V0X2d1aWQoKX0iPgogCSAgICA8dGQ+eyRtb2QtPmdldF92YWxpZGF0aW9uX2Rpc3BsYXlzdHJpbmcoJGhhbmRsZXIpfTwvdGQ+CgkgICAgPHRkPgoJICAgICAge2lmICRtb2QtPnZhbGlkYXRpb25faGFzX2VkaXRvcigkaGFuZGxlcil9CgkgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0bmxpbmsiIG5hbWU9InskYWN0aW9uaWR9ZWRpdF92YWxpZGF0aW9uIiB2YWx1ZT0ieyRoYW5kbGVyLT5nZXRfZ3VpZCgpfSIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0Jyl9Ij57YWRtaW5faWNvbiBpY29uPSdlZGl0LmdpZid9PC9idXR0b24+CgkgICAgICB7L2lmfQoJICAgIDwvdGQ+CgkgICAgPHRkPgoJICAgICAgIDxidXR0b24gY2xhc3M9ImJ0bmxpbmsiIG5hbWU9InskYWN0aW9uaWR9ZGVsX3ZhbGlkYXRpb24iIHZhbHVlPSJ7JGhhbmRsZXItPmdldF9ndWlkKCl9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2RlbGV0ZScpfSI+e2FkbWluX2ljb24gaWNvbj0nZGVsZXRlLmdpZid9PC9idXR0b24+CgkgICAgPC90ZD4KCSAgPC90cj4KICAgICAgICB7L2ZvcmVhY2h9Cgk8L3Rib2R5PgogICAgICA8L3RhYmxlPgogICAgey9pZn0KCntjZ2VfdGFiY29udGVudF9zdGFydCBuYW1lPWhhbmRsZXJzfQogIDxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JG1vZC0+TGFuZygnaW5mb19mb3JtX2hhbmRsZXJzJyl9PC9kaXY+CiAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgIDxwIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdhZGRfZGlzcG9zaXRpb24nKX08L3A+CiAgICA8c2VsZWN0IGNsYXNzPSJncmlkXzciIG5hbWU9InskYWN0aW9uaWR9ZGlzcG9zaXRpb24iPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGFsbF9kaXNwb3NpdGlvbnN9CiAgICA8L3NlbGVjdD4KICAgIDxidXR0b24gbmFtZT0ieyRhY3Rpb25pZH1hZGRfZGlzcG9zaXRpb24iPnskbW9kLT5MYW5nKCdhZGQnKX08L2J1dHRvbj4KICA8L2Rpdj4KICB7aWYgIWVtcHR5KCRkaXNwb3NpdGlvbnMpfQogICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgICAgIDxidXR0b24gaWQ9InNhdmVfZGlzcF9vcmRlciIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij57JG1vZC0+TGFuZygnc2F2ZScpfTwvYnV0dG9uPgogICAgPC9kaXY+CiAgICA8dGFibGUgaWQ9ImRpc3Bvc2l0aW9uX2xpc3QiIGNsYXNzPSJwYWdldGFibGUiPgogICAgICA8dGhlYWQ+CiAgICAgICAgPHRyPgoJICA8dGg+eyRtb2QtPkxhbmcoJ2hhbmRsZXInKX08L3RoPgoJICA8dGggY2xhc3M9InBhZ2VpY29uIj48L3RoPgoJICA8dGggY2xhc3M9InBhZ2VpY29uIj48L3RoPgoJPC90cj4KICAgICAgPC90aGVhZD4KICAgICAgPHRib2R5PgogICAgICB7Zm9yZWFjaCAkZGlzcG9zaXRpb25zIGFzICRoYW5kbGVyfQogICAgICAgIDx0ciBjbGFzcz0ie2N5Y2xlIHZhbHVlcz0ncm93MSxyb3cyJ30iIGRhdGEtZ3VpZD0ieyRoYW5kbGVyLT5nZXRfZ3VpZCgpfSI+CiAgICAgICAgICA8dGQ+eyRtb2QtPmdldF9kaXNwb3NpdGlvbl9kaXNwbGF5c3RyaW5nKCRoYW5kbGVyKX08L3RkPgoJICA8dGQ+PGJ1dHRvbiBjbGFzcz0iYnRubGluayIgbmFtZT0ieyRhY3Rpb25pZH1lZGl0X2Rpc3Bvc2l0aW9uIiB2YWx1ZT0ieyRoYW5kbGVyLT5nZXRfZ3VpZCgpfSIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0Jyl9Ij57YWRtaW5faWNvbiBpY29uPSdlZGl0LmdpZid9PC9idXR0b24+PC90ZD4KCSAgPHRkPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0bmxpbmsiIG5hbWU9InskYWN0aW9uaWR9ZGVsX2Rpc3Bvc2l0aW9uIiB2YWx1ZT0ieyRoYW5kbGVyLT5nZXRfZ3VpZCgpfSIgdGl0bGU9InskbW9kLT5MYW5nKCdkZWxldGUnKX0iPnthZG1pbl9pY29uIGljb249J2RlbGV0ZS5naWYnfTwvYnV0dG9uPgoJICA8L3RkPgogICAgICAgIDwvdHI+CiAgICAgIHsvZm9yZWFjaH0KICAgICAgPC90Ym9keT4KICAgIDwvdGFibGU+CiAgey9pZn0KCntjZ2VfdGFiY29udGVudF9zdGFydCBuYW1lPSdmaW5hbCd9CiAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdpbmZvX2ZpbmFsX2Rpc3Bvc2l0aW9uJyl9PC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9maW5hbGFjdGlvbicpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGxhYmVsPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ieyRhY3Rpb25pZH1maW5hbGFjdGlvbiIgdmFsdWU9Im1lc3NhZ2UiIHtpZiAkZm9ybS0+ZmluYWxhY3Rpb24hPSJyZWRpcmVjdCJ9Y2hlY2tlZHsvaWZ9Lz4geyRtb2QtPkxhbmcoJ3Byb21wdF9kb2ZpbmFsbXNnJyl9PC9sYWJlbD48YnIvPgogICAgICA8bGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ7JGFjdGlvbmlkfWZpbmFsYWN0aW9uIiB2YWx1ZT0icmVkaXJlY3QiIHtpZiAkZm9ybS0+ZmluYWxhY3Rpb249PSJyZWRpcmVjdCJ9Y2hlY2tlZHsvaWZ9Lz4geyRtb2QtPkxhbmcoJ3Byb21wdF9kb2ZpbmFscmVkaXJlY3QnKX08L2xhYmVsPgogICAgPC9wPgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciIGlkPSJzZWxfZmluYWxwYWdlIj4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9maW5hbHBhZ2UnKX08L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAge3BhZ2Vfc2VsZWN0b3IgbmFtZT0ieyRhY3Rpb25pZH1maW5hbHBhZ2UiIHZhbHVlPSRmb3JtLT5maW5hbHBhZ2V9CiAgICA8L3A+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyIgaWQ9InNlbF9maW5hbG1lc3NhZ2UiPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2ZpbmFsbWVzc2FnZScpfTwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8dGV4dGFyZWEgbmFtZT0ieyRhY3Rpb25pZH1maW5hbG1zZyIgcm93cz0iMjAiPnskZm9ybS0+ZmluYWxtc2d9PC90ZXh0YXJlYT4KICAgICAgPGJyLz48YnV0dG9uIG5hbWU9InskYWN0aW9uaWR9cmVzZXRfZmluYWxtc2ciPnskbW9kLT5MYW5nKCdyZXNldCcpfTwvYnV0dG9uPgogICAgPC9wPgogIDwvZGl2PgoKICB7JGZvcm1faGVscH0Key9pZn17KiBjb3VudCgkZmllbGRzKSAqfQp7Y2dlX2VuZF90YWJzfQp7Zm9ybV9lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_integerfieldvalidation.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X2ludGVnZXJfZmllbGR2YWxpZGF0aW9uJyl9PC9oMz4KCntmb3JtX3N0YXJ0IGZvcm1fZ3VpZD0kZm9ybV9ndWlkIGd1aWQ9JGd1aWQgZWRpdG9yX25hbWU9JGVkaXRvcl9uYW1lfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgZm9ybW5vdmFsaWRhdGUvPgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwcm9tcHRfZmllbGQnKX06PC9sYWJlbD4KICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9ZmllbGRuYW1lIiBjbGFzcz0iZ3JpZF84IiByZXF1aXJlZD4KICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kZmllbGRzIHNlbGVjdGVkPSR2YWxpZGF0aW9uLT5maWVsZE5hbWV9CiAgPC9zZWxlY3Q+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X21pbnZhbHVlJyl9OjwvbGFiZWw+CiAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9bWluVmFsdWUiIGNsYXNzPSJncmlkXzkiIG1heGxlbmd0aD0iMTAiIHZhbHVlPSJ7JHZhbGlkYXRpb24tPm1pblZhbH0iLz4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwcm9tcHRfbWF4dmFsdWUnKX06PC9sYWJlbD4KICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1tYXhWYWx1ZSIgY2xhc3M9ImdyaWRfOSIgbWF4bGVuZ3RoPSIxMCIgdmFsdWU9InskdmFsaWRhdGlvbi0+bWF4VmFsfSIvPgo8L2Rpdj4Ke2Zvcm1fZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_redirecturl_disposition.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X1dlYkhvb2tEaXNwb3NpdGlvbicpfTwvaDM+Cgp7Zm9ybV9zdGFydCBmb3JtX2d1aWQ9JGZvcm1fZ3VpZCBkaXNwX2d1aWQ9JGd1aWQgZWRpdG9yX25hbWU9JGVkaXRvcl9uYW1lfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgZm9ybW5vdmFsaWRhdGUvPgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwcm9tcHRfcmVkaXJlY3R1cmxfdGVtcGxhdGUnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzkiPgogICAgIHtjZ2VfdGV4dGFyZWEgcHJlZml4PSRhY3Rpb25pZCBuYW1lPSJ0cGwiIHZhbHVlPSRoYW5kbGVyLT50cGwgY2xhc3M9ImdyaWRfMTIiIHJvd3M9NX0KICAgICA8cCBjbGFzcz0iZ3JpZF8xMiI+eyRtb2QtPkxhbmcoJ2luZm9fcmVkaXJlY3R1cmxfdGVtcGxhdGUnKX08L3A+CiAgPC9kaXY+CjwvZGl2Pgp7Zm9ybV9lbmR9CnskdHBsX2hlbHB9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_regexfieldvalidation.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X3JlZ2V4X2ZpZWxkdmFsaWRhdGlvbicpfTwvaDM+Cgp7Zm9ybV9zdGFydCBmb3JtX2d1aWQ9JGZvcm1fZ3VpZCBndWlkPSRndWlkIGVkaXRvcl9uYW1lPSRlZGl0b3JfbmFtZX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X2ZpZWxkJyl9OjwvbGFiZWw+CiAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWZpZWxkbmFtZSIgY2xhc3M9ImdyaWRfOCIgcmVxdWlyZWQ+CiAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGZpZWxkcyBzZWxlY3RlZD0kdmFsaWRhdGlvbi0+ZmllbGROYW1lfQogIDwvc2VsZWN0Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ3Byb21wdF9yZWdleF9wYXR0ZXJuJyl9OjwvbGFiZWw+CiAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9cGF0dGVybiIgY2xhc3M9ImdyaWRfOSIgbWF4bGVuZ3RoPSIyNTUiIHZhbHVlPSJ7JHZhbGlkYXRpb24tPnBhdHRlcm59IiByZXF1aXJlZC8+CjwvZGl2Pgp7Zm9ybV9lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_stopdisposing_disposition.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCduYW1lX1N0b3BEaXNwb3NpbmdEaXNwb3NpdGlvbicpfTwvaDM+Cgp7Zm9ybV9zdGFydCBmb3JtX2d1aWQ9JGZvcm1fZ3VpZCBkaXNwX2d1aWQ9JGd1aWQgZWRpdG9yX25hbWU9JGVkaXRvcl9uYW1lfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgZm9ybW5vdmFsaWRhdGUvPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X3RlbXBsYXRlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICB7Y2dlX3RleHRhcmVhIHByZWZpeD0kYWN0aW9uaWQgbmFtZT10ZW1wbGF0ZSB2YWx1ZT0kaGFuZGxlci0+dGVtcGxhdGUgcm93cz01fQogICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9fc3RvcGRpc3Bvc2luZ190cGwnKX0KICA8L3A+CjwvZGl2Pgp7Zm9ybV9lbmR9CnskdHBsX2hlbHB9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_templatevalidation.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X2NvbXB1dGVkX3ZhbHVlJyl9PC9oMz4KCntmb3JtX3N0YXJ0IGZvcm1fZ3VpZD0kZm9ybV9ndWlkIGd1aWQ9JGd1aWQgZWRpdG9yX25hbWU9JGVkaXRvcl9uYW1lfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgZm9ybW5vdmFsaWRhdGUvPgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwcm9tcHRfdGVtcGxhdGUnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzkiPgogICAgPHRleHRhcmVhIGNsYXNzPSJncmlkXzEyIiByb3dzPSI1IiBuYW1lPSJ7JGFjdGlvbmlkfXRlbXBsYXRlIj57JHZhbGlkYXRpb24tPnRlbXBsYXRlfTwvdGV4dGFyZWE+CiAgICA8cCBjbGFzcz0iZ3JpZF8xMiI+eyRtb2QtPkxhbmcoJ2luZm9fdGVtcGxhdGV2YWxpZGF0aW9uJyl9PC9wPgogIDwvZGl2Pgo8L2Rpdj4Ke2Zvcm1fZW5kfQp7JHRwbF9oZWxwfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_uniquefile_disposition.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X3VuaXF1ZWZpbGVfZGlzcG9zaXRpb24nKX08L2gzPgoKe2Zvcm1fc3RhcnQgZm9ybV9ndWlkPSRmb3JtX2d1aWQgZGlzcF9ndWlkPSRndWlkIGVkaXRvcl9uYW1lPSRlZGl0b3JfbmFtZX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXJlc2V0X3RwbCIgdmFsdWU9InskbW9kLT5MYW5nKCdyZXNldF90cGxzJyl9IiBmb3Jtbm92YWxpZGF0ZS8+CjwvZGl2PgoKPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ3Byb21wdF91bmlxdWVmaWxlX2ZvbGRlcicpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICAgPGlucHV0IGNsYXNzPSJncmlkXzEyIiBuYW1lPSJ7JGFjdGlvbmlkfWZvbGRlciIgdmFsdWU9InskaGFuZGxlci0+Zm9sZGVyfSIgcmVxdWlyZWQ+CiAgICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb191bmlxdWVmaWxlX2ZvbGRlcicpfQogIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfaGRydGVtcGxhdGUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgIHtjZ2VfdGV4dGFyZWEgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWhlYWRlcnRlbXBsYXRlIHZhbHVlPSRoYW5kbGVyLT5oZWFkZXJ0ZW1wbGF0ZX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9lbnRyeXRlbXBsYXRlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICB7Y2dlX3RleHRhcmVhIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1lbnRyeXRlbXBsYXRlIHZhbHVlPSRoYW5kbGVyLT5lbnRyeXRlbXBsYXRlfQogIDwvcD4KPC9kaXY+Cntmb3JtX2VuZH0KeyR0cGxfaGVscH0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_webhook_disposition.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X1dlYkhvb2tEaXNwb3NpdGlvbicpfTwvaDM+Cgp7Zm9ybV9zdGFydCBmb3JtX2d1aWQ9JGZvcm1fZ3VpZCBkaXNwX2d1aWQ9JGd1aWQgZWRpdG9yX25hbWU9JGVkaXRvcl9uYW1lfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgZm9ybW5vdmFsaWRhdGUvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9cmVzZXRfdHBsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3Jlc2V0X3RwbHMnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X3dlYmhvb2tfdXJsJyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF85Ij4KICAgICA8aW5wdXQgY2xhc3M9ImdyaWRfMTIiIHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9dXJsIiB2YWx1ZT0ieyRoYW5kbGVyLT51cmx9IiByZXF1aXJlZC8+CiAgICAgPHAgY2xhc3M9ImdyaWRfMTIiPnskbW9kLT5MYW5nKCdpbmZvX3dlYmhvb2tfdXJsJyl9PC9wPgogIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ3Byb21wdF93ZWJob29rX2V4dHJhdmFycycpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICAge2NnZV90ZXh0YXJlYSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9ImV4dHJhcG9zdHZhcnMiIHZhbHVlPSRoYW5kbGVyLT5leHRyYXBvc3R2YXJzIGNsYXNzPSJncmlkXzEyIn0KICAgICA8cCBjbGFzcz0iZ3JpZF8xMiI+eyRtb2QtPkxhbmcoJ2luZm9fd2ViaG9va19leHRyYXZhcnMnKX08L3A+CiAgPC9kaXY+CjwvZGl2Pgp7Zm9ybV9lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_varhelp.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogZGlzcGxheSB2YXJpYWJsZSBoZWxwICp9CjxmaWVsZHNldD4KICA8bGVnZW5kPnskbW9kLT5MYW5nKCd0aXRsZV90ZW1wbGF0aW5nX2hlbHAnKX08L2xlZ2VuZD4KICA8dGFibGUgY2xhc3M9InBhZ2V0YWJsZSI+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGg+eyRtb2QtPkxhbmcoJ25hbWUnKX08L3RoPgogICAgICA8dGg+eyRtb2QtPkxhbmcoJ3R5cGUnKX08L3RoPgogICAgICA8dGg+eyRtb2QtPkxhbmcoJ2Rlc2NyaXB0aW9uJyl9PC90aD4KICAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAge2ZvcmVhY2ggJHZhcnMgYXMgJHZhcn0KICAgIDx0ciBjbGFzcz0ie2N5Y2xlIHZhbHVlcz0ncm93MSxyb3cyJ30iPgogICAgICA8dGQ+eyR2YXItPmtleX08L3RkPgogICAgICA8dGQ+eyR2YXItPnR5cGV8ZGVmYXVsdDonJ308L3RkPgogICAgICA8dGQ+eyR2YXItPmRlc2N8ZGVmYXVsdDonJ308L3RkPgogICAgPC90cj4KICB7L2ZvcmVhY2h9CiAgPC90Ym9keT4KICA8L3RhYmxlPgo8L2ZpZWxkc2V0Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/defaultadmin.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0id2FybmluZyI+PHAgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPjxzdHJvbmc+V2FybmluZzo8L3N0cm9uZz4gVGhpcyBpcyBhbiBldmFsdWF0aW9uIHZlcnNpb24gb2YgeyRtb2QtPkdldE5hbWUoKX0uICBJdCBpcyBzdWJqZWN0IHRvIGNoYW5nZSBiZWZvcmUgZmluYWwgcmVsZWFzZS4gIEZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHkuICBXZSBkbyBub3QgcmVjb21tZW5kIHRoYXQgeW91IHVzZSB0aGlzIHZlcnNpb24gb2YgdGhlIG1vZHVsZSBpbiBhIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQuPC9wPjxici8+PHAgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPlVzZSBhdCB5b3VyIG93biByaXNrPC9wPjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPgogIDxhIGhyZWY9IntjbXNfYWN0aW9uX3VybCBhY3Rpb249YWRtaW5fZWRpdF9mb3JtfSI+e2FkbWluX2ljb24gaWNvbj0nbmV3b2JqZWN0LmdpZid9IHskbW9kLT5MYW5nKCdhZGRfbmV3X2Zvcm0nKX08L2E+CjwvZGl2PgoKe2lmICFlbXB0eSgkZm9ybXMpICYmIGNvdW50KCRmb3Jtcyl9Cjx0YWJsZSBjbGFzcz0icGFnZXRhYmxlIj4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD57JG1vZC0+TGFuZygnaWQnKX08L3RoPgogICAgICA8dGg+eyRtb2QtPkxhbmcoJ25hbWUnKX08L3RoPgogICAgICA8dGg+eyRtb2QtPkxhbmcoJ3RhZycpfTwvdGg+CiAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPjwvdGg+CiAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPjwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogICAge2ZvcmVhY2ggJGZvcm1zIGFzICRpZCA9PiAkbmFtZX0KICAgICAge2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1hZG1pbl9lZGl0X2Zvcm0gZm9ybT0kaWQgYXNzaWduPSdlZGl0X3VybCd9CiAgICAgIDx0ciBjbGFzcz0ie2N5Y2xlIHZhbHVlcz0ncm93MSxyb3cyJ30iPgogICAgICAgIDx0ZD48YSBocmVmPSJ7JGVkaXRfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0Jyl9Ij57JGlkfTwvYT48L3RkPgoJPHRkPjxhIGhyZWY9InskZWRpdF91cmx9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2VkaXQnKX0iPnskbmFtZX08L2E+PC90ZD4KCTx0ZD57bGRlbGltfUNHQmV0dGVyRm9ybXMgZm9ybT0mcXVvdDt7JG5hbWV9JnF1b3Q7e3JkZWxpbX08L3RkPgoJPHRkPjxhIGhyZWY9InskZWRpdF91cmx9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2VkaXQnKX0iPnthZG1pbl9pY29uIGljb249J2VkaXQuZ2lmJ308L2E+PC90ZD4KCTx0ZD48YSBocmVmPSJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPWFkbWluX2RlbGV0ZV9mb3JtIGZvcm09JGlkfSIgdGl0bGU9InskbW9kLT5MYW5nKCdkZWxldGUnKX0iPnthZG1pbl9pY29uIGljb249J2RlbGV0ZS5naWYnfTwvYT48L3RkPgogICAgICA8L3RyPgogICAgey9mb3JlYWNofQogIDwvdGJvZHk+CjwvdGFibGU+Cgp7L2lmfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_advanced_contact_form.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2NnYmZfZm9ybV9lcnJvcnMgYXNzaWduPSdlcnJvcnMnfQp7aWYgIWVtcHR5KCRlcnJvcnMpfQogIDx1bCBjbGFzcz0iZXJyb3IiPgogIHtmb3JlYWNoICRlcnJvcnMgYXMgJGVycn0KICAgIDxsaT57JGVycn08L2xpPgogIHsvZm9yZWFjaH0KICA8L3VsPgp7L2lmfQoKPGZvcm0+CiAgPGgzPkEgbW9yZSBhZHZhbmNlZCBjb250YWN0IGZvcm08L2gzPgoKICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICA8bGFiZWwgZm9yPSJteW5hbWUiPllvdXIgTmFtZTo8L2xhYmVsPgogICAgIDxpbnB1dCBpZD0ibXluYW1lIiBjbGFzcz0iZm9ybS1jb250cm9sIiBuYW1lPSJuYW1lIiB2YWx1ZT0ieyRmb3JtX2RhdGEtPm5hbWV9IiByZXF1aXJlZC8+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgIDxsYWJlbCBmb3I9Im15ZW1haWwiPllvdXIgRW1haWw6PC9sYWJlbD4KICAgICA8aW5wdXQgaWQ9Im15ZW1haWwiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIHR5cGU9ImVtYWlsIiBuYW1lPSJlbWFpbCIgdmFsdWU9InskZm9ybV9kYXRhLT5lbWFpbH0iIHJlcXVpcmVkLz4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgPGxhYmVsIGZvcj0icGhvbmUiPlBob25lIE51bWJlciAoMTAgZGlnaXRzKTo8L2xhYmVsPgogICAgIDxpbnB1dCBpZD0icGhvbmUiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIHR5cGU9InRleHQiIG5hbWU9InBob25lIiB2YWx1ZT0ieyRmb3JtX2RhdGEtPnBob25lfSIgcGF0dGVybj0iWzAtOV17bGRlbGltfTEwLDExe3JkZWxpbX0iLz4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgPGxhYmVsIGZvcj0iZHVlZGF0ZSI+RHVlIERhdGU6PC9sYWJlbD4KICAgICA8aW5wdXQgaWQ9ImR1ZWRhdGUiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIHR5cGU9ImRhdGUiIG5hbWU9ImR1ZWRhdGUiIHZhbHVlPSJ7JGZvcm1fZGF0YS0+ZHVlZGF0ZX0iIGRhdGEtY2diZi1taW49Inskc21hcnR5Lm5vd3xkYXRlX2Zvcm1hdDonJVktJW0tJWQnfSIvPgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICA8bGFiZWwgZm9yPSJpbnF1aXJ5X3R5cGUiPkhvdyBkaWQgeW91IGhlYXIgYWJvdXQgdXM6PC9sYWJlbD4KICAgICA8c2VsZWN0IGlkPSJpbnF1aXJ5X3R5cGUiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIG5hbWU9ImlucXVpcnlfdHlwZSIgZGF0YS1jZ2JmLXJlcXVpcmVkIGRhdGEtY2diZi1zZWxlY3RlZD0id2ViYWQiPgogICAgICAgIDxvcHRpb24gdmFsdWU9IiI+PC9vcHRpb24+Cgk8b3B0aW9uIHZhbHVlPSJ3ZWJhZCIgZGF0YS1jZ2JmLWh1bWFuPSJXZWIgQWR2ZXJ0aXNlbWVudCI+VmlhIGEgd2ViIGFkPC9vcHRpb24+Cgk8b3B0aW9uIHZhbHVlPSJzZWFyY2giIGRhdGEtY2JnZi1odW1hbj0iU2VhcmNoIEVuZ2luZSI+SW50ZXJuZXQgc2VhcmNoPC9vcHRpb24+Cgk8b3B0aW9uIHZhbHVlPSJmcmllbmQiPkZyb20gYSBmcmllbmQ8L29wdGlvbj4KCTxvcHRpb24gdmFsdWU9ImN1c3RvbWVyIiBkYXRhLWNnYmYtaHVtYW49IkN1c3RvbWVyIj5JIGFtIGEgY3VycmVudC9wYXN0IGN1c3RvbWVyPC9vcHRpb24+CiAgICAgPC9zZWxlY3Q+CiAgICAgPGZvbz57KiB0aGlzIGludmFsaWQgdGFnIGlzIGhlcmUgaW50ZW50aW9uYWxseSwgdG8gaWxsdXN0cmF0ZSBzb21lIG9mIHRoZSBmb3JtIHNjYW5uaW5nIHByb2Nlc3MgKn0KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgPGxhYmVsIGZvcj0iY29tbWVudHMiPllvdXIgQ29tbWVudHM6PC9sYWJlbD4KICAgICA8dGV4dGFyZWEgaWQ9ImNvbW1lbnRzIiBjbGFzcz0iZm9ybS1jb250cm9sIiBuYW1lPSJjb21tZW50cyIgZGF0YS1jZ2JmLXJlcXVpcmVkPnskZm9ybV9kYXRhLT5jb250ZW50c308L3RleHRhcmVhPgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICA8bGFiZWwgZm9yPSJpbWFnZSI+SW1hZ2UgQXR0YWNobWVudCAocmVxdWlyZWQpPC9sYWJlbD4KICAgICA8aW5wdXQgaWQ9ImltYWdlIiBjbGFzcz0iZm9ybS1jb250cm9sIiB0eXBlPSJmaWxlIiBuYW1lPSJpbWFnZSIgYWNjZXB0PSJpbWFnZS8qIiBkYXRhLWNnYmYtbWF4c2l6ZT01MDAwMCBkYXRhLWNnYmYtcmVxdWlyZWQvPgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICA8bGFiZWwgZm9yPSJwcmlvcml0eSI+UHJpb3JpdHk8L2xhYmVsPgogICAgIDxpbnB1dCBpZD0icHJpb3JpdHkiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIHR5cGU9Im51bWJlciIgbmFtZT0icHJpb3JpdHkiIHZhbHVlPSJ7JGZvcm1fZGF0YS0+cHJpb3JpdHl8ZGVmYXVsdDo1fSIgZGF0YS1jZ2JmLXJlcXVpcmVkLz4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgPHA+UGxlYXNlIGNvbnRhY3QgbWUgdmlhOjwvcD4KICAgICA8bGFiZWw+PGlucHV0IGNsYXNzPSJmb3JtLWNvbnRyb2wiIHR5cGU9InJhZGlvIiBuYW1lPSJjb250YWN0X2J5IiB2YWx1ZT0iZW1haWwiIGRhdGEtY2diZi1sYWJlbD0nQ29udGFjdCBWaWEnIGRhdGEtY2diZi1zZWxlY3RlZD0ieyRmb3JtX2RhdGEtPmNvbnRhY3RfYnl8ZGVmYXVsdDonZW1haWwnfSIvPiBFbWFpbDwvbGFiZWw+CiAgICAgPGxhYmVsPjxpbnB1dCBjbGFzcz0iZm9ybS1jb250cm9sIiB0eXBlPSJyYWRpbyIgbmFtZT0iY29udGFjdF9ieSIgdmFsdWU9InBob25lIiBkYXRhLWNnYmYtc2VsZWN0ZWQ9InskZm9ybV9kYXRhLT5jb250YWN0X2J5fGRlZmF1bHQ6J2VtYWlsJ30iLz4gUGhvbmU8L2xhYmVsPgogIDwvZGl2PgoKICA8ZGl2IGRhdGEtY2diZi1jYXB0Y2hhPnsqIGNhcHRjaGEgd2lsbCBiZSBhcHBlbmRlZCBoZXJlICp9PC9kaXY+CiAgPGRpdiBkYXRhLWNnYmYtY2FwdGNoYS1pbnB1dD57KiBjYXB0Y2hhIGlucHV0IGZpZWxkLCBpZiBuZWNlc3Nhcnkgd2lsbCBiZSBhcHBlbmRlZCBoZXJlICp9PC9kaXY+CgogIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgPGJ1dHRvbiB0eXBlPSJyZXNldCI+UmVzZXQ8L2J1dHRvbj4KICAgIDxidXR0b24gdHlwZT0ic3VibWl0Ij5TdWJtaXQ8L2J1dHRvbj4KICA8L2Rpdj4KPC9mb3JtPgo=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_contact_form.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2NnYmZfZm9ybV9lcnJvcnMgYXNzaWduPSdlcnJvcnMnfQp7aWYgIWVtcHR5KCRlcnJvcnMpfQogIDx1bCBjbGFzcz0iZXJyb3IiPgogIHtmb3JlYWNoICRlcnJvcnMgYXMgJGVycn0KICAgIDxsaT57JGVycn08L2xpPgogIHsvZm9yZWFjaH0KICA8L3VsPgp7L2lmfQoKPGZvcm0+CgogIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgPGxhYmVsIGZvcj0ibXluYW1lIj5Zb3VyIE5hbWU6PC9sYWJlbD4KICAgICA8aW5wdXQgaWQ9Im15bmFtZSIgY2xhc3M9ImZvcm0tY29udHJvbCIgbmFtZT0ibmFtZSIgdmFsdWU9InskZm9ybV9kYXRhLT5uYW1lfSIgcmVxdWlyZWQvPgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgIDxsYWJlbCBmb3I9Im15ZW1haWwiPllvdXIgRW1haWw6PC9sYWJlbD4KICAgICA8aW5wdXQgaWQ9Im15ZW1haWwiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIHR5cGU9ImVtYWlsIiBuYW1lPSJlbWFpbCIgdmFsdWU9InskZm9ybV9kYXRhLT5lbWFpbH0iIHJlcXVpcmVkLz4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0icm93Ij4KICAgICA8bGFiZWwgZm9yPSJjb21tZW50cyI+WW91ciBDb21tZW50czo8L2xhYmVsPgogICAgIDx0ZXh0YXJlYSBpZD0iY29tbWVudHMiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIG5hbWU9ImNvbW1lbnRzIiByZXF1aXJlZD57JGZvcm1fZGF0YS0+Y29udGVudHN9PC90ZXh0YXJlYT4KICA8L2Rpdj4KCiAgPGRpdiBkYXRhLWNnYmYtY2FwdGNoYT48L2Rpdj4KCiAgPGRpdiBjbGFzcz0icm93Ij4KICAgIDxidXR0b24gdHlwZT0icmVzZXQiPlJlc2V0PC9idXR0b24+CiAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCI+U3VibWl0PC9idXR0b24+CiAgPC9kaXY+CjwvZm9ybT4=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_trivial_widget_builder.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdD4KJChmdW5jdGlvbigpewogICB7KgogICBUaGlzIHRlbXBsYXRlIHJlcXVpcmVzIGpxdWVyeSwgIGl0IHNob3VsZCBiZSBpbml0aWFsaXplZCBzb21ld2hlcmUgaW4gdGhlIGhlYWQgb2YgeW91ciBwYWdlIHRlbXBsYXRlIChub3QgdGhlIGJvZHkpIGluIG9yZGVyIHRvIHVzZSB0aGlzIHRlbXBsYXRlIGFzIGlzLgogICAKICAgdGhpcyBpcyBhIHRyaXZpYWwgZXhhbXBsZSBvZiBjYWxjdWxhdGluZyBwcmljZSBpbiBqYXZhc2NyaXB0L2pxdWVyeS4KICAgeW91IGNvdWxkIHVzZSBhamF4LCBvciBhbnkgb3RoZXIgbWVhbnMgdG8gZ2V0IGdldCBpbml0aWFsIGRhdGEsIHBvcHVsYXRlIHRoZSBmb3JtCiAgIGFuZCB0byBjYWxjdWxhdGUgdGhlIHByaWNlLgogICAqfQogICB2YXIgYmFzZV9wcmljZSA9IDEwLjA7CiAgIHZhciBlbF9zaXplID0gJCgnI3dpZGdldF9zaXplJyk7CiAgIHZhciBlbF9jb2xvciA9ICQoJyN3aWRnZXRfY29sb3InKTsKICAgdmFyIGVsX3NoYXBlID0gJCgnI3dpZGdldF9zaGFwZScpOwogICB2YXIgZWxfcHJpY2UgPSAkKCcjd2lkZ2V0X3ByaWNlJyk7CgogICBmdW5jdGlvbiBjYWxjX3ByaWNlKCkgewogICAgICB2YXIgcHJpY2UgPSBiYXNlX3ByaWNlOwogICAgICBwcmljZSArPSAkKCdvcHRpb246c2VsZWN0ZWQnLGVsX3NpemUpLmRhdGEoJ3ByaWNlJyk7CiAgICAgIHByaWNlICs9ICQoJ29wdGlvbjpzZWxlY3RlZCcsZWxfY29sb3IpLmRhdGEoJ3ByaWNlJyk7CiAgICAgIHByaWNlICs9ICQoJ29wdGlvbjpzZWxlY3RlZCcsZWxfc2hhcGUpLmRhdGEoJ3ByaWNlJyk7CiAgICAgIGVsX3ByaWNlLnZhbChwcmljZSk7CiAgIH0KCiAgIGVsX3NpemUuY2hhbmdlKGNhbGNfcHJpY2UpOwogICBlbF9jb2xvci5jaGFuZ2UoY2FsY19wcmljZSk7CiAgIGVsX3NoYXBlLmNoYW5nZShjYWxjX3ByaWNlKTsKICAgZWxfc2l6ZS50cmlnZ2VyKCdjaGFuZ2UnKTsKfSk7Cjwvc2NyaXB0PgoKe2NnYmZfZm9ybV9lcnJvcnMgYXNzaWduPSdlcnJvcnMnfQp7aWYgIWVtcHR5KCRlcnJvcnMpfQogIDx1bCBjbGFzcz0iYWxlcnQgYWxlcnQtZGFuZ2VyIj4KICB7Zm9yZWFjaCAkZXJyb3JzIGFzICRlcnJ9CiAgICA8bGk+eyRlcnJ9PC9saT4KICB7L2ZvcmVhY2h9CiAgPC91bD4Key9pZn0KCjxoMz5Ucml2aWFsIFdpZGdldCBCdWlsZGVyPC9oMz4KPGZvcm0gaWQ9InNpbXBsZV9jYWxjdWxhdG9yIj4KPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgIDxsYWJlbCBjbGFzcz0iY29sLXNtLTIiPldpZGdldCBTaXplOgogICAgICA8c2VsZWN0IGlkPSJ3aWRnZXRfc2l6ZSIgbmFtZT0id2lkZ2V0X3NpemUiIGNsYXNzPSJjb2wtc20tOSIgZGF0YS1jZ2JmLXNlbGVjdGVkPSJ7JGZvcm1fZGF0YS0+d2lkZ2V0X3NpemV8ZGVmYXVsdDonbWVkaXVtJ30iPgogICAgICAgICA8b3B0aW9uIHZhbHVlPSJzbWFsbCIgZGF0YS1wcmljZT0wPlNtYWxsPC9vcHRpb24+CiAgICAgICAgIDxvcHRpb24gdmFsdWU9Im1lZGl1bSIgZGF0YS1wcmljZT0xPk1lZGl1bTwvb3B0aW9uPgogICAgICAgICA8b3B0aW9uIHZhbHVlPSJsYXJnZSIgZGF0YS1wcmljZT0yPkxhcmdlPC9vcHRpb24+CiAgICAgICAgIDxvcHRpb24gdmFsdWU9IlhMIiBkYXRhLXByaWNlPTM+WEw8L29wdGlvbj4KICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iWFhMIiBkYXRhLXByaWNlPTQ+WFhMPC9vcHRpb24+CiAgICAgIDwvc2VsZWN0PgogICA8L2xhYmVsPgo8L2Rpdj4KPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgIDxsYWJlbCBjbGFzcz0iY29sLXNtLTIiPldpZGdldCBDb2xvcjoKICAgICAgPHNlbGVjdCBpZD0id2lkZ2V0X2NvbG9yIiBuYW1lPSJ3aWRnZXRfY29sb3IiIGNsYXNzPSJjb2wtc20tOSIgZGF0YS1jZ2JmLXNlbGVjdGVkPSJ7JGZvcm1fZGF0YS0+d2lkZ2V0X2NvbG9yfGRlZmF1bHQ6J3JlZCd9Ij4KICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iYmxhY2siIGRhdGEtcHJpY2U9MD5CbGFjazwvb3B0aW9uPgogICAgICAgICA8b3B0aW9uIHZhbHVlPSJ3aGl0ZSIgZGF0YS1wcmljZT0wPldoaXRlPC9vcHRpb24+CiAgICAgICAgIDxvcHRpb24gdmFsdWU9InJlZCIgZGF0YS1wcmljZT0xPlJlZDwvb3B0aW9uPgogICAgICAgICA8b3B0aW9uIHZhbHVlPSJncmVlbiIgZGF0YS1wcmljZT0yPkdyZWVuPC9vcHRpb24+CiAgICAgICAgIDxvcHRpb24gdmFsdWU9ImJsdWUiIGRhdGEtcHJpY2U9Mz5CbHVlPC9vcHRpb24+CiAgICAgIDwvc2VsZWN0PgogICA8L2xhYmVsPgo8L2Rpdj4KPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgIDxsYWJlbCBjbGFzcz0iY29sLXNtLTIiPldpZGdldCBDb2xvcjoKICAgICAgPHNlbGVjdCBpZD0id2lkZ2V0X3NoYXBlIiBuYW1lPSJ3aWRnZXRfc2hhcGUiIGNsYXNzPSJjb2wtc20tOSIgZGF0YS1jZ2JmLXNlbGVjdGVkPSJ7JGZvcm1fZGF0YS0+d2lkZ2V0X3NoYXBlfGRlZmF1bHQ6J3JvdW5kJ30iPgogICAgICAgICA8b3B0aW9uIHZhbHVlPSJzcXVhcmUiIGRhdGEtcHJpY2U9MD5TcXVhcmU8L29wdGlvbj4KICAgICAgICAgPG9wdGlvbiB2YWx1ZT0icm91bmQiIGRhdGEtcHJpY2U9MD5DaXJjdWxhcjwvb3B0aW9uPgogICAgICAgICA8b3B0aW9uIHZhbHVlPSJvdmFsIiBkYXRhLXByaWNlPTE+T3ZhbDwvb3B0aW9uPgogICAgICAgICA8b3B0aW9uIHZhbHVlPSJoZXgiIGRhdGEtcHJpY2U9Mj5IZXhhZ29uPC9vcHRpb24+CiAgICAgICAgIDxvcHRpb24gdmFsdWU9Im9jdCIgZGF0YS1wcmljZT0zPk9jdGFnb248L29wdGlvbj4KICAgICAgPC9zZWxlY3Q+CiAgIDwvbGFiZWw+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICA8bGFiZWwgY2xhc3M9ImNvbC1zbS0yIj5GaW5hbCBQcmljZToKICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9IndpZGdldF9wcmljZSIgZGlzYWJsZWQ+CiAgPC9sYWJlbD4KPC9kaXY+CjxkaXYgY2xhc3M9InJvdyI+CiAgIDxidXR0b24+U3VibWl0PC9idXR0b24+CjwvZGl2Pgo8L2Zvcm0+Cg==]]></data>
	</file>
</module>
